三、配置 ARM 架构软件源
编辑 ROS 软件源配置文件:
sudo vi /etc/yum.repos.d/ROS.repo
在文件中输入以下内容:
[openEulerROS-humble]
name=openEulerROS-humble
baseurl=https://eulermaker.compass-ci.openeuler.openatom.cn/api/ems1/repositories/ROS-SIG-Multi-Version_ros-humble_openEuler-24.03-LTS-TEST4/openEuler%3A24.03-LTS/aarch64/
enabled=1
gpgcheck=0
四、安装 ROS2 Humble 完整软件包
安装过程耗时较长,请确保设备网络稳定、存储空间充足(至少预留 30GB)。
更新系统软件源:
dnf update
执行 ROS2 Humble 完整安装
(跳过冲突包、避免整包过大,跳过含debug和Resource关键词的包)
dnf install "ros-humble-*" --skip-broken
--exclude=ros-humble-generate-parameter-library-example
--exclude="debug "
--exclude="Resource"
五、配置 ROS2 环境变量
编辑用户环境配置文件:
vi ~/.bashrc
在文件末尾追加以下内容,加载 ROS2 环境:
source /opt/ros/humble/setup.bash
保存退出后,执行以下命令使环境变量立即生效:
source ~/.bashrc
六、验证安装
执行以下命令检查 ROS2 环境是否正常加载:
ros2 --version
若输出版本号(如 humble),则说明安装成功。
环境初始化 (First-time Setup)
重要:本步骤仅需在初次克隆项目后运行一次。
0. 系统要求
操作系统: openEuler Embedded 24.03
ROS 版本: ROS 2 Humble
Python: 系统原生 Python 3.11。严禁在 Conda 激活的环境中执行,否则会导致动态库冲突。
1. 执行一键初始化
./scripts/setup.sh
该脚本会自动完成以下重型操作:
子模块同步: 执行 git submodule update --init --recursive,下载核心源码。
系统依赖安装: 通过系统包管理器安装 C++ 编译工具、nlohmann-json 等硬件驱动依赖。
虚拟环境 (venv) 构建: 在根目录创建 venv 文件夹。这能确保 ML 相关依赖(如 PyTorch)与系统 ROS 2 环境隔离,防止破坏系统工具。
ML 栈安装: 自动在 venv 中安装 torch、lerobot 以及适配 ROS 2 Humble 的特定版本 numpy (< 2.0)。
环境脚本注入: 自动生成或更新 .shrc_local,用于一键加载开发环境。
开发工作流
1. 加载环境
每次开启新终端,必须先加载项目环境变量。这会激活 venv 并注入必要的 PYTHONPATH。
source .shrc_local
2. 分配 Domain ID
为了避免与局域网内其他 ROS 2 用户冲突,建议设置唯一的 Domain ID:
export ROS_DOMAIN_ID=<0-232之间的唯一数字>
3. 编译项目
代码修改后,运行统一构建脚本:
./scripts/build.sh
注:该脚本会自动处理 lerobot 的可编辑安装,并清理潜在的构建污染。
- 编译完成后为防止找不到建议再次执行:
source .shrc_local
第一步:先确认 FFmpeg 头文件到底装在哪里了
运行这条命令,看看 pixfmt.h 具体在哪个目录:
运行
rpm -ql ffmpeg-devel | grep pixfmt.h
可能的输出示例:
/usr/include/ffmpeg/libavutil/pixfmt.h(常见情况)
/usr/include/libavutil/pixfmt.h
第二步:根据头文件位置,给编译添加路径参数
假设第一步查到的路径是 /usr/include/ffmpeg(如果是其他路径,下面命令里对应修改),我们需要强制让编译器找到这个目录。
方法 :通过环境变量指定(推荐,最简单)
在编译前,先设置这两个环境变量:
运行
export CPLUS_INCLUDE_PATH=/usr/include/ffmpeg:$CPLUS_INCLUDE_PATH
export C_INCLUDE_PATH=/usr/include/ffmpeg:$C_INCLUDE_PATH
然后再清理并重新编译:
运行
cd /root/IB_Robot
机械臂校准
- 使用以下命令启动 venv 环境
source .shrc_local

- 启动机械臂校准脚本逻辑,包含中位标定和极限位置录入
ros2 run so101_hardware calibrate_arm --arm follower --port /dev/ttyACM0
机器人端配置 (RosClaw & Bridge)
启动机器人本体: 首先启动机器人本体程序(支持仿真或实机):
-
use_sim:=true 为仿真模式,false 为真实硬件模式
ros2 launch robot_config robot.launch.py robot_config:=so101_single_arm control_mode:=model_inference use_sim:=false with_inference:=false
启动社交桥梁: 本项目已将 RosClaw 作为子模块引入 src/rosclaw。执行以下脚本一键启动:
- 自动编译子模块并启动 rosbridge_websocket, rosapi 和 discovery 节点
./scripts/start_rosclaw.sh

- 注意:在 IB_Robot 根目录下执行,将插件安装到 OpenClaw
openclaw plugins install ./src/rosclaw/extensions/openclaw-plugin