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. + +![SVehicle-E2](../../assets/flight_controller/svehicle_e2/main.png) + +:::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). + +## 핀배열 + +![SVehicle-E2 Top Down Photo](../../assets/flight_controller/svehicle_e2/top.png) + +![SVehicle-E2 Bottom Photo](../../assets/flight_controller/svehicle_e2/back.jpeg) + +![SVehicle-E2 left Photo](../../assets/flight_controller/svehicle_e2/left.png) + +![SVehicle-E2 right Photo](../../assets/flight_controller/svehicle_e2/right.png) + +## 지원 플랫폼 및 기체 + +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. + +![SVehicle-E2](../../assets/flight_controller/svehicle_e2/main.png) + +:::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). + +## Схема розташування виводів + +![SVehicle-E2 Top Down Photo](../../assets/flight_controller/svehicle_e2/top.png) + +![SVehicle-E2 Bottom Photo](../../assets/flight_controller/svehicle_e2/back.jpeg) + +![SVehicle-E2 left Photo](../../assets/flight_controller/svehicle_e2/left.png) + +![SVehicle-E2 right Photo](../../assets/flight_controller/svehicle_e2/right.png) + +## Підтримувані платформи / Конструкції + +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. + +![SVehicle-E2](../../assets/flight_controller/svehicle_e2/main.png) + +:::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). + +## 针脚定义 + +![SVehicle-E2 Top Down Photo](../../assets/flight_controller/svehicle_e2/top.png) + +![SVehicle-E2 Bottom Photo](../../assets/flight_controller/svehicle_e2/back.jpeg) + +![SVehicle-E2 left Photo](../../assets/flight_controller/svehicle_e2/left.png) + +![SVehicle-E2 right Photo](../../assets/flight_controller/svehicle_e2/right.png) + +## 支持的平台/机身 + +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;