ROS探索总结(六十三)—— 古月私房课 | ROS机械臂开发中的主角MoveIt!

3496
6
2019年4月1日 11时27分

~欢迎关注~

微信公众号:古月居

新浪微博:古月春旭

知乎专栏:古月居

原文链接:古月私房课 | ROS机械臂开发中的主角MoveIt!

 

大家好,这里是《ROS机械臂开发:从入门到实战》的第四讲——ROS机械臂开发中的主角MoveIt!,我是主讲人胡春旭。

幻灯片1

本讲我们将从以下两个部分进行讲解。

幻灯片2

首先我们来认识下ROS机械臂开发中的绝对主角——MoveIt!

幻灯片3

ROS最早因PR2机器人而生,MoveIt!也是同样的出身,由PR2机器人中机械臂部分的软件集成而来。

幻灯片4

MoveIt!目前已经支持众多传统工业机器人、协作机器人、人形机器人。

幻灯片5

应用如此广泛的MoveIt!并不是一个简单的功能包,而是由一系列功能包组成的集成化开发平台。

幻灯片6

传统工业机器人应用中,我们需要通过示教器确定机器人运动中的所有路径点,拖动施教并不能颠覆这种模式,这也是MoveIt!要解决的核心问题:已知当前状态和目标状态,如何自动完成运动规划。

幻灯片7

针对运动规划这一核心问题,MoveIt!主要提供三大核心功能:运动学、路径规划、碰撞检测。

幻灯片8

开发者可以通过程序接口或者上位机完成指令的发布,Moveit!中的核心节点move_group完成各功能算法的集成,并输出规划完成的运动轨迹。

幻灯片9

MoveIt!的开发分成四个步骤,首先我们需要按照上讲的内容创建机器人模型,然后通过工具完成模型的配置,接下来添加关节上的控制器插件,最后才是顶层运动控制的实现。

幻灯片10

URDF模型的创建上讲已经详细讲解过了,本讲第二部分主要介绍如何通过MoveIt!的可视化工具完成模型的配置。

幻灯片11

Setup Assistant可视化工具可以通过rosun命令启动,之后按照界面左边列表的步骤依次完成配置,部分步骤可以跳过。

幻灯片12

第一步需要将配置的URDF模型导入工具,然后在第二步中生成自碰撞检测矩阵。

幻灯片13

第三步的规划组是最重要的配置过程,需要将机械臂的运行学求解链设置清楚,不然机械臂很可能动不起来。

幻灯片14

第四步可以预定义一些位姿,方便后续编程调用。

幻灯片15

最后两步设置作者信息,就可以导出配置功能包了,放置在工作空间当中,并完成编译。

幻灯片16

为验证配置是否正确,我们可以运行自动生成的demo演示,使用如下命令启动后,就可以在界面中拖动设置机器人位姿并控制运动啦。

幻灯片17

点击“Plan”进行规划,点击“Execute”机械臂开始按照规划轨迹运动。

幻灯片18

以上就是本讲的内容概要,详细配置过程和操作视频请见课程视频。

幻灯片19

更多精彩,欢迎大家关注“古月居”。

幻灯片22

 

更多内容欢迎关注:

微信公众号:古月居 (guyue_home)

新浪微博:古月春旭

知乎专栏:古月居

发表评论

后才能评论

评论列表(6条)

  • 夜了盖儿 2020年1月18日 下午1:09

    我在学习第十章的时候拖动规划。点击plan后机器人无法运动。报错Unable to connect to move_group action server ‘move_group’ within allotted time (30s)。不知道什么问题,

  • ok 2019年9月10日 下午3:49

    请问怎么输出发布每个关节的转动信息啊?

    • 古月 回复 ok 2019年9月12日 下午9:13

      发布joint_state

    • dai 回复 古月 2019年12月11日 下午9:26

      老师,我做运动规划时只有位置信息,为什么看不到速度信息

  • wangdddddd 2019年6月24日 下午3:36

    您好 我之前按照您书上的步骤安装arbotix 原本使用的好好的 今天运行launch文件却报错,机器人模型在rviz里显示不出来,state显示而error,我重新下载arbotix并编译,仍然不行,不知道是哪里出错了。终端报错内容如下:
    Traceback (most recent call last):
    File “/home/wangdan/catkin_ws2/src/arbotix_ros/arbotix_python/bin/arbotix_driver”, line 36, in
    from arbotix_python.arbotix import ArbotiX, ArbotiXException
    ImportError: No module named arbotix
    [arbotix-2] process has died [pid 5020, exit code 1, cmd /home/wangdan/catkin_ws2/src/arbotix_ros/arbotix_python/bin/arbotix_driver __name:=arbotix __log:=/home/wangdan/.ros/log/5f2b6c2c-9651-11e9-8c7e-3ca067184633/arbotix-2.log].
    log file: /home/wangdan/.ros/log/5f2b6c2c-9651-11e9-8c7e-3ca067184633/arbotix-2*.log

    • 古月 回复 wangdddddd 2019年6月28日 上午10:19

      应该还是没安装好或者路径没配置对