3.0 KiB
3.0 KiB
Usage Guide
How to run and control the simulation.
Starting the Simulation
cd ~/simulation
source activate_venv.sh
bash scripts/run_simulation.sh
This launches:
- Gazebo with the drone model
- ArduPilot SITL (flight controller)
- MAVProxy console (for commands)
Simulation Options
# Default (iris_runway world)
bash scripts/run_simulation.sh
# Specific world
bash scripts/run_simulation.sh --world iris_runway
# Rover instead of copter
bash scripts/run_simulation.sh --vehicle Rover
# Software rendering (for WSL or no GPU)
bash scripts/run_simulation.sh --software-render
# Show available options
bash scripts/run_simulation.sh --help
Controlling the UAV
MAVProxy Console
The simulation opens a MAVProxy console. Commands:
mode guided # Switch to GUIDED mode (required for commands)
arm throttle # Arm motors
takeoff 5 # Takeoff to 5 meters altitude
# Fly to position (North, East, Down in meters)
guided 10 0 -5 # 10m north, 0m east, 5m altitude
guided 10 10 -5 # 10m north, 10m east, 5m altitude
guided 0 0 -5 # Return to origin at 5m altitude
rtl # Return to launch
land # Land at current position
disarm # Disarm motors (after landing)
ROS 2 Interface
If MAVROS is running, control via ROS 2:
# Arm
ros2 service call /mavros/cmd/arming mavros_msgs/srv/CommandBool "{value: true}"
# Set GUIDED mode
ros2 service call /mavros/set_mode mavros_msgs/srv/SetMode "{custom_mode: 'GUIDED'}"
# Takeoff
ros2 service call /mavros/cmd/takeoff mavros_msgs/srv/CommandTOL "{altitude: 5}"
# Fly to position (local frame, meters)
ros2 topic pub /mavros/setpoint_position/local geometry_msgs/PoseStamped \
"{header: {frame_id: 'map'}, pose: {position: {x: 10, y: 5, z: 5}}}"
# Land
ros2 service call /mavros/cmd/land mavros_msgs/srv/CommandTOL "{}"
Monitoring
# List topics
ros2 topic list
# View position
ros2 topic echo /mavros/local_position/pose
# View velocity
ros2 topic echo /mavros/local_position/velocity_local
# View IMU
ros2 topic echo /mavros/imu/data
Flight Modes
| Mode | Description |
|---|---|
| STABILIZE | Manual control with attitude stabilization |
| ALT_HOLD | Maintain altitude, manual position |
| LOITER | Hold position and altitude |
| GUIDED | Accept position commands |
| AUTO | Follow pre-planned mission |
| RTL | Return to launch point |
| LAND | Controlled descent and landing |
Stopping the Simulation
Press Ctrl+C in the terminal running the simulation.
Or run:
bash scripts/kill_simulation.sh
Camera Topics
The UAV has two cameras:
# Forward camera (visual odometry)
ros2 topic echo /uav/camera/forward/image_raw
# Downward camera (optical flow)
ros2 topic echo /uav/camera/downward/image_raw
GPS-Denied Navigation
All position commands use local coordinates (meters from takeoff point):
- X: North
- Y: East
- Z: Up (or Down for NED frame)
GPS is only used for geofencing boundaries, not for navigation.