ROS中有针对机器人进行移动操作的一套工具——MoveIt!。在主页http://moveit.ros.org 上
包含使用MoveIt!的文档、教程、安装说明以及多种机械臂(或机器人)的示例演示,如一些
移动操作任务,包括抓握、拾取和放置,或简单的逆向运动学的运动规划。
这个库包含一个快速的逆运动学解算器(作为运动规划单元的一部分)、先进的操作算
法、三维感知抓握(通常以点云的形式)、运动学、控制和导航等功能。除了后台功能,它还
提供了一个易于使用的图形用户界面(GUI)通过MoveIt!和rviz插件配置新的机械臂,使用户
能以直观的方式进行运动规划任务的开发。
MoveIt!体系结构
MoveIt!的体系结构如图1所示,内容摘自官方文档的概念部分(http://moveit.ros.org/
documentation/concepts/ )。在这里,我们简要介绍主要概念。若想安装MoveIt!,只需要运行这个命令:
sudo apt-get install ros-<distro>-moveit
其中, 是您正在使用的 ROS 版本的名称。例如,如果您正在使用 ROS Kinetic,则应将 替换为“kinetic”。
ROS 版本 查看
rosversion -d
sudo apt-get install ros-noetic-moveit-full
另外,也可以通过在它相应的工作空间运行下面的命令来安装本章附带代码的所有依赖
rosdep install --from-paths src -iy
如果上面的找不到包可以用下面的这个方法
复制以下指令到命令行,一键进行配置安装
wget -O $HOME/moveit1_install.sh https://raw.githubusercontent.com/auromix/ros-install-one-click/main/moveit1_install.sh && sudo chmod +x $HOME/moveit1_install.sh && sudo bash $HOME/moveit1_install.sh && rm $HOME/moveit1_install.sh
等待下载包并安装,安装好后提示是否下载tutorial code ,根据个人需要是否决定下载
我选 输入y 继续
发现这里有个问题,
所以,只要执行下面这条指令就可以顺利安装ROS Noetic版本的rosdep了
然后,使用以下两条指令,初始化及更新一下rosdep就可以正常使用了
sudo rosdep init
rosdep update
这个得看你网络情况了,不行就多试几次,或者你连开外网vpn
MoveIt!的体系结构框图
体系结构的中心是move_group单元。其主要思想是,首先需要定义由关节和其他元件构成
的群组(group),然后使用运动规划算法执行移动操作。这类算法考虑与物体交互的场景以及
该群组关节的特性。
群组使用标准的ROS工具和定义语言进行定义,如YAML、URDF和SDF等。简而言之,我
们必须对关节进行定义,它们是一个群组的部分并包含关节约束。同样,可定义末端执行器的
工具,如一个夹持器和感知传感器。机器人必须开放JointTrajectoryAction控制器
,从而使运动
规划的输出可以在机器人的硬件(或仿真器)规划执行。为了监控执行情况,需要通过机器人状态发布者发布/joint_states
。所有内容都由ROS控制并由特定传感器驱动发布。
需要注意的是MoveIt!提供了一个图形用户界面向导去定义给定的机器人关节群组,可以通过下面的命令直接调用:
roslaunch moveit setup assistant setup assistant.launch
当move_group配置正确后,就可以和它连接通信。MoveIt!提供了C++和Python的应用程
序接口(API)以及一个无缝集成的rviz插件来实现此功能,使我们可以向机器人发送运动目
标,规划任务并发送给机器人执行等,如下图所示: