22. 使用 OpenClaw 控制 PiCar-X

什么是 OpenClaw?

可以将其视为 ChatGPT 的升级版。传统聊天机器人只能对话(生成文本),而 OpenClaw 可以采取行动。它能理解您的自然语言指令,并实际在您的计算机上执行操作,例如运行命令、管理文件以及调用各种工具。

以下是一些精彩的应用场景:

  • 个人全能助手: 让它帮您管理日程、设置提醒、追踪任务。您只需在聊天应用(如 Telegram、WhatsApp)中告诉它,它就会记住并执行。

  • 自动化”胶水”: 它可以充当您各种服务之间的粘合剂。例如,您可以让它监控某个网站的价格变化。一旦检测到降价,它可以自动触发 n8n 自动化工作流向您发送邮件通知。

  • 专属开发助手: 让它帮您管理服务器、运行脚本、查看日志。您只需说”帮我检查一下系统负载”,它就能通过 SSH 登录您的服务器,执行命令并返回结果。

  • 硬件”玩伴”: 这是一个非常有趣的应用场景。您可以让 OpenClaw 控制连接到 Raspberry Pi 的硬件。例如,有开发者用它来控制带机械臂的扫地机器人,甚至让它帮忙分析赛车模拟器数据并显示在 LED 屏幕上。官方 Raspberry Pi 团队甚至用它为一个婚礼搭建了自动拍照亭,全程通过对话完成,一行代码都没写!

重要

Raspberry Pi Zero 2W 只有 512MB 内存,而 OpenClaw 最低要求 1GB,因此无法正常运行。建议使用 Raspberry Pi 4/5 或更高版本。

快速启动 OpenClaw

如果您想尽快体验 OpenClaw 的强大功能,请使用此方法。它将自动安装并启动一个交互式设置向导。

  1. 在 Raspberry Pi 上打开终端,直接运行以下命令。此命令将从官网下载安装脚本并执行:

    curl -fsSL https://openclaw.ai/install.sh | bash
    

    备注

    由于新版本更新速度很快,如果您的安装步骤略有不同,这是正常现象。

  2. 脚本将自动下载并安装 OpenClaw。

    _images/install_open_claw.png
  3. 接下来您会看到一个安全提示,询问您是否信任 OpenClaw。确认它安全可靠后,使用方向键选择”Yes”并按 Enter。

    _images/security_open_claw.png
  4. 选择 Quick Start,然后按 Enter。

    _images/quickstart_open_claw.png
  5. 选择您的模型,然后按 Enter。这里以 OpenAI 为例。

    _images/model_provider_open_claw.png
  6. 选择 OpenAI API Key。

    _images/api_key_open_claw.png
  7. 立即粘贴 API key。

    _images/paste_api_key_open_claw.png
  8. 前往 OpenAI Platform 并登录。在 API keys 页面,点击 Create new secret key

    _images/llm_openai_create1.png
  9. 填写详细信息(Owner、Name、Project 以及权限(如有需要)),然后点击 Create secret key

    _images/llm_openai_create_confirm1.png
  10. 密钥创建后,请立即复制——您将无法再次查看。如果丢失,需要重新生成。

    _images/llm_openai_copy1.png
  11. 将密钥粘贴到 OpenClaw 配置中。

    _images/paste_api_key_enter_open_claw.png
  12. 选择您要使用的模型。在本示例中,我们将使用 Keep current

    _images/model_config_open_claw.png
  13. 接下来是通道(Channel)选择。通道是指 OpenClaw 支持的通信服务,如 Telegram、WhatsApp、Discord 等。使用下方向键选择”Skip for now”选项,然后按 Enter。

    _images/channel_open_claw.png
  14. 接下来会提示您立即配置技能(Skills)。选择”Yes”并按 Enter。

    _images/config_skill_open_claw.png
  15. 安装您需要的技能。在以下示例中,我们选择”Skip for now”选项(按空格键选择),然后按 Enter。

    _images/install_skill_open_claw.png
  16. 接下来是 Hooks;我们将勾选”command-logger”和”session-memory”。

    _images/hooks2_open_claw.png
  17. 安装完成。选择”Hatch in TUI”并按 Enter 即可启动 OpenClaw。

_images/hatch_open_claw.png

备注

您可以通过输入以下命令启动 OpenClaw:

openclaw tui

按 Ctrl+C 两次可退出 tui 界面。


让 OpenClaw 操控 PiCar-X

什么是 PiCar-X Skill?

PiCar-X Skill 是 OpenClaw 的一个扩展,让您可以通过自然语言控制 SunFounder PiCar-X 机器人小车。无需编写 Python 脚本或记忆舵机角度,您只需告诉 OpenClaw 您想让 PiCar-X 做什么——比如”向前行驶”、”查看前方情况”或”左转”——OpenClaw 就会自动执行相应的 Python 代码。

以下是 PiCar-X Skill 可以做的事情:

  • 行驶: 前进、后退、通过方向舵机控制左右转向

  • 摄像头云台: 通过双轴摄像头云台左右/上下旋转

  • 传感器: 读取超声波距离、灰度传感器数据,用于巡线和悬崖检测

  • 声音: 通过小车扬声器播放音效和音乐

  • 摄像头视觉: 拍照、人脸检测、颜色追踪、二维码识别、手势识别和交通标志识别


前提条件

在使用 PiCar-X Skill 与 OpenClaw 之前,请确保您已具备:

  1. PiCar-X 已正确组装并连接到 Raspberry Pi

  2. OpenClaw 已安装并运行

  3. 已安装以下 Python 库:

    • picarx

    • robot_hat

    • vilib

您可以通过运行以下命令验证安装:

python3 -c "import picarx"

如果此命令运行无报错,即可继续。


安装 PiCar-X Skill

按照以下步骤为 OpenClaw 安装 PiCar-X Skill:

  1. 将 PiCar-X Skill 文件复制 到 OpenClaw 技能目录:

    cp -r ~/picar-x/picarx-control ~/.openclaw/workspace/skills/
    
  2. 验证安装,查看技能文件:

    ls ~/.openclaw/workspace/skills/picarx-control/
    

    您应该看到 SKILL.mdinstall.shscripts/references/ 出现在输出中。

该技能的 SKILL.md 文件包含 OpenClaw 所需的所有指令——安全规则、每种功能的代码模板,以及从自然语言请求到 Python 代码的映射。OpenClaw 读取此文件并使用它来决定在 PiCar-X 上执行什么代码。


从命令行测试 PiCar-X Skill

在使用该技能与 OpenClaw 之前,您可能想通过终端使用附带的 CLI 工具直接测试基本功能。

检查超声波距离:

python3 ~/.openclaw/workspace/skills/picarx-control/scripts/pc.py sensor distance

前进:

python3 ~/.openclaw/workspace/skills/picarx-control/scripts/pc.py move forward --speed 60

后退:

python3 ~/.openclaw/workspace/skills/picarx-control/scripts/pc.py move backward --speed 60

左转:

python3 ~/.openclaw/workspace/skills/picarx-control/scripts/pc.py turn left --angle 30

右转:

python3 ~/.openclaw/workspace/skills/picarx-control/scripts/pc.py turn right --angle 30

设置摄像头水平角度:

python3 ~/.openclaw/workspace/skills/picarx-control/scripts/pc.py cam pan --angle 30

设置摄像头垂直角度:

python3 ~/.openclaw/workspace/skills/picarx-control/scripts/pc.py cam tilt --angle 20

播放音效:

python3 ~/.openclaw/workspace/skills/picarx-control/scripts/pc.py sound play /path/to/sound.wav --volume 80

读取灰度传感器数据(巡线):

python3 ~/.openclaw/workspace/skills/picarx-control/scripts/pc.py sensor grayscale

运行舵机校准:

python3 ~/.openclaw/workspace/skills/picarx-control/scripts/pc.py calibrate

在 OpenClaw 中使用 PiCar-X Skill

确认 PiCar-X Skill 可以从命令行正常工作后,即可在 OpenClaw 中使用它。

  1. 启动 OpenClaw TUI

    openclaw tui
    
  2. 发送自然语言指令 来控制 PiCar-X。以下是一些示例:

    • “向前行驶”

    • “后退”

    • “左转”

    • “右转”

    • “检查前方是否有障碍物”

    • “看向左边”

    • “向上看”

    • “向下看”

    • “拍张照片”

    • “检测人脸”

    • “找红色物体”

    • “跟随线路”

    • “检查前方是否有悬崖”

  3. OpenClaw 将自动 将您的请求转换为相应的 Python 代码并在 PiCar-X 上执行。


可用操作和命令

以下是 PiCar-X Skill 支持的完整功能列表:

行驶(pc.py move

操作

描述

forward

前进

backward

后退

转向(pc.py turn

操作

描述

left

通过调整转向角度左转

right

通过调整转向角度右转

摄像头云台(pc.py cam

功能

描述

水平旋转

水平旋转摄像头(-90° 至 90°)

垂直旋转

垂直旋转摄像头(-35° 至 65°)

传感器

命令

描述

sensor distance

读取超声波距离传感器(返回厘米值)

sensor grayscale

读取三通道灰度模块数值(用于巡线和悬崖检测)

声音(pc.py sound

命令

描述

sound play <file>

播放音效文件

sound music <file>

播放背景音乐

sound volume <0-100>

设置扬声器音量

sound stop

停止播放

备注

声音文件可以是 Raspberry Pi 上可访问的任何 .wav 格式音频文件。您也可以使用 sound music 来播放背景音乐文件。

摄像头与视觉(通过自然语言 / exec)

功能

描述

拍照

拍摄照片并保存到 ~/Pictures/

人脸检测

检测人脸并报告位置

颜色检测

按颜色定位物体(红、蓝、绿等)

手势识别

识别石头/布/剪刀手势

交通标志检测

识别停止/左转/右转/前进标志

二维码扫描

读取二维码数据和位置

巡线与悬崖检测

功能

描述

巡线

使用三通道灰度传感器在浅色表面上跟随黑线

悬崖检测

使用灰度阈值检测边缘/落差


故障排除

OpenClaw 问题

  1. 安装过程中出现错误 Error: systemctl is-enabled unavailable: Command failed: systemctl --user is-enabled openclaw-gateway.service。该怎么办?

    暂时可以忽略,但在后续步骤中可能会遇到问题。届时请逐一参考解决。

  1. 运行 openclaw tui 时出现错误 -bash: openclaw: command not found。该怎么办?

    执行以下命令:

    echo 'export PATH="$HOME/.npm-global/bin:$PATH"' >> ~/.bashrc
    source ~/.bashrc
    

    现在您应该可以通过 openclaw tui 启动 tui 界面了。

  1. openclaw tui 中遇到 not connected to gateway message not sentgateway disconnected: closed 消息。

    这是因为您的 OpenClaw Gateway 服务未启动。打开另一个终端,执行以下命令启动 OpenClaw Gateway:

    openclaw gateway
    

    然后重新启动 openclaw tui,即可正常使用。

  1. 我想将 OpenClaw Gateway 服务设置为后台运行 / 开机自启。该怎么做?

    通常情况下,OpenClaw Gateway 服务会在开机时自动启动。如果没有,您可以通过以下命令手动启动。

    1. 创建 ~/.config/systemd/user 目录:

    mkdir -p ~/.config/systemd/user
    
    1. 创建 openclaw-gateway.service 文件:

    cat > ~/.config/systemd/user/openclaw-gateway.service << EOF
    [Unit]
    Description=OpenClaw Gateway
    After=network.target
    
    [Service]
    Type=simple
    ExecStart=$HOME/.npm-global/bin/openclaw gateway run
    Restart=on-failure
    RestartSec=10
    Environment="PATH=$HOME/.npm-global/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin"
    Environment="NODE_ENV=production"
    
    [Install]
    WantedBy=default.target
    EOF
    
    1. 然后重新加载 systemd 配置:

    systemctl --user daemon-reload
    
    1. 启动服务:

    systemctl --user start openclaw-gateway
    

    此时重新启动 openclaw tui,即可正常使用。

    1. 设置开机自启:

    systemctl --user enable openclaw-gateway
    
  1. 我的 OpenClaw 无法操作系统,该怎么办?

    新安装的 OpenClaw 可能默认没有操作 Raspberry Pi 系统的权限,只能聊天。我们需要手动配置权限。

    1. 打开 OpenClaw 配置文件:

    nano ~/.openclaw/openclaw.json
    
    1. 找到 tools 选项,将 profileexec 修改为如下所示。

    "tools": {
        "profile": "coding",
        "exec": {
            "secrity": "full"
        }
    },
    
    1. 保存并退出。

    2. 在终端输入以下命令重启 OpenClaw Gateway:

    openclaw gateway restart
    

    现在,OpenClaw 应该具有读写权限,能够操作您的 Raspberry Pi 系统了。

PiCar-X 问题

  1. PiCar-X 不响应命令。该怎么办?

    首先,确认 PiCar-X 已正确连接并通电。然后测试基本功能:

    python3 ~/.openclaw/workspace/skills/picarx-control/scripts/pc.py sensor distance
    

    如果失败,请确保所需的 Python 库已安装:

    python3 -c "import picarx; import robot_hat; import vilib"
    
  1. import picarx 测试失败。

    这意味着 PiCar-X Python 库未正确安装。请参考 PiCar-X 官方安装指南安装必要的库。您也可以运行附带的安装脚本:

    bash ~/.openclaw/workspace/skills/picarx-control/install.sh
    
  1. OpenClaw 无法识别 PiCar-X Skill。

    在 TUI 中提醒 OpenClaw 同步技能,说:”Please rsync my skills” 或重启 OpenClaw Gateway:

    openclaw gateway restart
    
  1. PiCar-X 动作显得突兀或转向偏斜。

    这通常是由于舵机校准值不正确导致的。运行校准脚本来调整方向舵机和摄像头云台:

    python3 ~/.openclaw/workspace/skills/picarx-control/scripts/pc.py calibrate
    

    您也可以调整速度参数(例如使用 --speed 40)来获得更平滑的移动,或在连续命令之间添加短暂延迟。

  1. 灰度传感器或巡线不工作。

    确保灰度模块已针对您的表面进行了正确校准。您可以使用配置设置巡线参考值。请参考 PiCar-X 主文档了解灰度校准步骤。