Skip to content

Commit

Permalink
v0.1.0
Browse files Browse the repository at this point in the history
  • Loading branch information
RoboCoachian committed Apr 22, 2024
1 parent 4df5c8f commit eab0d0d
Show file tree
Hide file tree
Showing 39 changed files with 1,693 additions and 1,153 deletions.
41 changes: 18 additions & 23 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -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

Expand All @@ -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.
Loading

0 comments on commit eab0d0d

Please sign in to comment.