/robaka-ros

ROS project for Robaka - mobile ROS testbed

Primary LanguagePythonMIT LicenseMIT

ROBAKA

NEW: Join the community on Slack to discuss Robaka implementations!

Robaka 2

AR tag follower BBQ cart

Other builds

by Andrei Zugravu

by Luis Augusto Silva and ESALab Team

by Martin Nievas

by Liangkai Zhang

Summary

This is the ROS package for Robaka, my ROS and SLAM mobile testbed. Robaka uses ros_control with hardware driver from this repo, which relies on hoverboard custom firmware by Bipropellant.

If you're looking for the Arduino-based Robaka 1, the code is on robaka-1 branch.

How to

To start:

$ sudo apt-get install ros-melodic-desktop-full
$ rosdep install robaka
$ catkin_make
$ roslaunch headlessrobaka robaka.launch

On desktop:

$ roslaunch uirobaka.launch
OR
$ roslaunch robaka robaka_cartographer_localization.launch load_state_filename:=<FULLPATH>/laserdata25.bag.pbstream

Refer to https://google-cartographer-ros.readthedocs.io/en/latest/ for SLAM details.

Run live SLAM:

$ roslaunch robaka slammingrobaka.launch

Record bag:

$ rosbag record -a -O ./mylaserdata10.bag

Validate bag:

$ cartographer_rosbag_validate -bag_filename=mylaserdata10.bag

Offline SLAM:

$ roslaunch robaka offline_slam.launch bag_filenames:=/home/des/catkin_ws/mylaserdata10.bag

Save map:

$ rosrun map_server map_saver -f map1

Save online SLAM state for cartographer .pbstream:

$ rosservice call /finish_trajectory 0
$ rosservice call /write_state "{filename: '/home/alex/mylaserbag23.bag.pbstream'}"

NOTE: patch cartographer as described here cartographer-project/cartographer#1498 (comment) to fix global costmap issue

SLAM

  • 2020-03-26 Added teleop with PS4 controller, using the driver from Naoki Mizuno

  • 2020-04-08 Added semantic segmentation for driveable surface. Not tested yet. Cloned repo, implemented by Dheera Venkatraman.

  • 2020-04-18 Semantic segmentation actually works on a pre-trained network. Started work on transforming the mask using camera homography into a costmap, documenting here

  • 2021-03-10 Added LCD display to show robot status. Added "AR tag follower" mode. Switched hoverboard driver from speed control to PWM control (much smoother motion).