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)
3. Launch the Docker container using docker-compose:
```bash
docker-compose up -d
```
## 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.
- **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.]