灵犀 X2 二次开发指南

1158 字
6 分钟
灵犀 X2 二次开发指南
灵犀 X2 二次开发指南

1. 环境总览#

表1 环境总览

环境系统路径用途
机器人Ubuntu ARM64,ROS 2 Humble~/aimdk(容器内)真机编译、控制、SLAM
WindowsWindows 11—网络配置

SDK 版本:v1.1.0

参考: 智元机器人灵犀X2 ROS2官方文档

2.1 Windows 端静态 IP#

打开 ncpa.cpl,找到连接机器人的“以太网”网卡 → 属性 → IPv4:

  • IP 地址:192.168.88.88
  • 子网掩码:255.255.255.0
  • 网关/DNS:留空

2.2 机器人连接#

Terminal window
ping 10.0.1.41
ssh agi@10.0.1.41 # 密码通常为 1

3. 机器人端开发(SSH + 宿主机编译)#

注意:容器方案在机器人上因内核限制不可用(cannot clone: Operation not permitted),以下均为宿主机直接编译。

Terminal window
ssh agi@10.0.1.41 # 密码通常为 1
# 进入 SDK 目录
cd ~/aimdk

4. 常用机器人指令#

py_examples 里可直接运行的示例脚本如下(部分功能可能未配备,请谨慎运行):

py_examples 目录下的示例脚本
py_examples 目录下的示例脚本

Terminal window
ros2 run py_examples get_mc_action # 获取运动模式
Terminal window
ros2 run py_examples preset_motion_client # 预设动作
Terminal window
ros2 run py_examples mc_locomotion_velocity # 速度控制
Terminal window
ros2 run py_examples play_linkcraft # 播放灵犀工坊作品

4.1 获取运动模式 get_mc_action#

Terminal window
ros2 run py_examples get_mc_action

get_mc_action 的输出
get_mc_action 的输出

输出中的 Mode name 就是当前运动状态,可在最后的运动模式对照表里查对应名称。

4.2 切换运动模式 set_mc_action#

Terminal window
ros2 run py_examples set_mc_action SD

可用的模式缩写:

set_mc_action 可用缩写
set_mc_action 可用缩写

出现下面的输出即视为切换成功:

set_mc_action 切换成功
set_mc_action 切换成功

4.3 预设动作 preset_motion_client#

Terminal window
ros2 run py_examples preset_motion_client

动作—代码对照表:

动作名称motionarea说明动作名称motionarea说明
右手挥手10022稳定站立模式下执行拥抱300811同上
左手挥手10021同上加油301111同上
右手握手10032同上双手平举10103同上
左手握手10031同上右手平举10102同上
右手举手10012同上左手平举10101同上
左手举手10011同上拜拜303111同上
右手飞吻10042同上动感光波300711同上
左手飞吻10041同上右手击掌10082同上
鼓掌301711同上左手击掌10081同上
右手敬礼10132同上双手打叉300911同上
左手敬礼10131同上胸前右手挥手10112同上
双手比心10073同上胸前左手挥手10111同上
右手比心10072同上鞠躬300111同上
双手比心10073同上挠头302411同上
右手比心10072同上抓屁股302511同上
左手比心10071同上

按提示输入 arm area ID 与 preset motion ID,出现下面输出即为下发成功:

preset_motion_client 下发成功
preset_motion_client 下发成功

4.4 速度控制 mc_locomotion_velocity#

Terminal window
ros2 run py_examples mc_locomotion_velocity

三个数值按需求填写(0.0—1.0,单位 m/s),数值不要太大,防止机器人误伤:

mc_locomotion_velocity 的输出
mc_locomotion_velocity 的输出

4.5 播放灵犀工坊作品 play_linkcraft#

Terminal window
ros2 run py_examples play_linkcraft

先列出机器人上已有的作品资源:

play_linkcraft 资源列表
play_linkcraft 资源列表

在提示符处按索引选择作品,出现 Play success 即为播放成功:

play_linkcraft 播放成功
play_linkcraft 播放成功

4.6 运动模式对照#

表2 运动模式对照

缩写模式名说明
PDPASSIVE_DEFAULT零力矩
DDDAMPING_DEFAULT阻尼模式
JDJOINT_DEFAULT位置控制站立(关节锁定)
SDSTAND_DEFAULT稳定站立(自动平衡)
LDLOCOMOTION_DEFAULT行走/奔跑

官方文档里的完整版本(含使用场景):

运动模式表
运动模式表

5. 已知问题与故障排查#

5.1 编译相关#

表4 编译问题排查

报错原因解决
Duplicate package namessrc 下存在同名包删除多余副本(备份目录移出 src)
cannot find …/urdfx2_description 缺少 urdf 目录在 X2_URDF-v1.3.0/ 下 mkdir urdf && cp *.urdf urdf/
Undefined symbol: ProcessInfoaimdk_msgs 版本缺消息用 x2_rl_deploy/aimdk_msgs 替换并补全
ImportError: McLocomotionVelocity替换后缺原 SDK 消息从备份恢复 aimdk_msgs,合入 6 个 HDS 消息

5.2 仿真相关#

现象:进入 RL_ACTIVE 后机器人持续抽搐或直接躺倒,无法站立。

已尝试:

  • 补全 DEFAULT_JOINT_POS 为 31 个关节
  • 重置时显式设置 pelvis 完整位姿(位置+四元数)
  • 调整 pelvis 高度(0.40 / 0.50 / 0.55)
  • 调整稳定步数(500 / 3000)
  • 切换 PD 增益(standup_gains / rl_gains)
  • 放宽 GRAVITY_PITCH_LIMIT

结论:策略在 IsaacLab 训练,与 MuJoCo 物理环境存在差异,需官方提供 sim2sim 对齐配置。

6. 安全注意事项#

  • 停止 mc 模块前必须确保机器人有吊挂或安全支撑。
  • 真机控制夹爪/灯带前,先确认当前运动模式,避免冲突。
  • sudo 权限受限,不要随意安装系统包。
  • 容器方案在机器人上不可用,请使用宿主机直接编译。

7. 版本与备份#

  • 机器人 SDK:v1.1.0
  • WSL 工作空间:~/aimdk_sim_ws
  • 备份目录:~/aimdk_msgs_bak(已移出 src)

本网站提供的所有教程仅供学习使用,无任何商务用途!#

文章分享

如果这篇文章对你有帮助,欢迎分享给更多人!

灵犀 X2 二次开发指南
https://blog.levek.top/posts/linix/灵犀x2二次开发指南/
作者
levek
发布于
2026-09-21
许可协议
CC BY-NC-SA 4.0
Profile Image of the Author
levek
Hello, I'm levek.
公告
欢迎来到我的博客!
分类
标签
最新动态
站点统计
文章
8
分类
1
标签
14
总字数
6,121
运行时长
0 天
最后活动
0 天前
站点信息
构建平台
Local
博客版本
Firefly v6.16.8
文章许可
CC BY-NC-SA 4.0
文章目录