机械臂G-code指令和控制协议
本节是关于机械臂控制协议和G-code控制指令的内容,主要用于通过串口驱动发送指令控制机械臂,或者编写G-code程序来控制机械臂。内容包括Rotrics机械臂的串口通信规范、Connect确认指令、基本运动控制和运动控制指令等。可以点击右侧目录查看对应指令说明👉
串口格式
Speed: 115200
Config: 8 个数据位,无校验位, 1 个停止位
每条指令以回车换行作为结束符 ,以下以 0D0A 表示 。
下位机收到指令, 若指令正确 会返回 ok(0D0A),若指令错误会返回 unknow command
示例
Connect指令
上位机打开串口过程中,串口硬件驱动会自动复位下位机,下位机启动过程中向上位机返回 start 。
上位机以是否收到 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) 快速直线运动
示例
G91(0D0A) 进入相对定位模式
示例
G90(0D0A) 进入绝对定位模式
示例
速度控制
G0 Fxx 设置运动速度,单位为mm/min。基础速度 F3000
示例
设定延时
G4 - 设定机械臂等待时间,参数:
Pxx - 延时xx毫秒
Sxx - 延时xx秒
设定工作坐标系原点
G92 X0 Y0 Z0 设定当前点为工作坐标系原点,后续所有运动都以当前点为参照,主要用于激光和3D打印。
G92.1 重置工作坐标系为机械坐标系
示例
运动参数
坐标位置信息获取
M114 - 获取当前位置坐标信息
M890 - 获取当前编码器位置读数
斜率相关
M891 - 设置当前 X Y 斜率
M892 - 获取当前 X Y 斜率
示教相关
M17 - 所有步进电机上电,用于示教复现。
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
示例
M5 - 关闭激光
气动模块控制
M1000(0D0A) - 气泵吸气
M1001(0D0A) - 气泵吹气
M1002(0D0A) - 气泵泄气(泄气气阀打开)。具体说明如下:
一般用于吸盘放下物品和柔性抓闲置时恢复自然状态。
M1003(0D0A) - 所有气泵气阀停止工作
吸盘柔性抓的动作是相反的,即当气泵吸气时,吸盘吸紧物品,柔性抓松开;当气泵吹气时,吸盘放下物品,柔性抓抓取物品。
示例
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 值
Last updated