无人车

2023-11-17

1. 无人车四大核心技术

  • 自动驾驶实际包含三个问题: 一是我在哪? 二是我要去哪?三是如何去?
  • 第一个问题是环境感知和精确定位,无人车需要的是厘米级定位,厘米级定位是无人驾驶的难点之一,不光是车辆本身的语义级定位,还有一个绝对坐标定位。
  • 第二个问题是路径规划,自动驾驶的路径规划
  • 第三个问题是车辆执行机构执行纵向和横向规划,也就是线控系统。线控执行主要包括线控制动、转向和油门。

2. 环境感知和精确定位

  • 环境感知主要包括三个方面:路面、静态物体和动态物体。
  • 动态物体:对于动态物体,不仅要检测还要对其轨迹进行追踪,并根据追踪结果,预测该物体下一步的轨迹(位置)。多个移动物体的轨迹的追踪与预测,难度比单一物体要高得多,这就是 MODAT(Moving Object Detection and Tracking)。
  • 定位: 对机器人系统来说,定位主要靠SLAM与先验地图(Prior Map)的交叉对比。SLAM是Simultaneous Localization and Mapping的缩写,意为“同时定位与建图”。它是指运动物体根据传感器的信息,一边计算自身位置,一边构建环境地图的过程。

2.1 SLAM分类

  • 按传感器分类
    • 激光SLAM:激光SLAM主要方法有Hector、GMapping、Tiny、Viny。
    • 视觉SLAM:视觉里程计是视觉SLAM的一个模块,其目的在于增量式地估计相机运动。
    • 视觉SLAM按算法分类:
      • 稀疏法:又称特征点法。
      • 稠密法:主要是RGB-D
      • 半稠密法:单目和双目用的多,是目前最火热的领域。
  • 按算法分类
    • 滤波器理论:早期SLAM研究侧重于使用滤波器理论
    • 优化理论:21世纪之后,学者们开始借鉴SFM(Structure from Motion)中的方式,以优化理论为基础求解SLAM问题。这种方式取得了一定的成就,并且在视觉SLAM领域中取得了主导地位。

2.2 定位分类

  • 相对定位
  • 绝对定位
  • 组合定位
    • 首先本体感受传感器如里程计(Odometry)、陀螺仪(Gyroscopes)等,通过给定初始位姿,来测量相对于机器人初始位姿的距离和方向来确定当前机器人的位姿,也叫做航迹推测
    • 然后用激光雷达视觉感知环境,用主动或被动标识、地图匹配、GPS、或导航信标进行定位
  • 位置计算方法
    • 三角测量法
    • 三边测量法
    • 和模型匹配算法
  • 定位算法流派
    • 机器人的自主定位实际上是个概率问题,因此机器人定位算法也出现两大流派
    • 卡尔曼滤波:Extended Kalman Filter(EKF),Kalman Filter (KF),Unscented Kalman Filter (UKF)定位方法
    • 贝叶斯推理:运用栅格和粒子来描述机器人位置空间,并递推计算在状态空间上的概率分布,比如Markov Localization (MKV), Monte Carlo Localization (MCL)定位方法。

2.3 定位方法

  • 基于激光雷达的SLAM
    利用无人车自带的GPS和IMU或里程计做出大概位置判断,然后用预先准备好的高精度地图(Prior Map)与激光雷达SLAM点云图像与之对比,或者说Registration,放在一个坐标系内做匹配。匹配(Scan Matching)成功后确认为车的位置。这是目前最成熟,准确度最高的方法。
    这里写图片描述
  • 基于激光雷达的强度扫描图像
    激光雷达有两种最基本的成像方式,一是3D距离成像,可以近似地理解为点云;二是强度扫描成像,激光经物体反射,根据反射强度值的不同,可以得到一副强度成像图像。强度值是包括在点云里的,光强分离核心技术之一。这种定位方法需要预先制作一个特殊的SLAM系统,称之为位姿图像SLAM(Pose-Graph SLAM),勉强可看作激光雷达制造的高清地图。有三个约束因素(Constraints),一是扫描匹配约束(Z),二是里程计约束(Odometry Constraints,U),GPS先验约束(Prior Constraints)。激光雷达的3D点云地图抽出强度值和真实地面(Ground Plane),转化为2D的地面强度扫描图像。与位姿图像SLAM配对后即可定位。
  • 基于合成图像
    也有称之为图像增强型定位, 通常是将Lidar和视觉系统结合进行定位,用单目即可。 这种方法需要预先准备一幅激光雷达制造的3D地图,用Ground-Plane Sufficient得到一个2D的纯地面模型地图,用OpenGL将单目视觉图像与这个2D的纯地面模型地图经过坐标变换, 用归一化互信息(normalized mutual information)配准。然后用扩展卡尔曼滤波器(EKF)来实现定位。
  • 基于高斯混合地图
    这实际还是第二种方法 (基于激光雷达的强度扫描图像)的补充,在遇到恶劣环境,比如很厚的积雪,雪后还有残雪的泥泞的道路,缺乏纹理的老旧的被破坏的道路,用高斯混合模型来做定位,提高激光雷达定位的鲁棒性。
  • Mobileye提出的REM
    前面四种都离不开激光雷达,成本颇高,但是室内VSLAM又未达到实用地步,更不要说室外定位了。 因此Mobileye提出一种无需SLAM的定位方法。这就是REM。 虽然REM不用视觉SLAM,但显然只是视觉SLAM的变种而已,Mobileye 通过采集包括交通信号、方向指示牌、长方形指示牌、路灯及反光标等「地标」,得到一个简单的 3D 坐标数据;再通过识别车道线信息,路沿,隔离带等获取丰富的 1D 数据。
    这里写图片描述

2.4 总结

  • 将来无人车的定位很难摆脱厘米级地图,但是这只是车辆启动前的第一次定位,车辆启动后,利用车载激光雷达的SLAM和障碍物识别完全可以取代高精度地图做自主导航。所以未来,高精度地图的主要作用是定位而非导航。

3. 路径规划

  • 路径规划的三层含义:全局路径规划、避障规划、轨迹规划
    这里写图片描述
  • 全局路径规划:通常指全局的路径规划,也可以叫全局导航规划,从出发点到目标点之间的纯几何路径规划,无关时间序,无关车辆动力学
  • 避障规划:
    • 又叫部路径规划,,又可叫动态路径规划,也可以叫即时导航规划。 主要是探测障碍物,并对障碍物的移动轨迹跟踪( Moving Object Detection and Tracking ,一般缩写为MODAT)做出下一步可能位置的推算,最终绘制出一幅包含现存碰撞风险和潜在碰撞风险的障碍物地图,这个潜在的风险提示是100毫秒级,未来需要进一步提高,这对传感器、算法的效率和处理器的运算能力都是极大的挑战,避障规划仅考虑空间还考虑时间序列
    • 避障规划的前提是对周围环境有深刻的理解,有一个非常完善实时的的环境理解
  • 轨迹规划:轨迹规路径规划和避障规划的基础上,考虑时间序列和车辆动力学对车辆运行轨迹的规划,主要是车纵向加速度和车横向角速度的设定。将设定交给执行系统,转向、油门、刹车。如果有主动悬挂,那么轨迹规划可能还要考虑地形因素。
    这里写图片描述

3.1 全局路径规划

  • 全局路径规划的组成
    • 环境模型(不同于环境理解)
    • 路径搜索
  • 环境模型
    • 栅格法
      栅格法是公认最成熟的算法。栅格法把工作空间分割成规则而均匀的含二值信息的栅格。 在机器人移动的过程中,栅格的尺寸和位置不变。二值信息分别表示该栅格处是否有障碍,没有障碍的栅格称为自由栅格,否则为障碍栅格。栅格的尺寸通常和机器人的基本移动步长相适应,故机器人移动转化成从一个自由栅格移动到下一个自由栅格,机器人移动的路长对应于机器人爬过的栅格数。栅格法直观且建模相对较容易,因此得到了广泛的应用。
    • 可视图法、自由空间法
      可视图法和自由空间法和栅格法相比的优点是比较灵活,对运算资源消耗少。缺点很明显,障碍物多少与算法复杂程度成正比,算法太复杂时可靠性就降低,同时不太适合动态环境,要求运动速度变化尽量小。栅格法的缺点是如果分辨率高,对运算资源和内存需求较高。 显然,可视图法和自由空间发适合机器人,栅格法更适合无人车,这在业内差不多已经是定论。这和传感器也有部分关系,视觉系统难以适应太精细的格栅法,因为视觉系统的要做精细的定量边界分割是不可能的,而激光雷达非常适合栅格法
  • 路径搜索
    • 2D路径搜索算法: Dijkstra(迪杰斯特拉)、Floyd-Warshall、A+算法、层次法、动作行为法、势场域法、栅格法、模糊逻辑法、拓扑法、惩罚函数法、遗传算法、模拟退火法、蚁群法和神经网络法等
    • 3D路径搜索算法:取样算法(Sampling)、节点算法(Node)、工程数学模型算法(Mathematics)、仿生学算法(Bioinspired)、混合算法(MultiFusion)。以取样型算法为例,下面可以再分主动型与被动型
  • a
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

无人车 的相关文章

  • 大师兄!SLAM 为什么需要李群与李代数?

    from https mp weixin qq com s sVjy9kr 8qc9W9VN78JoDQ 作者 electech6 来源 计算机视觉life 编辑 Tony 很多刚刚接触SLAM的小伙伴在看到李群和李代数这部分的时候 都有点
  • ROS STAGE教程2(地图定义和GMAPPING建图)

    目前用在ROS Kinetic上的stage版本为4 1 官方教程http rtv github io Stage modules html 用户可以用stage或者gazebo来创建地图和机器人 传感器模型来进行仿真 并与自己的SLAM模
  • No rule to make target

    No rule to make target 引言 解决方法 引言 报错 No rule to make target Thirdparty g2o lib libg2o so needed by lib libygz SLAM so 停止
  • ROS激光SLAM导航理解

    ROS激光SLAM导航理解 注 最近学习ROS的激光导航知识 需要理清ROS的SLAM 环境感知 costmap 与导航算法 为防止自己忘记 将觉得有价值的内容收集于此 对AGV来说 SLAM是个大大坑 环境感知和局部运动控制也是大坑 学习
  • Ubuntu18.04 安装速腾聚创最新驱动RSLidar_SDK采集XYZIRT格式的激光点云数据 --SLAM不学无术小问题

    Ubuntu18 04 安装速腾聚创最新驱动RSLidar SDK采集XYZIRT格式的激光点云数据 新款驱动支持RS16 RS32 RSBP RS128 RS80 RSM1 B3 RSHELIOS等型号 注意 该教程旨在引导安装 可能现在
  • 基于深度相机的三维重建技术

    本文转载自http www bugevr com zblog id 14 原创作者bugeadmin 转载至我的博客 主要是为了备份 日后查找方便 谢谢原创作者的分享 三维重建 3D Reconstruction 技术一直是计算机图形学和计
  • 各向异性(anisotropic)浅提

    文章目录 各向异性 anisotropic 定义 哪种物体具有各向异性反射 什么导致各向异性反射 总结 各向异性 anisotropic 定义 它指一种存在方向依赖性 这意味着在不同的方向不同的特性 相对于该属性各向同性 当沿不同轴测量时
  • SLAM评估工具evo的使用

    evo官方指南 参考博客 lt 官方手册 这篇参考博客 完全可以掌握evo的基本操作 gt Then 实践出真知 1 安装evo sudo apt install python pip pip install evo upgrade no
  • 经典坐标变换案例代码剖析

    题目 设有小萝卜一号和小萝卜二号位于世界坐标系中 记世界坐标系为W 小萝卜们的坐标系为R1和 R2 小萝卜一号的位姿为q2 0 35 0 2 0 3 0 1 T t1 0 3 0 1 0 1 T 小萝卜二号的位姿为q2 0 5 0 4 0
  • 视觉SLAM漫谈(二):图优化理论与g2o的使用

    视觉SLAM漫谈 二 图优化理论与g2o的使用 1 前言以及回顾 各位朋友 自从上一篇 视觉SLAM漫谈 写成以来已经有一段时间了 我收到几位热心读者的邮件 有的希望我介绍一下当前视觉SLAM程序的实用程度 更多的人希望了解一下前文提到的g
  • LeGO-LOAM 系列(1): LeGO-LOAM 安装以及概述

    一 github GitHub RobustFieldAutonomyLab LeGO LOAM 二 安装依赖 1 ROS Ubuntu 64 bit 16 04 ROS Kinetic 比较常规 就不赘述了 2 gtsam Georgia
  • 激光SLAM7-基于已知位姿的构图算法

    1 通过覆盖栅格建图算法进行栅格地图的构建 1 1 Theory 1 2 code 这里没有判断idx和hitPtIndex是否有效 start of TODO 对对应的map的cell信息进行更新 1 2 3题内容 GridIndex h
  • IMU预积分的一些理解

    IMU预积分 算是比较简单的一个算法 无奈网上找到的资料都讲的晦涩难懂 看明白了也觉得不过如此 讲一下我的理解 整体流程 1 推导IMU离散运动方程 2 根据离散运动方程 进行预积分 并将预积分的误差项拆分出来 因为我们在定义误差的时候 有
  • Lego-LOAM IMU坐标系变换的详细记录

    Lego LOAM IMU坐标系变换的详细记录 0 基础知识 1 IMU 重力加速度消除 2 相机坐标系 camera 到初始坐标系 camera init 的转换 最近看了Lego LOAM 的IMU部分 没看懂IMU的坐标系变换 看其它
  • Ubuntu20.04安装各种库----简洁版

    目录 Eigen3 Sophus Pangolin Ceres g2o 建议先装anaconda再装ros python opencv啥该有的都有了 下面仅仅安装ros没有的库 Eigen3 作用 线性代数开源库 提供了有关线性代数 矩阵和
  • docker dbus-x11

    本来想用terminator启动nvidia docker 显示出图形界面的 结果发现启动的时候出问题了 terminator 1 dbind WARNING 07 31 53 725 Couldn t connect to accessi
  • 用Eigen库练习代数运算方式以便后续对刚体旋转和移动做基础

    include
  • 快看!那个学vSLAM的上吊了! —— (一)综述

    不同于之前发布的文章 我将使用一种全新的方式 iPad Notability Blog的方式打开这个板块的大门 原因有两个 1 Notability更方便手写长公式 也方便手绘坐标系变换等等 2 之前Apple Pencil找不到了新破费买
  • LIO-SAM运行自己数据包遇到的问题解决--SLAM不学无数术小问题

    LIO SAM 成功适配自己数据集 注意本文测试环境 Ubuntu18 04 ROS melodic版本 笔者用到的硬件以简单参数 激光雷达 速腾聚创16线激光雷达 RS Lidar 16 IMU 超核电子CH110型 9轴惯导 使用频率1
  • Ubuntu18.04安装Autoware1.15(解决Openplanner无法绕障的问题:Openplanner2.5)

    文章目录 一 下载Autoware1 15源码 二 安装依赖 三 修改CUDA版本 四 编译以及报错解决 编译 1 报 undefined reference to cv Mat Mat 的错就按照下面方式改相应包 2 遇到OpenCV的C

随机推荐

  • Axure Share ——原型设计工具 Axure ,移动版

    什么是Axure Share Axure Share 是老牌原型设计工具Axure 的移动版 app 支持 iOS iPhone iPad 以及 Android 设备 我们可以使用它来查看和演示通过 Axure 制作的移动 app 原型 A
  • Vuex之理解mutation的用法

    一 什么是mutation 通俗的理解mutations 里面装着一些改变数据方法的集合 这是Veux设计很重要的一点 就是把处理数据逻辑方法全部放在mutations里面 使得数据和视图分离 切记 Vuex中store数据改变的唯一方法就
  • D13 LeetCode 599.两个列表的最小索引和(简单)

    一 题目 二 思路 自己 先遍历两个数组 找出元素值相等的元素同时记录下标和 这时候我想到了要用到map 但是map不允许键值重复 我就一直在纠结怎么不让他更新或者记录相等键的元素值 然后想破了头也没想清楚 最后想着用list来记录 把 下
  • Vue router-view 路由无缝切换动画

    Vue router view 路由无缝切换动画 左滑淡出 右滑淡入 HTML div class wrap div
  • android面试内存管理,Android面试之内存优化

    内存泄漏 用动态存储分配函数动态开辟的空间 在使用完毕后未释放 结果导致一直占据该内存单元 直到程序结束 即所谓的内存泄漏 内存泄漏是造成应用程序OOM 内存溢出 的主要原因之一 怎样避免内存泄漏 1 单例模式引发的内存泄漏 单例模式里的静
  • 华为OD机试 - 连续字母长度(Java)

    题目描述 给定一个字符串 只包含大写字母 求在包含同一字母的子串中 长度第 k 长的子串的长度 相同字母只取最长的那个子串 输入描述 第一行有一个子串 1 lt 长度 lt 100 只包含大写字母 第二行为 k的值 输出描述 输出连续出现次
  • 神经网络训练

    在数码管识别中 识别之前 字符归一化之后的大小是20 20个像素
  • 听说Python多线程和多进程有鸡肋?一起聊聊...

    听说是鸡肋 一直以来 关于Python的多线程和多进程是否是鸡肋的争议一直存在 今晚抽空谈谈我的看法 以下是我的观点 对于多线程 Python 的多线程库 threading 在某些情况下确实是鸡肋的 这是因为 Python 的全局解释器锁
  • CentOS7.X版本下安装MySQL5.7

    记录CentOS7 X版本下安装MySQL5 7数据库 设置rpm下载目录在 opt目录下新建一个目录存放mysql cd opt sudo mkdir mysql 下载MySQL的源 wget http repo mysql com my
  • [CTF/网络安全] 攻防世界 disabled_button 解题详析

    CTF 网络安全 攻防世界 disabled button 解题详析 input标签 姿势 disable属性 总结 题目描述 X老师今天上课讲了前端知识 然后给了大家一个不能按的按钮 小宁惊奇地发现这个按钮按不下去 到底怎么才能按下去呢
  • Centos7.4安装kvm虚拟机(使用virt-manager管理)

    原文链接 https www centos bz 2018 02 centos7 4 E5 AE 89 E8 A3 85kvm E8 99 9A E6 8B 9F E6 9C BA EF BC 88 E4 BD BF E7 94 A8vir
  • 2022年SQL经典面试题总结(带解析)

    一 选择题 1 基础题 1 要求删除商品表中价格大于3000的商品 下列SQL语句正确的是 A DELETE FROM 商品 WHERE 价格 gt 3000 B DELETE FROM 商品 WHERE 价格 gt 3000 C DELE
  • 【空间面板计量专题,举一反三,学通学透】

    重点内容 空间计量概念 空间权重矩阵 空间面板计量全套代码 前言 最近因为要写一篇关于环境规制的论文 需要用到空间计量的方法 于是开始从零学习这个模块的内容 在耗费大量精力以及微薄的财力之后 最终也是在实际操作方面能够得以初窥门径 不过回顾
  • 【模板】树状数组

    文章目录 1 概述 2 原理 3 实现 3 1 lowbit x 3 2 查询前缀和 3 3 单点增加 4 初始化 1 概述 树状数组 Binary Indexed Trees 其基本用途是维护序列的前缀和 对于给定的序列 a a
  • RT-Thread 框架下,GD32F450,串口DMA收发驱动 编写示例

    写在前面的话 RT Thread的软件包 BSP目录下 GD32F450 eval 串口驱动目前 2022 09 05 还不全 只能一个byte一个byte的接收 对于一个搞硬件的熟系MCU运行方式的强迫症来说 如此浪费CPU资源 这能忍
  • Flutter网络请求篇-dio-retrofit

    flutter retrofit plug网址 https pub dev packages retrofit 创建抽象类 RestApi baseUrl http www devio org abstract class Http fac
  • 一百人研发团队的难题:研发管理、绩效考核、组织文化和OKR

    什么是研发团队 简单的说 你熟悉的那帮穿格子衬衫 以程序员为核心组成的团队 就是研发团队 本来 你以为格子男们是很乖很闷骚的那种 管理和协作起来比销售和业务简单很多 而实际情况是 格子男们并不那么容易管理 面向代码世界的复杂度 可能远比面向
  • 微信小游戏使用three.js开发总结2023.9.12

    微信小程序开发总结 1技术选择 我这里使用的是three js 进行的开发 目前开发了 酒馆卡牌 3D决对 两款微信小游戏 其中 酒馆卡牌 模仿的是iphone 美区的游戏 注重看在游戏没有复杂的战斗 在没有服务器的情况下依旧可以运行 由于
  • 完美解决phpstrom 2018.1.6版本汉化后不能打开设置的问题

    网上很多phpstrom汉化后设置大不开 很苦脑 今天我花时间找到了完美解决方案1 下载后 看汉化说名 链接 https pan baidu com s 1RD7PJwWxfCST2ctELwCrSA 密码 jy43
  • 无人车

    1 无人车四大核心技术 自动驾驶实际包含三个问题 一是我在哪 二是我要去哪 三是如何去 第一个问题是环境感知和精确定位 无人车需要的是厘米级定位 厘米级定位是无人驾驶的难点之一 不光是车辆本身的语义级定位 还有一个绝对坐标定位 第二个问题是