0.Changelog
- V1.0-2021/05/27:建立文档
- V1.1-2021/07/05:修正一些运动指令的参数错误
- V1.2-2021/07/08:主要新增RobotMode机器人模式以及文档书写错误
- V1.3-2021/07/13:更新返回数据表格
- V1.4-2021/07/16: Arc3 改为Arc : 与新版MG400指令一致;ServoJ的参数不能以表的形式,因为一次只能下发一个点,ServoP相同;文档中是1440字节,不是1044。
- V1.5-2021/07/23: 数据的结构体去除掉添加一个是字节位置值;对RobotMode的状态优先级进行描述;新增机器人上电接口。
- V1.6-2021/08/04:调整Dashboard端口和实时反馈端口表格位置;根据GK项目,新增运行脚本、读写保存寄存器、获取机器人状态等指令;
- V1.7-2021/08/23:添加Sync指令、SetArmOrientation描述优化、电子皮肤SetObstacleAvoid、SetSafeSkin相关指令、轨迹复现相关指令GetTraceStartPose、GetPathStartPose、StartTrace、StartPath以及正解逆解接口InverseSolution、PositiveSolution;以及若干书写错误;
- V1.8-2021/08/31:新增碰撞等级SetCollisionLevel、轨迹文件预处理接口HandleTrajPoints、获取六维力数据GetSixForceData、获取笛卡尔坐标系下机械臂的实时位姿接口GetPose、获取关节坐标系下机械臂的实时位姿接口GetAngle、急停指令EmergencyStop、带力控的轨迹拟合StartFCTrace、关节/笛卡尔点动指令MoveJog;
- V1.8-2021/09/15:定义轨迹预处理运行结果接口;若用户下发不带参数的该指令,代表查询当前指令的结果(适用于轨迹文件预处理);轨迹复现/拟合/带力控拟合通过RobotMode获取机器人运行状态;
- V1.8-2021/09/27:更改Sync指令的端口到29999(阻塞指令),待所有队列指令执行完才返回done;以及去掉多余指令;
- V1.8-2021/10/15:根据PX需要末端485支持使用RTU的功能的指令,新增支持Modbus的TCP和RTU通信的指令;详情见《末端485的modbusRTU功能拓展》以及《工业项目Modbus需求及概要设计方案》;
- V1.9-2021/10/25:跟进PX的反馈,优化正逆解参数内容;新增获取错误码接口;实时反馈端口新增获取用户坐标、工具坐标以及手系的参数;
- V1.10-2021/10/27:跟进PX的需求,使能新增四个可选参数((负载 + 偏心)、实时数据上报负载参数、实时数据上报用户/工具坐标系的矩阵、实时数据上报关节实际力矩、实时数据上报速度加速度等相关的比率共计9个;
- V1.10-2021/11/03:PX分支拆分30003端口为30003和30004;其中30003端口仅作为下发运行指令相关接口;30004端口仅做为实时反馈端口;注意:30003端口的拆分预计在控制器3.5.2版本实现,3.5.1暂时还是一个30003端口进行实时反馈以及下发运动相关指令;
1. 综述
CR机器人现支持两种远程控制方式:远程I/O模式、远程Modbus模式;具体控制方式详见《Dobot-CR-Series-Robot-APP-User-Guide-V3.7》文档中软件使用说明->设置->远程控制章节中;
以上两种方式主要针对远程运行脚本的控制;由于基于TCP/IP的通讯具有成本低、可靠性高、实用性强、性能高等特点;许多工业自动化项目对支持TCP/IP协议控制机器人需求广泛,因此CR/MG400/M1Pro机器人将设计在TCP/IP协议的基础上,提供了丰富的接口用于与外部设备的交互;
关于TCP/IP协议的支持,CR系列机器人的控制器版本需V3.5.1.9及以上,MG400/M1Pro机器人的控制器版本需V1.5.4.0及以上。
2.消息格式
根据设计,CR机器人可以开启29999、30003以及30004服务器端口;29999服务器端口(以下简称Dashboard端口)通过一发一收的方式负责接收一些简单的指令,即Dashboard端口接收到客户端约定消息格式后会将结果反馈客户端;30003服务器端口接收客户端的约定消息格式,并实时反馈;30004服务器端口(以下简称实时反馈端口)每20ms反馈机器人的信息,(注意:30003端口的拆分成30003和30004端口预计在控制器3.5.2版本实现,3.5.1暂时还是一个30003端口进行实时反馈以及下发运动相关指令;3.5.2版本才实现30004端口实时反馈)
2.1 下发格式
消息名称(Param1,Param2,Param3……Paramn)
消息格式如上所示,由一个消息名称,括号内由参数组成, 每一个参数之间以英文逗号 ”,” 相隔,一个完整的消息以右括号结束。
消息命令与消息应答都是 ASCII 码格式(字符串形式)。
2.2 返回格式
2.2.1接收成功返回:
"消息名称(Param1,Param2,Param3……Paramn)"
消息格式如上所示,成功返回下发的消息名称。
2.2.2 失败返回:
"could not understand:'消息名称(Param1,Param2,Param3……Paramn)'"
消息格式如上所示,失败返回could not understand:'消息名称(Param1,Param2,Param3……Paramn)'。
3.通信协议---Dashboard端口
上位机可以通过29999端口直接发送一些简单的指令给机器人,这些指令CR自己定义的,这些功能被称为Dashboard。如表是Dashboard的指令列表。可以通过Dashboard的指令实现对机器人使能/下使能、复位等控制;
指令 | 描述 |
---|---|
EnableRobot | 使能机器人 |
DisableRobot | 去使能机器人 |
ClearError | 复位,用于清除错误 |
ResetRobot | 机器人停止当前动作,重新接收使能,规划停 |
SpeedFactor | 设置全局速率比 |
User | 选择已标定的用户坐标系(笛卡尔空间显示值 实际生效根据点) |
Tool | 选择已标定的工具坐标系 |
RobotMode | 机器人模式 |
PayLoad | 设置负载 |
DO | 设置数字量输出端口状态 |
DOExecute | 设置数字量输出端口状态(立即指令) |
ToolDO | 设置末端数字量输出端口状态 |
ToolDOExecute | 设置末端数字量输出端口状态(立即指令) |
AO | 设置模拟量输出端口状态 |
AOExecute | 设置模拟量输出端口状态(立即指令) |
AccJ | 设置关节加速度比例。该指令仅对MovJ、MovJIO、MovJR、 JointMovJ指令有效 |
AccL | 设置笛卡尔加速度比例。该指令仅对MovL、MovLIO、MovLR、Jump、Arc、Circle指令有效。 |
SpeedJ | 设置关节速度比例。该指令仅对MovJ、MovJIO、MovJR、 JointMovJ指令有效。 |
SpeedL | 设置笛卡尔速度比例。该指令仅对MovL、MovLIO、MovLR、Jump、Arc、Circle指令有效。 |
Arch | 设置Jump门型参数索引(起始点抬升高度、最大抬 升高度、结束点下降高度) |
CP | 运动时设置平滑过渡 |
LimZ | 设置Jump模式最大抬升高度 |
SetArmOrientation | 设置手系 |
PowerOn | 机器人上电 |
RunScript | 运行脚本 |
StopScript | 停止脚本 |
PauseScript | 暂停脚本 |
ContinueScript | 继续脚本 |
SetSafeSkin | 设置安全皮肤开关状态 |
SetObstacleAvoid | 设置安全皮肤避障模式开关状态 |
GetTraceStartPose | 获取轨迹拟合中首个点位 |
GetPathStartPose | 获取轨迹复现中首个点位 |
PositiveSolution | 正解 |
InverseSolution | 逆解 |
SetCollisionLevel | 设置碰撞等级 |
HandleTrajPoints | 轨迹文件预处理 |
GetSixForceData | 获取六维力数据 |
GetAngle | 获取关节坐标系下机械臂的实时位姿 |
GetPose | 获取笛卡尔坐标系下机械臂的实时位姿 |
EmergencyStop | 急停 |
Sync | 阻塞程序执行队列指令,待所有队列指令执行完才返回 |
ModbusCreate | 创建Modbus主站,并和从站建立连接 |
ModbusClose | 和Modbus从站断开连接 |
GetInBits | 读离散输入功能 |
GetInRegs | 读输入寄存器 |
GetCoils | 读线圈功能 |
SetCoils | 写线圈功能 |
GetHoldRegs | 读保存寄存器 |
SetHoldRegs | 写保存寄存器 |
GetErrorID | 获取错误ID |
3.1 EnableRobot
-
功能:使能机器人
-
格式:EnableRobot()
-
可选参数数量:0/1/4 (不填参数,返回0;填一个参数默认为负载重量参数,返回0;填四个参数分别表示负载重量、X方向偏心距、Y方向偏心距以及Z方向偏心距,返回0;失败返回1;)
-
支持端口:29999
-
可选参数详解:
参数名 类型 含义 load double 负载重量kg centerX double X方向偏心距离mm centerY double Y方向偏心距离mm centerZ double Z方向偏心距离mm -
示例:
EnableRobot()
返回:0
3.2 DisableRobot
-
功能:下使能机器人
-
格式:DisableRobot()
-
参数数量:0
-
支持端口:29999
-
示例:
DisableRobot()
3.3 ClearError
-
功能:清错机器人
-
格式:ClearError()
-
参数数量:0
-
支持端口:29999
-
参数详解:
-
示例:
ClearError()
3.4 ResetRobot
-
功能:机器人停止
-
格式:ResetRobot()
-
参数数量:0
-
支持端口:29999
-
参数详解:
-
示例:
ResetRobot()
3.5 SpeedFactor
-
功能:设置全局速度比例。
-
格式:SpeedFactor(ratio)
-
参数数量:1
-
支持端口:29999
-
参数详解:1
参数名 类型 含义 ratio int 运动速度比例,取值范围:0~100,但不包括0和100 -
示例:
SpeedFactor(80)
3.6 User
-
功能:选择已标定的用户坐标系。
-
格式:User(index)
-
参数数量:1
-
支持端口:29999
-
参数详解:1
参数名 类型 含义 index int 选择已标定的用户坐标系,取值范围:0~9 -
示例:
User(1)
3.7 Tool
-
功能:选择已标定的工具坐标系。
-
格式:Tool(index)
-
参数数量:1
-
支持端口:29999
-
参数详解:1
参数名 类型 含义 index int 选择已标定的工具坐标系,取值范围:0~9 -
示例:
Tool(1)
3.8 RobotMode
-
功能:机器人状态。
-
格式:RobotMode()
-
参数数量:0
-
支持端口:29999
-
示例:
RobotMode()
-
返回值:
模式 描述 备注 -1 ROBOT_MODE_NO_CONTROLLER 没有控制器 0 ROBOT_MODE_DISCONNECTED 没有连接 1 ROBOT_MODE_CONFIRM_SAFETY 配置安全参数 2 ROBOT_MODE_BOOTING 启动 3 ROBOT_MODE_POWER_OFF 下电 4 ROBOT_MODE_POWER_ON 上电 5 ROBOT_MODE_IDLE 空闲 6 ROBOT_MODE_BACKDRIVE 拖拽 7 ROBOT_MODE_RUNNING 运行 8 ROBOT_MODE_UPDATING_FIRMWARE 更新固件 9 ROBOT_MODE_ERROR 报警
3.9 PayLoad
-
功能:设置当前的负载
-
格式:PayLoad(weight,inertia)
-
参数数量:2
-
支持端口:29999
-
参数详解:2
参数名 类型 含义 weight double 负载重量 kg inertia double 负载惯量 kgm² -
示例:
PayLoad(3,0.4)
3.10 DO
-
功能:设置数字输出端口状态(队列指令)
-
格式:DO(index,status)
-
参数数量:2
-
支持端口:29999
-
参数详解:2
参数名 类型 含义 index int 数字输出索引,取值范围:1~16 status int 数字输出端口状态,1:高电平;0:低电平 -
示例:
DO(1,1)
3.11 DOExecute
-
功能:设置数字输出端口状态(立即指令)
-
格式:DOExecute(index,status)
-
参数数量:2
-
支持端口:29999
-
参数详解:2
参数名 类型 含义 index int 数字输出索引,取值范围:1~16 status int 数字输出端口状态,1:高电平;0:低电平 -
示例:
DOExecute(1,1)
3.12 ToolDO
-
功能:设置末端数字输出端口状态(队列指令)
-
格式:ToolDO(index,status)
-
参数数量:2
-
支持端口:29999
-
参数详解:2
参数名 类型 含义 index int 数字输出索引,取值范围:1/2 status int 数字输出端口状态,1:高电平;0:低电平 -
示例:
ToolDO(1,1)
3.13 ToolDOExecute
-
功能:设置末端数字输出端口状态(立即指令)
-
格式:ToolDOExecute(index,status)
-
参数数量:2
-
支持端口:29999
-
参数详解:2
参数名 类型 含义 index int 数字输出索引,取值范围:1/2 status int 数字输出端口状态,1:高电平;0:低电平 -
示例:
ToolDOExecute(1,1)
3.14 AO
-
功能:设置控制柜模拟输出端口的电压值(队列指令)
-
格式:AO(index,value)
-
参数数量:2
-
支持端口:29999
-
参数详解:2
参数名 类型 含义 index int 模拟输出索引,取值范围:1/2 value double 对应index的电压值,取值范围0~10V -
示例:
AO(1,2)
3.15 AOExecute
-
功能:设置控制柜模拟输出端口的电压值(立即指令)
-
格式:AOExecute(index,value)
-
参数数量:2
-
支持端口:29999
-
参数详解:2
参数名 类型 含义 index int 模拟输出索引,取值范围:1/2 value double 对应index的电压值,取值范围0~10V -
示例:
AOExecute(1,2)
3.16 AccJ
-
功能:设置关节加速度比例。该指令仅对MovJ、MovJIO、MovJR、 JointMovJ指令有效
-
格式:AccJ,R)
-
参数数量:1
-
支持端口:29999
-
参数详解:1
参数名 类型 含义 R int 关节加速度百分比,取值范围:1~100 -
示例:
AccJ(50)
3.17 AccL
-
功能:设置笛卡尔加速度比例。该指令仅对MovL、MovLIO、MovLR、Jump、Arc、Circle指令有效。
-
格式:AccL(R)
-
参数数量:1
-
支持端口:29999
-
参数详解:1
参数名 类型 含义 R int 笛卡尔加速度比例,取值范围:1~100 -
示例:
AccL(50)
3.18 SpeedJ
-
功能:设置关节速度比例。该指令仅对MovJ、MovJIO、MovJR、 JointMovJ指令有效。
-
格式:SpeedJ(R)
-
参数数量:1
-
支持端口:29999
-
参数详解:1
参数名 类型 含义 R int 关节速度比例,取值范围:1~100 -
示例:
SpeedJ(50)
3.19 SpeedL
-
功能:设置笛卡尔速度比例。该指令仅对MovL、MovLIO、MovLR、Jump、Arc、Circle指令有效。
-
格式:SpeedL(R)
-
参数数量:1
-
支持端口:29999
-
参数详解:1
参数名 类型 含义 R int 笛卡尔速度比例,取值范围:1~100 -
示例:
SpeedL(50)
3.20 Arch
-
功能:设置Jump门型参数索引(起始点抬升高度、最大抬升高度、结束点下降高度)。
-
格式:Arch(Index)
-
参数数量:1
-
支持端口:29999
-
参数详解:1
参数名 类型 含义 Index int 门型参数索引,取值范围:0~9 -
示例:
Arch(1)
3.21 CP
-
功能:设置CP比例。CP即平滑过渡,机械臂从起始点经过中间点到达终点时,经过中间点是以直角方式过渡还是以曲线方式过渡。该指令对Jump指令无效。
-
格式:CP(R)
-
参数数量:1
-
支持端口:29999
-
参数详解:1
参数名 类型 含义 R int 平滑过渡比例,取值范围:1~100 -
示例:
CP(50)
3.22 LimZ
-
功能:设置Jump模式最大抬升高度。
-
格式:LimZ(zValue)
-
参数数量:1
-
支持端口:29999
-
参数详解:1
参数名 类型 含义 zValue int 最大抬升高度,不能超过机械臂Z轴极限位置 -
示例:
LimZ(80)
3.23 SetArmOrientation
-
功能:设置手系指令。
-
格式:SetArmOrientation(LorR,UorD,ForN,Config6)
-
参数数量:4
-
支持端口:29999
-
参数详解:4
参数名 类型 含义 LorR int 臂方向向前/向后(1/-1)
1:向前
-1:向后UorD int 臂方向肘上/肘下(1/-1)
1:肘上
-1:肘下ForN int 臂方向腕部是否翻转(1/-1)
1:腕不翻转
-1:腕翻转Config6 int 第六轴角度标识
-1,-2...:第6轴角度为[0,-90]为-1;[-90,-180]为-2;以此类推
1,2...:第6轴角度为[0,90]为1;[90,180]为2;以此类推 -
示例:
SetArmOrientation(1,1,-1,1)
3.24 PowerOn
-
功能:机器人上电。
-
格式:PowerOn()
-
参数数量:0
-
支持端口:29999
-
注意:机器人上电完成,需要等待大概10秒钟的时间进行使能操作;
-
示例:
PowerOn()
3.25 RunScript
-
功能:运行脚本。
-
格式:RunScript(projectName)
-
参数数量:1
-
支持端口:29999
-
参数详解:
参数名 类型 含义 projectName string 脚本名称 -
示例:
RunScript(demo)
3.26 StopScript
-
功能:停止脚本。
-
格式:StopScript()
-
参数数量:0
-
支持端口:29999
-
示例:
StopScript()
3.27 PauseScript
-
功能:暂停脚本。
-
格式:PauseScript()
-
参数数量:0
-
支持端口:29999
-
示例:
PauseScript()
3.28 ContinueScript
-
功能:继续脚本。
-
格式:ContinueScript()
-
参数数量:0
-
支持端口:29999
-
示例:
ContinueScript()
-
3.29 SetSafeSkin
-
功能:设置安全皮肤开关状态。
-
格式:SetSafeSkin(status)
-
参数数量:1
-
支持端口:29999
-
参数详解:
参数名 类型 含义 status int status:电子皮肤开关状态,0:关闭电子皮肤;1:开启电子皮肤 -
示例:开启电子皮肤功能
SetSafeSkin (1)
3.30 SetObstacleAvoid
-
功能:设置安全皮肤避障模式开关状态。
-
格式:SetObstacleAvoid(status)
-
参数数量:1
-
支持端口:29999
-
参数详解:
参数名 类型 含义 status int status:安全皮肤避障模式开关状态,0:关闭安全皮肤避障模式;1:开启安全皮肤避障功能 -
示例:开启安全皮肤避障功能
SetObstacleAvoid(1)
3.31 GetTraceStartPose
-
功能:获取轨迹拟合中首个点位。
-
格式:GetTraceStartPose(traceName)
-
参数数量:1
-
支持端口:29999
-
参数详解:
参数名 类型 含义 traceName string 轨迹文件名(含后缀)
轨迹路径存放在/dobot/userdata/project/process/trajectory/ -
返回:
点位坐标值 {x,y,z,a,b,c}
-
示例:
GetTraceStartPose(recv_string)
3.32 GetPathStartPose
-
功能:获取轨迹复现中首个点位。
-
格式:GetPathStartPose(traceName)
-
参数数量:1
-
支持端口:29999
-
参数详解:
参数名 类型 含义 traceName string 轨迹文件名(含后缀)
轨迹路径存放在/dobot/userdata/project/process/trajectory/ -
返回:
关节点位坐标值 {j1,j2,j3,j4,j5,j6}
-
示例:
GetPathStartPose(recv_string)
3.33 PositiveSolution
-
功能:正解。(给定机器人各关节的角度,计算出机器人末端的空间位置)
-
格式:PositiveSolution(J1,J2,J3,J4,J5,J6,User,Tool)
-
参数数量:8
-
支持端口:29999
-
参数详解:8
参数名 类型 含义 J1 double J1 轴位置,单位:度 J2 double J2 轴位置,单位:度 J3 double J3 轴位置,单位:度 J4 double J4 轴位置,单位:度 J5 double J5 轴位置,单位:度 J6 double J6 轴位置,单位:度 User int 选择已标定的用户坐标系 Tool int 选择已标定的工具坐标系 -
注意,需要已知:
- 机器人的臂方向SetArmOrientation
-
示例:下发关节角度返回当前的机器人末端的空间位置
PositiveSolution(0,0,-90,0,90,0,1,1)
3.34 InverseSolution
-
功能:逆解。(已知机器人末端的位置和姿态,计算机器人各关节的角度值)
-
格式:InverseSolution(X,Y,Z,Rx,Ry,Rz,User,Tool,LorR,UorD,ForN,Config6)
-
参数数量:12
-
支持端口:29999
-
参数详解:12
参数名 含义 类型 X X 轴位置,单位:毫米 double Y Y 轴位置,单位:毫米 double Z Z 轴位置,单位:毫米 double Rx Rx 轴位置,单位:度 double Ry Ry轴位置,单位:度 double Rz Rz轴位置,单位:度 double User 选择已标定的用户坐标系 int Tool 选择已标定的工具坐标系 int LorR 臂方向向前/向后(1/-1)
1:向前
-1:向后int UorD 臂方向肘上/肘下(1/-1)
1:肘上
-1:肘下int ForN 臂方向腕部是否翻转(1/-1)
1:腕不翻转
-1:腕翻转int Config6 第六轴角度标识
-1,-2...:第6轴角度为[0,-90]为-1;[-90,-180]为-2;以此类推
1,2...:第6轴角度为[0,90]为1;[90,180]为2;以此类推int -
示例:下发关节角度返回当前的机器人末端的空间位置
InverseSolution(0,-247,1050,-90,0,180,0,0,1,1,1,1)
返回:0,{0,0,-90,0,90,0}
3.35 SetCollisionLevel
-
功能:设置碰撞等级。
-
格式:SetCollisionLevel(level)
-
参数数量:1
-
支持端口:29999
-
参数详解:
参数名 类型 含义 level int level: 碰撞等级
0:关闭碰撞检测
1~5:等级越高越灵敏 -
示例:
SetCollisionLevel(1)
3.36 HandleTrajPoints
-
功能:轨迹文件的预处理。
-
格式:HandleTrajPoints(traceName)
-
参数数量:1
-
支持端口:29999
-
参数详解:1
参数名 类型 含义 traceName string 轨迹文件名(含后缀)
轨迹路径存放在/dobot/userdata/project/process/trajectory/ -
**备注:若用户下发不带参数的该指令,代表查询当前指令的结果;**返回:返回为-3表示文件内容错误,返回为-2表示文件不存在,返回为-1表示预处理没有完成;返回为0表示预处理完成,没有错误;返回大于0的结果表示当前返回结果对应的点位有问题;
-
示例:下发轨迹名为recv_string做预处理,然后在一定周期查询预处理结果;
HandleTrajPoints(recv_string)
HandleTrajPoints()
3.37 GetSixForceData
-
功能:获取六维力数据
-
格式:GetSixForceData()
-
参数数量:0
-
支持端口:29999
-
返回:当前六维力数据原始值;
-
示例:
GetSixForceData()
返回:{0.0,0.0,0.0,0.0,0.0,0.0}
3.38 GetAngle
-
功能:获取关节坐标系下机械臂的实时位姿
-
格式:GetAngle()
-
参数数量:0
-
支持端口:29999
-
返回:机械臂当前位置的关节坐标值;
-
示例:
GetAngle()
返回:{0.0,0.0,90.0,0.0,-90.0,0.0}
3.39 GetPose
-
功能:获取笛卡尔坐标系下机械臂的实时位姿(如果设置了用户坐标系或工具坐标系,则获取的位姿为当前坐标系下的位姿)
-
格式:GetPose()
-
参数数量:0
-
支持端口:29999
-
返回:机械臂当前位置的笛卡尔坐标值;
-
示例:
GetPose()
返回:{-473.0,-141.0,469.0,-180.0,0.0,90.0}
3.40 EmergencyStop
-
功能:急停,机器人记录
-
格式:EmergencyStop()
-
参数数量:0
-
支持端口:29999
-
示例:
EmergencyStop()
3.41 Sync
- 功能:阻塞程序执行队列指令,待所有队列指令执行完才返回。
- 格式:Sync()
- 参数数量:0
- 支持端口:29999
- 返回:done
3.42 ModbusCreate(预计控制器352版本支持)
-
功能:创建modbus主站。
-
格式:ModbusCreate(ip,port,slave_id,isRTU)
-
参数数量:4
-
支持端口:29999
-
参数详解:
参数名 类型 含义 ip string 从站ip地址; port int 从站端口; slave_id int 从站ID(取值范围大于0的整数) isRTU int 可选参数,取值范围0/1:
如果为空或者值为0,建立modbusTCP通信;
如果为1,建立modbusRTU通信; -
返回:
-
err:
0:创建Modbus主站成功
1:创建Modbus主站失败
-
index: 返回的主站索引,最多支持5个设备,取值范围(0~4)
-
-
示例:建立RTU通信主站(60000末端透传端口)
ModbusCreate(127.0.0.1,60000,1,true)
3.43 ModbusClose(预计控制器352版本支持)
-
功能:和Modbus从站断开连接,释放主站。
-
格式:ModbusClose(index)
-
参数数量:1
-
支持端口:29999
-
参数详解:
参数名 类型 含义 index string 返回的主站索引; -
示例:
ModbusClose(0)
3.44 GetInBits(预计控制器352版本支持)
-
功能:读离散输入功能。
-
格式:GetInBits(index,addr,count)
-
参数数量:3
-
支持端口:29999
-
参数详解:
参数名 类型 含义 index int 返回的主站索引; addr int 视从站配置而定; count int 个数,取值范围1~16 -
返回:
- 0/-1 0表示正常 -1表示没有获取成功
- table,按位{}
-
示例:
下发: GetInBits(0,3000,5)
正常返回:0,{1,0,1,1,0}
错误返回:-1,{}
3.45 GetInRegs(预计控制器352版本支持)
-
功能:读输入寄存器。
-
格式:GetInRegs(index,addr,count,valType)
-
参数数量:4
-
支持端口:29999
-
参数详解:
参数名 类型 含义 index int 返回的主站索引; addr int 视从站配置而定; count int 个数,取值范围:1 -4 valType string 可选参数,
"U16": 读取16位无符号数(2个字节,占用1个寄存器)
"U32": 读取32位无符号数(4个字节,占用2个寄存器)
"F32": 读取32位浮点数(4个字节,占用2个寄存器)
"F64": 读取64位浮点数(8个字节,占用4个寄存器) -
返回:
- 0/-1 0表示正常 -1表示没有获取成功
- table,按变量类型{}
-
示例:
GetInRegs(0,4000,3)
正常返回:0,{5,18,12}
错误返回:-1,{}
3.46 GetCoils(预计控制器352版本支持)
-
功能:读线圈功能。
-
格式:GetCoils(index,addr,count)
-
参数数量:3
-
支持端口:29999
-
参数详解:
参数名 类型 含义 index int 返回的主站索引; addr int 视从站配置而定; count int 个数,取值范围1~16 -
返回:
- 0/-1 0表示正常 -1表示没有获取成功
- table,按变量类型
-
示例:
GetCoils(0,1000,3)
正常返回:0,{1,1,0}
错误返回:-1,{}
3.47 SetCoils(预计控制器352版本支持)
-
功能:写线圈功能。
-
格式:SetCoils(index,addr,count,valTab)
-
参数数量:3
-
支持端口:29999
-
参数详解:
参数名 类型 含义 index int 返回的主站索引; addr int 视从站配置而定; count int 个数,取值范围1~16 valTab string 写线圈地址值; -
返回:
- count/-1 count表示设置正常 -1表示没有设置成功
-
示例:
SetCoils(0,1000,3,{1,0,1})
正常返回:3
错误返回:-1
3.48 GetHoldRegs(预计控制器352版本支持)
-
功能:读保持寄存器。
-
格式:GetHoldRegs(index,addr, count,valType)
-
参数数量:4
-
支持端口:29999
-
参数详解:
参数名 类型 含义 index int index,返回的主站索引,最多支持5个设备,取值范围(0~4); addr int 保持寄存器的起始地址。视从站配置而定; count int 读取指定数量type类型的数据。取值范围:1 -4 valType string 数据类型:
如果为空,默认读取16位无符号整数(2个字节,占用1个寄存器)
“U16”:读取16位无符号整数(2个字节,占用1个寄存器)
“U32”:读取32位无符号整数(4个字节,占用2个寄存器)
“F32”:读取32位单精度浮点数(4个字节,占用2个寄存器)
“F64”:读取64位双精度浮点数(8个字节,占用4个寄存器) -
返回:
- 0/-1 0表示正常 -1表示没有获取成功
- table,按变量类型
-
示例:从地址3095开始读取一个16位无符号整数
GetHoldRegs(0,3095,1)
正常返回:0,{13}
错误返回:-1,{}
3.49 SetHoldRegs(预计控制器352版本支持)
-
功能:写保存寄存器。
-
格式:SetHoldRegs(index,addr, count,valTab,valType)
-
参数数量:5
-
支持端口:29999
-
参数详解:
参数名 类型 含义 index int index,返回的主站索引,最多支持5个设备,取值范围(0~4) addr int 保持寄存器的起始地址。视从站配置而定; count int 写入指定数量type类型的数据。取值范围:1 ~4 valTab string 保持寄存器地址的值 valType string 数据类型
如果为空,默认读取16位无符号整数(2个字节,占用1个寄存器)
“U16”:读取16位无符号整数(2个字节,占用1个寄存器)
“U32”:读取32位无符号整数(4个字节,占用2个寄存器)
“F32”:读取32位单精度浮点数(4个字节,占用2个寄存器)
“F64”:读取64位双精度浮点数(8个字节,占用4个寄存器) -
返回:
- count/-1 count表示设置正常 -1表示没有设置成功
-
示例:从地址3095开始,写入两个16位无符号整数值6000,300
SetHoldRegs(0,3095,2,{6000,300}, “U16”)
正常返回:2
错误返回:-1
3.50 GetErrorID
-
功能:清错机器人
-
格式:GetErrorID()
-
参数数量:0
-
支持端口:29999
-
返回:错误码,其中碰撞检测值为-1,电子皮肤碰撞检测值-2;
[[id, id, id], [id], [id], [id], [id], [id], [id]]
-
示例:
GetErrorID()
4.通信协议----实时反馈端口
30003端口即实时反馈端口(30004端口将在控制器3.5.2+版本支持)除了用于发送约定的运动相关协议外,还有其他功能,客户端每20ms能收到一次机器人如下表所示的信息。通过实时反馈端口每次收到的数据包有1440个字节,这些字节以标准的格式排列。下表是字节排列的顺序表。
意义/Meaning | 数据类型/Type | 值的数目/Number of values | 字节大小/Size in bytes | 字节位置值/Byte position value | 描述/Notes |
---|---|---|---|---|---|
Message Size | unsigned short | 1 | 2 | 0000 ~ 0001 | 消息字节总长度/Total message length in bytes |
unsigned short | 3 | 6 | 0002 ~ 0007 | 保留位 | |
Digital input bits | double | 1 | 8 | 0008 ~ 0015 | 数字输入/Current state of the digital inputs. |
Digital outputs | double | 1 | 8 | 0016 ~ 0023 | 数字输出 |
Robot Mode | double | 1 | 8 | 0024 ~ 0031 | 机器人模式/Robot mode |
Controller Timer | double | 1 | 8 | 0032 ~ 0039 | 程序扫描时间/Controller realtime thread execution time |
Time | double | 1 | 8 | 0040 ~ 0047 | 控制器通电时间/Time elapsed since the controller was started |
test_value | double | 1 | 8 | 0048 ~ 0055 | 内存结构测试标准值 0x0123 4567 89AB CDEF |
Safety Mode | double | 1 | 8 | 0056 ~ 0063 | 安全模式/Safety mode |
Speed scaling | double | 1 | 8 | 0064 ~ 0071 | 速度比例/Speed scaling of the trajectory limiter |
Linear momentum norm | double | 1 | 8 | 0072 ~ 0079 | 机器人当前动量/Norm of Cartesian linear momentum |
V main | double | 1 | 8 | 0080 ~ 0087 | 控制板电压/Masterboard: Main voltage |
V robot | double | 1 | 8 | 0088 ~ 0095 | 机器人电压/Masterboard: Robot voltage (48V) |
I robot | double | 1 | 8 | 0096 ~ 0103 | 机器人电流/Masterboard: Robot current |
Program state | double | 1 | 8 | 0104 ~ 0111 | 程序状态/Program state |
Safety Status | double | 1 | 8 | 0112 ~ 0119 | 安全状态/Safety status |
Tool Accelerometer values | double | 3 | 24 | 0120 ~ 0143 | TCP加速度/Tool x,y and z accelerometer values |
Elbow position | double | 3 | 24 | 0144 ~ 0167 | 肘位置/Elbow position |
Elbow velocity | double | 3 | 24 | 0168 ~ 0191 | 肘速度/Elbow velocity |
q target | double | 6 | 48 | 0192 ~ 0239 | 目标关节位置/Target joint positions |
qd target | double | 6 | 48 | 0240 ~ 0287 | 目标关节速度/Target joint velocities |
qdd target | double | 6 | 48 | 0288 ~ 0335 | 目标关节加速度/Target joint accelerations |
I target | double | 6 | 48 | 0336 ~ 0383 | 目标关节电流/Target joint currents |
M target | double | 6 | 48 | 0384 ~ 0431 | 目标关节扭矩/Target joint moments (torques) |
q actual | double | 6 | 48 | 0432 ~ 0479 | 实际关节位置/Actual joint positions |
qd actual | double | 6 | 48 | 0480 ~ 0527 | 实际关节速度/Actual joint velocities |
I actual | double | 6 | 48 | 0528 ~ 0575 | 实际关节电流/Actual joint currents |
I control | double | 6 | 48 | 0576 ~ 0623 | 关节控制电流/Joint control currents(暂时0代替) |
Tool vector actual | double | 6 | 48 | 0624 ~ 0671 | TCP笛卡尔实际坐标值/Actual Cartesian coordinates of the tool: (x,y,z,rx,ry,rz), where rx, ry and rz is a rotation vector representation of the tool orientation |
TCP speed actual | double | 6 | 48 | 0672 ~ 0719 | TCP笛卡尔实际速度值/Actual speed of the tool given in Cartesian coordinates |
TCP force | double | 6 | 48 | 0720 ~ 0767 | TCP力值/Generalised forces in the TCP |
Tool vector target | double | 6 | 48 | 0768 ~ 0815 | TCP笛卡尔目标坐标值/Target Cartesian coordinates of the tool: (x,y,z,rx,ry,rz), where rx, ry and rz is a rotation vector representation of the tool orientation |
TCP speed target | double | 6 | 48 | 0816 ~ 0863 | TCP笛卡尔目标速度值/Target speed of the tool given in Cartesian coordinates |
Motor temperatures | double | 6 | 48 | 0864 ~ 0911 | 关节温度/Temperature of each joint in degrees celsius |
Joint Modes | double | 6 | 48 | 0912 ~ 0959 | 关节控制模式/Joint control modes |
V actual | double | 6 | 48 | 960 ~ 1007 | 关节电压/Actual joint voltages |
Handtype | char | 4 | 4 | 1008 ~ 1011 | 手系 |
User | char | 1 | 1 | 1012 | 用户坐标 |
Tool | char | 1 | 1 | 1013 | 工具坐标 |
RunQueuedCmd | char | 1 | 1 | 1014 | |
PauseCmdFlag | char | 1 | 1 | 1015 | |
velocityRatio | char | 1 | 1 | 1016 | 关节速度比例(0~100) |
accelerationRatio | char | 1 | 1 | 1017 | 关节加速度比例(0~100) |
jerkRatio | char | 1 | 1 | 1018 | 关节加加速度比例(0~100) |
xyzVelocityRatio | char | 1 | 1 | 1019 | 笛卡尔位置速度比例(0~100) |
rVelocityRatio | char | 1 | 1 | 1020 | 笛卡尔姿态速度比例(0~100) |
xyzAccelerationRatio | char | 1 | 1 | 1021 | 笛卡尔位置加速度比例(0~100) |
rAccelerationRatio | char | 1 | 1 | 1022 | 笛卡尔姿态加速度比例(0~100) |
xyzJerkRatio | char | 1 | 1 | 1023 | 笛卡尔位置加加速度比例(0~100) |
rJerkRatio | char | 1 | 1 | 1024 | 笛卡尔姿态加加速度比例(0~100) |
Reserve2[95] | char | 1 | 95 | 1025-1119 | 保留位 |
m_actual[6] | double | 6 | 48 | 1120 ~ 1167 | 实际扭矩 |
load | double | 1 | 8 | 1168-1175 | 负载重量kg |
centerX | double | 1 | 8 | 1176-1183 | X方向偏心距离mm |
centerY | double | 1 | 8 | 1184-1191 | Y方向偏心距离mm |
centerZ | double | 1 | 8 | 1192-1199 | Z方向偏心距离mm |
user[6] | double | 6 | 48 | 1200-1247 | 用户坐标值 |
tool[6] | double | 6 | 48 | 1248-1295 | 工具坐标值 |
Reserve3[144] | char | 1 | 144 | 1296 ~ 1440 | 保留位 |
TOTAL | 183 | 1440 | 183values in a 1440byte package |
其中Robot Mode返回机器人模式:
模式 | 描述 | 备注 |
---|---|---|
-1 | ROBOT_MODE_NO_CONTROLLER | 没有控制器 |
0 | ROBOT_MODE_DISCONNECTED | 没有连接 |
1 | ROBOT_MODE_CONFIRM_SAFETY | 配置安全参数 |
2 | ROBOT_MODE_BOOTING | 启动 |
3 | ROBOT_MODE_POWER_OFF | 下电 |
4 | ROBOT_MODE_POWER_ON | 上电 |
5 | ROBOT_MODE_IDLE | 空闲 |
6 | ROBOT_MODE_BACKDRIVE | 拖拽 |
7 | ROBOT_MODE_RUNNING | 运行 |
8 | ROBOT_MODE_UPDATING_FIRMWARE | 更新固件 |
9 | ROBOT_MODE_ERROR | 报警 |
- 说明:
- 本体下电,状态为3;
- 本体有电,但没有使能,状态为4;
- 使能成功后,则状态为5 ;
- 机器人进入拖拽模式(使能状态),状态为6;
- 机器人发生运动,状态为7;
- 优先级:上电<空闲<拖拽=运行<下电<报警
- 其中报警优先级最高,其他状态同时存在时,若有报警,先将状态置9;
其中Program state返回状态如下:
- 停止状态 返回0
- 暂停状态返回1
- 运行状态返回2
如下表所示为30003实时反馈端口支持的运动命令协议;
指令 | 描述 |
---|---|
MovJ | 点到点运动,目标点位为笛卡尔点位。 |
MovL | 直线运动,目标点位为笛卡尔点位 |
JointMovJ | 点到点运动,目标点位为关节点位 |
Jump | 门型运动,仅支持笛卡尔点位 |
RelMovJ | 以点到点方式运动至笛卡尔偏移位置 |
RelMovL | 以直线运动至笛卡尔偏移位置 |
MovLIO | 直线运动过程中并行设置数字输出端口的状态,可设置多组 |
MovJIO | 点到点运动过程中并行设置数字输出端口的状态,可设置多组 |
Arc | 圆弧运动。需结合其他运动指令完成圆弧运动。 |
Circle | 整圆运动,需结合其他运动指令完成整圆运动 |
ServoJ | 基于关节空间的动态跟随命令 |
ServoP | 基于笛卡尔空间的动态跟随命令 |
MoveJog | 关节点动 |
StartTrace | 轨迹拟合 |
StartPath | 轨迹复现 |
StartFCTrace | 带力控的轨迹拟合 |
4.1 MovJ
-
功能:点到点运动,目标点位为笛卡尔点位。
-
格式:MovJ(X,Y,Z,Rx,Ry,Rz)
-
参数数量:6
-
支持端口:30003
-
参数详解:6
参数名 类型 含义 X double X 轴位置,单位:毫米 Y double Y 轴位置,单位:毫米 Z double Z 轴位置,单位:毫米 Rx double Rx 轴位置,单位:度 Ry double Ry 轴位置,单位:度 Rz double Rz 轴位置,单位:度 -
示例:
MovJ(-500,100,200,150,0,90)
4.2 MovL
-
功能:直线运动,目标点位为笛卡尔点位。
-
格式:MovL(X,Y,Z,Rx,Ry,Rz)
-
参数数量:6
-
支持端口:30003
-
参数详解:6
参数名 类型 含义 X double X 轴位置,单位:毫米 Y double Y 轴位置,单位:毫米 Z double Z 轴位置,单位:毫米 Rx double Rx 轴位置,单位:度 Ry double Ry 轴位置,单位:度 Rz double Rz 轴位置,单位:度 -
示例:
MovL(-500,100,200,150,0,90)
4.3 JointMovJ
-
功能:点到点运动,目标点位为关节点位。
-
格式:JointMovJ(J1,J2,J3,J4,J5,J6)
-
参数数量:6
-
支持端口:30003
-
参数详解:6
参数名 类型 含义 J1 double J1 轴位置,单位:度 J2 double J2 轴位置,单位:度 J3 double J3 轴位置,单位:度 J4 double J4 轴位置,单位:度 J5 double J5 轴位置,单位:度 J6 double J6 轴位置,单位:度 -
示例:
JointMovJ(0,0,-90,0,90,0)
4.4 Jump
待定
4.5 RelMovJ
-
功能:以点到点方式运动至笛卡尔偏移位置。
-
格式:RelMovJ(offset1,offset2,offset3,offset4,offset5,offset6)
-
参数数量:6
-
支持端口:30003
-
参数详解:6
参数名 类型 含义 offset1 double 关节J1轴方向偏移,单位:度 offset2 double 关节J2轴方向偏移,单位:度 offset3 double 关节J3轴方向偏移,单位:度 offset4 double 关节J4轴方向偏移,单位:度 offset5 double 关节J5轴方向偏移,单位:度 offset6 double 关节J6轴轴方向偏移,单位:度 -
示例:
RelMovJ(10,10,10,10,10,10)
4.6 RelMovL
-
功能:以直线运动至笛卡尔偏移位置。
-
格式:RelMovL(offsetX,offsetY,offsetZ)
-
参数数量:3
-
支持端口:30003
-
参数详解:3
参数名 类型 含义 offsetX double X轴方向偏移,单位:mm offsetY double Y轴方向偏移,单位:mm offsetZ double Z轴方向偏移,单位:mm -
示例:
RelMovL(10,10,10)
4.7 MovLIO
-
功能:在直线运动时并行设置数字输出端口状态,目标点位为笛卡尔点位。
-
格式:MovLIO(X,Y,Z,Rx,Ry,Rz,{Mode,Distance,Index,Status},...,{Mode,Distance,Index,Status})
-
参数数量:10
-
支持端口:30003
-
参数详解:10
参数名 类型 含义 X double X 轴位置,单位:毫米 Y double Y 轴位置,单位:毫米 Z double Z 轴位置,单位:毫米 Rx double Rx 轴位置,单位:度 Ry double Ry 轴位置,单位:度 Rz double Rz 轴位置,单位:度 Mode int 设置Distance模式,0:Distance为距离百分比;1:Distance为离起始点或目标点的距离 Distance int 运行指定的距离: 若Mode为0,则Distance表示起始点与目标点之间距离的百分比,取值范围:0~100; 若Distance取值为正,则表示离起始点的距离; 若Distance取值为负,则表示离目标点的距离 Index int 数字输出索引,取值范围:1~24 Status int 数字输出状态,取值范围:0或1 -
示例:
MovLIO(-500,100,200,150,0,90,{0,50,1,0})
4.8 MovJIO
-
功能:点到点运动时并行设置数字输出端口状态,目标点位为笛卡尔点位。
-
格式:MovJIO(X,Y,Z,Rx,Ry,Rz,{Mode,Distance,Index,Status},...,{Mode,Distance,Index,Status})
-
参数数量:不固定
-
支持端口:30003
-
参数详解:10
参数名 类型 含义 X double X 轴位置,单位:毫米 Y double Y 轴位置,单位:毫米 Z double Z 轴位置,单位:毫米 Rx double Rx轴位置,单位:度 Ry double Ry 轴位置,单位:度 Rz double Rz轴位置,单位:度 Mode int 设置Distance模式,0:Distance为距离百分比;1:Distance为离起始点或目标点的距离 Distance int 运行指定的距离: 若Mode为0,则Distance表示起始点与目标点之间距离的百分比,取值范围:0~100; 若Distance取值为正,则表示离起始点的距离; 若Distance取值为负,则表示离目标点的距离 Index int 数字输出索引,取值范围:1~24 Status int 数字输出状态,取值范围:0或1 -
示例:
MovJIO(-500,100,200,150,0,90,{0,50,1,0})
4.9 Arc
-
功能::从当前位置以圆弧插补方式移动至笛卡尔坐标系下的目标位置。
该指令需结合其他运动指令确定圆弧起始点。
-
格式:Arc(X1,Y1,Z1,Rx1,Ry1,Rz1,X2,Y2,Z2,Rx2,Ry2,Rz2)
-
参数数量:12
-
支持端口:30003
-
参数详解:12
参数名 类型 含义 X1 double 表示圆弧中间点X1 轴位置,单位:毫米 Y1 double 表示圆弧中间点Y1 轴位置,单位:毫米 Z1 double 表示圆弧中间点Z1 轴位置,单位:毫米 Rx1 double 表示圆弧中间点Rx1轴位置,单位:度 Ry1 double 表示圆弧中间点Ry1轴位置,单位:度 Rz1 double 表示圆弧中间点Rz1轴位置,单位:度 X2 double 表示圆弧结束点X2 轴位置,单位:毫米 Y2 double 表示圆弧结束点Y2 轴位置,单位:毫米 Z2 double 表示圆弧结束点Z2 轴位置,单位:毫米 Rx2 double 表示圆弧结束点Rx2轴位置,单位:度 Ry2 double 表示圆弧结束点Ry2轴位置,单位:度 Rz2 double 表示圆弧结束点Rz2 轴位置,单位:度 -
示例:
4.10 Circle
-
功能::整圆运动,需结合其他运动指令完成整圆运动。
-
格式:Circle(count,X1,Y1,Z1,Rx1,Ry1,Rz1,X2,Y2,Z2,Rx2,Ry2,Rz2)
-
参数数量:13
-
支持端口:30003
-
参数详解:13
参数名 类型 含义 count int 整圆个数 X1 double X1 轴位置,单位:毫米 Y1 double Y1 轴位置,单位:毫米 Z1 double Z1 轴位置,单位:毫米 Rx1 double Rx1轴位置,单位:度 Ry1 double Ry1轴位置,单位:度 Rz1 double Rz1轴位置,单位:度 X2 double X2 轴位置,单位:毫米 Y2 double Y2 轴位置,单位:毫米 Z2 double Z2 轴位置,单位:毫米 Rx2 double Rx2轴位置,单位:度 Ry2 double Ry2轴位置,单位:度 Rz2 double Rz2轴位置,单位:度 -
示例:
4.11 ServoJ
-
功能:基于关节空间的动态跟随命令。
-
格式:ServoJ(J11,J12,J13,J14,J15,J16)
-
参数数量:6
-
支持端口:30003
-
参数详解:6
参数名 类型 含义 J11 double 点J11 轴位置,单位:度 J12 double P1点J12 轴位置,单位:度 J13 double P1点J13 轴位置,单位:度 J14 double P1点J14 轴位置,单位:度 J15 double P1点J15 轴位置,单位:度 J16 double P1点J16 轴位置,单位:度 -
示例:
ServoJ(0,0,-90,0,90,0)
4.12 ServoP
-
功能:基于笛卡尔空间的动态跟随命令。
-
格式:ServoP(X1,Y1,Z1,Rx1,Ry1,Rz1)
-
参数数量:6
-
支持端口:30003
-
参数详解:6
参数名 类型 含义 X1 double X 1轴位置,单位:毫米 Y1 double Y 1轴位置,单位:毫米 Z1 double Z1 轴位置,单位:毫米 Rx1 double Rx 1轴位置,单位:度 Ry1 double Ry1 轴位置,单位:度 Rz1 double Rz1轴位置,单位:度 -
示例:
ServoP(-500,100,200,150,0,90)
4.13 MoveJog
-
功能:点动运动,不固定距离运动
-
格式:MoveJog(axisID)
-
参数数量:1
-
支持端口:30003
-
注意:命令下发后,须另外下发MoveJog()停止命令控制机器人停止运动;另下发非指定string内容的参数都会导致机器人停止;
-
参数详解:1
参数名 类型 含义 axisID string 点动运动轴
J1+ 表示关节1正方向运动 J1- 表示关节1负方向运动
J2+ 表示关节2正方向运动 J2- 表示关节2负方向运动
J3+ 表示关节3正方向运动 J3- 表示关节3负方向运动
J4+ 表示关节4正方向运动 J4- 表示关节4负方向运动
J5+ 表示关节5正方向运动 J5- 表示关节5负方向运动
J6+ 表示关节6正方向运动 J6- 表示关节6负方向运动
X+ 表示X轴正方向运动 X- 表示X轴负方向运动
Y+ 表示Y轴正方向运动 Y- 表示Y轴负方向运动
Z+ 表示Z轴正方向运动 Z- 表示Z轴负方向运动
Rx+ 表示Rx轴正方向运动 Rx- 表示Rx轴负方向运动
Ry+ 表示Ry轴正方向运动 Ry- 表示Ry轴负方向运动
Rz+ 表示Rz轴正方向运动 Rz- 表示Rz轴负方向运动 -
示例:J2负方向运动,再停止点动
MoveJog(j2-)
MoveJog()
4.14 StartTrace
-
功能:轨迹拟合。(轨迹文件笛卡尔点)
-
格式:StartTrace(traceName)
-
参数数量:1
-
支持端口:30003
-
备注:用户可以通过获取RobotMode查询机器人运行状态,若在ROBOT_MODE_RUNNING表示机器人在轨迹拟合运行中,达到ROBOT_MODE_IDLE表示轨迹拟合运行完成,ROBOT_MODE_ERROR表示报警;
-
参数详解:1
参数名 类型 含义 traceName string 轨迹文件名(含后缀)
轨迹路径存放在/dobot/userdata/project/process/trajectory/ -
示例:先获取名字recv_string的轨迹的首个关节点{x,y,z,rx,ry,rz},在点到点运动{x,y,z,rx,ry,rz}后,在下发名字recv_string做轨迹拟合;
GetTraceStartPose(recv_string.json)
MovJ(x,y,z,rx,ry,rz)
StartTrace(recv_string)
4.15 StartPath
-
功能:轨迹复现。(轨迹文件关节点)
-
格式:StartPath(traceName,const,cart)
-
参数数量:3
-
支持端口:30003
-
备注:用户可以通过获取RobotMode查询机器人运行状态,若在ROBOT_MODE_RUNNING表示机器人在轨迹复现运行中,达到ROBOT_MODE_IDLE表示轨迹复现运行完成,ROBOT_MODE_ERROR表示报警;
-
参数详解:3
参数名 类型 含义 traceName string 轨迹文件名(含后缀)
轨迹路径存放在/dobot/userdata/project/process/trajectory/const int const=1时,匀速复现,轨迹中的停顿及死区会被移除;
const=0时,按照原速复现;cart int cart=1时,按笛卡尔路径复现;
cart=0时,按关节路径复现; -
示例: 先获取名字recv_string的轨迹的首个点{j1,j2,j3,j4,j5,j6},在点到点运动{j1,j2,j3,j4,j5,j6}后,在下发名字recv_string按照原速复现,按笛卡尔路径匀速复现;
GetPathStartPose(recv_string)
JointMovJ(j1,j2,j3,j4,j5,j6)
StartPath(recv_string,0,1)
4.16 StartFCTrace
-
功能:带力控的轨迹拟合。(轨迹文件笛卡尔点)
-
格式:StartFCTrace(traceName)
-
参数数量:1
-
支持端口:30003
-
备注:用户可以通过获取RobotMode查询机器人运行状态,若在ROBOT_MODE_RUNNING表示机器人在轨迹复现运行中,达到ROBOT_MODE_IDLE表示轨迹复现运行完成,ROBOT_MODE_ERROR表示报警;
-
参数详解:1
参数名 类型 含义 traceName string 轨迹文件名(含后缀)
轨迹路径存放在/dobot/userdata/project/process/trajectory/ -
示例:先获取轨迹文件名字recv_string的轨迹的首个点{x,y,z,rx,ry,rz},在点到点运动{x,y,z,rx,ry,rz}后,再下发轨迹文件名字recv_string按照原速复现,按笛卡尔路径匀速复现;
GetTraceStartPose(recv_string)
MovJ(x,y,z,rx,ry,rz)
StartFCTrace(recv_string)