嵌入式 ROS 八股文总结
一、ROS 基础
1. ROS 的核心概念有哪些?
- 节点(Node):运行的进程,用于执行特定功能。
- 话题(Topic):异步通信机制,基于发布/订阅。
- 服务(Service):同步通信机制,请求/应答模式。
- 参数服务器(Parameter Server):全局参数存储和共享。
- 消息(msg):节点之间的数据结构。
- 动作(Action):长时间任务的通信机制(支持反馈与取消)。
2. ROS Master 的作用是什么?ROS Master 提供节点注册、名称解析和话题/服务的连接管理。它本身不转发消息,但负责告诉节点如何建立点对点通信。
3. ROS 中话题和服务的区别是什么?
- 话题(Topic):异步、连续数据流,适合传感器数据。
- 服务(Service):同步、一次请求一次应答,适合控制命令。
4. ROS 中 launch 文件的作用是什么?
- 批量启动多个节点。
- 设置参数服务器参数。
- 管理节点间的依赖关系。
- 便于调试和部署。
5. ROS1 和 ROS2 的主要区别有哪些?
- 通信中间件:ROS1 基于 TCPROS/UDPROS,ROS2 基于 DDS。
- 实时性:ROS2 支持实时操作系统(RTOS)。
- 多机器人支持:ROS2 原生支持多机器人通信。
- 跨平台性:ROS2 更好地支持嵌入式平台(ARM、微控制器)。
二、机器人定位与导航
6. AMCL 的原理是什么?AMCL(自适应蒙特卡洛定位)基于粒子滤波。通过激光雷达观测数据和运动模型更新粒子权重,逐渐收敛到机器人的真实位置。
7. SLAM 的基本流程是什么?
- 里程计预测位置(运动模型)。
- 传感器观测(激光/相机)。
- 数据关联(观测与地图匹配)。
- 状态估计(滤波/优化)。
- 地图更新(栅格/特征点)。
8. 全局规划与局部规划的区别是什么?
- 全局规划:基于全局地图,计算从起点到目标点的整体路径(如 Dijkstra、A*)。
- 局部规划:考虑动态障碍物和机器人运动约束,在执行时实时调整(如 DWA、TEB)。
9. move_base 的基本组成模块有哪些?
- 全局规:如 navfn、global_planner。
剩余60%内容,订阅专栏后可继续查看/也可单篇购买
嵌入式面试八股文全集 文章被收录于专栏
这是一个全面的嵌入式面试专栏。主要内容将包括:操作系统(进程管理、内存管理、文件系统等)、嵌入式系统(启动流程、驱动开发、中断管理等)、网络通信(TCP/IP协议栈、Socket编程等)、开发工具(交叉编译、调试工具等)以及实际项目经验分享。专栏将采用理论结合实践的方式,每个知识点都会附带相关的面试真题和答案解析。
