【ros】7.ros导航navigation(定位规划)

news2024/11/23 8:23:39

物竞天择,优胜劣汰;苟不自新,何以获存。——梁启超

文章目录

    • :smirk:1. ros导航
    • :blush:2. 2d导航
    • :satisfied:3. 3d导航

😏1. ros导航

ros机器人有个导航功能,类似自动驾驶车辆的规控部分,即根据地图(上一部分)和感知信息,获取自身定位,并规划出到达目的地的最优路径,并将指令发布出去。

ROS的导航是指ROS机器人在环境中行驶的过程。ROS中通常使用AMCL (自适应蒙特卡罗定位器)来定位机器人,并使用Costmap和全局规划算法进行路径规划。以下是ROS导航的主要组件:

  1. 传感器:机器人需要安装适当的传感器,如激光雷达、摄像头、IMU等,以获取环境信息。
  2. 地图构建:机器人需要在运动区域内扫描环境以生成地图。可以使用激光雷达和SLAM算法来构建地图。
  3. 定位:机器人需要通过传感器数据融合(激光雷达、IMU等),实现定位。ROS中提供了AMCL算法,通过数据融合实现机器人的定位。
  4. 路径规划:机器人需要在已构建好的地图上规划一条到达目标点的路径。ROS中提供了全局规划算法(如Dijkstra、A*等)来实现路径规划。
  5. 路径跟踪:机器人需要在规划好的路径上运动,同时需要对障碍物进行避让。ROS中提供了局部路径规划算法(如DWA、EBF等)来实现路径跟踪。
  6. 运动控制:机器人需要执行速度和方向控制,以沿着已规划好的路径行进。ROS中的navigation stack提供了运动控制的接口和API。

地图构建的部分在上一节slam已经提过,这一节主要是定位和规控。

😊2. 2d导航

2d导航常用算法有:

  1. Dijkstra算法:基于图论的寻路算法,用于寻找两点之间的最短路径。它从起点开始,一步一步地向外扩张,直到扩张到目标点为止。
  2. A*算法:是一种基于评估函数的启发式寻路算法,能够更加高效地搜索到最短路径。它通过估算从当前节点到目标节点的路径长度,来决定下一步走哪条路径。
  3. DWA算法:是一种基于反馈控制的运动规划算法,能够实时计算出机器人在当前环境中的最优轨迹。它通过不断调整机器人的速度和方向,以适应环境的变化和机器人的约束条件。
  4. EBF算法:是一种基于经验贝叶斯优化的路径规划算法,能够较好地处理环境的动态变化和非凸障碍物。它通过不断优化半高程地图,以减少轨迹的运动成本。
  5. AMCL算法:AMCL算法是一种自适应蒙特卡洛定位算法,可用于3D导航中的机器人位置估计。与2D导航不同的是,AMCL需要融合多种传感器数据,如激光雷达、IMU、RGB-D相机等,实现机器人位置的高精度估计。
  6. MoveIt算法:MoveIt是一种运动规划框架和库,为机器人提供路径规划、运动控制、碰撞检测等功能。
  7. Move_base算法:是ROS中常用的机器人导航库,它提供了一套完整的导航系统包括路径规划、本地路径跟踪、机器人状态估计等功能。Move_base由多种算法组成

源码:https://github.com/ros-planning/navigation

源码中包含了amcl和move_base功能包,可直接使用或二次开发。

😆3. 3d导航

ros中关于3d导航的功能包。

源码:https://github.com/ros-planning/3d_navigation

在这里插入图片描述

以上。

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

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

相关文章

性能测试:深入理解线程数,并发量,TPS,看这一篇就够了

并发数,线程数,吞吐量,每秒事务数(TPS)都是性能测试领域非常关键的数据和指标。 那么他们之间究竟是怎样的一个对应关系和内在联系? 测试时,我们经常容易将线程数等同于表述为并发数&#xff…

短视频app搭建的技术难点是什么?

近年来,短视频app的流行引起了广泛关注。越来越多的企业开始投入资源来开发短视频app,以满足用户的需求。然而,短视频app的开发过程中,存在许多技术难点需要解决。本文将深入分析短视频app搭建的技术难点。 短视频app的意义 随着…

Centos 7 内核在线升级

目录 一、参考文档 二、升级centos内核 三、centos内核一键升级脚本 一、参考文档 1、内核版本的分类等相关信息见官网:https://www.kernel.org/ 2、 第三方仓库ELRepo参考官网:http://elrepo.org/tiki/HomePage 3、国内yum源:https://…

为什么大量失业集中爆发在2023年?被裁?别怕!失业是跨越职场瓶颈的关键一步!对于牛逼的人,这是白捡N+1!...

被裁究竟是因为自身能力不行,还是因为大环境不行? 一位网友说: 被裁后找不到工作,本质上还是因为原来的能力就配不上薪资。如果确实有技术在身,根本不怕被裁,相当于白送n1! 有人赞同楼主的观点&…

如何在视频直播网站开发上集成即时聊天功能

视频直播网站开发需要考虑许多因素,其中一个非常重要的因素是与观众的互动。为了增强观众的参与度和留存率,许多视频直播网站都已经开始集成即时聊天功能。本文将介绍如何在视频直播网站开发上集成即时聊天功能,以提高观众的参与度和留存率。…

SQL Server基础 第五章 函数的使用(日期、字符串、时间、数学、转换等函数)

前言 在SQL Server中提供了许多内置函数,SQL Server中的内置函数就相当于Java、C#等编程语言中的内置API函数。按照函数种类可以分为聚合函数、数学函数、字符串函数、日期函数和时间函数、转换函数和元数据的数6种。在本章中重点讲解比较常用的4种函数&#xff0c…

python从入门到入狱系列-帮你彻底搞懂python的项目实战,爬虫获取NBA成员信息

作者:20岁爱吃必胜客(坤制作人),近十年开发经验, 跨域学习者,目前于海外某世界知名高校就读计算机相关专业。荣誉:阿里云博客专家认证、腾讯开发者社区优质创作者,在CTF省赛校赛多次取得好成绩。…

020 - C++ 枚举

今天我们要讲的是 C 中的枚举。 enum 是 enumeration 的缩写,基本上可以说,它就是一个数值集合。如果你想要给枚举一个更实际的定义,它们是给一个值命名的一种方法。 所以我们不用一堆叫做 A、B、C 的整数。我们可以有一个枚举数。它的值是…

Flask 与 Django 先学哪个呢

本文把 Flask 和 Django 做一个比对,因为我对这两个 Python Web 框架都有实际的开发经验。希望我可以帮助您选择学习哪个框架,因为学习一个框架可能会非常耗时 —— 当然也很有趣! 相似之处 让我们从相似之处开始。 No. 1 Flask 和 Djang…

ROS学习第二十七节——URDF集成Rviz基本流程

前面介绍过,URDF 不能单独使用,需要结合 Rviz 或 Gazebo,URDF 只是一个文件,需要在 Rviz 或 Gazebo 中渲染成图形化的机器人模型,当前,首先演示URDF与Rviz的集成使用,因为URDF与Rviz的集成较之于…

ROS学习第二十八节——URDF之robot link

1.概述 URDF 文件是一个标准的 XML 文件,在 ROS 中预定义了一系列的标签用于描述机器人模型,机器人模型可能较为复杂,但是 ROS 的 URDF 中机器人的组成却是较为简单,可以主要简化为两部分:连杆(link标签) 与 关节(joint标签)&…

数据库基础篇 《11.数据处理之增删改》

1. 插入数据 1.1 实际问题 解决方式:使用 INSERT 语句向表中插入数据。 1.2 方式1:VALUES的方式添加 使用这种语法一次只能向表中插入一条数据。 情况1:为表的所有字段按默认顺序插入数据 INSERT INTO 表名 VALUES (value1,value2,....);…

03.初始React脚手架

一.使用create-react-app创建react应用 1.react脚手架 xxx脚手架:用来帮助程序员快速创建一个基于xxx库的模板项目 包含了所有需要的配置(语法检查,jsx编译,devServer…)下载好了所有相关的依赖可以直接运行一个简单…

硬件还不够!激光雷达「开卷」感知算法+数据闭环

激光雷达正式进入量产周期,而如何用好激光雷达,并形成更优更具性价比的激光雷达系统方案,助力激光雷达量产上车并真正用好激光雷达系统,将是接下来两年激光雷达赛道的主要方向。 在近期开幕的上海国际车展上,亮道智能…

学系统集成项目管理工程师(中项)系列10_立项管理

1. 系统集成项目管理至关重要的一个环节 2. 重点在于是否要启动一个项目,并为其提供相应的预算支持 3. 项目建议 3.1. Request for Proposal, RFP 3.2. 立项申请 3.3. 项目建设单位向上级主管部门提交的项目申请文件,是对拟建项目提出的总体设想 3…

延迟渲染 Deferred Rendering

前向渲染 先计算光照再裁剪。 前向渲染是现在最基础,也是最多引擎使用的标准。前向渲染的流程是给定一个几何体,引擎对其进行从顶点到像素着色器的一系列计算,然后输出到最终的图像缓冲区。场景中有多个几何体时,引擎就是对其挨个…

薪资18K需要什么水平?来看看98年测试工程师的面试全过程…

我的情况 大概介绍一下个人情况,男,本科,三年多测试工作经验,懂python,会写脚本,会selenium,会性能,然而到今天都没有收到一份offer!从年后就开始准备简历,年…

西交大-一百本书-解决不能粘贴的限制

快毕业了,要填四个一百,其他三个都几分钟就填完了。只有读一百本书要写读书笔记且不能粘贴,防谁呢真是的。发现一种解决不能粘贴限制的方法。顺道附上利用ChatGpt快速生成书评的方法。 四个一百网址 一、 解除粘贴限制 以edge浏览器为例 登…

Python|勘测定界TXT坐标点转shp文件——Arcpy实现

平时日常工作中,经常会遇到txt格式的测绘数据,这类数据通常只有不同地块的界址点集和坐标系信息,没法直接导入GIS软件中进行分析。拿到这类原始文本文件,首要工作就是将之转换为shp图层数据。 今天,主要分享两种转shp数据的方法,一种是在arcmap中直接转换,另一种是通过…

springboot+RateLimiter+AOP自定义注解限流

springbootRateLimiterAOP自定义注解限流 RateLimiter简介springboot集成RateLimiterpom.xml引入RateLimiter常用api代码实现自定义注解Limiter限流切面验证 RateLimiter简介 RateLimiter是Guava库中的一个限流器,它提供如下功能: (1)基于PPS进行限流 (…