Slammer

This project started a few years ago as my learning platform for robotic in general and ROS.

At that time i was working mostly with drones, but I realised that testing things like mapping and navigation would have been much more harder and almost impossible indoor. For this reason, I started learning the basics of rovers and mobile robotics. Thus Slammer was born.

Slammer

In its current configuration it uses four gearmotors for its locomotion using the UNAV32 prototype. Currently it handles feedback (encoders) on two motors only, the other two (identical) motors are simply wired in parallel. Not exactly optimal, this will be handled in future with an additional board, as soon as firmware and hardware are in a more reliable status than MVP.

Recently I update the mechanical part using two planetary gear motors and a system of pulley and belts to link front and rear wheels on each side.

The control board is still my trusted UNAV32 prototype (links to the hardware, firmware and ROS drivers).

(C)Alessio Morale 2020

On the sensor side it uses :

  • RP Lidar A1M8
  • an old RealSense R200 a Realsense D435
  • imu BNO055

At the heart of Slammer there’s a Jetson Nano running from an external USB3 SSD.

Software

The system is currently based on ROS Melodic.

One of my requisites is to be able to use as much as possible the available GPU to free the CPU for tasks that cannot take advantage of it. For this reason, I recompiled from sources both the Realsense drivers, OpenCV and part of RTABMap prerequisites (currently I’m experimenting with PCL).

As rebuilding the software onboard is a very slow process, I managed to set up a series of Docker containers and their related CI process to automatically build using Github actions (for example, ROS + RTABMap repository).

The ROS workspace used to run Slammer is available in my Github, here. The docker folder contains several docker-compose files used to start the various software components one by one, everything completely dockerised.

I’m writing a series of post about building docker images in CI for ARM64/Jetson. The first post is here.

Teleop

Teleop is handled using a bluetooth PS4 joypad as input device using DS4DRV

Video

Below a simple test after installing the four new motors and the unav32 prototype.

Find additional Slammer related blog entries here