对于一个机械臂,考虑下面两个问题:
上面两个问题就是机械臂的运动学要研究的问题,问题一为正运动学研究的问题,问题二为逆运动学研究的问题。
已知机械臂关节角度,求解机械臂末端在空间中位姿(关节空间到笛卡尔空间的映射)
通过分析机械臂的几何结构,利用几何关系和三角函数直接计算末端执行器的位置和姿态。
适用于结构对称或简化的机械臂。
比较通用的方法,通过变换矩阵连乘(连续空间变换)得到末端与基座间的变换关系。
1. 建立Denavit-Hartenberg(DH)参数:具体DH标定的参数描述与细节可以看我的另一篇描述DH标定的博文。
2. 连续变换得到末端位姿:
通过将每个关节的齐次变换矩阵相乘,得到从基座到末端执行器的总变换矩阵 T6。
tips:为什么矩阵连乘可以得到末端相对于底座的位姿关系呢?因为齐次矩阵相当于一个空间变换,矩阵左乘相当于对右边的坐标系实施这个变换,因此从底座到末端的齐次变换矩阵连乘相当于把底座坐标系按照两两关节的位姿关系不断变换,最后得到的结果就是末端与基座的变换关系。
已知机械臂末端在空间中位姿,求机械臂关节角度(笛卡尔空间到关节空间的映射)
机械臂逆运动学求解方法主要有解析法,数值法,人工智能法。
解析法:适用于自由度较低、结构较简单的机械臂,可以通过数学推导得到关节变量的显式表达式,可以快速的得到精确的结果,但仅适用于特定的机械臂结构,难以推广到通用情况。。
数值法:适用于任意结构的机械臂,但是计算量大,可能收敛缓慢,存在收敛性问题,求得的解也是近似解。
人工智能法:需要训练模型,直接预测关节角度。具有计算速度快,适应性强的优点,但是需要大量训练数据,泛化能力取决于模型和数据质量。
由于运动学方程为复杂的非线性方程组(涉及三角函数),因此当机械臂较复杂时很难直接求得解析解,目前比较常用的解法为通过迭代的求得数值解,因此这里重点介绍数值法。
定义:解析法通过代数和几何方法,直接推导出机械臂关节角度的闭式解(精确的解),如下面的代数法和几何法就属于解析法。
数值法通过迭代算法,逐步逼近逆运动学问题的解(本质是非线性优化问题求解),求解非线性方程组的方法有很多,比如梯度下降,牛顿法,高斯牛顿法,LM法等。
但由于机械臂的运动学关系通常是高度非线性的,特别是对于具有多个自由度的机械臂,逆运动学问题可能存在多个解,甚至无解。
对于机械臂逆解问题,目前LM法应用比较广泛,原因如下:
1. 相对于梯度下降法
2. 相对于牛顿法
3. 相对于高斯-牛顿法
tips: 非线性优化问题求解可以看我的另一篇博客。
结合牛顿法和梯度下降法的混合优化算法,平衡了收敛速度和稳定性。
人工智能法利用机器学习和深度学习技术,通过大量数据训练模型,学习末端执行器位姿与关节角度之间的非线性映射关系,实现逆运动学求解。
因篇幅问题不能全部显示,请点此查看更多更全内容