ROS机械臂开发:MoveIt!可视化配置

一、MoveIt!简介

MoveIt!是一个易于使用的集成化开发平台,它由一系列功能包组成:

  • 运动规划
  • 操作感知
  • 3D感知
  • 运动学
  • 控制与导航算法
  • ......
    提供了友好的GUI,插件,可应用于工业、商业、研发等各种领域,目前在ROS社区中使用度排名前三
传统机械臂编程

所有焊接点都要靠人来视角,没有自动感知,自主规划的智能功能


image.png

图中的绿色点都要靠人手来示教,拖动示教


image.png
ROS MoveIt!运动规划

未来是用3D或激光相机扫描工作对象,自主规划轨迹,做柔性化生产,

image.png

mu'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
图片.png

Generate Package,完成整个配置流程


图片.png

编译功能包后,运行测试程序,demo.launch

i5@i5-ThinkPad-T460p:~/ws_moveit$ roslaunch probot_anno_moveit_config demo.launch 
图片.png

rviz中提供了插件用于和用户交互,通过设置起始位置测试路径规划,更多的功能需要通过编程实现。

你可能感兴趣的:(ROS机械臂开发:MoveIt!可视化配置)