ubuntu16.04下ROS操作系统学习笔记(九)Moveit(上)

简介: ubuntu16.04下ROS操作系统学习笔记(九)Moveit(上)

Moveit的前身是PR2机器人的机械臂的代码包,之后被集成为一个软件包。它不仅可以实现单个机械臂的控制。而且可以实现两个机械臂的协调控制。而且可以RGB摄像头采集外部障碍物信息,完成自主避障这样的功能。由一系列移动操作的功能包组成,运动规划,操作控制,3D感知,运动学,控制与导航算法。同时提供友好的GUI界面。系统架构如下图所示:

在这里面有一个非常核心的节点,是move_group节点,类似于rosmaster在ros当中的地位。如上图所示,move_group处于中心的这样一个位置,其他的组件跟move_group有一个数据上的交互,它本身并不具备丰富的功能,主要是其他插件的集成,通过消息或者服务的形式来接收机器人发布的一些信息。左边是一系列的插件,能够帮助我们去完成程序编程的接口,还有一些可视化的接口。ROS参数服务器里面主要有机器人的模型参数。URDF:robot_description参数,获取机器人URDF模型的描述信息。SRDF:robot_description_semantic参数获取机器人模型的配置信息。config:机器人的其他配置信息,例如关节限位,运动学插件,运动规划插件等。另外一个很重要的部分就是机器人,通过摄像头或者其他的外部感知设备采取到外部的障碍物信息等,然后将其发布到move_group里面,能够实现自主避障这样的一个功能。机器人的状态信息也可以发布到move_group里面,通过action实现通讯,完成控制。里面含有大量的插件,我们也可以自己设计自己的插件,只要满足插件的形式就可以了。

我们看一下机器人运动规规划器的插件结构,假设我们已经知道了机器人的初始姿态,和目标姿态,和周围环境的模型参数,那我们就可以通过某种算法,找到一条路径,使得机器人能够从初始姿态到达目标姿态,且在路径中不跟周围物体或自己发生碰撞。这种方法就是机械臂的路径规划算法。我们也可以使用双目摄像头,或者单目摄像头来帮助我们实现对周围物体的感知,更好地规划算法。所以运动规划器就是来帮助我们实现运动规划的这样一个插件。

我们实现机器人的运动规划是有一系列的约束条件的,约束条件是通过配置文件来实现的,在规划请求适配器组里面有很多的插件,能够实现很多小功能。比如说一个运动规划请求输入进来,我们发现机器人的初始位姿并不是这样一个初始位姿,然后我们就可以通过适配器来修正初始位姿等这样一些信息。

如果我们需要机器人夹取桌子上的杯子的话,我们就需要把桌子的模型和杯子的模型去告诉我们的moveit。这个就是通过规划场景监听器来实现的,监听器可以监听下图的这些感知信息。

从上诉可知,moveit里面有很多插件,能够帮助我们实现相应的功能。Moveil使用步骤:

1.组装:创建机器人URDF模型

2.配置:使用Moveil!Setup Assistant工具生成配置文件

3.驱动:添加机器人控制器插件(controller)

4.控制:Moveit!控制机器人运动(算法仿真、物理仿真)。

那么我们如何来创建机器人的模型呢?可以在视频的源码包里面找到相关的源码,视频里面也有对模型做相关的解释。launch文件如下,主要是加载模型,发布节点信息,运行可视化界面/

功能包编译完成之后,我们使用以下命令来查看一下:

roslaunch marm_description view_arm.launch

我们已经创建了一个机械臂,接下来我们需要创建配置文件,这个配置文件的生成我们需要使用moveit里面的工具,Moveit Setup Assistant。可以帮助我们通过可视化的形式完成一系列的配置工作,这个工具可以通过以下命令启动。

 roscore
 rosrun moveit_setup_assistant moveit_setup_assistant

启动之后会弹出如下的界面:

主界面里面有两个选项,一个是创建一个新的包,一个是编译已有的包。

这里我们选择创建一个新的功能包,

接下来我们需要去找到我们的配置文件,选中我们的模型文件,然后点击右下角的加载模型按钮:

这样的话我们的第一步加载机器人模型就创建好了。

第二步我们需要去点击左边列表的第二个选项,主要是采样一系列的检测点,去检测机械臂的各各关节在运动的过程当中是否会发生碰撞,在这一步我们只需要去点击Generate Collision Matrix按钮就能够自动地去完成采样和计算,通过这样一系列的数据,我们在后面去做运动规划的时候,就可以提高运算的效率。

第三个步骤是虚拟关节,这个虚拟关节我们这里用不到,比如说我们需要将机械臂固定到一个底盘上面。这里的话我们直接跳过这里,到第四个步骤,运动规划组。

在这里我们可以去添加几个规划组,我们的控制都是通过规划组来控制的。比如说我们的机器人,我们可以将其分开成两个部分,一个是六轴机械臂的部分,另外还有一个就是夹爪的部分。那么我们可以将这两个部分分开,去配置相关的规划组。我们可以通过点击右下角的按钮来对其进行添加。第参数是规划组的名称、运动学求解器是什么、运动学求解器的基本参数。

接下来点击Add Kin. Chain来做配置,

按照上图将其配置完成,之后点击save

我们还要配置夹爪,点击右下角的Add Group,然后填写名称,由于夹爪是直线运动,并不需要运动学的求解器,我们也不用去添加串行的链条,我们点击Add Joints来添加手指。

相关实践学习
使用ROS创建VPC和VSwitch
本场景主要介绍如何利用阿里云资源编排服务,定义资源编排模板,实现自动化创建阿里云专有网络和交换机。
ROS入门实践
本课程将基于基础设施即代码 IaC 的理念,介绍阿里云自动化编排服务ROS的概念、功能和使用方式,并通过实际应用场景介绍如何借助ROS实现云资源的自动化部署,使得云上资源部署和运维工作更为高效。
相关文章
|
并行计算 Ubuntu Linux
Ubuntu学习笔记(五):18.04安装多版本CUDA
这篇博客文章介绍了在Ubuntu 18.04系统上如何安装和切换不同版本的CUDA,以及如何安装不同版本的cuDNN。
684 2
|
4月前
|
Ubuntu 开发工具
Ubuntu 22.04 aarch64版本操作系统下编译ZLMediaKit教程
通过上述步骤,你可以在Ubuntu 22.04 aarch64版本上成功编译ZLMediaKit,这是一个相对简单而直接的过程,但可能会遇到一些需要根据具体系统环境和要求调整的地方。
650 0
|
7月前
|
Ubuntu 机器人 Shell
在Jetson TX2的Ubuntu18.04系统中安装ROS的教程
所有这些步骤并不复杂,但确实需要仔细一点。如果遇到问题,不要灰心,问题是解决问题的开始。保持耐心,细心阅读错误信息,通常情况下,问题的答案就藏在其中。祝ROS旅程顺利!
236 18
|
Ubuntu 网络安全 图形学
Ubuntu学习笔记(二):ubuntu20.04解决右上角网络图标激活失败或者消失,无法连接有线问题。
在Ubuntu 20.04系统中解决网络图标消失和无法连接有线网络问题的方法,其中第三种方法通过检查并确保Windows防火墙中相关服务开启后成功恢复了网络连接。
4614 0
Ubuntu学习笔记(二):ubuntu20.04解决右上角网络图标激活失败或者消失,无法连接有线问题。
|
Ubuntu Shell Python
Ubuntu学习笔记(一):pycharm设置快捷启动图标详解
这篇博客详细讲解了如何在Ubuntu 20.04系统中为PyCharm设置快捷启动图标,包括创建.desktop文件、编辑文件内容以及添加到收藏夹的步骤。
1063 0
Ubuntu学习笔记(一):pycharm设置快捷启动图标详解
|
Ubuntu 网络安全 开发工具
Ubuntu19.04的安装过程详解以及操作系统初始化配置
本文详细介绍了Ubuntu 19.04操作系统的安装过程、初始化配置、网络设置、软件源配置、SSH远程登录以及终端显示设置。
407 2
Ubuntu19.04的安装过程详解以及操作系统初始化配置
|
并行计算 Ubuntu Linux
Ubuntu学习笔记(三):Linux下操作指令大全
Ubuntu学习笔记,介绍了Linux操作系统中常用的命令和操作,如文件管理、系统信息查看、软件安装等。
230 3
|
Ubuntu Linux Python
Ubuntu学习笔记(六):ubuntu切换Anaconda和系统自带Python
本文介绍了在Ubuntu系统中切换Anaconda和系统自带Python的方法。方法1涉及编辑~/.bashrc和/etc/profile文件,更新Anaconda的路径。方法2提供了详细的步骤指导,帮助用户在Anaconda和系统自带Python之间进行切换。
566 1
|
Ubuntu
Ubuntu学习笔记(七):ubuntu下jupyter指定虚拟环境
本文介绍了如何在Ubuntu系统下使用Anaconda和Jupyter Notebook指定并切换不同的虚拟环境。
382 0
Ubuntu学习笔记(七):ubuntu下jupyter指定虚拟环境
|
传感器 NoSQL 算法
ROS Moveit 配置全网最详细教程
本文是关于ROS Moveit配置的全网最详细教程,提供了一键安装脚本,以及如何使用Moveit进行机器人运动规划的详细步骤和说明。文中还深入解析了Moveit的配置包文件、Moveit的源码,以及如何使用不同的运动规划算法(如CHOMP、LERP、STOMP)进行路径规划。
2755 1
ROS Moveit 配置全网最详细教程