基座自由度、大臂摆动自由度、小臂摆动自由度、腕部Y轴摆动自由度、腕部Z轴摆动自由度及其腕部末端X轴旋转自由度
其导入过程为:
- 机器人三维模型总体有6个部分。打开机器人的SolidWork三维模型,依次另存为6个“Parasolid(x_t)”类型的文件。
- 打开ADAMS/View,将保存好的“Parasolid(x_t)”类型的文件依次导入,如图5-11所示为“部件”打开,其目的是保证每个部件内的零件都相对固定为一个整体。
导入后的ADAMS模型如图5-12。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-yHLRXLuc-1684939816457)(data:image/svg+xml;utf8, )]
图5-11 导入ADAMS的部件选择
图5-12 导入ADAMS的样机模型
5.4 机器人运动学仿真
5.4.1 轨迹规划
轨迹规划即为求解机器人运动学逆解的过程。将机器人模型导入ADAMS后,首先是为机器人添加材料,本机器人结构为铝合金。添加转动副,各个转动副从基座到手腕末端依次命名为JOINT_1、JOINT_2、JOINT_3、JOINT_4、JOINT_5和JOINT_6,在基座与大地(ground)间添加固定副。仿真模型如图5-13所示。
在本机器人的手腕末端添加一般点驱动,如图,定义末端轨迹为一条在XY平面的螺旋线。末端端点三个坐标分量X、Y、Z随时间变化的函数为:
TraX:disp( time ) = 100*time*cos( PI*time );
TraY:disp( time ) = 100*time*sin( PI*time );
TraZ:disp( time ) = 0*time;
RotX:disp( time ) = 0*time;
RotY:disp( time ) = 0*time;
RotZ:disp( time ) = 0*time;
仿真的时间需要设置为2000毫秒,仿真步数要设为500,利用仿真的轨迹跟踪功能绘制出如图5-14所示运动轨迹。打开软件的后处理模块可观察到关节角的变化曲线如图5-15,即完成了本机器人的运动学反解,通过图中可以看出本机器人的腕转关节和腕摆关节有较大的抖动,而其他各关节运动曲线较平滑,总体来看机器人的运动比较平稳。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-9DoRNlwM-1684939816457)(data:image/svg+xml;utf8, )]
图5-13 机器人ADAMS运动学仿真模型
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-fH1VmbhO-1684939816458)(data:image/svg+xml;utf8, )]
图5-14 机器人末端轨迹规划
5.4.2 各关节角位移变化图
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-xqKHn99C-1684939816458)(data:image/svg+xml;utf8, )]
(a)J1变化曲线
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-39oEyiEF-1684939816459)(data:image/svg+xml;utf8, )]
(b)J2变化曲线
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-LrxFTUAM-1684939816460)(data:image/svg+xml;utf8, )]
(c)J3变化曲线
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-jHWkZzSF-1684939816460)(data:image/svg+xml;utf8, )]
(d)J4变化曲线
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-au84hSrc-1684939816461)(data:image/svg+xml;utf8, )]
(e)J5变化曲线
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-7K86G1qV-1684939816461)(data:image/svg+xml;utf8, )]
(f)J6变化曲线
图5-15 关节角位移图
5.4.3 正运动学仿真
完成机器人的运动学逆解后需要对求出的各个关节的角度再进行仿真验证。打开后处理模块中的各关节角度曲线,利用Spline样条函数采样工具对各曲线采集样点数据,并将采集的样点数据作为各关节驱动的输入参数。
删除掉前面在机器人手腕末端添加的一般点驱动,将图中各曲线分别转换为Spline曲线。在每个关节处选择添加驱动,从基座到手腕末端将各个驱动命名为motion_1、motion_2、motion_3、motion_4、motion_5和motion_6,定义各个关节的运动驱动函数分别为:
motion_1:AKISPL(time , 0 , SPLINE_1 , 0);
motion_2:AKISPL(time , 0 , SPLINE_2 , 0);
motion_3:AKISPL(time , 0 , SPLINE_3 , 0);
motion_4:AKISPL(time , 0 , SPLINE_4 , 0);
motion_5:AKISPL(time , 0 , SPLINE_5 , 0);
motion_6:AKISPL(time , 0 , SPLINE_6 , 0);
再次选择仿真,设置仿真的时间为2000毫秒,仿真的步数为500步,可观察到机器人在各个关节的驱动下绘制出了其手腕末端的轨迹,并且该运动轨迹与前面添加一般点驱动后的运动学逆解的末端运动轨迹即图5-15所示轨迹基本一样,采用ADAMS从已知的位姿变换再反求机器人关节角度的正确性得到了验证。如图5-16,从图中可以看出机器人各关节能在样条函数Spline的驱动下完成机器人的轨迹规划。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-iHgQ1K3i-1684939816462)(data:image/svg+xml;utf8, )]
图5-16 机器人末端各方位位移变化图
三维模型与admas下载链接
(下载咨询链接:matlab正逆运动学分析与轨迹规划])