故障排除

1. 先做环境一致性自检(建议先看)

  1. 按本文“安装与部署”里要求的顺序执行 source(先 ti5_control,后工作空间根 install)。

  2. 确认你运行时用到的 ti5_control 前缀是当前工作空间的那一份:

ros2 pkg prefix ti5_control

如果输出路径不是你当前期望的工作空间前缀,优先先修正 source,不要直接反复启动/重跑 demo。

2. 编译提示找不到 ti5_control / 运行提示找不到包

  • 先按“先做环境一致性自检”里方式检查 sourceros2 pkg prefix ti5_control

  • 若你尚未完成工作空间根目录 colcon build,先完成根目录构建再运行;否则可能会出现依赖解析失败

3. 服务发现不到 / 示例端超时

常见检查点:

  • arm_ik_noderobot_type 必须与调用侧/配置侧一致(joint_manager --type 对应同一型号)

  • 如果使用 ROS 命名空间(如 --ns /robot1),调用侧与服务端要保持相同命名空间;domain_id 也要一致

4. 动态库找不到

  • 若报错指向找不到 libti5_trajectory_planner.so 或其它 ti5_control 相关 .so,优先确保你已执行正确的 source(见上文一致性自检)

  • 若你确实需要手动让系统加载路径可见(高阶、非必须),可将 ti5_control 的 lib 路径写入 ld.so.conf.d,再执行 sudo ldconfig(路径按工作空间实际调整)

5. CAN/串口权限

  • CAN/网卡类通常不建议普通权限下直接跑;若需要请按你们环境配置 capability

  • 若你执行 ros2 launch ti5_bringup ti5_bringup.launch.py type:=T140A(或开启 enable_sri_can)时遇到 CAN 权限相关报错,建议先手动运行服务脚本打开所需能力:

    • ./script/run_ti5_services.sh --type T140A

    • 该脚本会对 joint_manager / sri_can_node 设置 setcap cap_net_admin,cap_net_raw+eip(以及必要时刷新动态库加载配置),用于非 sudo 访问 CAN。

  • 灵巧手串口权限不足时,常见修复是把用户加入 dialout

  • 说明:setcap 能力是写在二进制文件(可执行文件路径)上的。如果你把 ros 包移植到其它目录、或重新编译后生成了新的可执行文件,能力可能不会自动继承,此时需要再运行一次 ./script/run_ti5_services.sh --type <你的型号> 重新配置。

6. CSV 动作播放失败

  • CSV 文件与当前运行的 ti5_control 安装布局、型号目录需匹配

  • 典型排查思路:确认对应 <型号>/...csv 是否存在于当前 ti5_control 安装前缀的 share/ 目录下