liyihongcug 发表于 2020-5-11 09:33:25

三维开发与自动驾驶

三维平台开发仅仅是自动驾驶解决方案的一个环节,而且仅仅是偏重软件部分。
自动驾驶可以说是机器人研发,难度系数疯狂增长,复杂度实在较大,目前仅仅理论上进行一步步的抽丝剥茧。
很多论文或者教材都喜欢把自动驾驶分成感知、预测、规划和控制四个部分,再添加两个部分,即导航和停车,这样会构成一个更完整的整体。(转载的一文尽管不严密,但参照第一本无人驾驶,发现还是点到核心了。算法部分数学卡死了很多人的高薪梦想,但这个行当各个层次的都需要。精通某个方向似乎不是那么容易。软硬通吃还要坚强动手实践能力解决问题的应变能力,驾驶经验,地理知识等等)
1、导航
    当车辆开始启动的时候,我们会输入起始地址和目的地址。有了这两个地址,软件就可以帮助我们规划合理的行驶路线。目前导航这一块已经很成熟了,百度导航和高德导航也做的很好。

 2、感知
    所谓感知,就是车辆需要定位自身的位置,同时它还需要了解周围的环境。为了做到这些,一般自动驾驶车辆需要安装1-n个激光雷达、1-2个长距离毫米波雷达,4个左右短距离毫米波雷达,8-12个摄像头雷达,8-12个超声波雷达,gps+imu定位系统,同时还要安装高清地图。有了这些传感器和软件,车辆才能进行数据分析、信息融合,获取周围的环境信息。


3、预测
    有了环境数据之后,车辆还要进一步分析和判断周围车辆、行人、物体在未来一段时间内的行驶轨迹。这种判断是十分复杂的,但它决定了我们车辆在未来一段时间内要采用什么样的方式行驶。

 4、路径规划
    如果说导航规划的是大路径,那么这里的规划就是局部小路径,通常也就几十米,且实时更新。有了感知和预测的信息,车辆可以灵活规划自己未来的行驶轨迹。是超车,还是刹车,是并线,还是继续向前行走,是准备转弯,还是掉头,如何不和其他车辆发生冲突,不碰撞行人,这个时候路径规划要考虑的东西就很多了。当然,除了技术之外,行人的舒适度也是路径规划必须考虑的一个重要指标。
5、控制

    有了规划给出的局部路径,这个时候就需要利用特定的控制算法对车辆进行控制,使得车辆行驶轨迹和我们设计的轨迹拟合在一起。这中间或许存在误差,但是误差必须尽量小。一方面,车辆要对速度进行纵向控制,目前PID用的较多,但是体验较差;另一方面,车辆要对方向进行横向控制,目前LQR用的较多。车辆控制的时候必须平顺舒缓,否则会给乘客带来很不好的用户体验。为什么一般来说,自动驾驶和电动汽车搭配较好,答案就是电动汽车可以在开机一刹那全功率输出,而燃油车有复杂的发动机模型、变速器模型,完全非线性的动力控制对于新能源汽车制造公司来说,控制难度较大。

 

6、停车(自动泊车)

    车辆行驶到目的地之后,如何自动泊车也是很重要的一个问题。只不过,目前大多数泊车还是半自动泊车,真正做到全场景自动泊车的还不多,这或许也是未来发展的一个方向吧

liyihongcug 发表于 2020-5-11 09:54:18

本帖最后由 liyihongcug 于 2020-5-11 11:13 编辑

按照百度的分类,
高精度地图的实现逻辑,这是 Apollo 定位、感知、规划模块的基础。
定位 车辆如何以个位数厘米级别的精度进行自定位。
感知任务,例如分类、检测和分割,并学习对感知而言至关重要的卷积神经网络。
预测方式,让 Apollo 无人驾驶车预测其他车辆或行人是如何移动的。
Apollo 应用于无人驾驶车路径规划的几种不同方式。
控制了解无人驾驶车是如何使用方向盘、油门和刹车来执行我们规划好的轨迹,并掌握 Apollo 中不同类型的控制器。


第一本无人驾驶书中提到
无人驾驶系统有三部分构成: 算法端client端 云端.
算法端(传感器 感知 决策(预测 路径规划 避障))
client端(ROS 硬件平台 )
云端(1仿真spark 2高精度地图生成--过程3模型训练 4 数据存储 )

考虑到图形的缘故,这里简单介绍下高精度地图的生产过程。客观确实复杂,设计rawdata生成,点云,点云对齐,2D反射地图,HD地图标注
地图生成阶段。使用spark可以把所有这些阶段整合车位过一个spark作业。由于spark天然的内存计算特性,在作业运行过程总的
产生的中间数据都存储在内存。在整个作业提交后,不同阶段之间产生的大量数据不需要使用磁盘存储,数据访问速度加快,从而极大提高
高精地图的生成性能
页: [1]
查看完整版本: 三维开发与自动驾驶