首先我们看下最终无人机SLAM定位的计算图,然后根据计算图追根溯源分析实现算法在ROS中实现的流程
![](https://img.jasve.com/2024-2/4e8271e66e05e7e7b5e0853619d5befb.webp)
从图中可以看出总共包含的ros节点有5个,分别所属三个包,其中包1、2是ROS官方现成直接可以使用的,只需要根据实际使用配置下launch文件即可,包3是针对无人机应用平台自己实现用于处理机载端、飞控端数据交互。
1、其中由rplidar_ros包提供的节点为rplidarNode,rplidarNode发布的雷达数据扫描的话题为"/scan",雷达数据扫描节点的订阅者为hector_mapping节点。
2、其中由hector_mapping包提供的节点有:hector_mapping、imu_attitude_to_tf_node、base_to_laser_broadcaster,hector_mapping节点用于处理包括:/scan、base_stailized到laser的tf、base_stailized到base_link的tf,同时hector_slam发布了poseupdate位姿估计话题给t265_serialport节点。
3、由serialport包提供的节点为t265_serialport,作用是订阅poseupdate话题,将位姿数据打包发给飞控串口,飞控接收机载计算机的位姿数据实现自主定位与运动控制等。同时t265_serialport节点将飞控端发送来的飞行器IMU姿态数据解析后,并发布话题:sensor_msgs::Imu imu_fc给imu_attitude_to_tf_node,用于hector_slam在水平俯仰、横滚方向上有运动的slam定位。
预告:下一篇给初学者理一下hector_slam建图需要用到的坐标系、坐标轴与旋转方向、tf等基础知识:
![](https://img.jasve.com/2024-2/bacdafa7c74d45898a1e1478fa53a203.webp)
![](https://img.jasve.com/2024-2/b134916f335dd47307259a39010e5d9a.webp)