diff --git a/docs/ko/SUMMARY.md b/docs/ko/SUMMARY.md
index 3d24afef3c..3f6edca6b1 100644
--- a/docs/ko/SUMMARY.md
+++ b/docs/ko/SUMMARY.md
@@ -286,6 +286,7 @@
- [CubePilot Here+ (Discontined)](gps_compass/rtk_gps_hex_hereplus.md)
- [INS (Inertial Navigation/GNSS)](sensor/inertial_navigation_systems.md)
- [InertialLabs](sensor/inertiallabs.md)
+ - [MicroStrain](sensor/microstrain.md)
- [sbgECom](sensor/sbgecom.md)
- [VectorNav](sensor/vectornav.md)
- [광류 센서](sensor/optical_flow.md)
@@ -701,6 +702,7 @@
- [SensorCombined](msg_docs/SensorCombined.md)
- [SensorCorrection](msg_docs/SensorCorrection.md)
- [SensorGnssRelative](msg_docs/SensorGnssRelative.md)
+ - [SensorGnssStatus](msg_docs/SensorGnssStatus.md)
- [SensorGps](msg_docs/SensorGps.md)
- [SensorGyro](msg_docs/SensorGyro.md)
- [SensorGyroFft](msg_docs/SensorGyroFft.md)
@@ -762,6 +764,7 @@
- [Standard Modes Protocol](mavlink/standard_modes.md)
- [uXRCE-DDS (PX4-ROS 2/DDS Bridge)](middleware/uxrce_dds.md)
- [UORB Bridged to ROS 2](middleware/dds_topics.md)
+ - [Zenoh (PX4 ROS 2)](middleware/zenoh.md)
- [모듈과 명령어](modules/modules_main.md)
- [자동 튜닝](modules/modules_autotune.md)
- [명령어](modules/modules_command.md)
diff --git a/docs/ko/airframes/airframe_reference.md b/docs/ko/airframes/airframe_reference.md
index 06c9517842..0ae87398fc 100644
--- a/docs/ko/airframes/airframe_reference.md
+++ b/docs/ko/airframes/airframe_reference.md
@@ -618,6 +618,10 @@ div.frame_variant td, div.frame_variant th {
Axial SCX10 2 Trail Honcho |
유지보수: John Doe <john@example.com> SYS_AUTOSTART = 51001
|
+
+ | NXP B3RB Rover Ackermann |
+ 유지보수: John Doe <john@example.com> SYS_AUTOSTART = 51002
|
+
| Generic Rover Mecanum |
유지보수: John Doe <john@example.com> SYS_AUTOSTART = 52000
|
diff --git a/docs/ko/config/safety.md b/docs/ko/config/safety.md
index d819eb304b..0debe65eb2 100644
--- a/docs/ko/config/safety.md
+++ b/docs/ko/config/safety.md
@@ -276,12 +276,12 @@ The relevant parameters are listed in the table below.
## 고장 감지기
-고장 감지기를 사용하여 차량의 예기치 않게 전복되거나 외부의 고장 감지 시스템에 따른 보호 조치를 할 수 있습니다.
+The failure detector allows a vehicle to take protective actions if it unexpectedly flips, detects a motor failure, or if it is notified by an external failure detection system.
During **flight**, the failure detector can be used to trigger [flight termination](../advanced_config/flight_termination.md) if failure conditions are met, which may then launch a [parachute](../peripherals/parachute.md) or perform some other action.
:::info
-Failure detection during flight is deactivated by default (enable by setting the parameter: [CBRK_FLIGHTTERM=0](#CBRK_FLIGHTTERM)).
+Acting on a detected failure during flight is deactivated by default (enable by setting the parameter: [CBRK_FLIGHTTERM=0](#CBRK_FLIGHTTERM)).
:::
During **takeoff** the failure detector [attitude trigger](#attitude-trigger) invokes the [disarm action](#act_disarm) if the vehicle flips (disarm kills the motors but, unlike flight termination, will not launch a parachute or perform other failure actions).
@@ -303,6 +303,26 @@ The failure detector is active in all vehicle types and modes, except for those
| [FD_FAIL_P_TTRI](../advanced_config/parameter_reference.md#FD_FAIL_P_TTRI) | Time to exceed [FD_FAIL_P](#FD_FAIL_P) for failure detection (default 0.3s). |
| [FD_FAIL_R_TTRI](../advanced_config/parameter_reference.md#FD_FAIL_R_TTRI) | Time to exceed [FD_FAIL_R](#FD_FAIL_R) for failure detection (default 0.3s). |
+### Motor Failure Trigger
+
+The failure detector can be configured to detect a motor failure while armed (and trigger an associated action) in the following conditions:
+
+- A 300 ms timeout occurs in telemetry from an ESC that was previously available.
+- The input current in the telemetry of an ESC which was previously positive gets too low for more than [`FD_ACT_MOT_TOUT`](FD_ACT_MOT_TOUT) ms.
+ The "too low" condition is defined by:
+
+ ```text
+ {esc current} < {parameter FD_ACT_MOT_C2T} * {motor command between 0 and 1}
+ ```
+
+| 매개변수 | 설명 |
+| ----------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| [FD_ACT_EN](../advanced_config/parameter_reference.md#FD_ACT_EN) | Enable/disable the motor failure trigger completely. |
+| [FD_ACT_MOT_THR](../advanced_config/parameter_reference.md#FD_ACT_MOT_THR) | Minimum normalized [0,1] motor command below which motor under current is ignored. |
+| [FD_ACT_MOT_C2T](../advanced_config/parameter_reference.md#FD_ACT_MOT_C2T) | Scale between normalized [0,1] motor command and expected minimally reported currrent when the rotor is healthy. |
+| [FD_ACT_MOT_TOUT](../advanced_config/parameter_reference.md#FD_ACT_MOT_TOUT) | Time in miliseconds for which the under current detection condition needs to stay true. |
+| [CA_FAILURE_MODE](../advanced_config/parameter_reference.md#CA_FAILURE_MODE) | Configure to not only warn about a motor failure but remove the first motor that detects a failure from the allocation effectiveness which turns off the motor and tries to operate the vehicle without it until disarming the next time. |
+
### 외부 자동 작동 시스템 (ATS)
The [failure detector](#failure-detector), if [enabled](#CBRK_FLIGHTTERM), can also be triggered by an external ATS system.
diff --git a/docs/ko/debug/failure_injection.md b/docs/ko/debug/failure_injection.md
index ba39466e7b..fdc4a49589 100644
--- a/docs/ko/debug/failure_injection.md
+++ b/docs/ko/debug/failure_injection.md
@@ -19,7 +19,7 @@ At time of writing (PX4 v1.14):
## 장애 시스템 명령
-Failures can be injected using the [failure system command](../modules/modules_command.md#failure) from any PX4 console/shell, specifying both the target and type of the failure.
+Failures can be injected using the [failure system command](../modules/modules_command.md#failure) from any PX4 [console/shell](../debug/consoles.md) (such as the [QGC MAVLink Console](../debug/mavlink_shell.md#qgroundcontrol-mavlink-console) or SITL _pxh shell_), specifying both the target and type of the failure.
### 구문
@@ -61,11 +61,18 @@ failure [-i ]
- _instance number_ (optional): Instance number of affected sensor.
0 (기본값) 지정된 유형의 모든 센서를 나타냅니다.
-### Example
+## MAVSDK 실패 플러그인
+
+The [MAVSDK failure plugin](https://mavsdk.mavlink.io/main/en/cpp/api_reference/classmavsdk_1_1_failure.html) can be used to programmatically inject failures.
+It is used in [PX4 Integration Testing](../test_and_ci/integration_testing_mavsdk.md) to simulate failure cases (for example, see [PX4-Autopilot/test/mavsdk_tests/autopilot_tester.cpp](https://github.com/PX4/PX4-Autopilot/blob/main/test/mavsdk_tests/autopilot_tester.cpp)).
+
+The plugin API is a direct mapping of the failure command shown above, with a few additional error signals related to the connection.
+
+## Example: RC signal
To simulate losing RC signal without having to turn off your RC controller:
-1. Enable the parameter [SYS_FAILURE_EN](../advanced_config/parameter_reference.md#SYS_FAILURE_EN). And specifically to turn off motors also [CA_FAILURE_MODE](../advanced_config/parameter_reference.md#CA_FAILURE_MODE).
+1. Enable the [SYS_FAILURE_EN](../advanced_config/parameter_reference.md#SYS_FAILURE_EN) parameter.
2. Enter the following commands on the MAVLink console or SITL _pxh shell_:
```sh
@@ -76,9 +83,18 @@ To simulate losing RC signal without having to turn off your RC controller:
failure rc_signal ok
```
-## MAVSDK 실패 플러그인
+## Example: Motor
-The [MAVSDK failure plugin](https://mavsdk.mavlink.io/main/en/cpp/api_reference/classmavsdk_1_1_failure.html) can be used to programmatically inject failures.
-It is used in [PX4 Integration Testing](../test_and_ci/integration_testing_mavsdk.md) to simulate failure cases (for example, see [PX4-Autopilot/test/mavsdk_tests/autopilot_tester.cpp](https://github.com/PX4/PX4-Autopilot/blob/main/test/mavsdk_tests/autopilot_tester.cpp)).
+To stop a motor mid-flight without the system anticipating it or excluding it from allocation effectiveness:
-The plugin API is a direct mapping of the failure command shown above, with a few additional error signals related to the connection.
+1. Enable the [SYS_FAILURE_EN](../advanced_config/parameter_reference.md#SYS_FAILURE_EN) parameter.
+2. Enable [CA_FAILURE_MODE](../advanced_config/parameter_reference.md#CA_FAILURE_MODE) parameter to allow turning off motors.
+3. Enter the following commands on the MAVLink console or SITL _pxh shell_:
+
+ ```sh
+ # Turn off first motor
+ failure motor off -i 1
+
+ # Turn it back on
+ failure motor ok -i 1
+ ```
diff --git a/docs/ko/dev_log/logging.md b/docs/ko/dev_log/logging.md
index 4373a1e946..527e053184 100644
--- a/docs/ko/dev_log/logging.md
+++ b/docs/ko/dev_log/logging.md
@@ -160,7 +160,7 @@ ulog 스트리밍을 지원하는 다양한 클라이언트가 있습니다.
- If log streaming does not start, make sure the `logger` is running (see above), and inspect the console output while starting.
- 그래도 작동하지 않으면, MAVLink 2를 사용하고 있는지 확인하십시오.
- Enforce it by setting `MAV_PROTO_VER` to 2.
+ `MAV_PROTO_VER` needs to be set to 2.
- Log streaming uses a maximum of 70% of the configured MAVLink rate (`-r` parameter).
더 큰 전송율이 요구되는 상황에서는, 메세지가 사라집니다.
The currently used percentage can be inspected with `mavlink status` (1.8% is used in this example):
diff --git a/docs/ko/dronecan/ark_cannode.md b/docs/ko/dronecan/ark_cannode.md
index d87becac70..918d210e8f 100644
--- a/docs/ko/dronecan/ark_cannode.md
+++ b/docs/ko/dronecan/ark_cannode.md
@@ -83,9 +83,10 @@ This is done using the the parameters named like `UAVCAN_SUB_*` in the parameter
On the ARK CANnode, you may need to configure the following parameters:
-| 매개변수 | 설명 |
-| -------------------------------------------------------------------------------------------------------------------- | --------------------------------------------- |
-| [CANNODE_TERM](../advanced_config/parameter_reference.md#CANNODE_TERM) | CAN built-in bus termination. |
+| 매개변수 | 설명 |
+| -------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| [CANNODE_NODE_ID](../advanced_config/parameter_reference.md#CANNODE_NODE_ID) | CAN node ID (0 for dynamic allocation). If set to 0 (default), dynamic node allocation is used. Set to 1-127 to use a static node ID. |
+| [CANNODE_TERM](../advanced_config/parameter_reference.md#CANNODE_TERM) | CAN built-in bus termination. |
## LED 신호의 의미
diff --git a/docs/ko/dronecan/ark_flow.md b/docs/ko/dronecan/ark_flow.md
index 780cd8a9bd..17766bbdb6 100644
--- a/docs/ko/dronecan/ark_flow.md
+++ b/docs/ko/dronecan/ark_flow.md
@@ -109,9 +109,10 @@ When optical flow is the only source of horizontal position/velocity, then lower
On the ARK Flow, you may need to configure the following parameters:
-| 매개변수 | 설명 |
-| -------------------------------------------------------------------------------------------------------------------- | --------------------------------------------- |
-| [CANNODE_TERM](../advanced_config/parameter_reference.md#CANNODE_TERM) | CAN built-in bus termination. |
+| 매개변수 | 설명 |
+| -------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| [CANNODE_NODE_ID](../advanced_config/parameter_reference.md#CANNODE_NODE_ID) | CAN node ID (0 for dynamic allocation). If set to 0 (default), dynamic node allocation is used. Set to 1-127 to use a static node ID. |
+| [CANNODE_TERM](../advanced_config/parameter_reference.md#CANNODE_TERM) | CAN built-in bus termination. |
## LED 신호의 의미
diff --git a/docs/ko/dronecan/ark_flow_mr.md b/docs/ko/dronecan/ark_flow_mr.md
index 6ca91d771d..c9e0bbced3 100644
--- a/docs/ko/dronecan/ark_flow_mr.md
+++ b/docs/ko/dronecan/ark_flow_mr.md
@@ -104,9 +104,10 @@ Set the following parameters in _QGroundControl_:
You may need to [configure the following parameters](../dronecan/index.md#qgc-cannode-parameter-configuration) on the ARK Flow MR itself:
-| 매개변수 | 설명 |
-| -------------------------------------------------------------------------------------------------------------------- | --------------------------------------------- |
-| [CANNODE_TERM](../advanced_config/parameter_reference.md#CANNODE_TERM) | CAN built-in bus termination. |
+| 매개변수 | 설명 |
+| -------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| [CANNODE_NODE_ID](../advanced_config/parameter_reference.md#CANNODE_NODE_ID) | CAN node ID (0 for dynamic allocation). If set to 0 (default), dynamic node allocation is used. Set to 1-127 to use a static node ID. |
+| [CANNODE_TERM](../advanced_config/parameter_reference.md#CANNODE_TERM) | CAN built-in bus termination. |
## LED 신호의 의미
diff --git a/docs/ko/dronecan/ark_gps.md b/docs/ko/dronecan/ark_gps.md
index 9d604f745d..4bcd150a6d 100644
--- a/docs/ko/dronecan/ark_gps.md
+++ b/docs/ko/dronecan/ark_gps.md
@@ -91,9 +91,17 @@ If the sensor is not centred within the vehicle you will also need to define sen
- Enable GPS yaw fusion by setting bit 3 of [EKF2_GPS_CTRL](../advanced_config/parameter_reference.md#EKF2_GPS_CTRL) to true.
- Enable [UAVCAN_SUB_GPS](../advanced_config/parameter_reference.md#UAVCAN_SUB_GPS), [UAVCAN_SUB_MAG](../advanced_config/parameter_reference.md#UAVCAN_SUB_MAG), and [UAVCAN_SUB_BARO](../advanced_config/parameter_reference.md#UAVCAN_SUB_BARO).
-- Set [CANNODE_TERM](../advanced_config/parameter_reference.md#CANNODE_TERM) to `1` if this is that last node on the CAN bus.
- The parameters [EKF2_GPS_POS_X](../advanced_config/parameter_reference.md#EKF2_GPS_POS_X), [EKF2_GPS_POS_Y](../advanced_config/parameter_reference.md#EKF2_GPS_POS_Y) and [EKF2_GPS_POS_Z](../advanced_config/parameter_reference.md#EKF2_GPS_POS_Z) can be set to account for the offset of the ARK GPS from the vehicles centre of gravity.
+### ARK GPS Configuration
+
+You may need to [configure the following parameters](../dronecan/index.md#qgc-cannode-parameter-configuration) on the ARK GPS itself:
+
+| 매개변수 | 설명 |
+| -------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| [CANNODE_NODE_ID](../advanced_config/parameter_reference.md#CANNODE_NODE_ID) | CAN node ID (0 for dynamic allocation). If set to 0 (default), dynamic node allocation is used. Set to 1-127 to use a static node ID. |
+| [CANNODE_TERM](../advanced_config/parameter_reference.md#CANNODE_TERM) | CAN built-in bus termination. Set to `1` if this is the last node on the CAN bus. |
+
## LED 신호의 의미
You will see green, blue and red LEDs on the ARK GPS when it is being flashed, and a blinking green LED if it is running properly.
diff --git a/docs/ko/dronecan/ark_rtk_gps.md b/docs/ko/dronecan/ark_rtk_gps.md
index 917dd95e30..c8e8a5ce5e 100644
--- a/docs/ko/dronecan/ark_rtk_gps.md
+++ b/docs/ko/dronecan/ark_rtk_gps.md
@@ -85,7 +85,15 @@ You need to set necessary [DroneCAN](index.md) parameters and define offsets if
- Enable GPS blending to ensure the heading is always published by setting [SENS_GPS_MASK](../advanced_config/parameter_reference.md#SENS_GPS_MASK) to 7 (all three bits checked).
- Enable [UAVCAN_SUB_GPS](../advanced_config/parameter_reference.md#UAVCAN_SUB_GPS), [UAVCAN_SUB_MAG](../advanced_config/parameter_reference.md#UAVCAN_SUB_MAG), and [UAVCAN_SUB_BARO](../advanced_config/parameter_reference.md#UAVCAN_SUB_BARO).
- The parameters [EKF2_GPS_POS_X](../advanced_config/parameter_reference.md#EKF2_GPS_POS_X), [EKF2_GPS_POS_Y](../advanced_config/parameter_reference.md#EKF2_GPS_POS_Y) and [EKF2_GPS_POS_Z](../advanced_config/parameter_reference.md#EKF2_GPS_POS_Z) can be set to account for the offset of the ARK RTK GPS from the vehicles centre of gravity.
-- Set [CANNODE_TERM](../advanced_config/parameter_reference.md#CANNODE_TERM) to `1` on the GPS if this it that last node on the CAN bus.
+
+### ARK RTK GPS Configuration
+
+You may need to [configure the following parameters](../dronecan/index.md#qgc-cannode-parameter-configuration) on the ARK RTK GPS itself:
+
+| 매개변수 | 설명 |
+| -------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| [CANNODE_NODE_ID](../advanced_config/parameter_reference.md#CANNODE_NODE_ID) | CAN node ID (0 for dynamic allocation). If set to 0 (default), dynamic node allocation is used. Set to 1-127 to use a static node ID. |
+| [CANNODE_TERM](../advanced_config/parameter_reference.md#CANNODE_TERM) | CAN built-in bus termination. Set to `1` if this is the last node on the CAN bus. |
### Setting Up Rover and Fixed Base
diff --git a/docs/ko/dronecan/index.md b/docs/ko/dronecan/index.md
index f5b9efe0ce..975a7762fa 100644
--- a/docs/ko/dronecan/index.md
+++ b/docs/ko/dronecan/index.md
@@ -102,6 +102,10 @@ If the DNA is still running and certain devices need to be manually configured,
:::info
The PX4 node ID can be configured using the [UAVCAN_NODE_ID](../advanced_config/parameter_reference.md#UAVCAN_NODE_ID) parameter.
The parameter is set to 1 by default.
+
+Devices running the [PX4 DroneCAN firmware](px4_cannode_fw.md) (such as [ARK CANnode](ark_cannode.md)) can use the
+[CANNODE_NODE_ID](../advanced_config/parameter_reference.md#CANNODE_NODE_ID) parameter to set a static node ID.
+Set it to 0 (default) for dynamic allocation, or to a value between 1-127 to use a specific static node ID.
:::
:::warning
@@ -288,6 +292,11 @@ For example, the screenshot below shows the parameters for a CAN GPS with node i

+Common CANNODE parameters that you can configure include:
+
+- [CANNODE_NODE_ID](../advanced_config/parameter_reference.md#CANNODE_NODE_ID): Set a static node ID (1-127) or use 0 for dynamic allocation. See [PX4 DroneCAN Firmware > Static Node ID](px4_cannode_fw.md#static-node-id) for more information.
+- [CANNODE_TERM](../advanced_config/parameter_reference.md#CANNODE_TERM): Enable CAN bus termination on the last node in the bus.
+
## Device Specific Setup
Most DroneCAN nodes require no further setup, unless specifically noted in their device-specific documentation.
diff --git a/docs/ko/dronecan/px4_cannode_fw.md b/docs/ko/dronecan/px4_cannode_fw.md
index 65262d4152..3e29a57f5a 100644
--- a/docs/ko/dronecan/px4_cannode_fw.md
+++ b/docs/ko/dronecan/px4_cannode_fw.md
@@ -20,6 +20,26 @@ make ark_can-flow_default
This will create an output in **build/ark_can-flow_default** named **XX-X.X.XXXXXXXX.uavcan.bin**. Follow the instructions at [DroneCAN firmware update](index.md#firmware-update) to flash the firmware.
+## 설정
+
+### Static Node ID
+
+By default, DroneCAN devices use [Dynamic Node Allocation (DNA)](index.md#node-id-allocation) to automatically obtain a unique node ID from the flight controller.
+However, you can configure a static node ID using the [CANNODE_NODE_ID](../advanced_config/parameter_reference.md#CANNODE_NODE_ID) parameter.
+
+To configure a static node ID:
+
+1. Set [CANNODE_NODE_ID](../advanced_config/parameter_reference.md#CANNODE_NODE_ID) to a value between 1-127 using [QGroundControl](index.md#qgc-cannode-parameter-configuration)
+2. Reboot the device
+
+To return to dynamic allocation, set `CANNODE_NODE_ID` back to 0.
+Note that when switching back to dynamic allocation, the flight controller will typically continue to allocate the same node ID that was previously used (this is normal DNA behavior).
+
+:::warning
+When using static node IDs, you must ensure that each device on the CAN bus has a unique node ID.
+Configuring two devices with the same ID will cause communication conflicts.
+:::
+
## 개발자 정보
This section has information that is relevant to developers who want to add support for new DroneCAN hardware to the PX4 Autopilot.
diff --git a/docs/ko/flight_modes_mc/altitude.md b/docs/ko/flight_modes_mc/altitude.md
index 36aff1468f..b1d4bcadae 100644
--- a/docs/ko/flight_modes_mc/altitude.md
+++ b/docs/ko/flight_modes_mc/altitude.md
@@ -43,9 +43,8 @@ The horizontal position of the vehicle can move due to wind (or pre-existing mom
The mode is affected by the following parameters:
-| 매개변수 | 설명 |
-| ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
-| [MPC_Z_VEL_MAX_UP](../advanced_config/parameter_reference.md#MPC_Z_VEL_MAX_UP) | 최대 수직 상승 속도. 기본값: 3 m/s. |
-| [MPC_Z_VEL_MAX_DN](../advanced_config/parameter_reference.md#MPC_Z_VEL_MAX_DN) | 최대 수직 하강 속도. 기본값: 1 m/s. |
-| `RCX_DZ` | RC dead zone for channel X. The value of X for throttle will depend on the value of [RC_MAP_THROTTLE](../advanced_config/parameter_reference.md#RC_MAP_THROTTLE). For example, if the throttle is channel 4 then [RC4_DZ](../advanced_config/parameter_reference.md#RC4_DZ) specifies the deadzone. |
-| `MPC_XXXX` | 대부분의 MPC_xxx 매개 변수는이 모드에서 비행 동작에 어느정도 영향을 미칩니다 . For example, [MPC_THR_HOVER](../advanced_config/parameter_reference.md#MPC_THR_HOVER) defines the thrust at which a vehicle will hover. |
+| 매개변수 | 설명 |
+| ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| [MPC_Z_VEL_MAX_UP](../advanced_config/parameter_reference.md#MPC_Z_VEL_MAX_UP) | 최대 수직 상승 속도. 기본값: 3 m/s. |
+| [MPC_Z_VEL_MAX_DN](../advanced_config/parameter_reference.md#MPC_Z_VEL_MAX_DN) | 최대 수직 하강 속도. 기본값: 1 m/s. |
+| `MPC_XXXX` | 대부분의 MPC_xxx 매개 변수는이 모드에서 비행 동작에 어느정도 영향을 미칩니다 . For example, [MPC_THR_HOVER](../advanced_config/parameter_reference.md#MPC_THR_HOVER) defines the thrust at which a vehicle will hover. |
diff --git a/docs/ko/flight_modes_mc/position.md b/docs/ko/flight_modes_mc/position.md
index a86b9dbea4..a70a503627 100644
--- a/docs/ko/flight_modes_mc/position.md
+++ b/docs/ko/flight_modes_mc/position.md
@@ -67,7 +67,6 @@ All the parameters in the [Multicopter Position Control](../advanced_config/para
| [MPC_Z_VEL_MAX_DN](../advanced_config/parameter_reference.md#MPC_Z_VEL_MAX_DN) | 최대 수직 하강 속도. 기본값: 1 m/s. |
| [MPC_LAND_ALT1](../advanced_config/parameter_reference.md#MPC_LAND_ALT1) | Altitude for triggering first phase of slow landing. Below this altitude descending velocity gets limited to a value between [MPC_Z_VEL_MAX_DN](#MPC_Z_VEL_MAX_DN) (or `MPC_Z_V_AUTO_DN`) and [MPC_LAND_SPEED](#MPC_LAND_SPEED). Value needs to be higher than [MPC_LAND_ALT2](#MPC_LAND_ALT2). Default 10m. |
| [MPC_LAND_ALT2](../advanced_config/parameter_reference.md#MPC_LAND_ALT2) | Altitude for second phase of slow landing. Below this altitude descending velocity gets limited to [`MPC_LAND_SPEED`](#MPC_LAND_SPEED). Value needs to be lower than "MPC_LAND_ALT1". Default 5m. |
-| `RCX_DZ` | RC dead zone for channel X. The value of X for throttle will depend on the value of [RC_MAP_THROTTLE](../advanced_config/parameter_reference.md#RC_MAP_THROTTLE). For example, if the throttle is channel 4 then [RC4_DZ](../advanced_config/parameter_reference.md#RC4_DZ) specifies the deadzone. |
| `MPC_XXXX` | 대부분의 MPC_xxx 매개 변수는이 모드에서 비행 동작에 어느정도 영향을 미칩니다 . For example, [MPC_THR_HOVER](../advanced_config/parameter_reference.md#MPC_THR_HOVER) defines the thrust at which a vehicle will hover. |
| [MPC_POS_MODE](../advanced_config/parameter_reference.md#MPC_POS_MODE) | Stick input to movement translation strategy. From PX4 v1.12 the default (`Acceleration based`) is that stick position controls acceleration (in a similar way to a car accelerator pedal). Other options allow stick deflection to directly control speed over ground, with and without smoothing and acceleration limits. |
| [MPC_ACC_HOR_MAX](../advanced_config/parameter_reference.md#MPC_ACC_HOR_MAX) | Maximum horizontal acceleration. |
diff --git a/docs/ko/gps_compass/rtk_gps.md b/docs/ko/gps_compass/rtk_gps.md
index 1d40ffce20..279173c618 100644
--- a/docs/ko/gps_compass/rtk_gps.md
+++ b/docs/ko/gps_compass/rtk_gps.md
@@ -123,35 +123,35 @@ This should be set by default, but if not, follow the [MAVLink2 configuration in
RTK GPS 연결은 기본적으로 플러그앤플레이입니다.
1. Start _QGroundControl_ and attach the base RTK GPS via USB to the ground station.
- 장치가 자동으로 인식됩니다.
+ 장치가 자동으로 인식됩니다.
2. Start the vehicle and make sure it is connected to _QGroundControl_.
- :::tip
- _QGroundControl_ displays an RTK GPS status icon in the top icon bar while an RTK GPS device is connected (in addition to the normal GPS status icon).
- RTK가 설정되는 동안 아이콘은 빨간색으로 표시되고, RTK GPS가 활성화되면 흰색으로 바뀝니다.
- 아이콘을 클릭하여 현재 상태와 RTK 정확도를 확인할 수 있습니다.
+ :::tip
+ _QGroundControl_ displays an RTK GPS status icon in the top icon bar while an RTK GPS device is connected (in addition to the normal GPS status icon).
+ RTK가 설정되는 동안 아이콘은 빨간색으로 표시되고, RTK GPS가 활성화되면 흰색으로 바뀝니다.
+ 아이콘을 클릭하여 현재 상태와 RTK 정확도를 확인할 수 있습니다.
:::
3. _QGroundControl_ then starts the RTK setup process (known as "Survey-In").
- Survey-In은 기지국의 정확한 위치 추정치를 획득을 위한 시작 절차입니다.
- The process typically takes several minutes (it ends after reaching the minimum time and accuracy specified in the [RTK settings](#rtk-gps-settings)).
+ Survey-In은 기지국의 정확한 위치 추정치를 획득을 위한 시작 절차입니다.
+ The process typically takes several minutes (it ends after reaching the minimum time and accuracy specified in the [RTK settings](#rtk-gps-settings)).
- RTK GPS 상태 아이콘을 클릭하여 진행 상황을 추적할 수 있습니다.
+ RTK GPS 상태 아이콘을 클릭하여 진행 상황을 추적할 수 있습니다.
- 
+ 
4. Survey-in이 완료되면 :
- - The RTK GPS icon changes to white and _QGroundControl_ starts to stream position data to the vehicle:
+ - The RTK GPS icon changes to white and _QGroundControl_ starts to stream position data to the vehicle:
- 
+ 
- - 기체의 GPS가 RTK 모드로 전환됩니다.
- The new mode is displayed in the _normal_ GPS status icon (`3D RTK GPS Lock`):
+ - 기체의 GPS가 RTK 모드로 전환됩니다.
+ The new mode is displayed in the _normal_ GPS status icon (`3D RTK GPS Lock`):
- 
+ 
### GPS를 Yaw/Heading 소스로 설정
@@ -206,7 +206,7 @@ MAVLink2 프로토콜은 낮은 대역폭 채널을 보다 효율적으로 사
MAVLink2가 사용되는 지 확인하려면 :
- Update the telemetry module firmware to the latest version (see [QGroundControl > Setup > Firmware](https://docs.qgroundcontrol.com/master/en/qgc-user-guide/setup_view/firmware.html)).
-- Set [MAV_PROTO_VER](../advanced_config/parameter_reference.md#MAV_PROTO_VER) to 2 (see [QGroundControl Setup > Parameters](https://docs.qgroundcontrol.com/master/en/qgc-user-guide/setup_view/parameters.html))
+- Ensure [MAV_PROTO_VER](../advanced_config/parameter_reference.md#MAV_PROTO_VER) is set to 2 (see [QGroundControl Setup > Parameters](https://docs.qgroundcontrol.com/master/en/qgc-user-guide/setup_view/parameters.html))
#### 튜닝
diff --git a/docs/ko/index.md b/docs/ko/index.md
index 0e579b2428..4ae116f0c7 100644
--- a/docs/ko/index.md
+++ b/docs/ko/index.md
@@ -1,3 +1,8 @@
+
+
# PX4 Autopilot 사용자 안내서
@@ -9,17 +14,22 @@ PX4 is the _Professional Autopilot_.
세계 각국에서 활동중인 여러 단체들의 지원을 받을 수 있습니다. PX4는 레이싱 드론, 운송용 드론, 자동차와 선박 등의 다양한 운송체에 적용하여 사용할 수 있습니다.
:::tip
-This guide contains everything you need to assemble, configure, and safely fly a PX4-based vehicle. 이 프로젝트에 기여하시려면, Check out the [Development](development/development.md) section.
-
+This guide contains everything you need to assemble, configure, and safely fly a PX4-based vehicle.
+이 프로젝트에 기여하시려면, Check out the [Development](development/development.md) section.
:::
+
+
:::warning
+
This guide is for the _development_ version of PX4 (`main` branch).
Use the **Version** selector to find the current _stable_ version.
Documented changes since the stable release are captured in the evolving [release note](releases/main.md).
:::
+
+
## 시작하기
[Basic Concepts](getting_started/px4_basic_concepts.md) should be read by all users!
diff --git a/docs/ko/middleware/dds_topics.md b/docs/ko/middleware/dds_topics.md
index 5bcfb87d5d..ce7533dcfc 100644
--- a/docs/ko/middleware/dds_topics.md
+++ b/docs/ko/middleware/dds_topics.md
@@ -4,7 +4,7 @@
This document is [auto-generated](https://github.com/PX4/PX4-Autopilot/blob/main/Tools/msg/generate_msg_docs.py) from the source code.
:::
-The [dds_topics.yaml](https://github.com/PX4/PX4-Autopilot/blob/main/src/modules/uxrce_dds_client/dds_topics.yaml) file specifies which uORB message definitions are compiled into the [uxrce_dds_client](../modules/modules_system.md#uxrce-dds-client) module when [PX4 is built](../middleware/uxrce_dds.md#code-generation), and hence which topics are available for ROS 2 applications to subscribe or publish (by default).
+The [dds_topics.yaml](https://github.com/PX4/PX4-Autopilot/blob/main/src/modules/uxrce_dds_client/dds_topics.yaml) file specifies which uORB message definitions are compiled into the [uxrce_dds_client](../modules/modules_system.md#uxrce-dds-client) and/or [zenoh](../modules/modules_driver.md#zenoh) module when [PX4 is built](../middleware/uxrce_dds.md#code-generation), and hence which topics are available for ROS 2 applications to subscribe or publish (by default).
This document shows a markdown-rendered version of [dds_topics.yaml](https://github.com/PX4/PX4-Autopilot/blob/main/src/modules/uxrce_dds_client/dds_topics.yaml), listing the publications, subscriptions, and so on.
diff --git a/docs/ko/middleware/zenoh.md b/docs/ko/middleware/zenoh.md
new file mode 100644
index 0000000000..71ca88d941
--- /dev/null
+++ b/docs/ko/middleware/zenoh.md
@@ -0,0 +1,201 @@
+# Zenoh (PX4 ROS 2 rmw_zenoh)
+
+
+
+:::warning
+실험
+At the time of writing, PX4 Zenoh-pico is experimental, and hence subject to change.
+:::
+
+PX4 supports Zenoh as an alternative mechanism (to DDS) for bridging uORB topics to [ROS 2](../ros2/user_guide.md) (via the ROS 2 [`rmw_zenoh`](https://github.com/ros2/rmw_zenoh) middleware).
+This allows uORB messages to be published and subscribed on a companion computer as though they were ROS 2 topics.
+It provides a fast and lightweight way to connect PX4 to ROS 2, making it easier for applications to access vehicle telemetry and send control commands.
+
+The following guide describes the architecture and various options for setting up the Zenoh client and router.
+In particular, it covers the options that are most important to PX4 users exploring Zenoh as an alternative communication layer for ROS 2.
+
+## 아키텍쳐
+
+The Zenoh-based middleware consists of a client running on PX4 and a Zenoh router running on the companion computer, with bi-directional data exchange between them over a UART, TCP, UDP, or multicast-UDP link.
+The router acts as a broker and discovery service, enabling PX4 to publish and subscribe to topics in the global Zenoh data space.
+This allows seamless integration with ROS 2 nodes using [`rmw_zenoh`](https://github.com/ros2/rmw_zenoh), and supports flexible deployment across distributed systems.
+
+
+
+The client is the _PX4 Zenoh-Pico Node_ referred to above, which is implemented in the [PX4 `zenoh` module](../modules/modules_driver.md#zenoh).
+This is based on Zenoh-Pico, a minimalistic version of [Eclipse Zenoh](https://zenoh.io/) (a data-centric protocol designed for real-time, distributed, and resource-constrained environments).
+
+The router suggested above is [zenohd](https://github.com/eclipse-zenoh/zenoh/tree/main/zenohd).
+
+:::info
+UART is supported by Zenoh but has not yet implemented in the PX4 Zenoh-Pico node.
+:::
+
+## ROS 2 Zenoh Bring-up on Linux Companion
+
+In order for PX4 uORB topics to be shared with ROS 2 applications, you will need the PX4 Zenoh-Pico Node client running on your FMU, connected to a Zenoh router running on the companion computer (or elsewhere in the network).
+
+First select Zenoh as the ROS 2 transport by setting the `RMW_IMPLEMENTATION` environment variable as shown:
+
+```sh
+export RMW_IMPLEMENTATION=rmw_zenoh_cpp
+```
+
+Then start the Zenoh router using the command:
+
+```sh
+ros2 run rmw_zenoh_cpp rmw_zenohd
+```
+
+For more information about the Zenoh Router see the [rmw_zenoh](https://github.com/ros2/rmw_zenoh?tab=readme-ov-file#start-the-zenoh-router) documentation.
+
+## PX4 Zenoh-Pico Node Setup
+
+### PX4 Firmware
+
+Before setting up the Zenoh communication, first make sure that your firmware contains the driver that implements the [`zenoh` driver](../modules/modules_driver.md#zenoh), which provides the implementation of the _PX4 Zenoh-Pico Node_.
+
+You can check if the module is present on your board by searching for the key `CONFIG_MODULES_ZENOH=y` in your board's `default.px4board` KConfig file.
+For example, you can see that the module is present in `px4_fmu-v6xrt` build targets from [/boards/px4/fmu-v6xrt/default.px4board](https://github.com/PX4/PX4-Autopilot/blob/main/boards/px4/fmu-v6xrt/default.px4board#L91).
+
+If `CONFIG_MODULES_ZENOH=y` is not preset you can add this key to your board configuration and rebuild.
+Note that due to flash constraints you may need to remove other components in order to include the module (such as the [`uxrce_dds_client` module](../modules/modules_system.md#uxrce-dds-client), which you will not need if you are using Zenoh).
+
+The table below shows some of the PX4 targets that include Zenoh by default.
+
+| PX4 Target | 참고 |
+| ---------------------- | -------------------------------------------------------------------------------------------------------------- |
+| `px4_fmu-v6xrt` | For [FMUv6X-RT](../flight_controller/nxp_mr_vmu_rt1176.md) (reference platform for testing) |
+| `nxp_tropic-community` | |
+| `nxp_mr-tropic` | |
+| `nxp_mr-canhubk344` | |
+| `px4_sitl_zenoh` | Zenoh-enabled simulation build |
+| `px4_fmu-v6x_zenoh` | Zenoh-enabled firmware for FMUv6X |
+
+Zenoh is not included in the default `px4_fmu-` targets for any firmware other than `px4_fmu-v6xrt` (`px4_sitl_zenoh` and `px4_fmu-v6x_zenoh` [are build variants](../dev_setup/building_px4.md#px4-make-build-targets)).
+
+:::tip
+You can check if Zenoh is present at runtime by using QGroundControl to [find the parameter](../advanced_config/parameters.md#finding-a-parameter) [ZENOH_ENABLE](../advanced_config/parameter_reference.md#ZENOH_ENABLE).
+If present, the module is installed.
+:::
+
+### Enable Zenoh on PX4 Startup
+
+Set the [ZENOH_ENABLE](../advanced_config/parameter_reference.md#ZENOH_ENABLE) parameter to `1` to enable Zenoh on PX4 startup.
+
+### Configure Zenoh Network
+
+Set up PX4 to connect to the companion computer running `zenohd`.
+
+PX4's default IP address of the Zenoh daemon host is `10.41.10.1`.
+If you're using a different IP for the Zenoh daemon, run the following command (replacing the address) in a PX4 shell and then reboot:
+
+```sh
+zenoh config net client tcp/10.41.10.1:7447#iface=eth0
+```
+
+Note that for the simulation target with Zeroh (`px4_sitl_zenoh`) you won't need to make any changes because the default IP address of the Zenoh daemon is set to `localhost`.
+
+:::warning
+Any changes to the network configuration require a PX4 system reboot to take effect.
+:::
+
+:::tip
+See [PX4 Ethernet Setup](../advanced_config/ethernet_setup.md) for more information about Ethernet configuration.
+:::
+
+### PX4 Zenoh-pico Node configuration
+
+The **default configuration** is auto-generated from the [dds_topics.yaml](../middleware/dds_topics.md) file in the PX4 repository.
+This file specifies which uORB message definitions are to be published/subscribed by ROS 2 applications, and hence (indirectly) which topics are compiled into the zenoh module.
+
+To inspect the current Zenoh configuration:
+
+```sh
+zenoh config
+```
+
+The PX4 Zenoh-pico node stores its configuration on the **SD card** under the `zenoh` folder.
+This folder contains three key files:
+
+- **`net.txt`** – Defines the **Zenoh network configuration**.
+- **`pub.csv`** – Maps **uORB topics to ROS2 topics** (used for publishing).
+- **`sub.csv`** – Maps **ROS2 topics to uORB topics** (used for subscribing).
+
+### 4. Modifying Topic Mappings
+
+Zenoh topic mappings define how data flows between PX4's internal uORB topics and external ROS2 topics via Zenoh.
+These mappings are stored in `pub.csv` and `sub.csv` on the SD card, and can be modified at runtime using the `zenoh config` CLI tool.
+
+:::warning
+Any changes to the topic mappings require a PX4 system reboot to take effect.
+:::
+
+There are two types of mappings you can modify:
+
+- **Publisher mappings**: Forward data from a uORB topic to a Zenoh topic.
+- **Subscriber mappings**: Receive data from a Zenoh topic and publish it to a uORB topic.
+
+The main operations and their commands are:
+
+- Publish a uORB topic to a Zenoh topic:
+
+ ```sh
+ zenoh config add publisher [uorb_instance]
+ ```
+
+- Subscribe to a Zenoh topic and forward it to a uORB topic:
+
+ ```sh
+ zenoh config add subscriber [uorb_instance]
+ ```
+
+- Remove existing mappings:
+
+ ```sh
+ zenoh config delete publisher
+ zenoh config delete subscriber
+ ```
+
+After modifying the mappings, reboot PX4 to apply the changes.
+The updated configuration will be loaded from the SD card during startup.
+
+## Communicating with PX4 from ROS 2 via Zenoh
+
+Once your PX4 FMU is publishing data into ROS 2, you can inspect the available topics and their contents using standard ROS 2 CLI tools:
+
+```sh
+ros2 topic list
+```
+
+Check topic type and publishers/subscribers:
+
+```sh
+ros2 topic info -v /fmu/out/vehicle_status
+Type: px4_msgs/msg/VehicleStatus
+
+Publisher count: 1
+
+Node name: px4_aabbcc00000000000000000000000000
+Node namespace: /
+Topic type: px4_msgs/msg/VehicleStatus
+Topic type hash: RIHS01_828bddbb7d4c2aa6ad93757955f6893be1ec5d8f11885ec7715bcdd76b5226c9
+Endpoint type: PUBLISHER
+GID: 82.99.74.2c.b6.7d.93.44.91.4d.fe.14.93.58.40.16
+QoS profile:
+ Reliability: RELIABLE
+ History (Depth): KEEP_LAST (7)
+ Durability: VOLATILE
+ Lifespan: Infinite
+ Deadline: Infinite
+ Liveliness: AUTOMATIC
+ Liveliness lease duration: Infinite
+
+Subscription count: 0
+```
+
+### PX4 ROS 2 Interface with Zenoh
+
+The [PX4 ROS 2 Interface Library](../ros2/px4_ros2_interface_lib.md) works out of the box with Zenoh as a transport backend.
+This means you can publish and subscribe to PX4 topics over Zenoh without changing your ROS 2 nodes or dealing with DDS configuration.
+For setup details and supported message types, refer to the [PX4 ROS 2 Interface Library](../ros2/px4_ros2_interface_lib.md).
diff --git a/docs/ko/modules/modules_driver_distance_sensor.md b/docs/ko/modules/modules_driver_distance_sensor.md
index 6e61c2ef42..3d34e69be4 100644
--- a/docs/ko/modules/modules_driver_distance_sensor.md
+++ b/docs/ko/modules/modules_driver_distance_sensor.md
@@ -104,7 +104,7 @@ Source: [drivers/distance_sensor/lightware_laser_i2c](https://github.com/PX4/PX4
### 설명
-I2C bus driver for Lightware SFxx series LIDAR rangefinders: SF10/a, SF10/b, SF10/c, SF11/c, SF/LW20.
+I2C bus driver for Lightware SFxx series LIDAR rangefinders: SF10/a, SF10/b, SF10/c, SF11/c, SF/LW20, SF30/d.
Setup/usage information: https://docs.px4.io/main/en/sensor/sfxx_lidar.html
diff --git a/docs/ko/msg_docs/AirspeedValidated.md b/docs/ko/msg_docs/AirspeedValidated.md
index 9034960626..61f607e7fa 100644
--- a/docs/ko/msg_docs/AirspeedValidated.md
+++ b/docs/ko/msg_docs/AirspeedValidated.md
@@ -1,29 +1,39 @@
# AirspeedValidated (UORB message)
+Validated airspeed
+
+Provides information about airspeed (indicated, true, calibrated) and the source of the data.
+Used by controllers, estimators and for airspeed reporting to operator.
+
[source file](https://github.com/PX4/PX4-Autopilot/blob/main/msg/versioned/AirspeedValidated.msg)
```c
+# Validated airspeed
+#
+# Provides information about airspeed (indicated, true, calibrated) and the source of the data.
+# Used by controllers, estimators and for airspeed reporting to operator.
+
+
uint32 MESSAGE_VERSION = 1
-uint64 timestamp # time since system start (microseconds)
+uint64 timestamp # [us] Time since system start
-float32 indicated_airspeed_m_s # [m/s] Indicated airspeed (IAS), set to NAN if invalid
-float32 calibrated_airspeed_m_s # [m/s] Calibrated airspeed (CAS), set to NAN if invalid
-float32 true_airspeed_m_s # [m/s] True airspeed (TAS), set to NAN if invalid
+float32 indicated_airspeed_m_s # [m/s] [@invalid NaN] Indicated airspeed (IAS)
+float32 calibrated_airspeed_m_s # [m/s] [@invalid NaN] Calibrated airspeed (CAS)
+float32 true_airspeed_m_s # [m/s] [@invalid NaN] True airspeed (TAS)
-int8 airspeed_source # Source of currently published airspeed values
-int8 DISABLED = -1
-int8 GROUND_MINUS_WIND = 0
-int8 SENSOR_1 = 1
-int8 SENSOR_2 = 2
-int8 SENSOR_3 = 3
-int8 SYNTHETIC = 4
+int8 airspeed_source # [@enum SOURCE] Source of currently published airspeed values
+int8 SOURCE_DISABLED = -1 # Disabled
+int8 SOURCE_GROUND_MINUS_WIND = 0 # Ground speed minus wind
+int8 SOURCE_SENSOR_1 = 1 # Sensor 1
+int8 SOURCE_SENSOR_2 = 2 # Sensor 2
+int8 SOURCE_SENSOR_3 = 3 # Sensor 3
+int8 SOURCE_SYNTHETIC = 4 # Synthetic airspeed
-# debug states
-float32 calibrated_ground_minus_wind_m_s # CAS calculated from groundspeed - windspeed, where windspeed is estimated based on a zero-sideslip assumption, set to NAN if invalid
-float32 calibraded_airspeed_synth_m_s # synthetic airspeed in m/s, set to NAN if invalid
-float32 airspeed_derivative_filtered # filtered indicated airspeed derivative [m/s/s]
-float32 throttle_filtered # filtered fixed-wing throttle [-]
-float32 pitch_filtered # filtered pitch [rad]
+float32 calibrated_ground_minus_wind_m_s # [m/s] [@invalid NaN] CAS calculated from groundspeed - windspeed, where windspeed is estimated based on a zero-sideslip assumption
+float32 calibraded_airspeed_synth_m_s # [m/s] [@invalid NaN] Synthetic airspeed
+float32 airspeed_derivative_filtered # [m/s^2] Filtered indicated airspeed derivative
+float32 throttle_filtered # [-] Filtered fixed-wing throttle
+float32 pitch_filtered # [rad] Filtered pitch
```
diff --git a/docs/ko/msg_docs/AutotuneAttitudeControlStatus.md b/docs/ko/msg_docs/AutotuneAttitudeControlStatus.md
index 734a671ffd..31a47ef204 100644
--- a/docs/ko/msg_docs/AutotuneAttitudeControlStatus.md
+++ b/docs/ko/msg_docs/AutotuneAttitudeControlStatus.md
@@ -1,42 +1,59 @@
# AutotuneAttitudeControlStatus (UORB message)
+Autotune attitude control status
+
+This message is published by the fw_autotune_attitude_control and mc_autotune_attitude_control modules when the user engages autotune,
+and is subscribed to by the respective attitude controllers to command rate setpoints.
+
+The rate_sp field is consumed by the controllers, while the remaining fields (model coefficients, gains, filters, and autotune state) are used for logging and debugging.
+
[source file](https://github.com/PX4/PX4-Autopilot/blob/main/msg/AutotuneAttitudeControlStatus.msg)
```c
-uint64 timestamp # time since system start (microseconds)
+# Autotune attitude control status
+#
+# This message is published by the fw_autotune_attitude_control and mc_autotune_attitude_control modules when the user engages autotune,
+# and is subscribed to by the respective attitude controllers to command rate setpoints.
+#
+# The rate_sp field is consumed by the controllers, while the remaining fields (model coefficients, gains, filters, and autotune state) are used for logging and debugging.
-float32[5] coeff # coefficients of the identified discrete-time model
-float32[5] coeff_var # coefficients' variance of the identified discrete-time model
-float32 fitness # fitness of the parameter estimate
-float32 innov
-float32 dt_model
+uint64 timestamp # [us] Time since system start
-float32 kc
-float32 ki
-float32 kd
-float32 kff
-float32 att_p
+float32[5] coeff # [-] Coefficients of the identified discrete-time model
+float32[5] coeff_var # [-] Coefficients' variance of the identified discrete-time model
+float32 fitness # [-] Fitness of the parameter estimate
+float32 innov # [rad/s] Innovation (residual error between model and measured output)
+float32 dt_model # [s] Model sample time used for identification
-float32[3] rate_sp
-float32 u_filt
-float32 y_filt
+float32 kc # [-] Proportional rate-loop gain (ideal form)
+float32 ki # [-] Integral rate-loop gain (ideal form)
+float32 kd # [-] Derivative rate-loop gain (ideal form)
+float32 kff # [-] Feedforward rate-loop gain
+float32 att_p # [-] Proportional attitude gain
-uint8 STATE_IDLE = 0
-uint8 STATE_INIT = 1
-uint8 STATE_ROLL = 2
-uint8 STATE_ROLL_PAUSE = 3
-uint8 STATE_PITCH = 4
-uint8 STATE_PITCH_PAUSE = 5
-uint8 STATE_YAW = 6
-uint8 STATE_YAW_PAUSE = 7
-uint8 STATE_VERIFICATION = 8
-uint8 STATE_APPLY = 9
-uint8 STATE_TEST = 10
-uint8 STATE_COMPLETE = 11
-uint8 STATE_FAIL = 12
-uint8 STATE_WAIT_FOR_DISARM = 13
+float32[3] rate_sp # [rad/s] Rate setpoint commanded to the attitude controller.
-uint8 state
+float32 u_filt # [-] Filtered input signal (normalized torque setpoint) used in system identification.
+float32 y_filt # [rad/s] Filtered output signal (angular velocity) used in system identification.
+
+uint8 state # [@enum STATE] Current state of the autotune procedure.
+uint8 STATE_IDLE = 0 # Idle (not running)
+uint8 STATE_INIT = 1 # Initialize filters and setup
+uint8 STATE_ROLL_AMPLITUDE_DETECTION = 2 # FW only: determine required excitation amplitude (roll)
+uint8 STATE_ROLL = 3 # Roll-axis excitation and model identification
+uint8 STATE_ROLL_PAUSE = 4 # Pause to return to level flight
+uint8 STATE_PITCH_AMPLITUDE_DETECTION = 5 # FW only: determine required excitation amplitude (pitch)
+uint8 STATE_PITCH = 6 # Pitch-axis excitation and model identification
+uint8 STATE_PITCH_PAUSE = 7 # Pause to return to level flight
+uint8 STATE_YAW_AMPLITUDE_DETECTION = 8 # FW only: determine required excitation amplitude (yaw)
+uint8 STATE_YAW = 9 # Yaw-axis excitation and model identification
+uint8 STATE_YAW_PAUSE = 10 # Pause to return to level flight
+uint8 STATE_VERIFICATION = 11 # Verify model and candidate gains
+uint8 STATE_APPLY = 12 # Apply gains
+uint8 STATE_TEST = 13 # Test gains in closed-loop
+uint8 STATE_COMPLETE = 14 # Tuning completed successfully
+uint8 STATE_FAIL = 15 # Tuning failed (model invalid or controller unstable)
+uint8 STATE_WAIT_FOR_DISARM = 16 # Waiting for disarm before finalizing
```
diff --git a/docs/ko/msg_docs/ControlAllocatorStatus.md b/docs/ko/msg_docs/ControlAllocatorStatus.md
index b355b772b6..4068e7b4f4 100644
--- a/docs/ko/msg_docs/ControlAllocatorStatus.md
+++ b/docs/ko/msg_docs/ControlAllocatorStatus.md
@@ -24,5 +24,6 @@ int8[16] actuator_saturation # Indicates actuator saturation status.
# Note 2: an actuator with limited dynamics can be indicated as upper-saturated even if it as not reached its maximum value.
uint16 handled_motor_failure_mask # Bitmask of failed motors that were removed from the allocation / effectiveness matrix. Not necessarily identical to the report from FailureDetector
+uint16 motor_stop_mask # Bitmaks of motors stopped by failure injection
```
diff --git a/docs/ko/msg_docs/EstimatorStatusFlags.md b/docs/ko/msg_docs/EstimatorStatusFlags.md
index 0ac832817d..aa7250fe1e 100644
--- a/docs/ko/msg_docs/EstimatorStatusFlags.md
+++ b/docs/ko/msg_docs/EstimatorStatusFlags.md
@@ -54,8 +54,9 @@ bool cs_valid_fake_pos # 41 - true if a valid constant position is bein
bool cs_constant_pos # 42 - true if the vehicle is at a constant position
bool cs_baro_fault # 43 - true when the current baro has been declared faulty and is no longer being used
bool cs_gnss_vel # 44 - true if GNSS velocity measurement fusion is intended
-bool cs_gnss_fault # 45 - true if GNSS measurements have been declared faulty and are no longer used
+bool cs_gnss_fault # 45 - true if GNSS true if GNSS measurements (lat, lon, vel) have been declared faulty
bool cs_yaw_manual # 46 - true if yaw has been set manually
+bool cs_gnss_hgt_fault # 47 - true if GNSS true if GNSS measurements (alt) have been declared faulty
# fault status
uint32 fault_status_changes # number of filter fault status (fs) changes
diff --git a/docs/ko/msg_docs/FailureDetectorStatus.md b/docs/ko/msg_docs/FailureDetectorStatus.md
index 88e3ca4c24..a112a1e642 100644
--- a/docs/ko/msg_docs/FailureDetectorStatus.md
+++ b/docs/ko/msg_docs/FailureDetectorStatus.md
@@ -17,5 +17,6 @@ bool fd_motor
float32 imbalanced_prop_metric # Metric of the imbalanced propeller check (low-passed)
uint16 motor_failure_mask # Bit-mask with motor indices, indicating critical motor failures
+uint16 motor_stop_mask # Bitmaks of motors stopped by failure injection
```
diff --git a/docs/ko/msg_docs/GimbalDeviceAttitudeStatus.md b/docs/ko/msg_docs/GimbalDeviceAttitudeStatus.md
index 2c8c6eca9b..0935029087 100644
--- a/docs/ko/msg_docs/GimbalDeviceAttitudeStatus.md
+++ b/docs/ko/msg_docs/GimbalDeviceAttitudeStatus.md
@@ -14,6 +14,9 @@ uint16 DEVICE_FLAGS_NEUTRAL = 2
uint16 DEVICE_FLAGS_ROLL_LOCK = 4
uint16 DEVICE_FLAGS_PITCH_LOCK = 8
uint16 DEVICE_FLAGS_YAW_LOCK = 16
+uint16 DEVICE_FLAGS_YAW_IN_VEHICLE_FRAME = 32
+uint16 DEVICE_FLAGS_YAW_IN_EARTH_FRAME = 64
+
float32[4] q
float32 angular_velocity_x
diff --git a/docs/ko/msg_docs/SensorGnssStatus.md b/docs/ko/msg_docs/SensorGnssStatus.md
new file mode 100644
index 0000000000..70602b85fc
--- /dev/null
+++ b/docs/ko/msg_docs/SensorGnssStatus.md
@@ -0,0 +1,19 @@
+# SensorGnssStatus (UORB message)
+
+Gnss quality indicators
+
+[source file](https://github.com/PX4/PX4-Autopilot/blob/main/msg/SensorGnssStatus.msg)
+
+```c
+# Gnss quality indicators
+
+uint64 timestamp # time since system start (microseconds)
+uint32 device_id # unique device ID for the sensor that does not change between power cycles
+
+bool quality_available # Set to true if quality indicators are available
+uint8 quality_corrections # Corrections quality from 0 to 10, or 255 if not available
+uint8 quality_receiver # Overall receiver operating status from 0 to 10, or 255 if not available
+uint8 quality_gnss_signals # Quality of GNSS signals from 0 to 10, or 255 if not available
+uint8 quality_post_processing # Expected post processing quality from 0 to 10, or 255 if not available
+
+```
diff --git a/docs/ko/msg_docs/SensorGps.md b/docs/ko/msg_docs/SensorGps.md
index c8d09e9472..1b5fb3cf41 100644
--- a/docs/ko/msg_docs/SensorGps.md
+++ b/docs/ko/msg_docs/SensorGps.md
@@ -38,18 +38,26 @@ float32 vdop # Vertical dilution of precision
int32 noise_per_ms # GPS noise per millisecond
uint16 automatic_gain_control # Automatic gain control monitor
-uint8 JAMMING_STATE_UNKNOWN = 0
-uint8 JAMMING_STATE_OK = 1
-uint8 JAMMING_STATE_WARNING = 2
-uint8 JAMMING_STATE_CRITICAL = 3
-uint8 jamming_state # indicates whether jamming has been detected or suspected by the receivers. O: Unknown, 1: OK, 2: Warning, 3: Critical
-int32 jamming_indicator # indicates jamming is occurring
+uint8 JAMMING_STATE_UNKNOWN = 0 #default
+uint8 JAMMING_STATE_OK = 1
+uint8 JAMMING_STATE_MITIGATED = 2
+uint8 JAMMING_STATE_DETECTED = 3
+uint8 jamming_state # indicates whether jamming has been detected or suspected by the receivers. O: Unknown, 1: OK, 2: Mitigated, 3: Detected
+int32 jamming_indicator # indicates jamming is occurring
-uint8 SPOOFING_STATE_UNKNOWN = 0
-uint8 SPOOFING_STATE_NONE = 1
-uint8 SPOOFING_STATE_INDICATED = 2
-uint8 SPOOFING_STATE_MULTIPLE = 3
-uint8 spoofing_state # indicates whether spoofing has been detected or suspected by the receivers. O: Unknown, 1: OK, 2: Warning, 3: Critical
+uint8 SPOOFING_STATE_UNKNOWN = 0 #default
+uint8 SPOOFING_STATE_OK = 1
+uint8 SPOOFING_STATE_MITIGATED = 2
+uint8 SPOOFING_STATE_DETECTED = 3
+uint8 spoofing_state # indicates whether spoofing has been detected or suspected by the receivers. O: Unknown, 1: OK, 2: Mitigated, 3: Detected
+
+# Combined authentication state (e.g. Galileo OSNMA)
+uint8 AUTHENTICATION_STATE_UNKNOWN = 0 #default
+uint8 AUTHENTICATION_STATE_INITIALIZING = 1
+uint8 AUTHENTICATION_STATE_ERROR = 2
+uint8 AUTHENTICATION_STATE_OK = 3
+uint8 AUTHENTICATION_STATE_DISABLED = 4
+uint8 authentication_state # GPS signal authentication state
float32 vel_m_s # GPS ground speed, (metres/sec)
float32 vel_n_m_s # GPS North velocity, (metres/sec)
@@ -63,6 +71,16 @@ uint64 time_utc_usec # Timestamp (microseconds, UTC), this is the timestamp whi
uint8 satellites_used # Number of satellites used
+uint32 SYSTEM_ERROR_OK = 0 #default
+uint32 SYSTEM_ERROR_INCOMING_CORRECTIONS = 1
+uint32 SYSTEM_ERROR_CONFIGURATION = 2
+uint32 SYSTEM_ERROR_SOFTWARE = 4
+uint32 SYSTEM_ERROR_ANTENNA = 8
+uint32 SYSTEM_ERROR_EVENT_CONGESTION = 16
+uint32 SYSTEM_ERROR_CPU_OVERLOAD = 32
+uint32 SYSTEM_ERROR_OUTPUT_CONGESTION = 64
+uint32 system_error # General errors with the connected GPS receiver
+
float32 heading # heading angle of XYZ body frame rel to NED. Set to NaN if not available and updated (used for dual antenna GPS), (rad, [-PI, PI])
float32 heading_offset # heading offset of dual antenna array in body frame. Set to NaN if not applicable. (rad, [-PI, PI])
float32 heading_accuracy # heading accuracy (rad, [0, 2PI])
diff --git a/docs/ko/msg_docs/VehicleOdometry.md b/docs/ko/msg_docs/VehicleOdometry.md
index d559ded6c7..4213c23337 100644
--- a/docs/ko/msg_docs/VehicleOdometry.md
+++ b/docs/ko/msg_docs/VehicleOdometry.md
@@ -1,41 +1,44 @@
# VehicleOdometry (UORB message)
-Vehicle odometry data. Fits ROS REP 147 for aerial vehicles
+Vehicle odometry data
+
+Fits ROS REP 147 for aerial vehicles
[source file](https://github.com/PX4/PX4-Autopilot/blob/main/msg/versioned/VehicleOdometry.msg)
```c
-# Vehicle odometry data. Fits ROS REP 147 for aerial vehicles
+# Vehicle odometry data
+#
+# Fits ROS REP 147 for aerial vehicles
uint32 MESSAGE_VERSION = 0
-uint64 timestamp # time since system start (microseconds)
-uint64 timestamp_sample
+uint64 timestamp # [us] Time since system start
+uint64 timestamp_sample # [us] Timestamp sample
-uint8 POSE_FRAME_UNKNOWN = 0
-uint8 POSE_FRAME_NED = 1 # NED earth-fixed frame
-uint8 POSE_FRAME_FRD = 2 # FRD world-fixed frame, arbitrary heading reference
-uint8 pose_frame # Position and orientation frame of reference
+uint8 pose_frame # [@enum POSE_FRAME] Position and orientation frame of reference
+uint8 POSE_FRAME_UNKNOWN = 0 # Unknown frame
+uint8 POSE_FRAME_NED = 1 # North-East-Down (NED) navigation frame. Aligned with True North.
+uint8 POSE_FRAME_FRD = 2 # Forward-Right-Down (FRD) frame. Constant arbitrary heading offset from True North. Z is down.
-float32[3] position # Position in meters. Frame of reference defined by local_frame. NaN if invalid/unknown
-float32[4] q # Quaternion rotation from FRD body frame to reference frame. First value NaN if invalid/unknown
+float32[3] position # [m] [@frame local frame] [@invalid NaN If invalid/unknown] Position. Origin is position of GC at startup.
+float32[4] q # [-] [@invalid NaN First value if invalid/unknown] Attitude (expressed as a quaternion) relative to pose reference frame at current location. Follows the Hamiltonian convention (w, x, y, z, right-handed, passive rotations from body to world)
-uint8 VELOCITY_FRAME_UNKNOWN = 0
-uint8 VELOCITY_FRAME_NED = 1 # NED earth-fixed frame
-uint8 VELOCITY_FRAME_FRD = 2 # FRD world-fixed frame, arbitrary heading reference
-uint8 VELOCITY_FRAME_BODY_FRD = 3 # FRD body-fixed frame
-uint8 velocity_frame # Reference frame of the velocity data
+uint8 velocity_frame # [@enum VELOCITY_FRAME] Reference frame of the velocity data
+uint8 VELOCITY_FRAME_UNKNOWN = 0 # Unknown frame
+uint8 VELOCITY_FRAME_NED = 1 # NED navigation frame at current position.
+uint8 VELOCITY_FRAME_FRD = 2 # FRD navigation frame at current position. Constant arbitrary heading offset from True North. Z is down.
+uint8 VELOCITY_FRAME_BODY_FRD = 3 # FRD body-fixed frame
-float32[3] velocity # Velocity in meters/sec. Frame of reference defined by velocity_frame variable. NaN if invalid/unknown
+float32[3] velocity # [m/s] [@frame @velocity_frame] [@invalid NaN If invalid/unknown] Velocity.
+float32[3] angular_velocity # [rad/s] [@frame @VELOCITY_FRAME_BODY_FRD] [@invalid NaN If invalid/unknown] Angular velocity in body-fixed frame
-float32[3] angular_velocity # Angular velocity in body-fixed frame (rad/s). NaN if invalid/unknown
+float32[3] position_variance # [m^2] Variance of position error
+float32[3] orientation_variance # [rad^2] Variance of orientation/attitude error (expressed in body frame)
+float32[3] velocity_variance # [m^2/s^2] Variance of velocity error
-float32[3] position_variance
-float32[3] orientation_variance
-float32[3] velocity_variance
-
-uint8 reset_counter
-int8 quality
+uint8 reset_counter # [-] Reset counter. Counts reset events on attitude, velocity and position.
+int8 quality # [-] [@invalid 0] Quality. Unused.
# TOPICS vehicle_odometry vehicle_mocap_odometry vehicle_visual_odometry
# TOPICS estimator_odometry
diff --git a/docs/ko/msg_docs/index.md b/docs/ko/msg_docs/index.md
index 7887060b3b..a94bc75e82 100644
--- a/docs/ko/msg_docs/index.md
+++ b/docs/ko/msg_docs/index.md
@@ -15,7 +15,7 @@ Graphs showing how these are used [can be found here](../middleware/uorb_graph.m
- [ActuatorMotors](ActuatorMotors.md) — Motor control message
- [ActuatorServos](ActuatorServos.md) — Servo control message
-- [AirspeedValidated](AirspeedValidated.md)
+- [AirspeedValidated](AirspeedValidated.md) — Validated airspeed
- [ArmingCheckReply](ArmingCheckReply.md) — Arming check reply
- [ArmingCheckRequest](ArmingCheckRequest.md) — Arming check request
- [BatteryStatus](BatteryStatus.md) — Battery status
@@ -70,7 +70,7 @@ Graphs showing how these are used [can be found here](../middleware/uorb_graph.m
- [VehicleLandDetected](VehicleLandDetected.md)
- [VehicleLocalPosition](VehicleLocalPosition.md) — Fused local position in NED.
The coordinate system origin is the vehicle position at the time when the EKF2-module was started.
-- [VehicleOdometry](VehicleOdometry.md) — Vehicle odometry data. Fits ROS REP 147 for aerial vehicles
+- [VehicleOdometry](VehicleOdometry.md) — Vehicle odometry data
- [VehicleRatesSetpoint](VehicleRatesSetpoint.md)
- [VehicleStatus](VehicleStatus.md) — Encodes the system state of the vehicle published by commander
- [VtolVehicleStatus](VtolVehicleStatus.md) — VEHICLE_VTOL_STATE, should match 1:1 MAVLinks's MAV_VTOL_STATE
@@ -87,7 +87,7 @@ Graphs showing how these are used [can be found here](../middleware/uorb_graph.m
- [AdcReport](AdcReport.md)
- [Airspeed](Airspeed.md) — Airspeed data from sensors
- [AirspeedWind](AirspeedWind.md) — Wind estimate (from airspeed_selector)
-- [AutotuneAttitudeControlStatus](AutotuneAttitudeControlStatus.md)
+- [AutotuneAttitudeControlStatus](AutotuneAttitudeControlStatus.md) — Autotune attitude control status
- [BatteryInfo](BatteryInfo.md) — Battery information
- [ButtonEvent](ButtonEvent.md)
- [CameraCapture](CameraCapture.md)
@@ -246,6 +246,7 @@ Graphs showing how these are used [can be found here](../middleware/uorb_graph.m
change with board revisions and sensor updates.
- [SensorCorrection](SensorCorrection.md) — Sensor corrections in SI-unit form for the voted sensor
- [SensorGnssRelative](SensorGnssRelative.md) — GNSS relative positioning information in NED frame. The NED frame is defined as the local topological system at the reference station.
+- [SensorGnssStatus](SensorGnssStatus.md) — Gnss quality indicators
- [SensorGps](SensorGps.md) — GPS position in WGS84 coordinates.
the field 'timestamp' is for the position & velocity (microseconds)
- [SensorGyro](SensorGyro.md)
diff --git a/docs/ko/ros2/px4_ros2_waypoint_missions.md b/docs/ko/ros2/px4_ros2_waypoint_missions.md
index f99f3597e0..4a82072ff0 100644
--- a/docs/ko/ros2/px4_ros2_waypoint_missions.md
+++ b/docs/ko/ros2/px4_ros2_waypoint_missions.md
@@ -36,7 +36,7 @@ There are some benefits and drawbacks to using ROS-based missions, which are pro
- QGroundControl currently does not display the mission or progress during execution, and cannot upload or download a mission.
Therefore you will need another mechanism to provide a mission, such as from a web server, a custom GCS, or by generating it directly inside the application.
-- The current implementation only supports multicopters (it uses the [GotoSetpointType](../ros2/px4_ros2_control_interface.md#go-to-setpoint-gotosetpointtype), which only works for multicopters, and VTOL in MC mode).
+- The current implementation only supports multicopters (it uses the [GotoSetpointType](../ros2/px4_ros2_control_interface.md#go-to-setpoint-multicoptergotosetpointtype), which only works for multicopters, and VTOL in MC mode).
It is designed to be extendable to any other vehicle type.
## 개요
diff --git a/docs/ko/sensor/inertial_navigation_systems.md b/docs/ko/sensor/inertial_navigation_systems.md
index ca354d569e..8a2ec11989 100644
--- a/docs/ko/sensor/inertial_navigation_systems.md
+++ b/docs/ko/sensor/inertial_navigation_systems.md
@@ -9,6 +9,7 @@ However PX4 can also use some INS devices as either sources of raw data, or as a
INS systems that can be used as a replacement for EKF2 in PX4:
- [InertialLabs](../sensor/inertiallabs.md)
+- [MicroStrain](../sensor/microstrain.md): Includes VRU, AHRS, INS, and GNSS/INS devices.
- [SBG Systems](../sensor/sbgecom.md): IMU/AHRS, GNSS/INS, Dual GNSS/INS systems that can be used as an external INS or as a source of raw sensor data.
- [VectorNav](../sensor/vectornav.md): IMU/AHRS, GNSS/INS, Dual GNSS/INS systems that can be used as an external INS or as a source of raw sensor data.
diff --git a/docs/ko/sensor/microstrain.md b/docs/ko/sensor/microstrain.md
new file mode 100644
index 0000000000..1cb0e1b8d5
--- /dev/null
+++ b/docs/ko/sensor/microstrain.md
@@ -0,0 +1,219 @@
+# MicroStrain (INS, IMU, VRU, AHRS)
+
+MicroStrain by HBK provides high-performance inertial sensors engineered for reliability and precision in challenging environments.
+Widely used across industries like aerospace, robotics, industrial automation, and research, MicroStrain sensors are optimized for real-time, accurate motion tracking and orientation data.
+
+
+
+The driver currently supports the following hardware:
+
+- [`MicroStrain CV7-AR`](https://www.hbkworld.com/en/products/transducers/inertial-sensors/vertical-reference-units--vru-/3dm-cv7-ar): Inertial Measurement Unit (IMU) and Vertical Reference Unit (VRU)
+- [`MicroStrain CV7-AHRS`](https://www.hbkworld.com/en/products/transducers/inertial-sensors/attitude-and-heading-reference-systems--ahrs-/3dm-cv7-ahrs): Inertial Measurement Unit (IMU) and Attitude Heading Reference System (AHRS)
+- [`MicroStrain CV7-INS`](https://www.hbkworld.com/en/products/transducers/inertial-sensors/inertial-navigation-systems--ins-/3dm-cv7-ins): Inertial Measurement Unit (IMU) and Inertial Navigation System (INS).
+- [`MicroStrain CV7-GNSS/INS`](https://www.hbkworld.com/en/products/transducers/inertial-sensors/inertial-navigation-systems--ins-/3dm-cv7-gnss-ins): Inertial Measurement Unit (IMU) and Inertial Navigation System (INS) combined with dual multiband (GNSS) receivers.
+
+PX4 can use these sensors to provide raw IMU data for EKF2 or to replace EKF2 as an external INS.
+For more information, including user manuals and datasheets, please refer to the sensors product page.
+
+## 구매처
+
+MicroStrain sensors can be purchased through HBK's official [MicroStrain product page](https://www.hbkworld.com/en/products/transducers/inertial-sensors) or through authorized distributors globally.
+For large orders, custom requirements, or technical inquiries, reach out directly to [sales](https://www.hbkworld.com/en/contact-us/contact-sales-microstrain)
+
+## 하드웨어 설정
+
+### 배선
+
+Connect the main UART port of the MicroStrain sensor to any unused serial port on the flight controller.
+This port needs to be specified while starting the device.
+
+### 장착
+
+The MicroStrain sensor can be mounted in any orientation.
+The default coordinate system uses X for the front, Y for the right, and Z for down, with directions marked on the device.
+
+## 펌웨어 설정
+
+### PX4 설정
+
+To use the MicroStrain driver:
+
+1. Include the module in firmware in the [kconfig board configuration](../hardware/porting_guide_config.md#px4-board-configuration-kconfig) by setting the kconfig variables: `CONFIG_DRIVERS_INS_MICROSTRAIN` or `CONFIG_COMMON_INS`.
+
+2. Configure the driver mode by setting [MS_MODE](../advanced_config/parameter_reference.md#MS_MODE)
+
+ - To use the MicroStrain sensor to provide raw IMU data to EKF2
+
+ 1. Set [MS_MODE](../advanced_config/parameter_reference.md#MS_MODE) to 0
+ 2. Update the [EKF2_MULTI_IMU](../advanced_config/parameter_reference.md#EKF2_MULTI_IMU) parameter to account for the added MicroStrain sensor.
+ 3. Enable EKF2 by setting [EKF2_EN](../advanced_config/parameter_reference.md#EKF2_EN) to 1
+ 4. To prioritize MicroStrain sensor output, adjust the priority level of individual sensors from 0-100 using the following parameters:
+
+ - [CAL_ACCn_PRIO](../advanced_config/parameter_reference.md#CAL_ACC0_PRIO)
+ - [CAL_GYROn_PRIO](../advanced_config/parameter_reference.md#CAL_GYRO0_PRIO)
+ - [CAL_MAGn_PRIO](../advanced_config/parameter_reference.md#CAL_MAG0_PRIO)
+ - [CAL_BAROn_PRIO](../advanced_config/parameter_reference.md#CAL_BARO0_PRIO)
+
+ where `n` corresponds to the index of the corresponding sensor.
+
+ ::: tip
+ Sensors can be identified by their device id, which can be found by checking the parameters:
+
+ - [CAL_ACCn_ID](../advanced_config/parameter_reference.md#CAL_ACC0_ID)
+ - [CAL_GYROn_ID](../advanced_config/parameter_reference.md#CAL_GYRO0_ID)
+ - [CAL_MAGn_ID](../advanced_config/parameter_reference.md#CAL_MAG0_ID)
+ - [CAL_BAROn_ID](../advanced_config/parameter_reference.md#CAL_BARO0_ID)
+
+
+:::
+
+ - To use the MicroStrain sensor as an external INS
+ 1. Set [MS_MODE](../advanced_config/parameter_reference.md#MS_MODE) to 1
+ 2. Disable EKF2 by setting [EKF2_EN](../advanced_config/parameter_reference.md#EKF2_EN) to 0
+
+3. Reboot and start the driver
+ - `microstrain start -d `
+ - To start the driver automatically when the flight controller powers on, set [SENS_MS_CFG](../advanced_config/parameter_reference.md#SENS_MS_CFG) to the sensor’s connected port.
+
+## MicroStrain Configuration
+
+1. Rates:
+
+ - By default, accel and gyro data are published at 500 Hz, magnetometer at 50 Hz, and barometric pressure at 50 Hz.
+ This can be changed by adjusting the following parameters:
+
+ - [MS_IMU_RATE_HZ](../advanced_config/parameter_reference.md#MS_IMU_RATE_HZ)
+ - [MS_MAG_RATE_HZ](../advanced_config/parameter_reference.md#MS_MAG_RATE_HZ)
+ - [MS_BARO_RATE_HZ](../advanced_config/parameter_reference.md#MS_BARO_RATE_HZ)
+
+ - Global position, local position, attitude and odometry will be published at 250 Hz by default.
+ This can be configured via:
+
+ - [MS_FILT_RATE_HZ](../advanced_config/parameter_reference.md#MS_FILT_RATE_HZ)
+
+ - For the CV7-GNSS/INS, the GNSS receiver 1 and 2 will publish data at 5Hz by default.
+ This can be changed using:
+
+ - [MS_GNSS_RATE_HZ](../advanced_config/parameter_reference.md#MS_GNSS_RATE_HZ)
+
+ - The driver will automatically configure data outputs based on the specific sensor model and available data streams.
+
+ - The driver is scheduled to run at twice the fastest configured data rate.
+
+2. Aiding measurements:
+
+ - If supported, GNSS position and velocity aiding are always enabled.
+
+ - Internal/external magnetometer and heading aiding, as well as optical flow aiding, are disabled by default. They can be enabled using the following parameters:
+
+ - [MS_INT_MAG_EN](../advanced_config/parameter_reference.md#MS_INT_MAG_EN)
+ - [MS_INT_HEAD_EN](../advanced_config/parameter_reference.md#MS_INT_HEAD_EN)
+ - [MS_EXT_HEAD_EN](../advanced_config/parameter_reference.md#MS_EXT_HEAD_EN)
+ - [MS_EXT_MAG_EN](../advanced_config/parameter_reference.md#MS_EXT_MAG_EN)
+ - [MS_OPT_FLOW_EN](../advanced_config/parameter_reference.md#MS_OPT_FLOW_EN)
+
+ - The aiding frames for external sources can be configured using the following parameters:
+
+ - [MS_EHEAD_YAW](../advanced_config/parameter_reference.md#MS_EHEAD_YAW)
+ - [MS_EMAG_ROLL](../advanced_config/parameter_reference.md#MS_EMAG_ROLL)
+ - [MS_EMAG_PTCH](../advanced_config/parameter_reference.md#MS_EMAG_PTCH)
+ - [MS_EMAG_YAW](../advanced_config/parameter_reference.md#MS_EMAG_YAW)
+ - [MS_OFLW_OFF_X](../advanced_config/parameter_reference.md#MS_OFLW_OFF_X)
+ - [MS_OFLW_OFF_Y](../advanced_config/parameter_reference.md#MS_OFLW_OFF_Y)
+ - [MS_OFLW_OFF_Z](../advanced_config/parameter_reference.md#MS_OFLW_OFF_Z)
+ - [SENS_FLOW_ROT](../advanced_config/parameter_reference.md#SENS_FLOW_ROT)
+
+ - The uncertainty for optical flow and external magnetometer aiding must be specified using the following parameters:
+
+ - [MS_EMAG_UNCERT](../advanced_config/parameter_reference.md#MS_EMAG_UNCERT)
+ - [MS_OFLW_UNCERT](../advanced_config/parameter_reference.md#MS_OFLW_UNCERT)
+
+ ::: tip
+
+ 1. When optical flow aiding is enabled, the sensor uses the `vehicle_optical_flow_vel` output from the flight controller as a body-frame velocity aiding measurement.
+ 2. If the MicroStrain sensor does not support these aiding sources but they are enabled, sensor initialization will fail.
+
+
+:::
+
+3. Initial heading alignment:
+
+ - Initial heading alignment is set to kinematic by default. This can be changed by adjusting
+
+ - [MS_ALIGNMENT](../advanced_config/parameter_reference.md#MS_ALIGNMENT)
+
+4. GNSS Aiding Source Control (GNSS/INS only)
+
+ - The Source of the GNSS aiding data can be configured using:
+
+ - [MS_GNSS_AID_SRC](../advanced_config/parameter_reference.md#MS_GNSS_AID_SRC)
+
+5. Sensor to vehicle transform:
+
+ - If the sensor is mounted in an orientation different from the vehicle frame. A sensor to vehicle transform can be enabled using
+
+ - [MS_SVT_EN](../advanced_config/parameter_reference.md#MS_SVT_EN)
+
+ - The transform is defined using the following parameters
+
+ - [MS_SENSOR_ROLL](../advanced_config/parameter_reference.md#MS_SENSOR_ROLL)
+ - [MS_SENSOR_PTCH](../advanced_config/parameter_reference.md#MS_SENSOR_PTCH)
+ - [MS_SENSOR_YAW](../advanced_config/parameter_reference.md#MS_SENSOR_YAW)
+
+6. IMU ranges:
+
+ - The accelerometer and gyroscope ranges on the device are configurable using:
+
+ - [MS_ACCEL_RANGE](../advanced_config/parameter_reference.md#MS_ACCEL_RANGE)
+ - [MS_GYRO_RANGE](../advanced_config/parameter_reference.md#MS_GYRO_RANGE)
+
+ ::: tip
+ Available range settings depend on the specific [sensor](https://www.hbkworld.com/en/products/transducers/inertial-sensors) and can be found in the corresponding user manual.
+ By default, the ranges are not changed.
+
+
+:::
+
+7. GNSS Lever arm offsets:
+
+ - The lever arm offset for the external GNSS receiver can be configured using:
+
+ - [MS_GNSS_OFF1_X](../advanced_config/parameter_reference.md#MS_GNSS_OFF1_X)
+ - [MS_GNSS_OFF1_Y](../advanced_config/parameter_reference.md#MS_GNSS_OFF1_Y)
+ - [MS_GNSS_OFF1_Z](../advanced_config/parameter_reference.md#MS_GNSS_OFF1_Z)
+
+ - For dual-antenna configurations, the second GNSS receiver’s offset is configured using:
+
+ - [MS_GNSS_OFF2_X](../advanced_config/parameter_reference.md#MS_GNSS_OFF2_X)
+ - [MS_GNSS_OFF2_Y](../advanced_config/parameter_reference.md#MS_GNSS_OFF2_Y)
+ - [MS_GNSS_OFF2_Z](../advanced_config/parameter_reference.md#MS_GNSS_OFF2_Z)
+
+## Published Data
+
+The MicroStrain driver continuously publishes sensor data to the following uORB topics:
+
+- [sensor_accel](../msg_docs/SensorAccel.md)
+- [sensor_gyro](../msg_docs/SensorGyro.md)
+- [sensor_mag](../msg_docs/SensorMag.md)
+- [sensor_baro](../msg_docs/SensorBaro.md)
+
+For GNSS/INS devices, GPS data is also published to:
+
+- [sensor_gps](../msg_docs/SensorGps.md)
+
+If used as an external INS replacing EKF2, it publishes:
+
+- [vehicle_global_position](../msg_docs/VehicleGlobalPosition.md)
+- [vehicle_local_position](../msg_docs/VehicleLocalPosition.md)
+- [vehicle_attitude](../msg_docs/VehicleAttitude.md)
+- [vehicle_odometry](../msg_docs/VehicleOdometry.md)
+
+otherwise the same data is published to the following topics
+
+- `external_ins_global_position`
+- `external_ins_attitude`
+- `external_ins_local_position`
+
+:::tip
+Published topics can be viewed using the `listener` command.
+:::