2021-10-30 19:15:06
在CoppeliaSim(V-REP)中,通过拖动机械臂末端实现运动学逆解,主要涉及Dummy对象和Ikgroup的使用。以下是详细的步骤和说明:
Dummy对象的使用:
Dummy在CoppeliaSim中是一种带有姿态信息的“虚拟点”,可以视为没有重量和体积的质点,但携带姿态信息。
Dummy的主要应用场景包括作为“领航点”和“传感点”。作为领航点时,Dummy常与Path结合,作为目标运动位置的引导者;作为传感点时,可以绑定到机器人部件,获取运动信息。
Dummy可以通过拖拽和CoppeliaSim提供的界面改变其位置和姿态。
Ikgroup的设置:
Ikgroup是CoppeliaSim自带的逆运动学模块。设置方法包括点击f(x),在弹出的窗口中选择Inverse Kinematics,添加新的IK Group,并自定义名字。
在新建的IK_Group中,可以设定计算方法(Calc.method),如Pseudo inverse或DLS,并设置迭代步数、阻尼比等参数。
通过Edit IK Elements,可以添加IK Element with tip,一个IK Group可以添加多个IK Element,并将Base设定为所用的基准。
主要操作步骤:
将UR10机器人从模型库中拖入场景中。
添加tip dummy(UR10_ikTip),绑定到UR10_link7下,并调整其空间坐标与UR10_link7相同。
复制UR10_ikTip,设为target dummy(UR10_ikTarget),绑定到UR10下,并关联UR10_ikTip和UR10_ikTarget。
将UR10机器人的各个关节模式都设为IK mode + Hybrid operation。
添加IK group和IK element:从tools栏选择calculation module properties,在Kinematics栏选择add new IK group,选择逆解的方式和迭代步数,编辑IK elements,添加UR10_ikTip,以UR10为基底,勾选所有约束。
实现结果:
拖动机械臂末端时,机械臂可以变换到对应的位形。
不同求解器、不同迭代步数下的逆解效果:
使用Pseudo inverse方法,Max.iterations为3时,逆解情况不稳定,有震动。
使用Pseudo inverse方法,Max.iterations为10时,逆解情况比3次迭代稳定一些,在某些位置可以稳定求得逆解。
使用DLS方法,Max.iterations为3时,逆解较为稳定。
使用DLS方法,Max.iterations为10时,逆解比3次迭代更稳定。
使用DLS方法,Max.iterations为100时,逆解比10次迭代更稳定。
综合分析:采用DLS的方法比Pseudo inverse的方法逆解效果好,同一种逆解方法迭代步数越高逆解效果越好。