Skip to content
Sergei Grichine edited this page May 17, 2026 · 11 revisions

"build it as complex as necessary, but as simple, as possible" - a foundational engineering and design philosophy, often attributed to Albert Einstein's advice.

Robots Bringup - Wiki

Important: This repository provides educational information for DIY robotics projects, which carry inherent risks, including electrical, battery, and mechanical hazards. The author assumes no liability for damages or injuries resulting from the use or misuse of this information. Users proceed entirely at their own risk.

Note:

  • please take a moment to review current Notes and Project status
  • the sidebar on the right mostly links to legacy documentation repository. Its content will be ultimately moved here; meanwhile use "back" button or keep this page in a separate tab.

This Wiki contains (or links to) instructions and other documents related to my "articubot_one" ROS2 project.

It is intended to run navigation on my Turtlebot-like robots - in Gazebo simulation or with physical robots, indoors or outdoors.

Some of the notes here deal with Desktop ("Ground Station") setup and operation, while others describe setup of on-board Raspberry Pi computers.

The Sensors section describes setup of IMUs, LIDARs, GPS, Cameras and other devices.

Don't forget to properly setup your WiFi and feed your RPi 5 properly.

We assume:

  • On the Desktop machine (Intel, AMD) - Ubuntu 24.04 64-bit desktop, ROS Jazzy desktop

  • On-board single board computer (SBC) - Raspberry Pi 5 8GB or similar, Ubuntu server 24.04 64-bit, ROS Jazzy base (access via ssh)

If you just want to run a simulation in Gazebo, or need to set up your Desktop with ROS Jazzy - see ROS2 Jazzy Setup (no robot hardware required).

Here are the ROS2 robots:

Seggy

  • An indoors "smart table" Seggy is described here: Docs/Seggy

Dragger

  • The outdoorsy robot Dragger (Raspberry 5, GPS) is described here: Docs/Dragger

Plucky (retired)

  • An indoors mapper robot Plucky is described here: Docs/Plucky

The Venerable Create 1 Turtlebot, now Jazzified

  • Classic Turtlebot, a visitor from the ancient times, running on Raspberry 3B under ROS2 Jazzy: Docs/Create1

"Make Your Own" robot

  • This section describes how to make a differential drive robot "from scratch" - out of widely available parts.

PX4 Autopilot based robots:

  • A robotized Husqvarna Z254F zero-turn mower - a.k.a. "Crazed Rhino" - legacy, now retired

  • My current attempt to mow grass - Grassroamer.


Note: Purpose and Limitations of this Project

This software is not ready for production use. It has neither been developed nor tested for a specific use case. However, the license conditions of the applicable Open Source licenses allow you to adapt the software to your needs. Before using it in a safety relevant setting, make sure that the software fulfills your requirements and adjust it according to any applicable safety standards, e.g., ISO 26262.


How to use this repository

You are looking at the Wiki of this repository. Actual robots' code is here.

Here are the likely scenarios for your work.

1. Just set up a "Clean Machine" to work with ROS2 Jazzy

2. Try my robots in Gazebo simulation, browse the code (no robot hardware needed)

  • See the #1 above, then follow the build and run instructions there for simulated Seggy, Dragger, Plucky or Turtle.

  • Bonus: ROS2 Jazzy comes with Turtlebot3 simulation, try that to see Nav2 working.

  • To browse robot's code look under ~/robot_ws/src/articubot_one - use VS Code or your favorite IDE.

3. Work on your own codebase

  • articubot_one codebase offers a working example of indoors and outdoors (GPS) operation, use Copy/Paste

  • Fork my articubot_one repository and make your own robot in ~/robot_ws/src/articubot_one/robots folder

Found a bug? Want to contribute a fix? Have a question?

My approach to Hobby Robotics

For those wondering why things are the way they are here, I came up with this list:

  • I started with a clean, modern, simple navigation architecture (Articulated Robotics project by Josh Newans worked for me)
  • I've got the basics running on several cheap, simple bases with unified drive interface (diffdrive_arduino)
  • I keep organizing and maintaining a coherent multi-robot codebase (descriptions, config, launch files)
  • I tried to understand the difference between indoor and outdoor setup and behavior
  • I experimented with sensors, learn their quirks, and patch drivers when necessary (almost always)
  • I strive to write readable, “cookbook-style” notes so anyone can replicate my robots (or use as base for their own)
  • I try to future-proof the system by upgrading OS/ROS2 versions regularly (ROS Kilted works well)

Enjoy, and have fun! Build more robots! ;-)


Useful links

HB Robotics Knowledge Base (Michael Wimble):

https://wimblerobotics.github.io/

Articulated Robotics (Josh Newans):

https://articulatedrobotics.xyz/category/build-a-mobile-robot-with-ros

https://www.facebook.com/ArticulatedRobotics/

https://articulatedrobotics.xyz/mobile-robot-1-project-overview/

https://articulatedrobotics.xyz/mobile-robot-13-ros2-control-real/

https://control.ros.org/jazzy/index.html

https://www.youtube.com/@ArticulatedRobotics/videos

"Automatic Addison" (Addison Sears-Collins) tutorials:

https://automaticaddison.com/tutorials/

https://automaticaddison.com/sensor-fusion-using-the-robot-localization-package-ros-2/

Clone this wiki locally