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

串口格式

  1. 1.
    Speed: 115200
  2. 2.
    Config: 8 个数据位,无校验位, 1 个停止位
  3. 3.
    每条指令以回车换行作为结束符 ,以下以 0D0A 表示 。
  4. 4.
    下位机收到指令, 若指令正确 会返回 ok(0D0A),若指令错误会返回 unknow command
示例
1
Copied!

Connect指令

  1. 1.
    上位机打开串口过程中,串口硬件驱动会自动复位下位机,下位机启动过程中向上位机返回 start 。
  2. 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) 快速直线运动
示例
1
;快速运动到HOME点
2
G0 X300 Y0 Z0
3
4
;沿直线快速运动到HOME点
5
G1 X300 Y0 Z0
Copied!
  • G91(0D0A) 进入相对定位模式
示例
1
;进入相对运动模式
2
G91
3
;沿着X轴运动10mm
4
G0 X10
Copied!
  • G90(0D0A) 进入绝对定位模式
示例
1
;进入绝对运动模式
2
G90
3
;运动到点(300, 0, 0)
4
G0 X300 Y0 Z0
Copied!

速度控制

  • G0 Fxx 设置运动速度,单位为mm/min。基础速度 F3000
示例
1
;设置运动速度为3000mm/min
2
G0 F3000
Copied!

设定延时

  • G4 - 设定机械臂等待时间,参数:
    • Pxx - 延时xx毫秒
    • Sxx - 延时xx秒

设定工作坐标系原点

  • G92 X0 Y0 Z0 设定当前点为工作坐标系原点,后续所有运动都以当前点为参照,主要用于激光和3D打印。
  • G92.1 重置工作坐标系为机械坐标系
示例
1
;设定当前点为工作坐标系原点,以及设定挤出机原点
2
G92 X0 Y0 Z0 E0
3
4
;当工作完成后,重置为机械坐标系并返回到HOME点
5
G92.1
6
G0 X300 Y0 Z0
Copied!

运动参数

坐标位置信息获取

  • M114 - 获取当前位置坐标信息
  • M890 - 获取当前编码器位置读数

斜率相关

  • M891 - 设置当前 X Y 斜率
  • M892 - 获取当前 X Y 斜率

示教相关

  • M17 - 所有步进电机上电,用于示教复现。
  • M18 - 所有步进电机下电,进入示教模式。
示例
1
;进入示教模式
2
M18
3
Copied!

其他

  • 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
示例
1
;设定激光最大功率雕刻
2
M3 S255
Copied!
  • M5 - 关闭激光

气动模块控制

  • M1000(0D0A) - 气泵吸气
  • M1001(0D0A) - 气泵吹气
  • M1002(0D0A) - 气泵泄气(泄气气阀打开)。具体说明如下:
    • 一般用于吸盘放下物品和柔性抓闲置时恢复自然状态。
  • M1003(0D0A) - 所有气泵气阀停止工作
吸盘柔性抓的动作是相反的,即当气泵吸气时,吸盘吸紧物品,柔性抓松开;当气泵吹气时,吸盘放下物品,柔性抓抓取物品。
示例
1
;吸盘吸起物品,以3000mm/min的速度移动到点(350, 100, -50)后放下物品
2
M1000
3
G0 X350 Y100 Z-50 F3000
4
M1002
5
6
7
;柔性抓抓取物品,以3000mm/min的速度移动到点(350, 100, -50),放下物品后回到HOME点
8
M1001
9
G0 X350 Y100 Z-50 F3000
10
M1000
11
G0 X350 Y100 Z0
12
G0 X300 Y0 Z0
13
M1002
Copied!

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 值