From ead1cf00ff691038b7a3ef03ddcaa287106c022f Mon Sep 17 00:00:00 2001 From: PX4 Build Bot Date: Mon, 20 Oct 2025 08:17:05 +1100 Subject: [PATCH] New Crowdin translations - ko (#25780) Co-authored-by: Crowdin Bot --- docs/ko/SUMMARY.md | 3 + docs/ko/airframes/airframe_reference.md | 4 + docs/ko/config/safety.md | 24 +- docs/ko/debug/failure_injection.md | 30 ++- docs/ko/dev_log/logging.md | 2 +- docs/ko/dronecan/ark_cannode.md | 7 +- docs/ko/dronecan/ark_flow.md | 7 +- docs/ko/dronecan/ark_flow_mr.md | 7 +- docs/ko/dronecan/ark_gps.md | 10 +- docs/ko/dronecan/ark_rtk_gps.md | 10 +- docs/ko/dronecan/index.md | 9 + docs/ko/dronecan/px4_cannode_fw.md | 20 ++ docs/ko/flight_modes_mc/altitude.md | 11 +- docs/ko/flight_modes_mc/position.md | 1 - docs/ko/gps_compass/rtk_gps.md | 30 +-- docs/ko/index.md | 14 +- docs/ko/middleware/dds_topics.md | 2 +- docs/ko/middleware/zenoh.md | 201 ++++++++++++++++ .../modules/modules_driver_distance_sensor.md | 2 +- docs/ko/msg_docs/AirspeedValidated.md | 44 ++-- .../msg_docs/AutotuneAttitudeControlStatus.md | 75 +++--- docs/ko/msg_docs/ControlAllocatorStatus.md | 1 + docs/ko/msg_docs/EstimatorStatusFlags.md | 3 +- docs/ko/msg_docs/FailureDetectorStatus.md | 1 + .../ko/msg_docs/GimbalDeviceAttitudeStatus.md | 3 + docs/ko/msg_docs/SensorGnssStatus.md | 19 ++ docs/ko/msg_docs/SensorGps.md | 40 +++- docs/ko/msg_docs/VehicleOdometry.md | 49 ++-- docs/ko/msg_docs/index.md | 7 +- docs/ko/ros2/px4_ros2_waypoint_missions.md | 2 +- docs/ko/sensor/inertial_navigation_systems.md | 1 + docs/ko/sensor/microstrain.md | 219 ++++++++++++++++++ 32 files changed, 726 insertions(+), 132 deletions(-) create mode 100644 docs/ko/middleware/zenoh.md create mode 100644 docs/ko/msg_docs/SensorGnssStatus.md create mode 100644 docs/ko/sensor/microstrain.md 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 ![QGC Parameter showing selected DroneCAN node](../../assets/can/dronecan/qgc_can_parameters.png) +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 상태 아이콘을 클릭하여 진행 상황을 추적할 수 있습니다. - ![survey-in](../../assets/qgc/setup/rtk/qgc_rtk_survey-in.png) + ![survey-in](../../assets/qgc/setup/rtk/qgc_rtk_survey-in.png) 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: - ![RTK streaming](../../assets/qgc/setup/rtk/qgc_rtk_streaming.png) + ![RTK streaming](../../assets/qgc/setup/rtk/qgc_rtk_streaming.png) - - 기체의 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`): - ![RTK GPS Status](../../assets/qgc/setup/rtk/qgc_rtk_gps_status.png) + ![RTK GPS Status](../../assets/qgc/setup/rtk/qgc_rtk_gps_status.png) ### 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. + +![Architecture PX4 Zenoh-Pico with ROS 2](../../assets/middleware/zenoh/architecture-px4-zenoh.svg) + +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. + +![CV7](../../assets/hardware/sensors/inertial/microstrain_3dm_cv7_hbk.png) + +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. +:::