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/
相关文章
|
28天前
|
自动驾驶 安全 机器人
ROS2:从初识到深入,探索机器人操作系统的进化之路
前言 最近开始接触到基于DDS的这个系统,是在稚晖君的机器人项目中了解和认识到。于是便开始自己买书学习起来,感觉挺有意思的,但是只是单纯的看书籍,总会显得枯燥无味,于是自己又开始在网上找了一些视频教程结合书籍一起来看,便让我对ROS系统有了更深的认识和理解。 ROS的发展历程 ROS诞生于2007年的斯坦福大学,这是早期PR2机器人的原型,这个项目很快被一家商业公司Willow Garage看中,类似现在的风险投资一样,他们投了一大笔钱给这群年轻人,PR2机器人在资本的助推下成功诞生。 2010年,随着PR2机器人的发布,其中的软件正式确定了名称,就叫做机器人操作系统,Robot Op
70 14
|
1月前
|
自动驾驶 安全 机器人
ROS2:从初识到深入,探索机器人操作系统的进化之路
【11月更文挑战第4天】ROS2的学习过程和应用,介绍DDS系统的框架和知识。
|
7月前
|
传感器 人工智能 算法
ROS机器人操作系统
ROS机器人操作系统
184 1
|
4月前
|
Ubuntu Shell C++
在Ubuntu18.04上安装ros2的环境,ros2的常用命令:播放包、录制包等
在Ubuntu18.04上安装ros2的环境,ros2的常用命令:播放包、录制包等
225 1
|
4月前
|
传感器 NoSQL 算法
ROS Moveit 配置全网最详细教程
本文是关于ROS Moveit配置的全网最详细教程,提供了一键安装脚本,以及如何使用Moveit进行机器人运动规划的详细步骤和说明。文中还深入解析了Moveit的配置包文件、Moveit的源码,以及如何使用不同的运动规划算法(如CHOMP、LERP、STOMP)进行路径规划。
414 0
ROS Moveit 配置全网最详细教程
|
4月前
|
Ubuntu Apache
Ubuntu20.04下一键安装Moveit
本文提供了一个一键安装Moveit的脚本工具,旨在帮助中国地区的用户在Ubuntu 20.04系统上安装Moveit并配置相关环境。脚本包括安装必要包、创建catkin工作空间、克隆Moveit源代码和示例代码、使用rosdep安装依赖以及构建工作空间,并提供了详细的使用说明和源码。
201 0
Ubuntu20.04下一键安装Moveit
|
4月前
|
Ubuntu Apache
Ubuntu20.04下一键安装ROS1 Noetic
本文提供了一个简化在Ubuntu 20.04系统上安装ROS1 Noetic过程的一键安装脚本工具,该脚本通过优化配置和使用清华大学镜像源,加速了国内用户的下载速度,并自动完成环境设置和依赖安装,同时提供了详细的使用说明和源码。
393 0
Ubuntu20.04下一键安装ROS1 Noetic
|
4月前
|
Ubuntu 机器人 虚拟化
Ubuntu22.04配置ROS2 Humble
这篇文章是关于如何在Ubuntu 22.04系统上配置ROS2 Humble的详细教程,包括虚拟机安装、环境配置、网络设置、软件源更换、ROS1和ROS2的安装步骤。
452 1
|
4月前
|
Ubuntu 机器人 网络安全
ubuntu22.04 SSH和ROS2控制下位机
本文介绍了如何在Ubuntu 22.04系统中通过SSH远程控制机器人服务器,包括安装SSH服务、配置防火墙规则、修改`/etc/hosts`文件、使用密钥认证等步骤,并提供了使用ROS2控制下位机的方法和一些常用指令。
101 0
|
5月前
|
Ubuntu 机器人 Shell
ubuntu20.04创建ros环境、创建rospackage
至此,我们已经详细讲解了在Ubuntu 20.04上创建ROS环境及ROS包的步骤。这为进一步的机器人软件开发奠定了坚实的基础。
239 1

热门文章

最新文章