Skip to content

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 numpy

2.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 finished

2.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" >> ~/.bashrc

2.5 SDK 可配置参数说明

ROS2 SDK 通过参数系统提供灵活的配置选项:

2.5.1 启动参数(Launch Arguments)

参数名称类型默认值说明
left_portstring/dev/ttyACM0左手手套串口路径
right_portstring/dev/ttyACM1右手手套串口路径
baudrateint115200串口通信波特率
frequencyint100数据采集频率(Hz)
left_topicstring/ruiyan_hand/left/set_angles左手话题名称
right_topicstring/ruiyan_hand/right/set_angles右手话题名称
config_filestringdefault_config.yaml校准配置文件
auto_connectbooltrue启动时自动连接设备

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/right

2.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