MoveIt是ROS中非常强大的一个开发平台,可以为机器人开发提供六大功能支持,真正做到不写一行代码,就可以从零完成各种炫酷的机器人应用功能。
MoveIt的设计目标是让机器人走向未来,那未来的机器人是什么样的呢?不知道你有没有看过在工厂实际工作的机械臂,都需要人工事先完成示教工作,机器人的角色更像是一台“机器”,完成人们依次设计好的轨迹,环境一旦发生变化,就得重新来过。
未来的机器人(很多已经成为现实)将更加智能化,可以通过视觉获取环境信息和工件位置,大脑自主分析运动行为,真正做到即插即用,而MoveIt就可以帮助我们做到这一点。
MoveIt如何使用?用过的小伙伴一定听说过Setup Assistant这个工具,使用它就可以在界面中轻松完成MoveIt各项配置,分分钟让机械臂跑起来。
这个工具你会使用么?不如和古月君一起操作一把,我们使用普通的6自由度机械臂和装配了夹爪、相机的机械臂为例,10分钟就可以把运动规划、运动学正逆解、视觉检测跑都起来,,也可以参考视频教程《MoveIt可视化配置及仿真指南》,一步一步跟着古月君操作!
使用Setup Assistant的第一步,当然是使用如下命令启动啦:
$ roslaunch moveit_setup_assistant setup_assistant.launch
接下来在这个界面中完成最多12个步骤的配置,就大功告成了,中间好几个步骤根据硬件不同是可以跳过的。第一步是选择模型的硬件,以新建配置包为例,选择后加载模型,可以成功可视化显示模型。
接下来第二步,配置自碰撞检测,只需要点击一个按键,会自动采样始终碰撞和不碰撞的连杆,减少后续碰撞检测的时间。
第三步设置虚拟关节,主要目的是为机械臂创建一个世界坐标系,当机械臂相对运动时,可以描述机器人的位姿,如果机械臂是固定的,这一步可省略。
第四步创建运动规划组,是最重要的一个步骤,需要设置规划组的名字、运动学求解器、包含的关节等信息,未来的运动规划都是以组为单位,对组内的关节进行同步规划的。
第五步是预定义机器人位姿,并不是必须的,可以为常用的姿态设置名称,方便未来编程和上位机直接调用,根据需求设置。
第六步设置ROS Controllers,点击自动配置,可以自动根据前边的配置生成arm_controller,该控制器的主要功能是封装MoveIt的输出轨迹,以action的形式和外部通信。为了方便建立仿真系统,我们还可以Add一个控制器,设置为JointTrajectoryController,利用ROS Controller中的插补功能,和Gazebo进行连接。
第七步自动产生Gazebo仿真用的模型,可以将产生的结果直接复制到urdf模型中,其中自动生成了惯性矩阵和传动装置的配置,还添加了ros_control插件的调用。
第九步就接近尾声了,点击“Generate Package”即可将以上配置以文件的形式保存到新产生的功能包中。
按照以上步骤,就可以完成Setup Assistant的基本配置,将自动产生的功能包放到工作空间中,开始测试啦:
$ roslaunch c800_moveit_config demo.launch
在打开的Rviz界面中拖拽机械臂终端,MotionPlanning控制区点击Plan and Execute就可以看到运动效果啦。
1.在规划组的配置中,夹爪也是一个需要单独配置的规划组!
3.ROS Controllers的配置不要忘记夹爪哦!
4.新加入一个设置3D相机的配置,主要设置点云话题,未来MoveIt会自动订阅用于环境监测:
$ roslaunch marm_moveit_config demo.launch
想要把以上机械臂放到Gazebo中仿真,同样简单,只需要修改几个文件,就可以实现以下功能:
以上介绍不直观?没问题,欢迎学习古月君全新制作的ROS基础精讲系列课程之《MoveIt可视化配置及仿真指南》,带你10分钟搞定MoveIt可视化配置和仿真, 分分钟让机械臂跑起来。
转发这篇文章到QQ群或微信群,然后把截图发送到“古月居”公众号后台