From 222571a6ad7fe90fa820e45daf848c68d3bb9492 Mon Sep 17 00:00:00 2001 From: Hamish Willee Date: Wed, 12 Jul 2023 19:05:12 +1000 Subject: [PATCH 1/4] Remote ID in PX4 v1.14 --- en/SUMMARY.md | 1 + en/peripherals/remote_id.md | 60 +++++++++++++++++++++++++++++++++++++ 2 files changed, 61 insertions(+) create mode 100644 en/peripherals/remote_id.md diff --git a/en/SUMMARY.md b/en/SUMMARY.md index b17c57c4c597..b0cbd70e6a01 100644 --- a/en/SUMMARY.md +++ b/en/SUMMARY.md @@ -304,6 +304,7 @@ * [Septentrio mosaic-go](gps_compass/septentrio_mosaic-go.md) * [Trimble MB-Two](gps_compass/rtk_gps_trimble_mb_two.md) * [CubePilot Here+ (Discontined)](gps_compass/rtk_gps_hex_hereplus.md) + * [Remote ID](peripherals/remote_id.md) * [Smart Batteries](smart_batteries/README.md) * [Rotoye Batmon Battery Smartification Kit](smart_batteries/rotoye_batmon.md) * [Tachometers (Revolution Counters)](sensor/tachometers.md) diff --git a/en/peripherals/remote_id.md b/en/peripherals/remote_id.md new file mode 100644 index 000000000000..74ddacf5bf68 --- /dev/null +++ b/en/peripherals/remote_id.md @@ -0,0 +1,60 @@ +# Remote ID + +:::warning Experimental +Remote ID support is experimental in PX4 v1.14. +::: + +Remote ID is a government mandated technology for UAVs in Japan, the United States of America and the European Union, designed to enable safe sharing of airspace between UAVs and other aircraft. +The specification requires that UAVs broadcast data such as: real-time location/altitude, serial number, operator ID/location, status, etc. + +PX4 integrates with Remote ID hardware that supports the [Open Drone ID](https://mavlink.io/en/services/opendroneid.html) MAVLink protocol (Open Drone ID is an open source implementation of Remote ID). + +## Current Implementation + +MAVLink-enabled Remote ID hardware must be connected to the autopilot. +This might be done via a wired serial link, internal WiFi network, or Ethernet network in the same way as other MAVLink components (see [MAVLink Peripherals](../peripherals/mavlink_peripherals.md) and [Ethernet Setup](../advanced_config/ethernet_setup.md)). + +Enable Remote ID by [setting](../advanced_config/parameters.md#conditional-parameters) parameter [COM_ARM_ODID](../advanced_config/parameter_reference.md#COM_ARM_ODID) to `2` (it is `0 - disabled` by default). +The UAV will then require `HEARTBEAT` messages from the Remote ID as a precondition for arming the UAV. +You can also set the parameter to `1` to warn but still allow arming without the Remote ID. + +Once enabled, PX4 v1.14 streams these messages by default (in streaming modes: normal, onboard, usb, onboard low bandwidth): + +- [OPEN_DRONE_ID_LOCATION](https://mavlink.io/en/messages/common.html#OPEN_DRONE_ID_LOCATION) (1 Hz) - UAV location, altitude, direction, and speed. +- [OPEN_DRONE_ID_SYSTEM](https://mavlink.io/en/messages/common.html#OPEN_DRONE_ID_SYSTEM) (1 Hz) Operator location/altitude, multiple aircraft information (group/swarm, if applicable), full timestamp and possible category/class information. + - Implementation assumes operator is located at vehicle home position (does not yet support getting operator position from GCS). + This is believed to be compliant for broadcast-only Remote IDs. + +The following message can be streamed on request (using [MAV_CMD_SET_MESSAGE_INTERVAL](https://mavlink.io/en/messages/common.html#MAV_CMD_SET_MESSAGE_INTERVAL)): + +- [OPEN_DRONE_ID_BASIC_ID](https://mavlink.io/en/messages/common.html#OPEN_DRONE_ID_BASIC_ID) - UAV identity information (essentially a serial number) + - PX4 v1.14 specifies a serial number ([MAV_ODID_ID_TYPE_SERIAL_NUMBER](https://mavlink.io/en/messages/common.html#MAV_ODID_ID_TYPE_SERIAL_NUMBER)) but does not use the specified format (ANSI/CTA-2063 format). + +The following messages are not supported in PX4 v1.14 (to be added by [PX4#21647](https://github.com/PX4/PX4-Autopilot/pull/21647)): + +- [OPEN_DRONE_ID_AUTHENTICATION](https://mavlink.io/en/messages/common.html#OPEN_DRONE_ID_AUTHENTICATION) - Provides authentication data for the UAV. +- [OPEN_DRONE_ID_SELF_ID](https://mavlink.io/en/messages/common.html#OPEN_DRONE_ID_SELF_ID) - Operator identity (plain text). +- [OPEN_DRONE_ID_OPERATOR_ID](https://mavlink.io/en/messages/common.html#OPEN_DRONE_ID_OPERATOR_ID) - Operator identity. +- [OPEN_DRONE_ID_ARM_STATUS](https://mavlink.io/en/messages/common.html#OPEN_DRONE_ID_ARM_STATUS) - Status of Remote ID hardware. Use as condition for vehicle arming, and for Remote ID health check. +- [OPEN_DRONE_ID_SYSTEM_UPDATE](https://mavlink.io/en/messages/common.html#OPEN_DRONE_ID_SYSTEM_UPDATE) - Subset of `OPEN_DRONE_ID_SYSTEM` that can be sent with information at higher rate. + +### Compliance + +The specific areas where PX4 v1.14 is know to (possibly) be non compliant with various specifications are: + +- Vehicles must arm conditional on receiving the Remote ID [OPEN_DRONE_ID_ARM_STATUS](https://mavlink.io/en/messages/common.html#OPEN_DRONE_ID_ARM_STATUS) message, with a status that indicates the Remote ID hardware is ready to broadcast. + - PX4 v1.14 does not process `OPEN_DRONE_ID_ARM_STATUS`, and arming is only conditional on the Remote ID device `HEARTBEAT`. +- Health of the Remote ID depends on both receiving a `HEARTBEAT` and the `OPEN_DRONE_ID_ARM_STATUS`. + When flying, a non-armed status for the Remote ID must be published in [OPEN_DRONE_ID_LOCATION.status](https://mavlink.io/en/messages/common.html#OPEN_DRONE_ID_LOCATION) as a Remote ID malfunction. + - PX4 v1.14 does not yet receive `OPEN_DRONE_ID_ARM_STATUS`. +- `OPEN_DRONE_ID_ARM_STATUS` must be forwarded to the GCS, if present for additional error reporting. +- [OPEN_DRONE_ID_BASIC_ID](https://mavlink.io/en/messages/common.html#OPEN_DRONE_ID_BASIC_ID) specifies a serial number in an invalid format (not ANSI/CTA-2063 format). +The + - The ID is expected to be securely stored and tamper resistent. + PX4's approach for this has yet be confirmed to be sufficient. + +## Supported Remote ID Hardware + +- [Cube ID](https://docs.cubepilot.org/user-guides/cube-id/cube-id) (CubePilot) - Displays basic ID in QGC. + +Other devices may work, but there has been limited testing. \ No newline at end of file From d29ce21e911f1bd7b94a10132ff73c208213bf9c Mon Sep 17 00:00:00 2001 From: Hamish Willee Date: Thu, 13 Jul 2023 10:28:16 +1000 Subject: [PATCH 2/4] Make into standard format for easy extension --- .../cube_id/serial_port_connector.jpg | Bin 0 -> 11845 bytes en/peripherals/remote_id.md | 91 +++++++++++++++--- 2 files changed, 79 insertions(+), 12 deletions(-) create mode 100644 assets/hardware/remote_id/cube_id/serial_port_connector.jpg diff --git a/assets/hardware/remote_id/cube_id/serial_port_connector.jpg b/assets/hardware/remote_id/cube_id/serial_port_connector.jpg new file mode 100644 index 0000000000000000000000000000000000000000..e85f4f1d850a7e7485fa0ec13343c1ac12ce1f73 GIT binary patch literal 11845 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 chlD~M!LHu`=j5uhfr$6_ow + + +### Enable Remote ID + +Enable Remote ID by [setting](../advanced_config/parameters.md#conditional-parameters) parameter [COM_ARM_ODID](#COM_ARM_ODID) to `2` (it is disabled by default). -Enable Remote ID by [setting](../advanced_config/parameters.md#conditional-parameters) parameter [COM_ARM_ODID](../advanced_config/parameter_reference.md#COM_ARM_ODID) to `2` (it is `0 - disabled` by default). The UAV will then require `HEARTBEAT` messages from the Remote ID as a precondition for arming the UAV. -You can also set the parameter to `1` to warn but still allow arming without the Remote ID. + + +Parameter | Description +--- | --- +[COM_ARM_ODID](../advanced_config/parameter_reference.md#COM_ARM_ODID) | Enable Drone ID system detection and health check. `0`: Disable (default), `1`: Warn if Remote ID not detected but still allow arming, `2`: Only allow arming if Remote ID is present. + + +## Implementation + +Remote ID is enabled by setting parameter [COM_ARM_ODID](../advanced_config/parameter_reference.md#COM_ARM_ODID) to `2`. +The UAV will then require `HEARTBEAT` messages from the Remote ID as a precondition for arming the UAV. +You can also set the parameter to `1` to warn but still allow arming without the Remote ID. Once enabled, PX4 v1.14 streams these messages by default (in streaming modes: normal, onboard, usb, onboard low bandwidth): @@ -52,9 +125,3 @@ The specific areas where PX4 v1.14 is know to (possibly) be non compliant with v The - The ID is expected to be securely stored and tamper resistent. PX4's approach for this has yet be confirmed to be sufficient. - -## Supported Remote ID Hardware - -- [Cube ID](https://docs.cubepilot.org/user-guides/cube-id/cube-id) (CubePilot) - Displays basic ID in QGC. - -Other devices may work, but there has been limited testing. \ No newline at end of file From 2bec5aca8f71cb1e80e7e5f4ac61a3bf330c43f3 Mon Sep 17 00:00:00 2001 From: Hamish Willee Date: Fri, 14 Jul 2023 07:56:00 +1000 Subject: [PATCH 3/4] Update en/peripherals/remote_id.md Co-authored-by: Junwoo Hwang --- en/peripherals/remote_id.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/en/peripherals/remote_id.md b/en/peripherals/remote_id.md index 2a39c7ecabdf..ce5c655a8504 100644 --- a/en/peripherals/remote_id.md +++ b/en/peripherals/remote_id.md @@ -113,7 +113,7 @@ The following messages are not supported in PX4 v1.14 (to be added by [PX4#21647 ### Compliance -The specific areas where PX4 v1.14 is know to (possibly) be non compliant with various specifications are: +The specific areas where PX4 v1.14 is known to (possibly) be non compliant with various specifications are: - Vehicles must arm conditional on receiving the Remote ID [OPEN_DRONE_ID_ARM_STATUS](https://mavlink.io/en/messages/common.html#OPEN_DRONE_ID_ARM_STATUS) message, with a status that indicates the Remote ID hardware is ready to broadcast. - PX4 v1.14 does not process `OPEN_DRONE_ID_ARM_STATUS`, and arming is only conditional on the Remote ID device `HEARTBEAT`. From 7e0e958e2ed125938e548feac5c2fdabdf8d891e Mon Sep 17 00:00:00 2001 From: Hamish Willee Date: Thu, 20 Jul 2023 11:30:49 +1000 Subject: [PATCH 4/4] Address feedback --- en/peripherals/mavlink_peripherals.md | 3 ++- en/peripherals/remote_id.md | 30 ++++++++++++++++----------- 2 files changed, 20 insertions(+), 13 deletions(-) diff --git a/en/peripherals/mavlink_peripherals.md b/en/peripherals/mavlink_peripherals.md index 4b19e2f13229..4f6e38b3d30e 100644 --- a/en/peripherals/mavlink_peripherals.md +++ b/en/peripherals/mavlink_peripherals.md @@ -15,7 +15,8 @@ At time of writing three MAVLink *instances* are defined, which correspond to th The parameters for each instance are: - [MAV_X_CONFIG](../advanced_config/parameter_reference.md#MAV_0_CONFIG) - Set the serial port (UART) for this instance "X", where X is 0, 1, 2. - It can be any unused port, e.g.: TELEM2, TELEM3, GPS2 etc. For more information see [Serial Port Configuration](../peripherals/serial_configuration.md). + It can be any unused port, e.g.: `TELEM2`, `TELEM3`, `GPS2` etc. + For more information see [Serial Port Configuration](../peripherals/serial_configuration.md). - [MAV_X_MODE](../advanced_config/parameter_reference.md#MAV_0_MODE) - Specify the telemetry mode/target (the set of messages to stream for the current instance and their rate). The default values are: - *Normal*: Standard set of messages for a GCS. diff --git a/en/peripherals/remote_id.md b/en/peripherals/remote_id.md index ce5c655a8504..2584ce8bc3cb 100644 --- a/en/peripherals/remote_id.md +++ b/en/peripherals/remote_id.md @@ -39,8 +39,8 @@ If using a different port, or a flight controller that has different connector, The pinout of the serial port is shown below. The TX and RX on the flight controller must be connected to the RX and TX on the Remote ID, respectively. -#### Cube ID Serial Port +#### Cube ID Serial Port ![Cube ID serial port](../../assets/hardware/remote_id/cube_id/serial_port_connector.jpg) @@ -58,7 +58,7 @@ Pin | Signal | Volt Remote ID hardware is configured in the same way as any other [MAVLink Peripheral](../peripherals/mavlink_peripherals.md). -Assuming you have connected the device to the TELEM2 port, [set the parameters](../advanced_config/parameters.md) as shown: +Assuming you have connected the device to the `TELEM2` port, [set the parameters](../advanced_config/parameters.md) as shown: - [MAV_1_CONFIG](../advanced_config/parameter_reference.md#MAV_1_CONFIG) = TELEM 2 - [MAV_1_MODE](../advanced_config/parameter_reference.md#MAV_1_MODE) = Normal @@ -72,13 +72,14 @@ The required baud rate depends on the remote ID used (for Cube ID it must be set - ### Enable Remote ID -Enable Remote ID by [setting](../advanced_config/parameters.md#conditional-parameters) parameter [COM_ARM_ODID](#COM_ARM_ODID) to `2` (it is disabled by default). +There is no need to explicitly enable Remote ID (supported Remote ID messages are either streamed by default or must be requested in the current implementation, even if no remote ID is connected). -The UAV will then require `HEARTBEAT` messages from the Remote ID as a precondition for arming the UAV. +### Prevent Arming based on Remote ID + +To only allow arming when a Remote ID is ready, [set](../advanced_config/parameters.md#conditional-parameters) the parameter [COM_ARM_ODID](#COM_ARM_ODID) to `2` (it is disabled by default). Parameter | Description --- | --- @@ -87,11 +88,7 @@ Parameter | Description ## Implementation -Remote ID is enabled by setting parameter [COM_ARM_ODID](../advanced_config/parameter_reference.md#COM_ARM_ODID) to `2`. -The UAV will then require `HEARTBEAT` messages from the Remote ID as a precondition for arming the UAV. -You can also set the parameter to `1` to warn but still allow arming without the Remote ID. - -Once enabled, PX4 v1.14 streams these messages by default (in streaming modes: normal, onboard, usb, onboard low bandwidth): +PX4 v1.14 streams these messages by default (in streaming modes: normal, onboard, usb, onboard low bandwidth): - [OPEN_DRONE_ID_LOCATION](https://mavlink.io/en/messages/common.html#OPEN_DRONE_ID_LOCATION) (1 Hz) - UAV location, altitude, direction, and speed. - [OPEN_DRONE_ID_SYSTEM](https://mavlink.io/en/messages/common.html#OPEN_DRONE_ID_SYSTEM) (1 Hz) Operator location/altitude, multiple aircraft information (group/swarm, if applicable), full timestamp and possible category/class information. @@ -101,9 +98,13 @@ Once enabled, PX4 v1.14 streams these messages by default (in streaming modes: n The following message can be streamed on request (using [MAV_CMD_SET_MESSAGE_INTERVAL](https://mavlink.io/en/messages/common.html#MAV_CMD_SET_MESSAGE_INTERVAL)): - [OPEN_DRONE_ID_BASIC_ID](https://mavlink.io/en/messages/common.html#OPEN_DRONE_ID_BASIC_ID) - UAV identity information (essentially a serial number) - - PX4 v1.14 specifies a serial number ([MAV_ODID_ID_TYPE_SERIAL_NUMBER](https://mavlink.io/en/messages/common.html#MAV_ODID_ID_TYPE_SERIAL_NUMBER)) but does not use the specified format (ANSI/CTA-2063 format). + - PX4 v1.14 specifies a serial number ([MAV_ODID_ID_TYPE_SERIAL_NUMBER](https://mavlink.io/en/messages/common.html#MAV_ODID_ID_TYPE_SERIAL_NUMBER)) but does not use the required format (ANSI/CTA-2063 format). + +PX4 prevents arming based on Remote ID health if parameter [COM_ARM_ODID](../advanced_config/parameter_reference.md#COM_ARM_ODID) is set to `2`. +The UAV will then require `HEARTBEAT` messages from the Remote ID as a precondition for arming the UAV. +You can also set the parameter to `1` to warn but still allow arming when Remote ID `HEARTBEAT` messages are not detected. -The following messages are not supported in PX4 v1.14 (to be added by [PX4#21647](https://github.com/PX4/PX4-Autopilot/pull/21647)): +The following Open Drone ID MAVLink messages are not supported in PX4 v1.14 (to be added by [PX4#21647](https://github.com/PX4/PX4-Autopilot/pull/21647)): - [OPEN_DRONE_ID_AUTHENTICATION](https://mavlink.io/en/messages/common.html#OPEN_DRONE_ID_AUTHENTICATION) - Provides authentication data for the UAV. - [OPEN_DRONE_ID_SELF_ID](https://mavlink.io/en/messages/common.html#OPEN_DRONE_ID_SELF_ID) - Operator identity (plain text). @@ -125,3 +126,8 @@ The specific areas where PX4 v1.14 is known to (possibly) be non compliant with The - The ID is expected to be securely stored and tamper resistent. PX4's approach for this has yet be confirmed to be sufficient. + +:::note +These compliance issues are expected to be addressed by [PX4-Autopilot/21647](https://github.com/PX4/PX4-Autopilot/pull/21647). +It is not clear when this will merge, and whether the features will be backported to PX4 v1.14. +::: \ No newline at end of file