《动手学ROS2》10.1 机器人自主导航技术概述

2023-11-17

《动手学ROS2》10.1 机器人自主导航技术概述

本系列教程作者:小鱼
公众号:鱼香ROS
QQ交流群:139707339
教学视频地址:小鱼的B站
完整文档地址:鱼香ROS官网
版权声明:如非允许禁止转载与商业用途。
公众号

10.1 机器人自主导航技术概述

1.自主导航的目的

打开Nav2中文网,映入眼帘的第一句话是:

在这里插入图片描述

这个就是自主导航的目的,让我们的机器人自主的安全的从A点移动到B点。

那么对于机器人来说,就会遇到三个经典的问题:

  1. 我在哪里?(A点的位置如何得到——定位)
  2. 我到哪里去?(B点的位置如何表示——环境建模|地图)
  3. 我该怎么去?(A到B点的安全路径如何获取,如何走——路径规划&控制)

2.如何实现自主导航

2.1 导航的三大组件

还记得在1.1章节中的机器人三大组件吗?感知决策和控制。

那对于移动机器人来说,这三大组件分别对应着:

名称 对应关系
感知 建图和定位
决策 路径规划(全局路径规划、局部路径规划)
规划 运动控制

所以对于移动机器人来说,一个完整的导航系统就是由建图和定位、路径规划、运动控制这三部分组成。

2.2 三大组件之间的关系

三大组件之间有何关系?如何互相配合完成自主导航的呢?

小鱼再对上图做一个更详细的介绍,每组件分别对应的任务如下:

  • 感知系统,通过机器人上或机器人外的传感器数据,完成对环境的感知,获取到机器人当前的位置(A)和完成对环境的建模(地图)。
  • 决策系统,根据机器人当前的位置和地图中目标点的位置,结合地图中的障碍物信息,规划出一条无障碍的路径。
  • 控制系统,根据决策系统给出的路径,控制电机(执行组件)完成路径的追踪,并在跟随时结合传感器信息完成障碍物的躲避。

3.自主导航案例

小鱼分享几个建图定位和决策控制的案例,帮助大家理解上述过程。

看完视频,一键三连后,我们再继续

视频中,小鱼先是用键盘控制机器人完成了建图,这一步其实就是感知中的建图环节(使用Cartographer实现),在建图的过程中其实也包含了机器人的定位。

建好地图将地图保存,接着启动Nav2,我们使用RVIZ2的工具给机器人一个目标点(B点),机器人自己规划出了一条路径,从A点移动到B点。这个过程就包含了决策和控制(使用Navigation2实现)。

4.总结

了解完了自主导航技术,接下来我们就一步步的在Fishbot上实现自主导航。

是不是很激动呀~

别着急,课后作业来了:

  • 根据小鱼的这篇文章TurtleBot3导航测试体验建图导航(完不成也没关系,可以继续往下学习)

技术交流&&问题求助:

  • 微信公众号及交流群:鱼香ROS
  • 小鱼微信:AiIotRobot
  • QQ交流群:139707339
  • 版权保护:已加入“维权骑士”(rightknights.com)的版权保护计划
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

《动手学ROS2》10.1 机器人自主导航技术概述 的相关文章

  • [转]ROS2 源码解析与实践 - Node

    转载说明 原文链接https floodshao github io 2020 03 06 ros2 源码解析与实践 Node 感谢原作者分享 xff01 如有侵权 xff0c 请联系我删除 xff0c 谢谢 xff01 文章目录 1 No
  • ros2遇到的问题和解决方法-----win10安装ros2_dashing

    1 win10安装ros2 dashing可参考官方网站提供的安装方法https index ros org doc ros2 Installation Dashing Windows Install Binary 2 在下载安装的时候会很
  • ROS2通过话题的发布与订阅进行串口通信

    目录 步骤新建一个cpp header的包进入include xff0c 新建头文件minimal publisher hpp进入src目录 xff0c 新建文件minimal publisher cpp进入src目录 xff0c 新建文件
  • 六、ROS2通信机制(服务)

    一 服务介绍 客户端发送请求给服务端 xff0c 服务端可以根据客户端的请求做一些处理 xff0c 然后返回结果给客户端 这里与话题的主要区别就是 xff1a 话题是没有返回的 xff0c 适用于单向或大量的数据传递 而服务是双向的 xff
  • nav2阅读笔记

    1 机器人起始坐标是在全局地图中 xff0c 目标点也在全局地图中 xff0c 全局路径规划在全局地图完成 机器人的运动控制是在局部地图中完成 xff0c 也就是在车体坐标系下 2 无人机 自动驾驶车辆全局路径规划 局部路径规划都是在全局坐
  • ROS2安装serial库

    场景及问题描述 xff1a 今天在使用ros2读取IMU数据的时候 xff0c 他需要用到一个serial的包 xff0c 由于我使用的是Ubuntu20 04 43 ROS2humble xff0c 并且没有安装这个包 xff0c 所以出
  • ros2 CMakeLists.txt与packages.xml写法

    注 xff1a 尽量使用ament cmake auto来编写cmakelists txt文件 xff0c 依赖的程序包在packages xml文件中用 lt depend gt nav msgs lt depend gt 的形式声明 x
  • ROS2中使用gazebo仿真时找不到libgazebo_ros_openni_kinect.so

    因为ros2的gazebo ros pkgs中 xff0c 已经将该插件移除 xff0c 或者说将该插件的功能合并到libgazebo ros camera so中 xff0c 这里是作者的说明 合并后 xff0c 深度相机的用法参考这里
  • ROS2中用MoveIt2控制自己的舵机机械手(3)

    1 前言 在前一篇中 xff0c 已经基本确认了整个的硬件架构 接下来先搞定机械臂的Solidworks建模以及导出urdf文件 xff0c 以及PCA9685对舵机的测试 2 机械手Solidworks建模及其URDF文件导出 2 1 机
  • 【Ubuntu20.04安装 ROS2-galactic】

    Ubuntu20 04 安装 ROS2 galactic 按照官网流Ubuntu20 04 安装 ROS2 galactic程在终端依次执行命令就行 xff1a 安装流程链接 install ros 2 package 执行到最后一步 xf
  • Ubuntu 22.04(Jammy)安装 ROS2(Humble)

    本文介绍如何在 Ubuntu 22 04 xff08 Jammy xff09 上安装 ROS 2 软件包 xff0c ROS 2 的版本是当前最新的 Humble Hawksbill 本教程适用于 amd64 和 arm64 平台 准备工作
  • ROS个别命令的使用 ros ros2

    ros1 录包 rosbag record a O filename bag 解释 xff1a a是把所有的包都进行录制 xff0c O表示后面需要跟输出的文件名字 xff0c o的话系统会自己添加录制日期为文件名上 xff1b rosba
  • ros1 bag to ros2 bag play

    有个问题是 ros1格式的bag需要转到ros2格式的bag 怎么弄 需要注意的是 这里只能提供标准信息的rosbag转换 如果带有自定义msg的rosbag 应该是不可以的 请注意一下 解决办法 安装依赖 sudo apt install
  • 通过 Debian Packages安装ROS 2(Linux Mint20.2安装ROS2 foxy)

    安装ROS foxy的文章较少 这里记录一下自己安装时遇到的一些坑 1 https raw githubusercontent com访问不了 1 设置语言环境 locale check for UTF 8 sudo apt update
  • 在ros2下使用ros1_bridge与ros1自定义消息桥接

    在ros2下使用ros1 bridge与ros1自定义消息桥接 示例环境 操作系统 ubuntu 20 04 amd64 ros版本 noetic ros2版本 foxy ros1示例代码 创建ros1的工作空间catkin ws 功能包c
  • 《动手学ROS2》10.1 机器人自主导航技术概述

    动手学ROS2 10 1 机器人自主导航技术概述 本系列教程作者 小鱼 公众号 鱼香ROS QQ交流群 139707339 教学视频地址 小鱼的B站 完整文档地址 鱼香ROS官网 版权声明 如非允许禁止转载与商业用途 10 1 机器人自主导
  • ROS2报错 AttributeError: type object ‘type‘ has no attribute ‘_TYPE_SUPPORT‘

    问题描述 今天在用python写ROS2编写发布者和订阅者 然后需要用到自己的写的接口 在写完之后 使用colcon build并没有报错 并且可以使用ros2 interface show my interface指令查看到自己定义的接口
  • Caught exception in launch(see debug for traceback)

    Caught exception in launch see debug for traceback Caught exception when trying to load file of format xml Caught except
  • ros2 基础学习 15- URDF:机器人建模方法

    URDF 机器人建模方法 ROS是机器人操作系统 当然要给机器人使用啦 不过在使用之前 还得让ROS认识下我们使用的机器人 如何把一个机器人介绍给ROS呢 为此 ROS专门提供了一种机器人建模方法 URDF Unified Robot De
  • ros2 基础学习14-- Launch:多节点启动与配置脚本

    到目前为止 每当我们运行一个ROS节点 都需要打开一个新的终端运行一个命令 机器人系统中节点很多 每次都这样启动好麻烦呀 有没有一种方式可以一次性启动所有节点呢 答案当然是肯定的 那就是Launch启动文件 它是ROS系统中多节点启动与配置

随机推荐