-
Notifications
You must be signed in to change notification settings - Fork 17
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #2 from RoboCoachTechnologies/feature/ROS_index_RAG
Feature/ros index rag
- Loading branch information
Showing
19 changed files
with
300 additions
and
54 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 |
---|---|---|
|
@@ -15,61 +15,23 @@ 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 📦️ | ||
|
||
## Installation | ||
**New in v0.0.4:** | ||
ROScribe can now be used as your personal robotics consultant! | ||
|
||
- `pip install roscribe` | ||
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. | ||
|
||
- For development: | ||
- `git clone https://github.com/RoboCoachTechnologies/ROScribe.git` | ||
- `cd ROScribe` | ||
- `pip install -e .` | ||
## How to use | ||
|
||
## Usage | ||
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) | ||
|
||
Watch this demo to see how ROScribe works: | ||
- [ROScribe v0.0.2 demo: TurtleSim](https://www.youtube.com/watch?v=H2QaeelkReU) | ||
## Demos | ||
|
||
ROScribe uses OpenAI's `gpt-3.5-turbo-16k` as the default LLM. You can switch to other [supported models](https://python.langchain.com/docs/integrations/llms/) by LangChain; however you might have to get the API for each model or [run them locally](https://python.langchain.com/docs/integrations/llms/huggingface_pipelines). | ||
|
||
- Setup your OpenAI API key: `export OPENAI_API_KEY=[your api key]` | ||
|
||
**Run**: | ||
|
||
- Start ROScribe by typing `roscribe` in the terminal. | ||
|
||
![](docs/assets/start.gif) | ||
|
||
- Briefly describe the robot software you want to deploy. | ||
|
||
![](docs/assets/task_desc.gif) | ||
|
||
- ROScibe asks you high-level questions regarding your deployment. | ||
|
||
![](docs/assets/node_qa.gif) | ||
|
||
- Once ROScribe learns about your project, it shows you a list of ROS nodes and topics that are involved in your software. The subscriber/publisher relationship between the ROS nodes can be visualized similar to RQT graph. | ||
|
||
![](docs/assets/node_topic_viz.gif) | ||
|
||
- Moreover, you can edit (i.e. add/remove) the list of ROS nodes and topics based on your preference. | ||
|
||
![](docs/assets/mod_node_topic.gif) | ||
|
||
- After you finalize the node list, ROScribe will start identifying the specifications of each ROS node through a Q&A process. This is the most important step since the final implementation would be highly influenced by this conversation. | ||
|
||
![](docs/assets/spec_qa.gif) | ||
|
||
- The code for each node is generated when ROScribe finds all the implementation details. Additionally, ROS launch file and installation scripts (package.xml and CMakeLists.txt) are created according to the project requirements. For Python ROS nodes, don't forget to allow executing your nodes as programs via `chmod +x ros_node.py`. | ||
|
||
![](docs/assets/code_gen.gif) | ||
|
||
- After ROScribe finishes code generation, you can install your ROS package by using `catkin`. After installation, source your workspace in order to link to your ROS packages. | ||
|
||
![](docs/assets/install.gif) | ||
|
||
- You can launch your ROS package by using `roslaunch` command and calling the generated launch file. | ||
|
||
![](docs/assets/launch.gif) | ||
- [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 | ||
|
||
|
@@ -87,8 +49,6 @@ As an open-source project, we encourage all robotics enthusiasts to contribute t | |
|
||
[Video recording of UCSD ROS workshop presentation Oct. 27, 2023](https://www.youtube.com/watch?v=CPHleR-3Wko) | ||
|
||
|
||
|
||
## Contact | ||
|
||
For business inquiries, such as consulting or contracting jobs, please contact [email protected]. | ||
|
Oops, something went wrong.