在研究移动机器人控制算法和多机器人协作控制算法时,常采用仿真软件来提高算法的开发效率并减少实验成本。仿真软件可直接利用物理引擎对刚体对象的运动进行仿真,物理引擎为刚体赋予真实的物理属性,以此对物体的运动、旋转和碰撞进行仿真计算。目前主流物理引擎有Havok(HavokGameDynamics、PhysX(PhysicsEngineMiddleware、Bullet(BulletPhysicsEngine和ODE(OpenDynamicsEngine等[1],Havok是业界功能最全面的物理仿真解决方案,主要应用于实时碰撞计算、动力学约束求解和车辆综合解决方案等领域;PhysX的特点是适合计算量比较大的物理模拟计算;Bullet的特点是具有最先进的碰撞检测技术,主要用于柔体动力学和刚体动力学的仿真;ODE的特点是具有高级的关节类型和碰撞检测整合系统,它适合于对机电一体化设备和移动机器人的模拟,并且易于与C/C++API配合使用,具有快速性、强健性和可移植性等特点[2]。在采用物理引擎生成动力学世界之后,需利用图形绘制程序将场景绘制到显示终端[3]。常用的图形绘制函数库有OpenGL(OpenGraphicsLibrary、DirectX(DirectEx-tension和Irrlicht(IrrlichtEngine等,OpenGL主要应用于专业高端绘图领域[4],具有使用简便、效率高和可移植等特点;DirectX是微软开发的三维绘图软件包,性能上已经超过OpenGL,但其接口采用COM方式;Irrlicht为高性能实时3D引擎,它可以提供在商业级3D引擎上才具有的艺术特性。综上所述,在不影响软件性能的前提下,为了缩短仿真软件的开发周期,本文采用ODE物理引擎和OpenGL来开发移动机器人三维仿真软件。1软件特性(1采用基于面向对象技术实现,软件操作简单,易于维护和功能扩展;(2可以导入x格式和3ds格式的三维模型文件;移动机器人3D仿真软件的设计与实现刘润丹1,王华1,付根平2(1.阳江职业技术学院机电系,广东阳江529566;2.广东工业大学自动化学院,广东广州510090摘要:在机器人技术研究中,为了提高机器人控制算法的开发效率,提出移动机器人三维仿真软件的设计方案并加以实现。该软件采用ODE物理引擎生成动力学世界和实现碰撞检测,提高了仿真速度和精确度,同时采用OpenGL绘制三维图形,改善了图形显示效果。仿真实例证明,该软件具有一定的实用价值。关键词:移动机器人;三维仿真;ODE;OpenGL;控制算法中图分类号:TP242文献标识码:A文章编号:1674-7720(201104-0004-04Developmentof3DsimulationsoftwareformobilerobotLiuRundan1,WangHua1,FuGenping2(1.DepartmentofMechanicalandElectrical,YangjiangVocationalandTechnologyCollege,Yangjiang529566,China;2.CollegeofAutomation,GuangdongUniversityofTechnology,Guangzhou510090,ChinaAbstract:Inroboticsresearch,inordertoimprovethedevelopmentefficiencyoftherobotcontrolalgorithm,three-dimensionsimulationsoftwareisdesignedandimplementedformobilerobot.Thesoftwareusesopendynamicsenginetogeneratedynamicworldandrealizecollisiondetection,itishelpfultoimprovethesimulationspeedandaccuracyforusingODE,whilethree-dimen-sionalgraphicsaredrawnonthescreenwithOpenGLforthepurposeofimprovinggraphicdisplay.Thesimulationexampleshowsthatthesoftwarehasacertainpracticalvalue.Keywords:mobilerobot;3Dsimulation;ODE;OpenGL;controlalgorithm图1机器人体坐标系及速度分解示意图(3允许物体同时实现多个移动操作,在每个运动方向都有加速度、减速度和最大速度等运动属性;实现碰撞检测、移动机器人和虚拟场景的图形化显示;(4支持实时调试功能;3D动画和仿真计算结果同步且真实对应;绘制仿真环境的二维地图和物体运动轨迹。(5提供与外部软件连接的接口,即可以通过ODBC与外部数据库相连,或通过Socket接口与外部设备相连,实现进程之间的通信;(6软件接口的多样性和扩展性,即可通过游戏手柄、键盘来输入控制信息、模型参数和仿真参数等;仿真数据的保存输出。2仿真软件的关键技术2.1移动机器人的速度分解公式对于地面移动机器人平台,可根据车体的运动方式和实验数据求取其速度分解公式。本文采用由三个全向轮驱动的移动机器人[5],规定机器人体坐标系是以机器人的正前方为x轴正方向,逆...