刘振宇 ,郝 明 ,,赵 彬 ,甘 戈 ,邹风山
(1.沈阳工业大学 信息科学与工程学院,辽宁 沈阳110870;2.沈阳新松机器人自动化股份有限公司,辽宁 沈阳110168)
随着自动化技术的发展,工业机器人的应用越来越广泛,已经渗透到各行各业[1-2]。机器人技术在军事、医药、工业自动化、抢险救灾等方面已经成为不可或缺的好帮手[3-4]。一个国家的机器人发展水平也能从侧面体现国家科技的发展水平。
本文以广泛意义上的六自由度的机械臂为实例,分析了机械臂的运动学正反解问题。分别利用OpenGL三维仿真技术和Matlab机器人工具箱嵌入机器人技术模块,对六自由度机械臂进行系统模拟仿真,同时建立了机械臂可视化页面。在研发和设计机器人的过程中,机器人仿真技术是一种安全有效的方法,它发挥着至关重要的作用,并且应该广泛地推广[5]。
国内外一些学者和研究机构在机器人运动学仿真方面进行了实验性的研究。例如Ding Jienan、GOLDMAN R E、Xu Kai和ALLEN P K设计了一种基于单端口诊断可插入的机器人运动学系统平台[6]。KLOETZER M、MAGDICI S和BURLACU A设计了一种针对规划移动机器人的实验平台和Matlab工具箱[7]。鉴于此,本文选用Matlab机器人工具箱和OpenGL图形图像仿真系统工具,对工业机器人进行在线仿真系统的开发。
本文以ABB公司的IRB4600机器人为研究对象,进行了机器人在线仿真系统的研究与开发应用。ABB的IRB4600工业机器人的精度较高、操作速度快、废品率低,在扩大产能和提升效率方面起到举足轻重的作用,适合切削、点胶、机加工、测量、装配及焊接应用。IRB4600具有超大的工作范围和创新的优化设计,机身紧凑轻巧,所获周期时间与行业标准相比最短可缩减25%,从而提高产能与效率。
机器人设计仿真系统的原理如图1所示。在机器人在线仿真系统研究与应用中,一般以Windows作为开发平台,选用Visual C++6.0、Matlab机器人工具箱和OpenGL仿真软件作为开发工具来完成机器人模型的设计和建立,具有可视化操作的优点。在机器人的几何模型建立与仿真程序设计的过程中,用户通过对人机交互界面的操作间接地控制目标模型,为机器人的在线仿真系统建立和求解空间模型提供了很好的基础条件。
图1 机器人仿真系统原理图
Robot Studio是ABB的机器人仿真系统广泛使用的工具,就像真正的机器人在你的电脑。使用ABB的模拟和离线编程软件Robot Studio,可以使得用户在办公室内进行远距离的机器人编程,以满足不同情况下的生产需求。Robot Studio可以提供工具来提高盈利能力的机器人系统,便于执行任务,例如培训、编程和优化无干扰生产。这提供了众多的好处,包括减少风险、快速启动、更短的转换及提高了生产率。Robot Studio可以帮助开发者非常逼真地模拟执行,在程序和配置文件相同的情况下,使用虚拟机器人与真实机器人可以达到一致效果。
Inventor是美国AutoDesk公司推出的一款三维可视化实体模拟软件。借助Inventor的运动仿真功能,用户能了解机器在真实条件下如何运转才能节省花费在构建物理样机上的成本、时间和高额的咨询费用。基于Inventor的机器人仿真系统用户可以根据实际工况添加载荷、摩擦特性和运动约束,然后通过运行仿真功能验证设计。借助与应力分析模块的无缝集成,可将工况传递到某一个零件上,来优化零部件设计。
通过Matlab这个强大的计算平台,采用Robot Toolbox中所提供的接口函数编制简单的程序。对工业机器人进行正、逆问题求解,并且对机器人的运动轨迹进行仿真,如图2所示。在对工业机器人仿真前,先输入机器人的参数,定义其连杆的关节参数矩阵。建立仿真运动学仿真平台步骤如下:
图2 基于Matlab机器人工具箱的在线仿真系统
利用OpenGL对机器人建模时,需要在建模之前,对光照(glLightfv)、材质(glMaterialfv)、颜色模式(glShadeMod el)进行预先设置,使得场景更逼真。场景建模包括地板、工件放置台、摄像机、工件放置槽几个部分。根据摄像机标定的相互位置关系,调用OpenGL函数,根据实际设备的几何形状,建立工业机器人在线仿真系统平台。OpenGL独立于硬件和窗口系统,使用方便,C、C++、Java等多种常用的编程语言都可以直接或间接调用OpenGL库中的函数。如图3所示,为基于OpenGL的工业机器人在线仿真系统。该系统方便与Visual C++6.0配合使用嵌入机器人模块算法,来对机器人进行在线系统仿真。
图3 基于OpenGL的机器人在线仿真系统
机械臂运动学正解:已知所有关节角度和连杆长度,计算机器人末端执行器的位姿。MDH模型是对机器人连杆和关节进行建模的一种非常简单的方法,可以用于任何机器人构型,而不管机器人的结构顺序和复杂程度如何[8]。六自由度机械臂的MDH参数如表1所示。其中αi-1表示连杆的长度,是zi-1与zi之间的公垂线。 ai表示连杆的转角,是zi-1与zi之间的角度。di表示连杆的偏距,代表zi轴上的两条相邻公垂线的间距。θi表示关节角,使xi-1与xi相互平行绕z轴的旋转角。通常将描述一个连杆与下一个连杆间的相对关系的齐次变换称为T矩阵。T矩阵实际上是一个描述连杆坐标系之间相对旋转和平移的齐次变换。坐标系应用MDH的方法建立,其中坐标变换矩阵为:
表1 机械臂的连杆MDH参数
式中:
机械臂运动学逆解:在工业机器人的连杆长度、位置和姿态已知的条件下,计算所有的关节角度。实际上就是已知末端位置Eo7=(px7,py7,pz7)求解关节角。 设P=(0,0,0,1)T,则有公式:
由于机械臂结构的冗余性,导致反解会得到多个解,因此需要一些关节的机械臂结构约束和其他限制条件,求出各个关节的角度,可以通过求逆矩阵的方法求解。
然后分别求解出各个轴的解析式:
其中,s23与c23为:
根据上面的公式当把机器人移动到已知的空间位置,可以根据空间位置求取六自由度机械臂的关节角度。图4所示为机器人运动学人机交互界面。
图4 机器人运动学人机交互界面
随着机器人技术的发展,基于OpenGL和Matlab机器人工具箱的机器人在线仿真系统以其自身的优点:容易掌握、降低开发成本、加快开发速度和测试方便等越来越受各个公司和科研院校所青睐。本文首先系统地介绍了机器人的建模及其仿真过程,利用VC++6.0、Matlab机器人工具箱与OpenGL图形图像库建立了仿真模型,然后从运动学的角度进行了正运动学建模,最后将运动学算法加入到在线仿真系统中去。结果表明该仿真模型对研究机器人技术有很大的作用,有效验证了机械臂数学模型以及正、逆运动学分析的正确性。
[1]ANGEL E,SHREINER D.Teaching a shader-based introduction to computer graphics[J].Computer Graphics and Applications,2011,31(2):9-13.
[2]TENG C H,CHEN J Y.An augmented reality environment for learning OpenGL programming[C].2012 9th UIC/ATC,2012.
[3]刘振宇,赵彬,朱海波,等.六自由度机械臂分拣系统仿真平台研究[J].机械设计与制造,2013(2):210-213.
[4]REINERS D,VOSS G.Climbing longs peak:the steep road to the future of OpenGL[J].Computer Graphics and Applications,2007,27(4):84-89.
[5]Ding Jienan,GOLDMAN R E,Xu Kai,et al.Design and coordination kinematics of an insertable robotic effectors platform for single-port access surgery[J].IEEE/ASME Transactions on Mechatronics,2013,18(5):1612-1624.
[6]DEAN L E,NAIR S,KNOLL A.User friendly Matlabtoolbox for symbolic robot dynamic modeling used for control design[C].2012 IEEE International Conference on Robotics and Biomimetics(ROBIO),2012.
[7]CHEAH C C,HIRANO M,KAWAMURA S,et al.Approximate jacobian control for robots with uncertain kinematics and dynamics[J].IEEE Transactions on Robotics and Automation,2003,19(4):692-702.
[8]JARA C A,CANDELAS F A,GIL P.An interactive tool for industrial robots simulation,Computer Vision and remote operation[J].Robotics and Autonomous Systems,2011(59):389-401.