跳转至

数据录制与回放

示例 1:启动 foxglove_bridge 并录制数据

远程开启 ROS 2 完整话题的 MCAP 录制,数据默认存储至 ~/.ros/bags/ 目录下。Foxglove 支持该 MCAP 包的回放(默认仅包含消息数据)。如需同步显示机器人模型动画,请参考 示例 2。

  1. 连接机器人NUC:

    ssh pnd-humanoid@192.168.XX.XX # 将XX.XX替换为实际IP地址,位于遥控器手柄背面,输入初始密码:pndxyz
    

  2. 开启桥接模式并开始录制:

    # 请按型号选择对应命令:
    # Adam Pro
    ./pnd_bridge.sh --enable-foxglove-bridge --enable-record --robot adam_pro --domain-id 0
    # Adam U
    ./pnd_bridge.sh --enable-foxglove-bridge --enable-record --robot adam_u --domain-id 0 
    # Adam SP
    ./pnd_bridge.sh --enable-foxglove-bridge --enable-record --robot adam_sp --domain-id 0
    # Adam Lite
    ./pnd_bridge.sh --enable-foxglove-bridge --enable-record --robot adam_lite --domain-id 0 
    
    Ctrl+C结束录制。

  3. 查找录制好的文件:

    cd ~/.ros/bags
    ls
    
    可以看到以录制时间命名的文件。

  4. 在本机打开一个新的终端,下载录制文件(请将YYYYMMDDHH_MMSS替换为实际的文件名):

    scp -r pnd-humanoid@192.168.XX.XX:~/.ros/bags/YYYYMMDDHH_MMSS ~/Downloads/
    

  5. 使用谷歌浏览器访问 Foxglove Dashboard 或打开 Foxglove Desktop 客户端。

  6. 点击 Open local file,导入YYYYMMDD_HHMMSS.mcap文件。

提示

  • Domain ID 匹配:请确保 --domain-id 参数与系统环境变量 ROS_DOMAIN_ID 严格一致。
  • WebSocket 服务:开启 --enable-foxglove-bridge 后,机器人端将在 8765 端口启动 WebSocket 服务。本地 Foxglove 客户端连接该端口即可实现实时数据监控。

示例 2:本地回放 MCAP 包及加载机器人模型

  1. 在本机打开一个终端,同步远程数据至本地:

    # 下载 MCAP 录制文件(请将`YYYYMMDDHH_MMSS`替换为实际的文件名)
    scp -r pnd-humanoid@192.168.XX.XX:~/.ros/bags/YYYYMMDDHH_MMSS ~/Downloads/
    
    # 递归下载模型资源目录
    scp -r pnd-humanoid@192.168.XX.XX:/opt/pnd/pnd_bridge/install/share/pnd_assets ~/Downloads/
    

  2. 启动轻量级文件服务器(默认地址:http://127.0.0.1:8000):

    cd Downloads/pnd_assets
    python3 ./server.py
    

  3. 使用谷歌浏览器访问 Foxglove Dashboard 或打开 Foxglove Desktop 客户端。

  4. 点击 Open local file,导入YYYYMMDD_HHMMSS.mcap文件。

  5. 在 Foxglove 界面中,点击 3DPanel --> Custom Layers --> URDF

    • Source:选择 URL。
    • URL:填入对应机型的 URDF 路径,例如:
      • http://127.0.0.1:8000/adam_u/adam_u.urdf
      • http://127.0.0.1:8000/adam_pro/adam_pro.urdf urdf_layer

配置完成后,可使用界面底端按钮播放/暂停: urdf