Hi3403开发板 + openEuler Embedded 运行IB-Robot + 控制 Lerobot 机械臂跳舞

三、配置 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

相关推荐
thesky1234561 天前
智能体面试准备(四十三):具身智能体与机器人实操——从 VLA 到 Sim2Real
机器人·导航·操作·具身智能·智能体·vla·视觉语言动作
猫先生Mr.Mao1 天前
具身智能语言规划之SayCan详解:让大模型“会说”,也让机器人“能做”
机器人·大语言模型·论文解读·具身智能·saycan
咕泡科技1 天前
世界机器人大会WRC2026观察:机器人告别表演时代,具身智能工程人才缺口显现
机器人·具身智能·世界机器人大会·wrc2026·ai人才培养
dorky-org1 天前
03-Python基础
python·具身智能
赋创小助手1 天前
机器人研发负载拆解:数据、仿真、训练与推理分别需要哪些计算资源?
服务器·人工智能·机器人·具身智能·gpu计算
国产化创客1 天前
AI时代全栈嵌入式开发学习路线
人工智能·嵌入式硬件·物联网·嵌入式·学习路线·知识体系·具身智能
猫先生Mr.Mao2 天前
具身智能之UniJEPA详解:让机器人同时“听懂、预见、动起来”的统一表征学习
论文解读·具身智能·vla·机器人学习·世界模型
zhangrelay4 天前
ROS 2 Lyrical 第9章 计算机视觉与摄像头应用
linux·笔记·学习·ubuntu·机器人·ros2
chen_zn955 天前
《VLA 系列》π0.7 | 多模态提示可控机器人基座模型 | 组合泛化与跨本体迁移 | 论文与复现思路
具身智能·vla·世界模型·记忆机制·子任务
_张一凡5 天前
【论文解读】视觉语言导航 VLN:用 Matterport3D 真实全景和 R2R 众包指令,把“听懂人话再走路“做成首个可打分的具身基准
具身智能·vla