- for better viewing experience visit Project Wiki
- please take a moment to review Current Notes and Project Status page
This repository contains instructions and other documents related to my "articubot_one" 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 docs 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 GPS, Cameras, IMU and other devices.
Don't forget to properly setup your WiFi or Global VPN and feed your RPi5 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).
Hint: here is a searchable ToC, generated by ChatGPT5 from readable files in this repository.
An indoors "tablebot" Seggy is described here: Docs/Seggy
The outdoorsy robot Dragger (Raspberry 5, GPS) is described here: Docs/Dragger
An indoors mapper robot Plucky is described here: Docs/Plucky
Classic Turtlebot, a visitor from the ancient times, running on Raspberry 3B under ROS2 Jazzy: Docs/Create1
This section describes how to make a differential drive robot "from scratch" - out of widely available parts.
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.
Note: you don't need to download or build anything from this repository, just browse the Docs folder. Actual robots' code is here.
Here are the likely scenarios for your work.
-
Desktop workstation: see Docs/ROS-Jazzy (no robot hardware required).
-
Optional: Set up Raspberry on-board Raspberry Pi: see Docs/Ubuntu-RPi
-
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.
-
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
-
Report here: https://github.com/slgrobotics/articubot_one/issues
-
Create a Pull Request: https://github.com/slgrobotics/articubot_one/pulls
-
Join the Mailing list at https://www.hbrobotics.org/ - participate in club technical discussions
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
GPS - localization and navigation:
https://automaticaddison.com/sensor-fusion-using-the-robot-localization-package-ros-2/
https://docs.ros.org/en/melodic/api/robot_localization/html/integrating_gps.html
https://docs.nav2.org/tutorials/docs/navigation2_with_gps.html