docs(sim_sih): link Hawkeye visualizer, add stub page (#27159)

* docs(sim_sih): link Hawkeye visualizer, add stub page

Replaces jMAVSim display-only mode references in the SIH page with Hawkeye,
which is purpose-built for this role and actively maintained. The 3D
visualization section now covers the hawkeye command, the port alignment
with SIH (UDP 19410), and links out to the full Hawkeye documentation.

Adds a short sim_hawkeye/index.md stub covering what Hawkeye is, install
on macOS and Linux, and basic SIH usage. Everything else (multi-vehicle,
ULog replay, HUD modes, CLI reference) lives at px4.github.io/Hawkeye
and is linked from the stub, so PX4 docs don't carry the maintenance
burden of two parallel sources.

Also updates the port reference table: UDP 19410 is now labeled
"Hawkeye visualizer" instead of "jMAVSim display-only", and adds the
page to SUMMARY.md nested under SIH Simulation.

* docs(update): subedit

---------

Co-authored-by: Hamish Willee <hamishwillee@gmail.com>
This commit is contained in:
Ramon Roche
2026-04-21 23:19:56 -07:00
committed by GitHub
parent 6c15aadbb1
commit 3efdbe9fd3
3 changed files with 81 additions and 18 deletions
+1
View File
@@ -469,6 +469,7 @@
- [Gazebo Models Repository](sim_gazebo_gz/gazebo_models.md)
- [Multi-Vehicle Sim](sim_gazebo_gz/multi_vehicle_simulation.md)
- [SIH Simulation](sim_sih/index.md)
- [Hawkeye Visualizer](sim_hawkeye/index.md)
- [Gazebo Classic Simulation](sim_gazebo_classic/index.md)
- [Vehicles](sim_gazebo_classic/vehicles.md)
- [Worlds](sim_gazebo_classic/worlds.md)
+61
View File
@@ -0,0 +1,61 @@
# Hawkeye Visualizer
[Hawkeye](https://px4.github.io/Hawkeye/) is a real-time 3D flight _visualizer_ for PX4.
Hawkeye is the natural pair for [SIH](../sim_sih/index.md) — SIH runs the physics of an aircraft simulation and outputs MAVLink [HIL_STATE_QUATERNION](https://mavlink.io/en/messages/common.html#HIL_STATE_QUATERNION) messages, Hawkeye uses these to show you what's happening.
Hawkeye has zero runtime dependencies, supports up to 16 vehicles simultaneously, and can replay PX4 ULog (`.ulg`) flight logs with transport controls, markers, and multi-drone correlation analysis.
## Install
### macOS (Homebrew)
```sh
brew tap PX4/px4
brew install PX4/px4/hawkeye
```
### Linux (Debian/Ubuntu)
Download the `.deb` from the [Hawkeye releases page](https://github.com/PX4/Hawkeye/releases/latest):
```sh
sudo dpkg -i hawkeye-*.deb
```
### Windows and source builds
For Ubuntu 24.04 or later in WSL2 you can install the packages in the same way:
```sh
sudo dpkg -i hawkeye-*.deb
```
For other versions of Ubuntu (or native Windows builds) you may need to [Build from source](https://px4.github.io/Hawkeye/developer/build) (Hawkeye docs).
## Usage with SIH
Start PX4 SIH, then launch Hawkeye in a separate terminal:
```sh
# Terminal 1
make px4_sitl sihsim_quadx
# Terminal 2
hawkeye
```
Hawkeye listens on UDP port 19410 — the same port SIH sends [HIL_STATE_QUATERNION](https://mavlink.io/en/messages/common.html#HIL_STATE_QUATERNION) on — so no configuration is needed.
The vehicle appears in the Hawkeye window as soon as SIH starts streaming.
For fixed-wing or tailsitter simulation, Hawkeye auto-detects the vehicle type from MAVLink `HEARTBEAT` and loads the matching 3D model.
## Full documentation
Complete documentation — including multi-vehicle SITL, ULog replay, HUD modes, camera controls, and correlation analysis — lives at **[px4.github.io/Hawkeye](https://px4.github.io/Hawkeye/)**.
- [First SITL run](https://px4.github.io/Hawkeye/first-sitl) — the shortest path from install to seeing a vehicle move
- [Multi-Drone Replay](https://px4.github.io/Hawkeye/multi_drone) — compare multiple flights with deconfliction and correlation
- [Live SITL Integration](https://px4.github.io/Hawkeye/sitl) — single-vehicle and multi-instance swarm workflows
- [Command-Line Reference](https://px4.github.io/Hawkeye/cli) — every CLI flag with examples
- [Source code](https://github.com/PX4/Hawkeye)
+19 -18
View File
@@ -79,27 +79,28 @@ The `px4_sitl` target will work, but will also build Gazebo libraries.
### Visualization (Optional) {#sitl-visualization}
SIH is intentionally headless by default.
If you need a visual aid to see what the vehicle is doing you can use QGroundControl to track path over ground, and/or jMAVSim as a 3D viewer.
If you need a visual aid to see what the vehicle is doing you can use QGroundControl to track path over ground, and/or [Hawkeye](../sim_hawkeye/index.md) as a 3D viewer.
#### QGroundControl
QGC auto-connects on UDP port 14550. Open QGC while SIH is running and the vehicle appears on the map view with attitude, position, and telemetry.
#### jMAVSim (3D Display-Only)
#### Hawkeye (3D Visualizer)
jMAVSim can render a 3D view of the vehicle using MAVLink position data. No physics are simulated in jMAVSim — it is display-only.
[Hawkeye](../sim_hawkeye/index.md) renders a real-time 3D view of the vehicle using MAVLink position data.
No physics are simulated in Hawkeye — it is a visualizer only.
In a separate terminal, run:
```sh
./Tools/simulation/jmavsim/jmavsim_run.sh -p 19410 -u -q -o
hawkeye
```
Flags:
Hawkeye connects on UDP port 19410 by default (the same port SIH sends `HIL_STATE_QUATERNION` on).
It then auto-detects the vehicle type from the MAVLink `HEARTBEAT` and loads the matching 3D model.
- `-a` for airplane model
- `-t` for tailsitter model
- `-o` enables display-only mode.
See [jMAVSim Display-Only Mode](../sim_jmavsim/index.md#display-only-mode) for details.
The [Hawkeye](../sim_hawkeye/index.md) overview page explains how to install the software.
See the [Hawkeye docs](https://px4.github.io/Hawkeye/) for other features, such as ULog replay, and multi-vehicle visualization.
### Environment Configuration
@@ -153,14 +154,14 @@ See [uXRCE-DDS (PX4-ROS 2/DDS Bridge)](../middleware/uxrce_dds.md) for full setu
PX4 SITL opens the following UDP ports (all instance-aware, offset by instance number N).
| PX4 sends to (remote) | PX4 listens on (local) | Use for | Instance offset |
| --------------------- | ---------------------- | ------------------------------- | ----------------------------------------- |
| **14550** | 18570 (+N) | QGroundControl, GCS tools | Yes |
| **14540** (+N) | 14580 (+N) | MAVSDK, MAVROS, offboard APIs | Yes (capped at 14549 for 10+ instances) |
| **14030** (+N) | 14280 (+N) | Onboard camera/payload | Yes |
| **13280** (+N) | 13030 (+N) | Gimbal control | Yes |
| **19410** (+N) | 19450 (+N) | jMAVSim display-only (SIH only) | Yes |
| **8888** | - | uXRCE-DDS / ROS 2 | No (use DDS namespace for multi-instance) |
| PX4 sends to (remote) | PX4 listens on (local) | Use for | Instance offset |
| --------------------- | ---------------------- | ----------------------------- | ----------------------------------------- |
| **14550** | 18570 (+N) | QGroundControl, GCS tools | Yes |
| **14540** (+N) | 14580 (+N) | MAVSDK, MAVROS, offboard APIs | Yes (capped at 14549 for 10+ instances) |
| **14030** (+N) | 14280 (+N) | Onboard camera/payload | Yes |
| **13280** (+N) | 13030 (+N) | Gimbal control | Yes |
| **19410** (+N) | 19450 (+N) | Hawkeye visualizer (SIH only) | Yes |
| **8888** | - | uXRCE-DDS / ROS 2 | No (use DDS namespace for multi-instance) |
QGC auto-connects on port **14550** by default. MAVSDK connects on **14540**. No manual port configuration needed for single-instance use.