2. SDK安装和配置方法
2.1 系统要求
- ROS2 版本: Humble(推荐)
- 操作系统: Ubuntu 22.04 LTS(推荐)
- C++ 编译器: GCC 7+ / Clang 5+
- CMake 版本: 3.16 或更高版本
- Python 版本: 3.8 或更高版本
- 依赖包:
rclcpp(ROS2 C++ 客户端库)sensor_msgs(ROS2 传感器消息)matplotlib(Python 可视化,用于可视化器)numpy(Python 数值计算,用于可视化器)
2.2 设置 ROS2 工作空间
2.2.1 创建工作空间
bash
# 创建工作空间目录
mkdir -p ~/ros2_ws/src
cd ~/ros2_ws/src
# 复制 ROS2 SDK 包
cp -r /path/to/psi-glove-SDK/ros2_sdk/psi_glove_ros2 .
cp -r /path/to/psi-glove-SDK/ros2_sdk/psi_glove_visualizer .
# 验证目录结构
ls
# 输出:
# psi_glove_ros2/
# psi_glove_visualizer/2.2.2 安装依赖
bash
# 进入工作空间根目录
cd ~/ros2_ws
# 使用 rosdep 安装 ROS2 依赖
rosdep install --from-paths src --ignore-src -r -y
# 安装 Python 依赖(用于可视化器)
pip3 install matplotlib numpy2.3 编译 SDK
bash
# 进入工作空间根目录
cd ~/ros2_ws
# 编译所有包
colcon build --packages-select psi_glove_ros2 psi_glove_visualizer
# 或单独编译
# colcon build --packages-select psi_glove_ros2
# colcon build --packages-select psi_glove_visualizer
# 编译输出应显示:
# Starting >>> psi_glove_ros2
# Finished <<< psi_glove_ros2 [10.2s]
# Starting >>> psi_glove_visualizer
# Finished <<< psi_glove_visualizer [2.5s]
#
# Summary: 2 packages finished2.3.1 编译选项
bash
# 编译 Release 版本(优化性能)
colcon build --packages-select psi_glove_ros2 --cmake-args -DCMAKE_BUILD_TYPE=Release
# 编译 Debug 版本(包含调试信息)
colcon build --packages-select psi_glove_ros2 --cmake-args -DCMAKE_BUILD_TYPE=Debug
# 清理后重新编译
colcon build --packages-select psi_glove_ros2 --cmake-clean-cache
# 编译时显示详细信息
colcon build --packages-select psi_glove_ros2 --event-handlers console_direct+2.4 配置环境
bash
# 加载编译后的环境(每次打开新终端都需要执行)
source ~/ros2_ws/install/setup.bash
# 验证包是否正确安装
ros2 pkg list | grep psi_glove
# 输出:
# psi_glove_ros2
# psi_glove_visualizer
# 查看包信息
ros2 pkg prefix psi_glove_ros2
# 输出: /home/user/ros2_ws/install/psi_glove_ros2
# 永久配置(添加到 ~/.bashrc)
echo "source ~/ros2_ws/install/setup.bash" >> ~/.bashrc2.5 SDK 可配置参数说明
ROS2 SDK 通过参数系统提供灵活的配置选项:
2.5.1 启动参数(Launch Arguments)
| 参数名称 | 类型 | 默认值 | 说明 |
|---|---|---|---|
left_port | string | /dev/ttyACM0 | 左手手套串口路径 |
right_port | string | /dev/ttyACM1 | 右手手套串口路径 |
baudrate | int | 115200 | 串口通信波特率 |
frequency | int | 100 | 数据采集频率(Hz) |
left_topic | string | /ruiyan_hand/left/set_angles | 左手话题名称 |
right_topic | string | /ruiyan_hand/right/set_angles | 右手话题名称 |
config_file | string | default_config.yaml | 校准配置文件 |
auto_connect | bool | true | 启动时自动连接设备 |
2.5.2 节点参数(Node Parameters)
bash
# 查看节点所有参数
ros2 param list /psi_glove_node
# 获取特定参数值
ros2 param get /psi_glove_node left_port
ros2 param get /psi_glove_node baudrate
# 动态修改参数(运行时)
ros2 param set /psi_glove_node frequency 150
# 保存当前参数到文件
ros2 param dump /psi_glove_node --output-dir ~/ros2_ws/config/2.5.3 典型配置示例
配置 1: 单手(左手)标准配置
bash
ros2 launch psi_glove_ros2 psi_glove.launch.py \
left_port:=/dev/ttyACM0 \
baudrate:=115200 \
frequency:=100配置 2: 双手配置
bash
ros2 launch psi_glove_ros2 psi_glove.launch.py \
left_port:=/dev/ttyACM0 \
right_port:=/dev/ttyACM1 \
baudrate:=115200 \
frequency:=100配置 3: 高速配置(低延迟)
bash
ros2 launch psi_glove_ros2 psi_glove.launch.py \
left_port:=/dev/ttyACM0 \
baudrate:=500000 \
frequency:=150配置 4: 自定义话题名称
bash
ros2 launch psi_glove_ros2 psi_glove.launch.py \
left_port:=/dev/ttyACM0 \
left_topic:=/psi_glove/left \
right_port:=/dev/ttyACM1 \
right_topic:=/psi_glove/right2.6 配置文件
2.6.1 创建配置文件
bash
# 创建配置目录
mkdir -p ~/ros2_ws/src/psi_glove_ros2/config
# 创建配置文件
nano ~/ros2_ws/src/psi_glove_ros2/config/my_config.yaml配置文件示例 (my_config.yaml):
yaml
# PSI 手套配置文件
psi_glove_node:
ros__parameters:
# 串口设置
left_port: "/dev/ttyACM0"
right_port: "/dev/ttyACM1"
baudrate: 115200
# 采集设置
frequency: 100
timeout_ms: 6
smoothing_window_size: 10
# 话题设置
left_topic: "/psi_glove/left"
right_topic: "/psi_glove/right"
# 连接设置
auto_connect: true
# 校准参数
calibration:
left_hand:
thumb:
joint_0: {min: 500, max: 3500}
joint_1: {min: 600, max: 3400}
joint_2: {min: 550, max: 3450}
joint_3: {min: 580, max: 3420}
joint_4: {min: 520, max: 3480}
right_hand:
thumb:
joint_0: {min: 500, max: 3500}
# ... 其他关节2.6.2 使用配置文件
bash
# 使用自定义配置文件
ros2 launch psi_glove_ros2 psi_glove.launch.py \
config_file:=/path/to/my_config.yaml