1.Moveit2介绍

MoveIt2是基于ROS2的机器人操作平台,其集成了运动规划,操作,3D感知,运动学,控制和导航方面的最新技术与一体。

架构介绍

接着我们来简单看下Moveit2的框架如图2-1所示

简单的可以将图2-1拆分为以下几个部分:

其中规划流水线,通过调用规划接口产生轨迹,之后进行碰撞检测,若不通过则继续规划,直到产生一条无碰撞的轨迹。

规划接口

Moveit2提供三个默认的规划流水线的实现。

  • 基于开源运动规划库的规划器OMPL
  • 基于搜索的规划器SBPL
  • 基于梯度轨迹优化的协变哈密顿量优化规划器CHOMP

碰撞检测

Moveit2提供了两种实现

  • 基于FCL库实现的碰撞检测。
  • 源码中没看到PCD,只看到了Bullet碰撞检测,这个图值得怀疑,就无展开了,怕大家误会。

2. Moveit2安装

我们可以直接使用apt安装官方编译好的二进制包,也可以把源代码下载下来自己编译出二进制包,但为了学习方便,也为了第一时间体验新发布的特性(官方二进制比源码总慢半拍),我这里优先带你用源码安装。

源码安装Moveit2

准备系统环境

小鱼是基于Ubuntu22.04,Humble版本的ROS2进行安装的,请你和小鱼保持相同的环境,这样不容易出错。

当然你如果你不是22.04的Ubuntu,也不用重新安装,用小鱼一键安装里的安装多版本ROS,可以直接帮你创建一个Ubuntu22.04且包含Humble版本ROS2的环境,非常快捷。

一键安装地址:https://fishros.org.cn/forum/topic/20

下载MOVEIT2源码

下载源码我们用熟悉的git工具就可以完成,将Moveit2代码下载到指定的工作空间的文件夹,可以用下面的指令

  
git clone https://github.com/ros-planning/moveit2.git moveit2_ws/src/moveit2

国内用户实惨,下载过程中你可能会遇到网络问题,不过不要担心,我们找一个代理来用,在原来的地址上加个头

  
git clone https://ghproxy.com/https://github.com/ros-planning/moveit2.git moveit2_ws/src/moveit2

下载完成后你应该可以在moveit2_ws/src/moveit2文件夹下看到很多个功能包,代表下载成功。

安装依赖

ROS2里有一个用于扫描代码的依赖并搜索安装的工具叫rosdep,我们接下来就要用它来扫描源码中所有packages.xml文件里写的依赖。

又是一个不幸的消息,rosdep检测到依赖的名字后,又到github上搜索依赖项的具体信息,你知道的,github总是有打不开的毛病。

所以后来小鱼做了个rosdec,国内用户可以用它代替rosdep使用,我们这里先用一键安装rosdepc。

运行一键安装,选择3即可。

  
---众多工具,等君来用---
[1]:一键安装:ROS(支持ROS和ROS2,树莓派Jetson)
[2]:一键安装:github桌面版(小鱼常用的github客户端)
[3]:一键配置:rosdep(小鱼的rosdepc,又快又好用)

安装完成后你还需要更新一下rosdepc的数据,一句指令即可rosdepc update。

接着我们就正式开始安装依赖

  
cd moveit2_ws/
rosdepc install --from-path src --ignore-src -r -y

简单介绍下rosdec这句指令,–from-path src src是文件夹的名字,意思说是扫描src文件夹下的源码,–ignore-src不安装已经有源码的依赖,-r表示遇到错误继续装,-y是遇到问题自动回答是。

  
# 过程中可以看到rosdepc调用了apt-get进行依赖的安装
executing command [sudo -H apt-get install -y ros-humble-joint-state-broadcaster]
# 最后可以看到这句表示成功
#All required rosdeps installed successfully

编译源码

编译和ROS2一样,用的是colcon工具,直接上colcon build即可。

  
cd moveit2_ws/
colcon build --cmake-args -DCMAKE_BUILD_TYPE=Release

这里我们给build传递了一个CMake参数–cmake-args -DCMAKE_BUILD_TYPE=Release,告诉CMake我们要编译一个Release版本(Release版本会删掉多余的调试信息,运行起来会更快)。

最后你应该看到,代表编译成功。

  
Summary: 38 packages finished [13min 22s]

当然你也有可能会编译失败,目前一个已知原因是你之前用二进制安装过moveit2,导致的依赖错误,我们这里手动卸载下即可

  
sudo apt autoremove ros-humble-moveit*

二进制安装

  
sudo apt install ros-humble-moveit

目前还是推荐你使用编译安装,有些新特性并没有发布,二进制安装版本的Moveit2无法使用。

动手学moveit2|介绍和安装相关推荐

  1. 【慕伏白教程】《动手学深度学习》学习环境安装流程

    [慕伏白教程]<动手学深度学习>学习环境安装流程 一.Conda环境的安装 1. 安装Anaconda 二.安装CUDA 1. 下载相应CUDA版本 三.配置虚拟环境 1. 卸载虚拟环境 ...

  2. 《动手学ROS2》10.4 Cartographer介绍与安装

    <动手学ROS2>10.4 Cartographer介绍与安装 本系列教程作者:小鱼 公众号:鱼香ROS QQ交流群:139707339 教学视频地址:小鱼的B站 完整文档地址:鱼香ROS ...

  3. 《动手学ROS2》10.7 Nav2导航框架介绍与安装

    <动手学ROS2>10.7 Nav2导航框架介绍与安装 本系列教程作者:小鱼 公众号:鱼香ROS QQ交流群:139707339 教学视频地址:小鱼的B站 完整文档地址:鱼香ROS官网 版 ...

  4. 动手学深度学习——深度学习介绍及软件安装

    动手学深度学习是李沐教授在哔哩哔哩上发布的专栏视频,专栏链接如下: https://space.bilibili.com/1567748478/channel/seriesdetail?sid=358 ...

  5. 《动手学深度学习v2》之细致解析(1)内容及介绍及安装

    前言 作者来自北京某不知名985,现在是本科在读学生,专业是数据科学与大数据技术,班上同学都太卷了,没办法,需要学习深度学习,经大佬介绍,在B站上找到了一个很不错的资源,李沐老师的<动手学深度学 ...

  6. (d2l-ai/d2l-zh)《动手学深度学习》pytorch 笔记(2)前言(介绍各种机器学习问题)以及数据操作预备知识Ⅰ

    开源项目地址:d2l-ai/d2l-zh 教材官网:https://zh.d2l.ai/ 书介绍:https://zh-v2.d2l.ai/ 笔记基于2021年7月26日发布的版本,书及代码下载地址在 ...

  7. (d2l-ai/d2l-zh)《动手学深度学习》pytorch 笔记(3)前言(介绍各种机器学习问题)以及数据操作预备知识Ⅲ(概率)

    开源项目地址:d2l-ai/d2l-zh 教材官网:https://zh.d2l.ai/ 书介绍:https://zh-v2.d2l.ai/ 笔记基于2021年7月26日发布的版本,书及代码下载地址在 ...

  8. 《动手学ROS2》第十章章节介绍 机器人导航NAV2

    本系列教程作者:小鱼 公众号:鱼香ROS QQ交流群:139707339 教学视频地址:小鱼的B站 完整文档地址:鱼香ROS官网 版权声明:如非允许禁止转载与商业用途. 第十章 机器人导航NAV2 千 ...

  9. new 动手学深度学习V2环境安装

    动手学深度学习V2 环境安装 虚拟环境 d2l-zh安装 conda create -n d2l-zh -y python=3.8 pip pip install jupyter d2l torch ...

最新文章

  1. linux grep命令总结
  2. docker查询mysql 有哪些版本的镜像_CentOS安装Docker环境和mysql镜像的记录
  3. 意外分配– JIT编译抖动
  4. 备份Linux系统的数据到坚果云
  5. python中easygui有几种_一、Python 模块EasyGui详细介绍
  6. c++ opencv添加logo_Python+Opencv+Tkinter指纹识别与人脸识别的门禁兼考勤(二)
  7. mysql alter atafter_MySQL 常用操作
  8. 探秘Win7计算器,这货不只是计算器
  9. 计算机网络使用双绞线连接时,计算机网络技术期末试卷A
  10. console.log(12.toString())为啥会报错呢?
  11. LINUX安装之后,图标显示问题
  12. BabeLua--Lua调试器
  13. 怎么样修改vlan从trunk到access模式,提示renew the default configurations
  14. 【图像去噪】基于自适应布谷鸟算法优化维纳滤波器实现多光谱图像去噪附matlab代码
  15. HBuilder打包App教程
  16. 杜教筛如何推式子/堆柿子
  17. 主播必备超萌代打猫咪,超人气全键盘版资源下载~
  18. 一个北大学子毕业后的感悟[转]
  19. mac网页java无法加载,chrome浏览器mac版无法加载怎么办_chrome浏览器mac版打不开网页解决方法-win7之家...
  20. [Unityamp;amp;Steam]Steam各种用户数据查询

热门文章

  1. 通过 kubeadm 安装 k8s 1.14.1版本(master 单节点版)
  2. F28M35调用IQmath库出错
  3. Abaqus GUI程序开发之常用的Abaqus内核指令(一)
  4. 利用微软接口制作的文字转语音神器Read Aloud
  5. 【c#编程技术总结】IO文件流的应用
  6. 基于jsp(java)网络教学平台系统的设计和开发(含源文件)
  7. Lytro光场相机的原理,科普,简单地进行了解
  8. Ubuntu手机操作系统稳定版 20131018
  9. ProFOLD:普通笔记本3小时跑完的蛋白质结构「从头预测」,努力赶超AlphaFold2
  10. PPP协议使用同步传输技术传送比特串0110111111111100。试问经过零比特填充后变成怎样的比特串?若接收端收到的PPP帧的数据部分是0001110111110111110110,问删除发送端