Code reorganization and Drone Logic Update
This commit is contained in:
85
README.md
85
README.md
@@ -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)
|
||||
Reference in New Issue
Block a user