智能车|自主导航 ROS Navigation Stack 功能包 简介与编译

news2024/9/28 17:33:09

智能车|自主导航 ROS Navigation Stack 功能包 简介与编译

  • 前言
  • 功能包下载与编译

在这里插入图片描述

前言

ros功能包:Navigation
ros wiki:http://wiki.ros.org/navigation
github 地址:https://github.com/ros-planning/navigation

功能包简介
ROS Navigation Stack是ROS提供的一个二维的导航功能包集合,通过输入里程计、传感器信息和目标位姿,输出控制机器人到达目标状态的安全速度指令。

ROS Navigation Stack为移动机器人的导航规划提供了比较好的参考,通过实现功能包集合提供的接口,也可以比较容易地将自己的算法应用到移动机器人上。

在任何一个移动机器人上配置自主导航功能都是件复杂的事情
这个功能包的应用提前需要的条件有:

  • 移动机器人具备ROS环境
  • 具备TF坐标变换树
  • 正确的ROS消息格式的传感器数据
  • 需要配置功能包的一些参数例如机器人的尺寸、动力等

硬件需求
尽管 ROS Navigation Stack 设计的追求通信性,但是应用的时候,还是需要满足以下的三点要求:

  • 它仅适用于差速驱动和全息轮式机器人,它假设移动平台,可以通过发送速度控制(x速度,y速度,θ速度)指令来实现控制
  • 需要在移动平台安装二维激光雷达,这个激光雷达用于地图构建和定位
  • 功能包基于方形机器人开发,所以在接近方向或者圆形的机器人上表现的更好。在狭窄空间的,大尺寸矩形机器人则可能出问题

功能包下载与编译

下载指令

git clone https://github.com/ros-planning/navigation

下载完成后,将功能包复制到ros的本地工作空间下

在工作空间目录下,进行编译

catkin_make

在这里插入图片描述

CMake Error at /opt/ros/noetic/share/catkin/cmake/catkinConfig.cmake:83 (find_package):
Could not find a package configuration file provided by “tf2_sensor_msgs”
with any of the following names:
tf2_sensor_msgsConfig.cmake
tf2_sensor_msgs-config.cmake

出现这个报错时,是因为ros系统缺少tf2_sensor_msgs功能包,通过下面指令安装

sudo apt-get install ros-noetic-tf2-sensor-msgs

如果提示源有问题,那么需要进行下更新

sudo apt-get update

安装完成后提示如下:
在这里插入图片描述
然后再进行编译
就安装成功了
在这里插入图片描述

我装的环境不是一个0的环境,别的环境可能出其它问题。需要根据实际情况再进行解决。

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

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

相关文章

第一次创业,注册什么类型的公司?

前言 几乎每一个打工者都有一颗当老板的心,大喊一声:"大丈夫生居天地间,岂能郁郁久居人下",于是一拍桌子就辞职创业,现实往往都是潦草收场,看下面一段统计数据: 中国小微企业平均存活周期4.13年&…

通过Bypass UAC进行权限提升

什么是UAC用户账户控制(User Account control,UAC)是windows系统采用的一种控制机制,可以阻止自动安装未经授权的应用 并防止意外更改系统设置,有助于防止恶意软件损坏计算机。用户账户控制程序使应用程序和任务始终在…

2.5.3 PCIe——物理电气子层——动态均衡

因为PCIE 3.0信号的速率可以达到8Gb/s,而且链路通道走线也可能会很长,这可能会导致高速信号衰减过大,为了补偿channel的衰减需要增加传输信号的高频成分,让高频和低频能量差不多,这就是equalization。因此在PCIE 3.0的…

DNS Sec

域名系统(Domain Name System,DNS)响应消息中给出域名服务器的IP地址、完全合格的域名与IP地址之间的绑定关系等,因此,DNS响应消息的真实性和完整性直接关系用户访问网络过程的安全性。为了保证DNS响应消息的真实性和完…

Python中的条件分支和循环语句

1.条件分支语句 (1) 第 1 种是判断一个条件,如果这个条件成立,就执行其包含的某条语句或某个代码块。 if 条件:某条语句或某个代码块(2)第 2 种同样是判断一个条件,跟第 1 种的区别是如果条件…

易控智驾:用最“接地气”的自动驾驶,写一本“矿区修炼手册”

CES2023刚刚在拉斯维加斯闭幕,作为行业风向标,本届展会上元宇宙、汽车技术等重要科技依然是大亮点。宝马、英特尔等厂商,依然带来了有趣的消费级产品,但也有更多的工业与制造业产品、方案,带着更多的科技智能属性脱颖而…

网络原理(TCP/IP五层协议)(一)

目录TCP/IP五层协议栈应用层传输层TCP/IP五层协议栈 应用层 在应用层最重要的事情,就是“设计并实现一个应用层协议”。 举个例子,公司在开发一个项目,点外卖的软件。 当前要开发一个功能,叫做获取用户的订单历史。(在数据库里&…

软件设计(三)

软件设计(二)https://blog.csdn.net/ke1ying/article/details/128794008?spm1001.2014.3001.5502 21、一颗二叉树的高度为h,则该二叉树 最多有2的h次方-1个节点。 22、图的遍历是指对图中所有顶点进行访问且只访问一次的过程,可…

《第一行代码》 第一章:第一行Android代码

1,Android系统架构 2,开发的四大组件 3,丰富的系统控件 Android 系统为开发者提供了丰富的系统控件,使得我们可以很轻松地编写出漂亮的界面。当然如果你品位比较高,不满足于系统自带的控件效果,也完全可以…

java 基于ssm的在线音乐分享平台 idea mysql

根据一般在线音乐平台的功能需求分析,本系统的功能模块如下: (1)在个人中心,管理员可以修改自己的用户名和登录密码。 (2)在用户管理模块中,可以查看用户的信息,和进行修…

动态规划的万能公式(三类题型)

本文主要介绍如何用Python解决动态规划的问题,在动态规划问题中,最主要的是找到问题的dp,即找到状态转移函数,当你找到了该问题的状态转移函数,你就成功了一半,下面我将介绍三类最主要的题型,对…

FreeRTOS事件实验

前面章节我们学习了如何使用信号量来实现同步,但是使用信号量来同步的 话任务只能与单个的任务进行同步。有时候某个任务可能会需要与多个任务进行 同步,此时信号量就无能为力。FreeRTOS 为此提供了一个可选的解决方法,那 就是事件标志组。本…

TypeScript基础使用

TypeScript介绍: TypeScript 是 JavaScript 的一个超集 它的第一个版本发布于 2012 年 10 月,vue3和react也完全支持typescrpt 为什么选择 TypeScript: 类型系统实际上是最好的文档,大部分的函数看看类型的定义就可以知道如何使…

高性能SQL-数据库性能优化

数据库性能优化涉及各个方面,本文就总多个角度介绍一下数据库性能优化的方法 1.表设计 聚集索引 一个表只能有一个聚集索引,数据在磁盘上的排练顺序与聚集索引一致,根据业务仔细设定聚集索引,值递增的不可修改的字段才能设置聚集索引&…

海康摄像头Linux开发

官方sdk下载 https://open.hikvision.com 点击下载就行了 Ubuntu摄像头抓拍测试 我们使用Linux64 纯净版测试 接好海康摄像头,通电,并设置号ip和用户名、密码。如果有现成的,可以去查一下就知道了 先把设备下载的文件解压并放到Ubuntu下面…

redis的渐进式rehash机制

简述 在redis的字典(dict.h)实现中,当哈希表保存的键值对太多或者太少时,会触发扩展/收缩; 触发收缩:负载因子小于 0.1触发扩展:以下任一条件符合即可 服务器目前没有在执行 BGSAVE 命令或者 …

k8s核心资源

一、NameSpace对资源进行隔离&#xff0c;比如开发环境和测试环境等。命令# 查看所有命名空间的资源 kubectl get pod -A # 查看单独某个命名空间下的资源 kubectl get pod -n <空间名称> # 查看所有命名空间 kubectl get ns # 创建命名空间 kubectl create ns <空间名…

SpringAMQP

SpringAMQP是基于RabbitMQ封装的一套模板&#xff0c;并且还利用SpringBoot对其实现了自动装配&#xff0c;使用起来非常方便。 SpringAmqp的官方地址&#xff1a;Spring AMQP SpringAMQP提供了三个功能&#xff1a; 自动声明队列、交换机及其绑定关系&#xff08;RabbitAdmin&…

Hive自定义UDF函数及使用

目录 一、UDF概述 二、编写自定义UDF 1.创建项目 2.pom.xml文件添加依赖 3.编写工具类及自定义UDF类 4.打包 5.测试 jar 6.上传至服务器、HDFS并给jar包赋权 7.添加到hive类路径并创建临时函数 8.使用测试&#xff1a; 9.临时函数、永久函数 一、UDF概述 UDF全称&…

面试项目经验相关技巧

前言 面试问项目经验主要是想了解所做项目用到的技术&#xff0c;以及自己在项目中扮演的角色。 一、秒杀系统 秒杀系统往往不是咱的项目经验&#xff0c;但是面试可能会问&#xff0c;在说自己项目经验的时候也可以往秒杀和高并发上面带。 可能遇到的问题 高并发 一般就是…