InteractiveRobotLearning/README.md
2024-02-29 14:37:36 +01:00

4.2 KiB

Interactive Robot Learning Framework

Welcome to the Interactive Robot Learning Framework, a modular and extensible system designed for robotics research and development. This framework utilizes Docker and ROS2 to provide a flexible and isolated environment for experimenting with robot learning algorithms, interaction metrics, objective functions, representation models, benchmark environments, and communication messages.

Getting Started

This section will guide you through the process of setting up the Docker container for the framework. [Final startup instructions will be provided by the user.]

Prerequisites

  • Docker
  • ROS2 Foxy Fitzroy (or your target ROS2 distribution)

Installation

  1. Clone the repository:
git clone [repository-url]
cd [repository-name]
  1. Build the Docker container:
docker build -t interactive-robot-learning-framework .
  1. Launch the Docker container using docker-compose:
docker-compose up -d

Setting up Pycharm Environment

Add a new Remote Interpreter based on the docker-compose file. Then add the following paths to the interpreter paths. You can find them when clicking on the Interpreter in the lower right corner of the Pycharm window. Then select "Interpreter Settings" within the setting go to "Show All..." Python interpreters (its in the list of the Python Interpreters). Subsequently, you can add with the "+" a new interpreter, choose "Docker Compose" and select the "docker-compose.yaml" file from this repository. The last step is to add the ros2 paths within your docker container to the interpreter paths (its one of the buttons next to the "+".

The following paths are necessary to develop in the docker container otherwise python cannot find rclpy and the custom msg packages:

/opt/ros/humble/local/lib/python3.10/dist-packages

/opt/ros/humble/lib/python3.10/site-packages

/ros2_ws/install/interaction_msgs/local/lib/python3.10/dist-packages

If there is a

Framework Structure

The Interactive Robot Learning Framework consists of several key ROS2 packages, each responsible for different aspects of robot learning and interaction. Below is an overview of each package:

Optimizer ROS2 Package

  • Description: Contains various optimization algorithms designed to fine-tune robot learning parameters.
  • Key Components: Gradient descent, genetic algorithms, simulated annealing, etc.

InteractionQuery Package

  • Description: Implements metrics to quantify and analyze user interactions with the optimizer, facilitating adaptive learning processes.
  • Key Components: Engagement level, feedback quality, interaction frequency, etc.

ObjectiveFunctions Package

  • Description: Houses the objective functions used by optimizers to evaluate the performance of robot learning tasks.
  • Key Components: Loss functions, reward functions, etc.

RepresentationModel Package

  • Description: Provides models for representing robot trajectories in a manner conducive to learning and optimization.
  • Key Components: Graphical models, neural networks, geometric representations, etc.

Benchmark Package

  • Description: Includes various reinforcement learning (RL) benchmark environments for testing and evaluating learning algorithms.
  • Key Components: Simulated robotics tasks, navigation challenges, manipulation tasks, etc.

InteractionMsgs Package

  • Description: Contains all necessary ROS2 messages, services, and actions for facilitating communication within the framework.
  • Key Components: Custom message definitions, service calls for optimizer control, action definitions for task execution, etc.

Starting Up

[This section will be completed by the user, detailing the steps to initialize the framework and begin experiments.]

Contributing

We welcome contributions to the Interactive Robot Learning Framework! Please read our contributing guidelines for more information on how to participate in the development.

License

[Specify the license under which the framework is released, e.g., MIT, GPL, Apache.]

Acknowledgments

[Optional: Acknowledge any contributions, inspirations, or frameworks that assisted in the development of this project.]