CARLA Driving Simulator Client
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
- Clone the repository:
git clone https://github.com/AkshayChikhalkar/carla-driving-simulator-client.git
cd carla-driving-simulator-client
- Install in development mode:
pip install -e .
- 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
- Start the CARLA server:
./CarlaUE4.sh -carla-rpc-port=2000
- 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
- Fork the repository
- Create your feature branch:
git checkout -b feature/amazing-feature
- Commit your changes:
git commit -m 'Add some amazing feature'
- Push to the branch:
git push origin feature/amazing-feature
- 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
- Versioning Strategy - How automatic versioning works
- Environment Configuration - Environment variables and configuration
- Support Guide - Getting help and support
- Security Policy - Reporting security issues
- Contributing Guidelines - How to contribute to the project #test for ci-test
Configuration
Metadata
Release files for carla-driving-simulator-client 2.0.39
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| carla_driving_simulator_client-2.0.39.tar.gz | 124.1 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| carla_driving_simulator_client-2.0.39-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 270.0 kB
Release files / carla_driving_simulator_client-2.0.39.tar.gz
| Download URL | carla_driving_simulator_client-2.0.39.tar.gz |
|---|---|
| Size | 124.1 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
4c45f7b7c50275c209b5447a6053d5f59e005a30484645ebcc66e8f001ac8dbd
|
|
BLAKE2b-256 checksum How to use checksums |
dbd0e3ffbdc70c5ecd55124b388c9e8bdd036f38536e9be1d7570576d2218ee5
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.11.13
|
Release files / carla_driving_simulator_client-2.0.39-py3-none-any.whl
| Download URL | carla_driving_simulator_client-2.0.39-py3-none-any.whl |
|---|---|
| Size | 146.0 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
83a11c8bb52dddbc93c712b954f876951d4c8b6a6e3ada20a1d0d4df88910b59
|
|
BLAKE2b-256 checksum How to use checksums |
a53b527a4c7f54ed7b961cdd9d589f771668e637ed081ce8fc9bfc1750ebd1ff
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.11.13
|
Security for carla-driving-simulator-client 2.0.39
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.