Ardupilot Update
This commit is contained in:
@@ -62,6 +62,34 @@ Data flow:
|
||||
- DroneController receives telemetry, publishes to `/cmd_vel`
|
||||
- GazeboBridge forwards to `/drone/cmd_vel` → Gazebo moves drone
|
||||
|
||||
### 4. ArduPilot SITL + Gazebo Mode (Three Terminals, Linux/WSL2)
|
||||
|
||||
```
|
||||
Terminal 1 Terminal 2 Terminal 3
|
||||
┌──────────────┐ ┌─────────────────┐ ┌────────────────────────┐
|
||||
│ Gazebo + │ │ ArduPilot SITL │ │ run_ardupilot.py │
|
||||
│ ArduPilot │◄──►│ sim_vehicle.py │ │ ┌──────────────────┐ │
|
||||
│ Plugin │JSON│ + MAVProxy │◄───►│ │ MAVLinkBridge │ │
|
||||
│ │ │ │ UDP │ │ DroneController │ │
|
||||
│ ardupilot_ │ │ Flight Control │ │ │ RoverController │ │
|
||||
│ drone.sdf │ │ + GCS │ │ └──────────────────┘ │
|
||||
└──────────────┘ └─────────────────┘ └────────────────────────┘
|
||||
```
|
||||
|
||||
Data flow:
|
||||
- ArduPilot SITL sends motor commands → Gazebo plugin controls drone
|
||||
- Gazebo plugin sends sensor data → ArduPilot SITL for state estimation
|
||||
- MAVProxy outputs telemetry → MAVLinkBridge converts to ROS telemetry
|
||||
- DroneController receives telemetry, publishes velocity commands
|
||||
- MAVLinkBridge sends MAVLink commands → ArduPilot SITL executes
|
||||
|
||||
Key differences from simple Gazebo mode:
|
||||
- Full ArduPilot flight controller (EKF, stabilization, failsafes)
|
||||
- Real MAVLink protocol for commands and telemetry
|
||||
- Support for all ArduPilot flight modes (GUIDED, LAND, etc.)
|
||||
- Arming checks and safety features
|
||||
- Compatible with ground control stations (QGroundControl, Mission Planner)
|
||||
|
||||
## Components
|
||||
|
||||
| File | Description |
|
||||
@@ -71,12 +99,16 @@ Data flow:
|
||||
| `simulation_host.py` | PyBullet physics server (UDP) |
|
||||
| `run_bridge.py` | PyBullet bridge + controllers |
|
||||
| `run_gazebo.py` | Gazebo bridge + controllers |
|
||||
| `run_ardupilot.py` | **ArduPilot SITL** + MAVLink bridge |
|
||||
| `mavlink_bridge.py` | MAVLink ↔ ROS 2 bridge |
|
||||
| `drone_controller.py` | **Your landing algorithm** |
|
||||
| `rover_controller.py` | Moving landing pad |
|
||||
| `ros_bridge.py` | ROS-UDP bridge (used by run_bridge.py) |
|
||||
| `gazebo_bridge.py` | Gazebo-ROS bridge (used by run_gazebo.py) |
|
||||
| `gazebo/launch/drone_landing.launch.py` | ROS 2 launch file for Gazebo |
|
||||
| `gazebo/worlds/drone_landing.sdf` | Gazebo world with drone + rover |
|
||||
| `gazebo/launch/ardupilot_drone.launch.py` | ROS 2 launch file for ArduPilot |
|
||||
| `gazebo/worlds/drone_landing.sdf` | Gazebo world with simple velocity control |
|
||||
| `gazebo/worlds/ardupilot_drone.sdf` | Gazebo world with ArduPilot plugin |
|
||||
|
||||
## ROS 2 Topics
|
||||
|
||||
|
||||
Reference in New Issue
Block a user