Skip to content

4. SDK接口调用说明

📋 目录

  1. 硬件安装方法说明
  2. SDK安装和配置方法
  3. 例程编译和调用方法
  4. SDK接口调用说明
  5. SDK打印内容说明
  6. 连接状态查询与故障排查

完整手册


4.1 节点与话题

psi_glove_node 定时 Loop() 读取手套,发布两类 sensor_msgs/JointState

话题默认名内容
校准后关节角left_topic / right_topic默认 /ruiyan_hand/left/set_angles/ruiyan_hand/right/set_angles
原始 ADCpsi_glove_left / psi_glove_right22position(0–4095)

关节命名(原始话题,与驱动一致):

  • 拇指 6:thumb_0thumb_5
  • 其余四指各 4:{finger}_0{finger}_3indexmiddleringpinky

4.2 节点参数

参数默认值说明
left_port/dev/ttyACM5左手串口
right_port/dev/ttyACM4右手串口
baudrate115200波特率
frequency100采集频率 (Hz)
left_topic/ruiyan_hand/left/set_angles左手校准话题
right_topic/ruiyan_hand/right/set_angles右手校准话题
config_filedefault_config.yaml校准配置
auto_connecttrue启动时连接

4.3 PlayLra 服务

类型:psi_glove_ros2/srv/PlayLra

string hand          # "left" 或 "right"
uint8[5] modes       # 每指 0-10
uint8[5] amplitudes  # 每指 0-255
---
bool success
string message
bash
ros2 service call /play_lra psi_glove_ros2/srv/PlayLra \
  "{hand: 'right', modes: [1,2,3,4,5], amplitudes: [40,40,40,40,40]}"

4.4 自定义订阅节点(Python)

python
import rclpy
from rclpy.node import Node
from sensor_msgs.msg import JointState

class MySubscriber(Node):
    def __init__(self):
        super().__init__('my_sub')
        self.create_subscription(
            JointState, '/psi_glove_left', self.cb, 10)

    def cb(self, msg: JointState):
        if len(msg.position) >= 22:
            thumb0 = msg.position[0]
            self.get_logger().info(f'thumb_0={thumb0}')

4.5 与 Python/C++ SDK 差异

能力ROS2
YAML 校准配置✅ 节点 LoadConfig
原始 22 路 ADC 话题
LRAplay_lra 服务
指尖 FK / MuJoCo 直连串口❌(可用 psi_glove_visualizer 订阅话题)
离线 wheel