2019年总结

Posted 杨铖

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了2019年总结相关的知识,希望对你有一定的参考价值。

2019年总结就两个字,蓄力。

今天是1月18,还有一周就过年了,19年基本结束,20年即将开始,回顾19年立下的目标:

  • 融合传感器的定位摸透,Apollo 定位/感知/规划 三大模块看透,OSRM,Valhalla的规划引擎也看透;
  • 《SLAM十四讲》《state estimation for robotics》前者再看一遍,后者着重看,《Multiple View Geometry in Computer Vision》抽空大致了解,与前者查漏补缺。
  • letcode 200题算法,把 c++ 搞上一个层次。
  • 健身增肌到160斤,150后做有氧,体脂控制到15%~20%。

好像只有第二个目标没有达成,且细细道来。

这一年主要分为两个阶段:第一阶段是收尾,第二阶段是蓄力。

  • 收尾阶段

不知不觉已经在地图行业耕种3年,地图里三个核心:定位,规划,导航 三个都基本接触过了。
其中年初4个月,一心扎到定位模块中,看了很多捷联惯导INS+GPS的书,以及很多关于传感器融合的论文和资料,同时经过了长达数月的路测和验证,终于在今年的5月份上线了地图导航定位的新一版引擎,主要是解决定位过程中常见的GPS信号弱,信号差,信号无问题,帮助提高整个导航的用户体验,当然,这个还有很大的优化空间,还只是个开始。下面是这个模块的一些实例:

后来关于规划这个模块(目前还在进行中),传统的 Astart 似乎在我们这边很多场景下遇到了瓶颈,加上数据源的一些问题,我们参考了OSRM里的MLD,用我们的用户足迹数据帮助提高整个规划的效果,尽量避免一些小路绕路,同时提供更多热门的路线给用户选择。

再到后面关于导航这个模块,前前后后其实耗费了不少时间,导航里最重要的就是语音播报,语音播报里最重要的就是路口转向,基于此我们尝试了使用规则+深度学习的方法,让一些复杂路口在语音播报的时候能更加准确,减少用户思考的时间。

以上是3个收尾的阶段的思考和总结。

  • 蓄力阶段

随着对算法的深入参与,我发现想做好一个算法,除了查资料,读资料,复现资料外,还有另外一个重要点,就是工程化,服务化。

所谓的工程化,就是团队的人能协同参与到算法工程项目里,无论是代码规范,设计准则,还是模块拆解,版本控制,大家都能以一个比较高效的方式参与进来,这一切的前提就是做好前期规划和对需求的理解,这也是我这后面很长一段时间一直在努力和思考的。

1年前2年前,那个时候我们做算法更多的单兵作战,每个需求由某个人负责,后来我发现这种方式存在着一些弊端,比如项目一旦是比较大的情况下,对于个人的压力太大,又或者项目周期比较长,项目依赖于个人的情况会拖慢节奏,再或者项目比较复杂的情况下,他人难以参与。所以后面我修改了这种工作方式,当项目比较大和复杂的情况下,会先拆解需求,分模块,同时做好前期项目代码上的基本设计,中期发展关注每个队友提交的代码,做好review工作,后期部署做好unit test和服务监控。

然后是是服务化,在这家工作做算法基本上就是从硬件开始搞起了,包括前期服务器的硬件购买,组装,到后面开发,服务上线,现在手上负责的服务器有8台,差不多成为半个运维了。

那么什么是服务化,这个词大家应该都挺熟,微服务,讲究的就是微这个过程,项目模块解耦,系统基础架构保证了服务的独立部署、运行、升级,这个也是19年的一个重点,现在我们部署一个算法项目,如果不是内置app型的,基本都是:flask+gunicorn+docker+k8s 这样的一套部署,如果涉及到单机异步的,就再加上celery+rabbitmq。其中flaskgunicron这些大家都很熟,主要是dockerk8s,docker提供一套隔离的基础环境,将算法服务单独打包,采用k8s在多台机上部署监控,这样做的几个目的是利用k8s的master做服务的统一入口,负责后面不同节点的负责均衡,同时监控各个docker服务的稳定,在一定程度上保证算法服务的高效稳定可用。

以上边是蓄力阶段的一些总结和思考。

19年的几个目标,其实没有全部完成,第二点SLAM相关的,书是看了,没有应用场景,所以也不敢说自己懂,第三点letcode刷了,但是后面很多技巧性的题,感觉帮助不是很大,第三点体脂降了下去,但是能保持在比较高的体脂仍比较困难,目前也是在150浮动。

20年的几个目标:

  1. 做出一些改变,迈开思考了很久的步伐,完事后再补充上来。

以上是关于2019年总结的主要内容,如果未能解决你的问题,请参考以下文章

个人总结报告收尾

项目开发收尾总结(片段)

2018年上半年年度总结

Python面向对象编程05:收尾总结一下类和对象

Python面向对象编程05:收尾总结一下类和对象

软考系统集成项目管理工程师(二十一)项目收尾管理