Skip to content

调用机械臂JSON协议

为了方便用户通过ROS1控制机械臂,睿尔曼提供了基于JSON的ROS1功能包,可以通过ROS话题查询和控制机械臂。在实际使用机械臂时,用户可通过以太网口与机械臂建立通信控制机械臂。

系统错误代码

序号错误代码(16进制)错误内容
10x0000系统正常
20x1001关节通信异常
30x1002目标角度超过限位
40x1003该处不可达,为奇异点
50x1004实时内核通信错误
60x1005关节通信总线错误
70x1006规划层内核错误
80x1007关节超速
90x1008末端接口板无法连接
100x1009超速度限制
110x100A超加速度限制
120x100B关节抱闸未打开
130x100C拖动示教时超速
140x100D机械臂发生碰撞
150x100E无该工作坐标系
160x100F无该工具坐标系
170x1010关节发生掉使能错误
180x1011圆弧规划错误
190x1012自碰撞错误
200x1013碰撞到电子围栏错误(预留)
210x5001预留
220x5002预留
230x5003控制器过温
240x5004预留
250x5005控制器过流
260x5006控制器欠流
270x5007控制器过压
280x5008控制器欠压
290x5009实时层无法通讯

关节错误代码

序号错误代码(16进制)错误内容
10x0000关节正常
20x0001FOC错误
30x0002过压
40x0004欠压
50x0008过温
60x0010启动失败
70x0020编码器错误
80x0040过流
90x0080软件错误
100x0100温度传感器错误
110x0200位置超限错误
120x0400关节ID非法
130x0800位置跟踪错误
140x1000电流检测错误
150x2000抱闸打开失败
160x4000位置指令阶跃警告
170x8000多圈关节丢圈数
180xF000通信丢帧

设置关节使能状态Joint_Enable.msg

参数说明:

参数类型说明
joint_numuint8对应关节序号,从基座到机械臂夹爪端。
六自由度序号依次为1~6,七自由度序号依次为1~7.
statebooltrue-上使能,false-掉使能

使用命令示例:

json
rostopic pub /rm_driver/Joint_Enable rm_msgs/Joint_Enable "joint_num: 1 state: true"

返回命令示例:

json
rostopic echo /rm_driver/Joint_En_State_Result

参数说明:

参数类型说明
std_msgsbooltrue:设置成功;false:设置失败。

切换当前工具坐标系ChangeTool_Name.msg

参数说明:

参数类型说明
std_msgsStringROS自带msg。

使用命令示例:

json
rostopic pub /rm_driver/ChangeToolName_Cmd rm_msgs/ChangeTool_Name "toolname: '6WM'"

返回命令示例:

json
rostopic echo /rm_driver/ChangeTool_State

参数说明:

参数类型说明
std_msgsbooltrue:设置成功;false:设置失败。

切换当前工作坐标系ChangeWorkFrame_Name.msg

参数说明:

参数类型说明
std_msgsStringROS自带msg。

使用命令示例:

json
rostopic pub /rm_driver/ChangeWorkFrame_Cmd rm_msgs/ChangeWorkFrame_Name "WorkFrame_name: 'Base'"

返回命令示例:

json
rostopic echo /rm_driver/ChangeWorkFrame_State

参数说明:

参数类型说明
std_msgsbooltrue:设置成功;false:设置失败。

查询当前工作坐标系

参数说明:

参数类型说明
std_msgsEmptyROS自带msg。

使用命令示例:

json
rostopic pub /rm_driver/GetTotalWorkFrame std_msgs/Empty "{}"

返回值查看: 根据rm_driver节点打印信息查看。

获取机械臂关节当前电流Joint_Current.msg

参数说明:

参数类型说明
std_msgsStringROS自带msg。

使用命令示例:

json
rostopic pub /rm_driver/GetCurrentJointCurrent std_msgs/Empty "{}"

返回命令示例:

json
rostopic echo /rm_driver/Joint_Current

参数说明:

参数类型说明
joint_currentfloat32[]关节电流(单位:uA)

机械臂运动规划

关节空间运动MoveJ.msg

参数说明:

参数类型说明
jointfloat32[]关节角度,单位:弧度。
speedfloat32速度比例系数,0~1。
trajectory_connectuint8可选参数,代表是否和下一条运动一起规划,
0代表立即规划,
1代表和下一条轨迹一起规划,当为1时,轨迹不会立即执行。

使用命令示例:

六自由度

json
rostopic pub /rm_driver/MoveJ_Cmd rm_msgs/MoveJ "joint: [0, 0, 0, 0, 0, 0] speed: 0.2 trajectory_connect: 0"

七自由度

json
rostopic pub /rm_driver/MoveJ_Cmd rm_msgs/MoveJ "joint: [0, 0, 0, 0, 0, 0, 0] speed: 0.2 trajectory_connect: 0"

返回命令示例:

json
rostopic echo /rm_driver/Plan_State

参数说明:

参数类型说明
std_msgsbooltrue:设置成功;false:设置失败。

笛卡尔空间直线运动MoveL.msg

参数说明:

参数类型说明
Posegeometry_msgs/Pose机械臂位姿,x、y、z坐标(float类型,单位:m)+四元数。
speedfloat32速度比例系数,0~1。
trajectory_connectuint8可选参数,代表是否和下一条运动一起规划,
0代表立即规划,
1代表和下一条轨迹一起规划,当为1时,轨迹不会立即执行。

使用命令示例:

json
rostopic pub /rm_driver/MoveL_Cmd rm_msgs/MoveL "Pose:
  position:
    x: 0.0
    y: 0.0
    z: 0.0
  orientation:
    x: 0.0
    y: 0.0
    z: 0.0
    w: 0.0
speed: 0.2
trajectory_connect: 0"

返回命令示例:

json
rostopic echo /rm_driver/Plan_State

参数说明:

参数类型说明
std_msgsbooltrue:设置成功;false:设置失败。

笛卡尔空间直线偏移运动

参数说明:Moveloffset.msg

参数类型说明
offsetgeometry_msgs/Pose位置姿态偏移,位置单位:米,姿态单位:弧度。
speedint32速度百分比系数,1~100。
rint32交融半径百分比系数,0~100。
trajectory_connectbool轨迹连接标志,0立即规划并执行轨迹,不与后续轨迹连接;1将当前轨迹与下一条轨迹一起规划,但不立即执行。阻塞模式下,即使发送成功也会立即返回。
frame_typebool参考坐标系类型,0工作坐标,1工具坐标。
blockbool阻塞设置。多线程模式下,0表示非阻塞模式,发送指令后立即返回;1表示阻塞模式,等待机械臂到达目标位置或规划失败后才返回。单线程模式下,0表示非阻塞模式,发送指令后立即返回;其他值时,阻塞模式并设置超时时间,根据运动时间设置,单位为秒。

使用命令示例:

json
rostopic pub /rm_driver/Mol_Offset_Cmd rm_msgs/Moveloffset "{
  offset: {
    position: {
      x: -0.317239,
      y: 0.120903,
      z: 0.295765
    },
    orientation: {
      x: -0.983404,
      y: -0.178432,
      z: 0.032271,
      w: 0.006129
    }
  },
  speed: 20,
  r: 0,
  trajectory_connect: false,
  frame_type: false,
  block: false
}"

返回命令示例:

json
rostopic echo /rm_driver/Movel_Offset_Result

参数说明:

参数类型说明
std_msgsbooltrue:成功返回;false:失败返回。

笛卡尔空间圆弧运动MoveC.msg

参数说明:

参数类型说明
Mid_Posegeometry_msgs/Pose中间位姿,x、y、z坐标(float类型,单位:m)+四元数。
End_Posegeometry_msgs/Pose终点位姿,x、y、z坐标(float类型,单位:m)+四元数。
speedfloat32速度比例系数,0~1。
loopuint16旋转圈数。
trajectory_connectuint8可选参数,代表是否和下一条运动一起规划。
0代表立即规划,1代表和下一条轨迹一起规划,当为1时,轨迹不会立即执行。

使用命令示例:

json
rostopic pub /rm_driver/MoveC_Cmd rm_msgs/MoveC "Mid_Pose:
  position:
    x: 0.2949
    y: 0.1377
    z: 0.1048
  orientation:
    x: 0.05
    y: -0.989
    z: -0.1359
    w: 0.0274
End_Pose:
  position:
    x: 0.2417
    y: 0.0
    z: 0.1213
  orientation:
    x: 0.0136
    y: 0.9993
    z: 0.0241
    w: 0.0261
speed: 0.5
loop: 0
trajectory_connect: 0"

返回命令示例:

json
rostopic echo /rm_driver/Plan_State

参数说明:

参数类型说明
std_msgsbooltrue:设置成功;false:设置失败。

关节角度CANFD透传JointPos.msg

参数说明:

参数类型说明
jointfloat32[]关节角度,单位:弧度。
expandfloat32拓展关节,单位:弧度。

使用命令示例: 透传需要连续发送多个连续的点实现,单纯靠以下命令并不能实现功能,当前moveit控制使用了角度透传的控制方式。

json
rostopic pub /rm_driver/JointPos rm_msgs/JointPos "joint: [0, 0, 0, 0, 0, 0] expand: 0.0"

返回参数说明: 成功:无返回值;失败返回:driver终端返回错误码。

自定义高跟随模式关节角度CANFD透传JointPosCustom.msg

参数说明:

参数类型说明
jointfloat32[]关节角度,单位:弧度。
expandfloat32拓展关节,单位:弧度。
followbool驱动器的运动跟随效果,true为高跟随,false为低跟随。
trajectory_modeuint8高跟随模式下,支持多种模式,0-完全透传模式,1-曲线拟合模式,2-滤波模式。
radiouint8设置曲线拟合模式下平滑系数(范围0-100)或者滤波模式下的滤波参数(范围0-1000),数值越大表示平滑效果越好。

使用命令示例: 透传需要连续发送多个连续的点实现,单纯靠以下命令并不能实现功能,当前moveit控制使用了角度透传的控制方式。

json
rostopic pub /rm_driver/MoveJ_Fd_Custom_Cmd rm_msgs/JointPosCustom 
"joint: [0, 0, 0, 0, 0, 0]
expand: 0.0
follow: false
trajectory_mode: 0
radio: 0"

返回参数说明: 成功:无返回值;失败返回:driver终端返回错误码。

位姿CANFD透传CartePos.msg

参数说明:

参数类型说明
Posegeometry_msgs/Pose透传位姿,x、y、z坐标(float类型,单位:m)+四元数。

使用命令示例: 需要是大量(10个以上)位置连续的点,单纯靠以下命令并不能实现功能,以2ms以上的周期持续发布。

json
rostopic pub /rm_driver/MoveP_Fd_Cmd rm_msgs/CartePos 
"Pose:
  position:
    x: 0.0
    y: 0.0
    z: 0.0
  orientation:
    x: 0.0
    y: 0.0
    z: 0.0
    w: 0.0"

返回参数说明: 成功:无返回值;失败返回:driver终端返回错误码。

自定义高跟随模式位姿CANFD透传CartePosCustom.msg

参数说明:

参数类型说明
Posegeometry_msgs/Pose透传位姿,geometry_msgs/Pose类型,x、y、z坐标(float类型,单位:m)+四元数。
followbool驱动器的运动跟随效果,true为高跟随,false为低跟随。
trajectory_modeuint8高跟随模式下,支持多种模式,0-完全透传模式,1-曲线拟合模式,2-滤波模式。
radiouint8设置曲线拟合模式下平滑系数(范围0-100)或者滤波模式下的滤波参数(范围0-1000),数值越大表示平滑效果越好。

使用命令示例: 需要是大量(10个以上)位置连续 的点,单纯靠以下命令并不能实现功能,以2ms以上的周期持续发布。

json
rostopic pub /rm_driver/MoveP_Fd_Custom_Cmd rm_msgs/CartePosCustom 
"Pose:
  position:
    x: 0.0
    y: 0.0
    z: 0.0
  orientation:
    x: 0.0
    y: 0.0
    z: 0.0
    w: 0.0
follow: false
trajectory_mode: 0
radio: 0"

返回参数说明: 成功:无返回值;失败返回:driver终端返回错误码。

关节空间规划到目标位姿MoveJ_P.msg

参数说明:

参数类型说明
Posegeometry_msgs/Pose目标位姿,x、y、z坐标(float类型,单位:m)+四元数。
speedfloat32速度比例系数,0~1。
trajectory_connectuint8可选参数,代表是否和下一条运动一起规划,
0代表立即规划,
1代表和下一条轨迹一起规划,当为1时,轨迹不会立即执行。

使用命令示例:

json
rostopic pub /rm_driver/MoveJ_P_Cmd rm_msgs/MoveJ_P 
"Pose:
  position:
    x: 0.0
    y: 0.0
    z: 0.0
  orientation:
    x: 0.0
    y: 0.0
    z: 0.0
    w: 0.0
speed: 0.0
trajectory_connect: 0"

返回命令示例:

json
rostopic echo /rm_driver/Plan_State

参数说明:

参数类型说明
std_msgsbooltrue:设置成功;false:设置失败。

机械臂运动配置-步进指令

关节步进Joint_Step.msg

参数说明:

参数类型说明
joint_numuint8要运动的关节。
step_anglefloat32步进角度(单位:角度)。
speedfloat32运动速度。

使用命令示例: 六自由度

json
rostopic pub /rm_driver/SetJointStep rm_msgs/Joint_Step "joint_num: 6 step_angle: 90.0  speed: 0.2"

七自由度

json
rostopic pub /rm_driver/SetJointStep rm_msgs/Joint_Step "joint_num: 7 step_angle: 90.0 speed: 0.2"

返回命令示例:

json
rostopic echo /rm_driver/Plan_State

参数说明:

参数类型说明
std_msgsbooltrue:设置成功;false:设置失败。

机械臂运动配置-运动指令

轨迹急停Stop.msg

参数说明:

参数类型说明
std_msgsEmpty/

使用命令示例:

json
rostopic pub /rm_driver/Emergency_Stop std_msgs/Empty "{}"

返回命令示例:

json
rostopic echo /rm_driver/Set_Arm_Stop_Result

参数说明:

参数类型说明
std_msgsbooltrue:设置成功;false:设置失败。

紧急停止

参数说明:

参数类型说明
std_msgsBooltrue:急停,false:恢复

使用命令示例:

json
rostopic pub /rm_driver/Set_Arm_Emergency_Stop std_msgs/Bool "data: true"

返回命令示例:

json
rostopic echo /rm_driver/Set_Arm_Emergency_Stop_Result

参数说明:

参数类型说明
std_msgsbooltrue:成功返回;false:失败返回。

机械臂运动配置-示教指令类

关节示教Joint_Teach.msg

参数说明:

参数类型说明
teach_jointint16示教控制关节
directionstring关节转动方向 “pos”:正方向,“neg”:反方向
vint16关节转动速度0-100

使用命令示例:

json
rostopic pub /rm_driver/Arm_JointTeach rm_msgs/Joint_Teach "teach_joint: 1 direction: 'pos' v: 20"

返回命令示例:

json
rostopic echo /rm_driver/SetJointTeach_Result

参数说明:

参数类型说明
std_msgsbooltrue:设置成功;false:设置失败。

位置示教Pos_Teach.msg

参数说明:

参数类型说明
teach_typestring坐标轴,”x”,”y”,”z”
directionstring示教方向 “pos”:正方向,“neg”:反方向
vint16关节转动速度0-100

使用命令示例:

json
rostopic pub /rm_driver/Arm_PosTeach rm_msgs/Pos_Teach "teach_type: 'z' direction: 'pos' v: 10"

返回命令示例:

json
rostopic echo /rm_driver/SetPosTeach_Result

参数说明:

参数类型说明
std_msgsbooltrue:设置成功;false:设置失败。

姿态示教Ort_Teach.msg

参数说明:

参数类型说明
teach_typestring旋转所绕坐标轴,”rx”,“ry”,“rz”
directionstring示教方向 “pos”:正方向,“neg”:反方向
vint16关节转动速度0-100

使用命令示例:

json
rostopic pub /rm_driver/Arm_OrtTeach rm_msgs/Ort_Teach "teach_type: 'rz' direction: 'pos' v: 10"

返回命令示例:

json
rostopic echo /rm_driver/SetOrtTeach_Result

参数说明:

参数类型说明
std_msgsbooltrue:设置成功;false:设置失败。

示教停止Stop_Teach.msg

参数说明:

参数类型说明
commandstring停止指令“set_stop_teach”,运行以下指令即可

使用命令示例:

json
rostopic pub /rm_driver/Arm_StopTeach rm_msgs/Stop_Teach "command: ''"

返回命令示例:

json
rostopic echo /rm_driver/SetStopTeach_Result

参数说明:

参数类型说明
std_msgsbooltrue:设置成功;false:设置失败。

系统配置

控制机械臂上电断电

参数说明:

参数类型说明
dataByte1控制机械臂上电,0控制机械臂断电

使用命令示例:

json
rostopic pub /rm_driver/SetArmPower std_msgs/Byte "data: 0"

返回命令示例:

json
rostopic echo /rm_driver/Set_Arm_Power_Result

参数说明:

参数类型说明
std_msgsbooltrue:设置成功;false:设置失败。

读取软件版本号Arm_Software_Version.msg

参数说明:

参数类型说明
std_msgsEmptyROS自带msg。

使用命令示例:

json
rostopic pub /rm_driver/Get_Arm_Software_Version std_msgs/Empty "{}"

返回命令示例:

json
rostopic echo /rm_driver/Get_Arm_Software_Version_Result

参数说明:

参数类型说明
Product_versionstring机械臂类型。
Plan_versionstring软件版本号。

查询关节软件版本

参数说明:

参数类型说明
std_msgsEmptyROS自带msg。

使用命令示例:

json
rostopic pub /rm_driver/Get_Joint_Software_Version_Cmd std_msgs/Empty "{}"

返回命令示例:

json
rostopic echo /rm_driver/Get_Joint_Software_Version_Result

参数说明:Jointversion.msg

参数类型说明
joint_versionstring[7]各关节软件版本。

查询末端接口板软件版本号

参数说明:

参数类型说明
std_msgsEmptyROS自带msg。

使用命令示例:

json
rostopic pub /rm_driver/Get_Tool_Software_Version_Cmd  std_msgs/Empty "{}"

返回命令示例:

json
rostopic echo /rm_driver/Get_Tool_Software_Version_Result

参数说明:

参数类型说明
std_msgsstring末端接口板软件版本号

清除系统错误

参数说明:

参数类型说明
std_msgsEmptyROS自带msg。

使用命令示例:

json
rostopic pub /rm_driver/Clear_System_Err std_msgs/Empty "{}"

返回命令示例:

json
rostopic echo /rm_driver/System_En_State_Result

参数说明:

参数类型说明
std_msgsbooltrue:设置成功;false:设置失败。

查询机械臂状态信息

获取机械臂关节当前电流Joint_Current.msg

参数说明:

参数类型说明
std_msgsEmptyROS自带msg。

使用命令示例:

json
rostopic pub /rm_driver/GetCurrentJointCurrent std_msgs/Empty "{}"

返回命令示例:

json
rostopic echo /rm_driver/Joint_Current

参数说明:

参数类型说明
joint_currentfloat32[]关节电流(单位:uA)

查询机械臂关节角度

参数说明:

参数类型说明
std_msgsEmpty msgROS自带msg。

使用命令示例:

json
rostopic pub /rm_driver/GetArmJoint_Cmd std_msgs/Empty "{}"

返回命令示例:

json
rostopic echo /joint_states

参数说明:

参数类型说明
sensor_msgsJointState/

查询机械臂状态(弧度+四元数)GetArmState_Command.msg

参数说明:

参数类型说明
commandstring/

使用命令示例:

json
rostopic pub /rm_driver/GetArmState_Cmd rm_msgs/GetArmState_Command "command: ''"

返回命令示例:

json
rostopic echo /rm_driver/ArmCurrentState

参数说明:

参数类型说明
jointfloat32[]机械臂弧度信息
Posegeometry_msgs/Pose机械臂当前位姿(四元数)
arm_errbool机械臂错误信息
sys_errbool系统错误信息
dofbool机械臂自由度

查询机械臂状态(角度+欧拉角)GetArmState_Command.msg

参数说明:

参数类型说明
commandstring/

使用命令示例:

json
rostopic pub /rm_driver/GetArmState_Cmd rm_msgs/GetArmState_Command "command: ''"

返回命令示例:

json
rostopic echo /rm_driver/Arm_Current_State

参数说明:

参数类型说明
jointfloat32[]机械臂角度信息
Posefloat32[6]机械臂当前位姿(欧拉角)
arm_erruint16机械臂错误信息
sys_erruint16系统错误信息
dofbool机械臂自由度

轨迹列表

查询轨迹列表

参数说明:Gettrajectorylist.msg

参数类型说明
page_numint32页码。用于分页查询轨迹列表。
page_sizeint32每页大小,即每页显示的轨迹数量。
vague_searchstring模糊搜索。传入具体字符后,可筛选出名称包含该关键词的轨迹

使用命令示例:

json
rostopic pub /rm_driver/Get_Trajectory_File_List_Cmd rm_msgs/Gettrajectorylist "page_num: 1
page_size: 10
vague_search: 's'"

返回命令示例:

json
rostopic echo /rm_driver/Get_Trajectory_File_List_Result

参数说明:Trajectorylist.msg

参数类型说明
page_numint32页码。
page_sizeint32每页大小。
total_sizeint32列表总长度。
vague_searchstring模糊搜索关键词。
tra_listTrajectoryinfo[]返回符合条件的轨迹列表(Trajectoryinfo类型数组)。

开始运行指定轨迹

参数说明:

参数类型说明
std_msgsString要运行的轨迹的名称。

使用命令示例:

json
rostopic pub /rm_driver/Set_Run_Trajectory_Cmd std_msgs/String "data: 'asd'"

返回命令示例:

json
rostopic echo /rm_driver/Set_Run_Trajectory_Result

参数说明:

参数类型说明
std_msgsBool成功返回:true;失败返回:false。

删除指定轨迹文件

参数说明:

参数类型说明
std_msgsString要删除的轨迹的名称。

使用命令示例:

json
rostopic pub /rm_driver/Delete_Trajectory_File_Cmd std_msgs/String "data: 'test'"

返回命令示例:

json
rostopic echo /rm_driver/Delete_Trajectory_File_Result

参数说明:

参数类型说明
std_msgsBool成功返回:true;失败返回:false。

保存轨迹文件

参数说明:

参数类型说明
std_msgsString要保存的轨迹的名称。

使用命令示例:

json
rostopic pub /rm_driver/Save_Trajectory_File_Cmd std_msgs/String "data: 'test'"

返回命令示例:

json
rostopic echo /rm_driver/Save_Trajectory_File_Result

参数说明:

参数类型说明
std_msgsBool成功返回:true;失败返回:false。

查询流程图编程状态

参数说明:

参数类型说明
std_msgsEmpty\

使用命令示例:

json
rostopic pub /rm_driver/Get_Flowchart_Program_Run_State_Cmd std_msgs/Empty "{}"

返回命令示例:

json
rostopic echo /rm_driver/Get_Flowchart_Program_Run_State_Result

参数说明:Flowchartrunstate.msg

参数类型说明
run_stateuint8运行状态:
0 - 未开始
1 - 运行中
2 - 暂停中。
iduint8当前使能的文件ID。
namestring当前使能的文件名称。
plan_speeduint8当前使能的文件全局规划速度比例,取值范围:1~100。
step_modeuint8单步模式:
0 - 空(无模式/默认模式)
1 - 正常模式
2 - 单步模式。
modal_idstring运行到的流程图块ID;若轨迹未运行,则不返回该字段值。

控制器IO配置及获取

设置机械臂数字IO输出状态Arm_Digital_Output.msg

参数说明:

参数类型说明
numuint8IO端口号,范围:1~4
statebool“state”:IO状态,1-输出高,0-输出低

使用命令示例:

json
rostopic pub /rm_driver/Arm_Digital_Output rm_msgs/Arm_Digital_Output "num: 1 state: true"

返回命令示例:

json
rostopic echo /rm_driver/Set_DO_State_Result

参数说明:

参数类型说明
std_msgsBooltrue:设置成功;false:设置失败。

获取所有IO输入状态IO_Update.msg

参数说明:

参数类型说明
typeint81查询控制器IO状态,2查询工具端IO状态

使用命令示例:

json
rostopic pub /rm_driver/IO_Update rm_msgs/IO_Update "type: 1"

返回命令示例:

json
rostopic echo /rm_driver/Arm_IO_State

参数说明:

参数类型说明
Arm_Digital_Inputnt8[4]0代表低;1代表高;-1代表为输出状态

工具端IO配置及获取

设置工具端数字IO输出状态Tool_Digital_Output.msg

参数说明:

参数类型说明
numuint8IO端口号,范围:1~4
statebool“state”:IO状态,1-输出高,0-输出低

使用命令示例:

json
rostopic pub /rm_driver/Tool_Digital_Output rm_msgs/Tool_Digital_Output "num: 1 state: true"

返回命令示例:

json
rostopic echo /rm_driver/Set_Tool_DO_State_Result

参数说明:

参数类型说明
std_msgsBooltrue:设置成功;false:设置失败。

获取工具端数字IO状态IO_Update.msg

参数说明:

参数类型说明
typeuint81查询控制器IO状态; 2查询工具端IO状态

使用命令示例:

json
rostopic pub /rm_driver/IO_Update rm_msgs/IO_Update "type: 2"

返回命令示例:

json
rostopic echo /rm_driver/Tool_IO_State

参数说明:

参数类型说明
Tool_IO_Modebool[2]数字I/O输入/输出状态 0-输入模式,1-输出模式
Tool_IO_Statebool[2]数字I/O电平状态 0-低,1-高

末端夹爪控制(选配)

睿尔曼机械臂末端配备了因时的EG2-4C2夹爪,为了便于用户操作夹爪,机械臂控制器对用户适配了夹爪的ROS控制方式。

设置夹爪持续力控夹取Gripper_Pick.msg

夹爪以设定的速度力控夹取,当受力超过设定力后,停止运动

参数说明:

参数类型说明
speeduint16取值范围:1~1000,代表夹爪开合速度,无量纲
forceuint16取值范围:1~1000,代表夹爪夹持力,最大1.5kg

使用命令示例:

json
rostopic pub /rm_driver/Gripper_Pick_On rm_msgs/Gripper_Pick "speed: 100 force: 100"

返回命令示例:

json
rostopic echo /rm_driver/Set_Gripper_Result

参数说明:

参数类型说明
std_msgsBooltrue:设置成功;false:设置失败。

设置夹爪力控夹取Gripper_Pick.msg

夹爪以设定的速度力控夹取,当受力超过设定力后,停止运动。

参数说明:

参数类型说明
speeduint16取值范围:1~1000,代表夹爪开合速度,无量纲
forceuint16取值范围:1~1000,代表夹爪夹持力,最大1.5kg

使用命令示例:

json
rostopic pub /rm_driver/Gripper_Pick rm_msgs/Gripper_Pick "speed: 100 force: 100"

返回命令示例:

json
rostopic echo /rm_driver/Set_Gripper_Result

参数说明:

参数类型说明
std_msgsBooltrue:设置成功;false:设置失败。

夹爪到达指定位置Gripper_Set.msg

设置夹爪到固定位置,夹爪到位置后或者所受力超过阈值后停止。

参数说明:

参数类型说明
positionuint16夹爪目标位置,范围:1~1000,代表夹爪开口度:0~70mm

使用命令示例:

json
rostopic pub /rm_driver/Gripper_Set rm_msgs/Gripper_Set "position: 100"

返回命令示例:

json
rostopic echo /rm_driver/Set_Gripper_Result

参数说明:

参数类型说明
std_msgsBooltrue:设置成功;false:设置失败。

末端六维力传感器的使用(选配)

睿尔曼RM-65F机械臂末端配备集成式六维力传感器,无需外部走线,用户可直接通过ROS话题对六维力进行操作。

查询六维力数据Six_Force.msg

参数说明:

参数类型说明
std_msgsEmptyROS自带msg。

使用命令示例:

json
rostopic pub /rm_driver/GetSixForce_Cmd std_msgs/Empty "{}"

返回命令示例:

json
rostopic echo /rm_driver/GetSixForce     #六维力原始数据
rostopic echo /rm_driver/SixZeroForce    #传感器坐标系下的六维力数据
rostopic echo /rm_driver/WorkZeroForce   #工作坐标系下的传感器数据
rostopic echo /rm_driver/ToolZeroForce   #工具坐标系下的传感器数据

参数说明:

参数类型说明
force_Fxfloat32/
force_Fyfloat32/
force_Fzfloat32/
force_Mxfloat32/
force_Myfloat32/
force_Mzfloat32/

清空六维力数据

参数说明:

参数类型说明
std_msgsEmpty/

使用命令示例:

json
rostopic pub /rm_driver/ClearForceData_Cmd std_msgs/Empty "{}"

返回命令示例:

json
rostopic echo /rm_driver/ClearForceData_Result

参数说明:

参数类型说明
std_msgsBooltrue:设置成功;false:设置失败。

自动设置六维力重心参数

参数说明:

参数类型说明
std_msgsEmptyROS自带msg。

使用命令示例:

json
rostopic pub /rm_driver/SetForceSensor_Cmd std_msgs/Empty "{}"

返回命令示例:

json
rostopic echo /rm_driver/ForceSensorSet_Result

参数说明:

参数类型说明
std_msgsBooltrue:设置成功;false:设置失败。

手动标定六维力数据Manual_Set_Force_Pose.msg

参数说明:

参数类型说明
posestringpose1:位置1关节角度,pose2:位置2关节角度;pose3:位置3关节角度;pose4:位置4关节角度。
jointint64[]0.001角度,如90度为90000。

注意

上述四个位置必须按照顺序依次下发,当pose4下发完成后,机械臂运行到指定位置。

使用命令示例:

json
rostopic pub /rm_driver/ManualSetForcePose_Cmd rm_msgs/Manual_Set_Force_Pose "pose: ' pose1' joint:  [0, 0, 0, 0, 90000, 0]"

返回命令示例:

json
rostopic echo /rm_driver/ForceSensorSet_Result

参数说明:

参数类型说明
std_msgsBooltrue:设置成功;false:设置失败。

停止标定力传感器重心

参数说明:

参数类型说明
std_msgsEmptyROS自带msg。

使用命令示例:

json
rostopic pub /rm_driver/StopSetForceSensor_Cmd std_msgs/Empty "{}"

返回命令示例:

json
rostopic echo /rm_driver/StopSetForceSensor_Result

参数说明:

参数类型说明
std_msgsBooltrue:设置成功;false:设置失败。

拖动示教

拖动示教结束

参数说明:

参数类型说明
std_msgsEmptyROS自带msg。

使用命令示例:

json
rostopic pub /rm_driver/StartMultiDragTeach_result std_msgs/Empty "{}"

返回命令示例:

json
rostopic echo /rm_driver/StopDragTeach_Result

参数说明:

参数类型说明
std_msgsBooltrue:设置成功;false:设置失败。

开启复合拖动示教Start_Multi_Drag_Teach.msg

参数说明:

参数类型说明
modeuint80-电流环模式
1-使用末端六维力,只动位置
2-使用末端六维力,只动姿态
3-使用末端六维力,位置和姿态同时动

使用命令示例:

json
rostopic pub /rm_driver/StartMultiDragTeach_Cmd rm_msgs/Start_Multi_Drag_Teach "mode: 0"

返回命令示例:

json
rostopic echo /rm_driver/StartMultiDragTeach_Result

参数说明:

参数类型说明
std_msgsBooltrue:设置成功;false:设置失败。

力位混合控制Set_Force_Position.msg

参数说明:

参数类型说明
sensoruint8传感器;0-一维力;1-六维力
modeuint80-工作坐标系力控;1-工具坐标系
directionuint8力控方向
0-沿X轴
1-沿Y轴
2-沿Z轴
3-沿RX姿态方向
4-沿RY姿态方向
5-沿RZ姿态方向
Nint16力的大小,单位0.1N

使用命令示例:

json
rostopic pub /rm_driver/SetForcePosition_Cmd rm_msgs/Set_Force_Position "sensor: 0 mode: 0 direction: 0 N: 0"

返回命令示例:

json
rostopic echo /rm_driver/SetForcePosition_Result

参数说明:

参数类型说明
std_msgsBooltrue:设置成功;false:设置失败。

结束力位混合控制

参数说明:

参数类型说明
std_msgsEmptyROS自带msg。

使用命令示例:

json
rostopic pub /rm_driver/StopForcePostion_Cmd std_msgs/Empty "{}"

返回命令示例:

json
rostopic echo /rm_driver/StopForcePostion_Result

参数说明:

参数类型说明
std_msgsBooltrue:设置成功;false:设置失败。

Modbus模式配置及寄存器读写

设置控制器通讯端口RS485模式

参数说明:RS485params.msg

参数类型说明
modeint32通讯模式选择:
0 - RS485串行通讯模式
1 - Modbus-RTU主站模式
2 - Modbus-RTU从站模式.
baudrateint32通讯波特率,当前支持的取值:9600、19200、38400、57600、115200、230400、460800

使用命令示例:

json
rostopic pub /rm_driver/Set_Controller_Rs485_Mode_cmd rm_msgs/RS485params "mode: 0
baudrate: 115200"

返回命令示例:

json
rostopic echo /rm_driver/Set_Controller_Rs485_Mode_Result

参数说明:

参数类型说明
std_msgsBooltrue:成功;false:失败.

查询控制器RS485模式

参数说明:

参数类型说明
std_msgsEmptyROS自带msg。

使用命令示例:

json
rostopic pub /rm_driver/Get_Controller_Rs485_Mode_V4_cmd std_msgs/Empty "{}"

返回命令示例:

json
rostopic echo /rm_driver/Get_Controller_Rs485_Mode_V4_Result

参数说明:RS485params.msg

参数类型说明
modeint32通讯模式选择:
0 - RS485串行通讯模式
1 - Modbus-RTU主站模式
2 - Modbus-RTU从站模式
baudrateint32波特率。

设置工具端RS485模式

参数说明:RS485params.msg

参数类型说明
modeint32端口模式设置:
0 - 设置工具端RS485端口为RTU主站
1 - 灵巧手模式
2 - 夹爪模式
baudrateint32波特率,当前支持的取值:9600、115200、460800

使用命令示例:

json
rostopic pub /rm_driver/Set_Tool_Rs485_Mode_cmd rm_msgs/RS485params "mode: 0
baudrate: 115200"

返回命令示例:

json
rostopic echo /rm_driver/Set_Tool_Rs485_Mode_Result

参数说明:

参数类型说明
std_msgsBooltrue:成功;false:失败。

查询工具端RS485模式

参数说明:

参数类型说明
std_msgsEmptyROS自带msg。

使用命令示例:

json
rostopic pub /rm_driver/Get_Tool_Rs485_Mode_V4_cmd std_msgs/Empty "{}"

返回命令示例:

json
rostopic echo /rm_driver/Get_Tool_Rs485_Mode_V4_Result

参数说明:RS485params.msg

参数类型说明
modeint32端口模式设置:
0 - 设置工具端RS485端口为RTU主站
1 - 灵巧手模式
2 - 夹爪模式
baudrateint32波特率。

新增ModbusTCP主站

参数说明:Modbustcpmasterinfo.msg

参数类型说明
master_namestringModbus 主站名称,最大长度为15个字符。
ipstringTCP主站的IP地址。
portint32TCP主站的端口号。

使用命令示例:

json
rostopic pub /rm_driver/Add_Modbus_Tcp_Master_cmd rm_msgs/Modbustcpmasterinfo "master_name: 'test'
ip: '127.0.0.14'
port: 502"

返回命令示例:

json
rostopic echo /rm_driver/Add_Modbus_Tcp_Master_Result

参数说明:

参数类型说明
std_msgsBooltrue:成功;false:失败。

更新ModbusTCP主站

参数说明:UpdateTCPmasterparam.msg

参数类型说明
master_namestring待修改的 TCP 主站名称(定位目标主站)。
new_namestring修改后的 TCP 主站新名称。
ipstring修改后的 TCP 主站新 IP 地址。
portint32修改后的 TCP 主站新端口号。

使用命令示例:

json
rostopic pub /rm_driver/Update_Modbus_Tcp_Master_cmd rm_msgs/UpdateTCPmasterparam "master_name: 'test'
new_name: 'test1'
ip: '127.0.0.15'
port: 502"

返回命令示例:

json
rostopic echo /rm_driver/Update_Modbus_Tcp_Master_Result

参数说明:

参数类型说明
std_msgsBooltrue:成功;false:失败。

删除ModbusTCP主站

参数说明:

参数类型说明
std_msgsString要删除的TCP主站名称。

使用命令示例:

json
rostopic pub /rm_driver/Delete_Modbus_Tcp_Master_cmd  std_msgs/String "data: '123'"

返回命令示例:

json
rostopic echo /rm_driver/Delete_Modbus_Tcp_Master_Result

参数说明:

参数类型说明
std_msgsBooltrue:成功;false:失败。

查询指定Modbus主站

参数说明:

参数类型说明
std_msgsString要查询的主站名称。

使用命令示例:

json
rostopic pub /rm_driver/Get_Modbus_Tcp_Master_cmd std_msgs/String "data: 'test1'"

返回命令示例:

json
rostopic echo /rm_driver/Get_Modbus_Tcp_Master_Result

参数说明:Modbustcpmasterinfo.msg

参数类型说明
master_namestringModbus 主站名称,最大长度为15个字符。
ipstringTCP主站的IP地址。
portint32TCP主站的端口号。

查询Modbus主站列表

参数说明:Get_TCP_Master_List_Param.msg

参数类型说明
page_numint32分页查询的页码(用于定位当前查询页)
page_sizeint32每页展示的TCP主站列表条目数量
vague_searchstring模糊搜索关键词(用于筛选符合条件的TCP主站)

使用命令示例:

json
rostopic pub /rm_driver/Get_Modbus_Tcp_Master_List_cmd rm_msgs/Get_TCP_Master_List_Param "page_num: 1
page_size: 10
vague_search: '1'"

返回命令示例:

json
rostopic echo /rm_driver/Get_Modbus_Tcp_Master_List_Result

参数说明:Modbustcpmasterlist.msg

参数类型说明
master_listModbustcpmasterinfo[]返回符合条件的TCP主站列表(Modbustcpmasterinfo类型数组)。

Modbus协议读线圈

参数说明:Read_TCPandRTU.msg

参数类型说明
addressint32线圈起始地址
numint32线圈数量
ipstringTCP模式下主机连接的IP地址
portint32TCP模式下主机连接的端口号
master_namestringTCP模式下主站名称
deviceint32RTU模式下外设设备地址
typeint32模式选择:
0 - RTU模式控制器端modbus主机
1 - RTU模式工具端modbus主机
3 - TCP模式

使用命令示例:

RTU模式下:

json
rostopic pub /rm_driver/Read_Multiple_Coils rm_msgs/Read_TCPandRTU "{
    address: 0,
    device: 0,
    num: 1,
    type: 0
}"

TCP模式下:(ip和port的优先级大于master_name)

json
rostopic pub /rm_driver/Read_Multiple_Coils rm_msgs/Read_TCPandRTU "{
    address: 10,
    num: 1,
    ip: '127.0.0.1',
    port: 502,
    master_name: '1',
    type: 3
}"

返回命令示例:

json
rostopic echo /rm_driver/Read_Multiple_Coils_Result

参数说明:Register_Data.msg

参数类型说明
datauint16[]读取到的数据(uint16类型数组)。若state为false,该数组为空
statebool读取状态:
true - 数据读取成功
false - 数据读取失败

Modbus协议写线圈

参数说明:Write_TCPandRTU.msg

参数类型说明
addressint32数据起始地址
dataint32[]要写入的数据列表(int32类型数组)
ipstringTCP模式下主机连接的IP地址
portint32TCP模式下主机连接的端口号
master_namestringTCP模式下主站名称
deviceint32外设设备地址
typeint32模式选择:
0 - RTU模式控制器端modbus主机
1 - RTU模式工具端modbus主机
3 - TCP模式

使用命令示例:

RTU模式下:

json
rostopic pub /rm_driver/Write_Coils rm_msgs/Write_TCPandRTU "address: 10
data: [0]
type: 0
device: 1"

TCP模式下:(ip和port的优先级大于master_name)

json
rostopic pub /rm_driver/Write_Coils rm_msgs/Write_TCPandRTU "address: 10
data: [0]
ip: '127.0.0.1'
port: 502
master_name: '1'
type: 3"

返回命令示例:

json
rostopic echo /rm_driver/Write_Coils_Result

参数说明:

参数类型说明
std_msgsBooltrue:数据写入成功;false:数据写入失败。

Modbus协议读离散量输入

参数说明:Read_TCPandRTU.msg

参数类型说明
addressint32线圈起始地址
numint32线圈数量
ipstringTCP模式下主机连接的IP地址
portint32TCP模式下主机连接的端口号
master_namestringTCP模式下主站名称
deviceint32RTU模式下外设设备地址
typeint32模式选择:
0 - RTU模式控制器端modbus主机
1 - RTU模式工具端modbus主机
3 - TCP模式

使用命令示例:

RTU模式下:

json
rostopic pub /rm_driver/Read_Input_Status rm_msgs/Read_TCPandRTU "{
    address: 0,
    device: 0,
    num: 1,
    type: 0
}"

TCP模式下:(ip和port的优先级大于master_name)

json
rostopic pub /rm_driver/Read_Input_Status rm_msgs/Read_TCPandRTU "{
    address: 10,
    num: 1,
    ip: '127.0.0.1',
    port: 502,
    master_name: '1',
    type: 3
}"

返回命令示例:

json
rostopic echo /rm_driver/Read_Input_Status_Result

参数说明:Register_Data.msg

参数类型说明
datauint16[]返回的数据(uint16类型数组)。
statebool状态信息。

Modbus协议读保持寄存器

参数说明:Read_TCPandRTU.msg

参数类型说明
addressint32线圈起始地址
numint32线圈数量
ipstringTCP模式下主机连接的IP地址
portint32TCP模式下主机连接的端口号
master_namestringTCP模式下主站名称
deviceint32RTU模式下外设设备地址
typeint32模式选择:
0 - RTU模式控制器端modbus主机
1 - RTU模式工具端modbus主机
3 - TCP模式

使用命令示例:

RTU模式下:

json
rostopic pub /rm_driver/Read_Multiple_Holding_Registers rm_msgs/Read_TCPandRTU "{
    address: 0,
    num: 1,
    device: 0,
    type: 0
}"

TCP模式下:(ip和port的优先级大于master_name)

json
rostopic pub /rm_driver/Read_Multiple_Holding_Registers rm_msgs/Read_TCPandRTU "{
    address: 10,
    num: 1,
    ip: '127.0.0.1',
    port: 502,
    master_name: '1',
    type: 3
}"

返回命令示例:

json
rostopic echo /rm_driver/Read_Multiple_Holding_Registers_Result

参数说明:Register_Data.msg

参数类型说明
datauint16[]返回的数据(uint16类型数组)
statebool状态信息

Modbus协议写保持寄存器

参数说明:Write_TCPandRTU.msg

参数类型说明
addressint32数据起始地址
dataint32[]要写入的数据列表(int32类型数组)
ipstringTCP模式下主机连接的IP地址
portint32TCP模式下主机连接的端口号
master_namestringTCP模式下主站名称
deviceint32外设设备地址
typeint32模式选择:
0 - RTU模式控制器端modbus主机
1 - RTU模式工具端modbus主机
3 - TCP模式

使用命令示例:

RTU模式下:

json
rostopic pub /rm_driver/Write_Registers rm_msgs/Write_TCPandRTU "address: 0
data: [0]
type: 0
device: 0"

TCP模式下:(ip和port的优先级大于master_name)

json
rostopic pub /rm_driver/Write_Registers rm_msgs/Write_TCPandRTU "address: 10
data: [1]
ip: '127.0.0.4'
port: 502
master_name: '321'
type: 3"

返回命令示例:

json
rostopic echo /rm_driver/Write_Registers_Result

参数说明:

参数类型说明
std_msgsBool数据写入状态:
true - 数据写入成功
false - 数据写入失败

Modbus协议读输入寄存器

参数说明:Read_TCPandRTU.msg

参数类型说明
addressint32线圈起始地址
numint32线圈数量
ipstringTCP模式下主机连接的IP地址
portint32TCP模式下主机连接的端口号
master_namestringTCP模式下主站名称
deviceint32RTU模式下外设设备地址
typeint32模式选择:
0 - RTU模式控制器端modbus主机
1 - RTU模式工具端modbus主机
3 - TCP模式

使用命令示例:

RTU模式下:

json
rostopic pub /rm_driver/Read_Multiple_Input_Registers rm_msgs/Read_TCPandRTU "{
    address: 0,
    device: 0,
    num: 1,
    type: 0
}"

TCP模式下:(ip和port的优先级大于master_name)

json
rostopic pub /rm_driver/Read_Multiple_Input_Registers rm_msgs/Read_TCPandRTU "{
    address: 10,
    num: 1,
    ip: '127.0.0.1',
    port: 502,
    master_name: '1',
    type: 3
}"

返回命令示例:

json
rostopic echo /rm_driver/Read_Multiple_Input_Registers_Result

参数说明:Register_Data.msg

参数类型说明
datauint16[]返回的数据(uint16类型数组)
statebool状态信息

末端五指灵巧手控制(选配)

睿尔曼机械臂末端配备了五指灵巧手,可通过ROS对灵巧手进行设置。

设置灵巧手角度跟随Hand_Angle.msg

设置灵巧手角度,灵巧手:6个主动自由度,自由度1(大拇指弯曲)、自由度2(食指)、自由度3(中指)、自由度4(无名指)、自由度5(小指)、自由度6(大拇指旋转)。

参数说明:

参数类型说明
hand_angleint16[6]手指角度数组(以实际产品为准,因时为例),范围:0~2000.另外,-1 代表该自由度不执行任何操作,保持当前状态。

使用命令示例:

json
rostopic pub /rm_driver/Hand_FollowAngle rm_msgs/Hand_Angle "hand_angle: [0, 0, 0, 0, 0, 0]"

返回命令示例:

json
rostopic echo /rm_driver/Set_Hand_Follow_Angle_Result

参数说明:

参数类型说明
std_msgsBooltrue:设置成功;false:设置失败。

设置灵巧手姿态跟随Hand_Angle.msg

设置灵巧手角度,灵巧手:6个主动自由度,自由度1(大拇指弯曲)、自由度2(食指)、自由度3(中指)、自由度4(无名指)、自由度5(小指)、自由度6(大拇指旋转)。

参数说明:

参数类型说明
hand_angleint16[6]手指姿态数组(以实际产品为准,因时为例),范围:0~1000。

使用命令示例:

json
rostopic pub /rm_driver/Hand_FollowPos rm_msgs/Hand_Angle "hand_angle: [0, 0, 0, 0, 0, 0]"

返回命令示例:

json
rostopic echo /rm_driver/Set_Hand_Follow_Pos_Result

参数说明:

参数类型说明
std_msgsBooltrue:设置成功;false:设置失败。

透传力位混合控制补偿模式

针对睿尔曼带一维力和六维力版本的机械臂,用户除了可直接使用示教器调用底层的力位混合控制模块外,还可以将自定义的轨迹以周期性透传的形式结合底层的力位混合控制算法进行补偿。

开启透传力位混合控制补偿模式

参数说明:

参数类型说明
std_msgsEmptyROS自带msg。

使用命令示例:

json
rostopic pub /rm_driver/StartForcePositionMove_Cmd std_msgs/Empty "{}"

返回命令示例:

json
rostopic echo /rm_driver/StartForcePositionMove_Result

参数说明:

参数类型说明
std_msgsBooltrue:设置成功;false:设置失败。

透传力位混合控制补偿(位姿)Force_Position_Move_Pose.msg

参数说明:

参数类型说明
Posegeometry_msgs/Pose四元数信息
sensoruint8所使用传感器类型,0-一维力,1-六维力
modeuint8模式,0-沿工作坐标系,1-沿工具端坐标系
diruint8力控方向,0~5分别代表X/Y/Z/Rx/Ry/Rz,其中一维力类型时默认方向为Z方向
forceint16力的大小,精度0.1N或者0.1Nm

使用命令示例:

json
rostopic pub /rm_driver/ForcePositionMovePose_Cmd rm_msgs/Force_Position_Move_Pose "Pose:   position: {x: 0.0, y: 0.0, z: 0.0}   orientation: {x: 0.0, y: 0.0, z: 0.0, w: 0.0} sensor: 1 mode: 0 dir: 0 force: 0"

参数说明:

成功:无返回,失败:报错信息查看rm_driver节点。

自定义高跟随模式透传力位混合控制补偿(位姿)Force_Position_Move_Pose_Custom.msg

参数说明:

参数类型说明
Posegeometry_msgs/Pose四元数信息。
sensoruint8所使用传感器类型,0-一维力,1-六维力。
modeuint8模式,0-沿工作坐标系,1-沿工具端坐标系。
diruint8力控方向,0~5分别代表X/Y/Z/Rx/Ry/Rz,其中一维力类型时默认方向为Z方向。
forceint16力的大小,精度0.1N或者0.1Nm。
followbool驱动器的运动跟随效果,true为高跟随,false为低跟随。
trajectory_modeuint8高跟随模式下,支持多种模式,0-完全透传模式,1-曲线拟合模式,2-滤波模式。
radiouint8设置曲线拟合模式下平滑系数(范围0-100)或者滤波模式下的滤波参数(范围0-1000),数值越大表示平滑效果越好。

使用命令示例:

json
rostopic pub /rm_driver/ForcePositionMovePoseCustom_Cmd rm_msgs/Force_Position_Move_Pose_Custom 
"Pose:
  position: {x: 0.0, y: 0.0, z: 0.0}
  orientation: {x: 0.0, y: 0.0, z: 0.0, w: 0.0}
sensor: 1
mode: 0
dir: 0
force: 0
follow: false
trajectory_mode: 0
radio: 0"

参数说明:

成功:无返回,失败:报错信息查看rm_driver节点。

透传力位混合控制补偿(弧度)Force_Position_Move_Joint.msg

参数说明:

参数类型说明
jointfloat32[]弧度信息。
sensoruint8所使用传感器类型,0-一维力,1-六维力。
modeuint8模式,0-沿工作坐标系,1-沿工具端坐标系。
diruint8力控方向,0~5分别代表X/Y/Z/Rx/Ry/Rz,其中一维力类型时默认方向为Z方向。
forceint16力的大小,精度0.1N或者0.1Nm。
dofuint8机械臂自由度信息。

使用命令示例:

json
rostopic pub /rm_driver/ForcePositionMoveJiont_Cmd rm_msgs/Force_Position_Move_Joint "joint: [0, 0, 0, 0, 0, 0] sensor: 0 mode: 0 dir: 0 force: 0 dof: 0"

参数说明:

成功:无返回,失败:报错信息查看rm_driver节点

关闭透传力位混合控制补偿模式

参数说明:

参数类型说明
std_msgsEmptyROS自带msg。

使用命令示例:

json
rostopic pub /rm_driver/StopForcePositionMove_Cmd std_msgs/Empty "{}"

返回命令示例:

json
rostopic echo /rm_driver/StopForcePositionMove_Result

参数说明:

参数类型说明
std_msgsBooltrue:设置成功;false:设置失败。

升降机构

睿尔曼机械臂可集成自主研发升降机构。

升降机构速度开环控制Lift_Speed.msg

参数说明:

参数类型说明
speedint16速度百分比,-100~100:
1. speed<0:升降机构向下运动;
2. speed>0:升降机构向上运动;
3. speed=0:升降机构停止运动。

使用命令示例:

json
rostopic pub /rm_driver/Lift_SetSpeed rm_msgs/Lift_Speed "speed: 0"

返回命令示例:

json
rostopic echo /rm_driver/Set_Lift_Speed_Result

参数说明:

参数类型说明
std_msgsBooltrue:设置成功;false:设置失败。

升降机构位置闭环控制Lift_Height.msg

升降机构运行到指定高度。 参数说明:

参数类型说明
heightuint16目标高度,单位 mm,范围:0~2600。
speeduint16速度百分比,1~100。

使用命令示例:

json
rostopic pub /rm_driver/Lift_SetHeight rm_msgs/Lift_Height "height: 0 speed: 0"

返回命令示例:

json
rostopic echo /rm_driver/Plan_State

参数说明:

参数类型说明
std_msgsBooltrue:设置成功;false:设置失败。

获取升降机构状态LiftState.msg

参数说明:

参数类型说明
std_msgsEmptyROS自带msg。

使用命令示例:

json
rostopic pub /rm_driver/Lift_GetState std_msgs/Empty "{}"

返回命令示例:

json
rostopic echo /rm_driver/LiftState

参数说明:

参数类型说明
heightint16当前高度。
currentint16当前电流。
err_flaguint16驱动错误代码。
modebyte当前升降状态
0-空闲
1-正方向速度运动
2-正方向位置运动
3-负方向速度运动
4-负方向位置运动。

机械臂状态主动上报

设置 UDP 机械臂状态主动上报配置Set_Realtime_Push.msg

参数说明:

参数类型说明
cycleuint16设置广播周期,为5ms的倍数(默认1即1*5=5ms,200Hz)。
portuint16设置广播的端口号(默认8089)。
force_coordinateuint16设置系统外受力数据的坐标系(仅带有力传感器的机械臂支持)。
ipstring设置自定义的上报目标IP 地址(默认192.168.1.10)。
hand_enablebool设置灵巧手状态主动上报使能。
aloha_state_enableboolaloha主臂状态。
arm_current_status_enablebool机械臂当前状态。
expand_state_enablebool扩展关节信息。
joint_acc_enablebool关节加速度。
joint_speed_enablebool关节速度。
lift_state_enablebool升降关节信息。
rm_plus_base_enablebool末端设备基础信息。
rm_plus_state_enablebool末端设备实时信息。

使用命令示例:

json
rostopic pub /rm_driver/Set_Realtime_Push rm_msgs/Set_Realtime_Push 
"cycle: 1
port: 8089
force_coordinate: 0
ip: '192.168.1.10'
hand_enable: false
aloha_state_enable: false
arm_current_status_enable: false
expand_state_enable: false
joint_acc_enable: false
joint_speed_enable: false
lift_state_enable: false
rm_plus_base_enable: false
rm_plus_state_enable: false"

返回命令示例:

json
rostopic echo /rm_driver/Set_Realtime_Push_Result

参数说明:

参数类型说明
std_msgsBooltrue:设置成功;false:设置失败。

查询 UDP 机械臂状态主动上报配置Set_Realtime_Push.msg

参数说明:

参数类型说明
std_msgsEmptyROS自带msg。

使用命令示例:

json
rostopic pub /rm_driver/Get_Realtime_Push std_msgs/Empty "{}"

返回命令示例:

json
rostopic echo /rm_driver/Get_Realtime_Push_Result

参数说明:

参数类型说明
cycleuint16设置广播周期,为5ms的倍数(默认1即1*5=5ms,200Hz)。
portuint16设置广播的端口号(默认8089)。
force_coordinateuint16设置系统外受力数据的坐标系(仅带有力传感器的机械臂支持)。
ipstring设置自定义的上报目标IP 地址(默认192.168.1.10)。
hand_enablebool设置灵巧手状态主动上报使能。
aloha_state_enableboolaloha主臂状态。
arm_current_status_enablebool机械臂当前状态。
expand_state_enablebool扩展关节信息。
joint_acc_enablebool关节加速度。
joint_speed_enablebool关节速度。
lift_state_enablebool升降关节信息。
rm_plus_base_enablebool末端设备基础信息。
rm_plus_state_enablebool末端设备实时信息。

末端生态指令集

设置末端生态协议模式

参数说明:

参数类型说明
datauint320-禁用协议;
9600-开启协议(波特率9600);
115200-开启协议(波特率115200);
256000-开启协议(波特率256000);
460800-开启协议(波特率460800)。

使用命令示例:

json
rostopic pub /rm_driver/Set_Rm_Plus_Mode std_msgs/UInt32 "data: 9600"

返回命令示例:

json
rostopic echo /rm_driver/Set_Rm_Plus_Mode_Result

参数说明:

参数类型说明
std_msgsBooltrue:设置成功;false:设置失败。

查询末端生态协议模式

参数说明:

参数类型说明
std_msgsEmptyROS自带msg。

使用命令示例:

json
rostopic pub /rm_driver/Get_Rm_Plus_Mode std_msgs/Empty "{}"

返回命令示例:

json
rostopic echo /rm_driver/Get_Rm_Plus_Mode_Result

参数说明:

参数类型说明
datauint320-禁用协议;
9600-开启协议(波特率9600);
115200-开启协议(波特率115200);
256000-开启协议(波特率256000);
460800-开启协议(波特率460800)。

设置触觉传感器模式

参数说明:

参数类型说明
datauint320-关闭触觉传感器;
1-打开触觉传感器(返回处理后数据);
2-打开触觉传感器(返回原始数据)。

使用命令示例:

json
rostopic pub /rm_driver/Set_Rm_Plus_Mode std_msgs/UInt32 "data: 1"

返回命令示例:

json
rostopic echo /rm_driver/Set_Rm_Plus_Touch_Result

参数说明:

参数类型说明
std_msgsBooltrue:设置成功;false:设置失败。

查询触觉传感器模式

参数说明:

参数类型说明
std_msgsEmptyROS自带msg。

使用命令示例:

json
rostopic pub /rm_driver/Get_Rm_Plus_Touch std_msgs/Empty "{}"

返回命令示例:

json
rostopic echo /rm_driver/Get_Rm_Plus_Touch_Result

参数说明:

参数类型说明
datauint320-关闭触觉传感器;
1-打开触觉传感器(返回处理后数据);
2-打开触觉传感器(返回原始数据)。

UDP机械臂状态主动上报

六维力Six_Force.msg

参数说明:

参数类型说明
force_fxfloat32沿x轴方向受力大小。
force_fyfloat32沿y轴方向受力大小。
force_fzfloat32沿z轴方向受力大小。
force_mxfloat32沿x轴方向转动受力大小。
force_myfloat32沿y轴方向转动受力大小。
force_mzfloat32沿z轴方向转动受力大小。

使用命令示例:

json
rostopic echo /rm_driver/UdpSixForce

一维力Six_Force.msg

参数说明:

参数类型说明
force_fxfloat32沿x轴方向受力大小。
force_fyfloat32沿y轴方向受力大小。
force_fzfloat32沿z轴方向受力大小。(仅该数值有效)
force_mxfloat32沿x轴方向转动受力大小。
force_myfloat32沿y轴方向转动受力大小。
force_mzfloat32沿z轴方向转动受力大小。

使用命令示例:

json
rostopic echo /rm_driver/UdpSixForce

机械臂错误

参数说明:

参数类型说明
datauint16机械臂报错信息。

使用命令示例:

json
rostopic echo /rm_driver/ArmError

系统错误

参数说明:

参数类型说明
datauint16系统报错信息。

使用命令示例:

json
rostopic echo /rm_driver/SysError

关节错误Joint_Error_Code.msg

参数说明:

参数类型说明
joint_erroruint16[]每个关节报错信息.

使用命令示例:

json
rostopic echo /rm_driver/JointErrorCode

机械臂弧度数据

参数说明:

参数类型说明
secint32时间信息,秒。
nanosecuint32时间信息,纳秒。
frame_idstring坐标系名称。
namestring[]关节名称。
positionfloat64[]关节弧度信息。
velocityfloat64[]关节速度信息。(暂未使用)
effortfloat64[]关节受力信息。(暂未使用)

使用命令示例:

json
rostopic echo /joint_states

位姿信息

参数说明:

参数类型说明
position.xfloat64机械臂当前坐标信息。
position.yfloat64机械臂当前坐标信息。
position.zfloat64机械臂当前坐标信息。
Quaternion orientation.xfloat64机械臂当前姿态信息。
Quaternion orientation.yfloat64机械臂当前姿态信息。
Quaternion orientation.zfloat64机械臂当前姿态信息。
Quaternion orientation.wfloat64机械臂当前姿态信息。

使用命令示例:

json
rostopic echo /rm_driver/Pose_State

当前六维力传感器系统外受力数据Six_Force.msg

参数说明:

参数类型说明
force_fxfloat32当前传感器沿x轴方向受外力大小。
force_fyfloat32当前传感器沿y轴方向受外力大小。
force_fzfloat32当前传感器沿z轴方向受外力大小。
force_mxfloat32沿x轴方向转动受力大小。
force_myfloat32沿y轴方向转动受力大小。
force_mzfloat32沿z轴方向转动受力大小。

使用命令示例:

json
rostopic echo /rm_driver/UdpSixZeroForce

当前一维力传感器系统外受力数据Six_Force.msg

参数说明:

参数类型说明
force_fxfloat32当前传感器沿x轴方向受外力大小。
force_fyfloat32当前传感器沿y轴方向受外力大小。
force_fzfloat32当前传感器沿z轴方向受外力大小。(仅该数据有效)
force_mxfloat32沿x轴方向转动受力大小。
force_myfloat32沿y轴方向转动受力大小。
force_mzfloat32沿z轴方向转动受力大小。

使用命令示例:

json
rostopic echo /rm_driver/UdpSixZeroForce

系统外受力数据参考坐标系

参数说明:

参数类型说明
datauint16系统外受力数据的坐标系
0 为传感器坐标系
1 为当前工作坐标系
2 为当前工具坐标系
该数据会影响一维力和六维力传感器系统外受力数据的参考坐标系。

使用命令示例:

json
rostopic echo /rm_driver/Udp_Coordinate

灵巧手当前状态Hand_Status.msg

参数说明:

参数类型说明
hand_angleuint16[6]手指角度数组,范围:0~2000。
hand_posuint16[6]手指位置数组,范围:0~1000。
hand_stateuint16[6]手指状态,0正在松开,1正在抓取,2位置到位停止,3力到位停止,5电流保护停止,6电缸堵转停止,7电缸故障停止。
hand_forceuint16[6]灵巧手自由度电流,单位mN。
hand_erruint16灵巧手系统错误,1表示有错误,0表示无错误。

使用命令示例:

json
rostopic echo /rm_driver/Udp_Hand_Status

机械臂当前状态Arm_Current_Status.msg

参数说明:

参数类型说明
arm_current_statusstring机械臂当前状态。

使用命令示例:

json
rostopic echo /rm_driver/Udp_Arm_Current_status

机械臂关节电流Joint_Current.msg

参数说明:

参数类型说明
joint_currentfloat32[]关节电流。

使用命令示例:

json
rostopic echo /rm_driver/Udp_Joint_Current

机械臂关节使能标志Joint_En_Flag.msg

参数说明:

参数类型说明
joint_en_flagbool[]关节使能标志。

使用命令示例:

json
rostopic echo /rm_driver/Udp_Joint_En_Flag

机械臂关节速度Joint_Speed.msg

参数说明:

参数类型说明
joint_speedfloat32[]关节速度。

使用命令示例:

json
rostopic echo /rm_driver/Udp_Joint_Speed

机械臂关节温度Joint_Temperature.msg

参数说明:

参数类型说明
Joint_temperaturefloat32[]关节温度。

使用命令示例:

json
rostopic echo /rm_driver/Udp_Joint_Temperature

机械臂关节电压Joint_Voltage.msg

参数说明:

参数类型说明
joint_voltagefloat32[]关节电压。

使用命令示例:

json
rostopic echo /rm_driver/Udp_Joint_Voltage

机械臂欧拉角位姿Joint_PoseEuler.msg

参数说明:

参数类型说明
eulerfloat32[3]欧拉角。
positionfloat32[3]末端位置。

使用命令示例:

json
rostopic echo /rm_driver/Udp_Joint_PoseEuler

末端设备实时信息Rm_Plus_State.msg

参数说明:

参数类型说明
sys_stateint32系统状态。
sys_errint32系统错误。
dof_stateint32[]各自由度当前状态。
dof_errint32[]各自由度错误信息。
posint32[]各自由度当前位置。
speedint32[]各自由度当前速度。
angleint32[]各自由度当前角度。
currentint32[]各自由度当前电流。
normal_forceint32[]自由度触觉三维力的法向力。
tangential_forceint32[]自由度触觉三维力的切向力。
tangential_force_dirint32[]自由度触觉三维力的切向力方向。
tsauint32[]自由度触觉自接近。
tmauint32[]自由度触觉互接近。
touch_dataint32[]触觉传感器原始数据。
forceint32[]自由度力矩。

使用命令示例:

json
rostopic echo /rm_driver/Udp_Plus_State

末端设备基础信息Rm_Plus_Base.msg

参数说明:

参数类型说明
manustring设备厂家。
typeint8设备类型 1:两指夹爪 2:五指灵巧手 3:三指夹爪。
hvstring硬件版本。
svstring软件版本。
bvstringboot版本。
idint32设备ID。
dofint8自由度。
checkint8自检开关。
beeint8蜂鸣器开关。
forcebool力控支持。
touchbool触觉支持。
touch_numint8触觉个数。
touch_swint8触觉开关。
handint8手方向 1 :左手 2: 右手。
pos_upint32[]位置上限,单位:无量纲。
pos_lowint32[]位置下限,单位:无量纲。
angle_upint32[]角度上限,单位:0.01度。
angle_lowint32[]角度下限,单位:0.01度。
speed_upint32[]速度上限,单位:无量纲。
speed_lowint32[]速度下限,单位:无量纲。
force_upint32[]力上限,单位:0.001N。
force_lowint32[]力下限,单位:0.001N。

使用命令示例:

json
rostopic echo /rm_driver/Udp_Plus_Base