无人驾驶_无人驾驶ros - CSDN
无人驾驶 订阅
《无人驾驶》是由张杨执导,刘烨、高圆圆、李小冉、陈建斌、林心如、王珞丹、黄轩等主演的都市爱情电影。影片讲述了数对都市男女之间的爱情纠葛,一场撞车将他们的命运纠缠在了一起。 [1]  该片于2010年7月2日在中国内地上映。 展开全文
《无人驾驶》是由张杨执导,刘烨、高圆圆、李小冉、陈建斌、林心如、王珞丹、黄轩等主演的都市爱情电影。影片讲述了数对都市男女之间的爱情纠葛,一场撞车将他们的命运纠缠在了一起。 [1]  该片于2010年7月2日在中国内地上映。
信息
导    演
张杨
其它译名
Driverless
编    剧
张翀
对白语言
汉语普通话
类    型
爱情,剧情
出品公司
中国电影集团公司
中文名
无人驾驶
主    演
刘烨,高圆圆,李小冉,陈建斌,林心如,王珞丹,黄轩
片    长
105分钟
上映时间
2010年7月2日  中国
外文名
Spacked out
文本分类定义
收起全文
精华内容
参与话题
  • 无人驾驶--从零入门实战视频教程

    千人学习 2019-06-25 11:38:15
    无人驾驶实战视频培训课程:涉及无人驾驶入门教程、光学雷达在无人驾驶技术中应用,GPS及惯性传感器在无人驾驶应用、无人驾驶感知系统、强化学习在无人驾驶应用、卷积神经网络在无人驾驶技术应用等内容。 AI的力量...
  • 前言:随着深度学习近几年来的突破性进展,无人驾驶汽车也在这些年开始不断向商用化推进。很显然,无人驾驶汽车已经不是遥不可及的“未来技术”了,未来10年必将成为一个巨大的市场。本系列博客将围绕当前使用的最...

    前言:随着深度学习近几年来的突破性进展,无人驾驶汽车也在这些年开始不断向商用化推进。很显然,无人驾驶汽车已经不是遥不可及的“未来技术”了,未来10年必将成为一个巨大的市场。本系列博客将围绕当前使用的最先进的无人驾驶汽车相关技术,一步一步地带领大家学习并且掌握无人驾驶系统的每一个模块的理论基础和实现细节。由于无人驾驶汽车系统构成及其复杂,本系列博客仅讨论软件部分的内容,关于汽车,传感器和底层的硬件,不是我们关注的重点。至于连载的顺序和技术路线,本人其实是同时开始的,先完成哪一节就先发那一节。

    我一直反感国内的一些中文水书,这些书的产生的根源就是国内浮躁的技术氛围,我希望能够系统详细的以中文总结无人驾驶汽车的整个技术基础,本系列博客将详细展开无人汽车的基础理论和和这些理论的实现的小例子,编写不易,转载请附来源:http://blog.csdn.net/AdamShan/article/details/78248421

    首先我将带大家了解无人驾驶汽车系统感知模块的重要技术——卡尔曼滤波,卡尔曼滤波部分我打算分三节(三次博客的内容):

    • 卡尔曼滤波与行人状态估计
    • 扩展卡尔曼滤波(EKF)与传感器融合
    • 过程模型,无损卡尔曼滤波(UKF)与车辆状态轨迹

    本节为卡尔曼滤波,主要讲解卡尔曼滤波的具体推导,卡尔曼滤波在行人状态估计中的一个小例子。

    为什么要学卡尔曼滤波?

    卡尔曼滤波以及其扩展算法能够应用于目标状态估计,如果这个目标是行人,那么就是行人状态估计(或者说行人追踪),如果这个目标是自身,那么就是车辆自身的追踪(结合一些地图的先验,GPS等数据的话就是自身的定位)。在很多的无人驾驶汽车项目中,都能找到卡尔曼滤波的扩展算法的身影(比如说EKF,UKF等等)。本节我们从最简单的卡尔曼滤波出发,完整的理解一遍卡尔曼滤波的推导过程,并实现一个简单的状态估计Python程序。

    卡尔曼滤波是什么?

    我们通常要对一些事物的状态去做估计,为什么要做估计呢?因为我们通常无法精确的知道物体当前的状态。为了估计一个事物的状态,我们往往会去测量它,但是我们不能完全相信我们的测量,因为我们的测量是不精准的,它往往会存在一定的噪声,这个时候我们就要去估计我们的状态。卡尔曼滤波就是一种结合预测(先验分布)和测量更新(似然)的状态估计算法。

    一些概率论的知识基础

    下面是一些概率论的基础知识,如果之前有这方面的知识储备那当然是最好的,很有利于我们理解整个博客内容,如果没有这方面的基础而且也看不懂下面的内容也没关系,我会以一个相对直观的方式来展现整个理论部分。

    • 先验概率 P(X)P(X):仅仅依赖主观上的经验,事先根据已有的只是的推断
    • 后验概率 P(XZ)P(X|Z):是在相关证据或者背景给定并纳入考虑以后的条件概率
    • 似然 P(ZX)P(Z|X):已知结果区推测固有性质的可能性

    贝叶斯公式:

    P(AB)=P(A)×P(BA)P(B)P(A|B) = \frac{P(A) \times P(B|A)}{P(B)}

    后验分布正比于先验分布乘以似然。

    卡尔曼滤波完整推导

    一个简单的例子

    若干年后,我们的可回收火箭要降落到地球,我们比较关心的状态就是我们的飞行器的高度了,飞行器的高度就是我们想要估计的状态,我们会通过一些传感器去测量我们当前的高度信息,比如说使用气压计。假如我们每一次测量,当前高度都变成上一次测量的 95%95\%,那么我们就可以得到如下关系:
    Height(t)=0.95×Height(t1)Height^{(t)} = 0.95 \times Height^{(t-1)}
    我们可以使用递归来表示这样的公式——为了计算我们当前的高度,我们必须知道我们上一个测量的高度,以此递推,我们就会推到我们的飞行器的初始高度。

    但是,由于我们的测量往往来自于一些传感器(比如说GPS,气压计),所以测量的结果总是带有噪声的,这个噪声是有传感器本身引起的,那么我们的表达式就变成了:
    Measurement(t)=Height(t)+Noise(t)Measurement^{(t)} = Height^{(t)} + Noise^{(t)}
    这个噪声我们称之为测量噪声 (MeasurementMeasurement NoiseNoise)。通常来说,这种噪声都满足高斯分布。我们用符号描述以上两部分:
    xk=axk1x_k = a x_{k-1} zk=xk+vkz_k = x_k + v_k 第一个式子是我们的 过程模型,是我们的经验(比如说一些运动模型,牛顿力学等等),我们用这种过程模型去 预测 我们考察的事物的状态(在没有任何信息的情况下,或者说在没有任何测量数据的情况下);第二个式子是测量的表达式,它大致描述了我们测量的组成成分,我们用这个测量去 更新 我们对状态的估计。 其中 xkx_k 是我们的飞行器当前的状态,xk1x_{k-1} 是我们上一个状态(注意状态和测量的区别),zkz_k 使我们当前对飞行器的测量,vkv_k 使我们当前的测量噪声, aa 是一个常数,在我们这个例子里面就是 0.950.95

    思考一下,在这里我们用一个简单的比例(常数)来描述“可回收火箭”的运动规律,会存在什么问题?

    很显然,现实中的运动不会像我们这个简单的过程模型一样高度按比例缩小。在这里为了简化,我们先假设我们的模型挺好的,能够大致描述出这颗“神奇火箭”的运动规律,只是偶尔会存在一定的偏差(比如所空气湍流的影响),那么我们在计算xkx_k 时在加一个噪声来描述我们的过程模型与实际运动的差异,这个噪声我们称之为过程噪声 (ProcessProcess NoiseNoise),我们用 wtw_t 来表示这种噪声,那么 xkx_k 的计算公式就变成:
    xk=axk1+wkx_k = a x_{k-1} + w_k 为了简化,后面的分析我们会先忽略过程噪声,但是我们在传感器融合的部分会将过程噪声重新考虑进来。

    状态估计

    因为我们是要估计飞行器的状态(高度),所以我们把测量的公式变换成:
    xk=zkvkx_k =z_k - v_k 显然,在这里 vkv_k 是没办法知道的,卡尔曼滤波通过同时考虑上一状态值和当前的测量值来获得对当前状态值的估计。一般我们用 x^\hat{x} 来表示对状态 xx 的估计。那么 x^k\hat{x}_k 就表示当前状态的估计。下面我们可以用如下公式来描述卡尔曼滤波如何结合上一个估计和和现在的测量来产生对当前的估计:
    x^k=x^k1+gk(zkx^k1)\hat{x}_k = \hat{x}_{k-1} + g_k(z_k - \hat{x}_{k-1})
    这里的 gkg_k 叫做 卡尔曼增益(Kalman Gain),它描述的是之前的估计和当前的测量对当前的估计的影响的分配权重。为了理解,我们考虑极端的例子,如果 gk=0g_k=0,也就是说增益为 00,那么:
    x^k=x^k1\hat{x}_k = \hat{x}_{k-1} 也就是说我们非常不信任我们当前的测量,我们直接保留了我们上一次的估计作为我们对当前状态的估计。如果 gk=1g_k=1,即增益为 11,则:
    x^k=zk\hat{x}_k = z_{k} 即我认为当前的测量非常可信,我彻底接受它作为我当前状态的估计。那么当 gkg_k 介于 (0,1)(0, 1),则表示对两者的权重分配。

    计算卡尔曼增益

    那么如何计算卡尔曼增益呢?我们使用一种间接的方法,我们虽然不知道测量噪声 vkv_k 的值,但是我们知道它的均值,前面我们提到,测量噪声来自传感器本身,并且符合高斯分布,所以我们能够从传感器厂商那里获得测量噪声的均值 rr,那么 gkg_k 可以表示为:
    gk=pk1/(pk1+r)g_k = p_{k-1}/(p_{k-1} + r)
    其中 pkp_k 叫预测误差,表达式为:
    pk=(1gk)pk1p_k = (1 - g_k)p_{k-1}
    那么怎么理解 gkg_kpkp_k 呢?

    那么假设前一次的预测误差 pk1=0p_{k-1} = 0, 那么根据公式,当前的增益 gk=0g_k = 0,一维着舍弃掉当前的测量而完全采用上一个时刻的估计,如果pk1=1p_{k-1} = 1 那么增益变成 1/(1+r)1 / (1 + r) 通常 rr 是个很小的数值,所以增益为1,所以完全接受这一次的测量作为我们的估计(因为上一次的的预测误差太大了,为1,所以一旦拿到了新的测量,如获至宝,就干脆把不准确的上次的估计舍弃掉了)

    对于下面的公式的分析是一样的,我们考虑极端的例子,当增益为 00pk=pk1p_k = p_{k-1},因为我们彻底舍弃掉了本次的测量,所以本次的预测误差只能接受上一次的。当增益为 11pk=0p_k = 0

    预测和更新

    那么现在我们有关于当前的火箭高度状态的两个公式了,它们分别是:xk=axk1x_k = a x_{k-1}x^k=x^k1+gk(zkx^k1)\hat{x}_k = \hat{x}_{k-1} + g_k(z_k - \hat{x}_{k-1}) 那么我们到底要用哪一个呢?答案是我们都用,第一个公式我们称之为预测,是基于一些先验的知识(比如说运动模型,牛顿力学等等)觉得我们的状态应该是这样的,而第二个公式呢,就是我们基于我们“不完美的”的传感器的测量数据来更新我们对状态的估计。另为,预测,理论上只考虑了一个固定的过程模型和过程噪声,但是由于我们现在是对机械的状态进行估计,在预测过程中需要对机械本身的控制建模, 我们在预测部分再新增一个控制信号,我们用 bukbu_k 表示。实际的传感器测量除了会有测量噪声 vkv_k 以外,还会存在一定的关于真实状态的缩放,因此我们使用 xkx_k 表示测量时通常还会在其前面加一个缩放系数 cc。 结合这写我们就可以得到卡尔曼滤波预测和更新过程了:

    预测
    x^k=ax^k1+buk\hat{x}_k = a \hat{x}_{k-1} + b u_k pk=apk1ap_k = a p_{k-1} a 卡尔曼滤波更新的过程为:
    gk=pkc/(cpkc+r)g_k = p_k c / (c p_k c + r) x^kx^k+gk(zkcx^k)\hat{x}_k \leftarrow \hat{x}_k + g_k(z_k - c\hat{x}_k) pk(1gkc)pkp_k \leftarrow (1 - g_k c)p_k

    使用线性代数的方法来表示预测和更新

    预测
    x^k=Ax^k1+Buk\hat{x}_k = A \hat{x}_{k-1} + B u_k Pk=APk1ATP_k = A P_{k-1} A^T 卡尔曼滤波更新的过程为:
    Gk=PkCT(CPkCT+R)1G_k = P_k C^T (C P_k C^T + R)^{-1} x^kx^k+Gk(zkCx^k)\hat{x}_k \leftarrow \hat{x}_k + G_k(z_k - C\hat{x}_k) Pk(1GkC)PkP_k \leftarrow (1 - G_k C)P_k

    至此,卡尔曼滤波的完整推导就结束了。下面,我们来看看卡尔曼滤波在无人汽车的感知模块的应用。

    卡尔曼滤波算法为什么会叫滤波算法?
    以一维卡尔曼滤波为例,如果我们单纯的相信测量的信号,那么这个信号是包含噪声的,是很毛糙的,但是当我们运行卡尔曼滤波算法去做估计,我们估计的信号会很光滑,看起来似乎滤掉了噪声的影响,所以称之为滤波算法。实际上,卡尔曼滤波不仅仅过滤掉了测量信号的噪声,它同时也结合了以往的估计,卡尔曼滤波在线性问题中被证明是最优估计。

    卡尔曼滤波在无人驾驶汽车感知模块的应用

    无人车感知模块的传感器

    无人驾驶汽车要安全的在道路上行驶,需要“耳听六路,眼观八方”。那么无人车的耳朵和眼睛是什么呢?那就是安装在无人车上的各种各样的传感器了。无人车上的传感器能够多达几十个,而且是不同种类的,比如:

    • 立体摄像机
    • 交通标志摄像机
    • 雷达(RADAR)
    • 激光雷达(LIDAR)

    立体摄像机往往用于获取图像和距离信息;交通标志摄像机用于交通标志的识别;雷达一般安装在车辆的前保险杆里面,用于测量相对于车辆坐标系下的物体,可以用来定位,测距,测速等等,容易受强反射物体的干扰,通常不用于静止物体的检测;激光雷达往往安装在车顶,使用红外激光束来获得物体的距离和位置,但是空间分辨率高,但是笨重,容易被天气影响。

    由此可知,各种传感器都有其优点和缺点,在实际的无人驾驶汽车里,我们往往结合多种传感器的数据去感知我们的车辆周边的环境。这种结合各种传感器的测量数据的过程我们称之为传感器融合(Sensor Fusion)。本系列博客后面的章节我将详细给大家介绍基于扩展卡尔曼滤波和无损卡尔曼滤波在传感器融合中的应用。在本节中,我们主要考虑卡尔曼滤波基于单一的传感器数据来估算行人位置的方法。

    基于卡尔曼滤波的行人位置估算

    卡尔曼滤波虽然简单,确实无人驾驶汽车的技术树中非常重要的一部分,当然,在真实的无人驾驶汽车项目中使用到的技术是相对更加复杂的,但是其基本原理仍然是本博客介绍的这些内容。在无人驾驶中,卡尔曼滤波主要可以用于一些状态的估计,主要应用于行人,自行车以及其他汽车的状态估计。下面,我们以行人的状态估计为例展开。

    当我们要估计一个行人的状态时,首先就是要建立起腰估计的状态的表示。这里,行人的状态大致可以表示为x=(p,v)x=(p, v), 其中 pp 为行人的位置,而 vv 则是行人此时的速度。我们用一个向量来表示一个状态:

    x=(px,py,vx,vy)Tx = (p_x, p_y, v_x, v_y)^T

    在确定了我们要估计的状态以后,我们需要确定一个过程模型,如前文所说,过程模型用于预测阶段来产生一个对当前估计的先验。在本文中,我们先以一个最简单的过程模型来描述行人的运动——恒定速度模型
    xk+1=Axk+νx_{k+1} = A x_{k} + \nu

    即:
    这里写图片描述

    之所以称之为恒定速度模型,是因为我们将上面这个行列式展开可以得到:
    pxk+1=pxk+vxkΔtp_x^{k+1} = p_x^{k} + v_x^{k} \Delta t
    pyk+1=pyk+vykΔtp_y^{k+1} = p_y^{k} + v_y^{k} \Delta t
    vxk+1=vxkv_x^{k+1} = v_x^{k}
    vyk+1=vykv_y^{k+1} = v_y^{k}

    恒定速度过程模型假定预测的目标的运动规律是恒定的速度的,在行人状态预测这个问题中,很显然行人并不一定会以恒定的速度运动,所以我们的过程模型包含了一定的 过程噪声,在这个问题中过程噪声也被考虑了进来,其中的 ν\nu 是我们这个过程模型的过程噪声。在行人状态估计中的过程噪声其实就是行人的加减速,那么我们原来的处理过程就变成了:
    这里写图片描述

    我们预测的第二步就变成了:
    A=APAT+QA′​​ =APA^T+Q
    这是我们的AA的更新过程,它本质上是我们的估计状态概率分布的协方差矩阵。QQ 是我们的过程噪声的协方差矩阵,由于过程噪声是随机带入的,所以 ν\nu 本质是一个高斯分布:νN(0,Q)\nu \thicksim N(0, Q),Q是过程噪声的协方差,Q的形式为:
    这里写图片描述
    进而表示为:
    Q=GGTσv2Q = G\cdot G^T \cdot \sigma_v^2
    其中G=[0.5Δt2,0.5Δt2,Δt,Δt]TG={[0.5 \Delta t^2, 0.5 \Delta t^2, \Delta t, \Delta t]}^T, σv2\sigma_v^2 对于行人我们可以设置为0.5m/s20.5 m/s^2(这一部分大家如果想要详细了解可以阅读这篇文章:http://ieeexplore.ieee.org/xpl/articleDetails.jsp?arnumber=5940526)。

    测量步骤中,我们直接可以测量到速度 vxv_xvyv_y,所以我们的测量矩阵 CC 可以表示为:
    这里写图片描述

    测量噪声的协方差矩阵 RR 为:

    这里写图片描述

    其中的 $\sigma^2_{v_x} $ 和 sigmavx2sigma^2_{v_x} 描述了我们的传感器的测量能够有多“差”,这是传感器固有的性质,所以往往是传感器厂商提供。

    最后,在测量的最后一步,我们使用单位矩阵 II 来代替原式中的1:

    Pk(IGkC)PkP_k \leftarrow (I - G_k C)P_k

    至此,基于恒定速度过程模型卡尔曼滤波的行人状态估计的整个流程我们就讲完了,下面我们使用Python将整个过程实现一下。

    卡尔曼滤波行人状态估计Python例子

    首先我们看一下卡尔曼滤波的整个流程,其实在实际的论文和资料中,预测矩阵通常使用FF来表示(我们前文中一直是使用AA),测量矩阵通常使用 HH 表示(我们前文中使用的是 CC),卡尔曼增益通常使用 KK 来表示(我们前文中使用的是 GG),下面是文献材料中通常意义的卡尔曼滤波过程:
    这里写图片描述

    注意:公式还包含一项:BμB \mu ,这一项是指我们在追踪一个物体的状态的时候把它内部的控制也考虑进去了,这在行人,自行车,其他汽车的状态估计问题中是无法测量的,所以在这个问题中我们设置 BμB \mu00.

    我们的代码将在IPython中执行,大家可以中jupyter notebook交互式地运行。

    首先我们载入必要的库:

    import numpy as np
    %matplotlib inline
    import matplotlib.pyplot as plt
    from scipy.stats import norm
    

    接着我们初始化行人状态x, 行人的不确定性(协方差矩阵)P,测量的时间间隔dt,处理矩阵F以及测量矩阵H:

    x = np.matrix([[0.0, 0.0, 0.0, 0.0]]).T
    print(x, x.shape)
    P = np.diag([1000.0, 1000.0, 1000.0, 1000.0])
    print(P, P.shape)
    
    dt = 0.1 # Time Step between Filter Steps
    F = np.matrix([[1.0, 0.0, dt, 0.0],
                  [0.0, 1.0, 0.0, dt],
                  [0.0, 0.0, 1.0, 0.0],
                  [0.0, 0.0, 0.0, 1.0]])
    print(F, F.shape)
    
    H = np.matrix([[0.0, 0.0, 1.0, 0.0],
                  [0.0, 0.0, 0.0, 1.0]])
    print(H, H.shape)
    
    ra = 10.0**2
    
    R = np.matrix([[ra, 0.0],
                  [0.0, ra]])
    print(R, R.shape)
    

    计算测量过程的噪声的协方差矩阵R和过程噪声的协方差矩阵Q:

    
    ra = 0.09
    R = np.matrix([[ra, 0.0],
                  [0.0, ra]])
    print(R, R.shape)
    
    sv = 0.5
    G = np.matrix([[0.5*dt**2],
                   [0.5*dt**2],
                   [dt],
                   [dt]])
    Q = G*G.T*sv**2
    from sympy import Symbol, Matrix
    from sympy.interactive import printing
    printing.init_printing()
    dts = Symbol('dt')
    Qs = Matrix([[0.5*dts**2],[0.5*dts**2],[dts],[dts]])
    Qs*Qs.T
    
    

    定义一个单位矩阵:

    I = np.eye(4)
    print(I, I.shape)
    

    我们随机产生一些测量数据:

    m = 200 # Measurements
    vx= 20 # in X
    vy= 10 # in Y
    
    mx = np.array(vx+np.random.randn(m))
    my = np.array(vy+np.random.randn(m))
    measurements = np.vstack((mx,my))
    
    print(measurements.shape)
    print('Standard Deviation of Acceleration Measurements=%.2f' % np.std(mx))
    print('You assumed %.2f in R.' % R[0,0])
    
    fig = plt.figure(figsize=(16,5))
    plt.step(range(m),mx, label='$\dot x$')
    plt.step(range(m),my, label='$\dot y$')
    plt.ylabel(r'Velocity $m/s$')
    plt.title('Measurements')
    plt.legend(loc='best',prop={'size':18})
    

    一些过程值,用于结果的显示:

    xt = []
    yt = []
    dxt= []
    dyt= []
    Zx = []
    Zy = []
    Px = []
    Py = []
    Pdx= []
    Pdy= []
    Rdx= []
    Rdy= []
    Kx = []
    Ky = []
    Kdx= []
    Kdy= []
    
    def savestates(x, Z, P, R, K):
        xt.append(float(x[0]))
        yt.append(float(x[1]))
        dxt.append(float(x[2]))
        dyt.append(float(x[3]))
        Zx.append(float(Z[0]))
        Zy.append(float(Z[1]))
        Px.append(float(P[0,0]))
        Py.append(float(P[1,1]))
        Pdx.append(float(P[2,2]))
        Pdy.append(float(P[3,3]))
        Rdx.append(float(R[0,0]))
        Rdy.append(float(R[1,1]))
        Kx.append(float(K[0,0]))
        Ky.append(float(K[1,0]))
        Kdx.append(float(K[2,0]))
        Kdy.append(float(K[3,0]))    
    

    卡尔曼滤波:

    for n in range(len(measurements[0])):
     
        # Time Update (Prediction)
        # ========================
        # Project the state ahead
        x = F*x
        
        # Project the error covariance ahead
        P = F*P*F.T + Q
        
        # Measurement Update (Correction)
        # ===============================
        # Compute the Kalman Gain
        S = H*P*H.T + R
        K = (P*H.T) * np.linalg.pinv(S)
        
        # Update the estimate via z
        Z = measurements[:,n].reshape(2,1)
        y = Z - (H*x)                            # Innovation or Residual
        x = x + (K*y)
        
        # Update the error covariance
        P = (I - (K*H))*P
        
        # Save states (for Plotting)
        savestates(x, Z, P, R, K)
    

    显示一下关于速度的估计结果:

    def plot_x():
        fig = plt.figure(figsize=(16,9))
        plt.step(range(len(measurements[0])),dxt, label='$estimateVx$')
        plt.step(range(len(measurements[0])),dyt, label='$estimateVy$')
        
        plt.step(range(len(measurements[0])),measurements[0], label='$measurementVx$')
        plt.step(range(len(measurements[0])),measurements[1], label='$measurementVy$')
    
        plt.axhline(vx, color='#999999', label='$trueVx$')
        plt.axhline(vy, color='#999999', label='$trueVy$')
    
        plt.xlabel('Filter Step')
        plt.title('Estimate (Elements from State Vector $x$)')
        plt.legend(loc='best',prop={'size':11})
        plt.ylim([0, 30])
        plt.ylabel('Velocity')
    plot_x()
    

    预测的结果如图所示:

    这里写图片描述

    位置的估计结果:

    def plot_xy():
        fig = plt.figure(figsize=(16,16))
        plt.scatter(xt,yt, s=20, label='State', c='k')
        plt.scatter(xt[0],yt[0], s=100, label='Start', c='g')
        plt.scatter(xt[-1],yt[-1], s=100, label='Goal', c='r')
    
        plt.xlabel('X')
        plt.ylabel('Y')
        plt.title('Position')
        plt.legend(loc='best')
        plt.axis('equal')
    plot_xy()
    

    这里写图片描述

    至此,最最简单的卡尔曼滤波以及其在无人驾驶汽车的感知模块中的应用就完成了。这篇博客仅仅只讲了卡尔曼滤波的基本形式,并不是实际无人车项目中的所使用的技术,但是其基本原理与我们目前在Google无人车感知模块的技术是相通的。

    虽然本例中以无人驾驶的行人检测作为落脚点讲解卡尔曼滤波,但是实际上我们的无人车并不会仅仅使用原始的卡尔曼滤波作为行人感知的状态估计,因为卡尔曼滤波存在着一个非常大的局限性——它仅能对线性的过程模型和测量模型进行精确的估计,在非线性的场景中并不能达到最优的估计效果,为了能够设定线性的环境,我们假定了我们的过程模型为恒定速度模型,但是显然在显示的应用中不是这样的,不论是过程模型还是测量模型,都是非线性的,下一篇我将介绍一种能够应用于非线性情况的卡尔曼滤波算法——扩展卡尔曼滤波。

    展开全文
  • 无人驾驶(目前的自动驾驶方案)

    千次阅读 2019-06-30 22:46:16
    虽然目前市场上无人驾驶概念很火,但是真正能够落地的很少。虽然根据SAE的标准,自动驾驶有6个级别,但是目前为止,还没有一家公司做到量产级别的L4、L5。即使特别喜欢用最新技术的奔驰、宝马、奥迪,其实也主要把...

    原文地址:https://blog.csdn.net/feixiaoxing/article/details/88387345   致敬

     

    虽然目前市场上无人驾驶概念很火,但是真正能够落地的很少。虽然根据SAE的标准,自动驾驶有6个级别,但是目前为止,还没有一家公司做到量产级别的L4、L5。即使特别喜欢用最新技术的奔驰、宝马、奥迪,其实也主要把经历放在L2、L3上面。

     

    1、L1的应用

        一般认为,拥有acc或者lka、apa一项功能的车辆就认为是实现了level 1的水平。如果说,以前只要高配车型才有这项功能的时候,那么现在很多功能基本成了标配,比如acc。关于Level 1的配置,一般会有一个前置摄像头、一个长距离雷达、两个角雷达。

     

    2、L2的应用

        相比较L1的普及,那么现在这个结点,其实正是Level 2大面积推广的时刻。不管市场上各个自动驾驶创业公司叫的多厉害,他们如果需要在这个市场立足或者短时间内获取现金流,那么acc + lka + apa是最基本的选择。就拿高速公路来说,只要有清晰的车道线,并且道路的弯曲程度适中,打开acc和lka,那么车辆完全可以自己驾驶。即使在车道方向上遇到一些障碍也不用紧张,车辆雷达或者前置摄像头会立即感知到,并且通知汽车作出合适的反应。很多人喜欢将tesla看作是Level 2.5,但是就个人观点而言,tesla的换道策略,还是需要驾驶员拨杆通知的,只是车辆会在换道的时候检测来往车辆,判断当前的环境是否真的适合换道。关于Level 2的配置,一般会有一个前置摄像头、一个长距离雷达、四个角雷达、还有可能有数量不等超声波雷达。

     

    3、L2.5的应用

        Level 2.5,从名字就可以知道这个level的汽车会比L2好一点,但是又没有达到Level 3的要求。比如Level 2.5相比较Level 2就可以有自己的换道策略,这中间不需要驾驶员参与。但是相比较Level 3,它没有激光雷达,他的感知能力存在一些盲点。因此,目前一些公司的做法就是用Level 3的配置来实现Level 2.5的功能。目前Level 2.5的硬件配置还是很多的,一般会有一个前置摄像头、一个长距离雷达、四个环视摄像头、四个角雷达、12个超声波雷达,软件方面有可能有hdmap,也有可能没有。有的时候为了功能安全,前置摄像头和长距离雷达可能各需要两个,这样可以在紧急情况下实现主备切换。

     

    4、L3的应用

        Level 3按照道理来说,应该可以实现特定场景下的大部分自动驾驶操作。目前已知的Level 3自动驾驶,应该是audi a8。但是这个系统开发代价较大,最乐观的估计从audi a8推广到普通大众车也需要几年的时间。不管是加速、减速、换道,还是左转、右转、掉头,level 3级别的汽车都能够轻松驾驭。我们从audi a8的配置来看,即使做到了自动驾驶,它对速度也是有严格要求的,同时为了成本的考量,它也只是使用了4线激光雷达,远不是创业公司使用的32线、64线雷达。相比较Level 2.5,Level3 需要增加更多的硬件和软件,比如激光雷达和hdmap。当然相比较L2而言,L3还会都一个DMS,就是驾驶员监控系统,它会帮助判断当前驾驶员是否分心、是否疲劳,有了这些结果,L3就会分析是否需要继续进行自动驾驶的操作。

     

    5、L4的应用

        Level 4目前还没有一家公司推出量产产品。Level 4意味着在某些场景下,车辆不需要人的参与,完全可以cover所有的情况。即使车辆出现了异常,车辆也会自己紧急靠边,呼叫等待,这个流程可以一气呵成。要实现这个目前,那就意味着车辆需要更多的传感器、更多的算力、更多的能源消耗,这中间的成本考量短时间内有很大的障碍。L4相比较L3是前进了一大步,因此从硬件考虑上说,它必须有至少两套加速、两套刹车、两套转向系统,同时相比较L3有更多的传感器和算力要求,L4并不好做。那些宣称具体某一年实现L4的公司,不是demo版本就是在吹牛。

     

    6、现实的状况

        目前能够量产的自动驾驶很少,大部分还是在Level 2和Level 3之间。从传感器的配置上,超声波雷达已经非常便宜,应用上面也是主要偏向于自动泊车。camera方面,目前主要是采用mobileye的整体方案,这样可以在视觉感知上面节省很多的时间毫米波雷达,不管是24G还是77G,本身技术已经很成熟,大陆也好,德尔福也好,成本处在可以接受的范围内。至于激光雷达,目前在实际车辆装备的很少,即使有,也是4线雷达、甚至是多个1线雷达这种低成本方案,短时间内看不到大规划量产的可能,目前真正量产的lidar应该只有大陆的scala方案。有了传感器,在算力方面,nxp、瑞萨、ti都推出了自己的方案,而高通、三星、英伟达也跃跃欲试。至于车联网,虽然5G部署提上日程,但是真正推广和应用尚需时日。此外,拥有自动驾驶研发能力的OEM还是很少的,大部分还是依赖于tier1,因为比硬件更重要的是软件的开发、测试和验证。这不是OEM的强项。单单验证这一项,除了simulink + carsim这种仿真测试,在实际车辆、实际场景上的测试可能需要几万小时的数据量,并且这还是远远不够的,测试成本可不是一般的公司可以承受的。一个新的车型尚且需要40-50个月的周期,如果再加上自动驾驶测试,这个总开发时间就非常可观了。一个比较合理的解释就是,大部分自动驾驶公司会变成OEM的子公司,或者转型为tier2,和tier1一起为OEM提供整体自动驾驶方案。只有极少数的公司会拥有自己的platform,或者直接转型为tier1。

     

    7、后续的道路

        目前自动驾驶大家都在等待一个标杆企业的出现,就像手机里面的苹果。但是google的waymo是否有兴趣和有能力成为这样的标杆企业,还很难说。但是个人觉得只要场景和安全有保证,优化Level 2.5下的实际体验,做好这个级别下的自动驾驶,就可以极大地提高汽车的乐趣。至于将来什么时候可以达到自动驾驶,这不仅仅需要OEM的努力,还需要政府、交通、法律、社会大家的一道支持。

     

        如果要实现自动驾驶的安全,不仅仅需要足够多的传感器和强劲的cpu计算能力,还需要国家在道路改造、网络升级、法律修订、保险改革、车辆强制安装方面有所作为。只要做好了外部环境的安全,汽车安全才有真正实现的可能。

     

    8、市场上的公开方案

        目前能提供L2级别量产方案的还是博世,比如宝骏的RS5、吉利博瑞GE、长安CS55、长城VV6、吉利缤瑞、上汽Marvel X等等。提供OEM L3方案的是veoneer。veoneer是autoliv分出来的一家公司,和delphi下的aptiv是一个道理。veoneer和吉利已经签合同,这个可以从公开的网站上可查询到,但是至于2020年底能不能量产目前还是未知数。

     

    9、创业公司的自动驾驶方案

        我们以momenta为例,他们的产品主要有三块。第一,基于前置摄像头和驾驶员监控的相关业务,类似于mobileye和DMS,按照目前的情形,这一块是可以尽快落地的。第二,是面向城市和高速的L3驾驶方案,这一部分类似于audi的a8 L3方案,当然momenta可能有自己的特色。第三,就是代客泊车,目前奔驰和博世正在研发这一方案,网上可以找到相关新闻。它的基本原理就是改造停车场,而汽车只要安装v2x设备,就可以实现L4级别的自动驾驶,因为所有的加速、减速、转弯命令都是停车场发出来的。

     

        除了momenta,我们还可以看另外一家自动驾驶公司禾多科技。其实他们的产品和momenta类似,只不过少了camera和DMS,全力聚焦高速L3和代客泊车。原来的链接在当然,目前国内除了Geely和Autoliv的veoneer达成了L3开发计划之外,公开新闻里面还没有一家创业公司和主机厂签署类似的协议。

     

        当然,除了momenta、禾多这种定位于tier2的公司来说,还有更多致力于自动物流的创业公司,比如图森未来、驭势科技等等。

     

        大家可以自己好好关注一下,对时下比较清晰的自动驾驶行业也有一个比较清晰的认识。

     

    链接:

    a,momenta产品 https://www.qxwz.com/zixun/753690769

    b,禾多产品 http://www.holomatic.cn/news/16.html

    作者:费晓行 
    原文:https://blog.csdn.net/feixiaoxing/article/details/88387345 
     

    展开全文
  • 无人驾驶基本原理

    千次阅读 2019-10-18 13:20:32
    无人驾驶汽车 无人驾驶汽车,又称自动驾驶汽车或轮式移动机器人,是一种运输动力的无人地面载具。我们理想的无人驾驶汽车是无需人类操作即能从地点A行驶到地点B,不管途中环境多复杂天气多恶劣都由机器自己完成。...
    
    

    无人驾驶汽车

    无人驾驶汽车,又称自动驾驶汽车或轮式移动机器人,是一种运输动力的无人地面载具。我们理想的无人驾驶汽车是无需人类操作即能从地点A行驶到地点B,不管途中环境多复杂天气多恶劣都由机器自己完成。无人驾驶汽车的核心在于无人驾驶技术,如果说汽车工业是制造业的皇冠,那么无人驾驶技术就是皇冠上的明珠。

    无人驾驶汽车需要多门技术整合才能实现,它并非是一项单一的新技术,其中包括雷达、激光雷达、摄像头、GPS、计算机视觉、决策系统、操作系统、高精地图、实时定位、机械控制、能耗散热管理等等。尽管无人驾驶汽车看起来很科幻,但实际上梦想正在照进现实。

    无人驾驶

    无人驾驶分级

    针对无人驾驶汽车自动化的程度一般可以分为6个级别,按照自动化程度从低到高顺序分别为Level 0 到Level 5。

    • Level 0:无任何自动化驾驶功能,行驶过程完全依靠人类司机控制汽车,包括汽车启动、行驶过程中的各种环境状况的观察、各种操作决策等等。简单来说,需要人类控制驾驶的汽车都属于这个级别。
    • Level 1:单一功能自动化,行驶过程中将部分控制权交给机器管理,但是司机仍然需要把控整体。比如自适应巡航、应急刹车辅助、车道保持等等。司机手脚不能同时脱离控制系统。
    • Level 2:部分自动化,行驶过程中司机和汽车共享汽车控制权,在某些预设环境下司机能够完全脱离控制系统,但司机需要随时待命,且需要在短时间内接管汽车。
    • Level 3:有条件自动化,在有限情况下实现自动行驶。比如在高速路上机器完全负责整个汽车的操控,司机可以完全完全脱离控制系统,司机需要随时待命,但有足够的预警时间。
    • Level 4:高度自动化,在特定道路限定下行驶过程中无需司机介入。司机仅需要设置好起点和终点即可,剩下的交由汽车自行控制。
    • Level 5:完全自动化,在任何环境中行驶都无需司机介入。司机仅需要设置好起点和终点即可,剩下的交由汽车自行控制。

    无线雷达

    无线雷达(Radio Detection and Ranging)是汽车上很常见的组件,它的工作原理是发射出无线电波后经过远处物体将无线电波反射回来从而达到探测效果。通过无线雷达能够获得物体的数量、大小、运动速度、运动方向等等信息,在无人驾驶领域它经常被用于自适应巡航和自动紧急制动场景。

    雷达

    雷达向目标区域发出无线电波,某个物体将无线电波反射回来,便能够计算两者之间的距离。距离d=c⋅t/2,其中t为从无线电波发射到反射回来的时间间隔,c为光速(3⋅10的八次方米每秒)。

    雷达可用来识别数百码之外的物体,并且能够检测它的大小及运动速度。但它不能够捕获到物体的细节。

    激光雷达

    激光雷达LiDAR(Light Detection and Ranging),即激光探测及测距系统,是以发射激光束来探测物体的雷达系统。其工作原理是向目标物体发射大量激光束探测信号,然后接收器处理目标反射回来的信号即可获得目标的有关信息,比如目标的距离、方位、高度、速度、姿态、甚至形状等信息。无人驾驶汽车的激光雷达一般都安装在车顶上,不断地高速旋转对周围环境进行扫描,通过它能够得到周围物体的三维信息。

    激光雷达

    激光雷达的测量原理相对比较简单,比如下图中车上的激光雷达向目标物体发出一束激光,就可以通过光速来计算距离了,而加上光束的角度后则能得到更多指标。

    对于实际立体物体,通过激光雷达对整个物体扫描就能够形成3D点云。激光雷达对目标发射出多个光束,接收器接收反射回来的光束后对信号进行处理,从而形成3D点云。

    3D激光雷达

    激光雷达提供了比无线雷达更高分辨率的解决方案,能比无线雷达捕获更多信息。激光雷达造价贵,运行时需要不停旋转,同时它无法在多雾多尘的天气工作。

    摄像头

    为了捕获更多的图像细节,我们需要在无人驾驶汽车上增加摄像头,比如要识别公路上的路标。摄像头能够得到无人驾驶汽车周围最准确的视图,提供了最高分别率图像。摄像头受天气影响很大,比如晚上摄像头就影响很大。

    对于捕获到的图像,要识别里面的物体就需要机器学习来加持。而目前流行的图像识别使用的都是深度学习,核心就是卷积神经网络。前面的神经网络工作原理章节和深度学习原理章节已经讲解了相关的原理,所以通过深度卷积神经网络是对摄像头收集的图像进行处理的核心。

    无人车经过摄像头捕获的镜头通过深度学习能够识别出图像中包含的物体,比如行人、行车、交通路标等等。对应计算机视觉的物体检测与物体分类任务,经典的算法包括R-CNN、Faster R-CNN、SSD、YOLO等等。

    物体检测

    超声波雷达

    除了以上传感器外,无人驾驶汽车一般还会安装有超声波雷达。超声波雷达又称倒车雷达,很明显它主要是为倒车做辅助的。它的工作原理是通过超声波发射装置向外发射超声波,然后通过接收器接收反弹回来的超声波,根据时间差来计算距离。距离d=343⋅时间/2,其中343位声波速度,343m/s。超声波雷达的探测范围一般在几米以内,探测精度较高,适合用于泊车。

    超声波雷达

    GPS

    GPS是最常用的定位技术,在无人驾驶汽车中会通过其进行定位。GPS的更新频率为10Hz,所以它缺乏实时性。此外,GPS民用版的误差能达到好几米,所以完全靠GPS进行定位导航非常容易导致交通事故。

    GPS

    GPS的定位使用了三边测量法,卫星与接收装置之间的距离通过传输时间来测量距离,然后通过多颗卫星的位置便能够计算接收装置的位置,GPS一般会使用4颗以上的卫星来定位接受装置的3D位置信息。

    下面通过一个例子来理解2D的三边测量法,比如你的位置与A卫星的距离为100km,则你可能的位置是在以A卫星为中心的一个圆上。

    接着你又向另外一个卫星B发出无线信号,测量的距离时75km,则此时你的位置有两种可能,就是两个圆的相交点。

    最后向卫星C发出无线信号,测量得出的距离为200km,此时三个圆的相交点就能唯一定位一个位置,这个位置即是你的位置。也就是说三个卫星就能确定一个平面上的点,只要坐标系建立起来便能得到详细的xy值。

    高精地图

    高精地图是无人驾驶汽车重要的支撑,它包含了大量的行车辅助信息,除了能提供精确的定位外,它还能做智能避让、智能调速等等。高精地图能为无人车提供静态的感知能力,为无人车提供全局视野,比如道路、交通、基础设施等信息。

    我们现在日常使用的电子地图为传统电子地图,它能用于查询地点和导航,主要面向人类驾驶员。而高精电子地图则能提供比传统电子地图更多的信息,主要面向无人车。无人车车身上的传感器能收集到的主要信息范围都非常有限,而通过高精电子地图则能够将无人车的感知能力范围大大延伸,而且能够得到更多准确的信息。

    高精地图

    高精地图包含了很多辅助信息。比如包括车道的位置、宽度、斜度、类型、曲率等等公路数据信息。比如包括交通标识、信号灯、障碍物、道路限高、防护栏、树、围栏、地标等等环境数据信息。如果进一步对高精电子地图的模型进行抽象,则可以得到更多无人车与车道、交通、基础设施之间的信息。

    相比于GPS,高精电子地图能够实现比GPS高10倍以上的精度,GPS精度一般在几米,而高精地图与传感器协作则能使精度达到厘米级别。

    惯性测量装置

    惯性测量装置(IMU)是一种测量加速度与角速度的传感器。无人车一般使用的是中低级惯性传感器,更新频率为1kHz,价格为几千块。惯性能协助无人车进行定位,但因为它的误差会随着时间而累积,所以只能用于很短时间内的定位。

    为了方便理解惯性测量装置的加速度,我们可以将加速度计想象成一个箱子里面悬浮着一个球,它们处于无重力的太空中。当我们向左边施加一个重力加速度(1g)时,球会向X-方向的壁平面产生1g的压力,然后我们就能够测量到x轴上的加速度为-1g。

    惯性测量装置还包含了角速度测量功能,陀螺可以绕着支点进行三个自由度的转动。如下面的陀螺仪中间有一根竖轴穿过一个金属圆盘,圆盘称为转子,竖轴为旋转轴。为了增加惯性,转子用质量大的金属制成。竖轴外侧由三层不同大小的圆环嵌套而成,拥有三个方向自由度。角速度的测量则主要是利用角动量守恒定理。

    陀螺仪

    V2X与环境交互

    V2X通信传感是无人车与周围环境的通信协议,包括车与车通信(Vehicle to Vehicle,V2V)、车与基础设施通信(Vehicle to Infrastructure,V2I)、车与行人通信(Vehicle to Pedestrian,V2P)。

    V2V通信指无人驾驶汽车之间进行信息交换,比如无人驾驶车之间交换交通状况。V2I通信指无人驾驶汽车与基础设施之间进行信息交换,比如智能停车场与无人驾驶汽车的通信。V2P通信指无人驾驶汽车与行人之间进行信息交换,比如通过智能手机应用与无人驾驶汽车通信。

    路径规划

    路径规划主要解决的问题是找到一条最快最安全的从起点到终点的路径,路径规划中有很多成熟的算法,比如Dijkstra算法、A*算法、RRT算法等等。无人驾驶汽车的路径规划需要考虑多因素的影响,比如车祸路道、交通拥堵等。

    路径规划

    总结

    无人驾驶汽车的核心是感知能力,无人车有四种不同视野的眼睛,包括无线雷达、激光雷达、超声波雷达和摄像头,通过它们能得到不同的视野。在定位方面无人驾驶汽车使用GPS与惯性策略装置,再加上高精电子地图就能够实现非常精准的定位。此外,为了能让无人车与环境进行通信交互,V2X被提出来,包括V2V、V2I、V2P。

    14-30
    展开全文
  • 无人驾驶之入门(开篇)

    千次阅读 2018-05-10 06:08:29
    这其中就包括了智能音箱、无人驾驶、人脸识别等等。由于智能硬件、识别算法的改进,人工智能给人们生活所带来的改变开始变的触手可及。比如,停车场的车牌识别系统、人脸支付、指纹识别等等,这些都不再是新闻了。 ...

    【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com


        这两年人工智能非常火,这也带动了和人工智能关联的一些项目。这其中就包括了智能音箱、无人驾驶、人脸识别等等。由于智能硬件、识别算法的改进,人工智能给人们生活所带来的改变开始变的触手可及。比如,停车场的车牌识别系统、人脸支付、指纹识别等等,这些都不再是新闻了。


        说了这么多其他项目,接着可以说说无人驾驶了。开过车的朋友都知道,对于开短途的司机来说,开车或许是一种体验或者享受。但是对于长途司机或者大巴司机、公交司机来说,那开车就是一种受罪,完全没有任何乐趣可言。所以,从个人来讲,无人驾驶或者自动驾驶,本身肯定是一个实实在在的需求。这因为存在这样的需求,才有了研究的价值。


    1、目前自动驾驶的玩家

        从全球来说,自动驾驶有很多很多的公司在做。如果简单归类一下,可以分成这么三类。它们分别是主机商、创新公司或者供应商、出行公司。主机商,这个比较好理解,比如奥迪、通用、tesla这些主机厂商都在做自动驾驶。其中tesla做的还非常不错。创新公司或者供应商呢,这就稍微复杂点,比如google的waymo、百度的apollo、以色列的mobileye,还有就是奥托立夫、博世、大陆、德尔福(号称汽车电子的abcd),它们也在做自动驾驶。至于一些创新公司,比如楼天成的小马智行、景驰科技等等,这些都算是比较有名的创业企业。最后一类企业看上去有点不着边,但我自己反而认为它们确是对自动驾驶非常渴求的一些企业,比如uber、滴滴等等。


    2、自动驾驶的标准

        关于自动驾驶,SAE(即美国汽车工程师协会)将自动驾驶分成了6个级别。它们分别是L0~L5。这其中,L0没有任何驾驶辅助,L1、L2称之为部分驾驶辅助(和大家平时接触的adas差不多),L3~L5称之为自动驾驶。L3要求驾驶员在必要的时候作出回答、L4不需要驾驶员的应答(可以完成特定环境下的自动驾驶)、L5则满足所有路况的自动驾驶。


    3、已经量产的自动驾驶

        目前量产的自动驾驶的有telsa和audi a8两款车。其中tesla的自动驾驶一般认为在L2~L2.5水平。客观的说,tesla在自动驾驶的普及方面是走在前列的。另外一个实现自动驾驶功能的就是audi的a8车型,号称可以实现L3的水平,但是有很多限制。


    4、自动驾驶涉及的领域

        自动驾驶涉及的领域特别多。它包括了芯片、电路设计、软件、人工智能、自动控制、云端模拟、高清地图、安全等很多的领域。


    5、个人怎么学习自动驾驶

        根据个人经验,目前市场上学习自动驾驶有两个途径。一种是看书,比如《第一本无人驾驶技术书》、这是我觉得唯一值得买的书,特别是里面提到的论文、算法都特别好。第二种方法就是阅读代码,比如https://github.com/ApolloAuto/apollo ,抛开具体代码不说,光是它的一些架构和流程,对我们了解自动驾驶就有很多好处。


    6、其他

        除了本篇文章,后续会逐渐对自动驾驶进行展开分析。有兴趣的朋友可以一起参与进来。


    资料:

    a,《第一本无人驾驶技术书

    b,百度apollo

    c,https://www.autoware.ai


    展开全文
  • 无人驾驶

    2020-10-06 14:51:56
    1、高精地图、无人驾驶 实现无人驾驶有两个方向:一是重定位,一是重感知。 重定位是通过高精地图等提供信息(prior knowledge),然后通过定位来确定位置。 重感知是通过计算机视觉等理解整个环境,没有环境信息也...
  • 无人驾驶入门(基本流程)

    千次阅读 2018-09-04 06:41:48
     无人驾驶的操作流程,没有大家想的那么复杂。大家完全可以根据自己开车的实践,推断出自动驾驶应该包括那些内容。传统意义上,很多论文或者教材都喜欢把自动驾驶分成感知、预测、规划和控制四个部分,但是我个人...
  • 如何成为一名无人驾驶工程师

    万次阅读 多人点赞 2017-11-15 08:03:14
    作者 | 刘少山 无人驾驶作为一项新兴技术,落地为产品需要大量算法、工程、产品贯通的AI全栈人才。笔者在最近一年招聘中发现,许多...这次笔者以一个从业者角度来与大家聊一下如何入门无人驾驶/机器人行业
  • 人工智能在无人驾驶中的应用

    千次阅读 2019-08-19 10:49:11
    引用自:人工智能在自动驾驶领域的应用及启示 吴 琦,于海靖,谢 勇,刘 贝 1 引言 ​         人们越来越期望通过无人系统代替人类进行一些活动。小到帮助人们自动清扫地面的扫地机器人,大...
  • 无人驾驶汽车系统入门(十七)——无人驾驶系统基本框架 前面的文章基本上是想写什么写什么,缺乏条理,本节我们完整的梳理一遍无人驾驶系统的基本框架,帮助读者建立对整个系统的完整认识 无人驾驶系统的核心...
  • 无人驾驶决策控制

    千次阅读 2019-03-27 14:28:06
    近年来,随着人工智能和物联网技术的快速发展,无人驾驶汽车受到学术界、产业界极大关注,无人驾驶概念持续火热。从概念定义来看,智能驾驶汽车是一种自动化载体,能够部分或者全面代替驾驶员进行驾驶行为,无人驾驶...
  • 目前无人驾驶火热, 那么今天就谈谈5G如何应用到无人驾驶上 首先说一下5G的特性,延迟极低,可以在高速移动的通信时候 很好的传输信号 为什么无人驾驶非要5G通信不可 原因很简单,任何的车辆上,安装只能设备,都有...
  • 基于本人对无人驾驶系统的理解,对无人驾驶系统的软件架构进行分层,大致分别以下3层:感知层、决策层与控制层。二、感知层感知层主要是通过各种传感器以及高精度地图实现,包含车辆的定位以及对物体的识别。 车辆...
  • 无人驾驶技术--五个等级

    千次阅读 2019-07-10 13:47:31
    美国高速公路交通安全委员会(NHTSA)将无人驾驶技术分成了五个等级: L0:驾驶者拥有百分之百的控制权,车辆没有任何安全系统辅助设备,目前绝大部分车辆属此层级; L1:车辆拥有单个或多个独立功能电子控制系统,如...
  • 无人驾驶汽车的体系结构

    千次阅读 2016-09-27 19:57:05
    无人驾驶汽车的体系结构
  • 无人驾驶汽车工作原理及关键技术 一、无人驾驶汽车技术介绍  无人驾驶汽车是智能汽车的一种,也称为轮式移动机器人,主要依靠车内的以计算机系统为主的智能驾驶仪来实现无人驾驶的目标。  据汤森路透知识产权与...
  • 无人驾驶面临的伦理问题

    千次阅读 2017-11-29 20:47:39
    无人驾驶面临的伦理问题
  • 无人驾驶作为人工智能的集大成应用,从来就不是某单一的技术,而是众多技术点的整合。技术上它需要有算法上的创新、系统上的融合,以及来自云平台的支持。本文整合了首发于《程序员》的无人驾驶系列技术文章,点击...
  • NOW,从零开始学无人驾驶,法宝是MALAB2018a Automated Driving System Toolbox 1.2 即无人驾驶工具箱。 众所周知,MATLAB已经不单单是一个数据计算的工具,而是因为它更多的开发工具包的存在,成为一个集大成的...
  • 从今天起,我将根据自己所接触的ADAS和无人驾驶技术,来写一写无人驾驶的基本知识,主要是帮助自己总结,还有是自己做了一些工作,这里就当做是用来保存的笔记。本人还在读研,所以有些知识还不足,希望大家多多指点...
1 2 3 4 5 ... 20
收藏数 30,115
精华内容 12,046
关键字:

无人驾驶