-
Notifications
You must be signed in to change notification settings - Fork 16
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
4df5c8f
commit eab0d0d
Showing
39 changed files
with
1,693 additions
and
1,153 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -4,42 +4,36 @@ | |
|
||
Using a natural language interface to describe robotic projects, ROScribe eliminates the skill barrier of using ROS for beginners, and saves time and hassle for skilled engineers. ROScribe combines the sheer power and flexibility of large language models (LLMs) with prompt tuning techniques to capture the details of your robotic design and to automatically create an entire ROS package for your project. | ||
|
||
Inspired by [GPT Synthesizer](https://github.com/RoboCoachTechnologies/GPT-Synthesizer), ROScribe builds an entire ROS package through a series of specification steps that identify the package elements in a top-down approach. In particular, ROScribe helps you with the following steps: | ||
ROScribe builds an entire ROS workspace via an agentic multi-step approach, where each step focuses on one specific aspect of robot software design. In particular, ROScribe helps you with the following steps: | ||
|
||
1. Creating a list of ROS nodes and topics, based on your application and deployment (e.g. simulation vs. real-world) | ||
2. Visualizing your project in an RQT-style graph | ||
3. Generating code for each ROS node | ||
4. Writing launch file and installation scripts | ||
1. Identify and visualize a list of ROS nodes and topics, based on the application and deployment (e.g. simulation vs. real-world) | ||
2. Generate code or pull from open-source repositories for each ROS node. | ||
3. Integrate the code base over the generated and open-source assets. | ||
4. User support throughout the life-cycle of the project. | ||
|
||
If you are new to ROS, ROScribe will be your robot(ics) mentor 🤖️ | ||
|
||
If you are a seasoned ROS user, ROScribe can help with creating a blueprint for your ROS package 📦️ | ||
|
||
**New in v0.0.4:** | ||
ROScribe can now be used as your personal robotics consultant! | ||
## How to use | ||
|
||
A vector database of all open-source ROS repositories available on [ROS Index](https://index.ros.org/) is built, and using retrieval augmented generation (RAG), ROScribe can answer every question regarding relevant ROS packages for your project. Chekout [this wiki](https://github.com/RoboCoachTechnologies/ROScribe/wiki/3.-Explore-ROS-Repositories-with-RAG) for more information. | ||
ROScribe is composed of 4 agents. The list below details the responsibilities of each agent, shown in the order of interaction: | ||
1. `SpecAgent`: Helps with the overall skeleton of your project. In ROS terms, it builds the ROS graph of your project, where each part of the graph can be either AI-generated or pulled from an open-source reository. | ||
2. `GenAgent`: Given the ROS graph, this agent generates the ROS workspace and the code for each ROS node in python. Alternatively, it can download an open-source implementation for the ROS node. | ||
3. `PackAgent`: With the knowledge of the generated ROS workspace, this agent creates a ROS launch file that brings up the ROS nodes. Furthermore, `package.xml`, `CMakeLists.txt`, and `README.md` files are generated by this agent. | ||
4. `SupportAgent`: This is your customer support agent, which can help you whenever you encountered an error during running your project. The agent already has access to the layout of the project, and can internally read the generated files. | ||
|
||
## How to use | ||
The following figure illustrates the architecture of ROScribe: | ||
![](https://github.com/RoboCoachTechnologies/ROScribe/blob/master/docs/roscribe_arch.png) | ||
|
||
Please see our wiki page to learn how to install and use ROScribe in your robotics projects: | ||
* [Installation](https://github.com/RoboCoachTechnologies/ROScribe/wiki/1.-Installation) | ||
* [ROS Package Generation using ROScribe](https://github.com/RoboCoachTechnologies/ROScribe/wiki/2.-ROS-Package-Generation) | ||
* [Explore Open-source Robotics Repositories using ROScribe-RAG](https://github.com/RoboCoachTechnologies/ROScribe/wiki/3.-Explore-ROS-Repositories-with-RAG) | ||
* [Create Your Own ROS Index Database](https://github.com/RoboCoachTechnologies/ROScribe/wiki/4.-Create-Your-Own-ROS-Index-Database) | ||
* [Running ROScribe](https://github.com/RoboCoachTechnologies/ROScribe/wiki/2.-Running-ROScribe) | ||
* [Create Your Own ROS Index Database](https://github.com/RoboCoachTechnologies/ROScribe/wiki/3.-Create-Your-Own-ROS-Index-Database) | ||
|
||
## Demos | ||
|
||
- [TurtleSim Code Generation with ROScribe](https://www.youtube.com/watch?v=H2QaeelkReU) | ||
- [ROScribe-RAG Demo](https://www.youtube.com/watch?v=3b5FyZvlkxI&list=PLN8Hz7F2GjIkiYVForVuyvNs17sggQYOt&index=3) | ||
|
||
## Roadmap | ||
|
||
Currently, ROScribe supports both ROS1 and ROS2 with Python code generation. We aim to add the following features in the coming releases: | ||
- C++ code generation | ||
- ROS1 to ROS2 automated codebase migration | ||
|
||
As an open-source project, we encourage all robotics enthusiasts to contribute to ROScribe. During each release, we will announce the list of new contributors. | ||
- [LiDAR Simultaneous Localization and Mapping (SLAM)](https://www.youtube.com/watch?v=xxx) | ||
|
||
## Additional documentations & articles | ||
|
||
|
@@ -51,5 +45,6 @@ As an open-source project, we encourage all robotics enthusiasts to contribute t | |
|
||
## Contact | ||
|
||
For business inquiries, such as consulting or contracting jobs, please contact [email protected]. | ||
For business inquiries, such as consulting or contracting jobs, please contact [email protected]. | ||
|
||
As an open-source project, we encourage all robotics enthusiasts to contribute to ROScribe. During each release, we will announce the list of new contributors. |
Oops, something went wrong.