Skip to main content

A comprehensive CARLA client for autonomous driving simulation

Project description

CARLA Driving Simulator Client

CI/CD Pipeline Tests Codecov Documentation Status License Python 3.11 Code style: black PyPI version Docker Hub GitHub release GitHub issues GitHub pull requests GitHub last commit GitHub repo size

A personal project for experimenting with CARLA client, featuring vehicle control, sensor management, and visualization capabilities.

Features

  • Realistic vehicle physics and control
  • Multiple sensor types (Camera, GNSS, Collision, Lane Invasion)
  • Dynamic weather system
  • Traffic and pedestrian simulation
  • Real-time visualization with HUD and minimap
  • Comprehensive logging and data collection
  • Support for both manual and autopilot modes
  • Configurable simulation parameters
  • Automatic versioning and CI/CD pipeline
  • Docker support with zero-configuration setup
  • Web-based frontend and backend API

Requirements

  • Python 3.11
  • CARLA Simulator 0.10.0
  • Pygame
  • NumPy
  • Matplotlib
  • Tabulate
  • PyYAML
  • SQLAlchemy
  • PostgreSQL (optional)

Installation

From Docker (Recommended)

# Pull the latest image
docker pull akshaychikhalkar/carla-driving-simulator-client:latest

# Run with Docker (frontend served by backend on port 8081)
docker run -p 8081:8000 akshaychikhalkar/carla-driving-simulator-client:latest

# Or use Docker Compose (recommended)
git clone https://github.com/AkshayChikhalkar/carla-driving-simulator-client.git
cd carla-driving-simulator-client
docker-compose -f docker-compose-prod.yml up -d

From PyPI

pip install carla-driving-simulator-client

From Source

  1. Clone the repository:
git clone https://github.com/AkshayChikhalkar/carla-driving-simulator-client.git
cd carla-driving-simulator-client
  1. Install in development mode:
pip install -e .
  1. Install CARLA:
  • Download CARLA 0.10.0 from CARLA's website
  • Extract the package and set the CARLA_ROOT environment variable
  • Add CARLA Python API to your PYTHONPATH:
# For Windows
set PYTHONPATH=%PYTHONPATH%;C:\path\to\carla\PythonAPI\carla\dist\carla-0.10.0-py3.11-win-amd64.egg

# For Linux
export PYTHONPATH=$PYTHONPATH:/path/to/carla/PythonAPI/carla/dist/carla-0.10.0-py3.11-linux-x86_64.egg

Usage

  1. Start the CARLA server:
./CarlaUE4.sh -carla-rpc-port=2000
  1. Run the simulator client:
# If installed from PyPI
carla-simulator-client

# If installed from source
python -m carla_simulator.cli

Configuration

The simulator client can be configured through the config/simulation_config.yaml file. Key parameters include:

  • Target distance
  • Maximum speed
  • Simulation duration
  • Vehicle model
  • Sensor settings
  • Weather conditions

Project Structure

carla-driving-simulator-client/
├── carla_simulator/
│   ├── core/
│   ├── visualization/
│   ├── control/
│   ├── scenarios/
│   ├── database/
│   ├── utils/
│   └── cli.py
├── web/
├── tests/
├── config/
├── docs/
├── requirements/
└── README.md

Testing

This project includes comprehensive testing for both backend (Python) and frontend (React) components.

Backend Testing

# Run all Python tests
pytest tests/ --cov=carla_simulator --cov=web --cov-branch

# Run specific test modules
pytest tests/test_core.py
pytest tests/test_scenarios.py

Frontend Testing

# Navigate to frontend directory
cd web/frontend

# Install dependencies
npm install

# Run tests in watch mode (development)
npm test

# Run tests in CI mode (no watch, with coverage)
npm run test:ci

CI/CD Pipeline

The project uses GitHub Actions for automated testing:

  • Backend Tests: Python tests with pytest and coverage reporting
  • Frontend Tests: React tests with Jest and coverage reporting
  • Docker Tests: Build and runtime validation of Docker containers
  • Integration Tests: End-to-end testing of the complete system

All tests must pass before code can be merged to the main branch.

Contributing

  1. Fork the repository
  2. Create your feature branch:
git checkout -b feature/amazing-feature
  1. Commit your changes:
git commit -m 'Add some amazing feature'
  1. Push to the branch:
git push origin feature/amazing-feature
  1. Open a Pull Request

Important: Please ensure all tests pass before submitting a pull request. The CI/CD pipeline will automatically run both backend and frontend tests.

Note: I cannot guarantee response times or implementation of suggested features as this project is maintained in my free time.

Support

If you need help, please check our Support Guide for various ways to get assistance.

Security

Please report any security issues to our Security Policy.

License

This project is licensed under the MIT License - see the LICENSE file for details.

Acknowledgments

  • CARLA Simulator Team
  • TH OWL for initial development

Roadmap

Check our Roadmap for planned features and improvements.

Documentation

Configuration

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

carla_driving_simulator_client-2.0.36.tar.gz (123.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

carla_driving_simulator_client-2.0.36-py3-none-any.whl (145.6 kB view details)

Uploaded Python 3

File details

Details for the file carla_driving_simulator_client-2.0.36.tar.gz.

File metadata

File hashes

Hashes for carla_driving_simulator_client-2.0.36.tar.gz
Algorithm Hash digest
SHA256 9e1fee20ab9d3434c73539fdc9e1a697aa0240118ef97b7abc10c2867c1ce073
MD5 a2be4e398b99750e70c1eeb70c4659f3
BLAKE2b-256 b8b8aa6522cec74ef4d5c8ac7c3051ff5776ae394ea76aaa47b9999cde6f80b2

See more details on using hashes here.

File details

Details for the file carla_driving_simulator_client-2.0.36-py3-none-any.whl.

File metadata

File hashes

Hashes for carla_driving_simulator_client-2.0.36-py3-none-any.whl
Algorithm Hash digest
SHA256 ca1a36b9b638aa762d0fcb1679247c469561ca82a16d46831de01b56180129e7
MD5 e15b2a4e689790b27b11d9f04cf0b8ea
BLAKE2b-256 4dc0b81931cdbf3b132044bb074f751de63c3c770f8f55f9b8303bf6ad33ff2c

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page