沙盘环境认知与建图导航
车道线、直角弯、T 形/十字路口、斑马线、车位……沙盘上的每个元素是什么?小车如何遍历全场画出 slam_map,并按 Nav2 规划的路线巡路?
把 3.26m × 2.98m 的交通教学沙盘当成一座"微缩城市":小车 C1 先用激光 SLAM 把路网画进地图,再用深度相机看懂红绿灯与标志牌,用 PID 沿车道线守住路口规则,最后在平行车位完成一次可量化验收的智慧泊车——感知、决策、控制、语音四条链路在沙盘上全闭环。
车道线、直角弯、T 形/十字路口、斑马线、车位……沙盘上的每个元素是什么?小车如何遍历全场画出 slam_map,并按 Nav2 规划的路线巡路?
HP60C 深度相机拍到的画面,如何用 HSV 颜色分割拆出红黄绿三态?四类交通标志怎样交给 NPU 上的 YOLO 检测?输出话题如何标准化?
摄像头里的车道中心线偏差,怎么经 PID 变成 /cmd_vel 的角速度?路口停止线何时刹、绿灯何时走、斑马线前看到行人模型要不要停?
平行车位与垂直车位的标线如何被检测、车位可用性怎么判定?轨迹泊车与 Nav2 精点导航如何结合?最终"巡游→改道→红灯停等→礼让→泊车→语音播报"全流程验收。
沙盘元素认知与安全边界先行:遍历建图并保存 slam_map,给路口、灯口、车位做语义标注——没有地图与点位,后面全是空中楼阁。
HSV 三态灯 + NPU 标志检测输出标准话题 /traffic/light、/traffic/sign,光照一变就重新标定——感知的输出决定控制的输入。
PID 巡线压中心偏差,路口状态机管"停、等、行、让",低速起步、提前减速两条铁律贯穿始终。
泊车入库 + 全流程路测,每一环都有量化指标与评分表,语音播报成绩作为最终交付。
| 实验(8 学时 · 2 理论 + 6 实践) | 关键命令(xlsx 风格) | 量化验收 |
|---|---|---|
| EXP-01 沙盘认知与建图导航 元素认知 → SLAM → Nav2 → 语义标注 |
ros2 launch car1_slam slam.launch.pyros2 run nav2_map_server map_saver_cli -f slam_mapros2 launch car1_navigation navigation.launch.py map:=slam_map |
闭环回路完整无断图;点到点 10/10;语义点位 ≥6 处 |
| EXP-02 交通标志与红绿灯识别 HSV 三态 → NPU 检测 → 话题标准化 |
ros2 launch ascamera hp60c.launch.pypython3 src/app.py --model models/*.rknnros2 topic echo /traffic/light |
红黄绿三态 ≥95%;四类标志 mAP 达标;话题频率稳(10/15Hz) |
| EXP-03 车道保持与路口信号通行 PID 巡线 → 红停绿行 → 礼让 → 状态机 |
ros2 run car1_control lane_follow_node.py --params-file lane_follow.yamlros2 param set /lane_follow_node kp 0.60ros2 run tf2_tools view_frames |
直道偏差 ≤±2cm;红灯 10/10;礼让 10/10;迁移无振荡 |
| EXP-04 智慧泊车与综合路测 车位检测 → 轨迹入库 → 全流程计分播报 |
ros2 action send_goal /navigate_to_pose …ros2 launch car1_speech speech.launch.pyros2 bag record -a -o smart_route_bag |
入库 10/10 不压线;全流程 ≥85 分、零干预;TTS 播报一致 |
小车 C1 电量与麦克纳姆轮检查;HP60C、2D 雷达紧固;沙盘按现场实际清点车道线、红绿灯、标志牌、车位与行人模型——以现场沙盘实际元素为准。
ROS 2 Humble + slam_toolbox + Nav2/AMCL + ascamera 驱动 + car1_speech;YOLO 权重导出 RKNN(INT8,6 TOPS NPU);RViz2 配置与 slam_map 初始文件就位。
slam_map + 语义点位 yaml → HSV 与置信度标定文件 → 直道偏差曲线、状态机迁移日志 → 泊车评分表 + rosbag;每一项都可复盘、可量化。
巡线 ≤0.25m/s、入库 ≤0.10m/s 起步;/traffic/* 断流 ≥1s 按红灯 fail-safe;每次导航前设初始位姿;光照变化先重新标定再动手。
能。四个实验页的原理、动画、互动仿真全部自包含,不依赖实拍素材;沙盘元素按同类教学沙盘典型规格(车道约 40cm、直角弯 ×4、平行车位 45×35cm 等)设计,一切以现场沙盘实际元素为准,到现场后对照点验即可。
不单独设理论页:每实验页"02 核心原理"就是 2 学时理论(含自制 SVG 示意图),"04~07"合计 6 学时实践;"06 原理动画 / 07 互动实验"可作理论收尾的课堂演示。
EXP-02 的识别节点:HSV 颜色分割输出红黄绿三态(约 10Hz),NPU 上的 YOLOv8 输出四类标志(约 15Hz)。EXP-03 状态机与 EXP-04 全流程评分器只订阅这两个标准话题,感知模型换代不影响控制代码。
Nav2 精点导航的目标点定义在 map 坐标系:AMCL 初值歪 5cm,停位就歪 5cm——泊车 ≤3cm 的验收直接失败。每次启动 navigation.launch.py 后,先在 RViz2 用 2D Pose Estimate 对齐,再发 /navigate_to_pose。
没有一劳永逸的阈值。按实验页给出的流程:换光照 → 重采空位/有车样本 → 重标 HSV 与二值化阈值 → 复测 10 例回归。NPU 侧的标志检测同理,训练集要覆盖沙盘现场的灯光条件。
本课程是 cases 目录下第 5 个综合案例(编号 CASE-05,目录名 exp008-smart-traffic),首页总索引的回填由主控统一完成;课程内四实验自成闭环,硬件统一为具身智能机器人小车 C1 + 智慧交通教学沙盘(选型参考:淘宝 id=696594369848「ROS机器人无人驾驶沙盘」,¥899,塔克创新品牌店)。
素材与规格说明:本课程按同类教学沙盘典型规格设计(车道宽约 40cm、直角弯 ×4、T 形路口、红绿灯模型、斑马线、平行车位、交通标志牌、高对比识别线等),并抓取了 Hiwonder 同类产品公开页图片作为参照,一切以现场沙盘实际元素为准;教学沙盘选型参考:淘宝 id=696594369848「ROS机器人无人驾驶沙盘」(¥899,塔克创新品牌店)。未标注来源的示意图均为本课程自制示意图;动画与互动组件全部页内自包含、无外部依赖。