This repository contains documentation and resources for doing visual SLAM (simultaneous localization and mapping) on a TurtleBot3 Waffle Pi and ROS. This repository is a work in progress and will be constantly changing as I research and experiment with different packages and tools.
-
Follow the setup guide in the ROBOTIS e-manual.
- Everything in this repository is tested using Ubuntu 20.04 with ROS Noetic on the Remote PC, and the provided Raspbian disk image in the manual (Section 6.2.1.2).
- The Remote PC you use should have a somewhat powerful Nvidia GPU if you want the segmentation/detection packages to run at a respectable framerate.
- Follow installation instructions for the darknet ROS package.
- I found this script helpful for installing OpenCV.
- CUDA installation guide. Make sure you follow the mandatory post-installation steps!
- I recommend installing ROS web video server so you can easily look at different image topics in your web browser. Otherwise you can use
rqt_image_view
or something.
sudo apt-get install ros-melodic-web-video-server
- Start up ROS master. SSH into the turtlebot to start up its sensors and its camera with the following commands.
roslaunch turtlebot3_bringup turtlebot3_robot.launch
roslaunch raspicam_node camerav2_1280x960.launch
- Run the launch file (on the Remote PC).
roslaunch visual_slam classify_and_locate.launch
- To use custom weights, either edit
yolo_v3.launch
in thedarknet_ros
package or make a new launch file that points to the proper weights/configuration files. Make sure to edit the launch file in this package to point to the newdarknet_ros
launch files as well.
This package also has support for Gazebo simulation, with the Turtlebot3 Simulations package as a prerequisite. The launch file opens an empty world by default.
roslaunch visual_slam gazebo_classify_and_locate.launch
bevo.weights
- bevo
turtlebot.weights
- turtlebot_burger
multiclass.weights
- box
- bevo
- bottle
- footwear
- turtlebot
multiclass-v3.weights
Updated version of multiclass.weights
(no footwear)
- box
- bevo
- bottle
- turtlebot