安装与部署

1. 安装步骤

环境加载(ti5_control

首次在本工作空间执行 colcon build 前:

source <工作空间>/src/ti5_control/install/setup.bash

之后在新终端使用本工作空间时:

source <工作空间>/install/setup.bash

./script/run_ti5_services.shrun_ti5_client.shrun_ti5_demo.sh 会按需加载环境。

前置条件

  • 已按上文完成 source 并完成构建;外设(CAN、串口)权限已配置;异常见 故障排除

编译工作空间

在工作空间根目录(含 src 的上一级)执行:

cd <工作空间根目录>
colcon build --symlink-install
source install/setup.bash

确认 ti5_control 已被识别(可选)

source <工作空间>/install/setup.bash
ros2 pkg prefix ti5_control

清理本工作空间构建产物(可选)

删除工作空间根目录下的 buildinstalllog 后重新 colcon build勿删除 src/ti5_control/installti5_control 安装树)。

2. 启动文件说明

编排与参数

  • 入口:ti5_bringup/ti5_bringup.launch.py(正式入口)

  • 服务层:ti5_bringup/services.launch.py(核心节点 + 外设节点)

  • 默认参数:ti5_bringup/config/system.yaml

  • 覆盖方式:ros2 launch ... param:=valueCLI 优先于 system.yaml

  • DDSservices.launch.py 会将 domain_id 写入 ROS_DOMAIN_ID;与其它终端单独启动的节点联调时需一致(见下文「多实例/隔离示例」)

统一入口(最简):

ros2 launch ti5_bringup ti5_bringup.launch.py type:=T140A

核心参数:

参数

说明

默认值

type

机器人型号(如 T140AT170CT170D

T140A

namespace

命名空间(多实例隔离,如 /robot1

domain_id

DDS 域 ID(系统级隔离)

0

enable_hand

启用灵巧手节点

true

enable_sri_can

启用六维力节点

true

enable_chassis

启用底盘桥接节点

false

enable_chat

启用语音/对话节点 ti5_chat_node

false

chat_http_base_url

ti5_chat 后端 HTTP 地址

http://127.0.0.1:4990

enable_joint_demo

启动 joint_cmd_client 示例节点

false

enable_hand_demo

启动 hand_cmd 示例节点

false

常见启动组合:

场景

命令

使用 system.yaml 默认开关启动

ros2 launch ti5_bringup ti5_bringup.launch.py type:=T140A

仅核心(关闭所有外设)

ros2 launch ti5_bringup ti5_bringup.launch.py type:=T140A enable_hand:=false enable_sri_can:=false enable_chassis:=false

核心 + 六维力

ros2 launch ti5_bringup ti5_bringup.launch.py type:=T140A enable_sri_can:=true

核心 + 灵巧手

ros2 launch ti5_bringup ti5_bringup.launch.py type:=T140A enable_hand:=true

核心 + 底盘

ros2 launch ti5_bringup ti5_bringup.launch.py type:=T140A enable_chassis:=true

核心 + 语音对话

ros2 launch ti5_bringup ti5_bringup.launch.py type:=T140A enable_chat:=true chat_http_base_url:=http://127.0.0.1:4990

仅服务层(无 demo,适合 CLI 测)

ros2 launch ti5_bringup ti5_bringup.launch.py type:=T140A enable_joint_demo:=false enable_hand_demo:=false

服务层 + 手部 demo(无 joint demo)

ros2 launch ti5_bringup ti5_bringup.launch.py type:=T140A enable_joint_demo:=false enable_hand_demo:=true

多实例/隔离示例(可选加参数):

ros2 launch ti5_bringup ti5_bringup.launch.py type:=T140A namespace:=/robot1 domain_id:=1

一键演示

在 ti5_ros2 包根目录下执行(与工作空间 src 同级、含 script/ 的目录):

./script/run_ti5_demo.sh --type T140A

run_ti5_demo.sh 常用参数(内部透传给 services/client 脚本):

  • --enable-hand true|false:是否启动 hand_manager

  • --enable-sri-can true|false:是否启动 sri_can

  • --enable-chassis true|false:是否启动底盘 bridge(ti5_chassis chassis_cmd_bridge

  • --enable-chat true|false:是否启动语音/对话适配节点(ti5_chat_node

  • --chat-http-base-url <url>ti5_chat 后端 HTTP 地址(默认 http://127.0.0.1:4990

  • --demo joint|hand|both:客户端示例类型(joint_cmd_client / hand_cmd / 同时)

示例(启动服务并只跑手部 demo):

./script/run_ti5_demo.sh --type T140A --enable-hand true --enable-sri-can false --demo hand

分步启动(推荐排障)

分步启动(推荐排障)

说明

启动服务层(后台)

./script/run_ti5_services.sh --type T140A

启动示例程序(前台)

./script/run_ti5_client.sh --type T140A

run_ti5_services.sh 外设开关(默认:hand=truesri_can=truechassis=truechat=false):

  • --enable-hand true|false:是否启动 hand_manager

  • --enable-sri-can true|false:是否启动 sri_can

  • --enable-chassis true|false:是否启动底盘 bridge(ti5_chassis chassis_cmd_bridge

  • --enable-chat true|false:是否启动语音/对话适配节点(ti5_chat_node

  • --chat-http-base-url <url>ti5_chat 后端 HTTP 地址(默认 http://127.0.0.1:4990

run_ti5_client.sh 示例开关:

运行开关

说明

--demo joint

启动 joint_cmd_client(默认)

--demo hand

启动 hand_cmd

--demo both

同时启动 hand_cmdjoint_cmd_client

分步示例(只开服务给 CLI 测):

./script/run_ti5_services.sh --type T140A --enable-hand true --enable-sri-can true

分步示例(服务 + 手部 demo):

./script/run_ti5_services.sh --type T140A --enable-hand true --enable-sri-can false
./script/run_ti5_client.sh --type T140A --demo hand

多实例示例:

./script/run_ti5_services.sh --type T140A --ns /robot1 --domain-id 1
./script/run_ti5_services.sh --type T140A --ns /robot2 --domain-id 2
./script/run_ti5_client.sh --type T140A --ns /robot1 --domain-id 1

最小自检(建议对外发布保留)

启动后建议按以下顺序快速确认系统“已跑起来且接口存在”。如果使用了 namespace:=/robot1,那么下方命令需要带上命名空间(例如过滤时关注 /robot1/ti5/...)。

ros2 node list
ros2 service list | grep -E 'ti5/arm_ik|ti5/arm_fk|ti5/joint_action|ti5/body_move' || true
ros2 topic list | grep -E 'ti5/jointcmd_list|ti5/jointstate_list' || true