



https://blog.csdn.net/zhangrelay/article/details/148332178
https://blog.csdn.net/ZhangRelay/article/details/148333048
本文摘要:文章围绕移动机器人导航技术展开,包含选择题、判断题、设计题和实践题四部分。选择题涉及ROS消息类型、SLAM算法、运动控制模型等基础知识;判断题辨析常见技术误区;设计题要求规划差动机器人硬件/软件模块;实践题聚焦TEB算法实现阿克曼底盘倒车入库。重点复习内容包括:
- 1)ROS通信与指令;
- 2)差速/阿克曼/麦克纳姆运动原理;
- 3)GMapping/Cartographer/RTAB-Map算法对比;
- 4)move_base导航框架与TEB本地规划器;
- 5)硬件架构设计与TEB参数调优。
易错点提示:传感器精度≠定位精度、算法复杂度≠效果、多传感器融合≠消除误差等。通过系统梳理核心考点与解题模板,帮助掌握机器人导航关键技术要点。
一、选择题(共 20 题,1-10 单选,11-20 多选,每题 2 分,共 40 分)
-
在移动机器人导航中,订阅机器人实时位置应使用的 ROS 消息类型? A.std_msgs/String B.geometry_msgs/Twist C.nav_msgs/Odometry D.sensor_msgs/LaserScan
-
Cartographer 建图功能包描述不合理的是? A. 基于图网络优化 B. 仅支持二维 SLAM C. 低资源高精度 D. 支持多传感器平台
-
TEB 本地规划器主要考虑? A. 全局最短距离 B. 直线距离 C. 动态约束轨迹优化 D. 静态避障
-
差速运动控制正确描述? A. 仅直线 B. 两侧轮速差转弯 C. 需复杂转向机构 D. 适配所有底盘
-
ROS 分布式通信,机器人为主机,环境变量设置? A.ROS_MASTER_URI = 机器人 IP,ROS_IP = 笔记本 IP B. 均设为机器人 IP C.ROS_MASTER_URI = 笔记本 IP,ROS_IP = 机器人 IP D. 仅设 ROS_IP = 机器人 IP
-
RTAB-Map 错误描述? A. 支持 RGB-D B. 全局贝叶斯闭环 C. 仅二维 SLAM D. 实时闭环检测
-
CMakeLists.txt 作用? A. 配置 ROS 主节点 B. 定义依赖与编译规则 C. 启动底盘 D. 可视化
-
阿克曼运动正确描述? A. 轮速差转向 B. 适配所有车辆 C. 内侧转向角更大 D. 无需差速器
-
Gmapping 正确描述? A. 视觉里程计 B. 无需里程计 C. 三维栅格图 D. 激光建二维栅格图
-
蒙特卡洛定位错误描述? A. 仅静态环境 B. 二维定位 C. 需已知地图 D. 粒子滤波
-
创建 ROS 工作空间与功能包步骤? A.mkdir -p ~/catkin_ws/src B.catkin_init_workspace C.catkin_create_pkg D.catkin_make & source
-
差速运动控制正确描述? A. 轮速控制直行转向 B. 两轮 / 四轮适用 C. 无复杂转向机构 D. 转弯半径固定
-
ROS 分布式通信必需步骤? A. 同一路由器 B. 配置.bashrc C. 两端均开 roscore D.ping 测试
-
SLAM 常用环境感知传感器? A. 激光雷达 B.RGB-D C.IMU D. 超声
-
move_base 导航框架正确描述? A. 全局 + 本地规划器 B. 全局用 Dijkstra/A* C. 本地用 DWA/TEB D. 不支持动态避障
-
麦克纳姆轮正确描述? A.45° 辊子 B. 可横向移动 C. 狭小空间灵活 D. 转弯半径大
-
多机协同技术? A. 分布式通信 B. 任务分配 C. 群体智能 D. 集中式控制
-
能耗管理有效策略? A. 路径优化 B. 低功耗硬件 C. 动态调状态 D. 增加负载
-
系统可扩展性考虑? A. 硬件接口 B. 软件架构 C. 算法通用性 D. 外观
-
深度学习目标检测性能影响因素? A. 数据集质量 B. 模型复杂度 C. 计算平台 D. 摄像头位置
二、判断题(共 10 题,每题 2 分,共 20 分)
- 传感器精度足够高即可完全保证定位精度
- 路径规划算法越复杂导航效果越好
- PID 可完全满足高精度轨迹跟踪
- 摄像头越多识别准确率一定越高
- ROS 节点仅能通过话题通信
- 静态环境 SLAM 地图一定比动态更准
- 多传感器融合可完全消除误差
- 增加电池容量即可解决能耗问题
- 外观设计对性能无直接影响
- 数据集越大深度学习性能一定越好
三、设计题(2 题,每题 10 分,共 20 分)
场景:两轮差动机器人从教室座位区起点运送资料到讲台目标点 (1) 机器人需包含哪些硬件模块及功能? (2) 机器人需包含哪些软件模块及功能?
四、实践题(2 题,每题 10 分,共 20 分)
场景:阿克曼底盘倒车入库 / 出库 (1) 用 TEB 算法实现倒车入库的程序流程图 (2) 倒车入库成功的关键影响因素并解释
重难点与复习要点(结合 zhangrelay 博客梳理)
一、核心考点模块(考试全覆盖)
1. ROS 基础与通信(选择 + 判断必考)
- 必背指令:工作空间创建、初始化、编译、环境配置
- 关键消息:Odometry(位姿)、Twist(速度)、LaserScan(激光)
- 分布式通信:同网段、ROS_MASTER_URI/ROS_IP、单主节点、ping 连通
- CMakeLists.txt:管理依赖、编译规则
2. 运动控制模型(必考)
- 差速:轮速差转向、无转向机构、半径可调
- 阿克曼:转向机构、内侧转角更大、需差速器
- 麦克纳姆:45° 辊子、全向移动、横向滑移
- PID:基础闭环,无法完全保证高精度
3. SLAM 建图(高频)
- GMapping:激光 + 里程计→二维栅格图
- Cartographer:图优化、低资源、高精度、主流 2D
- RTAB-Map:RGB-D、闭环检测、支持 3D
- 传感器组合:激光 + IMU + 里程计最常用
4. 自主导航框架(核心)
- move_base = 全局规划器 + 本地规划器
- 全局:Dijkstra、A*
- 本地:DWA、TEB(动态约束、轨迹优化、支持倒车)
- 定位:AMCL(粒子滤波、需地图、支持动态环境)
5. 系统设计与实践(大题)
- 两轮差速硬件:底盘、驱动、主控、电源、激光、IMU、里程计、通信
- 软件:驱动、SLAM、定位、规划、控制、避障、调度
- TEB 倒车:动力学约束、参数调优、定位、地图、库位尺寸
二、高频易错点(判断 / 选择必拿分)
- 传感器≠绝对定位;算法复杂度≠效果;PID≠完美跟踪
- 摄像头数量≠准确率;ROS 通信≠只有话题
- 动态环境降低 SLAM 精度;融合≠消除误差
- 电池≠解决能耗;外观间接影响性能;数据大≠效果好
三、大题答题模板
两轮差速机器人设计
- 硬件:感知层、驱动层、决策层、电源层
- 软件:底层驱动、SLAM 建图、AMCL 定位、全局 / 本地规划、运动控制、避障
TEB 倒车入库
- 流程:启动→建图 / 定位→全局路径→TEB 规划→动态避障→泊车
- 关键:TEB 参数、动力学约束、定位精度、地图分辨率、库宽 / 车长比
四、复习优先级
- ROS 操作 + 三种运动模型
- SLAM 算法对比 + move_base 框架
- 硬件 / 软件模块设计
- TEB 倒车流程与影响因素
一、ROS 核心(选择 + 判断必考)
1. 基础指令(必背)
- 创建工作空间:
mkdir -p ~/catkin_ws/src - 初始化:
catkin_init_workspace - 创建功能包:
catkin_create_pkg - 编译:
catkin_make - 生效环境:
source devel/setup.bash
2. 关键消息类型
- 位置 / 里程计:nav_msgs/Odometry
- 速度控制:geometry_msgs/Twist
- 激光数据:sensor_msgs/LaserScan
- 字符串:std_msgs/String
3. 分布式通信(必考)
- 机器人为主机:
ROS_MASTER_URI=http://机器人IP:11311ROS_IP=机器人IP
- 必须:同一路由器、ping 通、只开一个 master
4. CMakeLists.txt 作用
- 定义依赖关系、编译规则、链接库
- 不负责启动节点、不负责可视化
二、运动控制(全题型覆盖)
1. 差速底盘
- 原理:左右轮速差 → 转向
- 优点:无复杂转向机构、转弯半径可调
- 适用:两轮 / 四轮差速机器人
2. 阿克曼底盘
- 原理:转向机构 + 内侧轮转角 > 外侧轮
- 必须:差速器
- 典型:汽车、 Ackermann 小车
3. 麦克纳姆轮
- 结构:辊子45°
- 能力:全向移动、横向滑移
- 适用:狭窄空间、高精度移动
4. PID 控制
- 作用:基础速度 / 位置闭环
- 局限:不能完全满足高精度轨迹跟踪
三、SLAM 建图(高频选择)
1. GMapping
- 数据:激光雷达 + 里程计
- 输出:二维栅格地图
- 特点:经典 2D、依赖里程计
2. Cartographer
- 核心:图优化
- 特点:低资源、高精度、2D 为主
- 支持:多传感器、多平台
3. RTAB-Map
- 支持:RGB-D 摄像头、3D 建图
- 核心:全局贝叶斯闭环检测
- 特点:实时、大场景
4. 常用传感器
- 激光雷达、RGB-D、IMU、超声波
四、自主导航(核心大题)
1. move_base 框架
- 全局规划器:Dijkstra、A*(找最短路径)
- 本地规划器:DWA、TEB(动态避障 + 轨迹优化)
- 功能:全局路径 + 本地轨迹 + 避障
2. TEB 本地规划器(倒车入库必考)
- 核心:动态约束下的轨迹优化
- 支持:倒车、曲线、动力学限制
- 适用:阿克曼、差速、全向底盘
3. 定位:AMCL 蒙特卡洛
- 原理:粒子滤波
- 前提:已知地图
- 适用:二维、动态环境
- 错误说法:只能用于静态环境
五、硬件 / 软件模块(设计题满分模板)
1. 两轮差速机器人硬件
- 主控单元:运行 ROS、算法决策
- 驱动模块:控制电机转速
- 底盘执行:差速电机、轮子
- 感知传感器:激光雷达、IMU、里程计
- 通信模块:WiFi / 串口
- 电源系统:电池、稳压
2. 软件模块
- 底层驱动:电机、传感器驱动
- SLAM 建图:建二维栅格地图
- AMCL 定位:实时位姿估计
- 路径规划:全局 + 本地
- 运动控制:PID / 差速控制
- 避障系统:动态障碍物处理
六、TEB 倒车入库(实践题满分)
1. 程序流程图
- 启动 ROS 主节点
- 加载地图 + 启动 AMCL 定位
- 启动 move_base + TEB 本地规划器
- 设置入库目标点
- 全局路径规划
- TEB 轨迹优化(含倒车、转向约束)
- 动态避障
- 到达目标、泊车停止
2. 成功关键因素
- TEB 参数配置:最大倒车速度、加速度、转弯半径
- 定位精度:AMCL 粒子收敛、无跳变
- 地图质量:无偏移、无缺失
- 动力学约束:匹配阿克曼底盘模型
- 库位尺寸:宽度 > 车宽 + 安全余量
- 障碍物:无动态干扰
七、高频易错判断(必拿 20 分)
- 传感器再高也不能完全保证定位
- 算法越复杂导航效果不一定越好
- PID不能完全满足高精度跟踪
- 摄像头越多准确率不一定越高
- ROS 通信不只有话题(服务、动作)
- 静态 SLAM更准但不是绝对
- 多传感器融合不能消除误差
- 电池大不能解决所有能耗问题
- 外观间接影响性能(风阻、重心)
- 数据集大性能不一定越好(质量更关键)
八、zhangrelay 博客强调的复习优先级
- ROS 指令 + 分布式通信
- 差速 / 阿克曼 / 麦克纳姆运动模型
- SLAM 三大算法对比
- move_base + TEB 导航
- 硬件 / 软件模块设计
- TEB 倒车入库流程与参数
- 判断题陷阱