1.关于ADAS的想法
2.ROS2.0 和 ROS1.0
3.ROS的缺点
4.Lattice planning
5.linux的使用
6.模型预测控制MPC
7.DISTRA bfs 还是DFS
面经1:
第一块ROS,考察了ros的基本概念如roshandler,roslaunch,roscore等;
第二块Linux的使用,gdb调试,linux常用命令kill等;
第三块编程,代码题,看代码选答案。
第四块路径规划算法,A*,Dijkstra,插值,样条等;
第五块数学,几何,四元数,泛函,多项式,坐标变换,公式推导等。
面经2:
一、万古不变的“自我介绍”:
自我介绍我有提前准备过,介绍的还行。这里根据自己的项目特点介绍就行。
二、客观知识环节
1.进程和线程的关系、线程哪些可以共享那些不可以?
》进程是操作系统资源分配和调度的基本单位,而线程是处理任务调度和执行的基本单位。两者是相互包含的关系,一个进程可以有多个线程,线程是进程的一部分,同一进程的线程共享进程的地址空间和资源,进程之间却相互独立。对于同一进程的线程可以共享的有地址空间、进程的资源和文件等等,但不能共享堆栈,全局变量可以共享,静态变量也可以共享。这里有提前复习过,算是答上来了。呼呼呼~
2.进程之间如何通信(通信方式)?
》管道、信号量、消息队列、信号、共享内存、套接字(socket),然后再分别解释一下其具体含义。完成~
3.问了一道生产者与消费者问题(如何解决生产者和消费者进程?)在c++中有什么方法可以实现进程的阻塞?
》生产者与消费者问题是操作系统里的互斥和同步的问题,算比较简单就设置信号量让其并发的运行巴拉巴拉~。第二问就想到了可能是STL中的但有点答不上来,最后面试官解释了可以使用push啥的将一个其加入阻塞队列。
4.交叉编译熟悉吗?用什么可以实现?大致过程?
》对于大的工程进行交叉编译用makefile 交叉编译,小的就可以用gcc arm 。我只回答到了后者。。。
5.对智能指针了解吗?请你设计一个方法那个解决上下游智能指针释放的问题(之前别人写过的该公司面经中都有听到过智能指针,我发现这面试一定会问)
》背景是上游有个程序会使用它但不负责其释放,也不知道下游什么时候用完?为了防止内存泄漏设计个方法由你自己管理并释放智能指针。啊?这???只了解过智能指针没有用过。。。所以答不出来
三、项目环节
1.ros相关的消息传递的大致流程?
》 ros是节点的形式开发,主要通过消息message通信,其通信主要有单向消息收发式topic、双向消息请求响应service、双向消息目标的动作action三种,先得有至少两个节点,然后对于topic通信一个节点作为发布者发布话题另外一个节点订阅。。。然后每个解释一遍。
2.ros中的编程问题?如何自己建立一个结构体?如何让一个将python编写的结构体传递给用c语言编写的节点并接收该结构体,说说其大致流程?
这里回答不太好有点慌脑子空白,python和c语言结构体的传递面试官是是要先序列化然后再反序列化的过程。。。
四、还有什么要问的吗?
我。。。凉了 😅
最后,感谢让我有一次经验的积累,大概了解了面试的过程,希望下次不那么慌了。
面经3:
想保证车辆曲率连续最少需要几阶约束
曲率在车辆操控上最直观的体现是
曼哈顿距离与欧氏距离的优缺点
ros中node/nodelet区别
HybridA解决什么问题,算法主题思想介绍
手撕dijkstra
A最优/收敛条件
介绍HybridA*,D*, HybridA与A区别
介绍EMPlanner,Lattice Planner与EMPlanner区别
EMPlanner中EM的思想体现
面经4:
路径规划算法类:
- Dijstra算法,算法流程
- A算法,算法流程,编程实现的过程中使用了哪些数据结构,项目中在原有方法基础上有哪些改进,启发函数的设计,A与Dijstra的区别;
- Lattice(论文里的那个lattice, 可以参考论文 EFFICIENT CONSTRAINED PATH PLANNING VIA SEARCH IN STATE LATTICES );
- Lattice planner 百度apollo的那个,可以参考一位大佬的博客( https://paul.pub/apollo-planning/);
- RRT算法流程;
- 一些关于frenet坐标系的问题;
- 如何设计一个十字路口左转的算法,包括路径规划与决策两个部分;
- 现场写一个轨迹规划算法的代码;
编程题: - 二叉树的各种题(各种遍历,求深度等等),链表的各种题(反转,合并);
- 柠檬水找零,力扣860,一道简单题,被问过三次,感觉可能因为是一个决策问题所以比较容易考?还被问到过一次如何用RL解;
- 机器人运动范围,力扣13,觉得这道题更倾向于解一个应用问题,多以单写来,感兴趣的同学可以练一下;
- 八皇后,力扣51,到现在我还不太会,以前在别人面经里也看到过,觉得太难不会考,结果真遇到了 😂;
- 公交车线路,力扣815,难题;
- 不用加号的加法,力扣153,当时遇见这道题感觉自己智商被完爆😂;
补充:其实我感觉面试如果前面发挥的好的话coding时面试官普遍不会刁难,很多时候就是出一个常见的mid题。
目前能回忆来的就这么多,之后再想起来什么比较重要的问题我再在评论区里补充。