横穿自动驾驶

如果有一条线,可以穿起来所有自动驾驶的核心模块,那么我感觉它就是最优化,选择优化变量、构造优化问题、求解优化问题,这几个步骤贯穿了自动驾驶的始终。

先从我的自身接触顺序写起。最开始做个一点深度学习,那还是2016年,深度学习已经飞速发展了4年左右,各种方法层出不穷。有幸看了李飞飞的深度学习课,AK大神讲的大部分内容,手写了一个网络,了解深度学习就是构造并求解一个优化问题,了解了BP,了解了随机梯度下降,带动量的梯度下降,等等一系列优化问题求解方法。

学校里课题选了一个机器人机械臂作业方向,用到了一些图像处理手段包括识别和跟踪,了解了kalman filter, particle filter都可以用来做图像固定片段的跟踪。

后来工作之后做自动驾驶控制问题。了解了kalman filter, 知道了它是求解一个优化问题,可以用来平滑信号。后来从pid一路了解到LQR MPC,知道了LQRMPC都是最优控制里的一种方法,其本身也是构造优化问题,求解优化问题。

到这里其实我已经开始有点疑惑,为什么自动驾驶从上游感知到下游控制都有kalman filter, 都是构建优化问题,求解优化问题,这些优化问题之间有什么区别和联系呢?当时试图学习一些Boyd的凸优化课程,发现根本看不懂,当然现在看懂的可能性也不大。

后面换了工作,做了一阵子激光雷达定位。发现里面更全都是优化问题构造和求解,点云匹配是,前端里程计用的都是XXKF,eskf, ekf ,iekf, iesekf等等。后端里也是构造位姿优化问题。不过是直接利用求解器,过去10年,出现ceres, g2o, gtsam, sesync等等大规模位姿图优化求解器。

后来做过一阵子决策规划。看过一遍APOLLO,发现里面也都是优化问题求解,比如平滑路线是构造QP问题,局部轨迹规划也是构造QP问题。后来写了一阵子状态机if-else,觉得没有什么意思。于是看了一下强化学习的东西,发现核心也是优化问题的构造和求解。

我的疑惑更多了,从最开始的kalman filter 为什么从感知到控制都能用,到后面发现定位也都在用,也发现LQR MPC可以放在底层的控制阶段用,也可以放在规划用,现在很多决策博弈过程本质上也是优化问题求解过程。到DDP iLQR MPC等等从某种程度上也是强化学习。到Kalman filter和LQR的对偶性,等等。

从我接触的东西,最后我得出了前面的结论如果有一条线,可以穿起来自动驾驶的核心模块,那就是最优化。这个结论我自己是非常喜欢的,因为我通过实践和总结,仿佛发现了什么了不得的东西。

后面会有一系列大杂烩,总结一下这10年来遇到的所有优化问题。顺便做一些读书笔记,看看有没有更好玩的东西。

### 自动驾驶事故原因及案例分析 自动驾驶技术的发展伴随着一系列挑战,其中安全性是最受关注的话题之一。尽管自动驾驶车辆配备了多种传感器和复杂的算法来保障行驶安全,但由于环境复杂性和技术局限性,仍然可能发生交通事故。 #### 技术缺陷引发的事故 一些自动驾驶事故的发生可以追溯到技术上的不足之处。例如,在某些情况下,感知系统的误判可能导致错误决策[^1]。具体而言,当激光雷达、摄像头或其他传感器未能正确识别障碍物时,可能会导致碰撞事件发生。这种类型的失误通常源于数据处理中的异常情况或者训练模型时未充分考虑特定场景下的输入特征。 #### 外部因素影响 除了内部的技术问题外,外部条件也可能成为诱发事故的重要原因之一。恶劣天气条件下(如下雨、下雪),路面湿滑以及能见度降低都会给自动驾驶系统带来额外难度;而这些极端状况往往难以通过常规测试加以完全覆盖。另外,人类驾驶员的行为不可预测性也是一个重要因素——如果对方突然变道或违反交通规则,则即使最先进的AI也很难及时做出反应以避免冲突。 #### 经典案例回顾 - **Uber致命撞人事件**:2018年3月发生在亚利桑那州坦佩市的一起涉及无人驾驶汽车(Uber) 的行人死亡案件引起了广泛关注。调查显示,当时该车处于自主模式下运行期间未能提前检测并减速避让横穿马路的女性受害者,最终酿成悲剧。 - **特斯拉Autopilot相关事故**:多起关于启用Tesla Autopilot功能后发生的严重车祸被报道出来。其中一个典型案例显示,由于司机过度依赖系统且双手脱离方向盘时间过长,再加上前方卡车转弯角度特殊致使视觉传感器无法有效区分天空与车身颜色差异从而造成追尾后果。 综上所述可以看出,虽然当前阶段大多数主流厂商都在努力提高其产品性能表现及其背后逻辑链条清晰程度(即所谓“可解释性”) ,但仍需进一步加强技术研发力度才能真正实现零伤亡目标。 ```python def analyze_accident_causes(data): """ Analyze potential causes of autonomous vehicle accidents based on given data. Args: data (dict): Dictionary containing accident details such as weather conditions, sensor performance metrics, and human driver behavior patterns. Returns: list: List summarizing possible contributing factors to the incident. """ results = [] if 'weather' in data and not is_safe_weather_condition(data['weather']): results.append('Adverse Weather Conditions') if 'sensors' in data and has_sensor_failure(data['sensors']): results.append('Sensor Malfunction or Misjudgment') if 'human_behavior' in data and exhibits_unpredictable_actions(data['human_behavior']): results.append('Unforeseen Human Actions') return results def is_safe_weather_condition(weather_data): pass # Placeholder function; implement actual logic here. def has_sensor_failure(sensor_metrics): pass # Placeholder function; implement actual logic here. def exhibits_unpredictable_actions(human_action_patterns): pass # Placeholder function; implement actual logic here. ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值