跳到主要内容

通信准备

边侧机运行模型,下位机运行 HEFT 控制器,上位机提供相机图像。 本页在边侧机配置通信与切换工具;机器人端应已启动支持 heft_pico 和 amp 的控制程序。

先安装 LeTools-Learning 主环境。下文 /path/to/... 均需替换为本机绝对路径;CLI 使用的库为 x86_64 版本,不要直接用于 ARM64 边侧机。

1. 连接网络与相机​

通过有线网络连接边侧机和机器人。以下为示例地址,已有网络可沿用,但所有配置须一致:

设备地址
机器人下位机 / 网关192.168.26.1
机器人上位机 / ROS Master192.168.26.12
边侧机192.168.26.10,掩码 255.255.255.0,网关 192.168.26.1

如需在下位机建立桥接,两个接口应是下位机本地分别连接上位机、边侧机的物理网口,用 ip -br addr 确认。具体桥接脚本见 LETools 全身 VLA 教程。

桥接会影响当前网络

脚本会停用接口、清空原 IP,并调整桥接流量过滤。操作前记录原配置,准备本地终端或备用连接;不要直接对承载当前 SSH 的网口执行,也不要照抄示例接口名或地址。

在边侧机确认能 ping 通上下位机。随后在用于启动 Client 的终端设置 ROS:

export ROS_MASTER_URI=http://192.168.26.12:11311
export ROS_IP=192.168.26.10
rostopic list
rostopic hz /camera/color/image_raw/compressed

应能看到相机话题并收到数据。未启动数采服务时,先在上位机启动相机服务;实际话题不同则同步修改部署配置。

2. 编译控制器切换工具​

开源用户使用 LejuLab-Deploy 的 master 分支。退出 Conda 环境,在边侧机执行:

git clone --branch master https://gitcode.com/OpenLET/LejuLab-Deploy.git
cd LejuLab-Deploy
sudo apt-get update
sudo apt-get install -y build-essential cmake libacl1-dev libncurses5-dev
source installed/setup.bash
catkin build

使用 zsh 时将 setup.bash 改为 setup.zsh。编译后确认存在 devel/lib/leju-rl-controller/controller_switch_cli。已有可用切换工具可复用,但工具和动态库须来自匹配版本。

3. 配置 DDS 并测试切换​

修改 LeTools-Learning 的 configs/deploy/cyclonedds_roban_edge.xml,将 NetworkInterface 的 name 设为边侧机连接机器人的实际有线网卡名。

export ROBOT_VERSION=17
export CYCLONEDDS_URI="file:///path/to/LeTools-Learning/configs/deploy/cyclonedds_roban_edge.xml"
export LD_LIBRARY_PATH="/path/to/LejuLab-Deploy/src/lejusdk/3rd_party/x86_64/cyclonedds-cxx-0.10.2/lib:/path/to/LejuLab-Deploy/src/lejusdk/3rd_party/x86_64/cyclonedds-0.10.2/lib${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH}"

/path/to/LejuLab-Deploy/devel/lib/leju-rl-controller/controller_switch_cli amp

在安全站立状态下测试。出现 控制器切换请求已发送: amp 表示请求已发出,还需检查机器人端日志或状态,确认实际切换成功。

将工具及动态库路径填写到 configs/deploy/roban_wholebody_deploy.yaml 的现有 heft 配置节中:

heft:
switch_cli: "/path/to/LejuLab-Deploy/devel/lib/leju-rl-controller/controller_switch_cli"
switch_library_path: "/path/to/LejuLab-Deploy/src/lejusdk/3rd_party/x86_64/cyclonedds-cxx-0.10.2/lib:/path/to/LejuLab-Deploy/src/lejusdk/3rd_party/x86_64/cyclonedds-0.10.2/lib"

不要新增第二个同名 heft 节;后续推理配置继续补充在这一节下。

4. 安装 CycloneDDS 0.10.2​

在 LeTools 主环境中,使用上一步仓库的原生库构建 Python 包,与下位机版本保持一致:

conda activate letools
export CYCLONEDDS_HOME=/path/to/LejuLab-Deploy/src/lejusdk/3rd_party/x86_64/cyclonedds-0.10.2
export CMAKE_PREFIX_PATH="${CYCLONEDDS_HOME}${CMAKE_PREFIX_PATH:+:$CMAKE_PREFIX_PATH}"
mkdir -p /tmp/cyclonedds-python-wheel
python -m pip wheel \
--no-deps \
--no-build-isolation \
--no-binary cyclonedds \
--wheel-dir /tmp/cyclonedds-python-wheel \
cyclonedds==0.10.2
python -m pip install \
--force-reinstall \
--no-deps \
/tmp/cyclonedds-python-wheel/cyclonedds-0.10.2-*.whl
python -m pip show cyclonedds

确认显示版本 0.10.2。这只检查 Python 包安装结果,仍需完成网络、相机和控制器切换验证。

下一步:推理部署。