


This project uses ROS2 (Humble) to perform Autonomous Simultaneous Localization and Mapping (A-SLAM) using a Spot robot from Boston Dynamics. The project was named Rustbuster due to the fact that it was initially intended to perform corrosion inspection, in an offshore platform.
- Spot robot
- RealSense Intel D455 (RGB-D and IMU)
- Laptop
- Ethernet cable (optional)
The intel d455 is used instead of spot’s, native cameras because it has a higher frame rate and IMU.
NOTE: It is possible to calculate Spot’s IMU using the odometry messages, but the method is slow and imprecise.
This system was developed and tested only in a Lenovo IdeaPad Gaming 3 15ARH05 laptop running Ubuntu 22.04.
Install dependencies from public repositories:
sudo apt update
# Boston Dynamics software
pip3 install bosdyn-client bosdyn-mission bosdyn-api bosdyn-core
# Ros related packages
sudo apt install -y \
ros-humble-nav2* \
ros-humble-imu-filter-madgwick* \
ros-humble-librealsense2* \
ros-humble-apriltag* \
ros-humble-usb-cam* # (Optional)
⚠️ If RTAB-Map does not install correctly, download it from source and follow the installation instructions.
Clone repositories into ROS2 workspace:
mkdir -p ros2_ws/src && cd ros2_ws/src
git clone https://github.com/Hakaino/RustBuster
git clone https://github.com/bdaiinstitute/spot_ros2.git
git clone https://github.com/robo-friends/m-explore-ros2
cd ..
rosdep install --from-paths src --ignore-src -r -y
Follow the tutorial Spot network setup.
AAU students
I developed this project as a student at Aalborg University (AAU). \ To other students working with spot, I suggest:- Contact Frank to get access to Spot.
- From the administrator account in Spot’s computer, define a new user account.
- Connect Spot and D455 to laptop. (I placed the laptop on back of the robot)
- Start Spot and connect the controller. (instructions)
- Configure the fields username, password, hostname in spot_config.yaml
⚠️ If auto_stand is set True, the robot will stand up
- In the terminal, navigate to ROS2_WS folder generated during installation, and run the command:
colcon build --symlink-install source install/setup.bash ros2 launch rustbuster rustbuster_launch.py
Manual Navigation: Using spot’s controller
Semi-auto Navigation: Inputting navigation goals
Auto Navigation: Fully autonomous
The configuration files are saved in the config folder.
spot_launch
contains lots of if statements, to deactivate parts of the program, for debugging.
If you would like to contribute, please feel free to open a PR.
I am not maintaining the project anymore because I don’t have access to a spot, to test the changes.
RustBuster is an open-source software. So just use it as you please 😄

Leave a Reply