2. ABB机器人运动指令解析
在ABB机器人RAPID程序中,运动指令是决定节拍的第一性因素。同一段轨迹,用MoveJ还是MoveL,用MoveC还是拆成两段MoveL,循环时间可能相差30%以上。理解这四条指令的运动学本质,是节拍优化的起点。
四条指令的运动学本质
MoveJ(关节运动)在关节空间中插值,机器人各轴独立地从起点关节角运动到目标关节角,TCP轨迹通常是一条不可预测的曲线。它的优势是速度最快——因为各轴可以同时以最大加速度运行,且不需要在笛卡尔空间中做逆解连续性约束。缺点是路径不可控,只适合大范围转移、远离工件的空行程。
MoveL(直线运动)在笛卡尔空间中插值,TCP严格沿直线从起点到终点,姿态同步线性变化。它需要持续做逆运动学求解,速度受限于最慢的那个轴,且经过奇异点附近时关节速度会急剧上升,系统会自动降速。MoveL适合焊接、涂胶、直线切割等对路径有严格要求的工艺。
MoveC(圆弧运动)通过起点、中间点(cirpoint)和终点三个点确定一段圆弧,TCP沿圆弧运动。它本质上是一段受约束的曲线运动,逆解负担介于MoveJ和MoveL之间。MoveC适合圆弧过渡、倒角、圆弧焊缝等场景。
MoveAbsJ(绝对关节运动)直接指定各轴的绝对关节角度,不经过任何笛卡尔空间插值。它常用于回原点、换工具后的姿态复位、以及需要精确控制各轴位置的场合。MoveAbsJ不关心TCP在哪里,只关心各轴转到什么角度。
节拍影响的量化差异
以一台IRB 6700在典型搬运场景为例:从A点(工件抓取位)到B点(放料位),两点间直线距离约800mm。若使用MoveL,速度设为v1000mm/s,加速度acc1000mm/s²,理论运动时间约1.1s;若改用MoveJ,各轴以最大速度运行,实际循环时间可降至约0.7s。差异来自MoveL必须保证TCP走直线,而MoveJ允许各轴“各走各的”,总时间由最慢轴决定,但通常比笛卡尔约束下的时间短。
MoveC的节拍介于两者之间。一段90°圆弧,半径200mm,用MoveC约需0.5s;若拆成两段MoveL近似,需要额外加减速过程,总时间可能增加到0.65s以上,且路径精度下降。但MoveC对cirpoint的位置敏感:cirpoint偏离过大或圆弧半径过小,系统会报错或自动降速。
MoveAbsJ的节拍完全取决于各轴角度差。如果目标关节角与当前关节角差异大,且各轴差异不均衡,总时间由差异最大的轴决定。它不经过笛卡尔空间,因此不受奇异点影响,但也不保证TCP路径。
选用原则:从工艺约束反推指令
选用运动指令时,建议按以下优先级判断:
- 路径是否必须精确?如果工艺要求TCP沿直线或圆弧运动(如焊接、涂胶、切割),必须用MoveL或MoveC。此时节拍优化空间在于调整速度、加速度、转弯区数据(zone),而不是换指令。
- 路径是否允许自由?如果只是从A点移动到B点,中间不接触工件,优先用MoveJ。MoveJ的节拍优势明显,且不会触发奇异点降速。
- 是否需要精确控制各轴角度?回原点、换工具、避障复位等场景,用MoveAbsJ。它不关心TCP,只关心关节角,适合需要精确重复关节位置的场合。
- 圆弧是否值得用MoveC?如果圆弧半径较大、精度要求高,MoveC优于两段MoveL。如果圆弧半径很小或接近奇异点,MoveC可能触发报警,此时拆成MoveL更稳妥。
实操示例:搬运路径的指令替换与节拍对比
假设一段搬运程序:从取料位P1到放料位P2,中间经过过渡点P3。原始程序全部用MoveL,节拍约2.8s。优化时做如下替换:
! 原始程序(全MoveL)
MoveL pP1, v800, fine, tool0;
MoveL pP3, v800, z50, tool0;
MoveL pP2, v800, fine, tool0;
! 优化后(过渡段改MoveJ)
MoveL pP1, v800, fine, tool0;
MoveJ pP3, v1500, z100, tool0;
MoveL pP2, v800, fine, tool0;
替换后,P1到P3段由MoveL改为MoveJ,速度从800mm/s提升到1500mm/s(关节速度),zone从z50放大到z100。P3到P2仍用MoveL保证放料精度。在RobotStudio中仿真,节拍从2.8s降至约1.9s,降幅约32%。注意:MoveJ的pP3目标点需要确认TCP路径不会碰撞夹具或工件,必要时在RobotStudio中做碰撞检测。
速度与加速度参数的配合
运动指令中的v和acc参数对节拍的影响不亚于指令类型。MoveJ的v以度/秒或mm/s表示(取决于系统配置),MoveL和MoveC的v以mm/s表示。提高v和acc可以缩短节拍,但受限于机械臂的动力学极限和电机扭矩。实际调试时,建议先以推荐值运行,观察各轴电流和温度,再逐步提升。对于MoveL,如果某轴在路径中接近速度极限,系统会自动降速,此时提高v参数无效,需要调整路径或改用MoveJ。
总结:MoveJ用于空行程和过渡点,MoveL用于直线工艺路径,MoveC用于圆弧工艺路径,MoveAbsJ用于关节角精确控制。选用时先看工艺约束,再看节拍潜力,最后用zone和速度参数做微调。四条指令没有绝对优劣,只有是否匹配当前路径的约束条件。