diff --git a/docs/uk/SUMMARY.md b/docs/uk/SUMMARY.md index 80ccf0fc76..90a224480d 100644 --- a/docs/uk/SUMMARY.md +++ b/docs/uk/SUMMARY.md @@ -843,6 +843,8 @@ - [Тест 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_08 - DSHOT ESC](test_cards/mc_08_dshot.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 b4f0ae06ec..c4d74386af 100644 --- a/docs/uk/concept/system_startup.md +++ b/docs/uk/concept/system_startup.md @@ -95,6 +95,8 @@ NuttX має інтегрований інтерпретатор оболонк Найкращий спосіб змінити запуск системи - це ввести [нову конфігурацію планера](../dev_airframes/adding_a_new_frame.md). Файл конфігурації планеру може бути включений у прошивку або на SD карту. +#### Dynamic customization + Якщо вам потрібно "підлаштувати" конфігурацію що існує, наприклад запустити один або більше застосунків або встановити значення кількох параметрів, можна вказати це створивши два файли у директорії `/etc/` на SD картці: - [/etc/config.txt](#customizing-the-configuration-config-txt): modify parameter values @@ -111,7 +113,7 @@ NuttX має інтегрований інтерпретатор оболонк Ці файли згадуються в коді PX4 як `/fs/microsd/etc/config.txt` та `/fs/microsd/etc/extras.txt`, де коренева директорія microSD карти визначається шляхом `/fs/microsd`. ::: -#### Налаштування конфігурації (config.txt) +##### Налаштування конфігурації (config.txt) Файл `config.txt` можна використовувати для зміни параметрів. Він завантажується після того, як головна система була налаштована та _перед тим_ як завантажена. @@ -123,7 +125,7 @@ param set-default PWM_MAIN_DIS3 1000 param set-default PWM_MAIN_MIN3 1120 ``` -#### Запуск додаткових застосунків (extras.txt) +##### Запуск додаткових застосунків (extras.txt) `extras.txt` можна використовувати для запуску додаткових застосунків після завантаження основної системи. Зазвичай це будуть контролери корисного навантаження або подібні необов'язкові користувацькі компоненти. @@ -150,3 +152,28 @@ param set-default PWM_MAIN_MIN3 1120 mandatory_app start # Will abort boot if mandatory_app is unknown or fails ``` + +#### Additional customization + +In rare cases where the desired setup cannot be achieved through frame configuration or dynamic customization, +you can add a script that will be contained in the binary. + +**Note**: In almost all cases, you should use a frame configuration. This method should only be used for +edge-cases such as customizing `cannode` based boards. + +- Add a new init script in `boards///init` that will run during board startup. Наприклад: + ```sh + # File: boards///init/rc.additional + param set-default + ``` + +- Add a new board variant in `boards///.px4board` that includes the additional script. Наприклад: + ```sh + # File: boards///var.px4board + CONFIG_BOARD_ADDITIONAL_INIT="rc.additional" + ``` + +- Compile the firmware with your new variant by appending the variant name to the compile target. Наприклад: + ```sh + make _var + ``` diff --git a/docs/uk/config_rover/basic_setup.md b/docs/uk/config_rover/basic_setup.md index 08bde551a8..a5fc9f1987 100644 --- a/docs/uk/config_rover/basic_setup.md +++ b/docs/uk/config_rover/basic_setup.md @@ -27,10 +27,18 @@ That is the minimum setup to use the rover in [Manual mode](../flight_modes_rover/manual.md#manual-mode). +:::info +The rest of the tuning on this page is not mandatory for [Manual mode](../flight_modes_rover/manual.md#manual-mode), but it will have an effect on the behaviour of the rover. +::: + +:::warning +Do not skip the rest of this setup if you intend to use more sophisticated modes! +All parameters will be mandatory for all subsequent modes, except those tagged as `(Optional)`. +::: + ## Geometric Parameters -Manual mode is also affected by (optional) acceleration/deceleration limits set using the geometric described below. -These limits are mandatory for all other modes. +First, we set up the geometric parameters of the rover: ![Geometric parameters](../../assets/config/rover/geometric_parameters.png) @@ -42,7 +50,7 @@ Navigate to [Parameters](../advanced_config/parameters.md) in QGroundControl and 2. [RA_MAX_STR_ANG](#RA_MAX_STR_ANG) [deg]: Measure the maximum steering angle. 3. (Optional) [RA_STR_RATE_LIM](#RA_STR_RATE_LIM) [deg/s]: Maximum steering rate you want to allow for your rover. - :::tip + ::: tip This value depends on your rover and use case. For bigger rovers there might be a mechanical limit that is easy to identify by steering the rover at a standstill and increasing [RA_STR_RATE_LIM](#RA_STR_RATE_LIM) until you observe the steering rate to no longer be limited by the parameter. @@ -51,7 +59,7 @@ Navigate to [Parameters](../advanced_config/parameters.md) in QGroundControl and ::: - :::warning + ::: warning A low maximum steering rate makes the rover worse at tracking steering setpoints, which can lead to a poor performance in the subsequent modes. ::: @@ -76,7 +84,7 @@ Navigate to [Parameters](../advanced_config/parameters.md) in QGroundControl and 2. (Optional) [RO_ACCEL_LIM](#RO_ACCEL_LIM) [m/s^2]: Maximum acceleration you want to allow for your rover. - + :::tip Your rover has a maximum possible acceleration which is determined by the maximum torque the motor can supply. @@ -109,6 +117,39 @@ Navigate to [Parameters](../advanced_config/parameters.md) in QGroundControl and ::: +## (Optional) Stick Input Mapping + +Input shaping can be used to adjust the default linear mapping from stick inputs $\in [-1, 1]$ to normalized setpoints $\in [-1, 1]$. Applying this specifically to the steering input, can provide a smoother driving experience, by enabling the user to make small adjustments when the stick is close to the center, but still send large inputs when moving them to the edges. +We provide this input shaping through the super exponential function: + +$$ +\delta = \frac{(f \cdot x^3 + x(1-f)) \cdot (1-g)}{1-g \cdot |x|} +$$ + +with: + + - $\delta \in [-1, 1]=$ Normalized steering setpoint. + - $x \in [-1, 1]=$ Normalized stick input. + - $f=$ [RO_YAW_EXPO](#RO_YAW_EXPO): `0` Purely linear input curve, `1` Purely cubic input curve. + - $g=$ [RO_YAW_SUPEXPO](#RO_YAW_SUPEXPO): `0` Pure Expo function, `0.7` reasonable shape enhancement for intuitive stick feel, `0.95` very strong bent input curve only near maxima have effect. + +In [Manual mode](../flight_modes_rover/manual.md#manual-mode) we can additionally scale $\delta$ with an additional parameter $r$: + + - Differential Rover: $r=$ [RD_YAW_STK_GAIN](#RD_YAW_STK_GAIN), which enables adjusting the slope of the input mapping. This leads to a normalized steering input $\hat{\delta} = \delta \cdot r \in$ [-[RD_YAW_STK_GAIN](#RD_YAW_STK_GAIN), [RD_YAW_STK_GAIN](#RD_YAW_STK_GAIN)]. + - Mecanum Rover: $r=$ [RM_YAW_STK_GAIN](#RM_YAW_STK_GAIN), which enables adjusting the slope of the input mapping. This leads to a normalized steering input $\hat{\delta} = \delta \cdot r \in$ [-[RM_YAW_STK_GAIN](#RM_YAW_STK_GAIN), [RM_YAW_STK_GAIN](#RM_YAW_STK_GAIN)]. + +This scaling is useful to limit the normalized steering setpoint, if it is too aggresive for your rover in manual mode. + +You can experiment with the relationships graphically using the [PX4 SuperExpo Rover calculator](https://www.desmos.com/calculator/gwm8lrlanx). + +:::info +In [Acro](../flight_modes_rover/manual.md#acro-mode), [Stabilized](../flight_modes_rover/manual.md#stabilized-mode) and [Position](../flight_modes_rover/manual.md#position-mode) Mode, $\delta$ is instead scaled by $r=$ [RO_YAW_RATE_LIM](../advanced_config/parameter_reference.md#RO_MAX_THR_SPEED) for all rovers. This leads to a yaw rate setpoint $\dot{\psi} = \delta \cdot r \in$ [-[RO_YAW_RATE_LIM](../advanced_config/parameter_reference.md#RO_MAX_THR_SPEED), [RO_YAW_RATE_LIM](../advanced_config/parameter_reference.md#RO_MAX_THR_SPEED)]. This parameter is setup during [rate tuning](rate_tuning.md). +::: + +:::info +The input shaping through [RO_YAW_EXPO](#RO_YAW_EXPO) and [RO_YAW_SUPEXPO](#RO_YAW_SUPEXPO) applies for all manual modes, while [RD_YAW_STK_GAIN](#RD_YAW_STK_GAIN)/[RM_YAW_STK_GAIN](#RM_YAW_STK_GAIN) only affects full manual mode. +::: + You can now continue the configuration process with [rate tuning](rate_tuning.md). ## Огляд параметрів @@ -118,6 +159,8 @@ You can now continue the configuration process with [rate tuning](rate_tuning.md | [RO_MAX_THR_SPEED](../advanced_config/parameter_reference.md#RO_MAX_THR_SPEED) | Speed the rover drives at maximum throttle | $m/s$ | | [RO_ACCEL_LIM](../advanced_config/parameter_reference.md#RO_ACCEL_LIM) | (Optional) Maximum allowed acceleration | $m/s^2$ | | [RO_DECEL_LIM](../advanced_config/parameter_reference.md#RO_DECEL_LIM) | (Optional) Maximum allowed deceleration | $m/s^2$ | +| [RO_YAW_EXPO](../advanced_config/parameter_reference.md#RO_YAW_EXPO) | (Optional) Yaw rate expo factor | $-$ | +| [RO_YAW_SUPEXPO](../advanced_config/parameter_reference.md#RO_YAW_SUPEXPO) | (Optional) Yaw rate super expo factor | $-$ | ### Ackermann Specific @@ -129,12 +172,14 @@ You can now continue the configuration process with [rate tuning](rate_tuning.md ### Differential Specific -| Параметр | Опис | Unit | -| ----------------------------------------------------------------------------------------------------------------------------------------------- | ----------- | ---- | -| [RD_WHEEL_TRACK](../advanced_config/parameter_reference.md#RD_WHEEL_TRACK) | Wheel track | m | +| Параметр | Опис | Unit | +| ----------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------ | ---- | +| [RD_WHEEL_TRACK](../advanced_config/parameter_reference.md#RD_WHEEL_TRACK) | Wheel track | $m$ | +| [RD_YAW_STK_GAIN](../advanced_config/parameter_reference.md#RD_YAW_STK_GAIN) | (Optional) Yaw stick gain for Manual mode | $-$ | ### Mecanum Specific -| Параметр | Опис | Unit | -| ----------------------------------------------------------------------------------------------------------------------------------------------- | ----------- | ---- | -| [RM_WHEEL_TRACK](../advanced_config/parameter_reference.md#RM_WHEEL_TRACK) | Wheel track | m | +| Параметр | Опис | Unit | +| ----------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------ | ---- | +| [RM_WHEEL_TRACK](../advanced_config/parameter_reference.md#RM_WHEEL_TRACK) | Wheel track | $m$ | +| [RM_YAW_STK_GAIN](../advanced_config/parameter_reference.md#RM_YAW_STK_GAIN) | (Optional) Yaw stick gain for Manual mode | $-$ | diff --git a/docs/uk/config_rover/velocity_tuning.md b/docs/uk/config_rover/velocity_tuning.md index 6bb98876bd..e171e07c34 100644 --- a/docs/uk/config_rover/velocity_tuning.md +++ b/docs/uk/config_rover/velocity_tuning.md @@ -20,7 +20,7 @@ To tune the velocity controller configure the following [parameters](../advanced 2. [RO_MAX_THR_SPEED](#RO_MAX_THR_SPEED) [m/s]: This parameter is used to calculate the feed-forward term of the closed loop speed control which linearly maps desired speeds to normalized motor commands. As mentioned in the [Manual mode](../flight_modes_rover/manual.md#manual-mode) configuration , a good starting point is the observed ground speed when the rover drives at maximum throttle in [Manual mode](../flight_modes_rover/manual.md#manual-mode). - + ::: tip To further tune this parameter: @@ -94,7 +94,7 @@ These steps are only necessary if you are tuning/want to unlock the manual [Posi The rover is now ready to drive in [Position mode](../flight_modes_rover/manual.md#position-mode) and the configuration can be continued with [position tuning](position_tuning.md). -## Attitude Controller Structure (Info Only) +## Velocity Controller Structure (Info Only) This section provides additional information for developers and people with experience in control system design. diff --git a/docs/uk/dev_log/logging.md b/docs/uk/dev_log/logging.md index 600c0c3f1d..31a86cce4a 100644 --- a/docs/uk/dev_log/logging.md +++ b/docs/uk/dev_log/logging.md @@ -33,16 +33,17 @@ The logging system is configured by default to collect sensible logs for [flight Logging may further be configured using the [SD Logging](../advanced_config/parameter_reference.md#sd-logging) parameters. Параметри, які ви найімовірніше зміните, перераховані нижче. -| Параметр | Опис | -| --------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| [SDLOG_MODE](../advanced_config/parameter_reference.md#SDLOG_MODE) | Журналювання. Defines when logging starts and stops.
- `-1`: Logging disabled.
- `0`: Log when armed until disarm (default).
- `1`: Log from boot until disarm.
- `2`: Log from boot until shutdown.
- `3`: Log based on the [AUX1 RC channel](../advanced_config/parameter_reference.md#RC_MAP_AUX1).
- `4`: Log from first armed until shutdown. | -| [SDLOG_PROFILE](../advanced_config/parameter_reference.md#SDLOG_PROFILE) | Профіль ведення журналу. Use this to enable less common logging/analysis (e.g. for EKF2 replay, high rate logging for PID & filter tuning, thermal temperature calibration). | -| [SDLOG_MISSION](../advanced_config/parameter_reference.md#SDLOG_MISSION) | Create very small additional "Mission Log".
This log can _not_ be used with [Flight Review](../log/flight_log_analysis.md#flight-review-online-tool), but is useful when you need a small log for geotagging or regulatory compliance. | +| Параметр | Опис | +| --------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| [SDLOG_MODE](../advanced_config/parameter_reference.md#SDLOG_MODE) | Журналювання. Defines when logging starts and stops.
- `0`: Log when armed until disarm (default).
- `1`: Log from boot until disarm.
- `2`: Log from boot until shutdown.
- `3`: Log based on the [AUX1 RC channel](../advanced_config/parameter_reference.md#RC_MAP_AUX1).
- `4`: Log from first armed until shutdown. | +| [SDLOG_BACKEND](../advanced_config/parameter_reference.md#SDLOG_BACKEND) | Logging Backend (bitmask). Setting a bit enables the corresponding backend. If no backend is selected, the logger is disabled.
- bit `0`: SD card logging.
- bit `1`: Mavlink logging. | +| [SDLOG_PROFILE](../advanced_config/parameter_reference.md#SDLOG_PROFILE) | Профіль ведення журналу. Use this to enable less common logging/analysis (e.g. for EKF2 replay, high rate logging for PID & filter tuning, thermal temperature calibration). | +| [SDLOG_MISSION](../advanced_config/parameter_reference.md#SDLOG_MISSION) | Create very small additional "Mission Log".
This log can _not_ be used with [Flight Review](../log/flight_log_analysis.md#flight-review-online-tool), but is useful when you need a small log for geotagging or regulatory compliance. | Корисні налаштування для конкретних випадків: - Raw sensor data for comparison: [SDLOG_MODE=1](../advanced_config/parameter_reference.md#SDLOG_MODE) and [SDLOG_PROFILE=64](../advanced_config/parameter_reference.md#SDLOG_PROFILE). -- Disabling logging altogether: [SDLOG_MODE=`-1`](../advanced_config/parameter_reference.md#SDLOG_MODE) +- Disabling logging altogether: [SDLOG_BACKEND=`0`](../advanced_config/parameter_reference.md#SDLOG_BACKEND) ### Модуль реєстрації diff --git a/docs/uk/sensor/inertial_navigation_systems.md b/docs/uk/sensor/inertial_navigation_systems.md index 4703c5ab10..e0d36d29ef 100644 --- a/docs/uk/sensor/inertial_navigation_systems.md +++ b/docs/uk/sensor/inertial_navigation_systems.md @@ -2,13 +2,32 @@ PX4 зазвичай працює на контролерах польоту, які включають в себе ІВП, такі як серія Pixhawk, і об'єднує дані датчиків разом із інформацією ССН (супутникова система навігації) в оцінювачі EKF2 для визначення орієнтації, напрямку, позиції та швидкості транспортного засобу. -However PX4 can also use some INS devices as either sources of raw data, or as an external estimator, replacing the EKF. +However PX4 can also use some INS devices as either sources of raw data, or as an external estimator, replacing EKF2. -Системи, які можуть бути використані у такий спосіб, включають в себе: +## Supported INS Systems + +INS systems that can be used as a replacement for EKF2 in PX4: - [InertialLabs](../sensor/inertiallabs.md) - [VectorNav](../sensor/vectornav.md): ІВП/AHRS, ССН/INS, Dual GNSS/INS системи, котрі можуть бути використані як зовнішній INS, або джерело вхідної інформації датчиків. +## PX4 Firmware + +The driver module for your INS system may not be included in the PX4 firmware for your flight controller by default. + +You can check by searching the [default.px4board](https://github.com/PX4/PX4-Autopilot/blob/main/boards/px4/fmu-v6c/default.px4board#L25) configuration file for your target board for either: + +- `CONFIG_COMMON_INS`, which includes drivers for [all INS systems](https://github.com/PX4/PX4-Autopilot/blob/main/src/drivers/ins/Kconfig). +- The key for the particular INS system you are using, such as: + - `CONFIG_DRIVERS_INS_ILABS` + - `CONFIG_DRIVERS_INS_MICROSTRAIN` + - `CONFIG_DRIVERS_INS_VECTORNAV` + +If the required key is not present you can include the module in firmware by adding the key to the `default.px4board` file, or using the [kconfig board configuration tool](../hardware/porting_guide_config.md#px4-board-configuration-kconfig) and then select the driver you want (`Drivers -> INS`). +Note that if you're working on a flight controller where flash memory is limited, you're better off installing just the modules you need. + +You will then need to rebuild the firmware. + ## Словник ### Інерційний вимірювальний пристрій (ІВП) diff --git a/docs/uk/sim_sih/index.md b/docs/uk/sim_sih/index.md index bc2d323650..6333fe0819 100644 --- a/docs/uk/sim_sih/index.md +++ b/docs/uk/sim_sih/index.md @@ -71,24 +71,24 @@ To check that these are present on your flight controller: 3. Enter the following commands in the console: - ```sh - pwm_out_sim status - ``` + ```sh + pwm_out_sim status + ``` - ```sh - sensor_baro_sim status - ``` + ```sh + sensor_baro_sim status + ``` - ```sh - sensor_gps_sim status - ``` + ```sh + sensor_gps_sim status + ``` - ```sh - sensor_mag_sim status - ``` + ```sh + sensor_mag_sim status + ``` - ::: tip - Note that when using SIH on real hardware you do not need to additionally enable the modules using their corresponding parameters ([SENS_EN_GPSSIM](../advanced_config/parameter_reference.md#SENS_EN_GPSSIM), [SENS_EN_BAROSIM](../advanced_config/parameter_reference.md#SENS_EN_BAROSIM), [SENS_EN_MAGSIM](../advanced_config/parameter_reference.md#SENS_EN_MAGSIM)). + ::: tip + Note that when using SIH on real hardware you do not need to additionally enable the modules using their corresponding parameters ([SENS_EN_GPSSIM](../advanced_config/parameter_reference.md#SENS_EN_GPSSIM), [SENS_EN_BAROSIM](../advanced_config/parameter_reference.md#SENS_EN_BAROSIM), [SENS_EN_MAGSIM](../advanced_config/parameter_reference.md#SENS_EN_MAGSIM)). ::: @@ -141,12 +141,12 @@ To set up/start SIH: 1. Connect the flight controller to the desktop computer with a USB cable. 2. Відкрийте QGroundControl і зачекайте, поки контролер польоту також завантажиться та підключиться. 3. Open [Vehicle Setup > Airframe](../config/airframe.md) then select the desired frame: - - [SIH Quadcopter X](../airframes/airframe_reference.md#copter_simulation_sih_quadcopter_x) - - **SIH Hexacopter X** (currently only has an airframe for SITL to safe flash so on flight control hardware it has to be manually configured equivalently). - - [SIH plane AERT](../airframes/airframe_reference.md#plane_simulation_sih_plane_aert) - - [SIH Tailsitter Duo](../airframes/airframe_reference.md#vtol_simulation_sih_tailsitter_duo) - - [SIH Standard VTOL QuadPlane](../airframes/airframe_reference.md#vtol_simulation_sih_standard_vtol_quadplane) - - [SIH Ackermann Rover](../airframes/airframe_reference.md#rover_rover_sih_rover_ackermann) + - [SIH Quadcopter X](../airframes/airframe_reference.md#copter_simulation_sih_quadcopter_x) + - **SIH Hexacopter X** (currently only has an airframe for SITL to safe flash so on flight control hardware it has to be manually configured equivalently). + - [SIH plane AERT](../airframes/airframe_reference.md#plane_simulation_sih_plane_aert) + - [SIH Tailsitter Duo](../airframes/airframe_reference.md#vtol_simulation_sih_tailsitter_duo) + - [SIH Standard VTOL QuadPlane](../airframes/airframe_reference.md#vtol_simulation_sih_standard_vtol_quadplane) + - [SIH Ackermann Rover](../airframes/airframe_reference.md#rover_rover_sih_rover_ackermann) Потім автопілот перезавантажиться. The `sih` module is started on reboot, and the vehicle should be displayed on the ground control station map. @@ -172,19 +172,19 @@ SIH does not _need_ a visualiser — you can connect with QGroundControl and fly 3. Start jMAVSim by calling the script **jmavsim_run.sh** from a terminal: - ```sh - ./Tools/simulation/jmavsim/jmavsim_run.sh -q -d /dev/ttyACM0 -b 2000000 -o - ``` + ```sh + ./Tools/simulation/jmavsim/jmavsim_run.sh -q -d /dev/ttyACM0 -b 2000000 -o + ``` - де прапорці такі: + де прапорці такі: - - `-q` to allow the communication to _QGroundControl_ (optional). - - `-d` to start the serial device `/dev/ttyACM0` on Linux. - On macOS this would be `/dev/tty.usbmodem1`. - - `-b` to set the serial baud rate to `2000000`. - - `-o` to start jMAVSim in _display Only_ mode (i.e. the physical engine is turned off and jMAVSim only displays the trajectory given by the SIH in real-time). - - add a flag `-a` to display an aircraft or `-t` to display a tailsitter. - Якщо цей прапорець не вказаний, за замовчуванням відображатиметься квадрокоптер. + - `-q` to allow the communication to _QGroundControl_ (optional). + - `-d` to start the serial device `/dev/ttyACM0` on Linux. + On macOS this would be `/dev/tty.usbmodem1`. + - `-b` to set the serial baud rate to `2000000`. + - `-o` to start jMAVSim in _display Only_ mode (i.e. the physical engine is turned off and jMAVSim only displays the trajectory given by the SIH in real-time). + - add a flag `-a` to display an aircraft or `-t` to display a tailsitter. + Якщо цей прапорець не вказаний, за замовчуванням відображатиметься квадрокоптер. 4. After few seconds, _QGroundControl_ can be opened again. @@ -201,41 +201,41 @@ In this case you don't need the flight controller hardware. 1. Install the [PX4 Development toolchain](../dev_setup/dev_env.md). 2. Виконайте відповідну команду make для кожного типу транспортного засобу (в корені репозиторію PX4-Autopilot): - - Quadcopter + - Quadcopter - ```sh - make px4_sitl sihsim_quadx - ``` + ```sh + make px4_sitl sihsim_quadx + ``` - - Hexacopter + - Hexacopter - ```sh - make px4_sitl sihsim_hex - ``` + ```sh + make px4_sitl sihsim_hex + ``` - - Fixed-wing (plane) + - Fixed-wing (plane) - ```sh - make px4_sitl sihsim_airplane - ``` + ```sh + make px4_sitl sihsim_airplane + ``` - - XVert VTOL tailsitter + - XVert VTOL tailsitter - ```sh - make px4_sitl sihsim_xvert - ``` + ```sh + make px4_sitl sihsim_xvert + ``` - - Standard VTOL + - Standard VTOL - ```sh - make px4_sitl sihsim_standard_vtol - ``` + ```sh + make px4_sitl sihsim_standard_vtol + ``` - - Ackermann Rover + - Ackermann Rover - ```sh - make px4_sitl sihsim_rover_ackermann - ``` + ```sh + make px4_sitl sihsim_rover_ackermann + ``` ### Зміна швидкості симуляції @@ -328,6 +328,44 @@ For SIH as SITL (no FC): For specific examples see the `_sihsim_` airframes in [ROMFS/px4fmu_common/init.d-posix/airframes](https://github.com/PX4/PX4-Autopilot/blob/main/ROMFS/px4fmu_common/init.d-posix/airframes/) (SIH as SITL) and [ROMFS/px4fmu_common/init.d/airframes](https://github.com/PX4/PX4-Autopilot/tree/main/ROMFS/px4fmu_common/init.d/airframes) (SIH on FC). +## Controlling Actuators in SIH + +:::warning +If you want to control throttling actuators in SIH, make sure to remove propellers for safety. +::: + +In some scenarios, it may be useful to control an actuator while running SIH. For example, you might want to verify that winches or grippers are functioning correctly by checking the servo responses. + +To enable actuator control in SIH: + +1. Configure PWM parameters in the airframe file: + +Ensure your airframe file includes the necessary parameters to map PWM outputs to the correct channels. + +For example, if a servo is connected to MAIN 3 and you want to map it to AUX1 on your RC, use the following command: + +`param set-default PWM_MAIN_FUNC3 407` + +You can find a full list of available values for `PWM_MAIN_FUNCn` [here](../advanced_config/parameter_reference.md#PWM_MAIN_FUNC1). In this case, `407` maps the MAIN 3 output to AUX1 on the RC. + +Alternatively, you can use the [`PWM_AUX_FUNCn`](../advanced_config/parameter_reference.md#PWM_AUX_FUNC1) parameters. + +You may also configure the output as desired: + +- Disarmed PWM: ([`PWM_MAIN_DISn`](../advanced_config/parameter_reference.md#PWM_MAIN_DIS1) / [`PWM_AUX_DIS1`](../advanced_config/parameter_reference.md#PWM_AUX_DIS1)) +- Minimum PWM ([`PWM_MAIN_MINn`](../advanced_config/parameter_reference.md#PWM_MAIN_MIN1) / [`PWM_AUX_MINn`](../advanced_config/parameter_reference.md#PWM_AUX_MIN1)) +- Maximum PWM ([`PWM_MAIN_MAXn`](../advanced_config/parameter_reference.md#PWM_MAIN_MAX1) / [`PWM_AUX_MAXn`](../advanced_config/parameter_reference.md#PWM_AUX_MAX1)) + +2. Manually start the PWM output driver + +For safety, the PWM driver is not started automatically in SIH. To enable it, run the following command in the MAVLink shell: + +`pwm_out start` + +And to disable it again: + +`pwm_out stop` + ## Dynamic Models Динамічні моделі для різних транспортних засобів: diff --git a/docs/uk/smart_batteries/rotoye_batmon.md b/docs/uk/smart_batteries/rotoye_batmon.md index 011c485a52..9050fe7efd 100644 --- a/docs/uk/smart_batteries/rotoye_batmon.md +++ b/docs/uk/smart_batteries/rotoye_batmon.md @@ -3,11 +3,6 @@ [Rotoye Batmon](https://rotoye.com/batmon/) is a kit for adding smart battery functionality to off-the-shelf Lithium-Ion and LiPo batteries. Його можна придбати як самостійний пристрій або як частину заводсько зібраної розумної батареї. -:::info -At time of writing you can only use Batmon by [building a custom branch of PX4](#build-px4-firmware). -Support in the codeline is pending [PR approval](https://github.com/PX4/PX4-Autopilot/pull/16723). -::: - ![Rotoye Batmon Board](../../assets/hardware/smart_batteries/rotoye_batmon/smart-battery-rotoye.jpg) ![Pre-assembled Rotoye smart battery](../../assets/hardware/smart_batteries/rotoye_batmon/smart-battery-rotoye-pack.jpg) diff --git a/docs/uk/test_and_ci/test_flights.md b/docs/uk/test_and_ci/test_flights.md index 3bfc25e517..6771beac6e 100644 --- a/docs/uk/test_and_ci/test_flights.md +++ b/docs/uk/test_and_ci/test_flights.md @@ -28,3 +28,5 @@ 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_08 - DSHOT ESC](../test_cards/mc_08_dshot.md) diff --git a/docs/uk/test_cards/mc_06_optical_flow.md b/docs/uk/test_cards/mc_06_optical_flow.md index 410c1a4674..6a10870404 100644 --- a/docs/uk/test_cards/mc_06_optical_flow.md +++ b/docs/uk/test_cards/mc_06_optical_flow.md @@ -2,11 +2,19 @@ ## Objective -To test that optical flow / external vision work as expected +To 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)) + +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 @@ -39,5 +47,7 @@ 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 - Немає коливання в жодному з перерахованих режимів польоту - Після посадки, коптер не повинен підскакувати на землі diff --git a/docs/uk/test_cards/mc_07_vio.md b/docs/uk/test_cards/mc_07_vio.md new file mode 100644 index 0000000000..a6fea1b762 --- /dev/null +++ b/docs/uk/test_cards/mc_07_vio.md @@ -0,0 +1,52 @@ +# Test MC_07 - VIO (Visual-Inertial Odometry) + +## Objective + +To 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 / Position flight 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 flight mode + +    ❏ Vertical position should hold current value with stick centered + +    ❏ Pitch/Roll/Yaw response 1:1 + +    ❏ Throttle response set to climb/descent rate + +❏ Position flight mode + +    ❏ 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 Flight mode without wandering +- Drone should hold position within 1 meter in Position Flight mode without pilot moving sticks +- Немає коливання в жодному з перерахованих режимів польоту +- Після посадки, коптер не повинен підскакувати на землі diff --git a/docs/uk/test_cards/mc_08_dshot.md b/docs/uk/test_cards/mc_08_dshot.md new file mode 100644 index 0000000000..422482bbc9 --- /dev/null +++ b/docs/uk/test_cards/mc_08_dshot.md @@ -0,0 +1,46 @@ +# Test MC_08 - DSHOT ESC + +## Objective + +Regression test for DSHOT working with PX4 + +## Preflight + +- 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 + +    ❏ Takeoff in stabilized flight mode to ensure correct motor spin + +    ❏ Pitch/Roll/Yaw response 1:1 + +    ❏ Throttle response 1:1 + +❏ Position flight mode + +    ❏ 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)) + +## Очікувані результати + +- Download flight logs +- Load into Data Plot Juggler +- Ensure data is logged for esc_status/esc.0x/esc_rpm + + ![Reference frames](../../assets/test_cards/dshot_log_output.png)