问题集与面经

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:

路径规划算法类:

  1. Dijstra算法,算法流程
  2. A算法,算法流程,编程实现的过程中使用了哪些数据结构,项目中在原有方法基础上有哪些改进,启发函数的设计,A与Dijstra的区别;
  3. Lattice(论文里的那个lattice, 可以参考论文 EFFICIENT CONSTRAINED PATH PLANNING VIA SEARCH IN STATE LATTICES );
  4. Lattice planner 百度apollo的那个,可以参考一位大佬的博客( https://paul.pub/apollo-planning/);
  5. RRT算法流程;
  6. 一些关于frenet坐标系的问题;
  7. 如何设计一个十字路口左转的算法,包括路径规划与决策两个部分;
  8. 现场写一个轨迹规划算法的代码;
    编程题:
  9. 二叉树的各种题(各种遍历,求深度等等),链表的各种题(反转,合并);
  10. 柠檬水找零,力扣860,一道简单题,被问过三次,感觉可能因为是一个决策问题所以比较容易考?还被问到过一次如何用RL解;
  11. 机器人运动范围,力扣13,觉得这道题更倾向于解一个应用问题,多以单写来,感兴趣的同学可以练一下;
  12. 八皇后,力扣51,到现在我还不太会,以前在别人面经里也看到过,觉得太难不会考,结果真遇到了 😂;
  13. 公交车线路,力扣815,难题;
  14. 不用加号的加法,力扣153,当时遇见这道题感觉自己智商被完爆😂;
    补充:其实我感觉面试如果前面发挥的好的话coding时面试官普遍不会刁难,很多时候就是出一个常见的mid题。

目前能回忆来的就这么多,之后再想起来什么比较重要的问题我再在评论区里补充。

嵌入式ROS开发工程师面试试题包括以下几点: 1. 请简要介绍一下嵌入式系统和ROS。 嵌入式系统是一种嵌入在其他设备中,用于控制和执行特定功能的计算机系统。ROS(机器人操作系统)是一个开源的机器人软件框架,用于编写机器人应用程序。它提供了一系列工具、库和软件包,方便开发人员在嵌入式系统上构建机器人控制应用。 2. 请描述一下你在嵌入式系统开发方面的经验。 回答这个问题时,可以提到自己之前从事过嵌入式系统开发项,包括硬件和软件方面的经验,例如使用C/C++编程语言开发嵌入式系统,熟悉常用的嵌入式开发工具和环境,以及具备硬件接口和外设驱动的开发经验等。 3. 请简要介绍一下ROS中常用的通信机制。 ROS中常用的通信机制包括话题(Topic)、服务(Service)和动作(Action)。话题是一种发布者-订阅者模式,用于在ROS节点之间传递消息。服务是一种请求-响应模式,用于在ROS节点之间进行函数调用。动作是一种高级机制,用于支持异步、可重试的行为。 4. 请简要描述一下ROS节点和ROS话题。 ROS节点是ROS中运行的一个独立的进程,可以有多个节点同时运行。每个节点都可以发布消息到话题,也可以订阅其他节点发布的消息。话题是一种通过发布者-订阅者关系连接了多个节点的通信机制。 5. 请简要解释ROS的launch文件是什么以及它的作用是什么。 ROS的launch文件是一个XML格式的文件,用于启动和组织ROS节点。通过launch文件,可以同时启动多个节点,设置节点的参数和命名空间,以及定义节点之间的关系,简化了系统启动和配置的过程。 以上是对嵌入式ROS开发工程师面试试题的回答,总结了嵌入式系统、ROS通信机制、ROS节点和话题、以及launch文件的基本概念和作用。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值