美文网首页
MoveIt!的应用笔记

MoveIt!的应用笔记

作者: 飞多多 | 来源:发表于2020-06-20 22:58 被阅读0次

    最近需要使用MoveIt!.这里对Moveit!的使用做一些简单的记录.当然首先还是推荐大家去看官方文档

    moveit.png
    上图是moveit的整体框架.moveit的核心是move_group,它通过ros借口将各个子模块组合起来,并对外提供服务.
    moveit的安装过程就不多说了.
    moveit的入门示例,我们需要安装一个panda机械的配置包:
    sudo apt install ros-melodic-panda-moveit-config
    

    然后,我们通过

    roslaunch panda_moveit_config demo.launch
    

    来启动示教,启动后的显示界面.我们可以通过rqt_graph来查看运行的节点,可以发现一个move_group和很多模块都要交流,他就是moveit的核心,也验证了上面的说法.
    接下来我们对ginger机器人进行配置.ginger机器人如下图所示

    Screenshot from 2020-06-12 18-23-16.png

    首先按照moveit setup assistant来配置ginger机器人:
    启动moveit setup assistant前,应该先source urdf所在的ros工作目录.

    1. 自碰撞使用默认采样密度.
    2. 虚拟关节是我们机器人与世界坐标系的关系,这里选用fix,将ginger的底盘坐标系固定住.
    3. 规划组,我们主要配置了左手和右手,这两只手是我们的主要抓取手臂.
    4. 机器人姿态,这里为左手和右手分别配置了一个零位位置,方便归零.
    5. 末端执行器,选择手臂的最后一个坐标系.
    6. 被动关节无.
    7. ROS control无
    8. 仿真无.
    9. 3D 感知选用了深度图,话题选了/head/depth/image.这里需要说明的是,这里的深度图应该是32FC1的格式.然后设置了一些截断值和临界值.
    10. 填写作者信息.
    11. 最后生成配置文件,这样,配置包就生成好了.
      然后通过
    roslaunch ginger_config demo.launch
    

    来运行,上面第九条的深度图需要有话题输入,另外,深度图中的header字段下的frame_id需要有效。然后我们应该通过tf的static_transform_publisher将深度图的的坐标系添加到机器人的tf树中。然后,下面两幅图是效果图,一副是在viz中生成的octomap,另一幅是我们UE4的仿真现场,我们通过UE4来模拟了一个虚拟的深度相机。

    scene_rviz.png scene_sim.png

    在此基础上,我们可以通过move_group来规划手臂的运动。可以比如去拿桌面上的小瓶子时,规划的路径就会绕开桌子。走一个弧线的形状。具体的就不做演示了。因为这里的规划应用需要使用MoveIt的C++API,而其中有一些细节涉及到工作中的具体问题,不方便展开讨论。

    相关文章

      网友评论

          本文标题:MoveIt!的应用笔记

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