一起自学SLAM算法:12.3 autoware导航系统

2023-05-16

连载文章,长期更新,欢迎关注:


写在前面

第1章-ROS入门必备知识

第2章-C++编程范式

第3章-OpenCV图像处理

第4章-机器人传感器

第5章-机器人主机

第6章-机器人底盘

第7章-SLAM中的数学基础

第8章-激光SLAM系统

第9章-视觉SLAM系统

第10章-其他SLAM系统

第11章-自主导航中的数学基础

第12章-典型自主导航系统

        12.1 ros-navigation导航系统

        12.2 riskrrt导航系统

        12.3 autoware导航系统

        12.4 导航系统面临的一些挑战

第13章-机器人SLAM导航综合实战


上面介绍的ros-navigation和riskrrt导航系统主要都是用于机器人的低速导航,并且大多基于2D地图。而autoware导航系统主要用于无人驾驶汽车的高速导航,并且基于3D地图。除了所导航速度高一点和采用3D地图外,autoware的原理几乎与ros-navigation一样,因此下面主要针对autoware的架构做简单分析,其他内容就不再深入展开了。

虽然autoware导航系统主要应用于无人驾驶汽车领域,但整个框架也依然是基于ROS开发的,autoware框架同样也是由定位、感知识别、路径规划等主要模块组成,如图12-15所示。定位模块借助多种定位算法以及传感器融合来提供混合定位信息;感知识别模块利用计算机视觉或深度神经网络对3D激光雷达和相机中的目标物体进行识别(比如车辆识别、行人识别、交通信号灯识别等),并基于卡尔曼滤波算法对识别出来的物体进行目标跟踪;路径规划模块利用3D地图、定位、目标识别等信息进行路径规划,路径规划过程还需要考虑一些先验规则(比如交通规则),规划器输出的线速度和角速度控制量直接用于控制车辆运动。

图12-15  autoware系统框架

其中感知识别模块的内部结构如图12-16所示,首先利用计算机视觉或者深度神经网络从3D激光雷达以及相机中识别出目标物体(比如车辆、行人、交通信号灯等),然后利用3D地图信息、定位信息、目标物体等进行融合实现对目标物体的追踪,并实时输出被追踪目标物体在地图中的位姿、状态、移动速度等信息。

图12-16  感知识别模块

定位模块的内部结构如图12-17所示,无人汽车的全局位姿由多种定位算法融合而来,这些定位算法包括激光SLAM(即NDT)、视觉SLAM(ORB_SLAM)、组合导航(GNSS+IMU)等。不管是激光SLAM还是视觉SLAM,都需要先运行SLAM建图模式构建出一张地图,然后再载入该地图进行SLAM重定位。对于轮式里程计(odometer)、IMU、GNSS、相机、激光雷达等传感器,除了在SLAM中进行融合外,它们之间也有一些特殊的融合处理过程,也就是说多传感器融合的形式很丰富。

图12-17  定位模块

路径规划模块的内部结构如图12-18所示,其实也就是全局路径规划和轨迹跟踪。只不过需要额外考虑一些约束,比如交通规则约束、避让车辆、避让行人等。对于电动汽车来说,路径规划模块输出的线速度和角速度控制量可以直接用于操控汽车。而对于燃油汽车的话,就需要有一套电子控制转机械控制的中间装置,负责将路径规划模块输出的线速度和角速度控制量转换成汽车的方向盘和油门控制量。

图12-18  路径规划模块 

对于autoware的应用来说,也与ros-navigation类似。先通过源码方式编译安装autoware,然后按照官方教程配置启动。autoware运行起来的定位、感知识别、路径规划以及轨迹跟踪的效果,分别如图12-19、12-20和12-21所示。

 图12-19  定位效果

 图12-20  感知识别效果

 图12-21  路径规划与轨迹跟踪效果

源码仓库

  • Github下载:github.com/xiihoo/Books_Robot_SLAM_Navigation

  • Gitee下载(国内访问速度快):gitee.com/xiihoo-robot/Books_Robot_SLAM_Navigation

参考文献

【1】 张虎,机器人SLAM导航核心技术与实战[M]. 机械工业出版社,2022.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

一起自学SLAM算法:12.3 autoware导航系统 的相关文章

  • ubuntu安装mysql详细过程

    1 安装mysql server sudo apt install mysql server 2 登录 sudo mysql u root p 两点要注意 添加sudo password中 任意密码都能登录 3 修改登录密码 ALTER U
  • 修改docker容器端口映射的方法

    大家都知道docker run可以指定端口映射 xff0c 但是容器一旦生成 xff0c 就没有一个命令可以直接修改 通常间接的办法是 xff0c 保存镜像 xff0c 再创建一个新的容器 xff0c 在创建时指定新的端口映射 有没有办法不
  • 【操作系统入门到成神系列 五】CPU 是如何执行任务的

    作者简介 xff1a 大家好 xff0c 我是 xff0c 独角兽企业的Java开发工程师 xff0c Java领域新星创作者 个人公众号 xff1a xff08 回复 技术书籍 可获千本电子书籍 xff09 系列专栏 xff1a Java
  • 群晖docker镜像源更换为阿里云镜像源

    群晖硬件 xff1a DS218 43 系统版本 xff1a DSM 7 0 41890 docker版本 xff1a 20 10 3 1233 前言 xff1a 除了群晖自带的应用之外 xff0c docker里也拥有及其丰富的软件 xf
  • 学好Windows编程要看的书籍

    本文是接着前面的学好C 43 43 要阅读的书籍而写的 xff0c 如果想了解C 43 43 的学习的话请先看学好C 43 43 要阅读的书籍 xff1a http blog csdn net a809146548 article deta
  • Git分支与标签(干货!!!)

    目录 一 Git分支 分支的概念 xff1a 分支的类别 xff1a 分支策略 xff1a 分支命令 xff1a git操作之pull拉取远程指定分支以及push推送到远程指定分支 xff1a 1 pull操作 2 push操作 二 Tag
  • 单片机结构及一些寄存器

    SCM 将通用微计算机基本功能部件集成在一块芯片上构成的一种专用微计算机系统 SCM 61 CPU 43 OSC 43 ROM 43 RAM 43 T C 43 INT 43 BEC 43 I O 43 UART CPU 中央处理器 OSC
  • Git Gui

    目录 1 什么是Git Gui 2 什么是ssh key 3 git github生成密钥并通过 第一步 xff1a 本地电脑配置 1 配置用户名和邮箱 xff08 如果已经配置 xff0c 就跳过 xff09 2 检查下自己之前有没有已经
  • 韦东山百问网freeRTOS教程

    欢迎阅读韦东山百问网freeRTOS教程 xff01 韦东山百问网freeRTOS教程 文档 100ask net
  • 金三银四跳槽季,Linux面试题放送

    进入金三银四 xff0c 很多小伙伴有被动跳槽的打算 xff0c 所以更新一些Linux面试题 xff0c 希望能帮到大家 xff01 一 你之前在公司使用linux命令做什么 我们公司之前测试系统搭建在linux上 xff0c 使用lin
  • 【软件测试】简历中的项目经历可以怎么写?

    工作这10多年来 xff0c 也经常做招聘的工作 xff0c 面试过的人超过50人次了 xff0c 而看过的候选人的简历则有几百份了 xff0c 但是清晰且能突出重点的简历 xff0c 确实很少遇到 这里基本可以说明一个问题 xff0c 很
  • 一名高级的Javaer,应该了解的 MYSQL 高级知识点

    SQL查询流程 1 通过客户端 服务器通信协议与 MySQL 建立连接2 查询缓存 xff0c 这是 MySQL 的一个可优化查询的地方 xff0c 如果开启了 Query Cache 且在查询缓存过程中查 询到完全相同的 SQL 语句 x
  • 激光slam基础入门笔记2——位姿表示与变换矩阵

    前言 xff1a 初步了解位置与位姿 xff1a 参考链接 xff1a 机器人学 1 0 位置与姿态概述 已注销 的博客 CSDN博客 位置和姿态 二维空间位姿表示与变换矩阵推导 xff1a 参考链接 xff1a 机器人学 1 1 二维空间
  • 【githubgirl】自主导航无人机的硬件组成与搭建方案

    不久前 xff0c 浙江大学 FASTLAB 实验室 xff0c 在 GitHub 上开源了一套自主导航无人机的硬件组成与搭建方案 xff1a Fast Drone 250 该项目可应用于无人机在未知环境中的自主飞行 xff0c 集群飞行等
  • React路由传参的几种方式

    react路由传值有三种方式 xff1a 1 props params 方法 xff0c 该方法可以传递一个或多个值 xff0c 但是每个值的类型都是字符串 xff0c 没法传递一个对象 xff1b 2 query方法 xff0c 该方法类
  • 文章五:Python 网络爬虫实战:使用 Beautiful Soup 和 Requests 抓取网页数据

    一 简介 本篇文章将介绍如何使用 Python 编写一个简单的网络爬虫 xff0c 从网页中提取有用的数据 我们将通过以下几个部分展开本文的内容 xff1a 网络爬虫的基本概念Beautiful Soup 和 Requests 库简介选择一
  • 无人机目标检测:使用YOLOv4在VisDrone数据集上进行目标检测任务

    在本篇博客中 我们将探讨如何使用YOLOv4在VisDrone数据集上进行无人机目标检测任务 目标检测是计算机视觉中的一个重要任务 可以用于自动驾驶汽车 无人机监测和视频分析等多种应用 YOLOv4是一种实时目标检测算法 以其速度和准确性而
  • rospy的publisher和init_node

    文章目录 1 xff0c class Publiser xff08 发布者 xff09 2 rospy init node 初始化节点 1 xff0c class Publiser xff08 发布者 xff09 废话不多说 xff0c 先
  • ros功能包

    使用ROS的功能包使用以下常见的机器视觉应用 1 xff09 摄像头标定 xff1a 摄像头本身存在光学畸变 xff0c 可以使用camera calibration功能包实现双目和单目摄像头的标定 2 xff09 基于opencv的人脸识
  • 如何彻底关闭Win10自动更新,Win10永久关闭自动更新的方法

    如何彻底关闭Win10自动更新 xff1f Win10自动更新的问题是很多用户都遇到的问题 xff0c 很多时候我们关闭了自动更新 xff0c 过一段时间系统又自动更新了 xff0c 由于win10自动更新非常顽固 xff0c 所以我们要从

随机推荐

  • 函数模板及库函数

    函数模板 xff08 function template xff09 是一个独立于类型的函数 xff0c 可作为一种模式 xff0c 产生函数的特定类型版本 使用函数模板可以设计通用型的函数 xff0c 这些函数与类型无关并且只在需要时自动
  • Vmware虚拟机Ubuntu的ssh远程登陆--笔记

    SSH远程登录 apt更新网路更新ssh配置了解的部分 SecureCRTPortable登陆 apt更新 版本号 xff1a Ubuntu 16 04 环境 xff1a Vmware 17 2 网路 首先 xff0c 先检查网络是否畅通
  • Docker的常用命令

    一 Docker中几个重要的概念 镜像 和容器 是docker中两个非常重要的 概念 镜像 xff08 Image xff09 xff1a Docker 将应用程序及其所需的依赖 函数库 环境 配置等文件打包在一起 xff0c 称为镜像 容
  • Linux-C语言编写-UDP服务器客户端通信流程简介(代码)

    目录 一 xff0c 服务器 1 创建数据报套接字 2 填充结构体 3 绑定服务器的ip和端口 4 接收来自客户端的消息 recvfrom 5 关闭套接字 6 详细代码 二 xff0c 客户端 1 创建数据报套接字 2 填充结构体 xff0
  • C++三阶贝塞尔曲线

    文章目录 1 贝塞尔曲线2 示意图3 c 43 43 代码实现 1 贝塞尔曲线 贝塞尔曲线阶数等于控制点个数n 1将控制点首尾相连并且取每段连线上一点P xff0c 再将每个线段上的P点连接设第一个控制点为P1 xff0c 第二个为P2 x
  • Ubuntu 图达通激光雷达可视化/获取点云

    文章目录 0 ILA 平台网页预览1 Ubuntu的安装2 安装Ubuntu对应版本ros3 激光雷达接线4 解压SDK文件5 启动ros可视化点云6 录制点云7 播放录制文件8 rosbag文件 gt pcd文件 0 ILA 平台网页预览
  • Python的while循环

    目录 一 计数器 二 while循环使用 三 不同循环的使用环境判断 xff1a 四 while循环使用break和continue 五 while的嵌套使用 一 计数器 计数器 xff0c 是一个叫法 xff0c 代表的是一个功能 用于记
  • 字符串结束符

    在C语言中 xff0c 存储一个字符串通常用一个char 数组 在C语言中 xff0c 为了方便存储 xff0c 要求在最后一个字符的后面存储一个0 xff08 一个字节 xff09 这个0称为 字符串结束符 xff0c 常用 0 表示 在
  • 一起自学SLAM算法:1.1 ROS简介

    连载文章 xff0c 长期更新 xff0c 欢迎关注 xff1a 写在前面 第1章 ROS入门必备知识 1 1 ROS简介 1 2 ROS开发环境搭建 1 3 ROS系统架构 1 4 ROS调试工具 1 5 ROS节点通信 1 6 ROS其
  • 一起自学SLAM算法:1.2 ROS开发环境搭建

    连载文章 xff0c 长期更新 xff0c 欢迎关注 xff1a 写在前面 第1章 ROS入门必备知识 1 1 ROS简介 1 2 ROS开发环境搭建 1 3 ROS系统架构 1 4 ROS调试工具 1 5 ROS节点通信 1 6 ROS其
  • 戴尔电脑恢复系统后,D盘被加密Bitlocker,要求输入48位密钥,才能打开D盘---解决过程

    一 前言 今天DELL电脑恢复系统后 xff0c D盘被加密 xff08 D盘图标上有一把黄色的锁 xff09 xff0c 鼠标双击准备打开D盘 xff0c 提示了一个密钥ID xff0c 让输入48位码解密 xff0c 被microsof
  • 一起自学SLAM算法:1.4 ROS调试工具

    连载文章 xff0c 长期更新 xff0c 欢迎关注 xff1a 写在前面 第1章 ROS入门必备知识 1 1 ROS简介 1 2 ROS开发环境搭建 1 3 ROS系统架构 1 4 ROS调试工具 1 5 ROS节点通信 1 6 ROS其
  • 一起自学SLAM算法:1.5 ROS节点通信

    连载文章 xff0c 长期更新 xff0c 欢迎关注 xff1a 写在前面 第1章 ROS入门必备知识 1 1 ROS简介 1 2 ROS开发环境搭建 1 3 ROS系统架构 1 4 ROS调试工具 1 5 ROS节点通信 1 6 ROS其
  • 一起自学SLAM算法:3.4 图像特征点提取

    连载文章 xff0c 长期更新 xff0c 欢迎关注 xff1a 写在前面 第1章 ROS入门必备知识 第2章 C 43 43 编程范式 第3章 OpenCV图像处理 3 1 认识图像数据 3 2 图像滤波 3 3 图像变换 3 4 图像特
  • 一起自学SLAM算法:第4章-机器人传感器

    连载文章 xff0c 长期更新 xff0c 欢迎关注 xff1a 写在前面 第1章 ROS入门必备知识 第2章 C 43 43 编程范式 第3章 OpenCV图像处理 第4章 机器人传感器 4 1 惯性测量单元 4 2 激光雷达 4 3 相
  • 一起自学SLAM算法:5.4 ARM主机Jetson-tx2

    连载文章 xff0c 长期更新 xff0c 欢迎关注 xff1a 写在前面 第1章 ROS入门必备知识 第2章 C 43 43 编程范式 第3章 OpenCV图像处理 第4章 机器人传感器 第5章 机器人主机 5 1 X86与ARM主机对比
  • 一起自学SLAM算法:6.1 底盘运动学模型

    连载文章 xff0c 长期更新 xff0c 欢迎关注 xff1a 写在前面 第1章 ROS入门必备知识 第2章 C 43 43 编程范式 第3章 OpenCV图像处理 第4章 机器人传感器 第5章 机器人主机 第6章 机器人底盘 6 1 底
  • 一起自学SLAM算法:7.5 基于因子图的状态估计

    连载文章 xff0c 长期更新 xff0c 欢迎关注 xff1a 写在前面 第1章 ROS入门必备知识 第2章 C 43 43 编程范式 第3章 OpenCV图像处理 第4章 机器人传感器 第5章 机器人主机 第6章 机器人底盘 第7章 S
  • 一起自学SLAM算法:10.2 VINS算法

    连载文章 xff0c 长期更新 xff0c 欢迎关注 xff1a 写在前面 第1章 ROS入门必备知识 第2章 C 43 43 编程范式 第3章 OpenCV图像处理 第4章 机器人传感器 第5章 机器人主机 第6章 机器人底盘 第7章 S
  • 一起自学SLAM算法:12.3 autoware导航系统

    连载文章 xff0c 长期更新 xff0c 欢迎关注 xff1a 写在前面 第1章 ROS入门必备知识 第2章 C 43 43 编程范式 第3章 OpenCV图像处理 第4章 机器人传感器 第5章 机器人主机 第6章 机器人底盘 第7章 S