机器人操作与编程课程设计名称:机器人操作与编程设计题目:基于ROS空间六自由度机器人操作与编程学院:专业年级:姓名:班级学号:指导教师:二零一九年七月四日前言机械手臂是为了在工厂里执行简单重复任务而设计的机器人。它的目的是取代危险的工作或取代重复的任务,最近有许多有关机械手臂和人的协作的研究。随着人机交互的研究活跃起来,机械手臂不仅应用到了工厂,还与多种领域结合,为大众带来了新的体验。数字舵机和3D打印技术的结合正在提高机械手臂对公众的接近度,这给了制造商和教育行业巨大的期待。一方面,机械手臂和人工智能的结合使很多人带来了大规模失业的恐惧。但是,机械手臂长期以来一直是使社会富饶的工具之一,当今也在许多不同的领域帮助人们。未来如果机器人的发展能够渗透到我们的生活中,而不会摆脱其本质,那么像扫地机器人一样,机器人将成为我们生活的一部分。今后,我将介绍基于ROS空间六自由度机器人的操作。第一章机械手结构1.1机械手臂的结构机械手臂的基本结构由基座(Base)、连杆(Link)、关节(Joint)和末端执行器(End-effector)组成,如图1-1所示。图1-1机械手臂的结构机械手臂一般是固定一端,而固定部分称为基座。因为机械手臂的长度和端部的移动速度与施加到基座的力的大小成比例,所以基座在机械手臂的整个结构中是面积最大且最坚固的部分。基座不仅是一个固定的物体,它也可以是一个像移动机器人那样运动的物体,因此可以作为机械手臂自由度的补充。以“基座”作为基础而制作出来的机械手臂还由连杆和关节的级联组成。连杆通常有一个关节,但有时也有不止一个关节。关节代表旋转轴,主要由电机组成。通过这个电机的转动,关节产生连杆的运动。关节根据其运动方式可以分为:旋转关节(Revolute)、平移关节(Prismatic)、螺丝关节(Screw)、圆筒关节(Cylindrical)、混合关节(Universal)和球形关节(Spherical)等。基座上有一连串的连杆和关节,最终端是一个“末端执行器”。由于机械手臂的固有目的是抓取并搬运物体,因此其“末端执行器”往往是一个抓手(Gripper)。控制机械手臂的方法可分为关节空间控制(JointSpaceControl)和任务空间控制(TaskSpaceControl)。关节空间控制是通过输入每个关节的旋转角度来输出机械手臂坐标值的方法,如图1-2所示。根据各关节的旋转程度而变化的末端坐标值(X,Y,Z,i,z和})可以通过正向运动学获得。图1-2正运动学如图1-3所示,任务空间控制是输入机械手臂的末端的坐标值,以此获得各关节的角度位置,其输入和输出与关节空间控制正好相反。工作空间中的物体姿态(Pose)包括其位置(Position)和方向(Orientation)。我们生活在一个三维的世界,因此可以用X、Y、Z轴来表示,而方向可以表示为i(roll)、z(pitch)、}(yaw)。以桌子上的杯子(假设该坐标系的原点是杯子的中心)为例,即使它的位置不变,但可以通过使其躺下或改变它的手把的方向来改变杯子在三维空间中的姿态。换句话说,如果以数学语言描述,则意味着有6个未知数,所以如果有6个方程就可以找到唯一的解。根据机械手臂的自由度特点,当有6个关节时,才可以把桌子上的杯子以任何角度举到任何可能的位置。但是,并不是所有的机械手臂都需要六个以上的自由度。根据机械手臂使用的目的和环境来调整自由度会更有效率。通过逆运动学原理,可以根据机械手臂末端的坐标值获得每个关节的角度。图1-3逆运动学第二章基于ROS建模立机械臂模型2.1创建机械臂模型ROS提供了功能丰富的仿真环境,即使没有真实机器人,也可以在仿真环境中学习、研究、开发机械臂。因此,下面就来虚拟一个六轴机械臂。首先编写机械臂的URDF文件,为后续Movelt!和Gazebo上的仿真控制做好准备。(详细程序见附录一,在此仅展示部分程序见图2-1)图2-1部分程序代码第三章运行Moveit3.1运行Moveit运行Moveit打开工作空间如图3-1所示。图3-1Moveit工作空间创建新的MoveIT文件,打开建立的模型.xacro文件,如图3-2所示。图3-2在MoveIT打开的模型。3.2在MoveIT中配置第四章运行Demo运行Demo时,可以通过RViz窗口看到模型。在位于左下角的MotionPlanning命令窗口的Context页面中,可以选择OMPL支持的路径规划库50。选择RRTConnectkConfigDefault并转到Planning页面。本来,机械手臂终点的坐标由表示运动的X、Y、Z和表示旋转的Θ(Roll)、Φ(Pitch)和Ψ(Yaw)组成的姿态值来表示。但是,由于OpenManipulatorChain只有四个关节,因此终点将只有X、Z和Pitch轴的自由度(其余的一个自由度是一号关节的Yaw轴旋转)。记住这一点,并将终点移动到所需的坐标位置,如图4-1所示。图4-1在Demo的操作第五章总结经过不断的努力,我将基于ROS空间六自由度机器人操作与编程做完了.在这次作业过程中,我遇到了许多困难,一遍又一遍的检查,一次又一次的修改,这都暴露出了前期我在这方面的知识欠缺和经验不足,出现了很多小问题,令我非常苦恼.后来在老师的指导下,我找到了问题所在之处,并将之解决.同时我还对基础的知识有了更进一步的了解.尽管这次作业的时间是漫长的,过程是曲折的,但我的收获还是很大的.不仅仅掌握了设计一个完整基于ROS空间六自由度机器人操作与编程的步骤与方法;也对ROS的操作有了更进一步的掌握。对我来说,收获最大的是方法和能力.那些分析和解决问题的方法与能力.在整个过程中,我发现像我们这些学生最最缺少的是经验,没有感性的认识,空有理论知识,有些东西很可能与实际脱节。在设计的过程中还培养出了我们的团队精神,大家共同解决了许多个人无法解决的问题,在这些过程中我们深刻地认识到了自己在知识的理解和接受应用方面的不足,在今后的学习过程中我们会更加努力和团结。总体来说,我觉得做这种类型的作业对我们的帮助还是很大的,它需要我们将学过的相关知识都系统地联系起来,综合应用才能很好的完成包括基于ROS空间六自由度机器人操作与编程在内的所有工作,也希望学院能多一些这种课程。附件1: