跳到主要内容

SDK介绍

本SDK主要用于控制机器人各个部分的运动和状态。使用以 Lejulab_ARM 仓库为准。当前 SDK 使用 C++17 + Cyclone DDS,不依赖 ROS1、catkin 或 rosbridge。

接口分层​

接口层主要头文件适用场景
底层接口lejusdk-lowlevel/leju_sdk.h获取机器人、IMU、硬件和手柄状态;开发电机级控制或驱动程序
上层控制接口lejusdk-vr/lejusdk_vr.h控制 Roban 手臂、头部、腰部和移动速度;切换控制模式;查询运行状态;播放 tact 动作
通信与工具Cyclone DDS、Iceoryx、命令行程序同机或局域网通信、状态诊断、音频播放和数据记录

应用程序通常优先使用 lejusdk-vr。只有需要读取底层状态或直接构造全关节 RobotCmd 时,才使用 lejusdk-lowlevel;关节数量和顺序应分别从 getMotorNumber() 和 getMotorNames() 获取。

仓库结构​

Lejulab_ARM/
├── installed/ # 已安装的头文件、动态库、可执行程序和环境脚本
│ ├── include/lejusdk-lowlevel/
│ ├── include/lejusdk-vr/
│ ├── lib/
│ └── setup.bash
├── src/lejusdk/examples/ # SDK 示例
├── src/leju_launch/scripts/ # 实机与 MuJoCo 启动脚本
├── src/leju-hardware/config/ # 各机器人版本配置
└── README_DEPLOY.md # 源码组件部署说明(SDK 已预编译)

开发前确认​

cd <Lejulab_ARM>
export ROBOT_VERSION=17
source installed/setup.bash
echo "$CYCLONEDDS_URI"

ROBOT_VERSION 必须与当前机器人配置一致,不能根据产品名称自行猜测。已核验的 Roban2 2.2 实机使用值为 17;更换机器人或软件包后,应以设备实际环境变量和配置目录为准。

默认部署使用 /etc/cyclonedds/cyclonedds_shm.xml,同机进程通过 Cyclone DDS 和 Iceoryx 共享内存通信。跨主机开发参见 DDS 通信与远程开发。

文档入口​

实机安全

读取状态不会驱动机器人。任何 publish*Cmd、startRuntime、startMotion、playTact 或模式切换接口都可能让机器人运动。实机测试前必须固定机器人、清空活动范围、确认急停可用,并由现场人员监护。