Ubuntu20.04 源码安装 OMPL 与 Moveit

news2024/9/22 5:30:29

文章目录

  • 一、源码安装OMPL
    • 1.1  先检查是否已安装二进制 ompl
    • 1.2 若已经提前安装二进制,需先行卸载
    • 1.3 OMPL官网安装教程
  • 二、源码安装 moveit
    • 2.1 先检查是否已安装二进制Moveit
    • 2.2 源码安装 Moveit
      • 2.2.1、更新软件包
      • 2.2.2、安装依赖
      • 2.2.3、创建Moveit工作空间
      • 2.2.4、加载环境变量
      • 2.2.5、下载moveit源码,先不急着编译【将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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2037184.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

8月12日学习笔记 DNS补充

一&#xff0c;DNS工作原理 查询方式 1.递归查询&#xff0c;逐级查询&#xff0c;一次到位&#xff0c;但是速度慢 2.迭代查询&#xff0c;多次查询一个地址&#xff0c;可以缓存 一次递归&#xff0c;多次迭代 dig解析域名 yum -y install bind-utils.x86_64 dig trace …

selenium使用Edge的 webdriver提示错误

最近由于项目的原因需要更换selenium的驱动&#xff0c;从Google谷歌更换成Edge驱动&#xff0c;然后发现官方下载的驱动文件不能直接放到python执行&#xff0c;提示一直在报错&#xff0c;后续通过多方查找才知道是驱动名称问题&#xff01;&#xff01;&#xff01; 查看Ed…

Hadoop-yarn-unauthorized 未授权访问漏洞

一、漏洞描述&#xff1a; Hadoop是一款由Apache基金会推出的分布式系统框架&#xff0c;它通过著名的 MapReduce 算法进行分布式处理&#xff0c;Yarn是Hadoop集群的资源管理系统。YARN提供有默认开放在8088和8090的REST API&#xff08;默认前者&#xff09;允许用户直接通过…

【网络】IP-VPN技术概述

目录 引言 核心协议 封装与加密 工作流程 IP-VPN的应用场景 MPLS-VPN 个人主页&#xff1a;东洛的克莱斯韦克-CSDN博客 引言 IP-VPN&#xff08;Internet Protocol - Virtual Private Network&#xff09;是一种通过公共网络实现私密、安全通信的技术。它主要依赖于互联网…

【LabVIEW学习篇 - 14】:信号量、集合点、事件发生

信号量 信号量技术是用来限制同时访问共享资源的数量。当访问量达到信号量设定的数量之后&#xff0c;其它任务只能等待&#xff0c;直到有任务释放访问权限。 比如打印机打印任务、银行办理业务时的叫号排队等等。 案例&#xff1a;使用信号量&#xff0c;实现两个波形图表轮…

在ubuntu、centos、openEuler安装Docker、构建一个简单的 Nginx 镜像

目录 ubuntu、centos、openEuler安装Docker 1.在 Ubuntu 上安装 Docker 1. 1 更新软件包 1. 2 安装必要的依赖 1.3 添加 Docker 的 GPG 密钥 1.4 添加 Docker 仓库 1.5 更新软件包 1.6 安装 Docker 1.7 启动并启用 Docker 服务 1.8 验证安装 1.9 运行测试容器 1.10…

【NXP-MCXA153】SPI驱动移植

介绍 SPI总线由摩托罗拉公司开发&#xff0c;是一种全双工同步串行总线&#xff0c;由四个IO口组成&#xff1a;CS、SCLK、MISO、MOSI&#xff1b;通常用于CPU和外设之间进行通信&#xff0c;常见的SPI总线设备有&#xff1a;TFT LCD、QSPI FLASH、时钟模块、IMU等&#xff1b…

假如萝卜快跑撞了人,谁来负责?

引言 自动驾驶时代来临&#xff0c;司机的身影消失。但没有了司机&#xff0c;交通事故谁来负责&#xff1f;在AI刚爆火时&#xff0c;有个半调侃的笑话很出名&#xff1a;AI肯定不能替代会计和律师&#xff0c;因为一旦出了事&#xff0c;AI负不了责&#xff0c;但会计和律师…

Nest.js 实战 (九):使用拦截器记录用户 CURD 操作日志

前言 有一天&#xff0c;公司的产品经理提了一个需求&#xff1a;系统需要记录每个用户的 CURD 操作&#xff0c;也就是说用户新增、编辑或者删除了什么数据&#xff0c;都需要记录下来&#xff0c;这个在 Nest.js 中如何实现呢&#xff1f; 这时候我们可以考虑使用 拦截器 来…

《书生大模型实战营第3期》进阶岛 第一关: 探索 InternLM 模型能力边界

文章大纲 OpenCompass 评测体验大模型对比评测 - Bad caseBad Case 1Bad Case 2Bad Case 3Bad Case 4Bad Case 5 大模型对比评测 - Good caseGood case 1Good Case 2 任务其他学习内容参考文献本人学习系列笔记第二期第三期 课程资源论文其他参考 OpenCompass 评测体验 https:…

opencv-python图像增强七:图像亮度对比度饱和度调整

文章目录 一&#xff0c;简介二&#xff0c;图像亮度对比度修改三&#xff0c;对比度增强&#xff1a; 一&#xff0c;简介 在图像处理领域&#xff0c;对比度、亮度和饱和度是影响图像视觉效果的重要因素。合理调整这三个参数&#xff0c;可以使图像更具表现力&#xff0c;满…

北斗短报文通信原理

短报文通信原理主要基于北斗卫星导航系统&#xff0c;其过程可以分为以下几个步骤&#xff1a;用户机将包含接收方ID号和通讯内容的通讯申请信号加密后通过卫星转发入站;地面中心站接收到通讯申请信号后&#xff0c;进行脱密和再加密处理&#xff0c;然后将其加入持续广播的出站…

WindowsAPI 查阅笔记:线程、多个线程互同步

1. 线程的创建 HANDLE CreateThread(LPSECURITY_ATTRIBUTES lpThreadAttributes, //线程安全属性 SIZE_T dwStackSize, //线程堆栈大小 LPTHREAD_START_ROUTINE lpStartAddress, //重要: 线程函数指针 LPVOID lpParameter, //重要: 启动线程函数 DWORD dwC…

分布式知识总结(一致性Hash算法)

文章收录在网站&#xff1a;http://hardyfish.top/ 文章收录在网站&#xff1a;http://hardyfish.top/ 文章收录在网站&#xff1a;http://hardyfish.top/ 文章收录在网站&#xff1a;http://hardyfish.top/ 一致性Hash算法 假如有三台服务器编号node0、node1、node2&…

若依项目改造-sqlserver(2)

目前启动时&#xff0c;不需要配置数据库 1、启动时&#xff0c;不用检查数据库连接 2、可以在线导出数据库备份bak文件 3、实现不用配置jdk环境启动 4、实现启动没有控制台窗口

排序【归并排序和计数排序】

1.归并排序 1.1 基本思想 并归排序&#xff1a;是建立在归并操作上的一种有效的排序算法,该算法是采用分治法&#xff08;Divide and Conquer&#xff09;的一个非常典型的应用。将已有序的子序列合并&#xff0c;得到完全有序的序列&#xff1b;即先使每个子序列有序&#x…

【代理模式】设计模式系列:实现与最佳实践(掌控访问的艺术)

文章目录 Java中的代理模式引言1. 代理模式概念1.1 代理模式定义1.2 代理模式的参与者1.3 代理模式的基本工作原理1.4 代理模式的优点与缺点 2. Java代理模式实现方式2.1 静态代理2.2 动态代理2.2.1 JDK动态代理2.2.2 CGLIB动态代理 2.3 两者之间的区别与选择 3. 使用案例分析3…

Mariadb数据库本机无密码登录的问题解决

Mariadb数据库本机无密码登录的问题解决 安装了mariadb后&#xff0c;发现Mariadb本机无密码才能登录 百度了很多文章&#xff0c;发现很多人是因为root的plugin设置的值不正确导致的&#xff0c;unix_socket可以不需要密码&#xff0c;mysql_native_password 是正常的。 解…

Codeforces Round 965 (Div. 2)

前言 有人在过七夕&#xff0c;我在打 cf &#xff0c;还有某人独自一人在学校机房&#xff0c;凌晨一点骑上共享单车回宿舍欣赏沿途的秋风扫落叶。 Standings&#xff1a;2166 题目链接&#xff1a;Dashboard - Codeforces Round 965 (Div. 2) - Codeforces A. Find K Distin…