跳到主要内容
版本:V2.0.5.x

8.11 手部关节


8.11.1 全局值说明

手指各关节ID定义如下,适用于天工行者·无疆:

uint16 MOTOR_FINGER_LITTLE = 1,        #little finger   小指
uint16 MOTOR_FINGER_RING = 2, #ring finger 无名指
uint16 MOTOR_FINGER_MIDDLE = 3, #middle finger 中指
uint16 MOTOR_FINGER_FORE = 4, #Fore finger 食指
uint16 MOTOR_FINGER_THUMB_BEND = 5, #thumb bend 拇指弯曲
uint16 MOTOR_FINGER_THUMB_ROTATION = 6,#thumb rotation 拇指旋转

8.11.2 状态获取接口

  • 说明:获取手指各关节的状态信息,其中包含电机的当前位置、速度、电流,适用于天工行者·无疆。

  • 控制方式:topic

  • 话题名称:/inspire_hand/state/left_hand/inspire_hand/state/right_hand

  • 数据定义位置:sensor_msgs::msg::JointState

    注意:这里的数据(位置,速度,电流),指的是百分比

    std_msgs/Header header
    string[] name #说明,id=1为小指,id=6为大拇指旋转
    float64[] position #百分比
    float64[] velocity #百分比
    float64[] effort #百分比

8.11.3 控制接口-topic

以topic形式控制手指各关节角度

  • 说明:手部电机的位置控制接口,需要提供期望位置。适用于天工行者·无疆。

  • 控制方式:topic

  • 话题名称:/inspire_hand/ctrl/left_hand/inspire_hand/ctrl/right_hand

  • 数据定义位置:sensor_msgs::msg::JointState.msg

    注意:这里的 position,指的仍然是手指张开的百分比,1表示完全张开,0表示完全握紧,如果要同时控制拇指旋转关节(6号关节)和其他关节,请注意其与其他关节的相对位置关系,避免发生碰撞损坏灵巧手。

    std_msgs/Header header
    string[] name
    float64[] position # 百分比

8.11.4 控制接口-service

以service形式控制手指各关节角度

  • 说明:手指各个关节的位置控制接口,以百分比的方式,适用于天工行者·无疆。

  • 控制方式:service

  • 话题名称:/inspire_hand/set_angle_flexible/left_hand/inspire_hand/set_angle_flexible/right_hand

  • 数据定义位置:bodyctrl_msgs::srv::set_angle_flexible.srv

  • request:

    string[] name
    float32[] angle_ratio
  • response:

    bool angle_accepted

8.11.5 设置手指各关节力矩

  • 说明:设置手指各个关节转动时会施加的最大力矩,以百分比(取值0.0-1.0即可)的方式,适用于天工行者·无疆。

  • 控制方式:service

  • 话题名称:/inspire_hand/set_force/left_hand/inspire_hand/set_force/right_hand

  • 数据定义位置:bodyctrl_msgs::srv::set_force.srv

  • request:

    float32 force0_ratio #小拇指-百分比(0代表0g,1代表1000g)
    float32 force1_ratio #无名指-百分比
    float32 force2_ratio #中指-百分比
    float32 force3_ratio #食指-百分比
    float32 force4_ratio #大拇指弯曲-百分比
    float32 force5_ratio #大拇指旋转-百分比
  • response:

    bool force_accepted #是否设置成功

8.11.6 设置手指各关节速度

  • 说明:设置手指各个关节的转动速度,以百分比(取值0.0-1.0即可)的方式,适用于天工行者·无疆。

  • 控制方式:service

  • 话题名称:/inspire_hand/set_speed/left_hand/inspire_hand/set_speed/right_hand

  • 数据定义位置:bodyctrl_msgs::srv::set_speed.srv

  • request:

    float32 speed0_ratio #小拇指-百分比(1代表800ms从最大角度到最小角度,0.5代表1600ms,0.25代表3200ms)
    float32 speed1_ratio #无名指-百分比
    float32 speed2_ratio #中指-百分比
    float32 speed3_ratio #食指-百分比
    float32 speed4_ratio #大拇指弯曲-百分比
    float32 speed5_ratio #大拇指旋转-百分比
  • response:

    bool speed_accepted #是否设置成功

8.11.7 清除手指各关节错误

  • 说明:清除手指各个关节的错误接口,适用于天工行者·无疆。

  • 控制方式:service

  • 话题名称:/inspire_hand/set_clear_error/left_hand/inspire_hand/set_clear_error/right_hand

  • 数据定义位置:bodyctrl_msgs::srv::set_clear_error.srv

  • Request:

    null
  • Response:

    bool setclear_error_accepted #是否设置成功