Home - slgrobotics/articubot_one GitHub Wiki

"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

Contents:


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 the legacy documentation repository. Its content will be ultimately moved here; meanwhile use the "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 set up your WiFi and feed your RPi 5 properly.

We assume:

  • On the Workstation (usually a desktop machine - Intel, AMD) - Ubuntu 26.04 64-bit desktop, ROS Lyrical desktop (Jazzy mostly OK)

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

If you just want to run a simulation in Gazebo, or need to set up your Workstation with ROS Lyrical:

Here are the ROS2 robots:

Seggy

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

Dragger

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

Plucky (retired)

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

The Venerable Create 1 Turtlebot

  • Classic Turtlebot, a visitor from the ancient times, running on Raspberry 4 under the latest ROS2: 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 the latest ROS2 Lyrical:

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

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

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

  • To browse the 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 indoor and outdoor (GPS) operation; use Copy/Paste

  • Fork my articubot_one repository and make your own robot in the ~/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 a 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 experiment 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 them as a base for their own)
  • I try to future-proof the system by upgrading OS/ROS2 versions regularly (ROS Lyrical 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/lyrical/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/