跳转至

ROS 2地图构建:让机器人理解环境

SLAM Toolbox地图构建

安装与配置方法

8.2.2 安装与配置方法

$ sudo apt install ros-jazzy-slam-toolbox

仿真环境中的SLAM Toolbox地图构建

8.2.3 仿真环境中的SLAM Toolbox地图构建

$ ros2 launch learning_gazebo_harmonic load_mbot_lidar_into_maze_gazebo_harmonic.launch.py
# 启动slam_toolbox功能包中的算法节点 
$ ros2 launch slam_toolbox online_async_launch.py 
# 新开一个终端启动RViz 
$ ros2 launch originbot_viz display_slam.launch.py
$ ros2 run teleop_twist_keyboard teleop_twist_keyboard
$ sudo apt install ros-jazzy-nav2-map-server 
$ ros2 run nav2_map_server map_saver_cli -t map -f cloister

真实机器人SLAM Toolbox地图构建

8.2.4 真实机器人SLAM Toolbox地图构建

# 启动机器人的底盘
$ ros2 launch originbot_bringup originbot.launch.py use_lidar:=true 
# 运行SLAM Toolobox地图构建算法 
$ ros2 launch slam_toolbox online_async_launch.py 
# 计算机端 
$ ros2 launch originbot_viz display_slam.launch.py
$ ros2 run teleop_twist_keyboard teleop_twist_keyboard 
$ ros2 run nav2_map_server map_saver_cli -t map -f my_map

Cartographer:二维地图构建

安装与配置方法

8.3.2 安装与配置方法

$ sudo apt install ros-jazzy-cartographer 
$ sudo apt install ros-jazzy-cartographer-ros

仿真环境中的Cartographer地图构建

8.3.3 仿真环境中的Cartographer地图构建

$ ros2 launch learning_gazebo_harmonic load_mbot_lidar_into_gazebo_harmonic.launch.py 
$ ros2 launch originbot_navigation cartographer_gazebo.launch.py 
$ ros2 run teleop_twist_keyboard teleop_twist_keyboard 
$ ros2 run nav2_map_server map_saver_cli -t map -f cloister

真实机器人Cartographer地图构建

8.3.4 真实机器人Cartographer地图构建

# 终端1:启动机器人的底盘 
$ ros2 launch originbot_bringup originbot.launch.py use_lidar:=true 
# 终端2:运行Cartographer地图构建算法 
$ ros2 launch originbot_navigation cartographer.launch.p
# 计算机端 
$ ros2 launch originbot_viz display_slam.launch.py
$ ros2 run teleop_twist_keyboard teleop_twist_keyboard 
$ ros2 run nav2_map_server map_saver_cli -t map -f cloister

ORB:视觉地图构建

安装与配置方法

8.4.2 安装与配置方法

  1. 安装依赖库——Eigen3
$ sudo apt install libeigen3-dev
  1. 安装依赖库——Pangolin
# 切换到用户的主目录   
$ cd ~   
# 复制Pangolin的GitHub仓库   
$ git clone https://github.com/stevenlovegrove/Pangolin.git

# 使用脚本以运行模式检查推荐的依赖项安装命令   
$ cd Pangolin   
$ ./scripts/install_prerequisites.sh --dry-run recommended   

# 使用脚本安装推荐的依赖项   
$ ./scripts/install_prerequisites.sh recommended   

# 使用cmake配置Pangolin的构建系统,将输出目录设置为当前目录下的build文件夹   
# 这将生成必要的Makefile(或其他构建文件)   
$ cmake -B build   

# 使用cmake构建Pangolin,使用4个并行作业加速构建过程   
$ cmake --build build -j4   

# 将Pangolin安装到系统中 
$ sudo cmake --install build   

在.bashrc中添加环境配置。

if [[ ":$LD_LIBRARY_PATH:" != *":/usr/local/lib:"* ]]; then 
    export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH 
fi
  1. 检查OpenCV版本 建议使用OpenCV 4.5以上版本。

    $ python3 -c "import cv2; print(cv2.__version__)"  
    

  2. 编译ORB_SLAM3源码

    $ git clone https://github.com/UZ-SLAMLab/ORB_SLAM3.git
    $ cd ORB_SLAM3 
    $ chmod +x build.sh 
    $ ./build.sh
    

编译完成后可以运行以下两行指令编译算法源码。

$ cd ~/ORB_SLAM3/Thirdparty/Sophus/build 
$ sudo make install 

  1. 测试ORM_SLAM3功能
    # 下载EuRoC数据集中的一个子集(MH_01_easy)   
    $ cd ORB_SLAM3   
    $ wget -c   
    # 拉取ETH Zurich ASL dataset for robotics 最新的数据集 
    # 解压下载的数据集   
    $ unzip MH_01_easy.zip   
    # 运行ORB_SLAM3的Monocular示例来处理EuRoC数据集   
    $ ./Examples/Monocular/run_monocular_euroc.sh ./Vocabulary/ORBvoc.txt ./Examples/Monocul
     ar/EuRoC.yaml MH_01_easy ./Examples/Monocular/EuRoC_TimeStamps/MH01.txt output_directory  
    

真实机器人ORB地图构建

8.4.3 真实机器人ORB地图构建

# 机器人终端1 
$ ros2 launch realsense2_camera rs_launch.py enable_depth:=false enable_color:=false 
enable_infra1:=true depth_module.profile:=640x480x15

# 机器人终端2 
$ ros2 run orb_slam3_example_ros2 
mono ./ORBvoc.txt ./Examples/Monocular/RealSense_D435i.yaml 

RTAB:三维地图构建

安装与配置方法

8.5.2 安装与配置方法

 $ sudo apt install ros-jazzy-rtabmap-ros 

仿真环境中的RTAB地图构建

8.5.3 仿真环境中的RTAB地图构建

激光雷达SLAM建图

# 终端1:启动机器人仿真环境 
$ ros2 launch learning_gazebo load_mbot_lidar_into_maze_gazebo_harmonic.launch.py 
# 终端2:启动RTAB SLAM算法 
$ ros2 launch originbot_navigation rtab_scan_gazebo.launch.py  
# 终端3:启动上位机 
$ ros2 launch originbot_viz display_slam.launch.py 

$ rtabmap-databaseViewer rtabmap.db 
视觉SLAM建图

# 终端1:启动机器人仿真环境 
$ ros2 launch learning_gazebo_harmonic load_mbot_rgbd_into_maze_gazebo_harmonic.launch.py 
# 终端2:启动RTAB SLAM算法 
$ ros2 launch originbot_navigation rtab_rgbd_gazebo.launch.py  
# 终端3:启动上位机 
$ ros2 launch originbot_viz display_slam.launch.py 
$ rtabmap-databaseViewer rtabmap.db 

真实机器人RTAB地图构建

8.5.4 真实机器人RTAB地图构建

# 启动OriginBot机器人底盘 
$ ros2 launch originbot_bringup originbot.launch.py use_lidar:=true 

# 启动D435i相机节点 
$ros2 launch realsense2_camera rs_launch.py enable_depth:=false enable_color:=false 
enable_infra1:=true depth_module.profile:=640x480x15 
# 启动RTAB SLAM算法 
$ ros2 launch originbot_navigation rtab_rgbd_gazebo.launch.py  

# 启动上位机 
$ ros2 launch originbot_viz display_slam.launch.py 
$ rtabmap-databaseViewer ~/.ros/rtabmap.db

图片1