SLAM建图hector_slam

如何为您的机器人设置hector_slam

hector_slam使用hector_mapping节点来学习环境图,并同时以激光扫描仪的帧速率估算平台的2D姿态。必须正确设置hector_mapping的帧名称和选项。本教程介绍了不同的选项。下图显示了在崎rough不平的地面上行走的机器人的简化2D视图中所有潜在的关注帧,导致平台的侧倾和俯仰运动:

在这里插入图片描述
映射,odom和base_link框架之间的一般关系已在移动平台的坐标框架中进行了描述。我们在odom和base_link之间使用两个框架:base_footprint框架不提供高度信息,并表示机器人的2D姿势(位置和方向)。base_stabilized框架添加了有关机器人相对于地图/ odom层的高度的信息。base_link框架牢固地连接到机器人,并且与base_stabilized框架相比增加了侧倾角和俯仰角。对于此转换,可以使用诸如AHRS或INS之类的用于估计车辆姿态的系统(可以使用***hector_imu_attitude_to_tf***来实现例如节点)。对于不显示滚动/俯仰运动的平台,base_stabilized和base_link框架相同。从base_link到laser_link的转换通常由***静态转换发布者***或***机器人状态发布者***提供。

建立

我们假定读者对下一节的ROS参数和启动文件有基本的了解。该hector_slam_launch包中包含可作为实例的一些启动文件。

  1. 用于代替映射
    gmapping发布map-> odom变换。您必须设置以下hector_mapping参数以反映平台上的设置:

在这里插入图片描述
如果您的平台呈现出滚动/俯仰运动,则必须设置base_frame,使其具有上文“概述”部分中描述的base_stabilized框架的属性。

  1. 不带odom框架使用
    如果您不需要使用odom框架(例如,因为您的平台不提供任何可用的里程表),则可以直接发布从map到base_link的转换:
    在这里插入图片描述

  2. 使用而不广播转换
    该系统也可以在不广播任何tf转换的情况下使用。如果另一个节点负责发布map-> odom或map-> base_frame转换,这将很有用。可以通过设置:
    在这里插入图片描述
    在这种情况下,上的poseupdate主题发布的估计姿态hector_mapping可能是由INS系统,然后出版了MAP-> base_frame变换用于例子。
    https://wiki.ros.org/hector_slam/Tutorials/SettingUpForYourRobot

猜你喜欢

转载自blog.csdn.net/qq_41050642/article/details/109063170