基于ADAMS的仿人机器人行走仿真
2012-04-20肖乐常晋义殷晨波
肖乐,常晋义,殷晨波
(1.常熟理工学院计算机科学与工程学院,江苏常熟 215500;2.南京工业大学机械与动力工程学院,南京 210009)
基于ADAMS的仿人机器人行走仿真
肖乐1,常晋义1,殷晨波2
(1.常熟理工学院计算机科学与工程学院,江苏常熟 215500;2.南京工业大学机械与动力工程学院,南京 210009)
采用机械系统动力学仿真分析软件ADAMS进行建模和动力学仿真,提供机器人三维实体模型、运动学和动力学模型以及动画仿真.采用控制系统专业软件Matlab进行机器人控制系统设计,提供控制关节目标轨迹、稳定控制算法并输出驱动力矩.通过ADAMS/Controls接口模块建立起Matlab与ADAMS之间的数据接口.联合仿真方法为实现仿人机器人在线控制奠定了基础.
仿人机器人;虚拟样机;行走稳定性;联合仿真
由于仿人机器人研制的复杂性,有必要在物理样机制造之前先建立一个虚拟样机系统,在虚拟环境中模拟机器人双足行走的状态,通过模型计算出各个关节的驱动力矩、ZMP点的变化轨迹等,并对设计方案进行优化,提高物理样机研制成功的概率[1-4].为了准确地建立仿人机器人的虚拟样机模型,发挥各类专业软件的优势,本文采用ADAMS软件进行建模和动力学仿真,并在Matlab中建立控制系统,Matlab将机器人关节力矩控制指令传送给ADAMS,ADAMS将通过建立虚拟位置传感器将关节角实时反馈给Matlab,实现联合仿真.
1 ADAMS虚拟样机建模
ADAMS(Automatic Dynamic Analysis of Mechanical System)是世界上应用最广泛的机械系统动力学仿真分析软件[5-6].它由几十个模块组成,其中最主要的模块为ADAMS/View用户界面模块和ADAMS/Solver求解器,通过这两个模块可以对大部分的系统进行仿真分析.ADAMS/View提供一个直接面向用户的基本操作环境,包括样机的建模和各种建模工具、样机模型数据的输入与编辑、与求解器和后处理等程序的自动连接、虚拟样机分析参数的设置、各种数据的输入和输出、同其他应用程序的接口等.ADAMS/Solver是求解机械系统运动和动力学问题的程序.完成样机分析的准备工作以后,ADAMS/View自动调用ADAMS/Solver模块,求解样机模型的静力学、运动学、或动力学问题,完成仿真分析以后再自动地返回ADAMS/View操作界面.
在ADAMS中建立的仿人机器人虚拟样机模型及基本组成部件与主要关节如图1所示,其简化条件为:①腿和地面都是刚性的,不考虑其弹性特征;②忽略纵向平面和横向平面的动力学耦合;③足与地面有足够大的摩擦,在行走过程中,支撑腿脚与地面没有滑动;④忽略关节摩擦.
图1 仿人机器人虚拟样机和组成部件
已知所有连杆长度li(i=1,2,3,4,5,6,7)和关节角度,计算仿人机器人摆动腿的位姿.假设各关节在参考坐标系中的坐标为(xi,zi),则运动学方程为
仿人机器人重心在固定坐标系中的坐标
使用ADAMS/Controls控制模块,将ADAMS/View程序和MATAB控制分析软件有机的连接起来,实现将ADAMS机械系统虚拟样机作为一个机械系统模型引入控制分析软件,ADAMS模型中的输入变量相当于要求的控制量,即关节驱动力矩;输出变量相当于传感器的测量值,即系统的状态信息,主要包括:各个关节的角位移、角速度和角加速度以及整体信息如重心、ZMP等.联合仿真分析包括下面4个基本步骤.
(1)构造ADAMS/View样机模型.首先构造ADAMS/View机械系统样机模型,包括几何模型、各种约束和作用力等.
(2)确定ADAMS的输入和输出.输出是指进入控制程序的变量,表示从ADAMS/Controls输出到控制程序的变量.输入是指从控制程序返回到ADAMS的变量,表示控制程序的输出.通过定义输入和输出,实现ADAMS和Matlab控制程序之间的信息封闭循环,即从ADAMS输出的信号进入控制程序,同时从控制程序输出的信号进入ADAMS程序.这里所有程序的输入都应该是设置的变量,而输出可以是变量或是测量值.
(3)构造控制系统方框图.用Matlab控制程序编写的整个系统的控制图,ADAMS/View的机械系统样机模型设置为控制图中的一个模块.
(4)联合仿真.根据各关节自由度实际运动角度,在线计算摆动脚位置(xf,zf)值.
2 Matlab控制系统建模
控制系统建模的目的是建立一个机械与控制一体化的样机模型,通过向ADAMS方框图中添加控制系统,实现控制系统的建模,基本步骤如下:(1)启动控制程序Matlab;(2)在Matlab程序中输入ADAMS模块;(3)在Simulink中设置仿真参数;(4)运用Simulink工具,进行控制系统建模.
用Matlab/simulink软件建立控制系统框图如图2所示.
图2 MATLAB控制系统框图
双击joint control模块,显示关节控制模块的子系统,如图3所示,完成各个控制图标以及下一级模块设置.
双击adams_sub模块,显示adams_sub模块的子系统,如图4所示,对其中各个模块参数进行设置.
3 ADAMS与Mat⁃lab联合仿真
为了准确地建立仿人机器人的虚拟样机模型,发挥各类专业软件的优势,可采用ADAMS软件进行建模和动力学仿真,提供机器人三维实体模型、运动学和动力学模型以及动画仿真.采用应用控制系统专业软件Matlab进行机器人控制系统设计,提供控制关节目标轨迹、稳定控制算法并输出驱动力矩.通过ADAMS/ Controls接口模块建立起Matlab与ADAMS的实时数据管道,Matlab将机器人关节力矩控制指令传送给ADAMS,ADAMS通过建立虚拟位置传感器将关节角实时反馈给Matlab,形成一个完整的闭环控制系统,实现联合仿真,如图5所示.
联合仿真程序中,步态通过上身位置与时间的对应关系进行调整,输入PD控制器预先规划好的步态轨迹,同时与实际步态值进行比较,通过计算实际值与规划值之间的差值,得出控制关节所需的扭矩,从而实现对仿人机器人稳定行走步态的控制.但是仅仅对步态的控制还不能满足稳定行走的要求,还需要在行走过程中实时计算ZMP点的轨迹,通过ZMP轨迹点的位置来确定机器人与之对应的姿态,实现仿人机器人的稳定步行.
图3 关节控制子系统
图4 adams_sub模块子系统
图5 联合仿真模型结构图
4 仿真实验
仿人机器人完整动作过程包括:摆动腿抬起,离开地面、向前摆动、到达最高点、继续向前、最后落到地面,仿真步行周期设置为1.0 s,步行速度2 km/h,步幅为520 mm,图6-图8的仿真结果图都能清楚的反映出仿人机器人摆动腿各个关节运动曲线参数的变化情况.可以看出在整个过程中,各个关节曲线连续无突变,ZMP曲线始终位于支持多边形稳定区域内.通过仿人机器人运动过程的计算机仿真,可以直接观察到机器人实际的姿态变化,为实时控制提供了依据.
图6 踝关节转动角度、角速度、角加速
图7 膝关节转动角度、角速度、角加速度
图8 随步行变化ZMP轨迹
[1]马宏绪.两足步行机器人动态行走研究[D].长沙:国防科技大学,1995.
[2]C B Yin,A Albert.Stability Maintenance of a Humanoid Robot under Disturbance with Fictitious Zero-Moment Point[A].IEEE/RSJ International Conference on Intelligent Robots and Systems[C].Edmonton Alberta Canada August,2005:1780-1787.
[3]Li Zhaohui,Huang Qiang,Li Kejie,et al.Stability Criterion and Pattern Planning for Humanoid Running[C].Proceedings of the 2004 IEEE International Conference on Robotics and Automation.New Orleans,France:IEEE Press,2004:1059-1064.
[4]肖乐,常晋义.仿人机器人下楼梯的自适应模糊控制方法[J].计算机工程,2009,35(13):193-195.
[5]徐燕华.复杂产品的虚拟样机仿真研究[D].天津:天津大学机械工程学院,2004.
[6]余朝举.基于虚拟样机技术的双足步行机器人设计与研究[D].北京:北京邮电大学,2009.
The Working Simulation of Humanoid Robot Base on ADAMS
XIAO Le1,CHANG Jin-yi1,YIN Chen-bo2
(1.School of Computer Science and Engineering,Changshu Institute of Technology,Changshu 215500,China; 2.School of Mechanical and Power Engineering,Nanjing University of Technology,Nanjing 210009,China)
A simulation method combining ADAMS and Matlab was adopted.3D entity model,kinematics and dy⁃namic model were built in ADAMS.The design and simulation of the control system were realized in Matlab.The data communication between Matlab and ADAMS was realized by the interface module ADAMS/Controls.This sim⁃ulation method lays a foundation for on-line control of humanoid robot.
humanoid robot,virtual prototype,walking stability,co-simulation
TP24
A
1008-2794(2012)04-0073-06
2012-02-28
肖乐(1981—),女,江苏苏州人,讲师,硕士,研究方向:机器人,智能控制.
常晋义(1955—),男,山西忻州人,教授,研究方向:决策支持系统.
殷晨波(1963—),男,江苏无锡人,教授,博导,研究方向:机器人技术、先进制造技术,车辆动力学.
第26卷第4 Vol.26 No.4 2012年4月Apr.,2012
常熟理工学院学报(自然科学)
Journal of Changshu Institute Technology(Natural Sciences)