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.
In its initial configuration it used four gearmotors for its locomotion using the uNav2 prototype. It was handling the feedback (encoders) on two motors only, with the two others (identical) simply wired in parallel. Not exactly optimal.
Recently I update the mechanical part using two planetary gear motors and a system of pulleys and belts to link front and rear wheels on each side.
The control board is still my trusted UNAV2 prototype (links to the hardware, firmware and ROS drivers).
Slammer tech specs
Mechanical and electrical specs
- Size(LxWxH): 32 x 20 x 15 cm
- Ground clearance: 4cm
- Weight: 2 Kg
- Motors: 2x 28mm planetary gearmotors - 10W - 3Nm (stall torque)
- Battery: 4S Li-ion battery pack with integrated balancer/protection, 3000mAh (replacement part for vacuum robots)
- Chassis: 3D printed, assembled using two 300mm 20x20 modular profiles as main carrier frame (parts design to be uploaded soon)
Electronics and sensors
- NVIDIA Jetson Nano.
- Unav2 motor controller.
- Intel Realsense D435 depth camera
- Slamtech A1 LIDAR
- Bosch Sensortec BNO055 based imu
- Express LRS based teleop over Lora using custom CRSF driver ros-crsf-driver
- Littlewire based WS281x smart lights based notification system, using custom ROS signalling driver
Software
- main ROS robot packages
- ROS Melodic running on Jetpack 32.5 based Docker images
- OpenCV, PCL & librealsense compiled to use CUDA acceleration and offload the CPU.
- Custom Docker image running RTABMap & ROS wrappers recompiled to use the above libraries
- complete system can be started using docker-compose.
ROS
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 (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 so that they are automatically built 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.
Teleop
Updated ExpressLRS Lora 2.4GHz Teleop
As part of the changes to use the robot at the last Maker Faire in Rome (8-10 Oct 2021), I replaced the bluetooth joypad with an ExpressLRS receiver and a Jumper T-Lite transmitter. The additional benefit is the possibility to rely on the extensive OpenTX telemetry and configurability.
For this pourpose I wrote a CRSF protocol parser and a ROS driver.
Old DS4DRV bluetooth joypad
Teleop was previousluy handled using a bluetooth PS4 joypad as input device using DS4DRV
Video
Below a simple test after installing the four new motors and the unav2 prototype.
Find additional Slammer related blog entries here
Additional pictures