自动驾驶

技术文档丨 Can总线与定位模块

陌路散爱 提交于 2020-04-09 07:25:32
本文作者:Apollo开发者社区 CAN(Controller Area Network )总线 在整个无人驾驶系统中有着十分重要的作用。除了在VCU信号需要通过CAN总线进行传输外,无人车上的某些传感器(如雷达、Mobileye)的信号传递也是通过CAN实现的。 定位 是让无人车知道自身确切位置的方法,这是一个美妙但是十分艰难的任务,同时也对无人驾驶车十分重要。定位不仅仅是找出自身的大概方位,而是要以 10cm 级别,将车感信息与高精地图信息进行比较来精确的位置寻找。 以下,ENJOY Can总线 简介 Can总线接收和执行来自 控制模块 的命令,收集汽车底盘的状态信息并反馈给控制模块。 输入 控制命令 输出 底盘状态 底盘各部件消息状态 实现 Canbus模块 主要包括以下几个部分: 车辆:车辆本身,包括车辆控制器和消息管理器 CAN 客户端— CAN 客户端已被移动到/modules/drivers/canbus 目录下,因为它已经被使用canbus 协议的不同传感器共享。 通过继承CanClient类的方式,您可以在文件夹can_client中实现自己的CAN 客户端。 注意: 不要忘了在‘CanClientFactory’(Can客户端工厂)类中注册您自己的CAN 客户端。 在文件夹vehicle下,您也可以通过继承VehicleController

开发者说丨手把手教你写扩展卡尔曼滤波器

笑着哭i 提交于 2020-04-09 06:35:00
本文作者:Apollo开发者社区 卡尔曼滤波器 是一种由卡尔曼(Kalman)提出的用于时变线性系统的递归滤波器。这个系统可用包含 正交状态变量的微分方程模型 来描述,这种滤波器是将过去的测量估计误差合并到新的测量误差中来估计将来的误差。 当系统状态方程 不符合线性假设时 ,采用卡尔曼滤波无法获得理想的最优估计;在描述机器人状态时常常不满足卡尔曼滤波的假设,为了仍然能够使用卡尔曼滤波,我们采用 对 非线性系统进行线性化 等方法来扩大卡尔曼滤波的使用范围。扩展卡尔曼滤波与卡尔曼滤波主要 区别 在于:对状态方程和观测方程 泰勒展开 。 本文由 百度Apollo智能汽车事业部 自动驾驶工程师——陈光 撰写,对 扩展卡尔曼滤波器 进行了详细讲解,希望感兴趣的同学能通过阅读这篇文章有所收获。 以下,ENJOY 前言 在之前分享的 《开发者说 | 手把手教你写卡尔曼滤波器 》 中 , 以一个匀速运动小车的模型为例,让读者从感性上认识了卡尔曼滤波器的基本原理,它包含 预测(Prediction) 和 测量值更新(Measurement update) 两大过程。预测和测量值更新的交替执行,实现了卡尔曼滤波在状态估计中的闭环。 随后,我从 理性分析 的角度,以无人驾驶中 激光雷达 测量障碍物位置的数据为例,结合卡尔曼滤波所用到的公式,使用C+

开发者说丨手把手教你实现多传感器融合技术

纵然是瞬间 提交于 2020-04-09 06:22:06
本文作者:Apollo开发者社区 多传感器融合 又称多传感器信息融合(multi-sensor information fusion),有时也称多传感器数据融合(multi-sensor date fusion)。就是利用计算机技术将来自 多传感器 或 多源的信息 和 数据 ,在一定的准则下加以自动分析和综合,以完成所需要的决策和估计而进行的信息处理过程。 多传感器信息融合技术的基本原理 就像人的大脑综合处理信息的过程一样,将各种传感器进行 多层次 、 多空间 的信息互补和优化组合处理,最终产生对观测环境的一致性解释。在这个过程中要充分地利用多源数据进行合理支配与使用,而信息融合的最终目标则是 基于各传感器 获得的分离观测信息,通过对信息多级别、多方面组合导出更多有用信息。这不仅是利用了多个传感器相互协同操作的优势,而且也综合处理了其它信息源的数据来提高整个传感器系统的智能化。 虽然自动驾驶在全球范围内已掀起浪潮,但是从技术方面而言依然存在挑战。目前自动驾驶的痛点在于稳定可靠的感知及认知,包括 清晰的视觉 、 优质的算法 、 多传感器融合 以及高效强大的运算能力。据分析,由自动驾驶引发的安全事故原因中,相关传感器的可能误判也成为了主要原因之一。多个传感器信息融合、综合判断无疑成为提升自动驾驶安全性及赋能车辆环境感知的新趋势。 本文由 百度Apollo智能汽车事业部 自动驾驶工程师—

清华大学王奕森:Adversarial Machine Learning: Attack and D

六眼飞鱼酱① 提交于 2020-04-09 06:18:06
本文作者:HelloDeveloper 嗨,大家好。这里是学术报告专栏,读芯术小编不定期挑选并亲自跑会,为大家奉献科技领域最优秀的学术报告,为同学们记录报告干货,并想方设法搞到一手的PPT和现场视频——足够干货,足够新鲜!话不多说,快快看过来,希望这些优秀的青年学者、专家杰青的学术报告 ,能让您在业余时间的知识阅读更有价值。 人工智能论坛如今浩如烟海,有硬货、有干货的讲座却百里挑一。“AI未来说·青年学术论坛”系列讲座由中国科学院大学主办,百度全力支持,读芯术作为合作自媒体。承办单位为中国科学院大学学生会,协办单位为中国科学院计算所研究生会、网络中心研究生会、人工智能学院学生会、化学工程学院学生会、公共政策与管理学院学生会、微电子学院学生会。“AI未来说·青年学术论坛”第六期“机器学习”专场已于2019年6月23日下午在中科院举行。清华大学王奕森为大家带来报告《Adversarial MachineLearning: Attack and Defence》。 Yisen Wang obtained his Ph.D. degree from the Department of Computer Science and Technology at Tsinghua University. He is also a visiting scholar at Georgia Tech

开发者说丨手把手教你实现多传感器融合技术

随声附和 提交于 2020-04-09 02:00:12
本文作者:Apollo开发者社区 多传感器融合 又称多传感器信息融合(multi-sensor information fusion),有时也称多传感器数据融合(multi-sensor date fusion)。就是利用计算机技术将来自 多传感器 或 多源的信息 和 数据 ,在一定的准则下加以自动分析和综合,以完成所需要的决策和估计而进行的信息处理过程。 多传感器信息融合技术的基本原理 就像人的大脑综合处理信息的过程一样,将各种传感器进行 多层次 、 多空间 的信息互补和优化组合处理,最终产生对观测环境的一致性解释。在这个过程中要充分地利用多源数据进行合理支配与使用,而信息融合的最终目标则是 基于各传感器 获得的分离观测信息,通过对信息多级别、多方面组合导出更多有用信息。这不仅是利用了多个传感器相互协同操作的优势,而且也综合处理了其它信息源的数据来提高整个传感器系统的智能化。 虽然自动驾驶在全球范围内已掀起浪潮,但是从技术方面而言依然存在挑战。目前自动驾驶的痛点在于稳定可靠的感知及认知,包括 清晰的视觉 、 优质的算法 、 多传感器融合 以及高效强大的运算能力。据分析,由自动驾驶引发的安全事故原因中,相关传感器的可能误判也成为了主要原因之一。多个传感器信息融合、综合判断无疑成为提升自动驾驶安全性及赋能车辆环境感知的新趋势。 本文由 百度Apollo智能汽车事业部 自动驾驶工程师—

百度智能云物联网峰会:全面升级天工物联网平台,一口气发布九大新产品

落爺英雄遲暮 提交于 2020-04-07 11:05:12
本文作者:天工智能物联网 中国物联网产业正在被赋予更强的智能化能力,更多行业将在这一浪潮中受益。5月30日,在2019ABC INSPIRE智能物联网峰会上,百度智能云宣布其天工物联网平台全新升级,同时在边云融合、时空洞察和数据智能等三大领域一口气发布了9大新产品。此外,百度智能云还宣布了多项建设IoT生态新措施。物联网行业在这些新产品新能力的加持下,将能够在物流、出行、电力、汽车等行业的场景中突破边界,创造出更多新价值。 百度副总裁、百度智能云总经理尹世明 “产业智能化时代即将全面来临,ABC技术融合成为行业趋势。”百度副总裁、百度智能云总经理尹世明表示,以“ABC+X”为核心的数字化、智能化新型体系架构将会成为新一代的企业架构。百度智能云致力于为企业提供更全面、更易用的智能化能力,ABC融合新技术在物联网全面发生,ABC+IoT+Edge computing+5G将创造无限可能。 百度智能云副总经理管瑞峰 时至今日,全球已经有将近100亿台设备完成了物联网接入。那么物联网的未来趋势是什么?百度智能云副总经理管瑞峰认为,新一代智能物联网平台将向三个方向突破:第一向边界突破,形成边云融合;第二在时间和空间的维度上寻求突破;第三是利用数据智能对场景突破。边云融合、时空洞察和数据智能,将成为下一代智能物联网平台的核心要素。 百度智能云天工物联网平台全新升级 未来趋势已然明晰

如何在预测模块中添加新评估器?

落花浮王杯 提交于 2020-04-07 05:26:58
本文作者:Apollo开发者社区 简介 评估器通过应用预训练的深度学习模型生成特征(来自障碍物和当前车辆的原始信息)以获得模型输出。 添加评估器的步骤 请按照下面的步骤添加名称为 NewEvaluator 的评估器: 在proto中添加一个字段 声明一个从 Evaluator 类继承的类 NewEvaluator 实现类 NewEvaluator 更新预测配置 更新评估器管理 下面让我们用上面的方法来添加新的评估器。 一、 声明一个从 Evaluator 类继承的类 NewEvaluator modules/prediction/evaluator/vehicle 目录下新建文件 new_evaluator.h 。声明如下: #include "modules/prediction/evaluator/evaluator.h" namespace apollo { namespace prediction { class NewEvaluator : public Evaluator { public: NewEvaluator(); virtual ~NewEvaluator(); void Evaluate(Obstacle* obstacle_ptr) override; // Other useful functions and fields. }; } //

技术文档丨Apollo控制、路由等模块

感情迁移 提交于 2020-04-07 04:14:30
本文作者:Apollo开发者社区 控制模块 :通过生成控制命令(如加速、刹车和转向)来执行规划模块提供的时空轨迹。控制模块将规划轨迹作为输入,并产生控制指令给Can总线。 路由模块 :告诉自动驾驶车辆如何经过一系列车道或道路到达目的地。要计算出自动驾驶车辆经过的车道和道路,路由模块需要知道起点和终点。 数据 :是计算机与外部物理世界连接的桥梁。数据采集模块由传感器、控制器等其它单元组成。 通用模块 :该模块包含的代码并非专门面向任何模块,但有助于提升Apollo的功能。 以下,ENJOY 控制 简介 根据规划轨迹和汽车的当前状态, Control模块使用不同的控制算法来生成舒适的驾驶体验,Control模块可以在正常模式和导航模式下工作。 输入 规划轨迹。 汽车状态。 定位。 Dreamview AUTO模式更改请求。 输出 发送到底盘的控制命令 (转向、 油门、刹车)。 路由 简介 路由模块根据需求产生更加高级的导航信息。 路由模块依赖一个路由拓扑文件,在Apollo中通常以routing_map.* 方式命名。 可以使用以下命令生成路由地图: bash scripts/generate_routing_topo_graph.sh 输入 地图数据 路由需求(起始和终止位置) 输出 路由导航信息 数据 本模块包含Apollo的数据解决方案, 包括进行数据收集、存储

技术文档丨如何在预测模块中添加新的评估器

别等时光非礼了梦想. 提交于 2020-04-07 04:14:14
本文作者:Apollo开发者社区 预测模块 是不可或缺的一个板块,其作用很大程度上决定了试验能否成功。预测模块综合各个模块的数据信息和评价结果,具备 信息融合功能 ,可以评估各个子系统及系统整体 未来的状态 ,开发者可根据预测模块的评估结果进行调整。而加入 新的Evaluator ,更是能自定义评估方向,增加评估结果准确度。 以下,ENJOY 简介 评估器 使用预训练的 深度学习模型 生成特征(来自障碍物和自车的原始信息)以获得 模型输出 。 新增评估器的步骤 请参照以下步骤新增一个名为 NewEvaluator 的评估器: 在proto中新增一个文件 以继承Evaluator类的方式定义一个新类NewEvaluator 实现NewEvaluator类 更新预测配置文件 更新评估管理器 定义一个继承Evaluator的新类 在modules/prediction/evaluator/vehicle文件夹下创建文件new_evaluator.h 文件内容如下: #include "modules/prediction/evaluator/evaluator.h" namespace apollo { namespace prediction { class NewEvaluator : public Evaluator { public: NewEvaluator();

技术文档丨Apollo规划模块技术指导

孤人 提交于 2020-04-07 03:54:17
本文作者:Apollo开发者社区 规划 是无人车为了某一目标而作出一些有目的性的决策过程,对于无人驾驶车辆而言,这个目标通常是指从出发地到达目的地,同时避免障碍物,并且不断优化 驾驶轨迹和行为 以保证乘客的安全舒适。规划层通常又被细分为 任务规划(Mission Planning)、行为规划(Behavioral Planning)和动作规划(Motion Planning) 三层。 Apollo系统中的 Planning模块 实际上是整合了 决策和规划 两个功能,该模块是自动驾驶系统中最核心的模块之一。 以下,ENJOY 简介 在包括Apollo 3.0在内的前序版本中,都使用 相同的配置和参数 对不同的驾驶场景进行规划。这种方法虽然是线性的且易于实现, 但并不灵活或者没有面向特定的场景优化。随着Apollo系统的成熟,在不同的路况和驾驶用例中使用,开发更加模块化、场景指定和全局的方法更有必要。在该方法中,每个驾驶用例都被视为不同驾驶场景。这种设计方法是很有用的,因为在当前这种方式下,修复一个特定场景下的问题不会像以前版本中出现的影响那样,来影响其他场景的情况。在以前版本中,所有的驾驶用例都被认为是一个驾驶场景,导致一个问题的修复会影响其他的驾驶用例。 驾驶场景 在Apollo 3.5中,我们将聚焦以下三种主要驾驶场景: 如下图所示,车道跟随场景是默认驾驶场景