2. 环境感知基础
各位同学,今天我们来聊聊环境感知。这是避障规划的第一步,也是整个系统的“眼睛”。
我个人习惯把环境感知比作“盲人摸象”——你摸到的每一块信息,都得拼起来才能知道大象长什么样。传感器就是你的手,而地图就是你对大象的理解。
传感器概览:三种主流方案
做避障规划,传感器选型是第一个坑。我见过不少团队,上来就堆一堆传感器,结果数据融合搞到崩溃。其实,搞清楚每种传感器的脾气,比盲目堆料重要得多。
1. 激光雷达(LiDAR)
激光雷达,说白了就是“用光来测距”。它发射激光束,打到物体上反射回来,通过时间差算出距离。
优点:
- 精度高,毫米级误差
- 不受光照影响,晚上也能用
- 直接输出3D点云,处理起来直观
缺点:
- 贵!好的机械式LiDAR动辄几万块
- 怕雨雪雾,恶劣天气性能下降明显
- 固态LiDAR虽然便宜,但视场角有限
2. 摄像头
摄像头是“最像人眼”的传感器。它不直接测距,但能提供丰富的语义信息——比如识别出前面是个行人,还是个纸箱。
优点:
- 便宜,一个工业相机几百块
- 信息量大,能识别颜色、纹理、文字
- 适合做目标检测、车道线识别
缺点:
- 受光照影响大,逆光、暗光下表现差
- 单目测距不准,需要双目或结构光辅助
- 计算量大,跑个YOLO就得占不少算力
3. 超声波
超声波传感器,原理跟蝙蝠一样——发射声波,听回声。它很便宜,但精度有限。
优点:
- 成本极低,几块钱一个
- 对透明物体(如玻璃)有效,激光雷达反而测不到
- 近距离(<2米)探测可靠
缺点:
- 精度差,有盲区(近处测不到)
- 容易受干扰,多个超声波同时工作会串扰
- 响应慢,不适合高速场景
- 室内低速机器人:超声波 + 单线激光雷达
- 室外无人车:16线以上LiDAR + 双目摄像头
- 低成本方案:单目摄像头 + 超声波(但别指望太高的可靠性)
环境表示方法:让机器人“看懂”世界
传感器拿到原始数据后,怎么让机器人理解?这就需要环境表示了。说白了,就是把现实世界“翻译”成机器人能算的数学模型。
我常用的两种方法:栅格地图和拓扑地图。它们各有各的脾气。
1. 栅格地图(Occupancy Grid Map)
栅格地图,就是把空间划分成一个个小格子。每个格子存一个值:0表示空闲,1表示占用,0.5表示未知。
优点:
- 直观,容易实现
- 适合做路径规划(A*、Dijkstra直接跑)
- 能处理动态障碍物(更新格子状态即可)
缺点:
- 存储量大——一个100m×100m的区域,分辨率0.1m,就是100万个格子
- 不适合大范围场景,内存会爆
下面是我画的一个栅格地图示意图,帮你理解它的结构:
你看,机器人从绿色区域出发,要绕过红色障碍物,到达金色目标点。灰色区域是还没探索过的。这就是栅格地图最朴素的样子。
2. 拓扑地图(Topological Map)
拓扑地图,不关心具体坐标,只关心“节点”和“连接关系”。就像地铁线路图——你不需要知道站台的具体经纬度,只要知道哪站能换乘就行。
优点:
- 存储量极小,适合大范围场景
- 路径规划快(图搜索算法直接跑)
- 容易做语义标注(比如“这个节点是门口”)
缺点:
- 精度低,无法处理精细避障
- 构建拓扑图本身需要先有栅格地图或SLAM结果
下面是我画的拓扑地图示意图,帮你理解节点和边的概念:
在这个拓扑图里,节点A是起点,B是走廊,C是房间,D是出口,E是障碍区域。机器人从A出发,可以走A→B→D,或者A→C→E→D。但E是障碍,所以最优路径是A→B→D。
- 栅格地图:适合精细避障,但存储大、计算慢
- 拓扑地图:适合全局导航,但无法处理局部细节
- 实际项目中,我通常两者结合:全局用拓扑,局部用栅格
传感器与地图的配合
你想想看,传感器和地图其实是“鸡生蛋、蛋生鸡”的关系。传感器数据用来构建地图,地图又反过来指导传感器该关注哪里。
我常用的流程是这样的:
- 激光雷达/摄像头采集原始数据
- 通过SLAM算法构建栅格地图
- 从栅格地图中提取拓扑结构(比如用Voronoi图)
- 全局规划用拓扑地图,局部避障用栅格地图
好了,环境感知的基础就聊到这里。记住:传感器选型要匹配场景,地图表示要兼顾精度和效率。这两点搞定了,后面的路径规划才能跑得稳。