「视觉建图导航小车」-- ①仿真实验篇

目录

一、框架

二、实践

1、软件包安装

2、代码运行

3、遇到的问题


前言

最近实验室有个项目,要跑一个视觉建图导航小车,配置为Autolabor底盘+TX2开发板+ZED2相机。

记录实验过程,写成博客,希望能为做类似课题的本科生和研究生提供些许帮助。

第一步,先跑跑仿真实验,了解一下流程,为之后实物运行做准备。

一、框架

整体框架组成:

  • Gazebo仿真软件
  • Turtlebot3机器人
  • RTAB Map建图定位算法
  • Move base路径规划算法

大致介绍下各个部分

  • Gazebo是一款免费的机器人仿真软件,可对环境进行模拟,对传感器模型进行模拟。
  • Turtlebot3是ROS官方的第三代Turtlebot开源机器人,既有机器人实物,也有gazebo仿真模型。
  • RTAB Map是一个开源的实时定位和建图算法,它能告诉我们小车附近的环境,以及小车在环境中的某个位置。
  • Move base是一个开源的路径规划算法,在已知地图和小车自身位置的前提下,动态地规划小车前进路线,避开静态和动态障碍物,到达指定地点。

二、实践

计算机环境:Ubuntu16.04、ROS-Kinetic

1、软件包安装

# Gazebo
sudo apt install ros-kinetic-gazebo-ros-pkgs ros-kinetic-gazebo-ros-control

# Turtlebot3
sudo apt install ros-kinetic-turtlebot3-simulations ros-kinetic-turtlebot3-navigation

# RTAB map
sudo apt install ros-kinetic-rtabmap-ros

# Move base
sudo apt install ros-kinetic-move-base ros-kinetic-dwa-local-planner

2、代码运行

# 终端一:
export TURTLEBOT3_MODEL=waffle
roslaunch turtlebot3_gazebo turtlebot3_world.launch
# 终端二:
export TURTLEBOT3_MODEL=waffle
roslaunch rtabmap_ros demo_turtlebot3_navigation.launch

这里的export TURTLEBOT3_MODEL=waffle是指定Turtlebot3机器人的类型为waffe。

Turtlebot3一共有三种机器人类型:burger、waffle、waffle_pi

「视觉建图导航小车」-- ①仿真实验篇_第1张图片 Turtlebot3机器人类型

运行终端一的程序,出现gazebo软件界面,其中并加载一个环境模型和机器人模型,机器人模型上有虚拟的激光雷达和深度相机:

「视觉建图导航小车」-- ①仿真实验篇_第2张图片

运行终端二的程序,出现RTAB-Map界面和RVIZ界面。

RTAB-Map界面如下,可看到算法的建图效果:

「视觉建图导航小车」-- ①仿真实验篇_第3张图片

 RVIZ界面中可看到RTAB-map的建图和Move base的costmap。

在此界面上点击[2D Nav Goal]并在地图中选择一个目标点和方向,算法会自动进行路径规划并移动至指定位置和方向,效果如下:

「视觉建图导航小车」-- ①仿真实验篇_第4张图片 自主路径规划和运动

「视觉建图导航小车」-- ①仿真实验篇_第5张图片 到达目的地

3、遇到的问题

运行 roslaunch turtlebot3_gazebo turtlebot3_world.launch 时,

报错

        Error [parser.cc:581] Unable to find uri[model://sun]
        Error [parser.cc:581] Unable to find uri[model://ground_plane]

原因

        少了两个gazebo模型文件:sun、ground_plane

解决办法

        下载gazebo模型,https://github.com/osrf/gazebo_models/archive/refs/heads/master.zip

        这个zip有点大,解压出sun和ground_palne文件夹,然后拷贝至~/.gazobo/models文件夹:

        (这里~/.gazobo/models文件夹就是gazebo默认的模型文件夹。)

ls ~/.gazebo/ 
# 如果没有models文件夹,自己创建一个。如果有,不用重新创建
mkdir -p ~/.gazebo/models
# 将sun、ground_plane文件夹复制到models/文件夹下
cp -r sun/ ~/.gazebo/models
cp -r ground_plane/ ~/.gazebo/models

        复制模型过去后,再重新运行程序,就正常啦!

你可能感兴趣的:(ROS,机器人,自动驾驶,人工智能)