85 lines
2.7 KiB
Markdown
85 lines
2.7 KiB
Markdown
# DonkeyCar RL Batch Automation and Setup Guide
|
|
|
|
## System Requirements
|
|
- Windows 10/11 machine (with DonkeyCar Unity Simulator installed)
|
|
- WSL2 with Ubuntu (Python 3.x installed)
|
|
- DonkeyCar Unity Simulator running in Windows, Remote Control enabled
|
|
|
|
---
|
|
|
|
## 1. **WSL (Linux) Setup**
|
|
|
|
### A. Install Python, pip, and core packages
|
|
```bash
|
|
sudo apt update && sudo apt install -y python3-pip git
|
|
pip3 install --upgrade pip
|
|
pip3 install stable-baselines3 gymnasium gym-donkeycar numpy matplotlib
|
|
# If pip install gym-donkeycar fails, use:
|
|
pip3 install git+https://github.com/tawnkramer/gym-donkeycar.git
|
|
```
|
|
|
|
### B. Place scripts
|
|
Copy these into `/home/paulh/.pi/agent/`:
|
|
- `donkeycar_sb3_runner.py`
|
|
- `manual_multiepisode_batch.sh` (and make executable)
|
|
- Any grid/outer loop script (`donkeycar_outer_loop.py`, as needed)
|
|
|
|
---
|
|
|
|
## 2. **Unity DonkeyCar Simulator Setup (Windows)**
|
|
- Download/install Unity DonkeyCar sim (from DonkeyCar/tawnkramer Github or releases page)
|
|
- Open simulator, select "Donkey Generated Track" and enable Remote (SocketAPI) mode
|
|
- Ensure port 9091 is listening (default); leave sim running and visible
|
|
|
|
---
|
|
|
|
## 3. **Running Robust Batches (Best Practice)**
|
|
|
|
### Clean multi-episode approach:
|
|
**Do NOT rapidly kill/restart agents.** Use scripts that:
|
|
- Open one connection, run multiple episodes using `env.reset()` in a loop
|
|
- Cleanly call `env.close()`
|
|
- Batch script launches process, waits a couple seconds, repeats
|
|
|
|
#### Sample batch script (`manual_multiepisode_batch.sh`):
|
|
```bash
|
|
#!/bin/bash
|
|
for i in {1..20}; do
|
|
echo "===== RUN $i ===== $(date)" | tee -a manual-multiepisode-batch.log
|
|
python3 donkeycar_sb3_runner.py >> manual-multiepisode-batch.log 2>&1
|
|
echo "===== END RUN $i ===== $(date)" | tee -a manual-multiepisode-batch.log
|
|
sleep 2
|
|
done
|
|
```
|
|
|
|
Make executable:
|
|
```bash
|
|
chmod +x manual_multiepisode_batch.sh
|
|
```
|
|
Run in background:
|
|
```bash
|
|
nohup ./manual_multiepisode_batch.sh &
|
|
```
|
|
|
|
---
|
|
|
|
## 4. **Debugging/Recovery**
|
|
- If sim blanks/hangs, first check for stuck agent processes: `ps aux | grep donkeycar_sb3_runner`
|
|
- Always allow scripts to call `env.close()`
|
|
- If hang persists: restart Unity DonkeyCar Sim in Windows
|
|
|
|
---
|
|
|
|
## 5. **Automation Flow Summary**
|
|
| Step | Where | Details |
|
|
|-------------|-----------|-------------------------------------------|
|
|
| Install | WSL/Linux | pip install ... |
|
|
| Prepare | WSL/Linux | Place scripts, ensure Python dependencies |
|
|
| Sim start | Windows | Start DonkeyCar Unity Sim |
|
|
| Run batch | WSL/Linux | nohup ./manual_multiepisode_batch.sh ... |
|
|
| Monitor | Both | Car resets, batch log grows, check hangs |
|
|
|
|
---
|
|
|
|
See included Python scripts for reusable RL runner and grid search outer loop logic.
|