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使用教程
资源编排(Resource Orchestration)是一种简单易用的云计算资源管理和自动化运维服务。用户通过模板描述多个云计算资源的依赖关系、配置等,并自动完成所有资源的创建和配置,以达到自动化部署、运维等目的。编排模板同时也是一种标准化的资源和应用交付方式,并且可以随时编辑修改,使基础设施即代码(Infrastructure as Code)成为可能。 产品详情:https://www.aliyun.com/product/ros/
相关文章
|
1月前
|
并行计算 Ubuntu Linux
Ubuntu学习笔记(五):18.04安装多版本CUDA
这篇博客文章介绍了在Ubuntu 18.04系统上如何安装和切换不同版本的CUDA,以及如何安装不同版本的cuDNN。
201 2
|
6月前
|
存储 Ubuntu 应用服务中间件
【Nginx】centos和Ubuntu操作系统下载Nginx配置文件并启动Nginx服务详解
【Nginx】centos和Ubuntu操作系统下载Nginx配置文件并启动Nginx服务详解
95 1
|
1月前
|
Ubuntu 网络安全 图形学
Ubuntu学习笔记(二):ubuntu20.04解决右上角网络图标激活失败或者消失,无法连接有线问题。
在Ubuntu 20.04系统中解决网络图标消失和无法连接有线网络问题的方法,其中第三种方法通过检查并确保Windows防火墙中相关服务开启后成功恢复了网络连接。
477 0
Ubuntu学习笔记(二):ubuntu20.04解决右上角网络图标激活失败或者消失,无法连接有线问题。
|
1月前
|
Ubuntu Shell Python
Ubuntu学习笔记(一):pycharm设置快捷启动图标详解
这篇博客详细讲解了如何在Ubuntu 20.04系统中为PyCharm设置快捷启动图标,包括创建.desktop文件、编辑文件内容以及添加到收藏夹的步骤。
324 0
Ubuntu学习笔记(一):pycharm设置快捷启动图标详解
|
14天前
|
自动驾驶 安全 机器人
ROS2:从初识到深入,探索机器人操作系统的进化之路
【11月更文挑战第4天】ROS2的学习过程和应用,介绍DDS系统的框架和知识。
|
1月前
|
Ubuntu Linux Python
Ubuntu学习笔记(六):ubuntu切换Anaconda和系统自带Python
本文介绍了在Ubuntu系统中切换Anaconda和系统自带Python的方法。方法1涉及编辑~/.bashrc和/etc/profile文件,更新Anaconda的路径。方法2提供了详细的步骤指导,帮助用户在Anaconda和系统自带Python之间进行切换。
82 1
|
1月前
|
并行计算 Ubuntu Linux
Ubuntu学习笔记(三):Linux下操作指令大全
Ubuntu学习笔记,介绍了Linux操作系统中常用的命令和操作,如文件管理、系统信息查看、软件安装等。
46 3
|
1月前
|
Ubuntu
Ubuntu学习笔记(七):ubuntu下jupyter指定虚拟环境
本文介绍了如何在Ubuntu系统下使用Anaconda和Jupyter Notebook指定并切换不同的虚拟环境。
83 0
Ubuntu学习笔记(七):ubuntu下jupyter指定虚拟环境
|
6月前
|
传感器 人工智能 算法
ROS机器人操作系统
ROS机器人操作系统
175 1
|
2月前
|
Ubuntu 网络安全 开发工具
Ubuntu19.04的安装过程详解以及操作系统初始化配置
本文详细介绍了Ubuntu 19.04操作系统的安装过程、初始化配置、网络设置、软件源配置、SSH远程登录以及终端显示设置。
88 1
Ubuntu19.04的安装过程详解以及操作系统初始化配置

热门文章

最新文章