OpenDrive 1.0.0
OpenDrive Framework allows developers to work on detection, perception, and decision-making components, facilitating the creation of custom autonomous systems.
Requires Python: >=3.11

# ![Logo](https://github.com/user-attachments/assets/248fb770-2ac3-4d69-975b-3af1f2aa148a)

# OpenDrive Framework

**OpenDrive Framework** is an open-source project designed to accelerate the development of autonomous driving systems.

It provides a modular structure and the necessary tools to create a complete development environment for autonomous vehicles. OpenDrive Framework allows developers to work on detection, perception, and decision-making components, facilitating the creation of custom autonomous systems.

## Objective

The goal of **OpenDrive Framework** is to simplify the development of autonomous driving systems by providing well-defined, ready-to-use components while maintaining the flexibility to customize or replace modules as needed. This project is designed to be accessible to developers who wish to experiment and contribute new features, bug fixes, and improvements.

## Project Structure

The framework is divided into three main modules, each designed to fulfill specific functions within an autonomous system:

- **Sensor Module**: Captures and processes real-time data from cameras and other sensors. Currently, it supports data acquisition through cameras.
- **Perception Module**: Uses pre-trained AI models to analyze data captured by the sensors, performing tasks such as object detection, lane recognition, and traffic sign detection.
- **Decision-Making Module**: Based on the results provided by the perception module, this module defines the actions or warnings that the vehicle should take.

## Principles

**OpenDrive Framework** is guided by the following principles, aimed at maintaining a modular, flexible, and developer-friendly system:

- **Modularity**: Each module has well-defined functions and APIs, allowing them to work together seamlessly. Developers can contribute to or modify modules without affecting the rest of the system.
- **Interchangeable Architecture**: Although OpenDrive Framework provides the necessary components to build a complete autonomous system, its modular architecture allows developers to replace components with their own implementations.
- **Developer-focused**: The framework is designed to be functional and useful for building powerful tools. The documentation and user experience are aimed at developers, making integration and extension easier.

## Contributions

OpenDrive Framework is an open project, welcoming contributions from the community. Whether you want to add new features, improve performance, or fix bugs, all contributions are welcome. To get started, check out the [Contribution Guide](CONTRIBUTING.md) and follow the established development standards.

## Installation via GitHub

To install the framework, follow these steps:
1. Clone the repository: `git clone https://github.com/your_username/opendrive-framework.git`
2. Navigate to the project root
3. Install the dependencies: `pip install -r requirements.txt`

## Installation via PyPI

To install the framework via PyPI follow the next steps:
1. Open a new terminal
2. Type `pip install OpenDrive`
3. Check more info here: https://pypi.org/project/OpenDrive/


## Usage guide - Documentation

The usage guide for this framework is available at the following link:  
[OpenDrive Documentation](https://opendrivedevelopment.github.io/OpenDrive-Documentation/)