diff --git a/boards/svehicle/e2/default.px4board b/boards/svehicle/e2/default.px4board
index eecdbb4293..be198b4f2b 100644
--- a/boards/svehicle/e2/default.px4board
+++ b/boards/svehicle/e2/default.px4board
@@ -27,6 +27,7 @@ CONFIG_DRIVERS_MAGNETOMETER_BOSCH_BMM150=y
CONFIG_DRIVERS_GNSS_SEPTENTRIO=y
CONFIG_COMMON_LIGHT=y
CONFIG_COMMON_MAGNETOMETER=y
+CONFIG_DRIVERS_OSD_MSP_OSD=y
CONFIG_DRIVERS_POWER_MONITOR_INA226=y
CONFIG_DRIVERS_POWER_MONITOR_INA228=y
CONFIG_DRIVERS_POWER_MONITOR_INA238=y
@@ -74,7 +75,7 @@ CONFIG_MODULES_RC_UPDATE=y
CONFIG_MODULES_SENSORS=y
CONFIG_MODULES_TEMPERATURE_COMPENSATION=y
CONFIG_MODULES_UXRCE_DDS_CLIENT=y
-#CONFIG_MODULES_VTOL_ATT_CONTROL=y
+CONFIG_MODULES_VTOL_ATT_CONTROL=y
CONFIG_SYSTEMCMDS_ACTUATOR_TEST=y
CONFIG_SYSTEMCMDS_BSONDUMP=y
CONFIG_SYSTEMCMDS_DMESG=y
diff --git a/docs/en/advanced_config/parameter_reference.md b/docs/en/advanced_config/parameter_reference.md
index 41db8563d2..7eca46d3f3 100644
--- a/docs/en/advanced_config/parameter_reference.md
+++ b/docs/en/advanced_config/parameter_reference.md
@@ -25550,12 +25550,16 @@ Used below MPC_LAND_ALT3 if distance sensor data is availabe.
User assisted landing radius.
-When nudging is enabled (see MPC_LAND_RC_HELP), this controls
-the maximum allowed horizontal displacement from the original landing point.
+When nudging is enabled (see MPC_LAND_RC_HELP), this defines the maximum
+allowed horizontal displacement from the original landing point.
+
+- If inside of the radius, only allow nudging inputs that do not move the vehicle outside of it.
+- If outside of the radius, only allow nudging inputs that move the vehicle back towards it.
+ Set it to -1 for infinite radius.
| Reboot | minValue | maxValue | increment | default | unit |
| ------ | -------- | -------- | --------- | ------- | ---- |
-| | 0 | | 1 | 1000. | m |
+| | -1 | | 1 | -1.0 | m |
### MPC_LAND_RC_HELP (`INT32`) {#MPC_LAND_RC_HELP}
@@ -38833,6 +38837,14 @@ UAVCAN CAN bus bitrate.
| ------ | -------- | -------- | --------- | ------- | ---- |
| | 20000 | 1000000 | | 1000000 |
+### CANNODE_NODE_ID (`INT32`) {#CANNODE_NODE_ID}
+
+UAVCAN CAN node ID (0 for dynamic allocation).
+
+| Reboot | minValue | maxValue | increment | default | unit |
+| ------ | -------- | -------- | --------- | ------- | ---- |
+| | 0 | 127 | | 0 |
+
### CANNODE_PUB_IMU (`INT32`) {#CANNODE_PUB_IMU}
Enable RawIMU pub.
@@ -40859,13 +40871,15 @@ The encoder angle at which theta is zero. Adjust this number to change the locat
### ZENOH_ENABLE (`INT32`) {#ZENOH_ENABLE}
-Zenoh Enable.
+Enable Zenoh.
-Zenoh
+Set true (1) to start the Zenoh driver module (a.k.a the "Zenoh-Pico Node").
+See https://docs.px4.io/main/en/middleware/zenoh and
+https://docs.px4.io/main/en/modules/modules_driver.html#zenoh
-| Reboot | minValue | maxValue | increment | default | unit |
-| ------- | -------- | -------- | --------- | ------- | ---- |
-| ✓ | | | | 0 |
+| Reboot | minValue | maxValue | increment | default | unit |
+| ------- | -------- | -------- | --------- | ------------ | ---- |
+| ✓ | | | | Disabled (0) |
## Miscellaneous
diff --git a/docs/en/config/_autotune.md b/docs/en/config/_autotune.md
index 9bf06a4f88..b6b8dedd69 100644
--- a/docs/en/config/_autotune.md
+++ b/docs/en/config/_autotune.md
@@ -98,8 +98,7 @@ The test steps are:
-4. The drone will first start to perform quick roll motions followed by pitch and yaw motions. When [`FW_AT_SYSID_TYPE`](../advanced_config/parameter_reference.md#FW_AT_SYSID_TYPE) is set to linear/logarithmic sine sweep (recommended), the max rates are approximately 45 deg/s for roll and 30 deg/s for pitch and yaw.
- The progress is shown in the progress bar, next to the _Autotune_ button.
+4. The drone will first start to perform quick roll motions followed by pitch and yaw motions. When [`FW_AT_SYSID_TYPE`](../advanced_config/parameter_reference.md#FW_AT_SYSID_TYPE) is set to linear/logarithmic sine sweep (recommended), the max rates reached during the maneuvers are 75% of the maximum configured roll (`FW_R_RMAX`), pitch (`FW_P_RMAX_NEG`, `FW_P_RMAX_POS`) and yaw (`FW_Y_RMAX`) rates. The progress is shown in the progress bar, next to the _Autotune_ button.
@@ -194,7 +193,7 @@ Increase the [MC_AT_SYSID_AMP](../advanced_config/parameter_reference.md#MC_AT_S
-By default, the autotune maneuvers ensure that a sufficient angular rate is reached for system identification. The target rates are approximately 45 deg/s for roll and 30 deg/s for pitch and yaw.
+By default, the autotune maneuvers ensure that a sufficient angular rate is reached for system identification, corresponding to 75% of the configured maximum roll (`FW_R_RMAX`), pitch (`FW_P_RMAX_NEG`, `FW_P_RMAX_POS`) and yaw (`FW_Y_RMAX`) rates.
If the signal-to-noise ratio of the vehicle is low, the system identification algorithm might have issues finding the correct coefficients. Ensure that there is no excessive noise and/or platform vibration.
diff --git a/docs/en/msg_docs/DifferentialPressure.md b/docs/en/msg_docs/DifferentialPressure.md
index a6f10625c6..83adb2d03e 100644
--- a/docs/en/msg_docs/DifferentialPressure.md
+++ b/docs/en/msg_docs/DifferentialPressure.md
@@ -1,19 +1,24 @@
# DifferentialPressure (UORB message)
+Differential-pressure (airspeed) sensor
+This is populated by airspeed sensor drivers and used by the sensor module to calculate airspeed.
+The information is published in the `SCALED_PRESSURE_n` MAVLink messages (along with information from a corresponding `SensorBaro` instance).
[source file](https://github.com/PX4/PX4-Autopilot/blob/main/msg/DifferentialPressure.msg)
```c
-uint64 timestamp # time since system start (microseconds)
-uint64 timestamp_sample
+# Differential-pressure (airspeed) sensor
+#
+# This is populated by airspeed sensor drivers and used by the sensor module to calculate airspeed.
+# The information is published in the `SCALED_PRESSURE_n` MAVLink messages (along with information from a corresponding `SensorBaro` instance).
-uint32 device_id # unique device ID for the sensor that does not change between power cycles
+uint64 timestamp # [us] Time of publication (since system start)
+uint64 timestamp_sample # [us] Time of raw data capture
-float32 differential_pressure_pa # differential pressure reading in Pascals (may be negative)
-
-float32 temperature # Temperature provided by sensor in degrees Celsius, NAN if unknown
-
-uint32 error_count # Number of errors detected by driver
+uint32 device_id # [-] Unique device ID for the sensor that does not change between power cycles
+float32 differential_pressure_pa # [Pa] Differential pressure reading (may be negative)
+float32 temperature # [degC] [@invalid NaN if unknown] Temperature
+uint32 error_count # [-] Number of errors detected by driver
```
diff --git a/docs/en/msg_docs/SensorBaro.md b/docs/en/msg_docs/SensorBaro.md
index 8a3c364f60..ef4d7a8f28 100644
--- a/docs/en/msg_docs/SensorBaro.md
+++ b/docs/en/msg_docs/SensorBaro.md
@@ -1,20 +1,25 @@
# SensorBaro (UORB message)
+Barometer sensor
+This is populated by barometer drivers and used by the EKF2 estimator.
+The information is published in the `SCALED_PRESSURE_n` MAVLink messages (along with information from a corresponding `DifferentialPressure` instance).
[source file](https://github.com/PX4/PX4-Autopilot/blob/main/msg/SensorBaro.msg)
```c
-uint64 timestamp # time since system start (microseconds)
-uint64 timestamp_sample
+# Barometer sensor
+#
+# This is populated by barometer drivers and used by the EKF2 estimator.
+# The information is published in the `SCALED_PRESSURE_n` MAVLink messages (along with information from a corresponding `DifferentialPressure` instance).
-uint32 device_id # unique device ID for the sensor that does not change between power cycles
+uint64 timestamp # [us] Time of publication (since system start)
+uint64 timestamp_sample # [us] Time of raw data capture
-float32 pressure # static pressure measurement in Pascals
-
-float32 temperature # temperature in degrees Celsius
-
-uint32 error_count
+uint32 device_id # [-] Unique device ID for the sensor that does not change between power cycles
+float32 pressure # [Pa] Static pressure measurement
+float32 temperature # [degC] Temperature.
+uint32 error_count # [-] Number of errors detected by driver.
uint8 ORB_QUEUE_LENGTH = 4
diff --git a/docs/en/msg_docs/VehicleStatus.md b/docs/en/msg_docs/VehicleStatus.md
index 9d46e42cb3..05e3f98bbb 100644
--- a/docs/en/msg_docs/VehicleStatus.md
+++ b/docs/en/msg_docs/VehicleStatus.md
@@ -20,20 +20,16 @@ uint8 ARMING_STATE_ARMED = 2
uint8 latest_arming_reason
uint8 latest_disarming_reason
-uint8 ARM_DISARM_REASON_TRANSITION_TO_STANDBY = 0
uint8 ARM_DISARM_REASON_STICK_GESTURE = 1
uint8 ARM_DISARM_REASON_RC_SWITCH = 2
uint8 ARM_DISARM_REASON_COMMAND_INTERNAL = 3
uint8 ARM_DISARM_REASON_COMMAND_EXTERNAL = 4
uint8 ARM_DISARM_REASON_MISSION_START = 5
-uint8 ARM_DISARM_REASON_SAFETY_BUTTON = 6
-uint8 ARM_DISARM_REASON_AUTO_DISARM_LAND = 7
-uint8 ARM_DISARM_REASON_AUTO_DISARM_PREFLIGHT = 8
-uint8 ARM_DISARM_REASON_KILL_SWITCH = 9
-uint8 ARM_DISARM_REASON_LOCKDOWN = 10
-uint8 ARM_DISARM_REASON_FAILURE_DETECTOR = 11
-uint8 ARM_DISARM_REASON_SHUTDOWN = 12
-uint8 ARM_DISARM_REASON_UNIT_TEST = 13
+uint8 ARM_DISARM_REASON_LANDING = 6
+uint8 ARM_DISARM_REASON_PREFLIGHT_INACTION = 7
+uint8 ARM_DISARM_REASON_KILL_SWITCH = 8
+uint8 ARM_DISARM_REASON_RC_BUTTON = 13
+uint8 ARM_DISARM_REASON_FAILSAFE = 14
uint64 nav_state_timestamp # time when current nav_state activated
diff --git a/docs/en/msg_docs/index.md b/docs/en/msg_docs/index.md
index 44ab566a6b..a70fa245f5 100644
--- a/docs/en/msg_docs/index.md
+++ b/docs/en/msg_docs/index.md
@@ -105,7 +105,7 @@ Graphs showing how these are used [can be found here](../middleware/uorb_graph.m
- [DebugKeyValue](DebugKeyValue.md)
- [DebugValue](DebugValue.md)
- [DebugVect](DebugVect.md)
-- [DifferentialPressure](DifferentialPressure.md)
+- [DifferentialPressure](DifferentialPressure.md) — Differential-pressure (airspeed) sensor
- [DistanceSensor](DistanceSensor.md) — DISTANCE_SENSOR message data
- [DistanceSensorModeChangeRequest](DistanceSensorModeChangeRequest.md)
- [DronecanNodeStatus](DronecanNodeStatus.md)
@@ -240,7 +240,7 @@ Graphs showing how these are used [can be found here](../middleware/uorb_graph.m
- [SensorAccel](SensorAccel.md)
- [SensorAccelFifo](SensorAccelFifo.md)
- [SensorAirflow](SensorAirflow.md)
-- [SensorBaro](SensorBaro.md)
+- [SensorBaro](SensorBaro.md) — Barometer sensor
- [SensorCombined](SensorCombined.md) — Sensor readings in SI-unit form.
These fields are scaled and offset-compensated where possible and do not
change with board revisions and sensor updates.
diff --git a/docs/ko/SUMMARY.md b/docs/ko/SUMMARY.md
index 3f6edca6b1..fc556f5949 100644
--- a/docs/ko/SUMMARY.md
+++ b/docs/ko/SUMMARY.md
@@ -187,6 +187,7 @@
- [Radiolink PIX6](flight_controller/radiolink_pix6.md)
- [Sky-Drones AIRLink](flight_controller/airlink.md)
- [SPRacing SPRacingH7EXTREME](flight_controller/spracingh7extreme.md)
+ - [SVehicle E2](flight_controller/svehicle_e2.md)
- [ThePeach FCC-K1](flight_controller/thepeach_k1.md)
- [ThePeach FCC-R1](flight_controller/thepeach_r1.md)
- [Experimental Autopilots](flight_controller/autopilot_experimental.md)
diff --git a/docs/ko/config/_autotune.md b/docs/ko/config/_autotune.md
index 5c35b38bfe..ec9ec69753 100644
--- a/docs/ko/config/_autotune.md
+++ b/docs/ko/config/_autotune.md
@@ -102,8 +102,7 @@ The test steps are:
-4. The drone will first start to perform quick roll motions followed by pitch and yaw motions. When [`FW_AT_SYSID_TYPE`](../advanced_config/parameter_reference.md#FW_AT_SYSID_TYPE) is set to linear/logarithmic sine sweep (recommended), the max rates are approximately 45 deg/s for roll and 30 deg/s for pitch and yaw.
- The progress is shown in the progress bar, next to the _Autotune_ button.
+4. The drone will first start to perform quick roll motions followed by pitch and yaw motions. When [`FW_AT_SYSID_TYPE`](../advanced_config/parameter_reference.md#FW_AT_SYSID_TYPE) is set to linear/logarithmic sine sweep (recommended), the max rates reached during the maneuvers are 75% of the maximum configured roll (`FW_R_RMAX`), pitch (`FW_P_RMAX_NEG`, `FW_P_RMAX_POS`) and yaw (`FW_Y_RMAX`) rates. The progress is shown in the progress bar, next to the _Autotune_ button.
@@ -198,7 +197,7 @@ Increase the [MC_AT_SYSID_AMP](../advanced_config/parameter_reference.md#MC_AT_S
-By default, the autotune maneuvers ensure that a sufficient angular rate is reached for system identification. The target rates are approximately 45 deg/s for roll and 30 deg/s for pitch and yaw.
+By default, the autotune maneuvers ensure that a sufficient angular rate is reached for system identification, corresponding to 75% of the configured maximum roll (`FW_R_RMAX`), pitch (`FW_P_RMAX_NEG`, `FW_P_RMAX_POS`) and yaw (`FW_Y_RMAX`) rates.
If the signal-to-noise ratio of the vehicle is low, the system identification algorithm might have issues finding the correct coefficients. Ensure that there is no excessive noise and/or platform vibration.
diff --git a/docs/ko/flight_controller/autopilot_manufacturer_supported.md b/docs/ko/flight_controller/autopilot_manufacturer_supported.md
index e4d997d783..a1b565877e 100644
--- a/docs/ko/flight_controller/autopilot_manufacturer_supported.md
+++ b/docs/ko/flight_controller/autopilot_manufacturer_supported.md
@@ -35,5 +35,6 @@ This category includes boards that are not fully compliant with the pixhawk stan
- [Radiolink PIX6](../flight_controller/radiolink_pix6.md)
- [Sky-Drones AIRLink](../flight_controller/airlink.md)
- [SPRacing SPRacingH7EXTREME](../flight_controller/spracingh7extreme.md)
+- [Svehicle E2](../flight_controller/svehicle_e2.md)
- [ThePeach FCC-K1](../flight_controller/thepeach_k1.md)
- [ThePeach FCC-R1](../flight_controller/thepeach_r1.md)
diff --git a/docs/ko/flight_controller/svehicle_e2.md b/docs/ko/flight_controller/svehicle_e2.md
new file mode 100644
index 0000000000..1e010d1aa5
--- /dev/null
+++ b/docs/ko/flight_controller/svehicle_e2.md
@@ -0,0 +1,177 @@
+# S-Vehicle E2
+
+:::warning
+PX4 does not manufacture this (or any) autopilot.
+:::
+
+The _E2_ is an advanced autopilot manufactured by S-Vehicle®.
+
+The autopilot is recommended for commercial system integration, but is also suitable for academic research and any other applications.
+It brings you ultimate performance, stability, and reliability in every aspect.
+
+
+
+:::info
+이 비행 컨트롤러는 [제조업체에서 지원](../flight_controller/autopilot_manufacturer_supported.md)합니다.
+:::
+
+### Processors & Sensors
+
+- FMU Processor: STM32H753IIK6
+ - 32 Bit Arm® Cortex®-M7, 480MHz, 2MB flash memory, 1MB RAM
+- IO Processor: STM32F103
+ - 32 Bit Arm® Cortex®-M3, 72MHz, 20KB SRAM
+- 내장 센서 :
+ - Accel/Gyro: BMI088
+ - Accel/Gyro: ICM-42688-P
+ - Accel/Gyro: ICM-20649
+ - Mag: RM3100
+ - Barometer: 2x ICP-20100
+
+### 인터페이스
+
+- 14x PWM Servo Outputs
+- 1x Dedicated R/C Input for Spektrum / DSM and S.Bus
+- 1x Analog/PWM RSSI Input
+- 2x TELEM Ports (with full flow control)
+- 1x UART4 Port
+- 2x GPS Ports
+ - 1x Full GPS plus Safety Switch Port (GPS1)
+ - 1x Basic GPS Port (with I2C, GPS2)
+- 1x USB Port (TYPE-C)
+- 1x Ethernet Port
+ - Transformerless application
+ - 100Mbps
+- 3x I2C Bus Ports
+- 1x SPI Bus
+ - 1x Chip Select Line
+ - 1x Data Ready Line
+ - 1x SPI Reset Line
+- 2x CAN Ports
+- 3x Power Input Ports
+ - ADC Power Input
+ - I2C Power Input
+ - DroneCAN/UAVCAN Power Input
+- 2x AD Ports
+ - Analog Input (3.3V)
+ - Analog Input (6.6V - not supported by PX4)
+- 1x Dedicated Debug Port
+ - FMU Debug
+
+## Purchase Channels
+
+Order from [S-Vehicle](https://svehicle.cn/).
+
+## 무선 조종
+
+A Radio Control (RC) system is required if you want to manually control your vehicle (PX4 does not require a radio system for autonomous flight modes).
+
+기체와 조종자가 통신하기 위하여 송신기와 수신기를 바인딩하여야 합니다.
+송신기와 수신기의 매뉴얼을 참고하십시오.
+
+Spektrum/DSM receivers connect to the DSM/SBUS RC input.
+PPM or SBUS receivers connect to the RC IN input port.
+CRSF receiver must be wired to a spare port (UART) on the Flight Controller. Then you can bind the transmitter and receiver together.
+
+## 시리얼 포트 매핑
+
+| UART | 장치 | 포트 |
+| ------ | ---------- | -------- |
+| USART1 | /dev/ttyS0 | GPS |
+| USART2 | /dev/ttyS1 | TELEM3 |
+| USART3 | /dev/ttyS2 | 디버그 콘솔 |
+| UART4 | /dev/ttyS3 | UART4 |
+| UART5 | /dev/ttyS4 | TELEM2 |
+| USART6 | /dev/ttyS5 | PX4IO/RC |
+| UART7 | /dev/ttyS6 | TELEM1 |
+| UART8 | /dev/ttyS7 | GPS2 |
+
+## PWM Output
+
+The E2-Plus flight controller supports up to 14 PWM outputs.
+The first 8 outputs (labelled M1 to M8) are controlled by a dedicated STM32F103 IOMCU controller.
+The remaining 6 outputs (labelled 9 to 14) are the "auxiliary" outputs.
+These are directly attached to the STM32H753 FMU controller .
+
+The 14 PWM outputs are:
+
+M1 - M8 are connected to the IOMCU
+A1 - A6 are connected to the FMU
+
+M1 - M8 support DShot and are in 3 groups:
+
+- M1, M2 in group 1
+- M3, M4 in group 2
+- M5, M6, M7, M8 in group 3
+
+The 6 FMU PWM outputs are in 2 groups:
+
+A1 - A4 are in one group.
+A5, A6 are in a 2nd group.
+
+Channels within the same group need to use the same output rate.
+If any channel in a group uses DShot then all channels in the group need to use DShot.
+
+### Electrical data
+
+- Voltage Ratings:
+ - Max input voltage: 5.7V
+ - USB Power Input: 4.75\~5.25V
+ - Servo Rail Input: 0\~9.9V
+- Current Ratings:
+ - TELEM1 and GPS2 combined output current limiter: 1.5A
+ - All other port combined output current limiter: 1.5A
+
+## Battery Monitoring
+
+The board has connectors for 3 power monitors.
+
+- POWER1 -- ADC
+- POWER2 -- DroneCAN
+- POWER3 -- I2C
+
+The board is configure by default for a analog power monitor, and also has DroneCAN power monitor and I2C defaults configured which is enabled.
+
+The default PDB included with the E2+ is analog and must be connected to `POWER1`.
+
+## 펌웨어 빌드
+
+To [build PX4](../dev_setup/building_px4.md) for this target, execute:
+
+```sh
+make svehicle_e2_default
+```
+
+## 디버그 포트
+
+The [PX4 System Console](../debug/system_console.md) and [SWD Interface](../debug/swd_debug.md) operate on the **FMU Debug** port.
+
+| 핀 | 신호 | 전압 |
+| ------------------------- | ------------------------------- | --------------------- |
+| 1(red) | 5V+ | +5V |
+| 2 (흑) | DEBUG TX(출력) | +3.3V |
+| 3 (흑) | DEBUG TX(입력) | +3.3V |
+| 4 (흑) | FMU_SWDIO | +3.3V |
+| 5 (흑) | FMU_SWCLK | +3.3V |
+| 6 (흑) | GND | GND |
+
+For information about using this port see:
+
+- [SWD Debug Port](../debug/swd_debug.md)
+- [PX4 System Console](../debug/system_console.md) (Note, the FMU console maps to USART3).
+- All ports use GH1.25 ,power ports use ports on E2 uses the 6 circuit [2.00mm Pitch CLIK-Mate Wire-to-Board PCB Receptacle](https://www.molex.com/en-us/products/part-detail/5024430670).
+
+## 핀배열
+
+
+
+
+
+
+
+
+
+## 지원 플랫폼 및 기체
+
+Any multirotor/airplane/rover or boat that can be controlled using normal RC servos or Futaba S-Bus servos.
+The complete set of supported configurations can be found in the [Airframe Reference](../airframes/airframe_reference.md).
diff --git a/docs/uk/SUMMARY.md b/docs/uk/SUMMARY.md
index 779440e3bf..4066b1dece 100644
--- a/docs/uk/SUMMARY.md
+++ b/docs/uk/SUMMARY.md
@@ -187,6 +187,7 @@
- [Radiolink PIX6](flight_controller/radiolink_pix6.md)
- [Sky-Drones AIRLink](flight_controller/airlink.md)
- [SPRacing SPRacingH7EXTREME](flight_controller/spracingh7extreme.md)
+ - [SVehicle E2](flight_controller/svehicle_e2.md)
- [ThePeach FCC-K1](flight_controller/thepeach_k1.md)
- [ThePeach FCC-R1](flight_controller/thepeach_r1.md)
- [Калібрування рівня горизонту](flight_controller/autopilot_experimental.md)
diff --git a/docs/uk/config/_autotune.md b/docs/uk/config/_autotune.md
index 7c31b3604b..a76a63832b 100644
--- a/docs/uk/config/_autotune.md
+++ b/docs/uk/config/_autotune.md
@@ -102,8 +102,7 @@ The RC sticks cannot be used during autotuning (moving the sticks will stop the
-4. The drone will first start to perform quick roll motions followed by pitch and yaw motions. When [`FW_AT_SYSID_TYPE`](../advanced_config/parameter_reference.md#FW_AT_SYSID_TYPE) is set to linear/logarithmic sine sweep (recommended), the max rates are approximately 45 deg/s for roll and 30 deg/s for pitch and yaw.
- The progress is shown in the progress bar, next to the _Autotune_ button.
+4. The drone will first start to perform quick roll motions followed by pitch and yaw motions. When [`FW_AT_SYSID_TYPE`](../advanced_config/parameter_reference.md#FW_AT_SYSID_TYPE) is set to linear/logarithmic sine sweep (recommended), the max rates reached during the maneuvers are 75% of the maximum configured roll (`FW_R_RMAX`), pitch (`FW_P_RMAX_NEG`, `FW_P_RMAX_POS`) and yaw (`FW_Y_RMAX`) rates. The progress is shown in the progress bar, next to the _Autotune_ button.
@@ -198,7 +197,7 @@ Increase the [MC_AT_SYSID_AMP](../advanced_config/parameter_reference.md#MC_AT_S
-By default, the autotune maneuvers ensure that a sufficient angular rate is reached for system identification. The target rates are approximately 45 deg/s for roll and 30 deg/s for pitch and yaw.
+By default, the autotune maneuvers ensure that a sufficient angular rate is reached for system identification, corresponding to 75% of the configured maximum roll (`FW_R_RMAX`), pitch (`FW_P_RMAX_NEG`, `FW_P_RMAX_POS`) and yaw (`FW_Y_RMAX`) rates.
If the signal-to-noise ratio of the vehicle is low, the system identification algorithm might have issues finding the correct coefficients. Ensure that there is no excessive noise and/or platform vibration.
diff --git a/docs/uk/flight_controller/autopilot_manufacturer_supported.md b/docs/uk/flight_controller/autopilot_manufacturer_supported.md
index 7892d5c8a1..7945545734 100644
--- a/docs/uk/flight_controller/autopilot_manufacturer_supported.md
+++ b/docs/uk/flight_controller/autopilot_manufacturer_supported.md
@@ -35,5 +35,6 @@ This category includes boards that are not fully compliant with the pixhawk stan
- [Radiolink PIX6](../flight_controller/radiolink_pix6.md)
- [Sky-Drones AIRLink](../flight_controller/airlink.md)
- [SPRacing SPRacingH7EXTREME](../flight_controller/spracingh7extreme.md)
+- [Svehicle E2](../flight_controller/svehicle_e2.md)
- [ThePeach FCC-K1](../flight_controller/thepeach_k1.md)
- [ThePeach FCC-R1](../flight_controller/thepeach_r1.md)
diff --git a/docs/uk/flight_controller/svehicle_e2.md b/docs/uk/flight_controller/svehicle_e2.md
new file mode 100644
index 0000000000..5d3a4aa9a1
--- /dev/null
+++ b/docs/uk/flight_controller/svehicle_e2.md
@@ -0,0 +1,176 @@
+# S-Vehicle E2
+
+:::warning
+PX4 не розробляє цей (або будь-який інший) автопілот.
+:::
+
+The _E2_ is an advanced autopilot manufactured by S-Vehicle®.
+
+The autopilot is recommended for commercial system integration, but is also suitable for academic research and any other applications.
+It brings you ultimate performance, stability, and reliability in every aspect.
+
+
+
+:::info
+These flight controllers are [manufacturer supported](../flight_controller/autopilot_manufacturer_supported.md).
+:::
+
+### Processors & Sensors
+
+- FMU Processor: STM32H753IIK6
+ - 32 Bit Arm® Cortex®-M7, 480MHz, 2MB flash memory, 1MB RAM
+- IO Processor: STM32F103
+ - 32 Bit Arm® Cortex®-M3, 72MHz, 20KB SRAM
+- Сенсори на платі
+ - Акселератор/гіроскоп: BMI088
+ - Accel/Gyro: ICM-42688-P
+ - Accel/Gyro: ICM-20649
+ - Mag: RM3100
+ - Барометр: 2x ICP-20100
+
+### Інтерфейси
+
+- 14x PWM Servo Outputs
+- 1x Dedicated R/C Input for Spektrum / DSM and S.Bus
+- 1x Analog/PWM RSSI Input
+- 2x TELEM Ports (with full flow control)
+- 1x UART4 Port
+- 2x GPS Ports
+ - 1x Full GPS plus Safety Switch Port (GPS1)
+ - 1x Basic GPS Port (with I2C, GPS2)
+- 1x USB Port (TYPE-C)
+- 1x Ethernet Port
+ - Transformerless application
+ - 100Mbps
+- 3x I2C Bus Ports
+- 1x SPI Bus
+ - 1x Chip Select Line
+ - 1x Data Ready Line
+ - 1x SPI Reset Line
+- 2x CAN Ports
+- 3x Power Input Ports
+ - ADC Power Input
+ - I2C Power Input
+ - DroneCAN/UAVCAN Power Input
+- 2x AD Ports
+ - Analog Input (3.3V)
+ - Analog Input (6.6V - not supported by PX4)
+- 1x Dedicated Debug Port
+ - FMU Debug
+
+## Purchase Channels
+
+Order from [S-Vehicle](https://svehicle.cn/).
+
+## Радіоуправління
+
+A Radio Control (RC) system is required if you want to manually control your vehicle (PX4 does not require a radio system for autonomous flight modes).
+
+Вам буде потрібно вибрати сумісний передавач/приймач та потім зв'язати їх, щоб вони взаємодіяли (прочитайте інструкції, що додаються до вашого конкретного передавача/приймача).
+
+Spektrum/DSM receivers connect to the DSM/SBUS RC input.
+PPM or SBUS receivers connect to the RC IN input port.
+CRSF receiver must be wired to a spare port (UART) on the Flight Controller. Then you can bind the transmitter and receiver together.
+
+## Налаштування послідовного порту
+
+| UART | Пристрій | Порт |
+| ------ | ---------- | ------------- |
+| USART1 | /dev/ttyS0 | GPS |
+| USART2 | /dev/ttyS1 | TELEM3 |
+| USART3 | /dev/ttyS2 | Debug Console |
+| UART4 | /dev/ttyS3 | UART4 |
+| UART5 | /dev/ttyS4 | TELEM2 |
+| USART6 | /dev/ttyS5 | PX4IO/RC |
+| UART7 | /dev/ttyS6 | TELEM1 |
+| UART8 | /dev/ttyS7 | GPS2 |
+
+## PWM Output
+
+The E2-Plus flight controller supports up to 14 PWM outputs.
+The first 8 outputs (labelled M1 to M8) are controlled by a dedicated STM32F103 IOMCU controller.
+The remaining 6 outputs (labelled 9 to 14) are the "auxiliary" outputs.
+These are directly attached to the STM32H753 FMU controller .
+
+The 14 PWM outputs are:
+
+M1 - M8 are connected to the IOMCU
+A1 - A6 are connected to the FMU
+
+M1 - M8 support DShot and are in 3 groups:
+
+- M1, M2 in group 1
+- M3, M4 in group 2
+- M5, M6, M7, M8 in group 3
+
+The 6 FMU PWM outputs are in 2 groups:
+
+A1 - A4 are in one group.
+A5, A6 are in a 2nd group.
+
+Channels within the same group need to use the same output rate.
+If any channel in a group uses DShot then all channels in the group need to use DShot.
+
+### Електричні дані
+
+- Номінальна напруга:
+ - Максимальна вхідна напруга: 5,7 В
+ - Вхід USB Power: 4.75~5.25V
+ - Вхід на серворейку: 0\~9.9В
+- Номінальний струм:
+ - Комбінований обмежувач вихідного струму TELEM1 і GPS2: 1,5 А
+ - Комбінований обмежувач вихідного струму всіх інших портів: 1.5A
+
+## Battery Monitoring
+
+The board has connectors for 3 power monitors.
+
+- POWER1 -- ADC
+- POWER2 -- DroneCAN
+- POWER3 -- I2C
+
+The board is configure by default for a analog power monitor, and also has DroneCAN power monitor and I2C defaults configured which is enabled.
+
+The default PDB included with the E2+ is analog and must be connected to `POWER1`.
+
+## Збірка прошивки
+
+To [build PX4](../dev_setup/building_px4.md) for this target, execute:
+
+```sh
+make svehicle_e2_default
+```
+
+## Відладочний порт
+
+The [PX4 System Console](../debug/system_console.md) and [SWD Interface](../debug/swd_debug.md) operate on the **FMU Debug** port.
+
+| Pin | Сигнал | Вольтаж |
+| -------------------------- | --------------------------------- | --------------------- |
+| 1 (red) | 5V+ | +5V |
+| 2 (blk) | DEBUG TX (OUT) | +3.3V |
+| 3 (blk) | DEBUG RX (IN) | +3.3V |
+| 4 (blk) | FMU_SWDIO | +3.3V |
+| 5 (blk) | FMU_SWCLK | +3.3V |
+| 6 (blk) | GND | GND |
+
+Інформацію про використання цього порту див:
+
+- [SWD Debug Port](../debug/swd_debug.md)
+- [PX4 System Console](../debug/system_console.md) (Note, the FMU console maps to USART3).
+- All ports use GH1.25 ,power ports use ports on E2 uses the 6 circuit [2.00mm Pitch CLIK-Mate Wire-to-Board PCB Receptacle](https://www.molex.com/en-us/products/part-detail/5024430670).
+
+## Схема розташування виводів
+
+
+
+
+
+
+
+
+
+## Підтримувані платформи / Конструкції
+
+Any multirotor/airplane/rover or boat that can be controlled using normal RC servos or Futaba S-Bus servos.
+The complete set of supported configurations can be found in the [Airframe Reference](../airframes/airframe_reference.md).
diff --git a/docs/zh/SUMMARY.md b/docs/zh/SUMMARY.md
index 44eb72121e..570c6aa5db 100644
--- a/docs/zh/SUMMARY.md
+++ b/docs/zh/SUMMARY.md
@@ -187,6 +187,7 @@
- [Radiolink PIX6](flight_controller/radiolink_pix6.md)
- [Sky-Drones AIRLink](flight_controller/airlink.md)
- [SPRacing SPRacingH7EXTREME](flight_controller/spracingh7extreme.md)
+ - [SVehicle E2](flight_controller/svehicle_e2.md)
- [ThePeach FCC-K1](flight_controller/thepeach_k1.md)
- [ThePeach FCC-R1](flight_controller/thepeach_r1.md)
- [Experimental Autopilots](flight_controller/autopilot_experimental.md)
diff --git a/docs/zh/config/_autotune.md b/docs/zh/config/_autotune.md
index 6a75da6380..c9e2b5bfee 100644
--- a/docs/zh/config/_autotune.md
+++ b/docs/zh/config/_autotune.md
@@ -102,8 +102,7 @@ The test steps are:
-4. The drone will first start to perform quick roll motions followed by pitch and yaw motions. When [`FW_AT_SYSID_TYPE`](../advanced_config/parameter_reference.md#FW_AT_SYSID_TYPE) is set to linear/logarithmic sine sweep (recommended), the max rates are approximately 45 deg/s for roll and 30 deg/s for pitch and yaw.
- The progress is shown in the progress bar, next to the _Autotune_ button.
+4. The drone will first start to perform quick roll motions followed by pitch and yaw motions. When [`FW_AT_SYSID_TYPE`](../advanced_config/parameter_reference.md#FW_AT_SYSID_TYPE) is set to linear/logarithmic sine sweep (recommended), the max rates reached during the maneuvers are 75% of the maximum configured roll (`FW_R_RMAX`), pitch (`FW_P_RMAX_NEG`, `FW_P_RMAX_POS`) and yaw (`FW_Y_RMAX`) rates. The progress is shown in the progress bar, next to the _Autotune_ button.
@@ -198,7 +197,7 @@ Increase the [MC_AT_SYSID_AMP](../advanced_config/parameter_reference.md#MC_AT_S
-By default, the autotune maneuvers ensure that a sufficient angular rate is reached for system identification. The target rates are approximately 45 deg/s for roll and 30 deg/s for pitch and yaw.
+By default, the autotune maneuvers ensure that a sufficient angular rate is reached for system identification, corresponding to 75% of the configured maximum roll (`FW_R_RMAX`), pitch (`FW_P_RMAX_NEG`, `FW_P_RMAX_POS`) and yaw (`FW_Y_RMAX`) rates.
If the signal-to-noise ratio of the vehicle is low, the system identification algorithm might have issues finding the correct coefficients. Ensure that there is no excessive noise and/or platform vibration.
diff --git a/docs/zh/flight_controller/autopilot_manufacturer_supported.md b/docs/zh/flight_controller/autopilot_manufacturer_supported.md
index 54ba3a753c..d6f07a44fb 100644
--- a/docs/zh/flight_controller/autopilot_manufacturer_supported.md
+++ b/docs/zh/flight_controller/autopilot_manufacturer_supported.md
@@ -35,5 +35,6 @@ The boards in this category are:
- [Radiolink PIX6](../flight_controller/radiolink_pix6.md)
- [Sky-Drones AIRLink](../flight_controller/airlink.md)
- [SPRacing SPRacingH7EXTREME](../flight_controller/spracingh7extreme.md)
+- [Svehicle E2](../flight_controller/svehicle_e2.md)
- [ThePeach FCC-K1](../flight_controller/thepeach_k1.md)
- [ThePeach FCC-R1](../flight_controller/thepeach_r1.md)
diff --git a/docs/zh/flight_controller/svehicle_e2.md b/docs/zh/flight_controller/svehicle_e2.md
new file mode 100644
index 0000000000..d34e22e553
--- /dev/null
+++ b/docs/zh/flight_controller/svehicle_e2.md
@@ -0,0 +1,176 @@
+# S-Vehicle E2
+
+:::warning
+PX4 does not manufacture this (or any) autopilot.
+:::
+
+The _E2_ is an advanced autopilot manufactured by S-Vehicle
®.
+
+The autopilot is recommended for commercial system integration, but is also suitable for academic research and any other applications.
+It brings you ultimate performance, stability, and reliability in every aspect.
+
+
+
+:::info
+These flight controllers are [manufacturer supported](../flight_controller/autopilot_manufacturer_supported.md).
+:::
+
+### Processors & Sensors
+
+- FMU Processor: STM32H753IIK6
+ - 32 Bit Arm® Cortex®-M7, 480MHz, 2MB flash memory, 1MB RAM
+- IO Processor: STM32F103
+ - 32 Bit Arm® Cortex®-M3, 72MHz, 20KB SRAM
+- On-board sensors
+ - Accel/Gyro: BMI088
+ - Accel/Gyro: ICM-42688-P
+ - Accel/Gyro: ICM-20649
+ - Mag: RM3100
+ - Barometer: 2x ICP-20100
+
+### 接口
+
+- 14x PWM Servo Outputs
+- 1x Dedicated R/C Input for Spektrum / DSM and S.Bus
+- 1x Analog/PWM RSSI Input
+- 2x TELEM Ports (with full flow control)
+- 1x UART4 Port
+- 2x GPS Ports
+ - 1x Full GPS plus Safety Switch Port (GPS1)
+ - 1x Basic GPS Port (with I2C, GPS2)
+- 1x USB Port (TYPE-C)
+- 1x Ethernet Port
+ - Transformerless application
+ - 100Mbps
+- 3x I2C Bus Ports
+- 1x SPI Bus
+ - 1x Chip Select Line
+ - 1x Data Ready Line
+ - 1x SPI Reset Line
+- 2x CAN Ports
+- 3x Power Input Ports
+ - ADC Power Input
+ - I2C Power Input
+ - DroneCAN/UAVCAN Power Input
+- 2x AD Ports
+ - Analog Input (3.3V)
+ - Analog Input (6.6V - not supported by PX4)
+- 1x Dedicated Debug Port
+ - FMU Debug
+
+## Purchase Channels
+
+Order from [S-Vehicle](https://svehicle.cn/).
+
+## 遥控器
+
+A Radio Control (RC) system is required if you want to manually control your vehicle (PX4 does not require a radio system for autonomous flight modes).
+
+将
HW\\u PM 模块的6针连接器连接到飞控的
电源接口。
+
+Spektrum/DSM receivers connect to the DSM/SBUS RC input.
+PPM or SBUS receivers connect to the RC IN input port.
+CRSF receiver must be wired to a spare port (UART) on the Flight Controller. Then you can bind the transmitter and receiver together.
+
+## 串口映射
+
+| UART | 设备 | Port |
+| ------ | ---------- | ------------- |
+| USART1 | /dev/ttyS0 | GPS |
+| USART2 | /dev/ttyS1 | TELEM3 |
+| USART3 | /dev/ttyS2 | Debug Console |
+| UART4 | /dev/ttyS3 | UART4 |
+| UART5 | /dev/ttyS4 | TELEM2 |
+| USART6 | /dev/ttyS5 | PX4IO/RC |
+| UART7 | /dev/ttyS6 | TELEM1 |
+| UART8 | /dev/ttyS7 | GPS2 |
+
+## PWM Output
+
+The E2-Plus flight controller supports up to 14 PWM outputs.
+The first 8 outputs (labelled M1 to M8) are controlled by a dedicated STM32F103 IOMCU controller.
+The remaining 6 outputs (labelled 9 to 14) are the "auxiliary" outputs.
+These are directly attached to the STM32H753 FMU controller .
+
+The 14 PWM outputs are:
+
+M1 - M8 are connected to the IOMCU
+A1 - A6 are connected to the FMU
+
+M1 - M8 support DShot and are in 3 groups:
+
+- M1, M2 in group 1
+- M3, M4 in group 2
+- M5, M6, M7, M8 in group 3
+
+The 6 FMU PWM outputs are in 2 groups:
+
+A1 - A4 are in one group.
+A5, A6 are in a 2nd group.
+
+Channels within the same group need to use the same output rate.
+If any channel in a group uses DShot then all channels in the group need to use DShot.
+
+### Electrical data
+
+- Voltage Ratings:
+ - Max input voltage: 5.7V
+ - USB Power Input: 4.75\~5.25V
+ - Servo Rail Input: 0\~9.9V
+- Current Ratings:
+ - TELEM1 and GPS2 combined output current limiter: 1.5A
+ - All other port combined output current limiter: 1.5A
+
+## Battery Monitoring
+
+The board has connectors for 3 power monitors.
+
+- POWER1 -- ADC
+- POWER2 -- DroneCAN
+- POWER3 -- I2C
+
+The board is configure by default for a analog power monitor, and also has DroneCAN power monitor and I2C defaults configured which is enabled.
+
+The default PDB included with the E2+ is analog and must be connected to `POWER1`.
+
+## 编译固件
+
+To [build PX4](../dev_setup/building_px4.md) for this target, execute:
+
+```sh
+make svehicle_e2_default
+```
+
+## 调试接口
+
+The [PX4 System Console](../debug/system_console.md) and [SWD Interface](../debug/swd_debug.md) operate on the **FMU Debug** port.
+
+| 针脚 | 信号 | 电压 |
+| ---- | --------------------------------- | --------------------- |
+| 1(红) | 5V+ | +5V |
+| 2 | DEBUG TX (OUT) | +3.3V |
+| 3 | DEBUG RX (IN) | +3.3V |
+| 4(黑) | FMU_SWDIO | +3.3V |
+| 6 | FMU_SWCLK | +3.3V |
+| 6 | GND | GND |
+
+For information about using this port see:
+
+- [SWD Debug Port](../debug/swd_debug.md)
+- [PX4 System Console](../debug/system_console.md) (Note, the FMU console maps to USART3).
+- All ports use GH1.25 ,power ports use ports on E2 uses the 6 circuit [2.00mm Pitch CLIK-Mate Wire-to-Board PCB Receptacle](https://www.molex.com/en-us/products/part-detail/5024430670).
+
+## 针脚定义
+
+
+
+
+
+
+
+
+
+## 支持的平台/机身
+
+Any multirotor/airplane/rover or boat that can be controlled using normal RC servos or Futaba S-Bus servos.
+The complete set of supported configurations can be found in the [Airframe Reference](../airframes/airframe_reference.md).
diff --git a/src/drivers/magnetometer/bosch/bmm350/BMM350.cpp b/src/drivers/magnetometer/bosch/bmm350/BMM350.cpp
index 83f43a962b..65b2299268 100755
--- a/src/drivers/magnetometer/bosch/bmm350/BMM350.cpp
+++ b/src/drivers/magnetometer/bosch/bmm350/BMM350.cpp
@@ -590,13 +590,13 @@ int BMM350::ReadOutRawData(float *out_data)
return -1;
}
- float temp = 0.0;
struct BMM350::raw_mag_data raw_data = {0};
// --- Start read_uncomp_mag_temp_data
uint8_t mag_data[14] = {0};
uint32_t raw_mag_x, raw_mag_y, raw_mag_z, raw_temp;
+
uint8_t cmd = static_cast
(Register::DATAX_XLSB);
uint8_t res = transfer(&cmd, 1, (uint8_t *)&mag_data, sizeof(mag_data));
@@ -623,17 +623,7 @@ int BMM350::ReadOutRawData(float *out_data)
out_data[3] = (float)raw_data.raw_t * lsb_to_utc_degc[3];
// Adjust temperature
- if (out_data[3] > 0.0f) {
- temp = (float)(out_data[3] - (1 * 25.49f));
-
- } else if (out_data[3] < 0.0f) {
- temp = (float)(out_data[3] - (-1 * 25.49f));
-
- } else {
- temp = (float)(out_data[3]);
- }
-
- out_data[3] = temp;
+ out_data[3] = (float)(out_data[3] - (1 * 25.49f));
return res;
}
diff --git a/src/modules/fw_autotune_attitude_control/fw_autotune_attitude_control.cpp b/src/modules/fw_autotune_attitude_control/fw_autotune_attitude_control.cpp
index 3bb8ba57c9..48633f3e73 100644
--- a/src/modules/fw_autotune_attitude_control/fw_autotune_attitude_control.cpp
+++ b/src/modules/fw_autotune_attitude_control/fw_autotune_attitude_control.cpp
@@ -345,7 +345,7 @@ void FwAutotuneAttitudeControl::updateStateMachine(hrt_abstime now)
}
const float abs_roll_rate = fabsf(_angular_velocity(0));
- const float target = min(kTargetRollRate, math::radians(_param_fw_r_rmax.get()));
+ const float target = 0.75f * math::radians(_param_fw_r_rmax.get());
updateAmplitudeDetectionState(now, abs_roll_rate, target);
@@ -396,7 +396,7 @@ void FwAutotuneAttitudeControl::updateStateMachine(hrt_abstime now)
const float abs_pitch_rate = fabsf(_angular_velocity(1));
const float max_pitch_rate = min(_param_fw_p_rmax_pos.get(), _param_fw_p_rmax_neg.get());
- const float target = min(kTargetPitchRate, math::radians(max_pitch_rate));
+ const float target = 0.75f * math::radians(max_pitch_rate);
updateAmplitudeDetectionState(now, abs_pitch_rate, target);
@@ -444,7 +444,7 @@ void FwAutotuneAttitudeControl::updateStateMachine(hrt_abstime now)
}
const float abs_yaw_rate = fabsf(_angular_velocity(2));
- const float target = min(kTargetYawRate, math::radians(_param_fw_y_rmax.get()));
+ const float target = 0.75f * math::radians(_param_fw_y_rmax.get());
updateAmplitudeDetectionState(now, abs_yaw_rate, target);
@@ -548,16 +548,47 @@ void FwAutotuneAttitudeControl::updateStateMachine(hrt_abstime now)
}
// In case of convergence timeout
- // the identification sequence is aborted immediately
+ // the identification sequence is aborted and the FSM moves on to the next axis
if (_state != state::wait_for_disarm && _state != state::idle && _state != state::fail && _state != state::complete) {
- if (now - _state_start_time > 20_s
- || (_param_fw_at_man_aux.get() && !_aux_switch_en)
- || _start_flight_mode != _nav_state) {
- orb_advert_t mavlink_log_pub = nullptr;
+
+ const bool timeout = (now - _state_start_time) > 30_s;
+ const bool mode_changed = (_start_flight_mode != _nav_state);
+ const bool aux_switched_off = (_param_fw_at_man_aux.get() && !_aux_switch_en);
+
+ orb_advert_t mavlink_log_pub = nullptr;
+
+ if (mode_changed || aux_switched_off) {
+ // Abort
mavlink_log_critical(&mavlink_log_pub, "Autotune aborted before finishing");
_state = state::fail;
- _state_start_time = now;
+
+ } else if (timeout) {
+ // Skip to next axis
+ mavlink_log_critical(&mavlink_log_pub, "Autotune axis timeout, skipping to next axis");
+
+ switch (_state) {
+ case state::roll_amp_detection:
+ case state::roll:
+ _state = state::roll_pause; // proceed to pitch
+ break;
+
+ case state::pitch_amp_detection:
+ case state::pitch:
+ _state = state::pitch_pause; // proceed to yaw
+ break;
+
+ case state::yaw_amp_detection:
+ case state::yaw:
+ _state = state::yaw_pause; // proceed to verification
+ break;
+
+ default:
+ _state = state::fail; // safety fallback
+ break;
+ }
}
+
+ _state_start_time = now;
}
}
diff --git a/src/modules/fw_autotune_attitude_control/fw_autotune_attitude_control.hpp b/src/modules/fw_autotune_attitude_control/fw_autotune_attitude_control.hpp
index 9373039457..9b63f5ba2b 100644
--- a/src/modules/fw_autotune_attitude_control/fw_autotune_attitude_control.hpp
+++ b/src/modules/fw_autotune_attitude_control/fw_autotune_attitude_control.hpp
@@ -172,16 +172,6 @@ private:
static constexpr float kSignalAmpMax{5.0f};
static constexpr float kSignalAmpStep{0.1f};
- // Target maximum angular rates for the system identification signal.
- // ~45 deg/s for roll, ~30 deg/s for pitch and yaw. These values are:
- // - High enough to provide good signal-to-noise ratio for identification.
- // - Low enough to keep pitch and yaw responses within the linear range
- // for most vehicles.
-
- static constexpr float kTargetRollRate{0.8f};
- static constexpr float kTargetPitchRate{0.5f};
- static constexpr float kTargetYawRate{0.5f};
-
matrix::Vector3f _angular_velocity{};
bool _armed{false};
@@ -253,6 +243,6 @@ private:
(ParamInt) _param_fw_sysid_signal_type
)
- static constexpr float _publishing_dt_s = 100e-3f;
- static constexpr hrt_abstime _publishing_dt_hrt = 100_ms;
+ static constexpr float _publishing_dt_s = 20e-3f;
+ static constexpr hrt_abstime _publishing_dt_hrt = 20_ms;
};
diff --git a/src/modules/mavlink/mavlink b/src/modules/mavlink/mavlink
index 342530b83c..b401fe0238 160000
--- a/src/modules/mavlink/mavlink
+++ b/src/modules/mavlink/mavlink
@@ -1 +1 @@
-Subproject commit 342530b83c215654f12988ab682111281d2e71f0
+Subproject commit b401fe0238b9647f8ea18d58d9e968b79b347916
diff --git a/src/modules/mavlink/mavlink_main.cpp b/src/modules/mavlink/mavlink_main.cpp
index 0d5b771761..479fa5a0a9 100644
--- a/src/modules/mavlink/mavlink_main.cpp
+++ b/src/modules/mavlink/mavlink_main.cpp
@@ -1746,7 +1746,6 @@ Mavlink::configure_streams_to_default(const char *configure_single_stream)
configure_stream_local("DISTANCE_SENSOR", 10.0f);
configure_stream_local("MOUNT_ORIENTATION", 10.0f);
configure_stream_local("OBSTACLE_DISTANCE", 10.0f);
- configure_stream_local("ODOMETRY", 30.0f);
configure_stream_local("GIMBAL_DEVICE_ATTITUDE_STATUS", 1.0f);
configure_stream_local("GIMBAL_MANAGER_STATUS", 0.5f);
configure_stream_local("GIMBAL_DEVICE_SET_ATTITUDE", 5.0f);
diff --git a/src/modules/simulation/gz_bridge/CMakeLists.txt b/src/modules/simulation/gz_bridge/CMakeLists.txt
index aa4b1be37e..c639b4c679 100644
--- a/src/modules/simulation/gz_bridge/CMakeLists.txt
+++ b/src/modules/simulation/gz_bridge/CMakeLists.txt
@@ -37,10 +37,11 @@ else()
find_package(gz-transport NAMES gz-transport13)
endif()
-file(GLOB gz_worlds ${PX4_SOURCE_DIR}/Tools/simulation/gz/worlds/*.sdf)
-file(GLOB gz_airframes ${PX4_SOURCE_DIR}/ROMFS/px4fmu_common/init.d-posix/airframes/*_gz_*)
-
if (gz-transport_FOUND)
+ px4_add_git_submodule(TARGET git_gz PATH "${PX4_SOURCE_DIR}/Tools/simulation/gz")
+
+ file(GLOB gz_worlds ${PX4_SOURCE_DIR}/Tools/simulation/gz/worlds/*.sdf)
+ file(GLOB gz_airframes ${PX4_SOURCE_DIR}/ROMFS/px4fmu_common/init.d-posix/airframes/*_gz_*)
if (gz-transport_VERSION VERSION_LESS "15")
set(GZ_TRANSPORT_TARGET "gz-transport${gz-transport_VERSION_MAJOR}::core")
else()
@@ -78,7 +79,6 @@ if (gz-transport_FOUND)
target_include_directories(modules__simulation__gz_bridge PUBLIC px4_gz_msgs)
target_link_libraries(modules__simulation__gz_bridge PUBLIC px4_gz_msgs)
- px4_add_git_submodule(TARGET git_gz PATH "${PX4_SOURCE_DIR}/Tools/simulation/gz")
include(ExternalProject)
ExternalProject_Add(gz
SOURCE_DIR ${PX4_SOURCE_DIR}/Tools/simulation/gz
diff --git a/test/mavsdk_tests/autopilot_tester_figure_eight.cpp b/test/mavsdk_tests/autopilot_tester_figure_eight.cpp
index 2d6e8f0b85..45142f579d 100644
--- a/test/mavsdk_tests/autopilot_tester_figure_eight.cpp
+++ b/test/mavsdk_tests/autopilot_tester_figure_eight.cpp
@@ -39,7 +39,11 @@
#include
#include
+
#include
+
+// Fix build until this is moved to common.xml
+#define MAVLINK_WIP
#include
using namespace mavsdk::geometry;