SLAM建图

从这一节开始,我们开始尝试将 TogetherROS 与机器人联系起来做一些小项目。

第一节将开始学习 SLAM 技术。SLAM一般指即时定位与地图构建,即时定位与地图构建(Simultaneous Localization and Mapping,简称SLAM)

这个章节,我们将联系ROS2 和 TogetherROS ,使用 ROS2 的 SLAM-Toolbox 作为建图算法,在仿真环境中构建地图。

准备工作

1、安装 SLAM - Toolbox建立软链接

$ sudo apt-get install ros-foxy-slam-toolbox

$ cd /opt/tros
$ sudo python3 create_soft_link.py --foxy /opt/ros/foxy/ --tros /opt/tros/

2、搭载仿真环境,此处采用 turtlebot3 仿真环境

$ sudo apt-get install ros-foxy-gazebo-*
$ sudo apt install ros-foxy-turtlebot3
$ sudo apt install ros-foxy-turtlebot3-bringup
$ sudo apt install ros-foxy-turtlebot3-simulations
$ sudo apt install ros-foxy-teleop-twist-keyboard

使用介绍

首先在 PC 端启动仿真环境

$ source /opt/ros/foxy/setup.bash
$ export TURTLEBOT3_MODEL=burger
$ ros2 launch turtlebot3_gazebo turtlebot3_world.launch.py
Attention

第一次加载可能比较慢,原因是正在下载部分需要的插件。

打开后,即可看到如图:

Gazebo

在PC端打开一个新终端:

$ source /opt/ros/foxy/setup.bash
$ ros2 launch turtlebot3_bringup rviz2.launch.py

此时会打开一个RVIZ2 ,需要添加“map” 如下图:

 rvizsetting

旭日X3 派运行 SLAM-Toolbox:

# 配置TogetherROS环境
$ source /opt/tros/setup.bash

#启动SLAM launch文件
$ ros2 launch slam_toolbox online_sync_launch.py

此处有可能会遇到缺少lib文件问题,如果发生的话如下操作:

$ sudo vi /etc/ld.so.conf
#在其后增加:
/usr/local/lib

#保存退出:
$ sudo ldconfig

PC端再打开一个新终端,遥控建图:

$ source /opt/ros/foxy/setup.bash
$ ros2 run teleop_twist_keyboard teleop_twist_keyboard

效果如图:

Gazebo2

建图结果

map

图片1