无人驾驶实战-第八课(定位算法)

无人驾驶中定位的作用:
定位+高精度地图:提供当前位置的静态环境感知 (车道线/交通指示牌/红绿灯/柱子/建筑物/等)
定位+动态物体感知:将感知到的动态物体正确放入静态环境 
定位获取位置姿态:用于路径规划/决策
场景:室内(房间/车库/仓库等)  / 室外
按照感知模式 
outside-in: 接收的外界信号包含位置相关信息 / GNSS UWB WIFI  Lidar-Hdmap Camera-marker(室外街景门牌室内maker) 磁条加marker(规划都做了) 扫地机本身贴marker加顶部相机  /   (适合测量方程) 
inside-out: 通过自身观察和感受获取位置信息 / IMU magnetometer  SLAM VR中的墙面贴marker建图  /  (适合状态方程) 
按照计算方法 
基于信号的定位: GNSS UWB  WIFI / 几何关系 
环境特征匹配: Lidar-HDmap Camera-marker Radar  / 需要建图,观测特征与数据库的特征匹配得到当前位姿态 
航迹推算: IMU odometry(轮子里程计/视觉里程计SLAM)  / 根据之前的位姿推断当前的位姿
定位系统的融合
原理: 不同源传感器信息通过滤波器(KF EKF UKF PF等)进行融合 
典型融合方式: 
IMU+GNSS:高频率累计误差+低频率高精度                                 无人机/无人车/导弹/室外 
GNSS +  Lidar-HDmap/Camera-marker:适合开放环境+适合密集特征环境   无人车/室内外 
VIO(SLAM+IMU+GNSS)                                                                       无人机/无人车/室内外 
IMU+magnetometer  矫正角度(例如:互补滤波/MadgwickAHRS)           无人机/无人车/室内外
GNSS(GPS+BDS+GLONASS+GALILEO)
基于信号的定位: 车载/手机GPS接收机接收卫星发射的无线电信号 
问题1:无线电信号受到大气干扰无法准确计算GPS接收机到卫星的距离
解决:差分GPS的技术(RTK)。 在地面上建基站(Base Station)它有精确位置信息。
问题2:遮挡/反射问题
遮挡:GPS接收机在高楼周围,容易失去某一方向所有卫星信号,仅有特定方向的卫星信号使得定位精度降低 
反射:有些信号被大楼楼体反射之后才被接收到,称作多路径信号(Multi-Path Signal),多路径信号计算得到的距离会明显大于实际距离(因为时间偏大)。
解决: 仅靠GPS一种传感器很难在复杂场景中实现精确定位,必须引入其它互补传感器进行融合定位  
问题3:定位频率低 GPS定位的频率一般只有10Hz(100ms定位一次)
解决:引入其它传感器(例如IMU)提高定位频率。进而提高控制频率。
GNSS小结:
优点: 全球/全天候/全时段/高精度 
缺点: RTK差分技术的基站布设成本高,依赖可视卫星数量,易受电磁环境干扰,定位频率不够高,遮挡/反射(多径效应)
IMU
主要由陀螺仪和加速度计组成。消费级IMU(精度/价格低) ->光纤IMU(精度价格高)
加速度计能够测量出载体相对于惯性空间所受的力(进而得到加速度) 
陀螺仪能够测量出载体沿陀螺仪轴向的旋转角速度 
IMU是惯性导航系统的基础,直接决定了惯性导航系统所能够达到的精度
IMU的特点
优点:输出频率高,短时精度高,六自由度,可工作于任何复杂环境 
缺点: 误差随时间累积
Lidar-HDmap
预先制作定位地图3D/2D,车上的实时点云和地图进行匹配计算激光雷达的位置和姿态  
基于3D点云匹配, Scan Matching完成点云配准,常用的方法有两个:
ICP:最常见的是迭代最近点法(Iterative Closest Point ,ICP),该方法基于当前扫描和目标扫描的距离度量来完成点云配准 
NDT:正态分布变换(Normal Distributions Transform,NDT)也是进行点云配准的常用方法,它基于点云特征直方图来实现配准
激光定位特点: 
优点: 鲁棒性比较好/ 无GPS可工作 / 能实现10厘米以内的定位精度 
缺点: 需要预先制作地图并定期更新地图(环境会发生变化),雨雪天气情况下Lidar被折射导致收到的点云数据变少,开放路段点云少仍需要GNSS(对于场景单一路段例如高速公路 GNSS+Lidar-HDmap成本过高)
Camera-marker 
街景定位(Sacha Arnoud, Director of Engineering, Waymo):Waymo利用谷歌强大的街景数据标注出路牌号码,商店标志,红路灯等静态数据,来确定自身车辆所在的位置 
原理: 预先标注出路牌号码,商店牌匾,红绿灯等静态marker的全球坐标系。车载相机检测出maker之后通过透视原理或者相对距离推算出车辆自身的全球坐标 
优点: 简单直接:街景地图标记好之后,车辆本身只需要摄像机就可以实现精准的定位和导航 
缺点: 巨大的数据量和人工标注,摄像机采图问题:强光/弱光/逆光都会影响检查效果,基于图像计算深度图存在误差(越远视察越小 误差越大 z=fb/d),开放场景下(如高速公路) maker少甚至没有marker
SLAM:Simultaneous Localization and Mapping  同时定位与建图定位 :
室内、室外  (我在哪?) 
建图:稀疏、半稠密、稠密 (环境如何?) 
准确的定位需要精确的地图,精确的地图来自准确的定位
机器人定位(例如扫地机)/手持设备定位(例如AR)/自动驾驶定位
类型:激光SLAM / 视觉SLAM(Monocular/Stereo/RGB-D) / VIO(IMU+SLAM)
视觉SLAM框架
前端: Visual Odometry  视觉里程计用于估计邻近时刻的相机运动(类似IMU航迹推算) 
后端:Optimization(滤波器法/图优化法)使用局部约束关系估计最优轨迹与地图 
回环检测:Loop Closing 检测是否形成了一个回环进而矫正整圈轨迹 
建图:Mapping  度量地图、拓扑地图、稀疏地图、稠密地图
定位融合技术
原理:不同源传感器信息通过滤波器(KF EKF UKF PF等)进行融合 优势互补
典型融合方式:
IMU+GNSS:高频率累计误差+低频率高精度                                  无人机/无人车/导弹/室外 
GNSS +  Lidar-HDmap/Camera-marker:适合开放环境+适合密集特征环境       无人车/室内外 
VIO(SLAM+IMU+GNSS)                                                                     无人机/无人车/室内外 
IMU+magnetometer  矫正角度(例如:互补滤波/MadgwickAHRS)           无人机/无人车/室内外
直方图滤波
本质就是先假设在各点的概率相同,在通过移动和观察逐步更新概率分布,最后用作定位。直方图滤波在无人驾驶中用到的比较多。
Apollo定位方案
二维直方图滤波器:-
中心放在预测姿态(x0, y0),滤波器一般选择21*21=441个位置进行搜索 - predict(move):     - update(sense): SSD衡量观测与地图点的匹配程度

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

单细胞测序基础知识

构建文库 上机测序 根据不同的荧光检测不同的碱基 质量控制(质控QC) 去除低质量的序列 表达定量 统计reads数,进而得到表达矩阵 标准化 让所有样本处在同一起跑线上 主成分分析PCA 图中每个点都代表一个样本,不同颜色…

pycharm、idea、golang等JetBrains其他IDE修改行分隔符(换行符)

文章目录 pycharm、idea、golang系列修改行分隔符我应该选择什么换行符JetBrains IDE,默认行分隔符 是跟随系统修改JetBrains IDE,默认行分隔符 pycharm、idea、golang系列修改行分隔符 一般来说,不同的开发环境和项目对换行格式的使用偏好不同: Windo…

解决vite+vue3项目npm装包失败

报错如下: Failed to remove some directories [ npm WARN cleanup [ npm WARN cleanup D:\\V3Work\\v3project\\node_modules\\vue, npm WARN cleanup [Error: EPERM: operation not permitted, rmdir D:\V3Work\v3project\node_modules\vue\reactivity\…

HTML5中Canvas学习笔记:Canvas

目录 一、HTML中Canvas画图strokeStyle 和 fillStyle 的区别是什么? 二、如何设置一幅canvas图中某个颜色透明? 三、H5 canvas中strokeRect参数如果是小数,如何处理? 四、H5 Canvas中如何画圆角矩形框? 一、HTML中…

设计模式行为型——迭代器模式

什么是迭代器模式 迭代器模式(Iterator Pattern)属于行为型模式,其提供一种方法顺序访问一个聚合对象中的各种元素,而又不暴露该对象的内部表示,即不需要知道集合对象的底层表示。编程环境中非常常用的设计模式。 迭代…

【驱动开发day8作业】

作业1&#xff1a; 应用层代码 #include <stdlib.h> #include <stdio.h> #include <sys/types.h> #include <sys/stat.h> #include <fcntl.h> #include <unistd.h> #include <string.h> #include <sys/ioctl.h>int main(int…

python --windows获取启动文件夹路径/获取当前用户名/添加自启动文件

如何使用Python获取计算机用户名 一、Python自带的getpass模块可以用于获取用户输入的密码&#xff0c;但是它同样可以用来获取计算机用户名。 import getpassuser getpass.getuser() print("计算机用户名为&#xff1a;", user)二、使用os模块获取用户名 Python的…

在windows配置redis的一些错误及解决方案

目录 Unable to connect to Redis; nested exception is io.lettuce.core.RedisConnectionException:用客户端Redis Desktop Manager一样的密码端口&#xff0c;是可以正常连接的&#xff0c;但是运行java程序之后使用接口请求就会报错 Unable to connect to Redis; nested e…

计算机视觉与图形学-神经渲染专题-Seal-3D(基于NeRF的像素级交互式编辑)

摘要 随着隐式神经表示或神经辐射场 (NeRF) 的流行&#xff0c;迫切需要与隐式 3D 模型交互的编辑方法&#xff0c;以完成后处理重建场景和 3D 内容创建等任务。虽然之前的作品从不同角度探索了 NeRF 编辑&#xff0c;但它们在编辑灵活性、质量和速度方面受到限制&#xff0c;无…

chapter14:springboot与安全

Spring Boot与安全视频 Spring Security, shiro等安全框架。主要功能是”认证“和”授权“&#xff0c;或者说是访问控制。 认证&#xff08;Authentication&#xff09;是建立在一个声明主体的过程&#xff08;一个主体一般指用户&#xff0c;设备或一些可以在你的应用程序中…

Spring Boot介绍--快速入门--约定优于配置

文章目录 SpringBoot 基本介绍官方文档Spring Boot 是什么?SpringBoot 快速入门需求/图解说明完成步骤快速入门小结 Spring SpringMVC SpringBoot 的关系总结梳理关系如何理解-约定优于配置 SpringBoot 基本介绍 官方文档 官网: https://spring.io/projects/spring-boot 学习…

图像 检测 - DETR: End-to-End Object Detection with Transformers (arXiv 2020)

图像 检测 - DETR: End-to-End Object Detection with Transformers - 端到端目标检测的Transformers&#xff08;arXiv 2020&#xff09; 摘要1. 引言2. 相关工作2.1 集预测2.2 Transformers和并行解码2.3 目标检测 3. DETR模型References 声明&#xff1a;此翻译仅为个人学习…

Android开源 Skeleton 骨架屏

目录 一、简介 二、效果图 三、引用 Skeleton 添加jitpack 仓库 添加依赖: 四、使用 Skeleton 1、VIew 骨架屏使用 ViewSkeletonScreen 2、列表类View 骨架屏 RecyclerViewSkeletonScreen、GridViewSkeletonScreen、 ListViewSkeletonScreen 一、简介 骨架屏的作用是…

无人机电力巡检方案在电网安全与维护中的应用

目前&#xff0c;无人机技术已经在各行各业都有广泛的应用&#xff0c;其中之一就是在电力巡检中的应用。无人机电力巡检方案以其高效、安全、精准的特点&#xff0c;为电网安全与维护带来了重大突破和进步。 一、无人机电力巡检方案是高效巡检的利器 传统的电力巡检方式需要人…

K8s集群安全机制

1.访问K8s集群的时候&#xff0c;需要经过三个步骤完成具体操作 &#xff08;1&#xff09;认证&#xff08;2&#xff09;鉴权&#xff08;授权&#xff09;&#xff08;3&#xff09;准入控制 进行访问的时候&#xff0c;过程中都要经过apiserver&#xff0c;apiserver做统…

C++拷贝wstring到wchar_t*中踩的坑

使用wchar_t指针将wstring中的数据拿出来&#xff0c;发现释放的时候异常&#xff0c;不是深拷贝和浅拷贝的问题 首先先看看string怎末复制到char中&#xff0c;代码如下 string str1"\"0.2.0\"";char* tnew char[str.size()1];memcpy(t, str1.c_str(), s…

SPI通信协议

简介 SPI有主、从两种模式&#xff0c;通常由一个主模块和一个或多个从模块组成&#xff08;SPI不支持多主机&#xff09;&#xff0c;主 模块选择一个从模块进行同步通信&#xff0c;从而完成数据的交换。提供时钟的为主设备&#xff08;Master&#xff09;&#xff0c;接 收时…

arm交叉编译lmbench

一、下载lmbench www.bitmover.com/lmbench 官网下载&#xff0c;http://www.bitmover.com/lmbench/lmbench3.tar.gz 我没有下载下来&#xff0c;找的别人的百度云下载 链接: https://pan.baidu.com/s/1tGo1clCqY-jQPN8G1eWSsg 提取码: f6jd 二、修改makefile 修改三个文件…

Vue2:组件基础(下)

Vue2&#xff1a;组件基础&#xff08;下&#xff09; Date: April 12, 2023 Sum: props验证、计算属性、自定义时间、组件上的v-model、任务列表案例 Tags: * 目标&#xff1a; 能够知道如何对 props 进行验证 能够知道如何使用计算属性 令能够知道如何为组件自定义事件 …

Matlab中图的最短路径

前言&#xff1a; 图的基本概念&#xff1a; 若想简单绘制图可以利用此网站&#xff1a; 左上角Undirected/Directed是无向图/有向图 左边 0-index &#xff0c;1-index为0下标&#xff0c;1下标。 Node Count为节点个数 Graph Data&#xff1a;最初尾节点的名称&#xff…