Browse Source
docs: initialize replication guide and environment configuration
docs: initialize replication guide and environment configuration
Summary: Added comprehensive documentation and environment setup files to ensure seamless project replication on different machines. This includes a centralized README.md and standardized dependency manifests for both pip and conda. Changes: - Created README.md: A complete source of truth for the Fox CARLA ADAS Simulation project, covering prerequisites, multi-stage pipeline architecture, and detailed installation steps. - Created requirements.txt: A curated list of project dependencies (PyTorch, Flask, MCAP, OpenCV, etc.) extracted from the active carla312 environment. - Created environment.yml: A Conda environment specification file for one-command environment replication including Python 3.12 and the necessary scientific stack. - Added Troubleshooting section to README covering GPU Idle Mode, stop.flag detection, and CARLA coordinate system conventions. Technical Note: The setup instructions explicitly detail the manual installation of the CARLA 0.9.16 .whl file, as it is a local dependency relative to the project root within the CARLA PythonAPI directory.main
4 changed files with 276 additions and 0 deletions
@ -0,0 +1,110 @@ |
|||||
|
# 🦊 Fox CARLA ADAS Simulation Project |
||||
|
|
||||
|
A modular, scenario-driven simulation framework built on **CARLA 0.9.16** for demonstrating structured ADAS driving scenarios with multi-modal sensor data and physics-based radar synthesis. |
||||
|
|
||||
|
--- |
||||
|
|
||||
|
## 🚀 1. Prerequisites |
||||
|
|
||||
|
Before setting up the project, ensure you have the following installed: |
||||
|
|
||||
|
* **Operating System**: Windows 10/11 (Required for CARLA 0.9.16 and Shenron synthesis). |
||||
|
* **CARLA Simulator**: Version **0.9.16** (Must be installed and reachable). |
||||
|
* **Miniconda/Anaconda**: For environment management. |
||||
|
* **NVIDIA GPU**: Required for high-fidelity radar synthesis and CARLA rendering. |
||||
|
|
||||
|
--- |
||||
|
|
||||
|
## 🛠️ 2. Environment Setup |
||||
|
|
||||
|
### 1. Clone the Repository |
||||
|
Clone this repository into your CARLA PythonAPI folder: |
||||
|
```powershell |
||||
|
cd C:\Path\To\CARLA_0.9.16\PythonAPI |
||||
|
git clone <repository_url> Fox |
||||
|
cd Fox |
||||
|
``` |
||||
|
|
||||
|
### 2. Create Conda Environment |
||||
|
We use Python **3.12** for compatibility with modern libraries and CARLA 0.9.16. |
||||
|
|
||||
|
**Option A: Using environment.yml (Recommended)** |
||||
|
```powershell |
||||
|
conda env create -f environment.yml |
||||
|
conda activate carla312 |
||||
|
``` |
||||
|
|
||||
|
**Option B: Manual Setup** |
||||
|
```powershell |
||||
|
conda create -n carla312 python=3.12 -y |
||||
|
conda activate carla312 |
||||
|
pip install -r requirements.txt |
||||
|
``` |
||||
|
|
||||
|
### 3. Install CARLA Python API |
||||
|
Regardless of the option above, you must install the CARLA 0.9.16 wheel: |
||||
|
```powershell |
||||
|
pip install ..\carla\dist\carla-0.9.16-cp312-cp312-win_amd64.whl |
||||
|
``` |
||||
|
|
||||
|
--- |
||||
|
|
||||
|
## 🖥️ 3. Usage & Execution |
||||
|
|
||||
|
### 🖱️ One-Click Dashboard (GUI) |
||||
|
The easiest way to run the orchestrator is via the Flask dashboard: |
||||
|
1. Launch **CARLA** (e.g., `CarlaUE4.exe`). |
||||
|
2. Double-click `dashboard.bat` in the project root. |
||||
|
3. Navigate to `http://127.0.0.1:5000` to manage scenarios and view telemetry. |
||||
|
|
||||
|
### ⌨️ Command Line Interface (CLI) |
||||
|
You can run scenarios directly via the `run.bat` wrapper: |
||||
|
|
||||
|
* **List Scenarios**: `.\run.bat --list-scenarios` |
||||
|
* **Run Scenario**: `.\run.bat braking --frames 300` |
||||
|
* **With Parameters**: `.\run.bat cutin --params "TARGET_SPEED=40,CUTIN_DIST=15"` |
||||
|
* **Skip Processing**: `.\run.bat showcase --skip-shenron --skip-mcap` |
||||
|
|
||||
|
--- |
||||
|
|
||||
|
## 🏗️ 4. Project Architecture |
||||
|
|
||||
|
* **`src/`**: Core logic including `PipelineManager`, `SensorManager`, and `Recorder`. |
||||
|
* **`scenarios/`**: Modular scenario implementations (e.g., `braking.py`, `cutin.py`). |
||||
|
* **`scripts/`**: Data conversion tools (MCAP) and the **Shenron** radar synthesis engine. |
||||
|
* **`dashboard/`**: Flask-based web interface for the orchestrator. |
||||
|
* **`intel/`**: Deep-dive documentation, project history (CHRONICLES.md), and versioned changelogs. |
||||
|
|
||||
|
--- |
||||
|
|
||||
|
## 🛰️ 5. The Data Pipeline |
||||
|
|
||||
|
The simulation follows a structured multi-stage pipeline: |
||||
|
1. **Simulation Stage**: Captures RGB, LiDAR, and raw Radar data from CARLA. |
||||
|
2. **Shenron Stage**: Synthesizes high-fidelity physics-based radar heatmaps. |
||||
|
3. **MCAP Stage**: Converts all data into a single `.mcap` file for **Foxglove** visualization. |
||||
|
4. **Video Stage**: Generates `.mp4` previews of the session. |
||||
|
|
||||
|
--- |
||||
|
|
||||
|
## 📂 6. Replication Checklist for New PC |
||||
|
|
||||
|
If you are moving this project to another machine: |
||||
|
1. [ ] Install **CARLA 0.9.16**. |
||||
|
2. [ ] Verify **CUDA** drivers are up to date for Shenron synthesis. |
||||
|
3. [ ] Create `carla312` environment and install `requirements.txt`. |
||||
|
4. [ ] Ensure `run.bat` and `dashboard.bat` point to the correct `activate.bat` path (default: `C:\ProgramData\miniconda3\Scripts\activate.bat`). |
||||
|
5. [ ] Run `cmd /c "run.bat showcase --frames 50"` to verify the full pipeline end-to-end. |
||||
|
|
||||
|
--- |
||||
|
|
||||
|
## 🛠️ 7. Troubleshooting & Tips |
||||
|
|
||||
|
* **GPU Idle Mode**: If the simulator feels "frozen," check if **Idle Mode** is enabled in the Dashboard. This throttles CARLA to ~0 FPS to save GPU for Shenron processing. |
||||
|
* **Stop Flag**: If the simulation won't start, check for a `tmp/stop.flag` file and delete it. |
||||
|
* **Environment Activation**: If `run.bat` fails to find `conda`, edit the script to point to your `activate.bat` location (usually in `C:\miniconda3\Scripts` or `C:\Users\<User>\miniconda3\Scripts`). |
||||
|
* **Coordinate Systems**: Remember that CARLA uses a left-handed coordinate system (LHS), while Foxglove/ROS2 use right-handed (RHS). The MCAP converter handles this conversion automatically. |
||||
|
|
||||
|
--- |
||||
|
|
||||
|
*Generated by Antigravity AI | Version 1.1 "Ares"* |
||||
@ -0,0 +1,39 @@ |
|||||
|
name: carla312 |
||||
|
channels: |
||||
|
- pytorch |
||||
|
- nvidia |
||||
|
- conda-forge |
||||
|
- defaults |
||||
|
dependencies: |
||||
|
- python=3.12 |
||||
|
- pip |
||||
|
- pip: |
||||
|
- numpy==2.4.3 |
||||
|
- opencv-python==4.13.0.92 |
||||
|
- scipy==1.17.1 |
||||
|
- pandas==3.0.2 |
||||
|
- pillow==12.1.1 |
||||
|
- tqdm==4.67.3 |
||||
|
- pygame==2.6.1 |
||||
|
- matplotlib==3.10.8 |
||||
|
- plotly==6.6.0 |
||||
|
- open3d==0.19.0 |
||||
|
- pyntcloud==0.3.1 |
||||
|
- Flask==3.1.3 |
||||
|
- Werkzeug==3.1.7 |
||||
|
- itsdangerous==2.2.0 |
||||
|
- Jinja2==3.1.6 |
||||
|
- click==8.3.1 |
||||
|
- blinker==1.9.0 |
||||
|
- torch==2.5.1 |
||||
|
- torchvision==0.20.1 |
||||
|
- torchaudio==2.5.1 |
||||
|
- PyYAML==6.0.3 |
||||
|
- mcap==1.3.1 |
||||
|
- mcap-ros2-support==0.5.7 |
||||
|
- lz4==4.4.5 |
||||
|
- zstandard==0.25.0 |
||||
|
- psutil==7.2.2 |
||||
|
- nvidia-ml-py==13.595.45 |
||||
|
- requests==2.33.1 |
||||
|
- certifi==2026.2.25 |
||||
@ -0,0 +1,40 @@ |
|||||
|
# Core Simulation & Data Processing |
||||
|
numpy==2.4.3 |
||||
|
opencv-python==4.13.0.92 |
||||
|
scipy==1.17.1 |
||||
|
pandas==3.0.2 |
||||
|
pillow==12.1.1 |
||||
|
tqdm==4.67.3 |
||||
|
pygame==2.6.1 |
||||
|
|
||||
|
# Visualization & Heatmaps |
||||
|
matplotlib==3.10.8 |
||||
|
plotly==6.6.0 |
||||
|
open3d==0.19.0 |
||||
|
pyntcloud==0.3.1 |
||||
|
|
||||
|
# Dashboards & GUI |
||||
|
Flask==3.1.3 |
||||
|
Werkzeug==3.1.7 |
||||
|
itsdangerous==2.2.0 |
||||
|
Jinja2==3.1.6 |
||||
|
click==8.3.1 |
||||
|
blinker==1.9.0 |
||||
|
|
||||
|
# Radar Synthesis (Shenron) |
||||
|
torch==2.5.1 |
||||
|
torchvision==0.20.1 |
||||
|
torchaudio==2.5.1 |
||||
|
PyYAML==6.0.3 |
||||
|
|
||||
|
# Foxglove & MCAP Serialization |
||||
|
mcap==1.3.1 |
||||
|
mcap-ros2-support==0.5.7 |
||||
|
lz4==4.4.5 |
||||
|
zstandard==0.25.0 |
||||
|
|
||||
|
# System Utilities |
||||
|
psutil==7.2.2 |
||||
|
nvidia-ml-py==13.595.45 |
||||
|
requests==2.33.1 |
||||
|
certifi==2026.2.25 |
||||
@ -0,0 +1,87 @@ |
|||||
|
asttokens==3.0.1 |
||||
|
attrs==26.1.0 |
||||
|
blinker==1.9.0 |
||||
|
carla @ file:///D:/CARLA/CARLA_0.9.16/PythonAPI/carla/dist/carla-0.9.16-cp312-cp312-win_amd64.whl#sha256=b4700a1cfff8a9bda1018a233b25045ce6e00a7b180b8bd0edea6366c3f7c9eb |
||||
|
certifi==2026.2.25 |
||||
|
charset-normalizer==3.4.6 |
||||
|
click==8.3.1 |
||||
|
colorama==0.4.6 |
||||
|
comm==0.2.3 |
||||
|
ConfigArgParse==1.7.5 |
||||
|
contourpy==1.3.3 |
||||
|
cycler==0.12.1 |
||||
|
dash==4.1.0 |
||||
|
decorator==5.2.1 |
||||
|
executing==2.2.1 |
||||
|
fastjsonschema==2.21.2 |
||||
|
filelock==3.25.2 |
||||
|
Flask==3.1.3 |
||||
|
fonttools==4.62.1 |
||||
|
fsspec==2026.3.0 |
||||
|
idna==3.11 |
||||
|
importlib_metadata==9.0.0 |
||||
|
ipython==9.12.0 |
||||
|
ipython_pygments_lexers==1.1.1 |
||||
|
ipywidgets==8.1.8 |
||||
|
itsdangerous==2.2.0 |
||||
|
jedi==0.19.2 |
||||
|
Jinja2==3.1.6 |
||||
|
jsonschema==4.26.0 |
||||
|
jsonschema-specifications==2025.9.1 |
||||
|
jupyter_core==5.9.1 |
||||
|
jupyterlab_widgets==3.0.16 |
||||
|
kiwisolver==1.5.0 |
||||
|
lz4==4.4.5 |
||||
|
MarkupSafe==3.0.3 |
||||
|
mat4py==0.6.0 |
||||
|
matplotlib==3.10.8 |
||||
|
matplotlib-inline==0.2.1 |
||||
|
mcap==1.3.1 |
||||
|
mcap-ros2-support==0.5.7 |
||||
|
mpmath==1.3.0 |
||||
|
narwhals==2.18.1 |
||||
|
nbformat==5.10.4 |
||||
|
nest-asyncio==1.6.0 |
||||
|
networkx==3.6.1 |
||||
|
numpy==2.4.3 |
||||
|
nvidia-ml-py==13.595.45 |
||||
|
open3d==0.19.0 |
||||
|
opencv-python==4.13.0.92 |
||||
|
packaging @ file:///C:/miniconda3/conda-bld/packaging_1761049137378/work |
||||
|
pandas==3.0.2 |
||||
|
parso==0.8.6 |
||||
|
pillow==12.1.1 |
||||
|
platformdirs==4.9.4 |
||||
|
plotly==6.6.0 |
||||
|
prompt_toolkit==3.0.52 |
||||
|
psutil==7.2.2 |
||||
|
pure_eval==0.2.3 |
||||
|
pygame==2.6.1 |
||||
|
Pygments==2.20.0 |
||||
|
pyntcloud==0.3.1 |
||||
|
pyparsing==3.3.2 |
||||
|
python-dateutil==2.9.0.post0 |
||||
|
PyYAML==6.0.3 |
||||
|
referencing==0.37.0 |
||||
|
requests==2.33.1 |
||||
|
retrying==1.4.2 |
||||
|
rpds-py==0.30.0 |
||||
|
scipy==1.17.1 |
||||
|
setuptools==80.10.2 |
||||
|
six==1.17.0 |
||||
|
stack-data==0.6.3 |
||||
|
sympy==1.13.1 |
||||
|
torch==2.5.1+cu121 |
||||
|
torchaudio==2.5.1+cu121 |
||||
|
torchvision==0.20.1+cu121 |
||||
|
tqdm==4.67.3 |
||||
|
traitlets==5.14.3 |
||||
|
typing_extensions==4.15.0 |
||||
|
tzdata==2025.3 |
||||
|
urllib3==2.6.3 |
||||
|
wcwidth==0.6.0 |
||||
|
Werkzeug==3.1.7 |
||||
|
wheel==0.46.3 |
||||
|
widgetsnbextension==4.0.15 |
||||
|
zipp==3.23.0 |
||||
|
zstandard==0.25.0 |
||||
Write
Preview
Loading…
Cancel
Save
Reference in new issue