自动驾驶的决策层逻辑

 作者 / 阿宝

编辑 / 阿宝

出品 / 阿宝1990

自动驾驶意味着决策责任方的转移

我国2020至2025年将会是向高级自动驾驶跨越的关键5年。自动驾驶等级提高意味着对驾驶员参与度的需求降低,以L3级别为界,低级别自动驾驶环境监测主体和决策责任方仍保留于驾驶员,而L4、L5高级别自动驾驶的环境检测主体和决策责任方则会转移至系统,即由系统进行环境监控,再将所感知到的信息进行处理决策,再根据决策执行相应的操作,如转向、制动等。即感知层与决策层系统承担的职能会逐级递增,系统构成难度及所需组件也需逐级增加。

图片

自动驾驶:感知、决策、执行,同步进化

图片

决策层概述:软件定义汽车,硬件同步升级

决策层主要由芯片、计算平台和软件构成,可视为自动驾驶的中央大脑。

在进行决策规划时,决策层会从感知层中获取道路拓扑结构信息、实时交通信息、障碍物信息和主车自身的状态信息等内容。结合上述信息,决策规划系统会对当前环境作出分析,然后对执行层下达指令,模拟大脑决策。

自动驾驶的实现,需要决策层在“软件+硬件”上双重提升,软件在算法,硬件主要就是汽车芯片。

图片

决策层软件:自动驾驶需要AI算法支持

智能汽车里的软件主要可以分为应用算法软件、中间件、系统软件和工具软件。

系统软件主要包括操作系统以及底层驱动和板级支持包等。中间件位于操作系统和应用算法软件之间,抽象化硬件资源,为上层的应用和算法软件开发提供统一的软件接口,方便上层软件开发调用;

应用软件包括信息娱乐系统的人机交互、界面设计,ADAS软件、车身控制软件等。高级别自动驾驶应用软件背后需要靠基于人工智能或深度学习的算法软件来提供支撑。

现在越来越多的芯片商开始提供工具链软件来帮助主机厂研发自己的自动驾驶算法。工具链软件具体包括测试、设计和研发所用到软件模块。例如ECU软件的测试和验证,自动驾驶系统的仿真测试等。

图片

决策层硬件:以太网普及,控制器集中,算力提升

智能汽车E/E硬件架构升级主要为3个方面:

1)以太网取代CAN/LIN:具有宽带宽、低延时、低电磁干扰的以太网将成为未来车内通信网络的新骨干。(L2级别的ADAS需要超过120Mbps的传输速率,传统CAN总线传输速率为1Mbps左右,以太网的传输速率为1Gbps左右。)

2)控制器架构走向集中化:传统汽车内存在许多个模块化的ECU(电子控制器)使得汽车内部线束复杂、各控制单元间通信困难不利于整车数据交互和协同,难以实现整车统一的OTA升级。未来分布式E/E架构将经由(跨)域集中式最终迈向中央集中式,并通过一个高性能的中央控制器实现车云计算。

3)控制器集中和决策层算力提升对内在芯片提出要求,传统MCU芯片无法满足智能化要求,SoC芯片需求大增。

图片

  • 36
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
神经网络在自动驾驶中扮演着重要角色,它可以帮助车辆感知环境、做决策和控制行为。以下是一个简单的自动驾驶神经网络算法代码详解: ```python import numpy as np # 定义神经网络类 class NeuralNetwork: def __init__(self, input_size, hidden_size, output_size): # 初始化权重和偏置 self.W1 = np.random.randn(input_size, hidden_size) self.b1 = np.zeros((1, hidden_size)) self.W2 = np.random.randn(hidden_size, output_size) self.b2 = np.zeros((1, output_size)) def forward(self, X): # 前向传播计算输出 self.z1 = np.dot(X, self.W1) + self.b1 self.a1 = np.tanh(self.z1) self.z2 = np.dot(self.a1, self.W2) + self.b2 self.a2 = self.sigmoid(self.z2) return self.a2 def backward(self, X, y, learning_rate): # 反向传播更新权重和偏置 m = X.shape[0] delta2 = self.a2 - y dW2 = (1/m) * np.dot(self.a1.T, delta2) db2 = (1/m) * np.sum(delta2, axis=0) delta1 = np.dot(delta2, self.W2.T) * (1 - np.power(self.a1, 2)) dW1 = (1/m) * np.dot(X.T, delta1) db1 = (1/m) * np.sum(delta1, axis=0) self.W2 -= learning_rate * dW2 self.b2 -= learning_rate * db2 self.W1 -= learning_rate * dW1 self.b1 -= learning_rate * db1 def sigmoid(self, x): # sigmoid激活函数 return 1 / (1 + np.exp(-x)) # 样本输入和输出 X = np.array([[0, 0], [0, 1], [1, 0], [1, 1]]) y = np.array([[0], [1], [1], [0]]) # 创建神经网络对象 nn = NeuralNetwork(2, 3, 1) # 训练神经网络 for i in range(10000): output = nn.forward(X) nn.backward(X, y, learning_rate=0.1) # 测试神经网络 test_input = np.array([[0, 0], [0, 1], [1, 0], [1, 1]]) predictions = nn.forward(test_input) print(predictions) ``` 这段代码实现了一个简单的多层感知器神经网络,用于解决XOR逻辑门问题。其中`NeuralNetwork`类定义了神经网络的结构和操作,`forward`方法用于前向传播计算输出,`backward`方法用于反向传播更新权重和偏置。最后通过训练和测试数据来验证神经网络的准确性。该代码可以作为自动驾驶神经网络算法的基础,根据具体问题进行进一步扩展和优化。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值