概述

1. 软件包结构

Ti5_ROS2 基于 ROS 2 Humble,提供关节控制、手臂运动学(IK/FK)与外设接入能力,可用于上层应用集成与二次开发。

系统核心能力:

  • 关节控制:通过 ti5/jointcmd_list 下发关节目标,通过 ti5/jointstate_list 获取状态反馈(含 seq / timestamp_ns 新鲜度检测)

  • 运控状态:通过 ti5/motion_control_status 获取双臂/身体运控模式与规划运动反馈

  • 动作控制:通过 ti5/joint_actionti5/body_move 实现预设动作和身体分组控制(规划类接口返回 motion_id 与运动状态,到位需轮询运控状态)

  • 手臂运动学:通过 ti5/arm_ikti5/arm_fk 完成末端位姿与关节角转换;通过 ti5/arm_movejti5/arm_movel 完成轨迹规划与可选执行

  • T170C / T170C_2_0 折叠机构:通过 ti5/waist_fkti5/waist_ik 做正/逆解;通过 ti5/waist_movejti5/waist_movel 做关节/笛卡尔轨迹规划(--type T170CT170C_2_0

  • 外设控制:灵巧手、六维力、底盘、语音对话

Ti5_ROS2 工作空间内主要 ROS 包:

  • ti5_control:核心控制(joint_manager、消息与服务定义等;源码位于 src/ti5_control/,包根为 src/ti5_control/src/ti5_control/

  • ti5_control_client:示例与依赖 ti5_control 接口的客户端(如 joint_cmd_client

  • ti5_hand:灵巧手

  • ti5_gripper:夹爪(OmniPicker CAN 协议)

  • sri_can:六维力传感器

  • ti5_chassis:底盘控制(WebSocket 底盘桥接)

  • ti5_chat:语音/对话服务适配(ROS2 服务转发到 ti5Chat HTTP 服务)

  • ti5_bringup:启动编排

说明:ti5_control_client 包内:src/config/(示例 YAML)、src/example/(如 joint_cmd_client)、src/reference/msg|srv/(与 ti5_control 消息/服务定义同名的只读副本,便于对照;不参与 rosidl 生成);包根下与 src/ 同级script/ 为辅助 shell(如 run_joint_cmd.shrun_multi_robot.sh)。构建仍通过 find_package(ti5_control) 使用已安装ti5_control 接口。

2. 交付架构概览

客户通常只需要启动“服务端”(机器人本体与外设节点),再按需启动“客户端 demo”(用于联调/二次开发参考)。

                 +-----------------------+
                 |       ti5_bringup     |
                 |  services.launch.py   |
                 +-----------+-----------+
                             |
        +--------------------+--------------------+
        |                                         |
  +-----v-----+                           +------v------+
  | ti5_control|                           | 外设节点      |
  | joint_manager|                           | ti5_hand/    |
  | arm_ik/fk  |                           | ti5_gripper/ |
  |            |                           | sri_can/     |
  +-------------+                           | ti5_chassis/ |
        |                                   | ti5_chat/     |
        |                                   +--------------+
  topics/services:
    ti5/jointcmd_list, ti5/jointstate_list
    ti5/motion_control_status
    ti5/joint_action, ti5/body_move, ti5/release_motion_control
    ti5/arm_ik, ti5/arm_fk
    ti5/arm_movej, ti5/arm_movel
    ti5/waist_fk, ti5/waist_ik          # T170C / T170C_2_0
    ti5/waist_movej, ti5/waist_movel    # T170C / T170C_2_0
    
    
                             ^
                             |
                 +-----------+-----------+
                 |   ti5_control_client |
                 |  joint_cmd_client*    |
                 +------------------------+

说明:当前交付架构中,ti5/arm_ikti5/arm_fkjoint_manager 进程内提供,不再需要单独启动 arm_ik_node

3. 依赖与环境配置

  • 系统:Ubuntu 22.04,ROS 2 Humble。

  • 构建colcon;系统依赖可用 rosdep 按各包 package.xml 安装。

  • 设备权限:CAN、串口等见 故障排除

  • 包依赖ti5_control_clientti5_bringup 等依赖已安装的 ti5_control在本机如何编译、如何 source 环境、如何启动节点 一律见下文 安装与部署(避免与概述重复)。