ros、slam、激光雷达、自动驾驶相关学习内容和计划

发布于:2025-08-30 ⋅ 阅读:(28) ⋅ 点赞:(0)

明白 ✅。你现在做的是 LHD自动驾驶,核心技术是 SLAM、LiDAR、ROS、感知与规划控制。这类项目涉及“工程落地 + 学术算法 + 安全规范”三大方面。我给你一个循序渐进的学习方案(从基础到应用),并附带开源项目推荐,方便你快速上手和进阶。


🔑 学习路线总览

阶段 学习方向 学习目标 推荐资料/工具
基础打牢 Linux、C++、ROS、数学 能在ROS中写节点,掌握坐标变换、滤波、优化 ROS Wiki、tf2、Eigen
传感器原理与标定 LiDAR、IMU、相机、同步 理解原理,完成标定与数据融合 Kalibr、Livox/Ouster SDK
定位与建图 SLAM算法(激光/视觉/融合) 能在矿山巷道环境中跑通SLAM并抗退化 LIO-SAM、FAST-LIO2、LOAM、LOCUS
路径规划与控制 局部/全局规划、轨迹跟踪 能让车辆在窄巷道中安全运行 A*、DWA、MPC、TEB
系统集成与安全 ROS多机、通信、冗余、急停 搭建矿山安全可靠的原型系统 DDS、ROS2、CAN总线
工程化与扩展 矿山车队管理、安全规范 与真实矿车对接,符合工业安全标准 Hexagon CAS、矿山调度系统

🧭 详细学习方案

1. 基础打牢(1-2个月)

  • Linux & Shell:学会编译、调试、系统服务(Ubuntu 20.04/22.04)
  • C++11/14/17:模板、STL、多线程、智能指针,ROS代码必备
  • ROS/ROS2:话题(topic)、服务(service)、动作(action)、tf2
  • 数学基础:李代数(SE(3)、SO(3))、EKF/UKF 卡尔曼滤波、非线性优化

📖 推荐:

  • 《Programming Robots with ROS》
  • 《State Estimation for Robotics》 (ETH Zurich 课程)
  • ROS Wiki、清华/中科院开源课程

2. 传感器与标定(1个月)

  • LiDAR:点云结构、去畸变、运动补偿(Ouster/Velodyne/RoboSense)
  • IMU:零偏、噪声模型、积分漂移
  • 相机(若有):针孔模型、内外参、畸变校正
  • 多传感器同步:硬件时间戳/PTP,软件ROS时间同步
  • 标定:外参标定(lidar-imu、lidar-camera、imu-camera)

📖 推荐:

  • ETH 的 Kalibr 标定工具
  • A-LOAM + Livox Horizon 教程

3. 定位与建图(2-3个月,核心)

重点:煤矿巷道 SLAM 退化环境(重复结构、无纹理、粉尘)

  • 纯激光 SLAM:LeGO-LOAM、A-LOAM(适合起步)
  • 激光-IMU 融合:LIO-SAM、FAST-LIO2(鲁棒性强,推荐)
  • 矿山/地下专用:LOCUS(MIT DARPA SubT 队伍开源)
  • 回环检测:Scan Context、基于特征描述子

📖 推荐:

  • LIO-SAM 论文与代码
  • FAST-LIO2 GitHub
  • LOCUS 2.0 论文(Robotics: Science and Systems, RSS)

4. 路径规划与运动控制(2个月)

  • 全局规划:A*、Dijkstra、Hybrid A*(适合窄巷道)

  • 局部规划:DWA(动态窗口法)、TEB(时间弹性带)

  • 控制方法

    • 低速:PID/Stanley 控制
    • 矿车推荐:MPC(模型预测控制,处理约束)
  • 障碍物处理:基于Octomap/栅格地图的避障

📖 推荐:

  • Practical Search Techniques in Robotics(A*、Hybrid A*)
  • ROS Navigation2 框架

5. 系统集成与安全(并行进行)

  • ROS 多机通信:车端-地面站分布式架构
  • 实时性优化:RT kernel、ROS2 DDS
  • CAN 总线:与车辆底盘控制交互(驱动、刹车、铲斗)
  • 安全回路:急停、冗余通信链路
  • 矿山专用:人机隔离、区域限速、远程遥控

📖 推荐:

  • ROS2 DDS 实时通信
  • Autoware.Auto 架构文档

6. 工程化与扩展

  • 车队管理:多机调度、任务下发、交通管制
  • 地图维护:全矿区高精地图(离线SLAM+人工修正)
  • 安全认证:ISO 3691-4(工业车辆安全要求)、矿山国家标准

🚀 推荐开源项目(直接能上手的)

  1. LIO-SAM – 激光+IMU紧耦合SLAM,ROS1
  2. FAST-LIO2 – 高效激光惯性里程计,适合实时矿车
  3. LeGO-LOAM – 轻量级激光里程计,适合初学者
  4. LOCUS 2.0 – 专为地下/隧道环境设计的SLAM
  5. Autoware.Auto – 开源自动驾驶平台(可借鉴规划与控制)
  6. Navigation2 – ROS2 下的路径规划与导航框架

⚒️ 学习建议

  • 如果时间有限:建议先快速跑通 LeGO-LOAM → LIO-SAM → FAST-LIO2,再结合矿山场景调优。
  • 并行学习 规划控制(Navigation2 + MPC)ROS2 多机通信
  • 工程落地阶段,重点解决 时间同步 + 通信稳定性 + 急停安全链路

要不要我帮你整理一份 “3个月速成学习计划表”,按周划分学习内容和目标?这样你可以边学边在项目里上手调试。

明白 ✅。你已经具备 ROS + C++ + Linux 基础,可以把第一阶段简单带过,重点放在 传感器标定 → SLAM建图与定位(FAST-LIO2为核心) → 路径规划与控制 → 系统集成与安全,并结合你们 Ouster OS1-32 双雷达(车头/车尾) 的配置展开。下面给你一个 定制化学习与实现方案


🔑 学习路线(基于你现有基础)

阶段 目标 内容 工具/项目
0. 已有基础 ✔ 已掌握 ROS / C++ / Linux 只需保持熟练度 ROS Wiki, Eigen
1. 传感器标定与同步 双雷达 + IMU 时间/外参精确对齐 时间同步、外参标定、点云融合 Kalibr, hand-eye 标定工具
2. SLAM(FAST-LIO2) 实现高鲁棒性里程计与建图 Ouster 双雷达数据 → FAST-LIO2 → 矿山建图 FAST-LIO2, ScanContext
3. 回环检测与地图优化 巷道退化环境下保持全局一致性 回环检测、图优化 ScanContext, GTSAM
4. 路径规划与控制 自动装载/运输 → 点到点运行 全局规划(A* / Hybrid A*) + 局部规划(TEB / MPC) Navigation2, MPC
5. 系统集成与安全 可靠性 + 工程落地 ROS2多机、急停、车控接口、矿山安全机制 DDS, CAN总线, 安全回路
6. 工程扩展 多机协同、车队调度 任务分配、交通管制 多机ROS2, 简易调度平台

🥽 1. 传感器标定与同步(Ouster OS1-32 双雷达 + IMU)

目标

  • 两个 Ouster 激光雷达(前/后)与 IMU(可能内置或独立) 时间同步 + 外参标定
  • 确保点云去畸变正确,避免 SLAM 漂移

学习与操作要点

  1. 时间同步

    • Ouster OS1-32 支持 PPS + NTP/PTP(IEEE-1588) 硬件同步。
    • 如果两个雷达 + IMU 在一台工控机上,建议使用 硬件触发线PTP,避免 ROS 时间戳误差。
    • 在 bag 文件中同时输出 /os_cloud_node/imu, /os_cloud_node/points 并检查时间戳差。
  2. 外参标定

    • 标定车头雷达 → 车体坐标系,车尾雷达 → 车体坐标系。

    • 工具:

      • Kalibr(支持 lidar-imu/camera-imu)
      • 手动标定:对准特征点,计算旋转和平移矩阵。
    • 推荐采用 静态标定 + 动态验证:采集数据跑 FAST-LIO2,看双雷达点云是否对齐。

  3. 点云融合

    • 将两个雷达点云通过外参 tf 转到车体坐标系,发布 /merged_cloud
    • ROS 节点可用 pcl_ros / pcl_conversions,或用 ouster_multi_lidar_ros

🛰️ 2. SLAM – FAST-LIO2 为核心

为什么用 FAST-LIO2?

  • 适合 Ouster OS1-32(高线束、带 IMU),算法高效,点云与 IMU 紧耦合
  • 在粉尘、重复巷道环境下鲁棒性比 LOAM / LIO-SAM 强

学习与落地路径

  1. 单雷达验证

    • 先用车头雷达 + IMU 在巷道中跑 FAST-LIO2,看轨迹/地图是否稳定。
  2. 双雷达融合

    • 将前/后雷达点云融合为一个输入,送入 FAST-LIO2:

      • 优点:减少遮挡,避免后退时点云退化。
      • 方法:在 /merged_cloud 发布点云,作为 velodyne_points 输入。
  3. 地图优化

    • FAST-LIO2 自带里程计建图,但缺乏全局回环

    • 增强方案:

      • Scan Context:轻量级回环检测
      • 图优化(GTSAM/ceres)来做闭环优化
    • 推荐:FAST-LIO2 + Scan Context → 构建矿山全局一致地图。


🗺️ 3. 回环检测与地图优化

目标

解决 矿井巷道长、重复结构导致漂移 问题。

推荐方法

  • Scan Context(描述子回环检测):开源实现,能在重复结构中找到相似帧。
  • Pose Graph Optimization(PGO):用 GTSAM 优化全局轨迹。
  • 工程实现:FAST-LIO2 → 输出里程计 → Scan Context → 闭环约束 → GTSAM优化。

🚗 4. 路径规划与控制

全局规划(矿山隧道适配)

  • 基础:A* / Dijkstra
  • 窄巷道/倒车场景:Hybrid A*(考虑非完整约束)

局部规划与避障

  • TEB(Timed Elastic Band):处理动态约束(速度/转向角限制)
  • MPC(Model Predictive Control):适合矿车这种重载车辆,有动力学模型

实际建议

  • 矿车低速(5-15km/h),可以先 A + TEB* 快速实现;
  • 再升级为 Hybrid A + MPC*,考虑车辆动力学与重载情况。

🔒 5. 系统集成与安全

关键要点

  1. 急停安全回路

    • 独立于 ROS 通信,硬件急停(CAN/IO 控制),即使主机死机也能停车。
  2. 通信冗余

    • Wi-Fi/5G + 工业环网,确保远程遥控稳定。
  3. ROS2 多机通信

    • 建议最终迁移 ROS2(DDS,实时性好),车端 <-> 地面站分布式架构。
  4. 车控接口

    • 通过 CAN 总线控制转向、加速、刹车、铲斗动作;
    • 需写 ros_can_bridge,把规划轨迹转化为底盘控制指令。

🏗️ 6. 工程扩展(车队管理)

  • 交通管制:类似 Sandvik AutoMine,基于区域锁定与任务调度。
  • 任务分配:调度中心下发“挖装 → 行驶 → 倒矿”任务。
  • 安全监控:UWB 标签 / RFID 实现人机隔离。

🚀 开源项目推荐(结合你的设备与需求)

  1. FAST-LIO2 – 激光-IMU 紧耦合,主力算法
    👉 FAST-LIO2 GitHub
  2. Scan Context – 回环检测增强 FAST-LIO2
    👉 Scan Context GitHub
  3. LIO-SAM – 激光-IMU因子图SLAM,可参考回环机制
    👉 LIO-SAM GitHub
  4. Navigation2 – ROS2 路径规划与导航框架
    👉 Navigation2 GitHub
  5. MPC Controller (ros-mpc) – 可用于矿车轨迹跟踪
    👉 MPC for ROS
  6. Autoware.Auto – 自动驾驶全栈,借鉴架构与规划模块
    👉 Autoware GitHub

✅ 总结(你的路线):

  • 现在(第1步):Ouster双雷达标定 + 时间同步,输出融合点云
  • 近期(第2步):FAST-LIO2 跑通单雷达,再加 Scan Context 做闭环
  • 中期(第3步):基于 Navigation2 + MPC 实现点到点运行
  • 长期(第4步):ROS2多机、任务调度、矿山安全体系

要不要我帮你整理一份 “三个月实施计划(按周分目标)”,方便你边学边在矿车上测试?
👌好,我们把原来的 3个月计划细化到 5个月(20周),并且给你 每周学习资料 + 推荐开源项目 + 必做实验,这样你可以直接照 checklist 推进。目标是:
👉 20周后,你们能在真实矿车上完成自动驾驶原型(SLAM+规划+控制+安全),并具备扩展多机调度的基础


📅 五个月实施计划(20周)


🔹 阶段一:传感器标定与数据管线(第1-4周)

目标:双雷达+IMU 正确对齐,能输出融合点云

第1周

  • 学习 Ouster OS1-32 官方 ROS SDK

  • 在实验环境采集 /os_cloud_node/points, /os_cloud_node/imu

  • 必做实验:用 RViz 显示点云,确认线数、视场角、点云密度

第2周

  • 学习 ROS tf 与坐标系转换

    • 📚 ROS TF 教程
  • 建立 lidar_front → base_link, lidar_rear → base_link

  • 必做实验:静态标定车头/车尾雷达位置 → RViz 检查是否重合

第3周

  • 学习传感器时间同步(PTP / PPS)

    • 📚 Ouster time synchronization whitepaper
  • 确认 IMU 与雷达时间戳误差 < 1ms

  • 必做实验:在 bag 中对比 /imu/points 时间戳

第4周

  • 学习点云融合(PCL + ROS)

  • 写 ROS 节点 → 输出 /merged_cloud

  • 必做实验:车辆前进/后退采集数据,验证点云无错位


🔹 阶段二:SLAM 与建图(第5-10周)

目标:FAST-LIO2 + 双雷达建图,解决回环漂移

第5周

  • 学习 FAST-LIO2 架构

  • 用车头雷达跑 FAST-LIO2(无回环)

  • 必做实验:在巷道内跑 200m,评估轨迹精度

第6周

  • 将双雷达 /merged_cloud 输入 FAST-LIO2
  • 调整 IMU 噪声参数、点云降采样
  • 必做实验:对比单雷达 vs 双雷达轨迹漂移

第7周

  • 学习 Scan Context 回环检测

  • 必做实验:在长隧道中回到起点 → 检查是否触发回环

第8周

  • 学习 GTSAM 图优化

  • 集成 Scan Context + GTSAM → 闭环优化

  • 必做实验:构建闭环轨迹,检查全局漂移改善

第9周

  • 学习 Octomap / Occupancy Grid

  • 将 FAST-LIO2 轨迹转化为占据栅格地图

  • 必做实验:在 RViz 中生成矿区 3D 栅格地图

第10周

  • 定位模式测试(LIO-Mapping / AMCL)
  • 必做实验:在已有地图上重新运行 → 检查实时定位是否准确

🔹 阶段三:路径规划与控制(第11-16周)

目标:点到点导航(A* 全局 + 局部规划 + 控制器)

第11周

  • 学习 Navigation2 全局规划

  • 使用 A* / Dijkstra 规划矿区路径

  • 必做实验:在 RViz 显示全局路径

第12周

  • 学习局部规划(DWA / TEB)

  • 必做实验:仿真环境中绕开障碍物行驶

第13周

  • 学习 Hybrid A*(适合狭窄巷道、倒车场景)

  • 必做实验:狭窄巷道掉头测试

第14周

第15周

  • 学习 MPC(预测控制)

  • 必做实验:负载工况下运行曲线路径,验证平滑性

第16周

  • 集成:全局规划(Hybrid A*) + 局部规划(TEB/MPC)
  • 必做实验:点到点任务(装载点 → 倒矿点)

🔹 阶段四:系统集成与安全(第17-20周)

目标:工程落地(车控接口+急停+调度)

第17周

  • 学习 CAN 总线与 ROS 桥接

    • 📚 socketCAN + ros_canopen
  • 必做实验:用 ROS 控制车辆油门/刹车/转向

第18周

  • 急停安全机制

    • 硬件急停按钮 → 独立 IO 控制 → 断电制动
  • 必做实验:运行过程中触发急停,车辆能立即停下

第19周

  • 学习 ROS2 多机通信(DDS)

  • 地面站 ↔ 矿车:任务下发 + 状态回传

  • 必做实验:远程下发“从点A行驶到点B”

第20周

  • 系统联调

    • 载入地图
    • 下发导航任务
    • 矿车执行任务 + 返回状态
  • 必做实验:全流程演示(建图 → 定位 → 路径规划 → 轨迹跟踪 → 急停 → 恢复)


📦 阶段成果总结

  • 第1-4周 → 稳定的双雷达+IMU 融合点云
  • 第5-10周 → FAST-LIO2 SLAM + 回环优化 + 占据栅格地图
  • 第11-16周 → 矿车点到点自动驾驶(A* + Hybrid A* + MPC)
  • 第17-20周 → 工程化雏形(车控接口 + 安全 + 地面站调度)

✅ 最终结果:
20周后,你将拥有一个 井下矿车自动驾驶原型系统

  • 能在复杂巷道环境建图/定位
  • 能规划点到点路径并执行
  • 支持急停、安全冗余
  • 能与地面站交互,支持调度


网站公告

今日签到

点亮在社区的每一天
去签到