Compare commits

...

96 Commits

Author SHA1 Message Date
Jacob Dahl b6df1c6388 don't change EKF2_MIN_RNG 2025-09-16 09:54:12 -08:00
Jacob Dahl 6fc9720e25 in_air default to true for tests 2025-09-15 12:49:13 -08:00
Jacob Dahl 569849665f ekf2: range fusion: while on the ground the rangefinder quality checks are bypassed and a synthetic measurement is fused using the minimum rangefinder distance. The intention of this logic is to ensure the rangefinder can be fused immediately during takeoff even if it's reporting 0 quality while on the ground. This was not working since the rangefinder _time_bad_quality_us was being updated while on the ground. This results in range fusion being disabled as soon as the in_air flag is set, since the time since the last bad quality value has not exceeded the EKF2_RNG_QLTY_T. This commit moves the logic into the SensorRangeFinder::isQualityOk function where the _time_bad_quality_us is only set once airborne. 2025-09-15 12:29:14 -08:00
Silvan db8a1f11a7 EstimatorCheck: fix reporting of low position accuracy failsafe
Signed-off-by: Silvan <silvan@auterion.com>
2025-09-12 14:16:16 +02:00
jmackay2 8669947bcb Support Gazebo Jetty (#25521)
* Support Gazebo Jetty

* Gazebo jetty cmake spelling fix

---------

Co-authored-by: jmackay2 <jmackay2@gmail.com>
2025-09-11 19:30:27 -08:00
Jacob Dahl 1aad8b6ec9 serial: nuttx: revert tcdrain back to fsync (#25538)
* serial: nuttx: revert tcdrain back to fsync

* serial: do not print error on EAGAIN

---------

Co-authored-by: Alexander Lerach <alexander@auterion.com>
2025-09-11 12:32:34 -08:00
Matthias Grob 7b68c5dbfc parameters: remove parameters_injected.xml and support for it in the build system (#25549)
This was apparently added 10 years ago to store metadata of UAVCAN components within the PX4 binary. The parameters in the xml are mostly early UAVCAN ESC parameters that are presumably out of date and not used. Also it does not scale to maintain metadata for all the possible UAVCAN components and it causes confusion when users read the metadata documentation because these parameters are not available in PX4. That's why I suggest to remove it.
2025-09-11 10:47:45 -08:00
Samuel Toledano b2672910da sbgecom: Implement sbgECom INS driver (#24137)
* Add new INS driver sbgECom

Implement sbgECom messages handling to provide IMU sensors, GNSS and EKF data to the autopilot
Be able to parametrize the serial port, baudrate and the communicating mode
Clone sbgECom library only if sbgecom support is enabled and apply a patch
Be able to send SBG Systems INS settings in several ways when starting sbgecom driver

* Fix sensor airspeed simulator units

* Fix HIGHRES_IMU pressure unit

* Allow HIGHRES_IMU to support 4 IMUs

* sbgECom: Add documentation

* Use submodule instead of fetching sbgECom using CMake

* Remove patch strategy

* Fix dates

* Remove patch file

* Update SBG dev type ID

Co-authored-by: Jacob Dahl <37091262+dakejahl@users.noreply.github.com>

---------

Co-authored-by: Samuel Toledano <samuel.toledano@sbg-systems.com>
Co-authored-by: Jacob Dahl <37091262+dakejahl@users.noreply.github.com>
2025-09-11 00:37:41 -08:00
SolderSyntax 05394162ce Update dev_env_windows_wsl.md (#25441)
* Update dev_env_windows_wsl.md

Add info about enabling broadcasting or streaming to work with PX4 SITL on WSL and QGC on Windows.

* Update dev_env_windows_wsl.md

Fix links

* Update dev_env_windows_wsl.md

moved troubleshooting section at the bottom of WSL2<>Windows section.

* Move under troubleshooting

---------

Co-authored-by: Hamish Willee <hamishwillee@gmail.com>
2025-09-11 17:55:02 +10:00
Hamish Willee d1da30911e Update metadata and tidy a few docs (#25547)
* Fix up metadata except for uorb graphs

* Additional customization of startup tidy
2025-09-11 16:06:51 +10:00
Holden Ramsey 264b8fe277 Tools: Support Setup for Linux Mint (#25486) 2025-09-10 18:01:37 -08:00
JM Wang 47c0fef8c8 [DOCS] accton godwit ga1, a new manufacture board (#25411)
* Add docs for Accton-Godwit-GA1

* Update Accton-Godwit_GA1 in SUMMARY.md

add docs of accton’s new manufacturer board GA1 in TOC(SUMMARY.md)

* Subedit

* update wording in accton-godwit_ga1.md

---------

Co-authored-by: Hamish Willee <hamishwillee@gmail.com>
2025-09-11 09:34:13 +10:00
PX4 Build Bot ae60c66613 New Crowdin translations - ko (#25481)
Co-authored-by: Crowdin Bot <support+bot@crowdin.com>
2025-09-11 08:30:54 +10:00
PX4 Build Bot a20afc88c8 New Crowdin translations - uk (#25482)
Co-authored-by: Crowdin Bot <support+bot@crowdin.com>
2025-09-11 08:30:05 +10:00
PX4 Build Bot 2e84e55d93 New Crowdin translations - zh-CN (#25483)
Co-authored-by: Crowdin Bot <support+bot@crowdin.com>
2025-09-11 08:29:25 +10:00
rmahoney-skai 472e0657b5 Corrected max number of submodules displayed in VSCode (#25539)
Co-authored-by: rmahoney_skai <rmahoney@alakai.com>
2025-09-10 11:09:22 -08:00
Pernilla b4395d5960 FlightTaskManualAcceleration: fix velocity constraint overwriting + altitude limit slow down
- The velocity constraint gets set from multiple places e.g. Position slow knob and altitude related slow down. Depending on the execution order it was overwritten with a higher value again not obeying a stricter limit.
- The slowdown used valocities as inputs instead of the ratio of available altitude.
2025-09-10 10:18:09 +02:00
Matthias Grob 63ec2f0406 docs/safety: clarification for position loss in manual position controlled flight
Co-authored-by: Hamish Willee <hamishwillee@gmail.com>
2025-09-08 09:41:52 +02:00
Matthias Grob e0cdcdb436 Remove COM_POSCTL_NAVL
In an effort to reduce configuration space.
I've not seen use for this option.
If a pilot flies manually in position mode he has some visual reference of the vehicle and can do better than an autonomous mode without position reference.
Also by now we have nudging in Descend mode so the pilot can still give input and the only difference is it automatically goes down instead of the pilot having to descend by stick to land.
2025-09-08 09:41:52 +02:00
renjieDLUT 3962419669 Update _assembly.md (#25527) 2025-09-07 17:58:33 -08:00
renjieDLUT 63e257782a Update accelerometer.md (#25532) 2025-09-07 17:58:12 -08:00
Alexander Lerach fd2b7cbea4 gps: update submodule (#25529) 2025-09-05 17:46:32 +02:00
Silvan Fuhrer 5f5a1aa4ab Mavlink stream low bandwidth: add some important missing ones, update rates (#25524)
* mavlink stream low bandwidth: add GLOBAL_POSITION

Signed-off-by: Silvan <silvan@auterion.com>

* mavlink stream low bandwidth: add FIGURE_EIGHT_EXECUTION_STATUS

Signed-off-by: Silvan <silvan@auterion.com>

* mavlink stream low bandwidth: increase sending rate for all positioning messages to 2Hz

Signed-off-by: Silvan <silvan@auterion.com>

* mavlink stream low bandwidth: reduce sending rate for a couple of status messages

Signed-off-by: Silvan <silvan@auterion.com>

* mavlink stream low bandwidth: add ATTITUDE_QUATERNION

Signed-off-by: Silvan <silvan@auterion.com>

* mavlink stream low bandwidth: use ATTITUDE_QUATERNION instead of ATTITUDE as its preferred by GCS

* mavlink stream low bandwidth: add RAW_RPM for vehicles with ICE

* mavlink stream low bandwidth: increase VFR_HUD rate

* mavlink stream low bandwidth: decrease FIGURE_EIGHT_EXECUTION_STATUS rate

---------

Signed-off-by: Silvan <silvan@auterion.com>
Co-authored-by: Alexander Lerach <alexander@auterion.com>
2025-09-05 16:28:09 +02:00
Claudio Chies 1840c0db48 UAVCAN:BAT: improve remaining time calculation (#25500)
* UAVCAN:BAT: improve remaining time calculation

* UAVCAN:BAT: fix time_remaining calculation, bugfixes, improved filter convergence time

* UAVCAN:BAT: remove BatteryInfo Publishing if no valid info

* UAVCAN + Battery library: suggestions while reviewing

---------

Co-authored-by: Matthias Grob <maetugr@gmail.com>
2025-09-05 10:57:13 +02:00
alexklimaj 89c6d24946 Update GPS submodule 2025-09-04 17:02:31 -06:00
Alex Klimaj af6bf931c1 uavcan bootloader watchdog_pet during long flashes (#25523) 2025-09-04 12:20:03 -08:00
fbaklanov fc8e2021e7 A driver for EULER-NAV Baro-Inertial AHRS (#24534)
* Create a dummy BAHRS driver

* Resolve compilation

* Switch back to cpp, fix compilation

* Create module.yaml

* Implement required module APIs and open serial port

* Revise info and error messages

* Poll serial port

* Push received bytes into the ring buffer

* Process data buffer (1)

* Process data buffer (2)

* Process data buffer (3)

* Process data buffer (4)

* Process data buffer (5)

* Process data buffer (6)

* Implement and use initialize() and deinitialize() methods

* Implement print_usage() and print_status()

* Collect all config constants in a class

* Put info about next found message into a class

* Print CRC failure count

* Remove unneeded print

* Add comments

* Disable EKF2, advertise vehicle attitude

* Decode and publish BAHRS signals (1)

* Run the driver as an additional source of sensor signals

* Add tiny noise to baro-inertial pressure signal

* Fix the sensor ID

* Add copyrights

* Fix formatting

* Remove redundant newline character

* Fix long parameter name

* Fix findings (1)

* Fix finding (2)

* Fix formatting

* Fix the timeout value

* Remove aliases

* Fix copyright

* Fix indent

* Comply with naming convention

* Rework comparison to false

* Reduce nesting (1)

* Reduce nesting (2)

* Reduce nesting (3)

* Fix BAHRS sensor ID
2025-09-04 09:31:36 -08:00
Silvan Fuhrer e6f60ef403 Sensors: remove some distance sensors from COMMON_DISTANCE_SENSOR again (#25522)
* distance sensors common: remove DISTANCE_SENSOR_TERARANGER

Signed-off-by: Silvan Fuhrer <silvan@auterion.com>

* distance sensors common: remove DISTANCE_SENSOR_CM8JL65

Signed-off-by: Silvan Fuhrer <silvan@auterion.com>

---------

Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2025-09-04 09:28:37 -08:00
Pedro Roque 944b3e763a doc: Change email for Pedro Roque (#25514) 2025-09-02 16:07:55 -08:00
Pedro Roque 271cb49597 feat: airframe documentation for spacecraft (#25294) 2025-09-02 16:27:26 -07:00
Alexander Lerach 9015001b42 uavcan: fix driver init after stop/start (#25511) 2025-09-02 10:02:15 -08:00
Silvan ce207837cf rc.sensors: add iis2mdc mag to list of probed for sensors
Signed-off-by: Silvan <silvan@auterion.com>
2025-09-02 10:16:32 -06:00
Niklas Hauser 3a734bc846 [board] Add PCA9685 driver to FMUv6s board 2025-08-29 14:05:40 +02:00
Niklas Hauser 9062d0cc7d [driver] Add a parameter to enable the PCA9685 driver 2025-08-29 14:05:40 +02:00
Niklas Hauser b2b80e8075 [board] Reformat FMUv6s init script to start internal sensor first 2025-08-29 14:05:40 +02:00
Balduin 2eac6cca38 dds_topics: accept landing_gear command from external modes (#25496) 2025-08-28 08:30:27 -08:00
Claudio Chies fe1abb5b92 the PR has long been merged (#25495) 2025-08-28 08:28:44 -08:00
Marco Hauswirth 073013cf85 reset terrain w flow based on current horizontal velocity 2025-08-28 13:58:29 +02:00
Silvan Fuhrer 547582b16b DSHOT: fix unit for DSHOT_MIN parameter (#25493)
Signed-off-by: Silvan <silvan@auterion.com>
2025-08-27 09:21:16 -08:00
Alexander Lerach 8f2c36689d logging: allow logging backend config
* logging: allow logging backend config

* correct board comments

* documentation: updated logging section
2025-08-27 15:44:36 +02:00
Jacob Dahl 30fcb4fcb1 uavcan: esc: init msg to avoid publishing random values (#25485) 2025-08-27 17:09:36 +12:00
Davide Iafrate ec436d3be3 Enable selectively disabling sensors in the Gazebo bridge. (#25484)
* Initial plan

* Add configurable sensor subscription parameters

Co-authored-by: Tuxliri <3532595+Tuxliri@users.noreply.github.com>

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: Tuxliri <3532595+Tuxliri@users.noreply.github.com>
2025-08-26 10:00:47 -08:00
Beat Küng 6ec8dec63a commander: add valid_registrations_mask to ArmingCheckRequest.msg
This allows external modes to individually check if they are flagged as
invalid/unresponsive.
Previously this was done only based on whether or not ArmingCheckRequest
was received, which does not work when multiple modes are running.
2025-08-26 14:38:05 +02:00
Beat Küng edfcdaa008 commander: check for stale arming_check_reply messages
based on the message timestamp.

Previously it was possible to run into the following case:
- 2 external modes are registered (running inside the same ROS node)
- they time out due to the micro xrce agent being blocked for some reason
- PX4 removes them
- the latest arming check replies still arrive to PX4
- the application restarts
- the first mode gets registered
- PX4 handles the previous arming check reply, and clears
  waiting_for_first_response, which reduces the timeout
- the second mode registers and as part of that checks for message
  compatibility. This takes ~1s, triggering a timeout of the first mode
2025-08-26 14:38:05 +02:00
Silvan a1ee9eb2c4 mavlink: remove streams from LOW_BANDWIDTH that are deprecated
Signed-off-by: Silvan <silvan@auterion.com>
2025-08-25 17:34:34 +02:00
bresch 4a697d0191 ekf2: stop GNSS altittude and velocity aiding when gnss_fault is set 2025-08-25 10:22:23 +02:00
mahima-yoga db3f33760e docs: add instructions for controlling actuators in SIH 2025-08-25 09:28:43 +02:00
mahima-yoga dd09cdf986 Commander: remove HIL_STATE_ON from arming lockdown
Removing this from the boolean allows users to send pwm values in SIH.
2025-08-25 09:28:43 +02:00
chfriedrich98 4a5eabb61e rover: constrain update steps 2025-08-22 12:13:01 +02:00
chfriedrich98 248f113141 rover: improve hold position logic (#25466) 2025-08-22 12:10:16 +02:00
Peter van der Perk c1d15d0e09 Zenoh: use strncpy and bool 2025-08-22 08:22:59 +02:00
Peter van der Perk 8689c00be7 Zenoh: cleanup and review 2025-08-22 08:22:59 +02:00
Peter van der Perk 17e843a985 zenoh: remove MessageFormat since Zenoh RIHS01 already provides it
RIHS01 has the same functionality and already provides type safety with
rmw_zenoh_cpp. The user on ROS2 can compare the PX4 ros2_lv hashes with
their own px4_msgs for a mismatch
2025-08-22 08:22:59 +02:00
Peter van der Perk 44ff6d9c62 zenoh: exclude src/modules/zenoh/dds_topics.yaml from yaml check 2025-08-22 08:22:59 +02:00
Peter van der Perk 747bcc9db5 zenoh: Move ROS2 Rmw attachment code to rmw_attachment.h
Allows for re-use for later ROS2 Service / Zenoh queryable
2025-08-22 08:22:59 +02:00
Benjamin Chung c41216376a Add an explicatory comment to Zenoh publisher's handling of the uOrb topic number (or lack thereof) 2025-08-22 08:22:59 +02:00
Benjamin Chung 88c1412d25 Zenoh CLI improvements 2025-08-22 08:22:59 +02:00
Benjamin Chung 01bf700f3d Fix dds topics naming 2025-08-22 08:22:59 +02:00
Benjamin Chung 0bb9e5952a Pubsub constructor template fix 2025-08-22 08:22:59 +02:00
Benjamin Chung 70054fc567 Implement instance selection & pub/sub deletion for Zenoh 2025-08-22 08:22:59 +02:00
Benjamin Chung 7a98c87fcb Copy the uxrce config for Zenoh 2025-08-22 08:22:59 +02:00
Benjamin Chung 80b5cf2ed7 Prevent conversion warnings from static integers in zenoh-pico 2025-08-22 08:22:59 +02:00
Peter van der Perk 9ffd31097d zenoh: Use CDRv1 to match ROS2
Fixes various padding related serialization issues.
2025-08-22 08:22:59 +02:00
Peter van der Perk f99759db87 zenoh: Fix status keyexpr printf 2025-08-22 08:22:59 +02:00
Peter van der Perk 231128c68e Zenoh set transport lease to 60000 to match ros2 2025-08-22 08:22:59 +02:00
Peter van der Perk 5622565eea Zenoh optimize memory usage and add optional publish on matching 2025-08-22 08:22:59 +02:00
Peter van der Perk 7887f16daa Update NuttX config for use with Zenoh 2025-08-22 08:22:59 +02:00
Peter van der Perk 0763bbe2cf Generate default Zenoh config from dds_topics.yaml
For easy transition from uxrce to zenoh and a sane base config to begin with
2025-08-22 08:22:59 +02:00
Peter van der Perk bac009c2b8 Enable Zenoh by default on big-flash targets
These targets can easily support Zenoh by default eases adoption and testing
2025-08-22 08:22:59 +02:00
Peter van der Perk ac2627cca9 rmw attachment serialization changes
Use new atachment serialization format
Subscriber fix parsing payload and remove uorb publisher on destructor
2025-08-22 08:22:59 +02:00
Peter van der Perk 61e2f566ca Zenoh config, lv and connection fixes
Fixes a bug in the csv parsing
Use % for / seperators in ros2_lv
On startup retry connecting
2025-08-22 08:22:59 +02:00
Peter van der Perk 3d30eaae5f Fix NuttX keepalive socketoption 2025-08-22 08:22:59 +02:00
Peter van der Perk e052f35664 zenoh: omit timestamp attachment
This isn't needed for the rmw_zenoh zenohd configuration
2025-08-22 08:22:59 +02:00
Peter van der Perk 2bc9cb4ead zenoh: implemement experimental liveliness to get ROS2 graph to work 2025-08-22 08:22:59 +02:00
Peter van der Perk 5211d9c92e zenoh: pubsub factory fix datatype naming convention 2025-08-22 08:22:59 +02:00
Peter van der Perk 575923b534 Zenoh: fix topic_name and datatype mapping
Using substring was buggy instad we make dictionary based on datatypes and the get_topics function
2025-08-22 08:22:59 +02:00
Peter van der Perk e37f20e94d zenoh: Don't use uORB o_name as type but check for parent type
For example vehicle_local_position_groundtruth has ROS2 type
vehicle_local_position, so we've to use px4_msgs/VehicleLocalPosition as typename
2025-08-22 08:22:59 +02:00
Peter van der Perk cb74cee970 zenoh: Increase CDR safety margin
Figure out by trial and error with padding on vehicle_local_position
2025-08-22 08:22:59 +02:00
Peter van der Perk 70536766db zenoh: Handle parsing errors in config 2025-08-22 08:22:59 +02:00
Peter van der Perk 40bba0069d zenoh: Fix handling for non-existing types 2025-08-22 08:22:59 +02:00
Peter van der Perk 35004e357c zenoh: Add px4_sitl_zenoh to cmake-variants.yaml 2025-08-22 08:22:59 +02:00
Peter van der Perk 923257779a zenoh: Default to 127.0.0.1 when using sitl/posix
Also improve error message when connection failed
2025-08-22 08:22:59 +02:00
Peter van der Perk a24b3a121c zenoh: Improve error message when there are no scouting results 2025-08-22 08:22:59 +02:00
Peter van der Perk 85cab5a4db sitl: autostart zenoh if enabled 2025-08-22 08:22:59 +02:00
Peter van der Perk 859ba81e33 Zenoh fix gcc/sitl compile errors 2025-08-22 08:22:59 +02:00
Peter van der Perk 4aff095f9b IDL 2 RIHS01 remove tempfile and print 2025-08-22 08:22:59 +02:00
Peter van der Perk 796efeebe7 Implement Domain id parameter and move gid to zenoh 2025-08-22 08:22:59 +02:00
Peter van der Perk 9d02698987 Update Zenoh for library and implement rmw_zenoh features
New zenoh-pico library
Keyexpr instrospection
RIHS01 Types
2025-08-22 08:22:59 +02:00
Peter van der Perk e1a7fbce71 Update cdrstream code generator including typehash 2025-08-22 08:22:59 +02:00
Peter van der Perk a87456b38b Update rosidl
Adds support for typehashes
2025-08-22 08:22:59 +02:00
Peter van der Perk 33a5122916 Update Zenoh-pico 2025-08-22 08:22:59 +02:00
ljarvela b53ecf7f68 uavcan: increase battery filter sample interval to 500ms (#25454)
Fixes issue #25430

Co-authored-by: Lasse Järvelä <lasse.jarvela@iceye.com>
2025-08-21 19:19:52 -07:00
Alexander Lerach 138427b3a8 config: add dynamic init file
* config: add dynamic init file

* added review feedback

* added docs
2025-08-21 16:46:06 +02:00
Alexander Lerach 785ea1a137 ubx: add new mode for GCS usage
* ubx: add new mode for GCS usage

* use head ref
2025-08-21 15:45:40 +02:00
chfriedrich98 8e5cd59502 rover: fix setpoint generation 2025-08-21 13:33:19 +02:00
Beat Küng df11aa1d69 fix commander: handle mode executor correctly on disarm
There were a number of cases where the state was not correct or not as
desired after disarming, when running an external mode 'MyMission' with
executor:
- run MyMission, which triggers Hold, then Land
  - before: Mode: Hold, executor_in_charge: 1
  - after:  Mode: MyMission, executor_in_charge: 1
- run MyMission, then user switches to RTL
  - before: Mode: MyMission, executor_in_charge: 0
  - after:  Mode: MyMission, executor_in_charge: 1
- run MyMission, then while in Hold mode, low battery failsafe (RTL)
  - before: Mode: Hold, executor_in_charge: 1
  - after:  Mode: MyMission, executor_in_charge: 1
- run MyMission, then stop external mode (terminate the process)
  - before: Mode: (mode not available), executor_in_charge: 0
  - after:  Mode: Hold, executor_in_charge: 0

This case is unchanged:
- run MyMission, then low battery failsafe (RTL)
  - before: Mode: MyMission, executor_in_charge: 1
  - after:  Mode: MyMission, executor_in_charge: 1
2025-08-21 10:06:30 +02:00
357 changed files with 9715 additions and 4052 deletions
+3
View File
@@ -100,3 +100,6 @@
[submodule "src/drivers/ins/microstrain/mip_sdk"]
path = src/drivers/ins/microstrain/mip_sdk
url = https://github.com/PX4/LORD-MicroStrain_mip_sdk.git
[submodule "src/drivers/ins/sbgecom/sbgECom"]
path = src/drivers/ins/sbgecom/sbgECom
url = https://github.com/PX4/sbgECom.git
+5
View File
@@ -36,6 +36,11 @@ CONFIG:
buildType: RelWithDebInfo
settings:
CONFIG: px4_sitl_test
px4_sitl_zenoh:
short: px4_sitl_zenoh
buildType: RelWithDebInfo
settings:
CONFIG: px4_sitl_test
px4_io-v2_default:
short: px4_io-v2
buildType: MinSizeRel
+1 -1
View File
@@ -43,7 +43,7 @@
"files.watcherExclude": {
"**/build/**": true
},
"git.detectSubmodulesLimit": 20,
"git.detectSubmodulesLimit": 25,
"git.ignoreLimitWarning": true,
"githubPullRequests.defaultMergeMethod": "squash",
"githubPullRequests.telemetry.enabled": false,
+5
View File
@@ -73,6 +73,11 @@ menu "Toolchain"
help
relative path to the ROMFS root directory
config BOARD_ADDITIONAL_INIT
string "Additional init file"
help
additional configurable init file to include in the ROMFS
config BOARD_IO
string "IO board name"
default "px4_io-v2_default"
+1 -1
View File
@@ -19,7 +19,7 @@ See [the documentation on Maintainers](https://docs.px4.io/main/en/contribute/ma
| Matthias Grob | Multirotor | [@MaEtUgR](https://github.com/MaEtUgR) | maetugr |
| Silvan Fuhrer | Fixed-Wing / VTOL | [@sfuhrer](https://github.com/sfuhrer) | sfuhrer |
| Christian Friedrich | Rover | [@chfriedrich98](https://github.com/chfriedrich98) | christian982564 |
| Pedro Roque | Spacecraft | [@Pedro-Roque](https://github.com/Pedro-Roque) | .pedroroque | <padr@kth.se>
| Pedro Roque | Spacecraft | [@Pedro-Roque](https://github.com/Pedro-Roque) | .pedroroque | <roque@caltech.edu>
| Jacob Dahl | Simulation | [@dakejahl](https://github.com/dakejahl) | dakejahl | <dahl.jakejacob@gmail.com>
+1
View File
@@ -511,6 +511,7 @@ validate_module_configs:
@find "$(SRC_DIR)"/src/modules "$(SRC_DIR)"/src/drivers "$(SRC_DIR)"/src/lib -name *.yaml -type f \
-not -path "$(SRC_DIR)/src/lib/mixer_module/*" \
-not -path "$(SRC_DIR)/src/modules/uxrce_dds_client/dds_topics.yaml" \
-not -path "$(SRC_DIR)/src/modules/zenoh/dds_topics.yaml" \
-not -path "$(SRC_DIR)/src/modules/zenoh/zenoh-pico/*" \
-not -path "$(SRC_DIR)/src/lib/events/libevents/*" \
-not -path "$(SRC_DIR)/src/lib/cdrstream/*" \
+25
View File
@@ -202,6 +202,31 @@ foreach(board_rc_file ${OPTIONAL_BOARD_RC})
endforeach()
if(config_additional_init)
if(EXISTS "${PX4_BOARD_DIR}/init/${config_additional_init}")
file(RELATIVE_PATH rc_file_relative ${PX4_SOURCE_DIR} ${PX4_BOARD_DIR}/init/${config_additional_init})
message(STATUS "ROMFS: Adding ${rc_file_relative} -> /etc/init.d/rc.additional_init")
add_custom_command(
OUTPUT
${romfs_gen_root_dir}/init.d/rc.additional_init
${config_additional_init}.stamp
COMMAND ${CMAKE_COMMAND} -E copy_if_different ${PX4_BOARD_DIR}/init/${config_additional_init} ${romfs_gen_root_dir}/init.d/rc.additional_init
COMMAND ${CMAKE_COMMAND} -E touch ${config_additional_init}.stamp
DEPENDS
${PX4_BOARD_DIR}/init/${config_additional_init}
romfs_copy.stamp
COMMENT "ROMFS: copying ${config_additional_init}"
)
list(APPEND extras_dependencies
${config_additional_init}.stamp
)
else()
message(FATAL_ERROR "BOARD_ADDITIONAL_INIT file not found at: ${PX4_BOARD_DIR}/init/${config_additional_init}")
endif()
endif()
# board extras
set(OPTIONAL_BOARD_EXTRAS)
+11
View File
@@ -56,6 +56,17 @@ then
fi
unset BOARD_RC_DEFAULTS
#
# Optional additional init file: rc.additional_init
#
set BOARD_RC_ADDITIONAL_INIT ${R}etc/init.d/rc.additional_init
if [ -f $BOARD_RC_ADDITIONAL_INIT ]
then
echo "Board additional init: ${BOARD_RC_ADDITIONAL_INIT}"
. $BOARD_RC_ADDITIONAL_INIT
fi
unset BOARD_RC_ADDITIONAL_INIT
#
# Start system state indicator.
#
@@ -34,7 +34,6 @@ param set-default COM_LOW_BAT_ACT 0
param set-default NAV_DLL_ACT 0
param set-default GF_ACTION 1
param set-default NAV_RCL_ACT 1
param set-default COM_POSCTL_NAVL 2
# disable attitude failure detection
param set-default FD_FAIL_P 0
@@ -1,10 +1,21 @@
#!/bin/sh
#
# @name 3DoF Spacecraft Model
# @name KTH-ATMOS
#
# @type 2D Freeflyer with 8 thrusters - Planar motion
# @type Free-Flyer
# @class Spacecraft
#
# @maintainer Pedro Roque <padr@kth.se>
# @output Motor1 back left thruster, +x thrust
# @output Motor2 front left thruster, -x thrust
# @output Motor3 back right thruster, +x thrust
# @output Motor4 front right thruster, -x thrust
# @output Motor5 front left thruster, +y thrust
# @output Motor6 front right thruster, -y thrust
# @output Motor7 back left thruster, +y thrust
# @output Motor8 back right thruster, -y thrust
#
# @maintainer discower-io
# @url https://atmos.discower.io
#
. ${R}etc/init.d/rc.sc_defaults
@@ -34,7 +45,6 @@ param set-default COM_LOW_BAT_ACT 0
param set-default NAV_DLL_ACT 0
param set-default GF_ACTION 1
param set-default NAV_RCL_ACT 1
param set-default COM_POSCTL_NAVL 2
# disable attitude failure detection
param set-default FD_FAIL_P 0
+5
View File
@@ -324,6 +324,11 @@ fi
uxrce_dds_client start -t udp -p $uxrce_dds_port $uxrce_dds_ns
if param greater -s ZENOH_ENABLE 0
then
zenoh start
fi
if param greater -s MNT_MODE_IN -1
then
gimbal start
@@ -45,7 +45,6 @@ param set-default COM_LOW_BAT_ACT 0
param set-default NAV_DLL_ACT 0
param set-default GF_ACTION 1
param set-default NAV_RCL_ACT 1
param set-default COM_POSCTL_NAVL 2
# disable attitude failure detection
param set-default FD_FAIL_P 0
@@ -5,7 +5,17 @@
# @type Free-Flyer
# @class Spacecraft
#
# @output Motor1 back left thruster, +x thrust
# @output Motor2 front left thruster, -x thrust
# @output Motor3 back right thruster, +x thrust
# @output Motor4 front right thruster, -x thrust
# @output Motor5 front left thruster, +y thrust
# @output Motor6 front right thruster, -y thrust
# @output Motor7 back left thruster, +y thrust
# @output Motor8 back right thruster, -y thrust
#
# @maintainer DISCOWER
# @url https://atmos.discower.io
#
. ${R}etc/init.d/rc.sc_defaults
@@ -25,7 +35,6 @@ param set-default COM_LOW_BAT_ACT 0
param set-default NAV_DLL_ACT 0
param set-default GF_ACTION 1
param set-default NAV_RCL_ACT 1
param set-default COM_POSCTL_NAVL 2
# Set Mocap Vision frame
param set EKF2_EV_CTRL 15
+24 -1
View File
@@ -8,6 +8,9 @@
# End Setup for board specific configurations. #
###############################################################################
#
# Set SD logging mode
#
if param compare SDLOG_MODE 1
then
set LOGGER_ARGS "${LOGGER_ARGS} -e"
@@ -28,8 +31,28 @@ then
set LOGGER_ARGS "${LOGGER_ARGS} -a"
fi
#
# Set logging backend
#
if param compare SDLOG_BACKEND 1
then
set LOGGER_ARGS "${LOGGER_ARGS} -m file"
fi
if ! param compare SDLOG_MODE -1
if param compare SDLOG_BACKEND 2
then
set LOGGER_ARGS "${LOGGER_ARGS} -m mavlink"
fi
if param compare SDLOG_BACKEND 3
then
set LOGGER_ARGS "${LOGGER_ARGS} -m all"
fi
#
# Start logger if any logging backend is enabled
#
if ! param compare SDLOG_BACKEND 0
then
logger start -b ${LOGGER_BUF} -t ${LOGGER_ARGS}
fi
+1
View File
@@ -237,6 +237,7 @@ then
qmc5883p -X -q start
rm3100 -X -q start
bmm350 -X -q start
iis2mdc -X -q start
# start last (wait for possible icm20948 passthrough mode)
ak09916 -X -q start
+11
View File
@@ -217,6 +217,17 @@ else
fi
unset BOARD_RC_DEFAULTS
#
# Optional additional init file: rc.additional_init
#
set BOARD_RC_ADDITIONAL_INIT ${R}etc/init.d/rc.additional_init
if [ -f $BOARD_RC_ADDITIONAL_INIT ]
then
echo "Board additional init: ${BOARD_RC_ADDITIONAL_INIT}"
. $BOARD_RC_ADDITIONAL_INIT
fi
unset BOARD_RC_ADDITIONAL_INIT
# Load airframe configuration based on SYS_AUTOSTART parameter
if ! param compare SYS_AUTOSTART 0
then
@@ -49,14 +49,14 @@ for field in spec.parsed_fields():
(package, name) = genmsg.names.package_resource_name(field.base_type)
package = package or spec.package # convert '' to package
print('typedef px4_msg_%s px4_msg_px4__msg__%s;' % (name,name))
print('typedef px4_msgs_msg_%s px4_msgs_msg_px4_msgs__msg__%s;' % (name,name))
}@
typedef struct @uorb_struct px4_msg_@(file_base_name);
typedef struct @uorb_struct px4_msgs_msg_@(file_base_name);
extern const struct dds_cdrstream_desc px4_msg_@(file_base_name)_cdrstream_desc;
extern const struct dds_cdrstream_desc px4_msgs_msg_@(file_base_name)_cdrstream_desc;
#ifdef __cplusplus
}
+2 -1
View File
@@ -14,7 +14,6 @@ class AirframeGroup(object):
self.af_class = af_class
self.airframes = []
def AddAirframe(self, airframe):
"""
Add airframe to the airframe group
@@ -107,6 +106,8 @@ class AirframeGroup(object):
return "Balloon"
elif (self.type == "Vectored 6 DOF UUV"):
return "Vectored6DofUUV"
elif self.type == "Free-Flyer":
return "FreeFlyer"
return "AirframeUnknown"
def GetAirframes(self):
+16
View File
@@ -54,6 +54,22 @@ if [[ ! -f "${DIR}/${REQUIREMENTS_FILE}" ]]; then
return 1
fi
# Linux Mint compatibility: use upstream Ubuntu values
if [ -r /etc/upstream-release/lsb-release ]; then
. /etc/upstream-release/lsb-release
UBUNTU_CODENAME="${DISTRIB_CODENAME:-${UBUNTU_CODENAME:-}}"
UBUNTU_RELEASE="${DISTRIB_RELEASE:-${UBUNTU_RELEASE:-}}"
lsb_release() {
if [ "$1" = "-cs" ]; then
printf '%s' "$UBUNTU_CODENAME"
elif [ "$1" = "-rs" ]; then
printf '%s' "$UBUNTU_RELEASE"
else
command lsb_release "$@"
fi
}
fi
# check ubuntu version
# otherwise warn and point to docker?
+26 -7
View File
@@ -42,6 +42,7 @@ import os
import argparse
import re
import sys
import json
try:
import em
@@ -124,7 +125,7 @@ def generate_by_template(output_file, template_file, em_globals):
return True
def generate_topics_list_file_from_files(files, outputdir, template_filename, templatedir):
def generate_topics_list_file_from_files(files, outputdir, template_filename, templatedir, rihs_path):
# generate cpp file with topics list
filenames = []
for filename in [os.path.basename(p) for p in files if os.path.basename(p).endswith(".msg")]:
@@ -138,11 +139,27 @@ def generate_topics_list_file_from_files(files, outputdir, template_filename, te
for filename in [os.path.basename(p) for p in files if os.path.basename(p).endswith(".msg")]:
full_base_names.append(filename.replace(".msg",""))
topics = []
for msg_filename in files:
topics.extend(get_topics(msg_filename))
rihs01_hashes = dict()
if rihs_path != '':
for topic in full_base_names:
with open(rihs_path + "/msg/" + topic + ".json") as f:
d = json.load(f)
assert d['type_hashes'][0]['hash_string'][:7] == 'RIHS01_'
tl_globals = {"msgs": filenames, "topics": topics, "datatypes": datatypes, "full_base_names": full_base_names}
rihs01_hash = d['type_hashes'][0]['hash_string'][7:]
byte_array = [f"0x{rihs01_hash[i:i+2]}" for i in range(0, len(rihs01_hash), 2)]
c_code = f"{{ {', '.join(byte_array)} }};"
rihs01_hashes[topic] = c_code
topics = []
datatypes_with_topics = dict()
for msg_filename in files:
datatype = re.sub(r'(?<!^)(?=[A-Z])', '_', os.path.basename(msg_filename)).lower().replace(".msg","")
datatypes_with_topics[datatype] = get_topics(msg_filename)
topics.extend(datatypes_with_topics[datatype])
tl_globals = {"msgs": filenames, "topics": topics, "datatypes": datatypes, "full_base_names": full_base_names, "rihs01_hashes": rihs01_hashes, "datatypes_with_topics": datatypes_with_topics}
tl_template_file = os.path.join(templatedir, template_filename)
tl_out_file = os.path.join(outputdir, template_filename.replace(".em", ""))
@@ -162,13 +179,15 @@ if __name__ == "__main__":
parser.add_argument('-p', dest='prefix', default='',
help='string added as prefix to the output file '
' name when converting directories')
parser.add_argument('--rihs', dest='rihs', default='',
help='path where rihs01 json files located')
args = parser.parse_args()
if args.zenoh_config:
generate_topics_list_file_from_files(args.file, args.outputdir, ZENOH_TEMPLATE_FILE[0], args.templatedir)
generate_topics_list_file_from_files(args.file, args.outputdir, ZENOH_TEMPLATE_FILE[0], args.templatedir, args.rihs)
exit(0)
elif args.zenoh_pub_sub:
generate_topics_list_file_from_files(args.file, args.outputdir, ZENOH_TEMPLATE_FILE[1], args.templatedir)
generate_topics_list_file_from_files(args.file, args.outputdir, ZENOH_TEMPLATE_FILE[1], args.templatedir, args.rihs)
exit(0)
else:
print('Error: either --headers or --sources must be specified')
@@ -74,7 +74,7 @@ full_base_names.sort()
@[for idx, topic_name in enumerate(datatypes)]@
@{
type_topic_count = len([e for e in topic_names_all if e.startswith(topic_name)])
type_topic_count = len(datatypes_with_topics[topic_name])
}@
#ifdef CONFIG_ZENOH_PUBSUB_@(topic_name.upper())
# define CONFIG_ZENOH_PUBSUB_@(topic_name.upper())_COUNT @(type_topic_count)
@@ -88,9 +88,28 @@ type_topic_count = len([e for e in topic_names_all if e.startswith(topic_name)])
CONFIG_ZENOH_PUBSUB_@(topic_name.upper())_COUNT + \
@[end for] 0
@[for topic_name, rihs01_hash in rihs01_hashes.items()]@
const uint8_t @(topic_name)_hash[32] = @(rihs01_hash)
@[end for]
@[for idx, topic_name in enumerate(datatypes)]@
#ifdef CONFIG_ZENOH_PUBSUB_@(topic_name.upper())
@{
topic_names = datatypes_with_topics[topic_name]
}@
const orb_metadata* @(topic_name)_topic_meta[@(len(topic_names))] = {
@[for topic_name_inst in topic_names]@
ORB_ID(@(topic_name_inst)),
@[end for]};
#endif
@[end for]
typedef struct {
const char *data_type_name;
const uint32_t *ops;
const orb_metadata* orb_meta;
const uint8_t *hash;
const orb_metadata** orb_topic;
const uint8_t orb_topics_size;
} UorbPubSubTopicBinder;
const UorbPubSubTopicBinder _topics[ZENOH_PUBSUB_COUNT] {
@@ -100,54 +119,95 @@ uorb_id_idx = 0
@[for idx, topic_name in enumerate(datatypes)]@
#ifdef CONFIG_ZENOH_PUBSUB_@(topic_name.upper())
@{
topic_names = [e for e in topic_names_all if e.startswith(topic_name)]
topic_names = datatypes_with_topics[topic_name]
}@
@[for topic_name_inst in topic_names]@
{
px4_msg_@(topic_dict[topic_name])_cdrstream_desc.ops.ops,
ORB_ID(@(topic_name_inst))
"@(topic_name)",
px4_msgs_msg_@(topic_dict[topic_name])_cdrstream_desc.ops.ops,
@(topic_dict[topic_name])_hash,
@(topic_name)_topic_meta,
@(len(topic_names)),
},
@{
uorb_id_idx += 1
}@
@[end for]#endif
#endif
@[end for]
};
uORB_Zenoh_Publisher* genPublisher(const orb_metadata *meta) {
uORB_Zenoh_Publisher* genPublisher(const orb_metadata *meta, int instance) {
for (auto &pub : _topics) {
if(pub.orb_meta->o_id == meta->o_id) {
return new uORB_Zenoh_Publisher(meta, pub.ops);
for(int i = 0; i < pub.orb_topics_size; i++) {
if(pub.orb_topic[i]->o_id == meta->o_id) {
return new uORB_Zenoh_Publisher(meta, pub.ops, instance);
}
}
}
return NULL;
}
uORB_Zenoh_Publisher* genPublisher(const char *name) {
uORB_Zenoh_Publisher* genPublisher(const char *name, int instance) {
for (auto &pub : _topics) {
if(strcmp(pub.orb_meta->o_name, name) == 0) {
return new uORB_Zenoh_Publisher(pub.orb_meta, pub.ops);
for(int i = 0; i < pub.orb_topics_size; i++) {
if(strcmp(pub.orb_topic[i]->o_name, name) == 0) {
return new uORB_Zenoh_Publisher(pub.orb_topic[i], pub.ops, instance);
}
}
}
return NULL;
}
Zenoh_Subscriber* genSubscriber(const orb_metadata *meta) {
Zenoh_Subscriber* genSubscriber(const orb_metadata *meta, int instance) {
for (auto &sub : _topics) {
if(sub.orb_meta->o_id == meta->o_id) {
return new uORB_Zenoh_Subscriber(meta, sub.ops);
for(int i = 0; i < sub.orb_topics_size; i++) {
if(sub.orb_topic[i]->o_id == meta->o_id) {
return new uORB_Zenoh_Subscriber(meta, sub.ops, instance);
}
}
}
return NULL;
}
Zenoh_Subscriber* genSubscriber(const char *name) {
Zenoh_Subscriber* genSubscriber(const char *name, int instance) {
for (auto &sub : _topics) {
if(strcmp(sub.orb_meta->o_name, name) == 0) {
return new uORB_Zenoh_Subscriber(sub.orb_meta, sub.ops);
for(int i = 0; i < sub.orb_topics_size; i++) {
if(strcmp(sub.orb_topic[i]->o_name, name) == 0) {
return new uORB_Zenoh_Subscriber(sub.orb_topic[i], sub.ops, instance);
}
}
}
return NULL;
}
const char* getTypeName(const char *name) {
for (auto &sub : _topics) {
for(int i = 0; i < sub.orb_topics_size; i++) {
if(strcmp(sub.orb_topic[i]->o_name, name) == 0) {
return sub.data_type_name;
}
}
}
return NULL;
}
const uint8_t* getRIHS01_Hash(const orb_metadata *meta) {
for (auto &sub : _topics) {
for(int i = 0; i < sub.orb_topics_size; i++) {
if(sub.orb_topic[i]->o_id == meta->o_id) {
return sub.hash;
}
}
}
return NULL;
}
const uint8_t* getRIHS01_Hash(const char *name) {
for (auto &sub : _topics) {
for(int i = 0; i < sub.orb_topics_size; i++) {
if(strcmp(sub.orb_topic[i]->o_name, name) == 0) {
return sub.hash;
}
}
}
return NULL;
-1
View File
@@ -36,7 +36,6 @@ param set-default EKF2_MULTI_IMU 0
param set-default EKF2_OF_CTRL 1
param set-default EKF2_OF_N_MIN 0.05
param set-default EKF2_RNG_A_HMAX 25
param set-default EKF2_RNG_QLTY_T 0.1
param set-default SENS_FLOW_RATE 150
param set-default SENS_IMU_MODE 1
+1
View File
@@ -21,6 +21,7 @@ CONFIG_COMMON_MAGNETOMETER=y
CONFIG_DATAMAN_PERSISTENT_STORAGE=n
CONFIG_DRIVERS_PWM_OUT=y
CONFIG_COMMON_RC=y
CONFIG_DRIVERS_PCA9685_PWM_OUT=y
CONFIG_DRIVERS_POWER_MONITOR_INA226=y
CONFIG_DRIVERS_POWER_MONITOR_INA228=y
CONFIG_DRIVERS_POWER_MONITOR_INA238=y
@@ -14,7 +14,7 @@ param set-default SYS_DM_BACKEND 1
# Set TELEM1 as default mavlink connection
param set-default MAV_0_CONFIG 0
# Disable logger writing to FRAM, only stream over MAVLINK
set LOGGER_ARGS "-m mavlink"
param set-default SDLOG_BACKEND 2
# 200kOhm/10kOhm voltage divider on V_BAT
param set-default BAT1_V_DIV 21
+17 -11
View File
@@ -12,17 +12,20 @@ board_adc start
bmi088 -A -R 0 -s start
bmi088 -G -R 0 -s start
# MAG on I2C4, ROTATION_ROLL_180=8
if ver hwtypecmp V6S013 V6S015
then
# Revision(s) with BMM150
# MAG on I2C4, ROTATION_ROLL_180=8
bmm150 -I -R 8 start
else
# Revision(s) with BMM350
# MAG on I2C4, ROTATION_ROLL_180=8
bmm350 -I -R 8 start
fi
# BARO on I2C4
bmp388 -I -b 4 -a 0x77 start
# External sensors on I2C1
if param compare SENS_EN_INA226 1
then
# Start Digital power monitors
@@ -59,14 +62,17 @@ fi
if param compare BAT1_V_CHANNEL -2
then
if [ "$INA_CONFIGURED" != "yes" ]
then
param set BAT1_V_CHANNEL -1
fi
if [ "$INA_CONFIGURED" != "yes" ]
then
param set BAT1_V_CHANNEL -1
fi
fi
# External compass on GPS1/I2C1 (the 3rd external bus): standard Holybro Pixhawk 4 or CUAV V5 GPS/compass puck (with lights, safety button, and buzzer)
# External compass IST8310 on I2C1
ist8310 -X -b 1 -R 10 start
# BARO on I2C4
bmp388 -I -b 4 -a 0x77 start
# Start an external PWM generator
if param greater PCA9685_EN_BUS 0
then
pca9685_pwm_out start -b 1
fi
@@ -38,5 +38,5 @@ param set-default SYS_DM_BACKEND 1
# Ignore that there is no SD card
param set-default COM_ARM_SDCARD 0
# Don't try to log onto SD card
param set-default SDLOG_MODE -1
# Disable logging
param set-default SDLOG_BACKEND 0
@@ -38,5 +38,5 @@ param set-default SYS_DM_BACKEND 1
# Ignore that there is no SD card
param set-default COM_ARM_SDCARD 0
# Don't try to log onto SD card
param set-default SDLOG_MODE -1
# Disable logging
param set-default SDLOG_BACKEND 0
+1
View File
@@ -14,6 +14,7 @@ CONFIG_MODULES_EKF2=y
CONFIG_MODULES_MAVLINK=y
CONFIG_MODULES_NAVIGATOR=y
CONFIG_MODULES_SENSORS=y
CONFIG_MODULES_ZENOH=y
CONFIG_SYSTEMCMDS_I2CDETECT=y
CONFIG_SYSTEMCMDS_LED_CONTROL=y
CONFIG_SYSTEMCMDS_MFT=y
@@ -182,6 +182,7 @@ CONFIG_NET_SOLINGER=y
CONFIG_NET_TCP=y
CONFIG_NET_TCPBACKLOG=y
CONFIG_NET_TCP_DELAYED_ACK=y
CONFIG_NET_TCP_KEEPALIVE=y
CONFIG_NET_TCP_WRITE_BUFFERS=y
CONFIG_NET_TIMESTAMP=y
CONFIG_NET_UDP=y
@@ -207,6 +208,7 @@ CONFIG_PIPES=y
CONFIG_PREALLOC_TIMERS=50
CONFIG_PRIORITY_INHERITANCE=y
CONFIG_PTHREAD_MUTEX_ROBUST=y
CONFIG_PTHREAD_MUTEX_TYPES=y
CONFIG_PTHREAD_STACK_MIN=512
CONFIG_RAM_SIZE=272000
CONFIG_RAM_START=0x20400000
-57
View File
@@ -1,57 +0,0 @@
# CONFIG_BOARD_ROMFSROOT is not set
CONFIG_BOARD_SERIAL_GPS1="/dev/ttyS1"
CONFIG_BOARD_SERIAL_GPS2="/dev/ttyS4"
CONFIG_BOARD_SERIAL_RC="/dev/ttyS5"
CONFIG_BOARD_SERIAL_TEL1="/dev/ttyS2"
CONFIG_BOARD_SERIAL_TEL4="/dev/ttyS3"
CONFIG_BOARD_UAVCAN_INTERFACES=1
CONFIG_COMMON_LIGHT=y
CONFIG_DRIVERS_ADC_BOARD_ADC=y
CONFIG_DRIVERS_GPS=y
CONFIG_DRIVERS_IRLOCK=y
CONFIG_DRIVERS_MAGNETOMETER_ISENTEK_IST8310=y
CONFIG_DRIVERS_MAGNETOMETER_LIS3MDL=y
CONFIG_DRIVERS_RC_INPUT=y
CONFIG_DRIVERS_SAFETY_BUTTON=y
CONFIG_DRIVERS_UAVCAN=y
CONFIG_EXAMPLES_FAKE_GPS=y
CONFIG_MODULES_AIRSPEED_SELECTOR=y
CONFIG_MODULES_ATTITUDE_ESTIMATOR_Q=y
CONFIG_MODULES_BATTERY_STATUS=y
CONFIG_MODULES_CAMERA_FEEDBACK=y
CONFIG_MODULES_COMMANDER=y
CONFIG_MODULES_ESC_BATTERY=y
CONFIG_MODULES_EVENTS=y
CONFIG_MODULES_FW_ATT_CONTROL=y
CONFIG_MODULES_FW_AUTOTUNE_ATTITUDE_CONTROL=y
CONFIG_MODULES_FW_MODE_MANAGER=y
CONFIG_MODULES_FW_LATERAL_LONGITUDINAL_CONTROL=y
CONFIG_MODULES_FW_RATE_CONTROL=y
CONFIG_MODULES_GYRO_CALIBRATION=y
CONFIG_MODULES_GYRO_FFT=y
CONFIG_MODULES_LANDING_TARGET_ESTIMATOR=y
CONFIG_MODULES_LAND_DETECTOR=y
CONFIG_MODULES_LOAD_MON=y
CONFIG_MODULES_LOCAL_POSITION_ESTIMATOR=y
CONFIG_MODULES_LOGGER=y
CONFIG_MODULES_MAG_BIAS_ESTIMATOR=y
CONFIG_MODULES_MANUAL_CONTROL=y
CONFIG_MODULES_MC_ATT_CONTROL=y
CONFIG_MODULES_MC_AUTOTUNE_ATTITUDE_CONTROL=y
CONFIG_MODULES_MC_HOVER_THRUST_ESTIMATOR=y
CONFIG_MODULES_MC_POS_CONTROL=y
CONFIG_MODULES_MC_RATE_CONTROL=y
CONFIG_MODULES_NAVIGATOR=y
CONFIG_MODULES_RC_UPDATE=y
CONFIG_MODULES_TEMPERATURE_COMPENSATION=y
CONFIG_MODULES_VTOL_ATT_CONTROL=y
CONFIG_MODULES_ZENOH=y
CONFIG_SYSTEMCMDS_ACTUATOR_TEST=y
CONFIG_SYSTEMCMDS_DMESG=y
CONFIG_SYSTEMCMDS_DUMPFILE=y
CONFIG_SYSTEMCMDS_HARDFAULT_LOG=y
CONFIG_SYSTEMCMDS_NSHTERM=y
CONFIG_SYSTEMCMDS_PERF=y
CONFIG_SYSTEMCMDS_REFLECT=y
CONFIG_SYSTEMCMDS_SERIAL_TEST=y
CONFIG_SYSTEMCMDS_TUNE_CONTROL=y
@@ -75,6 +75,7 @@ CONFIG_MODULES_SENSORS=y
CONFIG_MODULES_TEMPERATURE_COMPENSATION=y
CONFIG_MODULES_UXRCE_DDS_CLIENT=y
CONFIG_MODULES_VTOL_ATT_CONTROL=y
CONFIG_MODULES_ZENOH=y
CONFIG_SYSTEMCMDS_ACTUATOR_TEST=y
CONFIG_SYSTEMCMDS_BSONDUMP=y
CONFIG_SYSTEMCMDS_DMESG=y
@@ -49,6 +49,7 @@ CONFIG_DEBUG_SYMBOLS=y
CONFIG_DEBUG_TCBINFO=y
CONFIG_DEV_FIFO_SIZE=0
CONFIG_DEV_PIPE_SIZE=70
CONFIG_DEV_URANDOM=y
CONFIG_ETH0_PHY_DP83825I=y
CONFIG_FAT_DMAMEMORY=y
CONFIG_FAT_LCNAMES=y
@@ -155,8 +156,8 @@ CONFIG_NETDEV_LATEINIT=y
CONFIG_NETDEV_PHY_IOCTL=y
CONFIG_NETINIT_DHCPC=y
CONFIG_NETINIT_DNS=y
CONFIG_NETINIT_DNSIPADDR=0XC0A800FE
CONFIG_NETINIT_DRIPADDR=0XC0A800FE
CONFIG_NETINIT_DNSIPADDR=0xA290AFE
CONFIG_NETINIT_DRIPADDR=0xA290AFE
CONFIG_NETINIT_RETRY_MOUNTPATH=10
CONFIG_NETINIT_THREAD=y
CONFIG_NETINIT_THREAD_PRIORITY=49
@@ -167,15 +168,18 @@ CONFIG_NET_BROADCAST=y
CONFIG_NET_CAN=y
CONFIG_NET_CAN_EXTID=y
CONFIG_NET_CAN_NOTIFIER=y
CONFIG_NET_CAN_RAW_FILTER_MAX=1
CONFIG_NET_CAN_RAW_TX_DEADLINE=y
CONFIG_NET_CAN_SOCK_OPTS=y
CONFIG_NET_ETH_PKTSIZE=1518
CONFIG_NET_ICMP=y
CONFIG_NET_ICMP_SOCKET=y
CONFIG_NET_IGMP=y
CONFIG_NET_SOLINGER=y
CONFIG_NET_TCP=y
CONFIG_NET_TCPBACKLOG=y
CONFIG_NET_TCP_DELAYED_ACK=y
CONFIG_NET_TCP_KEEPALIVE=y
CONFIG_NET_TCP_WRITE_BUFFERS=y
CONFIG_NET_TIMESTAMP=y
CONFIG_NET_UDP=y
@@ -196,6 +200,7 @@ CONFIG_NSH_VARS=y
CONFIG_PIPES=y
CONFIG_PREALLOC_TIMERS=50
CONFIG_PRIORITY_INHERITANCE=y
CONFIG_PTHREAD_MUTEX_TYPES=y
CONFIG_PTHREAD_STACK_MIN=512
CONFIG_RAM_SIZE=1048576
CONFIG_RAM_START=0x20200000
+1
View File
@@ -89,6 +89,7 @@ CONFIG_MODULES_SENSORS=y
CONFIG_MODULES_TEMPERATURE_COMPENSATION=y
CONFIG_MODULES_UXRCE_DDS_CLIENT=y
CONFIG_MODULES_VTOL_ATT_CONTROL=y
CONFIG_MODULES_ZENOH=y
CONFIG_SYSTEMCMDS_ACTUATOR_TEST=y
CONFIG_SYSTEMCMDS_BSONDUMP=y
CONFIG_SYSTEMCMDS_DMESG=y
@@ -55,6 +55,7 @@ CONFIG_DEBUG_SYMBOLS=y
CONFIG_DEBUG_TCBINFO=y
CONFIG_DEV_FIFO_SIZE=0
CONFIG_DEV_PIPE_SIZE=70
CONFIG_DEV_URANDOM=y
CONFIG_ETH0_PHY_MULTI=y
CONFIG_FAT_DMAMEMORY=y
CONFIG_FAT_LCNAMES=y
@@ -214,15 +215,18 @@ CONFIG_NET_BROADCAST=y
CONFIG_NET_CAN=y
CONFIG_NET_CAN_EXTID=y
CONFIG_NET_CAN_NOTIFIER=y
CONFIG_NET_CAN_RAW_FILTER_MAX=1
CONFIG_NET_CAN_RAW_TX_DEADLINE=y
CONFIG_NET_CAN_SOCK_OPTS=y
CONFIG_NET_ETH_PKTSIZE=1518
CONFIG_NET_ICMP=y
CONFIG_NET_ICMP_SOCKET=y
CONFIG_NET_IGMP=y
CONFIG_NET_SOLINGER=y
CONFIG_NET_TCP=y
CONFIG_NET_TCPBACKLOG=y
CONFIG_NET_TCP_DELAYED_ACK=y
CONFIG_NET_TCP_KEEPALIVE=y
CONFIG_NET_TCP_WRITE_BUFFERS=y
CONFIG_NET_TIMESTAMP=y
CONFIG_NET_UDP=y
@@ -243,6 +247,7 @@ CONFIG_NSH_VARS=y
CONFIG_PIPES=y
CONFIG_PREALLOC_TIMERS=50
CONFIG_PRIORITY_INHERITANCE=y
CONFIG_PTHREAD_MUTEX_TYPES=y
CONFIG_PTHREAD_STACK_MIN=512
CONFIG_RAMTRON_SETSPEED=y
CONFIG_RAM_SIZE=1835008
+5
View File
@@ -339,6 +339,11 @@ if(EXISTS ${BOARD_DEFCONFIG})
endif()
endif()
# ADDITIONAL INIT
if(ADDITIONAL_INIT)
set(config_additional_init ${ADDITIONAL_INIT} CACHE INTERNAL "additional init" FORCE)
endif()
if(UAVCAN_INTERFACES)
set(config_uavcan_num_ifaces ${UAVCAN_INTERFACES} CACHE INTERNAL "UAVCAN interfaces" FORCE)
endif()
-3
View File
@@ -71,18 +71,15 @@ add_custom_target(metadata_parameters
COMMAND ${PYTHON_EXECUTABLE} ${PX4_SOURCE_DIR}/src/lib/parameters/px_process_params.py
--src-path `find ${PX4_SOURCE_DIR}/src -maxdepth 4 -type d` ${generated_params_dir}
--inject-xml ${PX4_SOURCE_DIR}/src/lib/parameters/parameters_injected.xml
--markdown ${PX4_BINARY_DIR}/docs/parameters.md
COMMAND ${PYTHON_EXECUTABLE} ${PX4_SOURCE_DIR}/src/lib/parameters/px_process_params.py
--src-path `find ${PX4_SOURCE_DIR}/src -maxdepth 4 -type d` ${generated_params_dir}
--inject-xml ${PX4_SOURCE_DIR}/src/lib/parameters/parameters_injected.xml
--json ${PX4_BINARY_DIR}/docs/parameters.json
--compress
COMMAND ${PYTHON_EXECUTABLE} ${PX4_SOURCE_DIR}/src/lib/parameters/px_process_params.py
--src-path `find ${PX4_SOURCE_DIR}/src -maxdepth 4 -type d` ${generated_params_dir}
--inject-xml ${PX4_SOURCE_DIR}/src/lib/parameters/parameters_injected.xml
--xml ${PX4_BINARY_DIR}/docs/parameters.xml
COMMENT "Generating full parameter metadata (markdown, xml, and json)"
@@ -1,8 +1,8 @@
# Onboard parameters for Vehicle 1
#
# Stack: PX4 Pro
# Vehicle: śŕĐýŇí
# Version: 1.15.4
# Vehicle: Multi-Rotor
# Version: 1.15.4
# Git Revision: 99c40407ff000000
#
# Vehicle-Id Component-Id Name Value Type
@@ -318,7 +318,6 @@
1 1 COM_OBS_AVOID 0 6
1 1 COM_OF_LOSS_T 1.000000000000000000 9
1 1 COM_PARACHUTE 0 6
1 1 COM_POSCTL_NAVL 0 6
1 1 COM_POS_FS_DELAY 1 6
1 1 COM_POS_FS_EPH 5.000000000000000000 9
1 1 COM_POS_LOW_EPH -1.000000000000000000 9
+197
View File
@@ -0,0 +1,197 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Generator: Adobe Illustrator 19.2.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg
version="1.1"
id="draw"
x="0px"
y="0px"
viewBox="0 0 291.424 291.77"
enable-background="new 0 0 291.424 291.77"
xml:space="preserve"
sodipodi:docname="FreeFlyer.svg"
inkscape:version="1.2.2 (b0a8486541, 2022-12-01)"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:dc="http://purl.org/dc/elements/1.1/"><metadata
id="metadata13908"><rdf:RDF><cc:Work
rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title>QuadRotorX</dc:title></cc:Work></rdf:RDF></metadata><defs
id="defs13906"><rect
x="64.295094"
y="257.16159"
width="20.004284"
height="19.434001"
id="rect1674" /><rect
x="57.181928"
y="12.768183"
width="21.455602"
height="14.069247"
id="rect1668" /><rect
x="64.295097"
y="257.16159"
width="20.004284"
height="19.434002"
id="rect1674-3" /><rect
x="64.295097"
y="257.16159"
width="20.004284"
height="19.434002"
id="rect1674-6" /><rect
x="64.295097"
y="257.16159"
width="20.004284"
height="19.434002"
id="rect1674-8" /><rect
x="64.295097"
y="257.16159"
width="20.004284"
height="19.434002"
id="rect1674-9" /><rect
x="64.295097"
y="257.16159"
width="20.004284"
height="19.434002"
id="rect1674-9-0" /><rect
x="64.295097"
y="257.16159"
width="20.004284"
height="19.434002"
id="rect1674-9-0-3" /><rect
x="64.295097"
y="257.16159"
width="20.004284"
height="19.434002"
id="rect1674-9-0-5" /></defs><sodipodi:namedview
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1"
objecttolerance="10"
gridtolerance="10"
guidetolerance="10"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="1920"
inkscape:window-height="1131"
id="namedview13904"
showgrid="true"
showguides="false"
inkscape:zoom="2"
inkscape:cx="37"
inkscape:cy="143.75"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="1"
inkscape:current-layer="draw"
inkscape:showpageshadow="2"
inkscape:pagecheckerboard="0"
inkscape:deskcolor="#d1d1d1"><inkscape:grid
type="xygrid"
id="grid14610" /></sodipodi:namedview><title
id="title13869">QuadRotorX</title>
<rect
style="fill:#4ec3e8;fill-opacity:0.8;stroke-width:0.703099"
id="rect866"
width="182.87863"
height="182.87863"
x="54.336742"
y="54.008221" /><path
style="fill:#159e1f;fill-opacity:0.8;stroke-width:1.32638"
d="m 41.75804,283.31181 64.75142,-0.1091 -34.35904,-46.53234"
id="path978" /><path
style="fill:#159e1f;fill-opacity:0.8;stroke-width:1.32638"
d="m 8.0625538,189.05596 0.1091,64.75142 46.5323452,-34.35904"
id="path978-3" /><path
style="fill:#159e1f;fill-opacity:0.8;stroke-width:1.32638"
d="m 7.6111718,42.233006 0.1091,64.751414 46.5323442,-34.359034"
id="path978-3-5" /><path
style="fill:#159e1f;fill-opacity:0.8;stroke-width:1.32638"
d="M 283.3143,102.92315 283.2052,38.171731 236.67284,72.530766"
id="path978-3-0" /><path
style="fill:#159e1f;fill-opacity:0.8;stroke-width:1.32638"
d="m 283.76568,249.7461 -0.1091,-64.75142 -46.53235,34.35904"
id="path978-3-5-9" /><path
style="fill:#159e1f;fill-opacity:0.8;stroke-width:1.32638"
d="m 186.0159,282.76127 64.75142,-0.1091 -34.35904,-46.53235"
id="path978-5" /><path
style="fill:#159e1f;fill-opacity:0.8;stroke-width:1.32638"
d="m 249.48837,7.3723165 -64.75142,0.1091 34.35904,46.5323455"
id="path978-6" /><path
style="fill:#159e1f;fill-opacity:0.8;stroke-width:1.32638"
d="M 105.23051,7.9228645 40.479095,8.0319644 74.838131,54.56431"
id="path978-5-2" /><path
fill="#ffffff"
stroke="#000000"
stroke-miterlimit="10"
d="m 177.46535,152.08429 -25.44869,25.44869 c -2.72029,2.72029 -7.13013,2.72029 -9.84972,0 l -25.44868,-25.44869 c -2.7203,-2.72029 -2.7203,-7.13013 0,-9.84972 l 25.44868,-25.44868 c 2.72029,-2.72029 7.13013,-2.72029 9.84972,0 l 25.44869,25.44868 c 2.72029,2.72029 2.72029,7.13013 0,9.84972 z"
id="path13875-2"
style="stroke-width:0.703099" /><polygon
fill="#ff442b"
stroke="#000000"
stroke-miterlimit="10"
points="145.645,117.211 163.823,168.211 127.468,168.211 "
id="polygon13877-7"
transform="matrix(0.70309945,0,0,0.70309945,44.68853,44.358917)" /><text
xml:space="preserve"
id="text1666"
style="fill:#ffffff;fill-opacity:0.80000001;white-space:pre;shape-inside:url(#rect1668)" /><text
xml:space="preserve"
id="text1672"
style="font-size:16px;white-space:pre;shape-inside:url(#rect1674);fill:#ffffff;fill-opacity:0.8"
transform="matrix(1.8712033,0,0,1.8712033,-56.149908,-232.98716)"><tspan
x="64.294922"
y="271.72011"
id="tspan2022">1</tspan></text><text
xml:space="preserve"
id="text1672-6"
style="font-size:16px;white-space:pre;shape-inside:url(#rect1674-3);display:inline;fill:#ffffff;fill-opacity:0.8"
transform="matrix(1.8712033,0,0,1.8712033,-54.90599,-471.96664)"><tspan
x="64.294922"
y="271.72011"
id="tspan2024">2</tspan></text><text
xml:space="preserve"
id="text1672-1"
style="font-size:16px;white-space:pre;shape-inside:url(#rect1674-6);display:inline;fill:#ffffff;fill-opacity:0.8"
transform="matrix(1.8712033,0,0,1.8712033,88.181331,-233.48182)"><tspan
x="64.294922"
y="271.72011"
id="tspan2026">3</tspan></text><text
xml:space="preserve"
id="text1672-7"
style="font-size:16px;white-space:pre;shape-inside:url(#rect1674-8);display:inline;fill:#ffffff;fill-opacity:0.8"
transform="matrix(1.8712033,0,0,1.8712033,89.923516,-472.9994)"><tspan
x="64.294922"
y="271.72011"
id="tspan2028">4</tspan></text><text
xml:space="preserve"
id="text1672-2"
style="font-size:16px;white-space:pre;shape-inside:url(#rect1674-9);display:inline;fill:#ffffff;fill-opacity:0.8"
transform="matrix(1.8712033,0,0,1.8712033,-107.88311,-425.85878)"><tspan
x="64.294922"
y="271.72011"
id="tspan2030">5</tspan></text><text
xml:space="preserve"
id="text1672-2-2"
style="font-size:16px;white-space:pre;shape-inside:url(#rect1674-9-0);display:inline;fill:#ffffff;fill-opacity:0.8"
transform="matrix(1.8712033,0,0,1.8712033,140.31603,-426.60417)"><tspan
x="64.294922"
y="271.72011"
id="tspan2032">6</tspan></text><text
xml:space="preserve"
id="text1672-2-2-7"
style="font-size:16px;white-space:pre;shape-inside:url(#rect1674-9-0-3);display:inline;fill:#ffffff;fill-opacity:0.8"
transform="matrix(1.8712033,0,0,1.8712033,-106.57328,-277.85487)"><tspan
x="64.294922"
y="271.72011"
id="tspan2034">7</tspan></text><text
xml:space="preserve"
id="text1672-2-2-9"
style="font-size:16px;white-space:pre;shape-inside:url(#rect1674-9-0-5);display:inline;fill:#ffffff;fill-opacity:0.8"
transform="matrix(1.8712033,0,0,1.8712033,140.59859,-279.63807)"><tspan
x="64.294922"
y="271.72011"
id="tspan2036">8</tspan></text></svg>

After

Width:  |  Height:  |  Size: 7.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 30 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 37 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 25 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 50 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 45 KiB

+5
View File
@@ -157,6 +157,7 @@
- [mRo (3DR) Pixhawk Wiring Quickstart](assembly/quick_start_pixhawk.md)
- [Holybro Pixhawk Mini (FMUv3) - Discontinued](flight_controller/pixhawk_mini.md)
- [Manufacturer-Supported Autopilots](flight_controller/autopilot_manufacturer_supported.md)
- [Accton Godwit GA1](flight_controller/accton-godwit_ga1.md)
- [AirMind MindPX](flight_controller/mindpx.md)
- [AirMind MindRacer](flight_controller/mindracer.md)
- [ARK Electronics ARKV6X](flight_controller/ark_v6x.md)
@@ -281,6 +282,7 @@
- [CubePilot Here+ (Discontined)](gps_compass/rtk_gps_hex_hereplus.md)
- [INS (Inertial Navigation/GNSS)](sensor/inertial_navigation_systems.md)
- [InertialLabs](sensor/inertiallabs.md)
- [sbgECom](sensor/sbgecom.md)
- [VectorNav](sensor/vectornav.md)
- [Optical Flow](sensor/optical_flow.md)
- [ARK Flow](dronecan/ark_flow.md)
@@ -659,6 +661,8 @@
- [RoverPositionSetpoint](msg_docs/RoverPositionSetpoint.md)
- [RoverRateSetpoint](msg_docs/RoverRateSetpoint.md)
- [RoverRateStatus](msg_docs/RoverRateStatus.md)
- [RoverSpeedSetpoint](msg_docs/RoverSpeedSetpoint.md)
- [RoverSpeedStatus](msg_docs/RoverSpeedStatus.md)
- [RoverSteeringSetpoint](msg_docs/RoverSteeringSetpoint.md)
- [RoverThrottleSetpoint](msg_docs/RoverThrottleSetpoint.md)
- [RoverVelocitySetpoint](msg_docs/RoverVelocitySetpoint.md)
@@ -719,6 +723,7 @@
- [YawEstimatorStatus](msg_docs/YawEstimatorStatus.md)
- [AirspeedValidatedV0](msg_docs/AirspeedValidatedV0.md)
- [ArmingCheckReplyV0](msg_docs/ArmingCheckReplyV0.md)
- [ArmingCheckRequestV0](msg_docs/ArmingCheckRequestV0.md)
- [BatteryStatusV0](msg_docs/BatteryStatusV0.md)
- [EventV0](msg_docs/EventV0.md)
- [HomePositionV0](msg_docs/HomePositionV0.md)
+46 -31
View File
@@ -1,10 +1,9 @@
<!-- GENERATED CONTENT: DO NOT EDIT -->
- [Introduction](/index.md)
- [Introduction](/index.md)
- [Basic Concepts](/getting_started/px4_basic_concepts.md)
- [Multicopters](/frames_multicopter/index.md)
- [Features](/features_mc/index.md)
- [Flight Modes](/flight_modes_mc/index.md)
- [Position Mode (MC)](/flight_modes_mc/position.md)
@@ -37,7 +36,7 @@
- [Static Pressure Buildup](/advanced_config/static_pressure_buildup.md)
- [Flying (Basics)](/flying/basic_flying_mc.md)
- [Complete Vehicles](/complete_vehicles_mc/index.md)
- [ModalAI Starling](/complete_vehicles_mc/modalai_starling.md)
- [ModalAI Starling (PX4 Dev Kit)](/complete_vehicles_mc/modalai_starling.md)
- [PX4 Vision Kit](/complete_vehicles_mc/px4_vision_kit.md)
- [MindRacer BNF & RTF](/complete_vehicles_mc/mindracer_BNF_RTF.md)
- [MindRacer 210](/complete_vehicles_mc/mindracer210.md)
@@ -58,7 +57,6 @@
- [DJI F450 (CUAV v5 nano)](/frames_multicopter/dji_f450_cuav_5nano.md)
- [Planes (Fixed-Wing)](/frames_plane/index.md)
- [Assembly](/assembly/assembly_fw.md)
- [Config/Tuning](/config_fw/index.md)
- [Auto-tune](/config/autotune_fw.md)
@@ -86,7 +84,6 @@
- [Wing Wing Z84 (Pixracer)](/frames_plane/wing_wing_z84.md)
- [VTOL](/frames_vtol/index.md)
- [Assembly](/assembly/assembly_vtol.md)
- [VTOL Config/Tuning](/config_vtol/index.md)
- [Auto-tune](/config/autotune_vtol.md)
@@ -111,7 +108,6 @@
- [Complete Vehicles](/complete_vehicles_vtol/index.md)
- [Operations](/config/operations.md)
- [Safety](/config/safety_intro.md)
- [Safety Configuration (Failsafes)](/config/safety.md)
- [Failsafe Simulation](/config/safety_simulation.md)
@@ -132,7 +128,6 @@
- [QGroundControl Flight-Readiness Status](/flying/pre_flight_checks.md)
- [Hardware Selection & Setup](/hardware/drone_parts.md)
- [Flight Controllers (Autopilots)](/flight_controller/index.md)
- [Flight Controller Selection](/getting_started/flight_controller_selection.md)
- [Pixhawk Series](/flight_controller/pixhawk_series.md)
@@ -164,18 +159,18 @@
- [mRo (3DR) Pixhawk Wiring Quickstart](/assembly/quick_start_pixhawk.md)
- [Holybro Pixhawk Mini (FMUv3) - Discontinued](/flight_controller/pixhawk_mini.md)
- [Manufacturer-Supported Autopilots](/flight_controller/autopilot_manufacturer_supported.md)
- [Accton Godwit GA1](/flight_controller/accton-godwit_ga1.md)
- [AirMind MindPX](/flight_controller/mindpx.md)
- [AirMind MindRacer](/flight_controller/mindracer.md)
- [ARK Electronics ARKV6X](/flight_controller/ark_v6x.md)
- [ARK FPV Flight Controller](/flight_controller/ark_fpv.md)
- [ARK Pi6X Flow Flight Controller](/flight_controller/ark_pi6x.md)
- [CUAV X7](/flight_controller/cuav_x7.md)
- [CUAV Nora](/flight_controller/cuav_nora.md)
- [CUAV V5+ (FMUv5)](/flight_controller/cuav_v5_plus.md)
- [Wiring Quickstart](/assembly/quick_start_cuav_v5_plus.md)
- [CUAV V5 nano (FMUv5)](/flight_controller/cuav_v5_nano.md)
- [CUAV V5 nano Wiring Quickstart](/assembly/quick_start_cuav_v5_nano.md)
- [CUAV Pixhack v3 (FMUv3)](/flight_controller/pixhack_v3.md)
- [CUAV X25 EVO](/flight_controller/cuav_x25-evo.md)
- [CubePilot Cube Orange+ (CubePilot)](/flight_controller/cubepilot_cube_orangeplus.md)
- [CubePilot Cube Orange (CubePilot)](/flight_controller/cubepilot_cube_orange.md)
- [CubePilot Cube Yellow (CubePilot)](/flight_controller/cubepilot_cube_yellow.md)
@@ -188,11 +183,8 @@
- [Wiring Quickstart](/assembly/quick_start_durandal.md)
- [Holybro Pix32 v5](/flight_controller/holybro_pix32_v5.md)
- [Wiring Quickstart](/assembly/quick_start_holybro_pix32_v5.md)
- [ModalAI Flight Core v1](/flight_controller/modalai_fc_v1.md)
- [ModalAI VOXL Flight](/flight_controller/modalai_voxl_flight.md)
- [ModalAI VOXL 2](/flight_controller/modalai_voxl_2.md)
- [mRobotics-X2.1 (FMUv2)](/flight_controller/mro_x2.1.md)
- [mRo Control Zero F7)](/flight_controller/mro_control_zero_f7.md)
- [mRo Control Zero F7](/flight_controller/mro_control_zero_f7.md)
- [Sky-Drones AIRLink](/flight_controller/airlink.md)
- [SPRacing SPRacingH7EXTREME](/flight_controller/spracingh7extreme.md)
- [ThePeach FCC-K1](/flight_controller/thepeach_k1.md)
@@ -206,18 +198,20 @@
- [Discontinued Autopilots/Vehicles](/flight_controller/autopilot_discontinued.md)
- [Drotek Dropix (FMUv2)](/flight_controller/dropix.md)
- [Omnibus F4 SD](/flight_controller/omnibus_f4_sd.md)
- [BetaFPV Beta75X 2S Brushless Whoop](/complete_vehicles_mc/betafpv_beta75x.md)
- [Bitcraze Crazyflie 2.0 ](/complete_vehicles_mc/crazyflie2.md)
- [Aerotenna OcPoC-Zynq Mini](/flight_controller/ocpoc_zynq.md)
- [CUAV X7](/flight_controller/cuav_x7.md)
- [CUAV v5](/flight_controller/cuav_v5.md)
- [CUAV Pixhack v3 (FMUv3)](/flight_controller/pixhack_v3.md)
- [Holybro Kakute F7](/flight_controller/kakutef7.md)
- [Holybro Pixfalcon](/flight_controller/pixfalcon.md)
- [Holybro pix32 (FMUv2)](/flight_controller/holybro_pix32.md)
- [ModalAI Flight Core v1](/flight_controller/modalai_fc_v1.md)
- [ModalAI VOXL Flight](/flight_controller/modalai_voxl_flight.md)
- [mRo X2.1 (FMUv2)](/flight_controller/mro_x2.1.md)
- [mRo AUAV-X2](/flight_controller/auav_x2.md)
- [NXP RDDRONE-FMUK66 FMU](/flight_controller/nxp_rddrone_fmuk66.md)
- [3DR Pixhawk 1](/flight_controller/pixhawk.md)
- [Snapdragon Flight](/flight_controller/snapdragon_flight.md)
- [Intel® Aero RTF Drone](/complete_vehicles_mc/intel_aero.md)
- [Pixhawk Autopilot Bus (PAB) & Carriers](/flight_controller/pixhawk_autopilot_bus.md)
- [ARK Electronics Pixhawk Autopilot Bus Carrier](/flight_controller/ark_pab.md)
- [Mounting the Flight Controller](/assembly/mount_and_orient_controller.md)
@@ -241,6 +235,7 @@
- [Compass Power Compensation](/advanced_config/compass_power_compensation.md)
- [Airspeed Sensors](/sensor/airspeed.md)
- [Calibration](/config/airspeed.md)
- [Airspeed Validation](/advanced_config/airspeed_validation.md)
- [TFSlot Airspeed Sensor](/sensor/airspeed_tfslot.md)
- [Barometers](/sensor/barometer.md)
- [Distance Sensors \(Rangefinders\)](/sensor/rangefinders.md)
@@ -272,6 +267,7 @@
- [CUAV C-RTK](/gps_compass/rtk_gps_cuav_c-rtk.md)
- [CUAV C-RTK2 PPK/RTK GNSS](/gps_compass/rtk_gps_cuav_c-rtk2.md)
- [CUAV C-RTK 9Ps](/gps_compass/rtk_gps_cuav_c-rtk-9ps.md)
- [DATAGNSS NANO HRTK GNSS](/gps_compass/rtk_gps_datagnss_nano_hrtk.md)
- [DATAGNSS GEM1305 RTK GNSS](/gps_compass/rtk_gps_gem1305.md)
- [Femtones MINI2 Receiver](/gps_compass/rtk_gps_fem_mini2.md)
- [Freefly RTK GPS](/gps_compass/rtk_gps_freefly.md)
@@ -287,6 +283,7 @@
- [Trimble MB-Two](/gps_compass/rtk_gps_trimble_mb_two.md)
- [CubePilot Here+ (Discontined)](/gps_compass/rtk_gps_hex_hereplus.md)
- [INS (Inertial Navigation/GNSS)](/sensor/inertial_navigation_systems.md)
- [InertialLabs](/sensor/inertiallabs.md)
- [VectorNav](/sensor/vectornav.md)
- [Optical Flow](/sensor/optical_flow.md)
- [ARK Flow](/dronecan/ark_flow.md)
@@ -308,7 +305,6 @@
- [Zubax Telega](/dronecan/zubax_telega.md)
- [PX4 Sapog ESC Firmware](/dronecan/sapog.md)
- [Holybro Kotleta](/dronecan/holybro_kotleta.md)
- [Zubax Orel](/dronecan/zubax_orel.md)
- [Vertiq](/peripherals/vertiq.md)
- [VESC](/peripherals/vesc.md)
- [Radio Control (RC)](/getting_started/rc_transmitter_receiver.md)
@@ -320,6 +316,7 @@
- [Telemetry Radios](/telemetry/index.md)
- [SiK Radio](/telemetry/sik_radio.md)
- [RFD900 (SiK) Telemetry Radio](/telemetry/rfd900_telemetry.md)
- [ThunderFly TFSIK01 Telemetry Radio](/telemetry/tfsik_telemetry.md)
- [HolyBro (SIK) Telemetry Radio](/telemetry/holybro_sik_radio.md)
- [Telemetry Wifi](/telemetry/telemetry_wifi.md)
- [ESP8266 WiFi Module](/telemetry/esp8266_wifi_module.md)
@@ -335,6 +332,7 @@
- [FrSky Telemetry](/peripherals/frsky_telemetry.md)
- [TBS Crossfire (CRSF) Telemetry](/telemetry/crsf_telemetry.md)
- [Satellite Comms (Iridium/RockBlock)](/advanced_features/satcom_roadblock.md)
- [Power Systems](/power_systems/index.md)
- [Battery Estimation Tuning](/config/battery.md)
- [Battery Chemistry Overview](/power_systems/battery_chemistry.md)
@@ -401,7 +399,6 @@
- [Full Parameter Reference](/advanced_config/parameter_reference.md)
- [Other Vehicles](/airframes/index.md)
- [Airships (experimental)](/frames_airship/index.md)
- [Autogyros (experimental)](/frames_autogyro/index.md)
- [ThunderFly Auto-G2 (Holybro pix32)](/frames_autogyro/thunderfly_auto_g2.md)
@@ -409,17 +406,17 @@
- [Helicopter (experimental)](/frames_helicopter/index.md)
- [Helicopter Config/Tuning](/config_heli/index.md)
- [Rovers (experimental)](/frames_rover/index.md)
- [Ackermann Rovers](/frames_rover/ackermann.md)
- [Drive Modes](/flight_modes_rover/ackermann.md)
- [Configuration/Tuning](/config_rover/ackermann.md)
- [Differential Rovers](/frames_rover/differential.md)
- [Drive Modes](/flight_modes_rover/differential.md)
- [Configuration/Tuning](/config_rover/differential.md)
- [Aion Robotics R1](/frames_rover/aion_r1.md)
- [Mecanum Rovers](/frames_rover/mecanum.md)
- [Drive Modes](/flight_modes_rover/mecanum.md)
- [Configuration/Tuning](/config_rover/mecanum.md)
- [(Deprecated) Rover Position Control](/frames_rover/rover_position_control.md)
- [Drive Modes](/flight_modes_rover/index.md)
- [Manual](/flight_modes_rover/manual.md)
- [Auto](/flight_modes_rover/auto.md)
- [Configuration/Tuning](/config_rover/index.md)
- [Basic Setup](/config_rover/basic_setup.md)
- [Rate Tuning](/config_rover/rate_tuning.md)
- [Attitude Tuning](/config_rover/attitude_tuning.md)
- [Velocity Tuning](/config_rover/velocity_tuning.md)
- [Position Tuning](/config_rover/position_tuning.md)
- [Complete Vehicles](/complete_vehicles_rover/index.md)
- [Aion Robotics R1](/complete_vehicles_rover/aion_r1.md)
- [Submarines (experimental)](/frames_sub/index.md)
- [BlueROV2](/frames_sub/bluerov2.md)
- [Airframes Reference](/airframes/airframe_reference.md)
@@ -531,6 +528,7 @@
- [Airspeed](/msg_docs/Airspeed.md)
- [AirspeedWind](/msg_docs/AirspeedWind.md)
- [AutotuneAttitudeControlStatus](/msg_docs/AutotuneAttitudeControlStatus.md)
- [BatteryInfo](/msg_docs/BatteryInfo.md)
- [ButtonEvent](/msg_docs/ButtonEvent.md)
- [CameraCapture](/msg_docs/CameraCapture.md)
- [CameraStatus](/msg_docs/CameraStatus.md)
@@ -549,6 +547,7 @@
- [DifferentialPressure](/msg_docs/DifferentialPressure.md)
- [DistanceSensor](/msg_docs/DistanceSensor.md)
- [DistanceSensorModeChangeRequest](/msg_docs/DistanceSensorModeChangeRequest.md)
- [DronecanNodeStatus](/msg_docs/DronecanNodeStatus.md)
- [Ekf2Timestamps](/msg_docs/Ekf2Timestamps.md)
- [EscReport](/msg_docs/EscReport.md)
- [EscStatus](/msg_docs/EscStatus.md)
@@ -623,6 +622,7 @@
- [MountOrientation](/msg_docs/MountOrientation.md)
- [NavigatorMissionItem](/msg_docs/NavigatorMissionItem.md)
- [NavigatorStatus](/msg_docs/NavigatorStatus.md)
- [NeuralControl](/msg_docs/NeuralControl.md)
- [NormalizedUnsignedSetpoint](/msg_docs/NormalizedUnsignedSetpoint.md)
- [ObstacleDistance](/msg_docs/ObstacleDistance.md)
- [OffboardControlMode](/msg_docs/OffboardControlMode.md)
@@ -662,6 +662,8 @@
- [RoverPositionSetpoint](/msg_docs/RoverPositionSetpoint.md)
- [RoverRateSetpoint](/msg_docs/RoverRateSetpoint.md)
- [RoverRateStatus](/msg_docs/RoverRateStatus.md)
- [RoverSpeedSetpoint](/msg_docs/RoverSpeedSetpoint.md)
- [RoverSpeedStatus](/msg_docs/RoverSpeedStatus.md)
- [RoverSteeringSetpoint](/msg_docs/RoverSteeringSetpoint.md)
- [RoverThrottleSetpoint](/msg_docs/RoverThrottleSetpoint.md)
- [RoverVelocitySetpoint](/msg_docs/RoverVelocitySetpoint.md)
@@ -721,7 +723,13 @@
- [Wind](/msg_docs/Wind.md)
- [YawEstimatorStatus](/msg_docs/YawEstimatorStatus.md)
- [AirspeedValidatedV0](/msg_docs/AirspeedValidatedV0.md)
- [ArmingCheckReplyV0](/msg_docs/ArmingCheckReplyV0.md)
- [ArmingCheckRequestV0](/msg_docs/ArmingCheckRequestV0.md)
- [BatteryStatusV0](/msg_docs/BatteryStatusV0.md)
- [EventV0](/msg_docs/EventV0.md)
- [HomePositionV0](/msg_docs/HomePositionV0.md)
- [VehicleAttitudeSetpointV0](/msg_docs/VehicleAttitudeSetpointV0.md)
- [VehicleLocalPositionV0](/msg_docs/VehicleLocalPositionV0.md)
- [VehicleStatusV0](/msg_docs/VehicleStatusV0.md)
- [MAVLink Messaging](/mavlink/index.md)
- [Adding Messages](/mavlink/adding_messages.md)
@@ -761,7 +769,7 @@
- [Debugging with GDB](/debug/gdb_debugging.md)
- [SWD Debug Port](/debug/swd_debug.md)
- [JLink Probe](/debug/probe_jlink.md)
- [Black Magic/DroneCode Probe](/debug/probe_bmp.md)
- [Black Magic/Zubax BugFace BF1 Probe](/debug/probe_bmp.md)
- [STLink Probe](/debug/probe_stlink.md)
- [MCU-Link Probe](/debug/probe_mculink.md)
- [Hardfault Debugging](/debug/gdb_hardfault.md)
@@ -785,6 +793,9 @@
- [Camera Integration/Architecture](/camera/camera_architecture.md)
- [Computer Vision](/advanced/computer_vision.md)
- [Motion Capture (VICON, Optitrack, NOKOV)](/tutorials/motion-capture.md)
- [Neural Networks](/advanced/neural_networks.md)
- [Neural Network Module Utilities](/advanced/nn_module_utilities.md)
- [TensorFlow Lite Micro (TFLM)](/advanced/tflm.md)
- [Installing driver for Intel RealSense R200](/advanced/realsense_intel_driver.md)
- [Switching State Estimators](/advanced/switching_state_estimators.md)
- [Out-of-Tree Modules](/advanced/out_of_tree_modules.md)
@@ -816,8 +827,12 @@
- [Test MC_02 - Full Autonomous](/test_cards/mc_02_full_autonomous.md)
- [Test MC_03 - Auto Manual Mix](/test_cards/mc_03_auto_manual_mix.md)
- [Test MC_04 - Failsafe Testing](/test_cards/mc_04_failsafe_testing.md)
- [Test MC_05 - Indoor Flight (Manual Modes)](/test_cards/mc_05_indoor_flight_manual_modes.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)
- [Unit Tests](/test_and_ci/unit_tests.md)
- [Fuzz Tests](/test_and_ci/fuzz_tests.md)
- [Continuous Integration](/test_and_ci/continous_integration.md)
- [Integration Testing](/test_and_ci/integration_testing.md)
- [MAVSDK Integration Testing](/test_and_ci/integration_testing_mavsdk.md)
+203 -29
View File
@@ -692,6 +692,16 @@ to 0 and 4096. Other standard params follows the same rule.
| ------ | -------- | -------- | --------- | ------- | ---- |
| &nbsp; | 0 | 65535 | | 0 |
### PCA9685_EN_BUS (`INT32`) {#PCA9685_EN_BUS}
Enable the PCA9685 output driver.
The integer refers to the I2C bus number where PCA9685 is connected.
| Reboot | minValue | maxValue | increment | default | unit |
| ------ | -------- | -------- | --------- | ------- | ---- |
| &nbsp; | 0 | 10 | | 0 |
### PCA9685_FAIL1 (`INT32`) {#PCA9685_FAIL1}
PCA9685 Output Channel 1 Failsafe Value.
@@ -14435,9 +14445,9 @@ Set bits in the following positions to enable:
### FW_AT_MAN_AUX (`INT32`) {#FW_AT_MAN_AUX}
Enable/disable auto tuning using an RC AUX input.
Enable/disable auto tuning using a manual control AUX input.
Defines which RC_MAP_AUXn parameter maps the RC channel used to enable/disable auto tuning.
Defines which RC_MAP_AUXn parameter maps the manual control channel used to enable/disable auto tuning.
**Values:**
@@ -16242,21 +16252,6 @@ Expect and require a healthy MAVLink parachute system.
| ------ | -------- | -------- | --------- | ------------ | ---- |
| &nbsp; | | | | Disabled (0) |
### COM_POSCTL_NAVL (`INT32`) {#COM_POSCTL_NAVL}
Position mode navigation loss response.
This sets the flight mode that will be used if navigation accuracy is no longer adequate for position control in manual Position mode.
**Values:**
- `0`: Altitude mode
- `1`: Land mode (descend)
| Reboot | minValue | maxValue | increment | default | unit |
| ------ | -------- | -------- | --------- | ------- | ---- |
| &nbsp; | | | | 0 |
### COM_POS_FS_EPH (`FLOAT`) {#COM_POS_FS_EPH}
Horizontal position error threshold for hovering systems.
@@ -16363,7 +16358,7 @@ A negative value disables the check.
### COM_RCL_EXCEPT (`INT32`) {#COM_RCL_EXCEPT}
RC loss exceptions.
Manual control loss exceptions.
Specify modes where manual control loss is ignored and no failsafe is triggered.
External modes requiring stick input will still failsafe.
@@ -16381,7 +16376,7 @@ External modes requiring stick input will still failsafe.
### COM_RC_ARM_HYST (`INT32`) {#COM_RC_ARM_HYST}
RC input arm/disarm command duration.
Manual control input arm/disarm command duration.
The default value of 1000 requires the stick to be held in the arm or disarm position for 1 second.
@@ -16429,9 +16424,9 @@ Ensure the value is not set lower than the update interval of the RC or Joystick
### COM_RC_OVERRIDE (`INT32`) {#COM_RC_OVERRIDE}
Enable RC stick override of auto and/or offboard modes.
Enable manual control stick override.
When RC stick override is enabled, moving the RC sticks more than COM_RC_STICK_OV
When enabled, moving the sticks more than COM_RC_STICK_OV
immediately gives control back to the pilot by switching to Position mode and
if position is unavailable Altitude mode.
Note: Only has an effect on multicopters, and VTOLs in multicopter mode.
@@ -16447,7 +16442,7 @@ Note: Only has an effect on multicopters, and VTOLs in multicopter mode.
### COM_RC_STICK_OV (`FLOAT`) {#COM_RC_STICK_OV}
RC stick override threshold.
Stick override threshold.
If COM_RC_OVERRIDE is enabled and the joystick input is moved more than this threshold
the autopilot the pilot takes over control.
@@ -16591,11 +16586,10 @@ action will be executed.
### NAV_RCL_ACT (`INT32`) {#NAV_RCL_ACT}
Set RC loss failsafe mode.
Set manual control loss failsafe mode.
The RC loss failsafe will only be entered after a timeout,
set by COM_RC_LOSS_T in seconds. If RC input checks have been disabled
by setting the COM_RC_IN_MODE param it will not be triggered.
The manual control loss failsafe will only be entered after a timeout,
set by COM_RC_LOSS_T in seconds.
**Values:**
@@ -16876,7 +16870,7 @@ armed.
| Reboot | minValue | maxValue | increment | default | unit |
| ------ | -------- | -------- | --------- | ------- | ---- |
| &nbsp; | 0 | 1 | 0.01 | 0.055 | % |
| &nbsp; | 0 | 1 | 0.01 | 0.055 | norm |
### DSHOT_TEL_CFG (`INT32`) {#DSHOT_TEL_CFG}
@@ -19929,7 +19923,7 @@ Yaw behaviour during orbit flight.
- `1`: Hold Initial Heading
- `2`: Uncontrolled
- `3`: Hold Front Tangent to Circle
- `4`: RC Controlled
- `4`: Manually (yaw stick) Controlled
| Reboot | minValue | maxValue | increment | default | unit |
| ------ | -------- | -------- | --------- | ------- | ---- |
@@ -20268,6 +20262,7 @@ Modes 1 and 2 require each F9P UART1 to be connected to the Autopilot. In additi
F9P units are connected to each other.
Modes 3 and 4 only require UART1 on each F9P connected to the Autopilot or Can Node. UART RX DMA is required.
RTK is still possible with this setup.
Mode 6 is intended for use with a ground control station (not necessarily an RTK correction base).
**Values:**
@@ -20277,6 +20272,7 @@ RTK is still possible with this setup.
- `3`: Heading (Rover With Moving Base UART1 Connected to Autopilot Or Can Node At 921600)
- `4`: Moving Base (Moving Base UART1 Connected to Autopilot Or Can Node At 921600)
- `5`: Rover with Static Base on UART2 (similar to Default, except coming in on UART2)
- `6`: Ground Control Station (UART2 outputs NMEA)
| Reboot | minValue | maxValue | increment | default | unit |
| ------- | -------- | -------- | --------- | ------- | ---- |
@@ -29542,6 +29538,16 @@ Distance from the center of the right wheel to the center of the left wheel.
| ------ | -------- | -------- | --------- | ------- | ---- |
| &nbsp; | 0 | 100 | 0.001 | 0 | m |
### RD_YAW_STK_GAIN (`FLOAT`) {#RD_YAW_STK_GAIN}
Yaw stick gain for Manual mode.
Assign value <1.0 to decrease stick response for yaw control.
| Reboot | minValue | maxValue | increment | default | unit |
| ------ | -------- | -------- | --------- | ------- | ---- |
| &nbsp; | 0.1 | 1 | 0.01 | 1 |
## Rover Mecanum
### RM_COURSE_CTL_TH (`FLOAT`) {#RM_COURSE_CTL_TH}
@@ -29567,6 +29573,16 @@ Distance from the center of the right wheel to the center of the left wheel.
| ------ | -------- | -------- | --------- | ------- | ---- |
| &nbsp; | 0 | 100 | 0.001 | 0 | m |
### RM_YAW_STK_GAIN (`FLOAT`) {#RM_YAW_STK_GAIN}
Yaw stick gain for Manual mode.
Assign value <1.0 to decrease stick response for yaw control.
| Reboot | minValue | maxValue | increment | default | unit |
| ------ | -------- | -------- | --------- | ------- | ---- |
| &nbsp; | 0.1 | 1 | 0.01 | 1 |
## Rover Rate Control
### RO_YAW_ACCEL_LIM (`FLOAT`) {#RO_YAW_ACCEL_LIM}
@@ -29591,6 +29607,18 @@ Set to -1 to disable.
| ------ | -------- | -------- | --------- | ------- | ------- |
| &nbsp; | -1 | 10000 | 0.01 | -1. | deg/s^2 |
### RO_YAW_EXPO (`FLOAT`) {#RO_YAW_EXPO}
Yaw rate expo factor.
Exponential factor for tuning the input curve shape.
0 Purely linear input curve
1 Purely cubic input curve
| Reboot | minValue | maxValue | increment | default | unit |
| ------ | -------- | -------- | --------- | ------- | ---- |
| &nbsp; | 0 | 1 | | 0. |
### RO_YAW_RATE_CORR (`FLOAT`) {#RO_YAW_RATE_CORR}
Yaw rate correction factor.
@@ -29651,6 +29679,19 @@ Percentage of stick input range that will be interpreted as zero around the stic
| ------ | -------- | -------- | --------- | ------- | ---- |
| &nbsp; | 0 | 1 | 0.01 | 0.1 |
### RO_YAW_SUPEXPO (`FLOAT`) {#RO_YAW_SUPEXPO}
Yaw rate super expo factor.
"Superexponential" factor for refining the input curve shape tuned using RO_YAW_EXPO.
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
| Reboot | minValue | maxValue | increment | default | unit |
| ------ | -------- | -------- | --------- | ------- | ---- |
| &nbsp; | 0 | 0.95 | | 0. |
## Rover Velocity Control
### RO_ACCEL_LIM (`FLOAT`) {#RO_ACCEL_LIM}
@@ -29838,6 +29879,24 @@ Selects the algorithm used for logfile encryption
| ------ | -------- | -------- | --------- | ------- | ---- |
| &nbsp; | | | | 2 |
### SDLOG_BACKEND (`INT32`) {#SDLOG_BACKEND}
Logging Backend (integer bitmask).
If no logging is set the logger will not be started.
Set bits true to enable:
0: SD card logging
1: Mavlink logging
**Bitmask:**
- `0`: SD card logging
- `1`: Mavlink logging
| Reboot | minValue | maxValue | increment | default | unit |
| ------- | -------- | -------- | --------- | ------- | ---- |
| &check; | 0 | 3 | | 3 |
### SDLOG_BOOT_BAT (`INT32`) {#SDLOG_BOOT_BAT}
Battery-only Logging.
@@ -29924,10 +29983,12 @@ Logging Mode.
Determines when to start and stop logging. By default, logging is started
when arming the system, and stopped when disarming.
Note: The logging start/end points that can be configured here only apply to
SD logging. The mavlink backend is started/stopped independently
of these points.
**Values:**
- `-1`: disabled
- `0`: when armed until disarm (default)
- `1`: from boot until disarm
- `2`: from boot until shutdown
@@ -33018,6 +33079,31 @@ The mode will switch from long to short range when the distance is less than the
| ------ | -------- | -------- | --------- | ------- | ---- |
| &nbsp; | 1 | 50 | | 4 | m |
### SENS_BAHRS_CFG (`INT32`) {#SENS_BAHRS_CFG}
Serial Configuration for EULER-NAV BAHRS.
Configure on which serial port to run EULER-NAV BAHRS.
**Values:**
- `0`: Disabled
- `6`: UART 6
- `101`: TELEM 1
- `102`: TELEM 2
- `103`: TELEM 3
- `104`: TELEM/SERIAL 4
- `201`: GPS 1
- `202`: GPS 2
- `203`: GPS 3
- `300`: Radio Controller
- `301`: Wifi Port
- `401`: EXT2
| Reboot | minValue | maxValue | increment | default | unit |
| ------- | -------- | -------- | --------- | ------- | ---- |
| &check; | | | | 0 |
### SENS_BARO_QNH (`FLOAT`) {#SENS_BARO_QNH}
QNH for barometer.
@@ -35562,6 +35648,86 @@ Note: certain drivers such as the GPS can determine the Baudrate automatically.
| ------- | -------- | -------- | --------- | ------- | ---- |
| &check; | | | | 1 |
## Simulation
### SIM_GZ_EN_ASPD (`INT32`) {#SIM_GZ_EN_ASPD}
Enable airspeed sensor in Gazebo bridge.
**Values:**
- `0`: Disabled
- `1`: Enabled
| Reboot | minValue | maxValue | increment | default | unit |
| ------- | -------- | -------- | --------- | ----------- | ---- |
| &check; | | | | Enabled (1) |
### SIM_GZ_EN_BARO (`INT32`) {#SIM_GZ_EN_BARO}
Enable barometer/air pressure sensor in Gazebo bridge.
**Values:**
- `0`: Disabled
- `1`: Enabled
| Reboot | minValue | maxValue | increment | default | unit |
| ------- | -------- | -------- | --------- | ----------- | ---- |
| &check; | | | | Enabled (1) |
### SIM_GZ_EN_FLOW (`INT32`) {#SIM_GZ_EN_FLOW}
Enable optical flow sensor in Gazebo bridge.
**Values:**
- `0`: Disabled
- `1`: Enabled
| Reboot | minValue | maxValue | increment | default | unit |
| ------- | -------- | -------- | --------- | ----------- | ---- |
| &check; | | | | Enabled (1) |
### SIM_GZ_EN_GPS (`INT32`) {#SIM_GZ_EN_GPS}
Enable GPS/NavSat sensor in Gazebo bridge.
**Values:**
- `0`: Disabled
- `1`: Enabled
| Reboot | minValue | maxValue | increment | default | unit |
| ------- | -------- | -------- | --------- | ----------- | ---- |
| &check; | | | | Enabled (1) |
### SIM_GZ_EN_LIDAR (`INT32`) {#SIM_GZ_EN_LIDAR}
Enable laser/lidar sensors in Gazebo bridge.
**Values:**
- `0`: Disabled
- `1`: Enabled
| Reboot | minValue | maxValue | increment | default | unit |
| ------- | -------- | -------- | --------- | ----------- | ---- |
| &check; | | | | Enabled (1) |
### SIM_GZ_EN_ODOM (`INT32`) {#SIM_GZ_EN_ODOM}
Enable odometry in Gazebo bridge.
**Values:**
- `0`: Disabled
- `1`: Enabled
| Reboot | minValue | maxValue | increment | default | unit |
| ------- | -------- | -------- | --------- | ----------- | ---- |
| &check; | | | | Enabled (1) |
## Simulation In Hardware
### SIH_DISTSNSR_MAX (`FLOAT`) {#SIH_DISTSNSR_MAX}
@@ -41075,3 +41241,11 @@ SPC_VEHICLE_RESP.
| Reboot | minValue | maxValue | increment | default | unit |
| ------ | -------- | -------- | --------- | ------- | ---- |
| &nbsp; | | | | 0.5 |
### ZENOH_DOMAIN_ID (`INT32`) {#ZENOH_DOMAIN_ID}
ROS2 RMW_ZENOH_CPP Domain id.
| Reboot | minValue | maxValue | increment | default | unit |
| ------ | -------- | -------- | --------- | ------- | ---- |
| &nbsp; | 0 | 232 | | 0 |
+11 -2
View File
@@ -628,7 +628,16 @@ div.frame_variant td, div.frame_variant th {
### Free-Flyer
<div class="frame_common">
<img src="../../assets/airframes/types/AirframeUnknown.svg"/>
<img src="../../assets/airframes/types/FreeFlyer.svg"/>
<table>
<thead>
<tr><th>Common Outputs</th></tr>
</thead>
<tbody>
<tr>
<td><ul><li><b>Motor1</b>: back left thruster, +x thrust</li><li><b>Motor2</b>: front left thruster, -x thrust</li><li><b>Motor3</b>: back right thruster, +x thrust</li><li><b>Motor4</b>: front right thruster, -x thrust</li><li><b>Motor5</b>: front left thruster, +y thrust</li><li><b>Motor6</b>: front right thruster, -y thrust</li><li><b>Motor7</b>: back left thruster, +y thrust</li><li><b>Motor8</b>: back right thruster, -y thrust</li></ul></td>
</tr>
</tbody></table>
</div>
<div class="frame_variant">
@@ -638,7 +647,7 @@ div.frame_variant td, div.frame_variant th {
</thead>
<tbody>
<tr id="spacecraft_free-flyer_kth-atmos">
<td>KTH-ATMOS</td>
<td><a href="https://atmos.discower.io">KTH-ATMOS</a></td>
<td>Maintainer: DISCOWER<p><code>SYS_AUTOSTART</code> = 70000</p></td>
</tr>
</tbody>
+1 -1
View File
@@ -290,7 +290,7 @@ If you're using [DroneCAN ESC](../peripherals/esc_motors.md#dronecan) the contro
### Flight Controller Power
Pixhawk FCs require a regulated power supply that can supply at around 5V/3A continuous (check your specific FC)!
This is sufficient to power the controller itself and a few low-power peripherals, such as a GNSS module, RC transmitter, and low power telemetry radio, but not for motors, actuators, and other peripherals.
This is sufficient to power the controller itself and a few low-power peripherals, such as a GNSS module, RC receiver, and low power telemetry radio, but not for motors, actuators, and other peripherals.
[Power modules](../power_module/index.md) are commonly used to "split off" this regulated power supply for the FC and also to provide measurements of the battery voltage and total current to the whole system — which PX4 can use to estimate power levels.
The power module is connected to the FC power port, which is normally labeled `POWER` (or `POWER 1` or `POWER 2` for FCs that have redundant power supply).
+41 -5
View File
@@ -13,9 +13,9 @@ The first executed file is the [init.d/rcS](https://github.com/PX4/PX4-Autopilot
The following sections are split according to the operating system that PX4 runs on.
## 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).
On POSIX, the system shell is used as script interpreter (e.g. /bin/sh, being symlinked to dash on Ubuntu).
For that to work, a few things are required:
- PX4 modules need to look like individual executables to the system.
@@ -54,7 +54,7 @@ cd <PX4-Autopilot>/build/px4_sitl_default/bin
### Dynamic Modules
Normally, all modules are compiled into a single PX4 executable.
However, on Posix, there's the option of compiling a module into a separate file, which can be loaded into PX4 using the `dyn` command.
However, on POSIX, there's the option of compiling a module into a separate file, which can be loaded into PX4 using the `dyn` command.
```sh
dyn ./test.px4mod
@@ -90,6 +90,8 @@ This is documented below.
The best way to customize the system startup is to introduce a [new frame configuration](../dev_airframes/adding_a_new_frame.md).
The frame configuration file can be included in the firmware or on an SD Card.
#### Dynamic Customization
If you only need to "tweak" the existing configuration, such as starting one more application or setting the value of a few parameters, you can specify these by creating two files in the `/etc/` directory of the SD Card:
- [/etc/config.txt](#customizing-the-configuration-config-txt): modify parameter values
@@ -106,7 +108,7 @@ If editing on Windows use a suitable editor.
These files are referenced in PX4 code as `/fs/microsd/etc/config.txt` and `/fs/microsd/etc/extras.txt`, where the root folder of the microsd card is identified by the path `/fs/microsd`.
:::
#### Customizing the Configuration (config.txt)
##### Customizing the Configuration (config.txt)
The `config.txt` file can be used to modify parameters.
It is loaded after the main system has been configured and _before_ it is booted.
@@ -118,7 +120,7 @@ param set-default PWM_MAIN_DIS3 1000
param set-default PWM_MAIN_MIN3 1120
```
#### Starting Additional Applications (extras.txt)
##### Starting Additional Applications (extras.txt)
The `extras.txt` can be used to start additional applications after the main system boot.
Typically these would be payload controllers or similar optional custom components.
@@ -145,3 +147,37 @@ The following example shows how to start custom applications:
mandatory_app start # Will abort boot if mandatory_app is unknown or fails
```
#### Additional Init-File 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 compiled into the binary for a particular `make` target build variant.
::: warning
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.
:::
The steps are:
- Add a new init script in `boards/<vendor>/<board>/init` that will run during board startup.
For example:
```sh
# File: boards/<vendor>/<board>/init/rc.additional
param set-default <param> <value>
```
- Add a new board variant in `boards/<vendor>/<board>/<variant>.px4board` that includes the additional script.
For example:
```sh
# File: boards/<vendor>/<board>/var.px4board
CONFIG_BOARD_ADDITIONAL_INIT="rc.additional"
```
- Compile the firmware with your new variant by appending the variant name to the compile target.
For example:
```sh
make <target>_var
```
+2 -12
View File
@@ -206,23 +206,13 @@ The relevant parameters shown below.
### Position Loss Failsafe Action
The failure action is controlled by [COM_POSCTL_NAVL](../advanced_config/parameter_reference.md#COM_POSCTL_NAVL), based on whether RC control is assumed to be available (and altitude information):
- `0`: Remote control available.
Switch to _Altitude mode_ if a height estimate is available, otherwise _Stabilized mode_.
- `1`: Remote control _not_ available.
Switch to _Descend mode_ if a height estimate is available, otherwise enter flight termination.
_Descend mode_ is a landing mode that does not require a position estimate.
Multicopters will switch to [Altitude mode](../flight_modes_mc/altitude.md) if a height estimate is available, otherwise [Stabilized mode](../flight_modes_mc/manual_stabilized.md).
Fixed-wing planes, and VTOLs not configured to land in hover ([NAV_FORCE_VT](../advanced_config/parameter_reference.md#NAV_FORCE_VT)), have a parameter ([FW_GPSF_LT](../advanced_config/parameter_reference.md#FW_GPSF_LT)) that defines how long they will loiter (circle with a constant roll angle ([FW_GPSF_R](../advanced_config/parameter_reference.md#FW_GPSF_R)) at the current altitude) after losing position before attempting to land.
If VTOLs have are configured to switch to hover for landing ([NAV_FORCE_VT](../advanced_config/parameter_reference.md#NAV_FORCE_VT)) then they will first transition and then descend.
The relevant parameters for all vehicles shown below.
| Parameter | Description |
| -------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------- |
| <a id="COM_POSCTL_NAVL"></a>[COM_POSCTL_NAVL](../advanced_config/parameter_reference.md#COM_POSCTL_NAVL) | Position control navigation loss response during mission. Values: `0` - assume use of RC, `1` - Assume no RC. |
Parameters that only affect Fixed-wing vehicles:
| Parameter | Description |
+3 -2
View File
@@ -35,14 +35,15 @@ The parameters you are most likely to change are listed below.
| Parameter | Description |
| ------------------------------------------------------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| [SDLOG_MODE](../advanced_config/parameter_reference.md#SDLOG_MODE) | Logging Mode. Defines when logging starts and stops.<br />- `-1`: Logging disabled.<br />- `0`: Log when armed until disarm (default).<br />- `1`: Log from boot until disarm.<br />- `2`: Log from boot until shutdown.<br />- `3`: Log based on the [AUX1 RC channel](../advanced_config/parameter_reference.md#RC_MAP_AUX1).<br />- `4`: Log from first armed until shutdown. |
| [SDLOG_MODE](../advanced_config/parameter_reference.md#SDLOG_MODE) | Logging Mode. Defines when logging starts and stops.<br />- `0`: Log when armed until disarm (default).<br />- `1`: Log from boot until disarm.<br />- `2`: Log from boot until shutdown.<br />- `3`: Log based on the [AUX1 RC channel](../advanced_config/parameter_reference.md#RC_MAP_AUX1).<br />- `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.<br />- bit `0`: SD card logging.</br >- bit `1`: Mavlink logging.
| [SDLOG_PROFILE](../advanced_config/parameter_reference.md#SDLOG_PROFILE) | Logging 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".<br>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. |
Useful settings for specific cases:
- 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)
### Logger module
+7 -1
View File
@@ -33,7 +33,7 @@ _QGroundControl for Windows_ is additionally required if you need to:
Note that you can also use it to monitor a simulation, but you must manually [connect to the simulation running in WSL](#qgroundcontrol-on-windows).
::: info
Connecting to an USB device from within WSL is not natively supported, however it can still be achieved by using the [USBIPD-WIN](https://learn.microsoft.com/en-us/windows/wsl/connect-usb) project. With this you can automatically upload firmware from the command line in WSL using the [`upload`](../dev_setup/building_px4.md#uploading-firmware-flashing-the-board) function.
Connecting to an USB device from within WSL is not natively supported, however it can still be achieved by using the [USBIPD-WIN](https://learn.microsoft.com/en-us/windows/wsl/connect-usb) project. With this you can automatically upload firmware from the command line in WSL using the [`upload`](../dev_setup/building_px4.md#uploading-firmware-flashing-the-board) function.
:::
::: info
@@ -325,3 +325,9 @@ sudo add-apt-repository ppa:kisak/kisak-mesa
sudo apt update
sudo apt upgrade
```
### QGroundControl not connecting to PX4 SITL
- The connection between PX4 SITL on WSL2 and QGroundControl on Windows requires [broadcasting](../simulation/index.md#enable-udp-broadcasting) or [streaming to a specific address](../simulation/index.md#enable-streaming-to-specific-address) to be enabled.
Streaming to a specific address should be enabled by default, but is something to check if a connection can't be established.
- Network traffic might be blocked by firewall or antivirus on you system.
@@ -0,0 +1,153 @@
# Accton Godwit G-A1
:::warning
PX4 does not manufacture this (or any) autopilot.
Contact the [manufacturer](https://cubepilot.org/#/home) for hardware support or compliance issues.
:::
The G-A1 is a state-of-the-art flight controller developed derived from the [Pixhawk Autopilot v6X Standard](https://github.com/pixhawk/Pixhawk-Standards/blob/master/DS-012%20Pixhawk%20Autopilot%20v6X%20Standard.pdf).
It includes an STM32H753 double-precision floating-point FMU processor and an STM32F103 IO coprocessor, multiple IMUs with 6-axis inertial sensors, two pressure/temperature sensors, and a geomagnetic sensor.
It also has independent buses and power supplies, and is designed for safety and rich expansion capabilities.
With an integrated 10/100M Ethernet Physical Layer (PHY), the G-A1 can also communicate with a mission computer (airborne computer), high-end surveying and mapping cameras, and other UxV-mounted equipment for high-speed communications, meeting the needs of advanced UxV systems.
:::tip
Visit [Accton-IoT Godwit](https://www.accton-iot.com/godwit/) for more information.
:::
![AccGodwitGA1](../../assets/flight_controller/accton-godwit/ga1/outlook.png "Accton Godwit G-A1")
![AccGodwitGA1 Top View](../../assets/flight_controller/accton-godwit/ga1/orientation.png "Accton Godwit G-A1 Top View")
::: info
This flight controller is [manufacturer supported](../flight_controller/autopilot_manufacturer_supported.md).
:::
## Specifications
### Processor
- STM32H753IIK (Arm® Cortex®-M7 480MHz)
- STM32F103 (Arm® Cortex®-M3, 72MHz)
### Sensors
- Bosch BMI088 (vibration isolated)
- TDK InvenSense ICM-42688-P x 2 (one vibration isolated)
- TDK Barometric Pressure and Temperature Sensor CP-20100 x 2 (one vibration isolated)
- PNI RM3100 Geomagnetic Sensor (vibration isolated)
### Power
- 4.6V to 5.7V
### External ports
- 2 CAN Buses (CAN1 and CAN2)
- 3 TELEM Ports (TELEM1, TELEM2 and TELEM3)
- 2 GPS Ports (GPS1 with safety switch, LED, buzzer, and GPS2)
- 1 PPM IN
- 1 SBUS OUT
- 2 USB Ports (1 TYPE-C and 1 JST GH1.25)
- 1 10/100Base-T Ethernet Port
- 1 DSM/SBUS RC
- 1 UART 4
- 1 AD&IO Port
- 2 Debug Ports (1 IO Debug and 1 FMU Debug)
- 1 SPI6 Bus
- 4 Power Inputs (Power 1, Power 2, Power C1 and Power C2)
- 16 PWM Servo Outputs (A1-A8 from FMU and M1-M8 from IO)
- Micro SD Socket (supports SD 4.1 & SDIO 4.0 in two databus modes: 1 bit (default) and 4 bits)
### Size and Dimensions
- 92.2 (L) x 51.2 (W) x 28.3 (H) mm
- 77.6g (carrier board with IMU)
## Where to Buy
- [Accton-IoT Godwit](https://www.accton-iot.com/godwit/)
- [sales@accton-iot.com](sales@accton-iot.com)
## Pinout
![G-A1 Pin definition](../../assets/flight_controller/accton-godwit/ga1/pin_definition.png "G-A1 Pin definition")
## UART Mapping
| Serial# | Protocol | Port | Notes |
| ------- | --------- | ------ | ---------- |
| SERIAL1 | Telem1 | UART7 | /dev/ttyS6 |
| SERIAL2 | Telem2 | UART5 | /dev/ttyS4 |
| SERIAL3 | GPS1 | USART1 | /dev/ttyS0 |
| SERIAL4 | GPS2 | UART8 | /dev/ttyS7 |
| SERIAL5 | Telem3 | USART2 | /dev/ttyS1 |
| SERIAL6 | UART4 | UART4 | /dev/ttyS3 |
| SERIAL7 | FMU Debug | USART3 | |
| SERIAL8 | OTG2 | USB | |
## Wiring Diagram
![G-A1 Wiring](../../assets/flight_controller/accton-godwit/ga1/wiring.png "G-A1 Wiring")
## PWM Output
PWM M1-M8 (IO Main PWM), A1-A8(FMU PWM).
All these 16 support normal PWM output formats.
FMU PWM A1-A6 can support DShot and B-Directional DShot.
A1-A8(FMU PWM) are grouped as:
- Group 1: A1, A2, A3, A4
- Group 2: A5, A6
- Group 3: A7, A8
The motor and servo system should be connected to these ports according to the order outlined in the fuselage reference for your carrier.
![G-A1 PWM Motor Servo](../../assets/flight_controller/accton-godwit/ga1/motor_servo.png "G-A1 PWM Motor Servo")
## RC Input
For DSM/SBUS receivers, connect them to the DSM/SBUS interface which provides dedicated 3.3V and 5V power pins respectively, and check above "Pinout" for detailed pin definition.
PPM receivers should be connected to the PPM interface. And other RC systems can be connected via other spare telemetry ports.
![G-A1 Radio](../../assets/flight_controller/accton-godwit/ga1/radio.png "G-A1 Radio")
## GPS/Compass
The Godwit G-A1 has a built-in compass
Due to potential interference, the autopilot is usually used with an external I2C compass as part of a GPS/Compass combination.
![G-A1 GPS](../../assets/flight_controller/accton-godwit/ga1/gps.png "G-A1 GPS")
## Power Connection and Battery Monitor
This universal controller features a CAN PMU module that supports 3 to 14s lithium batteries.
To ensure proper connection, attach the module's 6-pin connector to the flight control Power C1 and/or Power C2 interface.
This universal controller does not provide power to the servos.
To power them, an external BEC must be connected to the positive and negative terminals of any A1A8 or M1M8 port.
![G-A1 Power](../../assets/flight_controller/accton-godwit/ga1/power.png "G-A1 Power")
## SD Card
The SD card is NOT included in the package, you need to prepare the SD card and insert it into the slot.
![G-A1 SD Card](../../assets/flight_controller/accton-godwit/ga1/sdcard.png "G-A1 SD Card")
## Firmware
The autopilot is compatible with PX4 firmware. And G-A1 can be detected by QGroundControl automatically. Users can also build it with target "accton-godwit_ga1"
To [build PX4](../dev_setup/building_px4.md) for this target, open up the terminal and enter:
```sh
make accton-godwit_ga1
```
## More Information and Support
- [Accton-IoT Godwit](https://www.accton-iot.com/godwit/)
- [sales@accton-iot.com](sales@accton-iot.com)
- [support@accton-iot.com](mailto:support@accton-iot.com)
@@ -12,6 +12,7 @@ This category includes boards that are not fully compliant with the pixhawk stan
The boards in this category are:
- [Accton Godwit GA1](../flight_controller/accton-godwit_ga1.md)
- [AirMind MindPX](../flight_controller/mindpx.md)
- [AirMind MindRacer](../flight_controller/mindracer.md)
- [ARK Electronics ARKV6X](../flight_controller/ark_v6x.md) (and [ARK Electronics Pixhawk Autopilot Bus Carrier](../flight_controller/ark_pab.md))
+35
View File
@@ -45,6 +45,41 @@ MicroStrain <command> [arguments...]
status Driver status
```
## eulernav_bahrs
Source: [drivers/ins/eulernav_bahrs](https://github.com/PX4/PX4-Autopilot/tree/main/src/drivers/ins/eulernav_bahrs)
### Description
Serial bus driver for the EULER-NAV Baro-Inertial AHRS.
### Examples
Attempt to start driver on a specified serial device.
```
eulernav_bahrs start -d /dev/ttyS1
```
Stop driver
```
eulernav_bahrs stop
```
### Usage {#eulernav_bahrs_usage}
```
eulernav_bahrs <command> [arguments...]
Commands:
start Start driver
-d <val> Serial device
status Print driver status
stop Stop driver
```
## ilabs
Source: [drivers/ins/ilabs](https://github.com/PX4/PX4-Autopilot/tree/main/src/drivers/ins/ilabs)
+17 -17
View File
@@ -15,25 +15,25 @@ Request are published by `manual_control` and subscribed by the `commander` and
# It allows mapping triggers from various external interfaces like RC channels or MAVLink to cause an action.
# Request are published by `manual_control` and subscribed by the `commander` and `vtol_att_control` modules.
uint64 timestamp # [us] Time since system start
uint64 timestamp # [us] Time since system start
uint8 action # [@enum ACTION] Requested action
uint8 ACTION_DISARM = 0 # Disarm vehicle
uint8 ACTION_ARM = 1 # Arm vehicle
uint8 ACTION_TOGGLE_ARMING = 2 # Toggle arming
uint8 ACTION_UNKILL = 3 # Revert a kill action
uint8 ACTION_KILL = 4 # Kill vehicle (instantly stop the motors)
uint8 ACTION_SWITCH_MODE = 5 # Switch mode. The target mode is set in the `mode` field.
uint8 ACTION_VTOL_TRANSITION_TO_MULTICOPTER = 6 # Transition to hover flight
uint8 ACTION_VTOL_TRANSITION_TO_FIXEDWING = 7 # Transition to fast forward flight
uint8 ACTION_TERMINATION = 8 # Irreversably output failsafe values on all outputs, trigger parachute
uint8 action # [@enum ACTION] Requested action
uint8 ACTION_DISARM = 0 # Disarm vehicle
uint8 ACTION_ARM = 1 # Arm vehicle
uint8 ACTION_TOGGLE_ARMING = 2 # Toggle arming
uint8 ACTION_UNKILL = 3 # Revert a kill action
uint8 ACTION_KILL = 4 # Kill vehicle (instantly stop the motors)
uint8 ACTION_SWITCH_MODE = 5 # Switch mode. The target mode is set in the `mode` field.
uint8 ACTION_VTOL_TRANSITION_TO_MULTICOPTER = 6 # Transition to hover flight
uint8 ACTION_VTOL_TRANSITION_TO_FIXEDWING = 7 # Transition to fast forward flight
uint8 ACTION_TERMINATION = 8 # Irreversibly output failsafe values on all outputs, trigger parachute
uint8 source # [@enum SOURCE] Request trigger type, such as a switch, button or gesture
uint8 SOURCE_STICK_GESTURE = 0 # Triggered by holding the sticks in a certain position
uint8 SOURCE_RC_SWITCH = 1 # Triggered by an RC switch moving into a certain position
uint8 SOURCE_RC_BUTTON = 2 # Triggered by a momentary button on the RC being pressed or held
uint8 SOURCE_RC_MODE_SLOT = 3 # Mode change through the RC mode selection mechanism
uint8 source # [@enum SOURCE] Request trigger type, such as a switch, button or gesture
uint8 SOURCE_STICK_GESTURE = 0 # Triggered by holding the sticks in a certain position
uint8 SOURCE_RC_SWITCH = 1 # Triggered by an RC switch moving into a certain position
uint8 SOURCE_RC_BUTTON = 2 # Triggered by a momentary button on the RC being pressed or held
uint8 SOURCE_RC_MODE_SLOT = 3 # Mode change through the RC mode selection mechanism
uint8 mode # Requested mode. Only applies when `action` is `ACTION_SWITCH_MODE`. Values for this field are defined by the `vehicle_status_s::NAVIGATION_STATE_*` enumeration.
uint8 mode # Requested mode. Only applies when `action` is `ACTION_SWITCH_MODE`. Values for this field are defined by the `vehicle_status_s::NAVIGATION_STATE_*` enumeration.
```
+6 -6
View File
@@ -15,14 +15,14 @@ Published by the vehicle's allocation and consumed by the ESC protocol drivers e
uint32 MESSAGE_VERSION = 0
uint64 timestamp # [us] Time since system start
uint64 timestamp_sample # [us] Sampling timestamp of the data this control response is based on
uint64 timestamp # [us] Time since system start
uint64 timestamp_sample # [us] Sampling timestamp of the data this control response is based on
uint16 reversible_flags # Bitset indicating which motors are configured to be reversible
uint16 reversible_flags # Bitset indicating which motors are configured to be reversible
uint8 ACTUATOR_FUNCTION_MOTOR1 = 101
uint8 ACTUATOR_FUNCTION_MOTOR1 = 101 #
uint8 NUM_CONTROLS = 12
float32[12] control # [@range -1, 1] Normalized thrust. where 1 means maximum positive thrust, -1 maximum negative (if not supported by the output, <0 maps to NaN). NaN maps to disarmed (stop the motors)
uint8 NUM_CONTROLS = 12 #
float32[12] control # [@range -1, 1] Normalized thrust. where 1 means maximum positive thrust, -1 maximum negative (if not supported by the output, <0 maps to NaN). NaN maps to disarmed (stop the motors)
```
+4 -4
View File
@@ -15,10 +15,10 @@ Published by the vehicle's allocation and consumed by the actuator output driver
uint32 MESSAGE_VERSION = 0
uint64 timestamp # [us] Time since system start
uint64 timestamp_sample # [us] Sampling timestamp of the data this control response is based on
uint64 timestamp # [us] Time since system start
uint64 timestamp_sample # [us] Sampling timestamp of the data this control response is based on
uint8 NUM_CONTROLS = 8
float32[8] control # [@range -1, 1] Normalized output. 1 means maximum positive position. -1 maximum negative position (if not supported by the output, <0 maps to NaN). NaN maps to disarmed.
uint8 NUM_CONTROLS = 8 #
float32[8] control # [@range -1, 1] Normalized output. 1 means maximum positive position. -1 maximum negative position (if not supported by the output, <0 maps to NaN). NaN maps to disarmed.
```
+5 -5
View File
@@ -13,10 +13,10 @@ It is subscribed by the airspeed selector module, which validates the data from
# This is published by airspeed sensor drivers, CAN airspeed sensors, simulators.
# It is subscribed by the airspeed selector module, which validates the data from multiple sensors and passes on a single estimation to the EKF, controllers and telemetry providers.
uint64 timestamp # [us] Time since system start
uint64 timestamp_sample # [us] Timestamp of the raw data
float32 indicated_airspeed_m_s # [m/s] Indicated airspeed
float32 true_airspeed_m_s # [m/s] True airspeed
float32 confidence # [@range 0,1] Confidence value for this sensor
uint64 timestamp # [us] Time since system start
uint64 timestamp_sample # [us] Timestamp of the raw data
float32 indicated_airspeed_m_s # [m/s] Indicated airspeed
float32 true_airspeed_m_s # [m/s] True airspeed
float32 confidence # [@range 0,1] Confidence value for this sensor
```
+23 -23
View File
@@ -21,39 +21,39 @@ The message is not used by internal/FMU components, as their mode requirements a
# Note that the external component is identified by its registration_id, which is allocated to the component during registration (arming_check_id in RegisterExtComponentReply).
# The message is not used by internal/FMU components, as their mode requirements are known at compile time.
uint32 MESSAGE_VERSION = 1
uint32 MESSAGE_VERSION = 1
uint64 timestamp # [us] Time since system start.
uint8 request_id # Id of ArmingCheckRequest for which this is a response.
uint8 registration_id # Id of external component emitting this response.
uint8 request_id # Id of ArmingCheckRequest for which this is a response.
uint8 registration_id # Id of external component emitting this response.
uint8 HEALTH_COMPONENT_INDEX_NONE = 0 # Index of health component for which this response applies.
uint8 HEALTH_COMPONENT_INDEX_NONE = 0 # Index of health component for which this response applies.
uint8 health_component_index # [@enum HEALTH_COMPONENT_INDEX]
bool health_component_is_present # Unused. Intended for use with health events interface (health_component_t in events.json).
bool health_component_warning # Unused. Intended for use with health events interface (health_component_t in events.json).
bool health_component_error # Unused. Intended for use with health events interface (health_component_t in events.json).
uint8 health_component_index # [@enum HEALTH_COMPONENT_INDEX]
bool health_component_is_present # Unused. Intended for use with health events interface (health_component_t in events.json).
bool health_component_warning # Unused. Intended for use with health events interface (health_component_t in events.json).
bool health_component_error # Unused. Intended for use with health events interface (health_component_t in events.json).
bool can_arm_and_run # True if the component can arm. For navigation mode components, true if the component can arm in the mode or switch to the mode when already armed.
bool can_arm_and_run # True if the component can arm. For navigation mode components, true if the component can arm in the mode or switch to the mode when already armed.
uint8 num_events # Number of queued failure messages (Event) in the events field.
uint8 num_events # Number of queued failure messages (Event) in the events field.
Event[5] events # Arming failure reasons (Queue of events to report to GCS).
Event[5] events # Arming failure reasons (Queue of events to report to GCS).
# Mode requirements
bool mode_req_angular_velocity # Requires angular velocity estimate (e.g. from gyroscope).
bool mode_req_attitude # Requires an attitude estimate.
bool mode_req_local_alt # Requires a local altitude estimate.
bool mode_req_local_position # Requires a local position estimate.
bool mode_req_local_position_relaxed # Requires a more relaxed global position estimate.
bool mode_req_global_position # Requires a global position estimate.
bool mode_req_global_position_relaxed # Requires a relaxed global position estimate.
bool mode_req_mission # Requires an uploaded mission.
bool mode_req_home_position # Requires a home position (such as RTL/Return mode).
bool mode_req_prevent_arming # Prevent arming (such as in Land mode).
bool mode_req_manual_control # Requires a manual controller
bool mode_req_angular_velocity # Requires angular velocity estimate (e.g. from gyroscope).
bool mode_req_attitude # Requires an attitude estimate.
bool mode_req_local_alt # Requires a local altitude estimate.
bool mode_req_local_position # Requires a local position estimate.
bool mode_req_local_position_relaxed # Requires a more relaxed global position estimate.
bool mode_req_global_position # Requires a global position estimate.
bool mode_req_global_position_relaxed # Requires a relaxed global position estimate.
bool mode_req_mission # Requires an uploaded mission.
bool mode_req_home_position # Requires a home position (such as RTL/Return mode).
bool mode_req_prevent_arming # Prevent arming (such as in Land mode).
bool mode_req_manual_control # Requires a manual controller
uint8 ORB_QUEUE_LENGTH = 4 #
uint8 ORB_QUEUE_LENGTH = 4
```
+5 -3
View File
@@ -21,10 +21,12 @@ The reply will also include the registration_id for each external component, pro
# The reply will include the published request_id, allowing correlation of all arming check information for a particular request.
# The reply will also include the registration_id for each external component, provided to it during the registration process (RegisterExtComponentReply).
uint32 MESSAGE_VERSION = 0
uint32 MESSAGE_VERSION = 1
uint64 timestamp # [us] Time since system start.
uint64 timestamp # [us] Time since system start.
uint8 request_id # Id of this request. Allows correlation with associated ArmingCheckReply messages.
uint8 request_id # Id of this request. Allows correlation with associated ArmingCheckReply messages.
uint32 valid_registrations_mask # Bitmask of valid registration ID's (the bit is also cleared if flagged as unresponsive)
```
+30
View File
@@ -0,0 +1,30 @@
# ArmingCheckRequestV0 (UORB message)
Arming check request.
Broadcast message to request arming checks be reported by all registered components, such as external ROS 2 navigation modes.
All registered components should respond with an ArmingCheckReply message that indicates their current mode requirements, and any arming failure information.
The request is sent regularly, even while armed, so that the FMU always knows the current arming state for external modes, and can forward it to ground stations.
The reply will include the published request_id, allowing correlation of all arming check information for a particular request.
The reply will also include the registration_id for each external component, provided to it during the registration process (RegisterExtComponentReply).
[source file](https://github.com/PX4/PX4-Autopilot/blob/main/msg/px4_msgs_old/msg/ArmingCheckRequestV0.msg)
```c
# Arming check request.
#
# Broadcast message to request arming checks be reported by all registered components, such as external ROS 2 navigation modes.
# All registered components should respond with an ArmingCheckReply message that indicates their current mode requirements, and any arming failure information.
# The request is sent regularly, even while armed, so that the FMU always knows the current arming state for external modes, and can forward it to ground stations.
#
# The reply will include the published request_id, allowing correlation of all arming check information for a particular request.
# The reply will also include the registration_id for each external component, provided to it during the registration process (RegisterExtComponentReply).
uint32 MESSAGE_VERSION = 0
uint64 timestamp # [us] Time since system start.
uint8 request_id # Id of this request. Allows correlation with associated ArmingCheckReply messages.
```
+30 -30
View File
@@ -11,39 +11,39 @@ This is currently used only for logging cell status from MAVLink.
#
# This is currently used only for logging cell status from MAVLink.
uint64 timestamp # [us] Time since system start
uint64 timestamp # [us] Time since system start
uint16 status # [@enum STATUS_FLAG] Status bitmap
uint16 STATUS_FLAG_UNKNOWN = 1 # State unknown or not reportable
uint16 STATUS_FLAG_FAILED = 2 # Modem is unusable
uint16 STATUS_FLAG_INITIALIZING = 4 # Modem is being initialized
uint16 STATUS_FLAG_LOCKED = 8 # Modem is locked
uint16 STATUS_FLAG_DISABLED = 16 # Modem is not enabled and is powered down
uint16 STATUS_FLAG_DISABLING = 32 # Modem is currently transitioning to the STATUS_FLAG_DISABLED state
uint16 STATUS_FLAG_ENABLING = 64 # Modem is currently transitioning to the STATUS_FLAG_ENABLED state
uint16 STATUS_FLAG_ENABLED = 128 # Modem is enabled and powered on but not registered with a network provider and not available for data connections
uint16 STATUS_FLAG_SEARCHING = 256 # Modem is searching for a network provider to register
uint16 STATUS_FLAG_REGISTERED = 512 # Modem is registered with a network provider, and data connections and messaging may be available for use
uint16 STATUS_FLAG_DISCONNECTING = 1024 # Modem is disconnecting and deactivating the last active packet data bearer. This state will not be entered if more than one packet data bearer is active and one of the active bearers is deactivated
uint16 STATUS_FLAG_CONNECTING = 2048 # Modem is activating and connecting the first packet data bearer. Subsequent bearer activations when another bearer is already active do not cause this state to be entered
uint16 STATUS_FLAG_CONNECTED = 4096 # One or more packet data bearers is active and connected
uint16 status # [@enum STATUS_FLAG] Status bitmap
uint16 STATUS_FLAG_UNKNOWN = 1 # State unknown or not reportable
uint16 STATUS_FLAG_FAILED = 2 # Modem is unusable
uint16 STATUS_FLAG_INITIALIZING = 4 # Modem is being initialized
uint16 STATUS_FLAG_LOCKED = 8 # Modem is locked
uint16 STATUS_FLAG_DISABLED = 16 # Modem is not enabled and is powered down
uint16 STATUS_FLAG_DISABLING = 32 # Modem is currently transitioning to the STATUS_FLAG_DISABLED state
uint16 STATUS_FLAG_ENABLING = 64 # Modem is currently transitioning to the STATUS_FLAG_ENABLED state
uint16 STATUS_FLAG_ENABLED = 128 # Modem is enabled and powered on but not registered with a network provider and not available for data connections
uint16 STATUS_FLAG_SEARCHING = 256 # Modem is searching for a network provider to register
uint16 STATUS_FLAG_REGISTERED = 512 # Modem is registered with a network provider, and data connections and messaging may be available for use
uint16 STATUS_FLAG_DISCONNECTING = 1024 # Modem is disconnecting and deactivating the last active packet data bearer. This state will not be entered if more than one packet data bearer is active and one of the active bearers is deactivated
uint16 STATUS_FLAG_CONNECTING = 2048 # Modem is activating and connecting the first packet data bearer. Subsequent bearer activations when another bearer is already active do not cause this state to be entered
uint16 STATUS_FLAG_CONNECTED = 4096 # One or more packet data bearers is active and connected
uint8 failure_reason # [@enum FAILURE_REASON] Failure reason
uint8 FAILURE_REASON_NONE = 0 # No error
uint8 FAILURE_REASON_UNKNOWN = 1 # Error state is unknown
uint8 FAILURE_REASON_SIM_MISSING = 2 # SIM is required for the modem but missing
uint8 FAILURE_REASON_SIM_ERROR = 3 # SIM is available, but not usable for connection
uint8 failure_reason # [@enum FAILURE_REASON] Failure reason
uint8 FAILURE_REASON_NONE = 0 # No error
uint8 FAILURE_REASON_UNKNOWN = 1 # Error state is unknown
uint8 FAILURE_REASON_SIM_MISSING = 2 # SIM is required for the modem but missing
uint8 FAILURE_REASON_SIM_ERROR = 3 # SIM is available, but not usable for connection
uint8 type # [@enum CELLULAR_NETWORK_RADIO_TYPE] Cellular network radio type
uint8 CELLULAR_NETWORK_RADIO_TYPE_NONE = 0 # None
uint8 CELLULAR_NETWORK_RADIO_TYPE_GSM = 1 # GSM
uint8 CELLULAR_NETWORK_RADIO_TYPE_CDMA = 2 # CDMA
uint8 CELLULAR_NETWORK_RADIO_TYPE_WCDMA = 3 # WCDMA
uint8 CELLULAR_NETWORK_RADIO_TYPE_LTE = 4 # LTE
uint8 type # [@enum CELLULAR_NETWORK_RADIO_TYPE] Cellular network radio type
uint8 CELLULAR_NETWORK_RADIO_TYPE_NONE = 0 # None
uint8 CELLULAR_NETWORK_RADIO_TYPE_GSM = 1 # GSM
uint8 CELLULAR_NETWORK_RADIO_TYPE_CDMA = 2 # CDMA
uint8 CELLULAR_NETWORK_RADIO_TYPE_WCDMA = 3 # WCDMA
uint8 CELLULAR_NETWORK_RADIO_TYPE_LTE = 4 # LTE
uint8 quality # [dBm] Cellular network RSSI/RSRP, absolute value
uint16 mcc # [@invalid UINT16_MAX] Mobile country code
uint16 mnc # [@invalid UINT16_MAX] Mobile network code
uint16 lac # [@invalid 0] Location area code
uint8 quality # [dBm] Cellular network RSSI/RSRP, absolute value
uint16 mcc # [@invalid UINT16_MAX] Mobile country code
uint16 mnc # [@invalid UINT16_MAX] Mobile network code
uint16 lac # [@invalid 0] Location area code
```
+14
View File
@@ -0,0 +1,14 @@
# RoverSpeedSetpoint (UORB message)
Rover Speed Setpoint
[source file](https://github.com/PX4/PX4-Autopilot/blob/main/msg/RoverSpeedSetpoint.msg)
```c
# Rover Speed Setpoint
uint64 timestamp # [us] Time since system start
float32 speed_body_x # [m/s] [@range -inf (Backwards), inf (Forwards)] [@frame Body] Speed setpoint in body x direction
float32 speed_body_y # [m/s] [@range -inf (Left), inf (Right)] [@frame Body] [@invalid NaN If not mecanum] Mecanum only: Speed setpoint in body y direction
```
+18
View File
@@ -0,0 +1,18 @@
# RoverSpeedStatus (UORB message)
Rover Velocity Status
[source file](https://github.com/PX4/PX4-Autopilot/blob/main/msg/RoverSpeedStatus.msg)
```c
# Rover Velocity Status
uint64 timestamp # [us] Time since system start
float32 measured_speed_body_x # [m/s] [@range -inf (Backwards), inf (Forwards)] [@frame Body] Measured speed in body x direction
float32 adjusted_speed_body_x_setpoint # [m/s] [@range -inf (Backwards), inf (Forwards)] [@frame Body] Speed setpoint in body x direction that is being tracked (Applied slew rates)
float32 pid_throttle_body_x_integral # [] [@range -1, 1] Integral of the PID for the closed loop controller of the speed in body x direction
float32 measured_speed_body_y # [m/s] [@range -inf (Left), inf (Right)] [@frame Body] [@invalid NaN If not mecanum] Mecanum only: Measured speed in body y direction
float32 adjusted_speed_body_y_setpoint # [m/s] [@range -inf (Left), inf (Right)] [@frame Body] [@invalid NaN If not mecanum] Mecanum only: Speed setpoint in body y direction that is being tracked (Applied slew rates)
float32 pid_throttle_body_y_integral # [] [@range -1, 1] [@invalid NaN If not mecanum] Mecanum only: Integral of the PID for the closed loop controller of the speed in body y direction
```
+16 -14
View File
@@ -1,24 +1,26 @@
# VehicleAirData (UORB message)
Vehicle air data
Data from the currently selected barometer (plus ambient temperature from the source specified in temperature_source).
Includes calculated data such as barometric altitude and air density.
[source file](https://github.com/PX4/PX4-Autopilot/blob/main/msg/VehicleAirData.msg)
```c
# Vehicle air data
#
# Data from the currently selected barometer (plus ambient temperature from the source specified in temperature_source).
# Includes calculated data such as barometric altitude and air density.
uint64 timestamp # time since system start (microseconds)
uint64 timestamp_sample # the timestamp of the raw data (microseconds)
uint32 baro_device_id # unique device ID for the selected barometer
float32 baro_alt_meter # Altitude above MSL calculated from temperature compensated baro sensor data using an ISA corrected for sea level pressure SENS_BARO_QNH.
float32 baro_pressure_pa # Absolute pressure in Pascals
float32 ambient_temperature # Abient temperature in degrees Celsius
uint8 temperature_source # Source of temperature data: 0: Default Temperature (15°C), 1: External Baro, 2: Airspeed
float32 rho # air density
uint8 calibration_count # Calibration changed counter. Monotonically increases whenever calibration changes.
uint64 timestamp # [us] Time since system start
uint64 timestamp_sample # [us] Timestamp of the raw data
uint32 baro_device_id # Unique device ID for the selected barometer
float32 baro_alt_meter # [m] [@frame MSL] Altitude above MSL calculated from temperature compensated baro sensor data using an ISA corrected for sea level pressure SENS_BARO_QNH
float32 baro_pressure_pa # [Pa] Absolute pressure
float32 ambient_temperature # [degC] Ambient temperature
uint8 temperature_source # Source of temperature data: 0: Default Temperature (15°C), 1: External Baro, 2: Airspeed
float32 rho # [kg/m^3] Air density
uint8 calibration_count # Calibration changed counter. Monotonically increases whenever calibration changes.
```
+4 -3
View File
@@ -229,10 +229,10 @@ Graphs showing how these are used [can be found here](../middleware/uorb_graph.m
- [RoverPositionSetpoint](RoverPositionSetpoint.md) — Rover Position Setpoint
- [RoverRateSetpoint](RoverRateSetpoint.md) — Rover Rate setpoint
- [RoverRateStatus](RoverRateStatus.md) — Rover Rate Status
- [RoverSpeedSetpoint](RoverSpeedSetpoint.md) — Rover Speed Setpoint
- [RoverSpeedStatus](RoverSpeedStatus.md) — Rover Velocity Status
- [RoverSteeringSetpoint](RoverSteeringSetpoint.md) — Rover Steering setpoint
- [RoverThrottleSetpoint](RoverThrottleSetpoint.md) — Rover Throttle setpoint
- [RoverVelocitySetpoint](RoverVelocitySetpoint.md) — Rover Velocity Setpoint
- [RoverVelocityStatus](RoverVelocityStatus.md) — Rover Velocity Status
- [Rpm](Rpm.md)
- [RtlStatus](RtlStatus.md)
- [RtlTimeEstimate](RtlTimeEstimate.md)
@@ -281,7 +281,7 @@ Graphs showing how these are used [can be found here](../middleware/uorb_graph.m
- [UlogStreamAck](UlogStreamAck.md) — Ack a previously sent ulog_stream message that had
the NEED_ACK flag set
- [VehicleAcceleration](VehicleAcceleration.md)
- [VehicleAirData](VehicleAirData.md)
- [VehicleAirData](VehicleAirData.md) — Vehicle air data
- [VehicleAngularAccelerationSetpoint](VehicleAngularAccelerationSetpoint.md)
- [VehicleConstraints](VehicleConstraints.md) — Local setpoint constraints in NED frame
setting something to NaN means that no limit is provided
@@ -301,6 +301,7 @@ Graphs showing how these are used [can be found here](../middleware/uorb_graph.m
- [YawEstimatorStatus](YawEstimatorStatus.md)
- [AirspeedValidatedV0](AirspeedValidatedV0.md)
- [ArmingCheckReplyV0](ArmingCheckReplyV0.md)
- [ArmingCheckRequestV0](ArmingCheckRequestV0.md) — Arming check request.
- [BatteryStatusV0](BatteryStatusV0.md) — Battery status
- [EventV0](EventV0.md) — this message is required here in the msg_old folder because other msg are depending on it
Events interface
+1 -1
View File
@@ -52,7 +52,7 @@ Please continue reading for [upgrade instructions](#upgrade-guide).
### Sensors
- TBD
- Add [sbgECom INS driver](../sensor/sbgecom.md) ([PX4-Autopilot#24137](https://github.com/PX4/PX4-Autopilot/pull/24137))
### Simulation
+1 -1
View File
@@ -5,7 +5,7 @@ PX4 uses accelerometer data for velocity estimation.
You should not need to attach an accelometer as a stand-alone external device:
- Most flight controllers, such as those in the [Pixhawk Series](../flight_controller/pixhawk_series.md), include an accelerometer as part of the flight controller's [Inertial Motion Unit (IMU)](https://en.wikipedia.org/wiki/Inertial_measurement_unit).
- Gyroscopes are present as part of an [external INS, ARHS or INS-enhanced GNSS system](../sensor/inertial_navigation_systems.md).
- Gyroscopes are present as part of an [external INS, AHRS or INS-enhanced GNSS system](../sensor/inertial_navigation_systems.md).
The accelerometer must be calibrated before first use of the vehicle:
@@ -9,6 +9,7 @@ However PX4 can also use some INS devices as either sources of raw data, or as a
INS systems that can be used as a replacement for EKF2 in PX4:
- [InertialLabs](../sensor/inertiallabs.md)
- [SBG Systems](../sensor/sbgecom.md): IMU/AHRS, GNSS/INS, Dual GNSS/INS systems that can be used as an external INS or as a source of raw sensor data.
- [VectorNav](../sensor/vectornav.md): IMU/AHRS, GNSS/INS, Dual GNSS/INS systems that can be used as an external INS or as a source of raw sensor data.
## PX4 Firmware
+150
View File
@@ -0,0 +1,150 @@
# SBG Systems INS/AHRS (Pulse, Ellipse, etc.)
[SBG-Systems](https://www.sbg-systems.com/) designs, manufactures, and support an extensive range of state-of-the-art inertial sensors such as Inertial Measurement Units (IMU), Attitude and Heading Reference Systems (AHRS), Inertial Navigation Systems with embedded GNSS (INS/GNSS), and so on.
PX4 supports [all SBG Systems products](https://www.sbg-systems.com/products/) and can use these as an [external INS](../sensor/inertial_navigation_systems.md) (bypassing/replacing the EKF2 estimator), or as a source of raw sensor data provided to the navigation estimator.
![Ellipse](../../assets/hardware/sensors/inertial/ellipse-inertial-navigation-system.png)
## Overview
SBG Systems products provide a range of benefits to PX4 users and can be integrated for:
- Higher accuracy heading, pitch, and roll estimates
- More robust and reliable GNSS positioning
- Improved positioning and attitude performance in GNSS-contested environments
- Performance under challenging dynamic conditions (e.g. catapult launches, VTOL operations, high-g or high angular rate operations)
The sbgECom PX4 driver is streamlined to provide a simple plug-and-play architecture, removing engineering obstacles and allowing the acceleration of the design, development, and launch of platforms to keep pace with the rapid rate of innovation.
The driver supports [all SBG Systems products](https://www.sbg-systems.com/products/).
In particular the following systems are recommended:
- **Pulse:** Recommended for fixed-wing systems without hovering, where static heading is not necessary.
- **Ellipse:** Recommended for multicopter systems where hovering and low dynamics requires the use of static heading.
## Where to Buy
SBG Systems solutions are available directly from [MySBG](https://my.sbg-systems.com) (FR) or through their Global Sales Representatives. For more information on their solutions or for international orders, please contact contact@sbg-systems.com.
## Hardware Setup
### Wiring
Connect any unused flight controller serial interface, such as a spare `GPS` or `TELEM` port, to the SBG Systems product MAIN port (required by PX4).
### Mounting
The SBG Systems product sensor can be mounted in any orientation, in any position on the vehicle, without regard to center of gravity.
All SBG Systems product sensors default to a coordinate system of x-forward, y-right, and z-down, making the default mounting as connector-back, base down.
This can be changed to any rigid rotation using the sbgECom Reference Frame Rotation register.
If using a GNSS-enabled product, the GNSS antenna must be mounted rigidly with respect to the inertial sensor and with an unobstructed sky view. If using a dual-GNSS-enabled product (Ellipse-D), the secondary antenna must be mounted rigidly with respect to the primary antenna and the inertial sensor with an unobstructed sky view.
For more mounting and configuration requirements and recommendations, see the relevant [SBG SUPPORT CENTER](https://support.sbg-systems.com/sc).
## Firmware Configuration
### PX4 Configuration
To use the sbgECom driver:
1. Include the module in firmware in the [kconfig board configuration](../hardware/porting_guide_config.md#px4-board-configuration-kconfig) by setting the kconfig variables: `CONFIG_DRIVERS_INS_SBGECOM` or `CONFIG_COMMON_INS`.
2. [Set the parameter](../advanced_config/parameters.md) [SENS_SBG_CFG](../advanced_config/parameter_reference.md#SENS_SBG_CFG) to the hardware port connected to the SBG Systems product (for more information see [Serial Port Configuration](../peripherals/serial_configuration.md)).
::: warning
Disable or change port of other sensors that are using the same one, for example [GPS_1_CONFIG](../advanced_config/parameter_reference.md#GPS_1_CONFIG) if using GPS1 port.
:::
3. Set [SBG_BAUDRATE](../advanced_config/parameter_reference.md#SBG_BAUDRATE) to the desired default baudrate value.
4. Allow the sbgECom driver to initialize by restarting PX4.
5. Configure driver to provide IMU data, GNSS data and INS :
1. Set [SBG_MODE](../advanced_config/parameter_reference.md#SBG_MODE) to the desired mode.
2. Make sensor module select sensors by enabling [SENS_IMU_MODE](../advanced_config/parameter_reference.md#SENS_IMU_MODE).
3. Prioritize SBG Systems sensors using [CAL_GYROn_PRIO](../advanced_config/parameter_reference.md#CAL_GYRO0_PRIO), [CAL_ACCn_PRIO](../advanced_config/parameter_reference.md#CAL_ACC0_PRIO), [CAL_BAROn_PRIO](../advanced_config/parameter_reference.md#CAL_BARO0_PRIO), [CAL_MAGn_PRIO](../advanced_config/parameter_reference.md#CAL_MAG0_PRIO), where _n_ is the instance number of the IMU component (0, 1, etc.).
::: tip
In most cases the external IMU (SBG) is the highest-numbered.
You can get a list of the IMU components available using [`uorb top -1`](../middleware/uorb.md#uorb-top-command), you can differentiate between them using the [`listener`](../modules/modules_command.md#listener) command and looking through the data, or just the rates.
Alternatively, you can check [CAL_GYROn_ID](../advanced_config/parameter_reference.md#CAL_GYRO0_ID) to see the device id.
The priority is 0-255, where 0 is entirely disabled and 255 is highest priority.
:::
::: warning
When configuring both SBG Systems and Pixhawk sensors to have non-zero priority, if the selected sensor is errored (timeout), it can change during operation without being notified.
In this case, MAVLink messages will be updated with the newly selected sensor.
If you don't want to have this fallback mechanism, you must disable unwanted sensors.
:::
4. If using the sbgECom as an INS, disable EKF2 using [EKF2_EN](../advanced_config/parameter_reference.md#EKF2_EN).
6. Restart PX4.
Once enabled, the module will be detected on boot.
IMU data should be published at 200Hz.
## SBG Systems Configuration
All High Performance and Ellipse 3.0 and higher SBG Systems INS can be configured directly from PX4 firmware:
1. Enable [SBG_CONFIGURATION_EN](../advanced_config/parameter_reference.md#SBG_CONFIGURATION_EN)
2. Provide a JSON file `sbg_settings.json` containing SBG Systems INS settings to be applied in your PX4 board `extras` directory (ex: `boards/px4/fmu-v5/extras`). The settings JSON file will be installed in `/etc/extras/sbg_settings.json` on the board.
::: tip
The settings can be retrieved using [sbgEComAPI](https://github.com/SBG-Systems/sbgECom/tree/main/tools/sbgEComApi) or [sbgInsRestApi](https://developer.sbg-systems.com/sbgInsRestApi/1.3/#tag/Settings) and then modified as a JSON file.
:::
::: tip
The settings file can be provided in the SD card in q`/fs/microsd/etc/extras/sbg_settings.json` to avoid rebuilding a new firmware to change JSON settings file.
:::
3. For testing purpose, it's also possible to modify SBG Systems INS settings on the fly:
- By passing a JSON file path as argument when starting sbgecom driver (ex: `sbgecom start -f /fs/microsd/new_sbg_settings.json`)
- By passing a JSON string as argument when starting sbgecom driver: (ex: `sbgecom start -s {"output":{"comA":{"messages":{"airData":"onChange"}}}}`)
For older Ellipse SBG Systems INS or to configure any SBG Systems INS directly, all commands and registers can be found in the [SBG SUPPORT CENTER](https://support.sbg-systems.com/sc).
::: warning
If the baudrate of the serial port on the INS product (used to communicate with PX4) is changed, the parameter [SBG_BAUDRATE](../advanced_config/parameter_reference.md#SBG_BAUDRATE) must be changed to match.
:::
## Published Data
Upon initialization, the driver should print the following information to console (printed using `PX4_INFO`)
- Unit model number
- Unit hardware version
- Unit serial number
- Unit firmware number
This should be accessible using the [`dmesg`](../modules/modules_system.md#dmesg) command.
The sbgECom driver always publishes the unit's data to the following uORB topics:
- [sensor_accel](../msg_docs/SensorAccel.md)
- [sensor_gyro](../msg_docs/SensorGyro.md)
- [sensor_mag](../msg_docs/SensorMag.md)
if configured as a GNSS, publishes:
- [sensor_gps](../msg_docs/SensorGps.md)
and, if configured as an INS, publishes:
- [estimator_status](../msg_docs/EstimatorStatus.md)
- [vehicle_local_position](../msg_docs/VehicleLocalPosition.md)
- [vehicle_global_positon](../msg_docs/VehicleGlobalPosition.md)
- [vehicle_attitude](../msg_docs/VehicleAttitude.md)
::: tip
Published topics can be viewed using the `listener` command.
:::
## Hardware Specifications
- [Product Briefs](https://www.sbg-systems.com/products/)
- [Datasheets](https://www.sbg-systems.com/contact/#products)
+37
View File
@@ -316,6 +316,43 @@ 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
The dynamic models for the various vehicles are:
-6
View File
@@ -3,12 +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.
It can be purchased as a standalone unit or as part of a factory-assembled smart-battery.
::: 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)
+2
View File
@@ -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)
+61 -33
View File
@@ -1,10 +1,8 @@
<!-- GENERATED CONTENT: DO NOT EDIT -->
- [Introduction](/index.md)
- [기본 개념](/getting_started/px4_basic_concepts.md)
- [멀티콥터](/frames_multicopter/index.md)
- [Features](/features_mc/index.md)
- [비행 모드 ](/flight_modes_mc/index.md)
- [위치 모드 (멀티콥터)](/flight_modes_mc/position.md)
@@ -37,7 +35,7 @@
- [정압 축적](/advanced_config/static_pressure_buildup.md)
- [Flying (Basics)](/flying/basic_flying_mc.md)
- [완성 기체](/complete_vehicles_mc/index.md)
- [ModalAI Starling](/complete_vehicles_mc/modalai_starling.md)
- [ModalAI Starling (PX4 Dev Kit)](/complete_vehicles_mc/modalai_starling.md)
- [PX4 비전 키트](/complete_vehicles_mc/px4_vision_kit.md)
- [마인드레이서 BNF & RTF](/complete_vehicles_mc/mindracer_BNF_RTF.md)
- [마인드레이서 210](/complete_vehicles_mc/mindracer210.md)
@@ -58,7 +56,6 @@
- [DJI F450 (CUAV v5 nano)](/frames_multicopter/dji_f450_cuav_5nano.md)
- [Planes (Fixed-Wing)](/frames_plane/index.md)
- [Assembly](/assembly/assembly_fw.md)
- [Config/Tuning](/config_fw/index.md)
- [Auto-tune](/config/autotune_fw.md)
@@ -86,7 +83,6 @@
- [Wing Wing Z84 (Pixracer)](/frames_plane/wing_wing_z84.md)
- [수직이착륙기(VTOL)](/frames_vtol/index.md)
- [Assembly](/assembly/assembly_vtol.md)
- [VTOL 설정 및 튜닝](/config_vtol/index.md)
- [Auto-tune](/config/autotune_vtol.md)
@@ -111,7 +107,6 @@
- [Complete Vehicles](/complete_vehicles_vtol/index.md)
- [Operations](/config/operations.md)
- [안전 설정](/config/safety_intro.md)
- [Safety Configuration (Failsafes)](/config/safety.md)
- [Failsafe Simulation](/config/safety_simulation.md)
@@ -132,7 +127,6 @@
- [QGroundControl Flight-Readiness Status](/flying/pre_flight_checks.md)
- [Hardware Selection & Setup](/hardware/drone_parts.md)
- [비행 컨트롤러 (오토파일럿)](/flight_controller/index.md)
- [Flight Controller Selection](/getting_started/flight_controller_selection.md)
- [Pixhawk Series](/flight_controller/pixhawk_series.md)
@@ -169,13 +163,12 @@
- [ARK Electronics ARKV6X](/flight_controller/ark_v6x.md)
- [ARK FPV Flight Controller](/flight_controller/ark_fpv.md)
- [ARK Pi6X Flow Flight Controller](/flight_controller/ark_pi6x.md)
- [CUAV X7](/flight_controller/cuav_x7.md)
- [CUAV Nora](/flight_controller/cuav_nora.md)
- [CUAV V5+ (FMUv5)](/flight_controller/cuav_v5_plus.md)
- [Wiring Quickstart](/assembly/quick_start_cuav_v5_plus.md)
- [CUAV V5 nano (FMUv5)](/flight_controller/cuav_v5_nano.md)
- [CUAV V5 nano 배선 퀵 스타트](/assembly/quick_start_cuav_v5_nano.md)
- [CUAV Pixhack v3 (FMUv3)](/flight_controller/pixhack_v3.md)
- [CUAV X25 EVO](/flight_controller/cuav_x25-evo.md)
- [CubePilot Cube Orange+ (CubePilot)](/flight_controller/cubepilot_cube_orangeplus.md)
- [CubePilot Cube Orange (CubePilot)](/flight_controller/cubepilot_cube_orange.md)
- [CubePilot Cube Yellow (CubePilot)](/flight_controller/cubepilot_cube_yellow.md)
@@ -188,11 +181,8 @@
- [Wiring Quickstart](/assembly/quick_start_durandal.md)
- [Holybro Pix32 v5](/flight_controller/holybro_pix32_v5.md)
- [Wiring Quickstart](/assembly/quick_start_holybro_pix32_v5.md)
- [ModalAI Flight Core v1](/flight_controller/modalai_fc_v1.md)
- [ModalAI VOXL Flight](/flight_controller/modalai_voxl_flight.md)
- [ModalAI VOXL 2](/flight_controller/modalai_voxl_2.md)
- [mRobotics-X2.1 (FMUv2)](/flight_controller/mro_x2.1.md)
- [mRo Control Zero F7)](/flight_controller/mro_control_zero_f7.md)
- [mRo Control Zero F7](/flight_controller/mro_control_zero_f7.md)
- [Sky-Drones AIRLink](/flight_controller/airlink.md)
- [SPRacing SPRacingH7EXTREME](/flight_controller/spracingh7extreme.md)
- [ThePeach FCC-K1](/flight_controller/thepeach_k1.md)
@@ -206,18 +196,20 @@
- [Discontinued Autopilots/Vehicles](/flight_controller/autopilot_discontinued.md)
- [Drotek Dropix (FMUv2)](/flight_controller/dropix.md)
- [Omnibus F4 SD](/flight_controller/omnibus_f4_sd.md)
- [BetaFPV Beta75X 2S Brushless Whoop](/complete_vehicles_mc/betafpv_beta75x.md)
- [Bitcraze Crazyflie 2.0 ](/complete_vehicles_mc/crazyflie2.md)
- [Aerotenna OcPoC-Zynq Mini](/flight_controller/ocpoc_zynq.md)
- [CUAV X7](/flight_controller/cuav_x7.md)
- [CUAV v5](/flight_controller/cuav_v5.md)
- [CUAV Pixhack v3 (FMUv3)](/flight_controller/pixhack_v3.md)
- [Holybro Kakute F7](/flight_controller/kakutef7.md)
- [Holybro Pixfalcon](/flight_controller/pixfalcon.md)
- [Holybro pix32 (FMUv2)](/flight_controller/holybro_pix32.md)
- [ModalAI Flight Core v1](/flight_controller/modalai_fc_v1.md)
- [ModalAI VOXL Flight](/flight_controller/modalai_voxl_flight.md)
- [mRo X2.1 (FMUv2)](/flight_controller/mro_x2.1.md)
- [mRo AUAV-X2](/flight_controller/auav_x2.md)
- [NXP RDDRONE-FMUK66 FMU](/flight_controller/nxp_rddrone_fmuk66.md)
- [3DR Pixhawk 1](/flight_controller/pixhawk.md)
- [Snapdragon Flight](/flight_controller/snapdragon_flight.md)
- [Intel® Aero RTF Drone](/complete_vehicles_mc/intel_aero.md)
- [Pixhawk Autopilot Bus (PAB) & Carriers](/flight_controller/pixhawk_autopilot_bus.md)
- [ARK Electronics Pixhawk Autopilot Bus Carrier](/flight_controller/ark_pab.md)
- [Mounting the Flight Controller](/assembly/mount_and_orient_controller.md)
@@ -229,7 +221,9 @@
- [Bootloader Update](/advanced_config/bootloader_update.md)
- [Bootloader Update FMUv6X-RT via USB](/advanced_config/bootloader_update_v6xrt.md)
- [Bootloader Flashing onto Betaflight Systems](/advanced_config/bootloader_update_from_betaflight.md)
- [Airframe Selection](/config/airframe.md)
- [센서](/sensor/index.md)
- [가속도계](/sensor/accelerometer.md)
- [Calibration](/config/accelerometer.md)
@@ -241,6 +235,7 @@
- [나침반 전력 보정](/advanced_config/compass_power_compensation.md)
- [항속 센서](/sensor/airspeed.md)
- [Calibration](/config/airspeed.md)
- [Airspeed Validation](/advanced_config/airspeed_validation.md)
- [TFSlot Airspeed Sensor](/sensor/airspeed_tfslot.md)
- [Barometers](/sensor/barometer.md)
- [거리 센서](/sensor/rangefinders.md)
@@ -272,6 +267,7 @@
- [CUAV C-RTK](/gps_compass/rtk_gps_cuav_c-rtk.md)
- [CUAV C-RTK2 PPK/RTK GNSS](/gps_compass/rtk_gps_cuav_c-rtk2.md)
- [CUAV C-RTK 9Ps](/gps_compass/rtk_gps_cuav_c-rtk-9ps.md)
- [DATAGNSS NANO HRTK GNSS](/gps_compass/rtk_gps_datagnss_nano_hrtk.md)
- [DATAGNSS GEM1305 RTK GNSS](/gps_compass/rtk_gps_gem1305.md)
- [Femtones MINI2 Receiver](/gps_compass/rtk_gps_fem_mini2.md)
- [Freefly RTK GPS](/gps_compass/rtk_gps_freefly.md)
@@ -287,6 +283,7 @@
- [Trimble MB-Two](/gps_compass/rtk_gps_trimble_mb_two.md)
- [CubePilot Here+ (Discontined)](/gps_compass/rtk_gps_hex_hereplus.md)
- [INS (Inertial Navigation/GNSS)](/sensor/inertial_navigation_systems.md)
- [InertialLabs](/sensor/inertiallabs.md)
- [VectorNav](/sensor/vectornav.md)
- [광류 센서](/sensor/optical_flow.md)
- [ARK Flow](/dronecan/ark_flow.md)
@@ -297,6 +294,7 @@
- [ThunderFly TFRPM01 타코미터 센서](/sensor/thunderfly_tachometer.md)
- [IMU Factory Calibration](/advanced_config/imu_factory_calibration.md)
- [센서 온도 보정](/advanced_config/sensor_thermal_calibration.md)
- [액츄에이터](/actuators/index.md)
- [ADSB/FLARM (트래픽 회피)](/config/actuators.md)
- [ESC 보정](/advanced_config/esc_calibration.md)
@@ -308,19 +306,22 @@
- [Zubax Telega](/dronecan/zubax_telega.md)
- [PX4 Sapog ESC Firmware](/dronecan/sapog.md)
- [Holybro Kotleta](/dronecan/holybro_kotleta.md)
- [Zubax Orel](/dronecan/zubax_orel.md)
- [Vertiq](/peripherals/vertiq.md)
- [VESC](/peripherals/vesc.md)
- [Radio Control (RC)](/getting_started/rc_transmitter_receiver.md)
- [무선 조종기 설정](/config/radio.md)
- [비행 모드](/config/flight_mode.md)
- [Joysticks](/config/joystick.md)
- [Data Links](/data_links/index.md)
- [MAVLink 텔레메트리(OSD/GCS) ](/peripherals/mavlink_peripherals.md)
- [텔레메트리 무선통신](/telemetry/index.md)
- [SiK 무선통신](/telemetry/sik_radio.md)
- [RFD900 (SiK) 텔레메트리](/telemetry/rfd900_telemetry.md)
- [ThunderFly TFSIK01 Telemetry Radio](/telemetry/tfsik_telemetry.md)
- [HolyBro (SIK) Telemetry Radio](/telemetry/holybro_sik_radio.md)
- [Wifi 텔레메트리](/telemetry/telemetry_wifi.md)
- [ESP8266 WiFi 모듈](/telemetry/esp8266_wifi_module.md)
@@ -338,6 +339,7 @@
- [TBS Crossfire (CRSF) Telemetry](/telemetry/crsf_telemetry.md)
- [Satellite Comms (Iridium/RockBlock)](/advanced_features/satcom_roadblock.md)
- [Power Systems](/power_systems/index.md)
- [Battery Estimation Tuning](/config/battery.md)
- [Battery Chemistry Overview](/power_systems/battery_chemistry.md)
@@ -356,6 +358,7 @@
- [Sky-Drones SmartAP PDB](/power_module/sky-drones_smartap-pdb.md)
- [Smart/MAVLink Batteries](/smart_batteries/index.md)
- [Rotoye Batmon 배터리 스마트 키트](/smart_batteries/rotoye_batmon.md)
- [탑재중량과 카메라](/payloads/index.md)
- [Use Cases](/payloads/use_cases.md)
- [Package Delivery Mission](/flying/package_delivery_mission.md)
@@ -367,19 +370,25 @@
- [Gimbal \(Mount\) Configuration](/advanced/gimbal_control.md)
- [Grippers](/peripherals/gripper.md)
- [Servo Gripper](/peripherals/gripper_servo.md)
- [Peripherals](/peripherals/index.md)
- [ADSB/FLARM/UTM (Traffic Avoidance)](/peripherals/adsb_flarm.md)
- [낙하산](/peripherals/parachute.md)
- [Remote ID](/peripherals/remote_id.md)
- [I2C Peripherals](/sensor_bus/i2c_general.md)
- [I2C bus accelerators](/sensor_bus/i2c_general.md#i2c-bus-accelerators)
- [TFI2CADT01 I2C address translator](/sensor_bus/translator_tfi2cadt.md)
- [CAN Peripherals](/can/index.md)
- [DroneCAN Peripherals](/dronecan/index.md)
- [PX4 DroneCAN Firmware](/dronecan/px4_cannode_fw.md)
- [ARK CANnode](/dronecan/ark_cannode.md)
- [RaccoonLab CAN Nodes](/dronecan/raccoonlab_nodes.md)
- [배선 개요](/assembly/cable_wiring.md)
- [보조 컴퓨터](/companion_computer/index.md)
- [Pixhawk + Companion Setup](/companion_computer/pixhawk_companion.md)
- [RPi Pixhawk Companion](/companion_computer/pixhawk_rpi.md)
@@ -395,16 +404,19 @@
- [리얼센스 T265 트래킹 카메라 (VIO)](/camera/camera_intel_realsense_t265_vio.md)
- [동영상 스트리밍](/companion_computer/video_streaming.md)
- [Video Streaming using WFB-ng Wifi (Long range)](/companion_computer/video_streaming_wfb_ng_wifi.md)
- [직렬 포트 설정 ](/peripherals/serial_configuration.md)
- [PX4 이더넷 설정](/advanced_config/ethernet_setup.md)
- [Standard Configuration](/config/index.md)
- [고급 설정](/advanced_config/index.md)
- [Using PX4's Navigation Filter (EKF2)](/advanced_config/tuning_the_ecl_ekf.md)
- [매개변수 검색 및 수정](/advanced_config/parameters.md)
- [전체 매개변수 정의서](/advanced_config/parameter_reference.md)
- [Other Vehicles](/airframes/index.md)
- [Airships (experimental)](/frames_airship/index.md)
- [Autogyros (experimental)](/frames_autogyro/index.md)
- [선더플라이 Auto-G2 (Holybro pix32)](/frames_autogyro/thunderfly_auto_g2.md)
@@ -412,17 +424,17 @@
- [Helicopter (experimental)](/frames_helicopter/index.md)
- [Helicopter Config/Tuning](/config_heli/index.md)
- [Rovers (experimental)](/frames_rover/index.md)
- [Ackermann Rovers](/frames_rover/ackermann.md)
- [Drive Modes](/flight_modes_rover/ackermann.md)
- [Configuration/Tuning](/config_rover/ackermann.md)
- [Differential Rovers](/frames_rover/differential.md)
- [Drive Modes](/flight_modes_rover/differential.md)
- [Configuration/Tuning](/config_rover/differential.md)
- [Aion Robotics R1](/frames_rover/aion_r1.md)
- [Mecanum Rovers](/frames_rover/mecanum.md)
- [Drive Modes](/flight_modes_rover/mecanum.md)
- [Configuration/Tuning](/config_rover/mecanum.md)
- [(Deprecated) Rover Position Control](/frames_rover/rover_position_control.md)
- [Drive Modes](/flight_modes_rover/index.md)
- [Manual](/flight_modes_rover/manual.md)
- [Auto](/flight_modes_rover/auto.md)
- [Configuration/Tuning](/config_rover/index.md)
- [Basic Setup](/config_rover/basic_setup.md)
- [Rate Tuning](/config_rover/rate_tuning.md)
- [Attitude Tuning](/config_rover/attitude_tuning.md)
- [Velocity Tuning](/config_rover/velocity_tuning.md)
- [Position Tuning](/config_rover/position_tuning.md)
- [Complete Vehicles](/complete_vehicles_rover/index.md)
- [Aion Robotics R1](/complete_vehicles_rover/aion_r1.md)
- [Submarines (experimental)](/frames_sub/index.md)
- [블루로브2](/frames_sub/bluerov2.md)
- [기체 프레임 정의서](/airframes/airframe_reference.md)
@@ -534,6 +546,7 @@
- [Airspeed](/msg_docs/Airspeed.md)
- [AirspeedWind](/msg_docs/AirspeedWind.md)
- [AutotuneAttitudeControlStatus](/msg_docs/AutotuneAttitudeControlStatus.md)
- [BatteryInfo](/msg_docs/BatteryInfo.md)
- [ButtonEvent](/msg_docs/ButtonEvent.md)
- [CameraCapture](/msg_docs/CameraCapture.md)
- [CameraStatus](/msg_docs/CameraStatus.md)
@@ -552,6 +565,7 @@
- [DifferentialPressure](/msg_docs/DifferentialPressure.md)
- [DistanceSensor](/msg_docs/DistanceSensor.md)
- [DistanceSensorModeChangeRequest](/msg_docs/DistanceSensorModeChangeRequest.md)
- [DronecanNodeStatus](/msg_docs/DronecanNodeStatus.md)
- [Ekf2Timestamps](/msg_docs/Ekf2Timestamps.md)
- [EscReport](/msg_docs/EscReport.md)
- [EscStatus](/msg_docs/EscStatus.md)
@@ -626,6 +640,7 @@
- [MountOrientation](/msg_docs/MountOrientation.md)
- [NavigatorMissionItem](/msg_docs/NavigatorMissionItem.md)
- [NavigatorStatus](/msg_docs/NavigatorStatus.md)
- [NeuralControl](/msg_docs/NeuralControl.md)
- [NormalizedUnsignedSetpoint](/msg_docs/NormalizedUnsignedSetpoint.md)
- [ObstacleDistance](/msg_docs/ObstacleDistance.md)
- [OffboardControlMode](/msg_docs/OffboardControlMode.md)
@@ -724,7 +739,12 @@
- [Wind](/msg_docs/Wind.md)
- [YawEstimatorStatus](/msg_docs/YawEstimatorStatus.md)
- [AirspeedValidatedV0](/msg_docs/AirspeedValidatedV0.md)
- [ArmingCheckReplyV0](/msg_docs/ArmingCheckReplyV0.md)
- [BatteryStatusV0](/msg_docs/BatteryStatusV0.md)
- [EventV0](/msg_docs/EventV0.md)
- [HomePositionV0](/msg_docs/HomePositionV0.md)
- [VehicleAttitudeSetpointV0](/msg_docs/VehicleAttitudeSetpointV0.md)
- [VehicleLocalPositionV0](/msg_docs/VehicleLocalPositionV0.md)
- [VehicleStatusV0](/msg_docs/VehicleStatusV0.md)
- [MAVLink Messaging](/mavlink/index.md)
- [Adding Messages](/mavlink/adding_messages.md)
@@ -734,6 +754,7 @@
- [Protocols/Microservices](/mavlink/protocols.md)
- [Standard Modes Protocol](/mavlink/standard_modes.md)
- [uXRCE-DDS (PX4-ROS 2/DDS Bridge)](/middleware/uxrce_dds.md)
- [UORB Bridged to ROS 2](/middleware/dds_topics.md)
- [모듈과 명령어](/modules/modules_main.md)
- [자동 튜닝](/modules/modules_autotune.md)
- [명령어](/modules/modules_command.md)
@@ -763,7 +784,7 @@
- [Debugging with GDB](/debug/gdb_debugging.md)
- [SWD Debug Port](/debug/swd_debug.md)
- [JLink Probe](/debug/probe_jlink.md)
- [Black Magic/DroneCode Probe](/debug/probe_bmp.md)
- [Black Magic/Zubax BugFace BF1 Probe](/debug/probe_bmp.md)
- [STLink Probe](/debug/probe_stlink.md)
- [MCU-Link Probe](/debug/probe_mculink.md)
- [Hardfault Debugging](/debug/gdb_hardfault.md)
@@ -787,6 +808,9 @@
- [Camera Integration/Architecture](/camera/camera_architecture.md)
- [컴퓨터 비전](/advanced/computer_vision.md)
- [Motion Capture (VICON, Optitrack, NOKOV)](/tutorials/motion-capture.md)
- [Neural Networks](/advanced/neural_networks.md)
- [Neural Network Module Utilities](/advanced/nn_module_utilities.md)
- [TensorFlow Lite Micro (TFLM)](/advanced/tflm.md)
- [Intel RealSense R200용 드라이버 설치](/advanced/realsense_intel_driver.md)
- [상태 추정기 전환](/advanced/switching_state_estimators.md)
- [트리 외부 모듈](/advanced/out_of_tree_modules.md)
@@ -818,8 +842,12 @@
- [시험 MC_02 - 완전 자동](/test_cards/mc_02_full_autonomous.md)
- [시험 MC_03 - 자동 / 수동 혼합](/test_cards/mc_03_auto_manual_mix.md)
- [시험 MC_04 - 안전 장치 시험](/test_cards/mc_04_failsafe_testing.md)
- [시험 MC_05 - 실내 비행 (수동 모드)](/test_cards/mc_05_indoor_flight_manual_modes.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)
- [Integration Testing](/test_and_ci/integration_testing.md)
- [MAVSDK 통합 테스트](/test_and_ci/integration_testing_mavsdk.md)
@@ -862,8 +890,8 @@
- [출시](/releases/index.md)
- [main (alpha)](/releases/main.md)
- [1.16 (release candidate)](/releases/1.16.md)
- [1.15 (stable)](/releases/1.15.md)
- [1.16 (stable)](/releases/1.16.md)
- [1.15](/releases/1.15.md)
- [1.14](/releases/1.14.md)
- [1.13](/releases/1.13.md)
- [1.12](/releases/1.12.md)
+29 -2
View File
@@ -95,6 +95,8 @@ This is documented below.
The best way to customize the system startup is to introduce a [new frame configuration](../dev_airframes/adding_a_new_frame.md).
The frame configuration file can be included in the firmware or on an SD Card.
#### Dynamic customization
If you only need to "tweak" the existing configuration, such as starting one more application or setting the value of a few parameters, you can specify these by creating two files in the `/etc/` directory of the SD Card:
- [/etc/config.txt](#customizing-the-configuration-config-txt): modify parameter values
@@ -111,7 +113,7 @@ Windows에서 편집하는 경우 적절한 편집기를 사용하여야 합니
These files are referenced in PX4 code as `/fs/microsd/etc/config.txt` and `/fs/microsd/etc/extras.txt`, where the root folder of the microsd card is identified by the path `/fs/microsd`.
:::
#### 구성 사용자 정의(config.txt)
##### 구성 사용자 정의(config.txt)
The `config.txt` file can be used to modify parameters.
It is loaded after the main system has been configured and _before_ it is booted.
@@ -123,7 +125,7 @@ param set-default PWM_MAIN_DIS3 1000
param set-default PWM_MAIN_MIN3 1120
```
#### Starting Additional Applications (extras.txt)
##### Starting Additional Applications (extras.txt)
The `extras.txt` can be used to start additional applications after the main system boot.
일반적으로, 페이로드 콘트롤러나 유사한 선택적 사용자 지정 구성 요소들입니다.
@@ -150,3 +152,28 @@ Calling an unknown command in system boot files may result in boot failure.
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/<vendor>/<board>/init` that will run during board startup. 예:
```sh
# File: boards/<vendor>/<board>/init/rc.additional
param set-default <param> <value>
```
- Add a new board variant in `boards/<vendor>/<board>/<variant>.px4board` that includes the additional script. 예:
```sh
# File: boards/<vendor>/<board>/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 <target>_var
```
+56 -11
View File
@@ -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.
<a id="RO_ACCEL_LIM_CONSIDERATIONS"></a>
<a id="RO_ACCEL_LIM_CONSIDERATIONS"></a>
:::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).
## Parameter Overview
@@ -118,6 +159,8 @@ You can now continue the configuration process with [rate tuning](rate_tuning.md
| <a id="RO_MAX_THR_SPEED"></a>[RO_MAX_THR_SPEED](../advanced_config/parameter_reference.md#RO_MAX_THR_SPEED) | Speed the rover drives at maximum throttle | $m/s$ |
| <a id="RO_ACCEL_LIM"></a>[RO_ACCEL_LIM](../advanced_config/parameter_reference.md#RO_ACCEL_LIM) | (Optional) Maximum allowed acceleration | $m/s^2$ |
| <a id="RO_DECEL_LIM"></a>[RO_DECEL_LIM](../advanced_config/parameter_reference.md#RO_DECEL_LIM) | (Optional) Maximum allowed deceleration | $m/s^2$ |
| <a id="RO_YAW_EXPO"></a>[RO_YAW_EXPO](../advanced_config/parameter_reference.md#RO_YAW_EXPO) | (Optional) Yaw rate expo factor | $-$ |
| <a id="RO_YAW_SUPEXPO"></a>[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 |
| ----------------------------------------------------------------------------------------------------------------------------------------------- | ----------- | ---- |
| <a id="RD_WHEEL_TRACK"></a>[RD_WHEEL_TRACK](../advanced_config/parameter_reference.md#RD_WHEEL_TRACK) | Wheel track | m |
| 매개변수 | 설명 | Unit |
| ----------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------ | ---- |
| <a id="RD_WHEEL_TRACK"></a>[RD_WHEEL_TRACK](../advanced_config/parameter_reference.md#RD_WHEEL_TRACK) | Wheel track | $m$ |
| <a id="RD_YAW_STK_GAIN"></a>[RD_YAW_STK_GAIN](../advanced_config/parameter_reference.md#RD_YAW_STK_GAIN) | (Optional) Yaw stick gain for Manual mode | $-$ |
### Mecanum Specific
| 매개변수 | 설명 | Unit |
| ----------------------------------------------------------------------------------------------------------------------------------------------- | ----------- | ---- |
| <a id="RM_WHEEL_TRACK"></a>[RM_WHEEL_TRACK](../advanced_config/parameter_reference.md#RM_WHEEL_TRACK) | Wheel track | m |
| 매개변수 | 설명 | Unit |
| ----------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------ | ---- |
| <a id="RM_WHEEL_TRACK"></a>[RM_WHEEL_TRACK](../advanced_config/parameter_reference.md#RM_WHEEL_TRACK) | Wheel track | $m$ |
| <a id="RM_YAW_STK_GAIN"></a>[RM_YAW_STK_GAIN](../advanced_config/parameter_reference.md#RM_YAW_STK_GAIN) | (Optional) Yaw stick gain for Manual mode | $-$ |
+2 -2
View File
@@ -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).
<a id="RA_SPEED_TUNING"></a>
<a id="RA_SPEED_TUNING"></a>
::: 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.
+7 -6
View File
@@ -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) | Logging Mode. Defines when logging starts and stops.<br />- `-1`: Logging disabled.<br />- `0`: Log when armed until disarm (default).<br />- `1`: Log from boot until disarm.<br />- `2`: Log from boot until shutdown.<br />- `3`: Log based on the [AUX1 RC channel](../advanced_config/parameter_reference.md#RC_MAP_AUX1).<br />- `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".<br>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) | Logging Mode. Defines when logging starts and stops.<br />- `0`: Log when armed until disarm (default).<br />- `1`: Log from boot until disarm.<br />- `2`: Log from boot until shutdown.<br />- `3`: Log based on the [AUX1 RC channel](../advanced_config/parameter_reference.md#RC_MAP_AUX1).<br />- `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.<br />- bit `0`: SD card logging.</br >- 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".<br>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. |
Useful settings for specific cases:
- 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)
### Logger module
+21 -2
View File
@@ -2,13 +2,32 @@
PX4 typically runs on flight controllers that include an IMU, such as the Pixhawk series, and fuse the sensor data along with GNSS information in the EKF2 estimator to determine vehicle attitude, heading, position, and velocity.
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.
Systems that can be used in this way include:
## Supported INS Systems
INS systems that can be used as a replacement for EKF2 in PX4:
- [InertialLabs](../sensor/inertiallabs.md)
- [VectorNav](../sensor/vectornav.md): IMU/AHRS, GNSS/INS, Dual GNSS/INS systems that can be used as an external INS or as a source of raw sensor data.
## 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.
## Glossary
### Inertial Measurement Unit (IMU)
+93 -55
View File
@@ -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. Open QGroundControl and wait for the flight controller too boot and connect.
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 autopilot will then reboot.
The `sih` module is started on reboot, and the vehicle should be displayed on the ground control station map.
@@ -172,19 +172,19 @@ To display the simulated vehicle:
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
```
where the flags are:
where the flags are:
- `-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.
If this flag is not present a quadrotor will be displayed by default.
- `-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.
If this flag is not present a quadrotor will be displayed by default.
4. After few seconds, _QGroundControl_ can be opened again.
@@ -201,41 +201,41 @@ To run SIH as SITL:
1. Install the [PX4 Development toolchain](../dev_setup/dev_env.md).
2. Run the appropriate make command for each vehicle type (at the root of the PX4-Autopilot repository):
- 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
```
- 표준 VTOL
- 표준 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
```
### Change Simulation Speed
@@ -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
The dynamic models for the various vehicles are:
-5
View File
@@ -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)
+2
View File
@@ -28,3 +28,5 @@ These are run by the test team as part of release testing, and for more signific
- [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)
+11 -1
View File
@@ -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
- 위에 언급한 어떤 비행 모드에서도 떨림이 나타나서는 안됨
- 지면에 착륙시, 콥터가 지면에서 튀면 안됨
+52
View File
@@ -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
&nbsp;&nbsp;&nbsp;&nbsp;❏ Vertical position should hold current value with stick centered
&nbsp;&nbsp;&nbsp;&nbsp;❏ Pitch/Roll/Yaw response 1:1
&nbsp;&nbsp;&nbsp;&nbsp;❏ Throttle response set to climb/descent rate
❏ Position flight mode
&nbsp;&nbsp;&nbsp;&nbsp;❏ Horizontal position should hold current value with stick centered
&nbsp;&nbsp;&nbsp;&nbsp;❏ Vertical position should hold current value with stick centered
&nbsp;&nbsp;&nbsp;&nbsp;❏ Throttle response set to climb/descent rate
&nbsp;&nbsp;&nbsp;&nbsp;❏ 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
- 위에 언급한 어떤 비행 모드에서도 떨림이 나타나서는 안됨
- 지면에 착륙시, 콥터가 지면에서 튀면 안됨
+46
View File
@@ -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
&nbsp;&nbsp;&nbsp;&nbsp;❏ Takeoff in stabilized flight mode to ensure correct motor spin
&nbsp;&nbsp;&nbsp;&nbsp;❏ Pitch/Roll/Yaw response 1:1
&nbsp;&nbsp;&nbsp;&nbsp;❏ Throttle response 1:1
❏ Position flight mode
&nbsp;&nbsp;&nbsp;&nbsp;❏ Horizontal position should hold current value with stick centered
&nbsp;&nbsp;&nbsp;&nbsp;❏ Vertical position should hold current value with stick centered
&nbsp;&nbsp;&nbsp;&nbsp;❏ Throttle response set to climb/descent rate
&nbsp;&nbsp;&nbsp;&nbsp;❏ 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)
+2
View File
@@ -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)
+61 -33
View File
@@ -1,10 +1,8 @@
<!-- GENERATED CONTENT: DO NOT EDIT -->
- [Введення](/index.md)
- [Основні поняття](/getting_started/px4_basic_concepts.md)
- [Мультикоптери](/frames_multicopter/index.md)
- [Функції](/features_mc/index.md)
- [Режим польоту](/flight_modes_mc/index.md)
- [Position Mode (MC)](/flight_modes_mc/position.md)
@@ -37,7 +35,7 @@
- [Static Pressure Buildup](/advanced_config/static_pressure_buildup.md)
- [Flying (Basics)](/flying/basic_flying_mc.md)
- [Complete Vehicles](/complete_vehicles_mc/index.md)
- [ModalAI Starling](/complete_vehicles_mc/modalai_starling.md)
- [ModalAI Starling (PX4 Dev Kit)](/complete_vehicles_mc/modalai_starling.md)
- [PX4 Vision Kit](/complete_vehicles_mc/px4_vision_kit.md)
- [MindRacer BNF & RTF](/complete_vehicles_mc/mindracer_BNF_RTF.md)
- [MindRacer 210](/complete_vehicles_mc/mindracer210.md)
@@ -58,7 +56,6 @@
- [DJI F450 (CUAV v5 nano)](/frames_multicopter/dji_f450_cuav_5nano.md)
- [Літаки (з фіксованим крилом)](/frames_plane/index.md)
- [Збірка](/assembly/assembly_fw.md)
- [Конфігурація/підлаштування](/config_fw/index.md)
- [Auto-tune](/config/autotune_fw.md)
@@ -86,7 +83,6 @@
- [Wing Wing Z84 (Pixracer)](/frames_plane/wing_wing_z84.md)
- [VTOL (Вертикальний зліт та посадка)](/frames_vtol/index.md)
- [Assembly](/assembly/assembly_vtol.md)
- [Конфігурація/Налаштування VTOL](/config_vtol/index.md)
- [Auto-tune](/config/autotune_vtol.md)
@@ -111,7 +107,6 @@
- [Complete Vehicles](/complete_vehicles_vtol/index.md)
- [Operations](/config/operations.md)
- [Безпека](/config/safety_intro.md)
- [Конфігурація безпеки (запобіжники)](/config/safety.md)
- [Моделювання відмовостійкості](/config/safety_simulation.md)
@@ -132,7 +127,6 @@
- [QGroundControl Flight-Readiness Status](/flying/pre_flight_checks.md)
- [Вибір обладнання & Налаштування](/hardware/drone_parts.md)
- [Flight Controllers (Autopilots)](/flight_controller/index.md)
- [Польотні контролери](/getting_started/flight_controller_selection.md)
- [Серія Pixhawk](/flight_controller/pixhawk_series.md)
@@ -169,13 +163,12 @@
- [ARK Electronics ARKV6X](/flight_controller/ark_v6x.md)
- [ARK FPV Flight Controller](/flight_controller/ark_fpv.md)
- [ARK Pi6X Flow Flight Controller](/flight_controller/ark_pi6x.md)
- [CUAV X7](/flight_controller/cuav_x7.md)
- [CUAV Nora](/flight_controller/cuav_nora.md)
- [CUAV V5+ (FMUv5)](/flight_controller/cuav_v5_plus.md)
- [Wiring Quickstart](/assembly/quick_start_cuav_v5_plus.md)
- [CUAV V5 nano (FMUv5)](/flight_controller/cuav_v5_nano.md)
- [Швидке підключення CUAV V5 nano](/assembly/quick_start_cuav_v5_nano.md)
- [CUAV Pixhack v3 (FMUv3)](/flight_controller/pixhack_v3.md)
- [CUAV X25 EVO](/flight_controller/cuav_x25-evo.md)
- [CubePilot Cube Orange+ (CubePilot)](/flight_controller/cubepilot_cube_orangeplus.md)
- [CubePilot Cube Orange (CubePilot)](/flight_controller/cubepilot_cube_orange.md)
- [CubePilot Cube Yellow (CubePilot)](/flight_controller/cubepilot_cube_yellow.md)
@@ -188,11 +181,8 @@
- [Wiring Quickstart](/assembly/quick_start_durandal.md)
- [Holybro Pix32 v5](/flight_controller/holybro_pix32_v5.md)
- [Wiring Quickstart](/assembly/quick_start_holybro_pix32_v5.md)
- [ModalAI Flight Core v1](/flight_controller/modalai_fc_v1.md)
- [ModalAI VOXL Flight](/flight_controller/modalai_voxl_flight.md)
- [ModalAI VOXL 2](/flight_controller/modalai_voxl_2.md)
- [mRobotics-X2.1 (FMUv2)](/flight_controller/mro_x2.1.md)
- [mRo Control Zero F7)](/flight_controller/mro_control_zero_f7.md)
- [mRo Control Zero F7](/flight_controller/mro_control_zero_f7.md)
- [Sky-Drones AIRLink](/flight_controller/airlink.md)
- [SPRacing SPRacingH7EXTREME](/flight_controller/spracingh7extreme.md)
- [ThePeach FCC-K1](/flight_controller/thepeach_k1.md)
@@ -206,18 +196,20 @@
- [Зняті з виробництва автопілоти/транспортні засоби](/flight_controller/autopilot_discontinued.md)
- [Drotek Dropix (FMUv2)](/flight_controller/dropix.md)
- [Omnibus F4 SD](/flight_controller/omnibus_f4_sd.md)
- [BetaFPV Beta75X 2S Brushless Whoop](/complete_vehicles_mc/betafpv_beta75x.md)
- [Bitcraze Crazyflie 2.0 ](/complete_vehicles_mc/crazyflie2.md)
- [Aerotenna OcPoC-Zynq Mini](/flight_controller/ocpoc_zynq.md)
- [CUAV X7](/flight_controller/cuav_x7.md)
- [CUAV v5](/flight_controller/cuav_v5.md)
- [CUAV Pixhack v3 (FMUv3)](/flight_controller/pixhack_v3.md)
- [Holybro Kakute F7](/flight_controller/kakutef7.md)
- [Holybro Pixfalcon](/flight_controller/pixfalcon.md)
- [Holybro pix32 (FMUv2)](/flight_controller/holybro_pix32.md)
- [ModalAI Flight Core v1](/flight_controller/modalai_fc_v1.md)
- [ModalAI VOXL Flight](/flight_controller/modalai_voxl_flight.md)
- [mRo X2.1 (FMUv2)](/flight_controller/mro_x2.1.md)
- [mRo AUAV-X2](/flight_controller/auav_x2.md)
- [NXP RDDRONE-FMUK66 FMU](/flight_controller/nxp_rddrone_fmuk66.md)
- [3DR Pixhawk 1](/flight_controller/pixhawk.md)
- [Snapdragon Flight](/flight_controller/snapdragon_flight.md)
- [Intel® Aero RTF Drone](/complete_vehicles_mc/intel_aero.md)
- [Pixhawk Autopilot Bus (PAB) & Carriers](/flight_controller/pixhawk_autopilot_bus.md)
- [ARK Electronics Pixhawk Autopilot Bus Carrier](/flight_controller/ark_pab.md)
- [Кріплення польотного контролера](/assembly/mount_and_orient_controller.md)
@@ -229,7 +221,9 @@
- [Оновлення завантажувача](/advanced_config/bootloader_update.md)
- [Оновлення бутлоадера FMUv6X-RT через USB](/advanced_config/bootloader_update_v6xrt.md)
- [Bootloader прошивка на системи Betaflight](/advanced_config/bootloader_update_from_betaflight.md)
- [Airframe Selection](/config/airframe.md)
- [Сенсори](/sensor/index.md)
- [Акселерометр](/sensor/accelerometer.md)
- [Калібрування](/config/accelerometer.md)
@@ -241,6 +235,7 @@
- [Compass Power Compensation](/advanced_config/compass_power_compensation.md)
- [Датчики швидкості повітря](/sensor/airspeed.md)
- [Калібрування](/config/airspeed.md)
- [Airspeed Validation](/advanced_config/airspeed_validation.md)
- [ВЗІП Датчик польоту](/sensor/airspeed_tfslot.md)
- [Барометри](/sensor/barometer.md)
- [Датчики відстані \(далекодобива\)](/sensor/rangefinders.md)
@@ -272,6 +267,7 @@
- [CUAV C-RTK](/gps_compass/rtk_gps_cuav_c-rtk.md)
- [CUAV C-RTK2 PPK/RTK GNSS](/gps_compass/rtk_gps_cuav_c-rtk2.md)
- [CUAV C-RTK 9Ps](/gps_compass/rtk_gps_cuav_c-rtk-9ps.md)
- [DATAGNSS NANO HRTK GNSS](/gps_compass/rtk_gps_datagnss_nano_hrtk.md)
- [DATAGNSS GEM1305 RTK GNSS](/gps_compass/rtk_gps_gem1305.md)
- [Femtones MINI2 Receiver](/gps_compass/rtk_gps_fem_mini2.md)
- [Freefly RTK GPS](/gps_compass/rtk_gps_freefly.md)
@@ -287,6 +283,7 @@
- [Trimble MB-Two](/gps_compass/rtk_gps_trimble_mb_two.md)
- [CubePilot Here+ (Discontined)](/gps_compass/rtk_gps_hex_hereplus.md)
- [INS (Інерціальна навігація/GNSS)](/sensor/inertial_navigation_systems.md)
- [InertialLabs](/sensor/inertiallabs.md)
- [VectorNav](/sensor/vectornav.md)
- [Optical Flow](/sensor/optical_flow.md)
- [ARK Flow](/dronecan/ark_flow.md)
@@ -297,6 +294,7 @@
- [Датчик тахометра ThunderFly TFRPM01](/sensor/thunderfly_tachometer.md)
- [Заводське калібрування IMU](/advanced_config/imu_factory_calibration.md)
- [Sensor Thermal Compensation](/advanced_config/sensor_thermal_calibration.md)
- [Актуатори](/actuators/index.md)
- [Розподіл приводу](/config/actuators.md)
- [Калібрування ESC (плати контролю двигунів)](/advanced_config/esc_calibration.md)
@@ -308,19 +306,22 @@
- [Zubax Telega](/dronecan/zubax_telega.md)
- [Прошивка PX4 Sapog ESC](/dronecan/sapog.md)
- [Holybro Kotleta](/dronecan/holybro_kotleta.md)
- [Zubax Orel](/dronecan/zubax_orel.md)
- [Vertiq](/peripherals/vertiq.md)
- [VESC](/peripherals/vesc.md)
- [Радіокерування (RC)](/getting_started/rc_transmitter_receiver.md)
- [Налаштування радіо](/config/radio.md)
- [Режими польоту](/config/flight_mode.md)
- [Джойстики](/config/joystick.md)
- [Посилання даних](/data_links/index.md)
- [MAVLink Telemetry (OSD/GCS)](/peripherals/mavlink_peripherals.md)
- [Телеметричні радіостанції](/telemetry/index.md)
- [SiK Radio](/telemetry/sik_radio.md)
- [Телеметричне радіо RFD900 (SiK)](/telemetry/rfd900_telemetry.md)
- [ThunderFly TFSIK01 Telemetry Radio](/telemetry/tfsik_telemetry.md)
- [HolyBro (SIK) Телеметричне радіо](/telemetry/holybro_sik_radio.md)
- [Телеметрія Wi-Fi](/telemetry/telemetry_wifi.md)
- [Модуль WiFi ESP8266](/telemetry/esp8266_wifi_module.md)
@@ -338,6 +339,7 @@
- [TBS Crossfire (CRSF) телеметрія](/telemetry/crsf_telemetry.md)
- [Супутниковий зв'язок (Iridium/RockBlock)](/advanced_features/satcom_roadblock.md)
- [Енергетичні системи](/power_systems/index.md)
- [Налаштування оцінки батареї](/config/battery.md)
- [Battery Chemistry Overview](/power_systems/battery_chemistry.md)
@@ -356,6 +358,7 @@
- [Sky-Drones SmartAP PDB](/power_module/sky-drones_smartap-pdb.md)
- [Акумулятори Smart/MAVLink](/smart_batteries/index.md)
- [Rotoye Batmon Комплект інтелектуального акумулятора](/smart_batteries/rotoye_batmon.md)
- [Вантажі & камери](/payloads/index.md)
- [Випадки використання](/payloads/use_cases.md)
- [Місія доставки посилок](/flying/package_delivery_mission.md)
@@ -367,19 +370,25 @@
- [Конфігурація Gimbal \(Mount\)](/advanced/gimbal_control.md)
- [Grippers](/peripherals/gripper.md)
- [Servo Gripper](/peripherals/gripper_servo.md)
- [Периферія](/peripherals/index.md)
- [ADSB/FLARM/UTM (уникнення трафіку)](/peripherals/adsb_flarm.md)
- [Парашут](/peripherals/parachute.md)
- [Remote ID](/peripherals/remote_id.md)
- [Периферійні пристрої I2C](/sensor_bus/i2c_general.md)
- [Прискорювачі шини I2C](/sensor_bus/i2c_general.md#i2c-bus-accelerators)
- [TFI2CADT01 Транслятор адреси I2C](/sensor_bus/translator_tfi2cadt.md)
- [Периферійні пристрої CAN](/can/index.md)
- [Периферійні пристрої DroneCAN](/dronecan/index.md)
- [Прошивка PX4 DroneCAN](/dronecan/px4_cannode_fw.md)
- [ARK CANnode](/dronecan/ark_cannode.md)
- [RaccoonLab CAN Nodes](/dronecan/raccoonlab_nodes.md)
- [Підключення дротів](/assembly/cable_wiring.md)
- [Комп’ютери-супутники](/companion_computer/index.md)
- [Налаштування Pixhawk + Companion](/companion_computer/pixhawk_companion.md)
- [RPi Pixhawk Companion](/companion_computer/pixhawk_rpi.md)
@@ -395,16 +404,19 @@
- [Realsense T265 Tracking Camera (VIO)](/camera/camera_intel_realsense_t265_vio.md)
- [Потокове відео](/companion_computer/video_streaming.md)
- [Потокове відео за допомогою WFB-ng Wi-Fi (далекий діапазон)](/companion_computer/video_streaming_wfb_ng_wifi.md)
- [Serial Port Configuration](/peripherals/serial_configuration.md)
- [PX4 Ethernet Setup](/advanced_config/ethernet_setup.md)
- [Стандартна конфігурація](/config/index.md)
- [Розширені налаштування](/advanced_config/index.md)
- [Using PX4's Navigation Filter (EKF2)](/advanced_config/tuning_the_ecl_ekf.md)
- [Finding/Updating Parameters](/advanced_config/parameters.md)
- [Full Parameter Reference](/advanced_config/parameter_reference.md)
- [Інші транспортні засоби](/airframes/index.md)
- [Airships (experimental)](/frames_airship/index.md)
- [Autogyros (experimental)](/frames_autogyro/index.md)
- [ThunderFly Auto-G2 (Holybro pix32)](/frames_autogyro/thunderfly_auto_g2.md)
@@ -412,17 +424,17 @@
- [Helicopter (experimental)](/frames_helicopter/index.md)
- [Конфігурація/Підлаштування](/config_heli/index.md)
- [Rovers (experimental)](/frames_rover/index.md)
- [Ackermann Rovers](/frames_rover/ackermann.md)
- [Drive Modes](/flight_modes_rover/ackermann.md)
- [Конфігурація/Підлаштування](/config_rover/ackermann.md)
- [Differential Rovers](/frames_rover/differential.md)
- [Drive Modes](/flight_modes_rover/differential.md)
- [Конфігурація/Підлаштування](/config_rover/differential.md)
- [Aion Robotics R1](/frames_rover/aion_r1.md)
- [Mecanum Rovers](/frames_rover/mecanum.md)
- [Drive Modes](/flight_modes_rover/mecanum.md)
- [Конфігурація/Підлаштування](/config_rover/mecanum.md)
- [(Deprecated) Rover Position Control](/frames_rover/rover_position_control.md)
- [Drive Modes](/flight_modes_rover/index.md)
- [Manual](/flight_modes_rover/manual.md)
- [Auto](/flight_modes_rover/auto.md)
- [Configuration/Tuning](/config_rover/index.md)
- [Basic Setup](/config_rover/basic_setup.md)
- [Rate Tuning](/config_rover/rate_tuning.md)
- [Attitude Tuning](/config_rover/attitude_tuning.md)
- [Velocity Tuning](/config_rover/velocity_tuning.md)
- [Position Tuning](/config_rover/position_tuning.md)
- [Complete Vehicles](/complete_vehicles_rover/index.md)
- [Aion Robotics R1](/complete_vehicles_rover/aion_r1.md)
- [Submarines (experimental)](/frames_sub/index.md)
- [BlueROV2](/frames_sub/bluerov2.md)
- [Airframes Reference](/airframes/airframe_reference.md)
@@ -534,6 +546,7 @@
- [Airspeed](/msg_docs/Airspeed.md)
- [AirspeedWind](/msg_docs/AirspeedWind.md)
- [AutotuneAttitudeControlStatus](/msg_docs/AutotuneAttitudeControlStatus.md)
- [BatteryInfo](/msg_docs/BatteryInfo.md)
- [ButtonEvent](/msg_docs/ButtonEvent.md)
- [CameraCapture](/msg_docs/CameraCapture.md)
- [CameraStatus](/msg_docs/CameraStatus.md)
@@ -552,6 +565,7 @@
- [DifferentialPressure](/msg_docs/DifferentialPressure.md)
- [DistanceSensor](/msg_docs/DistanceSensor.md)
- [DistanceSensorModeChangeRequest](/msg_docs/DistanceSensorModeChangeRequest.md)
- [DronecanNodeStatus](/msg_docs/DronecanNodeStatus.md)
- [Ekf2Timestamps](/msg_docs/Ekf2Timestamps.md)
- [EscReport](/msg_docs/EscReport.md)
- [EscStatus](/msg_docs/EscStatus.md)
@@ -626,6 +640,7 @@
- [MountOrientation](/msg_docs/MountOrientation.md)
- [NavigatorMissionItem](/msg_docs/NavigatorMissionItem.md)
- [NavigatorStatus](/msg_docs/NavigatorStatus.md)
- [NeuralControl](/msg_docs/NeuralControl.md)
- [NormalizedUnsignedSetpoint](/msg_docs/NormalizedUnsignedSetpoint.md)
- [ObstacleDistance](/msg_docs/ObstacleDistance.md)
- [OffboardControlMode](/msg_docs/OffboardControlMode.md)
@@ -724,7 +739,12 @@
- [Wind](/msg_docs/Wind.md)
- [YawEstimatorStatus](/msg_docs/YawEstimatorStatus.md)
- [AirspeedValidatedV0](/msg_docs/AirspeedValidatedV0.md)
- [ArmingCheckReplyV0](/msg_docs/ArmingCheckReplyV0.md)
- [BatteryStatusV0](/msg_docs/BatteryStatusV0.md)
- [EventV0](/msg_docs/EventV0.md)
- [HomePositionV0](/msg_docs/HomePositionV0.md)
- [VehicleAttitudeSetpointV0](/msg_docs/VehicleAttitudeSetpointV0.md)
- [VehicleLocalPositionV0](/msg_docs/VehicleLocalPositionV0.md)
- [VehicleStatusV0](/msg_docs/VehicleStatusV0.md)
- [MAVLink Messaging](/mavlink/index.md)
- [Adding Messages](/mavlink/adding_messages.md)
@@ -734,6 +754,7 @@
- [Protocols/Microservices](/mavlink/protocols.md)
- [Standard Modes Protocol](/mavlink/standard_modes.md)
- [uXRCE-DDS (PX4-ROS 2/DDS Bridge)](/middleware/uxrce_dds.md)
- [UORB Bridged to ROS 2](/middleware/dds_topics.md)
- [Модулі & Команди](/modules/modules_main.md)
- [Автоматичне підлаштування](/modules/modules_autotune.md)
- [Команди](/modules/modules_command.md)
@@ -763,7 +784,7 @@
- [Відлагодження з GDB](/debug/gdb_debugging.md)
- [Порт для налагодження SWD](/debug/swd_debug.md)
- [JLink адаптер](/debug/probe_jlink.md)
- [Black Magic / Dronecode адаптери](/debug/probe_bmp.md)
- [Black Magic/Zubax BugFace BF1 Probe](/debug/probe_bmp.md)
- [STLink адаптер](/debug/probe_stlink.md)
- [MCU-Link адаптер](/debug/probe_mculink.md)
- [Відлагодження Hardfault ](/debug/gdb_hardfault.md)
@@ -787,6 +808,9 @@
- [Інтеграція камери/Архітектура](/camera/camera_architecture.md)
- [Комп'ютерний зір](/advanced/computer_vision.md)
- [Захоплення руху (VICON, Optitrack, NOKOV)](/tutorials/motion-capture.md)
- [Neural Networks](/advanced/neural_networks.md)
- [Neural Network Module Utilities](/advanced/nn_module_utilities.md)
- [TensorFlow Lite Micro (TFLM)](/advanced/tflm.md)
- [Встановлюється драйвер для Intel RealSense R200](/advanced/realsense_intel_driver.md)
- [Перемикання оцінювачів стану](/advanced/switching_state_estimators.md)
- [Out-of-Tree модулі](/advanced/out_of_tree_modules.md)
@@ -818,8 +842,12 @@
- [Тест MC_02 - Повна автономність](/test_cards/mc_02_full_autonomous.md)
- [Тест MC_03 - поєднання автоматичного і ручного керування](/test_cards/mc_03_auto_manual_mix.md)
- [Тест MC_04 - Тестування відмовостійкості](/test_cards/mc_04_failsafe_testing.md)
- [Тест MC_05 - Політ у приміщенні (ручні режими)](/test_cards/mc_05_indoor_flight_manual_modes.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)
- [Integration Testing](/test_and_ci/integration_testing.md)
- [MAVSDK Тестування інтеграції ](/test_and_ci/integration_testing_mavsdk.md)
@@ -862,8 +890,8 @@
- [Релізи](/releases/index.md)
- [main (alpha)](/releases/main.md)
- [1.16 (release candidate)](/releases/1.16.md)
- [1.15 (stable)](/releases/1.15.md)
- [1.16 (stable)](/releases/1.16.md)
- [1.15](/releases/1.15.md)
- [1.14](/releases/1.14.md)
- [1.13](/releases/1.13.md)
- [1.12](/releases/1.12.md)
+29 -2
View File
@@ -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/<vendor>/<board>/init` that will run during board startup. Наприклад:
```sh
# File: boards/<vendor>/<board>/init/rc.additional
param set-default <param> <value>
```
- Add a new board variant in `boards/<vendor>/<board>/<variant>.px4board` that includes the additional script. Наприклад:
```sh
# File: boards/<vendor>/<board>/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 <target>_var
```
+56 -11
View File
@@ -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.
<a id="RO_ACCEL_LIM_CONSIDERATIONS"></a>
<a id="RO_ACCEL_LIM_CONSIDERATIONS"></a>
:::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
| <a id="RO_MAX_THR_SPEED"></a>[RO_MAX_THR_SPEED](../advanced_config/parameter_reference.md#RO_MAX_THR_SPEED) | Speed the rover drives at maximum throttle | $m/s$ |
| <a id="RO_ACCEL_LIM"></a>[RO_ACCEL_LIM](../advanced_config/parameter_reference.md#RO_ACCEL_LIM) | (Optional) Maximum allowed acceleration | $m/s^2$ |
| <a id="RO_DECEL_LIM"></a>[RO_DECEL_LIM](../advanced_config/parameter_reference.md#RO_DECEL_LIM) | (Optional) Maximum allowed deceleration | $m/s^2$ |
| <a id="RO_YAW_EXPO"></a>[RO_YAW_EXPO](../advanced_config/parameter_reference.md#RO_YAW_EXPO) | (Optional) Yaw rate expo factor | $-$ |
| <a id="RO_YAW_SUPEXPO"></a>[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 |
| ----------------------------------------------------------------------------------------------------------------------------------------------- | ----------- | ---- |
| <a id="RD_WHEEL_TRACK"></a>[RD_WHEEL_TRACK](../advanced_config/parameter_reference.md#RD_WHEEL_TRACK) | Wheel track | m |
| Параметр | Опис | Unit |
| ----------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------ | ---- |
| <a id="RD_WHEEL_TRACK"></a>[RD_WHEEL_TRACK](../advanced_config/parameter_reference.md#RD_WHEEL_TRACK) | Wheel track | $m$ |
| <a id="RD_YAW_STK_GAIN"></a>[RD_YAW_STK_GAIN](../advanced_config/parameter_reference.md#RD_YAW_STK_GAIN) | (Optional) Yaw stick gain for Manual mode | $-$ |
### Mecanum Specific
| Параметр | Опис | Unit |
| ----------------------------------------------------------------------------------------------------------------------------------------------- | ----------- | ---- |
| <a id="RM_WHEEL_TRACK"></a>[RM_WHEEL_TRACK](../advanced_config/parameter_reference.md#RM_WHEEL_TRACK) | Wheel track | m |
| Параметр | Опис | Unit |
| ----------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------ | ---- |
| <a id="RM_WHEEL_TRACK"></a>[RM_WHEEL_TRACK](../advanced_config/parameter_reference.md#RM_WHEEL_TRACK) | Wheel track | $m$ |
| <a id="RM_YAW_STK_GAIN"></a>[RM_YAW_STK_GAIN](../advanced_config/parameter_reference.md#RM_YAW_STK_GAIN) | (Optional) Yaw stick gain for Manual mode | $-$ |
+2 -2
View File
@@ -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).
<a id="RA_SPEED_TUNING"></a>
<a id="RA_SPEED_TUNING"></a>
::: 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.
+7 -6
View File
@@ -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.<br />- `-1`: Logging disabled.<br />- `0`: Log when armed until disarm (default).<br />- `1`: Log from boot until disarm.<br />- `2`: Log from boot until shutdown.<br />- `3`: Log based on the [AUX1 RC channel](../advanced_config/parameter_reference.md#RC_MAP_AUX1).<br />- `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".<br>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.<br />- `0`: Log when armed until disarm (default).<br />- `1`: Log from boot until disarm.<br />- `2`: Log from boot until shutdown.<br />- `3`: Log based on the [AUX1 RC channel](../advanced_config/parameter_reference.md#RC_MAP_AUX1).<br />- `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.<br />- bit `0`: SD card logging.</br >- 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".<br>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)
### Модуль реєстрації
+21 -2
View File
@@ -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.
## Словник
### Інерційний вимірювальний пристрій (ІВП)
+93 -55
View File
@@ -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
Динамічні моделі для різних транспортних засобів:
-5
View File
@@ -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)

Some files were not shown because too many files have changed in this diff Show More