每周点评之第六期:开源自动驾驶项目分享

分享几个自己觉得不错的自动驾驶开源项目,可以学习学习其架构。 1. Autoware 日本名古屋大学里面搞出来的项目,模块解耦合做得好,对新手友好,去贵阳参加无人驾驶挑战赛,基于这个开源项目做的开发。我从这个开源项目学到了很多,后面有时间再细讲。 Apollo 百度开源的无人驾驶项目,依靠百度强大的技术实力,在github 上 的star数已经上万,要求对C++掌握得比较熟悉,目前模拟器做得比较不错了,相比1.0的时候来说。 Stanford_driving 斯坦福大学参加DARPA城市挑战赛获得第二名,后开源了自动驾驶代码,第一名是CMU。 Openpilot 一只黑客团队,破解了一些车的can协议,并使用一加手机实现自动驾驶,开源了其硬件和软件,牛!

每周点评第四期:FreeRT0S

FreeRTOS 最近入了新坑,在NXP的MCU上移植freeRTOS,并开发相应软件。又掉入了嵌入式的坑啊。 既然叫FreeRTOS,当然是Free啦,难怪在RTOS市场中占有率第一。 下面是FreeRTOS官网对FreeRTOS的介绍: Here are some reasons why FreeRTOS is a good choice for your next application – FreeRTOS… Provides a single and independent solution for many different architectures and development tools. Is known to be reliable. Confidence is assured by the activities undertaken by the SafeRTOS sister project. Is feature rich and still…

每周点评之第二期:如何提高代码质量

如何提高代码质量?–陈天 这篇文章分别从 产品,接口,指标,日志,代码清晰度,代码复杂度 等方面,谈到如何提高代码质量。 总结起来: 1.产品和接口: 要使得原理和接口上容易理解,并且隐藏细节。 90% 以上的情况,程序员是在写 parser。换句话说,我们写的绝大部分代码就是把一系列的输入,经过若干转换(transformation),变成一系列输出。 2.指标和日志 If you can’t measure it ,you can’t improve it. 通过测量来形成负反馈,提高系统质量 3.代码清晰度和代码复杂度 多学习一些小技巧,实现对语言掌握的精进,让代码更易读,更清晰。

每周点评之第一期:Apollo 2.5自动驾驶规划控制

自动驾驶公开课 | Apollo 2.5自动驾驶规划控制 关键词:RTK循迹、EM Planner 、Lattic Planner 关键之处: 如何去找一个成本最低的规划曲线呢?开发者面临的是一个三维空间中的优化问题,包括路面的二维平面,也包括时间维度。这是一个N立方难度的问题,Apollo 2.5的解决方法是,把这个N立方级别的问题,分拆成两个N平方级别的问题。也就是在x-y维度上求解,进行路径规划;在路径规划的基础上,以规划出来的路径为s轴,在s-t维度上进行速度规划。 Apollo 1.0中开始开放的RTK,也就是循迹Planner;Apollo 1.5中开始开放的EM Planner,也就是基于动态规划Dynamic Programming和二次规划Quadratic Programming的路径规划器与速度规划器;以及Apollo 2.5中开始开放的Lattice Planner,一种路径和速度同时规划的规划器。 RTK 先记录,然后播放来进行循迹 核心代码: #!/usr/bin/env python ############################################################################### # Copyright 2017 The Apollo Authors. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the “License”); # you may not use this file except in compliance…