机械臂G-code指令和控制协议

本节是关于机械臂控制协议和G-code控制指令的内容,主要用于通过串口驱动发送指令控制机械臂,或者编写G-code程序来控制机械臂。内容包括Rotrics机械臂的串口通信规范、Connect确认指令、基本运动控制和运动控制指令等。可以点击右侧目录查看对应指令说明👉

串口格式

  1. Speed: 115200

  2. Config: 8 个数据位,无校验位, 1 个停止位

  3. 每条指令以回车换行作为结束符 ,以下以 0D0A 表示 。

  4. 下位机收到指令, 若指令正确 会返回 ok(0D0A),若指令错误会返回 unknow command

示例

Connect指令

  1. 上位机打开串口过程中,串口硬件驱动会自动复位下位机,下位机启动过程中向上位机返回 start 。

  2. 上位机以是否收到 start ,判断设备是否连接成功。

DisConnect

  • 上位机断开串口即可

基本控制

复位指令

  • M1111 (0D0A) 复位到初始设置位置

运动模式设定

  • M2001(0D0A) 快速模式

  • M2000(0D0A) 直线模式

基本位移指令

  • G0(0D0A) 快速非直线运动,参数:

    • X - X轴坐标值

    • Y - Y轴坐标值

    • Z - Z轴坐标值

    • E - 外接的E轴坐标值,比如传送带、滑轨或3D打印挤出机。在开始控制前,需对E轴电机细分进行配置。具体说明如下:

      • M92 X() Y() Z() E()- 设置轴单位步进数,每走1mm步进电机转过的步数。比如对于官方的挤出机,设置为M92 E379.2

  • G1(0D0A) 快速直线运动

示例

;快速运动到HOME点
G0 X300 Y0 Z0
;沿直线快速运动到HOME点
G1 X300 Y0 Z0
  • G91(0D0A) 进入相对定位模式

示例

;进入相对运动模式
G91
;沿着X轴运动10mm
G0 X10
  • G90(0D0A) 进入绝对定位模式

示例

;进入绝对运动模式
G90
;运动到点(300, 0, 0)
G0 X300 Y0 Z0

速度控制

  • G0 Fxx 设置运动速度,单位为mm/min。基础速度 F3000

示例

;设置运动速度为3000mm/min
G0 F3000

设定延时

  • G4 - 设定机械臂等待时间,参数:

    • Pxx - 延时xx毫秒

    • Sxx - 延时xx秒

设定工作坐标系原点

  • G92 X0 Y0 Z0 设定当前点为工作坐标系原点,后续所有运动都以当前点为参照,主要用于激光和3D打印。

  • G92.1 重置工作坐标系为机械坐标系

示例

;设定当前点为工作坐标系原点,以及设定挤出机原点
G92 X0 Y0 Z0 E0
;当工作完成后,重置为机械坐标系并返回到HOME点
G92.1
G0 X300 Y0 Z0

运动参数

坐标位置信息获取

  • M114 - 获取当前位置坐标信息

  • M890 - 获取当前编码器位置读数

斜率相关

  • M891 - 设置当前 X Y 斜率

  • M892 - 获取当前 X Y 斜率

示教相关

  • M17 - 所有步进电机上电,用于示教复现。

  • M18 - 所有步进电机下电,进入示教模式。

示例

;进入示教模式
M18

其他

  • M81 - 紧急停止

  • M2007 - 机械臂软重启

Off指令

(还需验证)顺序发送以下指令:

  • M84(0D0A)

  • M104 S0(0D0A)

  • M140 S0(0D0A)

  • M107(0D0A)

  • M81(0D0A)

前端模块控制

前端模块切换

针对不同模块,配置前端偏置参数。

  • M888 - 设定当前工作模块。参数:

    • P0(0D0A) 设置前端模块为夹笔模块

    • P1(0D0A) 设置前端模块为激光模块

    • P2(0D0A) 设置前端模块为气泵模块

    • P3(0D0A) 设置前端模块为3D打印模块

激光模块控制

  • M3 - 打开激光,设定占空比。参数:

    • S - 占空比参数,范围0-255

示例

;设定激光最大功率雕刻
M3 S255
  • M5 - 关闭激光

气动模块控制

  • M1000(0D0A) - 气泵吸气

  • M1001(0D0A) - 气泵吹气

  • M1002(0D0A) - 气泵泄气(泄气气阀打开)。具体说明如下:

    • 一般用于吸盘放下物品和柔性抓闲置时恢复自然状态。

  • M1003(0D0A) - 所有气泵气阀停止工作

吸盘柔性抓的动作是相反的,即当气泵吸气时,吸盘吸紧物品,柔性抓松开;当气泵吹气时,吸盘放下物品,柔性抓抓取物品。

示例

;吸盘吸起物品,以3000mm/min的速度移动到点(350, 100, -50)后放下物品
M1000
G0 X350 Y100 Z-50 F3000
M1002
;柔性抓抓取物品,以3000mm/min的速度移动到点(350, 100, -50),放下物品后回到HOME点
M1001
G0 X350 Y100 Z-50 F3000
M1000
G0 X350 Y100 Z0
G0 X300 Y0 Z0
M1002

3D打印控制

  • M105(0D0A) - 获取挤出机温度

  • M108(0D0A) - 获取挤出机速度

  • M109 Sxx(0D0A) - 设置挤出机目标温度 x x

  • M106 Sxx(0D0A) - 设置风扇转速 x x

  • G0 EXXX FXXX(0D0A) - 以F速度挤出 E 长度

  • M107(0D0A) - 关闭风扇

  • M130(0D0A) - 设置加热棒 PID P 值

  • M131(0D0A) - 设置加热棒 PID I 值

  • M132(0D0A) - 设置加热棒 PID D 值