【ROS】ROS1导航(了解)

news2024/11/26 20:26:42

1、简述

ROS1导航模块navigation,它从里程计、传感器流和目标姿势中获取信息,并将速度、角速度控制命令发送至差速控制单元。

因为是ROS1,所以下面的内容只是一带而过,没有深入学习总结。详细内容可参考官网:http://wiki.ros.org/navigation

2、硬件要求

1)仅适用于差动驱动机器人,原因是navigation向控制单元发送的命令形式为:x 速度、y 速度、theta 速度;
2)需要在底盘上配置激光扫描传感器,用于地图构建和定位;
3)机器人本身的形状要规则,比如为方形或者圆形

3、框架

在这里插入图片描述
导航模块navigation的组件(功能包)框架:

白色组件是ROS已经实现的必需组件;
灰色组件是ROS已经实现的可选组件
蓝色组件需要自己来实现的必须组件。

4、功能包介绍

1)sensor transforms:坐标转换,机器人使用tf发布有关坐标系之间的关系
2)sensor sources:依靠传感器信息来避开障碍物,通过 ROS发布sensor_msgs/LaserScan或sensor_msgs/PointCloud消息来获取
3)odometry source:通过里程计来计算所处的位置
4)base controller:发送控制电机的速度命令,相关话题“cmd_vel”的结构为cmd_vel.linear.x, cmd_vel.linear.y, cmd_vel.angular.z
5)map_server:地图服务,没有地图也能运行,机器人可以边走边建图
6)

5、安装

在Ubuntu20.04上安装为例

sudo apt install ros-noetic-navigation

6、名词解释

Goal:目标,从A点出发,自主导航到B点;
AMCL:定位,输入是激光来获取位置,或者通过(里程计)编码器积分来获取位置
Path Planner:路径规划,比如SLAM,
move_base:全局规划和本地规划,一边走、一边避障
/cmd_vel + /odom:发送运动控制指令
Base Controller:地盘控制电机
Motor Speeds:电机运动
map_server:地图功能包,非必须,如果没有,认为是空地图

7、官网

http://wiki.ros.org/navigation
http://wiki.ros.org/move_base

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

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

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

相关文章

Spring高手之路5——彻底掌握Bean的生命周期

文章目录 1. 理解Bean的生命周期1.1 生命周期的各个阶段 2. 理解init-method和destroy-method2.1 从XML配置创建Bean看生命周期2.2 从配置类注解配置创建Bean看生命周期2.3 初始化和销毁方法的特性2.4 探究Bean的初始化流程顺序 3. PostConstruct和PreDestroy3.1 示例&#xff…

Scala入门

第1章 Scala入门 1.1 概述 Scala将面向对象和函数式编程结合成一种简洁的高级语言。 语言特点如下: (1)Scala和Java一样属于JVM语言,使用时都需要先编译为class字节码文件,并且Scala能够直接调用Java的类库。 &#…

Linux进程信号 | 信号处理

前面的文章中我们讲述了信号的产生与信号的保存这两个知识点,在本文中我们将继续讲述与信号处理有关的信息。 信号处理 之前我们说过在收到一个信号的时候,这个信号不是立即处理的,而是要得到的一定的时间。从信号的保存中我们可以知道如果…

CSP-J组初赛历年真题讲解第1篇

一、二进制基础 1.二进制数 00100100 和 00010100 的和是( )。 A.00101000 B.01100111 C.01000100 D.00111000 来源:模拟试题正确答案:D 讲解: 2.在二进制下,1011001()11001101011001( )1100110 A. 1011 B. 1101 C. 1010…

仓库Vuex

1. 搭建vuex仓库 1.1 安装 npm install vuexnext 1.2 引入 创建store文件夹,里面创建index.js,该js文件中写: import { createStore } from vuex // 引入子仓库 import model1 from "./model1.js" import model2 from "…

行为型设计模式05-备忘录模式

🧑‍💻作者:猫十二懿 ❤️‍🔥账号:CSDN 、掘金 、个人博客 、Github 🎉公众号:猫十二懿 备忘录模式 1、备忘录模式介绍 备忘录模式是一种行为型设计模式,用于在不破坏封装性的前提…

Spring Resources资源操作

文章目录 1、Spring Resources概述2、Resource接口3、Resource的实现类3.1、UrlResource访问网络资源3.2、ClassPathResource 访问类路径下资源3.3、FileSystemResource 访问文件系统资源3.4、ServletContextResource3.5、InputStreamResource3.6、ByteArrayResource 4、Resour…

H桥级联型五电平三相逆变器MATLAB仿真模型

H桥级联型五电平逆变器MATLAB仿真模型资源-CSDN文库https://download.csdn.net/download/weixin_56691527/87899094 模型简介: MATLAB21b版本 逆变器采用H桥级联的形式连接,加设LCL滤波器,三相负载构成主电路。 采用SPWM调制,可…

不宜使用Selenium自动化的10个测试场景

尽管在很多情况下测试自动化是有意义的,但一些测试场景是不应该使用自动化测试工具的,比如Selenium、WebDriver。 下面有10个示例,来解释为什么自动化在这种情况下使用时没有意义的,我还将为您提供每种方法的替代方法。 01.验证…

TreeView 简单使用

本文主要介绍 QML 中 TreeView 的基本使用方法,包括:TreeView的适用场景; 控件简介 QML TreeView 是 Qt Quick 中的一个组件,用于显示树形结构的数据。它提供了一种以层次结构方式展示数据的方式,其中每个节点可以包含…

ESP32学习之定时器和PWM

一.定时器代码如下&#xff1a; #include <Arduino.h>hw_timer_t *timer NULL; int interruptCounter 0;// 函数名称&#xff1a;onTimer() // 函数功能&#xff1a;中断服务的功能&#xff0c;它必须是一个返回void&#xff08;空&#xff09;且没有输入参数的函数 //…

【动态规划】路径问题

冻龟算法系列之路径问题 文章目录 【动态规划】路径问题1. 不同路径1.1 题目解析1.2 算法原理1.2.1 状态表示1.2.2 状态转移方程1.2.3 初始化1.2.4 填表顺序1.2.5 返回值 1.3 编写代码 2. 不同路径Ⅱ2.1 题目解析2.2 算法原理2.2.1 状态表示2.2.2 状态转移方程2.2.3 初始化2.2.…

性能测试学习之数据驱动性能测试

了解数据驱动测试理念、能够如何在jmeter中用多种方式实现数据驱动测试。 知识点&#xff1a;字符串拼接、计数器、循环控制器 1. 数据驱动的理念 1.1 定义 从数据文件中读取测试数据,驱动测试过程的一-种测试方法数据驱动可以理解为更高级的参数化 1.2 特点 测试数据与测试…

【Linux】socket 编程(socket套接字介绍、字节序、socket地址、IP地址转换函数、套接字函数、TCP通信实现)

目录 1、socket套接字介绍2、字节序简介字节序转换函数 3、socket地址专用socket地址 4、IP地址转换函数5、套接字函数6、TCP通信实现&#xff08;服务器端和客户端&#xff09; 橙色 1、socket套接字介绍 所谓套接字&#xff0c;就是对网络中不同主机上的应用进程之间进行双…

深入理解深度学习——Transformer:整合编码器(Encoder)和解码器Decoder)

分类目录&#xff1a;《深入理解深度学习》总目录 相关文章&#xff1a; 注意力机制&#xff08;Attention Mechanism&#xff09;&#xff1a;基础知识 注意力机制&#xff08;Attention Mechanism&#xff09;&#xff1a;注意力汇聚与Nadaraya-Watson核回归 注意力机制&…

国内唯一可以在本地搭建Stable Diffusion WebUI教程-安装时无需魔法安装全程流畅到尖叫

Stable Diffusion是什么 Stable Diffusion简称SD是一款Ai图片生成工具。“输入几句话,生成精美图片。” 比如说我一开头这幅图片就是用的SD生成的。 我在我的“ChatGPT让我变成了“超人”-如何提升团队30%效能质量提高100%的阶段性总结报告”里提到过midjourney,但是midjou…

使用Google工具类Guava自定义一个@Limiter接口限流注解

在Springboot中引用RateLimiter工具类依赖 <dependency><groupId>com.google.guava</groupId><artifactId>guava</artifactId><version>30.1-jre</version> </dependency> 需要注意的是&#xff0c;Guava 的不同版本可能会有…

新手第一次做性能测试?性能测试流程详全,从需求到报告一篇打通

目录&#xff1a;导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结&#xff08;尾部小惊喜&#xff09; 前言 1、确认需求 确定…

3、互联网行业及产品经理分类

上一篇文章&#xff1a;2、产品经理的工作内容_阿杰学编程的博客-CSDN博客 1、产品经理分类 我们把产品经理划分成这样两个大的类型&#xff0c;一个是传统行业的&#xff0c;一个是互联网行业的。这个简单了解一下就行。 这个里面会发现绝大多数也是体育劳动&#xff0c;你比…

软件测试岗位都是女孩子在做吗?

听我一朋友说&#xff0c;测试岗位基本都是女孩子做。” 不知道是不是以前“软件测试岗”给人印象是“不需要太多技术含量”的错觉&#xff0c;从而大部分外行认为从业软件测试的人员中女生应占了大多数。比如有人就觉得&#xff1a;软件测试主要是细心活&#xff0c;所以女生…