add readme
A beautiful interface to robotics.
Robot Operating System (ROS(2)) has become the de facto standard for entry-level robots in universities and companies. The researchers who contribute to it have produced many programs and libraries capable of performing small tasks in complex robotic systems. Unfortunately, through a lack of focus and effort, the public ROS ecosystem has been allowed to deteriorate. Tutorials remain outdated, visualization and introspection tools remain slow and segfault-ey, ABI-breaking changes are introduced needlessly, and the one chance to fix it all was blown on a multi-year escapade into ivory-tower architecture and DDS vendor marketing fluff, without any feedback from real users of real robotic systems.
However, we must not remain stuck in this nightmarish past. There are new robots to build, new generations of roboticists to train, and new scales of problems we will have to tackle with our automated systems. To overcome contemporary challenges and prepare ourselves for the future, the critical infrastructure that lies at the heart of our profession must be repaired and maintained:
Interfaces and visualization utilities must be redesigned and rewritten for usability.
Simplicity, reliability, and performance must be introduced into core programs and libraries.
Accessibility to the tools used for building ROS systems must be improved by removing complex dependencies.
ROSE is an attempt to create beautiful, human-friendly interfaces to the world of ROS and robotic systems.
There are several things to complete in order to create a robotic ecosystem that is truly usable by all humans.
Simplicity is a prerequisite for reliability. - Edsger W. Dijkstra
Try to not pull in massive libraries. Use good, reliable libraries that run the instructions you want without introducing a bunch of incidental complexity. Also, try to use libraries that compile very quickly.
Systems are asynchronous, distributed, and event-driven in nature, and this should be reflected inherently in the language used to define them and the tools used to build them. - Margaret Hamilton
This project aims at making robotics accessible for new generations of roboticists. To accomplish this, we need performance, some level of reliability, and ease of use.
ROSE should use the following languages for these purposes:
Audience: 👨👩👧👦This is a fun project meant to bring sophisticated robotics capabilities to beginners and researchers that need to get things done fast and need their tools to just work. This effort is part of a plan to use ROS on high-speed humanoid robotic systems.
Reliability: 🪨This project is solidly aimed at highly experimental research and robotics applications which are so complicated that the added effort of formal methods would prevent success in the first place. However, the simplicity of the software used in this project is paramount to enable such applications - and that simplicity does deliver some increased level of reliability. This project also intends to implement several tools to enhance some notions of reliability (tools like process monitoring and priority setting, system resource monitoring, and creation of fallback behaviors), but a full regeneration of the functionality of ROS in some combination of a robotics DSL and SPARK would be the best for final implementations.
Practicality: 🛠️ This is indeed a large project, but it is made possible given recent advances in software development. Namely, generative machine learning models, mob programming techniques, and an embrace of simplicity will enable a small group consisting of many beginners to make significant progress on this project in under a year.
License: ⚖️ The software of this project is licensed under the Unlicense since it provides the most accessibility to future generations of roboticists.
Funding: 💵 Saving the world from human centuries of wasted effort is a surprisingly unlucrative task. If you wish to support our noble and valiant cause, consider donating to the Roadrunner Dynamics or IEEE Robotics and Automation Society student organizations at UTSA.