Files
RDC_Simulation/docs/architecture.md
2026-01-04 00:24:46 +00:00

3.2 KiB

Architecture Overview

Operation Modes

1. Standalone (Any Platform)

Single process, no ROS 2 required:

python standalone_simulation.py --pattern circular
┌────────────────────────────────────────┐
│      standalone_simulation.py          │
│  ┌──────────────────────────────────┐  │
│  │  PyBullet Physics + Camera       │  │
│  │  Built-in Controller             │  │
│  │  Rover Movement                  │  │
│  └──────────────────────────────────┘  │
└────────────────────────────────────────┘

2. Gazebo + ROS 2 (2 Terminals)

Terminal 1:

ros2 launch gazebo/launch/drone_landing.launch.py

Terminal 2:

python run_gazebo.py --pattern circular
Terminal 1                    Terminal 2
┌───────────────────┐        ┌───────────────────┐
│ Gazebo + Bridge   │◄──────►│ run_gazebo.py     │
│ (Physics)         │  ROS   │ + Controllers     │
└───────────────────┘        └───────────────────┘

3. ArduPilot SITL (2 Terminals)

Terminal 1:

ros2 launch ardupilot_gz_bringup iris_runway.launch.py

Terminal 2:

mavproxy.py --console --map --master=:14550
┌─────────────────────────────────────────────┐
│        Single Launch Command                │
│   (Starts SITL + Gazebo + RViz)            │
├─────────────────────────────────────────────┤
│  ArduPilot SITL ◄──► Gazebo ◄──► ROS 2     │
│       ▲                                     │
│       │ /ap/* topics                        │
│       ▼                                     │
│  MAVProxy (GCS)                            │
└─────────────────────────────────────────────┘

Key Components

Component Description
drone_controller.py Your landing algorithm
gazebo_bridge.py Gazebo ↔ ROS bridge
mavlink_bridge.py MAVLink commands
camera_viewer.py Camera display

ROS 2 Topics

Topic Direction Description
/drone/telemetry Sensor data (JSON)
/cmd_vel Velocity commands
/drone/camera Camera images
/rover/telemetry Landing pad position

ArduPilot Topics

Topic Type
/ap/pose/filtered Position
/ap/twist/filtered Velocity
/ap/imu/filtered IMU
/ap/battery Battery