Personal archive

深度相机与松灵机械臂使用经验总结(RealSense L515 / D435i + 松灵 PiPER / NERO)

记录 RealSense 深度相机、手眼标定、PiPER / NERO 机械臂通信与末端执行器调试中的实用经验。

On this page
  1. 深度相机:L515 与 D435i
  2. 先检查硬编码的相机内参
  3. 确认实际 USB 链路速率
  4. 不要同时打开两个取流工具
  5. 手眼标定
  6. 标定前核对 ArUco 标定板
  7. 机械臂本体与通信:PiPER / NERO
  8. 多台机械臂共存时,分清 CAN 口与机械臂的对应关系
  9. NERO 关节角读取错误
  10. 断电安全位置与碰撞保护恢复
  11. PiPER 夹爪线缆很短
  12. 末端执行器:灵巧手与夹爪
  13. 先确认“开 / 关”状态的极性
  14. 运动学求解
  15. 谨慎使用出厂自带的 IK 求解器

适用环境:Intel RealSense L515 / D435i 深度相机;松灵(AgileX)PiPER、NERO 机械臂;ROS 开发环境。

深度相机:L515 与 D435i

先检查硬编码的相机内参

写得不够规范的代码常常会把相机内参(尤其是 `depth_scale`)硬编码在程序里。更换深度相机型号时,应该逐项核对:

相机型号 深度原理 `depth_scale`
L515 激光(MEMS 扫描) 0.00025
D435i 双目立体视觉(非激光) 约 0.001

两者相差约 4 倍。参数不匹配时,点云无法正确对齐,画面会出现明显异常。更稳妥的做法是把 `depth_scale` 等参数放进配置文件,换相机时只修改配置,不改业务代码。

确认实际 USB 链路速率

使用深度数据时,最好让相机走 USB 3.x。过长的被动式 USB 延长线(不带主动头)可能导致链路降级到 USB 2.0,使深度流带宽不足。

需要延长时,应改用带主动中继芯片的延长线或主动光缆,并确认设备实际协商到的速率确实是 USB 3.x。

不要同时打开两个取流工具

`realsense-viewer` 与 `rqt_image_view` 不要同时运行。两者可能争抢同一个相机的取流资源,调试时固定使用其中一个即可。

手眼标定

标定前核对 ArUco 标定板

  • 尺寸: 打印出来的标定板尺寸经常与设计值不一致,而尺寸会直接参与位姿解算。打印后务必用尺实测,再把实际数值填入程序。
  • 类型: 确认使用的 ArUco 字典和检测代码中的字典一致。
  • marker ID: 确认标定板上各 marker 的 ID 与代码中的对应关系一致。

机械臂本体与通信:PiPER / NERO

多台机械臂共存时,分清 CAN 口与机械臂的对应关系

PiPER / NERO 通过 CAN 口通信。主机同时连接多台机械臂时,要先确认每个 CAN 口对应哪条机械臂,否则容易把指令发给错误的臂。可以通过重命名 CAN 口来减少混淆。

NERO 关节角读取错误

NERO 有可能出现关节角读取错误。处理方法是重新校准零位置,然后强制复位。

断电安全位置与碰撞保护恢复

  • 断电前让机械臂保持在安全位置。
  • PiPER 触发碰撞保护后,通常无法通过软件复位,只能断电重启恢复。

PiPER 夹爪线缆很短

PiPER 夹爪的供电/通信线很短,最后一个关节旋转角度过大时可能把线缆拉断。

安装时,尽量选择让线缆两端插在距离较近的接口上的方案,减少线缆被绷紧的风险。

末端执行器:灵巧手与夹爪

先确认“开 / 关”状态的极性

使用灵巧手时,要先确认“开”和“关”分别对应哪个数值状态。例如,InspireHand 和 BrainCo Revo2 的设定恰好相反。

对接新的灵巧手时,先实测开合极性,再进行上层封装,避免发送“张开”指令时实际闭合。

运动学求解

谨慎使用出厂自带的 IK 求解器

PiPER 和 NERO 出厂自带的 IK 求解器在实际使用中可能不够稳定。正式项目中,建议替换为更可靠、经过验证的求解方案。

Back to archive