前言
本文我们研究怎么辨识一个单摆的动力学参数,通过对这个最简单的例子的研究我们可以感受一下机器人动力学参数辨识的流程,在后续的文章里面我们慢慢的进化到辨识复杂多关节的机械臂的动力学参数。
这里不妨回顾一下动力学参数辨识的理论步骤:推导结构的逆动力学方程
对动力学方程进行线性化处理
激励运动得到扭矩,关节位置,关节速度,关节加速度数据
利用最小二乘法得到辨识出来的参数
Matlab R2019b
SolidWorks 2018
本文的所有模型文件与代码开源在我的github:
https://github.com/julis-wolala/Pendulum-Parameter-Identification
0 1 理论准备 1.1 确定研究对象我们的研究对象很简单,是一个单摆,即一个旋转电机固连一根连杆。下图是它的结构简图以及我附上的坐标系。(这里我用的是SDH建系法)
![e806b4f18fd3dd793b0393b906cec01d.png](https://i-blog.csdnimg.cn/blog_migrate/f7fa9ddf12009ac7709200ed79315be8.png)
它的初始位置是连杆1水平的时候。其中代表转轴至质心的距离,
代表连杆的长度。最后一个工具坐标系我没标轴号,是因为本文用不到这个坐标系(其实是懒)。
对这步很熟的可以直接跳过这节,先贴出结论:
![7fa444f0019c3c08cc2b71933feed053.png](https://i-blog.csdnimg.cn/blog_migrate/92103011c05fb9355c3b02d1b3eeda97.png)
这里求逆动力学方程我用的欧拉-拉格朗日方程法。对于这种极其简单的结构,可以直接写出结果,为了练习动力学方程推导能力,这里我们一步一步解答,过程如下:
首先列出需要用到的一些结论:
![549849f8ab7d85eeb599881ce3bcad2e.png](https://i-blog.csdnimg.cn/blog_migrate/779ee6217a33bed7a91c960841978eab.png)
![02e7d8fffa5ae570ad313229e8d0bcee.png](https://i-blog.csdnimg.cn/blog_migrate/7d272e2c8bceb03a4a95befadaa4e88c.png)
求解惯性项D(q)
![4107330df849893a8aaf347b29e14e3b.png](https://i-blog.csdnimg.cn/blog_migrate/83176e222952c829734ea496dda89f74.png)
![97d9b132e3d2c7fd205e8c92e4aa9691.png](https://i-blog.csdnimg.cn/blog_migrate/2c2b732e3b3c611d62bd8dd35192b145.png)
求解离心力和科氏力项C(q)以及重力项G(q)
![ba956d04c5de41900e87cf403428bff5.png](https://i-blog.csdnimg.cn/blog_migrate/4db0bc93688baf3171f370fb95e93eda.png)
得到最终结果