Code reorganization and Drone Logic Update

This commit is contained in:
2026-01-05 02:38:46 +00:00
parent c5b208c91a
commit 27a70c4983
32 changed files with 1018 additions and 812 deletions

View File

@@ -1,30 +1,8 @@
# Drone Landing Simulation (GPS-Denied)
# GPS-Denied Drone Landing Simulation
Land a drone on a moving platform using only relative sensors.
ArduPilot + ROS 2 + Gazebo (ARG) simulation for landing on a moving platform.
## Quick Start
### Standalone (1 Terminal)
```bash
source activate.sh
python standalone_simulation.py --pattern circular
```
### Gazebo + ROS 2 (2 Terminals)
**Terminal 1:**
```bash
ros2 launch gazebo/launch/drone_landing.launch.py
```
**Terminal 2:**
```bash
source activate.sh
python run_gazebo.py --pattern circular
```
### ArduPilot GPS-Denied (2 Terminals)
## Quick Start (2 Terminals)
**Terminal 1 - Gazebo:**
```bash
@@ -36,38 +14,53 @@ python run_gazebo.py --pattern circular
./scripts/run_ardupilot_controller.sh
```
## World Options
```bash
./scripts/run_ardupilot_sim.sh runway # Default
./scripts/run_ardupilot_sim.sh warehouse # Indoor
./scripts/run_ardupilot_sim.sh custom # Custom landing pad
./scripts/run_ardupilot_sim.sh my_world # gazebo/worlds/my_world.sdf
```
## Installation
```bash
./setup/install_ubuntu.sh
./setup/install_ardupilot.sh # Optional for ArduPilot
source activate.sh
./setup/install_ardupilot.sh
source ~/.bashrc
```
## Files
## Project Structure
| File | Description |
|------|-------------|
| `drone_controller.py` | **Your landing algorithm (used everywhere)** |
| `standalone_simulation.py` | PyBullet simulation |
| `run_gazebo.py` | Gazebo + ROS 2 interface |
| `run_ardupilot.py` | ArduPilot + MAVLink interface |
| `config.py` | Configuration settings |
| `camera_viewer.py` | Camera feed window |
```
simulation/
├── config.py
├── src/
│ └── drone_controller.py # Your algorithm
├── scripts/
│ ├── run_ardupilot_sim.sh
│ └── run_ardupilot_controller.sh
├── gazebo/
│ ├── worlds/ # Your worlds
│ └── models/ # Your models
├── setup/
└── docs/
```
## Sensors (GPS-Denied)
## 3-Phase Mission
| Sensor | Data |
|--------|------|
| IMU | Orientation, angular velocity |
| Altimeter | Altitude, vertical velocity |
| Camera | Downward image |
| Landing Pad | Relative position (when visible) |
| Phase | Action |
|-------|--------|
| SEARCH | Find QR code on rover |
| COMMAND | Send commands to rover |
| LAND | Land on rover |
## Documentation
- [Installation](docs/installation.md)
- [Architecture](docs/architecture.md)
- [ArduPilot Guide](docs/ardupilot.md)
- [Gazebo Guide](docs/gazebo.md)
- [Drone Logic Guide](docs/drone_guide.md)
- [Drone Controller](docs/drone_guide.md)
- [Custom Worlds](docs/gazebo_worlds.md)
- [Blender Models](docs/blender_models.md)
- [Architecture](docs/architecture.md)