rosgpt  by aniskoubaa

ChatGPT interface for ROS2 enables human-robot interaction

created 2 years ago
428 stars

Top 70.3% on sourcepulse

GitHubView on GitHub
Project Summary

ROSGPT bridges the gap between human language and robot control by integrating ChatGPT with the Robot Operating System (ROS). It allows users to convert natural language commands into structured JSON commands executable by robots like Turtlesim and Turtlebot3, enhancing human-robot interaction.

How It Works

The core of ROSGPT is a ROS2 node (rosgpt.py) that functions as a REST server. It accepts natural language text via POST requests, translates it into JSON commands using an ontology-based prompt sent to ChatGPT, and publishes the JSON to the /voice_cmd topic. Specialized parser nodes (rosgptparser_turtlesim.py, rosgptparser_tb3_nav.py) subscribe to this topic, interpret the JSON, and translate it into specific ROS2 primitives or navigation goals for the target robot.

Quick Start & Requirements

  • Install/Run: Clone the repo, set OPENAI_API_KEY in .bashrc, install dependencies (pip3 install -r requirements.txt), build (colcon build --packages-select rosgpt), and source (source install/setup.bash).
  • Prerequisites: ROS 2 Humble (tested on Ubuntu 22.04), Python 3.x, OpenAI API Key, libespeak1, turtlesim ROS package. Downgrading setuptools to 58.0.2 is required for ROS 2 Humble.
  • Demo: Video demonstration available.
  • Docs: Preprint Paper, Software: Practice and Experience Paper

Highlighted Details

  • Converts natural language to structured JSON commands for robot control.
  • Supports Turtlesim and Turtlebot3 navigation tasks.
  • Includes client scripts for direct REST API interaction and ROS2 node interaction.
  • Evaluation folder provides scripts and results for assessing LLM performance on robot command generation across various use cases and models.

Maintenance & Community

  • Project is under active development. Contributions are welcome via pull requests.
  • Issues can be raised on the GitHub issue tracker.

Licensing & Compatibility

  • Licensed under Creative Commons Attribution-NonCommercial 4.0 International License (CC BY-NC 4.0).
  • Non-commercial use only. Attribution required.
  • ROS1 support is a work-in-progress, requiring manual code modification.

Limitations & Caveats

The project is primarily tested with ROS 2 Humble on Ubuntu 22.04, with stated compatibility for ROS 2 Foxy. ROS1 support requires manual code adaptation and is not fully implemented. The license restricts commercial use.

Health Check
Last commit

3 months ago

Responsiveness

Inactive

Pull Requests (30d)
0
Issues (30d)
0
Star History
28 stars in the last 90 days

Explore Similar Projects

Feedback? Help us improve.