1.引言
看过UR机器人脚本手册的都应该知道有这样一个直线插补函数:
interpolate_pose(p_from, p_to, alpha);
参数:p_from表示初始pose,p_to表示目标pose,alpha通常为0-1之间的浮点数,如果alpha=0,则函数插值返回的pose是p_from;如果alpha=1,则函数插值返回的pose是p_to;如果alpha<0,则函数插值返回的pose是这条直线在p_from之前的部分;如果alpha>1,则函数插值返回的pose是这条直线在p_to之后的部分;
返回值:返回一个插值之后的pose;
这个函数在实际应用的过程中表现非常好,很少出现奇异点和不可达的点的问题。那么这个函数具体是如何实现的呢?
也许有人要说了,直线插补太简单了,不屑一顾。但是我看过许多国内机器人教材,很少能把机器人轨迹是如何生成的这一过程讲清楚,或者连一个简单的点到点直线插补全过程都写得含糊不清。
以前我也觉得这样简单的算法没什么好研究的,随便找本书或论文看看就知道了,但当我真正要在机器人上实现这一算法时,遇到了各种各样的问题,于是我就怀疑是否真的了解了机器人生成轨迹的方法,直到我看完这本书为止。
2.《Modern Robotics》
这本书的全称是《Modern Robotics - Mechanics, Planning, and Control》2016年出的机器人学方面的书。
这本书的第九章《Trajectory Generation》是我看过的十几本机器人学书籍