询问我们 价格垂询 远程视频 资料下载 0510-8815 8845
控制器的位置环程序为3ms周期,其中包括一个导纳控制模块
导纳控制模块如下:
//x轴导纳模型 xdd = (fx0 - Bx*vx_now - Kx*(xnow-xbase))/Mx; //加速度积分得到速度 xd = xd + xdd; //y轴导纳模型 ydd = (fy0 - By*vy_now - Ky*(ynow-ybase))/My; //加速度积分得到速度 yd = yd + ydd; //将导纳模型的位置偏移计入,得到新的x轴y轴位置 xt = xd + xnow; yt = yd + ynow;
分别计算出x和y轴的导纳模型,将位置偏移量更新到新的目标位置
其中,fx0是笛卡尔坐标系中x轴向的外力,Bx是x轴向的阻尼值,vx_now是末端在x轴向的瞬时速度,Kx是x轴向的刚度,xnow是末端在x轴的瞬时位置,xbase是x轴的虚拟阻抗原点,Mx是x轴向的质量值。
通过导纳模型计算出加速度,由于此模块,是与位置环同周期的,在离散数学中,积分可简化为加法(类似于PID,如果不明白可以自行百度一下)
那么,怎样得到fx0呢?我使用了一个末端的六维力传感器,对传感器受的力进行坐标变换,得到x轴和y轴的外力fx0和fy0;
如何得到vx_now?首先从驱动器获得关节速度,通过雅克比变换,得到末端的x轴和y轴速度;
如何得到xnow?首先从驱动器获得关节位置,通过正运动学计算,得到末端的x和y轴位置
所以,大概是这样:
我们假设机械臂的末端是一个阻尼质量弹簧系统,当有了外力作用时,我们通过模型计算,这个虚拟的MBK系统的加速度,速度,位置应处于什么状态。最后,通过直接篡改位置环,去模拟一个MBK系统;
并且,你可以看出,x和y轴的MBK系统是解耦的,各自独立计算的。由于我的实验机械臂,只具有在xy轴平面内运动的能力,所以只考虑了x和y轴,一般的六自由度机械臂,应分别对x,y,z,rx,ry,rz六个自由度进行MBK解耦;
Copyright ? 无锡斯帝尔科技有限公司 2005-2014 All Rights Reserved 苏ICP备13017180号
微信公众平台 斯帝尔CEO想倾听斯帝尔科技 您的声音
Powered by MetInfo 5.2 ©2008-2020 MetInfo Inc.