(!) Please ask about problems and questions regarding this tutorial on answers.ros.org. Don't forget to include in your question the link to this page, the versions of your OS & ROS, and also add appropriate tags.

Xbot建图

Description: 使用Xbot建立环境地图

Tutorial Level: BEGINNER

Next Tutorial: Xbot运动规划

如何上手Xbot建图程序?

我们在最初的Xbot的软硬件设计上,都早已充分考虑到了Xbot对于目前绝大部分建图算法和开源程序的支持特性。

从硬件上而言,Xbot具备标准的双轮差分系统,前后各配置一个可减震的万向轮,适应大多数室内的运行环境;在激光雷达的支持上,Xbot可以与市面上大部分广泛应用的激光雷达兼容运行,因而只要之前支持使用二维激光雷达进行建图的程序,Xbot都支持。

从软件上而言,Xbot的设计目标就是为了成为一款最适合中国ROS学者和研究人员的机器人软硬件平台,因而从Xbot的最原始驱动软件编写逻辑和优化方法,到Xbot的ROS node Package的设置,都是按照ROS控制标准和系统标准而完成的。因而,您可以在本平台上测试调试任何在ROS算法程序。

以下我们介绍使用Xbot与当前最通用的两个建图算法进行配合建图的具体过程。

以下两个建图的程序包位于xbot2_navigation文件夹当中,具体地址见:https://github.com/yowlings/xbot2_navigation.git

Gmapping

Gmapping是一款开源的支持同步定位与地图构建的SLAM算法,该算法的具体内容和使用方法可见:gmapping

在此就不再一一赘述,若对官方文档的使用方法还有其他疑惑或者想更深层次的了解Gmapping算法,从源码角度剖析该算法的来龙去脉,可参考睿思学院(ROSAcademy)的详细进阶课程。

在此,我们为大家配置好了使用搭载了sick激光雷达的xbot2的建图一键启动指令

$ roslaunch xbot_slam xbot_gmapping_sick.launch

为了地图的可视化,可在运行以上指令后再次运行xbot_slam当中的xbot_rviz.launch指令:

$ roslaunch xbot_slam xbot_rviz.launch

此时,你就可以看到机器人的初始化建立起的地图了。

Gmapping initial map

Hector

同上,Hector建图程序在Xbot上的配置和运行也一样简单

$ roslaunch xbot_slam xbot_hector.launch

再次运行可视化程序:

$ roslaunch xbot_slam xbot_rviz.launch

即可看到Hector初始化的地图效果。

具体建图过程

任意运行以上一个建图程序之后,你只需要控制机器人,无论通过键盘指令程序(rosrun xbot_cruise keyboard_control.py)或者使用配套的遥控器控制机器人在需要建图的环境中遍历运行即可。

保存地图

为了后续的已知环境地图初始化地图运行,在建图结束之后可以运行指令:

$ rosrun map_server map_saver -f filename

来将已经建立完成的地图存储起来,存储路径为命令行当前路径,文件名为filename.yaml和filename.pgm两个文件。

接下来

Wiki: cn/Robots/Xbot/tutorial/Mapping (last edited 2021-01-02 07:18:09 by yakamoz423)