86 lines
1.7 KiB
Markdown
86 lines
1.7 KiB
Markdown
# Drone Landing Simulation (GPS-Denied)
|
|
|
|
Land a drone on a moving platform using only relative sensors.
|
|
|
|
## 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
|
|
python camera_viewer.py # View camera
|
|
```
|
|
|
|
### ArduPilot GPS-Denied (2 Terminals)
|
|
|
|
**Terminal 1:**
|
|
```bash
|
|
./scripts/run_ardupilot_sim.sh runway
|
|
# Options: runway, warehouse, zephyr
|
|
```
|
|
|
|
**Terminal 2:**
|
|
```bash
|
|
sim_vehicle.py -v ArduCopter -f gazebo-iris --model JSON --console
|
|
|
|
# GPS-denied mode:
|
|
param set ARMING_CHECK 0
|
|
mode stabilize
|
|
arm throttle force
|
|
```
|
|
|
|
## Installation
|
|
|
|
```bash
|
|
./setup/install_ubuntu.sh
|
|
./setup/install_ardupilot.sh # Optional
|
|
source activate.sh
|
|
```
|
|
|
|
## Files
|
|
|
|
| File | Description |
|
|
|------|-------------|
|
|
| `standalone_simulation.py` | All-in-one simulation |
|
|
| `run_gazebo.py` | Gazebo controllers |
|
|
| `scripts/run_ardupilot_sim.sh` | ArduPilot launcher (auto GPU) |
|
|
| `camera_viewer.py` | Camera feed window |
|
|
| `drone_controller.py` | **Your landing algorithm** |
|
|
| `config.py` | Configuration |
|
|
|
|
## Sensors (GPS-Denied)
|
|
|
|
| Sensor | Data |
|
|
|--------|------|
|
|
| IMU | Orientation, angular velocity |
|
|
| Altimeter | Altitude, vertical velocity |
|
|
| Camera | Downward image |
|
|
| Landing Pad | Relative position (when visible) |
|
|
|
|
## Options
|
|
|
|
```bash
|
|
--pattern stationary, linear, circular, square, random
|
|
--speed Speed in m/s (default: 0.5)
|
|
```
|
|
|
|
## Docs
|
|
|
|
- [Installation](docs/installation.md)
|
|
- [Architecture](docs/architecture.md)
|
|
- [ArduPilot](docs/ardupilot.md)
|
|
- [Gazebo](docs/gazebo.md) |