diff --git a/docs/uk/SUMMARY.md b/docs/uk/SUMMARY.md index accfcd8598..10aa436752 100644 --- a/docs/uk/SUMMARY.md +++ b/docs/uk/SUMMARY.md @@ -851,8 +851,10 @@ - [Тест MC_04 - Тестування відмовостійкості](test_cards/mc_04_failsafe_testing.md) - [Test MC_05 - Manual Modes (Inside)](test_cards/mc_05_indoor_flight_manual_modes.md) - [Test MC_06 - Optical Flow (Inside)](test_cards/mc_06_optical_flow.md) - - [Test MC_07 - VIO (Inside)](test_cards/mc_07_vio.md) + - [Test MC_07 - Optical Flow Low Mount](test_cards/mc_07_optical_flow_low_mount.md) - [Test MC_08 - DSHOT ESC](test_cards/mc_08_dshot.md) + - [Test MC_09 - VIO (Visual-Inertial Odometry)](test_cards/mc_09_vio.md) + - [Test MC_10 - Optical Flow / GPS Mixed](test_cards/mc_10_optical_flow_gps_mixed.md) - [Модульні Тести](test_and_ci/unit_tests.md) - [Fuzz Tests](test_and_ci/fuzz_tests.md) - [Безперервна інтеграція](test_and_ci/continous_integration.md) diff --git a/docs/uk/concept/system_startup.md b/docs/uk/concept/system_startup.md index e1cc0abd18..f94b70aa7c 100644 --- a/docs/uk/concept/system_startup.md +++ b/docs/uk/concept/system_startup.md @@ -1,7 +1,7 @@ # Запуск системи Запуск PX4 контрольований скриптами оболонки. -На NuttX вони знаходяться у директорії [ROMFS/px4fmu_common/init.d](https://github.com/PX4/PX4-Autopilot/tree/main/ROMFS/px4fmu_common/init.d), деякі з них також використовуються на Posix системах (Linux/MacOS). +On NuttX they reside in the [ROMFS/px4fmu_common/init.d](https://github.com/PX4/PX4-Autopilot/tree/main/ROMFS/px4fmu_common/init.d) folder - some of these are also used on Posix (Linux/macOS). Скрипти які використовуються тільки на Posix системах знаходяться у [ROMFS/px4fmu_common/init.d-posix](https://github.com/PX4/PX4-Autopilot/tree/main/ROMFS/px4fmu_common/init.d-posix). Усі файли, які починаються з числа і підкреслення (наприклад, `10000_airaipl`) є попередньо визначеними конфігураціями планерів. @@ -13,7 +13,7 @@ They are exported at build-time into an `airframes.xml` file which is parsed by Наступні секції розділені відповідно до операційної системи, на яких виконується PX4. -## POSIX (Linux/MacOS) +## POSIX (Linux/macOS) On POSIX, the system shell is used as script interpreter (e.g. /bin/sh, being symlinked to dash on Ubuntu). Щоб це працювало потрібно кілька речей: diff --git a/docs/uk/dev_log/ulog_file_format.md b/docs/uk/dev_log/ulog_file_format.md index 12df33315d..4e15845983 100644 --- a/docs/uk/dev_log/ulog_file_format.md +++ b/docs/uk/dev_log/ulog_file_format.md @@ -502,6 +502,7 @@ struct message_dropout_s { - [ulogreader](https://github.com/maxsun/ulogreader): Javascript, ULog reader and parser outputs log in JSON object format. - [Foxglove](https://foxglove.dev): an integrated visualization and diagnosis tool for robotics data that supports ULog files. - [TypeScript ULog parser](https://github.com/foxglove/ulog): TypeScript, ULog reader that outputs JS objects. +- [yule_log](https://crates.io/crates/yule_log): A streaming ULog parser written in Rust. ## Історія версій формату файлу diff --git a/docs/uk/dev_setup/dev_env.md b/docs/uk/dev_setup/dev_env.md index 46bcc54138..6a23af23fa 100644 --- a/docs/uk/dev_setup/dev_env.md +++ b/docs/uk/dev_setup/dev_env.md @@ -2,22 +2,22 @@ The _supported platforms_ for PX4 development are: -- [Ubuntu Linux (22.04/20.04/18.04)](../dev_setup/dev_env_linux_ubuntu.md) — Recommended +- [Ubuntu Linux (24.04/22.04)](../dev_setup/dev_env_linux_ubuntu.md) — Recommended - [Windows (10/11)](../dev_setup/dev_env_windows_wsl.md) — via WSL2 -- [Mac OS](../dev_setup/dev_env_mac.md) +- [macOS](../dev_setup/dev_env_mac.md) ## Цільові платформи що підтримуються Таблиця нижче показує, які цільові платформи PX4 можна побудувати на кожній ОС. -| Цільова платформа | Linux (Ubuntu) | Mac | Windows | -| ------------------------------------------------------------------------------------------------------------------------------------------------------ | :-------------------------------: | :-: | :-----: | -| **NuttX based hardware:** [Pixhawk Series](../flight_controller/pixhawk_series.md), [Crazyflie](../complete_vehicles_mc/crazyflie2.md) | ✓ | ✓ | ✓ | -| **Linux-based hardware:** [Raspberry Pi 2/3](../flight_controller/raspberry_pi_navio2.md) | ✓ | | | -| **Simulation:** [Gazebo SITL](../sim_gazebo_gz/index.md) | ✓ | ✓ | ✓ | -| **Simulation:** [Gazebo Classic SITL](../sim_gazebo_classic/index.md) | ✓ | ✓ | ✓ | -| **Simulation:** [ROS with Gazebo Classic](../simulation/ros_interface.md) | ✓ | | ✓ | -| **Simulation:** ROS 2 with Gazebo | ✓ | | ✓ | +| Цільова платформа | Linux (Ubuntu) | macOS | Windows | +| ------------------------------------------------------------------------------------------------------------------------------------------------------ | :-------------------------------: | :---: | :-----: | +| **NuttX based hardware:** [Pixhawk Series](../flight_controller/pixhawk_series.md), [Crazyflie](../complete_vehicles_mc/crazyflie2.md) | ✓ | ✓ | ✓ | +| **Linux-based hardware:** [Raspberry Pi 2/3](../flight_controller/raspberry_pi_navio2.md) | ✓ | | | +| **Simulation:** [Gazebo SITL](../sim_gazebo_gz/index.md) | ✓ | ✓ | ✓ | +| **Simulation:** [Gazebo Classic SITL](../sim_gazebo_classic/index.md) | ✓ | ✓ | ✓ | +| **Simulation:** [ROS with Gazebo Classic](../simulation/ros_interface.md) | ✓ | | ✓ | +| **Simulation:** ROS 2 with Gazebo | ✓ | | ✓ | Experienced Docker users can also build with the containers used by our continuous integration system: [Docker Containers](../test_and_ci/docker.md) diff --git a/docs/uk/dev_setup/dev_env_mac.md b/docs/uk/dev_setup/dev_env_mac.md index 65f1453411..214f44b7f3 100644 --- a/docs/uk/dev_setup/dev_env_mac.md +++ b/docs/uk/dev_setup/dev_env_mac.md @@ -1,4 +1,4 @@ -# Середовище розробки MacOS +# macOS Development Environment Наступні інструкції для встановлення середовища розробки PX4 для macOS. Це середовище може бути використане для збірки PX4 для: @@ -22,8 +22,8 @@ To build other targets you will need to use a [different OS](../dev_setup/dev_en ### Налаштування середовища :::details -Apple Silicon Macbook users! -If you have an Apple M1, M2 etc. Macbook, make sure to run the terminal as x86 by setting up an x86 terminal: +Apple Silicon MacBook users! +If you have an Apple M1, M2 etc. MacBook, make sure to run the terminal as x86 by setting up an x86 terminal: 1. Locate the Terminal application within the Utilities folder (**Finder > Go menu > Utilities**) 2. Select _Terminal.app_ and right-click on it, then choose **Duplicate**. @@ -50,7 +50,7 @@ If you have an Apple M1, M2 etc. Macbook, make sure to run the terminal as x86 b 2. Enforce Python 3 by appending the following lines to `~/.zshenv` ```sh - # Point pip3 to MacOS system python 3 pip + # Point pip3 to macOS system python 3 pip alias pip3=/usr/bin/pip3 ``` diff --git a/docs/uk/test_and_ci/test_flights.md b/docs/uk/test_and_ci/test_flights.md index 6771beac6e..103549e361 100644 --- a/docs/uk/test_and_ci/test_flights.md +++ b/docs/uk/test_and_ci/test_flights.md @@ -28,5 +28,7 @@ When submitting [Pull Requests](../contribute/code.md#pull-requests) for new fun - [MC_04 - Failsafe Testing](../test_cards/mc_04_failsafe_testing.md) - [MC_05 - Indoor Flight (Manual Modes)](../test_cards/mc_05_indoor_flight_manual_modes.md) - [MC_06 - Indoor Flight (Optical Flow)](../test_cards/mc_06_optical_flow.md) -- [MC_07 - VIO (Visual-Inertial Odometry)](../test_cards/mc_07_vio.md) +- [MC_07 - Optical Flow Low Mount](../test_cards/mc_07_optical_flow_low_mount.md) - [MC_08 - DSHOT ESC](../test_cards/mc_08_dshot.md) +- [MC_09 - VIO (Visual-Inertial Odometry)](../test_cards/mc_09_vio.md) +- [MC_10 - Optical Flow / GPS Mixed](../test_cards/mc_10_optical_flow_gps_mixed.md) diff --git a/docs/uk/test_cards/mc_06_optical_flow.md b/docs/uk/test_cards/mc_06_optical_flow.md index 6a10870404..3ade1bd015 100644 --- a/docs/uk/test_cards/mc_06_optical_flow.md +++ b/docs/uk/test_cards/mc_06_optical_flow.md @@ -2,25 +2,23 @@ ## Objective -To test that optical flow works as expected +Test that optical flow works as expected ## Preflight -Disconnect all GPS / compasses and ensure vehicle is using optical flow for navigation -([Setup Information here](../sensor/optical_flow.md)) +Disconnect all GPS / compasses and ensure vehicle is using optical flow for navigation ([setup information here](../sensor/optical_flow.md)) -Ensure there are no other sources of positioning besides optical flow +Ensure there are no other sources of positioning besides optical flow: - [EKF2_OF_CTRL](../advanced_config/parameter_reference.md#EKF2_OF_CTRL): `1` - [EKF2_GPS_CTRL](../advanced_config/parameter_reference.md#EKF2_GPS_CTRL): `0` - [EKF2_EV_CTRL](../advanced_config/parameter_reference.md#EKF2_EV_CTRL): `0` -- [SYS_HAS_MAG](../advanced_config/parameter_reference.md#SYS_HAS_MAG): `0` -Ensure that the drone can go into Altitude / Position flight mode while still on the ground +Ensure that the drone can go into Altitude / Position mode while still on the ground ## Flight Tests -❏ Altitude flight mode +❏ [Altitude mode](../flight_modes_mc/altitude.md)     ❏ Vertical position should hold current value with stick centered @@ -28,7 +26,7 @@ Ensure that the drone can go into Altitude / Position flight mode while still on     ❏ Throttle response set to climb/descent rate -❏ Position flight mode +❏ [Position mode](../flight_modes_mc/position.md)     ❏ Horizontal position should hold current value with stick centered @@ -38,6 +36,16 @@ Ensure that the drone can go into Altitude / Position flight mode while still on     ❏ Pitch/Roll/Yaw response set to pitch/roll/yaw rates +❏ Varying height terrain + +    ❏ Put boxes on the ground to create varying heights in terrain + +    ❏ Take off in position mode and fly over the boxes such that the downward facing rangefinder varies in value + +    ❏ Do a few passes with varying amounts of time over the boxes (1-30 seconds if possible) + +    ❏ Drone should not raise in height when flying over boxes + ## Посадка ❏ Land in either Position or Altitude mode with the throttle below 40% @@ -47,7 +55,8 @@ Ensure that the drone can go into Altitude / Position flight mode while still on ## Очікувані результати - Зліт повинен бути плавним, коли газ піднято -- Drone should hold altitude in Altitude Flight mode without wandering -- Drone should hold position within 1 meter in Position Flight mode without pilot moving sticks +- Drone should hold altitude in Altitude mode without wandering (over surface with many features) +- Drone should hold position within 1 meter in Position mode without pilot moving sticks - Немає коливання в жодному з перерахованих режимів польоту +- Drone should not raise in height when flying over boxes - Після посадки, коптер не повинен підскакувати на землі diff --git a/docs/uk/test_cards/mc_07_optical_flow_low_mount.md b/docs/uk/test_cards/mc_07_optical_flow_low_mount.md new file mode 100644 index 0000000000..1679a2c8d4 --- /dev/null +++ b/docs/uk/test_cards/mc_07_optical_flow_low_mount.md @@ -0,0 +1,45 @@ +# Test MC_07 - Optical Flow Low Sensor + +## Objective + +Test that optical flow works as expected with a low mounted optical flow sensor + +## Preflight + +Ensure that the drone's optical flow sensor is mounted more than an inch off of the ground + +Ensure that [MPC_THR_MIN](../advanced_config/parameter_reference.md#MPC_THR_MIN) is tuned correctly for landing + +Disconnect all GPS / compasses and ensure vehicle is using optical flow for navigation +([Setup Information here](../sensor/optical_flow.md)) + +Ensure there are no other sources of positioning besides optical flow + +- [EKF2_OF_CTRL](../advanced_config/parameter_reference.md#EKF2_OF_CTRL): `1` +- [EKF2_GPS_CTRL](../advanced_config/parameter_reference.md#EKF2_GPS_CTRL): `0` +- [EKF2_EV_CTRL](../advanced_config/parameter_reference.md#EKF2_EV_CTRL): `0` + +Ensure that the drone can go into [Position mode](../flight_modes_mc/position.md) while still on the ground + +## Flight Tests + +❏ [Position mode](../flight_modes_mc/position.md) + +    ❏ Horizontal position should hold current value with stick centered + +    ❏ Vertical position should hold current value with stick centered + +    ❏ Throttle response set to climb/descent rate + +    ❏ Pitch/Roll/Yaw response set to pitch/roll/yaw rates + +## Посадка + +❏ Land in Position mode with the throttle below 40% + +❏ Upon touching ground, copter should disarm automatically within 2 seconds (default: see [COM_DISARM_LAND](../advanced_config/parameter_reference.md#COM_DISARM_LAND)) + +## Очікувані результати + +- Зліт повинен бути плавним, коли газ піднято +- Drone should stay in Position mode, NOT fall into [altitude](../flight_modes_mc/altitude.md) mode diff --git a/docs/uk/test_cards/mc_08_dshot.md b/docs/uk/test_cards/mc_08_dshot.md index 422482bbc9..148534cae8 100644 --- a/docs/uk/test_cards/mc_08_dshot.md +++ b/docs/uk/test_cards/mc_08_dshot.md @@ -6,22 +6,22 @@ Regression test for DSHOT working with PX4 ## Preflight -- Ensure vehicle is using a DSHOT ESC. +- Ensure vehicle is using a DSHOT ESC - Parameter [DSHOT_BIDIR_EN](../advanced_config/parameter_reference.md#DSHOT_BIDIR_EN) is enabled - Parameter [DSHOT_TEL_CFG](../advanced_config/parameter_reference.md#DSHOT_TEL_CFG) is configured (if ESC supports telemetry) - Parameter [SDLOG_PROFILE](../advanced_config/parameter_reference.md#SDLOG_PROFILE) has Debug (`5`) checked ## Flight Tests -❏ Stabilized Flight mode +❏ [Stabilized mode](../flight_modes_mc/manual_stabilized.md) -    ❏ Takeoff in stabilized flight mode to ensure correct motor spin +    ❏ Takeoff in stabilized mode to ensure correct motor spin     ❏ Pitch/Roll/Yaw response 1:1     ❏ Throttle response 1:1 -❏ Position flight mode +❏ [Position mode](../flight_modes_mc/position.md)     ❏ Horizontal position should hold current value with stick centered @@ -41,6 +41,6 @@ Regression test for DSHOT working with PX4 - Download flight logs - Load into Data Plot Juggler -- Ensure data is logged for esc_status/esc.0x/esc_rpm +- Ensure data is logged for `esc_status`/`esc.0x`/`esc_rpm` ![Reference frames](../../assets/test_cards/dshot_log_output.png) diff --git a/docs/uk/test_cards/mc_09_vio.md b/docs/uk/test_cards/mc_09_vio.md new file mode 100644 index 0000000000..29ab4a0253 --- /dev/null +++ b/docs/uk/test_cards/mc_09_vio.md @@ -0,0 +1,52 @@ +# Test MC_09 - VIO (Visual-Inertial Odometry) + +## Objective + +Test that external vision (VIO) works as expected + +## Preflight + +Disconnect all GPS / compasses and ensure vehicle is using VIO for navigation + +Ensure that the drone can go into [Altitude](../flight_modes_mc/altitude.md) / [Position](../flight_modes_mc/position.md) mode while still on the ground + +Ensure there are no other sources of positioning besides VIO: + +- [EKF2_OF_CTRL](../advanced_config/parameter_reference.md#EKF2_OF_CTRL): `0` +- [EKF2_GPS_CTRL](../advanced_config/parameter_reference.md#EKF2_GPS_CTRL): `0` +- [EKF2_EV_CTRL](../advanced_config/parameter_reference.md#EKF2_EV_CTRL): `15` +- [SYS_HAS_MAG](../advanced_config/parameter_reference.md#SYS_HAS_MAG): `0` + +## Flight Tests + +❏ [Altitude mode](../flight_modes_mc/altitude.md) + +    ❏ Vertical position should hold current value with stick centered + +    ❏ Pitch/Roll/Yaw response 1:1 + +    ❏ Throttle response set to climb/descent rate + +❏ [Position mode](../flight_modes_mc/position.md) + +    ❏ Horizontal position should hold current value with stick centered + +    ❏ Vertical position should hold current value with stick centered + +    ❏ Throttle response set to climb/descent rate + +    ❏ Pitch/Roll/Yaw response set to pitch/roll/yaw rates + +## Посадка + +❏ Land in either Position or Altitude mode with the throttle below 40% + +❏ Upon touching ground, copter should disarm automatically within 2 seconds (default: see [COM_DISARM_LAND](../advanced_config/parameter_reference.md#COM_DISARM_LAND)) + +## Очікувані результати + +- Зліт повинен бути плавним, коли газ піднято +- Drone should hold altitude in Altitude mode without wandering +- Drone should hold position within 1 meter in Position mode without pilot moving sticks +- Немає коливання в жодному з перерахованих режимів польоту +- Після посадки, коптер не повинен підскакувати на землі diff --git a/docs/uk/test_cards/mc_10_optical_flow_gps_mixed.md b/docs/uk/test_cards/mc_10_optical_flow_gps_mixed.md new file mode 100644 index 0000000000..a1a165e322 --- /dev/null +++ b/docs/uk/test_cards/mc_10_optical_flow_gps_mixed.md @@ -0,0 +1,74 @@ +# Test MC_10 - Optical Flow / GPS Mixed + +## Objective + +Test that optical flow mixed with GPS works as expected + +## Preflight + +[Setup optical flow and GPS](../sensor/optical_flow.md) + +Ensure there are no other sources of positioning besides optical flow + +- [EKF2_OF_CTRL](../advanced_config/parameter_reference.md#EKF2_OF_CTRL): `1` +- [EKF2_GPS_CTRL](../advanced_config/parameter_reference.md#EKF2_GPS_CTRL): `7` +- [EKF2_EV_CTRL](../advanced_config/parameter_reference.md#EKF2_EV_CTRL): `0` +- [SYS_HAS_MAG](../advanced_config/parameter_reference.md#SYS_HAS_MAG): `1` +- [EKF2_HGT_REF](../advanced_config/parameter_reference.md#EKF2_HGT_REF): `1` (GPS) + +Ensure that the drone can go into [Altitude](../flight_modes_mc/altitude.md) / [Position](../flight_modes_mc/position.md) mode while still on the ground + +## Flight Tests + +❏ [Altitude mode](../flight_modes_mc/altitude.md) + +    ❏ Vertical position should hold current value with stick centered + +    ❏ Pitch/Roll/Yaw response 1:1 + +    ❏ Throttle response set to climb/descent rate + +❏ [Position mode](../flight_modes_mc/position.md) + +    ❏ Horizontal position should hold current value with stick centered + +    ❏ Vertical position should hold current value with stick centered + +    ❏ Throttle response set to climb/descent rate + +    ❏ Pitch/Roll/Yaw response set to pitch/roll/yaw rates + +❏ GPS Cutout + +    ❏ Takeoff in position mode in GPS rich environment (outdoors) + +    ❏ Open QGC and navigate to MAVLink Console + +    ❏ Type `gps off` to disable GPS + +    ❏ Drone should maintain position hold via optical flow + +❏ GPS Degredation + +    ❏ Takeoff in position mode in GPS rich environment (outdoors) + +    ❏ Fly under a metal surface (or other GPS blocking structure) + +    ❏ Ensure drone does not lose position hold or start drifting + +    ❏ Fly out of metal structure to regain GPS + +❏ GPS Acquisition + +    ❏ Takeoff in position mode in non-GPS environment + +    ❏ Fly into a GPS rich environment (outdoors) + +    ❏ Ensure drone acquires GPS position + +## Очікувані результати + +- Зліт повинен бути плавним, коли газ піднято +- Drone should hold position within 1 meter in Position mode without pilot moving sticks +- Drone should hold position in GPS rich environment as well as non-GPS environment +- Немає коливання в жодному з перерахованих режимів польоту