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:设置失败。

笛卡尔空间圆弧运动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:设置失败。

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

关节示教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/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机械臂自由度

控制器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波特率

参数说明:

参数类型说明
datauint32波特率可选范围:9600,19200,38400,115200和460800,若用户设置其他数据,控制器会默认按照460800处理。

使用命令示例:

json
rostopic pub /rm_driver/Set_RS485 std_msgs/UInt32 "data: 115200"

查询控制器RS485模式(第三代控制器)Controller_RS485_Mode.msg

参数说明:

参数类型说明
std_msgsEmptyROS自带msg。

使用命令示例:

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

返回命令示例:

json
rostopic echo /rm_driver/Get_Controller_RS485_Mode_Result

参数说明:

参数类型说明
controller_RS485_modeuint8控制器RS485模式,0代表默认RS485串行通讯,1代表modbus-RTU主站模式,2代表modbus-RTU从站模式。
tool_RS485_modeuint8工具端RS485模式,此时无效。
baudrateuint32波特率。
modbus_timeoutuint32modbus协议超时时间,单位100ms,仅在modbus-RTU模式下提供此字段。

查询工具端RS485模式(第三代控制器)Tool_RS485_Mode.msg

参数说明:

参数类型说明
std_msgsEmptyROS自带msg。

使用命令示例:

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

返回命令示例:

json
rostopic echo /rm_driver/Get_Tool_RS485_Mode_Result

参数说明:

参数类型说明
controller_RS485_modeuint8控制器RS485模式,此时无效。
tool_RS485_modeuint8工具端RS485模式,0代表默认RS485串行通讯,1代表modbus-RTU主站模式,2代表modbus-RTU从站模式。
baudrateuint32波特率。
modbus_timeoutuint32modbus协议超时时间,单位100ms,仅在modbus-RTU模式下提供此字段。

配置通讯端口ModbusRTU模式Set_Modbus_Mode.msg

参数说明:

参数类型说明
portuint8通讯端口,0-控制器RS485端口为RTU主站,1-末端接口板RS485接口为RTU主站,2-控制器RS485端口为RTU从站。
baudrateuint32波特率,支持9600,115200,460800三种常见波特率。
timeoutuint32超时时间,单位百毫秒。对Modbus设备所有的读写指令,在规定的超时时间内未返回响应数据,则返回超时报错提醒。超时时间不能为0,若设置为0,则机械臂按1进行配置。
ipstring此时无效。

使用命令示例:

json
rostopic pub /rm_driver/Set_Modbus_Mode rm_msgs/Set_Modbus_Mode "{port: 0, baudrate: 9600, timeout: 1, ip: '192.168.1.100'}"

返回命令示例:

json
rostopic echo /rm_driver/Set_Modbus_Mode_Result

参数说明:

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

关闭通讯端口ModbusRTU模式

参数说明:

参数类型说明
datauint8通讯端口,0-控制器RS485端口为RTU主站,1-末端接口板RS485接口为RTU主站,2-控制器RS485端口为RTU从站。

使用命令示例:

json
rostopic pub /rm_driver/Close_Modbus_Mode std_msgs/UInt8 "data: 0"

返回命令示例:

json
rostopic echo /rm_driver/Close_Modbus_Mode_Result

参数说明:

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

配置连接ModbusTCP从站(第三代控制器)Set_Modbus_Mode.msg

参数说明:

参数类型说明
portuint8从站的端口号。
baudrateuint32此时无效,波特率,支持9600,115200,460800三种常见波特率。
timeoutuint32超时时间,单位百毫秒。对Modbus设备所有的读写指令,在规定的超时时间内未返回响应数据,则返回超时报错提醒。超时时间不能为0,若设置为0,则机械臂按1进行配置。
ipstring从站的IP地址。

使用命令示例:

json
rostopic pub /rm_driver/Set_Modbustcp_Mode rm_msgs/Set_Modbus_Mode 
"port: 502 
baudrate: 0 #(不起作用) 
timeout: 1 
ip: '192.168.1.18'"

返回命令示例:

json
rostopic echo /rm_driver/Set_Modbustcp_Mode_Result

参数说明:

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

配置关闭ModbusTCP从站(第三代控制器)

参数说明:

参数类型说明
std_msgsEmptyROS自带msg。

使用命令示例:

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

返回命令示例:

json
rostopic echo /rm_driver/Close_Modbustcp_Mode_Result

参数说明:

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

读线圈Read_Register.msg

参数说明:

参数类型说明
portuint8通讯端口,0-控制器RS485端口,1-末端接口板RS485接口,3-控制器ModbusTCP连接外部从站端口。
addressuint32线圈起始地址。
numuint32要读的线圈的数量,该指令最多一次性支持读8个线圈数据,即返回的数据不会超过一个字节。
deviceuint32外设设备地址。

使用命令示例:

json
rostopic pub /rm_driver/Read_Coils rm_msgs/Read_Register "port: 0 address: 0 num: 1 device: 1"

返回命令示例:

json
rostopic echo /rm_driver/Read_Coils_Result

参数说明:

参数类型说明
datauint16[]返回数据。
statebool状态信息。

读多圈数据Read_Register.msg

参数说明:

参数类型说明
portuint8通讯端口,0-控制器RS485端口,1-末端接口板RS485接口,3-控制器ModbusTCP连接外部从站端口。
addressuint32线圈起始地址。
numuint328<=num<=120要读的线圈的数量,该指令最多一次性支持读120个线圈数据,即15个byte。
deviceuint32外设设备地址。

使用命令示例:

json
rostopic pub /rm_driver/Read_Multiple_Coils rm_msgs/Read_Register "port: 0 address: 0 num: 0 device: 0"

返回命令示例:

json
rostopic echo /rm_driver/ Read_Multiple_Coils_Result

参数说明:

参数类型说明
datauint16[]返回数据。
statebool状态信息。

写单圈数据Write_Register.msg

参数说明:

参数类型说明
portuint8通讯端口,0-控制器RS485端口,1-末端接口板RS485接口,3-控制器ModbusTCP连接外部从站端口。
addressuint32线圈起始地址。
numuint32(单圈不起作用)写线圈个数,每次写的数量不超过160个。
datauint16[]要写入线圈的数据组,类型:byte。若线圈个数不大于8,则写入的数据为1个字节;否则,则为多个数据的数组。
deviceuint32外设设备地址。

使用命令示例:

json
rostopic pub /rm_driver/Write_Single_Coil rm_msgs/Write_Register "port: 0 address: 0 num: 0 data: [0] device: 1"

返回命令示例:

json
rostopic echo /rm_driver/Write_Single_Coil_Result

参数说明:

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

写多圈数据Write_Register.msg

参数说明:

参数类型说明
portuint8通讯端口,0-控制器RS485端口,1-末端接口板RS485接口,3-控制器ModbusTCP连接外部从站端口。
addressuint32线圈起始地址。
numuint32(单圈不起作用)写线圈个数,每次写的数量不超过160个。
datauint16[]要写入线圈的数据组,类型:byte。若线圈个数不大于8,则写入的数据为1个字节;否则,则为多个数据的数组。
deviceuint32外设设备地址。

使用命令示例:

json
rostopic pub /rm_driver/Write_Coils rm_msgs/Write_Register "port: 0 address: 0 num: 10 data: [1,0] device: 1"

返回命令示例:

json
rostopic echo /rm_driver/Write_Coils_Result

参数说明:

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

读离散量输入Read_Register.msg

参数说明:

参数类型说明
portuint8通讯端口,0-控制器RS485端口,1-末端接口板RS485接口,3-控制器ModbusTCP连接外部从站端口。
addressuint32数据起始地址。
numuint32要读的离散量输入数量,该指令最多一次性支持读8个离散量输入数据,即返回的数据不会超过一个字节。
deviceuint32外设设备地址。

使用命令示例:

json
rostopic pub /rm_driver/Read_Input_Status rm_msgs/Read_Register "port: 0 address: 0 num: 2 device: 1"

返回命令示例:

json
rostopic echo /rm_driver/Read_Input_Status_Result

参数说明:

参数类型说明
datauint16[]返回数据。
statebool状态信息。

读保持寄存器Register_Data.msg

参数说明:

参数类型说明
portuint8通讯端口,0-控制器RS485端口,1-末端接口板RS485接口,3-控制器ModbusTCP连接外部从站端口。
addressuint32数据起始地址。
numuint32(不起作用)要读的寄存器数量,该指令最多一次性支持读8个寄存器数据,即返回的数据不会超过一个字节。
deviceuint32外设设备地址。

使用命令示例:

json
rostopic pub /rm_driver/Read_Holding_Registers rm_msgs/Read_Register "port: 0 address: 0 num: 0 device: 1"

返回命令示例:

json
rostopic echo / rm_driver/Read_Holding_Registers_Result

参数说明:

参数类型说明
datauint16[]返回数据。
statebool状态信息。

写单个寄存器Write_Register.msg

参数说明:

参数类型说明
portuint8通讯端口,0-控制器RS485端口,1-末端接口板RS485接口,3-控制器ModbusTCP连接外部从站端口。
addressuint32数据起始地址。
numuint32(不起作用)写寄存器个数,寄存器每次写的数量不超过10个。
datauint16[]要写入寄存器的数据,数据类型:int16。
deviceuint32外设设备地址。

使用命令示例:

json
rostopic pub /rm_driver/Write_Single_Register rm_msgs/Write_Register "port: 0 address: 0 num: 0 data: [1000] device: 1"

返回命令示例:

json
rostopic echo /rm_driver/Write_Single_Register_Result

参数说明:

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

写多个寄存器Write_Register.msg

参数说明:

参数类型说明
portuint8通讯端口,0-控制器RS485端口,1-末端接口板RS485接口,3-控制器ModbusTCP连接外部从站端口。
addressuint32数据起始地址。
numuint32写寄存器个数,寄存器每次写的数量不超过10个。
datauint16[]要写入寄存器的数据,数据类型:int16。
deviceuint32外设设备地址。

使用命令示例:

json
rostopic pub /rm_driver/Write_Registers rm_msgs/Write_Register "port: 0 address: 10 num: 2 data: [15,20,25,30] device: 1"

返回命令示例:

json
rostopic echo /rm_driver/Write_Registers_Result

参数说明:

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

读多个保持寄存器Register_Data.msg

参数说明:

参数类型说明
portuint8通讯端口,0-控制器RS485端口,1-末端接口板RS485接口,3-控制器ModbusTCP连接外部从站端口。
addressuint32数据起始地址。
numuint322 < num < 13 要读的寄存器的数量,该指令最多一次性支持读 12 个寄存器数据, 即 24 个 byte。
deviceuint32外设设备地址。

使用命令示例:

json
rostopic pub /rm_driver/Read_Multiple_Holding_Registers rm_msgs/Read_Register "port: 0 address: 0 num: 5 device: 1"

返回命令示例:

json
rostopic echo /rm_driver/Read_Multiple_Holding_Registers_Result

参数说明:

参数类型说明
datauint16[]返回数据。
statebool状态信息。

读输入寄存器Register_Data.msg

参数说明:

参数类型说明
portuint8通讯端口,0-控制器RS485端口,1-末端接口板RS485接口,3-控制器ModbusTCP连接外部从站端口。
addressuint32数据起始地址。
numuint32(不起作用)
deviceuint32外设设备地址。

使用命令示例:

json
rostopic pub /rm_driver/Read_Input_Registers rm_msgs/Read_Register "port: 0 address: 10 num: 0 device: 1"

返回命令示例:

json
rostopic echo /rm_driver/Read_Input_Registers_Result

参数说明:

参数类型说明
datauint16[]返回数据。
statebool状态信息。

读多个输入寄存器Register_Data.msg

参数说明:

参数类型说明
portuint8通讯端口,0-控制器RS485端口,1-末端接口板RS485接口,3-控制器ModbusTCP连接外部从站端口。
addressuint32数据起始地址。
numuint322 < num < 13 要读的寄存器的数量,该指令最多一次性支持读12个寄存器数据, 即24个byte。
deviceuint32外设设备地址。

使用命令示例:

json
rostopic pub /rm_driver/Read_Multiple_Input_Registers rm_msgs/Read_Register "port: 0 address: 0 num: 5 device: 1"

返回命令示例:

json
rostopic echo /rm_driver/Read_Multiple_Input_Registers_Result

参数说明:

参数类型说明
datauint16[]返回数据。
statebool状态信息。

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

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

设置灵巧手手势序号Hand_Posture.msg

参数说明:

参数类型说明
posture_numuint16预先保存在灵巧手内的手势序号,范围:1~40

使用命令示例:

json
rostopic pub /rm_driver/Hand_SetPosture rm_msgs/Hand_Posture "posture_num: 0"

返回命令示例:

json
rostopic echo /rm_driver/Set_Hand_Posture_Result

参数说明:

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

设置灵巧手动作序列Hand_Seq.msg

参数说明:

参数类型说明
seq_numuint16预先保存在灵巧手内的序列序号,范围:1~40

使用命令示例:

json
rostopic pub /rm_driver/Hand_SetSeq rm_msgs/Hand_Seq "seq_num: 0"

返回命令示例:

json
rostopic echo /rm_driver/Set_Hand_Seq_Result

参数说明:

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

设置灵巧手各自由度角度Hand_Angle.msg

设置灵巧手角度,灵巧手有 6 个自由度,从 1~6 分别为小拇指,无名指,中指,食指,大拇指弯曲,大拇指旋转。
参数说明:

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

使用命令示例:

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

返回命令示例:

json
rostopic echo /rm_driver/Set_Hand_Angle_Result

参数说明:

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

设置灵巧手速度Hand_Speed.msg

参数说明:

参数类型说明
hand_speeduint16手指速度,范围:1~1000

使用命令示例:

json
rostopic pub /rm_driver/Hand_SetSpeed rm_msgs/Hand_Speed "hand_speed: 0"

返回命令示例:

json
rostopic echo /rm_driver/Set_Hand_Speed_Result

参数说明:

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

设置灵巧手力阈值Hand_Force.msg

参数说明:

参数类型说明
hand_Forceuint16手指力,范围:1~1000

使用命令示例:

json
rostopic pub /rm_driver/Hand_SetForce rm_msgs/Hand_Force "hand_force: 0"

返回命令示例:

json
rostopic echo /rm_driver/Set_Hand_Force_Result

参数说明:

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

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

设置灵巧手角度,灵巧手有 6 个自由度,从 1~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~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