Skip to content

SLAM 导航服务


导航原理

1739286692837-f7b02bbc-3877-4c5b-9b36-2c7c9ae61657.png

导航系统主要由三部分构成:定位、规划及控制。这些模块协同工作,确保机器人能够在复杂环境中实现自主导航。系统所依赖的传感器主要包括Livox激光雷达和惯性测量单元(IMU);输入信息则涵盖PCD格式的定位地图、PNG格式的导航地图、任务目标点等。

定位模块通过传感器融合技术确保机器人能够实时获取精确的位置信息;规划模块根据导航模式和定位信息生成可行的路径;控制模块则负责将路径转化为具体的运动指令,驱动机器人完成任务。

定位过程

定位模块的主要功能是实时确定机器人在环境中的精确位置。该模块接收来自机器人搭载的Livox激光雷达获取的雷达点云数据以及IMU获取的位姿数据。通过传感器融合技术,将这些数据与上层传入的 pcd 定位地图进行匹配,从而获取当前机器人的位置信息。并以 TF 树的方式将mapodombase_link之间的坐标变换关系进行发布,确保各模块之间的坐标系一致性。

在启动定位节点后,需要在Rviz中指定机器人的初始位姿,从而帮助机器人快速获取自身在环境中的定位信息,为后续的导航任务提供支持。一旦初始位姿被发送,激光雷达等传感器的感知数据将与点云地图构建过程中保存的地图进行匹配,并完成位姿计算。此时,系统会在地图坐标系中显示TF变换,表明机器人已成功定位。

规控过程

规划模块和控制模块共同构成了导航系统的规控过程,负责生成并执行机器人的运动路径。

1739163952551-815ca1b8-4d3a-45cc-bb33-643dbfac63b8.png

规划模块

规划模块根据导航模式(巡线模式/智能导航模式)选择相应的规划器,结合定位模块提供的定位信息及 pcd 定位地图,生成一条从机器人当前位置到目标点的导航路径。这一路径不仅需要考虑环境的静态障碍物,还需动态避开移动障碍物,确保路径的可行性和安全性。

控制模块

控制模块接收规划模块生成的导航路径以及定位模块提供的实时定位信息。基于这些信息,控制模块会生成符合机器人运动约束的线速度和角速度指令。这些指令通过cmd_vel话题传递给机器人的底盘执行,从而驱动机器人沿规划路径移动。控制模块还需实时监控机器人的运动状态,确保其能够准确跟踪路径,并在必要时进行动态调整,以应对环境变化或突发情况。