Skip to content
1 change: 1 addition & 0 deletions .github/workflows/docs-deploy.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ on:
branches:
- master
- feature/tutorial
- feature/tutorial-rev2

jobs:
build-and-deploy:
Expand Down
57 changes: 35 additions & 22 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,19 +1,45 @@
OSGAR
=====

Open Source Garden/Generic Autonomous Robot (Python library)
**Open Source Garden/Generic Autonomous Robot (Python library)**

OSGAR is lightweight multi-platform library targeting record and replay of
multiple `nodes` (modules = sensors, robots, applications) logged into single file. It
has similar goals as ROS or ADTF, but is minimalistic. It should run on
different operating systems and also low end devices like Raspberry PI Zero.
OSGAR is a lightweight, multi-platform library for recording and replaying data from multiple `nodes` (modules such as sensors, robots, and applications) logged into a single file. It is designed to be minimalistic, modular, and robust, capable of running on everything from high-end workstations to low-end devices like the Raspberry Pi Zero.

![John Deere X300R](http://robotika.cz/competitions/roboorienteering/2016/jd-nav2.jpg)
OSGAR was originally developed by [robotika.cz](https://robotika.cz) and has been successfully deployed in several international robotics challenges.

References at
http://robotika.cz/robots/osgar/
# Key Features

Video: https://youtu.be/KiDnPsnLmLU
* **Robust Logging:** All port data is logged with microsecond-resolution timestamps into a single `.log` file.
* **Deterministic Replay:** Replaying recorded data produces identical outputs, enabling reliable debugging of complex sensor interactions and algorithms in a controlled environment.
* **Modular Architecture:** Robots are built as a set of independent modules connected via a communication "bus," defined in a simple JSON configuration.
* **Minimalistic & Multi-platform:** Written in Python, with minimal dependencies, ensuring it runs on various operating systems and hardware.

# Applications & Robots

OSGAR has been the core software framework for a variety of robotic platforms and prestigious competitions:

<img src="http://robotika.cz/competitions/roboorienteering/2016/jd-nav2.jpg" alt="John Deere X300R" width="600">

### DARPA Subterranean Challenge (SubT)
Team Robotika used OSGAR to coordinate a heterogeneous fleet of robots (wheeled, tracked, and flying) to map and search complex underground environments.

<img src="https://robotika.cz/competitions/subtchallenge/tunnel-circuit/day3-0742-kloubak.jpg" alt="DARPA SubT" width="600">

### DARPA Triage Challenge (DTC)
OSGAR powers a fleet of **Matty** robots (M01-M05) equipped with non-contact sensors to detect physiological signs in casualties during mass-casualty incidents.

<img src="https://robotika.cz/competitions/dtc/phase2/matty-all-hw-completed.jpg" alt="Matty robots for DTC" width="600">

### Field Robot Event
OSGAR-based robots, including the "Matty twins," have successfully competed in the Field Robot Event, an international competition for autonomous robots in agriculture.

<img src="https://robotika.cz/competitions/fieldrobot/2025/matty-twins-prizes.jpg" alt="Field Robot Event" width="600">

# Documentation

For more detailed information, please refer to:
* [Technical Guide (English)](https://robotika.github.io/osgar/index.html)
* [Czech Guide (Průvodce OSGARem)](https://robotika.cz/guide/osgar/cs)

# Architecture

Expand All @@ -32,18 +58,6 @@ you setup PYTHONPATH to the root of this project.
The example configurations are stored in `config` folder. JSON files are
used.

## LFS

The repository is now using [LFS](https://git-lfs.github.com/) (Large File Storage), so please
make sure you have git-lfs installed:
```
git lfs install
```
Based on OS you may need to also install it into system, for example on Ubuntu:
```
sudo apt install git-lfs
```

## Examples

### Collect data from sensor(s)
Expand All @@ -64,4 +78,3 @@ To replay existing log use:
```
python -m osgar.replay --module <module name> <log file name>
```

29 changes: 27 additions & 2 deletions doc/sphinx/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,33 @@
You can adapt this file completely to your liking, but it should at least
contain the root `toctree` directive.

Welcome to osgar's documentation!
=================================
OSGAR Documentation
===================

**Open Source Garden/Generic Autonomous Robot (Python library)**

OSGAR is a lightweight, multi-platform library for recording and replaying data from multiple `nodes` (modules such as sensors, robots, and applications) logged into a single file.

Key Features
------------

* **Robust Logging:** All port data is logged with microsecond-resolution timestamps.
* **Deterministic Replay:** Replaying recorded data produces identical outputs, enabling reliable debugging.
* **Modular Architecture:** Robots are built as a set of independent modules connected via a communication "bus".
* **Minimalistic & Multi-platform:** Runs on everything from high-end workstations to the Raspberry Pi Zero.

Applications & Robots
---------------------

OSGAR has been the core software framework for several prestigious competitions:

* **DARPA Subterranean Challenge (SubT):** Coordinating heterogeneous robot fleets in underground environments.
* **DARPA Triage Challenge (DTC):** Autonomous medical assessment using a fleet of **Matty** robots.
* **Field Robot Event:** Autonomous agricultural robots in challenging outdoor environments.

.. image:: https://robotika.cz/competitions/roboorienteering/2016/jd-nav2.jpg
:alt: John Deere X300R
:width: 400px

.. toctree::
:maxdepth: 2
Expand Down
Loading