Skip to main content

A minimal operating system for robotics.

Project description

🤖 TinyROS - A minimal operating systems for Robots

GitHub stars Code Style PyPI version License: MIT Python 3.10+ uv

A minimal implementation of an operating system for robots, to ease the integration of sensors, actuators, and heavy compute directly in the physical world.

🏛️ Design Philosophy

🪶 Single-file solution: TinyROS relies on portal for reliable inter-process communication and works under the assumption that in most robotic systems, communication is primarily peer-to-peer or involves only a few subscribers per publisher (in ROS terminology). This targeted approach allows us to strip down complexity significantly. We deliberately avoid the entire ROS ecosystem baggage while providing the familiar publisher-subscriber pattern for the 90% of use cases that don't need the full complexity of ROS2.

Cross-platform and easy to install: TinyROS comes without installation headaches and is extremely lean while being cross-platform. You can develop on macOS, Windows, Linux, etc. It maintains the same (or better) efficiency as ROS2 implementations while being completely written in Python. We increase flexibility, ease of use, clarity, and reduce package size without compromising performance.

🎯 Static configuration over dynamic discovery: Unlike traditional ROS systems that rely on dynamic node discovery and runtime topic resolution, TinyROS deliberately enforces a static network configuration defined upfront. This design choice is a feature, not a bug. By requiring explicit declaration of all nodes, topics, and connections in a YAML configuration file, we achieve:

  • Clarity: The entire system topology is visible at a glance
  • Predictability: No surprises from nodes appearing or disappearing at runtime
  • Debugging: Easy to trace data flow and identify connection issues
  • Documentation: The network config serves as living documentation of your system
  • Reliability: Eliminates race conditions and discovery-related failures

We believe that for most robotics applications, the network topology is known at design time and changes infrequently. Embracing this reality leads to simpler, more robust systems.

🏗️ Projects Built with TinyROS

TinyROS has been used in the following robotics projects: FluidsControl

If you use TinyROS in your project, please open a PR to add it here 🤗.

🚀 Quick Start

For once, this is going to be painless 🤗.

Installation

With uv:

uv add tinyros

With pip:

pip install tinyros

For the installation from source or for development, please see our Contributing Guide.

Supported Platforms 💻

Linux macOS Windows
n/a (likely)

🔥 Examples

A full example is available in main.py.

🤝 Contributing

We welcome contributions! Please see our Contributing Guide for detailed information on:

  • Development workflow and branch management
  • Code style requirements and automated checks
  • Testing standards and coverage expectations
  • PR preparation and commit message conventions

📄 License

This project is licensed under the MIT License - see the LICENSE file for details.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

tinyros-0.2.2.tar.gz (7.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

tinyros-0.2.2-py3-none-any.whl (7.0 kB view details)

Uploaded Python 3

File details

Details for the file tinyros-0.2.2.tar.gz.

File metadata

  • Download URL: tinyros-0.2.2.tar.gz
  • Upload date:
  • Size: 7.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.9

File hashes

Hashes for tinyros-0.2.2.tar.gz
Algorithm Hash digest
SHA256 14d6e946eeb1238c8588c5ef430f05e02810e6d71a7bcf4635388b93cb1f4d77
MD5 1614e93d6e8186a1d6f351cba6f9eb01
BLAKE2b-256 f0a01dca5624f46d1841e4fddafda91025bf953c7392690bbea0f9a5edd9d585

See more details on using hashes here.

File details

Details for the file tinyros-0.2.2-py3-none-any.whl.

File metadata

  • Download URL: tinyros-0.2.2-py3-none-any.whl
  • Upload date:
  • Size: 7.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.9

File hashes

Hashes for tinyros-0.2.2-py3-none-any.whl
Algorithm Hash digest
SHA256 d234d21eb660f0234ed938436224442522ac5caab19adc1298abc9fb709caf89
MD5 54e47fb9be8849454d8d156429cc85b3
BLAKE2b-256 79d36a7ca1ee72dbef2b2bf432d0971ac81b1dc5f036ab32a6e6bb26f6505577

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page