mirror of
https://gitee.com/mirrors_PX4/PX4-Autopilot.git
synced 2026-10-06 15:58:52 +08:00
Prettier, minor subedit
This commit is contained in:
@@ -1,18 +1,21 @@
|
||||
# Hawkeye Flight Visualizer
|
||||
# Hawkeye Flight Visualiser
|
||||
|
||||
[Hawkeye](https://github.com/PX4/Hawkeye) is a real-time 3D flight visualizer for PX4.
|
||||
[Hawkeye](https://github.com/PX4/Hawkeye) is a real-time 3D flight visualiser for PX4.
|
||||
It connects to any MAVLink source (SITL or hardware) and renders vehicle state from [`HIL_STATE_QUATERNION`](https://mavlink.io/en/messages/common.html#HIL_STATE_QUATERNION) messages.
|
||||
|
||||
Hawkeye is a **visualizer**, not a simulator.
|
||||
It does not model physics or generate sensor data — it only renders what PX4 is doing.
|
||||
This makes it the recommended visual companion for [SIH](../sim_sih/index.md), which runs its own physics internally.
|
||||
::: tip
|
||||
Hawkeye is the recommended visualiser for [SIH Simulation](../sim_sih/index.md) (which doesn't have a default visualiser).
|
||||
:::
|
||||
|
||||
Built in C with [Raylib](https://www.raylib.com/), Hawkeye has zero runtime dependencies.
|
||||
Note that Hawkeye is not a simulator — it doesn't model physics or generate sensor data — it only renders what PX4 is doing.
|
||||
|
||||
Hawkeye has no runtime dependencies.
|
||||
It is built in in C with [Raylib](https://www.raylib.com/).
|
||||
|
||||
## Features
|
||||
|
||||
- Real-time 3D rendering of vehicle state via MAVLink
|
||||
- Multi-vehicle swarm visualization (up to 16 vehicles simultaneously)
|
||||
- Multi-vehicle swarm visualisation (up to 16 vehicles simultaneously)
|
||||
- ULog replay with ghost mode for visual flight comparison (e.g. before/after PID tuning)
|
||||
- Vehicle models: quadrotor, hexarotor, fixed-wing, tailsitter, VTOL, rover, ROV
|
||||
- Three camera modes: Chase, FPV, Free (WASD fly)
|
||||
@@ -75,7 +78,7 @@ Hawkeye connects on UDP port **19410** by default — the same port SIH sends `H
|
||||
|
||||
### Multi-Vehicle
|
||||
|
||||
Each SIH instance sends visualization data on port `19410 + N` (where N is the instance number).
|
||||
Each SIH instance sends visualisation data on port `19410 + N` (where N is the instance number).
|
||||
Launch multiple SIH instances, then start Hawkeye with the vehicle count:
|
||||
|
||||
```sh
|
||||
@@ -84,13 +87,14 @@ hawkeye -n 3
|
||||
|
||||
### Vehicle Type Selection
|
||||
|
||||
By default, Hawkeye renders a quadrotor. Use flags to select a different model:
|
||||
By default, Hawkeye renders a quadrotor.
|
||||
Use flags to select a different model:
|
||||
|
||||
| Flag | Vehicle |
|
||||
| ---- | ------- |
|
||||
| Flag | Vehicle |
|
||||
| ----- | --------------------- |
|
||||
| `-mc` | Multicopter (default) |
|
||||
| `-fw` | Fixed-wing |
|
||||
| `-ts` | Tailsitter |
|
||||
| `-fw` | Fixed-wing |
|
||||
| `-ts` | Tailsitter |
|
||||
|
||||
Example for fixed-wing:
|
||||
|
||||
@@ -118,26 +122,26 @@ This is useful for comparing flights before and after tuning changes.
|
||||
|
||||
## CLI Reference
|
||||
|
||||
| Option | Description |
|
||||
| ------ | ----------- |
|
||||
| `-udp <port>` | Set UDP listen port (default: 19410) |
|
||||
| `-n <count>` | Number of vehicles to visualize |
|
||||
| `-origin <lat> <lon> <alt>` | Set map origin |
|
||||
| `-mc` | Multicopter model |
|
||||
| `-fw` | Fixed-wing model |
|
||||
| `-ts` | Tailsitter model |
|
||||
| `--replay <file.ulg>` | Replay a ULog file |
|
||||
| `--ghost <file.ulg>` | Overlay a ghost flight for comparison |
|
||||
| Option | Description |
|
||||
| --------------------------- | ------------------------------------- |
|
||||
| `-udp <port>` | Set UDP listen port (default: 19410) |
|
||||
| `-n <count>` | Number of vehicles to visualise |
|
||||
| `-origin <lat> <lon> <alt>` | Set map origin |
|
||||
| `-mc` | Multicopter model |
|
||||
| `-fw` | Fixed-wing model |
|
||||
| `-ts` | Tailsitter model |
|
||||
| `--replay <file.ulg>` | Replay a ULog file |
|
||||
| `--ghost <file.ulg>` | Overlay a ghost flight for comparison |
|
||||
|
||||
## Camera Controls
|
||||
|
||||
| Mode | Description |
|
||||
| ---- | ----------- |
|
||||
| Mode | Description |
|
||||
| ----- | ------------------------------------ |
|
||||
| Chase | Follows behind the vehicle (default) |
|
||||
| FPV | First-person view from the vehicle |
|
||||
| Free | Fly freely with WASD + mouse |
|
||||
| FPV | First-person view from the vehicle |
|
||||
| Free | Fly freely with WASD + mouse |
|
||||
|
||||
## See Also
|
||||
|
||||
- [Hawkeye GitHub Repository](https://github.com/PX4/Hawkeye)
|
||||
- [SIH Simulation](../sim_sih/index.md) — the headless simulator Hawkeye is designed to visualize
|
||||
- [SIH Simulation](../sim_sih/index.md) — the headless simulator Hawkeye is designed to visualise
|
||||
|
||||
+11
-11
@@ -80,9 +80,9 @@ If you need a visual aid to see what the vehicle is doing you can use QGroundCon
|
||||
|
||||
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.
|
||||
|
||||
#### Hawkeye (3D Visualizer)
|
||||
#### Hawkeye (3D Visualiser)
|
||||
|
||||
[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.
|
||||
[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 visualiser only.
|
||||
|
||||
In a separate terminal, run:
|
||||
|
||||
@@ -92,7 +92,7 @@ hawkeye
|
||||
|
||||
Hawkeye connects on UDP port 19410 by default (the same port SIH sends `HIL_STATE_QUATERNION` on).
|
||||
|
||||
Use `-fw` for fixed-wing or `-ts` for tailsitter models. See the [Hawkeye docs](../sim_hawkeye/index.md) for multi-vehicle visualization and ULog replay.
|
||||
Use `-fw` for fixed-wing or `-ts` for tailsitter models. See the [Hawkeye docs](../sim_hawkeye/index.md) for multi-vehicle visualisation and ULog replay.
|
||||
|
||||
### Environment Configuration
|
||||
|
||||
@@ -146,14 +146,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) | Hawkeye visualizer (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.
|
||||
|
||||
|
||||
Reference in New Issue
Block a user