摘要:机械臂无论是在院校科研还是工业应用,都逐渐得到重视。对于机械臂的控制研究显得尤为重要,ros(Robot Operating System)系统是一种分布式开发系统,基于ros系统的Moveit是专门用于控制机械臂的集成化开发平台,他集成了机械臂的运动规划、操作控制、运动学、3D感知等算法,加快了机械臂的开发流程,同时ros系统的可视化界面rviz,可以实时检测并显示真实机械臂状态,同时可以进行碰撞检测,提高机械臂的安全性能。
关键词:机械臂; urdf; ros; Moveit;
Abstract
the mechanical arm has been paid more and more attention to, whether in scientific research or industrial application. It is very important to study the control of manipulator. ROS (robot operating System) system is a distributed development system. Moveit based on ROS system is an integrated development platform specially used to control the manipulator. It integrates the motion planning, operation control, kinematics, 3D perception and other algorithms of the manipulator, speeding up the development process of the manipulator. At the same time, the visual interface of ROS system is rviz, It can detect and display the real status of the manipulator in real time, at the same time, it can carry out collision detection to improve the safety performance of the manipulator.
Keywords: manipulator; URDF; ROS; moveit;
目录
1机械臂的导入┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅1
2 Moveit控制┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅2
3 结论与展望┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅3
参考文献┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅┅┅ 4
附录┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅┅ 5
传统机械臂的控制需要构建机械臂的运动学模型,最常见的是D-H模型,并通过变换矩阵运算进行逆运动学求解,从而到各个关节角进行机械臂末端运动轨迹控制,但在ros中只需要导入包含机械臂运动学特征的描述性文件urdf文件,通过Moveit的API接口,就可以通过编程进行机械臂的控制[1].
1机械臂的导入
图1 机械臂配置包生成流程图
图2 机械臂urdf文件导入rviz
ros中使用的机械臂是使用包含机械臂运动学特征的描述性文件urdf文件,urdf文件可以直接通过编程获得,也可以将机械臂的三维模型通过Solidworks插件,生成相应的urdf文件,通过此方法也是实际中常用并且快速的方法[2,3].然后将导出的urd文件导入Moveit配置助手,Moveit配置助手是将urdf文件生成用于运动规划的功能包,在后期控制和可视化方面使用,具体流程图和导入结果如图1、图2所示:
2 Moveit控制
MoveIt提供的名为move_group的主节点的高级系统架构,将所有单个组件组合在一起,以提供一组ros动作和服务供用户使用,如图3所示为其节点的通信示意图:
图3 move_group通信示意图
用户可以通过以上图所示的用户接口访问move_group节点提供的操作和服务[4],本文通过C++编程实现机械臂控制,控制程序中机械臂和Moveit连接的关键API如下:
本实验的规划组名字为"manipulator",这样就可以通过Moveit对机械臂进行控制,通过此API可以控制机械臂向目标点运动,路径是由Moveit中的路径规划器OMPL进行自动运动学求解,并按照其规划路径进行运动[5,6].
3 结论与展望
在ros平台上通过Moveit进行机械臂开发研究,特别是在工业生产中,开发效率远远高于传统的机械臂开发,基于ros系统的机械臂开发正逐渐的被开发人员接受使用和传播,机械臂和视觉的结合,是机械臂方向的主流趋势,他们的结合可以完成物品的识别、分拣、组装等一系列工作,机械臂和工作台系统的耦合,可以实现无人化工厂。基于ros系统机械臂的研究任重而道远,也终将会显露光芒。
参考文献
[1]孟韶南,梁雁冰,师恒。基于ROS平台的六自由度机械臂运动规划[J].上海交通大学学报,2016,50(S1):94-97.
[2]John,J.Craig.Introduction to Robotics:Mechanics and Control,Third Edition[M].Pearson Education Asia Limited and China Machine Press,2006
[3] 表允晳,赵汉哲,郑黎蝹,等。ROS机器人编程[M].ROBOTISCo.,Ltd.,2017
[4]徐方。工业机器人产业发展的现状与发展[J].机器人技术与应用,2007(5):2-4.
[5]刘月祺,辛大欣,刘文强。基于Move It的六自由度机器臂轨迹规划[A].中国自动化学会。2018中国自动化大会(CAC2018)论文集[C].中国自动化学会:中国自动化学会,2018:6.
[6]张法盛。6R机械臂运动规划和控制平台设计[D].北京:北京邮电大学,2018.
(如您需要查看本篇毕业设计全文,请您联系客服索取)