图森同学 | “T计划”亦然专访:竞赛大神的高精地图之旅

亦然,毕业于华东师范大学计算机专业


第43届ICPC世界总决赛第41名和第四届CCPC总决赛第6名


图森未来T计划校招进入公司,现任工程部高精地图组软件研发工程师


20209月,亦然结束了在华师四年的求学与竞赛生涯,来到了图森未来位于上海的办公地。与上一位图森同学主人公韫韬一样,亦然也是通过T计划的选拔,进入图森未来,成为一名高精地图软件研发工程师。

T计划简介:图森未来“T计划是面向全球顶尖技术人才的专项招聘计划,致力于将顶尖人才与技术汇集在一起,实现前所未有的协同创新,共同解决无人驾驶面临的技术挑战,用技术推动社会的进步。

谈起工作内容,亦然是这么解释的:作为一名自动驾驶高精地图软件研发工程师,主要是维护统一的运行库,供下游定位、感知、路径规划、控制等模块使用。并且为了配合研发测试,为算法开发提供种类更多,信息更丰富的新地图元素,增加新的数据和接口;又因为这些先验信息是随后处理的前提条件,那么如何提供一个结构合理、性能优秀、可扩展性强的接口并实现,同时保持最大程度的前后向兼容性,就成了我们在高精地图软件开发过程中最大的难题。


亦然上面提到的先验信息,指的是离线的地图信息。地图数据经过了采集、优化、提取等步骤后,还需要人工进行校验和调整,最后将不同来源的各种数据聚合起来,编译成可以供运行库读取在线使用的地图数据。原始数据的来源限定了数据质量的上限,而更好的处理流程与表示方式,则能够最大程度地将高质量的地图数据提炼给算法模块使用。

高精地图的位置信息需要有很高的精度,这对于车辆的精准定位和控制非常重要。亦然说道。与此同时,比一般的导航地图更加详尽的是,高精地图描述了更多的车道元素与拓扑关系。比如车道之间的左右并行关系、前后连接关系,车道边线的线形属性,是否可以跨越,以及道路限速等信息。因为我们的目标是L4级别的自动驾驶,所以车辆会需要更多的先验信息,再结合在线得到的信息和路况等去做决策。


提起这次入驻图森未来北京办公区,亦然眼里更多的是兴奋,这次mentor佳辉要我回来半年,是希望在工作上我可以更便利地跟上下游模块接触。在上海的时候,每次沟通基本上都是通过slack或者线上会议,有时差与效率区别是一方面,我还都没有见过这些一起共事的小伙伴呢!

在北京的这段时间里,亦然不仅成功地面见了网友们,也体会到了面对面沟通的高效与愉快。这个更让他确信了,虽然地图是自动驾驶整体方案中比较底层的模块,但正是有了基础,才能够搭建起高楼大厦。

自动驾驶的很多模块,都会直接或间接地依赖到高精地图提供的先验信息,间接地影响到卡车的最终决策行为。有些同学可能觉得在后台支持,特别是偏底层的工作,不如相对前台展现酷;或许认为直接对外输出,所有人都能直观看到的,才更能表现出自己的工作价值。但我认为,稳定高效地支持整个系统运行也是一种自豪,正因为有底层的支持,上层的应用才能更自由地发挥!亦然开心地说到。

提起亦然,公司的小伙伴们大多会立马感叹,竞赛大神技术大牛!有这些优秀的履历包裹,亦然却没有流露出半点骄傲,谦虚地回应着我们:哈哈哈哈,在商业互吹互捧的环境下,我还是觉得清楚自己的能力水平是非常重要的,距离那些真正的神仙们,我还是有着不少的距离哒!


但自体的光芒是无法掩盖的。2019年的 ICPC World Final 比赛里,亦然与小伙伴共同获得了全球第 41 名的好成绩,我们取名F0RE1GNERS,是希望能出线国际比赛,在比赛中当一次外国人,为中国队赢得一场胜利。对竞赛的热爱,亦然一直持续到了现在。在日常的工作之余,经常会与公司另外两名竞赛大神——扬播、梦格一起讨论,并作为裁判为选手们出题。在今年的CCPC线上赛中,也作为师哥,代表图森未来给选手们录制了开场视频,加油助威。

希望疫情的走向可以越来越好,我能够再一次有机会参加比赛,作为打星队伍,代表图森未来,为公司而战!”亦然自豪地说到。


#公司评价##图森未来#
全部评论
赶快扫码参与内推!和亦然大神做同事!
点赞 回复 分享
发布于 2021-11-29 10:59

相关推荐

09-05 10:49
南开大学 Java
📍面试公司:网易🕐面试时间:9月5号💻面试岗位:后端开发❓面试问题:**一、八股**1. Java中HashMap的底层实现原理是什么?2. 谈谈你对JVM内存模型的理解,哪些区域是线程共享的?3. 什么是Spring的AOP?底层是如何实现的?4. 数据库事务的隔离级别有哪些?MySQL默认级别是什么?5. 如何理解Redis的持久化机制?RDB和AOF的区别是什么?6. 什么是CAP理论?分布式系统如何权衡一致性、可用性和分区容错性?7. 谈谈你对分布式锁的实现方式,有哪些常见方案?8. 如何设计一个高性能的API接口?需要考虑哪些方面?9. 什么是TCP粘包和拆包?Netty是如何处理的?10. 谈谈你对微服务治理的理解,比如服务发现、熔断降级等。11. 为什么需要消息队列?如何保证消息不丢失?12. 什么是Java中的线程池?参数corePoolSize和maximumPoolSize有什么区别?13. 如何优化数据库查询性能?索引失效的场景有哪些?14. 谈谈你对分布式事务的理解,常见解决方案有哪些?15. 什么是零拷贝技术?Kafka中是如何应用的?**二、项目**1. **仿拼多多拼团项目**:- 如何解决高并发下拼团订单的超卖问题?- 订单超时未支付自动关闭是如何实现的?2. **AI Agent项目**:- 如何设计Agent的任务调度和状态管理?- 在多Agent协作场景下,如何保证数据一致性?**三、手撕**1. 力扣128.最长连续序列:给定一个未排序的整数数组,找出最长连续序列的长度(要求时间复杂度为O(n))。- 示例:输入[100,4,200,1,3,2],输出4(序列为[1,2,3,4])。- 思路:用HashSet去重并快速查找,遍历数组找序列起点(当前数-1不在set中),然后向后计数。
查看20道真题和解析
点赞 评论 收藏
分享
评论
点赞
2
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务