基于ADAMS的点按手法运动仿真

摘    要:为研究中医按摩点按手法在机器人手臂上的实现,基于ADAMS虚拟建模的方法进行机器人手臂的运动学分析,研究在六自由度机器人手臂上实现点按手法时各个关节的运动学相关数据。仿真结果表明,在六自由度机器人手臂上能够很好地实现点按手法,并能得到每个关节的关节角随时间的运动曲线和相关数据。可见,利用ADAMS虚拟建模仿真的方法能够方便有效地得出在机器人手臂上实现某种运动的相关数据,可为物理样机上的控制策略提供数据支持和验证。

关键词:ADAMS;运动学;机器人手臂;按摩;仿真;

中医按摩的历史悠久,在经过长期实践后,成为自觉的医疗活动,以后逐步发展形成了中医的推拿学科。点按法是中医按摩手法中最基本的一种方式。

日本三洋电机有限公司机电一体化研究中心的Masao Kume等设计了一个机械疗法单元MTU(Mechanotherapy Unit),验证研制智能按摩机器人手臂的可行性,控制实现了对软组织的抓动作复现能力。K.C.Jones和Winncy等人提出了使用PUMA562进行按摩治疗的新方法,使得该机器人手臂能应用环形和线性的捏手法,对处于俯卧姿势的病人背部和腰部进行按摩。日本早稻田大学和朝日大学合作研制了面部按摩机器人手臂,这款机器人手臂的“手臂”上装有高尔夫球大小的陶瓷小球,可在人体皮肤上滚动。

机器人手臂已广泛应用于生活和工业的各个方面。本文以具有最优灵活工作空间的六自由度机器人手臂构型为载体,建立六自由度机器人手臂的虚拟样机模型,并在虚拟样机中通过轨迹的规划,使机器人手臂的末端实现点按手法运动轨迹。在此基础上得到机器人手臂关节空间的曲线图,为控制策略实施提供依据。

1 机器人手臂的三维虚拟建模

1.1 ADAMS软件简介

虚拟样机技术是计算机辅助工程的一个重要分支,它是人们在开发新产品时,在概念设计阶段,通过科学理论和计算机语言,对设计阶段的产品进行虚拟性能测试,达到提高设计性能、降低成本、减少产品开发时间的目的。研究人员可以利用这种直观的数字模型代替昂贵的物理样机,完成很难甚至无法在真正的物理样机上进行的试验和测量,并且大大地缩短试验和测量的时间。

虚拟样机仿真分析软件ADAMS[1],是对机械系统的运动学和动力学进行仿真计算的商用软件。用户可以利用各种模块方便地建立机械系统虚拟样机,并通过强大的后处理模块对参数的测量结果进行处理与分析。ADAMS采用世界上广泛流行的多刚体系统动力学理论中的拉格朗日方程方法,选取系统内每个刚体质心在惯性参考系中的3个直角坐标和确定刚性方位的3个欧拉角作为笛卡尔广义坐标,用带乘子的拉格朗日方程处理具有多余坐标的完整约束系统或非完整约束系统,导出以笛卡尔广义坐标为变量的运动学方程。

1.2 机器人手臂虚拟样机的建立

以应用最为普遍的、具有最优灵活工作空间的六自由度机器人手臂构型作为产生按摩运动的载体。虚拟样机的建立要尽可能地简化模型。在满足虚拟样机仿真运动要求的前提下,模型的零件数量应该尽可能的少。保留主要的运动部件,忽略细化的部件。为了保证虚拟样机的准确性,各主要部件的空间布局应该与物理样机相当。由于ADAMS三维建模过程复杂,采用Solid Works建模,然后将建好的模型导入ADAMS软件中进行定义。

建模的步骤如下[3]:

(1)用Solid Works建模后的模型如图1所示。建好的模型保存成Parasolid(*.x_t)格式。

基于ADAMS的点按手法运动仿真的图1

图1 机器人手臂总体示意图  

(2)打开ADAMS软件,然后依次执行“file—import”,在File type中选择Parasolid,在“File To Read”中右击选“Browse”,选择刚建立的模型。在model name中右击选creat,创建一个文件。这样就把在Solid Works中建立的模型导入了ADAMS中。

1.3 机器人手臂的正、逆运动学

机器人手臂可以看成是由一系列刚体通过关节连接而成的一个运动链,为了研究机器人手臂的运动特性,需要在各个适当的坐标系统来进行研究。Denavit和Hartenberg提出了一种描述机器人手臂连杆之间运动关系的方法,用连杆长度ai、连杆转角αi、连杆偏距di及关节角θi这4个参数来描述机器人手臂连杆之间的运动关系。

机器人手臂中建立坐标系的步骤:

(1)找出各关节轴,并标出这些轴线的延长线。在下述步骤(2)~步骤(5),仅考虑两个相邻的轴线。

(2)找出关节轴i和i+1的公垂线或关节轴的交点,以关节轴i和i+1的交点或公垂线与关节轴i的交点作为连杆坐标{i}的原点。

(3)规定Zi轴沿关节轴i的指向。

(4)规定Xi轴沿公垂线的指向,如果关节轴i和i+1相交,则规定Xi轴垂直于关节i和i+1所在的平面。

(5)按照右手定则确定Yi轴。

(6)当第一个关节变量为0时,规定坐标{0}和{1}重合。对于坐标{N},其原点XN的方向可以任意选取。但在选取时,通常尽量使连杆参数为0。这样会使计算方便。

坐标系之间的变换矩阵为:

基于ADAMS的点按手法运动仿真的图2

可以看到,只要建立好坐标系,找对D-H参数,就很容易得到相邻两个坐标系之间的转换矩阵。只要给定了D-H参数,就可以计算得出机器人手臂末端在给定坐标系下的运动轨迹。给定一组关节角θi向量,就对应末端轨迹上的一点。当然这是相对于非冗余自由度机器人手臂。反之,当给定了机器人手臂的末端轨迹,反解出关节角θi。机器人手臂的正、逆运动学计算是比较复杂的,可以借助MATLAB进行计算。

1.4 在ADAMS定义相关参数

在ADAMS环境下,首先定义各个部件的质量属性,然后定义模型各种约束,为仿真做准备。定义部件质量的方法是:选择部件,右击,选择Part———Modify,在弹出的对话框中的Define Mass By中选择Geometry and Material Type,在Material Type中定义部件的材料[2],使各个部件具有物理意义。

机器人手臂的各个构件之间存在约束,定义好各个约束才能使机器人手臂运动起来。在基架与地之间添加固定副,在关节1、关节2、关节3、关节4、关节5及关节6添加旋转副(revolute joint),如图2所示。在添加运动约束的时候,会产生I-Marker和J-Marker两个坐标系[1,2],调整这两个坐标系的方向,使其符合D-H参数[3]。表1所示为所建模型的D-H参数表。

基于ADAMS的点按手法运动仿真的图3

图2 机器人手臂中的关节

表1 D-H参数表

基于ADAMS的点按手法运动仿真的图4

表1中,ai-1指沿Xi轴,从Zi移动到Zi+1的距离;αi-1指绕Xi轴,从Zi旋转到Zi+1的距离;di指沿Zi轴,从Xi-1移动到Xi的距离;θi指绕Zi轴,从Xi-1旋到Xi的角度。

至此完成了机器人手臂的虚拟模型的建立[6]。

2 点按法的运动仿真

2.1 点按法的运动特点

中医按摩以手指、掌的不同部位或肘尖,置于经穴或其他部位,逐渐用力加压的手法叫按法。用手指实现的按法,称之为点按法。按法的动作要领是:垂直按压,固定不移,由轻到重,稳而持续。下压的时间为7 s,均匀的增加,无冲击力,位移为1 cm。回位的时间为4~5 s。

2.2 点按法的运动轨迹规划

通过咨询按摩专家,总结出了按法的运动特点,机械臂末端的运动应分为以下步骤:

(1)首先,机械臂末端由初始位置以一定的速度到达离按摩部位s的正上方200 mm的地方。

(2)从按摩部位正上方以一定速度让机械臂末端与人体皮肤刚刚接触,速度的变化过程:0—加速—恒速—减速—0,与人体接触时,速度正好为0。

(3)机械臂末端从与人体接触的位置向正下方运动,速度的变化过程为:0—加速—恒速—减速—0,向下运动的距离为10 mm,运动时间为7 s,到达最下方时,根据病人的反映情况,适当保持一段时间,这里假设为2 s。

(4)机械臂末端从上一步到达的位置,垂直向上抬起至步骤(2)到达的位置。时间为4~5 s,此时间参数没有严格的定量。

重复步骤(3)和步骤(4),实现点按法的运动过程。

为了实现上述运动过程,利用ADAMS提供的计算方法[7,8,9],直接定义机械臂末端的运动轨迹,具体方法:

(1)在机器臂末端建立一个Marker点,其坐标值为(-173.0,979.0,0.0),各坐标轴的方向和基坐标的方向一致[4]。建立的Marker点是机械臂末端的一部分,命名成“moduan”。

(2)在Marker点“moduan”与ADAMS中的“Ground”之间添加“general point motion”,添加完后如图3所示。

(3)定义“general point motion”,使机器臂末端实现按法的运动。定义运动的窗口如图4所示。输入函数:

基于ADAMS的点按手法运动仿真的图5

图3 general point motion的标识

基于ADAMS的点按手法运动仿真的图6

图4 定义“general point motion”对话框 

Tra X:STEP(time,0,0,5,-150)

Tra Y:STEP(time,0,0,5,100)+STEP(time,5,0,7,-80)+STEP(time,7,0,20,-50)+STEP(time,20,0,24,0)+STEP(time,24,0,27,-10)+STEP(time,27,0,28,0)+STEP(time,28,0,30,10)+STEP(time,30,0,33,-10)+STEP(time,33,0,34,0)+STEP(time,34,0,36,10)+STEP(time,36,0,39,-10)+STEP(time,39,0,40,0)+STEP(time,40,0,42,10)

Tra Z:0

Rot X:free

Rot Y:free

Rot Z:STEP(time,0,0,5,0)

将机器人手臂末端的六自由度完全定义,就可以进行运动仿真了。在仿真控制目录下,设置“end time”为42s,“step size”为0.2,点击“start simulation”按钮,就可得到机器人手臂的运动轨迹,见图5。

基于ADAMS的点按手法运动仿真的图7

图5 机器人手臂运动轨迹

3 仿真结果

利用ADAMS提供的功能,可以很方便地得到机械臂各个关节角的运动曲线,这里以关节3为例。利用ADAMS中“measure”功能测量第3个关节角的变化。如图6所示。图6中,纵坐标是由初始位置转过的角度。

将图6所示的曲线导入ADAMS后处理模块中,得到曲线上的关节角的具体值。由于仿真42 s,步长为0.2 s,那么总共得到210个点。鉴于篇幅所限,在这里随机选择其中的几个点的值列于表2中。

表2 关节3的角度值  

基于ADAMS的点按手法运动仿真的图8

图6只给出了关节3的变化曲线,用同样的方法可以得到其他关节角的变化曲线,并得到每个时间点对应的关节角的值。这些值一方面可以作为物理样机控制的依据,另一方面可以验证用其他工具,如MATLAB,计算得到的数值,确保得到的数值的准确性。

基于ADAMS的点按手法运动仿真的图9

图6 关节3的关节角变化曲线  

4 仿真结果的反向利用

得到机械臂关节1~关节6的变化曲线后,在ADAMS软件中把各个关节运动曲线分别保存为“spline”,依次命名为spline1~spline6。将机器人手臂末端的驱动“general point motion”删除,然后在各个关节添加驱动“rotational joint motion”,直接定义各关节驱动的运动函数,其函数为:

Motion1:AKISPL(time,0,spline1,0)*pi/180

Motion2:AKISPL(time,0,spline2,0)*pi/180

Motion3:AKISPL(time,0,spline3,0)*pi/180

Motion4:AKISPL(time,0,spline4,0)*pi/180

Motion5:AKISPL(time,0,spline5,0)*pi/180

Motion6:AKISPL(time,0,spline6,0)*pi/180

定义上述函数旨在让机器人手臂的各个关节的运动按照定义好的曲线进行,仿真后依然能够相应地得到机器人手臂末端的运动轨迹。可以发现,得到的轨迹与先前通过定义机器人手臂末端得到的轨迹是一样的。这说明利用ADAMS软件反解机器人手臂各个关节的运动学数据是可行的。

5 结论

(1)运用ADAMS软件的运动仿真功能,设定合理正确的仿真步骤和驱动函数,能够模拟机器人手臂点按法运动形态和工作过程。

(2)利用ADAMS中的工具得到了机器人手臂各个关节角的角度随时间变化曲线,以及具体的角度数值值,可为以后在物理样机上控制机器人手臂实现点按手法提供数据支持。

文章来源:工程机械 

默认 最新
当前暂无评论,小编等你评论哦!
点赞 评论 收藏 1
关注