【ROS导航Navigation】二 | 坐标系 | 定位 | 导航约束

news2024/11/20 1:26:17

目录

致谢:ROS赵虚左老师

一、通过里程计定位

二、通过传感器定位

三、坐标系变换

四、导航约束条件

1.硬件

2.软件


致谢:ROS赵虚左老师

Introduction · Autolabor-ROS机器人入门课程《ROS理论与实践》零基础教程

参考赵虚左老师的实战教程

一、通过里程计定位

实时收集机器人的速度信息计算并发布机器人坐标系与父级参考系的相对关系(计步数)

  • 优点:里程计定位信息是连续的,没有离散的跳跃。
  • 缺点:里程计存在累计误差,不利于长距离或长期定位。

二、通过传感器定位

通过传感器收集外界环境信息通过匹配计算并发布机器人坐标系与父级参考系的相对关系(看地图)

  • 优点:比里程计定位更精准;
  • 缺点:传感器定位会出现跳变的情况,且传感器定位在标志物较少的环境下,其定位精度会大打折扣。

三、坐标系变换

上述两种定位实现中,机器人坐标系一般使用机器人模型中的

根坐标系(base_link 或 base_footprint)

里程计定位时,父级坐标系一般称之为 odom

如果通过传感器定位,父级参考系一般称之为 map

当二者结合使用时,map 和 odom 都是机器人模型根坐标系的父级,这是不符合坐标变换中"单继承"的原则的,所以,一般会将转换关系设置为: map -> doom -> base_link 或 base_footprint。

变为:

四、导航约束条件

1.硬件

虽然导航功能包集被设计成尽可能的通用,在使用时仍然有三个主要的硬件限制:

  1. 它是为差速驱动的轮式机器人设计的。它假设底盘受到理想的运动命令的控制并可实现预期的结果,命令的格式为:x速度分量,y速度分量,角速度(theta)分量

  2. 它需要在底盘上安装一个单线激光雷达。这个激光雷达用于构建地图和定位

  3. 导航功能包集是为正方形的机器人开发的,所以方形或圆形的机器人将是性能最好的。 它也可以工作在任意形状和大小的机器人上,但是较大的机器人将很难通过狭窄的空间。

2.软件

导航功能实现之前,需要搭建一些软件环境:

  1. 毋庸置疑的,必须先要安装 ROS

  2. 当前导航基于仿真环境,先保证上一章的机器人系统仿真可以正常执行

    在仿真环境下,机器人可以正常接收 /cmd_vel 消息,并发布里程计消息,传感器消息发布也正常,也即导航模块中的运动控制和环境感知实现完毕

后续导航实现中,我们主要关注于: 使用 SLAM 绘制地图、地图服务、自身定位与路径规划。

2023.11.15

渝北仙桃数据谷

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

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

相关文章

算不上最全,但都是必备——Redis这些不会不行啊

Redis篇 数据类型及其业务场景 字符串(String) 字符串类型是最基本的数据类型,value 最多可以容纳的数据长度是 512M。 存储任意类型的数据,包括数字、文本等。适用于缓存、计数器、分布式锁等场景。共享 Session 信息 哈希&am…

基于springboot实现学生选课平台管理系统项目【项目源码】

系统开发平台 在该地方废物回收机构管理系统中,Eclipse能给用户提供更多的方便,其特点一是方便学习,方便快捷;二是有非常大的信息储存量,主要功能是用在对数据库中查询和编程。其功能有比较灵活的数据应用&#xff0c…

基于springboot实现校园医疗保险管理系统【项目源码】计算机毕业设计

基于springboot实现校园医疗保险管理系统演示 系统开发平台 在线校园医疗保险系统中,Eclipse能给用户提供更多的方便,其特点一是方便学习,方便快捷;二是有非常大的信息储存量,主要功能是用在对数据库中查询和编程。其…

IDEA-git commit log 线

一、本地代码颜色标识 红色:新建的文件,没有add到git本地仓库蓝色:修改的文件,没有提交到git远程仓库绿色:已添加到git本地仓库,没有提交到git远程仓库灰色:删除的文件,没有提交到g…

Linux Docker 图形化工具 Portainer远程访问

文章目录 前言1. 部署Portainer2. 本地访问Portainer3. Linux 安装cpolar4. 配置Portainer 公网访问地址5. 公网远程访问Portainer6. 固定Portainer公网地址 前言 Portainer 是一个轻量级的容器管理工具,可以通过 Web 界面对 Docker 容器进行管理和监控。它提供了可…

Python武器库开发-flask篇之路由和视图函数(二十二)

flask篇之路由和视图函数(二十二) 通过创建路由并关联函数,实现一个基本的网页: #!/usr/bin/env python3 from flask import Flask# 用当前脚本名称实例化Flask对象,方便flask从该脚本文件中获取需要的内容 app Flask(__name__)#程序实例需…

【移远QuecPython】EC800M物联网开发板的SIM卡初始化和网络状态检测

【移远QuecPython】EC800M物联网开发板的SIM卡初始化和网络状态检测 文章目录 SIM卡初始化导入库获取SIM状态 网络检测导入库等待网络就绪 函数打包附录:列表的赋值类型和py打包列表赋值BUG复现代码改进优化总结 py打包 SIM卡初始化 导入库 import sim获取SIM状态…

java入门, 记录检测网络

一、需求 在开发中,我们经常需要本地连接服务器,或者数据库这些机器或者组件,但是有时候网络不通,我们怎样检测,除了ping 和 telnet 还需要那些常用的技能。 二、检测网络 1、一般我们先ping一些需要连接的网络ip 或…

msys2 + MSVC(VS2019)编译ffmpeg6.0源码

以前使用的v1.2版,很多功能和使用方法发生了变化,需要重新编译新的ffmpeg版。 编译环境: windows 10 , VS2019, MSYS2 1. msys2 下载安装 MSYS2 , https://www.msys2.org/ 2. msys2 环境配置打开 msys2 2.1 安装相关软件 然后输入以下命令安装&…

C++命名空间,函数重载

一、C命名空间 使用过C的人都知道在引入<iostream>头文件后需要加上这样一行代码 using namespace std; 但是对于初学者来说不仔细研究一下可能都不知道为什么需要这样一行代码&#xff0c;接下来将对其进行解释&#xff0c;引入命名空间的概念 C在C的基础上增加了命…

C语言--每日五道选择题--Day12

第一题 1、如下程序的功能是&#xff08; &#xff09; #include <stdio.h> int main() {char ch[80] "123abcdEFG*&";int j;puts(ch);for(j 0; ch[j] ! \0; j){if(ch[j] > A && ch[j] < Z){ch[j] ch[j] e - E;}}puts(ch);return 0; } A…

Spring-boot Mybatis-plus 实战应用

文章目录 前言一、springBoot 集成mybatis-plus1.1 maven 引入依赖&#xff1a;1.2 配置数据源&#xff1a;&#xff1a; 二、使用:2.1 mysql 打印执行的sql 设置&#xff1a;2.2 分页查询&#xff1a;2.3 条件构造器&#xff1a;2.3.1 QueryWrapper 查询&#xff1a;2.3.2 Upd…

【Android Studio调试报错】setContentView(R.layout.activity_main);

报错如下&#xff1a; 解决方法&#xff1a; 1、把参数删除到只剩 .&#xff0c;用自动补齐的方式来查看当前文件的位置是不是&#xff0c;当前左侧工程中layout 所在的位置。在的话它会在自动补齐列表有选项。否则我们选中第一个。 2、选中之后是这样的 然后问题解决&#xf…

杜卡迪Panigale V4 SP2 916限量版,共计500台,这名字真长....

既然是916限量款就不得不提杜卡迪916了&#xff0c;这台车被誉为最美杜卡迪&#xff0c;杜卡迪的仿赛很多设计都能从这台916上找到&#xff0c;这台车是1994年发布&#xff0c;截止目前23年&#xff0c;而V4 SP2 916限量款明年正式发售&#xff0c;所以也可以称为30周年916纪念…

详解[ZJCTF 2019]NiZhuanSiWei 1(PHP两种伪协议、PHP反序列化漏洞、PHP强比较)还有那道题有这么经典?

题目环境&#xff1a; <?php $text $_GET["text"]; $file $_GET["file"]; $password $_GET["password"]; if(isset($text)&&(file_get_contents($text,r)"welcome to the zjctf")){echo "<br><h1>&…

笔记51:循环神经网络入门

本地笔记地址&#xff1a;D:\work_file\DeepLearning_Learning\03_个人笔记\3.循环神经网络\循环神经网络 a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a

视觉分词器统一图文信息,快手提出基座模型 LaVIT 刷榜多模态任务

你是否想过&#xff0c;有朝一日能够仅输入寥寥数语或图片&#xff0c;就可以一键检索最为匹配的短视频内容。不是凭借视频标签、也不是依靠标题字幕&#xff0c;而是大模型真正理解了视频内容。近期&#xff0c;来自快手的新研究利用视觉分词器统一图文信息&#xff0c;LaVIT …

Project Office X Pro 是一款功能齐全的项目管理应用程序

Project Office X Pro是一款适用于Mac的专业项目管理软件。它提供了全面的项目管理工具和功能&#xff0c;帮助用户有效地规划、执行和监控项目。 特征&#xff1a; 甘特图让您一目了然地监控您的整个计划。每项任务都按日、周、月或年以图形方式显示在可视时间线上。可视化视…

(五)七种元启发算法(DBO、LO、SWO、COA、LSO、KOA、GRO)求解无人机路径规划MATLAB

一、七种算法&#xff08;DBO、LO、SWO、COA、LSO、KOA、GRO&#xff09;简介 1、蜣螂优化算法DBO 蜣螂优化算法&#xff08;Dung beetle optimizer&#xff0c;DBO&#xff09;由Jiankai Xue和Bo Shen于2022年提出&#xff0c;该算法主要受蜣螂的滚球、跳舞、觅食、偷窃和繁…

安装virt-manger虚拟机管理器

环境&#xff1a; redhat7:192.168.1.130 安装步骤&#xff1a; 安装qemu-kvm yum install -y qemu-kvm安装libvirt yum install -y libvirt重启libvirt systemctl restart libvirtd查看libvirt的版本信息 virsh version安装virt-manager yum install -y virt-manager检验…