??x?xi?2,x?[xi,xi?1)?????x?xx?x?i?1ii?2i?x?xi?1??xi?3?x???x?xi??xi?2?x?Ni,2?x????,x?[xi?1,xi?2) 36
??xi?2?xi??xi?2?xi?1??xi?2?xi?1??xi?3?xi?1???xi?3?x?2,x?[xi?2,xi?3)?????x?xx?xi?3i?1i?3i?2???x?xi?3,x?[xi,xi?1]???????x?xx?xx?xi?1ii?2ii?3i?2??x?xi??xi?2?x??x?xi??x?xi?1??xi?3?x??x?xi?1?2?xi?4?x???,x?(xi?1,xi?2]??xi?2?xi??xi?2?xi?1??xi?3?xi??xi?2?xi?1??xi?3?xi?1??xi?3?xi??xi?2?xi?1??xi?3?xi?1??xi?4?xi?1???Ni,3?x???
22????x?xi??xi?3?x?x?xi?1??xi?3?x??xi?4?x?x?xi?2??xi?4?x????,x?[xi?2,xi?3]????????????x?xx?xx?xx?xx?xx?x????x?xx?xx?x?i?3ii?3i?1i?3i?2i?3i?2i?4i?1i?4i?2i?3i?1i?3i?2i?4i?13??xi?4?x??,x?[xi?3,xi?4]???????x?xx?xx?xi?4i?1i?4i?2i?4i?3???
在区间[x0,xk]内的任意函数,可以表达为利用第m次B样条函数作为基函数的加权和。 f?x??i??m?aN?x? (3-38)
ii,mk其中f?x?是区间[x0,xk]的任意函数,ai是m次B样条函数的加权系数。 在式3-38中包含了?k?m?1?个参数,即a?m,a?m?1???ak。在每一个子区间上最多为?m?1?个B样条函数的加权和,然后在进行曲线插值时,需要确定这?k?m?1?个参数。
例如,对于时间区间?0,4s?,某关节的 位置为q?0?=2、q?1??2.8,q?2??1.2,q?3??2.2,q?4??0.9。利用式3-38进行3次B样条插值。取时间间隔1S构成子空间,对于5个期望位置点,而式3-38有8个未知样条函数系数a?3?a4。但是N4,3?4??0,a4不起作用。所以公式3-38中有7个未知B样条函数系数a?3?a3。为便于求解考虑取a?3?a?2?0。由3次B样条函数定义以及公式3-38,得到含有系数的方程
a?1N?1,3?0??a0N0,3?0??q?0???a?1N?1,3?1??a0N0,3?1??a1N1,3?1??q?1??? ?a?1N?1,3?2??a0N0,3?2??a1N1,3?2??a2N2,3?2??q?2? 3--39 ?aN?3??aN?3??aN?3?aN?3??q?3?11,322,333,3?00,3??a1N1,3?4??a2N2,3?4??a3N3,3?4??a4N4,3?4??q?4?利用公式3-37和3—39可得
a?1?6q?0???a?6q?1??4a0?1???a1?6q?2??4a0?a?1 3--40 ?a?6q?3??4a?a10?2??a3?6q?4??4a2?a1经计算可得到a?1?12,a0??7.2,a1?14.4,a2??4.8,a3?2.4。对应的插值函数表达式为
f?x??12N?1,3?X??7.2N0,3?X??14.4N1,3?X??4.8N2,3?X??2.4N3,3?X? 3—41
利用3—41函数,在工作区间[0,4s]内间隔0.1S描出插值函数,如图3—11A所示。从图3—11A可以发现,虽然插值曲线准确的经过期望位置点,但在非期望位置点具有很大波动,这是机器人控制所不期望的。为消除波动,利用相邻期望位置的中间点作为控制点,得到含有系数a?3~a3的方程。
?a?3N?3,3?0??a?2N?2,3?0??a?1N?1,3?0??a0N0,3?0??q?0????a?3N?3,3?0.5??a?2N?2,3?0.5??a?1N?1,3?0.5??a0N0,3?0.5??q?1?????a?2N?2,3?1.5??a?1N?1,3?1.5??a0N0,3?1.5??a1N1,3?1.5??q?2? ???a?1N?1,3?2.5??a0N0,3?2.5??a1N1,3?2.5??a2N2,3?2.5??q?3????a0N0,3?4??a2N2,3?4??a3N3,3?4??a4N4,3?4??q?4??根据上式计算出N?3,3?0?和N?2,3?1?等,带入公式可得
0.1667a?3?0.6667a?2?0.1667a?1?q?0???0.0208a?3?0.4792a?2?0.0208a0?q?1????0.0208a?2?0.4792a?1?0.4792a0?0.0208a2?q?2? 3--43 ?0.0208a0.4792a?0.4792a?0.0208a?q?3??1012???0.0208a0?0.4792a1?0.4792a2?0.0208a3?q?4?利
用
最
小
二
乘
法
求
解
方
程
3-43
,
得
到
系
数
a?3?4.8666,a?2?0.7783,a?1?4.0189,a0??0.0392,a1?3.3999,a2??0.3105,a3?3.24306。对应的插值函数表达式为
f?x??4.8666N?3,3?x??0.7783N?2,3?x??4.0189N?1,3?x??0.0392N0,3?x??3.3999N1,3?x??0.3105N2,3?x??3 3--44 利用公式3-44,在工作区间[0,4s]内间隔0.1S描出插值曲线,如图3-11B所示。从图上可以发现,差值曲线能够准确的经过期望位置点,而且没有波动。
B样条是一种广泛使用的样条曲线,对局部的修改不会引起样条形状的大范围变化是主要特
点。因此B样条插值被广泛的应用于机器人运动轨迹的插值。 4.22机器人工作空间分析与运动仿真 在式
?nx?n?y?nz??0达
oxoyoz0axayaz0到
px?py??中,px,py,pz为机器人手腕末端端面中心的矢量坐标,它代表了机器人所能?pz?1?的
工
作
空
间
。
机器人的MATLAB仿真
机器人的图形仿真是指将机器人仿真的结果以图形的形式显示出来,直观的显示出机器人的
运动情况,以前由于图形和动画仿真的计算量很大,在微机上很难实现,所以大多数仿真都是在图形工作站上,随着CAD和CAM技术的飞速发展,在PC机上实现高品质的机器人三维图形仿真成为现实。
MATLAB不仅提供了坐标变换等基本功能,还提供了能够绘制复杂三维实体的函数,特别是与机器人控制箱接合,开发出了具有立体感的图形软件。基于MATLAB的运动学迭代法求解程序如下:
Robotics Toolbox 是由一个国外研发团队开发并不断更新版本的模块库,可以免费下载并可以根据实际需求更改参数及用法,现已到VER8.0版本。如图所示,机器人工具箱提供了许多功能模块,如KINEMATICS(运动学)、DYNAMACS(动力学)、TRAJECTORY GENERATION(轨迹生成)模块等等,为机器人的仿真提供了极大的便利与直观表示。
它具有以下特点:
1. 能够通过虚拟的实验模拟和分析对机器人的研制提供有力的数据帮助。
2. 工具箱是基于一个非常简单的方法代表多关节机器人的运动学和动力学参数,而且这些
参数直接封装在MATLAB的模型之中。
3. 它还提供了功能操作和数据类型之间的相互转换,比如向量转换、齐次变换等等,这些
是表示空间位置和方向所必须的参数。
4. 它还包含了移植的C代码,因此可生成MEX文件实现加速优化算法等的功能。 构建机器人对象
要想利用工具箱构建机构建器人对象,首先构建各个关节,而后通过关节的连接来实现整个机器人对象的构建。完整的一个机器人对象,需要D-H参数、关节质量、关节类型、粘性摩擦系数和齿轮传动比等等。
构建机器人对象的关键在于构建各个关节,但是在构建关节时,要用到Robotics Toolbox中的LINK函数: 第一步
L =LINK([alpha A theta D ] 第二步
L =LINK([alpha A theta D sigmal ] 第三步
L =LINK([alpha A theta D sigmal offset] 第四步
L =LINK([alpha A theta D ], CONVENTION) 第五步
L =LINK([alpha A theta D sigma], CONVENTION) 第六步
L =LINK([alpha A theta D sigma offset], CONVENTION) 其中
alpha--扭转角(rad),Theta--关节角(rad), A--杆件长度(mm),D--横距(mm) Sigma表示关节类型:0代表旋转关节,1非0代表移动关节
Convention 可以取 standard 和 modified,其中standard
代表采用标准的