ROS Navigation Stack安装

Navigation导航包是做导航几乎都要用的,大家可以先去ROS Wiki上学习下

我们先Git下对应版本的软件包,我是Kinetic的,所以是Kinetic-devel

在这里插入图片描述

下载后发现目录下并没有CMakeLists.txt,所以直接在ROS工作目录下catkin_make并不会产生可执行文件

在这里插入图片描述

所以编写了build.sh脚本文件,如下:

echo "Building Navigation Pack"
cd ~/catkin_wsecho -e "\nBuild amcl..."
catkin_make -DCATKIN_WHITELIST_PACKAGES="amcl"echo -e "\nBuild base_local_planner..."
catkin_make -DCATKIN_WHITELIST_PACKAGES="base_local_planner"echo -e "\nBuild carrot_planner..."
catkin_make -DCATKIN_WHITELIST_PACKAGES="carrot_planner"echo -e "\nBuild clear_costmap_recovery..."
catkin_make -DCATKIN_WHITELIST_PACKAGES="clear_costmap_recovery"echo -e "\nBuild costmap_2d..."
catkin_make -DCATKIN_WHITELIST_PACKAGES="costmap_2d"echo -e "\nBuild dwa_local_planner..."
catkin_make -DCATKIN_WHITELIST_PACKAGES="dwa_local_planner"echo -e "\nBuild fake_localization..."
catkin_make -DCATKIN_WHITELIST_PACKAGES="fake_localization"echo -e "\nBuild global_planner..."
catkin_make -DCATKIN_WHITELIST_PACKAGES="global_planner"echo -e "\nBuild map_server..."
catkin_make -DCATKIN_WHITELIST_PACKAGES="map_server"echo -e "\nBuild move_base..."
catkin_make -DCATKIN_WHITELIST_PACKAGES="move_base"echo -e "\nBuild move_slow_and_clear..."
catkin_make -DCATKIN_WHITELIST_PACKAGES="move_slow_and_clear"echo -e "\nBuild nav_core..."
catkin_make -DCATKIN_WHITELIST_PACKAGES="nav_core"echo -e "\nBuild navfn..."
catkin_make -DCATKIN_WHITELIST_PACKAGES="navfn"echo -e "\nBuild navigation..."
catkin_make -DCATKIN_WHITELIST_PACKAGES="navigation"echo -e "\nBuild robot_pose_ekf..."
catkin_make -DCATKIN_WHITELIST_PACKAGES="robot_pose_ekf"echo -e "\nBuild rotate_recovery..."
catkin_make -DCATKIN_WHITELIST_PACKAGES="rotate_recovery"echo -e "\nBuild voxel_grid..."
catkin_make -DCATKIN_WHITELIST_PACKAGES="voxel_grid"

在navigation-kinetic-devel目录下打开终端

chmod +x build.sh
./build.sh

即可完成编译

编译过程中可能会报错:

/home/redwall/catkin_ws/src/navigation-kinetic-devel/costmap_2d/cfg/Costmap2D.cfg 拒绝访问

之类的问题,其实就是该文件缺少可执行权限

打开任意终端,输入:

chmod +x /home/redwall/catkin_ws/src/navigation-kinetic-devel/costmap_2d/cfg/Costmap2D.cfg

但是像这种/cfg整个文件夹的,直接

chmod -R +x /home/redwall/catkin_ws/src/navigation-kinetic-devel/costmap_2d/cfg

还有就是编译costmap_2d提示缺少eigen3的依赖,实际上在/usr/local/include和/usr/include中都有,只是没在它指定的路径,打开终端

mkdir includesudo cp -r /usr/local/include/eigen3 ~/include

问题基本上就是上面几点,最后在navigation-kinetic-devel目录下运行build.sh

多运行几次,最后没有报错,就编译安装成功了

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

并发编程面试题1

并发编程面试题1 一、原子性高频问题: 1.1 Java中如何实现线程安全? 多线程操作共享数据出现的问题。 锁: 悲观锁:synchronized,lock乐观锁:CAS 可以根据业务情况,选择ThreadLocal,让每个…

MuMu模拟器运行一段时间后Device.Present耗时突然上升

1)MuMu模拟器运行一段时间后Device.Present耗时突然上升 2)​如何在运行过程中获得温度信息 3)Input System鼠标更换主按键的Bug 4)如何禁止Unity向https://config.uca.cloud.unity3d.com发送设备信息 这是第347篇UWA技术知识分享…

【设计模式】模板模式

什么是模板模式? 模板方法模式(Template Method Pattern),又叫模板模式(Template Pattern),在一个抽象类公开定义了执行它的方法的模板。它的子类可以按需要重写方法实现,但调用将以抽象类中定义的方式进行…

Unity限制在一个范围内移动

Unity限制在一个范围内移动 这个例子中,我们学习Vector3.ClampMagnitude的用法,限制小球在范围内移动。 在地图上放了一个小球,让他移动,但是不想让他掉下去,限制在一个球星范围内,就好像绳子拴住了一样&…

【HTML】<input>

分类 text password number button reset submit hidden radio checkbox file image color range tel email(火狐有校验,360浏览器无校验。) url datetime(火狐、360浏览器不支持) search date、month、week、time、da…

1、Java简介+DOS命令+编译运行+一个简单的Java程序

Java类型: JavaSE 标准版:以前称为J2SE JavaEE 企业版:包括技术有:Servlet、Jsp,以前称为J2EE JavaME 微型版:以前称为J2ME Java应用: Android平台应用。 大数据平台开发:Hadoo…

自建机房还是选择云服务器?以腾讯云为例

大企业是选择自购服务器自建机房还是使用腾讯云服务器?都说企业上云是趋势,自建机房是一次性支出,上云租赁云服务器等产品需要年年续费,大型企业有必要把数据中心迁移上云吗?腾讯云服务器网想说,自建机房购…

为什么金鸣识别不做成离线版?

来百度APP畅享高清图片 在众多的用户咨询中,金鸣识别客服常常会被用户问及为何不做成离线版的问题,下面我就在这里跟大伙说说其中的原因吧。 离线版的OCR准确率相对于网络版可能会较低,主要有以下几个原因: 1. 数据量和模型更新…

[C++项目] Boost文档 站内搜索引擎(5): cpphttplib实现网络服务、html页面实现、服务器部署...

在前四篇文章中, 我们实现了从文档文件的清理 到 搜索的所有内容: 项目背景: 🫦[C项目] Boost文档 站内搜索引擎(1): 项目背景介绍、相关技术栈、相关概念介绍…文档解析、处理模块parser的实现: 🫦[C项目] Boost文档 站内搜索引擎(2): 文档文本解析模块…

游戏选香港主机会很卡吗?

​  经常会有用户问道:做游戏服务器,使用香港主机会很卡吗?要知道,游戏运营最看重的就是用户体验,而游戏流畅不流畅要看所使用香港服务器本身的稳定性。因此,卡不卡,这样的形式提问是比较笼统的&#xf…

放弃51单片机,直接学习STM32开发可能会面临的问题

学习51单片机并非仅仅是为了学习51本身,而是通过它学习一种方法,即如何仅仅依靠Datasheet和例程来学习一种新的芯片。51单片机相对较简单,是这个过程中最容易上手的选择,而AVR单片机则更为复杂。虽然您已经学习了大约十天的51单片…

五分钟帮您理解Linux网络核心知识点——socket和epoll

关于linux网络相关的基础知识点,最热的两个就是socket和epoll,接下来我就用最简单的方式把他俩说清楚便于大家理解! Socket Socket 是一种进程间通信的方法,它允许位于同一主机(计算机)或使用网络连接起来…

Postman 汉化及下载

Postman 是一款常用的 API 测试工具,可以方便地进行接口测试、调试和文档编写。本文将详细介绍如何下载安装 Postman 并汉化,包括每个步骤的详细说明。 下载安装 Postman 1、打开浏览器,访问 Postman 官网,下载适用于自己系统的…

如何在群辉NAS系统下安装cpolar套件,并使用cpolar内网穿透?

如何在群辉NAS系统下安装cpolar套件,并使用cpolar内网穿透? 文章目录 如何在群辉NAS系统下安装cpolar套件,并使用cpolar内网穿透?前言1. 在群辉NAS系统下安装cpolar套件2. 管理隧道列表3. 创建固定数据隧道 前言 群晖作为大容量存储系统,既可…

移动硬盘不显示盘符简单处理方法

通常情况下,将移动硬盘连接到电脑后会被赋予一个特定的盘符,以便用户可以访问和操作其中的文件和文件夹。然而,如果移动硬盘不显示盘符,意味着操作系统无法根据该硬盘的文件系统和存储信息识别出其所对应的盘符,这将导…

vue3-ts-vite:vue 项目 配置 多页面应用

一、Vue项目,什么是多页面应用 Vue是一种单页面应用程序(SPA)框架,这意味着Vue应用程序通常只有一个HTML页面,而在该页面上进行动态的内容更改,而不是每次都加载新的HTML页面。 但是,有时候我…

ruoyi-cloud微服务新建子模块

目录 相关文章1、复制system模块2、在modules下的 pom.xml文件中添加子模块 test3、进入 test模块修改 pom.xml4、修改对应的包名、目录名和启动应用程序为test5、修改bootstrap.yml文件中的端口号和应用名称6、nacos中克隆 system-dev.yml的配置,修改名称为 test-d…

【深度学习笔记】TensorFlow 基础

在 TensorFlow 2.0 及之后的版本中,默认采用 Eager Execution 的方式,不再使用 1.0 版本的 Session 创建会话。Eager Execution 使用更自然地方式组织代码,无需构建计算图,可以立即进行数学计算,简化了代码调试的过程。…

微服务——操作索引库+文档操作+RestClient操作索引库和文档(java程序)

索引库操作 mapping属性 mapping是对文档的约束,常见约束属性包括: 创建索引库 #创建索引库 PUT /heima {"mappings": {"properties": {"info":{"type": "text","analyzer": "ik_smart"},…

Redis_概述

1.redis概述 1.1 简介 截止到2021年12月 数据库排名https://db-engines.com/en/ranking redis(Remote Dictionary Server) 一个开源的key-value存储系统它支持存储的Value类型:包括String(字符串),list(链表),set(集合),zset(sorted set 有序集合),hash(哈希类型…