机器人关节驱动部分(limbctrl_interface)
功能定义
- 这个节点提供了3个服务,分别对应
以**速度,移动全部关节到某位置,获取一系列关节的位置以及设定关节初始化的姿态
ROS Service Server
set_joints,类型为robot_interface/srv/SetJointsState。它定义如下:
std_msgs/UInt16MultiArray ids
std_msgs/Float32MultiArray vals
std_msgs/Float32MultiArray efforts
std_msgs/Float32MultiArray times
std_msgs/UInt8MultiArray modes
---
uint8 ret它使用数组序列的方式定义了多个关节
ids,在多个times时间内,移动到vals位置。如果某一个关节的modes参数为0,则该关节释放可自由掰动,否则为运动。其它参数为保留.
返回值ret=0表示运动成功,否则为其它故障码(待定义)
get_joints,类型为robot_interface/srv/GetJointsState。它定义如下:
std_msgs/UInt16MultiArray ids
---
std_msgs/Float32MultiArray vals
std_msgs/UInt8MultiArray states使用这个消息向它提供一个
ids数组,然后机器人返回当前各个关节的锁定状态和当前角度
reset_joints,类型为robot_interface/srv/ResetJoints.srv。在使用这个服务时,需要手动将机器人运动至初始状态,然后请求这个服务,机器人就会将当前的状态置为零点。
文件交互
这个功能节点维护一个关节零点值的文件,具体的生成流程为:
- 将机器人的各个关节掰到竖直站立位置
- 请求
reset_joints服务
完成上述工作后,机器人将更新位于
os.path.join(get_package_share_directory('limbctrl_interface'),'joint_params.json')
该位置的文件当机器人下一次启动时,就会读取这个文件中的信息作为机器人的启动关节零点配置信息。
作者:admin 创建时间:2025-02-26 11:04
最后编辑:admin 更新时间:2025-03-04 10:39
最后编辑:admin 更新时间:2025-03-04 10:39