美文网首页
ROS机械臂开发:MoveIt!可视化配置

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

作者: play_robot | 来源:发表于2019-03-28 20:29 被阅读0次

    一、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!可视化配置

          本文链接:https://www.haomeiwen.com/subject/zkmyvqtx.html