讨论

六轴机器人编程到底是咋把点位变成动作的?求底层讲讲

huang1976
huang1976
2026/04/13 17:37

刚入行的应用工程师,老板让我直接上手一台六轴的,平时就是示教点位存程序、再回放,流程我能跑通,但说实话我一直没搞明白:我在示教器上点的那几个坐标,最后机器人是怎么算出来每根轴该转多少度的?

尤其是位姿那部分,xyz我懂,但rxy这些姿态角传到控制器里,逆解到底是个啥过程?控制器是一边走一边算,还是先把整条路径都解完再发?

有没有师傅从控制器内部的角度讲讲,主流厂商(比如库卡、发那科、ABB)处理逻辑差别大吗?

13 3

全部回复 (3)

老卢
老卢#1

这个得先分清楚你是用的什么控制器,库卡用的是KR C系列,底层是VxWorks实时系统,发那科是自家R-30iB/R-30iB Plus,架构完全不一样。但大流程都差不多:示教器记录的是TCP在笛卡尔空间里的位姿(位置xyz+姿态),存进程序里以后,主任务调度器按一定周期(一般4ms或2ms)从路径规划模块拿目标点,再丢给逆运动学模块解出6个关节角,最后通过伺服总线(EtherCAT、SERCOS这些)发给六个伺服驱动。

逆解这事儿有点说头:六轴机器人的逆解有解析解和数值解两种,主流厂商基本都是用解析解+优化,常规姿态下能给出8组解,控制器要选一组最接近当前关节角、关节运动量最小的,这个选解策略各家不一样但思路类似。姿态角(你说的rx ry rz)传到控制器内部一般会先转成旋转矩阵或者四元数,再跟位置一起构成齐次变换矩阵T_base_to_TCP,逆解的输入就是T_tool相对T_base的位姿。

至于一边走一边解还是提前解完,这取决于插补方式:PTP(点到点)一般只解终点,关节空间里规划轨迹,伺服走的是位置环;LIN/CPTP这种连续路径,会在路径上做密集插补(比如每1ms一个点),逆解和正解交替进行,正解用来校验TCP位姿误差。你要是想深入看,可以找找KUKA的KRL或者Fanuc的KAREL手册,里面有运动学模型的具体描述。

2026/04/13 20:23
威哥
威哥#2

你说老板让你直接上手,那你最好先搞清楚这台机器人DH参数是啥,每根轴的零位标定准不准。这俩不对,逆解算出来关节角全是错的,跑起来位置飘。我上个月就栽过一回,一台二手库卡KR 16,零位偏了0.3度,结果直线走下来TCP偏出去快5mm,调了两天才找到问题。

2026/04/14 01:16
涛哥
涛哥#3

逆解是不是每家都不一样我不好说,但伺服周期这事儿你可以自己测一下:示教器里把监控打开,看$MONITOR[1]到$MONITOR[6]的关节角刷新频率,基本就是控制器发指令的周期。发那科那边我见过4ms和2ms的,看CPU型号。

2026/04/14 10:30