Ubuntu20.04 源码安装 OMPL 与 Moveit


需求:

因为在命令行终端以binary安装的Moveit,规划算法都是封装好的,无法自定义算法,所以需要ompl源码安装,之后自定义ompl算法,再将ompl配置进Moveit,故moveit也需要源码安装。

之前已有 Ubuntu18.04 melodic 版本教程,现使用Ubuntu系统为 Ubuntu20.04 noetic,故针对此开篇新文档。

一、源码安装OMPL

1.1  先检查是否已安装二进制 ompl


//进入到如下目录下
cd /opt/ros/noetic/

// 查找
find ./ -name "libompl*"
find ./ -name "ompl*"

查询结果类似如下:

在这里插入图片描述
————————————————
 

1.2 若已经提前安装二进制,需先行卸载


// 执行卸载指令
sudo apt-get purge ros-noetic-ompl

在这里插入图片描述
————————————————
 

1.3 OMPL官网安装教程

官网教程链接在此!

在这里插入图片描述

  • 创建一个文件夹用来存放 ompl

mkdir ws_ompl
cd ws_ompl

  • 下载并安装脚本

把官方安装链接下载的 install-ompl-ubuntu.sh 脚本文件 【下载地址在此】存储在文件夹 ws_ompl 下,并执行如下指令:


// 给脚本文件赋予权限
chmod u+x install-ompl-ubuntu.sh

//执行安装
./install-ompl-ubuntu.sh

在这里插入图片描述

by_the_way:这个过程中,因为会下载源码,所以最好科学上网。有兴趣的小伙伴可以看看脚本内容,包括下载源码,安装依赖项,编译的过程。

————————————————

 
 

二、源码安装 moveit

安装部分可以直接参考 【官网教程】 或者 【博客链接
 

2.1 先检查是否已安装二进制Moveit


//可以尝试能否在任意终端下 正确打开moveit 助手界面
roslaunch moveit_setup_assistant setup_assistant.launch


// 可以通过指令的方式安装二进制moveit  【本教程不必执行此指令】
sudo apt-get install ros-noetic-moveit

若 已安装了二进制Moveit,需要提前卸载后安装源码Moveit,卸载方式如下:


sudo apt-get remove ros-melodic-moveit-*

————————————————
 

2.2 源码安装 Moveit

 

2.2.1、更新软件包


rosdep update
sudo apt-get update
sudo apt-get dist-upgrade

 

2.2.2、安装依赖


sudo apt install python3-wstool python3-catkin-tools python3-rosdep

 

2.2.3、创建Moveit工作空间


mkdir ~/ws_moveit
cd ~/ws_moveit

 

2.2.4、加载环境变量


source /opt/ros/noetic/setup.bash

 

2.2.5、下载moveit源码,先不急着编译【将ompl源码配置进moveit源码后统一编译】


wstool init src
wstool merge -t src https://raw.githubusercontent.com/ros-planning/moveit/master/moveit.rosinstall
wstool update -t src
rosdep install -y --from-paths src --ignore-src --rosdistro noetic
catkin config --extend /opt/ros/noetic --cmake-args -DCMAKE_BUILD_TYPE=Release
sudo catkin build       // 先别着急编译
    

可能的问题:在进行 wstool merge -t src https://raw.githubusercontent.com/ros-planning/moveit/master/moveit.rosinstall报错:


ERROR in config: Unable to download URL [https://raw.githubusercontent.com/ros-planning/moveit/master/moveit.rosinstall]: <urlopen error [Errno 110] Connection timed out>

类似解决方案
在操作 rosdep update 时报超时错误

出现 访问 https://raw.githubusercontent.com/ 超时 导致 总是更新不成功,提示错误
ERROR: error loading sources list: The read operation timed out


解决方法:
出现这类错误的问题可能是raw.githubusercontent.com网站被墙了;
一般这种情况,你可以打开百度,但是无法访问该网站;
所以只需要修改hosts文档,添加这个网站的IP地址。
#打开hosts文件
sudo vi /etc/hosts
#在最后面插入一句
199.232.28.133 raw.githubusercontent.com
#保存后退出,继续执行之前的指令rosdep update
————————————————
解决方案 解决:ERROR: error loading sources list: The read operation timed out

参考链接
 


// 执行此指令后,会在src路径下出现两个隐藏文件,
wstool merge -t src https://raw.githubusercontent.com/ros-planning/moveit/master/moveit.rosinstall 

// 可以通过crtl+h 使其可视化,并作出如下调整:

在这里插入图片描述

此处参考【 博文链接


// 执行此指令,依次下载上述功能包
wstool update -t src

 

三、Moveit 联合 OMPL 统一编译

下载完之后把脚本编译好的ompl-1.6.0文件夹复制放到ws_moveit/src里面

再统一编译


cd ~/ws_moveit

// 添加一下环境变量,
source /opt/ros/melodic/setup.bash

sudo catkin build

 
报了一个小错误:

在这里插入图片描述  

解决方案:


// 没有找到如下文件
"/usr/local/lib/libopencv_core.so.4.8.0"

// 仔细查找,确实没有该文件,查找本机安装的opencv版本为4.2.0,
// 直接重新安装了一个OpenCV 4.8.0
// 然后在 /home/aiwen/BYD/ws_moveit/src/moveit/moveit_ros/perception/CMakeLists.txt中做如下修改:
// 在三个find_package(***)前增加 set(***),【如下所示】指明OpenCV的 OpenCVConfig.cmake文件所在目录:

set(OpenCV_DIR "/usr/local/opencv4_8/lib/cmake/opencv4")
find_package(Eigen3 REQUIRED)
find_package(OpenMP REQUIRED)
find_package(OpenCV)


具体原因可以参考此链接:Ubuntu20.04 OpenCV详细安装教程(附多版本切换共存教程)的第3步

 

做出如上调整后,即可以正确编译成功。

在这里插入图片描述
若报 <Eigen/Eigen> 故障,检测是否该路径下有无该文件,缺失了那就找一个放在这里【可能由安装aubo驱动时的软连接造成的】
请添加图片描述

 

四、验证是否安装成功


//启动验证安装是否成功
roslaunch panda_moveit_config demo.launch

在这里插入图片描述
 
启动之后报了一个小错: 说明 缺失了 这个包

[ INFO] [1723702360.198111484]: Param 'max_sampling_attempts' was not set. Using default value: 100
[ INFO] [1723702360.198132752]: Using planning request adapter 'Add Time Parameterization'
[ INFO] [1723702360.198141820]: Using planning request adapter 'Resolve constraint frames to robot links'
[ INFO] [1723702360.198149839]: Using planning request adapter 'Fix Workspace Bounds'
[ INFO] [1723702360.198157184]: Using planning request adapter 'Fix Start State Bounds'
[ INFO] [1723702360.198164685]: Using planning request adapter 'Fix Start State In Collision'
[ INFO] [1723702360.198171522]: Using planning request adapter 'Fix Start State Path Constraints'
[ INFO] [1723702360.199043081]: Loading planning pipeline 'ompl'
[ INFO] [1723702360.200579667]: Forcing OpenGl version 0.
Traceback (most recent call last):
  File "/opt/ros/noetic/lib/joint_state_publisher/joint_state_publisher", line 35, in <module>
    import rospy
  File "/opt/ros/noetic/lib/python3/dist-packages/rospy/__init__.py", line 49, in <module>
    from .client import spin, myargv, init_node, \
  File "/opt/ros/noetic/lib/python3/dist-packages/rospy/client.py", line 52, in <module>
    import roslib
  File "/opt/ros/noetic/lib/python3/dist-packages/roslib/__init__.py", line 50, in <module>
    from roslib.launcher import load_manifest  # noqa: F401
  File "/opt/ros/noetic/lib/python3/dist-packages/roslib/launcher.py", line 42, in <module>
    import rospkg
ModuleNotFoundError: No module named 'rospkg'
[ INFO] [1723702360.238824300]: Using planning interface 'OMPL'
[ INFO] [1723702360.240456972]: Param 'default_workspace_bounds' was not set. Using default value: 10
[ INFO] [1723702360.240654585]: Param 'start_state_max_bounds_error' was set to 0.1
[ INFO] [1723702360.240819993]: Param 'start_state_max_dt' was not set. Using default value: 0.5
[ INFO] [1723702360.240998518]: Param 'start_state_max_dt' was not set. Using default value: 0.5
[ INFO] [1723702360.241182021]: Param 'jiggle_fraction' was set to 0.05

直接缺什么补什么


pip install rospkg

// 再次启动就没有任何错误了。

 

六、开始源码编程

回答: 在Ubuntu 20.04安装OMPL的Python绑定,可以按照以下步骤进行操作。首先,从官方网站下载OMPL安装脚本。然后,运行脚本来安装OMPL。在运行脚本时,可以使用不同的选项来安装不同版本的OMPL和Python绑定。比如,使用"./install-ompl-ubuntu.sh"命令可以安装最新版本的OMPL但不包含Python绑定,使用"./install-ompl-ubuntu.sh --python"命令可以安装最新版本的OMPL和Python绑定。如果遇到安装过程中的问题,可能需要注意一些事项,比如编译过程中需要较大的内存和swap空间,可以在编译前增加swap空间来避免报错。此外,安装脚本中使用的是系统Python而不是虚拟环境中的Python,如果希望使用虚拟环境中的Python安装OMPL,可能需要在虚拟环境中逐个安装所需的依赖,然后进行编译和更新绑定。然而,这种方式可能较为复杂且容易出错。因此,建议直接使用官方提供的安装脚本进行安装。希望这些信息对您有所帮助。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [【OMPL】1- Ubuntu 20.04安装教程](https://blog.csdn.net/weixin_45355406/article/details/127477844)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"] - *2* *3* [Ubuntu(16.04+20.04)安装OMPL(app+python)机器人运动规划库](https://blog.csdn.net/qq_42674415/article/details/115160042)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值