一、MoveIt!简介
MoveIt!是一个易于使用的集成化开发平台,它由一系列功能包组成:
- 运动规划
- 操作感知
- 3D感知
- 运动学
- 控制与导航算法
- ......
提供了友好的GUI,插件,可应用于工业、商业、研发等各种领域,目前在ROS社区中使用度排名前三
传统机械臂编程
所有焊接点都要靠人来视角,没有自动感知,自主规划的智能功能
image.png
图中的绿色点都要靠人手来示教,拖动示教
image.png
ROS MoveIt!运动规划
未来是用3D或激光相机扫描工作对象,自主规划轨迹,做柔性化生产,
image.pngmu'jin公司的控制器,在机器人智能化做的非常好,智能化控制器,通过更少的示教完成工作
image.png image.png
自动分拣,通过视觉传感,识别无序工件,避免和箱子外界物体发生碰撞
image.png
image.png image.png
提供上位机做任务仿真
image.png
未来的机器人会完成从动作级编程到任务级编程的转变
MoveIt!三大核心功能
image.png- 运动学
KDL、Trac-IK、IKFast - 路径规划
OMPL、CHOMP、SBPL - 碰撞检测
FCL、PCD
静态的物体可以建模,动态的用视觉传感器
主要是做运动规划
使用MoveIt!的流程,作为用户,我们需要通过一套接口与MoveIt!做交互,命令行、GUI、Action,
Move Group是最核心的节点,负责接收用户输入,继承外部传感器,最终调用算法计算后发给机器人,输出Trajectory
image.png
下面梳理一下MoveIt和外部的交互:
用户接口
- C++
使用move_grouo_interface包提供的API - Python
使用moveit_commander包提供的API - GUI
使用MoveIt!的Rviz插件
ROS参数服务器
- URDF
robot_description参数,获取机器人URDF模型的描述信息 - SRDF
robot_description_semantic参数,获取机器人模型的配置信息 - config
机器人的其他配置信息,例如关节限位、运动学插件、运动规划插件等
机器人
Topic和Action通信
Moveit框架上图中的Action会发出机器人的最终轨迹,而机器人如何实现这段轨迹,MoveIt并不关心。框架要在编程中逐步熟悉。
如何用,四个步骤
- 组装
创建机器人URDF模型 - 配置
使用MoveIt! Setup Assistant工具生成配置文件 - 驱动
添加机器人控制器插件 - 控制
MoveIt!控制机器人运动(算法仿真、物理仿真),如pick and place,集成视觉
二、MoveIt!可视化配置
首先启动roscore,然后运行:
i5@i5-ThinkPad-T460p:~$ rosrun moveit_setup_assistant moveit_setup_assistant
打开可视化配置界面,以创建新功能包为例介绍:
Moveit! Setup Assistant
选择Creat New Package,Browse,
图片.png
图片.png
选择机器人urdf或xacro模型文件,点击Load Files
图片.png
选择左边的Self-Collisions,选择Generate Collision Matrix,默认采样10000个点,
图片.png
配置虚拟关节,如果机械臂配有底盘,用于模拟world和机械臂base_link坐标系之间的变化,这里不需要做配置
进入Planning Group,选择Add Group(添加规划组),配置Group Name(后面编程时可以使用),运动学求解器,OMPL运动规划器,
图片.png
选择Add Kin. Chain,添加运动链,选择base_link,底座变为红色高亮,再Choose Selected,选择tool0作为Tip Link,最后save
图片.png
如果有夹爪,则还需要添加夹抓Group,此处不需要添加。
进入Robot Poses,用于预定义机器人点位,方便后面编程使用,比如添加home点,各个关节位置为0:
图片.png
进入End Effectors,配置机器人夹具,输入夹具名称,对应的规划组,以及夹具所在的link,此处不需要配置。
图片.png进入passive Joints,配置不需要纳入规划的关节,这里也不用配置,
图片.png
进入ROS Control,这个功能是2018年底更新的,目前不是很稳定,不做配置,同样Simulation也不做配置。
进入3D Perception,如果有传感器可以添加进来,配置发布的话题后,moveit会自动帮我们订阅该话题,这样可以把外界场景添加进来,用于运动规划时考虑避障,这一步先不配置,后面做视觉集成时再添加。
图片.png
进入Author information,添加自己的名字和邮箱,
图片.png
最后进入Configuration Files,选择功能包生成路径:.../src
图片.png 图片.pngGenerate Package,完成整个配置流程
图片.png
编译功能包后,运行测试程序,demo.launch
i5@i5-ThinkPad-T460p:~/ws_moveit$ roslaunch probot_anno_moveit_config demo.launch
图片.png
rviz中提供了插件用于和用户交互,通过设置起始位置测试路径规划,更多的功能需要通过编程实现。
网友评论