Compare commits

...

8690 Commits

Author SHA1 Message Date
Ramon Roche 61904bc14a ci: fix S3 upload so tags don't overwrite stable firmware
Remove the step that uploaded every version tag to the stable/ S3
directory, which caused QGC users selecting "stable" to receive
pre-release firmware (#26340). The stable/ and beta/ directories
are now controlled exclusively by their respective branch pushes,
while version tags only upload to their versioned archive directory
(e.g., v1.16.1/). Pre-release tags are also correctly marked on
GitHub Releases.

Co-authored-by: Julian Oes <julian@oes.ch>

Fixes #26340

Signed-off-by: Ramon Roche <mrpollo@gmail.com>
2026-02-13 07:25:28 -08:00
Matthias Grob fd68d5d043 CI: replace all usage of addnab/docker-run-action
It's unmaintained and the docker version it uses is not supported anymore.
2026-02-13 06:35:09 -08:00
Nick 857b48d57d [1.17] Bugfix: Prevent Offboard to Position without RC (#26391) 2026-01-30 09:35:49 +01:00
AkaiEurus 618995da84 Fix VTOL stuck after back-transition in Mission Fast RTL 2026-01-22 13:55:38 +01:00
Nick 2a78d7dfd1 pwm: Add PWM center support to Wheel and Gimbal (#26211)
* Add Wheel and Gimbal support to PWM center

* Document Center feature for PWM Gimbal
2026-01-22 13:53:45 +01:00
Nick da89d5e939 PWM: Add servo center setting & asymetric deflection (#25897)
Add PWM_*_CENTERx for each servo.
Use a bilinear transform to map actuator_servos to PWM signals.

This solution only works for PWM based servos. Other types of servos are not affected.

* PWM: Add servo trim option

* PWM: Improve documentation of PWM trim feature

* PWM: cleaner clamping and docs typo

* update documentation & safety

* add migration formula

* rename param from trim to center

* docs with center instead of trim

* move clamping and reorder values

* improve documentation

* adress failing range check

* improve documentation

* CA: add event for setting CENTER with TRIM

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

---------

Signed-off-by: Silvan <silvan@auterion.com>
Co-authored-by: Silvan <silvan@auterion.com>
2026-01-22 13:53:45 +01:00
Ryan Johnston 15f5fefa0c FW Takeoff: fix loiter altitude not set in some cases
* Fix Takeoff mode to respect MIS_TAKEOFF_ALT

Takeoff mode never transitions to hold after takeoff alt.

* style: run make format
2026-01-16 18:04:40 +01:00
Matthias Grob e841fe029a [1.17] Bugfix: Let user take over from a degraded failsafe (#26269)
* astyle: remove max line length (#25717)

* failsafe unit test: add cases for 1 allow taking over from degraded failsafes 2 not cause immediate takeover when failsafe happens because of mode switch

The first test makes sure the user can take over when an RTL failsafe was triggered but degraded to a Land.

The second test rules out the easiest fix of removing the condition `_selected_action == selected_action` which causes the problem for test one but is there for a reason.

* commander/failsafe: fix user takeover not possible in fallback Land action when configured RTL is not possible

---------

Co-authored-by: Jacob Dahl <37091262+dakejahl@users.noreply.github.com>
2026-01-15 14:48:53 -05:00
Peter van der Perk 82532f9642 [BACKPORT 1.17] imxrt related fixes and mr-tropic support (#26052) 2025-12-23 15:10:07 -05:00
Peter van der Perk 77766d1301 [BACKPORT 1.17] Zenoh docs and zenoh oom fixes (#26053)
* docs: Zenoh middleware guide (#25737)

* Zenoh: Update zenoh-pico library

* Zenoh: Improve out-of-memory behaviour

Abort publication immediately when not enough memory is available.
Zero _zenoh_publishers and _zenoh_subscribers to ensure we're not
dereferencing a wrong pointer

* fmu-v6x: zenoh config set CONSTRAINED_FLASH

Fixes flash overflow with zenoh target on fmu-v6x

* Update docs/en/middleware/zenoh.md

---------

Co-authored-by: Hamish Willee <hamishwillee@gmail.com>
2025-12-09 19:03:26 -09:00
Niklas Hauser c2fb48990a [FMUv6s] Communicate the correct board id version 2025-10-15 14:25:31 +02:00
JoelJ18 4fa9aa205f [Docs] MicroStrain driver documentation (#25376)
* Initial Draft

* prettier + parent INS doc addition

* Typo fixes and param description improvements

* LinkedFileMissingAnchor Fix

* External mag and optical flow doc update

* Reverting module.yaml

* Apply suggestion from @hamishwillee

---------

Co-authored-by: Hamish Willee <hamishwillee@gmail.com>
2025-10-15 19:04:51 +11:00
Hamish Willee e83d18cad2 metadata - _sidebar and only display front page warning on main (#25761)
* _sidebar and only display front page warning on main

* Update metadata and fix internal flaws
2025-10-15 12:28:33 +11:00
Matthias Grob 2cae8ee797 Improve documentation for motor failure injection and detection (#25756)
* failure_injection: improve previously vague motor faulure

Reading it again I decided adding the sentance in 4d2170c13e is not clear enough.

* docs/safety: add a motor failure detection paragraph

The functionality is in my eyes pretty basic but so far completely undocumented so I went through the code and added a paragraph based on questions I received.

* Subedit

* Apply suggestion from @hamishwillee

---------

Co-authored-by: Hamish Willee <hamishwillee@gmail.com>
2025-10-15 11:05:33 +11:00
Jacob Dahl a64536802b gz: fix gimbal yaw, add dds publisher (#25754)
* gz: correct gimbal yaw

* uxrce_dds: add publisher /fmu/out/gimbal_device_attitude_status

* chore: use explicit ENU_to_NED rotation

Signed-off-by: Beniamino Pozzan <beniamino.pozzan@gmail.com>

* format

---------

Signed-off-by: Beniamino Pozzan <beniamino.pozzan@gmail.com>
Co-authored-by: Beniamino Pozzan <beniamino.pozzan@gmail.com>
2025-10-14 11:45:43 -08:00
Matthias Grob babe094d06 FailureDetector: use robust timeout checks for motor failure detection (#25757) 2025-10-14 10:46:29 -08:00
Alexander Lerach 376f52f51d mavlink: add som/fmu config params 2025-10-14 19:14:41 +02:00
Alexander Lerach 0f0fe8f1fa boards: align auterion v6x with APX4 2025-10-14 19:14:41 +02:00
Niklas Hauser 9fa4a57c66 tools: Ignore known_hosts file for uploading via SSH 2025-10-14 19:14:41 +02:00
Niklas Hauser ba1e658750 boards: remove USB device from Auterion FMUv6x 2025-10-14 19:14:41 +02:00
Alexander Lerach e8fbc30cf6 boards: add auterion v6x target 2025-10-14 19:14:41 +02:00
Matthias Grob 7706aae67d mavlink_receiver: only switch outgoing MAVLink version to 2 if it was 1 before
to avoid the message that comes with it being spammed.
2025-10-14 18:38:02 +02:00
Matthias Grob 4842c542b8 rc_update: remove 1% deadzone for RC channels 1-8 (#25502)
* rc_update: remove 1% deadzone for all channels

this should be handled higher level.

* Remove all references to the RC{n}_DZ parameters

Regular expression: RC.{0,2}_DZ

---------

Co-authored-by: Jacob Dahl <37091262+dakejahl@users.noreply.github.com>
2025-10-13 21:41:11 -08:00
Matthias Grob 12035682d7 Use MAVLink v1 only as opt-in (#25583)
* Remove support for MAVLink 1

* Add back support for MAVLink 1 but don't default to it

* Update src/modules/mavlink/mavlink_params.c

Co-authored-by: Hamish Willee <hamishwillee@gmail.com>

---------

Co-authored-by: Jacob Dahl <37091262+dakejahl@users.noreply.github.com>
Co-authored-by: Hamish Willee <hamishwillee@gmail.com>
2025-10-13 20:58:34 -08:00
Matthias Grob 33301764e4 Handle SYS_AUTOSTART 0 the same as no valid airframe being available (#25645)
* ROMFS: do not exit airframe loading if SYS_AUTOSTART is 0

Do not treat 0 as a magic value that skips the aiframe loading.
Instead leave it tot he rc.autostart to load an airframe that if finds
appropriate (can be defined in external aiframe).

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

* ROMFS: adjust airframe load spacing and message/comment wording

---------

Signed-off-by: Silvan <silvan@auterion.com>
Co-authored-by: Silvan <silvan@auterion.com>
2025-10-13 20:56:27 -08:00
Ramon Roche aa0668663a docs: clean urls for vitepress builds (#25718)
Signed-off-by: Ramon Roche <mrpollo@gmail.com>
2025-10-13 20:52:41 -08:00
Marco Hauswirth 2f06f03728 calibration: mag: only allow mag calibration when at least one mag is available and enabled (i.e. not prio=0) (#25714) 2025-10-13 20:51:25 -08:00
Jacob Dahl 2c62caeb7d flight task auto: fix offtrack mission landing bug (#25725)
During a mission the last waypoint is often a LAND. If the previous waypoint is not directly above the land waypoint the offtrack calculation is incorrect. This regression was introduced when the offtrack calculation switched from 2D to 3D.
2025-10-13 19:56:23 -08:00
PX4 Build Bot 87559f717b New Crowdin translations - zh-CN (#25747)
Co-authored-by: Crowdin Bot <support+bot@crowdin.com>
2025-10-13 09:08:22 +11:00
PX4 Build Bot 7fb8ea051f New Crowdin translations - uk (#25746)
Co-authored-by: Crowdin Bot <support+bot@crowdin.com>
2025-10-13 09:08:14 +11:00
PX4 Build Bot dc500c4d04 New Crowdin translations - ko (#25745)
Co-authored-by: Crowdin Bot <support+bot@crowdin.com>
2025-10-13 09:08:00 +11:00
Alexander Sherikov 54679f11d0 px_update_git_header: fix nuttx version detection (#25742)
use fake nuttx version tag when the real one cannot be detected
2025-10-11 14:24:30 -08:00
Connor Denihan 9a6e4b5ace docs: Fix capitalization of macOS (#25744)
* Fix formatting and capitalization in dev_env_mac.md

Updated formatting and capitalization for consistency in the macOS development environment documentation.

* Correct 'Mac OS' to 'macOS' in documentation

* Fix capitalization of 'macOS' in documentation
2025-10-11 14:23:55 -08:00
Connor Denihan d6fc448a36 Update supported Ubuntu versions in dev environment docs (#25743) 2025-10-11 12:54:32 -08:00
Farhang 3336050f84 First commit 2025-10-10 11:29:01 -07:00
Mahima Yoga 96904636f3 commander: prevent setting nav_state to takeoff after disarming (#25735)
* commander: prevent setting nav_state after disarming to takeoff

* wrap in function
2025-10-10 09:59:26 -08:00
Peter van der Perk edc7a2bb80 fmu-v6xrt: Add DTCM to heap (#25733)
Move ramvectors from DTCM to ITCM, this seems to better in general.
Also ITCM is marked as RO so is safer anyhow, now that DTCM is fully
unused we add DTCM region of 256kB to memory allocator. Increases usable
memory from 1536kB to 1792kB and decrease system load a bit since DTCM
is faster
2025-10-10 09:46:26 -08:00
Ramon Roche 2fba5b4c1a ci: pull emscripten v4.0.15 to avoid c++17 errors (#25739)
https://github.com/emscripten-core/emscripten/issues/24850

Signed-off-by: Ramon Roche <mrpollo@gmail.com>
2025-10-10 09:43:20 -08:00
Jacob Dahl 12f6005c5c romfs: allow target level airframe selection (#25677) 2025-10-10 11:29:27 -06:00
Jaeyoung Lim b95784e804 Consume speedweight from FW longitudinal config (#25709)
* Consume speedweight from longitudinal config

* Constrain speed weight
2025-10-10 10:00:43 -07:00
Peter van der Perk 2f48cb4ef2 MR-CANHUBK344 NXP B3RB Rover support (#23897)
* s32k3xx: EMIOS allow independent frequencies for each channel

* mr-canhubk3: update config

* mr-canhubk344: Fix adap board detect

* mr-canhubk344: Use LPSPI1 (Port P1A) for SD card

* airframes: Add B3RB Ackermann rover config

See https://nxp.gitbook.io/mr-b3rb for more information about the NXP
B3RB platform. PX4 Support basic control for now
2025-10-09 23:28:43 -08:00
Ramon Roche d6f7519df0 ci: builds all cache pip
Signed-off-by: Ramon Roche <mrpollo@gmail.com>
2025-10-09 20:57:06 -04:00
Ramon Roche 2eac99cd20 ci: AWS instance review and improved build caching
* Tone down the performance of some runners from 8cpu+ down to 4cpu+
* Improve and document caching on PX4 builds with an improved ccache key strategy
* Review and document artifact upload logic for binaries uploaded to S3 and github
releases
* Future Improvement, introduce runners configuration file so we can
control more precesily which instances are allocated.

Signed-off-by: Ramon Roche <mrpollo@gmail.com>
2025-10-09 20:57:06 -04:00
Hamish Willee d85994b521 Make Github docs-deploy workflow only run manually 2025-10-08 15:00:53 -07:00
Andrew Wilkins 60dd343152 updated test cards for optical flow flights (#25676)
* updated test cards for optical flow flights

* Update docs/en/test_cards/mc_07_optical_flow_failure.md

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

* updated docs

* fixed mis-type in url

* subedit

* Update docs/en/test_cards/mc_06_optical_flow.md

Co-authored-by: Hamish Willee <hamishwillee@gmail.com>

* updated test card

* changes to file name and some instructions

---------

Co-authored-by: Jacob Dahl <37091262+dakejahl@users.noreply.github.com>
Co-authored-by: Hamish Willee <hamishwillee@gmail.com>
2025-10-08 11:02:03 -08:00
PX4 Build Bot d3bcdf8ba7 New Crowdin translations - zh-CN (#25661)
Co-authored-by: Crowdin Bot <support+bot@crowdin.com>
2025-10-08 16:19:27 +11:00
PX4 Build Bot fa706c905f New Crowdin translations - uk (#25660)
Co-authored-by: Crowdin Bot <support+bot@crowdin.com>
2025-10-08 15:58:35 +11:00
mahima-yoga be29f647cb logging: log sensor_baro with add_topic_multi
Ensures external barometers (e.g., over UAVCAN) are also logged.
2025-10-06 10:19:01 +02:00
annoybot a443997264 docs: add a new rust ULOG parser to the list of known parsers 2025-10-06 09:11:54 +02:00
Jacopo Panerati 39837d44b1 upload_log.py: add server as an argument (#25702) 2025-10-06 09:03:09 +02:00
PX4 Build Bot 66436a980c New Crowdin translations - ko (#25706)
Co-authored-by: Crowdin Bot <support+bot@crowdin.com>
2025-10-05 15:24:37 +11:00
JoelJ18 6be7abb13d MicroStrain driver: Expanded aiding support (#25673)
* External mag + Optical flow aiding

* Adding autostart

* global position eph fix

* write fix

* configureAidingSources split + frame fixes + params cleanup

* configureGnssAiding fix + params cleanup

* Redundant param removal

* External Heading fix
2025-10-03 19:13:04 -08:00
Maciej Małecki 1a3cdecb39 boards/mro/pixracerpro: enable additional UARTs (#22516)
The UARTs themselves were already present, just not configured under any
alias.
Follow [ArduPilot UART naming for this
board](https://ardupilot.org/plane/docs/common-pixracer-pro.html#default-uart-order),
out of necessity: it's the only combination that makes sense and is
understood by QGroundControl.
(For example, I've attempted configuring the additional UARTs as `_EXT1`
and `_EXT2`, but only `_EXT2` was understood by QGC.)

Trying to actually use the FrSky telemetry port for anything without
configuring FrSky telemetry on a different port may be impossible without
modifying the board's `init/rc.board_extras`.
(Should that script be modified to check if the port is used for
anything else?)

Skip naming the RC input port.

Fixes #21455.
2025-10-03 10:03:40 -08:00
QiTao Weng 849819629a dds: add adsb topic (#25652) 2025-10-03 19:01:40 +01:00
Marco Hauswirth 6e579cb75a improve gnss altitude fusion starting logic 2025-10-03 10:11:41 +02:00
Marco Hauswirth c2c721a2d6 * add gnss-fault flags to estimator-status msg
* react to comments
2025-10-03 10:11:41 +02:00
Marco Hauswirth 3712af8b7f * avoid gnss-based altitude reset in DR-mode
* add hysteresis for re-enabling fusion
* disable lat/lon/vel fusion on gnss_hgt_fault
2025-10-03 10:11:41 +02:00
mahima-yoga 86f2fdfd7d docs: add description to AutotuneAttitudeControlStatus.msg 2025-10-02 15:17:40 +02:00
mahima-yoga 519e3f60af docs: update fixed-wing autotune docs 2025-10-02 15:17:40 +02:00
mahima-yoga 614e15d5f4 fw-autotune: detect and limit amplitude of ID maneuver
Increases signal ampltiude on a 1Hz sin input until a target rate (R/P/Y = 0.8/0.5/0.5 rad/s) is reached. Identification signal is then scaled with this ampltitude instead of the user-defined parameter.
2025-10-02 15:17:40 +02:00
Alexander Lerach 97a97991c1 airframes 4017, 4041: exclude from v6x targets to save flash 2025-10-02 14:43:05 +02:00
Hamish Willee 7565318107 Update MAVLink to latest (#25692)
Co-authored-by: PX4BuildBot <bot@pixhawk.org>
2025-10-01 10:54:18 -08:00
Matthias Grob a0810462fd ManulControlSelector: initialize disabled such that it's obvious if paramter is not loaded correctly 2025-10-01 18:31:12 +02:00
Matthias Grob 661b0655dc ManualControlSelector: unify validity conditions into one place 2025-10-01 18:31:12 +02:00
Matthias Grob 365525269e ManualControlSelector: simplify prioritization logic 2025-10-01 18:31:12 +02:00
Matthias Grob f1f3c81566 Update COM_RC_IN_MODE enum naming 2025-10-01 18:31:12 +02:00
Matthias Grob acf5766f9c commander_params: rewrite COM_RC_IN_MODE documentation 2025-10-01 18:31:12 +02:00
Tobias Büchli 2c062a45ba feat: expand to 4 modes with more priority options 2025-10-01 18:31:12 +02:00
Tobias Büchli 25c66a7ee5 feat: extend COM_RC_IN_MODE 5 and 6 to source ID ascending and descending priority modes 2025-10-01 18:31:12 +02:00
Luka Filipović 6c69d86d7e mission_base: on mission end, set loiter position from previous position type setpoint 2025-10-01 17:44:58 +02:00
Hamish Willee 32a74afbb8 Add workflow_dispatch to AWS docs deployment 2025-10-01 17:05:44 +10:00
chfriedrich98 a6bf5a9066 Rover: Simulation Update (#25644)
* gz: update submodule

* rover: update simulation airframes

* docs: rover simulation
2025-09-30 23:04:07 -08:00
Hamish Willee 5dab3dd3d2 [Main] Fix up versions to point to v1.16 (#25691) 2025-10-01 15:50:59 +10:00
Jacob Dahl 4766f3c1d3 board: px4_fmu-v6x: remove land detector and landing target estimator from uuv and spacecraft targets (#25688) 2025-09-30 21:50:32 -08:00
Hamish Willee 5999cad92c Update aws docs deployment (match current 1.16) (#25680) 2025-10-01 15:40:43 +10:00
PX4 Build Bot bd71881f8a New Crowdin translations - ko (#25659)
Co-authored-by: Crowdin Bot <support+bot@crowdin.com>
2025-10-01 13:53:06 +10:00
Hamish Willee 4dab1108c3 VehicleOdometry.msg - clarify frames (#23444) 2025-10-01 10:03:09 +10:00
Henry Kotzé dbd13070e5 esp32: pwm register updates correctly on change (#25653)
- removed the bug where some overflow would occur on the PWM signal when
  changing the duty cycle of the signal after power up. (PWM_MAIN_DIS,
PWM_MAIN_MIN or PWM_MAIN_MAX)

removed commented code

cleanup of previous cherry-pick

Co-authored-by: henrykotze <henry@autonosky.com>
2025-09-30 11:15:06 -08:00
Jacob Dahl f3b2599d33 ekf: range fusion: fix height ref (#25654)
* ekf2: range height skip "unhealthy" samples, but respect timeout

 - we should never directly use an "unhealthy" range finder sample for
   state corrections or resets, but we also shouldn't immediately abort
   active rng_hgt until the timeout has passed

* check starting_conditions_passing once

* ekf2: conditional range aid change height ref

---------

Co-authored-by: Daniel Agar <daniel@agar.ca>
2025-09-30 11:14:26 -08:00
Daniel Agar e3309b9f87 ekf2: rng don't allow bad measurement in bad_acc_vertical (#25636)
- if bad vertical acceleration is detected there's an emergency case
   where rejected range finder observations are allowed to be used, but
   this still can't happen if the sample itself is known to be bag
2025-09-30 11:14:04 -08:00
Matthias Grob 4d2170c13e docs/failure_injection: motor off requires CA_FAILURE_MODE to be set 2025-09-30 11:23:09 +02:00
Matthias Grob e59afce5db Enable directly injecting motor failures using e.g. failure motor off -i 1
Only if SYS_FAILURE_EN is enabled and CA_FAILURE_MODE is > 0.
2025-09-30 11:23:09 +02:00
Matthias Grob 786e0a12c2 FailureInjector simplification rework 2025-09-30 11:23:09 +02:00
Matthias Grob cefa41f85c failure command: fix array bound seg fault with e.g. failure motor -i 1 2025-09-30 11:23:09 +02:00
Matthias Grob 7f2a67a588 Commander: split out failure injection class into its own file 2025-09-30 11:23:09 +02:00
Jacob Dahl bacb30650c uavcan: don't init ESC if UAVCAN_ENABLE isn't set for ESC 2025-09-29 15:40:33 -04:00
Daniel Agar 900a5ede01 ekf2: range height skip "unhealthy" samples, but respect timeout (#25634)
* ekf2: range height skip "unhealthy" samples, but respect timeout

 - we should never directly use an "unhealthy" range finder sample for
   state corrections or resets, but we also shouldn't immediately abort
   active rng_hgt until the timeout has passed

* check starting_conditions_passing once

---------

Co-authored-by: Jacob Dahl <dahl.jakejacob@gmail.com>
2025-09-29 11:23:37 -08:00
Alexander Lerach 03e6f40995 nuttx submodule update (dcache fix)
* nuttx submodule update (dcache fix)
2025-09-29 18:04:26 +02:00
airpixel-cz 2b0ea50d16 mavlink: parameters: fix camera and cannode param message routing 2025-09-26 23:16:05 -08:00
Daniel Agar 7eec4c9814 ekf2: fix gravity aid src fused flag 2025-09-26 11:45:54 -04:00
Matthias Grob 053cc9aecc Fix newlines broken from #25499 66b07d8219 2025-09-26 14:01:55 +02:00
chfriedrich98 66b07d8219 Docs: Rover API (#25499)
* docs: add RoverSetpointTypes

* docs: add rover api

* docs: remove rover offboard mavlink support

* docs: fix broken links

* Apply suggestion from @hamishwillee

---------

Co-authored-by: Hamish Willee <hamishwillee@gmail.com>
2025-09-26 10:33:35 +10:00
Sriram Kanagalingham 5023174715 tools: mavlink_shell: fix backspace handling
Changed ASCII command from ASCII #127 to ASCII #8

Good: Changed ASCII command from ASCII #127 to ASCII #8

Reported-by: jsm09a <https://github.com/jsm09a>

Signed-off-by: Siri <sriramj2@hotmail.com>
2025-09-25 13:14:13 -08:00
Daniel Agar 469fe62166 logger: cleanup crypto defines 2025-09-25 15:10:21 -04:00
Daniel Agar 6f4e873bce logger: only include crypto params if enabled 2025-09-25 15:10:21 -04:00
Jacob Dahl 35f882cd3c commander: accel cal rotate offsets and scales from body frame back into sensor frame before saving (#25626)
- fixes https://github.com/PX4/PX4-Autopilot/issues/25606
2025-09-25 14:12:15 -04:00
Daniel Agar a6f8b00a6a ekf2: SensorRangeFinder purge unused Sensor interface 2025-09-25 14:07:43 -04:00
Daniel Agar 2347cb9e50 ekf2: SensorRangeFinder delete unused faulty flag 2025-09-25 11:29:54 -04:00
Silvan Fuhrer 854765934b ros2_docs: fix new line 2025-09-25 10:52:55 -04:00
Hamish Willee cbf39f5ceb msg: AirspeedValidated - uorb topic to standard (#25579)
* AirspeedValidated - uorb topic to standard

* Apply suggestions from code review

* Update msg/versioned/AirspeedValidated.msg

* Fix up links to renamed uORB constants

---------

Co-authored-by: PX4BuildBot <bot@pixhawk.org>
2025-09-25 11:02:02 +02:00
Beat Küng 7dcbad536d docs: add page for ROS 2 waypoint missions (#25492)
* docs: add page for ROS 2 waypoint missions

Corresponds to https://github.com/Auterion/px4-ros2-interface-lib/pull/137

* Ros lib subedit

* Waypoint missions - prettier

* Make compatibility very clear

* docs: add ROS-based waypoint missions to release notes

* docs: ROS-based waypoint mission clarifications

* Subedit intro

* docs: ros waypoint missions clarifications

---------

Co-authored-by: Hamish Willee <hamishwillee@gmail.com>
2025-09-25 17:27:25 +10:00
jmackay2 bbc6775706 Update gazebo 24.04 documentation (#25586) 2025-09-25 17:07:23 +10:00
Hamish Willee 367f12b338 Don't build translations on push (only PR) (#25631) 2025-09-25 17:05:23 +10:00
PX4 Build Bot becca14991 New Crowdin translations - zh-CN (#25629)
Co-authored-by: Crowdin Bot <support+bot@crowdin.com>
2025-09-25 13:52:43 +10:00
Hamish Willee 9b83c9ba30 Update docs_deploy.yml to also run on translation PRs (#25630)
Added support for localization document translations in the workflow.
2025-09-25 13:35:34 +10:00
PX4 Build Bot f77c1e425a New Crowdin translations - ko (#25627)
Co-authored-by: Crowdin Bot <support+bot@crowdin.com>
2025-09-25 12:34:45 +10:00
PX4 Build Bot db20eccf3a New Crowdin translations - uk (#25628)
Co-authored-by: Crowdin Bot <support+bot@crowdin.com>
2025-09-25 12:34:20 +10:00
Daniel Agar e342640698 drivers/gps: warn if gps_inject_data publications have been missed 2025-09-24 22:11:49 -04:00
Ramon Roche e7c5001e94 ci: stale and close issues/prs with no activity (#25554)
- Marked as stale if no activity for 90 days
 - Closed if no activity for 30 days after being marked as stale
 - Helpful stale and close messages

Signed-off-by: Ramon Roche <mrpollo@gmail.com>
Co-authored-by: Daniel Agar <daniel@agar.ca>
2025-09-24 22:06:56 -04:00
Hamish Willee bec570b3b4 Update ULog file format documentation (#25624)
Added information about tools for converting ULog to other formats.
2025-09-25 11:02:16 +10:00
Matthew Berk 8625a902f7 Add warning for known issue in FW RTL landings (#25587)
* Add warning for known issue in FW RTL landings

Currently there is an issue in 1.15.0...main which causes a FW aircraft to veer off course during the final approach on landing. This could cause a personnel safety risk and should be noted.

* Update docs/en/flight_modes_fw/return.md

* Update docs/en/flight_modes_fw/return.md

---------

Co-authored-by: Hamish Willee <hamishwillee@gmail.com>
2025-09-25 09:11:53 +10:00
Radiolink 2ec0407815 boards: add Radiolink PIX6 (#25562)
* boards: add Radiolink PIX6

* Fix newlines and format issues

* Fix newlines issues

* docs:add radiolink_pix6.md document

* Subedit, prettier, get images

* Add hero image

* docs:Add some necessary instructions

* Subedit

---------

Co-authored-by: Ubuntu <diaohuayuan@radiolink.com.cn>
Co-authored-by: Hamish Willee <hamishwillee@gmail.com>
2025-09-24 16:17:43 -04:00
Beat Küng a5c4cc38ac lightware_laser_i2c: add binary protocol support for SF30/d (#25570)
Using the SF30/d with the legacy protocol caused a delay of the
measurements of ~1s. This is not the case with the binary protocol anymore.

The initialization sequence used for SF20/c did not work and is therefore
updated.

Tested on both SF20/c and SF30/d.
2025-09-24 16:17:25 -04:00
Jacob Dahl 26760e3c2c ekf2: reduce EKF2_MIN_RNG to 0.01 (#25574) 2025-09-24 15:27:24 -04:00
Parkhb1106 3925562ce6 commander: fix tune_control timestamp on initial publication 2025-09-24 10:55:32 -08:00
Louis-max-H e71faf38a0 Septentrio GNSS resilience reporting (#25012)
Co-authored-by: Tory9 <vvpost05@gmail.com>
2025-09-24 11:08:10 -04:00
Beniamino Pozzan 8fe2a2218e docs: clarify Micro-XRCE-DDS-Agent versions ROS 2 compatibility (#25591)
---------

Signed-off-by: Beniamino Pozzan <beniamino.pozzan@gmail.com>
Co-authored-by: Hamish Willee <hamishwillee@gmail.com>
2025-09-24 09:24:03 +01:00
PX4 Build Bot f2c0e09505 New Crowdin translations - zh-CN (#25615)
Co-authored-by: Crowdin Bot <support+bot@crowdin.com>
2025-09-24 17:42:43 +10:00
PX4 Build Bot b26046e137 New Crowdin translations - uk (#25614)
Co-authored-by: Crowdin Bot <support+bot@crowdin.com>
2025-09-24 17:41:56 +10:00
PX4 Build Bot 82ecc9c8c7 New Crowdin translations - ko (#25613)
Co-authored-by: Crowdin Bot <support+bot@crowdin.com>
2025-09-24 17:41:50 +10:00
Hamish Willee a464825b33 Fix links to param ref in FW position tuning guide 2025-09-24 09:30:53 +02:00
PX4 Build Bot 8efb5230ae New Crowdin translations - zh-CN (#25612)
Co-authored-by: Crowdin Bot <support+bot@crowdin.com>
2025-09-24 17:25:45 +10:00
PX4 Build Bot b28bdd600b New Crowdin translations - uk (#25611)
Co-authored-by: Crowdin Bot <support+bot@crowdin.com>
2025-09-24 17:25:13 +10:00
PX4 Build Bot 11359791a0 New Crowdin translations - ko (#25610)
Co-authored-by: Crowdin Bot <support+bot@crowdin.com>
2025-09-24 17:25:03 +10:00
PX4 Build Bot 26c420c1a6 New Crowdin translations - zh-CN (#25609)
Co-authored-by: Crowdin Bot <support+bot@crowdin.com>
2025-09-24 17:14:17 +10:00
Beat Küng cf0def1b69 docs: minor api updates for ros modes (#25563) 2025-09-24 17:13:04 +10:00
PX4 Build Bot cb9641c989 New Crowdin translations - zh-CN (#25608)
Co-authored-by: Crowdin Bot <support+bot@crowdin.com>
2025-09-24 16:19:00 +10:00
PX4 Build Bot 9b6d07ee67 New Crowdin translations - ko (#25588)
Co-authored-by: Crowdin Bot <support+bot@crowdin.com>
2025-09-24 10:33:44 +10:00
PX4 Build Bot be3354d238 New Crowdin translations - uk (#25589)
Co-authored-by: Crowdin Bot <support+bot@crowdin.com>
2025-09-24 10:33:34 +10:00
PX4 Build Bot db58ecb5eb New Crowdin translations - zh-CN (#25590)
Co-authored-by: Crowdin Bot <support+bot@crowdin.com>
2025-09-24 10:33:22 +10:00
Hamish Willee 9980dccf43 [Docs] Fix broken links internal (#25604) 2025-09-24 10:10:08 +10:00
Hamish Willee 06a3f15d39 [Docs] update metadata (#25603) 2025-09-24 10:01:55 +10:00
Alexander Lerach 0a8a5472ec nuttx submodule update (fix sem holder list) 2025-09-23 10:02:49 +02:00
Beat Küng 9670eb69b3 commander: use double literals to avoid implicit conversion
Fixes a CI failure for fuzzing and macos:
https://github.com/PX4/PX4-Autopilot/actions/runs/17906277709/job/50907922642

/__w/PX4-Autopilot/PX4-Autopilot/src/modules/commander/Commander.cpp:471:37: fatal error: implicit conversion increases floating-point precision: 'float' to 'double' [-Wdouble-promotion]
  470 |                         bool ret = send_vehicle_command(vehicle_command_s::VEHICLE_CMD_EXTERNAL_ATTITUDE_ESTIMATE,
      |                                    ~~~~~~~~~~~~~~~~~~~~
  471 |                                                         0.f, 0.f, heading, 0.f, 0.f, 0.f, heading_accuracy);
      |                                                                                      ^~~
1 error generated.
2025-09-22 09:31:26 -07:00
Beat Küng 061f34919e ci: JasonEtco/create-an-issue needs permissions to create issues 2025-09-22 09:31:26 -07:00
Claudio Chies b730acfc76 BOARDS: MISC: remove "auto-generated" for files which are not autogenerated anymore 2025-09-22 15:02:24 +02:00
Claudio Chies d3acee315a BAT: Consolidate the highest feasible number of batteries into just 3 2025-09-22 15:02:24 +02:00
Claudio Chies f90d6c03fc LOG: increase number of loggable batteries to 3 2025-09-22 15:02:24 +02:00
H S Helson Go b081cf5c31 ucrxe_dds_client: Implement simple parameter-driven message namespace (#25444)
* ucrxe_dds_client: Implement simple parameter-driven message namespace

* chore: remove change of parameter_reference.md

Signed-off-by: Beniamino Pozzan <beniamino.pozzan@gmail.com>

---------

Signed-off-by: Beniamino Pozzan <beniamino.pozzan@gmail.com>
Co-authored-by: Beniamino Pozzan <beniamino.pozzan@gmail.com>
2025-09-20 16:32:00 +01:00
Alex Klimaj 91fa0f4693 boards: ark x20 and f9p gps (#25149)
* boards: ark x20 gps

* update startup

* fix cmake variants

* boards: ark f9p gps

* ark x20 gps add serial dma hrt call

* update gps submodule with x20 support

* update default constellations

* fix mag rotation
2025-09-19 10:06:03 -08:00
Hamish Willee 799f910ca9 uORB message layout fixes (#25581)
* uORB message layout fixes

* Apply suggestions from code review

---------

Co-authored-by: PX4BuildBot <bot@pixhawk.org>
2025-09-19 09:06:01 +10:00
bresch c06ba93175 mc-auto: handle EKF heading reset 2025-09-18 17:00:16 +02:00
bresch 82308da18d ekf2: support heading external update from MAV_CMD_EXTERNAL_ATTITUDE_ESTIMATE 2025-09-18 17:00:16 +02:00
bresch eba0b99950 ekf2: remove unnecessary code
The delta angles are now correctly accumulated in case
multiple resets are triggered during the same epoch
2025-09-18 17:00:16 +02:00
bresch 361d66bb44 ekf2: add reporting of gnss_vel status flag 2025-09-18 17:00:16 +02:00
Silvan Fuhrer d2e4d85bce Add Altitude Cruise mode
-add new NAVIGATION_STATE_ALTITUDE_VOYAGER
-this mode does require manual control to enter
-but you can disable the manual control loss failsafe to continue
flying in case of manual control loss
-for MC: in throttle and yaw are controlled like in Altitude mode,
the tilt is controlled via integrated rate input (similar to Acro,
but with tilt limit)

Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2025-09-18 15:50:10 +02:00
Matthias Grob 5c5bf0b83d Remove parameters MPC_{XY/Z/YAW}_MAN_EXPO and use default value instead 2025-09-18 15:50:10 +02:00
Matthias Grob 5b94557310 Sticks: change internal order and sign of stick positions 2025-09-18 15:50:10 +02:00
Matthias Grob 234e4688b0 Sticks: calculate expo only upon getter call 2025-09-18 15:50:10 +02:00
Matthias Grob 2e910fe185 FlightTask{Altitude+Orbit}: use getter for specific stick value instead of entire array 2025-09-18 15:50:10 +02:00
Matthias Grob 2bf9fce577 Sticks: globalize MPC_HOLD_DZ to MAN_DEADZONE 2025-09-18 15:50:10 +02:00
mahima-yoga a9720cf1ef FixedWingModeManager: use Sticks library 2025-09-18 15:50:10 +02:00
mahima-yoga a514289a68 Move Stick class into a globally available library 2025-09-18 15:50:10 +02:00
Pernilla 2cb97e79b9 FlightTaskManualAccelerationSlow: Acquire gimbal control until expected IDs are reported (#25565)
* Acquire control until expected id s are reported

* require an updated message and allow release in case early exit of FlightTask

* FlightTask Gimbal: acquiring logic simplification suggestion

* formatting

---------

Co-authored-by: Matthias Grob <maetugr@gmail.com>
2025-09-18 11:09:09 +02:00
Hamish Willee e8ccb23dc8 PurePursuitStatus.msg - whitespace indentation (#25544) 2025-09-18 17:33:36 +10:00
Hamish Willee dd65380bf3 Ark GNSS CAN - link to the DroneCAN docs for fixed base (#25382)
* Ark GNSS CAN - link to the DroneCAN docs for fixed base

* Update docs/en/dronecan/ark_rtk_gps.md
2025-09-17 22:58:56 -08:00
Hamish Willee 0303d36e60 RoverAttitudeSetpoint et al - whitespace (#25545)
* RoverAttitudeSetpoint - whitespace

* Format RoverAttitudeStatus.msg for consistency

* Format RoverPositionSetpoint.msg for consistency

* Format msg/RoverRateSetpoint.msg for consistency

* Format msg/RoverRateStatus.msg for consistency

* Format msg/RoverSpeedSetpoint.msg for consistency

* Reformat RoverSpeedStatus.msg for consistency

* Fix formatting of pid_yaw_rate_integral field

* Fix formatting in RoverSteeringSetpoint.msg

* Fix formatting in RoverThrottleSetpoint.msg

* Apply suggestions from code review
2025-09-18 15:59:54 +10:00
Alex Espinoza 78d602e68a switched instructions for cloning Micro-XRCE-DDS from v2.4.2 to v2.4.3 (#25525)
* switched instructions for clodning Micro-XRCE-DDS from v2.4.2 to v2.4.3 since v2.4.2 references a bad fast-dds tag that doesnt build

* reverted uxrce instructions changes from docs/ko docs/uk and docs/zh sin
ce they are generated automatically and should not be changed manually
2025-09-17 11:57:32 +10:00
Jacob Dahl 2cc64c438f docs: UAVCAN_ESC_IFACE (#25560)
* dronecan: esc: change UAVCAN_ESC_IFACE to 2 to default to only outputting on CAN2

* revert param default and update docs

* Subedit

---------

Co-authored-by: Hamish Willee <hamishwillee@gmail.com>
2025-09-16 15:53:00 -08:00
Eric Katzfey e72ffa3b1f QURT: Changed the non-blocking UART write to use the blocking write with a comment that Qurt (#25573)
still needs a non-blocking write implemented.
2025-09-16 10:40:19 -08:00
Pernilla 0c8f5ebc32 Navigator: delay neutral gimbal command (#25551)
* Set gimbal neutral after delay
2025-09-16 10:38:47 +02:00
Rowan Dempster d205d11c3d Recovering UTC timestamps from ULog without sensor_gps (#25534)
* Added overloaded get_log_time util for fractional seconds

* Added write_info implementation for double info types

* Save boot time to .ulg via info message key boot_time_utc

* Changed time type from double to uint64_t, formatted

* Fixing get_log_time function doc
2025-09-15 16:18:26 -08:00
Daniel Agar d3f912ad25 platforms: Serial new dedicated writeBlocking method (#25537)
* platforms: Serial new dedicated writeBlocking method

* finish writeBlocking()

* add back fsync

* updated posix, added string constant for port not open error

* format

* fix build

* remove fsync

* actually remove fsync

* remove fsync from write

* review feedback

---------

Co-authored-by: Jacob Dahl <dahl.jakejacob@gmail.com>
Co-authored-by: Jacob Dahl <37091262+dakejahl@users.noreply.github.com>
2025-09-15 15:22:49 -08:00
Daniel Agar 41d3403ec7 drivers/gps: prioritize non-blocking reads over injection (#25535) 2025-09-15 15:18:45 -08:00
PX4 Build Bot a14cd9ad79 New Crowdin translations - ko (#25557)
Co-authored-by: Crowdin Bot <support+bot@crowdin.com>
2025-09-16 08:57:44 +10:00
PX4 Build Bot d42aebe100 New Crowdin translations - uk (#25558)
Co-authored-by: Crowdin Bot <support+bot@crowdin.com>
2025-09-16 08:57:19 +10:00
PX4 Build Bot 0068fea2f5 New Crowdin translations - zh-CN (#25559)
Co-authored-by: Crowdin Bot <support+bot@crowdin.com>
2025-09-16 08:56:46 +10:00
Jacob Dahl 5d0bbaabb2 codestyle: exclude sgbecom submodule from style check 2025-09-15 11:18:52 -06:00
Jacob Dahl 27f9161458 ark: UAVCAN_ESC_IFACE per board, v6x uses CAN2 2025-09-15 10:37:53 -06: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
chfriedrich98 a1bc09a6ad rover: seperate speed control 2025-08-20 10:54:16 +02:00
Hamish Willee e81c62cc36 Add note on INS page about adding the driver modules (#25464) 2025-08-20 18:01:37 +10:00
Hamish Willee 18d76b18b9 docs_flaw_checker.yml3 - use sed to strip out the escapes (#25463) 2025-08-20 16:40:56 +10:00
Hamish Willee 722580760c docs_flaw_checker.yml pt 2 (#25462) 2025-08-20 16:35:49 +10:00
Hamish Willee c65b1d845a docs_flaw_checker.yml - attempt to fix the flaw safely (#25461) 2025-08-20 16:31:12 +10:00
Hamish Willee 71b8e299fd MAV_CMD_REQUEST_MESSAGE support for MESSAGE_INTERVAL (#25460)
* MAV_CMD_REQUEST_MESSAGE support for MESSAGE_INTERVAL

* Default should be -1 for stream

* Format

---------

Co-authored-by: PX4BuildBot <bot@pixhawk.org>
2025-08-20 15:07:44 +10:00
chfriedrich98 eeaf1d7959 docs: new rover stick input scaling parameters (#25427)
* docs: new rover stick input scaling parameters

* docs: clarify rover basic setup

* Update docs/en/config_rover/basic_setup.md

* Minor subedit

---------

Co-authored-by: Hamish Willee <hamishwillee@gmail.com>
2025-08-20 14:12:31 +10:00
Andrew Wilkins 35ff853f76 Docs/test card update (#25451)
* added VIO test card

* added tickets for regression testing

* Subedit

---------

Co-authored-by: Hamish Willee <hamishwillee@gmail.com>
2025-08-20 12:08:49 +10:00
henrykotze 8b58c01cd7 ESP32 Support Sponsored by AutonoSky
nsh console running on USB
param module running
working with i2c and common drivers
provided implementation for drv_pwm_output.h
i2cdetect working as expected with no device
mavlink started succesfully
mounts sd card and logger runs
logger to file succesfully
pwm_servo implemented without using Nuttx lib
pwm_out outputs expected waveforms
- however currently if the frequency is higher than what the pwm_out
driver runs, there will be aliasing, based on how the registers gets
resets
wifi softap working
- Seeing wifi hotspot
- cant connect due to wrong password
- problems with adjusting ssid and password
wifi ssid and password being set accordinglu
connected to wifi hotspot with dhpcd
- made some changes to nuttx to only build for SoftAP mode, however this
was effectivelyy removing the ifdef for STATION mode. Should investigate
the coexist option again
added ifdef to not use timer 0 when wifi enabled
- reverted esp32 rt_timer to make use of timer 0 by default

fix setting incorrect bit in hrt timer register

- hrt running as expected, but on startup the pwm_out driver starts up
at about 200Hz and then rises over a minute or so 250Hz. Not sure if
this was present previously, and could be due to Wifi running at time
priority on timer 0

pull xtensa compilers in setup.ubuntu.sh
revert logger stacksize and cmake argument
esp32 chip revision and PX4 UUID implemented

spi board reset implemented, formatting checked

devkit acts on startup as a wifi bridge for comms

- the most usefull setting for the general developer when buying a esp32 devkit
- testing Mavlink shell using ./Tools/mavlink_shell.py
- todo: Test mavlink messages being forward

improve wifi telemetry by increasing prio

- Remove power save mode on wifi
- increased daemon thread schedule priority to 50

compiles without Nuttx changes

- updated compiler settings to match those of nuttx on px4 side

add espressif_esp32 to excluded boards

ci: allow docker to find xtensa compilers
2025-08-19 11:09:56 -07:00
Silvan Fuhrer b3c7667f41 Fw rate controller: enable yaw rate controller when feeding in yaw rate setpoints outside of manual control (#25457)
Signed-off-by: Silvan <silvan@auterion.com>
2025-08-19 18:41:49 +02:00
Alvaro Fernandez 333b77cb38 fw_mode_manager: fixed altitude hold for auto fixed-bank loiter (#25456) 2025-08-19 17:05:13 +02:00
dawr68 6934bc908e airspeed calibration: save offset only when full procedure succeed (#25412)
* feat: save offset only when full procedure succeed

* feat: zero dpres off on all failures

* feat: remove unnecessary param_save_default calls
2025-08-19 14:28:13 +02:00
Niklas Hauser 8c4d998931 [board] Use HSE as RTC clock for FMUv6s 2025-08-19 11:18:49 +02:00
Niklas Hauser 450f1d33f6 [board] Increase CPU speed to 480MHz for FMUv6s
The Ethernet clock output is not used anymore so there are no
restrictions on the clock tree configuration.
This aligns the clock speeds with FMUv6x.
2025-08-19 11:18:49 +02:00
Alexander Lerach 68fa5fc312 mavlink: add message spacing for AVAILABLE_MODES, for low bandwidth
* mavlink: add message spacing for AVAILABLE_MODES, for low bandwidth links

* calculate delay based on rate

* fixed transmit time calc & not delay single mode send

Co-authored-by: bkueng <beat-kueng@gmx.net>

---------

Co-authored-by: bkueng <beat-kueng@gmx.net>
2025-08-19 10:36:37 +02:00
Silvan Fuhrer 16f97635ce Separate RC and manual control terms
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2025-08-18 18:11:03 +02:00
Atsunori Saito e15752099f fix: correct hex format for CRC output (#25442)
- switch to PRIx32 for proper hex formatting
- keep zero-padding and casing consistent
- ensure status prints CRC correctly
2025-08-18 08:03:44 -08:00
Liu1 b52a9e7e32 boards: Modify the cuav_x25-evo GPIO_nARMED level state (#25431)
PULLUP and PULLDOWN change actions for the board.
2025-08-18 08:51:15 -04:00
PX4 Build Bot a70a558393 New Crowdin translations - ko (#25438)
Co-authored-by: Crowdin Bot <support+bot@crowdin.com>
2025-08-18 09:47:28 +10:00
PX4 Build Bot b8936083d8 New Crowdin translations - uk (#25439)
Co-authored-by: Crowdin Bot <support+bot@crowdin.com>
2025-08-18 09:47:17 +10:00
PX4 Build Bot fdf0e60c11 New Crowdin translations - zh-CN (#25440)
Co-authored-by: Crowdin Bot <support+bot@crowdin.com>
2025-08-18 09:47:12 +10:00
PX4 BuildBot c2e2d8231e Update submodule mavlink to latest Thu Aug 14 12:39:27 UTC 2025
- mavlink in PX4/Firmware (4acabda9cef8bfa6ea670672dddbc45d97276612): https://github.com/mavlink/mavlink/commit/b27d03bffd7969b30242a00aeaa6c0430d34d429
    - mavlink current upstream: https://github.com/mavlink/mavlink/commit/f9dbd8c4968e9e135383e007244e4911ad4f729f
    - Changes: https://github.com/mavlink/mavlink/compare/b27d03bffd7969b30242a00aeaa6c0430d34d429...f9dbd8c4968e9e135383e007244e4911ad4f729f

    f9dbd8c4 2025-08-14 Julian Oes - C example fixup (#2333)
e261db27 2025-08-14 Nick E - common.xml: Add COASTING flag to CAMERA_TRACKING_STATUS_FLAGS (#2326)
4f0efaaa 2025-08-14 Nick E - common.xml: Add "Power On" action to MAV_CMD_PREFLIGHT_REBOOT_SHUTDOWN command (#2329)
6a98757c 2025-08-14 vlad-serbanica - Add new component IDs for multiple radios (#2327)
2ca0cb55 2025-08-14 Nick E - common.xml: Add commands, capability and flag for Moving Target Indicators (MTI) (#2323)
115f1c83 2025-08-14 Christian Clauss - Typos: Run codespell on all files (#2328)
2025-08-14 14:40:34 -04:00
czx-fly 1f2cdf44dc Fix custom name (#25426)
* board:xc-fly misspelling rename (slam to slim)
2025-08-14 14:03:32 -04:00
chfriedrich98 e06f7f243c rover: add exponential scaling to manual yaw rate input 2025-08-14 12:00:33 +02:00
Hamish Willee 8eb1c6063e Fix up uorb message spacing to add whitespace (#25421)
* Fix up uorb message spacing for already updated messages

* Apply suggestions from code review

---------

Co-authored-by: PX4BuildBot <bot@pixhawk.org>
2025-08-14 19:39:52 +10:00
Hamish Willee 01db727fa2 Fix workflow vulnerabilities in flaw checker and comments (#25419)
* docs_pr_comment.yml - fix script expansion issue

* Fix flaw checker too

* docs_flaw_checker.yml - tj-actions/changed files to latest

Fixes security bug in using vulnerable version

---------

Co-authored-by: PX4BuildBot <bot@pixhawk.org>
2025-08-14 17:38:14 +10:00
Hamish Willee f3e7d14efa [Docs] msg/VehicleAirData.msg - to standard (#25228)
* [Docs] msg/VehicleAirData.msg - to standard

* Update msg/VehicleAirData.msg

* Update msg/VehicleAirData.msg

* Update msg/VehicleAirData.msg

Co-authored-by: Silvan Fuhrer <silvan@auterion.com>

* Update msg/VehicleAirData.msg

* Fix up build issue related to docs_deploy2

---------

Co-authored-by: PX4BuildBot <bot@pixhawk.org>
Co-authored-by: Silvan Fuhrer <silvan@auterion.com>
2025-08-14 11:37:48 +10:00
chfriedrich98 72796a9844 docs: update ackermann sih (#25418)
* docs: update ackermann sih

* Update metadata to fix broken link

---------

Co-authored-by: Hamish Willee <hamishwillee@gmail.com>
2025-08-14 11:03:07 +10:00
accton-iot 2333fb2853 boards: new accton-godwit_ga1 2025-08-13 11:28:37 -04:00
chfriedrich98 9a1845902e ackermann: add SIH airframe (#25405) 2025-08-13 15:41:14 +02:00
Andrew Brahim a46125b135 SF45 revert missing bin logic (#25173)
* revert missing bin logic

Signed-off-by: dirksavage88 <dirksavage88@gmail.com>

* removed else and initialized at variable declaration

Signed-off-by: dirksavage88 <dirksavage88@gmail.com>

---------

Signed-off-by: dirksavage88 <dirksavage88@gmail.com>
Co-authored-by: Claudio Chies <61051109+Claudio-Chies@users.noreply.github.com>
2025-08-13 08:46:52 -04:00
Hamish Willee c320a9240b Add docs deploy 2 for testing (#25416) 2025-08-13 15:51:44 +10:00
chfriedrich98 c475ec2c1f docs: ackermann rover sih (#25229)
* docs: ackermann rover sih

* prettier

---------

Co-authored-by: Hamish Willee <hamishwillee@gmail.com>
2025-08-13 09:04:33 +10:00
PX4 Build Bot 7984562e6f New Crowdin translations - uk (#25401)
Co-authored-by: Crowdin Bot <support+bot@crowdin.com>
2025-08-13 09:02:09 +10:00
PX4 Build Bot cc78aa5728 New Crowdin translations - zh-CN (#25402)
Co-authored-by: Crowdin Bot <support+bot@crowdin.com>
2025-08-13 09:01:33 +10:00
PX4 Build Bot 1060d3a43e New Crowdin translations - ko (#25400)
Co-authored-by: Crowdin Bot <support+bot@crowdin.com>
2025-08-13 09:01:22 +10:00
Niklas Hauser 5f5984b9b8 [work_queue] Configure stack size and priority via KConfig (#25406) 2025-08-12 22:54:35 +01:00
Daniel Agar f161a32c55 ekf2: revert minor baro ctrl check change from 078e4c9 (ekf: always publish baro and gnss bias even if zero (#25385)) 2025-08-11 21:38:22 -04:00
PX4 BuildBot a69e0c6efc boards: update all NuttX defconfigs 2025-08-11 21:03:07 -04:00
Alex Klimaj e05d8f2168 heater: fix on blips when the heater is off (#25398)
Co-authored-by: Jacob Dahl <37091262+dakejahl@users.noreply.github.com>
2025-08-11 20:52:53 -04:00
Shara 947c71e1cb mavlink: deprecated usage of MISSION_REQUEST at initial flight plan message (#24992) 2025-08-09 10:06:32 -04:00
czx-fly 37475d2557 boards: new xc-fly xc-slam board support (#25364) 2025-08-08 23:38:53 -04:00
cuav-liu1 e07598d838 boards: add cuav fmu-v6x 2025-08-08 23:35:03 -04:00
Jacob Dahl 078e4c911f ekf: always publish baro and gnss bias even if zero (#25385)
* ekf: always publish baro and gnss bias even if zero

* [SQUASH] ekf2: simplify hgt bias publish

---------

Co-authored-by: Daniel Agar <daniel@agar.ca>
2025-08-08 11:18:50 -08:00
Alex Klimaj eef01b1b9a AFBR scheduling fix (#25397)
* always reschedule from measurementReadyCallback, don't update range mode is processMeasurement fails, reschedule trigger faster if Argus_TriggerMeasurement fails, refactor mode switching logic, update perf counters

* make format

* make format exclude microstrain submodule

---------

Co-authored-by: Jacob Dahl <dahl.jakejacob@gmail.com>
2025-08-08 10:50:05 -08:00
Beat Küng bb3fd295ea mavlink: reduce rate multiplier to 0.25 while sending parameters
Co-authored-by: alexcekay <alexander@auterion.com>
2025-08-08 16:43:29 +02:00
bresch cfe1666add Mavlink: Stream the received auxiliary global position from dds over Mavlink 2025-08-08 10:57:30 +02:00
PX4 BuildBot e0af42a797 Update submodule tflite_micro to latest Fri Aug 8 01:46:23 UTC 2025
- tflite_micro in PX4/Firmware (a5c5ed74d0d2c43a4c9aafafa3eec58ba06f9a18): https://github.com/PX4/tflite-micro/commit/9d35a74b03fa313026982abb4d2c4ffe29de88bc
    - tflite_micro current upstream: https://github.com/PX4/tflite-micro/commit/3c0b1e3091e4ea423e1bf9da89d41d09517eb0c9
    - Changes: https://github.com/PX4/tflite-micro/compare/9d35a74b03fa313026982abb4d2c4ffe29de88bc...3c0b1e3091e4ea423e1bf9da89d41d09517eb0c9

    3c0b1e30 2025-05-20 Shlomi Regev - Add a Makefile option to a Cortex-M FPU (#3105)
2025-08-07 22:51:07 -04:00
Silvan Fuhrer f4fb485b21 AirspeedSelector: increase default of ASPD_WERR_THR
The previous default of 0.55m/s was very restrictive, the
ground-minus-wind airspeed estimate was barely ever valid
with it.

Signed-off-by: Silvan <silvan@auterion.com>
2025-08-07 22:10:32 -04:00
Alexis Guijarro a33b194d1d mRo boards: Explicit storage of parameters on microsd card as workaround due to present FRAM bug 2025-08-07 21:59:19 -04:00
Liu1 8462ead986 boards: add new cuav x25-evo (#25176) 2025-08-07 21:54:33 -04:00
Ian Scholl 4812311c6c ekf2: Add GPS fix type check bit (#25215) 2025-08-07 21:50:58 -04:00
alexklimaj 9531262cfe mavlink: new mode MAVLINK_MODE_DISTANCE_SENSOR 2025-08-07 21:26:13 -04:00
alexklimaj bc60307163 boards: ARK DIST 2025-08-07 21:26:13 -04:00
PX4 BuildBot 1dacd1dc7f Update submodule jsbsim_bridge to latest Fri Aug 8 00:42:56 UTC 2025
- jsbsim_bridge in PX4/Firmware (3619a876011bac0495e5fe88ec0ff71602fd1be2): https://github.com/PX4/px4-jsbsim-bridge/commit/68de2cc63ded9a0d6641d45e9eb3ed2b43454cba
    - jsbsim_bridge current upstream: https://github.com/PX4/px4-jsbsim-bridge/commit/f37ec259bd7a43565fe0ff4722465b7a303200f6
    - Changes: https://github.com/PX4/px4-jsbsim-bridge/compare/68de2cc63ded9a0d6641d45e9eb3ed2b43454cba...f37ec259bd7a43565fe0ff4722465b7a303200f6

    f37ec25 2025-03-19 Jaeyoung Lim - Populate sensor id for sensor message (#14)
2025-08-07 21:25:45 -04:00
PX4 BuildBot 13e0134b51 Update submodule gz to latest Fri Aug 8 00:42:54 UTC 2025
- gz in PX4/Firmware (fb8c43efc3): https://github.com/PX4/PX4-gazebo-models/commit/929d55e8832fcd1a1432d2ae1b36601455ec7ed7
    - gz current upstream: https://github.com/PX4/PX4-gazebo-models/commit/6cfb3e362e1424caccb7363dca7e63484e44d188
    - Changes: https://github.com/PX4/PX4-gazebo-models/compare/929d55e8832fcd1a1432d2ae1b36601455ec7ed7...6cfb3e362e1424caccb7363dca7e63484e44d188

    6cfb3e3 2025-08-04 Sai Aravind - Added helipad model (#115)
d679f3a 2025-07-27 Gilbert Tanner - Add gz_frame_id's to sensors (#114)
2025-08-07 21:06:17 -04:00
PX4 BuildBot 2b9cfa21f4 Update submodule mavlink to latest Fri Aug 8 00:43:14 UTC 2025
- mavlink in PX4/Firmware (76c2147b774662653b16b7275b48bebb1d5ef219): https://github.com/mavlink/mavlink/commit/067abb83cd2755f0e49491032d63438c64fd0aed
    - mavlink current upstream: https://github.com/mavlink/mavlink/commit/b27d03bffd7969b30242a00aeaa6c0430d34d429
    - Changes: https://github.com/mavlink/mavlink/compare/067abb83cd2755f0e49491032d63438c64fd0aed...b27d03bffd7969b30242a00aeaa6c0430d34d429

    b27d03bf 2025-08-06 Mathieu Bresciani - Add GLOBAL_POSITION message (#2256)
ffecddeb 2025-08-06 Hamish Willee - Move AUTOPILOT_VERSION to standard.xml (#2306)
8384e908 2025-08-06 Peter Hall - common: AIS update and bug fixes (#2281)
f459afd4 2025-07-30 Matthias Grob - common: remove wip tag from MAV_CMD_DO_ORBIT and ORBIT_EXECUTION_STATUS (#2316)
e9d76096 2025-07-30 github-actions[bot] - ardupilotmega dialects from ArduPilot/mavlink: Wed Jul 30 02:32:07 UTC 2025 (#2322)
99456420 2025-07-30 Andrew Voznytsa - Update Pymavlink to latest (#2321)
a367c1aa 2025-07-30 Balduin - command: MAV_CMD_ACTUATOR_GROUP_TEST (#2224)
e7cdcf4b 2025-07-24 Christian Clauss - Fix ruff rules E711,E712,F841 (#2314)
e8e2d919 2025-07-23 Andrew Voznytsa - Rename BOOL to MAV_OPTION (#2317)
0bcf338f 2025-07-16 Christian Clauss - ruff check --select=E713,E714,F401,F541 —fix
1912f5f5 2025-07-02 Christian Clauss - GitHub Actions: Lint Python code with ruff
b8af1bb2 2024-03-13 Marek S. Lukasiewicz - Add MARSH dialect
d01b4fbc 2025-07-09 Christian Clauss - mavgenerate.py: Remove support for Python 2
3db6daae 2025-07-03 Christian Clauss - Add codespell of four XML files to GitHub Actions
1fb5daac 2025-07-09 Hamish Willee - Update Pymavlink to latest 20050709
121bb736 2025-07-03 Christian Clauss - useless-semicolon: ruff check --select=E703 --fix
0f70d319 2025-05-22 TedObrien - fix: spelling mistake
77fc612f 2025-07-02 Christian Clauss - Fix typos discovered by codespell
5e27ca1a 2025-07-03 Hamish Willee - Fix errors and some flake8 crap
c1f2807f 2025-06-26 Hamish Willee - common.xml - fix up bad rendering of version fields
8e6345cb 2025-07-02 Christian Clauss - Remove useless object inheritance
56782c7d 2025-07-01 Julian Oes - development: remove SET_AT_S param
11961497 2025-03-20 Hamish Willee - Add BOOL enum for true/false cases
d0c683f1 2025-06-28 Christian Clauss - GitHub Actions: Test on LTS versions of Node.js and Python (#2296)
6cf16a3e 2025-06-26 Hamish Willee - Gripper - support discovery and addressing (#2287)
fcfa6cc8 2025-06-26 dependabot[bot] - build(deps): bump the github-actions group with 3 updates (#2294)
32a1cd3c 2025-06-26 Hamish Willee - Fix camera information firmware version (#2295)
69614ceb 2025-06-26 Christian Clauss - Keep GitHub Actions up to date with GitHub's Dependabot (#2292)
c27f4593 2025-06-18 Peter Hall - remove display="bitmask" (#2289)
a9d41b50 2025-06-18 Peter Hall - common: DO_REPOSITION: support relative yaw (#2280)
81c09011 2025-06-11 Peter Hall - Replace `MAV_MODE` with `MAV_MODE_FLAG`. (#2195)
ebfa4609 2025-06-09 Emmanuel Ferdman - Fix incorrect field name assignment from minValue to maxValue (#2284)
2025-08-07 21:06:00 -04:00
Jacob Dahl 5775a48543 ark: fpv: add rover.px4board 2025-08-07 20:48:12 -04:00
Daniel Agar fb8c43efc3 gitmodules specificy branch for fuzztest and tflite_micro 2025-08-07 20:40:05 -04:00
jobs 79bfc07c13 boards: add new NarinFC-H7 2025-08-07 20:39:46 -04:00
PX4 BuildBot 81ff0925f8 boards: update all NuttX defconfigs 2025-08-07 20:35:04 -04:00
Ramon Roche f9b9ef5b59 boards: disable INS for micoair boards
Signed-off-by: Ramon Roche <mrpollo@gmail.com>
2025-08-07 19:06:54 -04:00
Hamish Willee 25ae4ef71a ModalAI Starling - fix up links and undeprecated (#25272) 2025-08-07 16:04:21 +10:00
Hamish Willee fba3c08945 Apply suggestions from code review 2025-08-07 14:22:50 +10:00
Ramon Roche 42432fdbdf docs: v1.16 stable release notes
Signed-off-by: Ramon Roche <mrpollo@gmail.com>
2025-08-07 14:22:50 +10:00
Hamish Willee 5415aeb9fe Metadata update and fixes to internallinkerrors 2025-08-07 09:47:51 +10:00
Peter van der Perk aa15512762 fmu-v6xrt: Add V6XRT001 and V6XRT002 sensor set 2025-08-06 16:49:42 -04:00
Peter van der Perk d9bc3bc6bb fmu-v6xrt: Enable lis2dml and bmm350 magnetometer 2025-08-06 16:49:42 -04:00
Beat Küng ee62a55adc ci: automatically open an issue in case the fuzzing CI fails 2025-08-06 16:49:00 -04:00
Beat Küng ba678120d8 ci: update fuzzing.yml container to px4io/px4-dev:v1.16.0-rc2-4-gb67c65bfe6
There was a build error with the previous container:
CMake Error at /usr/share/cmake-3.28/Modules/FindPackageHandleStandardArgs.cmake:230 (message):
  Could NOT find Threads (missing: Threads_FOUND)
Call Stack (most recent call first):
  /usr/share/cmake-3.28/Modules/FindPackageHandleStandardArgs.cmake:600 (_FPHSA_FAILURE_MESSAGE)
  /usr/share/cmake-3.28/Modules/FindThreads.cmake:226 (FIND_PACKAGE_HANDLE_STANDARD_ARGS)
  build/px4_sitl_test/_deps/abseil-cpp-src/CMakeLists.txt:98 (find_package)

See https://github.com/PX4/PX4-Autopilot/actions/runs/16235116238/job/45844179833
2025-08-06 16:49:00 -04:00
Jacob Dahl 4cf7bb2429 correct ARK Flow 2025-08-06 12:45:36 -06:00
Jacob Dahl c2db8ab313 docs: ARK CAN node LED meaning 2025-08-06 12:45:36 -06:00
Eric Katzfey a6b90eb050 VOXL2: Updated startup script to patch EKF2_EV_CTRL set default value issue 2025-08-06 09:52:55 -07:00
Jacob Dahl 86f049ead1 romfs: generic_250: set MPC_Z_VEL_MAX_DN to match UP 2025-08-06 09:58:58 -06:00
mahima-yoga 204539015a docs: Shrink images 2025-08-06 11:34:29 +02:00
mahima-yoga a55f3afc14 docs: Clarify difference between Wind.msg and AirspeedWind.msg 2025-08-06 11:34:29 +02:00
mahima-yoga ecceb403a0 docs: Clarify bit 0 handling in ASPD_DO_CHECKS 2025-08-06 11:34:29 +02:00
mahima-yoga 19f22416fd docs: Add documentation & examples around airspeed validation 2025-08-06 11:34:29 +02:00
Hamish Willee c737df3e82 mavlink_main.cpp - PROTOCOL_VERSION 2025-08-06 16:30:06 +10:00
Crowdin Bot 40797895fd New Crowdin translations - ko 2025-08-06 15:46:03 +10:00
Crowdin Bot cb0ecd12b3 New Crowdin translations - uk 2025-08-06 15:43:37 +10:00
Crowdin Bot 52e9ab6a5a New Crowdin translations - zh-CN 2025-08-06 15:35:42 +10:00
Jacob Dahl ca3a1c77c4 fix submodule (#25368) 2025-08-05 20:41:31 -07:00
Pernilla d70eecc17d define M_PI if not defined in math.h 2025-08-05 20:27:05 -07:00
Eric Katzfey 7e5cc020c3 QURT: HITL: Moved heartbeat send into actuator send thread to avoid race conditions 2025-08-05 17:16:05 -07:00
Eric Katzfey 5b9e099fd1 Fixed Posix and Qurt platform build error introduced in earlier commit 2025-08-05 17:14:12 -07:00
Minderring f8bfe01eca Add MSP_OSD and other drivers for micoair boards 2025-08-05 16:58:31 -07:00
Alexander Lerach 38c776784e auterion pm: set max current based on eeprom 2025-08-05 08:30:13 -07:00
Alexander Lerach 900f108a2e auterion pm: add eeprom-based pm selection 2025-08-05 08:30:13 -07:00
JoelJ18 b5e5d214fe drivers: MicroStrain Inertial Sensors (#23858) 2025-08-05 08:05:46 -07:00
Ramon Roche e021a1c946 Tools: Update macos dependencies (#25361)
* tools: macos.sh update cross-compiler

* tools: editor styleguide for bash scripts

---------

Signed-off-by: Ramon Roche <mrpollo@gmail.com>
2025-08-04 22:15:30 -04:00
Jacob Dahl 50fce15a75 ark: v6x: add rover.px4board 2025-08-04 12:01:22 -06:00
bresch 77e8ccaf6a fw-atune: fix immediate failure on first try
The flight mode needs to be updated before starting the autotune,
otherwise it appears as a mode change and aborts the autotune
2025-08-04 16:42:54 +02:00
amovlgf 8c6337e94e add rgbled_aw2023 drivers (#25158)
* add rgbled_aw2023 drivers

* delete a newline to the end of the file
2025-08-03 18:45:41 -08:00
Jacob Dahl a48ed22f9f docs: fix typo mgs (#25352) 2025-08-03 08:19:01 +02:00
Eric Katzfey c5b8445ffc Added Qurt platform Serial implementations for bytesAvailable() and flush(). (#25348) 2025-08-01 13:22:00 -08:00
Ramon Roche 0cddd3dfb0 drivers: disable INS by default (#25303)
* drivers: disable INS by default

With the growing number of INS drivers some targets are running out of flash
and its becoming challenge to keep them under the limit.

Signed-off-by: Ramon Roche <mrpollo@gmail.com>

* Update boards/nxp/tropic-community/default.px4board

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

* Update boards/px4/fmu-v6xrt/default.px4board

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

---------

Signed-off-by: Ramon Roche <mrpollo@gmail.com>
Co-authored-by: Jacob Dahl <37091262+dakejahl@users.noreply.github.com>
2025-07-31 11:42:21 -08:00
Jacob Dahl 9e811136a2 ci: clang-tidy: fix attempt (#25328) 2025-07-31 10:35:38 -07:00
Hamish Willee c546e7c1f7 Update docs/en/sensor/inertial_navigation_systems.md 2025-07-31 21:50:27 +10:00
Hamish Willee bda79492fc Update ILabs.cpp 2025-07-31 21:50:27 +10:00
Hamish Willee 009661b842 Apply suggestions from code review 2025-07-31 21:50:27 +10:00
Hamish Willee ff2e82c0fd Update docs/en/sensor/inertiallabs.md 2025-07-31 21:50:27 +10:00
Hamish Willee 23bc81078a Subedit 2025-07-31 21:50:27 +10:00
Hamish Willee b3e0231a18 docs: Add InertialLabs sensors configuration page 2025-07-31 21:50:27 +10:00
Matthias Grob 887ca6d497 ManualControlSelector: address invalid prioritized input and don't check if sample is from the future 2025-07-31 11:34:53 +02:00
Matthias Grob 461433d7f6 ManualControlSelector: is InputValid refactor with switch case for code readability 2025-07-31 11:34:53 +02:00
Matthias Grob a09352c079 ManualControl: add option to prioritize RC or MAVLink but with fallback 2025-07-31 11:34:53 +02:00
Matthias Grob b876aa5b45 ManualControlSelector: robust timeout check 2025-07-31 11:34:53 +02:00
Crowdin Bot 543f8cba35 New Crowdin translations - zh-CN 2025-07-31 17:34:07 +10:00
Crowdin Bot f37c8fe511 New Crowdin translations - ko 2025-07-31 17:33:58 +10:00
Crowdin Bot e8859a7e0d New Crowdin translations - uk 2025-07-31 17:33:50 +10:00
Denis Rosset 78e70d85a9 docs: Fixed ARK Flow MR mislabeled in rangefinders.md 2025-07-30 11:10:24 -06:00
Mahima Yoga a7e01b18d8 MC PositionControl: Add timeout for invalid TrajectorySetpoint (#25283)
* MulticopterPositionControl: Add timeout before triggering emergency setpoint on invalid TrajectorySetpoint

* Apply suggestions from code review

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

* Cleanup & address review comments

* Safegaurd against using old setpoint if states aren't valid anymore

---------

Co-authored-by: Jacob Dahl <37091262+dakejahl@users.noreply.github.com>
2025-07-30 17:18:34 +02:00
Ian Scholl 5736b948ac increase battery max logging instances to 3 2025-07-30 16:43:21 +02:00
Alexander Lerach 369039c28c prefer RC_SERIAL_PORT, as older boards may have incorrect CONFIG_BOARD_SERIAL_RC 2025-07-30 15:09:39 +02:00
Alexander Lerach c0d1717897 detect px4io conflicts, don't set sbus as default 2025-07-30 15:09:39 +02:00
Alexander Lerach 2ecc7226e6 common_rc: enable on v5x/v6x/v6s, disable rc_input 2025-07-30 15:09:39 +02:00
Marco Hauswirth c9206d6bd1 EKF2: gnss reset improvements (#25297)
* ekf2: allow manual position reset when horizontal aiding is active

This allows the pilot to override position esitmates manually

* mavlink sim: add support of failure gps struck

* mavlink sim: add GNSS failure "wrong" type

* ekf2-gnss: add reset mode

This allows the user to choose whether the position should immediately
be reset to GNSS on fusion timeout or if the EKF can continue with
velocity dead-reckoning.

* ekf2: fix unit test changes due to GNSS start logic

Especially because the EKF doesn't need to reset the states if the test
ratio is already passing

* rename mode enum

* reset to gps lat lon on init

* remove obsolete reset-condition (handled in #25223)

* WIP try to upgrade compiler externally

---------

Co-authored-by: bresch <brescianimathieu@gmail.com>
Co-authored-by: Niklas Hauser <niklas@auterion.com>
2025-07-30 11:39:56 +02:00
Hamish Willee f4ea6feb47 Update metadata for modules and params 2025-07-30 14:29:57 +10:00
Jacob Dahl 996f9a82e1 dshot: refactor telemetry to use serial abstraction 2025-07-29 15:37:51 -06:00
Matthias Grob 6cf494dde1 Publish RTCM stream telemetry also for UAVCAN GNSS receivers (#25315)
* uavcan gnss: publish rtcm instance and injection rate

* GPS drivers minor refactor (#25316)

* GPS drivers: adhere to message name based variable naming convention

* uavcan gnss: use matrix norm calculation

* GPS drivers: rate naming refactor and robust timeout checks

---------

Co-authored-by: Jacob Dahl <37091262+dakejahl@users.noreply.github.com>
2025-07-29 09:55:21 -08:00
Jacob Dahl b5bf28c204 platform: serial: add bytesAvailable() function 2025-07-29 09:07:03 -08:00
bresch 61e741e7d0 FlightTask manual acc: handle ekf position reset properly 2025-07-29 14:29:19 +02:00
bresch b740a43b3d ekf2: reset manual position update through fusion
This provides a position reset-like behavior while still updating the
correlated states through fusion of position information.
2025-07-29 14:29:19 +02:00
bresch 582b8f0a2b ekf2: allow manual position reset when horizontal aiding is active
This allows the pilot to override position esitmates manually
2025-07-29 14:29:19 +02:00
bresch 646133a4bf AGP: format enum names 2025-07-29 14:29:19 +02:00
bresch 0b2e4f1ab6 ekf-agp: add reset mode behavior 2025-07-29 14:29:19 +02:00
GuillaumeLaine 2106c6ca82 fix(msg): bump VehicleLocalPosition version which was previously modified 2025-07-29 13:29:45 +02:00
mahima-yoga e4ffed099c msg: add Wind.msg to versioned messages
Was added as a default DDS topic recently.
2025-07-29 11:54:04 +02:00
Jacob Dahl 344064f941 astyle: exclude tflite_micro (#25327) 2025-07-29 10:22:25 +02:00
MDLZCOOL bab6dc2ac6 fix(lib/perf): Fully reset mean and M2 in perf_counter 2025-07-28 22:28:38 -08:00
Jacob Dahl 42ef7a4f9a ark: fpv: enable payload deliverer module (#25322) 2025-07-28 14:03:30 -06:00
Jacob Dahl 463ddcab86 payload deliverer: remove PD_GRIPPER_EN as unnecessary, reduce gripper timeout to 1s 2025-07-28 11:25:17 -08:00
Jacob Dahl 8d4993e654 ark: v6x: enable payload deliverer 2025-07-28 11:25:17 -08:00
Jacob Dahl 75acb13c36 ark: v6x: encrypted: remove FW and VTOL modules to save flash (#25319) 2025-07-28 11:08:03 -08:00
Matthias Grob 79b46e08a8 Rename manual_lockdown to kill for clarity 2025-07-28 17:07:08 +02:00
Matthias Grob 32531c870e px4io: terminated -> termination
fogotten to allign completely in the last step
2025-07-28 17:07:08 +02:00
Matthias Grob 359cad3636 Add back original quadrotor X unit test cases from old multirotor mixer 2025-07-28 14:10:50 +02:00
Matthias Grob 88460db44a ControlAllocationSequentialDesaturation: improve unit test fixture in terms of parameter update and defaulting to no airmode 2025-07-28 14:10:50 +02:00
Matthias Grob 40e1e82cb0 ControlAllocationSequentialDesaturationTest: convert existing unit test cases to improved fixture 2025-07-28 14:10:50 +02:00
Matthias Grob a80e89255c ControlAllocationSequentialDesaturation: adopt improved unit test fixture
This makes it much easier to go through allocation secnarios in one line with comprehensive numbers.
2025-07-28 14:10:50 +02:00
Matthias Grob cd1bac0a55 ControlAllocationSequentialDesaturation: add unit tests 2025-07-28 14:10:50 +02:00
Matthias Grob 53efcbd2c2 control_allocation: Consistently replace with ActuatorVector alias for readability 2025-07-28 14:10:50 +02:00
Matthias Grob 6a3a0d136b ActuatorEffectiveness: add comments to EffectivenessUpdateReason
from information previously only available in the commit message.
2025-07-28 14:10:50 +02:00
Matthias Grob 37899269a8 control_allocator: fix PID dependency definition 2025-07-28 14:10:50 +02:00
Matthias Grob ef6866cd08 ControlAllocationSequentialDesaturationTest: fix include instead of duplicating definitions 2025-07-28 14:10:50 +02:00
Matthias Grob 4b4cc2164c Revert "Remove inclusion of rotors in library to enable test (#24286)"
This reverts commit f7dadd9b89.
2025-07-28 14:10:50 +02:00
Matthias Grob 930c0451b5 ActuatorEffectivenessRotorsTest: add Hexarotor X 2025-07-28 14:10:50 +02:00
Matthias Grob b9f7b8f705 commander failsafe: never override user intended termination + unit test 2025-07-28 11:36:21 +02:00
Silvan Fuhrer 82569aad8d PositionSetpoint.msg: define range of loiter_radius
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2025-07-28 10:57:56 +02:00
Silvan e0a35b21a8 Navigator: fix param description of NAV_LOITER_RAD
Account for negative=CCW.

Signed-off-by: Silvan <silvan@auterion.com>
2025-07-28 10:57:56 +02:00
Silvan 63f9acfa84 Navigator: loiter direction check: use -FLT_EPS instad of <0
Signed-off-by: Silvan <silvan@auterion.com>
2025-07-28 10:57:56 +02:00
Silvan 85ccc064bd FW Mode Manager: handle loiter radius and direction correctly if not from position_sp
In that case we take radius and direction from the param NAV_LOITER_RAD,
CCw if negative.

Signed-off-by: Silvan <silvan@auterion.com>
2025-07-28 10:57:56 +02:00
Silvan 44be2a3f91 Navigator: add get_default_loiter_CCW() to get loiter direction
Signed-off-by: Silvan <silvan@auterion.com>
2025-07-28 10:57:56 +02:00
Silvan 9f83ccfca7 Navigator: in get_default_loiter_rad return absolute of NAV_LOITER_RAD
Signed-off-by: Silvan <silvan@auterion.com>
2025-07-28 10:57:56 +02:00
Silvan 431f507d29 Navigator: rename get_loiter_radius to get_default_loiter_rad
Signed-off-by: Silvan <silvan@auterion.com>
2025-07-28 10:57:56 +02:00
Matthias Grob 972acf0203 commander params: disable remaining flight time failsafe by default
Currently if you configure a battery capacity the battery library calculates a remaining flight time and you by default get an RTL when the flight time - return time is running out.

Since the state of charge threshold based battery failsafes `COM_LOW_BAT_ACT` are disabled by default I was asked to also disable the flight time based failsafe to be consistent.
2025-07-28 10:37:43 +02:00
mahima-yoga f66192326c commander: only clear hold delay when failsafes are being deferred 2025-07-28 09:48:34 +02:00
Silvan Fuhrer edfcbc7c9b boards: remove duplicated enabling of AUX_GLOB_POS
EKF2_AUX_GLOBAL_POSITION is y by default.

Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2025-07-28 09:42:30 +02:00
Hamish Willee bae1b25b0c Run make format 2025-07-28 12:50:08 +12:00
Hamish Willee 01abe35563 MAV_CMD_DO_SET_MODE - add support 2025-07-28 12:50:08 +12:00
E-Krantz 600c717eb9 Add namespace support for uxrce-dds client during firmware upload (#25291) 2025-07-25 11:43:30 -08:00
Matthias Grob 200be07021 action_request: rename ACTION_TERMINATE to ACTION_TERMINATION for clarity 2025-07-25 13:01:25 -06:00
Matthias Grob 9d75bdbe62 IO: rename FORCE_FAILSAFE to TERMINATION for clarity 2025-07-25 13:01:25 -06:00
Matthias Grob 7fe78e184e Rename force_failsafe to termination for clarity 2025-07-25 13:01:25 -06:00
Matthias Grob 34dacffc4a Commander: shell command commander termination instead of lockdown on for clarity 2025-07-25 13:01:25 -06:00
Sindre Meyer Hegre 3be0cb077c Neural Control Mode (#24366)
* Add tflm to px4 with module

 - Add TensorFlow Lite Micro(TFLM) as a library in px4
 - Make a module that uses neural network inference for control, which uses TFLM for inference
 - Make board config files for PX4 with neural module

* Added neural flight mode

* Add posibility to read of inference times

* Fix comments from review:

- Switch ssh link to https link in submodule
- Remove mc_nn_control from startup

* Add tflm to px4 with module

 - Add TensorFlow Lite Micro(TFLM) as a library in px4
 - Make a module that uses neural network inference for control, which uses TFLM for inference
 - Make board config files for PX4 with neural module

* Added neural flight mode

* Add posibility to read of inference times

* Remove auto start

* Add logging from neural control module

* Fix automatic startup to only be when module is included

* Switch to flight mode registration

* Add docs

* Change min/max/coeff to actual parameters

* add figures to neural network docs

* Switch to e2e network

* Remove toolchain changes and replace with instructions in docs

* Get ready for merge after toolchain upgrade

* switch back to submodule

* Try to figure out cmake

* Get CI working with new toolchain

* Remove fork dependency

* Finalize PR

* fix toolchain inclusion

* Fix ctype_base.h include

* Cleanup includes for TFLM

* Remove redundant std

* Update FW module names in board files

* Fix docs

* Remove cstdlib copy

* Copy header from nuttx

* Prettier, markup, layout

* NeuralControl.msg - update uorb comments to current standard

* Add description to neural topic

* Fix typo

* Typo

* TFLM and Module utitlities

* Neural networks top level

* Update docs

* Add manual control

* Update docs

* Revert the manual control attempt

* Update docs/en/advanced/nn_module_utilities.md

* Add posibility to set trajectory setpoint with manual control

---------

Co-authored-by: Pedro Roque <padr@kth.se>
Co-authored-by: Hamish Willee <hamishwillee@gmail.com>
Co-authored-by: Ramon Roche <mrpollo@gmail.com>
2025-07-25 09:42:12 -08:00
Alexander Lerach 132f7e9e0d cdcacm_autostart: add low bandwidth profile (#25302) 2025-07-25 09:26:51 -08:00
Sandesh Sharma 959587d2c9 fix: let UXRCE DDS agent IP to be set via parameter in SITL (#25231)
* Read XRCE_DDS IP from ENV

* just remove the -h flag from the launch command

* add 127.0.0.1 as default IP

* add default value for IP
2025-07-25 15:10:02 +02:00
Matthias Grob 539ef8b0d1 PositionControlTest: Additional test case velocity setpoint with invalid states (#25286) 2025-07-25 09:04:56 +02:00
Jacob Dahl 4117aa5bd3 gps: explicit type cast (#25293) 2025-07-25 00:40:31 +02:00
Hamish Willee a5dbcada9f Update msg/ActionRequest.msg
Co-authored-by: Matthias Grob <maetugr@gmail.com>
2025-07-25 06:13:20 +10:00
PX4BuildBot 7069190d30 [Docs] ActionRequest UORB topic
Co-authored-by: Matthias Grob <maetugr@gmail.com>
2025-07-25 06:13:20 +10:00
Pedro Roque be2e0b8990 feat: airframe config for spacecraft (#25287) 2025-07-24 12:07:56 -08:00
E-Krantz 23ad974f30 fix: spacecraft airframe naming (#25289) 2025-07-24 21:29:18 +02:00
Jacob Dahl dce58637af ark_fpv: flash savings: remove FW and VTOL from encrypted_logs.px4board 2025-07-24 12:45:07 -06:00
Pedro Roque 5f797fa210 fix: removes buoyancy from all default worlds from server config (#25285) 2025-07-24 09:36:49 -08:00
Valentin Bugrov 9b4bfc0d99 Tools: Add InertialLabs driver to codestyle-check
Signed-off-by: Valentin Bugrov <vladbvnsk@gmail.com>
2025-07-24 09:28:22 -07:00
Valentin Bugrov 7735971900 drivers/ins: Add driver for InertialLabs INS
Signed-off-by: Valentin Bugrov <vladbvnsk@gmail.com>
2025-07-24 09:28:22 -07:00
Alexander Lerach 752ecd3d1b ubx: add option to wipe flash 2025-07-24 11:06:54 +02:00
Hamish Willee 9c1a22e74e Improve flight termination docs 2025-07-24 11:21:29 +10:00
Hamish Willee a84d085ce7 Add uorb message meta 2025-07-24 10:06:39 +10:00
Hamish Willee efb4ff3353 update modules ref 2025-07-24 10:06:39 +10:00
Hamish Willee 3848b754a5 Update parameter reference 2025-07-24 10:06:39 +10:00
Hamish Willee 633c380240 Delete orphans 2025-07-24 10:06:39 +10:00
Claudio Chies f42dbeef82 only publish input_rc, if the IO RC status in ok 2025-07-24 10:05:38 +10:00
Hamish Willee 324b305b2d Add discontinued markup to vehicle 2025-07-24 08:40:43 +10:00
Hamish Willee 4247383bae 50001_aion_robotics_r1_rover - discontinued 2025-07-24 08:40:43 +10:00
Pedro Roque e14eea5615 feat: BlueROV2 Heavy updated control (attitude and position) and model (#25052)
* rft: clean merge to PX4

* fix: formatting

* fix: extra line

* fix: moved submarine out of "is_ground_vehicle", added proper check for center-throttle

* feat: updated gazebo models to include bluerov update

* fix: use 'is_uuv_vehicle', remove FW_MM/LLC from uuv build

* fix: added saturation to thrust and torque messages via param

* doc: updated parameters documentation for uuv

* fix: formatting

* feat: matching hardware reference

* fix: thrusters kg

* rft: removed commented lines

* fix: update gz reference given hw setup

* fix: hardware references

* fix: recommendations

* fix: updated settings to match hardware

* rft: check only for fixed and rotary wing for high throttle

Co-authored-by: Daniel Agar <daniel@agar.ca>

* fix: commit oupsie

* fix: format

* rft: remove is_uuv

* fix: hw parameters, uuv build target for v6x

* feat: added support for D-pad attitude changes in stabilized position control

* fix: position setpoint update and parametrized trajectory age and att change

* fix: format

* fix: removed duplicated call to check_validity_setpoint

* fix: setpoint update on arming logic

* fix: setpoint initialization for stabilized mode

---------

Co-authored-by: Daniel Agar <daniel@agar.ca>
2025-07-23 10:29:22 -07:00
Pedro Roque 09fe34af0e fix: enable control allocator for spacecraft on v6x (#25276) 2025-07-23 18:58:54 +02:00
Pedro Roque 2f55dff8b9 feat: spacecraft support (#24734)
* rft: initial merging of controllers for spacecraft vehicles

* feat: rate controller nominal

* feat: spacecraft tooling for commander and VehicleStatus

* feat: spacecraft tooling for commander and VehicleStatus

* fix: format

* fix: format

* fix: remove iostream

* fix: remove iostream

* feat: spacecraft attitude control and minor refactoring of params

* feat: add position controller

* fix: format

* fix: moved trajectories to new message, removed derivative filters

* fix: format

* fix: removed extra newline

* fix: spacecraft allocation builds

* feat: add thrusters to effectivenes, add spacecraft build to cmake, clean comments

* feat: required changes for allocation

* feat: thruster simulation interface

* fix: update maximum and minimums

* fix: format

* fix: added newline at the end of spacecraft actuator effectiveness

* feat: configurable board pwm freq from Kconfig

* feat: mavlink compliant spacecraft definition

* feat: add orbiter to define

* boards: Increase TELEM2 rx buffer size for DDS over serial use-case (ARK Jetson)

feat: spacecraft tooling for commander and VehicleStatus

fix: format

fix: remove iostream

feat: mavlink compliant spacecraft definition

* feat: add orbiter to define

* feat: add orbiter to define

* fix: change mav_type to new spacecraft orbiter enum value

* fix: build issue

* feat: update mavlink

* feat: update mavlink to latest master with spacecraft

* feat: update mavlink

* feat: update mavlink to latest

* feat: cleanup and synchronization with new mavlink vehicle definition

* fix: get away without specifying spacecraft vehicle

* fix: removed unnecessary definition

* fix: format

* feat: cmake variant for spacecraft

* feat: proper mav_type and rc init

* fix: removed dart from build system

* add: thrusters to actuator type

* rft: reordering actuator type

* rft: initial merging of controllers for spacecraft vehicles

* feat: rate controller nominal

* fix: format

* feat: spacecraft attitude control and minor refactoring of params

* feat: add position controller

* fix: format

* fix: moved trajectories to new message, removed derivative filters

* fix: format

* fix: removed extra newline

* fix: spacecraft allocation builds

* feat: add thrusters to effectivenes, add spacecraft build to cmake, clean comments

* feat: required changes for allocation

* feat: thruster simulation interface

* fix: update maximum and minimums

* fix: format

* fix: added newline at the end of spacecraft actuator effectiveness

* feat: configurable board pwm freq from Kconfig

* feat: add orbiter to define

* feat: cleanup and synchronization with new mavlink vehicle definition

* fix: get away without specifying spacecraft vehicle

* fix: conflicts

* fix: format

* fix: remove duplicate entry

* rft: remove Kconfig changes

* rft: revert main Kconfig

* rft: revert main kcoonfig on platforms

* rft: remove changes to board PWm (go on another PR)

* rft: revert changes to commander (main is correct)

* fix: extra char on commander_helper

* rft: removed extra spaces

* rft: moved effectiveness to spacecraft

* fix: spacecraft effectiveness

* fix: extra space

* feat: preliminary version, still using thrusters

* rft: initial pipeline on PX4 side with rotors instead of thrusters

* feat: add atmos model

* feat: spacecraft with rotor pipeline tested, working

* feat: update gz

* rft: removed thruster interfaces

* fix: format

* fix: remove control allocation

* fix: thruster normalization

* fix: format

* fix: nuttx version

* fix: clang tidy error

* feat: updated gz to add atmos model

* fix: update gz

* fix: update mavlink

* fix: remove friend class from allocation lib

* fix: remove actuator_outputs/motors

---------

Co-authored-by: Alexander Lerach <alexander@auterion.com>
2025-07-23 08:26:27 -07:00
Pedro Roque 6474e5d7c1 feat: configurable board pwm freq from Kconfig (#24787)
* feat: configurable board pwm freq from Kconfig

* feat: add board_pwm_config to submenu

* fix: define sequence correction

* fix: revert Tools/simulation/gz

* fix: track upstream gz

* fix: track upstream mavlink

* feat: adjustable pwm for multiple board types

* feat: add conditional check for CONFIG_ for correct fallback

* add: spacecraft board with correct BOARD_PWM_FREQ supporting 10Hz actuation rate

* fix: set dependencies for submenu arch chips

* fix: keep only upper arch level

* fix: proper checking - still not showing up for board config

* feat: add hidden kconfig for platforms

* Merge Nuttx config into px4board

Allows to expose nuttx into PX4 if needed

* Kconfig: Include nuttx symbols in updateconfig

Only if applicable i.e. defined in the kconfig

* fix: merged config with previously generated boardconfig

* doc: updated code comment

---------

Co-authored-by: Daniel Agar <daniel@agar.ca>
Co-authored-by: Peter van der Perk <peter.vanderperk@nxp.com>
2025-07-23 08:23:13 -07:00
Hamish Willee 8b2c0b4250 msg/Airspeed.msg update description to reflect standard
* [Docs] msg/Airspeed.msg - to standard

* Apply suggestions from code review

Co-authored-by: Silvan Fuhrer <silvan@auterion.com>

* Update msg/Airspeed.msg

---------

Co-authored-by: PX4BuildBot <bot@pixhawk.org>
Co-authored-by: Silvan Fuhrer <silvan@auterion.com>
2025-07-23 13:02:31 +02:00
Matthias Grob dbc36c9e3d commander params: Further clarify termination vs kill 2025-07-23 11:13:11 +02:00
mahima-yoga a5f92a4615 docs: clarify RC termination switch behavior 2025-07-23 11:13:11 +02:00
Matthias Grob 6c5c88f72e Commander: only trigger MAVLink parachute on termination
This can now be tested using the new termination RC switch.
2025-07-23 11:13:11 +02:00
Matthias Grob 52e8a0a0db Add RC termination switch 2025-07-23 11:13:11 +02:00
Nicolas MARTIN f0dcd06f5e HITL/SIH: Battery status depend on battery configuration from parameters (#24103)
* HITL/SIH: Battery status depend on battery configuration from parameters

* fix format
2025-07-23 00:25:37 -08:00
Jacob Dahl 9cd6840695 fix formatting (#25270) 2025-07-23 19:52:16 +12:00
Jacob Dahl af878cee7b uavcan: add node status logging to uORB (#23890)
Co-authored-by: Jordan Leiber <jordan.leiber@vertiq.co>
2025-07-22 23:17:58 -08:00
Patrik Dominik Pordi ce57153ce5 ARK SCH16T driver updated for new Murata modules (#24029)
* Added the ranges for the new ARK Murata IMUs and added the logic to the driver to handle it

* Ran make format

* sch16t fix COMP_ID

* Revert "sch16t fix COMP_ID"

This reverts commit 38bf02bc8616490a37a57257938086b8e8d5fa0f.

* sch16t add production k10 id

* Added B13 as REV_1

---------

Co-authored-by: Alex Klimaj <alex@arkelectron.com>
2025-07-22 23:16:13 -08:00
Sebastian Domoszlai 4e3d090d1a Shorten messages to prevent clipping in QGroundControl (#24080)
* Shorten messages to prevent clipping in QGroundControl

* Update src/modules/commander/HealthAndArmingChecks/checks/failureDetectorCheck.cpp

---------

Co-authored-by: Jacob Dahl <37091262+dakejahl@users.noreply.github.com>
2025-07-22 23:07:18 -08:00
Daan Smienk 3c6e927359 Rewrote info about USB inside wsl (#24726) 2025-07-22 22:42:39 -08:00
Marco Hauswirth 6e9fb2ca3c use imu-timestamp instead of hrt_abstime during replay for aid-srcs (#25117) 2025-07-22 22:35:45 -08:00
mtzm 5144bd5b9f shorten power redundancy check message to less then 50 chars (mavlink limit) (#24738) 2025-07-22 22:30:56 -08:00
jmackay2 eb274775d7 Update tools shebangs to python3 (#24739)
Co-authored-by: jmackay2 <jmackay2@gmail.com>
2025-07-22 22:30:04 -08:00
Hamish Willee 7559196195 Apply suggestions from code review 2025-07-23 13:38:10 +10:00
Teddy Zaremba 15c55245b3 Update mc_06_optical_flow.md 2025-07-23 13:38:10 +10:00
Teddy Zaremba 124910ee7c Update docs/en/test_cards/mc_06_optical_flow.md
Co-authored-by: Hamish Willee <hamishwillee@gmail.com>
2025-07-23 13:38:10 +10:00
Hamish Willee 7c552ebe0e Summary and subedit 2025-07-23 13:38:10 +10:00
Teddy Zaremba 4c94abd672 Update mc_06_optical_flow.md 2025-07-23 13:38:10 +10:00
Teddy Zaremba f7c25089de Update test_flights.md 2025-07-23 13:38:10 +10:00
Teddy Zaremba 40086a88b1 Update test_flights.md 2025-07-23 13:38:10 +10:00
Teddy Zaremba 551f73c6e9 Create mc_06_optical_flow.md 2025-07-23 13:38:10 +10:00
Crowdin Bot f413b0c4d2 New Crowdin translations - ko 2025-07-23 09:58:57 +10:00
Crowdin Bot fea845082f New Crowdin translations - uk 2025-07-23 09:58:46 +10:00
PX4 Build Bot 5cd7cd9389 New Crowdin translations - zh-CN (#25256)
Co-authored-by: Crowdin Bot <support+bot@crowdin.com>
2025-07-23 09:58:30 +10:00
Claudio Chies 095ab9d27a add PWM_Input as default for ats-based flight termination (#25209) 2025-07-22 09:30:53 +02:00
William Freidank 13122c29c0 Fix simulated gimbal behavior with zero velocity (#25217)
* fix simulated gimbal behavior with zero velocity

* check for PX4_ISFINITE before checking for magnitude
2025-07-21 12:59:55 -08:00
dusan19 8dd14d9aaa platforms/stm32_common: hrt.c: define timer 1 IRQ properly for H7 platform (#25260) 2025-07-21 09:53:38 -08:00
mahima-yoga 1e4d7429e1 mavlink_mission: improve mission_state handling with mission_result validity check 2025-07-21 10:18:23 +02:00
Julian Oes 2c97a875bf commander/mavlink: use home attitude, not only yaw
According to the mavlink spec we should be publishing the home attitude
as a quaternion rather than just the yaw/heading.

Additionally, this allows setting the landing roll and pitch angle using
DO_SET_HOME (this yet needs to go into the MAVLink spec though).

This time including the message versioning and translation.
2025-07-20 07:51:14 +12:00
Dusan Zivkovic 2065f577d6 EKF: fix compilation error when CONFIG_EKF2_TERRAIN is not defined 2025-07-18 10:20:42 -06:00
Silvan Fuhrer a0560d2d82 Internal combustion engine control: disable module by default
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2025-07-18 17:45:05 +02:00
mahima-yoga 3c79f25e10 fmu-v6s: disable analog battery monitoring when digital power module is enabled 2025-07-18 16:42:54 +02:00
mahima-yoga db85e12b9f battery-monitoring: allow disabling analog battery monitoring through BAT{i}_V_CHANNEL param 2025-07-18 16:42:54 +02:00
mahima-yoga 5125059b8f fmu-v6s: add ina226/ina228/ina238 support 2025-07-18 16:42:54 +02:00
Silvan e22329d074 add GYRO_FFT to v6s build
Signed-off-by: Silvan <silvan@auterion.com>
2025-07-18 14:15:46 +02:00
Alexander Lerach 3041960cf1 auav: enable on v5x/v6x/v6s boards 2025-07-18 09:58:03 +02:00
Hamish Willee 78a2a3d0dd COM_FAIL_ACT_T - fix description of zero value 2025-07-17 07:55:49 +02:00
Hamish Willee 8e0f223b3a Link fixes and removal of dead docs (#25239)
* Remove Zubax Orel - not available and no other presence

* Fix up zubax product links

* Snapdragon flight - delete as no longer relevant hardware

* Delete intel aero docs

* Brushless whoop - remove docs except for link to old version

* Many link fixes
2025-07-17 15:30:56 +10:00
Hamish Willee 06d25b9400 [Doc] FW Takeoff update for waypoint and position loss + relnote (#25226)
* [Doc] FW Takeoff update for waypoint and position loss + relnote

* Update docs/en/flight_modes_fw/takeoff.md

Co-authored-by: Silvan Fuhrer <silvan@auterion.com>

* Update for clarity

* Update docs/en/flight_modes_fw/takeoff.md

---------

Co-authored-by: Silvan Fuhrer <silvan@auterion.com>
2025-07-17 11:19:51 +10:00
bresch bfbc76189e ekf-agp: use same timeout value as other aid sources 2025-07-16 10:07:15 +02:00
Beat Küng 80febaf0f0 mc_pos_control: immediately switch out of goto setpoint when receiving trajectory_setpoint
Previously, when switching from a goto setpoint into a mode that publishes
trajectory_setpoint, the previous goto setpoint was still used for 500ms,
which then caused a setpoint jump.
This change makes sure that when a trajectory_setpoint is received, any
existing goto setpoint is marked as invalid immediately.
2025-07-16 09:02:47 +02:00
Beat Küng f0ecd9e757 fix commander: set failsafe action state immediately after failsafe update
There was a race condition: for example when an external mode disabled
failsafe deferring, that then triggered a failsafe, while the mode executor
immediately sends a command (to e.g. switch modes).
In that case the failsafe got triggered but the mode switch was still
allowed.
This was because of the processing ordering:
- mode updates (and propagating the failsafe_action_active state)
- failsafe updates
- command handling

This patch makes sure failsafe_action_active is set immediately after
updating the failsafes.
2025-07-15 17:18:54 +02:00
Beat Küng 168d99cd18 commander: do not trigger obsolete failsafe when deactivating failsafe deferring
Previously, when deferring was active and e.g. RC loss was triggered, and
RC regained, the action was not cleared, as the RC loss action only clears
on mode switch/disarm (when set to RTL for example).
When deferring was then disabled, the RC loss failsafe would still trigger.

This changes the behavior to immediately remove those actions when
deferring is active.

It also ensures to reset the Hold delay when deferring is disabled and no
failsafe is being deferred.
2025-07-15 17:18:54 +02:00
chfriedrich98 b8dacf5ae4 rover: fix speed setpoint in position controller 2025-07-15 13:55:28 +02:00
bresch 54f2652329 ekf2: always decorrelate pos and vel in vel reset 2025-07-15 13:44:55 +02:00
Matthias Grob f9b811b0c5 Commander: add option to ignore manual control loss in external modes 2025-07-15 13:08:18 +02:00
Marco Hauswirth a755dfa07f enable baro-gnss autocalibration by default (#25196) 2025-07-15 10:53:04 +02:00
chfriedrich98 b4bfbbb5e0 ackermann: add SIH (#25194) 2025-07-15 09:58:41 +02:00
Silvan Fuhrer 35a3f519f2 Revert "commander: publish full home attitude, not only yaw (#19717)"
This reverts commit 6855aa57c4.
2025-07-15 09:24:55 +02:00
Hamish Willee a3f1fb2e01 [Docs] Airframe param reset on update (#24964)
* Airframe param reset on update

* Update docs/en/dev_airframes/adding_a_new_frame.md

* Apply suggestions from code review

Co-authored-by: Matthias Grob <maetugr@gmail.com>

* Update adding_a_new_frame.md

* Update adding_a_new_frame.md

---------

Co-authored-by: Matthias Grob <maetugr@gmail.com>
2025-07-15 13:32:44 +10:00
Hamish Willee f224d27e4d Docs: Prettier on takeoff and fix some links (#25218)
* Prettier on takeoff and fix some links

* Fix flaw link
2025-07-15 12:30:55 +10:00
Matthias Grob 7d33df4650 Doc Orbit: update and clarify configurability and behavior around limits (#25208)
* Doc Orbit: update and clarify configurability and behavior around limits

* run prettier

* Fix up link to table

---------

Co-authored-by: Hamish Willee <hamishwillee@gmail.com>
2025-07-15 12:29:29 +10:00
Stefano Colli 3c0a0ed129 mavlink_main: add profile handling (#25214) 2025-07-14 10:19:30 -08:00
Alexander Lerach 7f5119f402 sensors: autostart bmm350 and add it to common mags 2025-07-14 17:52:18 +02:00
mahima-yoga 4896099232 dds: rate_limit /fmu/out/wind to 1Hz 2025-07-14 16:12:00 +02:00
mahima-yoga fcbe017221 dds: add Wind topic to dds bridge 2025-07-14 16:12:00 +02:00
Silvan Fuhrer b326714d7c FWModeManager: use always bearing to Takeoff waypoint (if defined)
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2025-07-14 14:29:59 +02:00
Silvan Fuhrer 782e510105 Navigator: Takeoff mode: add state 2-state takeoff for fixed-wing
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2025-07-14 14:29:59 +02:00
Silvan Fuhrer e9e5c45bf3 FW mode manager/Commander: hanlde invlaid pos in FW manager
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2025-07-14 14:29:59 +02:00
Silvan Fuhrer b1af09d391 FW mode manager: during takeoff only set height rate, not altitude setpoint
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2025-07-14 14:29:59 +02:00
Silvan Fuhrer bdf1895145 Commander: on completion of takeoff, force state transition to Loiter
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2025-07-14 14:29:59 +02:00
PX4 Build Bot 84cdc05195 New Crowdin translations - ko (#25200)
Co-authored-by: Crowdin Bot <support+bot@crowdin.com>
2025-07-13 10:37:31 +10:00
PX4 Build Bot a5920edbb1 New Crowdin translations - uk (#25201)
Co-authored-by: Crowdin Bot <support+bot@crowdin.com>
2025-07-13 10:37:19 +10:00
PX4 Build Bot a01f39707e New Crowdin translations - zh-CN (#25202)
Co-authored-by: Crowdin Bot <support+bot@crowdin.com>
2025-07-13 10:37:13 +10:00
Jacob Dahl ce4dfaf39a fix missing function update 2025-07-11 08:53:52 -06:00
Jacob Dahl 09ebd21e55 mixer: remove used flag stop_outputs
dshot: fix motor test on CANnode

Also includes fixes for the DShot driver since stop_outputs is removed. The esc info command has been removed because it doesn't work with AM32, can only be used via command line, and complicates the driver
2025-07-11 08:53:52 -06:00
Jacob Dahl 6a1cefd7a6 uavcan: esc: fix uavcan ESC control
This fixes a number of issues with uavcan ESC control.

- Motor Testing when using a CANnode as a PWM expander now works by allowing the FunctionMotors class to perform prearm control

- The esc.RawCommand message is now always published for configured uavcan ESC outputs. Previously prior to arming the message would be published empty, which causes certain ESCs to enter an error state.

- Useless and redundant code has been removed and small name changes have been applied.
2025-07-11 08:53:52 -06:00
Hamish Willee 572a06b2f3 docs: update fuzz tests (split into separate page) 2025-07-11 10:39:28 +02:00
Beat Küng 3cfaaf73b4 docs: add section about fuzz testing 2025-07-11 10:39:28 +02:00
Beat Küng 8721269c78 septentrio: avoid compilation error
Even though all enum values fit into 13 bits, there's an error:
../../src/drivers/gnss/septentrio/sbf/messages.h:101:21: error: ‘septentrio::sbf::Header::id_number’ is too small to hold all values of ‘enum class septentrio::sbf::BlockID’ [-Werror]
This is with GCC 13.3.0 under Ubuntu 24.04
2025-07-11 10:39:28 +02:00
Beat Küng d5942bd631 septentrio: fix clang-tidy warnings 2025-07-11 10:39:28 +02:00
Beat Küng c801fd36d3 ci: add fuzzing workflow
This will run all fuzzing tests for 15 minutes once a day.
2025-07-11 10:39:28 +02:00
Beat Küng 9ba2ac4e10 fix adsb: cast enum in printf
Build failure with clang:
fatal error: format specifies type 'int' but the argument has type
'TRAFFIC_STATE' [-Wformat]
2025-07-11 10:39:28 +02:00
Beat Küng 7594a270f7 tests: remove previous fuzz testing
We now use https://github.com/google/fuzztest (see previous commits).
And the test was also failing to build
(https://github.com/PX4/PX4-Autopilot/actions/workflows/cflite_batch.yml)

This reverts these commits:
- 9eda5b373c
- 2cbc993976
- be0a5b4b32
2025-07-11 10:39:28 +02:00
Beat Küng e50f1774ae septentrio: add fuzz tests 2025-07-11 10:39:28 +02:00
Beat Küng d31f227f15 tests: add mavlink fuzz test
Based on the previous fuzz tests in main_fuzztesting.cpp
2025-07-11 10:39:28 +02:00
Beat Küng 9472b4b1f7 refactor: remove '#define MODULE_NAME' from tests
And use target_compile_definitions() instead
2025-07-11 10:39:28 +02:00
Beat Küng 6ce1634dea fix msp_osd: ASAN raised some buffer overflows when running the unit tests 2025-07-11 10:39:28 +02:00
Beat Küng 8370ae1701 test_dataman: remove invalid item tests
They caused ASAN failures. And since the dm_item_t is an enum, I don't
think it needs a test.
2025-07-11 10:39:28 +02:00
Beat Küng fd2ded08e4 pxh: do not use variable sized array on the stack
This is a compiler-specific extension
2025-07-11 10:39:28 +02:00
Beat Küng d9743cc0ef septentrio: add to sitl build & fix compile problems
posix defines a macro OK, so the enum needed to be renamed
2025-07-11 10:39:28 +02:00
Beat Küng 3d1cace7b7 test: add google fuzztest to unit test build
From https://github.com/google/fuzztest.
This will now also add gtest (via cmake FetchContent)

And requires newer cmake (container updates):
CMake 3.19 or higher is required.  You are running version 3.16.3
2025-07-11 10:39:28 +02:00
mahima-yoga 6daec07bbe fix: RTL during mission after a landing
For delivery use-case, the mission contains a land item followed by other mission items. For the
section after the land, the current sequence number is greater than the land start index. If an RTL
is triggered, then isLanding returns true and the vehicle continues with the mission instead of
executing the RTL.

The land index marks the actual landing. So, is landing should only be true for the items between
land_start_index and land_index. If there are items after the land index, then they don't belong
to the landing anymore.
2025-07-11 09:10:43 +02:00
Kitsios Konstantinos 6e1ab343f6 ci: EKF change indicator concurrency limit (#25189)
Signed-off-by: Konstantinos <konstantinos.kitsios@uzh.ch>
2025-07-10 19:15:25 -07:00
Matthias Grob a4115db669 FlightTaskOrbit: replace hardcoded 10m/s maximum speed with multicopter speed configuration (#25192) 2025-07-10 11:16:11 -08:00
Matthias Grob 140b426720 stylecheck script: improve bash consition because of error iwth newer terminal versionsstylecheck script: improve bash condition to avoid error with newer terminal versions (#25193) 2025-07-10 10:59:19 -08:00
Jacob Dahl 79f6b84190 add check for DFMMode after setting it 2025-07-10 11:18:54 -06:00
Jacob Dahl abf53826b5 add warning about afbr spi comms 2025-07-10 11:18:54 -06:00
Jacob Dahl 864eeb2bd3 switch measurement trigger scheduling 2025-07-10 11:18:54 -06:00
mahima-yoga fbddf9655b (fix) mavlink_mission: keep mission active when vehicle disarms mid-mission. 2025-07-10 15:17:26 +02:00
mahima-yoga 1e84c2de6b (fix) mavlink_mission: avoid double-checking MissionResult by using SubscriptionData
code was checking for an updated MissionResult twice in a row, leading to _mission_state
not being set correctly when the second check had no new message.

Switched to SubscriptionData to safely retrieve the latest message using .get().
2025-07-10 15:17:26 +02:00
chfriedrich98 14c0908082 gz_classic: update submodule 2025-07-10 10:11:58 +02:00
chfriedrich98 beb62c2aad docs: remove docs for deprecated rover module 2025-07-10 10:11:58 +02:00
chfriedrich98 d2d3d8a5fd lib: remove unused l1 library 2025-07-10 10:11:58 +02:00
chfriedrich98 e266d1f22f rover: remove deprecated module 2025-07-10 10:11:58 +02:00
Hamish Willee dd0dcbb82c Link fixes - mostly redirects (#25186) 2025-07-10 17:35:07 +10:00
Hamish Willee 5d5e23bcfa [Docs] Fix links and tidy config (#25184)
* Fix links and tidy config

* Add updated lock files
2025-07-10 16:11:58 +10:00
Julian Oes 6855aa57c4 commander: publish full home attitude, not only yaw (#19717)
According to the mavlink spec we should be publishing the home attitude
as a quaternion rather than just the yaw/heading.

Additionally, this allows setting the landing roll and pitch angle using
DO_SET_HOME (this yet needs to go into the MAVLink spec though).
2025-07-09 14:43:31 -08:00
chfriedrich98 9a0b666deb rover: base setpoint generation on nav_state 2025-07-09 10:38:20 +02:00
chfriedrich98 90a4b4798d rover: expose rover messages to DDS 2025-07-09 08:58:13 +02:00
chfriedrich98 60010ba057 rover: Update rover setpoints to new uORB message standard 2025-07-09 08:58:13 +02:00
Hamish Willee 98e0fefd4f Add cannonicalref support (#25177)
* Add cannonicalref support
2025-07-09 16:44:12 +10:00
Hamish Willee f3919d98fe labeler.yml - attempt to fix labeller 2025-07-09 15:26:42 +10:00
mahima-yoga ee953640ee MAVSDK: bump version to 3.7.0 2025-07-09 07:43:20 +12:00
Jacob Dahl 6a8eea1df9 ekf: update parameter names for consistency (#25137) 2025-07-08 12:11:28 -06:00
Silvan 3f5b46a68c Commander: for VTOL_Takeoff only req relaxed position if fixed-wing phase
When in the fixed-wing phase of the VTOL Takeoff we do not want to
failsafe due to position inaccuracy.

Signed-off-by: Silvan <silvan@auterion.com>
2025-07-08 15:04:44 +03:00
Stefano Colli d79302c366 mavlink_parameters: throttle MAVLink param transmission on low-bandwidth links (#25126)
* mavlink_parameters: throttle MAVLink param transmission if in low-bandwidth mode

* mavlink_parameters: simplify param transmission throttling

---------

Co-authored-by: Matthias Grob <maetugr@gmail.com>
2025-07-08 13:48:23 +02:00
Silvan Fuhrer 5a2b26f931 FW land detector: only force to landed if launch detection is STATE_WAITING_FOR_LAUNCH (#25167)
Signed-off-by: Silvan <silvan@auterion.com>
2025-07-07 16:09:15 +02:00
Ramon Roche dcde7b47d1 ci: remove paths ignore
Signed-off-by: Ramon Roche <mrpollo@gmail.com>
2025-07-07 10:25:40 +02:00
Ramon Roche a54bbe0b24 coverage: move coverage flags within its own cmake
Signed-off-by: Ramon Roche <mrpollo@gmail.com>
2025-07-07 10:25:40 +02:00
Ramon Roche 5faa46fa0a cmake: use atomic profile updates for coverage
Signed-off-by: Ramon Roche <mrpollo@gmail.com>
2025-07-07 10:25:40 +02:00
Ramon Roche f01e589010 make: lcov ignore mismatch errors
Signed-off-by: Ramon Roche <mrpollo@gmail.com>
2025-07-07 10:25:40 +02:00
Ramon Roche 6bd66d50e9 shellcheck: fix SC2268 Avoid x-prefix
if [ "x$PRT_GPS1_" = "x" ]; then
     ^-----------^ SC2268 (style): Avoid x-prefix in comparisons as it no longer serves a purpose.

Signed-off-by: Ramon Roche <mrpollo@gmail.com>
2025-07-07 10:25:40 +02:00
Ramon Roche 58dcfb0a02 shellcheck: fix SC3014 == in place of =
Fixes SC3014 (error): In dash, == in place of = is not supported.

Signed-off-by: Ramon Roche <mrpollo@gmail.com>
2025-07-07 10:25:40 +02:00
Ramon Roche 83606cb0fc ci: concurrency cancel in progress
save compute time

Signed-off-by: Ramon Roche <mrpollo@gmail.com>
2025-07-07 10:25:40 +02:00
Ramon Roche 8a44f10cf9 ci: trigger on pull request for .github/workflows
Signed-off-by: Ramon Roche <mrpollo@gmail.com>
2025-07-07 10:25:40 +02:00
Ramon Roche 13f3a7ec6d ci: fix branch trigger strategy
Signed-off-by: Ramon Roche <mrpollo@gmail.com>
2025-07-07 10:25:40 +02:00
Ramon Roche d46420e1dc ci: check with updated container
Signed-off-by: Ramon Roche <mrpollo@gmail.com>
2025-07-07 10:25:40 +02:00
Marco Hauswirth 6ee6a3a578 GNSS: Don't send 'spoofing' warnings form driver (#25160)
* removing logic from driver to send warnings when state-change to spoofing is detected, handled in estimatorChecks

* also remove jamming warnings from drivers, those are handled in the estimator checks as well
2025-07-07 09:44:26 +02:00
Crowdin Bot 588fd9d684 New Crowdin translations - zh-CN 2025-07-07 09:04:54 +10:00
Hamish Willee 8aecc7e588 Incorrect URLS for dronecan/cyphaal in params 2025-07-07 09:04:39 +10:00
Crowdin Bot 29a40f37e2 New Crowdin translations - ko 2025-07-07 09:03:49 +10:00
PX4 Build Bot 389b76bd3a New Crowdin translations - uk (#25163)
Co-authored-by: Crowdin Bot <support+bot@crowdin.com>
2025-07-07 09:03:31 +10:00
bresch d35c5f4a4e SIH-plane: tune angular rate controllers 2025-07-04 16:14:27 +02:00
Connor Denihan 33fed67c07 Update community_supported_simulators.md (#25155)
Fixed wording
2025-07-04 09:01:37 +10:00
Marco Hauswirth f7ffe27d4c GNSS Spoofing Warning Sensitivity Adjustment (#25144) 2025-07-03 14:13:03 +02:00
Hamish Willee 2c31e2bad5 Fix all possible HTTP to HTTPS docs links (#25153) 2025-07-03 18:09:58 +10:00
Hamish Willee 375f421c61 Link fixes galore (#25151) 2025-07-03 14:53:12 +10:00
Sergei Grichine dd0d00aedc Update 4009_gz_r1_rover (#25150) 2025-07-03 08:14:01 +09:00
Ramon Roche 6deac08b42 docs: remove old doxygen builds (#24743)
Signed-off-by: Ramon Roche <mrpollo@gmail.com>
2025-07-02 14:51:18 -07:00
Hamish Willee d3de49a867 Rename labeler.yml 2025-07-02 14:43:55 -07:00
Hamish Willee dddf18872f Add label to new pull requests that touch docs files 2025-07-02 14:43:55 -07:00
Hamish Willee 0622f12285 Create Labeler workflow 2025-07-02 14:43:55 -07:00
Sergei Grichine a4518580ac Update TransponderReport.msg - correct "heading" description (#25125) 2025-07-02 11:10:46 -08:00
QiTao Weng 30c8c23716 Correct all ADSB heading related field to be in positive range (#25128) 2025-07-02 11:10:28 -08:00
xue cb71aea7fa boards: Updated ZeroOne X6
* Starts pwm_voltage_apply
* Enable Septentrio modules
* Enable IIM42653 IMU
* Enable SCH16T IMU

Signed-off-by: Ramon Roche <mrpollo@gmail.com>
2025-07-02 09:13:01 -07:00
DATAGNSS 81000f4c71 Docs: update GEM1305 specs and add NANO HRTK Receiver (#24707)
* update GEM1305 specs and add NANO HRTK Receiver

- add NANO HRTK Receiver
- update GEM1305 specifications

* Update SUMMARY.md for NANO HRTK Receiver

- Update SUMMARY.md for NANO HRTK Receiver

* Fix up images

* Minor tweak

---------

Co-authored-by: Hamish Willee <hamishwillee@gmail.com>
2025-07-02 11:59:27 +10:00
Hamish Willee b2b6a5f44e Fix up hitl too 2025-07-02 11:49:08 +10:00
Hamish Willee 93a4ff8d01 Rework to check-first 2025-07-02 11:49:08 +10:00
Beniamino Pozzan e3e48d01d3 docs(sih): just mention CONFIG_MODULES_SIMULATION_SIMULATOR_SIH
Signed-off-by: Beniamino Pozzan <beniamino.pozzan@gmail.com>
2025-07-02 11:49:08 +10:00
Hamish Willee 36485a0920 Split out the firmware setup 2025-07-02 11:49:08 +10:00
Beniamino Pozzan 8998a5baf9 docs(sih): Update instructions for sih
Signed-off-by: Beniamino Pozzan <beniamino.pozzan@gmail.com>
2025-07-02 11:49:08 +10:00
Beniamino Pozzan af5f2f8b74 docs(hitl): Update instructions for hitl simulations
Signed-off-by: Beniamino Pozzan <beniamino.pozzan@gmail.com>
2025-07-02 11:49:08 +10:00
Crowdin Bot 0f57d634f4 New Crowdin translations - ko 2025-07-02 09:11:14 +10:00
Crowdin Bot 9ed47b87f7 New Crowdin translations - uk 2025-07-02 09:10:43 +10:00
Crowdin Bot f180cf8b03 New Crowdin translations - zh-CN 2025-07-02 09:10:08 +10:00
chfriedrich98 5bb183afde Update fmu rover builds (#25139)
* rover: add rover build for all fmu versions

* rover: remove board specific exclusion of rover airframes
2025-07-01 10:31:12 -08:00
Ramon Roche 725d800a38 boards: save flash for KakuteH7-Wing 2025-07-01 10:23:49 -07:00
chfriedrich98 8af75adcbe gz: update submodule 2025-07-01 10:38:53 +02:00
chfriedrich98 5b1f58c069 differential: add generic differential rover gazebo airframe 2025-07-01 10:38:53 +02:00
Julian Oes 84c3abbba2 boards: LED fixup for Kakute 2025-07-01 10:48:18 +12:00
Julian Oes 75031fe375 boards: save flash on KakuteH7 dualimu
Due to trying to being compatible with the ArduPilot flash layout with
two sectors reserved for parameters.
2025-07-01 10:48:18 +12:00
Julian Oes 9cf3893266 boards: fixup image size of KakuteH7 dualimu
We have 1 sector for the bootloader and the last 2 for parameters.
That's to match how ArduPilot has it.
2025-07-01 10:48:18 +12:00
Julian Oes 8870d16ae0 Move NUM_MISSION_ITEMS_SUPPORTED to dataman
The define is used in dataman, not navigator, so this config variable
needs to be moved to the dataman module, otherwise it breaks the build
if navigator is not included in the build.
2025-07-01 10:25:00 +12:00
amovlgf fdef302e06 Add new Compass QMC5883P (#25115)
* add qmc5883p drivers

* format correction for qmc5883p

* make format

* remove extra newlines

---------

Co-authored-by: Jacob Dahl <dahl.jakejacob@gmail.com>
2025-06-30 10:33:21 -08:00
Hamish Willee acc12bb21d SIH Hexacopter X 2025-06-30 18:33:56 +02:00
Julian Oes e46e4dc80e commander: prevent race condition after mission
When a mission finishes with an RTL command, there's a race condition
between:
1. RTL command setting user_mode_intention RTL
2. Mission completion logic forcing LOITER

The auto-loiter transition was checking current nav_state (which is
still AUTO_MISSION) instead of any pending user_mode_intention,
causing it to override the RTL request.

Fix: Only auto-transition to loiter if no mode change is already
pending.
2025-06-30 09:20:44 -07:00
Julian Oes bfbd9bfe27 mavsdk_test: fix mission timeout check
We shouldn't adjust for lockstep speedup twice.
2025-06-30 09:20:44 -07:00
Julian Oes d03b1171f9 mavsdk_tests: fix mission finished state
This is an attempt to use MAVSDK's is_mission_finished APIs instead.
2025-06-30 09:20:44 -07:00
mahima-yoga 8c5dcbea12 mission: add RTL to is_mission_item_reached_or_completed()
This ensures that a mission is marked as completed when RTL is the last item or that the mission can continue if there is an intermediate RTL.
2025-06-30 09:20:44 -07:00
Matthias Grob daa491dc19 rc_update: make payload power switch an optional 3-way switch
to support 3 different power states for the payload.
2025-06-30 16:50:28 +02:00
Matthias Grob 1bccd5557a rc_update: add unit tests for two way payload power switch
with the intention to extend it to an optional 3 way switch.
2025-06-30 16:50:28 +02:00
Matthias Grob 8e7c2ed440 rc_update: allow payload power switch to be used for other boards than ARK FPV 2025-06-30 16:50:28 +02:00
Matthias Grob 64b92e46f8 rc_update: follow parameter member naming convention for payload power switch mapping 2025-06-30 16:50:28 +02:00
Matthias Grob fc3fd43fc7 rc_update: specify 2 decimal places for all float threshold parameter metadata 2025-06-30 16:50:28 +02:00
Beniamino Pozzan 6f972bbd43 chore: unify MC_RATE* param metadata (#25133)
Signed-off-by: Beniamino Pozzan <beniamino.pozzan@gmail.com>
2025-06-29 13:56:06 -08:00
Davide Iafrate 650320281b Add support for ICM42688P IMU on mamba f405 mk2 v2 target (#25047)
Co-authored-by: Ramon Roche <mrpollo@gmail.com>
2025-06-29 13:46:41 -08:00
Matthias Grob 2bc04f91f8 docs: fix all end of file newlines
Note: Some files are autogenerated and I did not yet
go through each source of generation to fix it there.
Instead I adjusted the filter to only exclude those
such that we can fix things in steps.
2025-06-26 11:03:23 -07:00
Matthias Grob e9bac962ab docs index: fix special character encoding to be UTF-8 2025-06-26 11:03:23 -07:00
Hamish Willee 35096d3278 Remove images not linked from docs 2025-06-26 13:13:30 +10:00
Hamish Willee b3441b7221 Remove legacy translations 2025-06-26 13:13:30 +10:00
Hamish Willee 2bda1b08c9 Add image to repo, prettier 2025-06-26 12:49:44 +10:00
Jakub Kákona 804af78245 Update docs/en/telemetry/index.md
Co-authored-by: Hamish Willee <hamishwillee@gmail.com>
2025-06-26 12:49:44 +10:00
Jakub Kákona 56e8d23fb0 Adding the TFSIK01 page. 2025-06-26 12:49:44 +10:00
Jakub Kákona 3ea9069ada Adding TFSIK01 telemetry radio docs page. 2025-06-26 12:49:44 +10:00
Matthias Grob bb6d43d5e3 uavcan battery: add support for cuav::equipment::power::CBAT message
emitted by e.g. uavcan Tattu batteries.
2025-06-25 21:11:23 +02:00
Matthias Grob 30d4ff3c6c uavcan battery: fix battery_status.scale, time_remaining and timestamp
- timestamp was 0 if uavcan::BatteryInfo was received before uavcan::BatteryInfoAux
- scale was not set as unknown (-1) even though it is since it's never updated
- time_remaining was not initialized correctly and could sometimes be 0
  unexpectedly which causes the drone to failsafe because there's reportedly no flight time left
2025-06-25 21:11:23 +02:00
Marco Hauswirth adc299d019 remove paths-ignore in workflows to enable CI-checks for pure CI changes... 2025-06-25 08:04:43 -07:00
Jakub Kákona 1a52656e8a Update broken airspeed sensors links
Add new TFPITOT01 Pitot Tube
2025-06-25 16:38:23 +10:00
Jakub Kákona b9ff50f92b Update thunderfly_auto_g2.md
Fix typos and update the note message.
2025-06-25 15:49:49 +10:00
Jakub Kákona 6ef8add164 Improve documentation links. 2025-06-25 15:49:49 +10:00
Crowdin Bot bcd5f6e208 New Crowdin translations - zh-CN 2025-06-25 13:33:35 +10:00
Crowdin Bot f0a20c19f9 New Crowdin translations - uk 2025-06-25 13:33:27 +10:00
Crowdin Bot bcd516f6af New Crowdin translations - ko 2025-06-25 13:33:22 +10:00
Hamish Willee 81ec385c3e Fix up link to flashing 2025-06-25 13:03:46 +10:00
Hamish Willee 3a54b482d2 Fix up cross links 2025-06-25 13:03:46 +10:00
Hamish Willee a1b8b3dabb Prettier, typos, minor wording 2025-06-25 13:03:46 +10:00
chfriedrich98 22f4222795 docs: overhaul rover documentation 2025-06-25 13:03:46 +10:00
PX4BuildBot ee3708ca82 docs: update parameter reference metadata 2025-06-25 12:13:22 +10:00
PX4BuildBot 940ce18e59 Failsafe web metadata updates 2025-06-25 12:13:22 +10:00
PX4BuildBot ae4322126a docs: metadata: update uORB graph JSONs 2025-06-25 12:13:22 +10:00
Alex Klimaj c6bb6cd435 extend satellite info to 40 (#25067)
Co-authored-by: Pedro Roque <padr@kth.se>
2025-06-24 13:14:08 -06:00
Alexander Lerach 160ae487ff auav: use correct sign during calib data reading 2025-06-24 17:58:53 +02:00
Sergei Grichine 256b329aab Differential: Update 4011_gz_lawnmower to match recent changes in Rover controls (#25079) 2025-06-24 09:17:10 +02:00
Jacob Dahl 95119027a9 ekf2: variable to parameter name consistency (#25042)
Rename various EKF2 variable names to match the PX4 parameter names
2025-06-24 09:15:50 +02:00
Jakub Kákona 9e90fd193f doc: Improve I2C devices links and explanation (#24701)
* Improve links URL by swithing from GitHub URL to actual documentation.

* Update i2c_general.md

Clean up and simplify the explanatory text.
2025-06-23 11:06:37 -08:00
Liu1 832a90e07f cuav_7-nano:use new sensors (#25098) 2025-06-23 07:24:28 -08:00
Hamish Willee 2e6fd9dd72 Updates from feedback 2025-06-20 08:27:03 +10:00
Hamish Willee 94dc757363 Prettier and add context 2025-06-20 08:27:03 +10:00
Hamish Willee 5cfa0d548c Update docs/en/peripherals/dshot.md 2025-06-20 08:27:03 +10:00
Jacob Dahl fa9f8734d0 update warning, add imxrt targets 2025-06-20 08:27:03 +10:00
Jacob Dahl 3d5cb891a6 docs: bidirectional dshot 2025-06-20 08:27:03 +10:00
Beat Küng afbaa71bfc fix mavlink: add mutex for mavlink shell (#25082)
There was a race condition when closing the shell:
- the main thread checks if _mavlink_shell is not nullptr (which is true)
- the receiver thread closes the shell, which clears _mavlink_shell
- the main thread continues with _mavlink_shell->available()
2025-06-19 13:03:01 -08:00
Hamish Willee 873aa89022 [Docs] Update QGC Bootloader instructions (#25072)
* [Docs] Update QGC Bootloader instructions

* Add release note
2025-06-18 09:02:00 -08:00
Daniel Agar 1b3c6f7fd2 drivers/magnetometer: remove Vtrantech VCM1193L from common magnetometer set 2025-06-18 11:56:13 -04:00
Marco Hauswirth 6604c52c98 Commander: Adjust home position altitude after GNSS altitude correction (#25003)
Within the first 2min of a flight, check if the integrated GNSS vertical velocity and the baro
measurements disagree with the reported GNSS altitude, and in that case update the 
set home position altitude to cancel out GNSS altitude drift.

* prevent re-init when reaching negative altitudes

* only allow correction during the first 120 second after takeoff

* add dependency to COM_HOME_EN parameter. reset vel-integral for multiple takeoffs
2025-06-18 13:26:45 +02:00
Hamish Willee ef252481a8 Collision mode only works with mpc_pos_mode that is acceleration based 2025-06-18 16:38:37 +10:00
chfriedrich98 f35b92a487 rover: replace RX_MAX_THR_YAW_R with a correction factor RO_YAW_RATE_CORR 2025-06-18 08:35:48 +02:00
chfriedrich98 3e8f054a1c ackermann: rename DriveModes to AckermannDriveModes 2025-06-18 08:35:48 +02:00
chfriedrich98 eed966a1c6 rover: reduce speed based on course error 2025-06-18 08:35:48 +02:00
chfriedrich98 5a430f0ba6 rover: streamline rover steering setpoint 2025-06-18 08:35:48 +02:00
Hamish Willee 4a5c00d0e4 EKF2_GPS_POS_X/Y/Z have same long description (#25068) 2025-06-17 21:07:09 -08:00
PX4BuildBot 778f80ca59 CellularStatus - fix to doc standard 2025-06-18 13:26:45 +10:00
Jacob Dahl 339e0f9691 params: srcparser: don't strip newlines (#25058) 2025-06-17 12:04:33 -08:00
Peter van der Perk 7687e6e33f dshot: Telem set baudrate before pin-swapping
On IMXRT setbaudrate resets swap state
2025-06-17 14:54:48 +02:00
Peter van der Perk 001efc1c0b Bosch: BMM350: Fix self-test on high ODR rate
We've to wait for atleast 6000us before doing self-test
2025-06-17 12:01:45 +02:00
Matthias Grob eccfb18b51 battery_status message: remove serial_number which is now in battery_info message 2025-06-17 09:05:22 +02:00
Matthias Grob 1d86ede6c6 msg translations: sort headers alphabetically 2025-06-17 09:05:22 +02:00
Matthias Grob 84ce7d2fc6 cyphal: switch to battery_info.serial_number 2025-06-17 09:05:22 +02:00
Matthias Grob a18453d632 uavcan battery: switch to battery_info.serial_number 2025-06-17 09:05:22 +02:00
Matthias Grob 3ec684153a batmon: switch to battery_info.serial_number 2025-06-17 09:05:22 +02:00
Matthias Grob 2237bfa9a9 smbus_sbs: switch to battery_info.serial_number 2025-06-17 09:05:22 +02:00
Matthias Grob 7895976a17 batt_smbus: switch to battery_info.serial_number 2025-06-17 09:05:22 +02:00
Matthias Grob d7ab21b8d6 Add battery_info message with serial number compatible with UAVCAN, MAVLink and drivers
I'm starting the separate battery info message because no char[32] should be published and logged
at high rate and we need a separate battery info message for static information as discussed.
2025-06-17 09:05:22 +02:00
Qiaosen Liu 59710b15ae params: COM_RC_LOSS_T: clarify safe adjustment of RC loss timeout (#25062)
* params: COM_RC_LOSS_T: clarify safe adjustment of RC loss timeout

* Update src/modules/commander/commander_params.c

---------

Co-authored-by: Jacob Dahl <37091262+dakejahl@users.noreply.github.com>
2025-06-16 18:50:43 -08:00
Julian Oes 0180ad3a63 mavlink: implement extended MISSION_CURRENT
The message MISSION_CURRENT got extensions regarding mission state in
https://github.com/mavlink/mavlink/pull/1869

This is an attempt to actually populate those fields.
2025-06-17 13:37:47 +12:00
Silvan Fuhrer e0663cd6ad Sensor params: improve board rotation parameter description and meta data (#25037)
* Sensor params: add @decimals and @min, @max to SENS_BOARD_ params

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

* Sensor params: Improve parameter description

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

---------

Signed-off-by: Silvan <silvan@auterion.com>
Co-authored-by: Ramon Roche <mrpollo@gmail.com>
2025-06-16 14:59:03 -08:00
Silvan Fuhrer a6863f0930 FW mode manager: open up / remove some arbitrary params constraints (#25036)
* performance model: remove arbitrary min/max parameter constraints

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

* FW mode manager: open up/remove unnecessary param @max constraints

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

---------

Signed-off-by: Silvan <silvan@auterion.com>
Co-authored-by: Ramon Roche <mrpollo@gmail.com>
2025-06-16 14:58:38 -08:00
Ramon Roche 34d4eb7b9e ci: update build container (#25059)
adds lark python dependency #25056

https://github.com/PX4/PX4-Autopilot/pull/25056

Signed-off-by: Ramon Roche <mrpollo@gmail.com>
2025-06-16 14:57:17 -08:00
Ramon Roche efc3e64c00 ci: update rosdistro apt keys (#25060)
Signed-off-by: Ramon Roche <mrpollo@gmail.com>
2025-06-16 13:46:33 -08:00
Peter van der Perk 0369abd556 Add lark to python requirements for the rosidl parser 2025-06-16 12:41:48 -07:00
QiTao Weng 75e4047f2a Fix ADSB heading angle obtained from driver by removing +pi. Adjusted downstream accordingly 2025-06-13 15:28:25 +02:00
Beat Küng 310cbbedb1 fix septentrio: check for buffer underflow
_message.header.length - 4 is passed as unsigned to the CRC method, so if
_message.header.length < 4, the length wraps and causes invalid memory
access.
2025-06-13 14:39:57 +02:00
Alexander Lerach 6f81998e27 hardfault: add option to stream via mavlink 2025-06-13 13:32:00 +02:00
Jacob Dahl edda54b26b build: romf: fix generation of rc.board_bootloader_upgrade (#25032) 2025-06-13 00:45:14 -08:00
Beat Küng e29771cd97 septentrio: add static assertions to ensure the buffer is large enough
And check the access for dynamic sized input. This is only a precaution
if the device sends invalid data (too large sb_length) with valid crc.
2025-06-13 09:46:10 +02:00
Beat Küng ac74a02d7c fix septentrio: ensure the crc check does not read past the buffer size
in case the input data is invalid.
2025-06-13 09:46:10 +02:00
Beat Küng d13692ca46 fix septentrio: initialize _current_index
Decoder::reset sets it to 0, but it could have been accessed before the
first call to reset().
2025-06-13 09:46:10 +02:00
Hamish Willee 77d854b045 Update ll40ls.cpp (#25007) 2025-06-12 16:08:12 -08:00
Jacob Dahl fae563b35e [bug] AFBRS50 fix scheduling and refactor (#24837)
* fix scheduling bug for afbrs50

* cleanup and refactor

* format

* clean up

---------

Co-authored-by: Alex Klimaj <alex@arkelectron.com>
2025-06-12 16:59:02 -06:00
Julian Oes 4c130769bd boards: set RC serial for KakuteH7-Wing
This was missed earlier.
2025-06-13 10:19:54 +12:00
Julian Oes 599ea7545d boards: fixup image size of KakuteH7-Wing
We have 1 sector for the bootloader and the last 2 for parameters.
That's to match how ArduPilot has it.
2025-06-13 10:19:54 +12:00
Julian Oes 9fd126194b vscode: add KakuteH7-Wing 2025-06-13 10:19:54 +12:00
Pedro Roque 6d15019717 feat: spacecraft tooling for commander and VehicleStatus (#24716)
* feat: spacecraft tooling for commander and VehicleStatus

* fix: format

* fix: remove iostream

* feat: mavlink compliant spacecraft definition

* feat: add orbiter to define

feat: spacecraft tooling for commander and VehicleStatus

fix: format

fix: remove iostream

feat: mavlink compliant spacecraft definition

* feat: add orbiter to define

* feat: update mavlink to latest

* fix: get away without specifying spacecraft vehicle

* fix: removed unnecessary definition

* fix: format
2025-06-12 21:48:48 +02:00
Matthias Grob 6b2b20bd6e imu_gyro_parameters: lower default angular acceleration filter from 30Hz to 20Hz
to avoid noise getting into the derivative term of the PID rate control loop on integration flights.
2025-06-12 17:15:12 +02:00
Hamish Willee e6e42fa043 BatteryStatus.msg - docs update (#24789)
* BatteryStatus.msg - docs update
* Update msg/versioned/BatteryStatus.msg
* Units/enum/range before description
* Update msg/versioned/BatteryStatus.msg
* Apply suggestions from code review

Co-authored-by: Matthias Grob <maetugr@gmail.com>

* MOve MAX_INSTANCES to top

* Fix up full stops

---------

Co-authored-by: Matthias Grob <maetugr@gmail.com>
2025-06-12 16:06:13 +02:00
Hamish Willee 3b35676afe Update ActuatorServos.msg - remove terminating full stops. 2025-06-12 18:46:29 +10:00
Hamish Willee b0d48ce786 unit/range first 2025-06-12 18:46:29 +10:00
Hamish Willee f014bea723 ActuatorServos.msg - uORB docs 2025-06-12 18:46:29 +10:00
Hamish Willee a9e67d4142 Remove field terminating full stops 2025-06-12 18:45:01 +10:00
Hamish Willee 46f3e2ea71 units/range first 2025-06-12 18:45:01 +10:00
Hamish Willee dd1b435460 Update msg/versioned/ActuatorMotors.msg 2025-06-12 18:45:01 +10:00
Hamish Willee 9e07813005 Update msg/versioned/ActuatorMotors.msg
Co-authored-by: PX4 Build Bot <bot@px4.io>
2025-06-12 18:45:01 +10:00
Hamish Willee 80b1f5532b Update msg/versioned/ActuatorMotors.msg
Co-authored-by: Matthias Grob <maetugr@gmail.com>
2025-06-12 18:45:01 +10:00
Hamish Willee 3de41e1847 Update msg/versioned/ActuatorMotors.msg
Co-authored-by: Matthias Grob <maetugr@gmail.com>
2025-06-12 18:45:01 +10:00
Hamish Willee 828b6f5232 ActuatorMotors.msg - uORB docs 2025-06-12 18:45:01 +10:00
Crowdin Bot 2cec05e44a New Crowdin translations - uk 2025-06-12 11:15:48 +10:00
Crowdin Bot f56e6b0bda New Crowdin translations - zh-CN 2025-06-12 11:15:39 +10:00
Crowdin Bot bd17df8c29 New Crowdin translations - ko 2025-06-12 11:15:18 +10:00
Crowdin Bot a19d6e4f6e New Crowdin translations - zh-CN 2025-06-12 08:54:05 +10:00
Crowdin Bot 71e553c67e New Crowdin translations - uk 2025-06-12 08:53:55 +10:00
Crowdin Bot 359d58effd New Crowdin translations - ko 2025-06-12 08:53:45 +10:00
Crowdin Bot e0b5342e98 New Crowdin translations - zh-CN 2025-06-12 08:34:11 +10:00
Crowdin Bot f9c36b8235 New Crowdin translations - uk 2025-06-12 08:33:00 +10:00
Crowdin Bot 5af5bdb478 New Crowdin translations - ko 2025-06-12 08:32:09 +10:00
Hamish Willee dc8e313c0d Fix up alt _sidebar 2025-06-12 08:26:34 +10:00
Hamish Willee 53ae458fb5 Update dds_yaml links to the markdown doc 2025-06-12 08:26:34 +10:00
PX4BuildBot cd2e970249 Add dds_topics 2025-06-12 08:26:34 +10:00
Alexis Guijarro 26499b3c8b 3DR Control Zero H7 OEM RevG: MTD driver fix (#25015) 2025-06-11 12:43:00 -04:00
Peter van der Perk 0fe8738ed9 msp_osd: Add VTX config, stick commands and arming status
- Adds MSPv1 rx parsing to fetch VTX config
 - Allows to inspect and change VTX channel through CLI
 - Forward MSP_RC for stick commands osd
 - Forward MSP_STATUS for arming status for PIT and LP mode
2025-06-11 11:32:32 -04:00
Beat Küng 50626f6848 VehicleStatus.msg: restore VEHICLE_TYPE_* indexes
This was changed in 7cb6464cfb and broke flight review
(https://github.com/PX4/flight_review/issues/310)
2025-06-11 11:24:47 -04:00
chfriedrich98 d348bf4828 mecanum: centralize mode management, resets and checks 2025-06-11 14:17:23 +02:00
chfriedrich98 f0c15af426 mecanum: update position controller 2025-06-11 14:17:23 +02:00
chfriedrich98 5e9322899b mecanum: seperate actuator control 2025-06-11 14:17:23 +02:00
Hamish Willee 85c2f8ebbb Clarify how the queue works 2025-06-11 19:06:14 +10:00
Hamish Willee 412e5169e9 Add ORB_QUEUE_LENGTH info 2025-06-11 19:06:14 +10:00
Jacob Dahl 74570d5abe docs: ekf replay: require log from boot (#24675) 2025-06-10 11:11:34 -06:00
Jacob Dahl bb423bc007 dshot: fix bidirectional dshot stream sharing (#24996)
Freeing the DMA stream in the hrt callback causes other peripherals on that DMA controller to lock up (namely GPS). Moving the free back into thread context, right before allocation, solves the problem
2025-06-10 00:36:45 -08:00
Jacob Dahl 6e7638c14b dshot: fix scaling (#25001) 2025-06-10 00:26:17 -08:00
Mahima Yoga c9658f28e9 commander: use existing class state to track mission progress (#24947)
Replaced the local variable landed_amid_mission with the class member _mission_in_progress for consistency and to reduce redundancy.
No functional change.
2025-06-09 18:17:13 -08:00
Ramon Roche df2ee22d1b maintainers: adds Jake Dahl
Signed-off-by: Ramon Roche <mrpollo@gmail.com>
2025-06-09 12:44:17 -07:00
Crowdin Bot 9a2a8d4d3c New Crowdin translations - zh-CN 2025-06-08 10:20:34 +10:00
Crowdin Bot da39385544 New Crowdin translations - uk 2025-06-08 10:20:12 +10:00
Crowdin Bot c0f6cfa30f New Crowdin translations - ko 2025-06-08 10:19:49 +10:00
Balduin e346e24158 gz: Use pose specified by PX4_GZ_MODEL_POSE (#24956)
* gz: use pose specified by PX4_GZ_MODEL_POSE

* gz: fix empty PX4_GZ_MODEL_POSE case

* gz: no pose rather than zero on empty argument
2025-06-06 10:30:56 -08:00
bresch 457ce90541 ekf2: run simplified GNSS checks after initial fix
This prevents stopping GNSS fusion on slightly degraded solution when
tight checks are set
2025-06-06 15:59:56 +02:00
Silvan Fuhrer ff87361ffa Navigator: RTL reverse: when landing set next to invalid
This makes sure that there is no weird line following logic executed
by the flight task when the vehicle should just come down vertical
for landing.

Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2025-06-06 15:47:35 +02:00
Jacob Dahl 64989c3b8d dshot: add perf counter for hrt callback (15us avg) (#24976) 2025-06-05 14:45:28 -08:00
Jacob Dahl 7f4e6189ae ark_fpv: cleanup board_dma_map.h (#24975) 2025-06-05 14:43:23 -08:00
Matthias Grob c7ef12545c mc_att_control_params: lower default roll and pitch attitude gains from 6.5 to 4
6.5 is a relatively high value that was used mostly on smaller, low inertia vehicles ~250-500mm diagonal. There it works great but on larger, higher intertia vehicles this leads to problems.
2025-06-05 19:28:53 +02:00
Ramon Roche bdb0e4270c ci: updates branch name strategy
fixes #24866

Signed-off-by: Ramon Roche <mrpollo@gmail.com>
2025-06-05 06:43:23 -07:00
PX4BuildBot 7008cb0aeb Tweak words 2025-06-05 06:43:01 -07:00
PX4BuildBot 04e1c603f7 Hide unsupported list in twistie 2025-06-05 06:43:01 -07:00
PX4BuildBot 91ee9f437f Fix up rate-limit and title 2025-06-05 06:43:01 -07:00
PX4BuildBot 5e35856033 Generate dds yaml as part of msg_docs generation 2025-06-05 06:43:01 -07:00
Peter van der Perk b8fa208bb5 Update NuttX
Fixes RT117X OCRAM M7 memory freeze
2025-06-05 06:03:59 -07:00
Hamish Willee 48c54afc85 ArmingCheckXxxx.msg - uorb docs 2025-06-05 17:56:30 +10:00
Matthias Grob fdc4766da6 Make sure vehicle_thrust_setpoint is always published before vehicle_torque_setpoint
After f0b05ea7cf
the control allocator only has a callback on the torque setpoint and even though this should work
I'm paranoid and would like to avoid surprises by always publishing the thrust before torque
then the samples that were published together are also allocated together.
2025-06-05 08:46:30 +02:00
Hamish Willee ff2b82dc51 Move commands into microservices 2025-06-05 11:39:40 +10:00
Hamish Willee 485cfa0c0f Fix broken link 2025-06-05 11:39:40 +10:00
Hamish Willee 39e51b2a6b Apply suggestions from code review
Co-authored-by: Julian Oes <julian@oes.ch>
2025-06-05 11:39:40 +10:00
Hamish Willee d1e7f01994 Docs: add skeleton topic for indicating protocol support 2025-06-05 11:39:40 +10:00
Niklas Hauser 6d35ad5d9b [uavcan] Fix safety state not getting published (#24972) 2025-06-04 09:20:34 -08:00
Hamish Willee 6095fc710c Update rcS - fix trivial typo (#24963) 2025-06-04 09:07:44 -08:00
Alexis Guijarro 82c2e6c159 3dr_ctrl-zero-h7-oem-revg: Adding missing module which prevented the USB interface to start 2025-06-04 11:43:26 -04:00
Matthias Grob 84cb748080 esc_calibration: simplify the logic and consider battery only connected if there's no message timeout and the connected flag is set 2025-06-04 17:11:33 +02:00
Don Gagne 7018e1b74b Fix reporting of connected battery 2025-06-04 17:11:33 +02:00
Matthias Grob 7e055656b0 uavcan esc: translate temperature field from Kelvin to Celsius 2025-06-04 16:44:16 +02:00
Seungbin Lee 8e399ed78e Update jfi_telemetry.md
Change the range from 500 meters to 1000 meters.
2025-06-04 17:18:51 +10:00
bresch e487d59521 Vehicle_odometry: protect angular_velocity field against aliasing
Accumulate delta-angles between each publication to get the correct
angular velocity between two attitudes
2025-06-04 09:01:33 +02:00
Hamish Willee 09d734955d Add ignore errors 2025-06-04 12:39:33 +10:00
Hamish Willee 3a4dc784eb Fix up badges refering to main/v116 to just be 116 2025-06-04 12:39:33 +10:00
Hamish Willee c3946ff56f Add FW release note to Main release notes 2025-06-04 12:39:33 +10:00
Hamish Willee ee49469cb6 Remove content of main 2025-06-04 12:39:33 +10:00
Hamish Willee 265ab85414 prettier 2025-06-04 12:39:33 +10:00
Ramon Roche ae93d931d6 docs: second pass at 1.16 release notes
Signed-off-by: Ramon Roche <mrpollo@gmail.com>
2025-06-04 12:39:33 +10:00
bresch 0e32b155f3 ekf2: simplify names of scoped variables 2025-06-03 09:22:32 +02:00
bresch c33d79cfb4 ekf2: move gnss_checks to their own class 2025-06-03 09:22:32 +02:00
bresch 2dbce4d958 ekf2: replace defines with enum class 2025-06-03 09:22:32 +02:00
bresch 5332010b13 ekf2: move on ground GNSS checks to separate function 2025-06-03 09:22:32 +02:00
Silvan 66fe3aa2b3 ControlAllocator: only run allocator on torque updates, not thrust
Signed-off-by: Silvan <silvan@auterion.com>
2025-06-02 09:26:13 -07:00
Silvan f0b05ea7cf ControlAllocator: only use torque, not thrust sp as callback item
Signed-off-by: Silvan <silvan@auterion.com>
2025-06-02 09:26:13 -07:00
Niklas Hauser 3971db3cb4 [iis2mdc] Help device detection by retrying probing 2025-06-02 16:54:15 +02:00
Niklas Hauser 56d53b60c0 [bmp388] Initialize multiple times with delay 2025-06-02 16:54:15 +02:00
Silvan Fuhrer cff5ecfd88 ICE: allow throttle setpoint to be set to NAN to stop motor without disarming
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2025-06-02 16:50:30 +02:00
Silvan Fuhrer ed15258abb ICE: small cosmetic changes and make message definition clearer
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2025-06-02 16:50:30 +02:00
GuillaumeLaine 99f974e82e docs: update uxrce_dds rate_limit example to reflect firmware values 2025-06-02 12:01:40 +02:00
GuillaumeLaine 17cadf7739 dds_topics: set more sensible ROS2 publication rate limits 2025-06-02 12:01:40 +02:00
Mahima Yoga 2110da73ad Commander: don't reset Home position if landed during a (uncompleted) mission. (#24902) 2025-06-02 10:50:03 +02:00
Marco Hauswirth 8d3c94c947 Baro offset calibration based on GNSS height (#24859)
* apply offset to baro sensors based on gnss measurements when gnss is selected as hgt-ref

* always calibrate baro with gnss if new param SENS_BAR_AUTOCAL is set accordingly

* always do baro-gnss calibration when AUTOCALIB is set, but ensure epv is small enough and gnss data is consistent with baro

* avoid update and reset in the same step

* minor change of constexpr usage
2025-06-02 08:38:11 +02:00
Beniamino Pozzan a2c23acc65 fix (msp_ods): clear buffers before writing and adjust sizes (#24951)
Signed-off-by: Beniamino Pozzan <beniamino.pozzan@gmail.com>
2025-06-01 18:33:09 -08:00
PX4 Build Bot 5c6645e6ef New Crowdin translations - zh-CN (#24950)
Co-authored-by: Crowdin Bot <support+bot@crowdin.com>
2025-06-02 07:43:39 +10:00
PX4 Build Bot 8204331fa9 New Crowdin translations - uk (#24949)
Co-authored-by: Crowdin Bot <support+bot@crowdin.com>
2025-06-02 07:43:29 +10:00
PX4 Build Bot 7936937320 New Crowdin translations - ko (#24948)
Co-authored-by: Crowdin Bot <support+bot@crowdin.com>
2025-06-02 07:43:23 +10:00
Bastian Jäger 7f569542a2 feat: allow PX4_UXRCE_DDS_NS override with empty sting (#24921) 2025-05-31 20:55:10 +01:00
Ramon Roche d24893a847 tools: update docker_run.sh to use px4-dev
updates to use the latest px4 development container

Signed-off-by: Ramon Roche <mrpollo@gmail.com>
2025-05-31 11:41:30 -07:00
lgf b7f07a1ff7 manifest: Add AmovLab ICF6
Signed-off-by: Ramon Roche <mrpollo@gmail.com>
2025-05-29 13:06:19 -07:00
Peter van der Perk 1656278b5e Update NuttX 2025-05-29 05:15:18 -04:00
Peter van der Perk 64b9b52eb4 tropic-community: Update PX4 config 2025-05-29 05:15:18 -04:00
Peter van der Perk a89ec34e95 tropic-community: Add DTCM to heap move vectors to ITCM 2025-05-29 05:15:18 -04:00
Jacob Dahl e338d8713b docs: add gazebo plugins doc (#24904)
* docs: add gazebo plugins doc

* add to sidebar and summary

* prettier and link to sources

* review feedback

* Minor subedit and crosslink

* Update docs/en/sim_gazebo_gz/plugins.md

---------

Co-authored-by: Hamish Willee <hamishwillee@gmail.com>
2025-05-29 09:03:33 +10:00
mahima-yoga 029e0a7740 DOCS: add OdometryAirspeed docs 2025-05-28 15:47:50 +02:00
mahima-yoga 255216e471 DOCS: VTOL API documentation in px4-ros2-interface-lib 2025-05-28 15:47:50 +02:00
mahima-yoga 418b653160 DOCS: add FwLateralLongitudinalSetpointType documentation in px4-ros2-interface-lib 2025-05-28 15:47:50 +02:00
Niklas Hauser 62c9bf8a47 [uavcan] Param for interface mask of ESC actuators 2025-05-28 15:03:59 +02:00
chfriedrich98 38bcc50127 differential: centralize mode management, resets and checks 2025-05-28 09:03:27 +02:00
chfriedrich98 d5dc0a7eb8 differential: update position control 2025-05-28 09:03:27 +02:00
chfriedrich98 ac80958cc5 differential: seperate actuator control 2025-05-28 09:03:27 +02:00
Roman Bapst b26dd4d3f3 Commander: Introduce global_position_relaxed (#24280)
To separate accuracy requirements for VTOL hover and cruise.

- global_position_relaxed refers to having a valid horizontal velocity aid source 
in the estimator and a set global reference position, but poses no requirements 
on the accuracy of the provided position estimate. 
- Auto flight modes Mission, Loiter and RTL, while in fixed-wing mode, 
only require the relaxed global position going forward
- COM_POS_FS_EPH is thus no longer used on fixed-wing vehicles (resp. VTOL in FW)
- rename failsafe_flags.local_position_accuracy_low to failsafe_flags.position_accuracy_low
---------

Signed-off-by: RomanBapst <bapstroman@gmail.com>
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
Co-authored-by: Silvan <silvan@auterion.com>
2025-05-28 08:16:10 +02:00
Hamish Willee eb72925045 Docs Metadata updates (#24929)
* Failsafe metadata update

* docs: update module reference metadata

* docs: update parameter reference metadata

* docs: metadata: update uORB graph JSONs

* uorb message metadata updates

* Add new uorb topics to sidebar

* Remove uorb topics that no longer exist

* fix up resulting docs links

---------

Co-authored-by: PX4BuildBot <bot@pixhawk.org>
2025-05-28 12:23:02 +10:00
Abhishek Choithani effcb32a3e Contibuting to docs - open editor on linux (#24907)
* Update docs.md

Tested on Ubuntu

* Fix layout

---------

Co-authored-by: Hamish Willee <hamishwillee@gmail.com>
2025-05-28 11:39:23 +10:00
Hamish Willee ba11f75067 CellularStatus.msg - fix to standard (#24928)
* CellularStatus.msg - fix to standard

* Update CellularStatus.msg

---------

Co-authored-by: PX4BuildBot <bot@pixhawk.org>
2025-05-28 10:34:22 +10:00
Matthias Grob ce9bb0dc6b multicopter defaults: use PX4 default <2g ublox GNSS dynamic model also for multirotors
It currently defaults to 1g for multirotors, which works in most cases. However, during extended high-acceleration flight (e.g. in Stabilized mode), the limited dynamic model can upset the EKF, causing repeated resets due to data inconsistencies. Recovery is sometimes quick but can also be too slow to maintain position after high acceleration flight. This issue was observed on an 850mm vehicle, not a racer.
2025-05-27 15:27:32 +02:00
Mahima Yoga 4abe2d1dab Navigator: allow executing a disarm command during a mission 2025-05-27 13:26:30 +02:00
GuillaumeLaine e1167f0888 dds_topics: rate limit BatteryStatus ROS2 publication to 1 Hz 2025-05-27 13:21:56 +02:00
GuillaumeLaine b7702d3604 docs: uxrce_dds rate_limit option 2025-05-27 13:21:56 +02:00
GuillaumeLaine 238dffcd1b uxrce_client: add option to set polling rate limit per topic 2025-05-27 13:21:56 +02:00
Niklas Hauser 8c6d7235e4 [drivers] Allow swapping RX/TX pins of DShot Telemetry 2025-05-27 11:07:29 +02:00
Jacob Dahl 3bbe3e5268 logger: add new mask for high rate sensors 2025-05-27 08:09:28 +02:00
Julian Oes c9145a24b4 holybro: hard-select CAM1 for now
I don't think there is an easy way to hook this up to RC input at the
moment, so I'm setting it fixed to CAM1 for now.
2025-05-27 13:30:57 +12:00
Julian Oes 9595f12327 holybro: fixup Wing system power setup
I don't think we have a way to explicitly detect if BAT1 or BAT2
"bricks" are correct, so we have to assume they are, and rely on the
voltage/current shown.

Additionally, we can now power cycle sensor power.
2025-05-27 13:30:57 +12:00
Julian Oes 7c77cfa6e1 holybro: match AP flash layout
That way the ArduPilot bootloader works with PX4.
2025-05-27 13:30:57 +12:00
chfriedrich98 0d9cb1f048 ackermann: only control relevant setpoints in manual modes 2025-05-26 15:56:24 +02:00
chfriedrich98 a129a29793 ackermann: split modes into seperate folder 2025-05-26 15:56:24 +02:00
chfriedrich98 47a9b552f8 ackermann: centralize mode management, resets and checks 2025-05-26 15:56:24 +02:00
chfriedrich98 cd486b2da6 ackermann: update position control 2025-05-26 15:56:24 +02:00
chfriedrich98 45540455fe ackermann: separate actuator control 2025-05-26 15:56:24 +02:00
Silvan ea94bc11eb DDS topics: add FW highlevel interfaces
Signed-off-by: Silvan <silvan@auterion.com>
2025-05-26 14:47:38 +02:00
mahima-yoga 8a5e5a411a msgs: Clean up message definitions and descriptions
- Add versioning to interfacing messages
- Add header description
- Add units, frame and range wherever possible
- Add [norm] and @range indentifiers
2025-05-26 14:47:38 +02:00
Silvan 8c1f7ec7c0 rename FWPositionController to FWModeManager
Signed-off-by: Silvan <silvan@auterion.com>
2025-05-26 14:47:38 +02:00
Silvan Fuhrer 259e7d1d53 FWModeManger: remove throttle spike during flaring by waiting with height rate change
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2025-05-26 14:47:38 +02:00
Silvan Fuhrer 2600946172 FW Attitude Controller: Wheel controller rework
add RunwayControl messge to pass wheel steering controls to wheel controller

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

Runway takeoff: specify that RWTO_TKOFF is directly applied during takeoff

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

msg/RateCtrlStatus: remove unused wheel_rate_integ field

The wheel rate controller is not run in the moduels that are now
running the MC/FW rate controllers, so thsi field canot be filled.

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

wheel rate controller: use speed scaler quadratically on integrator

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

wheel yaw controller: use a time constant of 0.1

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

FW Attitude Controller: lock heading setpoint for wheels to initial heading

Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2025-05-26 14:47:38 +02:00
Silvan a849ab9de5 FW: Re-organize param sections for FW params
Params that are used by FW Mode Manager
- FW NPFG: NPFG params, should be renamed to FW Lateral Control once moved to the lat/lon controller
- FW Auto Takeoff
- FW Auto Landing

Params used by Fw Lat/Long Controller:
- FW Lateral Control
- FW Longitudinal Control

Params used by both:
- FW General

Params used by Performance model:
- FW Performance (could be moerged with FW General?)

Signed-off-by: Silvan <silvan@auterion.com>
2025-05-26 14:47:38 +02:00
Silvan Fuhrer 83280dcfec TECS: protect against NAN in pitch integrator by limiting tas input to min tas
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2025-05-26 14:47:38 +02:00
mahima-yoga 817b0191e7 NPFG: add unit tests and add back feasible bearing check back 2025-05-26 14:47:38 +02:00
Silvan 0ea109ff5d perfromance model: add FW_AIRSPD_FLP_SC to reduce with flaps
Signed-off-by: Silvan <silvan@auterion.com>
2025-05-26 14:47:38 +02:00
Silvan 3e3f10f5bc VehicleAttitudeSetpoint.msg: remove reset_integral and fw_control_yaw_wheel
Signed-off-by: Silvan <silvan@auterion.com>
2025-05-26 14:47:38 +02:00
Silvan 0276f66b18 TECS: harden interface for NAN altitude input
Signed-off-by: Silvan <silvan@auterion.com>
2025-05-26 14:47:38 +02:00
RomanBapst 779a55c6dc FW Position Controller rework
- split up old module into two, one handling setpoint generation, one control
- add lateral and longitudinal control setpoints topics that can also be
injected from companion computer
- add configuration topics that (optionally) configure the controller
with limits and momentary settings

Signed-off-by: RomanBapst <bapstroman@gmail.com>
2025-05-26 14:47:38 +02:00
murata,katsutoshi 52f0ef927d dataman_client: Combine type declarations and processing (#23593) 2025-05-24 13:24:13 -08:00
Hamish Willee b4b3c2a4a1 VehicleCommand.msg - update to new docs standards (#24855) 2025-05-24 16:03:04 +10:00
Alexander Lerach 134ee7b640 dds: clean up timesync 2025-05-23 11:30:55 +02:00
Alex Klimaj 31ab3f0ac9 boards: ark_fpv add vtol att control (#24767)
Co-authored-by: Jacob Dahl <37091262+dakejahl@users.noreply.github.com>
2025-05-22 17:57:13 -08:00
Peter van der Perk 65c180852f i2c_launcher: Dehardcode battery index 2025-05-22 12:09:05 -07:00
Balduin f067d7a6d8 Loong: Pitch tuning 2025-05-22 14:43:42 +02:00
PX4 Build Bot 44013e351c New Crowdin translations - ko (#24893)
Co-authored-by: Crowdin Bot <support+bot@crowdin.com>
2025-05-22 08:12:42 +10:00
PX4 Build Bot 1277cf28bb New Crowdin translations - uk (#24894)
Co-authored-by: Crowdin Bot <support+bot@crowdin.com>
2025-05-22 07:50:01 +10:00
PX4 Build Bot 700ad7e49f New Crowdin translations - zh-CN (#24895)
Co-authored-by: Crowdin Bot <support+bot@crowdin.com>
2025-05-22 07:49:55 +10:00
Niklas Hauser cc199aa807 [board] Disable buzzer on Skynode base boards 2025-05-21 17:43:12 +02:00
Matthias Grob a9f7f00844 batteryCheck: refine low battery reporting sevirity
To make sure QGC also shows a box and reads out for "low battery"
and make events and mavlink_log reports consistent.

Low - Critical
Critical - Critical
Emergency - Emergency
2025-05-21 16:08:27 +02:00
mahima-yoga fa168c4d4f address review comments 2025-05-21 16:08:27 +02:00
mahima-yoga d44991f33a batteryCheck: change log level to 'warning' for low and critical battery. 2025-05-21 16:08:27 +02:00
mahima-yoga 0b3b5d9450 framework: only log "Failsafe activated" when failsafe action =! Warn. 2025-05-21 16:08:27 +02:00
Matthias Grob 30df381f0e multicopter_autonomous_params: adjust yaw acceleration and maximum rate for exclusive use with HeadingSmoothing 2025-05-21 13:25:46 +02:00
Matthias Grob a8f5b6dc1b FlightTaskOrbit: also use HeadingSmoothing to avoid steps during the approach 2025-05-21 13:25:46 +02:00
Matthias Grob 70ad2e6fe5 FlightTaskAuto: Smooth yaw follow-up, bring back necessary previous yaw setpoint and reset smoothing when yaw is not locked 2025-05-21 13:25:46 +02:00
Dawid Rudy 508dc030b8 Smooth yaw by limiting acceleration 2025-05-21 13:25:46 +02:00
Marco Hauswirth 2cc9221aae Revert "add flash-analysis for auterion_fmu-v6s board (#24885)" (#24896)
This reverts commit 9e45f077b1.
2025-05-21 11:49:26 +02:00
Hamish Willee 54ddb14137 Update meta docs (#24892)
* docs: update module reference metadata

* Update failsafe metadata in docs

* Update parameter metadata

* Fix up uorb graphs based on main

* SUMMARY.md - and radio control for modules

* Add alternate sidebar

---------

Co-authored-by: PX4BuildBot <bot@pixhawk.org>
2025-05-21 15:42:05 +10:00
Matthias Grob 0b3fc0a62d SIH: add Hexacopter X
to enable easy simulation of a motor failure.
2025-05-20 13:23:08 +02:00
Marco Hauswirth 9e45f077b1 add flash-analysis for auterion_fmu-v6s board (#24885) 2025-05-20 12:00:29 +02:00
Hamish Willee c2f872c558 docs: put RC modules into their own category (#24847) 2025-05-20 07:34:20 +02:00
Michael Smith 0f2012ba06 MSP_OSD Update: Add original battery status msg. (#24872)
Co-authored-by: Michael <mfs3ee@gmail.com>
2025-05-19 16:01:02 -08:00
Alexander Lerach 77894b7c83 ci/boards: add itcm checker, update ITCM mapping of v6xrt and tropic-community 2025-05-19 07:44:35 -07:00
Julian Oes 4126dde11f mavsdk_tests: bump to v3.4.0
This should fix some of the lockups and segfaults we see.
2025-05-19 07:37:02 -07:00
Julian Oes d4be5d3ff0 mavsdk_tests: add events to log 2025-05-19 07:37:02 -07:00
Julian Oes 1f65cc46b9 mavsdk_tests: bump MAVSDK to v3.3.4 2025-05-19 07:37:02 -07:00
Julian Oes 56eb9bcc18 mavsdk_tests: workaround race condition
PX4 needs a bit of time to process an uploaded mission before it is
ready to accept the mission mode.

Therefore, we need to wait a bit.

Alternatively, we could wait on the mission progress arriving properly,
but this sleep is simple enough for now.
2025-05-19 07:37:02 -07:00
Julian Oes e19d245355 mavsdk_tests: remove hacks for rally points
We can now just use MAVSDK to upload rally points.
2025-05-19 07:37:02 -07:00
Julian Oes 66deae172d mavsdk_tests: update to MAVSDK 3.0.0 2025-05-19 07:37:02 -07:00
PX4 Build Bot e50d5d8567 New Crowdin translations - zh-CN (#24875)
Co-authored-by: Crowdin Bot <support+bot@crowdin.com>
2025-05-18 10:57:05 +10:00
PX4 Build Bot 98a37d8e5d New Crowdin translations - ko (#24873)
Co-authored-by: Crowdin Bot <support+bot@crowdin.com>
2025-05-18 10:56:53 +10:00
PX4 Build Bot 740cd2e40d New Crowdin translations - uk (#24874)
Co-authored-by: Crowdin Bot <support+bot@crowdin.com>
2025-05-18 10:56:18 +10:00
Li-Tianming 815a339684 MSP_OSD code changes to support OpenIPC, DJI O3/O4 OSD rendering (#24695)
* Change MSP_OSD message content and rendering process

* Finish MSP_OSD battery message construct

* Finish MSP_OSD `display message` construct

	HOL|DSAM|N

* Finish MSP_FC_VARIANT(0x02) message

	BTFL

* Finish MSP_OSD RSSI message
	📶10%

* Finish MSP_OSD GPS message
	🛰 10
	🌐000.000000
	🌐00.000000

* Finish MSP_OSD PITCH ROLL  message
        🔃-10.5
	🔁13.2

* Change struct filed name

* Change OSD message postion

* Finish MSP_OSD PITCH Altitude  message
	🔝15.2

* Finish MSP_OSD distanceToHome  message
	🏠5000

* Add Hide/Show option for ALT and homeDist

* Format the code by `make format`

* Clean up stray text

* Remove other commented out dead code

* Change `sprintf()` to `snprintf()`

* Add msg field comment in `display_message` construct

* Init str buffer to 0, Change refresh rate back to 100ms

* Explicit conversion float to double

---------

Co-authored-by: Li.Tianming <Li.Tianming@example.com>
Co-authored-by: Li.Tianming <Li.Tianming>
2025-05-16 11:33:40 -08:00
Ramon Roche 38548ded12 ci: build all with px4-dev container
pull from github registry ghcr.io

Signed-off-by: Ramon Roche <mrpollo@gmail.com>
2025-05-16 09:54:49 -07:00
Ramon Roche 4c369be95e ci: make sure we run when we need to
Signed-off-by: Ramon Roche <mrpollo@gmail.com>
2025-05-16 09:54:49 -07:00
Ramon Roche e6433d443c ci: use native arch builders
Signed-off-by: Ramon Roche <mrpollo@gmail.com>
2025-05-16 09:54:49 -07:00
alexcekay ab6c6ac769 ci: fix failsafe_sim for newer GCC versions 2025-05-16 09:54:49 -07:00
alexcekay 01c23f635f ci: fix flash analysis for newer GCC versions 2025-05-16 09:54:49 -07:00
alexcekay c1ffdc8e3e ci: use dev-container for nuttx targets 2025-05-16 09:54:49 -07:00
Hamish Willee d1ff1a4c1d Docs: uorb graph gen for 5x and 6x (#24856)
Co-authored-by: PX4BuildBot <bot@pixhawk.org>
2025-05-16 08:44:37 +10:00
Matthias Grob df65e5bced docs events_interface: fix entire paragraph being declared code by accident (#24860) 2025-05-16 08:40:21 +10:00
Ramon Roche 4e8760097d ci: build px4-dev containers on demand
Signed-off-by: Ramon Roche <mrpollo@gmail.com>
2025-05-15 21:24:35 +02:00
PX4 Build Bot cadf69f73c New Crowdin translations - zh-CN (#24854)
Co-authored-by: Crowdin Bot <support+bot@crowdin.com>
2025-05-15 12:27:25 +10:00
PX4 Build Bot 9b8fe45e04 New Crowdin translations - ko (#24852)
Co-authored-by: Crowdin Bot <support+bot@crowdin.com>
2025-05-15 12:27:10 +10:00
PX4 Build Bot 524a10512b New Crowdin translations - uk (#24853)
Co-authored-by: Crowdin Bot <support+bot@crowdin.com>
2025-05-15 12:25:46 +10:00
Julian Oes 36bfcf5ec2 boards: keep INA238 shunt value for Skynode
This is an attempt to keep backwards compatible with Auterion's power
monitor which uses a shunt value of 0.0003 and not 0.0005.
2025-05-15 11:04:21 +12:00
Vincent Poon 5a76868cff Change INA238_SHUNT Default Value for Consistency
Change INA238_SHUNT Default Value from 0.0003 to 0.0005 for Consistency with INA226 & INA228.
2025-05-15 11:04:21 +12:00
Hamish Willee fa2b8cbd49 RC driver config Kconfig -typo (#24848) 2025-05-14 10:10:44 -08:00
Julian Oes 47cb1133c3 boards: add new target for Kakute H7 with dual IMU 2025-05-14 08:00:17 -07:00
Julian Oes bf9167da50 ina238: actually run it
Without this the driver would not run when started from the
i2c_launcher.
2025-05-14 07:34:02 -07:00
Julian Oes abf903a851 ina2xx: params require reboot 2025-05-14 07:34:02 -07:00
Julian Oes 117f198891 ina228/ina238: correctly set ADC range
It turns out that we set the ADC range incorrectly leading to the
measured current being capped at a certain level as the ADC on the
sensor saturates.

Instead, we need to set the range according to the formula given in the
interface datasheet.
2025-05-14 07:34:02 -07:00
Hamish Willee 3af9a3f76e Add Niklas Debugging Video to GDB and hard fault sections (#24845) 2025-05-14 17:52:59 +10:00
Hamish Willee 79660d0a39 Amov f410 (#24841)
* add amov_F410_drone

* add amov f410 drone [200~catalogue

* Basic subedit

* Further subediting

* Add parameter file

* Update local param file

---------

Co-authored-by: lgf <1969354053@qq.com>
2025-05-14 13:44:41 +10:00
Hamish Willee a426d27ff8 Fixup multi vehicle sim (gazebo) plus intro page images for linux/dronecode (#24840)
* Fix up site logos on front page

* Fix up rendering mult-vehicle sim
2025-05-14 12:05:12 +10:00
maksimdrachov c79fe7292a Grippers: added electro-magnetic gripper (#24833)
* Grippers: added electro-magnetic gripper

* Update docs/en/peripherals/gripper_servo.md

* Update docs/en/peripherals/gripper_servo.md

---------

Co-authored-by: Hamish Willee <hamishwillee@gmail.com>
2025-05-14 11:20:23 +10:00
Hamish Willee db10fe6a97 Docs update metadata (#24839)
* Docs: Failsafe simulator update

* docs: update module reference metadata

* docs: update parameter reference metadata

* git commit -m 'docs: metadata: update uORB graph JSONs'

---------

Co-authored-by: PX4BuildBot <bot@pixhawk.org>
2025-05-14 10:53:40 +10:00
PX4 Build Bot 8adb439b58 New Crowdin translations - zh-CN (#24829)
Co-authored-by: Crowdin Bot <support+bot@crowdin.com>
2025-05-14 09:22:33 +10:00
PX4 Build Bot 2b7710122e New Crowdin translations - ko (#24827)
Co-authored-by: Crowdin Bot <support+bot@crowdin.com>
2025-05-14 09:22:19 +10:00
Jacob Dahl 7ac85d8f99 adis16507: enhance driver to handle and recover from all failure modes (#24691)
* adis16507: enhance driver to handle and recover from all failure modes
- Clean up driver
- Add optional hardware reset
- Fix scale and range for 125 deg/s variant
- Handle communication errors when read returns zeroes
- Improved perf counters

* change prints to PX4_DEBUG, define BURST_READ_CMD, do both soft and hard reset, use ScheduleNow instead of 1ms delay, change read/write stall period to SPI_STALL value
2025-05-13 09:42:19 -06:00
chfriedrich98 ce9dd237a9 rover: handle invalid bearing setpoint 2025-05-13 10:23:35 +02:00
chfriedrich98 1857920a5f rover: clean up velocity setpoint 2025-05-13 10:23:35 +02:00
chfriedrich98 b727ce86a0 rover: clean up speed terminology 2025-05-13 10:23:35 +02:00
Jacob Dahl 1d5e58b948 mavlink: set system clock from SYSTEM_TIME (#24807)
* mavlink: set system clock from SYSTEM_TIME message if behind by more than 60 seconds
2025-05-12 16:11:16 -08:00
Balduin f01aade729 ZMO airframe: update parameters (#24803)
* ZMO airframe: update parameters

Including some parameters we found useful during the tests over the
previous months:

 - various controller & transition tuning refinements
 - remove battery capacity (not reliable enough w battery degradation)
 - airspeed scale
 - rotor configs:
    - remove everything related to rotors 3 and 4 (which don't exist)
    - set moment coefficients explicitly even if at default
 - Increase roll limit (FW_R_LIM, FD_FAIL_R)
 - min and max airspeeds
 - tilt servo min and default PWM values

* ZMO airframe: address review

 - explicitly set CA_ROTOR3_* to 0 (as these are set in the parent
   13100 which describes a quadrotor)
 - remove ASPD_SCALE_1 (close enough to default, and better to have
   slightly low reading)
 - remove MPC_ACC_HOR_MAX (= default)
 - remove MPC_TILTMAX_AIR (was temporary)
 - remove SENS_EN_SF1XX (= default)

* ZMO airframe: update tilt setup

to describe a setup where tilt servos can provide yaw torque in both
directions in multicopter mode.

* ZMO airframe: wording
2025-05-12 12:13:35 +02:00
PX4 Build Bot d04d6af696 New Crowdin translations - uk (#24828)
Co-authored-by: Crowdin Bot <support+bot@crowdin.com>
2025-05-11 12:24:56 +10:00
Jacob Dahl a8618691f0 docs: gz: update docs for multi vehicle simulation (#24822) 2025-05-10 20:20:14 +01:00
Matthias Grob 406f0bb470 Fix cellular_status message definition (#24662)
* msg: fix cellular_status definition

12 * Update msg/CellularStatus.msg

* cellular_status: remove confusing reference to roaming

Co-authored-by: Hamish Willee <hamishwillee@gmail.com>
2025-05-08 15:07:11 +02:00
Hamish Willee 6bca750ab3 crowdin_docs.yml - ignore the param reference 2025-05-07 19:29:57 -07:00
Jacob Dahl 050425af25 gz: specify custom world coordinates (#24813)
gz: allow custom world coordinates with environment variables and update the docs
2025-05-07 20:36:40 +02:00
Ramon Roche 688e6aafae ci: introduce px4-dev container with multi arch support (#24022) 2025-05-07 12:12:27 -04:00
chfriedrich98 2d23fda77d rtl_direct: fix function naming 2025-05-07 17:42:07 +02:00
chfriedrich98 4e436cc64e rover: update land detector 2025-05-07 17:42:07 +02:00
chfriedrich98 771d09b968 navigator: reset next WP in mission fast reverse 2025-05-07 17:42:07 +02:00
chfriedrich98 b78b063fd8 rover: skip to LAND on direct RTL activation 2025-05-07 17:42:07 +02:00
chfriedrich98 f13f9b2240 rover: update rtl time estimator 2025-05-07 17:42:07 +02:00
Beat Küng fee575f944 docs: update integration tests (#24671)
* docs: update integration tests

Updates for https://github.com/PX4/PX4-Autopilot/pull/22494.
Transferred from https://github.com/PX4/PX4-user_guide/pull/2970.

* Apply suggestions from code review

* Update docs/en/test_and_ci/integration_testing_ros1_mavros.md

---------

Co-authored-by: Hamish Willee <hamishwillee@gmail.com>
2025-05-07 13:52:03 +10:00
Matthias Grob 87db286a88 pps_capture_params: clarify description (#24641) 2025-05-07 11:15:20 +10:00
Ramon Roche b851c3728c ci: avoid multiple builds with concurrency checks
Signed-off-by: Ramon Roche <mrpollo@gmail.com>
2025-05-06 20:59:26 -04:00
Hamish Willee 93408cc4e2 Update main.md release to indicate may be out of date on a branch (#24810) 2025-05-07 10:57:46 +10:00
Seungbin Lee 881d58b79f [Doc] Update JFI Telemetry v1.1 Changes (#24747)
* update jfi image

* Update jfi_telemetry.md

* update images

* File size compression

---------

Co-authored-by: Hamish Willee <hamishwillee@gmail.com>
2025-05-07 10:37:32 +10:00
PX4 Build Bot 76a772354c New Crowdin translations - ko (#24797)
Co-authored-by: Crowdin Bot <support+bot@crowdin.com>
2025-05-07 10:07:34 +10:00
PX4 Build Bot 3eaba5f9eb New Crowdin translations - uk (#24798)
Co-authored-by: Crowdin Bot <support+bot@crowdin.com>
2025-05-07 10:07:02 +10:00
PX4 Build Bot 2d30a010f4 New Crowdin translations - zh-CN (#24799)
Co-authored-by: Crowdin Bot <support+bot@crowdin.com>
2025-05-07 10:06:44 +10:00
Roman Shtylman fed1b338c0 Update ulog_file_format.md (#24809)
* Update ulog_file_format.md

Update Known Parser Implementations with updated information for Foxglove and the typescript parser

* Update docs/en/dev_log/ulog_file_format.md
2025-05-07 08:59:22 +10:00
bresch 6b8bf80423 ekf2-mag: never skip post-takeoff mag yaw reset 2025-05-06 11:24:31 -04:00
chfriedrich98 4e17c5496c mecanum: streamline flow of information 2025-05-05 11:38:17 +02:00
chfriedrich98 04512ee91f mecanum: separate velocity control 2025-05-05 11:38:17 +02:00
Julian Oes 3c39095271 [Sponsored by Holybro] Support for Kakute H743-Wing (#24669)
* hrt: Fix PPM input on channel 2

The CCMR1_PPM define for PPM input on channel 2 was incorrectly set to 2,
which was setting bits for channel 1 instead of channel 2. This prevented
PPM input from functioning properly on channel 2.

Changed CCMR1_PPM for channel 2 from 2 to (1 << 8), which correctly
configures the CC2S bits for input capture mode on TI2.

This fixes an issue noted in the existing code comment:
"FIXME! There is an interaction in the CCMR registers that prevents
using Chan 1 as the timer and chan 2 as the PPM"

Tested on STM32H743 with PPM input on PC7 (TIM8_CH2).

* rc_input: enable sharing serial and PPM pin

By setting RC_SERIAL_PORT_SHARED_PPM_PIN_GPIO_RX it is now possible to
use the same pin on the STM32 for PPM input as well as serial input.

* boards: Add support for Holybro KakuteH7-Wing
2025-05-04 14:44:11 -08:00
Jacob Dahl 2fece23c64 gz small improvements (#24761)
* gz: print version number in init, remove gst plugin spam, rename function

* fix 0 timestamp issue by waiting for clock callback before subscribing to other topics. Refactor to cleanup topic subscriptions

* format

* change gzerr to gzwarn
2025-05-04 14:41:19 -08:00
Silvan 918848095a ROMFS: exclude 4020_holybro_px4vision_v1_5 from v6x builds to save flash
Signed-off-by: Silvan <silvan@auterion.com>
2025-05-02 13:37:18 +02:00
Marco Hauswirth f0fdf0b53b EKF2: distinguish airspeed source and use synthetic for wind
Enable wind-dead-reckoning with airspeed source to synthetic airspeed
2025-05-02 13:37:18 +02:00
Silvan 6d12b04bb0 VTOL: do central handling of airspeed measurement
- only use data from airspeed_validated topic if source is SENSOR
    - add 1s timeout (set to NAN if older)
    - use FW_USE_AIRSPD consitently (treat the same as CAS=NAN)

Signed-off-by: Silvan <silvan@auterion.com>
2025-05-02 13:37:18 +02:00
Silvan f7bb5d13f7 At every consumation of AirspeedValidated, check for SOURCE
Signed-off-by: Silvan <silvan@auterion.com>
2025-05-02 13:37:18 +02:00
Marco Hauswirth 5842c991ec AirspeedSelector: add synthetic airspeed option
Synthetic airspeed is calculated based on the thrust setpoint
and the thrust<->airpseed model as configured in the parameters.
2025-05-02 13:37:18 +02:00
Marco Hauswirth c3c863ad95 AirspeedSelector: clean up in preparation of synthetic airspeed 2025-05-02 13:37:18 +02:00
bresch e7250bc8d5 ekf2: do not let mag heading and declination update xy gyro biases
This can destabilize the tilt estimate when the mag field is disturbed
2025-05-02 10:23:43 +02:00
bresch a40377e544 ekf2: always update IMU filters 2025-05-02 10:23:43 +02:00
bresch 6a105bcbdb ekf2-grav: accelerate tilt alignment 2025-05-02 10:23:43 +02:00
bresch c59101e8ed ekf2-gravity: do not estimate accel bias when gravity fusion is active
Gravity fusion uses the bias corrected accelerometer data to correct the
tilt estimate. We should not continue to estimate the accel bias when
this is active as it creates an unwanted feedback loop.
2025-05-02 10:23:43 +02:00
bresch ee30b70a3c ekf2-gravity: start based on accel LPF instead of peak hold
This prevent rapid switching in presence of noise and the innovation
filter is good at rejecting spikes
2025-05-02 10:23:43 +02:00
bresch 6ec6f1b297 ekf2-decl: do not always update tilt 2025-05-02 10:23:43 +02:00
PX4 Build Bot ef0f0884f0 New Crowdin translations - uk (#24714)
Co-authored-by: Crowdin Bot <support+bot@crowdin.com>
2025-05-02 09:33:50 +10:00
Balduin ea93019b62 Docs: gazebo moving platform (#24720)
* Docs: add moving platform

documenting the addition in #24471

* Moving platform docs: address review

 - Release note, write release in docs
 - Describe configuration also in main gazebo sim docs, syntax section
 - Tip that plugin can be used in other worlds, linking to plugin readme

* Update docs/en/sim_gazebo_gz/index.md

Co-authored-by: Hamish Willee <hamishwillee@gmail.com>

---------

Co-authored-by: Hamish Willee <hamishwillee@gmail.com>
2025-05-02 08:51:21 +10:00
Hamish Willee 9cf3e83197 VehicleCommand.msg - takeoff & global position (#24574)
* VehicleCommand.msg - takeoff & global position

* Apply suggestions from code review

* Update msg/versioned/VehicleCommand.msg

* Update msg/versioned/VehicleCommand.msg

* Update msg/versioned/VehicleCommand.msg

* Update msg/versioned/VehicleCommand.msg

* Update msg/versioned/VehicleCommand.msg

* Update msg/versioned/VehicleCommand.msg
2025-05-01 18:37:46 +10:00
Hamish Willee 9e6e2df15c docs_bug_report.yml - fix errors (#24790) 2025-05-01 13:56:07 +10:00
Hamish Willee 1a4a44a223 Add docs issue template (#24788) 2025-05-01 13:36:17 +10:00
Daniel Agar 38d67f5a93 drivers/ins/vectornav: bump cmake minimum to 3.5 2025-04-30 18:12:33 -04:00
Daniel Agar 00d6bef6a9 cmake/gtest: bump cmake minimum to 3.5 2025-04-30 18:12:33 -04:00
Daniel Agar 45bdf20481 lockstep_scheduler: bump cmake minimum to 3.5 2025-04-30 18:12:33 -04:00
Vincello ff8c4b918a boards: new Corvon 743v1 board support 2025-04-30 11:14:04 -04:00
PX4 Build Bot 2f104ed83f New Crowdin translations - ko (#24713)
Co-authored-by: Crowdin Bot <support+bot@crowdin.com>
2025-04-30 16:39:47 +10:00
PX4 Build Bot 601b06532a New Crowdin translations - zh-CN (#24715)
Co-authored-by: Crowdin Bot <support+bot@crowdin.com>
2025-04-30 16:39:31 +10:00
Hamish Willee 3b78df9ec3 docs_deploy.yml - fixes following first test (#24783) 2025-04-30 16:22:07 +10:00
Hamish Willee 873f704ae3 docs_deploy.yml - update to create backup and always be single release (#24781)
* docs_deploy.yml - update to create backup and always be single release

* Add build time variable to make it easier to confirm last successful deploy
2025-04-30 15:50:49 +10:00
chfriedrich98 39fa8b5550 differential: migrate state machine to velocity control 2025-04-29 14:49:44 +02:00
chfriedrich98 ca01d9e37c differential: update airframe tuning 2025-04-29 14:49:44 +02:00
chfriedrich98 16c9c175ae differential: streamline flow of information 2025-04-29 14:49:44 +02:00
chfriedrich98 0ab9071606 differential: seperate velocity control 2025-04-29 14:49:44 +02:00
bresch b5f011a31f cal: transpose rotation instead of computing inverse
This is equivalent for an orthonormal matrix
2025-04-29 10:26:51 +02:00
Silvan Fuhrer 03c7e7aa08 FW Rate Controller: scale static trim offsets with airspeed
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2025-04-28 13:34:04 +02:00
Silvan 06d3331d71 mavlink streams: remove unused sub from global pos int
Signed-off-by: Silvan <silvan@auterion.com>
2025-04-28 13:17:53 +02:00
Tomas Twardzik 94bbd2d69a [fix]reducing length of Geofence vilations to prevent STATUSTEXT message length overrun (#24719) 2025-04-25 10:20:17 -08:00
Matthias Grob 8e89906b9a docs: update link to navigator's publish_vehicle_command function 2025-04-25 15:32:47 +02:00
Matthias Grob dfed3970d4 navigator: use reference instead of pointer to pass the vehicle command to publish 2025-04-25 15:32:47 +02:00
Matthias Grob 672d228d79 navigator: fill vehicle_command with float literals and comment what they stand for 2025-04-25 15:32:47 +02:00
Matthias Grob da870c4dce navigator: refactor vcmd -> vehicle_command 2025-04-25 15:32:47 +02:00
Matthias Grob 176783dbcb navigator: clarify publish_vehicle_command() comment 2025-04-25 15:32:47 +02:00
Matthias Grob f07ddda344 navigator: refactor publish_vehicle_cmd() -> publish_vehicle_command() 2025-04-25 15:32:47 +02:00
Matthias Grob 5f34474ecb FlightTaskAuto: clean up parameter description and internal variable naming 2025-04-25 15:32:47 +02:00
Silvan 2ba5a455ed FW land detector: increase some max thresholds
Signed-off-by: Silvan <silvan@auterion.com>
2025-04-25 15:21:19 +02:00
Silvan 180658c5f9 sensors: display one decimal for params
Signed-off-by: Silvan <silvan@auterion.com>
2025-04-25 15:21:19 +02:00
Silvan f7bde67f9a VTOL: make VT_FWD_THRUST_EN more concise
Signed-off-by: Silvan <silvan@auterion.com>
2025-04-25 15:21:19 +02:00
Silvan db25101e52 VTOL: increase max for VT_FWD_THRUST_SC
Signed-off-by: Silvan <silvan@auterion.com>
2025-04-25 15:21:19 +02:00
Peter Breuer 38922d10a0 fix: fallback to mode set by COM_POSCTL_NAVL upon navigation loss in pos slow mode 2025-04-25 08:16:21 +02:00
Niklas Hauser effb9dee11 [tfmini] Configure range and FoV via parameters 2025-04-24 14:51:46 +02:00
Niklas Hauser 43ef690254 [boards] Do not start Mavlink on external connector by default 2025-04-23 15:31:58 +02:00
Peter C. 7aaaa83497 Update photos & diagrams for Pixhawk 6C Mini and 6X (#24687) 2025-04-22 18:19:27 -07:00
Matthias Grob 9eaec534ab mc_att_control_main: fix check for hover thrust estimate update (#24750) 2025-04-22 15:53:51 -08:00
dawr68 f08d01b4d5 Make throttle stick scaling more predictable in mc-stabilized mode (#24710)
* Rescale throttle curve to HTE as option

* Add slew rate to hover thrust estimate

* Update docs to reflect changes

Fix formating

* mc_att_control: suggestions for hover thrust slewing

- Slower slew rate
- Move update of hover thrust estimate into main loop
- Make sure dt for slew rate is correct
- Apply parameter updates if hover thrust estimate not used
- Parameter description in metadata files

* fix: Rescaling cases order

* Rescale to HTE estimate by default

* Update src/modules/mc_pos_control/multicopter_position_control_params.c

Co-authored-by: Mathieu Bresciani <brescianimathieu@gmail.com>

* Fix hte sub name

* Update MPC_THR_CURVE description

* Swap thr curve values to make hte rescaling default for value 0

---------

Co-authored-by: Matthias Grob <maetugr@gmail.com>
Co-authored-by: Mathieu Bresciani <brescianimathieu@gmail.com>
2025-04-22 16:36:33 +02:00
Matthias Grob 9404783c99 EKF2: more accurate unaided yaw calculation
to fix the yaw unlocking in StickYaw
when giving a lot of roll and pitch input
2025-04-22 15:55:38 +02:00
Matthias Grob d514cb4903 mc_att_control: use StickYaw class for Stabilized
to make yawing including reset and drift handling consistent with
Altitude and Position mode.
2025-04-22 15:35:26 +02:00
Matthias Grob 174147208e Move StickYaw class into a globally available library 2025-04-22 15:35:26 +02:00
biednick bae6328c7b Fix typo in SPI signal table (#24742)
CS! to CS1
2025-04-21 09:56:43 -08:00
Alexander Lerach 937998b739 vtol: reduce schedule frequency, which causes DSHOT150 problems
* vtol: reduce schedule frequency, which causes DSHOT150 problems

* vtol_att_control_main: refactor callback handling

---------

Co-authored-by: Matthias Grob <maetugr@gmail.com>
2025-04-17 18:31:57 +02:00
Alexander Lerach 905b6ac0ba Use ITCM on v5x 2025-04-17 04:48:37 -04:00
Silvan 921dc67824 FW land detector: only use LNDFW_ROT_MAX if speeds are not valid
The rotational speed threshold on fixed-wing vehicles is triggering easily
if the plane is lifted prior to takeoff (hand-launch), and can cause issues
for the auto takeoff state machine. Thus if either airspeed or groundspeed is valid,
it's better to rely on these for land detection, and only use the rotational
speed if they're invalid.

Signed-off-by: Silvan <silvan@auterion.com>
2025-04-16 17:20:55 +02:00
Matthias Grob fa3f255301 SIH: write out vehicle types for clarity (#24731) 2025-04-16 14:03:34 +02:00
Jacob Dahl ff7c636065 gz: better error message when installation is missing (#24661) 2025-04-16 09:36:25 +02:00
Niklas Hauser 154623500e boards: Add Auterion FMUv6s target 2025-04-15 22:31:37 -04:00
Pedro Roque 9027dc146e feat: add 6 DoF trajectory setpoints message
* feat: add attitude to trajectory setpoints

* feat: proposed new trajectory message for fully actuated vehicles

* fix: moved to unversioned and changed naming scheme

* feat: added space between translation and attitude control

* fix: change cmakelists
2025-04-15 10:24:03 +02:00
Julian Oes 43f5a713db stm32_common: add timer 12 (#24680) 2025-04-15 16:10:11 +12:00
Alexander Lerach 975f743d87 boards: Increase TELEM2 rx buffer size for DDS over serial use-case (ARK Jetson) 2025-04-10 18:06:42 +02:00
Beat Küng 2d899c624e platforms: update nuttx submodule 2025-04-10 04:30:41 -04:00
Hamish Willee 5f06e861ec Ubuntu Versions update and Gazebo Classic deprioritisation (#24702) 2025-04-10 14:26:06 +10:00
Hamish Willee 0bb0719327 Update mavlink submodule to latest (#24698) 2025-04-10 14:43:28 +12:00
João Mário Lago 3968b35ac5 boards: bluerobotics: Add navigator board support (#24018) 2025-04-09 14:14:06 -08:00
Jacob Dahl 151c548838 iis2mdc: add note about lis2mdl compatibility and link to datasheet 2025-04-09 09:28:38 -06:00
Jacob Dahl f0a852918b lis2mdl: remove driver from source. This part is functionaly equivalent to the iis2mdc 2025-04-09 09:28:38 -06:00
PX4 Build Bot e58035c57a New Crowdin translations - ko (#24677)
Co-authored-by: Crowdin Bot <support+bot@crowdin.com>
2025-04-09 14:24:28 +10:00
PX4 Build Bot 6704cc14f9 New Crowdin translations - uk (#24678)
Co-authored-by: Crowdin Bot <support+bot@crowdin.com>
2025-04-09 14:23:27 +10:00
Hamish Willee 2564022390 Split MAVLink docs into separate topics for sending/receiving/custom (#24694) 2025-04-09 12:32:24 +10:00
co63oc f4cfee6f72 Fix typos in comments (#24681) 2025-04-08 16:47:58 -08:00
Patrik Dominik Pordi 03345db36e Added Flight REview for Encrypted logs (#24690)
* Added Flight REview for Encrypted logs

* Subedit

---------

Co-authored-by: Hamish Willee <hamishwillee@gmail.com>
2025-04-09 10:37:14 +10:00
chfriedrich98 e228456a67 ackermann: update 51001 airframe 2025-04-08 12:27:11 +02:00
chfriedrich98 ca76d287d4 rover: add rover-specific position setpoint 2025-04-08 12:27:11 +02:00
chfriedrich98 9fe98b0724 ackermann: seperate velocity control 2025-04-08 12:27:11 +02:00
chfriedrich98 8eb873a245 ackermann: streamline flow of information 2025-04-08 12:27:11 +02:00
Alex Klimaj 68dc1fcd66 boards: ark_fpv add camera feedback module (#24686) 2025-04-07 15:51:29 -08:00
Liu1 47ab0663f6 BMP581: Collect data using normal mode (#24464) 2025-04-07 11:48:23 -08:00
PX4 Build Bot ed0c8eff7b New Crowdin translations - zh-CN (#24679)
Co-authored-by: Crowdin Bot <support+bot@crowdin.com>
2025-04-07 14:15:56 +10:00
Balduin c0bb482126 Gazebo: Moving platform (#24471)
* gz_plugins: add MovingPlatformController

This plugin moves the entity to which it is attached to simulate moving
platforms (boats, trucks, ...) to takeoff and land on. Updates
Tools/simulation/gz submodule with corresponding dependency. Use with:

    PX4_GZ_MODEL_POSE=0,0,2.2,0,0,0 PX4_GZ_WORLD=moving_platform make px4_sitl gz_standard_vtol

more in README.md

* MovingPlatformController: Wrench implementation

Now it works by applying appropriate forces & torques to make the
platform move as desired. Compared to the previous velocity-based
version it introduces no kinematic constraints, keeping it realistic.

Other updates:
 - Also make heading configurable by env var in addition to velocity
 - Cleaner error handling (runtime error, gzerr, gzwarn)
 - Read parameters (gravity, platform mass & height) from model rather than hardcoding
 - Update README with new env vars, usage in sdf, etc.

* MovingPlatformController: fix warning message

* MovingPlatformController: fix build

https://github.com/PX4/PX4-Autopilot/pull/24518 changed some variable
names in CMakeLists. This adapts ours to use the new ones.

* MovingPlatformController: format

* MovingPlatformController: address code review

From feedback on PR
 - Parameterise low pass filters with cutoff frequency (rather than
   filter coefficient directly).
 - Add comment with units of feedback gains.
 - Scale attitude gains with platform inertia (rather than mass).

Additionally
 - Wait 5 seconds before moving the platform so the model has time to
   spawn (was quicker before rebasing...)
 - Refactor: separate noise generation and force/torque calculation into
   two separate functions
 - rename updatePlatformState -> getPlatformState to emphasise
   difference from other update* functions that update internal state only
 - remove unused gz transport node
 - README grammar

* MovingPlatformController: format

* MovingPlatformController: remove redundant call

* MovingPlatformController: clarify explanation

* MovingPlatformController: clarify & comment units

* MovingPlatformController: wait for model to spawn

Rather than waiting a fixed 5s, we now only move the platform once the
model is spawned.

For that we construct the model name from the relevant environment
variables, in the same way as done in px4-rc.gzsim.

If attaching to an existing model, do not wait.

* MovingPlatformController: correct substring extraction

---------

Co-authored-by: Jacob Dahl <37091262+dakejahl@users.noreply.github.com>
2025-04-06 10:57:44 -08:00
jmackay2 561937f35a Reduce dependency of gstreamer for gz simulation (#24676)
Co-authored-by: jmackay2 <jmackay2@gmail.com>
2025-04-04 20:22:25 -08:00
Julian Oes ef932ae8a1 uavcan: fix timer overrides (#24668)
The older defines without the L for the APB1 Low domain errored for some
of the timers, such as 6 and 7.

I checked and it turns out the defines with and without L are identical.
2025-04-04 12:42:17 -08:00
Matthias Grob 45d7f707d7 mc_att_control: remove useless subscription
added in 28fa044386
#19633
2025-04-04 13:23:49 +02:00
Beat Küng 5d3083ec00 ci: copy px4 msgs directly to ros ws & upload failed logs 2025-04-04 09:12:53 +02:00
Beat Küng 845d65fe9b fix output_groups_from_timer_config.py: avoid invalid escape sequence
Python warning:
Tools/module_config/output_groups_from_timer_config.py:38:
SyntaxWarning: invalid escape sequence '\)'
2025-04-04 09:12:53 +02:00
GuillaumeLaine 648e730c4a ev_odom: always convert reference frame enum 2025-04-04 09:12:53 +02:00
Beat Küng 6fcfd5fac1 uxrce_dds_client: immediately create data writers on startup
There is some race condition where in rare cases the topic publication
right after creating the writer did not get received on the ROS side.
This happens even with reliable QoS & reliable transport.
2025-04-04 09:12:53 +02:00
GuillaumeLaine ba35ca461c ci: add external navigation integration tests 2025-04-04 09:12:53 +02:00
Beat Küng 0e4c794674 ros_tests: change filter to use all tests
The name is being changed in https://github.com/Auterion/px4-ros2-interface-lib/pull/8
2025-04-04 09:12:53 +02:00
Beat Küng 3d6056411f integration tests: add --force-color & set in CI
github actions supports color output, but does not report as a tty.
See https://github.com/actions/runner/issues/241.
2025-04-04 09:12:53 +02:00
Beat Küng abb80ae71e ci: add ros integration tests 2025-04-04 09:12:53 +02:00
Beat Küng a954ec4d55 test: add ros integration test runner script & config 2025-04-04 09:12:53 +02:00
Beat Küng 7c14a63855 refactor mavsdk_tests: move code into separate classes & extract mavsdk-specifics
Allows it to be reused for other integration tests, like ros.
2025-04-04 09:12:53 +02:00
Beat Küng d78af5436e mavsdk_tests: highlight px4 errors & reset color on gazebo output 2025-04-04 09:12:53 +02:00
Beat Küng 45285a57ad fix mavsdk_tests: add ',' to test_filter config 2025-04-04 09:12:53 +02:00
Beat Küng bbcd153e94 sitl: add generic way to override params via ENV variables 2025-04-04 09:12:53 +02:00
Julian Oes 3bde706cb3 cubepilot: enable heater for CubeOrange+
This adds everything required to use the heater on Orange+ but leaves it
disabled by default.
2025-04-04 08:31:06 +02:00
Julian Oes dbe57fad08 cubepilot: add heater support for CubeOrange
This adds the heater (via px4io) in but it's still disabled by default.
2025-04-04 08:31:06 +02:00
Julian Oes f7740bdfd2 heater: fix invalid file descriptor
We need to open the device later in the work queue and not in the
constructor during task_spawn.

There is already a lazy open in place, so just removing this fixes the
problem for me.
2025-04-04 08:31:06 +02:00
Julian Oes 74a8d897b2 ROMFS: start heater after px4io
Otherwise the device is not available when we start the heater.
2025-04-04 08:31:06 +02:00
Patrik Dominik Pordi 1ee3b7e77d [Pending] Updated Encrypted logs docs to reflect #24489 , (#24580)
* Updated Encrypted logs docs to reflect https://github.com/PX4/PX4-Autopilot/pull/24489

* Subedit

* Subedit the key generation bit

* Updated the docs with multiple command line args for the decryptor and added OpenSSL as a requirement

* Subedit

* Update log_encryption.md

---------

Co-authored-by: Hamish Willee <hamishwillee@gmail.com>
2025-04-04 07:36:35 +11:00
Patrik Dominik Pordi cc492bbf6e [Sponsored by ARK] Encryption (#24489)
* Added the board configs for encryption, I had to disable smbus and px4 io in the arkv6x

* Added the key generator script

* Added the decryptor, logs are needed for it though

* Added the log download and modified the decryptor

* Quick fixes & README

* Additional modifications & cleanup

* Tested upd connection
Adjusted the log downloader to handle multiple entry responses from the FC
Edited README

* Reverted IP address change

* Added pycryptodome to the requirements.txt

* fixes for log download and decryption

* Removed old log decryptors and updated README

* Pointed the ark borads to the dummy key updated the README accordingly

* Adjusted the folders in README, removed new lines

* Extended command line arguments for all possibilities for description

* Added MAV_CMD_REQUEST_AUTOPILOT_CAPABILITIES after heartbeat received to make sure log request is answered in all cases

* Update Tools/log_encryption/README.md

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

* Update Tools/log_encryption/README.md

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

* Update Tools/log_encryption/README.md

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

* Update Tools/log_encryption/README.md

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

* Edited README, changed the serial connection logic and updated logdownload, made decryption a bit easier to understand

* Update Tools/log_encryption/README.md

Co-authored-by: Hamish Willee <hamishwillee@gmail.com>

* Removed new lines

* arkv6x: add individual mags to default.px4board

---------

Co-authored-by: Jacob Dahl <dahl.jakejacob@gmail.com>
Co-authored-by: Alex Klimaj <alex@arkelectron.com>
Co-authored-by: Jacob Dahl <37091262+dakejahl@users.noreply.github.com>
Co-authored-by: Hamish Willee <hamishwillee@gmail.com>
2025-04-02 23:40:45 -08:00
Seungbin Lee 9cc1e01bd8 [Doc] Added J.Fi Wireless Telemetry Module (#24656)
* add jmarple product

* update youtube link

* Move/shrink images

* Move above discontinued items

* Minor update

* Fix broken link

* update PX4 Setup guide

* Subedit

---------

Co-authored-by: Hamish Willee <hamishwillee@gmail.com>
2025-04-03 15:16:56 +11:00
Hamish Willee 724987d59e Autotune large MC vehicles (#24614) 2025-04-03 14:21:00 +11:00
Hamish Willee 27ff547e07 Updates linkchecker and fixes up the doc contribution sections (#24660)
* Update yarn linkchecker

* Fix edit page links. Fix contribution pages
2025-04-03 12:41:56 +11:00
Eric Katzfey db97dd471d Added setting default for EKF2_EV_CTRL to 15 for VOXL 2 boards 2025-04-02 11:11:56 -04:00
Hamish Willee 5509061803 docs_flaw_checker.yml - attempt update (#24655) 2025-04-02 18:47:49 +11:00
Hamish Willee f2026343d7 [Doc] Data link loss exceptions (#24652)
* [Doc] Data link loss exceptions

* Tidy
2025-04-02 12:13:12 +11:00
Hamish Willee fee81a5c88 [Docs] Gimbal - improvements to mavlink setup instructions (#24613) 2025-04-02 11:59:28 +11:00
PX4 Build Bot d06e9cc302 New Crowdin translations - zh-CN (#24636)
Co-authored-by: Crowdin Bot <support+bot@crowdin.com>
2025-04-02 11:57:39 +11:00
bresch e35c1f430c EKF-AGP: only reset lat/lon when starting 2025-04-01 16:42:26 +03:00
Alex Klimaj 1928758fbc boards: ark_fpv add camera trigger and capture drivers (#24643) 2025-03-31 10:48:32 -08:00
bresch f73c7977dd ekf2-flow: limit minimum flow hagl 2025-03-31 11:34:25 +02:00
bresch 53bdceb895 ekf2-flow: check test ratio on Y axis separately 2025-03-31 11:34:25 +02:00
bresch cdab0cb6e4 ekf2-flow: use same measurement prediction as in jacobian derivation
Also avoid double division in flow prediction
2025-03-31 11:34:25 +02:00
bresch 82ea544e8c ekf2-test: add flow unit test for negative distance 2025-03-31 11:34:25 +02:00
Matthias Grob ddb9a5d0b9 gz_plugins: do not look for gz-transport12 (Gazebo garden) (#24633)
this tries to build the plugins and breaks the SITL build if you have
Gazebo garden isntalled even if you're not trying to simulate with
Gazebo.
2025-03-28 10:11:56 -08:00
Roman Bapst 2c8ef05c2d Add COM_DLL_EXCEPT to specifiy exceptions for data link loss failsafe 2025-03-28 17:41:24 +01:00
Alexander Lerach 72454c4fd2 dataman: clarify default storage backend (#24626) 2025-03-28 16:27:12 +01:00
Silvan Fuhrer 69b7a21f02 AirspeedValidated: add VERSION (#24620)
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2025-03-28 12:15:00 +01:00
Jacob Dahl 7cb7977263 dshot: only use 1 DMA, round robin the channels. Fix esc telemetry. (#24610) 2025-03-27 11:41:38 -06:00
Julian Oes 8acf273917 Add RTL_TYPE to continue or reverse (#24581)
This adds RTL_TYPE 4 which means continue the mission or reverse back to
the takeoff location, whichever is closer in terms of mission items
in-between.

This would be nicer to have on a distance rather than mission item count
basis but that would require access to the dataman and make it more
complex.
2025-03-28 06:29:42 +13:00
Daan Smienk 3870992bac Fix spelling mistake (#24623) 2025-03-27 09:46:02 -06:00
Roman Bapst 550bbd9051 FW rate controller: Don't constrain airspeed for scaling to maximum airspeed (#24622)
* don't constrain airspeed for scaling to maximum airspeed

Signed-off-by: RomanBapst <bapstroman@gmail.com>

* fix max function

Signed-off-by: RomanBapst <bapstroman@gmail.com>

* remove hardcoded max

Signed-off-by: RomanBapst <bapstroman@gmail.com>

---------

Signed-off-by: RomanBapst <bapstroman@gmail.com>
2025-03-27 14:22:40 +01:00
Balduin 19d3e6285b vtol_att_control: shorter elapsed time calculation 2025-03-27 09:29:54 +01:00
Balduin 898d631b24 dds_topics: add vtol_vehicle_status 2025-03-27 09:29:54 +01:00
PX4 Build Bot e7eca72d02 New Crowdin translations - zh-CN (#24617)
Co-authored-by: Crowdin Bot <support+bot@crowdin.com>
2025-03-27 14:43:25 +11:00
PX4 Build Bot 9f4e642e9f New Crowdin translations - ko (#24591)
Co-authored-by: Crowdin Bot <support+bot@crowdin.com>
2025-03-27 14:41:16 +11:00
PX4 Build Bot 6f026f35b1 New Crowdin translations - uk (#24592)
Co-authored-by: Crowdin Bot <support+bot@crowdin.com>
2025-03-27 14:39:36 +11:00
Hamish Willee 46d1489d36 docs_crowdin_download.yml - attempt to fix the label (#24616) 2025-03-27 14:34:24 +11:00
Hamish Willee 4710366862 Open file locally respects frontmatter (#24615) 2025-03-27 14:32:28 +11:00
bresch 82a482ec0b ekf2: reset heading when mag calibration changed 2025-03-26 22:32:51 -04:00
bresch 49624a6457 mag: synchronize calibration count with newly calibrated data
The data contained a mix between the old and new calibration. This
caused the EKF to reset to an incorrect (intermediate) heading.
2025-03-26 22:32:51 -04:00
Alexander Lerach 7acd2e93eb gps: Parse RTCM3 & NAV in parallel 2025-03-26 17:45:10 +01:00
Ramon Roche 9e99bd3b7a tools: fixes px4.py when run outside of root
its mainly being used by homebrew
2025-03-25 21:00:08 -04:00
PX4 Build Bot a2341c29f4 New Crowdin translations - zh-CN (#24593)
Co-authored-by: Crowdin Bot <support+bot@crowdin.com>
2025-03-26 11:06:37 +11:00
Alexander Lerach f608a10ed4 Enable flash analysis comments again for non-fork PRs (#24603) 2025-03-25 15:13:18 -04:00
Andrew Brahim 5cb3fd1c9f remove tel2 default from sf45 (#24602)
Signed-off-by: dirksavage88 <dirksavage88@gmail.com>
2025-03-25 10:10:39 -08:00
Jacob Dahl 9e8b530ad9 sim: refactor startup scripts and fix gz sim standalone (#24600)
* sim: refactor px4-rc.simulator into sim specific startup scripts. Fix gz sim for standalone mode.

* shellcheck disable=SC2154
2025-03-25 11:49:03 -06:00
chfriedrich98 c2706f5406 rover: auto mode stopping conditions 2025-03-25 10:38:30 +01:00
Bertug Dilman 735777862d mavlink streams: LORA mode for low bandwidth radio links (#24328)
* Add LORA radiolink Mavlink message rates

* Do not forward ONBOARD_COMPUTER_STATUS when using low bandwidth radio links

* Update src/modules/mavlink/mavlink_main.cpp

* Update src/modules/mavlink/mavlink_main.cpp

* Update src/modules/mavlink/mavlink_main.cpp

* Update src/modules/mavlink/mavlink_main.h

* Update src/modules/mavlink/mavlink_main.h

* Update src/modules/mavlink/module.yaml

* Update src/modules/mavlink/mavlink_main.h

---------

Co-authored-by: Sebastien <sebastien.courroux@auterion.com>
Co-authored-by: Jacob Dahl <37091262+dakejahl@users.noreply.github.com>
2025-03-24 20:46:49 -08:00
Eric Katzfey 4184cf67d3 voxl2-slpi: Removed bogus protocol check in custom Spektrum RC driver 2025-03-24 16:44:02 -04:00
Alex Klimaj 71554af8fa Add uavcannode accel and gyro publisher (#19885)
* Add uavcannode accel and gyro publisher.

* Add missing Kconfig

* always publish rawimu
2025-03-24 12:08:15 -08:00
RomanBapst f67027f066 improvements
Signed-off-by: RomanBapst <bapstroman@gmail.com>
2025-03-24 17:48:33 +01:00
RomanBapst dfc66993b6 document VT_F_TR_OL_TM and VT_TRANS_TIMEOUT
Signed-off-by: RomanBapst <bapstroman@gmail.com>
2025-03-24 17:48:33 +01:00
Andy Wheatley ca2ed655b8 Allow negative differential pressure if parameter enabled (#24434) 2025-03-24 09:42:36 +01:00
Balduin fdebdc447d dds_topics: add home_position 2025-03-24 09:34:51 +01:00
Marco Hauswirth 283a69dedf enable terrain_hold when not moving vertically 2025-03-24 09:08:18 +01:00
Jacob Dahl 451b0a3db8 gz: rc.simulator: remove references to garden and improve version check (#24577) 2025-03-21 14:22:24 -08:00
Jacob Dahl 4c0a63f679 mavsdk_tests: add multicopter alt hold test (#24396)
* mavsdk_tests: add multicopter alt hold test

* fix test filter

* increase altitude tolerance to 10m as a test

* reduce to 1m tolerance

* increase to 5m tolerance

* increase to 2m tolerance

* reduce back to 1m

* delay 60 seconds

* fix log upload

* fix ulog upload path

* make altitude tolerance in tester.wait_until_altitude configurable

* fix lambda

* default arg in declaration

* tighten up tolerance
2025-03-21 16:21:10 -06:00
Matthias Grob a048a8e8a0 mavlink_receiver: refactor manual_control.throttle extraction to exactly match MAVLink output 2025-03-21 11:44:51 +01:00
Peter Breuer 80ea3a09bb fix: change MANUAL_CONTROL MAVLink message output throttle field range from [-1000, 1000] to [0, 1000] 2025-03-21 11:44:51 +01:00
Peter van der Perk b35753ded9 mr-canhubk3: Enable navigator in default target 2025-03-20 11:45:26 +01:00
Silvan 18b6a61788 Navigator: add NUM_MISSION_ITMES_SUPPORTED to kconfig
Signed-off-by: Silvan <silvan@auterion.com>

boards: increase max mission items for boards with >=1kb RAM to 1000

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

boards: increase NUM_MISSION_ITMES_SUPPORTED for SITL to 10000

Signed-off-by: Silvan <silvan@auterion.com>
2025-03-20 11:45:26 +01:00
Silvan b91e1cd482 Navigator: remove MEMORY_CONSTRAINED_SYSTEM
Signed-off-by: Silvan <silvan@auterion.com>
2025-03-20 11:45:26 +01:00
Silvan d1eff16ad7 Navigator: remove define for RAM_BASED_MISSIONS
Since we have SYS_DM_BACKEND, the user has to option on all boards
to store the mission on the RAM, thus thus define got obsolete.

Signed-off-by: Silvan <silvan@auterion.com>
2025-03-20 11:45:26 +01:00
Hamish Willee 895afea0a7 docs_crowdin_download.yml - auto label the issue with Documentation (#24578) 2025-03-20 13:39:53 +11:00
Hamish Willee 1afa098c90 Link fix in ARK Pi6X Flow (#24572) 2025-03-20 11:56:52 +11:00
Hamish Willee 12988c94f5 docs_deploy.yml - bigger deployment runner (#24575)
* docs_deploy.yml - bigger deployment runner

* docs_crowdin_upload.yml - only run when something goes into main
2025-03-20 11:54:42 +11:00
Hamish Willee 19230aa369 Docs: Fix up links to source (#24570)
* Docs: Fix up links to source

* Copy in metadata manually from px4_user_guide
2025-03-20 09:14:58 +11:00
Jaeyoung Lim 950f2272bf Fix scene path for jsbsim (#24568)
The sitl_run script was misdirecting FG_AIRCRAFT when running flightgear GUI
2025-03-19 20:00:19 +01:00
Hamish Willee 440d76b839 commander_params.c - COM_QC_ACT is action not command (#24541) 2025-03-19 16:35:05 +01:00
PX4 Build Bot 7c444828f3 New Crowdin translations - uk (#24566)
Co-authored-by: Crowdin Bot <support+bot@crowdin.com>
2025-03-19 21:01:00 +11:00
PX4 Build Bot 3d7bc4a558 New Crowdin translations - ko (#24565)
Co-authored-by: Crowdin Bot <support+bot@crowdin.com>
2025-03-19 21:00:14 +11:00
PX4 Build Bot d04e6695ac New Crowdin translations - zh-CN (#24563)
Co-authored-by: Crowdin Bot <support+bot@crowdin.com>
2025-03-19 20:59:57 +11:00
Hamish Willee bd0a59eb1f Autotune - make the conditional code simpler (#24564) 2025-03-19 19:33:33 +11:00
Hamish Willee e63b09da63 docs_crowdin_download.yml - attempt to fix chinese with code zh-CN (#24562) 2025-03-19 19:04:03 +11:00
Hamish Willee 5e1df797e0 more attempts to fix autotune.md translation sensitivity (#24561) 2025-03-19 17:52:57 +11:00
PX4 Build Bot d699adb308 New Crowdin translations - ko (#24560)
Co-authored-by: Crowdin Bot <support+bot@crowdin.com>
2025-03-19 17:39:22 +11:00
Hamish Willee 58282c5292 Autotune tidy - hopefully improve translations (#24559) 2025-03-19 17:26:17 +11:00
PX4 Build Bot bcd609ce51 New Crowdin translations - ko (#24557)
Co-authored-by: Crowdin Bot <support+bot@crowdin.com>
2025-03-19 17:16:45 +11:00
PX4 Build Bot 497efb9665 New Crowdin translations - ko (#24555)
Co-authored-by: Crowdin Bot <support+bot@crowdin.com>
2025-03-19 17:14:06 +11:00
PX4 Build Bot 029060264e New Crowdin translations - uk (#24556)
Co-authored-by: Crowdin Bot <support+bot@crowdin.com>
2025-03-19 17:13:34 +11:00
PX4 Build Bot cba54fc59d New Crowdin translations - ko (#24554)
Co-authored-by: Crowdin Bot <support+bot@crowdin.com>
2025-03-19 16:52:32 +11:00
PX4 Build Bot 3d48ba4c19 New Crowdin translations - ko (#24553)
Co-authored-by: Crowdin Bot <support+bot@crowdin.com>
2025-03-19 16:35:38 +11:00
Hamish Willee 7c6abf2237 Add back the crowdin docs path crowdin_docs.yml (#24552) 2025-03-19 16:22:00 +11:00
Hamish Willee bd4aad0796 Run upload on workflow dispatch if we want. (#24551) 2025-03-19 16:14:35 +11:00
Hamish Willee c909611149 Add .gitignored docs/en/log/ folder (#24550) 2025-03-19 16:06:53 +11:00
PX4 Build Bot 77df2c97ec New Crowdin translations - ko (#24547)
Co-authored-by: Crowdin Bot <support+bot@crowdin.com>
2025-03-19 15:54:47 +11:00
PX4 Build Bot c77f3887aa New Crowdin translations - uk (#24548)
Co-authored-by: Crowdin Bot <support+bot@crowdin.com>
2025-03-19 15:53:22 +11:00
Hamish Willee 6cab668270 crowdin - add back in the ignore (#24549) 2025-03-19 15:40:07 +11:00
Hamish Willee 4e8683b5a9 Try rename the crowdin file (#24545) 2025-03-19 13:48:48 +11:00
Hamish Willee 879c71d3fd crowding to match qgc (#24544) 2025-03-19 13:40:56 +11:00
Hamish Willee cd889dadc2 crowdin.yml - fix typo (#24543) 2025-03-19 13:28:03 +11:00
Hamish Willee f129b7db40 crowdin.yml - try fix base path back (#24542) 2025-03-19 13:15:14 +11:00
Hamish Willee 68d8effe80 crowdin.yml - see if base path affects this. (#24540) 2025-03-19 11:21:39 +11:00
Hamish Willee d9645ae0c0 Holybro PRM02d - fix up to make it clear there is only one variant now (#24539) 2025-03-19 11:10:26 +11:00
Ramon Roche 46647e1842 Revert "ci: fix markdown flaw check ci (#24535)" (#24538)
This reverts commit 64ad0ebe87.
2025-03-19 10:36:46 +11:00
Hamish Willee 8f5ea5fc30 Fix up the comment workflow to trigger on flaw checker (#24537) 2025-03-19 09:58:09 +11:00
Ramon Roche 64ad0ebe87 ci: fix markdown flaw check ci (#24535)
* ci: fix markdown flaw check ci

Signed-off-by: Ramon Roche <mrpollo@gmail.com>

* docs: fix typo

intentionally touching this file to trigger ci

Signed-off-by: Ramon Roche <mrpollo@gmail.com>

* ci: fix path error

Signed-off-by: Ramon Roche <mrpollo@gmail.com>

* ci: intentionally touch

Signed-off-by: Ramon Roche <mrpollo@gmail.com>

* ci: check if exectuion is right

Signed-off-by: Ramon Roche <mrpollo@gmail.com>

* ci: debug with tmate

Signed-off-by: Ramon Roche <mrpollo@gmail.com>

---------

Signed-off-by: Ramon Roche <mrpollo@gmail.com>
2025-03-19 09:27:45 +11:00
Roman Bapst 480cb14c10 VTOL: abort front transition early if airspeed doesn't go above blending speed (#24521)
vtol_type: timeout transition earlier if we use airspeed and airspeed has
not increased above blend airspeed after openloop front transition time.

Signed-off-by: RomanBapst <bapstroman@gmail.com>

---------

Signed-off-by: RomanBapst <bapstroman@gmail.com>
2025-03-18 13:17:53 +01:00
Matthias Grob faf4114a09 gz_bridge: add a localhost GZ_IP to avoid multicasting all messages to all networks 2025-03-18 10:52:34 +01:00
Balduin c0100ed4e7 mavsdk tests: use tester sleep_for function
the previously used std::this_thread::sleep_for is with respect to host
system time which is different from autopilot time if:

 - speed factor != 1
 - something runs slower than realtime regardless of speed factor
 - debugging or otherwise interrupting PX4 control code

tester.sleep_for (which already existed) correctly sleeps w.r.t.
px4/simulation time.
2025-03-18 10:25:38 +01:00
Julian Oes d72c2cc378 uavcan: ignore 0 UTC timestamps (#24529)
We need to wait for a valid UTC timestamp, otherwise we end up in 1970
with Here 4 which sends 0 for a bit even if there is already a fix.
2025-03-17 23:19:54 -06:00
Jacob Dahl b6597f2984 gz: set realtime clock at startup (#24530) 2025-03-17 23:19:10 -06:00
Ramon Roche a88679a26f tools: exclude docs from newline checks (#24531)
Signed-off-by: Ramon Roche <mrpollo@gmail.com>
2025-03-17 19:20:42 -08:00
Jacob Dahl 85ef444f95 gz: fix depends regression (#24527) 2025-03-17 16:17:38 -06:00
Jacob Dahl 3b66166d6c gz: wait for world before spawning model, delay 1s after model spawn to allow time (#24516) 2025-03-17 12:29:10 -06:00
jmackay2 fced29da59 Gz cmake cleanup (#24518)
* clean up cmakelists

* cleanup

---------

Co-authored-by: jmackay2 <jmackay2@gmail.com>
Co-authored-by: Jacob Dahl <37091262+dakejahl@users.noreply.github.com>
2025-03-17 10:02:10 -08:00
jmackay2 d2c049ec93 Remove OpenCV dependency from gz plugin gstreamer (#24519)
Co-authored-by: jmackay2 <jmackay2@gmail.com>
2025-03-17 10:00:40 -08:00
Matthias Grob 40c26e7880 17002_flightgear_tf-g2: translate FW_THR_CRUISE to FW_THR_TRIM (#24523)
See 461d0561b8
2025-03-17 17:18:46 +01:00
Alexander Lerach 9fc9fb56d1 GPS Dump timeout increase + GPS overflow fix 2025-03-17 17:03:45 +01:00
Silvan Fuhrer e691db3cfe Takeoff: on completion estabilish loiter at current position for FW
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2025-03-17 02:52:12 -08:00
Silvan Fuhrer 9499b32be6 Revert "Takeoff: remove set loiter logic, as it is handled in loiter.cpp already (#24454)"
This reverts commit 8547ebb863.
2025-03-17 02:52:12 -08:00
bresch fa0ba69083 ReplayEkf: correctly add all subscriptions
Logged data and subscription messages can be mixed, so don't stop adding
subscriptions after finding the first logged message
2025-03-17 10:01:48 +01:00
bresch 30a6a854c1 ReplayEKF: reduce effect of IMU time slip 2025-03-17 10:01:48 +01:00
Julian Oes fe5d90301d boards: fix startup delay for all Kakute H7
This configures the RTC clock to use the HSE instead of the not existing
LSE clock which prevents boot waiting for the not existing LSE crystal
for a few seconds on startup.
2025-03-17 07:27:11 +01:00
bresch 9ac03f03eb ekf2: consider GNSS vel as horizontal velocity aiding 2025-03-14 18:22:00 +01:00
Hamish Willee e0d15b7a80 Cleanup docs crowdin download (#24504)
* Strip out most of the debugging

* Try fix up the matching paths
2025-03-13 18:24:39 +11:00
Hamish Willee c8b905d748 Debug crowdin download (#24503)
* Debug crowding download

* Add debug to crowdin download action
2025-03-13 17:27:18 +11:00
Julian Oes 42d6298dbf commander: fix accel sensor present flag
This must have been a copy paste mistake.
2025-03-13 07:13:08 +01:00
Hamish Willee 617fdd875e crowdin.yml - fix ignore to be an array (#24502) 2025-03-13 17:04:54 +11:00
Hamish Willee b677247ea0 docs_crowdin_download.yml - revert last change (#24501) 2025-03-13 16:51:19 +11:00
Hamish Willee 2f374c6e46 docs_crowdin_download.yml - use secrets PX4BUILTBOT_PERSONAL_ACCESS_TOKEN (#24500) 2025-03-13 16:40:26 +11:00
Hamish Willee 88d623bedb Move PX4 Guide source into /docs (#24490)
* Add vitepress tree

* Update existing workflows so they dont trigger on changes in the docs path

* Add nojekyll, package.json, LICENCE etc

* Add crowdin docs upload/download scripts

* Add docs flaw checker workflows

* Used docs prefix for docs workflows

* Crowdin obvious fixes

* ci: docs move to self hosted runner

runs on a beefy server for faster builds

Signed-off-by: Ramon Roche <mrpollo@gmail.com>

* ci: don't run build action for docs or ci changes

Signed-off-by: Ramon Roche <mrpollo@gmail.com>

* ci: update runners

Signed-off-by: Ramon Roche <mrpollo@gmail.com>

* Add docs/en

* Add docs assets and scripts

* Fix up editlinks to point to PX4 sources

* Download just the translations that are supported

* Add translation sources for zh, uk, ko

* Update latest tranlsation and uorb graphs

* update vitepress to latest

---------

Signed-off-by: Ramon Roche <mrpollo@gmail.com>
Co-authored-by: Ramon Roche <mrpollo@gmail.com>
2025-03-13 16:08:27 +11:00
Jacob Dahl 8e6d2ebe4a gz: fix model sdf path (#24488) 2025-03-12 21:39:26 -06:00
Jacob Dahl 543851db50 [Sponsored by ARK] Bidirectional DShot (#23863)
* Bidirectional DShot

Co-authored-by: Julian Oes <julian@oes.ch>

* f4/f1 support, not supported

* fix f1 build target

* sanity check timer_channel value, fix CCxNP ifdef, debug stuff

* removed debug code, added define for H7 HAVE_GTIM_CCXNP

* round robin sampling for less than 4 DMA

* unlimited esc_status logging

* dshot: fix formatting

* dshot: add define for number of DMA channels to use

This allows individual boards to override the number of DShot channels
and hence avoid round robin capture of the RPM feedback.

* ARK: enable 4 DMA channels for DShot on 6X

* dshot: publish when all channels are updated

This slows down the ESC_STATUS publication in the case of round robin
capture. E.g. for 800 Hz output with one DMA channel, the ESC_STATUS is
now published at 200 Hz.

* dshot: avoid duplicate publications for bidir and telem

Instead of publishing both bidirectional dshot updates as well as
telemetry updates, we now combine the data from both streams, and
publish whenever we get RPM updates, as the latter arrives with higher
rate, e.g. 200 Hz with round robin, or faster otherwise.

When combining the data, we take RPM from bidirectional dshot, and the
rest from telemetry.

When we have only one of the two, either telemetry or bidirectional
dshot, we just publish that one.

* boards: add ark fpv and pi6x BOARD_DMA_NUM_DSHOT_CHANNELS

* dshot: turn off debug build

---------

Co-authored-by: Julian Oes <julian@oes.ch>
Co-authored-by: alexklimaj <alex@arkelectron.com>
2025-03-12 12:55:15 -06:00
Niklas Hauser 2280e94a47 [IST8310] Respect address CLI argument 2025-03-12 13:48:49 -04:00
Andrew Wilkins 579a1e48e9 airframes/4019_x500_v2: removed defaults for min & max motors (#24459) 2025-03-12 12:18:08 -04:00
Beat Küng a3c387fa85 fix commander: separate state tracking for battery_unhealthy failsafe (#24493)
There is already another check for battery_unhealthy, so a separate state
and ID are required.

Fixes the error:
ERROR [failsafe] BUG: duplicate check for caller_id 74
2025-03-12 16:46:02 +01:00
bresch b5e2395982 GPS2_RAW: fill extension fields 2025-03-12 13:12:38 +01:00
Silvan Fuhrer 8547ebb863 Takeoff: remove set loiter logic, as it is handled in loiter.cpp already (#24454)
Signed-off-by: Silvan <silvan@auterion.com>
2025-03-12 13:05:47 +01:00
Niklas Hauser a1f363aa00 [IST8310] Reset all I2C addresses on startup
Reading the WAI register is unreliable as the chip sometimes returns
wrong values or boots with the wrong I2C address. This can be fixed by
sending the software reset command to all four possible I2C addresses.
2025-03-12 13:05:18 +01:00
Silvan Fuhrer c4ade17b38 Commander: Never clear link loss failsafe automatically, also not when failsafe is Hold (#24317)
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2025-03-12 12:46:42 +01:00
Silvan Fuhrer 5319b82e4d MissionBase: replay change speed on resume immediately if not going to previous (#24484)
* MissionBase: replay change speed on resume immediately if not going to previous

This fixes an issue where the speed was not correctly set at the beginning of a
survey (with first wp having a DO_CHANGE_SPEED attached) when the user paused
and resumed the mission prior to reaching the first waypoint.

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

* Update src/modules/navigator/mission_base.cpp

Co-authored-by: Stefano Colli <45536733+StefanoColli@users.noreply.github.com>

---------

Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
Co-authored-by: Stefano Colli <45536733+StefanoColli@users.noreply.github.com>
2025-03-12 09:17:57 +01:00
Marco Hauswirth c6c0f2228b clean up 2025-03-12 08:52:39 +01:00
Marco Hauswirth 6112d59e58 do relative calibration of baros with 1s delay 2025-03-12 08:52:39 +01:00
Andrew Brahim 9ae559e311 enable lightware sf45 driver in FMU-V6XRT (#24467)
* add sf45 driver to 6xrt
* disable the sf45 driver on rover, since collision prevention is tied with MPC params

---------

Signed-off-by: dirksavage88 <dirksavage88@gmail.com>
2025-03-11 09:47:31 -07:00
bresch 2aaa54037c ekf2: split gnss pos/vel flags
They can be selected independently in the control parameter, so there is
no reason why they should share the same flag.
2025-03-11 14:14:40 +01:00
bresch da3a0656d4 ekf replay: set timestamps in us 2025-03-11 14:14:00 +01:00
bresch cae4f94476 ekf2-replay: best effort replay when no ekf2_timestamps
Run at sensor_combined speed and publish all other sensors occuring
between 2 sonsor_combined samples.
This allows a crude replay in case ekf2 replay was not enabled during
the flight.
2025-03-11 14:14:00 +01:00
Jukka Laitinen f583406558 src/lib/parameters/parameters.cpp: Remove conversion of unaligned pointers
Parameter "void *val" passed to the functions in parameters.cpp are not always
4-byte aligned, so on some platforms direct casting to "int32_t *" or "float *"
leads to an unaligned exception. An example of such user is Logger, which directly packs
parameter values to character buffer.

Signed-off-by: Jukka Laitinen <jukka.laitinen@tii.ae>
2025-03-11 07:50:47 +01:00
Eric Katzfey 5a05444bad QuRT logging improvements (#24462)
- Made general improvements to the QURT platform message logging so that module name is printed both in mini-dm and on apps side terminal
2025-03-10 18:59:52 -04:00
bresch 7e0d04e446 ekf2: fix flow derivation for negative hagl
The partial derivative of the flow observation with respect
to the terrain and height states involve calculating the derivative
of 1/x, which is -1/x^2. This function is even, making the estimate
diverge in case x (the height above ground) is negative.
The solution is to take the derivative of 1/|x|,
which is -x/|x|^3 and is an odd function; preserving the sign of x.
Note that for positive values of x, the expression reduces to -1/x^2
2025-03-10 17:11:53 -04:00
chfriedrich98 0671e40f8e pure_pursuit: migrate params from .yaml to .c 2025-03-10 11:14:00 +01:00
chfriedrich98 d1b0be18b2 pure_pursuit: update library 2025-03-10 11:14:00 +01:00
Jukka Laitinen fec240efba src/lib/airspeed/CMakeLists.txt: Link to "atmosphere" library
Fix a linking error of not finding "atmosphere::getDensityFromPressureAndTemp(float, float)"

Signed-off-by: Jukka Laitinen <jukka.laitinen@tii.ae>
2025-03-10 09:16:48 +01:00
Jukka Laitinen dba2f4ff51 src/drivers/px4io/px4io.cpp: Fix compilation errors from printf modifiers
Signed-off-by: Jukka Laitinen <jukka.laitinen@tii.ae>
2025-03-10 09:13:17 +01:00
Jacob Dahl 690fa8bb15 update gz classic submodule (#24468) 2025-03-09 10:18:59 +01:00
Jacob Dahl 7c2aa72690 gz: add gstreamer plugin (#24475) 2025-03-09 10:11:52 +01:00
co63oc bc0d257e86 Fix typos in comments (#24474) 2025-03-08 00:56:30 -09:00
PavloZMN 5be867da1c Duplicate empty _node check removed from Subscription.hpp (#23316) (#23317)
* Duplicate empty `_node` check removed from Subscription.hpp (#23316)

* newline

* move uORB gtests to uORB/test

---------

Co-authored-by: Jacob Dahl <dahl.jakejacob@gmail.com>
Co-authored-by: Jacob Dahl <37091262+dakejahl@users.noreply.github.com>
2025-03-07 01:53:30 -09:00
Konrad c83fd11924 RTL: Always publish available approaches from home and rally points irrespective of rtly type 2025-03-07 09:01:19 +01:00
Alex Klimaj 901ef4aef5 rc.sensors: try starting iis2mdc (#24254) 2025-03-06 14:13:11 -09:00
Eric Katzfey 139f3792f5 bmp388: Fixed compiler warning (error) for clang
voxl2-slpi: Added more barometers to the build
2025-03-06 14:02:15 +01:00
Jacob Dahl ea8bcd9cef gz: use server config file for loading world plugins (#24441)
* gz: use server config file for loading world plugins

* submodule

* use server.config in tree

* newlines

* format

* gzbridge: rename function

* format

* gzbridge: add magnetometer callback

* change gz_find_package to find_package

* fix up directory structure and cmake to allow multiple plugins

* newlines

* add comment block explaining gz_env.sh

* remove dupe readme

* remove SENS_EN_MAGSIM from all gz airframe files except spacecraft

* update gz submodule
2025-03-05 17:37:16 -07:00
Mathieu Bresciani 0ab3e45c13 MC auto: improve behavior of RC help during landing
Letting the autopilot set the heading during landing while the pilot is
nudging the vehile leads to a weird UX as the vehicle would make a turn
instead of translating.
With this modification, the initial land heading is immediately overridden when the pilot
begins to adjust the drone's position, providing the sensation of full control.
2025-03-05 16:37:26 +01:00
Niklas Hauser 2aecdfe116 [adc] Refactor ADS1115 driver (#24428) 2025-03-05 00:36:39 -09:00
jmackay2 0ee592f67c cleanup gz_msgs CMakeLists (#24450)
* cleanup gz_sim CMakeLists

* Check if protobuf is found

* ignore old protobuf float warning

---------

Co-authored-by: jmackay2 <jmackay2@gmail.com>
2025-03-04 18:58:33 -09:00
chfriedrich98 d1e4198864 rover_control: migrate params from .yaml to .c file (#24445)
* rover_control: migrate params from .yaml to .c file

* Update src/lib/rover_control/rovercontrol_params.c

---------

Co-authored-by: Silvan Fuhrer <silvan@auterion.com>
2025-03-04 17:28:09 +01:00
Silvan Fuhrer a127a8293a VehicleStatus.msg: make clear that vehicle_status should refer to current locomotion method
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2025-03-04 12:15:01 +00:00
Silvan Fuhrer d857a278ff Commander: use is_ground_vehicle() consistently instead of checking vehicle_type
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2025-03-04 12:15:01 +00:00
Silvan Fuhrer 7cb6464cfb VehicleStatus.msg: remove VEHICLE_TYPE_UNKNOWN
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2025-03-04 12:15:01 +00:00
Silvan Fuhrer 49a84f38a2 VehicleStatus.msg: remove unused VEHICLE_TYPE_AIRSHIP
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2025-03-04 12:15:01 +00:00
Alex Klimaj 5c7143a33b uavcannode rangefinder: add tolerance to reading too close check (#24415) 2025-03-04 01:05:54 -09:00
bresch 71d514d359 replay: avoid recursion when adding subscriptions
readAndAddSubscription uses nextDataMessage to find the first
corresponding data and nextDataMessage calls readAndAddSubscription
when it finds a new message definition.
2025-03-03 22:32:55 -05:00
Eric Katzfey 38a794260c voxl2-slpi: Updated ghst_parse call in RC driver to match the new function signature 2025-03-03 22:17:00 -05:00
Beniamino Pozzan 9198125ec5 Remove reboot_required from IMU_GYRO_* parameters (#24435)
* fix: IMU_GYRO_* parameters do not requires reboot

Signed-off-by: Beniamino Pozzan <beniamino.pozzan@gmail.com>

* restore IMU_GYRO_RATEMAX reboot_required to true

---------

Signed-off-by: Beniamino Pozzan <beniamino.pozzan@gmail.com>
2025-03-03 12:33:02 -09:00
Jacob Dahl 6dc39d9deb [wip] gz plugins (#24153)
* added optical flow to gz bridge

* log high rate sensor data

* it builds

* it builds and publishes, need to figure out build system now

* single library

* rename files

* add gz_msg for proto, fix build, test basic flow impl

* update rate, no blur

* PX4-OpticalFlow impl

* rename OpticalFlowSensor

* rename plugins

* disable gps, add plugin path

* cleanup

* fix plugin path export

* properly add OpticalFlowSystem dependency to gz

* move everything under gz_bridge

* cleanup

* add GZ_VEBOSE

* cleanup model/world build target cmake

* added GZ_DISTRO env, harmonic or ionic

* fix gz transport, unstage ark fpv bootloader

* unstage logged_topics.cpp

* cleanup

* make format

* ci fixes

* fix cmake

* remove required for gz-transport

* use model/world namespace for multi vehicle sim. Make format

* make format

* license

* remove needless member var

* made separate Kconfig for gz_msgs, gz_plugins, and gz_bridge

* move OpticalFlow build to it's own cmake

* fix clang

* cleanup comments

* fix rebase
2025-03-03 12:21:28 -09:00
Jacob Dahl 3b2d74b017 gz: Refactor GZBridge and px4-rc.simulator (#24421)
* disable SENS_EN_GPSSIM for all gz airframes

* add GPS + noise to GZBridge

* remove mutex from gz callbacks. Callbacks run synchronously after sim update step and run() loop does not share resources.

* remove hrt check in callbacks

* format

* remove param set-default for already default params

* update submodule

* remove unnecessary comments

* overhaul of the GZBridge and px4-rc.simulator script

* remove arg

* shellcheck disable

* add bus/address

* start gz_bridge before adjusting sim speed or camera follow
2025-03-03 11:29:21 -09:00
bresch 2d1652f499 Commander: fix parachute trigger
Setting "lockdown" disables the actuators. In this mode,
"force_failsafe" has no effect as the actuators are disabled, so the
parachute is not getting released as it requires the output to change to
its failsafe value.
2025-03-03 15:41:39 +01:00
Julian Oes d4509a6cd4 flashfs32: fix result handling (#24371)
We need to translate return values here, otherwise this complains being
unsuccessful when it was actually ok.
2025-02-28 16:21:09 -09:00
Sebastian Domoszlai b5f37c9fa6 Simplify Battery-related Enum Naming (#24265)
* Simplify battery-related enum naming

* Fix mistakenly removed string in enum names

* Fix missing renamings

* Update outdated file

* msg: Increase battery_status version since the enum naming was changed

* Revert message version increase

---------

Co-authored-by: Matthias Grob <maetugr@gmail.com>
2025-02-28 11:42:40 -09:00
Niklas Hauser 336d055923 Robustify Ulanding Radar (#24333)
* [ulanding_radar] Fix comms error perf counter usage

* [ulanding_radar] Workaround for lost messages by lowering sampling rate

The current implementation of the Aerotenna uLanding radar driver assumes that
the UART frames are received in full. If the driver polls with 10ms this is not
always the case and the driver will fail to parse the frame leading to
significant packet loss. This workaround polls at 12ms which ensures that at
least one entire frame is received.
2025-02-28 11:14:32 -09:00
Niklas Hauser 0a9a1a1552 [rcS] Only start CDC/ACM when the module is enabled (#24430)
Otherwise sercon and mavlink are attempted to be started and may fail,
spamming the console on boot with error messages.
2025-02-28 11:09:45 -09:00
Marco Hauswirth 1f5a9e526c dont change mode_change-flag if mode was not allowed to change 2025-02-28 14:23:58 +01:00
Silvan 14941bc270 Commander: handle mode change rejection the same for RC and MAVLink
Previously, when requesting a mode switch to Position without a valid
position estimate through an RC button, the mode change to Position mode
was not rejected if COM_POSCTL_NAVL was set to 1 and instead the system
switched to Altitude mode.
If the mode request instead came in through MAVLink it was rejected.
This commit aligns the two ways of changing a flight mode.

Signed-off-by: Silvan <silvan@auterion.com>
2025-02-28 14:22:36 +01:00
Tony Cake ba31054992 Add RSSI in dBm support, plus LQ, to GHST protocol (#24351) 2025-02-28 00:53:32 -09:00
Beat Küng 93b8bc1515 commander: add hysteresis for avionics power low/high check
We had a setup where the voltage was right at the threshold and the check
toggled continuously.

It still triggers immediately, and then keeps for 15 seconds
2025-02-27 22:24:28 -05:00
Eric Katzfey 5fb810a5ea voxl_esc: Added Mavlink tunnel UART pass-through mechanism 2025-02-26 18:04:34 -05:00
Eric Katzfey d4918ea118 mavlink: updated to latest 2025-02-26 18:04:34 -05:00
Jacob Dahl 1ba9eeafd9 ekf2: silence output from symforce module check (#24384)
Co-authored-by: Alex Klimaj <alex@arkelectron.com>
2025-02-26 11:23:13 -07:00
Jacob Dahl f23ae924de cmake: bump min version (#24386)
* cmake: bump min version to 3.16.3, which is what Ubuntu 20.04 ships with

* reduce to cmake 3.10

---------

Co-authored-by: Alex Klimaj <alex@arkelectron.com>
2025-02-26 11:22:39 -07:00
Andrew Brahim 75c0089c26 Faster than Real -Time support in GZ (#23783)
* add rtf service to gzbridge

Signed-off-by: dirksavage88 <dirksavage88@gmail.com>

* physics before model spawn

Signed-off-by: dirksavage88 <dirksavage88@gmail.com>

---------

Signed-off-by: dirksavage88 <dirksavage88@gmail.com>
2025-02-26 18:52:07 +01:00
Marco Hauswirth 84134e5123 clean up variable declaration 2025-02-26 13:48:59 +01:00
Matthias Grob f69361f742 vtol_type: remove unused variable and function for deceleration pitch integral (#24419)
This functionality was moved to FlightTaskTransition and the variable was forgotten in 079b756f1b
2025-02-26 13:37:21 +01:00
Alexander Lerach 5d2814f6c9 dataman KConfig for persistent storage 2025-02-26 12:48:23 +01:00
Marco Hauswirth 2169ea561b PR: add optical flow arming check (#24375)
* add optical flow arming check

* removed deprecated mavlink_log_critical

* change SYS_HAS_NUM_OF description, keep max sensor at 1 since multiple instances are currently not support.

* restructure if/else blocks
2025-02-26 08:41:12 +01:00
Eric Katzfey 0cb7b8b525 voxl2: Changed from old CONFIG_BOARD_ROOTFSDIR to new CONFIG_BOARD_ROOT_PATH in Posix builds (#24392) 2025-02-25 21:54:43 -05:00
Ramon Roche e6b80d8800 readme: minor cleanup 2025-02-25 21:16:54 -05:00
Pernilla 65a80dc8e6 VTOL: Don't overwrite attitude setpoint in Stabilized transition modes (#24406)
Co-authored-by: Silvan Fuhrer <silvan@auterion.com>
2025-02-25 20:06:16 +01:00
chfriedrich98 7c63468e8b mecanum: refactor code architecture 2025-02-25 17:06:17 +01:00
Jacob Dahl d602b569b1 msg: fix comments in SensorOpticalFlow and VehicleOpticalFlow (#24337) 2025-02-25 14:04:52 +01:00
bresch c09c63171c MC auto: fix land nudging
Revert removal of isTargetModified as this is required when the target
is changed by "RC help" (nudging) during landing.
2025-02-25 09:11:23 +01:00
Ramon Roche 393d4c13db ci: disable flash workflow comments (#24409)
Signed-off-by: Ramon Roche <mrpollo@gmail.com>
2025-02-24 12:02:28 -09:00
Marco Hauswirth 689db41c57 ci: flash test adjust permissions for downstream forks (#24404)
adds "contents: read" to permissions to enable clones on private forks of PX4 again. (#24404)
2025-02-24 07:33:54 -08:00
Alexander Lerach 2356cb973f Performance & testing targets
* Added minimal configs for performance testing

* Rename recovery to performance

* added mfg_cfg

* fix params & don't inherit from default

* rename performance -> performance-test

---------

Co-authored-by: Igor-Misic <igy1000mb@gmail.com>
2025-02-24 16:02:46 +01:00
Ted 35d96d57f9 control_allocator: Added linearization feature for 4 servo swash plates to prevent binding (#23961)
* control_allocator: Added linearization feature for heli swashplates to help prevent servo binding

* Apply suggestions from code review

Co-authored-by: Mathieu Bresciani <brescianimathieu@gmail.com>

* update description of CA_LIN_SERVO parameter

* update variable name

* add missing semi-colon

* fix variable referenced before assignment

* add missing indentation

Co-authored-by: Mathieu Bresciani <brescianimathieu@gmail.com>

* removed param unnecessary param

* removed whitespace

* remove CA_LIN_SERVO and enable feature if CA_MAX_SERVO_THROW > 0 plus Update param description.

* remove CA_MAX_SVO_THROW from actuators tab to avoid confusion during standard swashplate setup.

* added comment and fixed spelling mistake

* fix spelling mistake

* fix formatting

* reduce CA_MAX_SVO_THROW short description length to stop test failure

* ActuatorEffectivenessHelicopter: clarfification suggestions for servo linearization feature

* remove NAN check.

---------

Co-authored-by: Mathieu Bresciani <brescianimathieu@gmail.com>
Co-authored-by: Matthias Grob <maetugr@gmail.com>
2025-02-24 12:17:11 +00:00
Jacob Dahl 73b51242c8 nuttx: h7: eth: add checks for PHYID in stm32_phyinit
arch: stm32h7: Add support for dual bank flash memory
2025-02-22 08:46:12 -05:00
Jacob Dahl 11704985f3 ci: add write permissions for flash_analysis workflow (#24393) 2025-02-21 15:18:56 -08:00
Hamish Willee 4ea7de449a InternalCombustionEngineControl - doc corrections (#24359)
* InternalCombustionEngineControl - doc corrections

* Update InternalCombustionEngineControl.cpp
2025-02-21 08:34:08 +11:00
Silvan Fuhrer 24da87db12 FW Position Control: keep flaps in landing config during abort if below AIRSPD_MIN (#23877)
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2025-02-20 09:28:27 +01:00
Silvan Fuhrer 29317d90c3 RPM capture: improve description of param RPM_CAP_ENABLE (#24368)
* RPM capture: improve description of param RPM_CAP_ENABLE
---------

Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
Co-authored-by: Matthias Grob <maetugr@gmail.com>
2025-02-20 09:19:43 +01:00
GuillaumeLaine 44d5bfc42c Tools: in px4_msgs copy versioned msgs to common root folder 2025-02-20 07:42:18 +01:00
GuillaumeLaine 86bfac7c8f fix Jenkins: add copy safeguard and copy to unified folder 2025-02-20 07:42:18 +01:00
Jacob Dahl 1db50cb331 mavlink: add missing fields for DISTANCE_SENSOR 2025-02-19 12:11:42 -05:00
Julian Oes 786c2a7f39 drivers/imu/invensense/mpu6000: include cstdlib for size_t 2025-02-19 12:09:54 -05:00
Jacob Dahl af311c8d45 gz: update submodule 2025-02-19 12:08:40 -05:00
Eric Katzfey 98ceb0ce79 voxl_esc: Added GPIO control feature
voxl_esc: Removed obsolete modal_io_data UORB topic
2025-02-19 11:00:15 -05:00
Eric Katzfey 73dbecadf1 Qurt: changed the mutex for I2C for the Qurt platform from a single mutex to one for each bus. (#23531) 2025-02-19 10:59:45 -05:00
chfriedrich98 04a3c4af20 Differential Rover: Refactor and clean up, align with Ackermann rover(#24318)
* differential: refactor code architecture

* Offboard fix

* fix accel/decel slew rate
2025-02-18 18:26:38 +01:00
Silvan Fuhrer 3c129aefa1 Add IC engine control module (#24055)
Internal combustion engine control module.
New actuator functions and RPM based start/restart logic.
Not enabled by default. 

---------

Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
Co-authored-by: Pernilla <pernilla@auterion.com>
2025-02-18 17:15:32 +01:00
Perre 412d4390a6 MC Slowmode: Yawstick for gimbal control, vehicle yaw follows gimbal (#24242)
* Yawsticks on gimbal, vehicle follows gimbal in slowmode, once vehicle has taken off

* Increase queue length to avoid automatically unadvertise queued publications with queue length 1

* Improve readability

---------

Co-authored-by: Pernilla <pernilla@auterion.com>
2025-02-18 14:38:11 +01:00
bresch 5e06ab1430 ekf-agp: do not reset to AGP if GNSS fusion is active 2025-02-18 14:35:10 +01:00
Silvan Fuhrer 3be8b680f6 msg_translation: Add vehicle_status_v1 translation
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2025-02-18 14:33:16 +01:00
Silvan Fuhrer 662c66e546 VehicleStatus: bump VERSION to 1 after removal of avoidance_system_required
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2025-02-18 14:33:16 +01:00
Silvan Fuhrer 3119510f25 Remove health_component::avoidance
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2025-02-18 14:33:16 +01:00
Matthias Grob ed9111ec49 Remove obstacle avoidance test with Gazebo classic and ROS 1 2025-02-18 14:33:16 +01:00
Matthias Grob 0b370ab5d3 Remove obstacle avoidance MAVLink Heartbeat check 2025-02-18 14:33:16 +01:00
Silvan 04cd247c90 FlightTaskAuto: remove isTargetModified()
As it is no longer needed w/o avoidance.

Signed-off-by: Silvan <silvan@auterion.com>
2025-02-18 14:33:16 +01:00
Silvan a1ff1d8372 tests: remove test_bezier
Signed-off-by: Silvan <silvan@auterion.com>
2025-02-18 14:33:16 +01:00
Silvan b916a96e00 Remove uorb topics exclusively used for avoidance
- TrajectoryBezier.msg
- TrajectoryWaypoint.msg
- VehicleTrajectoryBezier.msg
- VehicleTrajectoryWaypoint.msg

Additionally remove TRAJECTORY_REPRESENTATION_WAYPOINTS mavlink stream.

Signed-off-by: Silvan <silvan@auterion.com>
2025-02-18 14:33:16 +01:00
Silvan b7b6d45e18 lib: remove bezier
Signed-off-by: Silvan <silvan@auterion.com>
2025-02-18 14:33:16 +01:00
Silvan b34a5eb6f7 PositionControllerStatus: remove unused fields
Remove yaw_acceptance and altitude_acceptance_radius fields as they were only
filled by now removed avoidance controller.

Signed-off-by: Silvan <silvan@auterion.com>
2025-02-18 14:33:16 +01:00
Silvan 1f2dba68d2 remove avoidance library and logic
Signed-off-by: Silvan <silvan@auterion.com>
2025-02-18 14:33:16 +01:00
Marco Hauswirth d2cbe10243 Clean up temperature msg fields (#24272)
* remove temp field from airspeed.msg, adjust temp selection

* temp-sensor hirarchy: airspeed, ext. baro, default value

* directly use diff-press or baro temp in true-airspeed  calc

* improve clarity

* add enum for temperature source in VehicleAirData.msg
2025-02-18 13:23:10 +01:00
Daniel Agar 90b2290700 Tools: docker_run.sh fix entrypoint as user
- modern docker can specify the user at runtime (--user)
2025-02-18 00:26:06 -05:00
Daniel Agar 38de04a53a Tools/setup/ubuntu.sh: add curl for NXP mr-canhubk3 build (#24346) 2025-02-17 20:06:24 -08:00
Jacob Dahl 46609d5e6c voxl: document enable_debug command (#24353) 2025-02-17 19:55:24 -08:00
Daniel Agar e12c3c00a4 control_allocator: param update avoid temporary
- this is a harmless workaround for a GCC warning (-Wdangling-pointer) false positive
2025-02-17 14:35:15 -05:00
Ramon Roche 024dd701fb readme: update maintainers information (#24305)
* creates new maintainers file per oss best practices
* adds Pedro as Space maintainer
2025-02-17 11:11:37 -08:00
dirksavage88 01549a5832 fix to kconfig newline
Signed-off-by: dirksavage88 <dirksavage88@gmail.com>
2025-02-14 15:50:43 -05:00
dirksavage88 5ffa69ff54 fix newline in module.yaml
Signed-off-by: dirksavage88 <dirksavage88@gmail.com>
2025-02-14 15:50:43 -05:00
Eric Katzfey b0eb639587 voxl2_io: Updated to latest version from ModalAI fork
- Updated to the latest version of the voxl2_io driver from the ModalAI fork.
 - Moved to the platform independent Serial driver
 - Added voxl2_io driver to the SLPI DSP build
2025-02-14 14:33:38 -05:00
alexklimaj fd5bb9e69c uavcannode rangefinder: only publish reading too far or too close if less than or greater than. Not equal to. 2025-02-14 14:26:39 -05:00
Marco Hauswirth 61d595dc64 reset dist_to_ground_lock if dist_to_bottom is not valid. this avoids a reset to a previous dist_to_ground after a switch back to a valid measurement 2025-02-14 17:10:14 +01:00
bresch fe5c887895 mag check: do not require mag 0
sys_has_mag defines the required number of mags; if one mag is needed,
it can be any instance, not necessarily mag 0
2025-02-14 16:12:20 +01:00
bresch e3fd50667d Mag cal: automatically disable internal mags if external ones are available 2025-02-14 16:12:20 +01:00
Alexander Lerach 430be08131 Add payload tx/rx timeouts to DDS
* Add tx/rx timeouts

* Code style & tx default timeout

* Clarify TX/RX disable value
2025-02-14 14:54:42 +01:00
Alexander Lerach f2471861a3 Fix GPS RTCM instance selection 2025-02-14 09:39:59 +01:00
Eric Katzfey eb18edf5eb Don't allow spacecraft module parameters for VOXL 2 builds (#24336)
- VOXL 2 builds use DISABLE_PARAMS_MODULE_SCOPING for parameters. The new spacecraft module has duplicate symbols with the control_allocator module and so this kills the VOXL 2 build
2025-02-14 00:49:09 -05:00
Alex Klimaj a151d85a1c ARK Cannodes disable mag bias estimator by default (#24327) 2025-02-13 14:29:21 -09:00
Beat Küng 96461cdd7d ci: ignore changes to comments or constants in versioned message check
These can be changed without version increment
2025-02-13 13:02:39 +01:00
Jacob Dahl b77797b490 tools: px_uploader.py: change RuntimeErorr to printf warning for fw_maxsize greater than fw_maxsize (#24321) 2025-02-12 15:28:40 -09:00
Ramon Roche 195961ae83 ci: only push dev container on commit to main 2025-02-12 12:02:11 -05:00
Jacob Dahl 8acac41163 ark: pi6x: fix CDCACM_PRODUCTID (#24320) 2025-02-12 09:48:04 -07:00
Alex Klimaj 98cba19f50 esc_battery: report temperature
Co-authored-by: Jacob Dahl <37091262+dakejahl@users.noreply.github.com>
2025-02-11 21:17:53 -05:00
Beat Küng b96b4fb68d ci: run ROS humble + jazzy for translation node 2025-02-11 13:19:25 +01:00
Beat Küng 5a2fc5ef79 ci: check if a versioned .msg file is changed, a new version is added as well 2025-02-11 13:19:25 +01:00
Beat Küng 947cc7bcbe ci: run unit tests for ros translation node 2025-02-11 13:19:25 +01:00
Beat Küng f6bfa9812e msg: add message translation node for ROS 2025-02-11 13:19:25 +01:00
Beat Küng 975ec30c9c uxrce_dds_client: add DDS message versioning
This adds "_v" + string(T::MESSAGE_VERSION) to the ROS topic if the message
contains a MESSAGE_VERSION field (and the version is non-zero).
2025-02-11 13:19:25 +01:00
Silvan Fuhrer 136f9f48fc FW Position controller: transform RWTO_PSP to rad when used (#24312)
Signed-off-by: Silvan <silvan@auterion.com>
2025-02-11 12:12:11 +01:00
RomanBapst 2b75d2e738 run fog check independently from stuck check
Signed-off-by: RomanBapst <bapstroman@gmail.com>
2025-02-11 09:08:25 +01:00
RomanBapst 8cedef2dc4 further cleanup
Signed-off-by: RomanBapst <bapstroman@gmail.com>
2025-02-11 09:08:25 +01:00
RomanBapst 2c4d38e303 fixed mistake
Signed-off-by: RomanBapst <bapstroman@gmail.com>
2025-02-11 09:08:25 +01:00
RomanBapst 806500fc4a further improve logic
Signed-off-by: RomanBapst <bapstroman@gmail.com>
2025-02-11 09:08:25 +01:00
RomanBapst 73ade6d05c range finder: remove potential deadlock
Signed-off-by: RomanBapst <bapstroman@gmail.com>
2025-02-11 09:08:25 +01:00
RomanBapst 35da86c85a improve unit tests for range fog detection
Signed-off-by: RomanBapst <bapstroman@gmail.com>
2025-02-11 09:08:25 +01:00
alexklimaj 8576b49e49 make format: ignore libuavcan 2025-02-10 21:18:15 -05:00
Alexander Lerach 047578a844 Disarm PWM ESCs before reboot 2025-02-10 18:16:48 +01:00
chfriedrich98 55f51d7e7e ackermann: refactor code architecture 2025-02-10 15:54:24 +01:00
Bertug Dilman ce64263ce7 publish validated airspeed topic (#24302)
* publish validated airspeed topic

* fix typo
2025-02-07 14:44:48 +01:00
mahimayoga 69d95a6664 sf45: separate sensor yaw variable into FRD and sensor frames for clarity.
Obstacle map is created in sensor frame, but scaling for vehicle orientation is done in vehicle FRD frame.
2025-02-07 13:28:17 +01:00
mahimayoga 093b379b6b sf45/collision-prevention: replace repeated code with ObstacleMath library functions. 2025-02-07 13:28:17 +01:00
Pedro Roque e7e76e2e21 Spacecraft build and bare control allocator (#24221) 2025-02-06 23:54:24 -05:00
Marco Hauswirth de1ade8eb8 sensors/vehicle_air_data: only trigger the sensor fallback when the baro_fault flag switches from 0 -> 1 2025-02-06 23:47:32 -05:00
Alexander Lerach fd175d619c boards/modalai/voxl2/target: remove trailing spaces, consistent tabs/spaces in files 2025-02-06 23:43:34 -05:00
bresch 8d296a50f9 FlightTask: properly initialize EKF reset counters
This fixes a race condition when switching from a flight mode that is
not a flight task (e.g.: stabilized). In this case, the reset counters
were initialized to 0 and deltas were applied to the first setpoints if
the EKF had any of its reset counters different from 0.
2025-02-05 13:21:32 -05:00
Junwoo Hwang de650cab9e boards/matek/h743-slim: change parameter path to MicroSD 2025-02-05 13:09:02 -05:00
Daniel Agar bd2a009217 commander: remove MC nav test 2025-02-05 11:58:04 -05:00
alexklimaj 0faec9b3e7 boards: ARK Flow MR 2025-02-04 22:00:14 -05:00
Hamish Willee 9e5cfa330a Commander: Quick calibration supports mag too 2025-02-04 21:58:03 -05:00
Peter van der Perk 64d8f9a3c6 cmake: for vscode launch fallback to gdb-multiarch
Newer toolchains don't ship with arm-none-eabi-gdb hence we should use gdb-multiarch instead
2025-02-03 23:12:30 -05:00
Jacob Dahl 90a806f5f8 ark: v6x: update net config (#24281)
* ark: v6x: disable net binary config, update default net config

* added back CONFIG_IPCFG_BINARY=y

---------

Co-authored-by: Alex Klimaj <alex@arkelectron.com>
2025-02-03 10:10:02 -07:00
mahimayoga 48c0992a7d sf45: refactor how sensor orientation (yaw_cfg) correction is applied to incoming sensor data.
yaw_cfg is now read into the obstacle_distance message as the angle_offset. The offset is computed once at init and applied to each measurement.
2025-02-03 17:17:35 +01:00
mahimayoga 31bff3e5bb sf45: change handle_missed_bins() function logic.
To simplify logic for wrap-around cases and cases in which bins outside the FOV may be filled. Bin indices are offset such that the 0th bin is the first bin within the sensor FOV. This way we can always fill bins from smallest to largest index.
2025-02-03 17:17:35 +01:00
mahimayoga cb332e047d obstacle-math: add standard obstacle map functions.
These functions help simplify repeated calculations accross driver and collision prevention files that are computing bins, angles and sensor offsets in obstacle maps.
2025-02-03 17:17:35 +01:00
Perre f7dadd9b89 Remove inclusion of rotors in library to enable test (#24286) 2025-02-03 15:51:55 +01:00
Julian Oes a9214b3aa3 gimbal: don't spoof gimbal device (#24271)
The current approach was wrong because the gimbal protocol now
handles the case properly where the autopilot is in charge of a
non-MAVLink gimbal.

This means that we don't need to send message "as if we were a gimbal
device" and instead set thet gimbal_device_id to 1 (up to 6) to indicate
we are in charge or a non-MAVLink gimbal.
2025-01-31 12:59:41 +13:00
Matthias Grob 4c2e69b2e6 estimatorCheck: only warn about GPS in modes that require a position but fail all modes if GPS required by configuration 2025-01-30 18:45:10 +01:00
Matthias Grob f142363575 HealthAndArmingChecks: allow to warn in certain modes and fail arming checks in other modes
Previously it was only possible to warn in all modes and fail none or fail and warn in certain modes.
2025-01-30 18:45:10 +01:00
bresch 3b828e157a MC att: clarify prioritization algorithm
Especially rename "mix" which is just the delta yaw angle
2025-01-30 11:28:26 +01:00
Sam 3 Firestorm 1eb9d05f69 Gazebo classic: report correct limits for H480 gimbal yaw (#24269) 2025-01-29 18:37:00 +01:00
Balduin 96105cacc0 SIH airframes: clean up configs
- set SIH_L_ROLL that agrees with CA_* rotor geometry
 - remove unnecessary params & comments
 - clarify that ailerons are single channel
2025-01-29 16:22:43 +01:00
Silvan ddf591c4f5 Navigator: use FLT_EPSILON instead of 0.0001f for >0 float comparison
Signed-off-by: Silvan <silvan@auterion.com>
2025-01-29 15:42:51 +01:00
Silvan 2f2e56c097 Navigator: replace custom NAV_EPSILON_POSITION with FLT_EPSILON
Signed-off-by: Silvan <silvan@auterion.com>
2025-01-29 15:42:51 +01:00
Matthias Grob 7e47605871 batteryCheck: separate event messages for low, critical and emergency battery states 2025-01-29 15:32:47 +01:00
Balduin 41c4933e10 add standard vtol airframe 2025-01-29 11:15:00 +01:00
Bertug Dilman a0a2bdaea5 commander: COM_MODE_ARM_CHK parameter to allow mode registration while armed (#24249) 2025-01-28 14:33:15 +01:00
Silvan Fuhrer 58d3e1ea8e test: in VTOL integration test use VTOL_LAND (#24261)
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2025-01-28 11:22:51 +01:00
Marco Hauswirth 4df65c133e add cs_baro_fault to switch to fallback baro if available (#24260) 2025-01-28 10:37:16 +01:00
Peter van der Perk 92b1f51623 tropic: Fix runtime error on new GCC 2025-01-27 14:20:16 -05:00
Peter van der Perk dc3f6a1608 fmu-v6xrt: Fix runtime error on new GCC
New GCC versions inline builtin function like memcpy. On the fmu-v6xrt we can't call the functions inside imxrt_ocram_initialize because the ram function still needs to be initialized.
This commit add a compile hint to not use builtins inside the imxrt_ocram_initialize function
2025-01-27 14:20:16 -05:00
Balduin 5bca71791a SIH: clean up control surface configuration (#24205)
* fix sign error in appropriate place

In PR https://github.com/PX4/PX4-Autopilot/pull/24175 I changed the
control surface deflection signs in generate_fw_aerodynamics to make the
1103 airframe work correctly. However, this breaks the 1101 airframe,
introducing sing errors there.

So, here the change in generate_fw_aerodynamics is reverted to the state
before PR #24175. Instead, the signs are set correctly by using
the HIL_ACT_REV bitfield in the respective airframe config files.

* match control surface parameters to SIH model
2025-01-27 16:52:29 +01:00
Matthias Grob 165f644580 control_allocator: fix typo and use [0,1] instead of [0%, 100%] in slew rate description
Co-authored-by: Hamish Willee <hamishwillee@gmail.com>
2025-01-27 08:43:11 +01:00
Matthias Grob c1cab2d4e0 control_allocator: add unit for slew rate and reword description 2025-01-27 08:43:11 +01:00
bresch c76e74338b ekf-replay: fix airspeed replay
If available, the EKF uses airspeed_validated, not airspeed
2025-01-26 23:05:39 -05:00
alexklimaj c3ba39f931 dshot: remove dshot 1200 2025-01-23 23:50:50 -05:00
cuav-liu1 1aab194f9e boards: fix 7-nano pwm voltage control pin not initialized 2025-01-23 15:58:49 -05:00
Silvan Fuhrer d0042aa275 FW defaults: remove EKF2_GPS_CHECK custom FW setting
We want to align the default over all vehicle types for
this param. There are still some thresholds that are
increased for FW.

Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2025-01-23 15:56:52 -05:00
Alex Klimaj 07e7c64e60 drivers/power_monitor/ina238: retry if read fails
* ina238: retry if read fails
* ina238: increase retries and only publish not connected if register check fails
* ina238: use I2C resets
2025-01-22 15:32:26 -05:00
Daniel Agar 6322ebc3db rcS: shift sensors + EKF startup earlier
- we want the drivers, sensors hub, and estimator running as soon as possible to initialize and avoid commander false positives complaining about missing data
2025-01-22 15:27:56 -05:00
PX4 BuildBot 752b25235c boards: update all NuttX defconfigs 2025-01-22 14:46:36 -05:00
PX4 BuildBot 1aa83d954b update all px4board kconfig 2025-01-22 14:46:24 -05:00
Julian Oes e3b98e6ed2 Tools: remove unused/wrong define and fix comment 2025-01-22 11:26:10 -05:00
Roman Bapst 045c8d9831 Mission feasibility checks: make adding new check less error prone (#24241)
* make adding new feasibility checks less prone to errors

Signed-off-by: RomanBapst <bapstroman@gmail.com>

* Update src/modules/navigator/MissionFeasibility/FeasibilityChecker.hpp

Co-authored-by: Silvan Fuhrer <silvan@auterion.com>

---------

Signed-off-by: RomanBapst <bapstroman@gmail.com>
Co-authored-by: Silvan Fuhrer <silvan@auterion.com>
2025-01-22 16:56:31 +01:00
RomanBapst 57fdda597b vtol_takeoff: store altitude on takeoff and don't use home position altitude
as vehicle does not need to be close to home position

Signed-off-by: RomanBapst <bapstroman@gmail.com>
2025-01-22 14:03:18 +03:00
PavloZMN ee150a15b4 Optical Flow: add unit testes for only using downward distance sensor (#23266)
* Test for Optical Flow checks correct camera position

* Formatting fixed

* Update src/modules/sensors/vehicle_optical_flow/test/CMakeLists.txt

Co-authored-by: Mathieu Bresciani <brescianimathieu@gmail.com>

* Update src/modules/sensors/vehicle_optical_flow/test/VehicleOpticalFlowTest.cpp

Co-authored-by: Mathieu Bresciani <brescianimathieu@gmail.com>

* Update src/modules/sensors/vehicle_optical_flow/test/VehicleOpticalFlowTest.cpp

Co-authored-by: Silvan Fuhrer <silvan@auterion.com>

* For test GIVEN/WHEN/THEN added

---------

Co-authored-by: Mathieu Bresciani <brescianimathieu@gmail.com>
Co-authored-by: Silvan Fuhrer <silvan@auterion.com>
2025-01-22 11:58:07 +01:00
bresch caaae6ed51 ekf2: allow sideslip fusion to always start with airspeed fusion
This allow sideslip fusion to start during VTOL front transition or even
on a multirotor with a vertical stabilizer and an airspeed sensor for example.
2025-01-22 09:33:16 +01:00
Jacob Dahl 1900d2c98f uavcan: fix hw_errors from mutex lock, hide ESC/Servo status if no function set (#23888) 2025-01-22 12:48:05 +13:00
Jacob Dahl a3215419d7 gz: remove model spawn offset (#24165) 2025-01-22 12:47:25 +13:00
Jacob Dahl 918eca8de4 gz: increase timeout for service request (#24164)
* gz: increase timeout for service request

* change error messages to warnings, specify retrying

* fix typo
2025-01-21 22:14:38 +01:00
Alex Klimaj 8d1bfb77c6 boards: ark fpv add gimbal module (#24229) 2025-01-21 08:59:37 -09:00
RomanBapst f36b45b2ff VehicleOpticalFlow: use 32bit integer for dt
Signed-off-by: RomanBapst <bapstroman@gmail.com>
2025-01-21 16:48:33 +03:00
RomanBapst c7e494b8d9 VehicleImu: use 32 bit integer for dt
Signed-off-by: RomanBapst <bapstroman@gmail.com>
2025-01-21 16:48:33 +03:00
RomanBapst 25e76883b7 Integrator: use 32bit integer to store dt to avoid overflow
Signed-off-by: RomanBapst <bapstroman@gmail.com>
2025-01-21 16:48:33 +03:00
Matthias Grob af062c85eb Revert "FLightTaskAuto: limit nudging speed based on distance sensor"
This reverts commit 97cb933cff.
2025-01-21 09:59:47 +01:00
Marco Hauswirth 7a9608e54b increase EKF2_RNG_FOG for FW and VTOL 2025-01-20 14:43:30 -05:00
Marco Hauswirth 4a5aa1e947 Fix max-hagl restriction to position/altitude control (#23667)
* fix max-hagl restriction to position/altitude control

* max hagl vel restriction in ManAcc position mode

* use interpolate func, change naming

* simplyfied vertical vel limitation

* move velocity-constraint adjustment to StickAccelXY
2025-01-20 15:50:21 +01:00
Mathieu Bresciani 0d22905558 VTOL params: fix param name 2025-01-20 15:50:06 +01:00
Pedro Roque b09340cc98 Control Allocator: Add option for metric allocation (skip normalization) (#24199)
* add: metric allocation

* add: actual files

* rft: moved metric allocation to pseudo-inverse via flag with public method

* del: removed metric allocation test and added test in pseudo-inverse testing

* rft: deleted extra newline at the end of pseudo inverse test file

* feat: removed unnecessary log include
2025-01-20 13:30:51 +01:00
mahimayoga 65a8cc0e0a sf45: scale measured distance with pitch and roll.
Calls function from ObstacleMath library that accounts for the vehicle's attitude w.r.t the obstacle. Obstacles are assumed to be flat, vertical walls.
2025-01-20 11:11:29 +01:00
mahimayoga ab46502cbd obstacle-math: add unit tests for project_distance_on_horizontal_plane function. 2025-01-20 11:11:29 +01:00
mahimayoga 29f981f14c collision-prevention: extract rotation scaling function into new ObstacleMath library.
New library created for static and/or repeated code across collision prevention and driver files.
2025-01-20 11:11:29 +01:00
Daniel Agar b1ca0495e2 ekf2: yaw estimator additional validity checks 2025-01-20 09:45:41 +01:00
Balduin 1eb9434b8c stream ATTITUDE_QUATERNION in low bandwidth mode 2025-01-17 11:20:12 +01:00
Matthias Grob f693fab7c8 rc_update params: remove comment about default static mixing
Was added back in 2014:
7441efde47
2025-01-17 08:18:42 +01:00
alexklimaj 33841cf438 Update GPS submodule 2025-01-15 11:54:04 -05:00
bresch c99cb6e94b ekf2: do not auto-generate sideslip measurement jacobian
This is to trade a bit of CPU load for more flash space.
2025-01-15 11:05:50 -05:00
Matthias Grob e01fef755a Control allocation: make heli rpm control an optional build flag disabled by default
to save flash.
The rpm capture dirver is also disabled on default releases
2025-01-15 14:35:35 +01:00
Mathieu Bresciani 8ecb76aba2 [Multirotor] add yaw torque low pass filter (#24173)
co-authored-by: danielmellinger <107884356+danielmellinger@users.noreply.github.com>
co-authored-by: Eric Katzfey <eric.katzfey@modalai.com>
2025-01-15 14:02:28 +01:00
Jaeyoung Lim 974446c0e8 Make control allocation and actuator effectiveness a non-module-specific library (#24196)
* Remove more circular dependencies with ActuatorEffectiveness

* Separate vehicle specific actuator effectiveness

Keep actuator effectivenss in control allocator

* Remove test dependency for now

* Group library directories
Fix

* Change directory names

* Rebase fix
2025-01-15 10:12:29 +01:00
Minderring 3064a4ad4c boards configs: add airspeed driver for micoair743 aio and v2 2025-01-14 21:45:49 -05:00
PX4 BuildBot 9f8325e8e0 Update submodule mavlink to latest Wed Jan 15 00:39:11 UTC 2025
- mavlink in PX4/Firmware (fd5b52d4c53f35a520646a6c4ec75588f6b87e0f): https://github.com/mavlink/mavlink/commit/5e3a42b8f3f53038f2779f9f69bd64767b913bb8
    - mavlink current upstream: https://github.com/mavlink/mavlink/commit/619947d8bc29e80eecff18b0f4fecc42d9e171dd
    - Changes: https://github.com/mavlink/mavlink/compare/5e3a42b8f3f53038f2779f9f69bd64767b913bb8...619947d8bc29e80eecff18b0f4fecc42d9e171dd

    619947d8 2024-12-19 Hamish Willee - common.xml - PING fix (#2197)
2f44ceff 2024-12-18 Julian Oes - common: use camera ID for CAMERA_IMAGE_CAPTURED (#2196)
2025-01-14 21:45:04 -05:00
bresch 12a9087e92 ekf2: constrain max variance by zero innovation update
Clipping the variance of the covariance matrix has a destabilizing
effect as it increases the correlation between the states.
2025-01-14 21:42:33 -05:00
Ramon Roche 0723f75993 ci: move to px4 git tag versions 2025-01-14 13:10:56 -05:00
Matthias Grob bc92008885 RpmControl: Better consider the case where there's no rpm measurement (anymore) 2025-01-14 14:55:34 +01:00
Matthias Grob b584f8381c Helicopter defaults: don't auto disarm so quickly after spoolup 2025-01-14 14:55:34 +01:00
Matthias Grob 5e2848312d Commander: start timer for auto disarm after spoolup 2025-01-14 14:55:34 +01:00
Matthias Grob 2506bd3b5d RpmControl: simplify the entire control logic 2025-01-14 14:55:34 +01:00
Matthias Grob 1c4325db6d RpmControl: split into cpp source file fixing includes 2025-01-14 14:55:34 +01:00
Matthias Grob 2772ae7e0e RpmControl: maximum rpm outliers are now caught by RpmCapture 2025-01-14 14:55:34 +01:00
Matthias Grob ddd410e9d8 RpmControl: remove status message because it by now only contains redundant information 2025-01-14 14:55:34 +01:00
Matthias Grob 4050cedfaf RpmControl: call local message instance after message name following the convention 2025-01-14 14:55:34 +01:00
Matthias Grob cd0e04f8b0 RpmControl: name current timestamp now following the convention 2025-01-14 14:55:34 +01:00
oravla5 ee67e4bb28 RpmControl: class clean up 2025-01-14 14:55:34 +01:00
Matthias Grob 940fe45ba7 ControlAllocator: introduce helicopter rotor rpm controller 2025-01-14 14:55:34 +01:00
Matthias Grob 50092a7f67 NuttX: update submodule to branch px4_firmware_nuttx-10.3.0+ with "FlexSPI allow RWW" merged 2025-01-14 10:32:00 +01:00
alexklimaj e89a79b382 boards: disable multi ekf on all ark flight controllers 2025-01-14 02:29:07 -05:00
Silvan Fuhrer a16f7859ac boards: disable CONFIG_EKF2_AUX_GLOBAL_POSITION on some boards
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2025-01-14 02:19:49 -05:00
Silvan Fuhrer e4e975806f Enable CONFIG_EKF2_AUX_GLOBAL_POSITION by default
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2025-01-14 02:19:49 -05:00
Jacob Dahl 0fb8463b79 logger: always log can_interface_status (#24071)
* logger: always log can_interface_status

* logger: log topic can_interface_status using CONFIG_BOARD_UAVCAN_INTERFACES
2025-01-13 10:15:40 -07:00
mahimayoga 879e0ea9b1 MC-hte: use allocated thrust as input for hover thrust estimator.
Improves estimates on vehicles where thrust is often saturating.
2025-01-13 11:56:09 +01:00
mahimayoga 28fa044386 MC-stabilized: rescale thrust input to hover thrust at zero stick input
Use hover thrust estimate in stabilized mode to rescale stick inputs. Prevents vehicle from losing/gaining altitude when switching from position to stabilized mode.
2025-01-13 11:56:09 +01:00
Jaeyoung-Lim f5c05f6d01 Take 2: Cleanup circular dependencies ActuatorEffectiveness 2025-01-13 09:29:42 +01:00
Jaeyoung Lim 208d37e703 Remove circular dependency if control allocation (#24195)
... and actuator effectiveness
2025-01-10 16:58:15 +01:00
Balduin a231fafafa SIH: Add Standard VTOL Airframe (#24175)
* add standard vtol airframe to SIH.

mostly took changes from 4d930bde and applied to main.

generate_fw_aerodynamics now takes four arguments rather than using the
_u class member, because depending on vehicle type _u is used
differently.
2025-01-09 15:40:06 +01:00
Silvan Fuhrer 44b423f48d drivers: ulanding: description: fix link to user guide section (#24189)
Signed-off-by: Silvan <silvan@auterion.com>
2025-01-09 08:54:58 +01:00
Jari Nippula cbbbbc9dfa logger: fix file open issue if crypto algorithm is disabled
move init_logfile_encryption() call after the buffer start_log() call
to have log file already open while storing the header and key data to
the beginning of the file.
2025-01-09 07:45:09 +01:00
bresch ab70ae3252 ekf2: fix GNSS drift false alarm
In SIH, the GNSS signal is zero-mean, but apparently not symmetric. The
issue is that saturating such a signal creates an artificial bias. This
made the check fail as the bias was above the threshold.
2025-01-08 21:40:25 -05:00
Peter van der Perk e9536cb30b Tropic-community use flash as storage using LittleFS (#24158)
* Update NuttX
2025-01-08 21:35:08 -05:00
Matthias Grob b042f2101f system_params: clarify SYS_HAS_MAG description
after answering the questions:
Ah the value can be 2? Should I set the number of magnetometers the board has or include the external ones?
2025-01-08 21:24:00 -05:00
mahimayoga c3e370b946 MC land detector: fix parameter description for LNDMC_ROT_MAX 2025-01-08 18:03:35 +01:00
mahimayoga b4273bde25 FW land detector: Introduce max rotational speed condition (new param: LNDFW_ROT_MAX).
Checks that the filtered norm of the angular velocity is below LNDFW_ROT_MAX.
2025-01-08 18:03:35 +01:00
mahimayoga 18b4b18a75 FW land detector: do not check for groundspeed if invalid.
In case the local position speed estimate is not valid, it is assumed to be 0m/s and
thus check always passes.
2025-01-08 18:03:35 +01:00
alexklimaj 2625c5211b dronecan: don't init if can interface fails to init 2025-01-08 11:12:57 -05:00
Silvan Fuhrer 585e5d1482 MissionBase: remove unused param
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2025-01-08 09:31:55 +01:00
Silvan Fuhrer d98a706380 RTL fast reverse: enable precision landing
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2025-01-08 09:31:55 +01:00
Silvan Fuhrer 368bbfeb3b RTL params: make clear that RTL_PLD_MD does not apply for mission RTL destinations
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2025-01-08 09:31:55 +01:00
Silvan Fuhrer e29c86c81f rtl_direct: don't check RTL_PLD_MD param twice but use _mission_item.land_precision
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2025-01-08 09:31:55 +01:00
Silvan Fuhrer 0ecc8278b6 Navigator: RTL_direct: onyl start precision land if param is set to enable
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2025-01-08 09:31:55 +01:00
RomanBapst 1abc27dd1f remove fixed-wing condition from airspeed fusion condition
- enables airspeed fusion to begin during transition already
- airspeed fusion is started based on airspeed being above defined threshold

Signed-off-by: RomanBapst <bapstroman@gmail.com>
2025-01-07 16:19:33 +01:00
bresch b1773df441 ekf2: fix comments about primary height sources
Having the xxx_hgt flag set only means that the sensor is fused for
altitude/height aiding. It's not necessarily the height reference.
2025-01-07 10:23:13 +01:00
ZeroOne-Aero 374e70c48f ZeroOne X6: add IST8310 support 2025-01-07 09:14:31 +01:00
Silvan 8070a9b362 Commander: remove not used include of blocks.hpp
Signed-off-by: Silvan <silvan@auterion.com>
2025-01-06 09:24:29 +01:00
Alex Klimaj 821558f9e3 boards: ark flow set SENS_FLOW_RATE default to 150 (#24170) 2025-01-03 11:45:33 -09:00
Alex Klimaj 1043aebf5d analog_battery: add option for filter (#23987) 2025-01-03 16:01:16 +01:00
bresch f1a339e7c6 fw-att: avoid multiple conversions 2025-01-03 15:07:52 +01:00
bresch 9bf5257e0e fw-att: fix wheel controller 2025-01-03 15:07:52 +01:00
Silvan Fuhrer 326d486397 SITL: remove setting CBRK_SUPPLY_CHK by default
This allows us to run battery failsafe tests again in SITL
wihtout having to change params first.

Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2025-01-03 14:07:15 +01:00
Silvan Fuhrer e2ea48bb79 Simulation: add SystemPowerSimulator to publish SystemPower.msg in sim
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2025-01-03 14:07:15 +01:00
Silvan Fuhrer eac12ee9ce BatterySimulation: remove unused _battery_pub
The simulated battery is published by the regular battery class.

Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2025-01-03 14:07:15 +01:00
Nicolas MARTIN 4fe6d69966 local position acceleration: use mean value between two publications (#24105)
To avoid aliasing on the ned acceleration, add an accumulation of acceleration to improve the downsampling
2025-01-03 12:43:39 +01:00
bresch c1589ddb18 ekf2-rng: do not continuously reset terrain in rng height ref
When the height reference datum is ground level (range finder height
ref), the terrain state is not updated through fusion and should stay at
a constant altitude.
2025-01-03 12:25:16 +01:00
Jacob Dahl 0b1838f233 test: add test for range finder fusion while on ground 2025-01-03 12:25:16 +01:00
Daniel Agar 81552fc036 uavcan: relax UAVCAN_RNG_MIN/UAVCAN_RNG_MAX defaults (#24140)
- this is optional sensor metadata that can be set if actually needed
2024-12-26 19:10:31 -07:00
Jacob Dahl fb2bdc0ecc boards: ark_fpv: add msp osd 2024-12-23 21:57:59 -05:00
Alex Klimaj 291300e167 ARK TESEO Bootloader Placeholder 2024-12-23 21:57:24 -05:00
Minderring 8d4663ed5a boards: add micoair743-v2 config files to PX4-Autopilot 2024-12-23 21:56:54 -05:00
Minderring 0b27200629 boards: fix some configs for micoair743 and aio 2024-12-23 21:55:52 -05:00
Matthias Grob 2968af7b63 Carzyflie: don't compile Navigator ADSB handling
I forgot to stage that change in the original change:
839010eeab
2024-12-23 21:55:08 -05:00
Mahima Yoga defccfa99b Collision Prevention: Scale obstacle distance with vehicle attitude for varying sensor orientations (#24107) 2024-12-20 14:47:22 +01:00
Roman Bapst b765769f50 Navigator: Set altitude acceptance radius to infinity when moving to land point after transition (#24115)
* Navigator: set alt acceptance radius to infinity
for land waypoint after backtransition -> avoid
vehicle with depleted battery from not reaching the alt
setpoint and getting stuck

Signed-off-by: RomanBapst <bapstroman@gmail.com>
2024-12-20 09:21:32 +01:00
Matthias Grob 61961350f9 mavlink_receiver: don't publish out of range joystick input
Note that the MAVLink definition explicitly writes
"A value of INT16_MAX indicates that this axis is invalid."
which before this change was happily executed.
2024-12-19 17:59:41 +01:00
Matthias Grob 5cf85e320a offboardCheck: acceleration setpoints only require vehicle attitude control 2024-12-19 17:58:38 +01:00
Matthias Grob ad799b64b7 mc_pos_control: shorten parameter descriptions to a readable size 2024-12-19 16:12:43 +01:00
Matthias Grob 1239f0aaed FlightTaskTransition: Comment why using invalid horizontal velocity works 2024-12-19 16:00:21 +01:00
Matthias Grob 34bcc277a5 FlightTaskTransition: keep high decelration when overshooting the transition target 2024-12-19 16:00:21 +01:00
Matthias Grob 11d7dd41fd FlightTaskTransition: clean up and simplify 2024-12-19 16:00:21 +01:00
Matthias Grob 839010eeab Navigator: make ADSB handling optional 2024-12-19 15:30:34 +01:00
Silvan Fuhrer 367a8a7fc4 update gz submodule to get new tiltrotor sim
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2024-12-19 09:57:55 +01:00
Pernilla 1f48448beb Update other airframes with min max values different than default 2024-12-19 09:57:55 +01:00
Pernilla be42c7c88a Adding min-max angles to use for normalized servo outputs 2024-12-19 09:57:55 +01:00
Pernilla f1855de006 Adding tiltrotor model 2024-12-19 09:57:55 +01:00
Matthias Grob c69f96ec04 ADSB: replace last excess hrt_absolute_time() in the loop 2024-12-19 09:35:38 +01:00
Silvan Fuhrer 30e51cb80e ADSB: improve readability of unit tests
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2024-12-19 09:35:38 +01:00
Silvan Fuhrer 1a1fd59302 ADSB: pass now timestamp as arguemnt of send_traffic_warning()
Saves some flash and CPU by not having to call hrt_absolute_time().

Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2024-12-19 09:35:38 +01:00
Silvan Fuhrer 741e3e8589 ADSB: pass now timestamp as arguemnt of get_traffic_state()
That enables us to time the unit tests better plus saves some flash and CPU.

Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2024-12-19 09:35:38 +01:00
Marco Hauswirth bdc6957c11 dont use BROACAST_MODE_ON during unit testing 2024-12-19 07:44:45 +01:00
Matthias Grob 077ade4f8f Add IO timer channel mode for RPM and also sync up rpi configuration to work with all these drivers 2024-12-19 07:30:25 +01:00
Matthias Grob b85ad98a98 Use defines instead of hardcoded magic values for maximum number of output channels and rpm filter time constant 2024-12-19 07:30:25 +01:00
Matthias Grob 8ce6ad6662 camera_capture: refactor to simplify capture channel initialization 2024-12-19 07:30:25 +01:00
Matthias Grob 267fa06da8 RPMCapture: fix copyright year, improve comments 2024-12-19 07:30:25 +01:00
Matthias Grob f4c8e0e35f RPMCapture: fix dt should not have a minimum which would limit to 6000rpm 2024-12-19 07:30:25 +01:00
Matthias Grob b7b384ab2e RPMCapture: add back filter reset on timeout 2024-12-19 07:30:25 +01:00
Matthias Grob d027f8bf39 RPMCapture: publish outliers in rpm message but don't update the filters and estimate 2024-12-19 07:30:25 +01:00
Matthias Grob 9ca06be4f5 RPMCapture: refactor to clarify scheduling 2024-12-19 07:30:25 +01:00
Matthias Grob c406e0a3a2 RPMCapture: refactor to clarify when an interrupt happened 2024-12-19 07:30:25 +01:00
Matthias Grob ec4ed75264 RPMCapture: define period as UINT32_MAX when timed out 2024-12-19 07:30:25 +01:00
Matthias Grob 825dc47fad RPMCapture: fix pulses per revolution parameter name, description, type -> use module params 2024-12-19 07:30:25 +01:00
oravla5 d31271c38e RPMCapture: added pulse per rev parameter. Do not publish if pulses are to fast 2024-12-19 07:30:25 +01:00
bresch 1b105c937d RpmControl: remove raw RPM spikes using median filter 2024-12-19 07:30:25 +01:00
Silvan Fuhrer f687e3d8a4 RPM capture: publish every 1s without new data
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2024-12-19 07:30:25 +01:00
Matthias Grob 6241db74db mavlink: stream RAW_RPM message for ONBOAR_LOW_BANDWIDTH 2024-12-19 07:30:25 +01:00
Matthias Grob 8486f74b2a RPMCapture: much better timeout scheduling
Not timing out based on a random interval but based
on the time after the last inerrupt.
2024-12-19 07:30:25 +01:00
Matthias Grob c463cc42d0 RPM: clean up message 2024-12-19 07:30:25 +01:00
Matthias Grob a60591378c RPMCapture: switch to PublicationMulti to be compatible with the existing rpm drivers 2024-12-19 07:30:25 +01:00
Matthias Grob 41b55724bc RPMCapture: Detect rpm sensing timeout 2024-12-19 07:30:25 +01:00
Matthias Grob 1bcdb3ef8c RPMCapture: add hardcoded rpm processing
Such that we can continue development on this part.
The implementation was already used before porting things into the RPM capture module.
2024-12-19 07:30:25 +01:00
Beat Küng 491ee01ac4 rpm_capture: add rpm capture driver, publising pwm_input (for now) 2024-12-19 07:30:25 +01:00
Matthias Grob ef823e5bb1 gz submodule: switch to hash on submodule main branch
after https://github.com/PX4/PX4-gazebo-models/pull/71 was merged
2024-12-18 18:06:37 +01:00
Perre 8a9391321d Adding gimbal rate in gz simulation (#24125)
* Adding gimbal rate in gz simulation

* add submodule
2024-12-18 16:25:12 +01:00
bresch 6b10f1ca12 ekf: update change indicator
The calculation of "alpha" in the accel_horiz and height_rate lowpass
filters is slightly different than before.
2024-12-18 14:11:08 +01:00
bresch 480c232bfd ekf2: use alpha filter class 2024-12-18 14:11:08 +01:00
bresch fa5a781e20 AlphaFilter: set time constant instead of alpha
Then the update function can set the dt at every iteration if needed
2024-12-18 14:11:08 +01:00
bresch 37401d6fd1 AlphaFilter: allow setting dt in update call 2024-12-18 14:11:08 +01:00
Stefano Colli 0561f6c9fc GZ: add gimbal simulation (#23382) 2024-12-18 12:15:03 +01:00
bresch 4a73195007 yaw_est: store attitude as quaternion instead of DCM
This saves flash and makes code simpler
2024-12-18 09:33:11 +01:00
Julian Oes 98fde4cbac gimbal: correctly set gimbal_device_id
When we use a gimbal connected via "RC", so PWM via the Aux channels, we
need to set the gimbal_device_id to 1 as per the protocol.

This was missing for GIMBAL_DEVICE_ATTITUDE_STATUS, so I added that, and
fixed the name of that variable while at it.
2024-12-18 07:51:40 +01:00
Beat Küng 9e9d352eb2 mavlink: update submodule
MAV_STANDARD_MODE_SAFE_RECOVERY and MAV_STANDARD_MODE_RETURN_HOME got
merged.
2024-12-18 07:12:36 +01:00
Beat Küng aca5a70964 standard_modes: add vehicle-type specific standard modes
See https://mavlink.io/en/messages/development.html#MAV_STANDARD_MODE.
The only standard mode that is not set is MAV_STANDARD_MODE_SAFE_RECOVERY,
as PX4 uses RTL for that (with configuration parameters).
2024-12-18 07:12:36 +01:00
Ramon Roche 90b968ba4e container: remove pr container push to registry 2024-12-17 22:33:05 -05:00
bresch 6969e5b6b4 ekf2: do not pre-compute airspeed Kalman gain
The generated code is not much faster than the simple matrix-vector
multiplication
2024-12-17 22:32:16 -05:00
Andrew Brahim e7145e7b44 uxrce_dds_client: include distance sensor in dds_topics.yaml
Signed-off-by: dirksavage88 <dirksavage88@gmail.com>
2024-12-17 22:28:40 -05:00
Daniel Agar 8a18e5b00c commander: accelerometer calibration respect rotation
- accel cal use Accelerometer calibration class to fully respect
   rotation (both internal and external sensors)
2024-12-17 22:26:01 -05:00
Jaeyoung Lim fd87cd682d Dynamically update ff gain for fw rate control (#24120) 2024-12-17 17:57:18 +01:00
Roman Bapst 93c25efb62 Fixed-wing Position Control: Split up control methods for VTOL backtransition (#23893)
* split methods to control backtransition depening on availablity of position

Signed-off-by: RomanBapst <bapstroman@gmail.com>

* fixed sign error and replace hardcoded number with constant

Signed-off-by: RomanBapst <bapstroman@gmail.com>

* make changes such that controller holds initial heading during transition

Signed-off-by: RomanBapst <bapstroman@gmail.com>

* use reference instead of copy

Signed-off-by: RomanBapst <bapstroman@gmail.com>

* added comment

Signed-off-by: RomanBapst <bapstroman@gmail.com>

* flash reduction

Signed-off-by: RomanBapst <bapstroman@gmail.com>

---------

Signed-off-by: RomanBapst <bapstroman@gmail.com>
2024-12-16 16:16:25 +03:00
Claudio Chies 051ced0fee SENS: RNG: SF45: Added timeout to sensor measurements, to compensate the lower loop time of CollisionPrevention 2024-12-16 10:49:13 +01:00
Alexander Lerach f34b22907c SENS: RNG: SF45:Fix startup problems, increase frequency, robust parser, use nonblocking reads 2024-12-16 10:49:13 +01:00
Alexander Lerach 88d771e3e5 SENS: RNG: SF45: Fixed sf45 parser, added general checks to avoid potential out-of-bound access 2024-12-16 10:49:13 +01:00
Claudio Chies 1718b37fe4 SENS: RNG: SF45 changed data processing and publication design, moved to a publishing per sector design.
other minor improvements
2024-12-16 10:49:13 +01:00
PX4 BuildBot a751e900f5 Update submodule mavlink to latest Sat Dec 14 00:39:04 UTC 2024
- mavlink in PX4/Firmware (661ae0c0e3ac493ceddd13120e8ccb5bac47d887): https://github.com/mavlink/mavlink/commit/0e420102dbdd7e9f59617dd00c05a2470f22eef2
    - mavlink current upstream: https://github.com/mavlink/mavlink/commit/5e3a42b8f3f53038f2779f9f69bd64767b913bb8
    - Changes: https://github.com/mavlink/mavlink/compare/0e420102dbdd7e9f59617dd00c05a2470f22eef2...5e3a42b8f3f53038f2779f9f69bd64767b913bb8

    5e3a42b8 2024-12-12 Hamish Willee - development: Remove parameter transaction proposal (#2169)
25f4e9f0 2024-12-11 Hamish Willee - STANDARD_MODE_SAFE_RECOVERY + RTL merge (#2191)
d5a8cb43 2024-12-11 Hamish Willee - Docs generate fix (#2194)
35f70c4a 2024-12-05 Hamish Willee - Create index.md, dialects.md and make notes/warning work with vitepress (#2193)
57c02856 2024-12-05 Hamish Willee - CAMERA_THERMAL_RANGE - no longer WIP (#2189)
1ee2ebe1 2024-12-04 Hamish Willee - fetch_dialect_ardupilotmega.yml: Not fail if nothing to commit (#2181)
1aa8c2d0 2024-12-04 Hamish Willee - ardupilotmega - remove_mav_cmd_external_estimate (#2187)
49fa509a 2024-11-30 github-actions[bot] - ardupilotmega dialects from ArduPilot/mavlink: Fri Nov 29 23:49:36 UTC 2024 (#2185)
75ebfc8f 2024-11-30 Hamish Willee - Update fetch_dialect_ardupilotmega.yml - fix copy error (#2184)
8e97709d 2024-11-30 Hamish Willee - fetch_dialect_ardupilotmega.yml - add loweheiser (#2183)
82b81aa8 2024-11-27 github-actions[bot] - ardupilotmega.xml from ArduPilot/mavlink: Wed Nov 27 04:13:16 UTC 2024 (#2178)
5c421a33 2024-11-27 Hamish Willee - Speed uncertainty units /s (#2180)
33f8a327 2024-11-24 David Sastre - Some modifications to multi-GCS protocol (#2179)
9938f940 2024-11-21 Hamish Willee - fetch_dialect_ardupilotmega - create (#2177)
a55d0ec5 2024-11-21 Hamish Willee - MAV_CMD_GROUP_START and _GROUP_END delete wip (#2176)
1cf3c721 2024-11-21 Hamish Willee - dev: move FUEL_STATUS to common (#2170)
7ecb8e33 2024-11-21 Hamish Willee - WIFI_NETWORK_SECURITY - wip removal (#2164)
2024-12-13 20:57:48 -05:00
Silvan Fuhrer 4db55cd25f mixer: FunctionMotors: compare against FLT_EPSILON instead of 0.f
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2024-12-13 17:56:46 +01:00
Silvan Fuhrer d7904b5f2c mixer: FunctionMotors: leave NAN control values at NAN with non-zero THR_MDL_FAC
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2024-12-13 17:56:46 +01:00
bresch 3941b19968 ekf2_replay: log groundtruth messages 2024-12-13 17:40:08 +01:00
bresch 3165a77e26 SIH-AGP: add sensor failure simulation 2024-12-13 17:40:08 +01:00
bresch 2a08d4bdb8 add SensorAgpSim to generate Aux Global Position data 2024-12-13 17:40:08 +01:00
GuillaumeLaine 2e166379c7 docs: split msgs as un/versioned 2024-12-13 16:34:37 +01:00
GuillaumeLaine 4d62522942 uxrce_dds_client: remove unused msgdir arg from script 2024-12-13 16:34:37 +01:00
GuillaumeLaine 58e5b75d06 jenkins: update after msg/ restructure 2024-12-13 16:34:37 +01:00
GuillaumeLaine 2d667238f7 tools: update scripts after msg/ restructure 2024-12-13 16:34:37 +01:00
GuillaumeLaine 4fe7d713d3 msg: introduce message versioning 2024-12-13 16:34:37 +01:00
bresch f9140fcd50 ekf2: set baro bias when GNSS is alt ref
Do this even when GNSS altitude fusion is disabled.
2024-12-13 14:55:46 +01:00
bresch fad9ae855d EKF2: reset aid src when resetting state to measurement
Filtered innovations and test ratios can be large before the reset and
would trigger pre-flight warnings
2024-12-13 14:26:57 +01:00
Jacob Dahl eb829676b0 sim: gz: remove Garden from cmake 2024-12-13 13:20:20 +01:00
Silvan Fuhrer 896c08bd68 COMMON_DISTANCE_SENSOR: remove srf02 from the list
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2024-12-13 11:40:59 +01:00
Silvan Fuhrer f4b5d8e3d8 COMMON_DISTANCE_SENSOR: remove gy_us42 from the list
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2024-12-13 11:40:59 +01:00
Silvan Fuhrer 0b4b794de7 COMMON_DISTANCE_SENSOR: remove leddar_one from the list
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2024-12-13 11:40:59 +01:00
bresch cc92979b06 ekf-agp: fix timeout 2024-12-12 15:49:04 +01:00
Pernilla fc6c678274 Remove gz-garden as it reached EOL 2024-12-12 15:11:54 +01:00
Matthias Grob d5c9ea048e LidarLitePWM: refactor static cast and comment 2024-12-12 13:50:17 +01:00
Matthias Grob 5010b01e2e PCF8583: refactor 1e6f for 1000000.f 2024-12-12 13:50:17 +01:00
Matthias Grob cbde9729e8 Airframes: remove unnecessary double newlines 2024-12-12 13:50:17 +01:00
Julian Oes 091974e6c5 listener: only clear screen with multiple messages (#24019)
* listener: only clear screen with multiple messages

* listener: fully clear before printing again

Otherwise, we end up seeing artifacts from the previous print.
2024-12-11 10:00:36 +13:00
Vincent Poon 0f1a4eb72c update H-Flow Boot config and add stm32_configgpio (#24086) 2024-12-11 09:49:06 +13:00
Alexander Lerach bdbf7fd1dd Also consider targets that include a '-' (#24087) 2024-12-10 11:05:55 +01:00
Alexander Lerach f9ecc0fcd1 Added various features to flash analysis (#24072)
* Added various features to flash analysis (also run with FLASH overflow, summary in comment output, newer bloaty version, only add comment if change is large enough, ...)

* Added feedback from review

* Use wildcards

* Removed backward-compat logic and use correct base
2024-12-10 10:15:49 +01:00
Riccardo Mengoli 09cd42911d Mission: Replay gimbal cached items before reaching mission waypoint (#24085)
When flying patterns, photos are sometimes taken while the gimbal is pitching up or down. To address this, we orient the gimbal before reaching the mission waypoint, allowing more time to complete the action. Additionally, we verify if the vehicle is climbing to avoid orienting the gimbal while on the ground.
2024-12-10 09:20:53 +01:00
PX4 BuildBot 430f0888b3 update all px4board kconfig 2024-12-06 22:09:46 -05:00
Jaeyoung Lim 197aed8bdd Add mavlink stream for plane camera (#24081) 2024-12-06 14:52:54 +01:00
Jari Nippula 814b243931 Tools/decrypt_ulog.py: support for .ulge log files 2024-12-05 07:25:29 +01:00
Jari Nippula 2da944a834 Logger: combined key & cipher file
Use one single .ulge file to store both wrapped symmetric key and
encrypted ulog data instead of creating separate .ulgk/ulgc files
2024-12-05 07:25:29 +01:00
Jacob Dahl ae61b4bfe0 params: flash: erase corrupt sector (#24065) 2024-12-05 07:24:56 +01:00
Julian Oes 1778692ca2 gps: heading fixes for NMEA/Unicore
This updates the GPS submodule which includes NMEA/Unicore fixes:

- Add correct return value for sat infos
- Only publish on position updates
- Request required topics at 5 Hz for Unicore
2024-12-05 08:58:22 +13:00
Ramon Roche 28487350d3 ci: update actions and images
Updates some actions to run build steps in container instead of the
whole workflow.
2024-12-04 12:59:27 -05:00
Matthias Grob d416cd2a6c Commander: remove COM_POS_FS_DELAY
A user configurable delay for the internal `vehicle_local_position` seems confusing in my eyes. It's a different timeout for fixed-wing and multirotor which might have made sense earlier but not really anymore since the topic is constantly published by the estimator and not expected to time out on either vehicle type and the parameter description is also misleading because it's outdated.
2024-12-03 17:31:56 +01:00
Perre dfa48f988d ESC check: Avoid unsigned timestamp underflow in telemtry timeout (#24069)
* Avoid unsigned integer underflow

* ESC check: add brackets to timeout for readability

---------

Co-authored-by: Matthias Grob <maetugr@gmail.com>
2024-12-03 17:14:09 +01:00
bresch 8626019ae0 EKF2: reset global position using variance 2024-12-03 13:04:25 +01:00
bresch 6b637f82f8 lla; fix conversion to ECEF 2024-12-03 13:03:54 +01:00
Perre 4696338d29 Add gz model for quadtailsitter (#23943)
* Add gazebo airspeed plugin and add a tailsitter model
---------

Co-authored-by: Claudio Chies <61051109+Claudio-Chies@users.noreply.github.com>
2024-12-02 17:27:23 +01:00
Claudio Chies 1a165a4956 Added possibility to modify the start position from external sources, as its done in the _getMaxXYSpeed 2024-12-02 14:52:31 +01:00
Matthias Grob 7dcfeb2f77 PositionSmoothing: refactor _getMaxZSpeed() 2024-12-02 14:52:31 +01:00
Matthias Grob 092e5e8f9d TrajectoryConstraints: clarify waypoint indexing 2024-12-02 14:52:31 +01:00
Claudio Chies 06dde4ede8 MPC: PositonSmoothing, change test to reflect that we have to come inwithing the acceptance radius, and not exact position. 2024-12-02 14:52:31 +01:00
Claudio Chies 72e758950b Included turning radius calculations for vertical changes and removed the requirement for the same altitude in the 2D turning radius logic. 2024-12-02 14:52:31 +01:00
Hamish Willee 5ce2bf662b airframes markdownout.py - br rather than p for generated code 2024-12-02 11:55:25 +01:00
chfriedrich98 be2a3afb83 mecanum: update parameter description 2024-12-02 10:54:43 +01:00
chfriedrich98 ff55313b0b mecanum: update current position in main file 2024-12-02 10:54:43 +01:00
chfriedrich98 a1b68fcac2 mecanum: update SITL airframe parameters 2024-12-02 10:54:43 +01:00
chfriedrich98 369ce37d65 mecanum: adjust speed setpoints to always be feasible 2024-12-02 10:54:43 +01:00
chfriedrich98 2eda5659eb mecanum: fix inverse kinematics 2024-12-02 10:54:43 +01:00
chfriedrich98 5dcccd999c mecanum: add slew rates to yaw, yaw rate and speed setpoints 2024-12-02 10:54:43 +01:00
chfriedrich98 54abc59283 mecanum: deprecate RM_MAN_YAW_SCALE 2024-12-02 10:54:43 +01:00
chfriedrich98 6cce443005 mecanum: deprecate RM_MISS_SPD_DEF 2024-12-02 10:54:43 +01:00
chfriedrich98 7e705bbf55 differential: add slow down effect in mission mode 2024-12-02 10:44:22 +01:00
chfriedrich98 8880569b31 differential: adjust speed setpoint based on yaw rate setpoint 2024-12-02 10:44:22 +01:00
bresch b06ff99a3e disable SIH on x21-777 and v6u to save flash 2024-11-29 14:21:29 +01:00
Marco Hauswirth db0160bf7c fix sih hitl plane airframe 2024-11-29 14:21:29 +01:00
bresch 8b1975cb98 SIH: lower IMU noise before takeoff
This speeds-up the EKF alignment
2024-11-29 14:21:29 +01:00
bresch b30ea40c6d SIH: set GNSS delay to 0 as delay is not simulated 2024-11-29 14:21:29 +01:00
bresch cd18138b1c SIH: add transport rate acceleration to local acceleration 2024-11-29 14:21:29 +01:00
bresch 674aa474e7 SIH: use LatLonAlt class 2024-11-29 14:21:29 +01:00
bresch 189122d553 lla: add gravity constant at equator 2024-11-29 14:21:29 +01:00
bresch b6658df169 lla: move to lib directory 2024-11-29 14:21:29 +01:00
bresch 7cf42727fb lla: add functions to convert from and to ECEF 2024-11-29 14:21:29 +01:00
bresch 7ee69d616d SIH: rework FW ground contact 2024-11-29 14:21:29 +01:00
bresch 5d33971712 SIH: refactor MC ground contact 2024-11-29 14:21:29 +01:00
bresch 9b172d36a2 matrix: allow casting float<->double 2024-11-29 14:21:29 +01:00
Marco Hauswirth 5d7b734bc9 SIH: ellipsoidal earth model
SIH: use projection functions and constants from geo lib

SIH: remove unnecessary member variable

SIH: clarify names of rotation matrices and frames

SIH: do not store DCM corresponding to quaternion attitude

Using DCM is more efficient when more than 1 rotation needs to be done,
which is not the case here.

SIH: don't store local variable as member

SIH: use Wgs84 constants everywhere

SIH: do not store delta_quaternion

Converting an AxisAngle to a Quaternion uses the exponenial

SIH: organise ECEF member variables

SIH: add earth spin rate to gyro data

Co-authored-by: bresch <brescianimathieu@gmail.com>
2024-11-29 14:21:29 +01:00
Matthias Grob ce3fcd503f navigator: unify timeout waiting for payload to execute mission item command
Used for winch, gripper, gimbal to reach the desired state before continuing the mission.
Ideally we'd have feedback from all these components and not just a feed-forward delay.
2024-11-28 20:23:36 +01:00
Matthias Grob 17c24bafbc mission_block: simplify timeout check 2024-11-28 20:23:36 +01:00
Matthias Grob ec1cf04bc9 mission_block: fix style, shorten debug message strings 2024-11-28 20:23:36 +01:00
Stefano Colli 8b3c78a0a4 Navigator: add optional delay after gimbal mission items 2024-11-28 20:23:36 +01:00
Sergei Grichine ab320017cc boards: emlid_navio - support 64-bit OS on Raspberry Pi 4,5 (#24006)
adds the `emlid_navio2_arm64` build target - supports 64-bit OS on Raspberry Pi 4,5 (#24006)
2024-11-28 08:44:44 -08:00
Julian Oes 95b5859913 boards: add SPA06 to KakuteH7/H7mini/H7v2 boards 2024-11-28 12:18:44 +13:00
Julian Oes def6ab5a6b drivers: add SPA06 2024-11-28 12:18:44 +13:00
Julian Oes f7b62961cb drivers: Copy SPL06 to SPA06 2024-11-28 12:18:44 +13:00
Ramon Roche 1b6215fcf3 readme: update ci badge 2024-11-27 17:41:43 -05:00
Daniel Agar 990b067b25 uxrce_dds_client: update cmake requirements to match Micro-XRCE-DDS-Client submodule 2024-11-27 14:09:13 -08:00
Daniel Agar 68cbbaab92 Tools/astyle: check_code_style_all.sh skip pre-commit hook if non-interactive 2024-11-27 13:51:10 -08:00
Ramon Roche 22c1f07f0c container: use PX4 tags whiel tagging images 2024-11-27 16:42:13 -05:00
Ramon Roche f2bbb6f407 ci: disable publishing PR images to docker hub
Docker hub is rate limiting our API access, as a result tests are
failing for no apparent reason. This change will decrease the API calls
by at least 80%

We have applied for an Open Source account with greater API limits, I
will come back to this and update as necessary when and if they grant us
access to their program.
2024-11-27 16:42:13 -05:00
bresch 85bc8ef885 SIH-plane: fix actuator mapping 2024-11-27 11:14:56 -05:00
bresch 8a9bac29a2 SIH-FW: allow pitching up during takeoff
Otherwise difficult to get lift
2024-11-27 11:14:56 -05:00
bresch 7236ef2d17 SIH-FW: fix aileron and elevator signs
This broken when changing from mixer files to the control allocation module.
2024-11-27 11:14:56 -05:00
bresch 1dad25b763 SIH: do not assume being a tailsitter when creating airspeed measurement 2024-11-27 11:14:56 -05:00
Matthias Grob a280d67be8 PID: Fix test to respect integral updates being applied in the next iteration
Co-authored-by: chfriedrich98 <125505139+chfriedrich98@users.noreply.github.com>
2024-11-26 16:13:48 +01:00
Matthias Grob f9bcbc31ae PID: protect from division by zero because of dt
Co-authored-by: chfriedrich98 <125505139+chfriedrich98@users.noreply.github.com>
2024-11-26 16:13:48 +01:00
Matthias Grob b89c53d28c Replace old pid library with new one 2024-11-26 16:13:48 +01:00
Matthias Grob e047972cde Add new C++ PID library 2024-11-26 16:13:48 +01:00
Daniel Agar e194a52907 ekf2: derivation.py remove sideslip small angle approximation 2024-11-25 08:53:57 +01:00
Ramon Roche 7462e98e16 ci: publish pr images to registry 2024-11-22 16:08:12 -05:00
Ramon Roche 3240cf4dc7 ci: push px4-dev container to docker hub registry 2024-11-22 16:08:12 -05:00
Ramon Roche f2bd3105ad ci: tag container main & main-date
Make sure we always have a { branch name } container tag in addition to
a { branch name + date } tag. This way we have a rolling { branch name }
of the main and release branches
2024-11-22 16:08:12 -05:00
Ramon Roche fb42770131 Tools: instal ccache on ubuntu 2024-11-22 16:05:58 -05:00
Ramon Roche 14468d49c1 ci: flash analysis updates
* updates comment instead of posting a new one each time
* runs on dronecode infra
2024-11-22 08:49:27 -08:00
bresch 14fe6c2167 ekf2: resetHeightTo -> resetAltitudeTo
The vertical position state is now an altitude, not just a local height
2024-11-22 15:13:47 +01:00
bresch 93c690f133 ekf2: do not inline getPosition 2024-11-22 15:13:47 +01:00
bresch a224d38e52 lla: move implementation to cpp file
This reduces flash usage
2024-11-22 15:13:47 +01:00
bresch aeb182a8ed ekf2: rename resetAltitudeTo to initialiseAltitudeTo
This is to better show that the altitude is also used to set the origin.
2024-11-22 15:13:47 +01:00
bresch 30d98885b7 update change indicator 2024-11-22 15:13:47 +01:00
bresch 814a2706f5 ekf2: compensate for coriolis and transport rate accelerations 2024-11-22 15:13:47 +01:00
bresch 842212df6c ekf2: update earth rate also without GNSS 2024-11-22 15:13:47 +01:00
bresch 6becccb217 update change indicator 2024-11-22 15:13:47 +01:00
bresch a492457322 ekf2-derivation: build state struct based on type 2024-11-22 15:13:47 +01:00
bresch 13c5bd4412 ekf-flow: do not reset position when resetting to flow
Flow only provides velocity information
2024-11-22 15:13:47 +01:00
bresch b19a6ee3b5 ekf2: store position state as lat/lon/alt
The position error state is still defined in a body-fixed NED frame but the
position state itself is latitude-longitude-altitude.
2024-11-22 15:13:47 +01:00
Ramon Roche cf34b9d574 ci: fixes tag uploads and container tagging 2024-11-21 20:48:27 -05:00
Ramon Roche 0fca8e3a85 ci: build only if push event 2024-11-21 20:46:40 -05:00
Ramon Roche 884dee35a5 ci: container tag pattern updates 2024-11-21 20:46:40 -05:00
Daniel Agar 233cf17fa7 Jenkins: delete Jenkinsfile-compile/Jenkinsfile-hardware
- Jenkinsfile-compile is now redundant with github actions
 - Jenkinsfile-hardware will be migrated to github actions once new test
   rack hardware is available (old test rack server died)
2024-11-21 12:31:02 -05:00
Silvan Fuhrer 2f65644aeb mixer module: remove unused functions
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2024-11-21 11:57:50 -05:00
Julian Oes 746e26bf9e listener: clear screen on multiple output
I suggest to clear the screen when using the listener with -n.
This way the updates don't just scroll by which isn't legible but
instead stay in place and update, similar to the top command.
2024-11-21 11:56:23 -05:00
PX4 BuildBot 10590fc597 Update submodule libfc-sensor-api to latest Thu Nov 21 12:38:53 UTC 2024
- libfc-sensor-api in PX4/Firmware (044d13635d): https://gitlab.com/voxl-public/voxl-sdk/core-libs/libfc-sensor-api/commit/ca16e99074641a10d153961291243ede7720c2e2
    - libfc-sensor-api current upstream: https://gitlab.com/voxl-public/voxl-sdk/core-libs/libfc-sensor-api/commit/85151aaf6ba8b24ce82b387e088452c63f7e2096
    - Changes: https://gitlab.com/voxl-public/voxl-sdk/core-libs/libfc-sensor-api/compare/ca16e99074641a10d153961291243ede7720c2e2...85151aaf6ba8b24ce82b387e088452c63f7e2096

    85151aa 2024-06-05 Eric Katzfey - Revert addition on slpi link interface. It will be moved to a separate project
e36286b 2024-06-04 Eric Katzfey - Merge branch 'master' of gitlab.com:voxl-public/voxl-sdk/core-libs/libfc-sensor-api
43a513f 2024-06-04 Eric Katzfey - Added new slpi link interface
490608b 2024-05-08 Eric Katzfey - Fixed gitignore for shared object
1085c02 2024-05-07 Eric Katzfey - Added gitignore for object files
37ecfc4 2024-05-03 Eric Katzfey - v1.0.3
2d1ebd3 2024-05-02 Eric Katzfey - Added a new kill slpi function
2024-11-21 11:50:11 -05:00
Beat Küng 8ccd43dc1b refactor commander: remove unused argument is_armed in Report class 2024-11-21 14:16:22 +01:00
Beat Küng be300b767d commander: ensure health report is always sent out before failsafe notificaation
As the failsafe message can reference the health report, the health report
needs to be sent out first. This is generally the case, except there is a
rate limiter set to 2 seconds. So if the report changes quickly, it is
sent out delayed (potentially after the failsafe report).
2024-11-21 14:16:22 +01:00
Matthias Grob 044d13635d Commander: Change user facing messages to "Remote ID" instead of "OpenDroneID"
Apprently users reference the system like that and OpenDroneID
might already be too technical, less understandable to some.
2024-11-21 11:38:23 +01:00
Claudio Chies db13b9cb50 CollisionPrevention: Added Case where velocity gets reduced to zero if we are closer to the obstacle than the minimal distance 2024-11-21 11:36:03 +01:00
Matthias Grob bbc59dcde7 CollisionPrevention: prevent illegal array index with malicious obstacle_dsitance message 2024-11-21 11:36:03 +01:00
Matthias Grob 1410325c62 CollisionPrevention: follow parameter variable naming convention 2024-11-21 11:36:03 +01:00
Matthias Grob 30eec33e09 CollisionPrevention: slightly simplify _transformSetpoint() 2024-11-21 11:36:03 +01:00
Matthias Grob 399a8ad5b7 CollisionPrevention: fix early return and use unified bin count + array size 72 2024-11-21 11:36:03 +01:00
Matthias Grob 61d999073b Remove FlightTaskManualPositionSmoothVel
The default implementation for multicopter Position mode is FlightTaskManualAcceleration.
The last missing piece was support for CollisionPrevention in this implementation.
2024-11-21 11:36:03 +01:00
Claudio Chies f41a08aea8 CollisionPrevention: changed to resolution of 5 degrees, and adapted tests to reflect the change
rewrite of obstacle_distance merging methods, and fix of various issues
2024-11-21 11:36:03 +01:00
Matthias Grob 2ef2911c36 Remove FlightTaskManualPositionSmoothVel
The default implementation for multicopter Position mode is FlightTaskManualAcceleration.
The last missing piece was support for CollisionPrevention in this implementation.
2024-11-21 11:36:03 +01:00
Matthias Grob b74dd57e7c CollisionPrevention: restore rate limited warning for no data, minor cleanup 2024-11-21 11:36:03 +01:00
Matthias Grob 4c8c5fbb37 CollisionPrevention: only save quaternion and yaw on attitude update 2024-11-21 11:36:03 +01:00
Matthias Grob 001d722abd CollisionPrevention: move main functions to the top in the order they get called 2024-11-21 11:36:03 +01:00
Matthias Grob 1fa76ac71d CollisionPrevention: reduce internal array size, zero initialize what's possible 2024-11-21 11:36:03 +01:00
Matthias Grob c879ca531d CollisionPrevention: Clarify bin size definitions, move wrap functions into class 2024-11-21 11:36:03 +01:00
Matthias Grob 84dbbb4351 CollisionPrevention: clarify mode switch command to hold/loiter 2024-11-21 11:36:03 +01:00
Matthias Grob 50ee5bd1b4 CollisionPrevention: Sanitize input of _getObstacleDistance()
It could cause array out of bound problems before.
2024-11-21 11:36:03 +01:00
Matthias Grob eb06ace8e4 CollisionPrevention: fix matrix namespace
don't use it in header such that clients are free to redefine the names
but include it in cpp files and make use of that.
2024-11-21 11:36:03 +01:00
Matthias Grob 079f3ca67c StickAccelerationXY: Simplify collision prevention call 2024-11-21 11:36:03 +01:00
Claudio Chies 0cd6a553b9 CollisionPrevention: rewrite for Acceleration based manual flight mode 2024-11-21 11:36:03 +01:00
Matthias Grob b8c2805263 spi: Suppress null pointer warning
Depending on defines px4_spi_buses can be NULL
but often it's not and in those cases the
compiler correctly warns about it.
2024-11-20 22:36:23 -05:00
PX4 BuildBot a49f034757 update all px4board kconfig 2024-11-20 22:33:59 -05:00
PX4 BuildBot 2f8460da91 Update submodule mavlink to latest Wed Nov 20 13:16:31 UTC 2024
- mavlink in PX4/Firmware (7e594e898b2281e7d3f6ef4057f1add829643058): https://github.com/mavlink/mavlink/commit/e221d46d4631a5b6f1e91040cb1fe4b6fa91ea43
    - mavlink current upstream: https://github.com/mavlink/mavlink/commit/0e420102dbdd7e9f59617dd00c05a2470f22eef2
    - Changes: https://github.com/mavlink/mavlink/compare/e221d46d4631a5b6f1e91040cb1fe4b6fa91ea43...0e420102dbdd7e9f59617dd00c05a2470f22eef2

    0e420102 2024-11-20 David Sastre - development.xml: change OPERATOR_CONTROL id to 32100: (#2174)
01e0cc2f 2024-11-14 Hamish Willee - SMART_BATTERY_INFO - revert and renumber BATTERY_INFO (#2173)
2024-11-20 22:33:21 -05:00
Ramon Roche dbc2e56b2e ci: disable docker hub access 2024-11-20 19:57:41 -05:00
Ramon Roche fb0f9b8aa7 ci: fix container image name when multiple given
when this is workflow triggered by a tag push event, then it tags the
image in multiple ways eg:

    "image.name": "ghcr.io/px4/px4-dev:v1.16.0-alpha1,ghcr.io/px4/px4-dev:latest"

Having multiple names messes up the exectuion of the next step in the
chain since we depend on its name to complete the testing
2024-11-20 19:34:07 -05:00
Ramon Roche 74447a3ae2 ci: px4-dev container 2024-11-20 18:16:33 -05:00
Daniel Agar cad2de228c .github/workflows/clang-tidy.yml - clang-tidy checks retry if failed
- this clang tidy runner occasionally fails intermittently
2024-11-20 18:14:33 -05:00
Ramon Roche abb5048cdb ci: disable spot instances
guarantee execution of jobs
2024-11-20 14:52:45 -05:00
Jacob Dahl 1cfefc4c63 ark_fpv: fix bootloader serial fw update (#23984) 2024-11-20 14:46:27 -05:00
Daniel Agar 7288d16855 mavsdk_tests set nice levels for px4/gzclient/mavsdk_tests 2024-11-20 14:45:11 -05:00
Daniel Agar ada2bb4c42 uORB_tests: relax latency threshold on non-realtime SITL 2024-11-20 14:10:39 -05:00
Ramon Roche 8e288629d0 ci: move runners to capacity optimized 2024-11-20 13:56:05 -05:00
Julian Oes 7c507f136c bmp280: disable device filter
It looks like the BMP280 was heavily filtered, leading to a step
response of around 3 seconds. Comparing it to baro logs of BMP388 and
MS5611, it looks very slow.

I therefore suggest to disable the on device IIR filter which makes the
log data look more like the other baros.
2024-11-20 13:06:07 -05:00
Matthias Grob 3f83a8fa7a mavlink: remove reference to COLLISION message I had missed
Should have been part of
b5d18c6131
2024-11-20 13:02:59 -05:00
Federico Ciresola ddc604d0de Broken link to the ARKV6X on the README.md 2024-11-20 12:42:58 -05:00
Daniel Agar 1d2ed28966 init.d-posix/rcS: relax default COM_RC_LOSS_T/COM_OF_LOSS_T with speed factor (0.5->1.0) 2024-11-20 09:36:06 -08:00
Daniel Agar 635e162a0c test/mavsdk_tests: continue sending manual control between steps in fly_forward_in_posctl()/fly_forward_in_altctl() 2024-11-20 09:36:06 -08:00
Matthias Grob f8b34fd79d ci: build_all_targets: Update python packaging to avoid canonicalize_version() error 2024-11-20 14:27:04 +01:00
Matthias Grob dcfecb4e16 python requirements: less strict empy version specifier 2024-11-20 14:27:04 +01:00
Marco Hauswirth a191e1e14e always allow disabling uncalibrated baro (#23782)
* always set baro calibration id and prio param

* change to ParametersSave

* only save baro calib param if not calibrated
2024-11-20 14:05:46 +01:00
Matthias Grob 53d920ea33 batteryCheck: fix enabling circuit breaker still causing battery failsafes
Failing checks caused failsafe flags to stay true when enabling the circuit breaker but not rebooting.
Resetting the failsafe flags state when the circuit breaker is set resolves this issue.
2024-11-20 13:25:20 +01:00
somebody-once-told-me 3943025f32 Centralize yaw margin (#23982) 2024-11-20 09:52:36 +01:00
Jacob Dahl b891961a0c make upload: fix usb path wildcard 2024-11-19 23:02:12 -05:00
Matthias Grob 1aadbf85af gtest cmake: fix unit test filter 2024-11-19 23:00:59 -05:00
Khalil L 129c0f188a hkust_nxt-dual: fix ADC_BATTERY_CURRENT channel mismatch 2024-11-19 22:57:53 -05:00
Jacob Dahl 3bce6988ab remove unused upload.sh 2024-11-19 22:56:41 -05:00
Jacob Dahl 7a7240c3a2 ark: update v6x and fpv bootloaders (#23980)
* ark_fmu-v6x: update bootloader binary

* ark_fpv: update bootloader binary
2024-11-19 14:28:33 -07:00
Stefano Colli b492947459 GZ RC Cessna: Improve rate tuning (#23758) 2024-11-19 10:05:44 +01:00
jmackay2 5b66a1eff1 Fix generate component regex escape sequence 2024-11-19 09:31:11 +01:00
Jacob Dahl 5f57b23477 ark_fpv: added fixed wing to board config (#23967) 2024-11-18 20:27:49 -07:00
S.W Develish b955588b26 bugfix: NMEA GPS update rate was 0 since num_bytes_read was not being… (#23957)
* bugfix: NMEA GPS update rate was 0 since num_bytes_read was not being updated

* Update gps.cpp

style fix

* make format

---------

Co-authored-by: Jacob Dahl <dahl.jakejacob@gmail.com>
2024-11-17 16:16:50 -09:00
alexcekay 101384e155 Added GH Action to show FLASH diff using bloaty 2024-11-16 13:07:00 -05:00
Jacob Dahl c6803166d1 boards: cubeorange: fix dma map label (#23953) 2024-11-15 21:17:43 -05:00
PX4 BuildBot a85a9eccf7 boards: update all NuttX defconfigs 2024-11-15 21:14:12 -05:00
PX4 BuildBot ccd32cc13f update all px4board kconfig 2024-11-15 21:13:34 -05:00
PX4 BuildBot 11fe5580cb Update submodule libevents to latest Sat Nov 16 00:40:14 UTC 2024
- libevents in PX4/Firmware (1f29c55e82fa22b95313bb0d10b63918718f9c0c): https://github.com/mavlink/libevents/commit/7c1720749dfe555ec2e71d5f9f753e6ac1244e1c
    - libevents current upstream: https://github.com/mavlink/libevents/commit/9ef591c447fe0386d698bf6fb9a6d27e43988ee4
    - Changes: https://github.com/mavlink/libevents/compare/7c1720749dfe555ec2e71d5f9f753e6ac1244e1c...9ef591c447fe0386d698bf6fb9a6d27e43988ee4

    9ef591c 2024-10-14 Beat Küng - pylint: increase max-positional-arguments from 5 to 7
7901a0c 2024-10-14 Beat Küng - pylint: update config (pylint version 14.2.1)
edc472e 2024-10-11 Beat Küng - refactor: change libevents to an INTERFACE library
2024-11-15 21:12:18 -05:00
Silvan Fuhrer 08155d20f8 estimatorCheck: have low position warning as health component failure to fix reporting
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2024-11-15 15:32:53 -05:00
Silvan Fuhrer 3093c593a5 Commander: put action for low position estimation accuracy into parameter
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2024-11-15 15:32:53 -05:00
Hubert 2ce390a780 boards: new micoair h743-aio board
Co-authored-by: Minderring <1701213518@sz.edu.pku.cn>
2024-11-15 15:30:09 -05:00
Hubert 29085b18ad boards/micoair/h743: remove osd in micoair743 config file
Co-authored-by: Minderring <1701213518@sz.edu.pku.cn>
2024-11-15 15:28:42 -05:00
Ramon Roche 381c45b751 Dockerfile: px4-dev container no sim tools for now
- we need to keep the total size reasonable for CI builds that will use this image
2024-11-15 15:26:55 -05:00
Ramon Roche 82ad562be8 Tools: build px4-dev container in CI with ubuntu 24.04 2024-11-15 14:36:03 -05:00
Alexander Lerach b6daf83088 Un-inlined get_table_data 2024-11-15 12:01:06 -05:00
Alexander Lerach 6d0b7f7ed1 Un-inlined rotate_3 2024-11-15 12:01:06 -05:00
Ramon Roche 058fe540dd ci: test ubuntu 24
* updates ubuntu.sh adding support for ubuntu 24.04
* ubuntu.sh now expects by default any of the last two LTS
* runs ci in docker containers
2024-11-14 20:26:30 -05:00
Patrick José Pereira bc8f98c9ad drivers/magnetometer/ak09916: Add support to AK09915 (#23909)
The only difference between the ak09915 and ak09916 is the communication method

Signed-off-by: Patrick José Pereira <patrickelectric@gmail.com>
2024-11-14 11:32:51 -09:00
Silvan Fuhrer f9c4c8b22c VehicleIMU: move setting of _notify_clipping from constructor to ParametersUpdate()
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2024-11-13 12:10:48 -05:00
bresch ea1a6a327c flow: add scale factor parameter 2024-11-13 10:28:29 -05:00
Claudio Chies d14c054149 SIM: MPC: add two x500 lidar airframes (#23879)
* add two x500 lidar airframe, including the gazebo bridge for the lidar sensors and their orientation

* Update src/modules/simulation/gz_bridge/GZBridge.cpp

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

* Update src/modules/simulation/gz_bridge/GZBridge.hpp

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

* update submodule

---------

Co-authored-by: Jacob Dahl <37091262+dakejahl@users.noreply.github.com>
2024-11-13 08:44:19 +01:00
Ramon Roche 1e23f25560 ci: test ubuntu 22.04 in ci
* missing and updated dependencies
* setup: install zeromq for ubuntu 24.04
* cleans up ubuntu script
2024-11-12 22:09:37 -05:00
bresch 31bef770aa replay: do not fail on first ignored topic 2024-11-12 21:22:25 -05:00
Matthias Grob 651552c9b8 Commander: avoid automatic type deduction where neither the type is obvious nor it helps with readability 2024-11-12 21:21:40 -05:00
Matthias Grob 990811098b MulticopterRateControl: refactor torque setpoint naming 2024-11-12 21:21:40 -05:00
Daniel Agar a2156244d3 uxrce_dds_client: CMakeLists.txt cleanup
- common variable for Micro-XRCE-DDS-Client
 - don't mix tabs and spaces
 - px4 module include all dependencies
2024-11-12 21:20:54 -05:00
Matthias Grob b5d18c6131 Remove unused collision_report message 2024-11-12 21:18:57 -05:00
PX4 BuildBot 84ba95b496 Update submodule mavlink to latest Wed Nov 13 00:39:41 UTC 2024
- mavlink in PX4/Firmware (a793ddeac49e4251b329fc35f6e066c8d1d9b8f8): https://github.com/mavlink/mavlink/commit/b4add5292992cc43bd471b431b425338787982be
    - mavlink current upstream: https://github.com/mavlink/mavlink/commit/e221d46d4631a5b6f1e91040cb1fe4b6fa91ea43
    - Changes: https://github.com/mavlink/mavlink/compare/b4add5292992cc43bd471b431b425338787982be...e221d46d4631a5b6f1e91040cb1fe4b6fa91ea43

    e221d46d 2024-11-06 benjinne - add rc_type_crsf (#2162)
6ac99ca4 2024-11-06 Hamish Willee - Remove the imported headers for everything except common.xml (#2166)
5f7fe504 2024-11-06 David Sastre - development.xml: First prototype for multi-GCS operation. (#2158)
2024-11-12 21:17:32 -05:00
João Mário Lago b7d1698433 drivers: magnetometer: mmc5983ma: Add SPI support (#23925) 2024-11-12 10:21:58 -09:00
RomanBapst 2f69f3fc2e mode_requirements: require only relaxed local position for auto land, in order
to enable auto land with optical flow

Signed-off-by: RomanBapst <bapstroman@gmail.com>
2024-11-12 15:24:25 +01:00
Niklas Hauser 0879f67cc3 manifest: Add Skynode S baseboard 2024-11-12 13:32:33 +01:00
Alexander Lerach 1b3f50ef42 Added interrupt pin selection to BMI088 (#23926)
* Added interrupt pin selection to BMI088

* Fixed typo
2024-11-12 13:26:59 +01:00
Vincent Poon 1b163b5e4d Update KakuteH7 mini board_id in hw_config.h
Update KakuteH7 mini board_id in hw_config.h
2024-11-12 11:48:34 +13:00
chfriedrich98 233963b2d5 ackermann: deprecate RA_MISS_SPD_DEF and update airframe default params 2024-11-11 16:40:27 +01:00
chfriedrich98 0ee580f139 ackermann: fix PID implementation 2024-11-11 16:40:27 +01:00
chfriedrich98 4f00df60ae differential: add slew rates for setpoints, deprecate RD_MAN_YAW_SCALE and update airframe tuning 2024-11-11 14:44:10 +01:00
Alexander Lerach fbbfcdb7a6 uxrce_dds_client - Fix nullptr access in certain cleanup situations (#23913)
* Only close initialized objects

* Added err log in case of no ping

* Added err log in case of timesync timeout
2024-11-11 14:23:46 +01:00
Alexander Lerach 3e3151c047 Avoid septentrio setting wrong time (#23920) 2024-11-11 13:03:13 +01:00
Alvaro Fernandez 079b756f1b VTOL: Added position feedback to backward transition braking controller(#23731)
Instead of tracking a fixed deceleration setpoint during the backtransition we added here position feedback,
such that the vehicle comes to a stop latest at the current position setpoint. This reduces the risk of 
overshooting the landing point.
If no position feedback/position setpoint is present the old logic still applies.
It further moves the braking controller to the FlightTaskTransition instad of doing it in
the VTOL attitude mode.

* vtol_type: added position feedback to backward transition

* FlgithTaskTransition: refactored backtransition deceleration/pitch setpoint computation

* FlightTaskTransition: minor improvements

* FlightTaskTransition: use .dot() consistently and remove unnecessary comments

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

---------

Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
Co-authored-by: Silvan Fuhrer <silvan@auterion.com>
2024-11-11 11:53:28 +01:00
Alexander Lerach f47719d397 Manual idle current setting (#23914)
* Added param to overwrite analog idle current measurement

* Fixed topic handling
2024-11-11 11:40:30 +01:00
Silvan Fuhrer d206de0a58 imxrt_flexspi_nor_boot: add new line at end of file
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2024-11-11 11:33:54 +01:00
alexklimaj b35ec38dda boards: ark fpv fix current adc 2024-11-09 21:13:25 -05:00
Silvan Fuhrer 0caf77ac15 ROMFS: remove Deltaquad VTOL airframe
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2024-11-09 21:12:55 -05:00
Silvan Fuhrer 936767cb53 ROMFS: remove babyshark airframe
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2024-11-09 21:12:55 -05:00
Andrew Brahim 834af98992 uavcan: support GNSS heading from relposheading with offset configurable in estimator
* uavcan: add GNSS heading from relposheading
* ekf2: new EKF2_GPS_YAW_OFF parameter to configure any offset in GNSS heading

Signed-off-by: dirksavage88 <dirksavage88@gmail.com>
Co-authored-by: Jacob Dahl <dahl.jakejacob@gmail.com>
2024-11-08 21:52:55 -05:00
Peter van der Perk 7f5bf9cf86 ci: add nxp tropic and s32k344 fmu target 2024-11-07 21:33:59 -05:00
Ramon Roche fc3899a0d0 ci: disable fail fast for build targets job 2024-11-07 21:33:12 -05:00
bresch 651675fed0 ekf-yaw-est: do not store full S_inverse 2024-11-07 11:37:56 -05:00
bresch 7b04ea0dca ekf-yaw-est: wrap_pi when updating yaw 2024-11-07 11:37:56 -05:00
bresch 3ad4b57315 ekf-yaw-est: do not reset when all weights collapse
The likelyhood can be really small when the innovation is suddenly
large. This can occur during a GNSS velocity glitch and shouldn't reset
the filter as it would bring it back to a really vulnerable state.
2024-11-07 11:37:56 -05:00
Julian Oes d8be547b06 mavlink: drop acks early that aren't for us
This fixes an issue where we dropped acks that we should have sent out
just because the queue was clogged with acks that have nothing to do
with us and just happen to be sent to us. We should just ignore them and
not publish them to uORB.
2024-11-07 17:10:05 +13:00
Julian Oes 25e071e21d mavlink: no acks for commands that aren't for us
We should not send out acks for commands that are not targetted at us.
This can confuse other MAVLink components and MAVLink commands just
don't scale that way, and it unnecessarily fills up our ack queue.

This was likely introduced to debug when MAVLink components were
implemented incorrectly sending commands to a wrong target.

The most we should do in this case is to print/log an info.
2024-11-07 17:10:05 +13:00
Peter van der Perk b37a31b3a1 Tropic-community: Rename board 2024-11-06 17:28:35 -05:00
Peter van der Perk 80edb91c01 boards: tropic store param on sdcard
Tropic doesn't have a mtd, store param on sdcard instead
2024-11-06 17:28:35 -05:00
Peter van der Perk 5d29c7811b imxrt: tone_alarm: Add FlexPWM based Tone alarm driver 2024-11-06 17:28:35 -05:00
Peter van der Perk a7e4000861 rgbled_pwm: Change linker so we can make board specific override for led functionality 2024-11-06 17:28:35 -05:00
Peter van der Perk df54caba1e tropic: enable dshot 2024-11-06 17:28:35 -05:00
Peter van der Perk 8f2ede870e tropic: fix system power 2024-11-06 17:28:35 -05:00
Peter van der Perk 5bec4d7aae Initial support for Tropic VMU 2024-11-06 17:28:35 -05:00
Peter van der Perk c6e86fdea0 Add Tropic teensy loader upload support 2024-11-06 17:28:35 -05:00
Claudio Chies 04b6412731 fixed the Parameter value so it corresponds to the DistanceSensor rotation enum 2024-11-06 16:22:11 +01:00
Jacob Dahl ed3cac9122 tests: increase timeout for armable check 2024-11-05 21:13:10 -05:00
Alex Klimaj ee79d4cdfc boards: ark fpv change bootloader uart to telem1 (#23898) 2024-11-05 12:06:36 -09:00
bresch aa5fdd3bb3 ekf2-rng-kin: allow invalidating at any vertical speed
The issue is that when the HAGL is low, the drone will usually
decelerate and then the check would run anymore. If the low HAGL
estimate is due to bad sensor readings (e.g.: reflections), it will be
stuck in that state.
2024-11-05 16:51:49 +01:00
Jacob Dahl 87b52ae6ee Update platforms/nuttx/src/bootloader/stm/stm32_common/main.c 2024-11-05 06:59:47 -05:00
alexklimaj 7768dfda35 stm32 bootloader: use STM32_CPUCLK_FREQUENCY for systick_mhz 2024-11-05 06:59:47 -05:00
Peter Lichard 79bb30ce3d fix(ftp): List empty directory (#23638) 2024-11-05 00:23:28 -09:00
Matthias Grob d5103d71b9 simulator_mavlink: include headers from dialect specified for build (#23844)
Without this change the configured dialect would not get included
correctly in the simulator_mavlink module, only in the main mavlink module.

Configured using e.g. CONFIG_MAVLINK_DIALECT="development"
in e.g. boards/px4/sitl/default.px4board file.
2024-11-04 19:43:31 -09:00
Matthias Grob c199a284f5 Fix output of param show -q XXX on NuttX shell (#23793)
* param: add a newline for the output of param show -q

Otherwise the output doesn't get flushed and doesn't show.

* param: remove deprecated PARAM_PRINT for QURT

We're not carrying platform defines in applications.
2024-11-04 19:30:21 -09:00
Hamish Willee f032fdfd92 SDLOG_ALGORITHM - AES option not implemented (#23816)
* SDLOG_ALGORITHM - AES option not implemented

* Update src/modules/logger/params.c

Co-authored-by: Daniel Agar <daniel@agar.ca>

---------

Co-authored-by: Daniel Agar <daniel@agar.ca>
2024-11-04 19:22:31 -09:00
Potaito 098a3378cc navigator: Fix RTL_TYPE 2 by reloading mission (#23855) 2024-11-04 19:19:59 -09:00
Jacob Dahl f516b41b59 exclude vertiq submodule from make format (#23889) 2024-11-04 20:41:22 -07:00
benjinne 5001aab292 ina220 fix max current param name (#23886) 2024-11-04 16:00:06 -09:00
Alex Klimaj a41a8e8924 boards: ark fpv add SCH16T (#23883)
* boards: ark fpv add SCH16T

* boards: ark fpv fix spi6
2024-11-04 09:00:41 -09:00
Konrad 613a4b682e CI: add option to filter for boards in generate_board_targets 2024-11-04 09:46:49 -08:00
Konrad e666b8ddfd CI: make sure that the generate_board_targets includes all found targets 2024-11-04 09:46:49 -08:00
Jacob Dahl c9f64aeea8 cannode: safety_button: fix compatibility with Ardupilot (#23876) 2024-11-02 11:39:44 -06:00
Silvan Fuhrer 9d33f8f3f0 Mission validity checks: make clear that MIS_DIST_1WP only warns, not invalidates
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2024-11-01 16:19:19 +01:00
chfriedrich98 e8f8bc9af7 ackermann: add lateral acceleration setpoint, acro/position mode and updates to auto modes 2024-10-31 16:15:37 +01:00
chfriedrich98 6a7edac10d ackermann: restructure module 2024-10-31 16:15:37 +01:00
RomanBapst 79ec39e561 removed unnecessary case
Signed-off-by: RomanBapst <bapstroman@gmail.com>
2024-10-31 15:39:01 +03:00
RomanBapst 02d344d9d9 FixedWingPositionControl: handle case where we go into descend mode
during the backtransition

Signed-off-by: RomanBapst <bapstroman@gmail.com>
2024-10-31 15:39:01 +03:00
myxxmikeyxx 6385ecd7dd Update README.md
Fixed Simple typo
2024-10-31 13:31:25 +01:00
Julian Oes b9bca9fa94 boards: Add Holybro H-Flow (#23865) 2024-10-30 13:42:03 -04:00
zhaosheng.tan 4b4a60b54c boards: fixed board ap-h743v2 ADC_BATTERY_CURRENT_CHANNEL issue, the correct channel is 8. 2024-10-30 12:15:41 -04:00
bresch d579fb540c ekf2-terrain: do not consider negative hagl as valid 2024-10-30 12:14:43 -04:00
Alex Klimaj 4d1c65d722 boards: new ARK FPV FC (#23830)
* add new payload power switch (RC_MAP_PAY_SW)
2024-10-30 11:35:35 -04:00
Julian Oes 951c981d94 Tools: split by | or space to get all commands
This is required in the case where there are 3 commands on one line.
2024-10-30 07:30:29 +01:00
Julian Oes 6509e70306 gimbal: fix device flags for RC gimbals 2024-10-30 07:30:29 +01:00
Julian Oes e320593983 SITL: forward gimbal messages
A gimbal user needs to be able to receive gimbal device messages such as
GIMBAL_DEVICE_INFORMATION. Therefore, we need to forward this MAVLink
instance.
2024-10-30 07:30:29 +01:00
Julian Oes c0c412570d gimbal: Fix deg/rad for angular rates
The command is in degrees, but the rest in radians.

Also, set roll to NAN, rather than 0 when not set.
2024-10-30 07:30:29 +01:00
Julian Oes 55ec6df751 gimbal: Add test command for angle rates
This is handy to test angular rate input, not just angles.
2024-10-30 07:30:29 +01:00
Michael Schaeuble 22950a94ec Override vehicle attitude send to gimbals when HIL mode is enabled
The simulated attitude can disturb the gimbal estimator and lead to strange behavior of the gimbal. So, since the hardware is not moving in HIL/SIH, we fake a static attitude towards the gimbal.
2024-10-30 15:25:05 +13:00
Matthias Grob 219c9d6cb9 gimbal: handle angular_velocity setpoint stream timeout
The gimbal would otherwise continue to spin with whatever velocity was commanded
before the input connection was lost.
2024-10-30 15:12:08 +13:00
Matthias Grob 2bccb20ee6 gimbal: introduce timestamp of last setpoint update
To enable implementing a timeout when there's no new setpoint coming in.
2024-10-30 15:12:08 +13:00
Matthias Grob d5f3e858e8 gimbal: refactor outputs to take current timestamp at the beginning 2024-10-30 15:12:08 +13:00
chfriedrich98 a3a83c718a mecanum: add cruise control for position mode (#23834) 2024-10-29 16:43:42 +01:00
Matthias Grob cac0133901 FlightTaskDescned: fix horizontal acceleration overriding vertical one
Also descend with more acceleration again to avoid the risk of ascending instead of descending because of a wrong hover thrust estimate.
2024-10-25 14:06:00 +02:00
Silvan Fuhrer 5a53190ed5 FW Position Control: handle invalid z or vz measurement in case of nav_state DESCEND
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2024-10-25 14:06:00 +02:00
Silvan Fuhrer c342f9baf7 Commander: remove mode_req_local_alt requirement from DESCEND
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2024-10-25 14:06:00 +02:00
Matthias Grob 37190d4928 navigator: refactor naming of break instead of brake functions 2024-10-25 13:56:20 +02:00
Matthias Grob b8a602414d navigator land: don't project VTOL braking waypoint without global position 2024-10-25 13:56:20 +02:00
Silvan Fuhrer b6eb8dbfd9 Navigator: land: set lat/lon fields of triplet to NAN if global position is not valid
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2024-10-25 13:56:20 +02:00
Silvan Fuhrer 3b0dac6840 RTL: fix RTL time estimation (#23807)
* RTL Direct: fix rlt time prediction in final lanidng phase

It was previously checking if RTL was already running through
active(), which though actually is coming from the mission mode
that rtl_direct inherits from.

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

* RTL Direct: remove unnecessary active() check

As the method setRtlPosition() is anyway not called when RTL is active,
plus it checks the wrong thing, as it is the active() method from
the Mission mode.

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

* RTL Direct: remove unnecessary land_detector_sub.update()

It is already getting updated just before the .get()

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

* RTL time estiate: do not distinguish land from sink for MC

To avoid rtl time prediction jump when entering LAND phase due
to no correct handling of loiter altitude (LAND phase doesn't
have to start only when lower then RTL_DESCND_ALT).

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

* Revert "RTL Direct: remove unnecessary active() check"

This reverts commit d5165ba902e65839e792cc13197761c7f77748f9.

* Revert "RTL Direct: fix rlt time prediction in final lanidng phase"

This reverts commit 5af7c928fbf86d560dcd35dd9aea3e38f1e4c735.

* RTL: Make sure to call the initialilze function of the Navigator RTL modes

* RTL: use the navigator_mode run function instead of the on_xxx function directly

* RTL: Make sure that for vtol the right vehicle type is used for each RTL state

* RTL: move to loiter distance estimate should substract the loiter radius for fixed wing

* RTL: time prediction: do not assume VTOL is in FW at start of RTL

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

* RTL: time estimation: fix is_in_climbing_submode

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

* RTL: time estimation: subtract loiter radius from distance in rtl_direct_mission_land

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

* RTL direct: poll important topics also on_inactive such that time estimate is correct

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

* navigator rtl: fix setter spacing

* navigator rtl: check pointer before dereferencing

* RTL: only subract loiter radius when in FW

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

---------

Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
Co-authored-by: Konrad <konrad@auterion.com>
Co-authored-by: Matthias Grob <maetugr@gmail.com>
2024-10-24 17:22:19 +02:00
Julian Oes 84bb6d1730 boards: add Septentrio GNSS drivers to 6XRT 2024-10-23 11:05:49 -04:00
Julian Oes 2e6356bb9f boards: add Sepentrio GNSS drivers to 6C and 6X 2024-10-23 11:05:49 -04:00
Marco Hauswirth 0c451552c7 EKF2: add validity flags to global pos message (#23787)
Co-authored-by: Mathieu Bresciani <brescianimathieu@gmail.com>
2024-10-23 10:19:04 +02:00
Hamish Willee 808153b049 COM_THROW_SPEED - arm or start motors clarification (#23822) 2024-10-23 13:13:56 +11:00
Julian Oes 4d4c5ef7f3 boards: change board ID of KakuteH7 mini (#23832)
* boards: change board ID of KakuteH7 mini

Holybro would like to consolidate the board ID to what is used in
ArduPilot.

* boards: update KakuteH7mini bootloader

This is due to the board ID change.
2024-10-22 09:22:33 +13:00
Julian Oes efbd01c3c2 Add IMU compatible for KakuteH7Mini (#23831)
Co-authored-by: jamming <jianbing.pan@holybro.com>
2024-10-22 09:22:16 +13:00
Jacob Dahl 965d5b3b95 dexi: parameters for airframe file (#23780)
* added missing parameters for dexi airframe

* dexi: EKF2_HGT_REF and MC_YAWRATE_MAX
2024-10-18 11:42:05 -06:00
Alexander Lerach 3b1d7e20da Updated NuttX ref to include littlefs fix (#23828) 2024-10-18 17:07:02 +02:00
Daniel Agar 371a99c322 drivers/uavcan: subtree merge last working libuavcan (preserving history) (#23819)
- fully absorb the libuavcan submodule (renamed libdronecan to deconflict) up to our last good working commit and preserve all history (upstream libuavcan was broken and then marked deprecated)
 - fixes https://github.com/PX4/PX4-Autopilot/issues/23727
 - this puts us in a much better position to be able to evolve the library going forward ow that we have full control in tree
2024-10-17 16:20:19 -04:00
Vincent Poon e2e435af7c kakuteh7: enable EKF2 external vision
to make it consistent with kakuteh7v2/mini 
https://github.com/PX4/PX4-Autopilot/pull/23803
2024-10-17 10:51:46 +02:00
Julian Oes f55c3b890b Tools: improve uploader output in scripts
When the px_uploader.py is used scripted, so without an interactive
shell, the progress bar doesn't update. Therefore, I suggest to print a
new line instead of a carriage return for the non-interactive shell
case.
2024-10-17 13:53:38 +13:00
Hamish Willee b390d5876a AUTOPILOT.capabilities includes gimbal manager protocol bit (#23692)
* AUTOPILOT.capabilities includes gimbal manager protocol bit

Sets MAV_PROTOCOL_CAPABILITY_COMPONENT_IMPLEMENTS_GIMBAL_MANAGER bit in AUTOPILOT.capabilities

* mavlink: update submodule

* mavlink: only set gimbal flag if gimbal param set

We should probably only set the flag if the gimbal manager is actually
set up using the MNT_MODE_IN parameter.

* mavlink: make param optional

If the gimbal module is not built in we don't have the MNT_MODE_IN
param, so we need to deal with that.

* gazebo-classic: update submodule

---------

Co-authored-by: Julian Oes <julian@oes.ch>
2024-10-17 08:41:38 +11:00
Daniel Agar e59cc9afeb drivers/uavcan: subtree merge last working libuavcan (preserving history)
- upstream libuavcan was broken and then marked deprecated, this fully absorbs the submodule (renamed libdronecan to deconflict) up to our last good working commit and all commit history is kept
 - fixes https://github.com/PX4/PX4-Autopilot/issues/23727 (regression introduced in #23113)
 - this puts us in a much better position to evolve the library as needed now that we have full control
2024-10-16 13:31:17 -04:00
RomanBapst a0e6f9cd70 commander: try to fix arm authorization spamming
Signed-off-by: RomanBapst <bapstroman@gmail.com>
2024-10-14 14:18:00 +03:00
Julian Oes e3dd050c91 bootloader: robustify uploader detection
The bootloader can often get stuck parsing random MAVLink traffic,
thinking it had seen a GET_SYNC.

Therefore, this commits adds a two step check which requires a GET_SYNC
followed by a GET_DEVICE to make sure it's really an uploader script
talking to it, and not just random data.
2024-10-14 06:35:55 -04:00
Igor Mišić b9942ad7e0 lib/mixer_module: remove unused param MOT_SLEW_MAX 2024-10-14 10:03:30 +02:00
Alexander Lerach dbba9adb14 lib/rc/ghst: Added differentiation between GHST and CRSF (#23805) 2024-10-11 16:17:54 -04:00
Julian Oes 9031f44eba kakuteh7v2/mini: enable EKF2 external vision
We can enable it given there is flash space available.
2024-10-11 13:41:59 -04:00
vertiq-luca 8b032d58d8 actuators/vertiq_io: module.yaml switched bit: values to 0-30 instead of starting at 32 2024-10-11 13:41:29 -04:00
Julian Oes fd2b3aeec8 fmu-v6x: disable external baro ms5611 (#23650)
Otherwise, this will conflict with the MS5525DSO airspeed sensor.
2024-10-11 11:04:15 +13:00
Julian Oes 01888a3085 mavlink: fix SET_MESSAGE_INTERVAL parsing (#23796)
This fixes the SITL tests that fail in CI because we catch NAN as non
zero after cast to int. To fix this I've added the check whether they
are finite at all.

The checks for param5 and param6 would be a bit trickier because they
can be int or float, so I have omitted them for now.
2024-10-11 09:03:22 +13:00
Julian Oes 9557a2da45 CI: fix Python checks (#23801)
Now that ubuntu-latest has been pushed to Ubuntu 24.04, we need to fix
up the pip install.

While at it, we might as well pin to the ubuntu 24.04 version, so we
don't have this happen to use out of the blue again.
2024-10-11 09:01:51 +13:00
Silvan Fuhrer 34f65682ad Commander: remove -local- from failsafe string to make it simpler to understand
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2024-10-10 10:28:59 +02:00
Silvan Fuhrer 9cb12d8e8e HealthAndArmingChecks: improve messaging for position estimate failure
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2024-10-10 10:28:59 +02:00
Hamish Willee da8827883f Use target camera in image capture start/stop messages (#23115)
* Use target camera in image capture start/stop messages

* Add support for MAV_CMD_SET_CAMERA_SOURCE

* Add target ID for NAV_CMD_SET_CAMERA_MODE

* Run make format
2024-10-09 21:10:08 +13:00
Hamish Willee 66b9e60a49 MAV_CMD_SET_MESSAGE_INTERVAL reject non-zero values for unused params (#23643)
* MAV_CMD_SET_MESSAGE_INTERVAL reject non-zero values for unused params

* Remove data rate

* Replace rounding with addition of 0.5/0.5f
2024-10-09 21:08:49 +13:00
Matthias Grob 854086013c SITL parameters: use low battery actions including RTL
I'm not sure why COM_LOW_BAT_ACT option 2 "Land mode"
was chosen I'd like to also test RTL when I lower the minimum battery percentage in simulation.
2024-10-08 18:49:23 +02:00
Matthias Grob 4a08ebafbc failsafe: prevent immediate low battery failsafe for existing low battery state
This happens when BAT_CRIT_THR allows arming with a critical battery level. With this change it still fails the checks but only warns instead of doing the failsafe action because that would immediately land the vehicle before it has taken off.
2024-10-08 18:49:23 +02:00
Matthias Grob 7941310afd batteryCheck: allow COM_ARM_BAT_MIN to be set lower than BAT_CRIT_THR
Which still allows to arm the vehicle even if it already has a critical battery level.
2024-10-08 18:49:23 +02:00
Matthias Grob a5b17f14b0 batteryCheck: refactor to consistent parameter variable naming 2024-10-08 18:49:23 +02:00
Konrad daf604b361 mavlink_mission: handle concurrent mission count messages 2024-10-08 15:34:51 +02:00
Konrad 7ec4c1419c mavlink_mission: only accept a mission request list on an ongoing transfer, when it is the same partner 2024-10-08 15:34:51 +02:00
Konrad b51ad07ed0 mavlink_mission: do not send the mission count if a new mission is detected since a receiver can now check this by changing mission ids in the MISSION_CURRENT stream 2024-10-08 15:34:51 +02:00
Konrad 1c62dda057 mavlink_mission: make sure send mission item error ack is send to the right sysid/compid 2024-10-08 15:34:51 +02:00
Konrad b1d52e20c6 mavlink_mission: guard incoming misison item to be from the current transfer partner 2024-10-08 15:34:51 +02:00
DanielH ee19691d95 fix mission sysid for mission_ack 2024-10-08 15:34:51 +02:00
Silvan Fuhrer 0d31226b1c AirspeedSelector: enable sensor checks right after catapult launch
Airspeed sensor failures are crucial to catch early during catapult/hand launches,
as otherwise the large airspeed error can lead to the vehicle diving. Thus the
_in_takeoff_situation flag, which tells the validator when to enable the checks,
is already set to false when !landed and launched.
For runway takeoffs the logic in unchanged.

Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2024-10-08 13:16:17 +02:00
Alexander Lerach 936eb89edb logger: fixed watchdog not logging, increased cycle trigger (#23769) 2024-10-08 09:53:55 +02:00
Matthias Grob fd04ece6d4 geo: remove dependency on drv_hrt time driver 2024-10-07 14:24:18 +02:00
Daniel Agar f971c0e617 ekf2: reduce bad acc probation time 10s->3s 2024-10-07 10:37:33 +02:00
Daniel Agar 9ddac762e3 ekf2: stricter GNSS vel rejected innovation override
- in the special case of bad vertical acceleration detected
   (bad_acc_vertical) only allow overriding rejected GNSS 3D velocity
   if horizontal innovations are accepted
2024-10-07 10:36:09 +02:00
Daniel Agar 9238656a33 ekf2: configurable velocity state constraint (EKF2_VEL_LIM)
- replace hardcoded 1000 m/s velocity state constraint with new EKF2_VEL_LIM parameter (default 100 m/s)
 - new velocity limit also used for GPS checks and external vision velocity
2024-10-07 10:35:48 +02:00
Alexander Lerach 4215e20120 modules/time_persistor: new time persistor module to save time to persistent storage (#23760) 2024-10-04 15:44:49 -04:00
Ramon Roche 652bb82603 ci: Upload Artifacts to S3
- replaces metadata and deploy workflows
- move ci scripts under Tools/ci
2024-10-04 12:38:47 -04:00
Ramon Roche 8ae83a8197 ci: build all and deploy releases from tags
When you push a version tag (v1.15.0), this workflow will automatically
create a github release (as draft) and upload all the built artifacts
(*.px4 files).

Additionally, you can now also trigger this step manually using the
github actions view URL

https://github.com/PX4/PX4-Autopilot/actions/workflows/build_all_targets.yml
2024-10-04 12:38:47 -04:00
Marco Hauswirth 7d0e93b779 ekf2: always publish global position when origin has been set 2024-10-04 11:41:20 -04:00
Daniel Agar ad28c5893b flight_mode_manager: invalidate dist to bottom/ground on terrain reset
- this allows the terrain hold to simply reset on the next valid update
   rather than trying to adjust the setpoints
2024-10-04 11:28:03 -04:00
Daniel Agar 34ee097f02 ekf2: tighten terrain validity requirements
- require valid fusion from a range finder or optical flow before
   considering terrain valid again
2024-10-04 10:31:20 +02:00
PX4 BuildBot 5b85859bfe Update submodule libevents to latest Wed Oct 2 12:39:22 UTC 2024
- libevents in PX4/Firmware (c4ab09d088798a97b80f2cb834b2345e26d485ea): https://github.com/mavlink/libevents/commit/9474657606d13301d426e044450c4f84de2221be
    - libevents current upstream: https://github.com/mavlink/libevents/commit/7c1720749dfe555ec2e71d5f9f753e6ac1244e1c
    - Changes: https://github.com/mavlink/libevents/compare/9474657606d13301d426e044450c4f84de2221be...7c1720749dfe555ec2e71d5f9f753e6ac1244e1c

    7c17207 2024-08-21 Beat Küng - remove nlohmann json submodule and add header directly instead
ce60064 2024-08-16 Jonas Vautherin - Fix cmake_minimum_required
2024-10-02 15:09:53 -04:00
PX4 BuildBot 01445feacc update all px4board kconfig 2024-10-02 15:09:29 -04:00
PX4 BuildBot 51702efe94 boards: update all NuttX defconfigs 2024-10-02 15:08:38 -04:00
PX4 BuildBot 98e2aaf5f0 Update submodule iq-module-communication-cpp to latest Wed Oct 2 12:39:13 UTC 2024
- iq-module-communication-cpp in PX4/Firmware (6c9c62f70c4c1b8e5b9703efc96919856465e65e): https://github.com/PX4/iq-module-communication-cpp/commit/a9b700d50bdd06a837c74750ac3c4760937333df
    - iq-module-communication-cpp current upstream: https://github.com/PX4/iq-module-communication-cpp/commit/c488af4e8807de80739aa48efd2ea51614dd8195
    - Changes: https://github.com/PX4/iq-module-communication-cpp/compare/a9b700d50bdd06a837c74750ac3c4760937333df...c488af4e8807de80739aa48efd2ea51614dd8195

    c488af4 2024-08-13 Ben Quan - Merged in development (pull request #22)
0e9f7cd 2024-08-06 Fred Kummer - Merged in feature/add-led-support (pull request #21)
acf5be0 2024-08-05 Fred Kummer - Fix indent
c5ef8d9 2024-08-05 Fred Kummer - Fix green blue order
64d0654 2024-08-05 Fred Kummer - Fix indentation
833cef7 2024-08-05 Fred Kummer - Add led support headers
2024-10-02 15:08:20 -04:00
Daniel Agar e08dc400a2 Jenkinsfile-compile remove non-existant zeroone_x6_rover target 2024-10-02 12:38:54 -04:00
bresch 6119b08ef4 mpc: reset integrators when controllers are not used
Starting with a non-zero integrator could appear as a strong disturbance
when engaging position mode.
2024-10-02 10:47:25 -04:00
Daniel Agar 19441a12da fix Jenkinsfile-compile missing comma and sort list 2024-10-01 13:12:17 -04:00
bresch dbf51da99e ekf2: rework amsl to ellipsoid altitude conversion 2024-10-01 10:40:18 -04:00
bresch 5bfa6b3359 ekf2: remove redundant ned_origin_initialised flag 2024-10-01 10:37:20 -04:00
Marco Hauswirth fe40ccd193 EKF2: publish wind after external wind init (#23747)
* publish wind after external wind init

* move ext-wind-init to estimator-interface

* Update src/modules/ekf2/EKF/estimator_interface.h

Co-authored-by: Mathieu Bresciani <brescianimathieu@gmail.com>

* Update src/modules/ekf2/EKF/estimator_interface.h

Co-authored-by: Mathieu Bresciani <brescianimathieu@gmail.com>

---------

Co-authored-by: Mathieu Bresciani <brescianimathieu@gmail.com>
2024-10-01 14:33:30 +02:00
Julian Oes 8aec2d7c9f GPS: add velocity fields to Unicore
It looks like vertical velocity as well as velocity accuracy are not
available using NMEA, so we extract all velocities from the Unicore
ACRICA message instead.
2024-10-01 13:47:06 +13:00
Jacob Dahl 4e359f9552 set file descriptor to -1 after close() (#23751) 2024-09-30 13:22:46 -06:00
Mathieu Bresciani 28d960fc21 fix VehicleCommand.msg syntax 2024-09-30 13:42:50 -04:00
alexklimaj 602042dd5c failure detector use per index esc current 2024-09-30 10:11:34 +02:00
Daniel Agar 332b7bec27 commander: ignore REQUEST_CAMERA_INFORMATION
- add answer command logging
2024-09-27 10:33:37 -07:00
Silvan Fuhrer 172948c5eb FailsafeFlags: add comment where battery_warning is defined
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2024-09-27 14:25:27 +02:00
Silvan Fuhrer 8fdf0931e5 Commander framework: only warn and do not re-start RTL if already in RTL
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2024-09-27 14:25:27 +02:00
alexklimaj 73c4ff302e boards: arkv6x remove CONFIG_COMMON_OPTICAL_FLOW 2024-09-26 14:13:20 -04:00
alexklimaj a1944e26ec boards: arkv6x add back sd_bench 2024-09-26 14:13:20 -04:00
tompsontan 63b44eac06 boards: add new board X-MAV AP-H743v2 2024-09-26 14:12:35 -04:00
Alexander Lerach 368bfc5643 boards/px4: v5x/v6x always start board_adc 2024-09-26 13:55:13 -04:00
Alexander Lerach 224aef142c Retry logic in uxrce_dds_client startup (#23723)
* Added retries if uxrce_dds_client fails during setup

* Break timesync endless loop in case of agent reset

* ORB unsubscribe, to avoid too many open fails with multiple reconnects & format

* Added review feedback
2024-09-26 17:43:49 +02:00
Jacob Dahl ba75b9c35e platforms/nuttx: Serial change fsync to tcdrain
Calling serial::write() in quick succession was blowing away the previous buffer, fsync does not guarantee that data is transmitted on serial lines. On the other hand tcdrain waits until the output buffer is empty.
2024-09-25 12:18:05 -04:00
Liu1 b2c8f0539e boards: add new cuav 7-nano 2024-09-25 11:47:35 -04:00
ZeroOne-Aero 1850cf5715 boards: new board support ZeroOne x6 2024-09-25 10:55:39 -04:00
Daniele Pettenuzzo 35239c48a2 Board: Fix fmu rc_input on v5x and v6x (#23175)
Co-authored-by: Niklas Hauser <niklas@auterion.com>
2024-09-25 15:57:46 +02:00
chfriedrich98 0e65679c9e Mecanum rover: add dedicated module for mecanum rovers (#23708) 2024-09-25 09:35:41 +02:00
Silvan Fuhrer 43509b5cff Update README.md - add Christian as rover maintainer (#23719) 2024-09-24 18:09:30 +02:00
vertiq-jordan 06dfc4b782 drivers/actuators: new vertiq_io driver (#22892)
* brought in the Vertiq Cpp API as a submodule. updated the serial rx handling so that we can parse out IQUART data packets

---------

Co-authored-by: Luca Scheuer <scheuer.luca@gmail.com>
2024-09-24 11:44:35 -04:00
Ramon Roche 5ffe9c6de4 drivers/gnss/septentrio: disable default assignment of GPS1 2024-09-24 11:24:34 -04:00
bresch 35efe44a6b ekf2: fusion always succeeds, do not return boolean 2024-09-24 10:48:14 -04:00
bresch 23f343aa3a ekf2-rng: consider height covariance for terrain reset to range
Range does not provide a direct terrain observation but a measurement
relative to the height state. Correlation between height and terrain
must be set properly.
2024-09-24 10:18:25 -04:00
Nicolas MARTIN d269ddfb49 sensors/vehicle_air_data: fix air data publication rate (#23717)
Co-authored-by: Nicolas Martin <n.martin@elistair.com>
2024-09-24 09:49:47 -04:00
Marco Hauswirth 454ded1b25 EKF2: ev-vel refactoring (#23577) 2024-09-24 14:09:11 +02:00
muramura 21a2350eca version: Change this IF statement to a SWITCH statement 2024-09-24 10:27:12 +02:00
Matthias Grob f60bb2c6bc rtl_direct: skip loiter altitude items for multicopter without RTL land delay (#23689)
This was already done before the refactor and was assumed to not be necessary.
The problem is that these mission items result in a strang looking vertical slow down directly followed
by an acceleration during the landing phase.
2024-09-23 18:33:03 +02:00
Ramon Roche e0f8642d26 ci: try upload-artifacts@v3 2024-09-23 12:21:29 -04:00
Marco Hauswirth 8afd267509 move more ekf function implementations to cpp 2024-09-23 12:18:41 -04:00
Marco Hauswirth e3f138862a move implementation of updateAidSrcStatus to cpp file, saves flash 2024-09-23 12:18:41 -04:00
Andrew Brahim b41811b145 SF45 fixes to restart the state machine if sensor does not init correctly (#23565)
* fixes to restart the state machine if sensor does not init correctly

Signed-off-by: dirksavage88 <dirksavage88@gmail.com>

* fixes

Signed-off-by: dirksavage88 <dirksavage88@gmail.com>

* increase fail count

Signed-off-by: dirksavage88 <dirksavage88@gmail.com>

* remove extra flush, switch from warn to debug, add enum states for sensor bring-up

Signed-off-by: dirksavage88 <dirksavage88@gmail.com>

* remove dead code, decrease restart fail count metric, break out of loop with consec errors if over the fail count and not init

Signed-off-by: dirksavage88 <dirksavage88@gmail.com>

---------

Signed-off-by: dirksavage88 <dirksavage88@gmail.com>
2024-09-23 16:35:35 +02:00
bresch 15ddd94349 ekf2: move implementation to ekf_helper to reduce flash usage
saves about 4.8kB of flash on FMUv5
2024-09-23 10:27:42 -04:00
Konrad c20c1f09a6 RTL_DIRECT: explicitely set force heading in loiter hold if needed 2024-09-23 11:02:02 +02:00
Konrad 02e50bb5dc rtl_direct: loiter hold should track altitude as best effort but not enforce it 2024-09-23 11:02:02 +02:00
Silvan Fuhrer cacbfcecd8 aiframes: remove setting of CBRK_IO_SAFETY to enabeld, as that's already the param default (#23702)
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2024-09-23 09:10:02 +02:00
Alexander Lerach dff775a0a7 Implemented AUAV absolute/differential pressure sensor support (#23656)
* Added AUAV absolute pressure sensing

* Moved func to abstract base class

* Probe and params

* Fixed arg parsing and added auto start

* refactorings

* Added sample perf

* Fixed CI findings

* Simplified rc.sensors condition
2024-09-20 16:40:45 +02:00
Stefano Colli b1c2cf7c88 GZ Advanced Plane: improved rate/TECS tuning (#23700)
* GZ_Advanced_Plane: Improve rate tuning

* GZ_Advanced_Plane: Remove unnecessary default params

* GZ_Advanced_Plane: Improve tecs tuning
2024-09-20 16:15:57 +02:00
caijie 11d370823b NuttX with mtd:ramtron MB85RS256B address length is 2 backport 2024-09-20 06:16:34 -04:00
Alvaro Fernandez 2ecffff700 fw_tecs: Support tighter altitude tracking during low-height flight (#23519)
* fw_tecs: Support tighter altitude tracking during low-height flight. Added FW_T_THR_LOW_HGT defining low-height flight threshold

* tecs: Applied smoothed-out altitude TC transition to landings

* fw_tecs: modified tighter altitude control for low-height implementation

* addressed PR comments

* addressed PR comments

---------

Co-authored-by: Silvan Fuhrer <silvan@auterion.com>
2024-09-19 16:24:53 +03:00
BazookaJoe1900 4d83badba1 fix files tags on the header comments (#23564) 2024-09-19 09:25:18 +03:00
Connor Walker d01a3d8f04 Fix duplicate entry in gz_worlds list (#23691) 2024-09-18 16:36:48 -08:00
Daniel Agar e4dd3f2871 boards/px4/fmu-v5: stackcheck remove FW modules (flash overflow) 2024-09-18 11:34:48 -04:00
Matthias Grob 555b2e6abc BatteryStatus: Clarify "incompatible voltage" error message 2024-09-18 17:18:02 +02:00
Claudio Chies ab41927bbd SIM: GZ: Added mono_cam_down and aruco world (#23687) 2024-09-18 15:16:27 +02:00
Claudio Chies 5d2e7c8748 Misc: Matrix: Added Addition and Subtraction to Slices (#23679)
* Added Addition and Subtraction to Slices

* MatrixSliceTest: refactor Addition/Substraction checks

* Slice: replace operations returning a Matrix with calling the existing Matrix function

---------

Co-authored-by: Matthias Grob <maetugr@gmail.com>
2024-09-18 11:17:37 +02:00
Marco Hauswirth 4a99a51fb1 update upload-artifact v2->v4 2024-09-17 10:55:00 -07:00
chfriedrich98 8aece9bff2 differential: fix CI issue 2024-09-17 09:34:51 -07:00
chfriedrich98 2fd4150b38 differential: Add stabilized and position mode (#23669)
* differential: add position and stabilized mode

* differential: add hardcoded stick input deadzones
2024-09-16 12:09:51 +02:00
chfriedrich98 81747f35bb rover: add descend navigation state to land detection 2024-09-16 09:36:38 +02:00
Silvan Fuhrer 1c9c5e51c2 boards: cuav x7pro: remove build of ROVER and Q_ATTITUDE_ESTIMATOR to save flash
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2024-09-16 09:11:23 +02:00
Konrad 82a7d0410c DistanceSensorModeChangeRequest: renaming of variable 2024-09-16 09:11:23 +02:00
Konrad aab2390e51 navigator: publish distance sensor mode change request when in RTL landing phase or during mission landing 2024-09-16 09:11:23 +02:00
Konrad 1755b8304e RTL direct: Make sure the _rtl_state captures the current status and not the next one 2024-09-16 09:11:23 +02:00
Konrad e6f07bde2a lightware_laser: add option to listen to system to enable/disable distance sensor 2024-09-16 09:11:23 +02:00
Silvan Fuhrer 9ca0630376 airframes: SIH_tailsitter: add SENS_DPRES_OFF to bypass airspeed cal
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2024-09-13 15:53:52 +03:00
RomanBapst 11440cfb45 added some default parameteter that allow the transition to complete
Signed-off-by: RomanBapst <bapstroman@gmail.com>
2024-09-13 15:53:52 +03:00
RomanBapst 878c8bfcce SIH: fix airspeed for tailsitter
Signed-off-by: RomanBapst <bapstroman@gmail.com>
2024-09-13 15:53:52 +03:00
Konrad 4713a6737e TECS: ramp up fast descend over 2_s to ramp down the throttle command 2024-09-13 14:04:39 +02:00
Konrad 585c92796d mission_base: do not make terrain avoidance check when mission is not run anymore 2024-09-13 13:59:24 +02:00
Claudio Chies 4ba4b340cc Reduce the orbit jerk by using a slew rate 2024-09-13 10:28:42 +02:00
Marco Hauswirth 22c2878cf8 send acknowledgement after receiving vehicle wind cmd 2024-09-12 09:34:08 +02:00
chfriedrich98 741ea6b707 differential: add individual parameters for speed and yaw rate feedforward 2024-09-11 13:57:27 +02:00
chfriedrich98 5d8a107925 differential: fix closed loop control
removed thresholds for closed loop setpoints and added minimum thresholds for yaw rate and speed measurements instead to avoid moving due to measurement noise
2024-09-11 13:57:27 +02:00
Roman Bapst c94c1ce4d2 Navigator: Support straight line mission landings (#23576)
* introduced altitude acceptance radius in position setpoint for fixed
wing guidance
- allows navigator to explicitly set the altitude acceptance radius
- needed for staright line landing support

* added ignore_alt_acceptance to position setpoint message to allow guidance
logic to ignore altitude error on waypoint
- can be useful to prevent loitering at a waypoint within a mission landing sequence

* only set altitude acceptance radius to infinity for a waypoint inside a mission landing
for fixed wing vehicles

* navigator: return altitude acceptance radius from triplet if it's valid

* FixedWingPositionControl: check if alt acceptance radius provided in position setpoint
is larger 0

---------

Signed-off-by: RomanBapst <bapstroman@gmail.com>
Co-authored-by: Alvaro Fernandez <alvaro@auterion.com>
2024-09-10 17:44:24 +02:00
Mathieu Bresciani 03aec2e188 HeadingSmoothing: fix angle wrapping and add unit tests
Co-authored-by: Matthias Grob <maetugr@gmail.com>
2024-09-10 15:06:19 +02:00
jmackay2 a5729da4e9 Simplify gz bridge CMakeLists and add GZ Ionic (#23657)
Co-authored-by: jmackay2 <jmackay2@gmail.com>
2024-09-10 11:53:00 +02:00
bresch 15e9c65a8f dist-sensor: reduce enum names 2024-09-09 15:40:40 +02:00
bresch 8bca467c15 dist-sensor: use enum instead of integer 2024-09-09 15:40:40 +02:00
chfriedrich98 bb0210ecd7 rover: add rtl as a landed condition for rovers (#23646)
The RTL sequence from the navigator requires the vehicle to land. This is now handled for rovers by setting its state to landed if it is within the acceptance radius of the home position when in return mode.
2024-09-06 17:21:49 +02:00
Hubert 67ee4817ae Makefile add micoair h743 bootloader 2024-09-06 11:14:30 -04:00
Hubert 232f699a7f cmake-variants.yaml add micoair h743 2024-09-06 11:14:30 -04:00
Hubert c2bd3900be Jenkins: compile add micoair h743 2024-09-06 11:14:30 -04:00
Marco Hauswirth 44967bdaab ekf2: uncorrelate position covariance after velocity reset (#23644) 2024-09-06 08:51:15 -04:00
RomanBapst 1337fca4d0 vtol backtransition: removed downscaling of fw controls during the backtransition
Signed-off-by: RomanBapst <bapstroman@gmail.com>
2024-09-06 13:55:48 +03:00
Alexander Lerach 3d36c8519d drivers/power_monitor: Implement temperature sensor support for INA228 / INA238 2024-09-05 23:09:01 -04:00
Matthias Grob f98eb067be logger params: clarify AUX1 logging trigger 2024-09-05 18:06:29 +02:00
Matthias Grob e4d25df58a Consistently use "stick gesture" for "rc stick gesture" 2024-09-05 18:06:29 +02:00
Silvan Fuhrer 8eaf93468e Commander: feedback string for arming/disarming: make clear when from gesture
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2024-09-05 18:06:29 +02:00
Silvan Fuhrer d967cdbb48 Manual control: rename SOURCE_RC_STICK_GESTURE to SOURCE_MANUAL_CONTROL_GESTURE
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2024-09-05 18:06:29 +02:00
Silvan Fuhrer 556a302a09 Logger: replace RC keyword by 'manual control'
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2024-09-05 18:06:29 +02:00
Silvan Fuhrer f7c35291ee Rover Differential: remove RC keyword from params
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2024-09-05 18:06:29 +02:00
Silvan Fuhrer 81cf6a736d Commander: add VEHICLE_CMD_EXTERNAL_POSITION_ESTIMATE to list of externaly handled commands (#23642)
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2024-09-05 11:20:39 +02:00
Silvan Fuhrer 6fa6360aef Commander: always allow to switch to LAND mode (#23580)
Special handling for LAND mode: always allow to switch into it such that if used
as emergency mode it is always available. When triggering it the user generally wants
the vehicle to descend immediately, and if that means to switch to DESCEND it is fine.

Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2024-09-03 18:10:37 +02:00
Konrad 80d4fad624 DistanceSensorCheck: do not raise a distance sensor failure if the SFXX_MODE is set to 2 and we are in a VTOL FX flight phase 2024-09-03 15:53:09 +02:00
chfriedrich98 a9cdb36d7c differential: reset integrators when disarmed (#23637) 2024-09-03 09:31:39 +02:00
Julian Oes 8f6ce4edbf mavlink/lib: move open_drone_id helpers to mavlink
I could not extract the open_drone_id helpers to a separate lib because
it would require the mavlink headers while the mavlink library would
also depend on it, so it ended up being a circular dependency.

Instead, I'm now just using the headers from within the mavlink module
as well as from the uavcan driver.
2024-09-02 16:20:10 +12:00
Julian Oes b7c5ba1752 boards: make flash space for remote ID over DroneCAN 2024-09-02 16:20:10 +12:00
Julian Oes cd63cfed3a remoteid: implement System as sent from GCS
This will send the System message if it is already being sent by a ground
station. Otherwise, it will assemble the message itself using the
takeoff/home location.
2024-09-02 16:20:10 +12:00
Julian Oes 7d1d398984 remoteid: add SelfID message 2024-09-02 16:20:10 +12:00
Julian Oes 04ea4f9b3a uavcan: add OpenDroneID ArmStatus, operator ID
In order to have operator ID be sent by QGC, we need to forward
ArmStatus from the remote ID module (here on DroneCAN) to MAVLink.
2024-09-02 16:20:10 +12:00
Julian Oes d999258171 uavcan: implement OpenDroneID System 2024-09-02 16:20:10 +12:00
Julian Oes de00c23e19 uavcan: implement OpenDroneID Location 2024-09-02 16:20:10 +12:00
Julian Oes cf19764d75 uavcan: implement OpenDroneID BasicID
Signed-off-by: Julian Oes <julian@oes.ch>
2024-09-02 16:20:10 +12:00
Julian Oes 87a63e75be mavlink: extract OpenDroneID function to lib
This extracts the function mapping from MAV_TYPE to MAV_ODID_UA_TYPE to
the library, so that it can be re-used later by the remote ID
implementation over DroneCAN.

Signed-off-by: Julian Oes <julian@oes.ch>
2024-09-02 16:20:10 +12:00
Julian Oes 4c63e9e4f9 libuavcan: update DroneCAN submodule
Signed-off-by: Julian Oes <julian@oes.ch>
2024-09-02 16:20:10 +12:00
Marco Hauswirth 7dcea6b2e4 EKF2: range measurement rejection in rain/fog (#23579) 2024-08-30 17:25:56 +02:00
Benjamin Perseghetti 787fe9590d Fix typo where 22.04 still says Gz (Garden) (#23632)
Signed-off-by: Benjamin Perseghetti <bperseghetti@rudislabs.com>
2024-08-29 20:42:56 +02:00
Daniel Agar 5b0014cb06 ekf2: remove legacy accel z bias checks (#23341)
Co-authored-by: Mathieu Bresciani <brescianimathieu@gmail.com>
2024-08-29 11:51:27 -04:00
chfriedrich98 f8188f0981 differential: update module (#23629)
Improve the slow down effect and add support for speed change in mission mode.
Seperate code related to turning setpoints into motor commands into its own folder and refactor code.
2024-08-29 15:27:08 +02:00
Silvan Fuhrer c86d44f831 Commander: remove 2 decimals from COM_FAIL_ACT_T
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2024-08-29 10:56:04 +02:00
Silvan Fuhrer 6b3e3aa363 Commander: improve param description of COM_POSCTL_NAVL and rename Manual-->Stabilized
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2024-08-29 10:56:04 +02:00
Mathieu Bresciani 2cda0efd84 Commander: extend COM_ARM_WO_GPS to disable warning (#23628) 2024-08-28 17:33:58 +02:00
Jacob Dahl 0f1507c24e [gz] X500 mono_cam_down and aruco world (#23450)
* x500 mono cam down and aruco world

* remove duplicate line
2024-08-28 17:23:39 +02:00
bresch bab256bfe6 ekf2: handle external altitude resets 2024-08-28 11:02:26 +02:00
bresch cd2170deea ekf2-origin: backcompute based on lpos validity 2024-08-28 11:02:26 +02:00
bresch 130fefb1e7 ekf2: initialize origin from corrent position when possible 2024-08-28 11:02:26 +02:00
bresch af752536b9 ekf2: extract setting origin from current lat/lon/alt
This is not only needed when GNSS is available but also for other global
sources of position (e.g.: aux global pos and manual pos updates)
2024-08-28 11:02:26 +02:00
bresch 9169a7c5fc ekf2: split horizontal and vertical origin reset
Allow partial resets (only lat/lon or only altitude)
2024-08-28 11:02:26 +02:00
Daniel Agar f3d58cdf10 ekf2: resetFlowFusion() pass flowSample by const ref 2024-08-27 10:38:17 -04:00
Daniel Agar 6c24413888 ekf2: filter flow vel (used for flow velocity reset)
- individual flow samples can be quite erratic
2024-08-27 10:38:17 -04:00
dagar 5ff4eea870 [AUTO COMMIT] update change indication 2024-08-27 16:16:55 +02:00
Daniel Agar ac48b8b51d ekf2: mag declination fusion always if there is no aiding 2024-08-27 16:16:55 +02:00
Daniel Agar 2a9e205442 ekf2: fuseDeclination respect mag update_all_states
- when both mag_hdg/mag_3d are inactive we should be able to continue
   updating mag without any possible impact on other states
2024-08-27 16:16:55 +02:00
Daniel Agar 9d57a3c02f ekf2: split resetMagCov() and skip mag reset if negligible change 2024-08-27 16:16:55 +02:00
Daniel Agar bbcf741e9e ekf2: make mag control responsible for WMM
- this further untangles mag control (which requires the WMM) from GPS
2024-08-27 16:16:55 +02:00
sbtjagu be4d0d351c ackermann: add speed waypoint support and fix delay detection (#23572) 2024-08-27 13:35:48 +02:00
jmackay2 5fff1ad6d1 Fix spelling of airflow sensor msg comments 2024-08-27 09:23:43 +02:00
Jukka Laitinen f67eb6989d mavlink: Fix ESC_STATUS sending for batches > 1
The indexing was wrong for esc_status sending for ESCs 4->

Signed-off-by: Jukka Laitinen <jukkax@ssrc.tii.ae>
2024-08-26 15:06:55 -04:00
LucaS ca47f6f016 lib/mixer_module: added a constant instance start so that when instance start is changed in actuator yaml files they parameters are able to be used (#23616)
Co-authored-by: Luca Scheuer <luca.scheuer@iq-control.com>
2024-08-26 14:51:09 -04:00
Ramon Roche 16c77be7c0 tests: loosen radius of vtol rtl landing pos check 2024-08-26 14:05:17 -04:00
Daniel Agar a75db1286d logger: automatically limit buffer size to largest available free chunk (NuttX only) 2024-08-26 13:24:39 -04:00
Silvan Fuhrer 8bfd3b0f62 platforms/nuttx/init/stm32f7: rc.board_arch_defaults reduce LOGGER_BUF to 40
To get some breathing space on setups with memory-intensive components (e.g. UAVCAN).

Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2024-08-26 13:13:11 -04:00
bresch 9183c479a5 ekf2: correctly compute vel variance from flow variance
Co-authored-by: Marco Hauswirth <marco.hauswirth@auterion.com>
2024-08-26 11:28:36 -04:00
Claudio Chies 1a4e8a7341 FLOW: PARAM: GCS Parameter readability 2024-08-26 16:09:21 +02:00
SuddenDeath 510d3cfb39 gz: Fix endless wait for gazebo on different worlds (#23613)
Co-authored-by: your-sudden-death <noreply@pm.me>
2024-08-24 17:15:41 +02:00
Daniel Agar ebbb880e92 ekf2: always use corrected accel/gyro for filtered metrics 2024-08-23 17:35:59 -04:00
Daniel Agar 56560726d3 ekf2: sensor simulator fix GPS replay scaling 2024-08-23 14:35:05 -04:00
Daniel Agar d7b165991f cmake: relax git tag requirements
- default to v0.0.0 if tag isn't available
 - src/lib/px_update_git_header.py use same PX4_GIT_TAG as cmake
 - update lingering master branch references to main
2024-08-23 12:05:34 -04:00
Ramon Roche 54f7b58007 Commander: lock down mav sys and comp id
- keeps them as local params at init
- only allow to set at init
2024-08-23 11:19:25 -04:00
bresch 1a0f97ebbd ekf2-fake pos: add valid fake position fusion
This is similar to fake pos but is only used when the ekf has an
external information telling it that the vehicle is not changing
position. This information can then be used to keep a valid local
position even when the vehicle isn't exactly at rest.
2024-08-23 11:17:21 +02:00
bresch 64b0586dad ekf2: return validity based on dead-reckoning time only 2024-08-23 11:17:21 +02:00
David Sidrane cf941b18df Nuttx with stm32h7: STM32H7X5XX selects hardware files backport 2024-08-23 05:12:28 -04:00
jfbblue0922 13c413622b Nuttx with stm32h7: STM32H7X5XX selects hardware files backport 2024-08-23 04:48:20 -04:00
Jaeyoung Lim b1dfe1d731 Update gz version to harmonic 2024-08-22 21:37:00 -04:00
Ramon Roche 00c3017334 ci: add note regarding RunsOn 2024-08-22 12:06:50 -04:00
Ramon Roche 89f29e91de ci: slow down sitl test realtime 2024-08-22 12:06:50 -04:00
Ramon Roche 7f33dcfcfb ci: upgrade sitl mavsdk tests workflow 2024-08-22 12:06:50 -04:00
Jaeyoung Lim d617bf4129 simulation/gz_bridge: Fix build issues with unused variable 2024-08-22 11:48:46 -04:00
Daniel Agar 7250ee1b32 ekf2: organize gyro_bias/accel_bias param yaml 2024-08-22 10:56:16 -04:00
Daniel Agar ebbd2c1825 ekf2: organize aid source parameters 2024-08-22 10:56:16 -04:00
Claudio Chies ee022a70c1 Navigator: Land: Improve it for VTOL by taking breaking distance into account (#23566)
* vtol adjust landing setpoint

* improve comment

Co-authored-by: Silvan Fuhrer <silvan@auterion.com>

---------

Co-authored-by: Silvan Fuhrer <silvan@auterion.com>
2024-08-22 14:10:36 +02:00
Silvan Fuhrer e0bb56b6a7 Commander: Failsafe: set clear condition for action Land like for RTL (#23569)
For many failsafes, it is possible to select RTL and Land as actions.
In this commit I synchronize the clear condition for these two action
options, to always only clear on Disarm or manual mode change.
Reasoning is that for the user RTL and Land is a similar action and
I would thus expect them to be as similar as possible. And I in general
would rather not clear a failsafe state instead of too often clearing it.

Example: GF failsafe with action Land --> even if the drone is marginally
within the GF again, I want it to proceed with the Landing unless
I manually intervene.

Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2024-08-22 14:03:24 +02:00
Silvan Fuhrer 6ef82ada6e Navigator: make sure VTOL transitions in Descend mode are alays triggered (#23578)
It previously didn't catch switches to Descend from a manual mode,
as both modes have navigation_mode_new=nullptr.

Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2024-08-22 14:02:32 +02:00
Konrad 20b6f343a3 mission_base: make sure all mission_items during landing phase have yaw set to NaN 2024-08-22 12:58:44 +02:00
ZeroOne-Aero 02ed1162ed Update pab_manifest.c (#23594)
* Update pab_manifest.c

I have rebased on main and squash my commits into 1.

* Update pab_manifest.c

I have updated pab_manifest.c:
// BASE ID 0x150 ZeroOne Pixhawk Baseboard Alaised to ID 0
{HW_BASE_ID(0x150), base_configuration_0, arraySize(base_configuration_0)}, // ZeroOne Pixhawk Baseboard ver 0x150
2024-08-22 04:02:02 -04:00
jmackay2 b33b0398dd Fix param typo in quadtailsitter airframe (#23588) 2024-08-22 10:30:10 +10:00
Jaeyoung Lim ae16556107 simulation/gz_bridge: follow model in gz GUI (#22808) 2024-08-21 11:41:47 -04:00
Ramon Roche b2f663648e ci: github actions runs-on Dronecode AWS Infra
* ci: try runs-on Dronecode Infra
* ci: comment on how to disable RunsOn
* Update .github/workflows/build_all_targets.yml
2024-08-21 10:56:37 -04:00
KonradRudin 3478765c31 Navigator: MissionFeasibilityCheck: Rework 1st waypoint check (#23568)
* FeasibilityChecker: only warn when first waypoint is too far, but still accept mission as valid

* feasiblityChecker: make distance to first waypoint check against home position instead of current position, so it is more constant during a flight

* Apply suggestions from code review

Co-authored-by: Silvan Fuhrer <silvan@auterion.com>

* feasibilityCheckerTest: update tests to not fail for first waypoint check

* feasibilityChecker: make comment for 1stwaypointcheck event

* Feasibility check unit test: fix comment

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

---------

Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
Co-authored-by: Silvan Fuhrer <silvan@auterion.com>
2024-08-21 09:08:36 +02:00
Jaeyoung Lim f252e20eae Revert "Update GZBridge to be able to use gazebo airspeed. Add quadtailsitter. (#23455)" (#23583)
This reverts commit 7e45f49152.

Co-authored-by: jmackay2 <1.732mackay@gmail.com>
2024-08-20 19:36:08 -04:00
bresch 0931179579 ekf2: extract WMM update logic 2024-08-20 10:32:27 -04:00
Beniamino Pozzan 98eae3cd4c fix: make help on Ubuntu 22.04
Ubuntu 22.04 uses make 4.3 which broke the current `make help` target
Reference:
https://stackoverflow.com/a/26339924

Signed-off-by: Beniamino Pozzan <beniamino.pozzan@gmail.com>
2024-08-19 11:19:31 -04:00
Thomas Stauber f2f4488594 drivers/gps: publish secondary instance satellite_info if main instance is advertised 2024-08-19 11:14:12 -04:00
Niklas Hauser ecfdbd2e60 littlefs: needs more stack when used 2024-08-19 11:05:50 -04:00
David Sidrane c60b1d1a5f board_hw_rev_ver: Support EEPROM-only HW IDs 2024-08-19 11:05:50 -04:00
Niklas Hauser 07734c243f mtd: Initialized the RAMTRON speed with 30MHz 2024-08-19 11:05:50 -04:00
David Sidrane 072892fbef romfs: rcS: support storage on other then SD card 2024-08-19 11:05:50 -04:00
Ramon Roche 746ae25768 ci: replace build workflows (#23550) 2024-08-19 10:41:25 -04:00
Alexis Guijarro 0481c04b2b Nuttx with backport (stm32h7x3x): Add External Power Supply option 2024-08-19 09:22:17 -04:00
Claudio Chies 4d21110cfb Documentation - improved GCS parameter readablity (#23376)
improved GCS parameter description

Co-authored-by: Hamish Willee <hamishwillee@gmail.com>
Co-authored-by: Silvan Fuhrer <silvan@auterion.com>
2024-08-19 13:36:04 +02:00
jmackay2 7e45f49152 Update GZBridge to be able to use gazebo airspeed. Add quadtailsitter. (#23455)
* Update GZBridge to be able to use gazebo airspeed. Add gz quadtailsitter.

* Fix formatting

---------

Co-authored-by: jmackay2 <jmackay2@gmail.com>
2024-08-19 08:54:57 +02:00
Claudio Chies e29a36adb4 Landing horizontal velocity compensation / unsteady landing (#23546)
* initial working

* implemented feedback
2024-08-19 08:01:43 +02:00
Silvan Fuhrer 435e9665b3 RTL: cone: never climb more than to RTL_RETURN_ALT (#23558)
This is to prevent that a large NAV_ACC_RAD leads to very high return altitudes.

Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2024-08-19 07:51:33 +02:00
Vilius ea0ef154d8 Fixes upload.sh for arkv6x (#23561) 2024-08-17 13:59:18 -06:00
bresch ad1d9e1312 failsafe: do not add additional hold delay if failsafe action is hold 2024-08-16 16:26:20 +02:00
bresch ea673b0b5b navigator: check hagl failsafe centrally 2024-08-16 16:26:20 +02:00
Silvan Fuhrer 4f66410d24 ROMFS gazebo iris opt flow: increase SENS_FLOW_MAXHGT to 15m (#23557)
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2024-08-16 15:58:36 +02:00
Silvan Fuhrer 09638552b7 estimatorChecks: disable warning for imminent position failure if that is disabled (#23556)
COM_POS_FS_EPH can be set to -1, in which case the actual failure eph is INFINITY.

Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2024-08-16 13:57:37 +02:00
Silvan Fuhrer 4a3cbecf01 Commander: only add *autopilot disengaged* to failsafe notifactions in special cases
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2024-08-16 11:04:37 +02:00
Daniel Agar f7e6e1354a commander: power check only keep error thresholds 2024-08-15 10:06:56 -04:00
Vilius 2a124fd998 Add Bosch BMM350 magnetometer (#23362)
* Add Bosch BMM350 magnetometer

* BMM350 replace info messages with debug messages

* BMM350 update measurement interval

* BMM350 fix offsets, update based on review

* BMM350 Update default parameters to 50Hz

* Update OTP Word LSB check

* BMM350 fix styles and formatting

* BMM350 update error checks
2024-08-15 01:29:02 -08:00
Ramon Roche af0129dab7 github: update bug report template
Removes unnecessary required fields
2024-08-14 19:56:49 -04:00
Alexis Guijarro c8501cc1d0 boards: Support for 3DR Control Zero H7 OEM Rev G board 2024-08-14 19:52:42 -04:00
bresch 4ed3e9e210 navigator: add failure enum 2024-08-14 11:08:02 +02:00
bresch 25fcb3c913 comander: trigger failsafe when navigator reports failure 2024-08-14 11:08:02 +02:00
bresch 9f69e9ee6c navigator: publish navigator_state
feedback to commander
2024-08-14 11:08:02 +02:00
bresch 1fa878ad88 navigator: add navigation state ID to every mode class 2024-08-14 11:08:02 +02:00
murata,katsutoshi dec550dcb9 navigator: Change IF statement to SWITCH statement (#23534) 2024-08-14 09:40:36 +02:00
Hamish Willee f3a8d05f8c MPC_ACC_DECOUPLE - better description (#23518) 2024-08-14 12:18:14 +10:00
mirusu400 5121358e87 Makefile: Fix error message when cannot find target board
not $(MAKE) help|list_config_targets, we should use $(MAKE) list_config_targets
for the desired results.
2024-08-13 21:34:39 -04:00
murata,katsutoshi a327b14cef navigator: always fully initialize geofence msg 2024-08-13 21:33:36 -04:00
Jukka Laitinen 0459481cb4 icm40609d: Change FIFO count to samples instead of bytes
As the sensor can directly report the amount of samples in the fifo, use it to simplify the logic.

Also combine the fifo empty/fifo overflow checks for interrupt and polling modes.

Signed-off-by: Jukka Laitinen <jukkax@ssrc.tii.ae>
2024-08-13 21:32:28 -04:00
Jukka Laitinen cc4d5bd2a6 icm40609d: Add INTF register definition and disable I2C interface
Disable I2C to make sure that the sensor doesn't switch to that by accident

Signed-off-by: Jukka Laitinen <jukkax@ssrc.tii.ae>
2024-08-13 21:32:28 -04:00
Jukka Laitinen fd062d0085 icm40609d: Clear interrupt status at FIFO reset
If DRDY signal is used, the interrupt status needs to be cleared at FIFO reset
in order to make DRDY go back inactive. Otherwise there won't be a falling edge
interrupt at the next sample.

Signed-off-by: Jukka Laitinen <jukkax@ssrc.tii.ae>
2024-08-13 21:32:28 -04:00
Stefano Colli e2c0e5c88a MissionBase: replay the gimbal and trigger cached items only upon reaching resume waypoint (#23484)
* Fix: replay the mission cached items only upon reaching resume waypoint

* Refactoring
Split camera mode mission items from gimbal ones so to have a finer control over the relative replays

* Chore: fix formatting

---------

Co-authored-by: Silvan Fuhrer <silvan@auterion.com>
2024-08-13 22:20:28 +02:00
bresch aad607e0dd ekf2: send airspeed data to ekf backend regardless of sign
On ground the airspeed can sometimes be slightly negative but the ekf
should still know that airspeed data is flowing regularly
2024-08-13 17:43:45 +02:00
Silvan Fuhrer a0d22a4d21 FW Position Control: make explicit when underspeed detection logic is en-/disabled
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2024-08-13 16:55:26 +02:00
Silvan Fuhrer acc0cd7e8a FW Position Control: disable underspeed handling during auto takeoff
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2024-08-13 16:55:26 +02:00
Silvan Fuhrer afc360d637 FW Position control: do not invalidate airspeed from negative readings
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2024-08-13 16:55:26 +02:00
murata,katsutoshi db8781e531 navigator: Align MAVLINK message level with EVENT message level (#23535) 2024-08-12 19:09:22 +02:00
Jaeyoung Lim e008ca24f1 Remove euler angles from attitude setpoint (#23482)
* Remove euler angles from attitude setpoint message

* Remove usage of euler angles in attitude setpoint messages

This commit removes the usage of euler angles in the vehicle_attitude_setpoint messages

* Fix standard vtol
2024-08-12 16:42:51 +02:00
Daniel Agar c9343ca11d sitl_gazebo-classic update submodule to latest 2024-08-12 16:26:56 +02:00
Matthias Grob af06bee8d0 update mavlink & adapt to pymavlink generator reporting failures by default 2024-08-12 16:26:56 +02:00
bresch 478875c006 ekf tools: compare gyro integral with attitude estimate 2024-08-12 15:26:08 +02:00
Matthias Grob 64056fc7bb SYS_STATUS: fill correct attitude, horizontal position flags 2024-08-09 18:22:09 +02:00
Sergei 1211aad9b0 Reasonable defaults for Lawnmower SITL 2024-08-09 12:18:16 -04:00
Alexis Guijarro f4f93118e6 mRo boards: Fix for USART clock selection 2024-08-09 11:59:38 -04:00
Matthias Grob fdfe43471e mavlink_receiver: limit access through instances with gimbal mode
This adds explicit handling for the few things we want to allow through a MAVLink instance dedicated to a gimbal/(camera) payload as per the MAVLink gimbal mode configuration.
2024-08-09 10:13:44 -04:00
bresch 3f17f15505 commander: allow FW manual pos control without global position 2024-08-09 12:51:09 +02:00
bresch 8b12b7c641 commander: extend local position 'relaxed' validity
Relaxed position is valid as long as a velocity aiding source is active
(e.g.: optical flow or airspeed+sideslip)
2024-08-09 12:51:09 +02:00
bresch f04aa2494b FW pos control: do not requre global pos in manual position control 2024-08-09 12:51:09 +02:00
Matthias Grob 6cf0bf5e19 Support MAVLink extension MANUAL_CONTROL.aux
Note that in uORB we don't currently know if the aux fields are
specifically valid or not so we can also not set the corresponding
bits in the field.
2024-08-09 10:49:38 +02:00
Hamish Willee 58a699e3cb Strip out html escape comments 2024-08-09 09:26:06 +02:00
Hamish Willee 82be5cd44f Strip short description from long one 2024-08-09 09:26:06 +02:00
Hamish Willee 718d308d91 parameter markdown - correct reboot in tables 2024-08-09 09:26:06 +02:00
chfriedrich98 a294e011ab purePursuit: fix commenting error 2024-08-08 19:54:42 +02:00
chfriedrich98 1a7717b5d9 ackermann: refactor guidance files 2024-08-08 19:54:42 +02:00
chfriedrich98 1af295f1a9 ackermann: refactor main files 2024-08-08 19:54:42 +02:00
Niklas Hauser cd231d0eed fmuv6x: Add GPIO expander to check overcurrent pins 2024-08-08 13:14:11 -04:00
chfriedrich98 a91aa40a3d battery: only reset soc filter with valid voltage measurement (#23513) 2024-08-08 17:09:36 +02:00
Matthias Grob 0381e14822 FlightTaskOrbit: Avoid sending NAN altitude in status telemetry while it's changed by stick 2024-08-08 10:53:18 -04:00
Silvan Fuhrer a737036633 RTLDirect: check for terrain collision in every state of RTL beside when landing
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2024-08-08 13:37:36 +02:00
Silvan Fuhrer 588c4a04c8 RTL direct: publish NavigatorMissionItem
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2024-08-08 13:37:36 +02:00
Silvan Fuhrer b01c179eed NavigatorMissionItem.msg: remove instance_count
This information is duplicate to mission_result/mission_id.

Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2024-08-08 13:37:36 +02:00
Jeremy Zanzig e2f5debf77 change pairing LED feedback to 20 fast flashes of white 2024-08-08 10:02:36 +02:00
Matthias Grob a8d54c7fae mixer_module: Reset RC passthrough functions to disarmed value when no stick input 2024-08-07 19:20:51 +02:00
Julian Oes 2d99ae18ad stm32h7: Reset USART clock selection (#23498)
This resets the USARTs' clock source selection to the default, in case
it has been changed by the bootloader.

This is required if booting from the ArduPilot bootloader which happens
to reset the clock selection to PLL.

Without this fix, UARTs (including the console) is garbled, so
presumably at an invalid baudrate.
2024-08-07 11:41:50 -04:00
Jacob Dahl 086c044f47 mavlink: log handler rewrite for improved efficiency (#23421) 2024-08-07 11:26:12 -04:00
PX4 BuildBot a39a3e2099 Update submodule gz to latest Wed Aug 7 12:39:06 UTC 2024
- gz in PX4/Firmware (411a328e325e5109a453cf84d0c65393be86bfef): https://github.com/PX4/PX4-gazebo-models/commit/312cd002ff9602644efef58eef93e447c10dcbe8
    - gz current upstream: https://github.com/PX4/PX4-gazebo-models/commit/536305adee09b9ace391b16107e625cf7c6db7e7
    - Changes: https://github.com/PX4/PX4-gazebo-models/compare/312cd002ff9602644efef58eef93e447c10dcbe8...536305adee09b9ace391b16107e625cf7c6db7e7

    536305a 2024-08-07 Claudio Chies - add world for collision prevention (#52)
36f49cb 2024-07-29 Stefano Colli - Add x500 with gimbal model (#47)
4ddfc13 2024-07-24 Jacob Dahl - Downward mono cam + aruco tag (#48)
2024-08-07 11:23:39 -04:00
PX4 BuildBot b488e45e73 Update submodule sitl_gazebo-classic to latest Wed Aug 7 12:39:04 UTC 2024
- sitl_gazebo-classic in PX4/Firmware (28a0de63c5): https://github.com/PX4/PX4-SITL_gazebo-classic/commit/67431d233f0f08de647f0eb11239816f9c8bd6c6
    - sitl_gazebo-classic current upstream: https://github.com/PX4/PX4-SITL_gazebo-classic/commit/67af3c3a6da493bdc0a0b9de28b01a2a98d38659
    - Changes: https://github.com/PX4/PX4-SITL_gazebo-classic/compare/67431d233f0f08de647f0eb11239816f9c8bd6c6...67af3c3a6da493bdc0a0b9de28b01a2a98d38659

    67af3c3 2024-07-18 Silvan Fuhrer - model/lidar: incrase range to 50m (#1049)
2024-08-07 11:23:16 -04:00
chfriedrich98 176f09b48b gz_bridge: add rover world to cmake 2024-08-07 10:24:02 -04:00
Silvan Fuhrer 876730a9be FW Position Controller: enable flaps during hand/catapult launch (#23460)
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2024-08-07 15:38:55 +02:00
Peter van der Perk 588eedb8cb px4: sitl fix filepath regression (#23457) 2024-08-07 15:24:07 +02:00
chfriedrich98 c8ff5909b5 rover: restructure airframes (#23506) 2024-08-07 15:16:41 +02:00
Claudio Chies 28a0de63c5 Orbit Yaw Vehicle Parameter (#23358) 2024-08-07 11:12:52 +02:00
chfriedrich98 33d99a13e8 differential: restructure and update module (#23430)
* differential: rename module

* differential: restructure and update module
2024-08-07 09:53:37 +02:00
Beat Küng bfcd4564a6 fix metadata.cmake: add missing paths to json & xml parameter outputs (#23464) 2024-08-07 16:17:03 +10:00
Thomas Frans 3157a4e171 gnss: update supported baud rates (#23415)
* gnss: update supported baud rates

The Septentrio GNSS driver requires certain baud rates to test all the
supported baud rates of the receiver. Without these changes, certain
"non-standard" ones would print an error to the MAVLink console when the
driver was started through the console.

* platforms: add missing baudrate defines

---------

Co-authored-by: Thomas Frans <franske2000@gmail.com>
Co-authored-by: Julian Oes <julian@oes.ch>
2024-08-07 10:46:18 +12:00
bresch d2478d00cf ekf2: only allow ref sensor to reset height 2024-08-06 10:19:13 -04:00
Matthias Grob 8ed3489bd1 hardfault_log: revert to explicit path to not trip the module documentation parser
- the module documentation parser can only resolve defines from the same file
- also it cannot deal with defines embeded in strings
- what board should it add for the general documentation anyways?

As a result of these issues I suggest to stay with the original hardcoded
/fs/microsd for the documentation. It's still the most common path as far as
I can see.
2024-08-06 13:43:13 +02:00
Matthias Grob 84d4ee0e60 zenoh-pico: update to correct dev/1.0.0 branch
which is up to date containing "Use SO_REUSEPORT only if it exists"
and is advertised by GitHub because the commit is on a branch
2024-08-06 13:42:23 +02:00
sbtjagu 326e2a9f5c ackermann: add protection against float precision problem in acceptance radius update (#23478)
* ackermann: add protection against float precision problem in acceptance radius update

* ackermann: protect against divide-by-zero

---------

Co-authored-by: Mathieu Bresciani <brescianimathieu@gmail.com>
2024-08-05 13:02:12 +02:00
Beat Küng 4883f2128a commander: allow external modes more time for initial response
We've come accross a case where a ROS node would consistently take something
over 800 ms until the first arming check request subscription callback was
triggered.
After the first sample, the callback always triggered within the expected
timeframe.
Therefore this patch allows for more time right after registration until
timing out.
2024-08-05 08:43:56 +02:00
Alexis Paques d4d60a5181 Add missing rc.sysinit file in the ROMFS 2024-08-02 16:01:13 -04:00
Alexis Paques abc629c2bb zenoh: update zenoh-pico from 0.7.0 to 1.0.0 (#23462)
* Update Zenoh-pico from 0.7.0 to 1.0.0
* Update the zenoh-pico version to use PX4/dev/1.0.0-px4
* Remove the rostopic and rt/ prefix
 * Unlike zenoh-bridge-dds we were using, zenoh-bridge-ros2dds is now adding the rt/ prefix automagically.
2024-08-02 11:48:55 -04:00
Silvan Fuhrer 75ce550db3 Navigator: add terrain collision avoidance logic for Mission/RTL
Avoid flying into terrain using the distance sensor.
Enable through the parameter NAV_MIN_GND_DIST.
Only active during commanded descents with vz>0 (to prevent climb-aways),
excluding landing and VTOL transitions.
It changes the altitude setpoint in the triplet to maintain the current altitude
and republish the triplet. We also change the mission item altitude used for
acceptance calculations to prevent getting stuck in a loop.

Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2024-07-30 17:50:54 +02:00
Silvan Fuhrer b74e46b1ac SITL airframes/Navigator: remvoe reference to removed param MIS_LTRMIN_ALT
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2024-07-30 17:50:54 +02:00
chfriedrich98 e5657ba011 battery: remove reboot required flag from BAT_N_CELLS 2024-07-30 16:18:47 +02:00
chfriedrich98 9ca9ae5b24 battery: fix initialization for internal resistance estimation
Don't run/initialize if number of battery cells is zero and reinitialize whenever this parameter changes.
2024-07-30 16:18:47 +02:00
Matthias Grob ba579245fb battery_status: remove unused smart battery mode 2024-07-30 14:37:11 +02:00
Matthias Grob a18c18e163 battery_status: remove custom_faults 2024-07-30 14:37:11 +02:00
Matthias Grob 72ed160aa9 batteryCheck: fix comment typo hyster{i,e}sis 2024-07-30 14:37:11 +02:00
Matthias Grob 2e66bbdfb8 battery_status: add failed to arm fault instead of duplicate over temperature 2024-07-30 14:37:11 +02:00
Matthias Grob e06629bfe5 failsafe: unhealthy battery during spoolup leads to disarm
battery failures can occur upon arming when the load gets sgnificant.
In that case the safest thing to do is prevent a takeoff before anything
worse happens.
2024-07-30 14:37:11 +02:00
Matthias Grob 0d00543292 batteryCheck: explicitly report missing battery with ID 2024-07-30 14:37:11 +02:00
Matthias Grob 7d79bdfa05 batteryCheck: apply supply circuit breaker also to battery checks
This was the case in older versions of PX4.
2024-07-30 14:37:11 +02:00
Matthias Grob edcda80cb9 Commander: adhere to parameter naming convention (#23466) 2024-07-30 14:27:27 +02:00
chfriedrich98 b93dd0e8d4 purePursuit: migrate parameters to library (#23438) 2024-07-30 14:16:05 +02:00
bresch 7b3d168af1 baro tuning: make hpf argument optional
This filter is often not needed. Setting the default value to -1 makes it
optional.
2024-07-29 14:20:41 +02:00
Silvan Fuhrer 9257744da3 TECS: reduce default of FW_T_SPD_STD to reduce airspeed measurement delay (#23441)
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2024-07-29 11:14:59 +02:00
Silvan Fuhrer d841bf124f fw_position_control: use time literals 2024-07-26 18:01:44 +02:00
Marco Hauswirth 9d9d8aeb4c bugfix: wrong reset_counter used 2024-07-26 18:01:44 +02:00
Marco Hauswirth 5808dac4bc reset position-mode line following after position reset 2024-07-26 18:01:44 +02:00
Silvan Fuhrer 97561d7802 Commander: never allow to switch out of Terminate state with user intend
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2024-07-26 09:53:07 +02:00
Silvan Fuhrer ee8030de56 Commander: do not switch out of Terminte after disarm
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2024-07-26 09:53:07 +02:00
bresch 0b1eba948a ekf2-flow: add param to force using internal gyro
In some cases the vibration environment of the optical flow sensor is
worse than near the autopilot.
2024-07-25 19:54:19 -04:00
Hamish Willee a07c986dbc Params generated as markdown table (#23443) 2024-07-26 07:46:11 +10:00
sbtjagu 85b6b0a406 ackermann: added delay comand support (#23445) 2024-07-25 17:13:30 +02:00
oravla5 b76c1c97b3 ekf2: Optical flow enabled by default 2024-07-25 10:01:35 +02:00
Daniel Agar fd72578e98 ekf2: avoid constraining parameters every iteration 2024-07-25 09:51:35 +02:00
Silvan Fuhrer ebcfb5348c Navigator: increase stack by 40 bytes
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2024-07-25 09:22:23 +02:00
Peter van der Perk 4ca3e1b6e6 mr_canhubk3: add netman in default.px4board 2024-07-24 11:39:44 -04:00
Peter van der Perk af36c0b6ec mr_canhubk3: generate mtd_net when file is missing 2024-07-24 11:39:44 -04:00
David Sidrane b38305dd21 CONFIG_BOARD_ROOT_PATH is not dependant on Logger only 2024-07-24 11:39:44 -04:00
David Sidrane ab82c24e3e systemcmds:Use CONFIG_BOARD_ROOT_PATH instead of string constant 2024-07-24 11:39:44 -04:00
David Sidrane 54b20f1ff3 mavlink:Use CONFIG_BOARD_ROOT_PATH instead of string constant 2024-07-24 11:39:44 -04:00
David Sidrane ea92c7ffcc lib:Use CONFIG_BOARD_ROOT_PATH instead of string constant 2024-07-24 11:39:44 -04:00
David Sidrane d0d9aaa6e9 drivers:Use CONFIG_BOARD_ROOT_PATH instead of string constant 2024-07-24 11:39:44 -04:00
David Sidrane 3fa9cda505 platforms/common:Use CONFIG_BOARD_ROOT_PATH instead of string constant 2024-07-24 11:39:44 -04:00
Peter van der Perk a99cc0a20b Remove unused kconfig symbol 2024-07-24 11:39:44 -04:00
Peter van der Perk 46e43ec725 Decouple filepaths from rcS/MTD 2024-07-24 11:39:44 -04:00
bresch 79e0e00d8c ekf2: block process noise increment without constraining the variance
The wind variance can be reset to a value larger than the wind init
variance (e.g.: when the reset occurs when flying close to the N or E
axis). Constraining the variance after a covariance initialization would
artificially increase the correlation and could destabilize the filter.
2024-07-24 17:11:53 +02:00
Marco Hauswirth 39abd87949 set best sensor to -1 after last sensor fails (#23425) 2024-07-24 11:24:07 +02:00
Stockton Slack 36d89df0a7 Fix load monitoring inconsistency bug 2024-07-22 10:33:39 +02:00
Daniel Agar 9ff6c4bf28 remove newlines 2024-07-19 18:25:43 -04:00
alexklimaj b46b2cdf54 airframes: droneblocks dexi 5 default to CRSF on RC input with telemetry 2024-07-19 18:23:25 -04:00
Daniel Agar 85de0ff227 boards: move ARK fmu-v6x/pi6x to dedicated RC drivers 2024-07-19 15:42:05 -04:00
Daniel Agar 3a3f04c0f4 drivers/rc: new standalone ghst_rc driver
- extracted from monolithic drivers/rc_input which will eventually be
   dropped once all drivers migrated and boards updated
2024-07-19 15:42:05 -04:00
Daniel Agar 7a6c4f0bfa drivers/rc: new standalone sbus_rc driver
- extracted from monolithic drivers/rc_input which will eventually be
   dropped once all drivers migrated and boards updated
2024-07-19 15:42:05 -04:00
Daniel Agar 561dceea7b drivers/rc: new standalone dsm_rc driver
- extracted from monolithic drivers/rc_input which will eventually be
   dropped once all drivers migrated and boards updated
2024-07-19 15:42:05 -04:00
chfriedrich98 aa0dda7443 ackermann: fix naming conventions 2024-07-19 14:43:40 +02:00
chfriedrich98 f8bebd9e41 ackermann: implement pure pursuit lib 2024-07-19 14:43:40 +02:00
Matthias Grob f2bca92221 Fix duplicate newlines at the end of files 2024-07-19 14:33:36 +02:00
Matthias Grob 7f14110bb1 Fix missing newlines at the end of files 2024-07-19 14:33:36 +02:00
Matthias Grob fe3cd4b0cb Add check for missing or duplicate newlines at the end of files 2024-07-19 14:33:36 +02:00
Roman Bapst 1b9f1b78e5 Added support for resetting wind states to external observation (#23277)
* added support for resetting wind states to external observation

Signed-off-by: RomanBapst <bapstroman@gmail.com>

* moved wind related functions into separate file

Signed-off-by: RomanBapst <bapstroman@gmail.com>

* added VEHICLE_CMD_EXTERNAL_WIND_ESTIMATE

Signed-off-by: RomanBapst <bapstroman@gmail.com>

* correctly compute variances

Signed-off-by: RomanBapst <bapstroman@gmail.com>

* ekf2: implement wind reset

Signed-off-by: RomanBapst <bapstroman@gmail.com>

* only allow VEHICLE_CMD_EXTERNAL_WIND_ESTIMATE during wind dead-reckoning
and increase horizontal velocity variance to allow velocity states to move
towards solution that is aligned with the newly set wind

Signed-off-by: RomanBapst <bapstroman@gmail.com>

* only reset wind on ground

* still use wind reset using airspeed when it wasn't initialized

* exclude func for rover, change reset interface

* handle wind reset in drag-fusion

* replace state reset with variance reset in sideslip/drag fusion

* remove resetWind function

---------

Signed-off-by: RomanBapst <bapstroman@gmail.com>
Co-authored-by: Marco Hauswirth <marco.hauswirth@auterion.com>
2024-07-19 14:33:08 +02:00
Daniel Agar ca9948a84d msgs/EstimatorStatus.msg rename mag_test_ratio -> hdg_test_ratio
- this is used for more than just mag
2024-07-18 16:39:18 +02:00
Daniel Agar eac14b7db2 ekf2/commander: simplify navigation filter preflight checks
- remove commander test ratio "tuning knobs" (COM_ARM_EKF_{HGT,POS,VEL,YAW})
   - these are effectively redundant with the actual tuning (noise & gate)
     in the estimator, plus most users have no idea why they'd be
     adjusting these other than to silence an annoying preflight complaint
 - remove ekf2 "PreFlightChecker" with hard coded innovation limits
 - ekf2 preflight innovation flags are now simply if any active source
   exceeds half the limit preflight
2024-07-18 16:39:18 +02:00
chfriedrich98 a42dc2165c add pure pursuit library 2024-07-18 13:25:05 +02:00
chfriedrich98 08c790217d battery: increase max value for battery thresholds 2024-07-18 09:46:58 +02:00
chfriedrich98 5083ec52ec battery: migrate parameters in .c file to .yaml file 2024-07-18 09:46:58 +02:00
Daniel Agar f8f8ddc101 ekf2: optical flow update last hor vel timestamp on success 2024-07-17 14:46:48 -04:00
Daniel Agar 691fdf713c ekf2: airspeed update last hor vel timestamp if successfully updating all states 2024-07-17 14:46:48 -04:00
Daniel Agar 57c1ba545f ekf2: fake_hgt don't use fuseVerticalPosition helper
- fake_hgt shouldn't update _time_last_hgt_fuse
2024-07-17 14:46:48 -04:00
Daniel Agar 6fe0fa6d63 ekf2: fake_pos don't use fuseHorizontalPosition helper
- fake_pos shouldn't update _time_last_hor_pos_fuse
2024-07-17 14:46:48 -04:00
Daniel Agar c5c27a87f1 ekf2: track last terrain fuse time and update logic 2024-07-17 10:16:32 -04:00
chfriedrich98 8c4620b77e battery: simplify battery scale calculation (#23417) 2024-07-17 12:22:52 +02:00
bresch 81575049df ekf2: reword EKF2_GPS_CHECK param 2024-07-16 10:15:19 -04:00
Daniel Agar f832ae688d ekf2: require valid filter vz for GPS vspeed check 2024-07-16 10:15:19 -04:00
bresch 20c0d3a096 ekf2: enable all GNSS checks by default 2024-07-16 10:15:19 -04:00
bazooka joe b48aca10a0 mc_position_control: avoid calculating arw if not needed 2024-07-16 13:30:40 +02:00
Daniel Agar 397ff4a102 ekf2: sideslip symforce increase epsilon to avoid 1/e^2 numerical issues 2024-07-16 11:10:58 +02:00
Daniel Agar 13b62a74d6 ekf2: optical flow adjust jacobian epsilon to avoid numerical issues
- in the generated code there's a 1 / eps^2 term if the height and
   terrain estimates are the same
2024-07-16 11:10:58 +02:00
Claudio Chies 76cf54c948 adapted UORB Description to match MAVLink 2024-07-16 11:07:03 +02:00
Jacob Dahl aa8a9e3a06 laser scan subscription optional 2024-07-16 11:07:03 +02:00
Jacob Dahl fe5a07a96d gz: added x500_lidar model for publishing obstacle_distance 2024-07-16 11:07:03 +02:00
Daniel Agar 48f1687d3a ekf2: cleanup legacy EKF solution_status_flags 2024-07-16 10:11:27 +02:00
Daniel Agar 1cd7d54170 ekf2: consolidate GNSS yaw in gnss_yaw_control.cpp and fix naming (GPS->GNSS)
Co-authored-by: Mathieu Bresciani <brescianimathieu@gmail.com>
2024-07-15 12:50:51 -04:00
bresch 9d6c2baa90 ekf2-flow: only allow flow when in range
Also, as the flow makes the link between range and horizontal velocity,
only allow it to start if at least one of the two is known. Otherwise
the EKF will struggle to estimate both values at the same time.
2024-07-15 11:40:33 -04:00
Daniel Agar 8e5f28f834 ekf2: rng only reset vz as a last resort 2024-07-15 11:39:56 -04:00
Daniel Agar 80ee622f77 ekf2: baro only reset vz as a last resort 2024-07-15 11:39:56 -04:00
Daniel Agar 40349fa3dc ekf2: EV velocity control should own vertical velocity reset if height failing 2024-07-15 11:39:56 -04:00
Daniel Agar 177613eb68 ekf2: GNSS velocity control should own vertical velocity reset if height faiing
- GNSS height control using the velocity sample directly is ignoring
   potential position offsets
2024-07-15 11:39:56 -04:00
PX4 BuildBot 9bbfc8715e Update submodule mavlink to latest Mon Jul 15 12:39:00 UTC 2024
- mavlink in PX4/Firmware (abcf9ca6f0aadc91b203342db689f07630ec0e3a): https://github.com/mavlink/mavlink/commit/da3223ff9380bfe8e496fab8df2cbb06d5f8d5c3
    - mavlink current upstream: https://github.com/mavlink/mavlink/commit/d65952bacc02c4a5a1ed8249be73e6a66fa800ab
    - Changes: https://github.com/mavlink/mavlink/compare/da3223ff9380bfe8e496fab8df2cbb06d5f8d5c3...d65952bacc02c4a5a1ed8249be73e6a66fa800ab

    d65952ba 2024-07-05 Peter Barker - common.xml: correct description of GLOBAL_POSIITON_INT.relative_alt frame (#2131)
5fc2ff8e 2024-06-26 Hamish Willee - Add multiplier field to docs, if present (#2125)
a13d2317 2024-06-26 Roman Bapst - Added MAV_CMD_EXTERNAL_WIND_ESTIMATE to development (#2122)
d8af87fd 2024-06-19 jokalode - Update common.xml (#2116)
2024-07-15 11:18:19 -04:00
Daniel Agar e03aef616c ekf2: add terrain/dist_bottom reset deltas (vehicle_local_position/vehicle_global_position) 2024-07-15 10:25:42 -04:00
Daniel Agar a5a67315fd ekf2: optical flow magnitude check compensated
- additionally don't use flow for reset if magnitude isn't acceptable
2024-07-15 09:46:59 -04:00
Boris be551097e0 mc_wind_estimator_tuning: Changed Quaternion package installed by requirements.txt 2024-07-15 11:40:12 +02:00
Daniel Agar dc5f8118b0 ekf2: range finder cleanup duplicate logic 2024-07-15 11:37:36 +02:00
KonradRudin 59b96f4968 tecs: fast descend: do not shut down throttle while still climbing (#23397) 2024-07-15 10:42:43 +02:00
Liu1 b1b0032b8d BMP581: Add Bosch BMP581 barometer (#23064)
* BMP581: Add Bosch BMP581 barometer

* Copyright:fix copyright header year

* style: not use pointers and Bool returns, Check the failed condition return

* delay: Replace usleep() with ScheduleDelayed()

* definitions: Delete unused definitions

* comment: Delet redundant comments

* constants: Change to uppercase

* BMP581: run make format
2024-07-14 14:08:20 -08:00
Matthias Grob e2b31454a3 SubscriptionInterval: move updated, update, copy function to a cpp file
Saves 17.3 kilobytes of flash 😮
2024-07-12 23:26:24 +02:00
Claudio Chies 33be5d8356 Survey - fix of survey tracking problem on steep slopes (#23371)
* initial working

* incoperated review
2024-07-11 14:54:22 +02:00
Daniel Agar 9124a7b471 ekf2: add IMU delta_ang_dt/delta_vel_dt safety constrain before pushing into buffer 2024-07-10 21:20:47 -04:00
Daniel Agar ac77049c47 ekf2: directly use IMU sample to find corresponding aid source sample
- I think this helps make it clear we're using a sensor sample
   corresponding with a particular IMU sample
2024-07-10 21:20:47 -04:00
Daniel Agar f93dc61770 ekf2: use bias corrected angular velocity
- avoid unnecessarily storing _ang_rate_delayed_raw
2024-07-10 21:20:47 -04:00
Julian Oes 20137bea40 boards: add console build for Cube Orange(+)
This adds a build variant which enables the serial console, and
therefore disables the ADSB receiver.
2024-07-10 21:14:08 -04:00
Claudio Chies 57e303b11b bugfix for failing actions 2024-07-10 21:12:55 -04:00
PX4 BuildBot e0ea91fc27 Update submodule gz to latest Thu Jul 11 00:39:09 UTC 2024
- gz in PX4/Firmware (2c3401dc83): https://github.com/PX4/PX4-gazebo-models/commit/881558c8c274d0d9f21970de24333122e050b561
    - gz current upstream: https://github.com/PX4/PX4-gazebo-models/commit/312cd002ff9602644efef58eef93e447c10dcbe8
    - Changes: https://github.com/PX4/PX4-gazebo-models/compare/881558c8c274d0d9f21970de24333122e050b561...312cd002ff9602644efef58eef93e447c10dcbe8

    312cd00 2024-07-08 chfriedrich98 - Add rover ackermann model (#46)
2024-07-10 21:05:57 -04:00
chfriedrich98 c391509c23 ackermann: add SITL airframe 2024-07-10 21:04:59 -04:00
Matthias Grob 2c3401dc83 uORB: SubscriptionInterval fix timestamp wrapping when initializing less than the interval time after boot (#23384)
* SubscriptionInterval: ensure _last_update is never before timer start
2024-07-10 12:43:31 -04:00
Daniel Agar 75bb339d94 ekf2: remove warning events logging
- some of these warning flags aren't even being used, and most of the rest we can figure out from other sources
2024-07-10 10:43:55 -04:00
Daniel Agar c29b4ff87e ekf2: apply astyle formatting and enforce 2024-07-10 10:43:55 -04:00
chfriedrich98 3fe609f769 exclude 4017 from v5x to save flash 2024-07-10 12:06:48 +02:00
chfriedrich98 03ff837c50 ackermann: new features and improvements
added return mode support, slew rates for actuators, new ackermann specific message, improved cornering slow down effect and fixed logging issue.
2024-07-10 12:06:48 +02:00
Daniel Agar 223397c20e ekf2: always add accel/gyro bias process noise
- continue adding accel/gyro bias process noise even if inhibited
2024-07-10 11:49:01 +02:00
Marco Hauswirth 419652b9fe EKF2: Spoofing GPS check (#23366)
* estimator gps check fail flag for spoofing

* warn whenever spoofing state changes to true, use default hysteresis to completely stop fusion

* dont introduce more GPS namings, GNSS instead

* flash: exclude mantis for cuav_x7pro
2024-07-09 16:31:11 +02:00
Daniel Agar 62ff39a669 ekf2: EV vel (body) update last fuse timestamps
- these are set by the NED fuseVelocity() helper so also need to be set in the body frame velocity case
2024-07-09 10:16:12 -04:00
Daniel Agar 5d08b97fd7 ekf2: add vehicle_local_position dist_bottom_var 2024-07-09 10:10:01 -04:00
Daniel Agar 3e3b886b5d ekf2: add terrain estimator_status_flags 2024-07-09 10:10:01 -04:00
Daniel Agar 64a6971bdb ekf2: only limit opt flow HAGL if range only terrain
- increase HALG limit from 75%->90% of sensor max
2024-07-09 10:10:01 -04:00
Daniel Agar c56f84fe8a ekf2: range, check if terrain valid for reset on fusion timeout 2024-07-09 10:10:01 -04:00
Daniel Agar e52025cc20 ekf2: optical flow fusion timeout only reset if quality is good 2024-07-09 10:10:01 -04:00
Daniel Agar 6be06ecbb3 ekf2: optical flow failing also reset terrain if needed 2024-07-09 10:10:01 -04:00
Daniel Agar ea8f14b883 ekf2: optical flow logic, timeout if bad_tilt, etc
- previously we could get stuck with optical flow still technically
   active (_control_status.flags.opt_flow=true), but nothing being
updated due to excessive tilt, etc
2024-07-09 10:10:01 -04:00
Daniel Agar 8bf15b01c4 ekf2: optical flow don't compute innovation variance twice
- collapse updateOptFlow() and startFlowFusion() to avoid recomputing H
 - this is a relatively expensive call we can easily avoid with the
   right structure
2024-07-09 10:10:01 -04:00
Daniel Agar f709ed409d ekf2: optical flow stop reset all flags 2024-07-09 10:10:01 -04:00
Daniel Agar 9dfd82ab06 ekf2: optical flow remove _flow_data_ready flag 2024-07-09 10:10:01 -04:00
Daniel Agar 7047f9441c ekf2: fix calcOptFlowBodyRateComp() gyro bias
- adjust flow sample gyro_rate immediately after popping from ring
   buffer
 - always update flow gyro bias (calcOptFlowBodyRateComp()) regardless
   of flow quality or magnitude
2024-07-09 10:10:01 -04:00
Daniel Agar 4d324da9f8 ekf2: update flow aid src status every sample 2024-07-09 10:10:01 -04:00
Daniel Agar bcd666b3f8 ekf2: fix optical flow start logic
- remove fallthrough that enables flow regardless of success
 - add appropriate start messages for each case
2024-07-09 10:10:01 -04:00
Daniel Agar bf4e564b23 ekf2: resetTerrainToFlow() reset aid src status appropriately 2024-07-09 10:10:01 -04:00
Daniel Agar ced609daa8 ekf2: flow fusion start require valid fusion 2024-07-09 10:10:01 -04:00
Daniel Agar 1df8f3f9d2 ekf2: resetFlowFusion() reset aid src status appropriately 2024-07-09 10:10:01 -04:00
Roman Bapst 8221940b60 Added pitot tube icing detection (#23206)
* lib: add FilteredDerivative class

* AirspeedValidator: add first principle check

- filters throttle, pitch and airspeed rate, and triggers
if the airspeed rate is negative even though the vehicle
is pitching down and giving high throttle.
Check has to fail for duration defined by ASPD_FP_T_WINDOW
to trigger an airspeed failure.

* AirspeedValidator: define constants for first principle check

* FilteredDerivative: set initialised to false if sample interval is invalid

* airspeed_selector: improved comment

* increase IAS derivative filter time constant from 4 to 5

* use legacy parameter handling for FW_PSP_OFF

* handle FW_THR_MAX as well

* ROMFS/airframes: exclude some airframes for v6x and v4pro to save flash on them

---------

Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
Signed-off-by: RomanBapst <bapstroman@gmail.com>
Co-authored-by: Silvan Fuhrer <silvan@auterion.com>
2024-07-09 11:16:40 +02:00
Julian Oes a35cecece4 gnss: add missing include
Breaks CLion otherwise.
2024-07-08 20:38:40 -04:00
Peter van der Perk 6bd81f38a6 imxrt dshot timing fix (#23365)
* imxrt: Change PLL settings for more accurate dshot timing
* Update NuttX submodule
2024-07-08 12:57:15 -04:00
Silvan Fuhrer 77709c2948 FW Position control: clean up param descriptions
Mostly to save flash, but also to improve generally.

Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2024-07-08 16:44:09 +02:00
Claudio Chies aed0fd41cf SIH - change how LAT and LON is used for Takeoff location (#23363)
change how lat long is used for SIH
2024-07-08 14:51:08 +02:00
Marco Hauswirth 4bc0286eb8 fix error from refactring commit, fix reset on ground (#23370) 2024-07-08 13:55:05 +02:00
Marco Hauswirth e04c53241a EKF2: reset position by fusion (#23279)
* reset position by fusion

* handle local_pos_valid for fixed wing in gnss denied

* [WIP] ekf2: setEkfGlobalOrigin respect current height reference and vertical position aiding

* global origin, also reset vertical pos without gps as ref

* fix wo gnss, that bitcraze ci passes

* revert some changes as requested

* remove duplicate reset messages

* undo unrelated whitespace changes, I'll fix it everywhere in a followup

* [SQUASH] ekf2: add vehicle_command_ack

* resetGlobalPosToExternalObservation consolidate logic

* remove gnss check from local_pos validation check

* reset when  0<accuracy<1, otherwise fuse

* replace gps param with flag

* ekf2: dead reckon time exceeded, respect ZUPT preflight if air data or optical flow expected

* subtract timeout from last inertial dead-reck, change fake pos conditions, save flash

---------

Co-authored-by: Daniel Agar <daniel@agar.ca>
2024-07-07 22:43:55 +02:00
Peter van der Perk ac1effa32a fmu-v6xrt: MTD use full FRAM (32KB) 2024-07-05 10:25:08 -04:00
Ryan Johnston fd8df2e84d Update int_res_est_replay.py (#23351)
Pulls cell count, min voltage and max voltage from log file but still allows for over-rides. Also added debug info to tell user what what it found in the log and what it is using

Co-authored-by: chfriedrich98 <125505139+chfriedrich98@users.noreply.github.com>
2024-07-05 11:04:45 +02:00
Marco Hauswirth a1f43636f3 ekf2: EV fusion in body frame (#23191) 2024-07-04 21:17:19 -04:00
Silvan Fuhrer 1f33abb4e9 battery_status.msg: remove unused fields (#22938)
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2024-07-04 11:57:26 +02:00
PonomarevDA 4c5ce7af6b Cyphal: add feedback for 8 ESC 2024-07-03 13:02:18 -04:00
PonomarevDA 8569eeb90c Cyphal: add *type registers for ESC 2024-07-03 13:02:18 -04:00
PonomarevDA f81e36a3a0 Cyphal: optimize ESC setpoint 2024-07-03 13:02:18 -04:00
PonomarevDA 41bd6c92e2 Cyphal: add zubax.telega.CompactFeedback 2024-07-03 13:02:18 -04:00
PonomarevDA 515543b1c5 Cyphal: divide EscClient into 2 publishers, so setpoint and readiness are 2 different ports now 2024-07-03 13:02:18 -04:00
Dmitry Ponomarev 52476633a8 Cyphal: use actual time instead of transfer id in uptime field of heartbeat 2024-07-03 13:02:18 -04:00
Dmitry Ponomarev b063202b45 Cyphal: remove setpoint scaling to 8192 2024-07-03 13:02:18 -04:00
Dmitry Ponomarev d3480d1302 Cyphal: add port.List 2024-07-03 13:02:18 -04:00
Matthias Grob c8c46788ed Autostart: load airframes with priority ROMFS -> SD card 2024-07-03 18:32:16 +02:00
Thomas Frans c0663ee85c gnss(septentrio): fix line lenghth of module documentation 2024-07-03 11:21:34 -04:00
Thomas Frans e27b252433 gnss(septentrio): fix incorrect heading offset configuration
Heading offset was configured as radians but should be configured as
degrees on Septentrio receivers. The parameter was already in degrees
but the configuration logic was changing it into radians. Also allow the
entire allowed range of heading offset values for Septentrio receivers.
2024-07-03 11:21:34 -04:00
Thomas Frans 49dc896d20 gnss(septentrio): fix broken heading
Heading wasn't working because of an incorrect check during parsing.
2024-07-03 11:21:34 -04:00
Thomas Frans bfbbf2ff6f gnss(septentrio): improve SEP_DUMP_COMM parameter documentation
The documentation for `SEP_DUMP_COMM` was quite unclear and users had to
use the user guide to find out what exactly it did. The new
documentation tries to make the purpose clearer.
2024-07-03 11:21:34 -04:00
Thomas Frans 7bb239637e gnss(septentrio): fix error on driver start with same device paths
This fixes an incorrect check of the device paths during instantiation
of the Septentrio driver that caused the driver to start and not print
an error message.
2024-07-03 11:21:34 -04:00
Thomas Frans 522a25a410 gnss(septentrio): first batch of bugfixes after internal testing
Internal testing revealed usability issues. Those and some other
problems are fixed.
2024-07-03 11:21:34 -04:00
Silvan Fuhrer 33701aa3d5 BatteryStatus: remove voltage_filtered_a
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2024-07-03 16:41:49 +02:00
Silvan Fuhrer c2ae6a7e24 BatteryStatus: remove current_filtered_a
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2024-07-03 16:41:49 +02:00
zhangteng0526 e03e0261a1 Fix buffer overflow in mavlink_receive.cpp 2024-07-03 08:11:32 +02:00
chfriedrich98 f65653a391 battery: add internal resistance estimation 2024-07-02 19:05:13 +02:00
chfriedrich98 71029689e7 battery: add replay file for internal resistance estimation 2024-07-02 19:05:13 +02:00
Silvan Fuhrer 6d549811bc fmu v3: disable GYRO_FFT to save flash
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2024-07-02 11:44:54 -04:00
Marco Hauswirth 3880073716 ekf2: fix timeout after gps failure (#23346) 2024-07-02 10:38:49 -04:00
Daniel Agar 0742d356f5 ekf2: more conservative clipping checks for bad_acc_clipping fault status (#23337)
- track accel clipping count per axis
 - only set bad_acc_clipping fault_status if at least one axis is
   clipping continuously or if all have been clipping at warning level
 - Note: this doesn't impact the clipping projections that boost the
   accel process noise, pause bias estimation, and skip gravity fusion
   on a per sample basis
2024-06-28 16:45:08 -04:00
bluedisk 408d8abe95 Tools/setup: fix the wrong - deprecated - expression in the requirements.txt
- Fixes matplotlib version expression from ">=3.0.*" ro ">=3.0" which is the right syntax

Fixes issue #23329

Co-authored-by: lee wonwoo <leewonwoo@leeui-MacBookPro.local>
2024-06-28 10:20:26 -04:00
Alex Klimaj 053b4a4423 drivers/uavcan: GNSS set system time based on fix_type instead of valid_pos_cov 2024-06-27 21:35:45 -04:00
Peter van der Perk 58f7c3e9c9 NuttX with imxrt1170 soc vdd backport (#23333) 2024-06-27 16:21:45 -04:00
PX4 BuildBot 8b26e5e252 Update submodule libevents to latest Thu Jun 27 12:39:19 UTC 2024
- libevents in PX4/Firmware (4e3561cad8d24fefe66d266e969652d7ab20162b): https://github.com/mavlink/libevents/commit/8d5c44661bf79106361eb0b5170025b86e85a525
    - libevents current upstream: https://github.com/mavlink/libevents/commit/9474657606d13301d426e044450c4f84de2221be
    - Changes: https://github.com/mavlink/libevents/compare/8d5c44661bf79106361eb0b5170025b86e85a525...9474657606d13301d426e044450c4f84de2221be

    9474657 2024-06-13 Beat Küng - cmake: add namespaced target & installation include dir
9f2e68d 2024-06-12 Beat Küng - CMakeLists: set CMAKE_CXX_STANDARD if not set
3204e8f 2024-06-12 Beat Küng - parser.h: use std::vector<EventArgumentDefinition>::size_type
eab8144 2024-04-29 Beat Küng - fix parser: avoid signed to unsigned conversion
159f83e 2024-04-29 Beat Küng - cpp: only enable Wall and others for GCC
2024-06-27 16:21:20 -04:00
Matthias Grob e4446adba1 Add check for high RAM usage
We had a case where someone took off with an experimental
system with 100% RAM usage on the embedded system
without noticing. This lead to problems during flight.

Since we already have a CPU load check it seems natural
to also check the reported RAM usage.
2024-06-27 11:20:22 +02:00
Daniel Agar 30b854da35 ekf2: verbose logging control (new EKF2_LOG_VERBOSE)
- new parameter EKF2_LOG_VERBOSE to enable (currently enabled by default)
 - force advertise topics immediately (based on EKF2_LOG_VERBOSE and per aid source configuration)
 - logger optionally log all estimator topics at minimal rate
2024-06-27 01:10:57 -04:00
Patrik Dominik Pordi 8070c70f2c uxrce_dds_client: dds_topics.yaml add vehicle_land_detected
- px4_msgs::msg::VehicleLandDetected has been added to dds_topics.yaml
2024-06-27 01:10:04 -04:00
Daniel Agar 78fd9a15f8 flight_mode_manager: delete unused avoidance waypoint 2024-06-27 01:08:16 -04:00
Daniel Agar 338bcc6ca3 ekf2: disable EKF2_EV_CTRL and EKF2_AGP_CTRL by default 2024-06-26 17:10:28 -04:00
alexklimaj 9cc4e2ac01 boards ark pi6x add vl53l0x 2024-06-26 17:09:37 -04:00
Silvan Fuhrer 1ae96d6509 EKF2: fix builds without CONFIG_EKF2_RANGE_FINDER
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2024-06-26 11:05:38 +02:00
bresch a50ef2eb5e ekf2-terrain: make terrain validity based on uncertainty
When using optical flow for terrain aiding, we cannot assume that the
terrain estimate is valid if flow is fused as is can only be observed
during motion. When no direct observation is available, the terrain is
assumed to be valid if its 1sigma uncertainty is < 10% of the hagl.
2024-06-26 11:05:38 +02:00
bresch a665764b0e ekf2: remove unused EKF2_TERR_MASK 2024-06-26 11:05:38 +02:00
bresch 7903ddf5df ekf2-terrain: terrain is not a separate estimator 2024-06-26 11:05:38 +02:00
bresch 9001c23926 ekf2: clean up hagl vs terrain naming
Terrain is the state: terrain vertical position
Hagl (height above ground level) is the vertical distance between the
vertical position and the terrain vertical position
2024-06-26 11:05:38 +02:00
bresch 68980b59e2 ekf2: add terrain state 2024-06-26 11:05:38 +02:00
KonradRudin 09f066a73a mission: skip a vtol takoff mission item if already in air (#23319)
* mission: skip a vtol takoff mission item if already in air and a fixed wing

* MissionBase: also skip FW takeoff when already in-air

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

* mission: use setNextMissionItem to skip vtol takeoff when already in air

* mission: Only skip the VTOL takeoff in air for mission and rtl mission

If flying RTL mission reverse it must still include the takeoff point.

---------

Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
Co-authored-by: Silvan Fuhrer <silvan@auterion.com>
2024-06-25 16:33:45 +02:00
Nate 6fd0e98a69 Correct units of CRSF GPS altitude
Bug fix to correct returning mm units of altitude to m.
2024-06-24 12:27:21 +02:00
David Sidrane e8e8a60ca8 NuttX with backport of stm32h7 No phy 2024-06-24 06:12:12 -04:00
Matthias Grob 8cc7c99b59 mavlink: report generator error (#23313)
Without this flag the command silently succeeds even though the logs contains
an error. It's much more developer friendly to fail early in case of an error.
The log path is then also shown in the console output.
2024-06-24 10:00:03 +02:00
Daniel Agar 30ce560e3a ekf2: mag control reset filtered test ratio on start (if aligning yaw) 2024-06-20 13:41:54 -04:00
Daniel Agar dcb1103299 ekf2: move estimator_status test ratios to filtered values 2024-06-20 13:41:54 -04:00
fury1895 e4fc3022f2 gimbal - input_mavlink: return NoUpdate by default 2024-06-19 13:52:27 +02:00
Daniel Agar 741c7ab610 Update submodule GPS drivers to latest Wed Jun 19 00:38:26 UTC 2024
- GPS drivers in PX4/Firmware (e5d44cc1ba691f075bc2bce52dea7ec88af9e6cd): https://github.com/PX4/PX4-GPSDrivers/commit/0b79ec4dbe3e5ac5925c011067e7e294033a0a32
    - GPS drivers current upstream: https://github.com/PX4/PX4-GPSDrivers/commit/a41210ede8c2d22dd8e9fdcf388fca927c1fc5e1
    - Changes: https://github.com/PX4/PX4-GPSDrivers/compare/0b79ec4dbe3e5ac5925c011067e7e294033a0a32...a41210ede8c2d22dd8e9fdcf388fca927c1fc5e1

    a41210e 2024-06-18 Daniel Agar - sbf: fix code style
2024-06-18 21:03:27 -04:00
Eric Katzfey c334e488e4 Changed Serial readAtLeast timeout from microseconds to milliseconds 2024-06-18 18:48:56 -04:00
Daniel Agar e33ba810e9 boards: px4_fmu-v5x_test disable differential_drive module to fix flash overflow 2024-06-18 18:48:13 -04:00
Daniel Agar 69a4a11c7f boards: cuav/nora disable modules to fix flash overflow 2024-06-18 18:47:42 -04:00
Daniel Agar 81f26be846 Update submodule GPS drivers to latest Tue Jun 18 12:39:32 UTC 2024
- GPS drivers in PX4/Firmware (c29d189788090f6994e488f65789a8fe6b835d8d): https://github.com/PX4/PX4-GPSDrivers/commit/d92cf3a2b2704d5509b651bfca33cdfea3a7a18a
    - GPS drivers current upstream: https://github.com/PX4/PX4-GPSDrivers/commit/0b79ec4dbe3e5ac5925c011067e7e294033a0a32
    - Changes: https://github.com/PX4/PX4-GPSDrivers/compare/d92cf3a2b2704d5509b651bfca33cdfea3a7a18a...0b79ec4dbe3e5ac5925c011067e7e294033a0a32

0b79ec4 2024-04-12 Thomas Frans - sbf: fix issue with automatic base config in QGC
5810dac 2024-04-12 Thomas Frans - style: add editorconfig file for consistent style
915024c 2024-03-26 Julian Oes - sbf: fix subsequent init in QGC
3ea1d76 2024-03-04 Julian Oes - sbf: don't foget to configure RTCM
c6da592 2024-03-04 Julian Oes - sbf: don't change baudrate of USB port

Co-authored-by: PX4 BuildBot <bot@px4.io>
2024-06-18 13:55:02 -04:00
PX4 BuildBot 38956e50ce Update submodule mavlink to latest Tue Jun 18 12:39:42 UTC 2024
- mavlink in PX4/Firmware (7d9b119283b5aff3976431bd48e4308a0bce7b56): https://github.com/mavlink/mavlink/commit/9e0d01df69e2f659114070db5545a35ddf61cae8
    - mavlink current upstream: https://github.com/mavlink/mavlink/commit/da3223ff9380bfe8e496fab8df2cbb06d5f8d5c3
    - Changes: https://github.com/mavlink/mavlink/compare/9e0d01df69e2f659114070db5545a35ddf61cae8...da3223ff9380bfe8e496fab8df2cbb06d5f8d5c3

    da3223ff 2024-06-13 Thomas Frans - gps: add status and integrity information (#2110)
2024-06-18 11:48:00 -04:00
Daniel Agar 8b9900cce3 mc_pos_control: new velocity low pass and notch filter (optional, disabled by default)
- MPC_VEL_LP: new velocity first order low pass filter (off by default)
 - MPC_VEL_NF_FRQ/MPC_VEL_NF_BW: new velocity notch filter (off by default)
 - MPC_VELD_LP: existing velocity derivative low pass filter, but I've dropped the remaining controllib usage
2024-06-18 11:47:19 -04:00
PX4 BuildBot ac13fb77a9 boards: update all NuttX defconfigs 2024-06-18 09:37:58 -04:00
PX4 BuildBot 42cdf41d60 update all px4board kconfig 2024-06-18 09:35:41 -04:00
Matthias Grob 9c83f842be autostart scripts: Reintroduce SYS_PARAM_VER (#22813)
The case where the airframe maintainer wants to enforce a reset to airframe is
not covered anymore with the `param set-default` mechanism. For products based
on PX4 this is still required to ensure proper functionality after a major update.
2024-06-18 09:32:51 +02:00
Jonas Eschmann 54c8f9e8c9 Adding vehicle_acceleration and actuator_motors to the logged topics for system identification 2024-06-17 22:19:24 -04:00
PX4 BuildBot ea72d56a00 Update submodule gz to latest Mon Jun 17 12:39:07 UTC 2024
- gz in PX4/Firmware (0c18d43657b1b7279b8dce78a6014243cc14d1e2): https://github.com/PX4/PX4-gazebo-models/commit/d754381a1cecdd7f17050acd72bf5bf1327bced6
    - gz current upstream: https://github.com/PX4/PX4-gazebo-models/commit/881558c8c274d0d9f21970de24333122e050b561
    - Changes: https://github.com/PX4/PX4-gazebo-models/compare/d754381a1cecdd7f17050acd72bf5bf1327bced6...881558c8c274d0d9f21970de24333122e050b561

    881558c 2024-05-29 Jacob Dahl - new lidar_v2 model and x500_lidar vehicle
2024-06-17 19:04:15 -04:00
Sihyun 1bc006b4f5 fmu-v6xrt: Fix redundant 'fi' 2024-06-17 17:26:22 -04:00
Jacob Dahl 8a08418a1f drivers/magnetometer: ist8310: more efficient probe() 2024-06-17 17:01:14 -04:00
Nuno Marques 377e2d7523 src: drivers: uavcan: move UAVCAN_ECU_MAXF and UAVCAN_ECU_FUELT fetch to init and make reboot required 2024-06-17 12:58:46 -07:00
Nuno Marques cec0d7c66b src: drivers: uavcan: allow to set the fuel type through a parameter 2024-06-17 12:58:46 -07:00
Nuno Marques 4067ff0a59 fuel_tank_status: do not infer the consumed fuel, as the provided data is measured 2024-06-17 12:58:46 -07:00
Nuno Marques 03920f2ae3 msg: FuelTankStatus: updated field descriptions for clarity, specified default values and handling of NaN and unknown cases 2024-06-17 12:58:46 -07:00
Nuno Marques 450ae033e4 modules: mavlink: only include FUEL_STATUS stream if the dialect includes it 2024-06-17 12:58:46 -07:00
Nuno Marques a8cb5a7715 Add fuel tank status report support
* Adds support to DroneCAN FuelTankStatus messages
* Adds fuel_tank_status uORB message
* Adds FUEL_STATUS MAVLink stream
* Adds parameter to define max fuel tank capacity
2024-06-17 12:58:46 -07:00
Nuno Marques 954225a5c0 submodules: mavlink: bring latest definitions as per Thu, Jun 6 2024 2024-06-17 12:58:46 -07:00
Daniel Agar 206488b844 ekf2: innovation sequence monitoring for all aid sources
- add new 'innovation_filtered' and 'test_ratio_filtered' fields to
   estimator_aid_source topics
2024-06-17 15:30:42 -04:00
David Sidrane 1c657a59b1 px4_fmu-v5_stackcheck:Fit in flash 2024-06-17 15:21:30 -04:00
David Sidrane f726c0e187 spracing_h7extreme:rcc Tack upstream name fix 2024-06-17 15:21:30 -04:00
David Sidrane 636cb57f27 NuttX with Backport Adding stm32h755II 2024-06-17 15:21:30 -04:00
Peter van der Perk aa55a777ba Add px4_sitl_allyes to CI target 2024-06-17 15:04:31 -04:00
Silvan Fuhrer c0d693bc50 v5_stackcheck: disable CONFIG_DRIVERS_TONE_ALARM
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2024-06-17 12:26:53 -04:00
Thomas Frans cd4c495377 drivers/gps: extract Septentrio into new standalone drivers/gnss/septentrio module (#22904)
Having a generic interface over the GPS drivers makes dedicated
functionality for each driver harder. Move the Septentrio driver into
its own module under the `gnss` driver directory, and let it have its
own parameters for only the functionality it requires. This also helps
with adding new features because they only need to be implemented for
the driver that wants it, simplifying testing.
2024-06-17 12:25:24 -04:00
Daniel Agar f9160853fa rc_update: purge deprecated RC switch parameters
- these are old RC switch configuration parameters that haven't been used for
   years, but were hardcoded into old versions of QGC
 - RC_MAP_RATT_SW, RC_MAP_POSCTL_SW, RC_MAP_ACRO_SW, RC_MAP_STAB_SW, RC_MAP_MAN_SW deleted

 -
2024-06-17 12:03:13 -04:00
Jacob Dahl 2515b8fc63 kconfig: common_distance_sensor: remove MB12XX 2024-06-17 12:01:13 -04:00
Jacob Dahl 96360f3069 boards: fmu-v5: disable FAKE_GPS and SD_BENCH 2024-06-17 12:01:13 -04:00
Silvan Fuhrer ad58808cf3 update gazebo classic (#23276)
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2024-06-17 16:25:56 +02:00
Jacob Dahl fcb479cd3d platforms: nuttx: SerialImpl: fix poll timeout and integer underflow (#23248)
* platforms: nuttx: SerialImpl: fix poll timeout

* platforms: posix: SerialImpl: fix poll timeout
2024-06-14 17:43:15 -08:00
Isidro 4fe0bb4762 fix find in "files_to_check_code_style.sh" (#23269)
* refactor: not necessary  "if [ -f "$FILE" ]"

* fix: exclude directories

---------

Co-authored-by: Isidro Arias <isidro.arias@wslw.es>
2024-06-14 17:41:05 -08:00
Julian Oes 8258cd63ba ist8310: do reset before WHOAMI call (#23161)
* ist8310: do reset before WHOAMI call

Apparently, the IST8310's WHOAMI register is writeable. Presumably, this
can get corrupted by bus noise. It is only reset if powered off for 30s.

Therefore, we do a reset before doing the WHOAMI.

* ist8310: improve comment

Co-authored-by: Beat Küng <beat-kueng@gmx.net>

---------

Co-authored-by: Beat Küng <beat-kueng@gmx.net>
2024-06-14 17:22:39 -08:00
Silvan Fuhrer f646f1ba98 AirspeedSelector: only update with lpos if coming from GNSS (#23268)
Compared to GNSS, alternate position observation methods are less accurate
and thus generally not good enough to do airspeed validation with.
Airspeed validation is thus disabled if no GNSS fusion is happening.

Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2024-06-14 17:10:08 +02:00
Daniel Agar c0d6b67633 matrix: Vector2/Vector4 override ops so specific Vector type is returned
- mirrored from Vector3
2024-06-14 10:53:27 -04:00
Daniel Agar 783cf9aede vscode: cmake default status bar visibility
- this is important for setting the active PX4 configuration
2024-06-14 10:52:19 -04:00
Silvan Fuhrer 3cbe2ae2b3 v5_default: remove Local Position Estimator from default build
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2024-06-14 10:52:02 -04:00
Silvan Fuhrer f4e76cd392 remove deprecated BAT_ params (#22872)
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2024-06-14 14:42:32 +02:00
Hubert f8a42bcd58 boards: add new board micoair h743 2024-06-13 14:27:33 -04:00
Marco Hauswirth db2f616400 reduce transition pusher throttle (#23262) 2024-06-12 18:10:50 +02:00
Roman Bapst 0ce64e1b92 ekf2: don't fuse optical flow samples when the current distance to the ground is larger than the reported maximum flow sensor distance
Signed-off-by: RomanBapst <bapstroman@gmail.com>
2024-06-11 21:20:40 -04:00
Silvan Fuhrer 5dd76332ba Matrix: print full matrix already if only one element is not symmetric
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2024-06-11 21:14:13 -04:00
Roman Bapst 8ad93464c7 AirspeedValidator: Remove extra delay from airspeed innovation check (#23244)
* AirspeedValidator: remove additional one second of hysteresis for triggering
innovation checks

- this check already uses an integrator and so adding more delay just makes
log analysis more difficult and does not really add any value

Signed-off-by: RomanBapst <bapstroman@gmail.com>

* removed unnecessary conditions

Signed-off-by: RomanBapst <bapstroman@gmail.com>

* AirspeedValidator: only disable innov checks if ASPD_FS_INTEG is negative

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

* get rid of unnecessary check on innovation threshold parameter

Signed-off-by: RomanBapst <bapstroman@gmail.com>

---------

Signed-off-by: RomanBapst <bapstroman@gmail.com>
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
Co-authored-by: Silvan Fuhrer <silvan@auterion.com>
2024-06-11 14:09:36 +02:00
Frederik Markus 9ececfdd65 update GCS connection loss failsafe in all gazebo models (#22299)
* update GCS connection loss failsafe in all gazebo models

Signed-off-by: frederik <frederik@auterion.com>

* cleanup and return of old parameter

Signed-off-by: frederik <frederik@auterion.com>

---------

Signed-off-by: frederik <frederik@auterion.com>
Co-authored-by: Silvan Fuhrer <silvan@auterion.com>
2024-06-11 09:50:55 +02:00
Alex Klimaj 1d8e8a1d8b boards: ark septentrio change safety led to open drain (#23247) 2024-06-10 11:04:55 -08:00
Silvan Fuhrer 30b63f6a82 AirspeedSelector: set default of ASPD_FS_T_STOP to 1 and clean up meta data
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2024-06-10 12:42:54 +02:00
Silvan Fuhrer 5513dfa95d AirspeedSelector: define start/stop delay params as floats
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2024-06-10 12:42:54 +02:00
Julian Oes 0932f50d79 mavlink: enable gimbal controls in QGC over USB 2024-06-10 21:56:37 +12:00
Julian Oes 3710a9ef6e gimbal: fix auto RC and MAVLink mode
This fixes various edge cases when input is set to both: RC and
MAVLink gimbal protocol v2.

Specifically:
- We no longer immediately reset primary control if there is no update,
  otherwise this will reset immediately after an commands.
- Talking of commands: GIMBAL_MANAGER_CONFIGURE no longer switches
  control to MAVLink but only an actual incoming setpoint command does.
- And incoming setpoint command only triggers UpdatedActiveOnce which
  means we will check RC again afterwards and if there is big movement
  switch back to RC. That's the intuitive thing to do until we have
  better reporting about who/what is in control.
- Also, with RC we no longer always set us to be in control but only on
  major movement.
2024-06-10 21:56:37 +12:00
Ruoyu Wang b9aa8818a4 kakute f7/h7/h7mini/h7v2: fix EKF2_IMU_CTRL typo 2024-06-10 11:08:33 +02:00
Beat Küng 52ac9336c4 boards: change default IP from 192.168.0.3 to 10.41.10.2
192.168.0.x is often used by routers for WIFI/ethernet networks, and thus
can create conflicts.
This can happen for example if a companion is connected to the FMU via
ethernet and at the same time connects to a WIFI network as DHCP client.
2024-06-10 11:05:50 +02:00
Beat Küng a90cdcfe80 boards/px4/fmu-v{5,6}x: enable uxrce_dds_client on ethernet by default 2024-06-10 11:05:50 +02:00
Beat Küng 2524ac8c2b boards/px4/fmu-v{5,6}x: do not enable mavlink on ethernet for skynode 2024-06-10 11:05:50 +02:00
asifpatankar 746322d6d2 Update ubuntu.sh with Linux Mint 21.3 version 2024-06-10 16:20:48 +12:00
Jacob Dahl 2882e5c4e1 platforms: nuttx: SerialImpl: fix hang if baudrate is 0 (#23238) 2024-06-07 22:08:21 -06:00
chfriedrich98 5c64a3ed93 Rover Ackermann module (#23024)
New module handling Ackermann rover guidance and control.
Only enabled in SITL and in the rover builds for now.
2024-06-07 17:15:12 +02:00
Silvan Fuhrer 831160389e VTOL Tailsitter: remove throttle spike also for quad-chute
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2024-06-07 16:11:59 +02:00
Silvan Fuhrer 199a2f43be VTOL Tailsitter: treat back transition abort like a front transition
for throttle blending.

Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2024-06-07 16:11:59 +02:00
Silvan Fuhrer b5988ed38f VTOL Tailsitter: add back transition throttle blending
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2024-06-07 16:11:59 +02:00
Silvan Fuhrer f119b15ff1 VTOL Tailsitter: set differential thrust to 0 in first 50ms of front transition
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2024-06-07 16:11:59 +02:00
Silvan Fuhrer 77a3099154 VTOL Tailsitter: fix motor spikes to 0 when starting back transition
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2024-06-07 16:11:59 +02:00
Silvan Fuhrer 3a2b973aba VTOL Tailsitter: add front transition throttle blending
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2024-06-07 16:11:59 +02:00
Silvan Fuhrer a081354933 VTOL tailsitter: fix motor spike to 0 when finishing front transition
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2024-06-07 16:11:59 +02:00
Silvan Fuhrer 1f7b4843dd FW position control: specify modes where FW_PN_R_SLEW_MAX applies
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2024-06-07 09:32:23 +02:00
Silvan Fuhrer b8998933c9 AttitudeSetpoint.msg: FRD instead of NED for body frame
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2024-06-07 09:32:23 +02:00
Silvan Fuhrer b53d2cdf39 battery: reset current filter when transitioning to FW (#22256)
VTOLs consume a lot more power in hover copared to fixed-wing fligt.
The remaining flight time thus should reset if one switches from MC to FW,
as otherwise it takes several minutes until the estimate goes down.
2024-06-07 09:28:37 +02:00
Joao Mario Lago 2ce92a678d arch.sh: Fix syntax error
Fix error of script failing with following error:
PX4-Autopilot/Tools/setup/arch.sh: line 99: syntax error near unexpected token `;'
2024-06-06 21:55:05 -04:00
Julian Oes f6b65e68cc boards: update all bootloaders 2024-06-07 13:16:17 +12:00
Julian Oes 7137780654 Makefile: add missing bootloader targets
Quite a few were missing, and everything on one line was hard to diff.
2024-06-07 13:16:17 +12:00
Chris Lalancette b1bf0ff888 Remove argparse from the requirements.txt.
The argparse module has been builtin to Python since
Python 3.2, released in 2011 (see
https://docs.python.org/3/whatsnew/3.2.html).  Further,
the argparse pip module has not been released or updated
since 2015, and lacks some of the features of the modern,
built-in argparse.  Drop the pip installed version in
favor of the built-in version.

Signed-off-by: Chris Lalancette <clalancette@gmail.com>
2024-06-06 10:09:11 -04:00
Daniel Agar fb659ae200 ekf2: stopMagFusion() reset yaw_align if mag heading was active
- we also need to clear mag_aligned_in_flight
2024-06-06 10:08:20 -04:00
Daniel Agar bfe3c86aeb ekf2: merge mag yaw angle observability into heading consistency
- the additional hyteresis logic for "yaw angle observable" was
   needed when it controlled time dependent mag_3d
2024-06-06 10:07:31 -04:00
Rowan Dempster bc51eb37eb Only close server when errno is not EINTR 2024-06-06 07:40:12 +02:00
Matthias Grob 68769ea0ec mavlink: use reference instead of pointer to access the MAVLink instance from protocol classes 2024-06-05 16:13:52 +02:00
Matthias Grob 9a7a977625 mavlink_receiver: put all message handling in the same function 2024-06-05 16:13:52 +02:00
Daniel Agar 157f7cf40b simplify world_magnetic_model interface (degrees in, degrees out)
- this hopefully helps avoid accidental mis-use
 - try to clarify units everywhere
2024-06-04 09:14:36 -04:00
Daniel Agar 5fa3b9d86a lib/world_magnetic_model: fetch_noaa_table.py refactor and scaling improvements
- upate to NOAA grid API to build WMM table in one pass
 - refactor declination/inclination/totalintensity table printing to
   shared method
 - compute scaling factor to maximize resolution
2024-06-04 09:14:36 -04:00
Jacob Dahl 22a38c0c6d drivers/imu: sch16t improvements (#23221)
* individual perf counters for frame errors
* don't treat saturation as an error
* added parameters for gyro/accel LPF and decimation ratio
2024-06-03 22:15:00 -04:00
Alex Klimaj 36ec576c0f boards: ark-pi6x remove ekf delay param defaults (#23177) 2024-06-03 17:52:17 -08:00
Matteo Del Seppia a8617cf681 Fix float and uint64_t comparison (#23199)
fix: ControlAllocator float and int comparison bug

There was an incorrect comparison between a float variable `dt` and a `uint64_t` value representing 5 milliseconds (`5_ms`). As a result, `do_update` could never become true even if the last torque setpoint was received more than 5 milliseconds before.

To solve this, the `5_ms` value has been converted to seconds (0.005f) for the comparison with `dt`.
2024-06-03 17:48:38 -08:00
Alex Klimaj de0e73d505 vscode cmake-variants fix ark_septentrio-gps (#23222) 2024-06-03 19:43:26 -06:00
Matteo Del Seppia de5087ae3e Patch for issue #22818 (#23170)
When calling "differential_drive stop" a missing return statement was causing a segmentation fault due to access to already freed memory.
2024-06-03 21:10:28 +02:00
Peter van der Perk c22f725d85 fmu-v6xrt: Support RC telemetry 2024-06-03 08:31:18 -04:00
Peter van der Perk 7fab93ede8 fmu-v6xrt: Fix flash configuration
Fixes correct dummy cycle count of 20
2024-06-03 08:26:48 -04:00
bresch 0a665a526c ekf2: add mag type init
In this mode, the mag is used to inilialize the heading.
During flight, the heading is predicted using gyros and corrected
by GNSS measurements if available.
2024-06-03 13:28:12 +02:00
Beat Küng ca112fea8a fix commander: make sure to count all valid mags in preflight check
Previously, if a mag was not required (not index 0 and not used by ekf),
it was not counted in num_enabled_and_valid_calibration.
If a user set SYS_HAS_MAG to e.g. 3, it would then trigger a preflight
failure, even if there were 3 calibrated and enabled mags.
2024-05-31 12:30:34 -04:00
bresch 53210dd8f3 ekf2-mag: with NE aiding, constrain heading drift only before takeoff
After takeoff, the heading is easily observable
2024-05-31 10:38:17 -04:00
bresch 3dac9af09e ekf2-mag: do not reset on WMM change when NE aiding is active
The mag field states are observed. No need to reset them.
2024-05-31 10:38:17 -04:00
bresch ee765e7859 ekf2-mag: do not reset when NE aiding is active 2024-05-31 10:38:17 -04:00
bresch 6515935b52 ekf2-mag: do not limit the earth mag field estimate
The EKF can recover from an initial bad earth mag field estimate.
Constraining the field is not necessary and can lead to an unpredicted
behavior of the filter.
Declination fusion is safe to run even when the horizontal field is 0
2024-05-31 10:38:17 -04:00
bresch 774b6ed3b8 ekf2-mag: do not use yaw emergency estimator to reset mag states
On slowly moving vehicles (e.g.: boats, rovers), the yaw estimator has
worse convergence than the main EKF. Resetting the mag states using the
yaw estimator as reference can lead to poor heading. Also, the EKF can
recover really well from initially incorrect mag states.
2024-05-31 10:38:17 -04:00
bresch c3d984703c ekf2-mag: remove immediate declination fusion after reset 2024-05-31 10:38:17 -04:00
bresch a6007e4b93 ekf2-mag: turn around update_all_states condition
Non-functional
2024-05-31 10:38:17 -04:00
bresch c11c75d32e ekf2-mag: always add process noise until initial value 2024-05-31 10:38:17 -04:00
Eric Katzfey 493c9e49db uORB: ORBSet don't allow duplicate insertion
* fixes a small memory leak in uORBManager.cpp (if using ORB_COMMUNICATOR)
2024-05-30 16:53:48 -04:00
asimopunov 42f4e02d7e bsondump: add check if bson document size is set to zero and set to decoded size (#23088) 2024-05-30 14:52:19 +02:00
Peter van der Perk cd93e2982c dshot: telemetry esc_status use sequential numbering for each motor
channel != telemetry_index, we've to count from 0 and increment for each enabled ESC
2024-05-30 04:56:42 -04:00
Peter van der Perk 7982f54a6a dshot: refactoring 2024-05-30 04:56:42 -04:00
Peter van der Perk ff6966da57 imxrt: dshot fix erpm calculation by implementing 3-bit exponent and 9-bit period 2024-05-30 04:56:42 -04:00
Peter van der Perk 3874b4c55d imxrt: move flexio irq handler to itcm 2024-05-30 04:56:42 -04:00
Peter van der Perk 5d2fda6172 dshot: bdshot fix esc offline/online checks 2024-05-30 04:56:42 -04:00
Peter van der Perk 0e41f9730f imxrt: dshot improve state machine reduce's no response count 2024-05-30 04:56:42 -04:00
Peter van der Perk f3ef0d6610 dshot: fix clearing out esc status 2024-05-30 04:56:42 -04:00
Peter van der Perk b0cb697f71 imxrt: dshot add 1060 support and use channels instead of timers 2024-05-30 04:56:42 -04:00
Peter van der Perk e2969952d3 drivers: dshot: prepare to extend for bidrectional dshot 2024-05-30 04:56:42 -04:00
Peter van der Perk 2de0af52e8 px4_fmuv6xrt: bidirectional dshot driver 2024-05-30 04:56:42 -04:00
Peize-Liu 2f4d6b6fac [Fix][hkust_nxt-dual]:board hkust_nxt-dual fix hw_config.h missing APP_RESERVATION_SIZE param (#23204) 2024-05-30 10:35:04 +02:00
Silvan Fuhrer efe2a52eb4 ROMFS: remove MIS_DIST_1WP customizations in airframes
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2024-05-29 21:00:35 -04:00
Silvan Fuhrer 752051470f Navigator: increase default of MIS_DIST_1WP to 10km
The previous default of 900m leads to many warnings if left
unchanged, especially if the vehicle is already in-air when
the Mission is started.

Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2024-05-29 21:00:35 -04:00
bresch 993782cffa ekf2: only trigger position timeout reset when hpos fusion is active 2024-05-29 20:49:14 -04:00
Silvan Fuhrer 0379048ad2 mavsdk_tests: increase acceptance radius for position check on offboard landing
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2024-05-29 20:46:26 -04:00
Eric Katzfey ae34e39b7e QuRT: Increased the size of the memory heap available to qurt platform (#23194)
* Increased the size of the memory heap available to qurt platform
2024-05-29 20:44:40 -04:00
Daniel Agar f3d152741c boards: sky-drones_smartap-airlink_default disable gyro_fft module to save flash 2024-05-29 20:38:49 -04:00
Daniel Agar b36f47535e boards: px4_fmu-v6c_default disable gyro_fft module to save flash 2024-05-29 20:38:49 -04:00
Daniel Agar a80c96e575 boards: px4_fmu-v5x_test disable payload_deliverer module to save flash 2024-05-29 20:38:49 -04:00
Per Frivik 267cb9906e integrationtests: mavros increase threshold for yaw_error_std 2024-05-29 11:11:09 -04:00
David Sidrane f655d1be9b Update px4_fmu-v6xrt Bootloader 2024-05-29 11:08:49 -04:00
David Sidrane 3beb57aae1 px4_fmu-v6xrt & bootloader:Bootloader enusres that ITCM memory is writable before jump to APP 2024-05-29 11:08:49 -04:00
David Sidrane d79c5f170b bootloader/common/bl.c:Fixed Wrong vec_base caculation - only effects imxrt 2024-05-29 11:08:49 -04:00
David Sidrane 04e0d3475f nxp/imxrt_common/main:Fix Breakage from a9962dc 2024-05-29 11:08:49 -04:00
Matthias Grob daa89ba30a Jankinsfile-compile: add missing comma after ark_pi6x_default 2024-05-29 15:42:41 +02:00
Jacob Dahl a4650fd70d HealthCheck: added health check for logger to report if it's running (#22781) 2024-05-29 11:56:50 +02:00
Hamish Willee b5627f487f camera_trigger: module docs for camera trigger driver (#23104) 2024-05-29 11:37:27 +02:00
Matthias Grob d1db0addf9 CameraFeedback: shorten line length such that documentation parser works
This broke in 4f64acb352 and was also flagged by CI in the pr and since then.
2024-05-29 11:24:53 +02:00
Silvan Fuhrer 032ae69eee VTOL: remove _dt passing as it's no longer used (and was wrong)
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2024-05-28 14:54:33 +02:00
Silvan Fuhrer f8fe7c7aa3 VTOL Standard: fix transition pusher motor slew rate
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2024-05-28 14:54:33 +02:00
Matthias Grob dfee9ca4c6 MAVLink: remove never used _mavlink_link_termination_allowed 2024-05-28 10:41:00 +02:00
Silvan Fuhrer 1206005ed2 RTL_status: improve comment
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2024-05-27 12:03:16 +02:00
Silvan Fuhrer 42bca65cbf RTL_mission_reverse: start from previous WP if RTL is triggered while in Mission
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2024-05-27 12:03:16 +02:00
Silvan Fuhrer b9d3b9f211 RTL_mission_fast: continue mission if RTL is triggered while in Mission
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2024-05-27 12:03:16 +02:00
bresch f9e2ab8d44 msg-rates-setpoint: fix frame name NED -> FRD 2024-05-27 09:35:34 +02:00
Jacob Dahl da35c4adce cdcacm_autostart: handle USB power only (#23183) 2024-05-25 17:16:34 -06:00
bresch ccbcbbe268 wind_est_replay: report scale instead of inverse_scale
The estimator internally estimates the scale inverse, but the interface
should be the scale as "airspeed_corrected = scale * airspeed"
2024-05-24 17:25:39 +02:00
Hamish Willee 4f64acb352 Docs for camera_feedback module (#23103)
* Docs for camera_feedback module

* Update src/modules/camera_feedback/CameraFeedback.cpp

* Update src/modules/camera_feedback/CameraFeedback.cpp
2024-05-23 08:44:34 +10:00
Beat Küng e1ffc2cdaa commander: add check for 5V overcurrent 2024-05-22 09:34:04 +02:00
Julian Oes a9962dc44d boards: update all bootloaders 2024-05-22 18:18:55 +12:00
Julian Oes 5bace785e0 px_uploader: catch serial exception correctly
Signed-off-by: Julian Oes <julian@oes.ch>
2024-05-22 18:18:55 +12:00
Julian Oes e4fd80b6ef bootloader: remove unused/duplicate defines 2024-05-22 18:18:55 +12:00
Julian Oes 6ebb2b33df bootloader: track ArduPilot protocol
Just so we don't conflict on these commands in the future.
2024-05-22 18:18:55 +12:00
Julian Oes 8fe8f2fcb3 px_uploader.py: clean up various tidbits
Includes:
- Remove some of the outdated Python2 checks and compatibility.
- Try not catch all exceptions but only the expected ones. Otherwise,
  this makes it really hard to debug if anything unexpected actually
  goes wrong.
- Make use of fstrings.
- Make output slightly prettier.

Signed-off-by: Julian Oes <julian@oes.ch>
2024-05-22 18:18:55 +12:00
Julian Oes 7c4507b6d6 bootloader: add bootloader version
This adds a new protocol extension which allows to get the bootloader
version.

The bootloader version is different from the bootloader protocol
revision which has stabilized at 5 and is not easy to update unless a
bootloader is actually breaking the protocol. The reason being that both
the Python script as well as the uploader used in QGC will not attempt
to load firmware if they don't know the bootloader version, so it could
basically be considered a "breaking" protocol revision.

Signed-off-by: Julian Oes <julian@oes.ch>
2024-05-22 18:18:55 +12:00
Julian Oes 21e550fdba tools/bootloader: add force-erase option
If the STM32H7 fails to program or erase a full chunk of 256 bytes, the
ECC check will trigger a busfault when trying to read from it.

To speed up erasing and optimize wear, we read before erasing to check
if it actually needs erasing. That's when a busfault happens and the
erase time outs.

The workaround is to add an option to do a full erase without check.

Credit goes to:
https://github.com/ArduPilot/ardupilot/pull/22090

And the protocol option added to the bootloader is the same as for
ArduPilot, so compatible.

Signed-off-by: Julian Oes <julian@oes.ch>
2024-05-22 18:18:55 +12:00
Jacob Dahl 4a13e495d7 boards: ark: pi6x: CONFIG_DRIVERS_CDCACM_AUTOSTART=y (#23163) 2024-05-21 19:49:40 -06:00
Konrad 664a0f2cda HomePosition: Add minimum position change needed to be recognised as new home position 2024-05-21 09:11:56 +02:00
alexklimaj 1c213fa760 boards: arkv6x ark_pi6x change mavlink dialect to development 2024-05-20 16:07:34 -04:00
Jacob Dahl e72ecdbefb drivers/imu: new Murata SCH16T IMU driver (#22914)
---------

Co-authored-by: alexklimaj <alex@arkelectron.com>
2024-05-20 14:38:19 -04:00
Jacob Dahl 70304fe715 [mavlink] Parameter to always start on USB (#22234)
* usb: Added parameter to enable always starting mavlink on USB.

    Refactored cdcacm_init into a module and added a paramter to allow always starting mavlink on
    USB, also added a paramter to choose the mode. The current default behavior is to wait and listen
    for data on USB and auto-detect the protocol (mavlink, nsh, ublox). This results in the mavlink
    stream not starting until something else on the mavlink network sends a packet first. The new
    default behavior is to always start mavlink.

    Added parameters
    MAV_USB_ENABLE -- default 1 (always start mavlink on USB)
    MAV_USE_MODE -- default 3 (onboard)

* added 3 retries for opening serial port in mavlink, removed sleep before sercon

* added DRIVERS_CDCACM_AUTOSTART to ark-v6x default.px4board

* added CONFIG_DRIVERS_CDCACM_AUTOSTART=y to default.px4board for boards with CONFIG_CDCACM in their nsh/defconfig

* format

* remove PGA460 from COMMON_DISTANCE_SENSOR to save flash

* remove LIS2MDL from COMMON_MAGNETOMETER to save flash

* disable CONFIG_DRIVERS_CDCACM_AUTOSTART for fmu-v5 protected.px4board

* moved and renamed parameters, removed mode logic in mavlink

* changed parameter names, added mode none

* remove parameters from mavlink
2024-05-20 12:35:29 -06:00
Peter van der Perk 6b0ac49daf hardfault_log: Add jump to 0x0 & write 0x0 faults 2024-05-17 14:43:23 -04:00
Peter van der Perk ebfa53286f dronecan: SocketCAN driver check size before copying
Avoids memory corruption if we get packets to big
2024-05-17 14:39:52 -04:00
Peter van der Perk 470bea9ba8 Update NuttX
Fixes imxrt1170 mpu config for extra checks
2024-05-17 14:32:43 -04:00
Daniel Agar d359f6236e ekf2: symforce zero more efficiently (#23133)
- increase symforce CppConfig zero_initialization_sparsity_threshold so
   that a Matrix setZero() call is performed instead of individually zeroing

Co-authored-by: bresch <brescianimathieu@gmail.com>
2024-05-17 11:20:30 +02:00
bresch ea39032b45 mag_ctrl: combine common conditions for mag_hdg and mag_3d 2024-05-17 11:19:04 +02:00
bresch d796009302 mag_ctrl: do not fuse synthetic mag but do not zero the innovation 2024-05-17 11:19:04 +02:00
Daniel Agar bb5dfc7d51 integrationtests: mavros/mission_test.py bump yaw_error_std threshold (heading init is delayed, but not wrong) 2024-05-17 11:19:04 +02:00
Daniel Agar 5173830718 ekf2: mag fusion don't update all states or tilt by default
- cleanup some of the legacy mag flags
2024-05-17 11:19:04 +02:00
Daniel Agar bfc39cf341 ekf2: mag control always populate estimator aid src 2024-05-17 11:19:04 +02:00
Daniel Agar 95ae5a657d ekf2: merge mag_3d_control + mag_control 2024-05-17 11:19:04 +02:00
bresch b42799fac2 wind_est_replay: allow setting the initial scale factor 2024-05-17 09:17:08 +02:00
bresch 440465702e wind_est_replay: fix cov matrix format and data indexing 2024-05-17 09:17:08 +02:00
fury1895 6a966ab065 px4/fmu-v6x: set mavlink dialect to development 2024-05-17 07:51:14 +02:00
Alexis Guijarro 5fe955c243 mRo Control Zero Classic: Definition for GPS2 by default added 2024-05-16 09:45:33 -07:00
alexklimaj ecf4af7cf7 boards: ark cannode add ADIS16507 driver 2024-05-16 09:56:25 -04:00
Thomas Frans 9fd1c54570 style(editorconfig): update newline setting
The setting wasn't consistent with the one used in the Visual Studio
Code settings, which caused different newline formatting depending on
whether the user uses Visual Studio Code or another editor that uses
EditorConfig.
2024-05-15 11:40:11 -04:00
dirksavage88 ee2a8c9bda increase lp default stack to 2000
Signed-off-by: dirksavage88 <dirksavage88@gmail.com>
2024-05-15 11:08:48 -04:00
Hamish Willee 2e7a99ac41 VectorNav.cpp - fix docs link to usage guide 2024-05-15 11:07:50 -04:00
Konrad 17916b7fdc uxcre_dds_client: use topic name as defined in the dds_topics.yaml to register stream 2024-05-15 11:07:01 -04:00
Eric Katzfey 293389abf3 Minor updates to the VOXL 2 board README file 2024-05-14 12:25:22 -04:00
Eric Katzfey 839f5bbb12 Removed obsolete voxl 2 board default parameter setting 2024-05-14 11:08:43 -04:00
Peter van der Perk 253208fdd4 fmu-v6xrt: Add I2C driver launcher 2024-05-08 11:34:13 -04:00
Peter van der Perk 5789803665 fmu-v6xrt: Enable debug features for more verbose hardfault output 2024-05-08 06:14:24 -04:00
Julian Oes b1b9c8fd99 gps: add note to param
This notes the reference yaw angle for the Septentrio Mosaic-H.

It's unfortunately a bit tricky in that Unicore has the main antenna
in front by default while Septentrio decided to put the aux antenna in
front.

Signed-off-by: Julian Oes <julian@oes.ch>
2024-05-07 21:15:44 -04:00
Benjamin Philipp Ketterer 5d025e6d3d increased uxrce-dds stack size to prevent overflow 2024-05-07 21:13:58 -04:00
alexklimaj b9a696d025 boards: ark septentrio gps add iis2mdc 2024-05-07 21:12:15 -04:00
RomanBapst ca9cb2214f quadchute: fixed sign for handling altitude resets
Signed-off-by: RomanBapst <bapstroman@gmail.com>
2024-05-07 16:01:09 +02:00
muramura b5467d88f7 gps: Change the IF statement to a SWITCH statement 2024-05-07 15:58:15 +02:00
Konrad 6984e6da7f TECS:use tas_setpoint instead of measured tas for specific kinetic energy calculation 2024-05-07 14:20:07 +02:00
Konrad f56f4c7033 TECS: enable specific energy weights to have a value up to 2 2024-05-07 14:20:07 +02:00
Konrad f8a20e1964 TECS: increase airspeed control limit for fast descend 2024-05-07 14:20:07 +02:00
Konrad 6a789b54c6 TECS: allow for fast descend up to maximum airspeed. Use pitch control loop to control max airspeed while giving minimal throttle. 2024-05-07 14:20:07 +02:00
Beat Küng e17faece3d mavlink_ftp: do not store reply on kErrNoSessionsAvailable
This would interfere with an existing ongoing session
2024-05-07 07:26:12 +02:00
Beat Küng f002b08e6a mavlink_ftp: ensure there's enough space for the 2. path in _workRename
Prevents accessing invalid memory when reading ptr + oldpath_sz + 1 and
oldpath_sz fills out the whole or N-1 bytes of the payload.
2024-05-07 07:26:12 +02:00
Beat Küng f16115d8be mavlink_ftp: handle relative paths correctly
by ensuring there's a '/' in between when concatenating the path with
_root_dir.
2024-05-07 07:26:12 +02:00
Julian Oes f04d17d160 Tools: skip submodule check in CLion
Same as what's required for VSCode.

Signed-off-by: Julian Oes <julian@oes.ch>
2024-05-05 11:33:24 +12:00
Beat Küng 9e6dcb1f60 fix mavlink: cmd_logging_{start,stop}_acknowledgement flags were not reset
Regression from https://github.com/PX4/PX4-Autopilot/pull/23043

Also avoids a race condition by making sure the command ack is handled
before sending out the mavlink message (in case an external component
reacts immediately to the mavlink message).
2024-05-03 06:59:55 +02:00
Alex Klimaj 36ea872e72 drivers: adis16507 reschedule reset after failed self test 2024-05-02 17:52:26 -04:00
Daniel Agar 224d6f2fa7 ekf2: ekf_helper.cpp remove duplicate method comments (comment on declaration only, not definition) 2024-05-02 17:40:58 -04:00
Daniel Agar c1fc893cca ekf2: move gyro/accel/wind covariance reset helpers to covariance.cpp 2024-05-02 17:40:58 -04:00
Daniel Agar 63c2ea33c1 ekf2: move Ekf::resetQuatStateYaw() to yaw_fusion.cpp 2024-05-02 17:40:58 -04:00
Daniel Agar 1ca4056b6a ekf2: delete unused Ekf::resetImuBias() 2024-05-02 17:40:58 -04:00
Daniel Agar 6b3b66619b ekf2: move baro dynamic pressure compensation to aid_sources/barometer 2024-05-02 17:40:58 -04:00
Daniel Agar 4f0eb72fc9 ekf2: move IMU down sampler to imu_down_sampler/ 2024-05-02 17:40:58 -04:00
Daniel Agar 58637d3825 ekf2: move terrain estimator and derivation to terrain_estimator/ 2024-05-02 17:40:58 -04:00
Daniel Agar 58de8cbb77 ekf2: move fake_height, fake_pos, zero_innovation_heading to aid_sources/ 2024-05-02 17:40:58 -04:00
Daniel Agar 49c782bad9 ekf2: move bias estimators to bias_estimtor/ 2024-05-02 17:40:58 -04:00
Daniel Agar e262fde4dc ekf2: move aux global position fusion to aid_sources/aux_global_position 2024-05-02 17:40:58 -04:00
Daniel Agar b8d46e60a5 ekf2: move mag fusion to aid_sources/magnetometer 2024-05-02 17:40:58 -04:00
Daniel Agar 3f6c3e0649 ekf2: move output predictor to output_predictor/ 2024-05-02 17:40:58 -04:00
Daniel Agar 24fdd696cb ekf2: move range finder files to aid_sources/range_finder 2024-05-02 17:40:58 -04:00
Daniel Agar 3dbd3f8a1a ekf2: move airspeed fusion file to aid_sources/airspeed 2024-05-02 17:40:58 -04:00
Daniel Agar 789b2b3d8a ekf2: move sideslip fusion file to aid_sources/sideslip 2024-05-02 17:40:58 -04:00
Daniel Agar eb8ee74066 ekf2: move baro height file to aid_sources/barometer 2024-05-02 17:40:58 -04:00
Daniel Agar de178b1435 ekf2: move gravity fusion file to aid_sources/gravity 2024-05-02 17:40:58 -04:00
Daniel Agar 78f2ccbb60 ekf2: move optical flow files to aid_sources/optical_flow 2024-05-02 17:40:58 -04:00
Daniel Agar fcf94e7670 ekf2: move GNSS files to aid_sources/gnss 2024-05-02 17:40:58 -04:00
Daniel Agar 31ae5b77fe ekf2: move drag_fusion file to aid_sources/drag 2024-05-02 17:40:58 -04:00
Daniel Agar c3fb0b1090 ekf2: move auxvel file to aid_sources/auxvel 2024-05-02 17:40:58 -04:00
Daniel Agar b5d1e87368 ekf2: move EV files to aid_sources/external_vision 2024-05-02 17:40:58 -04:00
Peter van der Perk f382e585e8 sd_bench: Add U option for forcing byte aligned
Co-authored-by: David Sidrane <david.sidrane@nscdg.com>
2024-05-02 12:33:25 -04:00
Daniel Agar c64104e9f1 sensors/vehicle_angular_velocity: silence gyro selection fallback warning (PX4_WARN -> PX4_DEBUG)
- this warning was to catch any potential errors in sensor selection
   relative to what's actually available, we don't need to complain
   about initial selection before the EKF selector is available
2024-05-02 11:53:31 -04:00
David Sidrane c13e3bae12 px4_fmu-v6xrt:Support_MMCSD_MULTIBLOCK with preflight 2024-05-01 20:45:42 -04:00
David Sidrane a3e1dcce4b NuttX with imxrt_sd-preflight backport 2024-05-01 20:45:42 -04:00
Daniel Agar 33234f4dc0 drivers/ins/vectornav: add missing sensor_gps velocity magnitude 2024-05-01 20:40:28 -04:00
Julian Oes e79993a316 gps: split enum after rebase
Signed-off-by: Julian Oes <julian@oes.ch>
2024-05-01 14:42:58 -04:00
alexklimaj b308c4fbcc boards: ark rtk gps safety led open drain 2024-05-01 14:42:58 -04:00
alexklimaj c90ccabbe0 gps: add ZED-F9P-15B 2024-05-01 14:42:58 -04:00
alexklimaj 2498ce6a5c boards: add iis2mdc mag to ark pi6x 2024-04-30 21:26:42 -04:00
alexklimaj 67b39314bf boards: update ark_pi6x EKF delays 2024-04-30 21:26:42 -04:00
Daniel Agar b6da0b141d ekf2: GPS yaw only invalidate yaw_align if stopping due to fusion failure 2024-04-29 21:04:21 -04:00
Beat Küng 547209e1dc libevents: update submodule
And remove obsolete libevents_definitions.h
2024-04-29 07:22:40 -07:00
bresch 9dc7719d4a ekf2: Only reset to GNSS heading if necessary
When North-East (e.g.: GNSS pos/vel) aiding is active, the heading
estimate is constrained and consistent with the vel/pos aiding. Reset to
GNSS heading should only occur if no N-E aiding is active or if the
filter is not yes aligned. Otherwise, just wait for the consistency
check to pass again (will pass at some point if the heading uncertainty
of the filter is getting too high).
2024-04-29 07:22:01 -07:00
Jukka Laitinen 6435e25929 commander: Use PX4_STACK_ADJUSTED to increase stack for 64-bit targets
Signed-off-by: Jukka Laitinen <jukkax@ssrc.tii.ae>
2024-04-29 08:11:54 +02:00
Hamish Willee 902712b97f LogMessage.msg - expand out descriptive string (#23054) 2024-04-29 14:02:09 +12:00
Peter van der Perk 500332e424 imxrt: flexpwm remove 1:1 mapping requirement 2024-04-27 07:57:32 -04:00
Silvan Fuhrer 34cb69898e FW Position Controller: fix Altitude mode without valid z reference (e.g. no GPS)
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2024-04-26 10:44:40 +02:00
oravla5 f91103af6e boards: removed CONFIG_SYSTEMCMDS_REFLECT from Sky-Drones AIRLink board support 2024-04-26 09:42:06 +02:00
oravla5 9d6ac0b87a mavlink: Added MAV_{i}_HL_FREQ parameter 2024-04-26 09:42:06 +02:00
oravla5 2b2e1c9521 mavlink: Added parsing of CLI option to configure HL frequency 2024-04-26 09:42:06 +02:00
oravla5 e7b4c5903f px4_cli: Added px4_get_parameter_value function overload for float type 2024-04-26 09:42:06 +02:00
bresch 7cefc3172a estimatorCheck: get param only if handle is valid 2024-04-25 14:48:23 -04:00
murata,katsutoshi ba448fb549 MC Auto: add fixed yaw mode 2024-04-25 13:53:05 +02:00
oravla5 98b23e41f7 mavlink: fixed compilation error after var renaming 2024-04-25 08:23:32 +02:00
oravla5 283ae60a15 telemetry: removed iridium driver 2024-04-25 08:23:32 +02:00
oravla5 3cb48feb61 high_latency_stream: minor PR fix 2024-04-25 08:23:32 +02:00
oravla5 bf1266af11 mavlink: added back gimbal v1 protocol command 2024-04-25 08:23:32 +02:00
oravla5 03652beef8 commander: fixed format 2024-04-25 08:23:32 +02:00
oravla5 d0e7f2c368 high_latency_stream: heading taken from vehicle_attitude topic 2024-04-25 08:23:32 +02:00
Igor Mišić d0532f45b2 telemetry: enable iridium 2024-04-25 08:23:32 +02:00
Igor Mišić 61ca65d863 mavlink: use high_latency_data_link_lost as backup to normal data_link 2024-04-25 08:23:32 +02:00
Igor Mišić 4f8de500af iridiumsbd: update logic for detecting if the modem is not responsive 2024-04-25 08:23:32 +02:00
Igor Mišić 5be0adc779 mavlink: don't send command ACK for internal commands over Iridium 2024-04-25 08:23:32 +02:00
Igor Mišić 29af189cd0 mavlink: don't send events over Iridium 2024-04-25 08:23:32 +02:00
Igor Mišić 208909d471 mavlink: use high_latency_data_link_lost as backup to normal data_link 2024-04-25 08:23:32 +02:00
Igor Mišić de23c10b68 commander: improve handling high latency link lost/regain 2024-04-25 08:23:32 +02:00
Igor Mišić d3b853a7f9 mavlink: fix handling of transmission enable/disable
Co-authored-by: RomanBapst <bapstroman@gmail.com>
2024-04-25 08:23:32 +02:00
Igor Mišić 760bcdec2f high_latency_stream: fixed bug where fields were not updating
- topic update was checked twice in the same loop and thus
the second time the topic would never indicate to have updated

Co-authored-by: RomanBapst <bapstroman@gmail.com>
2024-04-25 08:23:32 +02:00
Igor Mišić df2cc4af05 commander: fix check for availability of high latency link
Signed-off-by: RomanBapst <bapstroman@gmail.com>
2024-04-25 08:23:32 +02:00
Beat Küng f543951e10 commander: set correct health component when reporting errors 2024-04-24 16:06:32 -04:00
Jacob Dahl 69e082c83d drivers/magnetometer: new ST IIS2MDC Magnetometer driver 2024-04-24 13:01:18 -07:00
dirksavage88 6a3e57d428 Shift vertical orientation above scaling yaw operation, cp angle sign change
Signed-off-by: dirksavage88 <dirksavage88@gmail.com>
2024-04-24 15:58:12 -04:00
dirksavage88 0f6f4c5b07 fix to orientation offsets for scaled yaw, removed unused param
Signed-off-by: dirksavage88 <dirksavage88@gmail.com>
2024-04-24 15:58:12 -04:00
Thomas Frans 65c7e034dc VSCode: add EditorConfig extension to recommended and devcontainer.json 2024-04-24 15:52:23 -04:00
Daniel Agar eb59bb9de9 simulation/gz_bridge: eliminate implicit float conversion 2024-04-24 15:51:30 -04:00
bresch b508df39a2 imu consistency: don't scale param threshold 2024-04-24 15:51:07 -04:00
bresch 8bf1cf0b15 ekf2_params: reduce "short" description 2024-04-24 15:09:57 -04:00
Silvan Fuhrer 97191bd60f autopilot_tester: for mission end timeout check take speed factor into account
And increase the (simulation time) timeouts.

Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2024-04-23 16:37:31 +02:00
Silvan Fuhrer 818e318334 autopilot_tester: reduce mission distance for wind world
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2024-04-23 16:37:31 +02:00
Silvan Fuhrer 59232c27ae autopilot_tester: use normal VTOL mission for airspeed blockage test
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2024-04-23 16:37:31 +02:00
fury1895 2683128205 PM Selector Auterion: remove INA226_SHUNT value reset (skynode only) 2024-04-23 16:02:35 +02:00
Daniel Agar bfb04ddd19 CMakeLists: install_python_requirements allow --break-system-packages 2024-04-22 12:11:53 -04:00
bresch 4cf51e5833 baro comp: set hpf optional 2024-04-22 15:59:50 +02:00
Tero Salminen e202e719b0 bmp388: check bus return code after register read
Check I2C/SPI bus transfer function return code after register
read operation.

Signed-off-by: Tero Salminen <tero.salminen@unikie.com>
2024-04-22 10:20:40 +02:00
asimopunov f95a2021cd adsb: warnings fixes & remove UTM_GLOBAL_POSITION (#21663)
- warn about full traffic conflict buffer at 1/60hz.
- add conflict expiry for buffer.
- use only events for buffer full warning. mavlink_log_critical no longer needed.
- use icao address for conflict warnings id, stop using uas_id. UTM_GLOBAL_POSITION assumed deprecated.
- stop spamming when buffer is full
- fix warning wording if buffer is full.
- remove UTM_GLOBAL_POSITION

Fixes failing unit test:
* [adsbTest] Reduce conflict timestamps - not enough time has passed in ci
- failed ci output - (passes locally with make tests TESTFILTER=AdsbConflict)
- Timestamp: 6000000000
- Time now: 457720038
- Time since timestamp: 0
- Old Conflict warning expired: 0
- --------------------
- adsb_conflict._traffic_state 0
- ../../src/lib/adsb/AdsbConflictTest.cpp:244: Failure
- Value of: adsb_conflict._traffic_state == TRAFFIC_STATE::REMIND_CONFLICT
-   Actual: false
- Expected: true
2024-04-22 10:14:39 +02:00
Juyong Shin c7725d74b4 fw offboard control mode: altitude control enabled (#23041) 2024-04-22 06:57:57 +02:00
Daniel Agar 0a7689f323 drivers/optical_flow/paa3905: fix RegisterRead udelay 2024-04-18 20:57:37 -04:00
Daniel Agar 2a328615ed drivers/optical_flow/paw3902: fix RegisterRead udelay 2024-04-18 20:57:37 -04:00
Daniel Agar ec3ceae45e ekf2: move yaw_estimator and derivation to dedicated folder 2024-04-18 15:14:59 -04:00
Eric Katzfey 2dccd6cacb Voxl ESC driver update (#23022)
* Made Serial API open the UART in NON BLOCKING mode
* Updated voxl_esc driver to latest from ModalAI fork
* Ported voxl_esc driver over to new Serial UART API
* Removed voxl_esc serial abstraction since new Serial API is already a serial abstraction
2024-04-17 15:09:35 -04:00
bresch a8a67fbf8f ekf2: set horizon using specific parameter
Some sensors can have their delay included in the timestamp. In this
case, the buffer cannot be sized using the _DELAY parameter.
2024-04-17 09:16:16 -04:00
Hamish Willee 6796945d0b Fix up notes boxes for docs (#22999)
* Fix up notes boxes for docs

* Update markdownout.py

* Update markdownout.py

* Update markdownout.py
2024-04-17 13:28:07 +12:00
Jacob Dahl ff1da2ba29 remove clip_limit contraint on INT16_MAX 2024-04-16 11:43:55 -04:00
Sergei b909cc1b5b Updated GZ submodule to the latest hash (d754381) 2024-04-16 11:36:57 -04:00
Sergei Grichine c64f5128b4 Update CMakeLists.txt - included lawn world
Added lawn world to make process to allow gz sim building like "make px4_sitl gz_r1_rover_lawn"
2024-04-16 11:36:57 -04:00
Beniamino Pozzan 2476883525 logger: add timesync_status to default logged topics
Signed-off-by: Beniamino Pozzan <beniamino.pozzan@gmail.com>
2024-04-16 11:29:35 -04:00
bresch 7a973eddce ekf2: migrate param to yaml 2024-04-16 11:14:13 -04:00
bresch 42a16bd91d order yaml fileds 2024-04-16 11:14:13 -04:00
Kalyan Sriram 2fe4fec491 Add python script to translate C param to new yaml file 2024-04-16 11:14:13 -04:00
JaeyoungLim 05cd850ae3 Document vehicle attitude message 2024-04-16 16:44:56 +02:00
Eric Katzfey 94d496605a Voxl new board specific module (voxl_save_cal_params) to save calibration parameters (#22993)
* Added Voxl board specific module to save calibration parameters in QGC format
2024-04-15 16:10:22 -04:00
Eric Katzfey d908b68c78 lib/rc/dsm: update proto init to have reset incorporated as well (#22995)
* update voxl2-slpi spektrum_rc driver
2024-04-15 16:09:19 -04:00
Eric Katzfey 0f665f2772 Added high rate esc_status logging to the high rate logging category along with actuator_outputs_debug. Both of these
really help diagnosing odd flight behavior / crashes on VOXL2. Also changed the logger start commands in the VOXL2
standard and HITL startup scripts.
2024-04-15 16:07:07 -04:00
Daniel Agar 78bbb66568 delete SYS_MC_EST_GROUP
- introduce per module parameters (EKF2_EN, LPE_EN, ATT_EN)
 - add basic checks to prevent EKF2 + LPE running simultaneously
2024-04-15 16:06:08 -04:00
alexklimaj 1b1479a92b airframes: Droneblocks DEXI 5 2024-04-12 14:44:01 -04:00
alexklimaj 528ad1e87d boards: ARK Pi6X Initial Commit 2024-04-12 14:44:01 -04:00
Jacob Dahl 65cc153d47 remove LIS2MDL from COMMON_MAGNETOMETER 2024-04-12 14:43:20 -04:00
Jacob Dahl 8a8f481c29 remove PGA460 from COMMON_DISTANCE_SENSOR 2024-04-12 14:43:20 -04:00
Silvan Fuhrer 926e7878af RT: only chose mission RTL if mission is valid
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2024-04-11 13:47:17 +02:00
Silvan Fuhrer 5fab21d099 MissionBase: hasMissionLandStart should only return true if mission is valid
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2024-04-11 13:47:17 +02:00
Silvan Fuhrer 05672f343d TECS: check if integrator update is finit prior applying
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2024-04-11 10:42:59 +02:00
Silvan Fuhrer 974ead4015 FW position control: catapult/hand-launch: enable without launch detection
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2024-04-11 10:42:59 +02:00
Silvan Fuhrer 6fec452c4b FW position control: catapult/hand-launch: do not cut throttle if not landed
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2024-04-11 10:42:59 +02:00
Konrad 6a7555c005 mission_base: fix to set the end of mission item always, if the mission can't be properly loaded or started 2024-04-11 10:21:52 +02:00
alexklimaj cc11e1fbbf drivers: broadcom AFBR fix close to ground false readings 2024-04-10 11:47:04 -04:00
Eric Katzfey b544ea99d5 Enabled voxl2-slpi dsp_sbus driver in build 2024-04-10 11:07:24 -04:00
Eric Katzfey f8df7d1621 Move Voxl from microdds client to uxrce dds client 2024-04-10 11:06:32 -04:00
Peter van der Perk 7bfad2502b Update NuttX 2024-04-10 11:04:07 -04:00
Hamish Willee f9c65cd4c6 Vuepress removal /changes for vitepress (#22972)
* Vuepress removal /changes for vitepress

* generate_msg_docs.py - README is index in vitepress
2024-04-10 09:08:25 +10:00
Eric Katzfey d8fabd11d0 Send mavlink manual control buttons field in manual control input topic (#22988)
Pass along button states from manual control mavlink message in new buttons field in manual control input topic
2024-04-09 12:35:42 -07:00
David Sidrane a73df4752f px4_fmu-v6x:Add Holybro Pixhawk Jetson Baseboard ver 0x100 2024-04-09 11:27:29 -04:00
Alex Klimaj 297ddabe70 drivers: rc_input only publish if more than 0 rc channels filled (fixes GHST auto scan) 2024-04-09 11:19:41 -04:00
Silvan Fuhrer 64505b4b9c Mission params: update description of MIS_TKO_LAND_REQ
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2024-04-09 13:24:46 +02:00
Silvan Fuhrer 93ed910977 FeasibilityChecks: only require both or neither TO/LND when landed
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2024-04-09 13:24:46 +02:00
Silvan Fuhrer 9f799be855 Navigator: remove unused method
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2024-04-09 13:24:46 +02:00
bresch 5f61e3b785 ekf2: update change indicator 2024-04-05 22:26:03 -04:00
bresch b79d3854e4 ekf2: remove option to continuously fuse mag declination
Declination fusion is only used when not observable (no global aiding).
2024-04-05 22:26:03 -04:00
bresch dae246d7e2 ekf2: do not continuously use mag decl fusion when GNSS fusion is active
This prevents over-constraining the heading from mag fusion. An
incorrect mag yaw rotation can be absorbed as a declination error.
2024-04-05 22:26:03 -04:00
bresch 2f51db7284 ekf2: limit mag heading fusion to prevent heading overconfidence 2024-04-05 22:26:03 -04:00
bresch 51883fe5d4 ekf2: integrate mag heading into mag 3D 2024-04-05 22:26:03 -04:00
bresch 0c9e4013d2 ekf2: improve tilt leveling speed
Starting with no yaw uncertainty makes the tilt more observable when
using fake position fusion during the quasi-stationary alignment phase.
2024-04-05 22:26:03 -04:00
bresch 12fefbcfbd ekf2: use global definition of quaternion error 2024-04-05 22:26:03 -04:00
Noe S. Sanchez 3931379efe msg: update VehicleCommand.msg MAV_CMD_DO_REPOSITION comment
Added missing MAV_CMD_DO_REPOSITION parameters, from MAVlink Docs.
2024-04-05 21:29:44 -04:00
Jacob Dahl 7fbbdc31e8 Memsic MMC5983MA magnetometer driver 2024-04-04 21:08:24 -04:00
henrykotze de9f3a3268 gz-bridge: use correct prev_timestamp for dt calc
- with the addition of the navsat plugin in PR#22638, the callback would
reassign the previous timestamp used in the calculations of the
angular_velocity causing derivative type noise in the groundtruth
measurements
2024-04-04 12:09:06 -04:00
Eric Katzfey 0a867b5d1d Serial: removed the validateBaudrate function from nuttx and posix platforms and just send out a warning it baudrate is non-standard (#22969)
- Fix some Qurt platform build issues uncovered when changing the posix version of SerialImpl
2024-04-04 12:07:46 -04:00
Peter van der Perk 047e900c2a px4io: Fix dependency problem caused by #22957 2024-04-04 09:10:09 -04:00
Hamish Willee 8ceeda730d Jenkinsfile - dual-deploy uorb graph and failsafe to vitepress (#22943) 2024-04-03 11:14:30 +11:00
Eric Katzfey 4c2112f46b boards/modalai/voxl2: added device specifier to gps start line 2024-04-02 19:12:21 -04:00
Matthias Grob b87c5285e2 battery: weigh voltage based estimate more when it's low
This is a minimal change to make it harder to crash a
vehicle with an empty battery if the capacity was set wrong.

The disadvantage is that the state of charge estimate will
fluctuate more under load.

We need better documentation and improvements to the estimation.
2024-04-02 19:22:28 +02:00
Matthias Grob 8579175013 Build new IO firmware binaries 2024-04-02 11:59:56 -04:00
Matthias Grob ef5569fab3 px4iofirmware: reuse existing disarmed logic for lockdown and should_always_enable_pwm
The existing disarmed logic already handles disabled outputs
it makes sense to reuse it and not have lockdown handled
differently resulting in unexpeced corner cases.
2024-04-02 11:59:56 -04:00
Matthias Grob b714b5461b px4iofirmware: simplify lockdown logic 2024-04-02 11:59:56 -04:00
Matthias Grob 7f0ec2305c px4iofirmware: refactor to only have one PWM output code path
This removes the duplication with unexpected differences
and allows to consistently handle the output instead of
overriding the output for some specific cases which
leads to unexpected corner cases. E.g. disabled outputs
suddenly outputing PWM in lockdown.
2024-04-02 11:59:56 -04:00
Matthias Grob ab1087906d px4io: remove special handling for HITL
In HITL the actuators should not be mapped
and they are in lockdown.

We should not reconfigure disarmed, min, max PWM values
without updating the actual output values because the IO
will consider the last outputs before the FMU was rebooted
with the configuration of the new boot. This can result
in spinning motors when switching to SIH.
2024-04-02 11:59:56 -04:00
Silvan Fuhrer cf87cd27f5 logger: reduce interval of rtl_status logging
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2024-04-02 09:49:35 -04:00
Silvan Fuhrer 67fb70a65e logger: make logging of rtl_status not optional
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2024-04-02 09:49:35 -04:00
Peize-Liu f7bc13dab0 boards: new hkust nxt-fc board support (#22961) 2024-04-02 09:49:10 -04:00
Eric Katzfey 8e61026511 Port CRSF RC driver to new Serial UART API (#22917)
* Added implementations of Rx Tx swap and single wire for new UART API needed by CRSF driver
* Added inverted mode to Serial interface API
2024-04-01 22:09:13 -04:00
Peter van der Perk a9ba0acb2a cmake: all allyes target for better CI coverage
Currently only v6x-rt and SITL are supported
But targets with label allyes will try to enable all kconfig symbols
2024-04-01 22:05:20 -04:00
Peter van der Perk 791d7894c8 modules: zenoh: remove broken serial config and update topics 2024-04-01 22:05:20 -04:00
Peter van der Perk f082de5db7 kconfig: Add dependencies 2024-04-01 22:05:20 -04:00
Peter van der Perk 8817f59108 v6x-rt: Split ITCM static and auto-generated functions 2024-04-01 22:05:20 -04:00
Peter van der Perk d5b66cac2c drivers: cyphal: Fix ARM/x86 printf werror portability error 2024-04-01 22:05:20 -04:00
Peter van der Perk fe8a5eae99 drivers: bmi088_i2c: Enforce I2C driver can only be used when SPI version isn't selected
Solves multiple references compilation errors
2024-04-01 22:05:20 -04:00
Peter van der Perk 127d74f2e1 drivers: vector: Fix PX4 SITL x86 compilation 2024-04-01 22:05:20 -04:00
Peter van der Perk 4889ac0ebb drivers: uavcan: fix werror uninitialized error 2024-04-01 22:05:20 -04:00
Peter van der Perk 650ea6ef4a drivers: transponder: don't free pre-allocated memory 2024-04-01 22:05:20 -04:00
Peter van der Perk 0c5b25efc5 systemcmds: reflect: write return needs to be used for werror checks 2024-04-01 22:05:20 -04:00
Peter van der Perk 05badb5d76 systemcmds: microbench: %s doesn't except nullptr use "null" instead 2024-04-01 22:05:20 -04:00
Peter van der Perk 54f044c04a examples: matlab_csv_serial: fix compilation
Update uORB definition and sprintf float formatting
2024-04-01 22:05:20 -04:00
Peter van der Perk daee37d377 drivers: tap_esc: fix Werror=maybe-uninitialized compilation 2024-04-01 22:05:20 -04:00
Peter van der Perk 461b146ba8 drivers: barometer: ms5837 fix compilation error
Fixes MS5837.cpp:343:29: error: 'T' was not declared in this scope by using last temperature instead
2024-04-01 22:05:20 -04:00
Julian Oes 0283dc2459 gps: fix Septentrino serial read (#22936)
For Septententrino we seem to sometimes fill the buffer pretty full.

If we ask for too much, readAtLeast will fail completely and make the
GPS discovery logic fall over. Therefore, let's not ask for too much and
just read what we can given the available buffer.

Signed-off-by: Julian Oes <julian@oes.ch>
2024-04-01 20:46:53 -04:00
Eric Katzfey 71b074b234 Qurt termios decoy (#22954)
* Added decoy termios support to Qurt so that ghst parser in RC library can be used. No termios is actually needed but has to be there for the parser to work
2024-04-01 18:33:37 -04:00
Eric Katzfey ccdf060393 Additions to the Serial UART API (#22953)
- Added an empty constructor, setPort, and validatePort functions for Serial API
- Changed GPS to not allocate Serial object dynamically
- Moved access check on serial port name into the Serial API
- Improved the Qurt platform validatePort Serial function to implement a more rigorous check. Added safety check
to the setPort Serial function to make sure it isn't called after the port has been already opened.
2024-04-01 12:27:59 -04:00
Matthias Grob 416b6a35a4 failsafe framework: inform about failsafe action 2024-03-27 20:22:04 +01:00
Claudio Micheli 0f9531a526 commander: improve failsafe messaging
Signed-off-by: Claudio Micheli <claudio@auterion.com>
2024-03-27 20:22:04 +01:00
David Sidrane 3099eac2ba NuttX with pr-h7-serial-logic-error backport 2024-03-27 14:43:08 -04:00
Matthias Grob 6e86862b6a boards: unify comments for voltage deviders 2024-03-27 17:15:39 +01:00
Matthias Grob 4c5f084445 Battery parameters: clarify empty, full voltage description 2024-03-27 17:15:39 +01:00
Julian Oes 868a884131 fw_att_control: bitwise and should be logical and (#22933)
Signed-off-by: Julian Oes <julian@oes.ch>
2024-03-27 16:29:56 +13:00
murata,katsutoshi 749f88b62b ekf2: gps control lazily check yaw_failure() only after in_air 2024-03-26 19:50:57 -04:00
jamming 3aac8f36e6 boards/holybro/kakuteh7: fix icm42688p IMU
- the mass-produced kakuteH7 did not use ICM20689 IMU
2024-03-26 19:49:11 -04:00
Eric Katzfey 8ade2e5f2d Add SYS_AUTOSTART touch in voxl-px4-start 2024-03-26 19:35:24 -04:00
enesavcu fa1885af23 Signal generator (#22666)
Add option to generate sine chirp signals for fixed-wing system identification
2024-03-26 16:11:32 +01:00
Matthias Grob b5f6699f2e mixer_module: send a last sample out after all outputs were disabled
This matters for PWM when the last output gets disabled on either FMU or IO
it would just keep on running.

Also when rebooting with a parameters reset or new airframe with no mapped outputs
it would previously keep outputting PWM with the disarmed value of the new airframe
e.g. 1000us which is a safety hazard because servos could break the physical limit of the
model or miscalibrated ESCs spinning motors.
2024-03-25 19:21:54 +01:00
Matthias Grob 1096384a38 px4iofirmware: don't switch to disarmed or failsafe value on disabled PWM outputs
If the output is set to 0 then the FMU had this channel disabled/no function mapped
to it. In that case we do not want to suddenly start outputing failsafe or disarmed
signals.
2024-03-25 19:21:54 +01:00
Matthias Grob 999a71c4dd px4io: don't output on disabled PWM pins
Same logic as on the FMU PWM updateOutputs() in PWMOut.cpp
2024-03-25 19:21:54 +01:00
Thomas Frans bcbae86b9f code: add more style options in .editorconfig 2024-03-25 09:48:09 -04:00
Eric Katzfey 4a553938fb VOXL2: HRT updates for synchronization with Qurt time (#22881)
- Added offset to Posix hrt time to account for synchronization with Qurt hrt time
- Added new Kconfig to configure synchronization of HRT timestamps on VOXL2
- Moved voxl2 libfc sensor library submodule from muorb module to boards directory
- Added check to make sure hrt_elapsed_time can never be negative
2024-03-22 15:24:51 -04:00
Daniel Agar c024ea396a boards/px4/fmu-v5x: remove legacy rover_pos_control to reduce flash usage 2024-03-22 15:17:03 -04:00
Eric Katzfey 69028f37a9 New platform independent Serial interface (#21723) 2024-03-21 21:00:23 -04:00
Thomas Frans bb9f4d42f3 gps: fix incorrect task id in module startup 2024-03-21 20:58:59 -04:00
Beat Küng 2e12e14a23 boards/px4/fmu-v5x: remove sd_stress & reflect to reduce flash usage 2024-03-21 20:58:21 -04:00
Thomas Frans d0251b8688 add .editorconfig for consistent code style across editors (#22916)
EditorConfig is a well-known convention to share style settings across
different editors. Adding one will make it easier for new contributors
or people who like to use a different editor to contribute.
2024-03-21 20:56:20 -04:00
Eric Katzfey 82a1aa37db uORB: fix for uORB communicator, only send most recent data for new subscription (#22893) 2024-03-21 20:54:43 -04:00
Eric Katzfey 5f6dc1c5d0 uORB: SubscriptionBlocking purged the broken attempt to set the mutex protocol in constructor 2024-03-21 20:53:34 -04:00
Øyvind Taksdal Stubhaug 710286da72 uavcan: publish new can interface status as uorb topic (#22873) 2024-03-20 12:38:47 -04:00
Daniel Agar 34c19b2e5a boards/px4/fmu-v5x: default remove systemcmds/sd_stress to save flash 2024-03-20 12:35:34 -04:00
alexklimaj af16544809 boards: ark septentrio update flash size and enable ekf2 2024-03-20 11:17:05 -04:00
Daniel Agar 35532609c9 mathlib: utilities refactor float to function template (for optional double precision usage)
Co-authored-by: Mathieu Bresciani <brescianimathieu@gmail.com>
2024-03-20 11:10:37 -04:00
bresch 62b8db153b mpc: fix PositionControl unit test
The unit test assumes the position controller is in "decoupled" mode
2024-03-20 14:16:12 +01:00
bresch 638e17d551 ekf: update change indicator 2024-03-20 14:13:49 +01:00
bresch 6d819343aa ekf2: fix direct state measurement update for suboptimal K case
The duration of a unit test had to be increased because the incorrect
covariance matrix update, was making the unit test passing faster
(over-optimistic variance).
2024-03-20 14:13:49 +01:00
bresch cb2bb2e098 ekf2: add no gyro bias estimate test case
This makes the ekf unstable and creates NANs during initialization
2024-03-20 14:13:49 +01:00
bresch c9221b91ad ekf2: fix gnss yaw unit test 2024-03-20 14:04:19 +01:00
Drone-Lab 37caddedbb navigator: update mission after changing home position (#22834) 2024-03-20 08:37:19 +01:00
muramura 63850873eb sd_bench: Display maximum time for maximum write time 2024-03-20 08:35:33 +01:00
Hamish Willee 95627ea098 SMART_BATTERY_INFO to BATTERY_INFO (#22875)
* Update submodule mavlink to latest Wed Mar 13 01:02:16 UTC 2024

    - mavlink in PX4/Firmware (497327e916103ef05ff8f08f47d33b9a19bc28d7): https://github.com/mavlink/mavlink/commit/c4a5c497379ca873f73abe691a033641a6a5a817
    - mavlink current upstream: https://github.com/mavlink/mavlink/commit/a3558d6b335d930fc01816fd168d16b3f38ed434
    - Changes: https://github.com/mavlink/mavlink/compare/c4a5c497379ca873f73abe691a033641a6a5a817...a3558d6b335d930fc01816fd168d16b3f38ed434

    a3558d6b 2024-03-07 Hamish Willee - common - DO_FENCE_ENABLE/PARACHUTE fix (#2090)
b9730e0f 2024-03-06 olliw42 - update RADIO_RC_CHANNELS to latest, remove all mlrs from storm32.xml (#1919)
7fed0268 2024-03-06 Patrick José Pereira - common: MAV_CMD_DO_SET_SYS_CMP_ID: Add first version (#2082)
2909b481 2024-03-06 Hamish Willee - Update Pymavlink (#2089)
e9b532a9 2024-03-05 Randy Mackay - common: add set-camera-source command (#2079)
bcdbeb7f 2024-03-01 auturgy - Allow individual fences to be enabled and disabled (#2085)
2f8403d1 2024-02-29 Hamish Willee - MAV_CMD_ODID_SET_EMERGENCY -  (#2086)
daa59c02 2024-02-22 Peter Barker - common.xml: add a command to deal with safety switch (#2081)
977332e2 2024-02-14 Hamish Willee - COMPONENT_INFORMATION_BASIC - add manufacturer date (#2078)
4fef7de2 2024-02-07 Randy Mackay - Common: rename SMART_BATTERY_INFO to BATTERY_INFO and add SOH (#2070)
3865b311 2024-02-01 Hamish Willee - FLIGHT_INFORMATION - description to match PX4 (#2067)
f80e6818 2024-01-31 KonradRudin - development.xml: merge both MAV_CMD enums together (#2074)

* SMART_BATTERY_INFO to BATTERY_INFO on new mavlink module

* Update src/modules/mavlink/streams/BATTERY_INFO.hpp

* fix trivial whitespace

---------

Co-authored-by: PX4 BuildBot <bot@px4.io>
Co-authored-by: Daniel Agar <daniel@agar.ca>
2024-03-20 11:33:37 +13:00
bresch 2e6dd243af mpc: add possibility to generate tilt using full 3D accel
Using full 3D acceleration provides better horizontal acceleration
tracking but also creates a sometimes unwanted behavior because the tilt
is directly coupled with the vertical acceleration setpoint.
2024-03-19 12:29:34 -04:00
muramura 32aa3263a6 EKF: Change a typo 2024-03-18 10:29:44 +01:00
Beat Küng 70346a5b2f failsafe: set cause to generic when fallback mode is activated
Previously when triggering low battery RTL and then losing GPS, the fallback
to Descend would still have low battery as cause.
2024-03-15 14:06:58 +01:00
Silvan Fuhrer da39d075ac Commander enums: shorten failsafe event messages
Such that the focus is on the important keywords.

Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2024-03-15 10:25:18 +01:00
Silvan Fuhrer f6430a27d6 Commander enums: capitalize battery level key words
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2024-03-15 10:25:18 +01:00
Silvan Fuhrer 4ae2fbd171 Commander enums: capitalize flight mode names
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2024-03-15 10:25:18 +01:00
Silvan Fuhrer 6e15dd5328 Commander: trigger warning when arming denied due to check failure
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2024-03-15 09:34:11 +01:00
Silvan Fuhrer d330d47495 EstimatorCheck: GNSS data fusion stopped as INFO if local position is already invalid
Helps to reduce spamming of less important warnings.

Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2024-03-15 09:33:56 +01:00
Silvan Fuhrer 6d8273483c Commander: set vehicle_status.failsafe flag only if action for failed check is more than warning
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2024-03-15 09:33:41 +01:00
bresch 7c6ecd95a8 mc_wind_estimator_tuning: optionally use GNSS velocity
Sometimes GNSS is logged but not used
2024-03-14 21:06:24 +01:00
bresch b2f1122372 ekf2: remove old yaw 321 and 312 derivations 2024-03-14 11:33:45 -04:00
bresch ee63f3e664 update change indicator 2024-03-14 11:33:45 -04:00
bresch e3f67d5c1a ekf2: new yaw derivation
Instead of euler angles, compute measurement jacobian using a small
global perturbation around the vertical axis
2024-03-14 11:33:45 -04:00
Silvan Fuhrer 6373d8d243 commander: low flight time failsafe: set UserTakeoverAllowed::Auto to enter Hold first (#22887)
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2024-03-14 16:30:06 +01:00
Silvan Fuhrer 68fcfc43ef mro-zero classic: remove gyro fft module to save flash (#22878)
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2024-03-14 14:20:51 +01:00
Eric Katzfey ae947513d7 add load_mon support for Qurt platform (#22883)
- Added check in commander to see if CPU load monitoring has been disabled before signalling overload
2024-03-13 21:33:58 -04:00
Alexander Lampalzer ad50afda10 update msg_files to PARENT_SCOPE (#22800) 2024-03-13 09:34:47 +01:00
Niklas Hauser 23c5c0b12d dataman: Add client sync perf counter and increase default timeout to 5s 2024-03-13 09:22:38 +01:00
Daniel Agar a1cce7e961 uxrce_dds_client: optimizations and instrumentation
- skip ping session if data flowing bidirectionally
 - add perf counters for loop time and interval
 - skip blocking poll if there's input data to read
2024-03-12 16:22:26 -04:00
Daniel Agar b115d3cd44 uxrce_dds_client: refactor init to retry indefinitely
- move init from UxrceddsClient to init() method so that retry is
   possible for both serial and UDP init
2024-03-12 16:22:26 -04:00
Silvan Fuhrer 9f4ae0a85d vtol: only publish generic warning through mavlink to safe flash (#22870)
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2024-03-12 13:27:13 +01:00
Silvan Fuhrer 00cc68baa1 Commander: make low remaining flight time configurable and fix clearing condition (#22863)
* Commander: make low remaining flight time configurable and do not clear

- add _ACT param to disable/warning/RTL this feature
- publish rtl flight time estimate also in RTL, and thus fix re-validation
- make failure message clearer, distinguish from battery low

* battery check: add hysteresis for declaring battery_low_remaining_time false again


---------

Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
Co-authored-by: KonradRudin <98741601+KonradRudin@users.noreply.github.com>
2024-03-12 12:56:01 +01:00
Silvan Fuhrer 7fe5ee64fe rtl_direct: fix on_inactive()
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2024-03-12 11:27:49 +01:00
Silvan Fuhrer 7f370ac6df Tiltrotor: disable MC yaw fade out during front transition blending
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2024-03-12 11:26:07 +01:00
Thomas Stauber 1ad83a8002 mavlink: OPEN_DRONE_ID_SYSTEM stream publish operator altitude in geodetic frame (#22866) 2024-03-11 19:49:11 -04:00
Eric Katzfey 18d53c3bfd boards/modalai/voxl2: Add new capabilities to Qurt platform HITL driver
* Added new sensor control options and test capability in dsp_hitl
* HITL working in VIO mode only
* Fixed units on GPS HIL input
2024-03-11 19:47:15 -04:00
Eric Katzfey f4ebfa6130 parameters: support for an optional remote parameter database (#22836)
The voxl2 has a split architecture. PX4 runs on a posix platform and a Qurt platform. The two communicate uorb topics back and forth with the muorb module. But each has it's own parameters database and they need to stay in sync with each other. This PR adds support to keep the 2 parameter databases in sync. The main parameters database running on Linux has file system support while the Qurt one does not. The Linux side is considered the primary and the Qurt side is considered the remote.
2024-03-11 13:52:22 -04:00
Konrad c5fde63440 mission: The mission check on activation should only be performed for a mission, not RTL.
We need to make sure that when the RTL is triggered, it should not reevaluate it, as when it was valid but evaluated to false on activation, it can't do a RTL.
2024-03-11 17:08:56 +01:00
Silvan Fuhrer cb8520427c rtl direct: fix setting of previous altitude (abs vs rel)
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2024-03-11 14:04:02 +01:00
Silvan Fuhrer 86c074378f rtl_direct_mission_land: fix abs/rel usage of item.altitude
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2024-03-11 14:04:02 +01:00
Konrad e9fda548fa rtl_direct: Rtl estimate only needs valid destination, not home position 2024-03-11 14:04:02 +01:00
Konrad 91d1342f20 rtl_direct_mission: rtl_estimate for fixedwing land is diagonal 2024-03-11 14:04:02 +01:00
Konrad 89844625b4 rtl: reduce time estimate calculations 2024-03-11 14:04:02 +01:00
Konrad fde71cd15e rtl_direct_mission_land: add time estimation for RTL mission land 2024-03-11 14:04:02 +01:00
Konrad 14e4169473 rtl_direct: Move the time estimation calculation into a separate helper class 2024-03-11 14:04:02 +01:00
KonradRudin 8dcfcf5b9e mission_base: land_start_item invalid only when negative. (#22856)
rtl: land_start_item invalid only when negative.

Update src/modules/navigator/rtl.cpp
2024-03-11 09:46:16 +01:00
alexklimaj a80a5a92f4 boards: ARK Flow fix typo 2024-03-09 16:40:59 -05:00
alexklimaj b81ad8841e drivers: broadcom AFBR update to API 1.5.6 2024-03-09 16:40:59 -05:00
Eric Katzfey 57df7e35b2 uORB: make queue size (ORB_QUEUE_LENGTH) completely static (#22815)
Previously uORB queue size was an awkward mix of runtime configurable (at advertise or IOCTL before allocate), but effectively static with all queue size settings (outside of test code) actually coming from the topic declaration (presently ORB_QUEUE_LENGTH in the .msg). This change finally resolves the inconsistency making the queue size fully static.

Additionally there were some corner cases that the muorb and orb communicator implementation were not correctly handling. This PR provides fixes for those issues. Also correctly sets remote queue lengths now based on the topic definitions.

* Made setting of uORB topic queue size in based on topic definition only
* Fixes to the ModalAI muorb implementation
* Removed libfc sensor from format checks
* msg/TransponderReport.msg ORB_QUEUE_LENGTH 8->16 (was set to higher in AdsbConflict.h

---------

Co-authored-by: Eric Katzfey <eric.katzfey@modalai.com>
Co-authored-by: Daniel Agar <daniel@agar.ca>
2024-03-08 16:28:24 -05:00
Alexis Guijarro 006dcfafb7 boards/mro/ctrl-zero-classic: corrections for mRo Control Zero Classic Board (#22745)
- Build target changed from STM32H743II to STM32H743ZI
- Missing external SPI interface added
- Nonexistent  I2C3 interface removed
- I2C4 pins changed
- Red and Green LED lights remapped
- Missing ADC inputs added and already present ones corrected
- CAN Silent interfaces corrected
- Power pins corrected and Level Shifter pin added to enable ICM20948
- Buzzer pin remapped
- HRT channel and PPM pin changed
- RSSI input remapped
- ICM20602 and BMI088 pins corrected
- Serial ports remapped
2024-03-08 14:50:53 -05:00
Silvan Fuhrer 85a882e1ce FW Position Control: control_backtransition(): always track line from start (#22853)
Remove option to track from previous wp to reduce complexity and fix
case where prev=current point and the line following broke down.

Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2024-03-08 19:11:08 +01:00
Konrad 04099ed483 mission_base: Force mission validity check on activation 2024-03-08 17:26:04 +01:00
Konrad 1aa26a5a91 missionFeasibilityChecker: Fix tests 2024-03-08 17:26:04 +01:00
Konrad acd750e033 mission_base: Run feasibility checker only after first global position has been published 2024-03-08 17:26:04 +01:00
Konrad 6c6142ba79 MissionFeasibiltyChecker: Do not delete uorb data on reset. 2024-03-08 17:26:04 +01:00
Konrad 7fb584adbe MissionResult uorb: fix wrong int types 2024-03-08 17:26:04 +01:00
Konrad fb3aab1fb0 mission_base: check mission feasibility again, if geofence has changed. 2024-03-08 17:26:04 +01:00
Konrad 1b03ac4d2b mission_base: Only run mission feasibility if the geofence module is ready 2024-03-08 17:26:04 +01:00
Konrad 815cea2abb geofence: publish status of loaded geofence 2024-03-08 17:26:04 +01:00
Konrad 51321c605e mission_base: clean up mission check evaluation 2024-03-08 17:26:04 +01:00
Konrad a0ae073d8c mission_base: Do not initialize mission from dataman. only listen on mission topic 2024-03-08 17:26:04 +01:00
Silvan Fuhrer 7884e0a3f7 Navigator: remove vtol_takeoff special handling for RTL (#22844)
We had a special handling for RTL triggered in vtol_takeoff state.
The idea is to wait until the VTOL Takeoff is completed and only
then switch to RTL. On a second thought this special handling isn't
really necessary and for the sake of simplicity should be removed.
This also removes the side effect of the indicated flight mode
after RTL being set to VTOL_Takeoff again.

Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2024-03-08 11:40:14 +01:00
Silvan Fuhrer f799141a19 FW Pos Controller: do not publish roll angle constrained warning if landed (#22850)
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2024-03-08 09:40:43 +01:00
Eric Katzfey e20215087f Moving from Qurt specific icm4266p driver to mainline version 2024-03-07 21:14:49 -05:00
bresch 0d0978b3b9 ekf2: update change indicator 2024-03-07 11:06:31 -05:00
bresch 0639f5370c ekf2: fix mag and wind covariance prediction 2024-03-07 11:06:31 -05:00
bresch 2bacb4b65d ekf2: update change indicator 2024-03-07 15:11:47 +01:00
bresch 421f13e4b5 ekf2: fix joseph covariance update for Schmidt-Kalman filter
If part of the Kalman gain is zeroed, the first step of the joseph
update does not produce a symmetrical matrix.
2024-03-07 15:11:47 +01:00
Silvan Fuhrer 1e253a9626 VTOL: treat Descend mode as Land (#22843)
* vtol_type: enable pusher assist also in Descend mode

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

* vtol_type: treat Descend as Land for pusher assist

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

---------

Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2024-03-07 10:22:25 +01:00
cuav-liu1 bb5efa5577 ICP201: increase config delay 2024-03-06 21:20:51 -05:00
Daniel Agar 1c741836c0 sensors/vehicle_imu: sensor update loop limit iterations 2024-03-06 21:19:38 -05:00
Daniel Agar 8b6c70e0f2 sensors/vehicle_angular_velocity: sensor update loop limit iterations 2024-03-06 21:19:38 -05:00
Daniel Agar 1fc38aab92 sensors/vehicle_air_data: sensor update loop limit iterations 2024-03-06 21:19:38 -05:00
Daniel Agar 2bf1eeb003 sensors/vehicle_acceleration: sensor update loop limit iterations 2024-03-06 21:19:38 -05:00
Daniel Agar 87960c04d8 mag_bias_estimator: sensor update loop limit iterations 2024-03-06 21:19:38 -05:00
Daniel Agar d96970a2b9 sensor/vehicle_magnetometer: sensor update loop limit iterations
- place upper bound to prevent looping indefinitely (high publish rate, etc)
2024-03-06 21:19:38 -05:00
Silvan Fuhrer c5835a48de FW Position Controller: do not publish roll angle constrain warning in VTOL transition (#22842)
* FW Position Control: some cosmetical changes

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

* FW Position Control: disable roll constraining warning in VTOL transition

In transitions it is expected that the roll is constrained, and
instead of defining an aribitrary threshold let's rather disable
the user warning in that case.

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

* FW Pos C: define magic numbers for roll constraining warning as constants

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

---------

Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2024-03-06 15:51:54 +01:00
bresch 6f9a378247 yaw_est: force set gyro bias when at rest
The gyro bias estimate from EFK2 is really good when at rest and should
be used by the yaw estimator to prevent heading drifts due to poor
heading observability.
2024-03-05 14:00:06 -05:00
PX4 BuildBot 67e68783cf Update submodule gz to latest Tue Mar 5 12:39:22 UTC 2024
- gz in PX4/Firmware (5f8f0213a807d327a30a7df05e58f7887cf936ab): https://github.com/PX4/PX4-gazebo-models/commit/222833656802532ec2271986a65fd198cfa48259
    - gz current upstream: https://github.com/PX4/PX4-gazebo-models/commit/6b4ed09d1b495fbff663f098979cc046df013abd
    - Changes: https://github.com/PX4/PX4-gazebo-models/compare/222833656802532ec2271986a65fd198cfa48259...6b4ed09d1b495fbff663f098979cc046df013abd

    6b4ed09 2024-02-23 Sergei Grichine - Added IMU sensor noise to the model, to avoid STALE messages (#34)
953e02b 2024-02-22 frede791 - add imu sensor model noise
2024-03-05 13:59:22 -05:00
Peter van der Perk d1ae242a91 v6x-rt: fix rover build regression 2024-03-05 10:21:41 -05:00
Peter van der Perk 9cef834624 fmu-v6xrt: update px4board enables vtol 2024-03-05 08:18:44 -05:00
Sihyun Noh 23a41299fa mag calibration: minor cleanup (#22830) 2024-03-05 09:00:08 +01:00
Niklas Hauser 0186d687b2 Add minimal Skynode RC13 config to the PAB manifest 2024-03-04 13:33:20 -05:00
Peter van der Perk d28653b605 nuttx: update apps 2024-03-04 13:32:36 -05:00
Peter van der Perk 87d79aeb75 netman: generate default config if file doesn't exist
ENOENT returns if the file doesn't exist yet, when using mtd /fs/mtd_net always exist.
On a filesystem you've to generate the file so if ENOENT returns we've to regenerate the default config as well.
2024-03-04 13:32:36 -05:00
Matthias Grob 1bd65f8beb mantis-edu: remove duplicate RC define 2024-03-04 13:30:28 -05:00
Peter van der Perk e0b49afe81 bmp388: Driver print out start BMP390 identifier when detected 2024-03-04 02:05:37 -05:00
Don Gagne f02b44bec5 Update to latest sitl gazebo camera 2024-03-03 12:18:02 +13:00
bresch 28db3e1c8c ekf2: update change indicator 2024-02-27 12:33:43 -05:00
bresch e9d43015ce ekf2: fix unit tests failing due to mag fusion changes 2024-02-27 12:33:43 -05:00
bresch b46fc9a67d ekf2 sensor_sim: set correct world mag field 2024-02-27 12:33:43 -05:00
bresch b80f15f7b5 ekf2-mag_auto: always use mag 3D after takeoff 2024-02-27 12:33:43 -05:00
Silvan Fuhrer 086656dc7f FW Attitude Controller: fix manual yaw rate setpoint limit (#22812)
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2024-02-27 17:23:13 +01:00
bresch 051baec9c4 ekf2: allow wind dead-reckoning after manual position reset
Reset velocity using airspeed and start navigating
2024-02-27 09:34:05 -05:00
Matthias Grob 2491548a0f Jenkinsfile: correct typo, missing comma
Introduced in
2c81c9fdea
2024-02-27 13:32:46 +01:00
DanielePettenuzzo 18f96c16ce fix gimbal driver for mavlink gimbal v2 input and AUX output
The main problem was that during initial negotiation the client would
request the gimbal_manager_information from px4 but px4 would never send
it because in this configuration the device_compid was set to 0.
2024-02-27 09:53:25 +01:00
GuillaumeLaine 63495ddac3 geo: correct unit test 2024-02-27 09:05:39 +01:00
Peter van der Perk efbbd64ec0 fmu-v6xrt: Increase lpwork stack size 2024-02-26 14:01:56 -05:00
Daniel Agar 8001132d33 ekf2: ZeroGyroUpdate move to fuseDirectStateMeasurement 2024-02-26 12:32:59 -05:00
bresch 08a2a6c836 update EKF2 change indicator 2024-02-26 12:32:59 -05:00
bresch d501d8e1d4 ekf2: use Joseph stabilized update in direct state observations 2024-02-26 12:32:59 -05:00
bresch 9d9766c6cf ekf2: use Joseph stabilized covariance update 2024-02-26 12:32:59 -05:00
makekam d988005216 Update injectxmlparams.py
Add extraction of Boolean attributes in injectxmlparams.py.
2024-02-23 11:06:05 -05:00
Silvan Fuhrer 5dfdf8c071 matrix: remove bold printing of diagonal elements
As this was not working in NSH.

Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2024-02-23 11:05:09 -05:00
Daniel Agar b2b7439060 ROMFS: respect kconfig for including romfs files (airframes, etc) (#22571)
* ROMFS: respect kconfig for including romfs files (airframes, etc)

* ROMFS: only add R1 airframe with differential drive control

* ROMFS: adapt to differential drive module renaming

---------

Co-authored-by: Matthias Grob <maetugr@gmail.com>
2024-02-23 15:40:00 +01:00
bresch 37a40d3fc2 baro static pressure compensation tuning: remove dependency to baro bias
`estimator_baro_bias` requires to have GNSS and baro hgt active and GNSS as the reference. This is quite restrictive. Instead, we can simply use a high-passed version of the baro error.
2024-02-23 10:07:13 +01:00
Sergei Grichine b405d75553 Added Zero Turn Lawnmower model (#22717)
* Added Lawnmower airframe

* Update 5005_gz_lawnmower

Works all right

* Update 5005_gz_lawnmower

RDD_WHL_SPEED has new name: RDD_WHEEL_SPEED

* Update ROMFS/px4fmu_common/init.d-posix/airframes/5005_gz_lawnmower

Co-authored-by: Per Frivik <94360401+PerFrivik@users.noreply.github.com>

* Update ROMFS/px4fmu_common/init.d-posix/airframes/CMakeLists.txt

Co-authored-by: Per Frivik <94360401+PerFrivik@users.noreply.github.com>

* Renamed 5005_gz_lawnmower to 4011_gz_lawnmower

also pulled latest GZ models hash

---------

Co-authored-by: Per Frivik <94360401+PerFrivik@users.noreply.github.com>
2024-02-22 15:30:12 +01:00
Matthias Grob 4e3bd4f196 MAVSDK tests: shorten Position, Altitude control flights
We get more than 5 meter away much quicker.
2024-02-22 15:29:13 +01:00
Matthias Grob 0cc4b41a51 MAVSDK test: Fix fly_forward_in_altctl() timing 2024-02-22 15:29:13 +01:00
Matthias Grob f602228048 MAVSDK test: increase offboard position threshold
This is a workaround to hotfix CI but the root cause is #22792
(MAVSDK test failing after EKF change, accelerometer simulation issues not learned anymore?)
2024-02-22 15:29:13 +01:00
PerFrivik 9b122adae4 Fix fly_forward_in_posctl() timing 2024-02-22 15:29:13 +01:00
Eric Katzfey 1ec0ba4736 Added param system command to voxl2 slpi build 2024-02-21 11:54:02 -05:00
Eric Katzfey 8da8b88a54 Fixed and added Qurt platform dsp_hitl driver 2024-02-21 11:54:02 -05:00
Eric Katzfey be08c57a0a Changed order of service startup in SLPI DSP muorb since parameter library now needs work queues 2024-02-21 11:54:02 -05:00
Eric Katzfey a436a8f3b8 Fixed unresolved symbol error for qurt platform due to missing sbus library 2024-02-21 11:54:02 -05:00
Eric Katzfey 5ad0e68d8e Fix build error for Qurt platform in pab_manifest.c 2024-02-21 11:54:02 -05:00
Eric Katzfey f07eeaa776 Added special muorb startup ordering in px4_init for posix platform 2024-02-21 11:52:24 -05:00
Daniel Agar 506c60c471 ekf2: declination fusion don't use uninitialized parameter (EKF2_MAG_DECL) 2024-02-21 09:45:44 -05:00
Niklas Hauser 643d3e3bf3 Navigator: Prevent busy-looping if Dataman read/write times out
MissionBase did not initialize its mission data, thus could enter an
infinite loop in updateDatamanCache() if the initMission() failed to
read the mission off, for example, due to the SDCard storage task taking
longer than the timeout to respond.

This change constrains the loading loop and resets the mission data even
if the data write failed.
2024-02-21 13:31:43 +01:00
Daniel Agar 8243b4f474 ekf2: move vel/pos reset helpers 2024-02-20 13:16:24 -05:00
Daniel Agar 22b957696d ekf2: velocity/position fusion helper minor consistency cleanup 2024-02-20 13:16:24 -05:00
Daniel Agar c338891677 ekf2: split vel_pos_fusion.cpp 2024-02-20 13:16:24 -05:00
Daniel Agar c4c41c49e5 ekf2: move fuseVelPosHeight() -> fuseDirectStateMeasurement()
- don't bother keeping bad_vel_{N,E,D} and bad_pos_{N,E,D} fault status bits
2024-02-20 13:16:24 -05:00
Daniel Agar 021dd0d0af ekf2: fix EV height bias predict call
- needs to be called every iteration
2024-02-20 11:47:53 -05:00
bresch c221da27a7 ekf2: set attitude validity flag using centralized function 2024-02-20 11:33:30 -05:00
Matthias Grob 51fe4351c6 StickTiltXY: Fix too high maximum tilt problem
And add unit tests.
2024-02-20 14:27:49 +01:00
Silvan Fuhrer 8a75733511 Navigator: fix VTOL land waypoint calculation
The setpoint.yaw can be NAN, and this made the calculated land point NAN
as well. Looking at the current yaw is anyway a better way to approximate
the course over ground that fundamentally should be used.

Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2024-02-19 14:54:28 +01:00
Daniel Agar 1032dd3470 ekf: fix measurementUpdate comment typo 2024-02-19 09:41:49 +01:00
Konrad 424c3cd2cb FeasibilityChecker: Add new TakeoffLandAvailable option
ADd a new misison feasiblity checker option to check if a proper landing approach is defined when in air. There must be at least a mission landing or a VTOL approach defined in order for the mission to be accepted. Else, use the same logic as in MIS_TKO_LAND_REQ=4
2024-02-16 10:27:22 +01:00
Konrad 68100650da RTL: publish a status message on currently chosen RTL point 2024-02-16 10:27:22 +01:00
Cyril C 74303a79e1 drivers/batt_smbus: fix BQ40Z80 timeout problem (#22751)
Co-authored-by: cyril.calvez <c.calvez@elistair.com>
2024-02-15 13:24:40 -05:00
Daniel Agar 8dc3975456 ekf2: only populate gnss pos aid src status if ref initialized
- this is a minor logging improvement when plotting the position from the beginning of the log (often a replay session)
2024-02-15 13:13:10 -05:00
Matthias Grob 84a7d42566 rover build: correct differential drive kconfig name 2024-02-15 10:08:51 -05:00
Matthias Grob f26df8492f Update GPS drivers to contain the astyle fix 2024-02-15 15:23:06 +01:00
Konrad cb09dde606 FixedwingPositionControl: Used corrected npfg roll output in path mode 2024-02-13 17:17:44 +01:00
Konrad 1a1891073e FixedwingPositionControl: Only warn user when roll is reduced for a longer period of time 2024-02-13 17:17:44 +01:00
Daniel Agar b8714f8980 ROMFS: rc.simulator EKF2 setup specific to gazebo classic 2024-02-13 11:14:44 -05:00
PX4 BuildBot 0c099f2b56 Update submodule gz to latest Tue Feb 13 12:39:17 UTC 2024
- gz in PX4/Firmware (c9ad60e3cc): https://github.com/PX4/PX4-gazebo-models/commit/c78f7f01417168e8faab7a83ade2129c0d26b39d
    - gz current upstream: https://github.com/PX4/PX4-gazebo-models/commit/f1c461fffb8567d6f0af770fb533f60f6ec62c22
    - Changes: https://github.com/PX4/PX4-gazebo-models/compare/c78f7f01417168e8faab7a83ade2129c0d26b39d...f1c461fffb8567d6f0af770fb533f60f6ec62c22

    f1c461f 2024-02-08 frederik - increase monocam clipping distance
6d5db73 2024-02-07 Sergei Grichine - Added Zero Turn Lawnmower model (#27)
5332071 2024-02-06 Frederik Markus - add navsat plugin to worlds and navsat sensor to models (#26)
2024-02-13 11:13:17 -05:00
Frederik Markus bb53781b8f simulation/gz_bridge: enable navsat plugin for accurate positioning of real life maps in Gazebo (#22638)
* publish the global groundtruth from the navsat callback and rearrange the local groundtruth as the altitude reference now has a dependency on the global groundtruth being initialized

---------

Signed-off-by: frederik <frederik.anilmarkus@gmail.com>
2024-02-13 11:09:35 -05:00
Silvan Fuhrer c9ad60e3cc Update src/modules/navigator/mission_block.cpp
Co-authored-by: Matthias Grob <maetugr@gmail.com>
2024-02-13 10:34:57 +01:00
Silvan Fuhrer a6ef7b6da9 RTL: write out weather vane in comments (instead of WV)
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2024-02-13 10:34:57 +01:00
Silvan Fuhrer 6957818603 RTL: clean up naming of function arguments
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2024-02-13 10:34:57 +01:00
Matthias Grob cb03835124 RTL: use dest.yaw instead of a separate heading_sp 2024-02-13 10:34:57 +01:00
Silvan Fuhrer b19e35ec7c RTL: change when to set a heading setpoint, generally leave it up to the executer
-remove RTL_HDG_MD
-only set heading setpoint in Navigator::RTL once above landing point,
or when RTL is triggered close to it
-never set a heading during RTL if weather vane is enabled

Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2024-02-13 10:34:57 +01:00
PX4 BuildBot dce53a626e boards: update all NuttX defconfigs 2024-02-12 08:58:49 -05:00
Daniel Agar 5f589bdda3 Update submodule GPSDrivers to latest Mon Feb 12 12:39:19 UTC 2024
- GPSDrivers in PX4/Firmware (17ff40898c683e1fe96ff9e2d2790594d188f872): https://github.com/PX4/PX4-GPSDrivers/commit/3393191fbb842f8e13a3f296218efec832640112
    - GPSDrivers current upstream: https://github.com/PX4/PX4-GPSDrivers/commit/f48cc01d31607baa4963bde090f530b44df3de12
    - Changes: https://github.com/PX4/PX4-GPSDrivers/compare/3393191fbb842f8e13a3f296218efec832640112...f48cc01d31607baa4963bde090f530b44df3de12

    f48cc01 2024-02-08 Julian Oes - ubx: separate config for jamming monitor
bc72f55 2024-02-08 Julian Oes - sbf: simplify odd define

Co-authored-by: PX4 BuildBot <bot@px4.io>
2024-02-12 08:58:21 -05:00
Matthias Grob 1998f54ea6 DifferentialDrive: move spoolup consideration to the main module 2024-02-12 14:29:10 +01:00
PerFrivik bef694f9ba Added spoolup and removed temporary timeout for EKF 2024-02-12 14:29:10 +01:00
PerFrivik 560d6a9d4b cleanup + updated acro 2024-02-12 14:29:10 +01:00
PerFrivik f996caa5bd Fixed bug in the guidance logic
After smoothing the linera velocity setpoint, the EKF has trouble initializing, becuase the acceleration is too smooth, to combat this issue, there is a 1 second delay when initializing the mission mode
2024-02-12 14:29:10 +01:00
PerFrivik bb0dfba4e6 added acro mode
Acro mode is manual mode, but with rate control
2024-02-12 14:29:10 +01:00
PerFrivik d197d94889 Fixed guidance logic and added feedforward term to compute the angular velocity 2024-02-12 14:29:10 +01:00
Matthias Grob 396ef222ee DifferentialDrive: Rework structure
3 Components Guidance - Control - Allocation
with their corresponding uORB interface.
2024-02-12 14:29:10 +01:00
Matthias Grob f85144ca76 DifferentialDrive: remove trailing zeros from prameter metadata 2024-02-12 14:29:10 +01:00
Matthias Grob b54b4f7dce Rename module differential_drive_control -> differential_drive 2024-02-12 14:29:10 +01:00
Matthias Grob fc90e235f1 Rename differential drive setpoint topics 2024-02-12 14:29:10 +01:00
Matthias Grob f7baeae1a0 DifferentialDriveControl: only save required parts of uORB message 2024-02-12 14:29:10 +01:00
PerFrivik e457a5baed Differential Drive Guidance: Add guidance
also add dependency on control allocation parameter CA_R_REV

Differential Drive Guidance: Added mission logic

Differential Drive Guidance

Differential Drive Guidance

Differential Guidance: Inlcude library

Differential Guidance: Compiles, does not work though

Differential Guidance: Works somewhat

Differential Guidance: Temp

Differential Guidance: Tuning

Differeital Drive Guidance: Remove waypoint mover

Differential Guidance: Fixed accuracy issue by converting from float to double

Differential Guidance: rebased on differentialdrive and improved waypoint accuracy

Temp

Differential Guidance: cleanup

temp
2024-02-12 14:29:10 +01:00
PX4 BuildBot 0f3925b21d update all px4board kconfig 2024-02-09 10:48:26 -05:00
muramura f636414ca7 tuning_tools: Change 1G to a more accurate value 2024-02-09 10:26:57 -05:00
muramura 00a9e4c76b Auto: Change 1G to a more accurate value 2024-02-09 10:26:57 -05:00
Alex Klimaj 31bbda0b58 boards: new ARK Septentrio GPS CAN node(ark_septentrio-gps)
* update gps submodule with sbf fix
* ARK Septentrio GPS initial commit
2024-02-09 10:26:09 -05:00
Matthias Grob b355c16141 Lanbao driver: correct rangefinder type to IR 2024-02-09 06:19:12 +01:00
Matthias Grob 7fdb5ef3cb PWMOut/px4io: correct automatic servo/motor configuration messages 2024-02-09 06:19:12 +01:00
fury1895 3de7d83e5f v6x board_sensors: publish system_power if ADC_ADS1115_EN is enabled 2024-02-08 16:11:34 +01:00
Matthias Grob 97cb933cff FLightTaskAuto: limit nudging speed based on distance sensor 2024-02-07 11:23:55 +01:00
Silvan Fuhrer 584d8abe1e params: change return type of param_modify_on_import to enum
Return early in param_import_callback() with 1 if we do a param_set in the param translation.

Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2024-02-07 08:08:37 +01:00
Silvan Fuhrer 982c998ab9 mc_attitude_control: move attitude setpoint pulling to right before usage
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2024-02-06 17:54:22 -05:00
Silvan Fuhrer e5cfbbb1ee mc_att_control: remove direct setting of att sp in Stabilized
Instead of directly setting the attitude setpoint for usage inside the same module
only publish it to the uorb topic, which is subscribed to in the same module.

Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2024-02-06 17:54:22 -05:00
KonradRudin 3576d513cd battery: make time remaining estimation dependent on level flight cha… (#22401)
* battery: make time remaining estimation dependent on level flight characteristis for FW

* battery: fix that FW flight is also correctly detected when vehicle_status is not updated

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

* FixedwingPositionControl: Move constant to header file

* flight phase estimation: use tecs height rate reference to check for level flight

---------

Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
Co-authored-by: Silvan Fuhrer <silvan@auterion.com>
2024-02-06 17:32:09 +01:00
Andrew Brahim bf52d8adc9 drivers/uavcannode: add indicated airspeed
Signed-off-by: dirksavage88 <dirksavage88@gmail.com>
2024-02-06 11:01:15 -05:00
Alessandro Simovic a6fcb8ef1e bat_sim: parameter for disabling battery simulator 2024-02-06 10:21:21 -05:00
PerFrivik 1917c138f7 Bugfix removed conversion from rpm to rad s 2024-02-06 13:25:25 +01:00
bresch 17d55dddd6 ekf2-drag: do not generate Kalman gain to save flash 2024-02-06 12:16:33 +01:00
bresch 1efb08375a ekf2: let drag fusion affect the complete state vector
This improves tilt estimation and can extend the inertial dead-reckoning
validity period
2024-02-06 12:16:33 +01:00
Peter van der Perk 8dae9905aa fmu-v6xrt: hotfix for sdio crash when reading multiblock to unaligned memory 2024-02-05 11:17:33 -05:00
Beat Küng c78389a855 commander: send ack for VEHICLE_CMD_DO_SET_ACTUATOR 2024-02-02 09:38:28 -05:00
Beat Küng 8b422c5ed6 fix FunctionActuatorSet: if a param is set to NaN, it should be ignored
MAVLink spec: https://mavlink.io/en/messages/common.html#MAV_CMD_DO_SET_ACTUATOR
Previously, a command was overwriting all other indexes.
2024-02-02 09:38:28 -05:00
cuav-liu1 75d6e523b5 ICP201: Fix B2 version not return in bootup config 2024-02-02 09:37:18 -05:00
Vincent Poon 6dbb798e37 Change FMU-v6x REV 6 IMU Order
Change IMU Order, make adis16470 in 1st priority.
2024-02-02 05:49:21 -05:00
David Sidrane c07edd1d9a px4_fmu-v6x:Add Sensor set 8 2024-02-01 21:11:32 -05:00
Julian Oes 2cfdea2edb fmu-6x: fix Telem2 without flow control
When flow control is used together with DMA, we need to add a pulldown
to CTS. Without it, it assumes flow control and gets stuck when
CTS is not connected.

Signed-off-by: Julian Oes <julian@oes.ch>
2024-02-02 06:52:17 +13:00
Niklas Hauser 103ddb5b3d cpuload: Fix wrong idle thread load
When the CPU load monitor is started while already running, then the
idle thread last_times[0] is reset to the last 1 second, rather than
since when the CPU load monitor was last started. The remaining threads
are not impacted, since their last_times[i] is reset to zero here.

This results in the idle thread having a lower than real CPU load, with
the remaining CPU time being wrongly attributed as scheduler load.
2024-01-31 07:52:59 +01:00
David Sidrane 76a2acb222 stm32h7:adc Dynamically set clock prescaler & BOOST
The ADC peripheral can only support up to
   50MHz on rev V silicon and 36MHz on Y silicon.
   The existing driver always used no prescaler
   and kept boost setting at 0.
2024-01-30 18:07:57 -05:00
David Sidrane 543454f12e stm32h7:ADC STM32_RCC_D3CCIPR_ADCSEL->STM32_RCC_D3CCIPR_ADCSRC 2024-01-30 18:07:57 -05:00
David Sidrane 85bfba4497 NuttX with h7 adc clock Backports 2024-01-30 18:07:57 -05:00
Matthias Grob 3e183feb49 matrix: Slice templated on const and non-const matrix cases
to avoid casting const to non-const with
`const_cast<Matrix<Type, M, N>*>(data)`
2024-01-30 11:46:33 -05:00
Matthias Grob 88102d82db matrix: return value simplifications 2024-01-30 11:46:33 -05:00
Matthias Grob 44a8c553fb AxisAngle use Vector3<T> instead of Vector<T, 3> 2024-01-30 11:46:33 -05:00
Matthias Grob ea4fdfd637 matrix: fix internal include chain 2024-01-30 11:46:33 -05:00
muramura c5757e0799 gimbal: Change the IF statement to a SWITCH statement 2024-01-30 11:28:20 -05:00
Roman Bapst 380841563f ina238: set shunt calibration to desired value if readback is incorrect (#22237)
* refactor driver to dynamically check registers and do reset if register does not match desired value
* have seen various times where shunt calibration was reset in air

---------

Signed-off-by: RomanBapst <bapstroman@gmail.com>
2024-01-30 11:28:05 -05:00
Konrad 169d2dd286 mission_base: fix validity on abort landing 2024-01-30 11:25:37 -05:00
Konrad 0a153efb9d mission_base: make sure to always update state on mission topic update 2024-01-30 11:25:37 -05:00
Konrad 97ce599b1f mavlink_mission: publish mission topic at startup 2024-01-30 11:25:37 -05:00
Konrad 9fd137e88e mavlink_mission: add alternating storage for geofence and safe points on upload
This way the old points are kept on an upload error.
2024-01-30 11:25:37 -05:00
Konrad 50f1abaef1 dataman: extend for double storage geofence and safe points 2024-01-30 11:25:37 -05:00
Konrad dfa56d474a mission: renaming dataman_id to mission_dataman_id 2024-01-30 11:25:37 -05:00
Konrad cac858cb24 dataman: use correct size for dataman compat key 2024-01-30 11:25:37 -05:00
bresch 9c02e384e6 ekf2-agp: follow measurement reset 2024-01-30 11:23:55 -05:00
bresch 5d9081b0dd ekf2-agp: ensure logging of AGP aid_src topic 2024-01-30 11:23:55 -05:00
bresch 4268759d4a ekf2-agp: reset to measurement on fusion timeout 2024-01-30 11:23:55 -05:00
muramura 23ae769e46 check: Changing the order of messages and events 2024-01-30 11:20:19 -05:00
muramura 3c444c2f2a dataman: Move before using variable definitions 2024-01-30 11:19:29 -05:00
alexklimaj d2a3ca28e1 boards: arkv6x migrate to split versioning 2024-01-30 11:15:03 -05:00
David Sidrane dc73d5d634 px4_fmu-v5x:Use BOARD_HAS_HW_SPLIT_VERSIONING & common PAB manifest 2024-01-30 11:15:03 -05:00
David Sidrane 4b8b30914a px4_fmu-v6xrt:Use BOARD_HAS_HW_SPLIT_VERSIONING & common PAB manifest 2024-01-30 11:15:03 -05:00
David Sidrane 150a161efb nxp Support BOARD_HAS_HW_SPLIT_VERSIONING 2024-01-30 11:15:03 -05:00
David Sidrane 84dddb5f40 px4_fmu-v6x:rc.board_sensors Use BOARD_HAS_HW_SPLIT_VERSIONING 2024-01-30 11:15:03 -05:00
David Sidrane 987d97d600 px4_fmu-v6x:HAVE_PM2 set by PX4_MFT_PM2 in manifest 2024-01-30 11:15:03 -05:00
David Sidrane 3057f7607f px4_fmu-v6x:Use hwbasecmp 2024-01-30 11:15:03 -05:00
David Sidrane c4e8faeacb PX4:ver Add base type compare 2024-01-30 11:15:03 -05:00
David Sidrane 5909dd09f5 ROMFS:netman update - dependent on PX4_MFT_ETHERNET not board type 2024-01-30 11:15:03 -05:00
David Sidrane 5ab92173f2 px4_fmu_v6x:Use common PAB manifest 2024-01-30 11:15:03 -05:00
David Sidrane 84d54c971f PX4:common add PAB manifest
PX4:common add PAB manifest with V5X bases
2024-01-30 11:15:03 -05:00
David Sidrane 46a8eb6335 PX4:Extend manifest types & add CLI query 2024-01-30 11:15:03 -05:00
David Sidrane 8ff4ed8321 px4_fmu-v6x:Use BOARD_HAS_HW_SPLIT_VERSIONING 2024-01-30 11:15:03 -05:00
David Sidrane dc01c3a08e stm Support BOARD_HAS_HW_SPLIT_VERSIONING 2024-01-30 11:15:03 -05:00
David Sidrane 136e08652f PX4:comon Support BOARD_HAS_HW_SPLIT_VERSIONING 2024-01-30 11:15:03 -05:00
David Sidrane 81f3542113 boards:Needing Migration to BOARD_HAS_HW_SPLIT_VERSIONING 2024-01-30 11:15:03 -05:00
Mykhailo Ziatin 6e4f984cea Add render engine option for gz sim command 2024-01-30 11:12:48 -05:00
cuav-liu1 df8a8af34c ICP201: increase startup delay with B2 version 2024-01-30 10:06:28 -05:00
Silvan Fuhrer 24debb5ff2 logged_topics: log all instances of torque/thrust setpoints in high rate
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2024-01-29 20:44:55 -05:00
Silvan Fuhrer 09b7cffca5 logged_topics: add actuator_servos to high rate logging
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2024-01-29 20:44:55 -05:00
Igor Mišić 23cebd6cf2 temperature_compensation: use set_sensor_id_mag for Mag 2024-01-29 20:44:12 -05:00
bresch 80f20e619c ekf2: zvup sequential fusion 2024-01-29 12:12:37 -05:00
murata,katsutoshi e8b3778f81 uuv_att_control: Variable definition in processing (#22697) 2024-01-29 17:04:10 +01:00
Roman Bapst 077baeae52 Avoid waypoint following during backtransition which can lead to strong banking (#22642)
* avoid waypoint following during backtransition
- if vehicle overshoots transition, make controller track the prev/current
waypoint line, this avoids large banking maneuvers that delay the transition further

Signed-off-by: RomanBapst <bapstroman@gmail.com>

* navigator: use SETPOINT_TYPE_LAND as setpoint type for VTOL_LAND waypoints
such that fixed wing position controller can distinguish from other types

Signed-off-by: RomanBapst <bapstroman@gmail.com>

* FixedWingPositionControl: split vtol backtransition logic into separate method

Signed-off-by: RomanBapst <bapstroman@gmail.com>

* review changes

Signed-off-by: RomanBapst <bapstroman@gmail.com>

* prevent loiter when approaching vtol backtransition and invalidate previous waypoint during mission landing

Signed-off-by: RomanBapst <bapstroman@gmail.com>

* removed unused parameter

Signed-off-by: RomanBapst <bapstroman@gmail.com>

* small renaming of transition mode

Signed-off-by: RomanBapst <bapstroman@gmail.com>

---------

Signed-off-by: RomanBapst <bapstroman@gmail.com>
2024-01-29 09:45:40 +01:00
somebody-once-told-me f40ede6087 Control Allocation Sequential Desaturation unit tests (#22612)
* [control_allocation] add unit tests for ControlAllocationSequentialDesaturation

* complete first 2 unit tests

* add yaw test

* add more unit tests

* improve comments

* format

* address review comments

* submodule update

* Update src/modules/control_allocator/ControlAllocation/ControlAllocationSequentialDesaturationTest.cpp

Co-authored-by: Silvan Fuhrer <silvan@auterion.com>

* Update src/modules/control_allocator/ControlAllocation/ControlAllocationSequentialDesaturationTest.cpp

Co-authored-by: Silvan Fuhrer <silvan@auterion.com>

* Update src/modules/control_allocator/ControlAllocation/ControlAllocationSequentialDesaturationTest.cpp

Co-authored-by: Silvan Fuhrer <silvan@auterion.com>

* remove float suffix for logical integers, add missing float suffixes for logical float zeros, and make YAW_MOTORS an int

---------

Co-authored-by: Master Chief <master-chief@the-void.com>
Co-authored-by: Silvan Fuhrer <silvan@auterion.com>
2024-01-26 15:17:54 +01:00
Daniel Agar 1d70e32551 Update world_magnetic_model to latest Wed Jan 24 11:14:20 UTC 2024
Co-authored-by: PX4 BuildBot <bot@px4.io>
2024-01-26 09:08:51 -05:00
enesavcu 74d43c2fee lib/system_identification/signal_generator: change functions to inline functions for optimization 2024-01-26 09:07:49 -05:00
alexklimaj deed375579 boards: arkv6x re-enable serial TX DMA 2024-01-26 09:06:37 -05:00
alexklimaj f29e1e8563 boards: arkv6x uart5 cts enable pulldown 2024-01-26 09:06:37 -05:00
PX4 BuildBot 0edebffcd6 boards: update all NuttX defconfigs 2024-01-24 21:51:05 -05:00
PX4 BuildBot 6f670cdc0b update all px4board kconfig 2024-01-24 21:50:11 -05:00
Daniel Agar 4e0967889c ekf2: add verbose print status (moved out of DEBUG_BUILD) 2024-01-24 21:49:26 -05:00
Daniel Agar bc9ea95359 Update submodule GPSDrivers to latest Thu Jan 25 00:39:33 UTC 2024
- GPSDrivers in PX4/Firmware (12af7ff9904b2fdde39513c56a3e084eb23bcc7a): https://github.com/PX4/PX4-GPSDrivers/commit/63990d218ec35ea965d634af6a79d3155561b743
    - GPSDrivers current upstream: https://github.com/PX4/PX4-GPSDrivers/commit/836b24c10e0ccd0067500f367686acac6d34882d
    - Changes: https://github.com/PX4/PX4-GPSDrivers/compare/63990d218ec35ea965d634af6a79d3155561b743...836b24c10e0ccd0067500f367686acac6d34882d

    836b24c 2023-12-11 bedaberner - ubx: fixed wrong mapping of ubx-sat-nav used parameter

Co-authored-by: PX4 BuildBot <bot@px4.io>
2024-01-24 21:48:40 -05:00
PX4 BuildBot baeef282bc Update submodule mavlink to latest Thu Jan 25 00:39:42 UTC 2024
- mavlink in PX4/Firmware (99cacc55c6d21c2aa87b695e59941b62c599c70b): https://github.com/mavlink/mavlink/commit/5f85bd7d7d6155d2d349bd04ed67544610e8e65b
    - mavlink current upstream: https://github.com/mavlink/mavlink/commit/c4a5c497379ca873f73abe691a033641a6a5a817
    - Changes: https://github.com/mavlink/mavlink/compare/5f85bd7d7d6155d2d349bd04ed67544610e8e65b...c4a5c497379ca873f73abe691a033641a6a5a817

    c4a5c497 2024-01-04 Hamish Willee - Update MAV_TYPE_VTOL_TAILSITTER description to mention existing types (#2068)
9840105a 2023-12-15 Peter Barker - csAirLink: correct enumeration name (#2066)
fac54675 2023-12-13 Dmitriy Afanasev - csAirLink.xml: added messages to support peer to peer connections (#2065)
2024-01-24 21:47:59 -05:00
Daniel Agar 51155f7a29 ekf2: treat inhibited states as "consider states" and remove conservative covariance matrix fixes (#22597)
When a state stops to be estimated it becomes a "consider state". Its value and variance are frozen but its covariance with other states continue to evolve normally.

 - removes conservative accel bias variance limiting
 - force symmetry is skipped after fusion of NED vel/pos (a direct measurement)

---------

Co-authored-by: bresch <brescianimathieu@gmail.com>
2024-01-24 14:14:09 -05:00
Daniel Agar 2c81c9fdea boards: px4/fmu-{v5*,v6*} add dedicated rover board variants (eg px4_fmu-v6x_rover) 2024-01-24 14:06:49 -05:00
bresch 0bf9ccdcc9 sys-id: implement linear and log sine sweeps 2024-01-24 12:18:23 -05:00
Mathieu Bresciani cb396a6339 ekf2: fix computation of tilt and yaw variances add them to logging
Co-authored-by: bresch <bresch@users.noreply.github.com>
2024-01-24 12:14:15 -05:00
bresch da28d9a7f2 ekf2-grav: rename g-force unit to g0 to avoid confusion with grams 2024-01-24 13:26:25 +01:00
Igor Mišić 8b96cd5372 temperature_compensation: rename TC_A_ENABLE to TC_M_ENABLE for mag.cpp 2024-01-23 21:06:54 +01:00
Igor Mišić 35b0e93387 ROMFS: start magnetometer temperature compensation if enabled 2024-01-23 21:06:54 +01:00
David Sidrane 0df611b115 NuttX with stm32h7:serial make TX DMA busy backport 2024-01-23 11:23:00 -05:00
alexklimaj d075956c4d lib: battery allow for 3 instances 2024-01-22 19:29:38 -05:00
Henry Kotzé 736a730bb1 src/drivers: new FT7 series wind/airflow sensor support (#22471)
- new uorb topic sensor_airflow
 - log sensor_airflow optionally
2024-01-22 14:42:38 -05:00
Beat Küng 8be64278be fix navigator: prevent race condition when receiving multiple commands at once
When handling multiple commands, it could happen that the first command
updates _reposition_triplet. Normally this would then get handled after
getting the mode change from commander through vehicle_status.
But if the next command is handled before an update from commander, it
could overwrite the triplet.
This patch ensures that navigator waits for an update from commander (and
therefore process the _reposition_triplet) before handling the next
command.

This happened specifically when pressing 'Pause' from QGC during a mission.
QGC sends VEHICLE_CMD_DO_REPOSITION twice, first for pausing, then changing
the altitude.
The result was that the vehicle would not stop at the current location but
continue to the next mission waypoint and stop there.
2024-01-22 12:45:54 -05:00
Daniel Agar bf7da6430d ekf2: consolidate LPOS & GPOS accuracy methods 2024-01-22 12:34:08 -05:00
alexklimaj 3ff1f213a4 uavcan: add RelPosHeading->sensor_gnss_relative 2024-01-22 12:30:24 -05:00
alexklimaj db60bbc46b dronecan: gps add noise, jamming, and spoofing data 2024-01-22 12:30:24 -05:00
Bryce Melander 9da1622436 Update cmake-variants.yaml
Added the following targets:
- px4_fmu-v6c_bootloader
- px4_fmu-v6c[_default]
- px4_fmu-v6u_bootloader
- px4_fmu-v6u[_default]
2024-01-19 13:22:49 -05:00
bresch 7c7a3c117a ekf2-gravity: nomalize gravity fusion and proper sequential fusion 2024-01-18 20:39:16 -05:00
bresch d624fbba07 ekf2-grav: lower gate to reject real acceleration more effectively 2024-01-18 20:39:16 -05:00
bresch c28972d15e ekf2-grav: only use filtered accel norm to start/stop the fusion
Using the raw data makes the swith too sensitive to noise
2024-01-18 20:39:16 -05:00
Eric Katzfey 2b69a3d290 VOXL2 specific drivers, modules, and miscellaneous support files (#22588) 2024-01-18 12:14:17 -05:00
Roman Bapst b60e73c76f bad descend quadchute: take altitude reset into account (#22643)
- apply delta from reset to reference altitude state to avoid false triggering

Signed-off-by: RomanBapst <bapstroman@gmail.com>
2024-01-18 08:55:28 +01:00
Daniel Agar ed0d26de8a ekf2: improve attitude estimation without horizontal aiding
- fake_pos only if at rest or tilt variances becomes large
 - fake pos: don't run when grav fusion is enabled
 - gravity fusion enabled by default
 - gravity: only fuse when accel norm and lpf norm are consistent

Co-authored-by: bresch <brescianimathieu@gmail.com>
2024-01-17 10:27:25 -05:00
bresch 8158a14eff fw: cleanup and make use of Vector3 more intensively 2024-01-17 14:44:11 +01:00
muramura 28380f926b fmu-v6xrt: Change image size 2024-01-17 06:48:06 -05:00
muramura 2e38fc89b7 fmu-v6xrt: Change the description to the device name in the WIKI 2024-01-16 21:57:35 -05:00
David Sidrane f1f5934ba2 px4_fmu-v6xrt:SPI1 is icm42686p 2024-01-16 17:09:26 -05:00
David Sidrane 86f96f3b95 px4_fmu-v6xrt:Use multi-PHY 2024-01-16 17:09:26 -05:00
David Sidrane 775b84401f px4_fmu-v6xrt:Fix Probes 2024-01-16 17:09:26 -05:00
David Sidrane f2cf8fcb22 px4_fmu-v6xrt:Default to Selecting ACD6V6 2024-01-16 17:09:26 -05:00
David Sidrane 93a256741f px4_fmu-v6xrt:Use RC_SERIAL_SWAP_USING_SINGLEWIRE 2024-01-16 17:09:26 -05:00
David Sidrane b556d668f8 RCInput:Add Support for RX-TX SWAP using onewire
A board can optionaly define RC_SERIAL_SWAP_USING_SINGLEWIRE
   If the board is wired board with TX to the input (Swapped) and
   the SoC does not support U[S]ART level RX-TX swapping to allow
   useing onewire to do the swap if and only if:

     RC_SERIAL_SWAP_USING_SINGLEWIRE   is defined
     RC_SERIAL_SWAP_RXTX               is defined
     TIOCSSWAP                         is defined and retuns !OK
     TIOCSSINGLEWIRE                   is defined
2024-01-16 17:09:26 -05:00
David Sidrane ab969c71fc px4_fmuv6xrt::Support base version selection 2024-01-16 17:09:26 -05:00
David Sidrane 9849abcb63 rt1170:spi_hw_description:Support Validation and HW selection 2024-01-16 17:09:26 -05:00
David Sidrane d33bb59225 NuttX with multi-PHY backports 2024-01-16 17:09:26 -05:00
Alexis Guijarro 63b3a68aa3 github actions compile nuttx add mro_ctrl-zero-classic 2024-01-16 15:00:19 -05:00
Daniel Agar c3ae7b28c0 matrix: adjust printing for if symmetric (lower triangular only) 2024-01-16 10:20:21 -05:00
Daniel Agar 64f28c4c07 ekf2: delete unused gps error norm field 2024-01-12 10:14:32 -05:00
Silvan Fuhrer a38abdbf9d TECS throttle gains default reduction and transition values from previous PX4 version (#22548)
* TECS: reduce default of FW_T_I_GAIN_THR

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

* TECS: reduce default of FW_T_THR_DAMP

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

* TECS: improve param descriptions and meta data of some params

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

* FW Pos C: rename FW_T_THR_DAMP to FW_T_THR_DAMPING

Rename wihtout param translation as the interpretation of this param has changed
recently (a bug was fixed that caused the damping to have a much lower effect than
it should). We want to avoid that users keep the previously tuned value (with the bug)
and do not update the tuning when using the fixed version (v1.14.0 and later).

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

* FW Pos C: rename FW_T_I_GAIN_THR to FW_T_THR_INTEG

Rename wihtout param translation as the interpretation of this param has changed
recently (a bug was fixed that caused the damping to have a much lower effect than
it should). We want to avoid that users keep the previously tuned value (with the bug)
and do not update the tuning when using the fixed version (v1.14.0 and later).

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

---------

Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2024-01-12 10:25:53 +01:00
Silvan Fuhrer 12997020a4 MissionFeasibilityChecker: remove below home check (#22624)
This check gave a warning when one or more mission items were below the
Home altitude. As it is a valid usecase to plan missions below Home,
those warnings were too often seen as a inconvenience and are thus
removed here.

Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2024-01-12 09:53:14 +01:00
Silvan Fuhrer 3b54a06567 Tailsitter: use same pitch transition thresholds in all modes
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2024-01-12 09:51:55 +01:00
Silvan Fuhrer 3e36ab187b ROMFS: improve SITL tailsitter tuning
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2024-01-12 09:51:55 +01:00
Silvan Fuhrer a47bc4cb90 Tailsitter: mini clean up
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2024-01-12 09:51:55 +01:00
Silvan Fuhrer e260a92ccb MC att control: do not update the attitude setpoint directly in transition mode
That enables us to update the pitch setpoint in Stabilized mode
in the VTOL controller (pitch ramp for transition).

Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2024-01-12 09:51:55 +01:00
Daniel Agar 8a031677d5 ekf2: verbose debug print status include state variances 2024-01-11 11:53:20 -05:00
Daniel Agar 4cb293020a ekf2: remove sensor sample uORB::Subscription missed perf counters
- these served their purpose, but are no longer useful
 - still worth keeping the IMU subscription missed perf count to catch any scheduling issues
2024-01-11 11:52:29 -05:00
Daniel Agar 855bf8f0d2 .gitmodules set gz submodule branch 2024-01-11 11:07:33 -05:00
Sihyun 4377e5e319 boards/thepeach: Add uxrce_dds_client 2024-01-11 11:00:29 -05:00
Daniel Agar 8bcba6128a ekf2: fix resetGlobalPosToExternalObservation whitespace 2024-01-11 10:59:56 -05:00
Anthony Merlino 5c845a58f1 netman: Allow default fallback IP to be set by board config 2024-01-11 10:58:59 -05:00
Silvan Fuhrer e1ad1b60d0 VTOL: change transition airspeed threshold: only look at VT_ARSP_TRANS (#22581)
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2024-01-11 13:35:01 +01:00
Roman Bapst 603c3f6636 added support to reset vehicle position based on external position (#22444)
via command MAV_CMD_EXTERNAL_POSITION_ESTIMATE

Signed-off-by: RomanBapst <bapstroman@gmail.com>
2024-01-11 13:09:22 +01:00
Daniel Agar d45c3d3407 ekf2: verbose (DEBUG_BUILD) print status with Matrix improved print
* ekf2: verbose print status
 * matrix/Matrix improve print output
 * bold diagonal elements, print ring buffer entry size
 * print in scientific notation when >= 10 to respect max size

---------

Co-authored-by: bresch <brescianimathieu@gmail.com>
2024-01-10 09:46:04 -05:00
dirksavage88 071565a8ad Fix scaling issue with thoneflow/holybro optical flow pwm3901 UART driver
Signed-off-by: dirksavage88 <dirksavage88@gmail.com>
2024-01-09 22:08:09 +01:00
alexklimaj af0eb729c9 boards: arkv6x disable serial tx dma for now to prevent blocked tx 2024-01-09 10:38:01 -05:00
Jaeyoung Lim c8e041a371 Add Fixedwing path following as a separate controller state (#21376)
* Separate offboard path setpoints as fixedwing pos control state

This commit separates offboard path following as a separate state inside the FW Poscontrol module.

This is a cleanup on clearly defining fw pos control behaviors

* Update src/modules/fw_pos_control/FixedwingPositionControl.cpp

Co-authored-by: Silvan Fuhrer <silvan@auterion.com>

* Fix format

---------

Co-authored-by: Silvan Fuhrer <silvan@auterion.com>
2024-01-09 16:35:50 +01:00
Julian Oes 88b3316409 sensors/vehicle_imu: fix gyro clipping publication
The IMU topic is not zeroed, and the clipping information was not
copied, so this field ended up being garbage.

Signed-off-by: Julian Oes <julian@oes.ch>
2024-01-09 10:20:40 -05:00
Matthias Grob 9156c5c065 ROMFS: remove single trailing zeros 2024-01-09 10:27:39 +01:00
Matthias Grob b70b19b7eb ROMFS: keep consistent quad X geometry but in each airframe separately 2024-01-09 10:27:39 +01:00
Matthias Grob 09fa712d37 ROMFS: remove trailing zeroes 2024-01-09 10:27:39 +01:00
Matthias Grob 40f2fc4e77 ROMFS: remove duplicate uuv configuration 2024-01-09 10:27:39 +01:00
Matthias Grob 4b86e174a3 ROMFS: Fix quad + geometry 2024-01-09 10:27:39 +01:00
Federico Ciresola 20129e63fa ModeCompleted.msg: document nav_state (#22544) 2024-01-08 11:32:41 +01:00
somebody-once-told-me 3d5c2ef6c4 [control_allocation] small function comment typo fix (#22607)
Co-authored-by: Master Chief <master-chief@the-void.com>
2024-01-08 11:12:06 +01:00
Peter van der Perk cf840ff373 Update NuttX 2024-01-06 04:41:00 -05:00
Peter van der Perk 0df7ee423f fmu-v6xrt: Tune ITCM function mapping 2024-01-06 04:41:00 -05:00
muramura b24d9bf009 fmu-v6xrt: Move external BMP388 outside of config parameter determination 2024-01-05 09:10:54 -05:00
Peter van der Perk e79f6b2ac1 v6x-rt: Add reboot to isp support 2024-01-05 08:41:41 -05:00
David Sidrane 5d7cb99204 px4_fmu-v6xrt:Support PX4 VxX Mini baseboard 2024-01-05 01:38:22 -05:00
muramura 959cb41e3a mavlink: Add a second barometric sensor message 2024-01-04 11:19:41 -05:00
Daniel Agar 6495f40ee4 delete old top level config files (dot files, CI, etc) 2024-01-04 11:18:56 -05:00
muramura 7b32b735e8 fmu-v6xrt: Delete a parameter setting that does not exist 2024-01-04 11:18:18 -05:00
Peter van der Perk 84093a07a2 reboot: Add reboot to ISP option 2024-01-04 11:17:16 -05:00
Peter van der Perk 8ba18a78af v6x-rt: move romapi to platform 2024-01-04 05:12:34 -05:00
Silvan Fuhrer 6be8cbe439 Navigator: mission_block: reduce enforce eexit course margin to 105% (#22511)
With this margin it is made sure that if the loiter is not perfectly tracked,
(vehicle outside of path setpoint) a wp just at the border of the loiter
is still reachable.
It should though be as small as necessary, as otherwise, with good
loiter tracking,  waypoints that are close but not right on the loiter
radius are not enforcing the exit course neither.

Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2023-12-21 16:58:22 +01:00
Silvan Fuhrer 7e22b47b85 Navigator/FlightTaskAuto yaw handling improvements/simplifications (#22532)
* PositionSetpoint: remove yaw_valid field

* Navigator: set yaw setpoint to NAN for Takeoff

Don't set a yaw setpoint for takeoff, as Navigator doesn't handle the yaw reset.
The yaw setpoint generation is handled by FlightTaskAuto.

* PositionSetpoint.msg: remove disable_weather_vane and instead only use the yaw field

Strictly follow the concept that if the position_setpoint.yaw is set, then
follow it the controller, and otherwise let the controller set it as it
thinks it's best.

* Navigator: remove logic that sets yaw to be accepted in TAKEOFF

No longer needed as during Takeoff we anyway don't set a yaw setpoint.

* PositionSetpoint.msg: remove yawspeed_valid

* PositionSetpoint.msg: remove yawspeed

* Navigator: set yaw setpoint to NAN instead of current

In set_takeoff and set_land_item, as well as for VTOL transition.
The flight tasks then set the yaw corresponding to the current yaw.

* Navigator: change get_yaw_acceptance into a bool

* PositionSetpoint.msg: improve comment for yaw

* MissionBlock: remove unnecessary code from set_vtol_transition_item

* Navigator: clean up calculate_breaking_stop(), set yaw to NAN

* Navigator: set yaw to NAN in variouls places where not specifc setpoint is desired

* Navigator: set yaw to NAN in reset_position_setpoint()

---------

Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
Co-authored-by: Matthias Grob <maetugr@gmail.com>
2023-12-21 16:50:13 +01:00
Matthias Grob d872ef87da differential_drive_control: don't build by default
also add dependency on control allocation parameter CA_R_REV
2023-12-21 16:27:53 +01:00
Matthias Grob 3de5c609a4 Differential Rover: PR fixes 2023-12-21 16:27:53 +01:00
PerFrivik 056e41af8c Differential Rover: Ported R1 to GZ and introduced new GZ wheel interface 2023-12-21 16:27:53 +01:00
PerFrivik 1e7ce32480 Differential Rover: Added logging and dds topics 2023-12-21 16:27:53 +01:00
PerFrivik 3df71d1837 Differential Rover: Differential drive module & library 2023-12-21 16:27:53 +01:00
PerFrivik e3359ea884 Differential Rover: Update airframe architecture 2023-12-21 16:27:53 +01:00
Peter van der Perk 19d1941758 px4_fmuv6xrt: Switch to icm42686p on SPI1
icm42588p driver don't use a icm42688p when icm42686p is requested
2023-12-21 10:11:20 -05:00
bresch c1b139dea1 atune: reset param on start
This prevents a race condition where autotune cannot start because the param was already set to 1
2023-12-21 13:52:47 +01:00
MaEtUgR 74549e29a5 [AUTO COMMIT] update change indication 2023-12-21 11:42:08 +01:00
Matthias Grob bcb2b1ad40 matrix: fix slice to slice assignment to do deep copy
To fix usage of a.xy() = b.xy() which should copy
the first two elements over into a and not act on a copy of a.
2023-12-21 11:42:08 +01:00
Silvan Fuhrer 2afbd09c63 Commander: AirspeedCheck: increase timeout threshold to 2s
1s gives some false positives at boot up, as the airspeed selector only
starts publishing 2s after its startup.

Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2023-12-21 11:34:28 +01:00
Silvan Fuhrer 9d00a3ae4d AirspeedSelector: remove option to disable airspeed sensor through ASPD_PRIMARY
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2023-12-21 11:34:28 +01:00
Silvan Fuhrer 29807a5e50 Replace CBRK_AIRSPD_CHK with SYS_HAS_NUM_ASPD
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2023-12-21 11:34:28 +01:00
Silvan Fuhrer 9e0c8fd75e FW controllers: change param FW_ARSP_MODE to FW_USE_AIRSPD
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2023-12-21 11:34:28 +01:00
Silvan Fuhrer 1f2a0bc657 Commander: remove check for FW_ARSP_MODE for airspeed missing reporting
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2023-12-21 11:34:28 +01:00
Silvan Fuhrer 5211c358aa FW Position Controller: change airspeed setpoint init
-remove dedicated vtol transition airspeed init logic
-init airspeed setpoint on first usage of tecs
-init to max of current airspeed and min airspeed

Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2023-12-21 11:34:28 +01:00
Silvan Fuhrer 27957e1f2f FW Position Controller: set airspeed_valid flag to false if incoming data is not finite
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2023-12-21 11:34:28 +01:00
Silvan Fuhrer 123c06f2e6 NPFG: specify in comments that airspeed reference is for true airspeed
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2023-12-21 11:34:28 +01:00
Silvan Fuhrer 589f0f1fc7 FW Position Controller: rename _airspeed to _airspeed_eas
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2023-12-21 11:34:28 +01:00
bresch b8c81f6281 gps_blending: fallback to secondary if primary has no fix 2023-12-20 16:35:30 -05:00
bresch 094048ed04 gps_blending: fix selection rapid switching
Once a timeout of the primary instance is detected, a fallback is only
allowed until the primary receiver is regained.
2023-12-20 16:35:30 -05:00
Matthias Grob 8da106df6a px_process_events: fix no base path being a list
This make `make extract_events` fail in CI that only runs on the
main branch and hence I wasn't aware of.
2023-12-19 10:04:02 +01:00
Beniamino Pozzan 613564fffa [rc.simulator] fix PX4_HOME_ALT and cleanup
Signed-off-by: Beniamino Pozzan <beniamino.pozzan@gmail.com>
2023-12-18 16:08:30 -05:00
bresch 36eb319834 ekf2-yaw_est: split imu and velocity updates 2023-12-18 18:11:20 +01:00
bresch bba30663cc update change indicator
Caused by the GNSS checks being performed at the delayed-time horizon
2023-12-18 18:11:20 +01:00
bresch a653073d4f ekf2: perform GNSS checks at delayed-time horizon
- never fuse a measurement that is not passing the checks
- cleanup and simplify GNSS vel/pos control logic
2023-12-18 18:11:20 +01:00
Daniel Agar b0566cd8aa posix: cmake INSTALL make new GZ models/worlds optional for now
- the entire posix install package needs to be reviewed and tested
2023-12-18 11:49:53 -05:00
Frederik Markus 0aa7af8b66 update submodule to current main branch commit (#22566)
Signed-off-by: frederik <frederik.anilmarkus@gmail.com>
2023-12-18 15:04:29 +01:00
Frederik Markus c63214bcae adds vehicle with monocam (#22546)
Signed-off-by: frederik <frederik.anilmarkus@gmail.com>
2023-12-18 09:47:57 +01:00
Frederik Markus 65e53286b6 Standalone px4 stable (#22467)
simulation gazebo: move the gazebo models to submodule, allow for operation with external gazebo instance, independent of startup order. Allows drag an drop of models from gazebo fuel.

* rolled back updates

Signed-off-by: frederik <frederik@auterion.com>

* fixing empy

Signed-off-by: frederik <frederik@auterion.com>

* Update GZBridge.cpp to lower drop position 

Dropping from 1m leads to movement in the rc_cessna. Dropping from 0.5m leads to no movement.

* Update STANDALONE env variable.

* Update STANDALONE env_variable on GZBridge

* Update src/modules/simulation/gz_bridge/GZBridge.cpp

Co-authored-by: Daniel Agar <daniel@agar.ca>

* test removal of x500

Signed-off-by: frederik <frederik.anilmarkus@gmail.com>

* removed all models and reworked logic

Signed-off-by: frederik <frederik.anilmarkus@gmail.com>

* remove model path in set_sdf_filename

Signed-off-by: frederik <frederik.anilmarkus@gmail.com>

* filter resource path for world sdf

Signed-off-by: frederik <frederik.anilmarkus@gmail.com>

* updated structure to keep old make px4_sitl

Signed-off-by: frederik <frederik.anilmarkus@gmail.com>

* remove gz tools

Signed-off-by: frederik <frederik.anilmarkus@gmail.com>

* import gz as submodule and reverse rc simulator logic

Signed-off-by: frederik <frederik.anilmarkus@gmail.com>

* [gz-sim]: source GZ_SIM_RESOURCE_PATH only if PX4 starts gz server

Signed-off-by: Beniamino Pozzan <beniamino.pozzan@gmail.com>

* Typo fix

---------

Signed-off-by: frederik <frederik@auterion.com>
Signed-off-by: frederik <frederik.anilmarkus@gmail.com>
Signed-off-by: Beniamino Pozzan <beniamino.pozzan@gmail.com>
Co-authored-by: Daniel Agar <daniel@agar.ca>
Co-authored-by: Beniamino Pozzan <beniamino.pozzan@gmail.com>
2023-12-18 09:43:20 +01:00
Matthias Grob 6ffc5a9eae events: pass relative paths plus base path to source parser script (#22551)
* events: pass relative paths plus base path to source parser script

to work around maximum Makefile command lenght limits.

* events: correct cmake comment typo

Co-authored-by: Beat Küng <beat-kueng@gmx.net>

---------

Co-authored-by: Beat Küng <beat-kueng@gmx.net>
2023-12-18 09:33:53 +01:00
Silvan Fuhrer f38fe24a98 FW Position Control: fix setting of _control_mode_current to AUTO in VTOL landing
The _control_mode_current wasn't updated otherwise, and only done so by luck
because we already set the current type to SETPOINT_TYPE_POSITION.

Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2023-12-16 16:37:51 -05:00
Daniel Agar 4b25fad862 lib/timesync: relax warnings
- double required max consecutive counts
 - don't continuously complain about round trip time (RTT) unless
   there's been at least one acceptable round trip (latency < 100 ms)
2023-12-16 16:36:36 -05:00
Daniel Agar 7fa6f4e32f boards: px4/fmu-v6x add dedicated multicopter build 2023-12-16 16:29:52 -05:00
Daniel Agar 808fd67fcb Tools/setup: macos.sh add python-tk for kconfig gui (boardguiconfig) 2023-12-16 16:29:07 -05:00
Daniel Agar dba2d76321 systemcmds/i2c_launcher: fix USER_I2C_LAUNCHER kconfig warning 2023-12-16 16:28:11 -05:00
Silvan Fuhrer 8be22f6c75 FW Position Controller: add missing @decimal 1 for FW_LND_THRTC_SC
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2023-12-16 09:45:18 +01:00
jamming b7306f3773 boards: px4/fmu-v6c add BMI088 support 2023-12-15 11:45:37 -05:00
Peter van der Perk fe4333f4a0 Update NuttX 2023-12-15 10:15:02 -05:00
Peter van der Perk e2c027405e px4_fmu-v6xrt: Add dshot support 2023-12-15 10:15:02 -05:00
oystub 24cee81279 gps_blending: output valid time_utc_usec
Before this fix, the time_utc_usec output from blending was always 0.
This means that you wouldn't get a valid vehicle_gps_position/time_utc_usec

With this commit, UTC timestamps are blended according to weights for
all GPSes with a nonzero UTC timestamp value.

It would be possible to simply use the first valid UTC timestamp instead
of blending, but since the system timestamps are blended, it seems
suitable to blend UTC timestamps as well.
2023-12-13 11:14:00 -05:00
Niklas Hauser c769fc7785 SF1xx: optionally disable sensor in forward flight 2023-12-13 09:02:26 +01:00
marcojob cf62dad28d sensors/VehicleAngularVelocity: fix force SensorSelectionUpdate
- This fixes the force call on SensorSelectionUpdate
 - In contrary to the rest of the codebase, this method also takes a timestamp: When you call SensorSelectionUpdate(true), time_now_us is actually set to 1 and force stays false, as this is the default value for in the method.
2023-12-12 20:56:59 -05:00
Kjersti Brynestad 91e3ec5884 mavlink: Handle NAMED_VALUE_INT 2023-12-12 20:50:46 -05:00
GuillaumeLaine 942b6700a1 dds_topics: export estimator_status_flags 2023-12-12 14:43:07 -05:00
Matthias Grob 75bb25a44c test_vtol_figure_eight: fix altitude check
wait_until_altitude() checks for absolute altitude being
close so checking for 1m below the setpoint can fail
if the speedup results in no sample inside the altitude
window being checked.

Ideally the test could check if the takeoff is done directly
instead of comparing altitudes in the first place.
2023-12-12 20:22:23 +01:00
Silvan Fuhrer 91ab09ebd5 TECS: in _calcPitchControlOutput guard against invalid airspeed inputs
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2023-12-12 15:16:38 +01:00
Silvan Fuhrer 9db86f7f0a TECS: fix airspeed filter init in airspeed-less mode
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2023-12-12 15:16:38 +01:00
Silvan Fuhrer 60e2c6a5cb TECS: improve initialization
-remove external init, and instead always (but only) init when dt is too large
-init the controller params correctly

Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2023-12-12 15:16:38 +01:00
Silvan Fuhrer 1f5fc3e849 TECS: init control params to reasonable values
The control params (eg min/max pitch) are used before they are
correctly set by TECS::update(). While this is an issue we should fix,
it also doesn't hurt to set them to more reasobale values (eg 30° limit).

Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2023-12-12 15:16:38 +01:00
Silvan Fuhrer 7926107328 TECS: make sure to constrain pitch to current min/max pitch
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2023-12-12 15:16:38 +01:00
Silvan Fuhrer cc743048ba TECS: set _ratio_underspeed to 0 if airspeed disabled
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2023-12-12 15:16:38 +01:00
Matthias Grob ece60b6165 msp_osd: reuse existing mode name conversion
This saves a bit of flash, keeps the mode names up to date and
works like expected.
2023-12-11 17:29:45 +01:00
Silvan Fuhrer 8aab3e8013 Navigator: same logic for VTOL_TAKEOFF as for TAKEOFF (#22518)
Set the setpoint type to POSITION if already in air, not to TAKEOFF.

Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2023-12-11 14:18:22 +01:00
Matthias Grob ebae9ae3d7 FlightTaskManualAccelerationSlow: MC_ prefix for parameter names
As discussed in the maintainer call we should adhere to the
parameter naming scheme that makes it clear what vehicle type the
configuration is good for.
2023-12-08 21:17:59 +01:00
Matthias Grob d03030e881 mavlink_receiver: ifdef guard for velocity limits
Since this message is defined in development.xml and
not yet common.xml and some targets use
common.xml and the builds then failed.
2023-12-08 21:17:59 +01:00
Matthias Grob ca6db94e39 Velocity limit: remove duplicate message and if(true) 2023-12-08 21:17:59 +01:00
Matthias Grob da24811ce1 SickAccelerationXY: fix comment typo brak{e}ing 2023-12-08 21:17:59 +01:00
Marcin 4cf43a68a3 FlightTask: add subscription to VELOCITY_LIMITS msg 2023-12-08 21:17:59 +01:00
Matthias Grob 54ce9813c8 FlightModeManager: Add task for position slow mode 2023-12-08 21:17:59 +01:00
Matthias Grob ef0926d64b Commander: add position slow mode 2023-12-08 21:17:59 +01:00
Matthias Grob dbbf585adb StickYaw: yaw rate limit interface 2023-12-08 21:17:59 +01:00
Matthias Grob 84220407ea FlightTaskManualAltitude: vertical velocity limit interface 2023-12-08 21:17:59 +01:00
Matthias Grob bb617f6c4d FlightTaskManualAcceleration: horizontal velocity limit interface 2023-12-08 21:17:59 +01:00
Matthias Grob 77c06a9f9e Sticks: Provide auxiliary analog values from manual_control_setpoint 2023-12-08 21:17:59 +01:00
Matthias Grob df41bc3d26 StickAccelerationXY: make sure speeds below 1m/s are exactly reached
by only applying the sqrt linear drag when brakeing.
It was originally not done this way to avoid discontinuities and
the exact speed bewlo 1m/s didn't matter. With the position slow mode
the exact slow speeds now matter. And the discontinuities are avoided by
reusing the brake boost filter.
2023-12-08 21:17:59 +01:00
Daniel Agar f703f07399 drivers/distance_sensor: update kconfig common sensors
- mappydot is EOL
 - LL40LS_PWM is a fairly special case that's not common
2023-12-08 13:32:23 -05:00
Matthias Grob e35380d6ae mixer_module_tests: cover output_limit_calc_single() 2023-12-07 21:35:55 -05:00
Matthias Grob 0a78690356 mixer_module: correct output_limit_calc_single calculation 2023-12-07 21:35:55 -05:00
PX4 BuildBot fb3123e33b Update world_magnetic_model to latest Thu Dec 7 11:14:08 UTC 2023 2023-12-07 21:34:18 -05:00
David Sidrane 936c18733b NuttX with NXP Backports 2023-12-07 21:13:40 -05:00
PX4 BuildBot db1bb94ea4 Update submodule mavlink to latest Thu Dec 7 12:39:06 UTC 2023
- mavlink in PX4/Firmware (67cf6bd264055a5d13d5521c6c43bd5b42f374ca): https://github.com/mavlink/mavlink/commit/6cf005e996865d4af749f5f9f0fa95ea7721924e
    - mavlink current upstream: https://github.com/mavlink/mavlink/commit/5f85bd7d7d6155d2d349bd04ed67544610e8e65b
    - Changes: https://github.com/mavlink/mavlink/compare/6cf005e996865d4af749f5f9f0fa95ea7721924e...5f85bd7d7d6155d2d349bd04ed67544610e8e65b

    5f85bd7d 2023-12-07 Hamish Willee - MAV_CMD_DO_SET_HOME - add home position roll/pitch (#1849)
55ba3887 2023-12-06 Hamish Willee - Fixed deprecation typo for MAV_CMD_SET_MESSAGE_INTERVAL (#2060)
2023-12-07 17:56:13 -05:00
PX4 BuildBot 3d1ce20c12 boards: update all NuttX defconfigs 2023-12-07 17:55:38 -05:00
Silvan Fuhrer c61ac784b6 FW attitude controller: remove deprecated ecl_controller
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2023-12-07 17:21:09 +01:00
Silvan Fuhrer b1317daa9c wheel controller remove from ecl
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2023-12-07 17:21:09 +01:00
Silvan Fuhrer 00f5bba5e0 FW att controller: wheel controller: separate from ecl_controller
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2023-12-07 17:21:09 +01:00
Silvan Fuhrer 448292c980 FW att controller: yaw controller: separate from ecl_controller
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2023-12-07 17:21:09 +01:00
Silvan Fuhrer d4206195c6 FW att controller: pitch controller: separate from ecl_controller
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2023-12-07 17:21:09 +01:00
Silvan Fuhrer 7e467f7121 FW att controller: roll controller: seperate from ecl_controller
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2023-12-07 17:21:09 +01:00
Silvan Fuhrer 48782723ab FW att controller: ecl_controller: move setter/getter implementation to header
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2023-12-07 17:21:09 +01:00
David Sidrane 2af21ee0b6 NuttX with No TXDMA semaphore in serial backports 2023-12-06 11:46:47 -05:00
Matthias Grob d259386987 arch: python requirements fix, jdk comes with ant 2023-12-05 12:06:56 -05:00
Matthias Grob 14c4257a59 ActuatorEffectivenessRotors: Use modern parameter interface for rotor count
This lead to a compiler warning with arm-none-eabi-gcc 12+
about the variable count potentially being a dangling pointer.
2023-12-05 12:06:56 -05:00
Matthias Grob b71c6fb6ea arch: update to use pacman's arm-none-eabi
which is currently GCC 12.2
2023-12-05 12:06:56 -05:00
Matthias Grob adb22f1407 spi: put brackets such that GCC12 considers it a pointer for sure
otherwise you get the warning/error px4_spi_buses can never be NULL
2023-12-05 12:06:56 -05:00
Matthias Grob 0c97b0f4b0 ubuntu: usermod -aG instead of -a -G
It's well documented everywhere that this command does and
it's commonly used with exactly these two parameters together
and in that order.
2023-12-05 12:06:56 -05:00
bresch 5ca22df55c ekf2-pos bias estimator: use enum 2023-12-05 11:22:59 -05:00
bresch a3515a2474 ekf2: scope HeightSensor enum 2023-12-05 11:22:59 -05:00
bresch 6bd1145006 ekf2: scope RngCtrl enum 2023-12-05 11:22:59 -05:00
bresch 1df52df27d ekf2: scope GnssCtrl enum 2023-12-05 11:22:59 -05:00
bresch 97423136d1 ekf2-AGP: scope control enum 2023-12-05 11:22:59 -05:00
Beat Küng c5101c70b3 uorb: enure message definitions don't exceed buffer lengths & increase test buffer
There were already checks at runtime, but this ensures the format is not
too long at built-time.
2023-12-05 10:42:23 +01:00
Konrad df46ad7774 Dcm2: Use std::sin with overloaded types 2023-12-05 10:42:23 +01:00
Konrad d1b8a2e8d5 fxedwingPositionControl: Add slew rate at the end for all mode instead inside each 2023-12-05 10:42:23 +01:00
Konrad ae3aee3402 fw param: reduce default COM_VEL_FS_EVH to warn earlier when velocity uncertainty increases 2023-12-05 10:42:23 +01:00
Konrad 1d07697a9e NPFG: Add fallback for corner cases 2023-12-05 10:42:23 +01:00
Matthias Grob 1c25d65a1e Add missing newline at the end of files 2023-12-01 13:11:00 -05:00
Matthias Grob 4c0b6dbe86 Remove trailing whitespaces and trailing duplicate newlines 2023-12-01 13:11:00 -05:00
Matthias Grob d8d2213cab mavlink streams: add SYSTEM_TIME to onboard low bandwidth
It's required with 2Hz by some MAVLink enabled payloads.
2023-12-01 11:02:37 -05:00
Matthias Grob 9184a8f4ef mavlink streams: add CAMERA_IMAGE_CAPTURED to onboard low bandwidth 2023-12-01 11:02:37 -05:00
Matthias Grob 3ceb932b7c mavlink streams: increase RC_CHANNELS rate for onboard low bandwidth
There are MAVLink enabled gimbals that directly consume RC channel data.
The gimbal controls stutter with this profile when the rate is too low.
2023-12-01 11:02:37 -05:00
Matthias Grob 938be68c69 mavlink streams: add gimbal orientation feedback to normal stream
It only publishes when the information is available on uORB
and is useful for the groundstation to show the gimbal's status.
2023-12-01 11:02:37 -05:00
Silvan Fuhrer b0df7c7ccb RTL/Land: set gimbal to neutral to reduce change of damage
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2023-12-01 13:19:09 +01:00
Silvan Fuhrer 789b3880cf Mission: set gimbal to neutral on inactivation
It is generally preferred to have the camera pointing forward on pause,
e.g. to use the camera for Navigation.

Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2023-12-01 13:19:09 +01:00
Silvan Fuhrer 0d8ba587ca Mission: set gimbal to neutral before landing item
To reduce risk of damage during landing.

Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2023-12-01 13:19:09 +01:00
Silvan Fuhrer 178ea132b6 Navigator: add set_gimbal_neutral() functionality
To point the gimbal forward eg during landing to reduce chance of damage.

Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2023-12-01 13:19:09 +01:00
bresch fe7988672f ekf2: auxiliary position fusion
Co-authored-by: Daniel Agar <daniel@agar.ca>
2023-12-01 11:50:22 +01:00
Silvan Fuhrer aaefc36cad airframes: remove 4900_crazyflie
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2023-12-01 09:43:41 +01:00
Silvan Fuhrer 6c9af2e0ec airframes: remove 4040_reaper
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2023-12-01 09:43:41 +01:00
Silvan Fuhrer 6b4fca1b9d px4vision configs: remove params that are just set again to default
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2023-12-01 09:43:41 +01:00
Matthias Grob d85aaf4dfd v5x/v6x: save flash by not compiling analog OSD by default 2023-11-30 17:16:02 +01:00
Matthias Grob 82c422b818 fmu-v5x: don't build roboclaw driver by default
it's not used that often and for rovers only.
2023-11-30 17:16:02 +01:00
Matthias Grob 8bb20db7da GotoControl: Save flash 2023-11-30 17:16:02 +01:00
Matthias Grob 7b4712cb29 sensor_simulator: initialize VelocitySmoothing with desired limits 2023-11-30 17:16:02 +01:00
Matthias Grob d014d76ca7 HeadingSmoothing: set correct maximum heading
The velocity smoothing library constrains the maximum vellocity.
I set the default constraint to 0 to find these exact issues.
The heading smoothing did not initialize the maximum velocity
which in this use case is the maximum heading.
So heading was always constrained to 0 -> north until this change.
2023-11-30 17:16:02 +01:00
Matthias Grob 5a2efc1cb2 GotoControl: remove dependency on PositionControl
It was there only to have the empty trajectory setpoint defined.
I rather redefine it for the single use.
2023-11-30 17:16:02 +01:00
Matthias Grob c853acc2ff GotoControl: also provide maximum velocity to position smoother 2023-11-30 17:16:02 +01:00
Matthias Grob d1e8bdbd16 GotoControl: rename yaw rate acceleration parameter
such that not only one letter differs to MPC_YAWRAUTO_MAX
2023-11-30 17:16:02 +01:00
Matthias Grob dc7f9165d1 logged_topics: fix goto_setpoint name 2023-11-30 17:16:02 +01:00
Matthias Grob 3de6fee07f GotoControl: make interface over uORB 2023-11-30 17:16:02 +01:00
Matthias Grob 96a81c22e3 GotoControl: simplify configuration wrapping 2023-11-30 17:16:02 +01:00
Matthias Grob 439d6c61e0 Revise GotoControl 2023-11-30 17:16:02 +01:00
Matthias Grob 14b8afe972 PositionSmoothingTest: remove duplicate vector comparison 2023-11-30 17:16:02 +01:00
Matthias Grob 591845bb41 HeadingSmoothing: rename, simplify, add cpp 2023-11-30 17:16:02 +01:00
Matthias Grob be05b3e8d7 helper_functions: include defines for M_PI_PRECISE
The defintion of the custom symbol M_PI_PRECISE
was not included in one of the only places it's used.
Looks like a mistake that happened in
34c852255e
possibly because a lot of things are included
almost everywhere and if the include order
ligns up there are no compile errors.
2023-11-30 17:16:02 +01:00
Matthias Grob efb325d25d motion_planning: remove deprecated separate test
It's functionality probably broke already in
befbb6b106c4c04933222ecb205f001fd77fa85f
and the tests are now covered by
VelocitySmoothingTest.cpp
2023-11-30 17:16:02 +01:00
Matthias Grob 53076b9863 PositionSmoothing: guard division by zero
Note that the unit test also passes without
thechange. But the VelocitySmoothing's
local_time would get NAN. This would leads to
wrong trajectory calculations.
2023-11-30 17:16:02 +01:00
Matthias Grob 11cca72ef1 VelocitySmoothing: fix division by zero cases
Problem: Zero maximum jerk and/or zero
direction would lead to divisions by zero in
various cases depending on the exact configuration and code path.

Solution: There was already one check for the
direction being zero in one path and I
summarized to check in both
updateDurations...() functions the product
of direction * max_jerk to not be zero
because that's exactly the value calculations
devide by.
2023-11-30 17:16:02 +01:00
Matthias Grob 6f295d91d1 Revert "motion_planning: sanitize inputs to position and velocity smoothing libs"
This reverts commit 2951c846ee07e52c2e3d97ea4629185016f3a011.
2023-11-30 17:16:02 +01:00
Matthias Grob 14785eeb47 GotoSetpoint message: reorder flag directly before value 2023-11-30 17:16:02 +01:00
Thomas Stastny 4b920a6628 GotoControl: add go-to control interface to mc position controller
goto control class handles smoothing of goto setpoints, outputs trajectory setpoint for mc pos control
some minor encapsulation done in mc pos control for readability
new param MPC_YAWAAUTO_MAX limiting heading accelerations in heading smoother
2023-11-30 17:16:02 +01:00
Thomas Stastny e47aba8bc9 msg: add go-to setpoint interface 2023-11-30 17:16:02 +01:00
Thomas Stastny 72a811a4b3 motion_planning: add heading smoother lib
wraps the velocity smoother, but is intended for generating smooth heading trajectories
handles angle wrap
2023-11-30 17:16:02 +01:00
Thomas Stastny 80dd7e4806 motion_planning: sanitize inputs to position and velocity smoothing libs 2023-11-30 17:16:02 +01:00
Beat Küng f69636feef fix msg: add_custom_command needs to depend on files instead of custom_command target name
This fixes incremental builds when msg files change.

Introduced with https://github.com/PX4/PX4-Autopilot/pull/21995.
2023-11-30 10:36:39 -05:00
frederik 3b041ef8d4 empy version fixed to 3.3.4
Signed-off-by: frederik <frederik@auterion.com>
2023-11-30 10:07:27 -05:00
Jukka Laitinen 9d465615d1 src/drivers/sw_crypto: Fix buffer lengths for xchacha20 crypto
The size input argument for monocypher crypto_xchacha20_ctr should be the
plaintext message length.

The promise of the interface is, that the call to encrypt_data updates the
ciphertext message length after the call succeeds.

The crypto should check that the output buffer length (cipher length) is
large enough to contain the encrypted data.

Fix these issues; these have gone unnoticed for a long time since the interface
has been only used by logger, and passing the same size for both in and out.

Signed-off-by: Jukka Laitinen <jukkax@ssrc.tii.ae>
2023-11-29 20:56:00 -05:00
PX4 BuildBot c2345ac5b3 Update world_magnetic_model to latest Wed Nov 29 11:14:09 UTC 2023 2023-11-29 20:55:05 -05:00
PX4 BuildBot 33a3e568bb boards: update all NuttX defconfigs 2023-11-29 20:54:34 -05:00
PX4 BuildBot afe110cca1 update all px4board kconfig 2023-11-29 20:54:10 -05:00
Jacob Dahl e627fe01dc UXRCE_DDS_SYNCC default 0 2023-11-29 20:53:01 -05:00
Konrad 42ce9eb692 mavlink_mission: Send MISSION_CURRENT periodically even when no mission is loaded. 2023-11-29 11:10:40 -05:00
Konrad 36f0c0f0bf mavlink-mission: Add support for opaque ids and replace update counter with it 2023-11-29 11:10:40 -05:00
Konrad 120e7fea8b mavlink: update submodule including opaque ID 2023-11-29 11:10:40 -05:00
Frederik Markus f00d97d974 removal of PX4_GZ_MODEL env variable and fix of ground glitching (#22400)
Removal of PX4_GZ_MODEL env variable and fix of ground glitching

Signed-off-by: frederik <frederik@auterion.com>
Co-authored-by: frederik <frederik@auterion.com>
Co-authored-by: Beniamino Pozzan <beniamino.pozzan@gmail.com>
2023-11-29 09:08:04 +00:00
alexklimaj 59abab8379 sensors: add parameter to silence imu clipping 2023-11-28 11:57:14 -05:00
Daniel Agar a9213e3862 Update world_magnetic_model to latest Tue Nov 28 11:14:14 UTC 2023
Co-authored-by: PX4 BuildBot <bot@px4.io>
2023-11-28 11:04:02 -05:00
PerFrivik befbc19a4a Roboclaw: Updated parameter prefix for roboclaw output module 2023-11-28 16:30:17 +01:00
PerFrivik c84185af96 Roboclaw: Fixed issue where parameters had different prefixes 2023-11-28 16:30:17 +01:00
PerFrivik 9ce090f2da Roboclaw: Fix CI pr issue 2023-11-28 16:30:17 +01:00
PerFrivik 7c45093908 Roboclaw: Updated yaml file to support Roboclaw Driver in QGC 2023-11-28 16:30:17 +01:00
PerFrivik bea00f62c9 Roboclaw: Changes in r1 airframe, removed hardcoded port configurations 2023-11-28 16:30:17 +01:00
PerFrivik 3a7f2f8bce Roboclaw: Accidentally removed a parameter 2023-11-28 16:30:17 +01:00
PerFrivik de9074558b Roboclaw: Updated Airframe and fixed left and right mapping error 2023-11-28 16:30:17 +01:00
PerFrivik 09d30568ab Roboclaw: Consistent Left & Right naming convertion with Differential Drive class 2023-11-28 16:30:17 +01:00
Matthias Grob f53edfa440 Roboclaw: major cleanup 2023-11-28 16:30:17 +01:00
Matthias Grob c27181a154 Rename RoboClaw -> Roboclaw
The manufacturer uses both naming schemes, RoboClaw more than Roboclaw
but it's always one word and hence I think it's more consistent to name
it the latter.
2023-11-28 16:30:17 +01:00
Matthias Grob 87683aa790 Roboclaw: move parameters to module.yaml 2023-11-28 16:30:17 +01:00
Matthias Grob 8f4ce28e84 RoboClaw: declutter, make it compile again 2023-11-28 16:30:17 +01:00
Matthias Grob 5b4031356e RoboClaw: fix style 2023-11-28 16:30:17 +01:00
Per Frivik 9409646a89 Update RoverPositionControl.cpp 2023-11-28 16:30:17 +01:00
Per Frivik e9810e7be6 Update WheelEncoders.msg 2023-11-28 16:30:17 +01:00
Per Frivik dd9c1c02d1 Delete msg/ActuatorControls.msg 2023-11-28 16:30:17 +01:00
Per Frivik a6b2bcd166 Update msg/CMakeLists.txt
Remove ActuatorControls.msg

Co-authored-by: Daniel Agar <daniel@agar.ca>
2023-11-28 16:30:17 +01:00
PerFrivik a40120c332 Roboclaw: Integrated OutputModuleInterface including a large code refactor 2023-11-28 16:30:17 +01:00
PerFrivik 86e5561a64 Roboclaw: Fixed issue when power cylcing the roboclaw where the driver would not connect 2023-11-28 16:30:17 +01:00
PerFrivik 524fa73ad3 Roboclaw: rough refactor, removed repetitive code, simplified and clarified logic and error handeling 2023-11-28 16:30:17 +01:00
PerFrivik dde7bbb4f6 Roboclaw: Initial cleanup, next commit will be refactor removing the duplicated write and read functions 2023-11-28 16:30:17 +01:00
PerFrivik fe4d319ba9 Roboclaw: Replaced setDutyCycle with setMotorSpeed to allow for encoder data to get through (added support for encoders) 2023-11-28 16:30:17 +01:00
PerFrivik c7e780cb6d Roboclaw: Working temporary version that drives around 2023-11-28 16:30:17 +01:00
PerFrivik 184993daa3 Roboclaw: Added DutyCycle command in Roboclaw destructor to turn off motors 2023-11-28 16:30:17 +01:00
Matthias Grob a857df88e4 Driving possible 2023-11-28 16:30:17 +01:00
PerFrivik ab486de430 Roboclaw: Temporary fix, enabling driver to run 2023-11-28 16:30:17 +01:00
PerFrivik 549c6b565c ported roboclaw driver from older commits into newest develop branch 2023-11-28 16:30:17 +01:00
Peter van der Perk 66544d080a px4_fmu-v6xrt: Fix TELEM2 always being used for mavlink 2023-11-28 08:00:45 -05:00
Konrad 8a68a66203 figureEight: Rename relative position variable 2023-11-28 10:06:01 +01:00
Konrad 1e06ed2ed5 figureEight: Rework initialization 2023-11-28 10:06:01 +01:00
Konrad a73409c015 FigureEight: Refactor initialization 2023-11-28 10:06:01 +01:00
Julian Oes ef20708a98 kakuteh7/7mini/h7v2: Add ICM42686p as alternative
This adds the ICM42686p as a possible alternative to the existing IMUs.

Apparently, the ICM20689 was never actually used in these boards.

Signed-off-by: Julian Oes <julian@oes.ch>
2023-11-27 21:31:46 -05:00
Beniamino Pozzan 2363c03bfe [uxrce_dds_client] wait for Timesync to converge
Signed-off-by: Beniamino Pozzan <beniamino.pozzan@gmail.com>
2023-11-27 21:10:26 -05:00
Beniamino Pozzan f01400de81 [uxrce_dds_client] Fix debug string format - use PRId64 and llabs
Signed-off-by: Beniamino Pozzan <beniamino.pozzan@gmail.com>
2023-11-27 21:10:26 -05:00
Daniel Agar 5af6cf1889 Update submodule GPS Drivers to latest Tue Nov 28 00:39:22 UTC 2023
- GPS Drivers in PX4/Firmware (5ef3ae3f1ec5aecea5842306a63aec054eb599a9): https://github.com/PX4/PX4-GPSDrivers/commit/6e452c2c5b6a718dddc1df2a13eba4a7c729d9f2
    - GPS Drivers current upstream: https://github.com/PX4/PX4-GPSDrivers/commit/63990d218ec35ea965d634af6a79d3155561b743
    - Changes: https://github.com/PX4/PX4-GPSDrivers/compare/6e452c2c5b6a718dddc1df2a13eba4a7c729d9f2...63990d218ec35ea965d634af6a79d3155561b743

    63990d2 2023-11-22 Daniel Agar - nmea fix astyle whitespace

Co-authored-by: PX4 BuildBot <bot@px4.io>
2023-11-27 21:05:23 -05:00
PX4 BuildBot dfbd5c88b1 Update submodule mavlink to latest Tue Nov 28 00:39:31 UTC 2023
- mavlink in PX4/Firmware (b8870adb3e2002ee16ebf63bd23342a055ab8628): https://github.com/mavlink/mavlink/commit/70181c42fc63306ba3512666e1a8b7b782416806
    - mavlink current upstream: https://github.com/mavlink/mavlink/commit/02f1575d73b3b7eb09b1cc7ca3a03844aec05858
    - Changes: https://github.com/mavlink/mavlink/compare/70181c42fc63306ba3512666e1a8b7b782416806...02f1575d73b3b7eb09b1cc7ca3a03844aec05858

    02f1575d 2023-11-24 Hamish Willee - MAV_CMD_CONDITION_YAW - shortest direction v2 (#2058)
bc0d8611 2023-11-22 Roman Bapst - moved MAV_CMD_EXTERNAL_POSITION_ESTIMATE from ardupilotmega to common (#2057)
b85e0016 2023-11-22 Hamish Willee - development - delete MAV_CMD_SET_FENCE_BREACH_ACTION (#2053)
2023-11-27 20:40:31 -05:00
PX4 BuildBot da8692c682 update all px4board kconfig 2023-11-27 20:05:50 -05:00
Silvan Fuhrer 2734c44533 FlightTaskAuto: set state to None if prev and current sp are equal
Otherwise if is set to Offtrack, which in turn leads to weird behavior.
E.g. when triggering Land while flying fast forward, the vehcile doesn't
descned to the land point it keeps getting a velocity setpoint from the
smoother that pushes it away from the land point.

Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2023-11-27 18:01:47 +01:00
Konrad 6a34b63b60 mission_base: perform mission_check_valid if mission, geofence ot homeposition have changed 2023-11-24 08:11:41 +01:00
Konrad 5e1f0b73ce HomePosition: Add an instance counter 2023-11-24 08:11:41 +01:00
Konrad 3ac7ed6afa mission_base: Do not reset mission on invalid mission upload 2023-11-24 08:11:41 +01:00
Konrad a92e7a8796 missionResult: remove unnecessary constants and rename instance_count to mission_update_counter 2023-11-24 08:11:41 +01:00
Beat Küng 7afa011741 mavlink_mission: publish mission after updating dataman
This avoids a potential race condition when dataman also updates dataman
as a result of the publication.
2023-11-24 08:10:07 +01:00
Beat Küng 93cae5f9d7 mission: fix comparison logic for saving mission state 2023-11-24 08:10:07 +01:00
Matthias Grob 8271faedeb control_mode: reorder modes according to controller cascade 2023-11-23 20:35:48 +01:00
Matthias Grob 6e31638817 control_mode: add allocation to orbit mode to not crash 2023-11-23 20:35:48 +01:00
Silvan Fuhrer a99a7d2abd vtol: always check for EKF2 resets, not just when QC is checked
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2023-11-23 13:54:07 +01:00
Silvan Fuhrer eae939d86c vtol_type: transition altitude loss quad-chute: handle z resets
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2023-11-23 13:54:07 +01:00
Silvan Fuhrer 8a899170bf VehicleLocalPosition.msg: add comments for heading reset fields
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2023-11-23 13:54:07 +01:00
Silvan Fuhrer 7833d2a879 VehicleLocalPosition.msg: add comments for reset fields
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2023-11-23 13:54:07 +01:00
Julian Oes 19964d56ed fmu-6x: Use i2c_launcher by default
This switches all SENS_EN_INAXXX params to 0 by default and instead uses
the i2c_launcher command.

However, if any one the SENS_EN_INAXXX param is set, it no longer tries
to auto-configure it.

Signed-off-by: Julian Oes <julian@oes.ch>
2023-11-22 22:19:52 -05:00
Julian Oes fbc95ff4bd Add I2C driver launcher
This is just a first draft of the launcher part.

Signed-off-by: Julian Oes <julian@oes.ch>
2023-11-22 22:19:52 -05:00
Julian Oes 895ddee16a i2c_spi_buses: method to count instances per bus
Signed-off-by: Julian Oes <julian@oes.ch>
2023-11-22 22:19:52 -05:00
Beniamino Pozzan 742d237ae3 [uxrce_dds] add vehicle_thrust_setpoint, vehicle_torque_setpoint
actuator_motors and actuator_servos subscribers for offboard control

Being subscribers, this does not increase the computational load
over the uxrce_dds brigde

Signed-off-by: Beniamino Pozzan <beniamino.pozzan@gmail.com>
2023-11-22 22:14:50 -05:00
Beniamino Pozzan 1c8f31f339 [offboard] add thrust and torque control mode
New thrust and torque control mode added which replaces the previous
actuator mode,
in this mode the rate controllers are disables, the control allocator
is enabled and the used externally provices
vehicle_thrust_setpoints and vehicle_torque_setpoints.

New direct_actuator mode
In direct_actuator mode the control allocator module does not publish
actuator_motors and actuator_servos messages which must instead be
provided extrernally by the user.

Removed old direct mode.

Signed-off-by: Beniamino Pozzan <beniamino.pozzan@gmail.com>
2023-11-22 22:14:50 -05:00
Jacob Dahl 6cc38776c8 src/modules/uxrce_dds_client: set system clock from agent CLOCK_REALTIME (#22290)
* Added parameter UXRCE_DDS_SYNCC to enable system clock synchronization. Refactored and cleaned up. Only set system time if it's off by more than 5 seconds (same as mavlink and gps).
2023-11-22 22:06:11 -05:00
Frederik Markus 86fbeb8a20 ROMFS/px4fmu_common/init.d-posix/airframes: 4004_gz_standard_vtol deprecated parameter update
Signed-off-by: frederik <frederik@auterion.com>
2023-11-22 21:57:58 -05:00
Silvan Fuhrer e280a6c6e6 Navigator: Geofence: always run geofence_breach_check(), not only only on pos update
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2023-11-22 21:45:02 -05:00
Silvan Fuhrer ade68aa563 Navigator: Geofence: stay in GF breached mode when in Loiter due to breach
Only re-evaluate if no longer in GF when flight mode is changed or
Loiter position was changed (eg through goto).

Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2023-11-22 21:45:02 -05:00
Silvan Fuhrer f2aabe968e Geofence: add checks for custom GF validity when uploading it
- check if Home would breach it (we do not want to upload GF that
do not allow to return to Home)
- check if the current vehicle position isn't contained in the GF
if armed (as then it would immediately trigger)

Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2023-11-22 21:45:02 -05:00
Silvan Fuhrer 2865bbb8ab Geofence: rework messaging and notification
- do reporting of breaching in-air only in geofenceCheck
- remove geofence_violation_reason_t
- replace geofence_breached field in GeofenceResult.msg with 3 fields
(one for each GF type: max dist, max alt, custom geofence)
- the warning message after breaching a GF is only done by Commander,
and it's specific to the GF type failure

Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2023-11-22 21:45:02 -05:00
Silvan Fuhrer 3c194d552a Geofence: rework the way to check all GF at once
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2023-11-22 21:45:02 -05:00
Silvan Fuhrer a41f24a2e2 geofence_result.msg: rename premove unused field home_required
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2023-11-22 21:45:02 -05:00
Silvan Fuhrer b178c943a6 GeofenceBreachAvoidance: remove unused variables and methods
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2023-11-22 21:45:02 -05:00
Silvan Fuhrer c0f26c8fbd mission_feasibility_checker.h: remove unused Geofence class
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2023-11-22 21:45:02 -05:00
Silvan Fuhrer 563bfbf6e7 Geofence: remove GF_COUNT
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2023-11-22 21:45:02 -05:00
Silvan Fuhrer fd709e05b0 Geofence: remove GF_ALTMODE
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2023-11-22 21:45:02 -05:00
Silvan Fuhrer f3eacb4844 Geofence: fix status print
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2023-11-22 21:45:02 -05:00
Silvan Fuhrer f8f4ea2fee MissionFeasibilityCheck: rename checkGeofence to checkMissionAgainstGeofence()
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2023-11-22 21:45:02 -05:00
Daniel Agar 56bfe41f10 drivers/ins/vectornav: publish estimator_status (only in VN_MODE 1) 2023-11-22 21:42:27 -05:00
Beat Küng 19f08b46b0 ci: add test for PX4_EXTRA_NUTTX_CONFIG 2023-11-22 21:41:53 -05:00
Beat Küng a9c4e5a33f cmake: allow extra nuttx config options via PX4_EXTRA_NUTTX_CONFIG env var 2023-11-22 21:41:53 -05:00
PX4 BuildBot c497a25bea Update submodule libevents to latest Thu Nov 23 00:39:07 UTC 2023
- libevents in PX4/Firmware (15667a5c6b927ab177c6912058475eb5fac26c4c): https://github.com/mavlink/libevents/commit/a9a3fc07abb8bd8eb6fbca64c35b479cab91ff35
    - libevents current upstream: https://github.com/mavlink/libevents/commit/59f7f5c0ec2e76fadbc1dc40cc0705d614472edc
    - Changes: https://github.com/mavlink/libevents/compare/a9a3fc07abb8bd8eb6fbca64c35b479cab91ff35...59f7f5c0ec2e76fadbc1dc40cc0705d614472edc

    59f7f5c 2023-09-26 Beat Küng - cpp/parse: avoid using ssize_t as it's not available on Windows
1617b4e 2023-09-26 Beat Küng - cpp: enable Werror, Wall, Wextra, Wconversion, Wpedantic & fix
e2979e6 2023-09-26 Beat Küng - refactor python/parser: some whitespace & formatting updates
e2e8011 2023-09-26 Beat Küng - python/parse: add callback to escape message & description
baa93a4 2023-09-26 Beat Küng - cpp/parse: add callback to escape message & description
d10aecd 2023-09-26 Beat Küng - refactor tests/parser: move tests to method
1aaa597 2023-09-26 Beat Küng - run_ci.sh: ensure cmake uses unix makefiles
9b3c897 2023-09-25 Beat Küng - refactor parser tests: use gtest
2023-11-22 21:40:48 -05:00
PX4 BuildBot 7c1d41aeb8 Update submodule sitl_gazebo-classic to latest Thu Nov 23 00:38:54 UTC 2023
- sitl_gazebo-classic in PX4/Firmware (9387de8282): https://github.com/PX4/PX4-SITL_gazebo-classic/commit/20ded0757b4f2cb362833538716caf1e938b162a
    - sitl_gazebo-classic current upstream: https://github.com/PX4/PX4-SITL_gazebo-classic/commit/33ac87a37676fb597de110e926bbf0a080169ffe
    - Changes: https://github.com/PX4/PX4-SITL_gazebo-classic/compare/20ded0757b4f2cb362833538716caf1e938b162a...33ac87a37676fb597de110e926bbf0a080169ffe

    33ac87a 2023-11-14 Daniel Honies - Fix opencv aruco version bug (#1017)
ff6f74e 2023-11-13 jmackay2 - Remove unused props from tailsitter (#1015)
2023-11-22 21:40:35 -05:00
Julian Oes 976cd67f71 logger: increase default GPS rate
Signed-off-by: Julian Oes <julian@oes.ch>
2023-11-22 21:30:31 -05:00
Konrad 9387de8282 mavsdk figure 8 test: Increase time of timeout 2023-11-22 16:47:38 -05:00
David Sidrane eefc6a0027 px4io:Added help text for supported command 2023-11-22 14:29:49 -05:00
Christian Rauch 1cf38e9d76 use Python 3.10 on macOS CI 2023-11-22 11:22:49 -05:00
Daniel Agar 0dbd7b9176 Jenkins compile remove obsolete target nxp_fmurt1062-v1_default 2023-11-22 11:16:22 -05:00
GuillaumeLaine ab867b963c dds_topics: Adds missing data reader 2023-11-22 10:42:05 +00:00
GuillaumeLaine f3e85219a3 dds_topics: Adds handling for empty yaml fields 2023-11-22 10:42:05 +00:00
GuillaumeLaine 85c75aedd1 dds_topics: Adds multi publication to subscribed dds topics 2023-11-22 10:42:05 +00:00
bresch e568b4a1d7 replay: increase buffer size
required to parse larger topics
2023-11-21 21:56:34 -05:00
bresch 6320ca64a9 ekf2-terr: allow range fusion before takeoff 2023-11-21 21:56:34 -05:00
bresch 0f3378e194 ekf2: fix terrain range finder logging 2023-11-21 21:56:34 -05:00
bresch 1c3a1183c8 ekf2-flow: refactor control logic
Use flow rates instead of integrals in backend. This allows us to delay
the data to the mitpoint integration time and simplifies the code in
general.
Gyro compensation can still be done in EKF2 if needed, but the
flow module normally already appends the correct gyro data to the flow
message.
2023-11-21 21:56:34 -05:00
alexklimaj 5f8ecd6b40 driver: ina2** allow 3 indexes 2023-11-21 21:44:39 -05:00
Roman Bapst dd2322d622 Added PerformanceModel for fixed wing (#22091)
* created a Performance Model for fixed wing vehicle
- added compensation for maximum climbrate, minimum sinkrate, minimum airspeed and trim airspeed based on weight ratio and air density
- added atmosphere lib to standard atmosphere calculations


---------

Signed-off-by: RomanBapst <bapstroman@gmail.com>
Co-authored-by: Thomas Stastny <thomas.stastny@auterion.com>
2023-11-21 17:13:50 +01:00
Silvan Fuhrer 70cd224236 EKF2 params: remove wrong horizontal keyword and gps-->GNSS
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2023-11-21 15:23:33 +01:00
bresch c7672fc68c ekf2-params: delta vel/ang -> accel/gyro 2023-11-20 20:10:16 -05:00
bresch f2482d7157 ekf-pdf-report: plot bias using bias msg instead of state vector 2023-11-20 20:10:16 -05:00
Julian Oes a501262a6b icm45686: fix dt (and usage command)
With the wrong dt, the flight behaviour was really poor and noisy, so
this fix is absolutely required.

Signed-off-by: Julian Oes <julian@oes.ch>
2023-11-21 07:44:00 +13:00
alexklimaj 1b99e7df81 px4io: change not supported message to INFO instead of ERR 2023-11-20 08:54:32 -05:00
David Sidrane 8f02184669 px4io:Add 'supported' command and uses it in rcS 2023-11-20 08:54:32 -05:00
Matthias Grob 9bed8f48c7 Remove LNDMC_ALT_MAX
This should be replaced with the maximum geofence
altitude GF_MAX_VER_DIST. I'm not aware anyone is using
this functionality as is.
2023-11-20 14:52:35 +01:00
PX4 BuildBot fd4d635035 Update submodule mavlink to latest Sun Nov 19 12:39:21 UTC 2023
- mavlink in PX4/Firmware (e819620173822548d05b6f309c615b48eda9261c): https://github.com/mavlink/mavlink/commit/81524c2b34aa08768f13091b1d94c421e64f96c3
    - mavlink current upstream: https://github.com/mavlink/mavlink/commit/70181c42fc63306ba3512666e1a8b7b782416806
    - Changes: https://github.com/mavlink/mavlink/compare/81524c2b34aa08768f13091b1d94c421e64f96c3...70181c42fc63306ba3512666e1a8b7b782416806

    70181c42 2023-10-12 Hamish Willee - MAV_CMD_DO_SET_ROI_WPNEXT_OFFSET - set units to deg
f484eaf8 2023-10-11 Hamish Willee - Update test_and_deploy.yml - drop node 12 (#2041)
44197849 2023-10-11 tom - Cleanup of typos and inconsistencies in common.xml (#2044)
b295e70e 2023-09-28 Hamish Willee - Update ardupilotmega.xml - delete SPEED_TYPE (#2042)
e8d796a4 2023-09-27 Hamish Willee - SPEED_TYPE enum for MAV_CMD_DO_CHANGE_SPEED (#2039)
c313a2f3 2023-09-23 Asif Khan - common:  Add camera instance field to MAV_CMD_IMAGE_START/STOP_CAPTURE (#2024)
cad18c56 2023-09-20 Marcin - Add VELOCITY_LIMITS msg (#2015)
2023-11-19 11:51:35 -05:00
Daniel Agar 58d6d03da3 Update submodule devices to latest Sun Nov 19 12:39:11 UTC 2023
- GPS drivers in PX4/Firmware (0f7a34a64dd69ad074b47726eedeef147fe0f700): https://github.com/PX4/PX4-GPSDrivers/commit/b443b79f57c5e89353430940af9e4511ea8eb0b8
 - GPS drivers current upstream: https://github.com/PX4/PX4-GPSDrivers/commit/6e452c2c5b6a718dddc1df2a13eba4a7c729d9f2
    - Changes: https://github.com/PX4/PX4-GPSDrivers/compare/b443b79f57c5e89353430940af9e4511ea8eb0b8...6e452c2c5b6a718dddc1df2a13eba4a7c729d9f2

    6e452c2 2023-10-27 Robbie Drage - move NO_MKTIME compilation flags - removes dependency on tm struct being defined without MKTIME - removes unnecessary operations

Co-authored-by: PX4 BuildBot <bot@px4.io>
2023-11-19 11:49:39 -05:00
Andrew Brahim 3433a4cbc9 boards/nxp/mr-canhubk3/fmu.px4board: add common sensor sets and uxrce-dds drivers
* Add common sensor sets (pressure, distance, mag, optical) and enable uxrce-dds client on mrcanhubk3

---------

Signed-off-by: dirksavage88 <dirksavage88@gmail.com>
2023-11-19 10:54:14 -05:00
Braden Wagstaff 35e13a908e DDS Add battery_status publisher 2023-11-18 11:06:02 +00:00
alexklimaj 42d70808e9 uxrce add manual control input subscriber 2023-11-18 11:06:02 +00:00
Bryce Clark 83c461ebb8 cubeorangeplus added to CMake variants to allow debugging CubePilot Cube Orange Plus through VSCode 2023-11-17 19:53:39 -05:00
PX4 BuildBot ae89c30a18 boards: update all NuttX defconfigs 2023-11-17 09:15:14 -05:00
PX4 BuildBot 047a5a7abf update all px4board kconfig 2023-11-17 09:14:46 -05:00
Matthias Grob ead16d0e6c Commander: add parameter to disallow disarming in manual thrust modes 2023-11-17 09:53:56 +01:00
Matthias Grob 78987f6016 ManualControl: introduce stick gesture for killing 2023-11-17 09:53:56 +01:00
bresch 2110eae25d atune: initialize filter if not already initialized 2023-11-16 23:14:17 -05:00
Daniel Agar 62027b0965 ekf2: remove EKF2_HGT_MODE VerifyParams() transition helpers
- in theory these are helpful to ensure EKF2_HGT_MODE configuration is
   consistent with the relevant aid source (GPS, baro, etc), but it can
   be a little awkward with users having to fight manual parameter
   changes in the right order
2023-11-16 15:02:43 -05:00
Daniel Agar 3b2d766573 ekf2: purge remaining EKF2_AID_MASK references 2023-11-16 09:36:58 +01:00
David Sidrane e90e8ae0ea Intial Commit PX4 FMUV6RT
nxp/rt117x:Fix Pin IRQ

nxp/rt117x:Support 4 i2c busses

nxp/rt117x:Add px4io_serial support

nxp/imxrt:Expand ToneAlarmInterface to GPT 3 & 4

px4_fmu-6xrt:Using imxrt_flexspi_nor_octal

px4_fmu-6xrt:Entry is start

px4_fmu-6xrt:Add Proper MTD

px4_fmu-6xrt:Set I2C Buses

px4_fmu-6xrt:Proper SPI usage

px4_fmu-6xrt:Adjust memory Map to use the 2 MB

px4_fmu-6xrt:Bring in ROMAPI

px4_fmu-6xrt:Push FLASH to 200Mhz

px4_fmu-6xrt:Use BOARD_I2C_LATEINIT

px4_fmu-6xrt:Clock Config remove unused devices

px4_fmu-6xrt:Remove EVK SDRAM IO

px4_fmu-6xrt:Enable SE550 using HW_VER_REV_DRIVE

px4_fmu-6xrt:Use MTD to mount FRAM on Flex SPI

px4_fmu-6xrt:Manifest

px4_fmu-6xrt:Restore board_peripheral_reset

px4_fmu-6xrt:Set I2C buss Interna/Externa and startup

nxp/rt117x:Set 6 I2C busses

px4_fmu-6xrt:Correct Clock Sources and Freqency Settings

px4_fmu-6xrt:Correct ADC Settings

px4_fmu-6xrt:Tune FlexSPI config and sync header with debug variant Linker prep for rodata ahb partitioning

px4_fmu-6xrt:FlexSPI prefetch partition split .text and .rodata

   Current config
     1KB Prefetch .rodata
     3KB Prefetch .text

px4_fmu-6xrt:Run imxrt_flash_setup_prefetch_partition from ram with barriers

px4_fmu-6xrt:Use All OCTL setting from FLASH g_flash_config SANS lookupTable

px4_fmu-6xrt:Octal spi boot/debug problem bypass

px4_fmu-6xrt:Add PWM test

px4_fmu-6xrt:Fix clockconfig and USB vbus sense

px4_fmu-6xrt: Use TCM

px4_fmu-6xrt: Ethernet bringup

imxrt: use unique_id register for board_identity

px4_fmu-6xrt: update ITCM mapping, todo proper trap on pc hitting 0x0

px4_fmu-6xrt:correct rotation icm42688p onboard imu

rt117x: Add SSARC HP RAM driver for memory dumps

px4_fmu-6xrt: Enable hardfault_log

px4_fmu-6xrt: Enable DMA pool

px4_fmu-6xrt: fix uart mapping

px4_fmu-6xrt: enable SocketCAN & DroneCAN

px4_fmu-6xrt:Command line history TAB completion

px4_fmu-6xrt:Fix pinning duplication

px4_fmu-6xrt:Support conditional PHY address based on selected PHY

px4_fmu-6xrt:Add Pull Downs on CTS, use GPIO for RTS

px4_fmu-6xrt:Set TelemN TX Slew rate and Drive Strenth to max

px4_fmu-6xrt::Set TELEM Buffers add HW HS

px4_fmu-6xrt:Turn off DMA poll

px4_fmu-6xrt:RC_SERIAL_PORT needed to be px4io to disable rc_input using TELEM2!

px4_fmu-6xrt: bootloader (#22228)

* imxrt:Add bootloader support
* bootloader:imxrt clear BOOT_RTC_SIGNATURE
* px4_fmu-6xrt:Add bootloader
* px4_fmu-6xrt:bootloader removed ADC
* px4_fmu-6xrt:bootloader base bootloader script off of script.ld
* px4_fmu-6xrt:add _bootdelay_signature & change entry from 0x30000000 to 0x30040000
* px4_fmu-6xrt:hw_config Bootloader has to have 12 bytes

px4_fmu-6xrt:Default to use LAN8742A PHY

px4_fmu-v6xrt:VID Set to Drone Code

board_reset:Enable ability to write RTC GP regs

px4_fmu-6xrt:Fix CMP0079 error

rt117x:micro_hal Add a PX4_MAKE_GPIO_PULLED_INPUT

px4_fmu-v6xrt:Set CTS High before VDD_5V applided to ports to avoid radios fro entering bootloaders

fmu-v6xrt: increase 5v down time

fmu-v6xrt:Ready for Release DEBUGASSERTS off and Console 57600,
Bootloder updated.

imxrt:board_hw_rev_ver Rework for 3.893V Ref

px4_fmu-v6xrt:Move ADC to Port3
2023-11-15 11:10:47 -05:00
David Sidrane e3f8d53718 nxp:imxrt 1060/1170 bifurcation and restructuring
imxrt:117x Reuse all but io_timer_hw_description and imxrt_pinirq.c

   imxrt:ADC & LPADC bifurcation and restructuring

   imxrt:hrt support Up to GPT6

   nxp/rt117x:adc Corrected
2023-11-15 11:10:47 -05:00
Peter van der Perk d2915743cb px4 hardfault_log: Add SSARC dump backend support 2023-11-15 11:10:47 -05:00
David Sidrane 68354dc760 px4 ADC Use device reference_v and dn_fullcount 2023-11-15 11:10:47 -05:00
David Sidrane f0bc7d287d px4 allow up to 6 I2C busses 2023-11-15 11:10:47 -05:00
David Sidrane 51cda9edb0 px4 mtd:Support FlexSPI attached Devices 2023-11-15 11:10:47 -05:00
David Sidrane 35b9205b25 px4_platform_common: Break out I2C init if BOARD_I2C_LATEINIT is used 2023-11-15 11:10:47 -05:00
David Sidrane fa1a858537 px4/nxp/imxrt:Support VER & REV from EEPROM 2023-11-15 11:10:47 -05:00
David Sidrane 222b95233a NuttX with NXP TX DMA Sem fix & IOMUXC GPR fix 2023-11-15 11:10:47 -05:00
Beat Küng 0d53bd945e Jenkinsfile: add 'git fetch' to failsafe target
It was failing occationally with:
14:12:43  CMake Error at CMakeLists.txt:129 (list):
14:12:43    list index: 1 out of range (-1, 0)
14:12:43
14:12:43
14:12:43  CMake Error at CMakeLists.txt:131 (list):
14:12:43    list index: 2 out of range (-1, 0)
14:12:43
14:12:43
14:12:43  CMake Error at CMakeLists.txt:132 (string):
14:12:43    string sub-command REPLACE requires at least four arguments.
14:12:43
14:12:43
14:12:43  -- PX4 version: f513c40d62 (f513c40d62..NOTFOUND)
2023-11-15 14:23:06 +01:00
Beat Küng f513c40d62 ucdr/msg.h.em: static inline the (de-)serialization methods
to avoid multiple definitions when using them from different places.
2023-11-15 13:18:58 +01:00
Beat Küng 2f91102808 mixer_module: rename Offboard_Actuator_Set to Peripheral_via_Actuator_Set
Offboard is a bit too specifically tied to Offboard mode.
2023-11-15 13:18:58 +01:00
Yannick Fuhrer d609e41413 flightmodes: flag advanced modes accordingly 2023-11-15 13:18:58 +01:00
Beat Küng d12a7dd11d uxrce_dds_client: run session until we do not get data anymore
Otherwise there can be significant delay for received data
2023-11-15 13:18:58 +01:00
Beat Küng 36fbd18bdc px4/fmu-v5x: set mavlink dialect to development for now
So dynamic modes are available
2023-11-15 13:18:58 +01:00
Beat Küng fb7e973dfd commander: allow external modes to be assigned to RC
Stores a hash of the mode name so that the same mode is always assigned
to the same index independent from registration order.
2023-11-15 13:18:58 +01:00
Beat Küng 22acb08406 uorb: add message format compatibility check
This can be used by DDS/ROS 2 to check for matching message definitions.
2023-11-15 13:18:58 +01:00
Matthias Grob 0dcecf0666 FlightModeManager: avoid internal flight task running concurrently with external mode 2023-11-15 13:18:58 +01:00
Beat Küng a72f2517ea px4events: handle events parsing from ROS2 code 2023-11-15 13:18:58 +01:00
Beat Küng bb900264e0 commander+mavlink: implement MAVLink standard modes 2023-11-15 13:18:58 +01:00
Beat Küng b46e1d744b commander: add config overrides 2023-11-15 13:18:58 +01:00
Beat Küng 889b6a1a78 commander: add VEHICLE_CMD_SET_NAV_STATE internal command 2023-11-15 13:18:58 +01:00
Beat Küng fbbccf6997 commander: implement external modes and mode executors 2023-11-15 13:18:58 +01:00
Beniamino Pozzan 58d2badf9f [uxrce_dds_client] add services (repliers) and basic VehicleCommand service
Signed-off-by: Beniamino Pozzan <beniamino.pozzan@gmail.com>
2023-11-14 11:29:17 -05:00
Beniamino Pozzan 4555c4e5cc Add srv/ folder and srv/VehicleCommand.srv
update CI (github and Jenkins) to push changes of srv/
to PX4/px4_msgs repo

Signed-off-by: Beniamino Pozzan <beniamino.pozzan@gmail.com>
2023-11-14 11:29:17 -05:00
Mathieu Bresciani efa12ad224 EKF2 simplify covariance propagation (#22344)
* ekf2-derivation: optimize before generating cpp code

* update EKF2 change indicator

Slight changes due to simplifications done in the covariance prediction

---------

Co-authored-by: bresch <[brescianimathieu@gmail.com](mailto:brescianimathieu@gmail.com)>
2023-11-14 11:22:16 -05:00
Peter van der Perk 96e05481b4 ucans32k1: SPLLDIV2 set to 40Mhz 2023-11-14 06:26:00 -05:00
Hamish Willee 50d9d05c10 Escape param metadata to fix broken tags 2023-11-14 09:48:03 +01:00
bresch 00568985c0 yaw_est: use error-state covariance prediction
Convergence improvements in high yaw rate conditions
2023-11-13 11:37:27 -05:00
Konrad 32127ca789 loiter: set loiter position to current position setpoint, if it is a loiter item 2023-11-13 12:43:58 +01:00
Michał Barciś 6800a448b0 ThrowLaunch: check ThrowMode parameter to skip takoff in MulticopterPositionControl
Signed-off-by: Michał Barciś <mbarcis@mbarcis.net>
2023-11-13 11:57:19 +01:00
Matthias Grob 9d455d5f1f ThrowLaunch: move into separate class 2023-11-13 11:57:19 +01:00
Michał Barciś 1a48f311ea ThrowLaunch changes after PR
Signed-off-by: Michał Barciś <mbarcis@mbarcis.net>
2023-11-13 11:57:19 +01:00
Michał Barciś c2b4f051f9 Added Throw Launch feature
More details in the PR: https://github.com/PX4/PX4-Autopilot/pull/21170

Signed-off-by: Michał Barciś <mbarcis@mbarcis.net>
2023-11-13 11:57:19 +01:00
Julian Oes 84577ce2c2 battery: skip charge estimation if N cells is 0
This triggers the undefined behaviour fuzzer, so let's try to fix it.

Signed-off-by: Julian Oes <julian@oes.ch>
2023-11-13 09:55:39 +01:00
Konrad 44d1003f8e rtl: Only use approaches for vtols in fixed wing mode 2023-11-12 15:41:28 +01:00
murata f29c5742be mavlink: Capitalize the first letter of Landing 2023-11-12 15:33:51 +01:00
Damien SIX 833cd79e67 fix: remove depreciated parameter 2023-11-12 15:33:33 +01:00
Daniel Agar 1592aedc11 gitmodules add heatshrink branch 2023-11-10 17:45:47 -05:00
Julian Oes 10a2e7e44f SITL: fix parse error on start
This fixes the error:
etc/init.d-posix/rcS: 39: [: Illegal number:

Signed-off-by: Julian Oes <julian@oes.ch>
2023-11-11 11:26:20 +13:00
Matthias Grob 4485c7aa11 PositionSmoothing: fix corner altitude bug
During a round corner the L1 distance calculation
was only done in 2D and the z-axis coordinate
was directly coming from the next waypoint.
This lead to an unpredictable altitude profile
between two waypoints. Sometimes almost all
altitude difference was already covered during
the turn instead of going diagonally.
2023-11-10 10:02:20 +01:00
Julian Oes 19b681ca1f Remove SYS_USE_IO param
The param is not really required anymore with the actuator
configuration. Also, when it is set to 0, RC doesn't work for some
boards which would be nice to avoid.

Signed-off-by: Julian Oes <julian@oes.ch>
2023-11-10 12:17:23 +13:00
Niklas Hauser 1463f9dec8 stm32h7: Prevent UART from waiting on TXDMA semaphore
The UART7 TXDMA services TELEM1 with flow control. If CTS is high, the
transmitting thread will wait on a semaphore, which may block other
threads from acquiring necessary resources to make progress, for
example, preventing MAVLINK instances from transmitting.

This change in NuttX makes the TXDMA acquire the semaphore in a
non-blocking way, preventing this issue.
2023-11-09 07:53:48 -05:00
Frederik Markus fc5b868138 fixing the turning direction of the Cessna Propeller (#22276)
Signed-off-by: frederik <frederik@auterion.com>
Co-authored-by: frederik <frederik@auterion.com>
2023-11-09 13:08:54 +01:00
Silvan Fuhrer 5efcde7412 mavsdk_tests: add two new tests for VTOLs
- add functionality to specify world name for simulation in case name
- add test for triggering an airspeed invalidation in case of pitot blockage
- add test for high wind (ramped up wind over short period) to NOT invalidate airspeed in this case

Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2023-11-09 09:42:43 +01:00
Silvan Fuhrer 29714a0fba AirspeedValidator: make wind estimate more dynamic
Increase wind process noise default (ASPD_WIND_NSD) and gate
(ASPD_TAS_GATE) to be able to catch rapid wind increases with
the internal wind estimator of the airspeed validator.

Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2023-11-09 09:42:43 +01:00
Silvan Fuhrer 041e5069cb ROMFS: update tuning of SITL standard VTOL
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2023-11-09 09:42:43 +01:00
Silvan Fuhrer 0d36d54fbe SimulatorMavlink: add airspeed icing failure (ramp down scale)
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2023-11-09 09:42:43 +01:00
Silvan Fuhrer a4b04c3982 SimulatorMavlink: rename _airspeed_blocked to _airspeed_disconnected
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2023-11-09 09:42:43 +01:00
Silvan Fuhrer cf03b99ab4 AirspeedValidator: inrease default of ASPD_BETA_NOISE
Trust the beta innovations more compated to the TAS innovations.
That should help with detecting real airspeed failures even with
a dynamic wind estimate (as long as vehicle doesn't fly straight)

Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2023-11-09 09:42:43 +01:00
Silvan Fuhrer 0a271b1982 EKF2: increase default of EKF2_WIND_NSD and EKF2_TAS_GATE
Increasing the wind process noise results in a more dynamic
wind estimation, which is capable of catching fast-varying
winds. As wind is used in the lateral guidance it's important
that we don't filter it too much.
Furher the gate of the airspeed fusion is increased, to
reduce the likelihood of airspeed fusion stopping due to
dynamic wind conditions. The airspeed is validated in
the airspeed validator (EKF consumes the validated one).

Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2023-11-09 09:42:43 +01:00
Silvan Fuhrer ec20f92558 EKF2: sideslip_fusion: remove construced airspeed magnitude check to fuse beta
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2023-11-09 09:42:43 +01:00
Konrad 72c6db6b23 vtol_rtl_test: explicitly disable RTL_FORCE_APPROACH for RTL direct Home testcase 2023-11-08 17:48:34 +01:00
Claudio Micheli 457d261278 Add mavlink support for GIMBAL_DEVICE_INFORMATION
Signed-off-by: Claudio Micheli <claudio@auterion.com>
2023-11-08 17:01:32 +01:00
Beat Küng 1ad5a9de08 uorb: compress format definitions
Reduces flash usage by ~16KB.

- compress formats at build-time into a single string with all formats
- then at runtime iteratively decompress using
  https://github.com/atomicobject/heatshrink
2023-11-08 00:31:26 -05:00
Frederik Markus 142e44c418 Tools/simulation/gz/models/advanced_plane: updated paths
Moves paths for advanced plane files from personal directory (frede791) to PX4 directory on fuel.

Signed-off-by: frederik <frederik@auterion.com>
2023-11-07 17:39:26 -05:00
bresch 3acc29410a failsafe: disarm if battery failure is detected during spoolup 2023-11-07 17:38:06 -05:00
robbie-sps 55fd0bde85 nuttx: fix <new> 2023-11-07 17:36:59 -05:00
Daniel Agar 77baa7c24a ekf2: EKFGSF yaw estimator always run
- if not in air the accel noise is doubled
 - if landed don't init unless GPS velocity is non-negligible
 - when inactive continue seeding with EKF gyro bias
 - reset yaw estimator if GPS fusion is stopped
2023-11-07 15:48:49 -05:00
Silvan Fuhrer a47b684fd7 tecs_status.msg: directly add underspeed ratio to msg instead of boolean
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2023-11-07 12:18:06 -05:00
Silvan Fuhrer 8741a9784d TECS: remove TECS_MODE enum and instead add descriptive boolean flag to tecs_status
New flag: underspeed_mode_enabled.

Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2023-11-07 12:18:06 -05:00
Silvan Fuhrer a6fcf7b48c TECS: remove airspeed adaption in case of underspeed
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2023-11-07 12:18:06 -05:00
alexklimaj 4dda99c80b mc_pos_control: MPC_ALT_MODE make terrain hold default 2023-11-07 12:00:14 -05:00
alexklimaj de0910c767 flight mode manager: fix terrain hold 2023-11-07 12:00:14 -05:00
Sverre Velten Rothmund 94d4dc85f8 ekf2: Make stuck detector optional 2023-11-07 11:57:19 +01:00
Konrad 3d16383bb4 mavlink_tests: fix include directory to point to chosen mavlink dialect 2023-11-07 11:35:23 +01:00
Matthias Grob c53e0c4799 cpuResourceCheck: use hysteresis class 2023-11-07 11:19:28 +01:00
Silvan Fuhrer fd009c8be3 CPU resource check: use class member and fix param description
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2023-11-07 11:19:28 +01:00
Silvan Fuhrer c054bc2370 Commander: cpuResourcesCheck: add 2 seconds hysteresis to trigger failure
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2023-11-07 11:19:28 +01:00
Matthias Grob ae888b73d0 battery: report over voltage 2023-11-06 18:17:28 +01:00
Silvan Fuhrer 54d26e084a Commander: windCheck: add COM_WIND_MAX_ACT param to set high wind failsafe action (#21373)
Has options *None where the check is disabled, and *Warning, where only a warning is
published (which replaces the high wind warning from the COM_WIND_WARN limit).

Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2023-11-06 11:58:21 +01:00
Ramon Roche a29b07fa73 Security Vulnerability Reporting 2023-11-06 09:32:16 +01:00
Frederik Markus 39fbfd8e0c Port of Advanced Plane from Gazebo Classic to Gazebo (#22167)
* started tiltrotor port

* added advanced plane and changed some parameters on the tiltrotor

* added advanced plane

* removed tiltrotor for clean push

* removed standard vtol old model file

* removing the standard vtol changes from this PR, since it is not part of the advanced plane

* removed advanced plane meshes as they are already found in the rc_cessna

* updating and improving airframe parameters

* updated mesh paths

Signed-off-by: frederik <frederik@auterion.com>

---------

Signed-off-by: frederik <frederik@auterion.com>
Co-authored-by: frederik <frederik@auterion.com>
2023-11-06 09:31:04 +01:00
Christian Rauch 22ee90b7d7 add include path for crc32.h on "posix" and "ros2" platform 2023-11-03 11:50:56 -04:00
Christian Rauch 7394a20a58 ignore px4_log on "ros2" platform 2023-11-03 11:50:56 -04:00
alessandro 428e7d7754 mavlink: remove double assignment of battery field 2023-11-03 11:49:25 -04:00
Beat Küng fd0a311f3c Makefile: exclude submodules for 'make validate_module_configs' 2023-11-03 11:09:57 -04:00
alexklimaj 51e1a80556 driver: cleanup imu folder 2023-11-03 10:50:27 -04:00
bresch a989e5338c ekf2: reset globlal position uncertainty when GNSS is fused
There is no reason to keep an uncertainty on the origin as it is then
already contained in the local position estimate when GNSS data is fused
in the filter.
2023-11-02 13:11:40 -04:00
Frederik Markus d6dbf38a1b add windy default world (#22273)
* add windy default world

* Rename windy_default.sdf to windy.sdf

* rename windy.sdf world

---------

Co-authored-by: frederik <frederik@auterion.com>
2023-11-01 09:35:37 +01:00
Konrad 1089079a32 Figure_of_eight: Make configuration dependent on defined mavlink_message_id. 2023-10-31 15:57:59 -04:00
Konrad e3473a0f90 mavsdk_tests: Add integration tests for figure of 8 2023-10-31 15:57:59 -04:00
Konrad 8edd7ce2c1 kconfig: Add option to enable figure of eight support 2023-10-31 15:57:59 -04:00
Konrad e5e66370e7 FixedwingPositionControl: Add support for figure 8 loitering.
The command is sent by a dedicated mavlink command and forwarded to the fixed wing position controller.

The pattern is defined by the radius of the major axis, the radius of the minor axis and the orientation. The pattern is then defined by:
The upper part of the pattern consist of a clockwise circle with radius defined by the minor axis. The center of the circle is defined by the major axis minus the minor axis away from the pattern center.
The lower part of the pattern consist of a counter-clockwise circle with the same definitions as above.
In between, the circles are connected with straight lines in a cross configuration. The lines are always tangetial to the circles.
The orientation rotates the major axis around the NED down axis.

The loitering logic is defined inside its own class used by the fixed wing position control module. It defines which segment (one of the circles or lines) is active and uses the path controller (npfg or l1-control) to determine the desired roll angle.

A feedback mavlink message is send with the executed pattern parameters.
2023-10-31 15:57:59 -04:00
Mathieu Bresciani 0d6c2c8ce9 EKF2: Error-State Kalman Filter (#22262)
* ekf derivation: change to error state formulation
* ekf2: update auto-generated code for error-state
* ekf2: adjust ekf2 code for error state formulation
* ekf2_tests: adjust unit tests for error-state EKF
* update change indicator for error-state EKF
* ekf2_derivation: allow disabling mag and wind states

---------

Co-authored-by: bresch <[brescianimathieu@gmail.com](mailto:brescianimathieu@gmail.com)>
2023-10-31 10:02:18 -04:00
Daniel Agar d7f388e590 boards: ARK CAN node NuttX flash savings 2023-10-31 09:59:15 -04:00
Peter van der Perk fee6d250f3 zenoh: fix sitl ci compile warning 2023-10-31 09:55:51 -04:00
Konrad 2e850371c5 test_vtol_rtl: increase time to disarm to make tailsitter CI pass 2023-10-31 14:16:02 +01:00
Konrad e4e2e6374a fmu-v6x: enable vtol takeoff again 2023-10-31 14:16:02 +01:00
Konrad 654e885003 mavsdk: Add integration tests for RTL with approaches 2023-10-31 14:16:02 +01:00
Konrad 24f59dd465 autopilot_tester: Add mavlink passthrough to end custom commands 2023-10-31 14:16:02 +01:00
Konrad a4d05085a7 Navigator: Don't switch to RTL if already in landing phase of mission. 2023-10-31 14:16:02 +01:00
Konrad c1214c847f rtl+mission: remove do_need_move_to_land and handleLanding duplicated code to reduce flash 2023-10-31 14:16:02 +01:00
Konrad 698c57c5f8 [RTL] Add VTOL land approach for home with designated loiter points in the RTL mode. 2023-10-31 14:16:02 +01:00
Konrad e2cbf5be94 [RTL] Update MAVLINK Mission logic to send optional loiter points to mission rally points. 2023-10-31 14:16:02 +01:00
Frederik Markus 26fd4c852c update default omnicopter pose (#22218)
Co-authored-by: frederik <frederik@auterion.com>
2023-10-30 14:38:48 +01:00
alexklimaj 794d0d177b boards: ARKV6X Rev 3 IIM42653 disable CLKIN 2023-10-27 16:29:01 -04:00
alexklimaj 6a849163db drivers iim42652 and iim42653 disable AFSR 2023-10-27 16:29:01 -04:00
alexklimaj d882ae05c1 make format fix zenoh 2023-10-27 16:29:01 -04:00
alexklimaj db765e6cbd drivers: icm42688p fix AFSR register 2023-10-27 16:29:01 -04:00
alexklimaj c6287a8a89 boards: arkv6x fix wrong pwm output values 2023-10-27 16:24:41 -04:00
David Sidrane d3d5b582fc NuttX with [BACKPORT] LPi2C timeout of 0 fixed 2023-10-27 03:57:35 -04:00
David Sidrane 53655b1e3c nxp_ucans32k146:Add rgbled_ncp5623b 2023-10-27 03:57:35 -04:00
David Sidrane b8b150b213 UavcanNode:Fix Breakage from 3d61ab SocketCAN is FD based
SocketCAN uses FDs. FD's are per task/thread
  Run() is not on the same thread as init().
2023-10-27 03:57:35 -04:00
David Sidrane 01e9418310 s32k14x:canbootloader board_identity Return the same word ordering as s32k1xx/version/board_identity 2023-10-27 03:57:35 -04:00
David Sidrane a0491bfb9a nxp_ucans32k146:Provide board_app_shared_read 2023-10-27 03:57:35 -04:00
David Sidrane 1a2a02b7ae UavcanNode:Support optional board_app_shared_read 2023-10-27 03:57:35 -04:00
David Sidrane 479c1524b1 boot_app_shared:Add optional board_app_shared_read 2023-10-27 03:57:35 -04:00
David Sidrane 85aeedd986 s32k14x:Make use of boot_app_shared shared_[un]lock 2023-10-27 03:57:35 -04:00
David Sidrane 285e0ca519 canbootloader boot_app_shared:Add optional shared_[un]lock 2023-10-27 03:57:35 -04:00
David Sidrane 12bde36dbe s32k14x canbootloader:Change autobaud to ACK and range high to low 2023-10-27 03:57:35 -04:00
Matthias Grob 12b291b82f px4_log: comment typo alway{s} 2023-10-25 16:43:06 -04:00
Matthias Grob 2ef807eaa0 sdcardCheck: shorten hardfault log message
To make sure it's showing correctly in the output.
2023-10-25 16:43:06 -04:00
bresch eed2870fd8 ekf2: fix optical_flow_vel publication
We should otherwise call this publication before the aid_src publisher
that sets the timestamp. Having it separate avoids this ordering
constraint.
2023-10-25 09:59:56 -05:00
SalimTerryLi f68f88b97c driver/pca9685_pwm_output: bugfixs & support outputting in duty-cycle mode (#21528)
- make it work again
 - also supports Kconfig based clk source selection
 - adapt to recent changes of default PWM limits
 - support outputting in duty-cycle mode
 - i2c addr use use hex representation
 - revert back to common min/max value & move duty-cycle mode to advanced
2023-10-21 12:39:45 -05:00
Niklas Hauser 63b5c790b7 iotimer: Enable timer when configuring input capture
We provide a latency measurement in the input capture handler.
However, since the timer was not enabled, none of the counter were
running therefore all counters were zero, thus latency was also zero.

Since the HRT is used to provide a timestamp, the lack of the running
timer was never noticed. After enabling the timer, latency now correctly
shows 9-10 counts.
2023-10-21 12:28:56 -05:00
Roman Bapst ecb78ca207 new library for atmosphere calculations
Signed-off-by: RomanBapst <bapstroman@gmail.com>
2023-10-21 12:25:45 -05:00
Julian Oes f120ebcdc0 mavlink: properly set mission_type
This was defaulted to 0 before which messed with transmitting geofence
and rally items.

Signed-off-by: Julian Oes <julian@oes.ch>
2023-10-19 21:20:14 -05:00
Engin Oksuz 3ad2c641da README.md spelling mistake corrected 2023-10-19 10:01:47 -04:00
Titus e31e170438 Tools/setup/ubuntu.sh: fix GCC_VER_STR failure handling (#22007)
* Fixed an issue where if the GCC_VER_STR would not contain the right NUTTX_GCC_VERSION, the grep -c command would throw a failure, silently exiting the entire ubuntu.sh setup script
2023-10-18 21:01:07 -04:00
Robbie Drage 68bc90bab5 uorb: fix Subscription::ChangeInstance() bug 2023-10-18 20:56:25 -04:00
David Sidrane 96ee73f295 px4_fmu-v6x:Rev 6 Sensors omit starting icm42688p, icm42670p, icm20649, icm20602 2023-10-18 20:55:46 -04:00
Daniel Agar 71b9e31005 drivers/osd/msp_osd: use proper EKF status flags instead of solution status bits 2023-10-18 20:55:12 -04:00
Daniel Agar 27f9b1b65a ekf2: move zero gyro update to aid source class 2023-10-18 20:23:56 -04:00
Daniel Agar e79737a38d ekf2: create simple estimator aid source base class and extract zero velocity update 2023-10-18 20:23:56 -04:00
Frederik Markus 7ac50a20b0 Tools/simulation/gz: initial AVL automation tool (#22204)
This is a tool that can be used to generate advanced lift drag plugin parameters automatically using AVL. Rather than having to create .avl files yourself, pass them to AVL, read out the correct parameters and place them in the Advanced Lift Drag plugin, this tool will do all that for you and generate a complete advanced_lift_drag plugin sdf containing all necessary parameters for any vehicle. All that is required is to specify what the physical geometries of the vehicle are. The scripts are adaptable enough to support a self-selected number of control surfaces.

---------

Co-authored-by: frederik <frederik@auterion.com>
2023-10-18 15:33:50 -04:00
Peter van der Perk 019d232911 Add Zenoh pico support 2023-10-18 15:30:36 -04:00
Peter van der Perk 5137ca1ccc cmake: fix kconfig cache when setting to 0 or n 2023-10-18 15:30:36 -04:00
Daniel Agar 408c30de13 ekf2: delete redundant aid src status getters 2023-10-18 15:21:51 -04:00
Daniel Agar bdaf0acfca ekf2: fully disable yaw estimator EKFGSF_yaw with CONFIG_EKF2_GNSS (#22233) 2023-10-18 13:30:17 -04:00
Julian Oes fefdad83bf mavlink: fix MAVLink message forwarding
This switches from the horribly intertwined ringbuffer implementation to
the new VariableLengthRingbuffer implementation.

By ditching the previous implementation, we fix MAVLink message
forwarding, which didn't work reliably. The reason it didn't work is
that multiple mavlink messages could be added but only one of them was
sent out because the buffer didn't keep track of the messages properly
and only read the first one.

Signed-off-by: Julian Oes <julian@oes.ch>
2023-10-18 12:26:47 -04:00
Julian Oes da34e5e2c8 lib: add variable length ringbuffer
This adds a reusable class for a FIFO ringbuffer that accepts variable
length packets. It is using the Ringbuffer class internally.

Signed-off-by: Julian Oes <julian@oes.ch>
2023-10-18 12:26:47 -04:00
Julian Oes 7d0a8aa638 lib: add FIFO ringbuffer class
This adds a reusable class for a simple FIFO ringbuffer.

Signed-off-by: Julian Oes <julian@oes.ch>
2023-10-18 12:26:47 -04:00
Daniel Agar 3d238b0275 ekf2: add kconfig to disable gravity fusion (#22231) 2023-10-18 10:50:51 -04:00
Daniel Agar 6eae9fb371 ekf2: fix barometer kconfig 2023-10-18 09:43:27 -04:00
KonradRudin 988705831d Check mission climb always on current mission item (#22230)
* mission_base: reset inactivation index when user set a new mission index, or mission is reset.

* mission_base: check Climb required always on current mission item
2023-10-18 07:59:20 +02:00
Jukka Laitinen e8a0a0772e Disable I2C interface in ICM42688P sensor when it is initialized
This prevents accidental misconfiguration via I2C if there are
multiple SPI devices on the same bus. The device may hear it's i2c address
and write some register, while there is data transfer ongoing with another
device.

Signed-off-by: Jukka Laitinen <jukkax@ssrc.tii.ae>
2023-10-17 11:07:21 -04:00
Ville Juven d83b9f3c38 WorkItemSingleShot: Disable priority inheritance for signaling semaphore
WorkItemSingleShot::_sem is a signaling semaphore, disable PI for it.

Set CONFIG_DEBUG_ASSERTIONS=y and the kernel panics due to the semaphore
having no holder, disabling PI fixes this.
2023-10-17 10:08:25 -04:00
Ville Juven 5578b629a3 blockingqueue.hpp: Disable priority inheritance for signaling semaphores
The head/tail semaphores are not used as lock but rather as resource
counters and thus relate more as signaling semaphores. Disable PI for
them.

I run my code with CONFIG_DEBUG_ASSERTIONS=y and the kernel panics due
to the semaphore having no holder, disabling PI fixes this.
2023-10-17 10:08:25 -04:00
Niklas Hauser f45b960eee [mavlink] Use separate mutex for event buffer
This prevents the mavlink transmit loop from waiting on the module mutex
thus not stopping transmissions when the mutex is already taken.

This can happen when calling `mavlink status` from the mavlink shell,
where `Mavlink::get_status_all_instances()` takes the mutex and then
prints the status via pipes to the mavlink transmit buffer.
If that pipe cannot be emptied a deadlock happens.

Since the MavlinkReceiver thread also waits on the module mutex, both
reception and transmission of Mavlink packets are then prevented thus
disabling communications entirely.
2023-10-17 10:05:46 -04:00
Daniel Agar 48e09a4dea ekf2: move predict covariance IMU inhibit check to function 2023-10-17 09:58:10 -04:00
Daniel Agar 0b44852094 ekf2: move accel bias check out of fixCovarianceErrors 2023-10-17 09:58:10 -04:00
bresch 1c9373e83b update baro static pressure compensation tuning script
Field name changed in vehicle_gps_position
2023-10-16 09:45:28 -04:00
Andrei Korigodskii eeb9c5256a boards: add support for Matek H743 Slim V3
IMUs were replaced in V3 with 2x ICM42688P. This configuration should
work with all revisions of Matek F743 Slim board, including V1, V1.5
and interim variant of V3 (ICM42688P + ICM42605).

Signed-off-by: Andrei Korigodskii <akorigod@gmail.com>
2023-10-13 20:59:59 -04:00
Daniel Agar 9676af2fe6 ekf2: predict covariance avoid explicit temporary nextP 2023-10-13 20:57:33 -04:00
Daniel Honies 476b5d5594 fix macos compile issues (#22173)
* fix macos compile issues

* remove unused variable
2023-10-12 09:13:19 +13:00
Daniel Agar d2b3e7fe16 ekf2: new kconfig to enable/disable GNSS (enabled by default) 2023-10-11 14:02:34 -04:00
jmackay2 2d78383296 Add the capability to use Gazebo Harmonic if it is installed 2023-10-11 10:21:09 -04:00
vlad-serbanica af84c2ca7f mavlink_main: increase raw gps latency 2023-10-11 09:53:59 -04:00
bresch ec15fe3d90 ekf2-derivation: fix terrain and yaw estimator derivations
fix compatibility issues with symforce-0.9.0
2023-10-11 09:49:17 -04:00
bresch cf1c6a8b84 ekf2-derivation: remove old wind covariance derivation 2023-10-11 09:49:17 -04:00
RomanBapst 176c9a71e6 addressed review comments
Signed-off-by: RomanBapst <bapstroman@gmail.com>
2023-10-11 12:05:24 +03:00
RomanBapst b50a23beb0 vtol: make sure transition airpseed is above weight compensated minimum airspeed
Signed-off-by: RomanBapst <bapstroman@gmail.com>
2023-10-11 12:05:24 +03:00
ZeroOne 6dfede0806 fix lightware_laser_serial: prevent potential heap buffer overflow (#22202)
In the lightware_parser function, LW_PARSE_STATE2_GOT_DIGIT0 state can be repeated unexpectedly without proper parserbuf_index or state checking. This behavior will trigger a heap buffer overflow vulnerability by allowing to write some data. And the writable size is sizeof(unsigned).
2023-10-11 07:01:09 +02:00
Daniel Agar 5352a64042 ekf2: symforce derivation allow optionally disabling mag and wind states 2023-10-10 17:31:11 -04:00
Daniel Agar b5f3d089c4 ekf2: mag_fusion remove direct state index usage 2023-10-10 09:18:04 -04:00
Daniel Agar cf4c565e4a ekf2: mag_fusion.cpp cleanup includes 2023-10-10 09:18:04 -04:00
Daniel Agar c85840c4dd ekf2: mag_fusion only set fault status flags if mag_3D updating all states
- other parts of the system are blanket checking for any fault status
   flag
2023-10-10 09:18:04 -04:00
Daniel Agar e58ceba4b1 ekf2: mag_fusion consolidate duplicate error handling 2023-10-10 09:18:04 -04:00
Serkan Mazlum 585687b766 generate_dds_topics.py: simplify repeated code (#22156) 2023-10-10 08:12:55 +02:00
bresch 5e986f6997 wind_est: correctly include sideslip in initialization model 2023-10-09 21:03:38 -04:00
bresch fc32820e19 ekf2: initialize wind covariance using symforce 2023-10-09 21:03:38 -04:00
Daniel Agar 28d58a947f ekf2: cleanup more optional mag (CONFIG_EKF2_MAGNETOMETER) 2023-10-09 10:18:02 -04:00
Daniel Agar 5f87f3a046 ekf2: drag fusion add aid source status topic 2023-10-09 09:26:28 -04:00
Daniel Agar 028733e1c7 ekf2: add kconfig to disable wind estimation (off by default) 2023-10-09 09:22:29 -04:00
Silvan Fuhrer c41de22a05 batteryCheck: add new battery threshold for arming (COM_ARM_BAT_MIN)
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2023-10-09 07:40:48 +02:00
Silvan Fuhrer b7f8ee8ee7 batteryCheck: improve user notification for low battery events
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2023-10-09 07:40:48 +02:00
Hamish Willee bc19ccdd1f Update commander_params.c - RC loss is manual control loss 2023-10-09 07:35:06 +02:00
Beniamino Pozzan 83841d1ad1 [gz-bridge] fix GZ timeout for slow starting simulations
Signed-off-by: Beniamino Pozzan <beniamino.pozzan@gmail.com>
2023-10-07 12:27:52 -04:00
Mathieu Bresciani 05fd8c5976 EKF2: centralized auto-generated state (#22183)
* ekf2_derivation: use single source of state definition

The state is defined as an ordered dictionary of group elements and
everything else is generated using that state definition

* ekf2: generated state sample add const reference getter

---------

Co-authored-by: bresch <[brescianimathieu@gmail.com](mailto:brescianimathieu@gmail.com)>
Co-authored-by: Daniel Agar <daniel@agar.ca>
2023-10-06 10:28:21 -04:00
Beat Küng 2e1d5687f9 fix events: use px4_add_library instead of add_library
Fixes `make uorb_graphs`
2023-10-06 10:24:23 -04:00
Julian Oes aa87b2ef4d cubepilot: fix 4. Orange+ variant
There was a missing then, and missing SPI definitions.

Signed-off-by: Julian Oes <julian@oes.ch>
2023-10-06 08:02:03 +13:00
Mathieu Bresciani d61743412c ekf2: fix flow gyro bias corrections (#22145)
* ekf2-flow: fix flow gyro bias compensation
* ekf2-flow: apply flow gyro bias when used
* ekf2: log optical flow gyro bias
* ekf2: optical flow control always use provided flow gyro (with bias applied)
* ekf2-flow: log flow gyro and gyro reference
* ekf2-flow: support senrors with XY flow gyro

---------

Co-authored-by: Daniel Agar <daniel@agar.ca>
Co-authored-by: bresch <[brescianimathieu@gmail.com](mailto:brescianimathieu@gmail.com)>
2023-10-05 10:51:30 -04:00
Daniel Mesham e00b35e142 boards: default to custom participant for uXRCE-DDS client on Skynode 2023-10-05 08:03:21 +02:00
Daniel Mesham f02c5319bc uxrce_dds_client: add participant configuration parameter
Replaces the localhost-only and custom participant CLI flags
2023-10-05 08:03:21 +02:00
Daniel Mesham 45fd4d2fb6 uxrce_dds_client: reformat status output
* Align status values.
* Add indicators for the custom participant and localhost-only flags.
2023-10-05 08:03:21 +02:00
Daniel Mesham 0a5ca3bb75 uxrce_dds_client: update parameter descriptions 2023-10-05 08:03:21 +02:00
Beat Küng d1fcd39a44 fix crsf_rc: prevent potential buffer overflow for unknown packets
The length check for unknown packets did not include PACKET_SIZE_TYPE_SIZE
and CRC_SIZE, and hence working_index could overflow CRSF_MAX_PACKET_LEN,
triggering invalid memory access further down in QueueBuffer_PeekBuffer.

Also the working_segment_size was wrong for unknown packets.

Credits for finding this go to @Pwn9uin.
2023-10-05 08:00:22 +02:00
Silvan Fuhrer cad595cb5c ROMFS: rcS: check for updated ext_autostart and rename if existing
This allows to inject an updated ext_autostart folder with the name
ext_autostart_new, and then PX4 takes care of renaming it to
ext_autostart during bootup.

Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2023-10-04 10:17:20 +02:00
Daniel Agar 745709717e drivers/imu/analog_devices/adis16507: use bad CRC perf count 2023-10-03 18:06:33 -04:00
bresch 10db6b6eda ekf2: remove sparse vector optimization
The sparse vector template requires to know which states are non-zero in
the observation jacobian. This complicates the modularity of the code
when the state vector or the derivation is changed.
The computation cost difference is almost negligible for this size.
2023-10-02 10:12:53 -04:00
Silvan Fuhrer abfd00aeb9 mission_base: if FW and takeoff do not enter climb before mission start
For FW takeoffs we need to keep the course straight towards the first
waypoint, and not climb in loiter patterns first.

Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2023-10-02 15:25:46 +02:00
Silvan Fuhrer 169ff6ccb0 ROMFS: advanced_plane config: remove deprecated settings
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2023-10-02 15:25:46 +02:00
Silvan Fuhrer 563fd8427a boards: increase init stack size by 100B
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2023-10-02 09:37:06 +02:00
Konrad ee5cfbb01c px4_fmu-v5_stackcheck: Disable OSD driver to save flash 2023-09-29 14:25:03 +02:00
Konrad 2779a00ac8 VTOL TAKEOFF: Add Config to deactivate, and deactivate on all boards except fmu_v5x and sitl.
QGC does not support VTOL takeoff and thus this is used to safe flash space.
2023-09-29 14:25:03 +02:00
Konrad 4227e2b7e7 test_vtol_mission: Increase thresholds for tests to pass. Temporarily disable checks tracks fro reverse mission.
Current threshhold has no margins of errors with the set acceptance radius. Increase corridor radius by 5m.
Increase time to disarm for tailsitter test to pass.
Rverse mission needs check tracks test disabled since mavsdk does not really work with mission has reverse order.
2023-09-29 14:25:03 +02:00
Konrad 5c021d8fa4 RTL: Keep only the selected RTL type in memory. 2023-09-29 14:25:03 +02:00
Konrad d4ea106f9e RTL: When RTL_TYPE is set to 1 make sure to always use a mission landing/safepoint if available and not in RW mode. 2023-09-29 14:25:03 +02:00
RomanBapst 6fca984c3f test_vtol_mission: Add additional testing for VTOL RTL and reverse mission RTL
mavsdk-test: added a vtol mission without a landing at the end (used for reversed RTL)
math_helpers: added function to compute local position from a raw mission item

Signed-off-by: RomanBapst <bapstroman@gmail.com>
2023-09-29 14:25:03 +02:00
Konrad 9a48d375ce mavlink-mission: Calculate land_start and land item directly on mission upload. 2023-09-29 14:25:03 +02:00
Konrad 007ed11bbe Mission+RTL: Refactoring mission and RTL to keep them separate. RTL does all its mission related computation in its own class.
Dataman: Add write function to dataman cache.

RTL and mission have a new common base class mission_base. Both inherit from them and mission, RTL mission, and rtl reverse mission inherit from them and implement their desired functionalities. This simplifies the logic in mission as well as make the logic in rtl mission reverse and mission more readable.
Rtl mission reverse now functional again for VTOL flying back the mission and transitioning to MC at the home position.
Dataman cache has new write functionality to write to dataman while updating write item in its cache if necessary.
Dataman cache is now only updated when the respective module is active. Leads to a higher computation time once on activation, but decreases unnecessary cache updates when inactive.
2023-09-29 14:25:03 +02:00
Silvan Fuhrer 1a7e438099 Param translation: remove all param translations up to 1.14 release
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2023-09-29 11:07:46 +02:00
Silvan Fuhrer 913a7ea295 FW Position Control: improve/shorten param descriptions
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2023-09-29 11:07:46 +02:00
Silvan Fuhrer 8bc3785345 AirspeedSelector: improve/shorten param descriptions
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2023-09-29 11:07:46 +02:00
Silvan Fuhrer 700402a031 EKF2: improve/shorten param descriptions
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2023-09-29 11:07:46 +02:00
Silvan Fuhrer f67b3a8a03 VTOL: improve/shorten param descriptions
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2023-09-29 11:07:46 +02:00
Silvan Fuhrer 6b09882758 FW attitude/rate controller: shorten/improve param descriptions
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2023-09-29 11:07:46 +02:00
Daniel Agar b817eb0370 ekf2: collect_gps() don't throttle updates until WMM set initially 2023-09-29 09:37:30 +02:00
Daniel Agar 1e594747ab ekf2: fix WMM NAN checks
- if any of the stored WMM is NAN then it should be updated
2023-09-29 09:37:30 +02:00
Silvan Fuhrer 0df5134156 vfr_hud: fix throttle display for FW and show magnitude for 3D thrust (#22154)
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2023-09-28 17:15:26 +02:00
Matthias Grob 8ea04b0f8f ActuatorEffectivenessHelicopterCoaxial: fix copy paste error in saturation logic 2023-09-28 08:55:06 +02:00
Matthias Grob 8a2d2fb1cd HelicopterCoaxial: only publish unallocated thrust in the saturation case 2023-09-28 08:55:06 +02:00
Matthias Grob 169a0f580d HelicopterCoaxial: correct constraining for minimum 2 swash plate servos 2023-09-28 08:55:06 +02:00
Matthias Grob 20f2df4410 HelicopterCoaxial: handle yaw saturation
This had to be done for the integrators to work at all.
2023-09-28 08:55:06 +02:00
Matthias Grob cf40d95ef0 HelicopterCoaxial: adjust for coaxial allocation 2023-09-28 08:55:06 +02:00
Matthias Grob b3b373e074 control_allocator: add coaxial helicopter effectiveness
It's now just a copy of the helicopter such that changes get well
visible in the history.
2023-09-28 08:55:06 +02:00
Matthias Grob b56e7a036c control_allocator: allow for only 2 swash plate servos
This is required to support fixed pitch propeller helicopters that have
no collective but only cyclic pitch with two degrees of freedom and
hence only two servos.

The amount of thrust in the body z axis is then controlled using the
motor speed which makes particularly sense on coaxial helicopters
that need to control yaw with changing motor speeds already.
2023-09-28 08:55:06 +02:00
Matthias Grob 35b32e8cb0 ActuatorEffectivenessHelicopter: spacing 2023-09-28 08:55:06 +02:00
Matthias Grob 2be687a84c Helicopter: add collective pitch offset to Actuator UI parameters 2023-09-28 08:55:06 +02:00
Matthias Grob 99e2acf89c ActuatorEffectivenessHelicopter: explicitly handle unsaturated case
This became necessary otherwise
the allocation reports saturation all
the time and the rate integrator doesn't work.
2023-09-28 08:53:35 +02:00
henrykotze 3cee941f64 Kconfig subs and controllers for uavcan
small changed to revert back to px4::main

Make kconfig more readble

Combine esc and servo controllers under one option
2023-09-28 07:36:36 +02:00
Matthias Grob a03af59c5c battery: show unknown cell count
Unkown cell count is the default and
should be possible to select again from the drop down.
2023-09-28 07:32:06 +02:00
Niklas Hauser 43d859313b px4/fmu-v5/6x: Upstream power manager for FMU
Detects and configures it correctly for the Auterion INA226-based power
modules.
2023-09-27 10:39:31 -04:00
alexklimaj 23cf0a7317 workqueue: increase hp_default stack 2023-09-26 15:18:31 -04:00
Daniel Agar 14a967e2ca ekf2: remove aid src status fusion_enabled flag 2023-09-26 10:30:16 -04:00
bresch 99197919d7 ekf2: access state covariance using helper functions 2023-09-26 06:41:04 +02:00
Daniel Agar 619616b9f0 vscode add Makefile extension to recommended and devcontainer.json 2023-09-25 12:26:29 -04:00
Daniel Agar aa97ef9d50 EKF: covariance remove extra semicolon 2023-09-25 12:26:12 -04:00
Mathieu Bresciani b3f460f30c ekf2: update quaternion covariance at yaw reset(#22123)
- Preserve tilt variance while doing a yaw reset
 - Yaw variance is now correctly set instead of increased

---------

Co-authored-by: Dominique <dominique.leblanc@donecle.com>
Co-authored-by: bresch <[brescianimathieu@gmail.com](mailto:brescianimathieu@gmail.com)>
2023-09-25 09:36:42 -04:00
bresch 514e0330e5 ekf2_terrain: handle height reset 2023-09-25 09:34:14 -04:00
Ville Juven 6cb2c176d5 events: Move implementation of events::send() to lib/events
Events have a global, system-wide sequence number, which must be handled
atomically, (fetching and incrementing the sequence AND sending the event
to uORB must be atomic). Currently in FLAT mode, only one instance of this
sequence number exists, so it is OK to have it in px4_platform.

However, in PROTECTED mode px4_platform is instantiated both in kernel-
and user spaces, which makes two instances of this sequence number, which
causes problems in the mavlink event handling logic.

When mavlink receives and handles events, it expects that:
- The sequence numbers arrive in order (seq n is followed by n+1 etc)
- It increments by 1
- There is only one instance of the sequence number

In PROTECTED mode this is violated, as the kernel and user sequence
numbers run freely on their own. This patch fixes the issue by moving
the event backend to the kernel and by providing user access to it via
ioctl.
2023-09-25 09:54:11 +02:00
Vincent Poon fafec397e8 Fix Default Output Protocol - Airframe 4019_x500_v2
Remove "param set-default PWM_MAIN_TIM0 -4"
2023-09-25 09:28:47 +02:00
Daniel Agar 61aee73b91 boards: px4_fmu-v5_stackcheck disable common RC to save flash 2023-09-22 11:19:29 -04:00
bresch db97a38a9d ekf2 rng kin: allow check to become true during horizontal motion
Even if there is some horizontal motion, a passing check should be
accepted as the terrain can be flat. However, the vehicle must not be
moving horizontally to invalidate the consistency as a change in terrain
can make the kinematic check temporarily fail.
2023-09-22 09:02:35 -04:00
David Sidrane e920bfb188 px4_fmuv6x:Fit Rev6 Sensors 2023-09-21 16:22:44 -04:00
David Sidrane 9151d582ed px4_fmu-v6:Add Sensor Set Rev 6 2023-09-21 16:22:44 -04:00
Silvan Fuhrer 5590ab3caa FW Position Controller: handle IDLE waypoints in FW_POSCTRL_MODE_AUTO, also with NAN setpoints (#22114)
A setpoint of type IDLE can be published by Navigator without a valid position,
and should be handled in the auto function in FW_POSCTRL_MODE_AUTO. If it wouldn't be
handled there the controller would switch to mode FW_POSCTRL_MODE_OTHER, in which case
no attitude setpoint is published and the lower controllers would be stuck with the
last published value (incl. thrust).

Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2023-09-21 17:27:54 +02:00
Silvan Fuhrer acec07fb25 Update src/modules/mc_att_control/mc_att_control_main.cpp
Co-authored-by: Matthias Grob <maetugr@gmail.com>
2023-09-21 17:25:53 +02:00
Matthias Grob 710f977349 mc_att_control: ramp thrust in after spoolup time 2023-09-21 17:25:53 +02:00
Matthias Grob 4ca366c04f mc_att_control: respect spoolup time in Stabilized mode 2023-09-21 17:25:53 +02:00
Matthias Grob 24111df176 mc_att_control_main: zero minimal thrust when landed
but this time compared to
2fbb70d9ca
the minimum thrust is ramping to not produce a thrust jump.

The better long term solution will be to always have airmode but
with the effect limited to a magnitude of MPC_MANTHR_MIN.
2023-09-21 17:25:53 +02:00
Jari Nippula 7239e8473e microxrce_client to use px4_poll for uorb subs
Subscribe to poll uorbs instead of sleeping px4_usleep to
allow more accurate timing.
2023-09-21 08:30:28 -04:00
bresch 9e962f3efa ekf2: update more hardcoded indexes 2023-09-21 08:27:52 -04:00
bresch ebf962bf68 ekf2: remove size in name of state vector and matrix types
Then the state vector size can be changes without having to update the
name
2023-09-21 08:27:52 -04:00
RomanBapst 4f1682c3c8 UTM_GLOBAL_POSITION: prevent uint16 overflow
Signed-off-by: RomanBapst <bapstroman@gmail.com>
2023-09-21 08:21:56 -04:00
Matthias Grob be56f74c1d mc_acro_params: beginner/tuning friendly defaults
high rates and (super) expo are necessary for
- acrobatic flying
- fpv
- racing
but they are not useful for:
- a typical vehicle's rate control tuning
- beginners

The defaults that I set in #8036 were put with the assumption Acro mode
is mainly used on racing drones for acrobatic manouvers but instead
users including me use it most of the time to tune any drone.
When tuning the rates are lowered and expo disabled.

My suggested strategy is to make the beginner friendly rates without
expo which are good for tuning the default and document more clearly
how this can be raised for acrobatic flying in documentation and later
on hopefully also directly in the ground station UI
on an Acro mode specific page.
2023-09-20 17:45:07 -04:00
Matthias Grob 77c2df2e04 mc_acro_params: separate parameter group 2023-09-20 17:45:07 -04:00
Matthias Grob 189fa6831a mc_acro_params: more readable descriptions 2023-09-20 17:45:07 -04:00
Matthias Grob df3a0de734 mc_rate_control: move acro parameter to separate file 2023-09-20 17:45:07 -04:00
Igor Mišić c1dbe177b8 boards: move FRAM emulated sector size to the 32-byte granularity (#21204) 2023-09-20 16:50:36 -04:00
Silvan Fuhrer ec7db4b30d FW Positon Controller: set references to 0 if not provided by local_position (#22101)
* FW Positon Controller: set altitude_ref to 0 if not provided by GPS

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

* FW Positon Controller: set lat/lon reference to 0 if not provided in local_position

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

---------

Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2023-09-20 15:45:32 +02:00
AlexKlimaj 7ff00db9c5 Update AFBR to 1.4.4. Remove changing measurement modes. Add parameters. Default to Long range mode" 2023-09-19 19:15:02 -04:00
RomanBapst 6d71224cdb vtol_takeoff: use global position for takeoff location instead of home position.
- home position and takeoff position don't necessarily need to match

Signed-off-by: RomanBapst <bapstroman@gmail.com>
2023-09-19 20:00:54 +03:00
bresch dac337efc4 ekf2: auto-generate state vector size constant 2023-09-19 09:37:50 -04:00
Daniel Agar 8a9a303354 ekf2: update include guards 2023-09-19 09:37:50 -04:00
bresch 51dbd8ee4c ekf2: simplify state var constraint 2023-09-19 09:37:50 -04:00
bresch 779ea3f4d1 ekf2: access state covariance using enum 2023-09-19 09:37:50 -04:00
bresch 9c41c06325 square matrix: add function to uncorrelate part of the matrix 2023-09-19 09:37:50 -04:00
bresch b612467593 square matrix: add partial trace computation
This is useful when we need the sum of some variances in a large
covariance matrix
2023-09-19 09:37:50 -04:00
Silvan Fuhrer 1cbaa78eba Takeoff: don't use Home altitude but current altitude
If no altitude setpoint is specified then takeoff to the default
altitude above the current global position, not above Home.

Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2023-09-19 10:04:30 +02:00
Silvan Fuhrer de5b769093 Navigator: Use MIS_TAKEOFF_ALT only as default, not as min
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2023-09-19 10:04:30 +02:00
Silvan Fuhrer 71f8f47f62 Navigator: remove deprecated calculate_takeoff_altitude()
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2023-09-19 10:04:30 +02:00
Silvan Fuhrer 48acf98fd5 Navigator: remove deprecated _can_loiter_at_sp and _need_takeoff
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2023-09-19 10:04:30 +02:00
Silvan Fuhrer bb212ea6ec Navigator: refactor logic that aligns altitude prior to starting mission
New: always climb to altitude of active waypoint if mission is started/resumed.

Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2023-09-19 10:04:30 +02:00
Silvan Fuhrer 5fa8985477 ROMFS: SITL config iris_opt_flow: fix disabling of GPS fusion
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2023-09-19 10:04:30 +02:00
Silvan Fuhrer 93dbf17eab Navigator: rename WORK_ITEM_TYPE_TAKEOFF to WORK_ITEM_TYPE_CLIMB
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2023-09-19 10:04:30 +02:00
Silvan Fuhrer 15641f62d2 Navigator: rename WORK_ITEM_TYPE_ALIGN to WORK_ITEM_TYPE_ALIGN_HEADING
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2023-09-19 10:04:30 +02:00
Maciej Małecki 18e47f9b65 Landing Target Estimator: fix param group casing consistency
`target` -> `Target`. Useful to users of machine-readable documentation.
2023-09-19 09:12:40 +02:00
Daniel Agar d351f16d04 drivers/optical_flow/paa3905: backup scheduling to fetch 0 flow
- this sensor provides a MOTION interrupt used for default scheduling, but we also need to publish
   zero flow information
2023-09-18 12:46:39 -04:00
Daniel Agar efbed3bfc1 sensors/vehicle_optical_flow: don't publish interval lower than configured rate 2023-09-18 12:46:39 -04:00
Daniel Agar 380a42fcbf drivers/optical_flow/paw3902: backup scheduling to fetch 0 flow
- this sensor provides a MOTION interrupt used for default scheduling, but we also need to publish
   zero flow information
2023-09-18 12:46:39 -04:00
Daniel Mesham 15036c1761 Allow changing parameters during replay (#22071)
* replay: add scheduled parameter changes

* replay: store scheduled parameter change events as structs
2023-09-18 18:38:09 +02:00
Daniel Agar 6bd13c5514 boards/cubepilot: cubeorange and cubeorangeplus include VectorNav INS 2023-09-15 16:32:40 -04:00
Daniel Agar b2f258f7a4 drivers/ins/vectornav: add new VN_MODE parameter for full INS support 2023-09-15 16:32:40 -04:00
Daniel Agar 153f7bbced ekf2: update all copyright headers 2023-09-15 10:02:09 -04:00
Daniel Agar 1e9f0ad2c6 ekf2: add kconfig for barometer support (enabled by default) 2023-09-15 10:02:09 -04:00
Daniel Agar f0224c5104 boards: bitcraze crazyflie21 disable ekf2 magnetometer support 2023-09-15 10:02:09 -04:00
Daniel Agar 7589ee00e8 boards: holybro kakutef7 switch to ekf2 2023-09-15 10:02:09 -04:00
Daniel Agar 10b54d08fc ekf2: add dedicated EKF2_CONFIG_TERRAIN in kconfig
- new estimator_aid_src_terrain_range_finder for HAGL RNG
2023-09-15 10:02:09 -04:00
Daniel Agar 845b01a00d ekf2: add kconfig for magnetometer support (enabled by default) 2023-09-15 10:02:09 -04:00
Beat Küng d1266c856f rc_input: prevent error output during boot on boards with px4io
output:
INFO  [rc_input] valid device required
ERROR [rc_input] Task start failed (-1)
2023-09-14 10:40:54 -04:00
Matthias Grob f8d729147b Craziflie configs: remove default 100% thrust parameter 2023-09-14 09:50:21 -04:00
PX4 BuildBot 3107860a89 Update submodule mavlink to latest Wed Sep 13 20:14:21 UTC 2023
- mavlink in PX4/Firmware (06b8477f853bf0234d0a894dcf6af4718597989f): https://github.com/mavlink/mavlink/commit/58435f6a83b7ba8b1be67d87264f19534a67857e
    - mavlink current upstream: https://github.com/mavlink/mavlink/commit/81524c2b34aa08768f13091b1d94c421e64f96c3
    - Changes: https://github.com/mavlink/mavlink/compare/58435f6a83b7ba8b1be67d87264f19534a67857e...81524c2b34aa08768f13091b1d94c421e64f96c3

    81524c2b 2023-09-13 Hamish Willee - Update pymavlink - for fixed wireshark (#2038)
fe14d798 2023-08-31 Matthias Grob - common: extend MANUAL_CONTROL with auxiliary continuous inputs (#2031)
546edec2 2023-08-30 Peter Barker - common.xml: display GIMBAL_MANAGER_STATUS.flags as bitmask (#2035)
16754498 2023-08-28 Richard Allen - fix RC_CHANNELS_SCALED inactive channel (#2032)
a31bf384 2023-08-24 Hamish Willee - Fix c_library_vX build order (#2026)
5887a6af 2023-08-17 auturgy - reserve range in all.xml (#2030)
2023-09-13 18:31:37 -04:00
Thomas Stastny 28fe15d829 FixedwingPositionControl: initialize the airspeed slew rate controller with trim airspeed in the constructor 2023-09-13 16:18:16 -04:00
Thomas Stastny a1cd4fd5df Commander: make sure unsupported do reposition command result is published
todo: need to consolidate the command ack strategy in this function
2023-09-13 15:29:31 -04:00
Thomas Stastny bec0d83cf4 Commander: dont accept reposition commands without the mode switch bit
avoids erroneous (unexpected) position setpoints when switching into hold from another mode
2023-09-13 15:29:31 -04:00
Thomas Stastny 2d80291b43 loiter: only accept reposition setpoint if commanded within last 0.5 sec
guards against left over reposition commands (potentially set via geofence) from previous flights
2023-09-13 15:29:31 -04:00
David Sidrane e5f4a6b074 NuttX backports acculated prio to V1.14 release
c23b72dffe [BACKPORT] sched/semaphore: Remove restriction to use nxsem_trywait from ISR
fd47cd20a2 [BACKPORT] imxrt:Serial Preserve all but W1C bit in SR
c55f0fd3ac [BACKPORT] imxrt: lpspi dma invalidate cache after exchange
198c7caecb [BACKPORT] imxrt:lpi2c fix status handeling & race
cbd2e44c10 [BACKPORT] s32k3xx: lpspi dma invalidate cache after exchange
e71618d60e [BACKPORT] s32k3xx:lpi2c fix status handeling & race
6f59cc3659 [BACKPORT] s32k1xx:lpi2c fix status handeling & race
1e316d7e32 [BACKPORT] imxrt: flexcan use hpwork for receiving frames
67c1c59865 [BACKPORT] net/can can_readahead_timestamp always free iob
8be831a4ff [BACKPORT] imxrt: fix txdeadline add ecc/fd support
00a68b7668 [BACKPORT] fs/cromfs: Fix faulty DEBUGASSERT() check
d5cf545d6e [BACKPORT] S32K3XX EMAC MCAST support Fix compile warning when ioctl is not enabled
4265c830fa [BACKPORT] imxrt:edma {s|d}last needs to be total xfer size
24b4d44896 [BACKPORT] s32k3xx:edma {s|d}last needs to be total xfer size
eed0482f64 [BACKPORT] s32k1xx:edma {s|d}last needs to be total xfer size
36aab4146a [BACKPORT] kinetis:edma {s|d}last needs to be total xfer size
a0faf31f6f [BACKPORT] arch/stm32f7: fixes for pinmap
eb8255121d [BACKPORT] stm32h7:sdmmc It is not an error if no wait was needed
062044fe41 [BACKPORT] board nucleo-h743zi:Rework board.h not use CONFIG_STM32_USE_LEGACY_PINMAP
e03f9d3917 [BACKPORT] board olimexino-stm32:Rework board.h not use CONFIG_STM32_USE_LEGACY_PINMAP
4c3a467415 [BACKPORT] stm32l5:pinmap Add suffix to all pins and add legacy pinmap
153069ed40 [BACKPORT] stm32wb:pinmap Add suffix to all pins and add legacy pinmap
d84d737f89 [BACKPORT] stm32f0l0g0:stm32f0{3|5|7|9}x_pinmap & stm32g0_pinmap Remove GPIO_SPEED_xxx and add legacy pinmap
5fc7071ac1 [BACKPORT] stm32l4:stm32l4x{3|4|5|6|r}xx_pinmap pinmap Remove GPIO_SPEED_xxx and add legacy pinmap
20061c2aab [BACKPORT] stm32:stm32f10{0|2|3{c|r|v|z}|5{r|v}|7v}_pinmap refactor
4d1f83d484 [BACKPORT] stm32:stm32l15xxx pinmap Remove GPIO_SPEED_xxx and add legacy pinmap
2dfa3f2601 [BACKPORT] stm32:stm32g4xx{c|k|r|m|v|q} pinmap Remove GPIO_SPEED_xxx and add legacy pinmap
d206327809 [BACKPORT] stm32:stm32f3{0|3|7}xxx pinmap Remove GPIO_SPEED_xxx and add legacy pinmap
95e66ab508 [BACKPORT] stm32:stm32f20xxx pinmap Remove GPIO_SPEED_xxx and add legacy pinmap
d2fd9178ad [BACKPORT] stm32:f4/f412 pinmap Remove GPIO_SPEED_xxx and add legacy pinmap
a9df45166d [BACKPORT] stm32f7:pinmap Remove GPIO_SPEED_xxx and add legacy pinmap
07dd2b424e [BACKPORT] stm32h7:pinmap Remove GPIO_SPEED_xxx and add legacy pinmap
1e3065344f [BACKPORT] stm32u5:stm32u585xx_pinmap Fix typo
0a05365a90 [BACKPORT] stm32wl5:pinmap Fix typo
e3834138dc [BACKPORT] tools:Add STM32 Pin migration tool
df851a8768 [BACKPORT] stm32h7/rcc: make VOS0 configurable from board.h also for stm32h7x7xx
d75dfcf1e9 [BACKPORT] stm32h7/rcc: make VOS0 configurable from board.h
963f35f4fc [BACKPORT] {stm32,stm32f7,stm32h7,stm32l4,efm32}/otg: rasie an assertion if IN request is not possible to transfer
de2fcc6668 [BACKPORT] {stm32f7,stm32h7,stm32l4}/sdmmc: callback support requires HPWORK
6929144fc2 [BACKPORT] stm32h7/otgdev: FS transceiver must be enabled if OTGFS enabled
a2078afaea [BACKPORT] stm32h7/otg: add support for external ULPI
26e1246c86 [BACKPORT] stm32h7/rcc: OTGHS ULPI works only in VOS0
cd6daa185e [BACKPORT] stm32h7: update ULPI pins
c73c261ae3 [BACKPORT] arch/boards: fix stm32f411-mininum:nsh compilation failure after enabling IRQMONITOR
8078f134ef [BACKPORT] arch/stm32/stm32.h: do not include stm32_usbdev.h if not supported
60e884fa92 [BACKPORT] {stm32,stm32l4,stm32f0l0g0}/otg: move STM32_NENDPOINTS definitions to header files
dda297cb78 [BACKPORT] arch/arm/src/stm32/hardware: Fix register define
362b976b0e [BACKPORT] arch/arm/src/stm32/hardware: Add stm32g4 rcc apb1 timer enable compatibility
434fd71f2c [BACKPORT] {stm32/stm32l4/stm32f7/stm32h7/efm32}/otgdev: remove invalid use of the priv field for EP
2476d24e8c [BACKPORT] {stm32f7,stm32h7}/otg: fix compilation for USBDEV when USB_DEBUG=y
eb43c582ea [BACKPORT] drivers/mtd/ramtron: change nsectors size to uint32
20f61ff0d5 [BACKPORT] fs/littlefs: add full support for LittleFS block device cfg in Kconfig
60471fbf8c [BACKPORT] drivers/mtd: add Kconfig options for RAMTRON emulated page & sector size
2023-09-13 13:14:18 -04:00
Daniel Agar 36010a9a7c ROMFS: rc.fw_defaults set more conservative range finder requirements
- for FW the primary range finder usage is estimating the distance to
   the ground (terrain estimate) to guide the landing approach and initiate flare
 - increase EKF2_RNG_QLTY_T default 1->3 seconds
2023-09-13 12:14:13 -04:00
Konrad 679a532e61 failsafe: When rtl_time_estimate failsafe is triggered, only disable it when the user changes the mode, or it is disarmed. 2023-09-13 16:19:08 +02:00
Niklas Hauser 98a35971af camera_capture: disable timer callback on stop
Otherwise the capture_trampoline is called while g_camera_capture is a
nullptr, which leads to a hardfault since the this pointer is invalid.
2023-09-13 10:16:08 -04:00
Daniel Agar 016db84d69 ekf2: covariance update use IMU sample dt (#22032)
- usually the delta angle and delta velocity dt is the same, but they can be slightly different
2023-09-13 09:58:56 -04:00
Jukka Laitinen 9bcfd1a7f7 cmake/kconfig.cmake: Don't populate config_kernel_list in nuttx flat builds
This passes __KERNEL__ compilation flag to all modules, which may break some NuttX headers

Signed-off-by: Jukka Laitinen <jukkax@ssrc.tii.ae>
2023-09-13 21:00:07 +12:00
Thomas Stastny 4ec4ce5fa9 FixedwingPositionControl: rework airspeed slew controller handling
- force initialize takeoff airspeed setpoint at start of takeoff modes
- force set airspeed constraints if slewed value is out of bounds
- always slew airspeed setpoints as long as inside constraints
- move target airspeed setpoint calculation into mode specific logic regions (hand vs runway)
2023-09-13 09:50:41 +02:00
Silvan Fuhrer 78ddf41aa2 ROMFS: SITL plane_catapult: reduce FW_LAUN_AC_THLD to 10m/s/s to detect every throw
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2023-09-13 09:50:41 +02:00
Silvan Fuhrer f1b47b14b8 FW Pos Control: add in_takeoff_situation argument to adapt_airspeed_setpoint()
when we're in a takeoff situation, we only want to adapt the airspeed to
avoid accelerated stall due to load factor changes. Disable othre logic
like minimum ground speed, wind based adaption and airspeed slew rating.

Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2023-09-13 09:50:41 +02:00
bresch 78eb0cdb72 opt flow: fix msg naming
optical_flow got replaced by sensor_optical_flow and vehicle_optical_flow
2023-09-11 10:12:16 -04:00
Julian Oes f2bb548b27 6x: fix internal mag rotation
From looking at the history the BMM150 rotation was initially 0. Then,
this was changed to 6 when the intent was to only change it for Skynode.

A bit later, the rotation was changed back to 0, but only for Skynode.

This tells me that rotation 0 was correct for all 6X including Skynode
all along.

Signed-off-by: Julian Oes <julian@oes.ch>
2023-09-11 15:03:33 +12:00
Fermi-4 9fe8bd698b Update ina228.h comment typo (#22018)
Update comment wording to "Charge Result" from "Energy Result" as this is reading from the charge register
2023-09-10 01:12:57 +02:00
duartecdias efe0db5725 uavcan_drivers: stm32h7_can fix filter memory initialization bug
Co-authored-by: Duarte Dias <duarte@uaventure.com>
2023-09-08 15:29:41 -04:00
Daniel Agar 7d497d4959 msg: set all ORB_QUEUE_LENGTH to actual rounded value 2023-09-08 15:28:16 -04:00
Daniel Agar 892d507ca7 integrationtests: MAVROS mission_test.py relax yaw estimate STD check for now (#22061)
- ekf2 heading first initializes to 0 degrees, then immediately resets to mag heading once a few samples are accumulated
 - the yaw standard deviation check could be adjusted to exclude this brief (<1s) initial period
2023-09-08 15:27:39 -04:00
Daniel Agar 3476831246 dataman: explicitly check file existence to init
- on NuttX if the SD card was just cleared (quick format) it's possible for the newly created uninitialized dataman file to still have the previous compatibility key, which causes the initialization to be skipped
2023-09-08 10:16:24 -04:00
Thomas Stastny def4ce6ba8 FixedwingPositionControl: slightly simplify manual position control (use navigateLine() to be sure no turnaround)
make notes on odd things that are likely still wrong
2023-09-08 16:08:38 +02:00
Thomas Stastny 16bd0a2ba0 FixedwingPositionControl: revise navigateLine(), navigateBearing() and naivgatePathTangent() briefs 2023-09-08 16:08:38 +02:00
Thomas Stastny 7b7d762582 FixedwingPositionControl: forgot to rename input args in navigateWaypoints() declaration 2023-09-08 16:08:38 +02:00
Thomas Stastny e71804d976 FixedwingPositionControl: reuse line() and waypoint() methods in navigateWaypoints() method 2023-09-08 16:08:38 +02:00
Thomas Stastny ad9e3d72d9 FixedwingPositionControl: split out single waypoint following method
makes more clearly defined interfaces and behaviors. also cleaned up the controlAutoPosition() method
2023-09-08 16:08:38 +02:00
Thomas Stastny c3012a551f FixedwingPositionControl: track single point when no prev point exists for waypoint following
make sure correct local position setpoint output is logged
2023-09-08 16:08:38 +02:00
Thomas Stastny f90783547f FixedwingPositionControl: correct navigation method param description typos 2023-09-08 16:08:38 +02:00
Thomas Stastny 3047cad05d FixedwingPositionControl: follow (infinite) lines instead of waypoints during takeoff and landing 2023-09-08 16:08:38 +02:00
Thomas Stastny 3ffb57bcce FixedwingPositionControl: handle degenerate tangent setpoint in navigatePathTangent() 2023-09-08 16:08:38 +02:00
Thomas Stastny 413f66549d npfg: update signed track error state 2023-09-08 16:08:38 +02:00
Thomas Stastny b11ff06798 FixedwingPositionControl: fix / clarify navigate waypoint logic 2023-09-08 16:08:38 +02:00
Daniel Agar 14ef376721 drivers/uwb/uwb_sr150: don't enable by default 2023-09-08 09:20:01 -04:00
Daniel Agar de9dfb6b74 .vscode: settings.json default ros.distro 2023-09-07 18:57:37 -04:00
Niklas Hauser ad1d72df6f uORB: fix hardfault in uORB calloc implementation
When running out-of-memory, the malloc returns NULL and the memset then tries to write to address 0 which results in a hardfault.
2023-09-07 14:22:58 -04:00
Julian Oes 35c1d5d9b1 asp5033: fix K value
As QioTek told me via email.

Signed-off-by: Julian Oes <julian@oes.ch>
2023-09-06 10:25:48 -04:00
Matthias Grob 38b0de94c1 system_params: improve distance sensor check description 2023-09-05 13:11:20 -04:00
alexklimaj 10ac10cb33 ARK CANnode disable OPT_WAIT_FOR_GETNODEINFO_JUMPER_GPIO 2023-09-05 13:10:23 -04:00
Jukka Laitinen 2d4d824a98 src/drivers/adc/ads1115: Change adc_report type to PublicationMulti
To support several ads1115 modules publishing to different adc_report instances

Signed-off-by: Jukka Laitinen <jukkax@ssrc.tii.ae>
2023-09-05 13:09:26 -04:00
Julian Oes 70b48dd41c cubepilot: Add support for 4. variant of Orange+
This adds support for the 4. hardware variant of the CubeOrange+
featuring 3 ICM45686.

Signed-off-by: Julian Oes <julian@oes.ch>
2023-09-05 11:07:09 -04:00
Denislav Petrov ece338ceef Adding a new differential pressure sensor ASP5033 (#21568)
* added a new driver ASP5033 for measuring the differential pressure and airspeed

---------

Co-authored-by: nano <nanobotzhe@abv.bg>
Co-authored-by: Denislav Petrov <you@example.com>
2023-09-05 10:21:05 +12:00
Julian Oes fb30b4d288 control_allocator: Clarify position description
I'm assuming that the rotor positions are given relative to the center
of gravity (CG).

Signed-off-by: Julian Oes <julian@oes.ch>
2023-09-04 08:02:15 +02:00
Matthias Grob d2819ca754 FunctionsMotors: include motors instead of servos topic 2023-08-31 16:56:08 -04:00
Matthias Grob 2b78431566 PositionControl: use float literals for sqrtf sign check 2023-08-31 16:56:08 -04:00
alexklimaj 3d61ab84c4 Cannode add ability to get node ID after boot. Fix ARK CAN OPT_WAIT_FOR_GETNODEINFO_JUMPER_GPIO_INVERT 2023-08-30 11:40:01 -04:00
bresch 23b31cc5fd manual_yaw: compensate for yaw estimate convergence
When the yaw estimate is converging, the controller makes the drone yaw
in order to follow the current setpoint. This is unintuitive for the
pilot and it is preferable if the drone continues to fly towards the
same physical direction.
2023-08-30 09:56:19 +02:00
bresch 0aa4afdbce ekf2: add unaided_yaw for more resilient yaw control
This estimate doesn't converge to the true yaw but can be used as a
more consistent but drifting heading source.
It can be used by a setpoint generator to adjust its heading setpoint
while the true yaw estimate is converging in order to keep a constant
course over ground.
2023-08-30 09:56:19 +02:00
Julian Oes 329a2d0e98 gps: request Unicore HEADINGA message
This updates the gps/devices submodule which includes a fix that
requests the Unicore HEADINGA message in case the message is not enabled
by default.

Signed-off-by: Julian Oes <julian@oes.ch>
2023-08-30 11:31:22 +12:00
comla-x b47fa81633 boards: added SIYI N7 flight controller config 2023-08-29 11:31:33 -04:00
bresch 52bcf1e0c2 update change indicator
The yaw variance is now initially zero
2023-08-29 10:57:49 -04:00
bresch 71f12b2c4d ekf2: do not initially increase yaw variance
Yaw variance is automatically increased as soon as a yaw aiding source
is activated
2023-08-29 10:57:49 -04:00
bresch 78d75ada3e update change indicator
The result is slightly different because we now only set the tilt
covariance (before, tilt variance was applied to all axes)
2023-08-29 10:57:49 -04:00
bresch 0282f85cd4 ekf2: compute quat tilt variance using SymForce 2023-08-29 10:57:49 -04:00
Niklas Hauser af40d5befd nsh: check nsh_consolemain return value
Starting a new console allocates memory dynamically, which can fail.
2023-08-29 10:55:01 -04:00
Julian Oes cde47e8fc0 mavlink: improve readability
Co-authored-by: Matthias Grob <maetugr@gmail.com>
2023-08-29 13:23:55 +02:00
Julian Oes 448454a317 mavlink: Support voltages > 65v in battery status
If the measured voltage is more than 65v we need to split the voltage
over multiple cells in order to avoid overflowing the uint16. This is
according to the MAVLink spec.

Signed-off-by: Julian Oes <julian@oes.ch>
2023-08-29 13:23:55 +02:00
Julian Oes 74b4902e50 mavlink: fix BATTERY_STATUS extension
The extension fields need to be 0 by default according to the MAVLink
spec. This is because extensions are 0 by default and need to be 0 when
unknown/unused for backwards compatibility.

The patch also simplifies the flow slightly in that it doesn't create a
temporary array but just fills in the cell voltages directly.

Signed-off-by: Julian Oes <julian@oes.ch>
2023-08-29 13:23:55 +02:00
Daniel Agar 0f260fc26c ekf2: gravity fusion don't use any accel samples that are clipping 2023-08-28 14:35:13 -04:00
Daniel Agar 2c76109a94 ekf2: drag fusion don't use any accel samples that are clipping 2023-08-28 14:35:13 -04:00
Beat Küng b485b1a12a drv_hrt: remove whitespace for operator ""
Fixes the clang error:
/__w/PX4-Autopilot/PX4-Autopilot/src/drivers/drv_hrt.h:297:35: fatal error: identifier '_s' preceded by whitespace in a literal operator declaration is deprecated [-Wdeprecated-literal-operator]
  297 | constexpr hrt_abstime operator "" _s(unsigned long long seconds)
2023-08-28 17:48:20 +02:00
Julian Oes ecbc5b83a0 kakute: disable some EKF2 features
To save flash.

Signed-off-by: Julian Oes <julian@oes.ch>
2023-08-28 13:20:00 +02:00
Julian Oes 9d97c7c5cb kakuteh7: use EKF2 by default
Signed-off-by: Julian Oes <julian@oes.ch>
2023-08-28 13:20:00 +02:00
Mathieu Bresciani 6a58f6c7dc Enable arbitrary euler angle for Mag rotation CAL_MAGx_{ROLL,PITCH,YAW}
- Enable arbitrary euler angle for Mag rotation
  - new CUSTOM rotation enum out of the normal enum range
 - mag_rot: automatically change to custom if euler rot is set
 - sensor_calibration: Magnetometer save custom rotation parameters
 - mag_cal: cross mention rotation parameters
  - This allows the user to see the RPY options when searching for the rotation parameter

---------

Co-authored-by: Junwoo Hwang <junwoo@auterion.com>
Co-authored-by: bresch <[brescianimathieu@gmail.com](mailto:brescianimathieu@gmail.com)>
Co-authored-by: Daniel Agar <daniel@agar.ca>
2023-08-26 14:52:39 -04:00
bresch 9551c1b614 ekf2: send global position if origin is set manually
Even if the aiding is local only, a valid global estimate can be sent as
long as we know the EKF's origin.
2023-08-26 14:48:49 -04:00
Silvan Fuhrer f1b5b4f524 TiltrotorEffectiveness: limit thrust axis tilt to z effectiveness scaling (#21990)
During transition to FF, only allow update thrust axis up to 45° as with a high tilt angle
the effectiveness of the thrust axis in z is apporaching 0, and by that is increasing
the motor output to max.
Transition to HF: disable thrust axis tilting, and assume motors are vertical. This is to avoid
a thrust spike when the transition is initiated (as then the tilt is fully forward).

Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2023-08-25 14:45:14 +02:00
alexklimaj 6faec7ab15 ARKV6X update rev 2 heater default temp id 2023-08-24 13:23:47 -04:00
Silvan Fuhrer 410206aa5d Control Allocation: fixes in yaw saturation detection for vehicles with tilt-for-yaw (#21994)
* ActuatorEffectiveness: base yaw saturation on tilt actuator limits (VTOL Tiltrotor)

* ActuatorEffectiveness: add custom yaw saturation for MC Tilt


---------

Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2023-08-24 13:58:58 +02:00
Silvan Fuhrer 0eb276f273 Tiltrotor: move spin up tilt to control allocation (#21991)
EffectivenessTiltrotor: link time when to tilt motors to MC position to COM_SPOOLUP_TIME
- remove VT_TILT_SPINUP and special spin up tilt handling form the VTOL module
- now handle the spoolup in the allocation, directly linked to COM_SPOOLUP_TIME
- leave tilts at disarmed value during spoolup

Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2023-08-24 13:57:24 +02:00
Daniel Mesham 86822171b9 Add SITL targets for Iris models with depth cameras 2023-08-22 11:50:29 -04:00
Beat Küng d4c7ea74ef refactor uxrce_dds_client: reduce amount of generated code for SendTopicsSubs
Reduces flash usage by ~4KB for current set of topics.
2023-08-21 20:56:08 -04:00
Beat Küng 8e1dd710a6 parameters: remove indentation from json output
Reduces parameters.json.xz by ~3KB on v5x.
2023-08-21 20:55:09 -04:00
Beat Küng 03365658d5 VehicleControlMode: add flag_control_allocation_enabled
Allows (external) modes to directly publish actuator_{motors,servos}.
2023-08-21 20:53:51 -04:00
Matthias Grob 22e613a24a commander_params: more precise COM_FAIL_ACT_T description
regarding RC stick override
2023-08-21 16:39:10 +02:00
Matthias Grob 0200ef9a60 Tools/auterion: add Skynode upload scripts (#21842) 2023-08-21 08:03:07 +02:00
Peter van der Perk 068b1494fc ucans32K146: fix pwm startup 2023-08-18 12:38:50 -04:00
bresch dbebe7d168 fw-atune: use same attitude P rule as for multirotors
The current rule was producing too high gains. Also constrain the value
using the prameter's limits.
2023-08-18 11:48:08 -04:00
bresch 759f91ba52 fw-atune: limit max test signal
Whe the P gain is high, the test signal is large too. However, it should
not exceed what is allowed from the max rate parameter.
2023-08-18 11:48:08 -04:00
Mathieu Bresciani 74a54b3b12 EKF2: improve resilience against incorrect mag data
- when GNSS is used require low mag heading innovations during
  horizontal acceleration (yaw observable) to validate the mag
- only fuse mag heading just enough to constrain the yaw estimate
  variance to a sane value. Leave enough uncertainty to allow for a
  correction when the yaw is observable through GNSS fusion
2023-08-17 09:55:15 -04:00
Silvan Fuhrer eaad11bb74 ActuatorEffectiveness: add comment for 2% magic number to stop motors
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2023-08-17 13:28:09 +02:00
Alex Klimaj 0914e7feaa new TDK IIM42653 IMU driver and ARKV6X Rev 2 2023-08-16 16:20:14 -04:00
Ludovic Vanasse 3a166247c1 Add condition for Iridium mode to not send params change after a time
In the mavlink_receiver code, after a while it will try to resend some
parameter update through the MAVLink instance. But for Iridium links
those are not a good idea. So this adds a condition that prevent the
sending if the MAVLink instance is in Iridium mode.

Related to issue #21496
2023-08-16 11:28:36 -04:00
Sverre Velten Rothmund b21ad6af14 multiple: Fix abs(int) usage on float values 2023-08-15 10:18:32 +02:00
alexklimaj 5f9443add4 ARK Jetson Carrier support 3rd power module 2023-08-14 10:41:44 -04:00
PX4 BuildBot 4fce159a2a Update submodule mavlink to latest Fri Aug 11 12:38:42 UTC 2023
- mavlink in PX4/Firmware (594d7743bab98001866a2f34e1cc835d5795fb3a): https://github.com/mavlink/mavlink/commit/e04677782ab086974be52104e27860fc760eff36
    - mavlink current upstream: https://github.com/mavlink/mavlink/commit/58435f6a83b7ba8b1be67d87264f19534a67857e
    - Changes: https://github.com/mavlink/mavlink/compare/e04677782ab086974be52104e27860fc760eff36...58435f6a83b7ba8b1be67d87264f19534a67857e

    58435f6a 2023-08-09 Hamish Willee - development.xml - remove mission_checksum (#2010)
048237b4 2023-08-02 Hamish Willee - Update Pymavlink - for Ava etc (#2025)
2023-08-11 09:48:45 -04:00
PX4 BuildBot cd015d30c8 update all px4board kconfig 2023-08-11 08:59:37 -04:00
PX4 BuildBot 28a34ef56c Update world_magnetic_model to latest Fri Aug 11 11:14:05 UTC 2023 2023-08-11 08:58:57 -04:00
Ville Juven 0cae33bf47 blockingqueue.hpp: Fix sem_wait not blocking if task is signaled
sem_wait() can be interrupted if the task receives a signal, however
the blockinglist implementation depends on blocking until the semaphore
can be obtained.
2023-08-11 07:44:10 +02:00
Jukka Laitinen c0084ab24d Fix maximum rotation value in GetBoardRotation()
Fix a memory overflow in case SENS_BOARD_ROT is set to Rotation::ROTATION_MAX (41) which is not a valid value

Signed-off-by: Jukka Laitinen <jukkax@ssrc.tii.ae>
2023-08-10 07:54:53 +02:00
Beat Küng ae70f9c640 attitude_estimator_q: disable ATT_ACC_COMP by default
Improves tracking in the CI test, and I always disabled it on my vehicles
as well.
2023-08-08 12:28:52 -04:00
Beat Küng 57297234e2 autopilot_tester: slower descend for fly_forward_in_offboard_attitude
As CI was sometimes failing
2023-08-08 12:28:52 -04:00
bresch 1f02d55103 ekf2: update change indicator
change caused by fixing the yaw variance increase calculation
2023-08-08 12:09:56 -04:00
bresch 39a83ab138 ekf2_test: test yaw variance after reset 2023-08-08 12:09:56 -04:00
bresch b6fb95247b ekf2_derivation: fix typo 2023-08-08 12:09:56 -04:00
bresch de702a2e63 ekf2: fix function to increase yaw variance 2023-08-08 12:09:56 -04:00
bresch 01fc4c3cf1 SquareMatrix: add functions to copy upper and lower triangle 2023-08-08 12:09:56 -04:00
Silvan Fuhrer 56dd1dc930 Navigator: Resume mission with last flight speed (#21714)
* Navigator: DO_CHANGE_SPEED: only store sinlge cruising_speed_current_mode

This stored cruising speed setpoint is reset on mode change and
after a VTOL transition.

* Navigator Mission: replay DO_CHANGE_SPEED items when resuming mission

* Navigator: remove cruising_speed_sp_update()

Speed changes in a mission are handled directly in the position controllers,
and no longer in Navigator.

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

---------

Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2023-08-08 13:22:05 +02:00
Beat Küng 02a6640000 fix uxrce_dds_client: apparently we cannot use the upper 4 bits for ID's 2023-08-08 10:59:34 +02:00
hskrieg 64c21ad428 uorb: allow for more than 255 uORB messages
Increased size for ORB_ID from uint8_t to uint16_t

Created a type: orb_id_size_t = uint16_t.
There are still a couple of places where the size
of the ORB_ID is assumed to be less than 16-bits.
The places that I have found are commented regarding
this and can be found with a search on orb_id_size_t.
2023-08-08 10:59:34 +02:00
Christian Rauch e9fbb9a3ab pca9685_pwm_out: add parameter PCA9685_RATE to set update frequency 2023-08-07 20:44:07 -04:00
Christian Rauch dce7149363 remove unused debug.h 2023-08-07 20:42:58 -04:00
Christian Rauch cab78593b4 BMI0xx: remove unused board_dma_alloc.h 2023-08-07 20:42:58 -04:00
Christian Rauch 638b18dd07 ADIS16497: replace NuttX specific up_udelay with HAL version px4_udelay 2023-08-07 20:42:58 -04:00
Christian Rauch b689082d97 enable common barometer, IMU and magnetometer 2023-08-07 20:42:58 -04:00
Christian Rauch a128517897 skip SSH key check for simpler builds in the Docker container 2023-08-07 20:42:58 -04:00
Dusan Zivkovic 29f352d49d px4-rc.simulator: set Gazebo coordinate frame reference (SIM_GZ_HOME_* params) from PX4_HOME_* env variables 2023-08-07 14:41:35 -04:00
bresch cd77d52dc1 ekf2: calcRotVecVariances using SymForce 2023-08-07 14:28:06 -04:00
Beat Küng 2d09ad55e3 omnibus/f4sd: disable urxce_dds_client and enable tools & load_mon 2023-08-04 11:27:31 -04:00
Beat Küng 0277a6486f mavsdk_tests: add offboard attitude test & run with Q estimator 2023-08-04 11:27:31 -04:00
Daniel Agar d75bb62a65 ekf2: separate mag and mag heading control logic (#21212)
- split mag_3d into new standalone mag fusion and mag fusion allowed to update all states (full mag_3d)
 - new dedicated control logic for mag/mag_3d fusion and standalone mag heading fusion
 - if WMM available use for mag_I and mag_B init
 - mag states reset if external yaw reset (yaw estimator, GPS yaw, etc)
 - mag reset if declination changed (eliminate _mag_yaw_reset_req)
 - mag fusion (but not mag_hdg or mag_3d) can be active during gps_yaw or ev_yaw (if yaw aligned north)

Co-authored-by: bresch <brescianimathieu@gmail.com>
2023-08-04 10:39:16 -04:00
alexklimaj 7db667558e ARK RTK GPS support baro on I2C bus 1 instead of 2 2023-08-03 20:48:01 -04:00
Roman Dvorak 1feb79f27f update gps submodule 2023-08-03 10:27:34 -04:00
Daniel Agar 95b3005679 lib/world_magnetic_model: add constants for min/max/mean/median field strength
- add geo_magnetic_tables.hpp comments for blackout zone warnings
 - reduce unnecessary precision in generated tests (should reduce future update noise)
 - update copyright year
2023-07-28 17:14:25 -04:00
Daniel Agar 88e7452492 commander: collapse ArmStateMachine and simplify
- simplify vehicle_status.arming_state down to just armed and disarmed
    - ARMING_STATE_INIT doesn't matter
    - ARMING_STATE_STANDBY is effectively pre_flight_checks_pass
    - ARMING_STATE_STANDBY_ERROR not needed
    - ARMING_STATE_SHUTDOWN effectively not used (all the poweroff/shutdown calls loop forever in place)
    - ARMING_STATE_IN_AIR_RESTORE doesn't exist anymore
 - collapse ArmStateMachine into commander
     - all requests already go through Commander::arm() and Commander::dismarm()
 - other minor changes
     - VEHICLE_CMD_DO_FLIGHTTERMINATION undocumented (unused?) test command (param1 > 1.5f) removed
     - switching to NAVIGATION_STATE_TERMINATION triggers parachute command centrally (only if armed)

---------

Co-authored-by: Matthias Grob <maetugr@gmail.com>
2023-07-28 17:12:01 -04:00
Daniel Agar 84b6b472b4 ekf2: change delta angle and delta velocity bias states to accel and gyro bias (#21901)
* ekf2-test: remove outdated codegen comparison

The definition of states changed so the comparison with the old
derivation cannot work anymore.

---------

Co-authored-by: bresch <brescianimathieu@gmail.com>
2023-07-28 09:31:44 -04:00
Daniel Agar 444e5d2d4a boards: px4_fmu-v5_debug readd systemcmds/sd_stress 2023-07-27 14:48:41 -04:00
Silvan Fuhrer c0d9e2ac7a commander: add warning for imminent navigation failure
Some system are able to dead-reckon for a while after losing GPS or
other sources providing positional feedback. If the estimated position
error grows above the failsafe threshold, the system enters a failsafe
mode. As the position error estimate is growing linerly over time, and
it is recommended to take action before entering the failsafe, we here
warn the user about the imminent failsafe and propose to take manual
control.

---------

Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2023-07-27 14:12:04 -04:00
PX4 BuildBot 5f94eb1493 Update submodule sitl_gazebo-classic to latest Thu Jul 27 12:39:07 UTC 2023
- sitl_gazebo-classic in PX4/Firmware (1c1f8da7d9): https://github.com/PX4/PX4-SITL_gazebo-classic/commit/c8ac7ff39b694832a3eee6ab568058c145f42c6f
    - sitl_gazebo-classic current upstream: https://github.com/PX4/PX4-SITL_gazebo-classic/commit/20ded0757b4f2cb362833538716caf1e938b162a
    - Changes: https://github.com/PX4/PX4-SITL_gazebo-classic/compare/c8ac7ff39b694832a3eee6ab568058c145f42c6f...20ded0757b4f2cb362833538716caf1e938b162a

    20ded07 2023-07-21 Silvan Fuhrer - wind pluging: fix wind ramp (#998)
6620a6b 2023-07-20 Silvan Fuhrer - wind plugin: add option to simulate a constant wind change with ramp up (#996)
2023-07-27 12:58:59 -04:00
Julian Oes 42bdfe0fb2 boards: px4/fmu-v5 move some test commands to test config
I would expect anyone using these test commands can just use the test config instead.

Signed-off-by: Julian Oes <julian@oes.ch>
2023-07-27 10:36:03 -04:00
Daniel Agar e468798e91 Update world_magnetic_model to latest Thu Jul 27 11:14:06 UTC 2023
Co-authored-by: PX4 BuildBot <bot@px4.io>
2023-07-27 10:34:11 -04:00
Daniel Agar d928a3a8d0 Update submodule GPSDrivers to latest Thu Jul 27 12:39:18 UTC 2023 (#21897)
- GPSDrivers in PX4/Firmware (9762316d8a0a84b5cb8563ab4c289416421d2801): https://github.com/PX4/PX4-GPSDrivers/commit/261480cb78a3ba60cdda2dcc95b874ebc2c9312c
    - GPSDrivers current upstream: https://github.com/PX4/PX4-GPSDrivers/commit/b94378bcbbf3339670bda1f97820d6335f6937f5
    - Changes: https://github.com/PX4/PX4-GPSDrivers/compare/261480cb78a3ba60cdda2dcc95b874ebc2c9312c...b94378bcbbf3339670bda1f97820d6335f6937f5

    b94378b 2023-07-26 Eric Katzfey - Fixing UBlox M10 support

Co-authored-by: PX4 BuildBot <bot@px4.io>
2023-07-27 10:33:22 -04:00
PX4 BuildBot 37a6ac5c93 Update submodule mavlink to latest Thu Jul 27 12:39:22 UTC 2023
- mavlink in PX4/Firmware (3476e500bf5baa837314e09ff29deeabb719071b): https://github.com/mavlink/mavlink/commit/e47dfbb4b7e37696971e45f8ae91ed3a8986ff13
    - mavlink current upstream: https://github.com/mavlink/mavlink/commit/e04677782ab086974be52104e27860fc760eff36
    - Changes: https://github.com/mavlink/mavlink/compare/e47dfbb4b7e37696971e45f8ae91ed3a8986ff13...e04677782ab086974be52104e27860fc760eff36

    e0467778 2023-07-27 JaeyoungLim - Clarify SET_ATTITUDE_TARGET quaternion field (#2020)
2023-07-27 10:32:27 -04:00
PX4 BuildBot a3a19da651 update all px4board kconfig 2023-07-27 10:24:10 -04:00
Beat Küng 351a9050c3 commander: update param description for COM_MOT_TEST_EN 2023-07-27 09:39:24 -04:00
Ayham Alharbat 1c1f8da7d9 add a gz-omnicopter model (#21818)
* [not-working] add a gz-omnicopter model

* Fix axis directions on omnicopter model

The omnicopter joint axis directions had to be adapted for sdf 1.9 as it has different conventions for joint axis definitions.

* include model from gz-fuel & remove mesh files

* Fix omnicopter model using fuel

---------

Co-authored-by: Jaeyoung Lim <jalim@ethz.ch>
2023-07-27 11:34:27 +02:00
Konrad e4111a03bf mavlink-mission: Initialize the safepoint and mission counter from the dataman state.
If at the last powercycle one mission was uploaded, the counter in dataman was 1. On the next powercycle the mavlink mission counter was reset to zero and on first mission upload updated to 1 again. Other modules check, if the mission was changed based on the counter, like the mission.cpp loaded the mission counter from the dataman. On a new mission, the comparison of the counters failed, because both were the same value even if the mission was completely different.
2023-07-27 07:21:29 +02:00
Konrad aa2c47a56b mission: On an updated mission, don't assume per default that the mission is not valid, use the state from the last mission validation. 2023-07-27 07:21:29 +02:00
Daniel Agar 82962acd5c sensors/vehicle_magnetometer: add mag calibration PX4_DEBUG output 2023-07-26 12:42:51 -04:00
Daniel Agar d65ddbf810 simulation/sensor_gps_sim: lower GPS velocity variance
- for a multicopter EKF2 default required GPS speed accuracy is 0.5 m/s
2023-07-26 12:42:18 -04:00
Beniamino Pozzan b9667e955d [uxrce-dds-client]: add parameter to disable time synchronization between Agent and Client
Signed-off-by: Beniamino Pozzan <beniamino.pozzan@phd.unipd.it>
2023-07-26 09:16:29 -04:00
Daniel Agar 56b59dc155 Revert "jenkins ci: listener topic list update"
This reverts commit 190371c6ee.
2023-07-25 18:39:28 -04:00
bresch 30d8df7001 mag_check: fix param type 2023-07-25 11:21:05 -04:00
bresch 99309625e8 preflt-chk: report strength and inclination failure values 2023-07-25 11:21:05 -04:00
Daniel Agar 19d6e69b0b ekf2: allow yaw estimator to perform yaw alignment
This can be useful if using a full EV + GNSS setup and you start indoors, then fly outside. Once GPS is good and the only missing requirement is yaw alignment the yaw estimator reset is performed and EV yaw will automatically stop itself.
2023-07-25 10:58:45 -04:00
Daniel Agar 6d4ec4e623 Jenkinsfile-compile increase timeout 2023-07-25 10:56:45 -04:00
bresch beb5fc5eb6 ekf-checks: set min and max values for required/failsafe eph 2023-07-24 15:10:07 -04:00
bresch 30bfe0d379 ekf2: remove artificial constraint on position uncertainty growth
There is no reason to contrsain the position uncertainty, estpecially
when flying with velocitiy aiding only.

Note that all the variances are already contrained to sane values at the
end of the covariance prediction
2023-07-24 15:10:07 -04:00
Daniel Agar 1ef9ee7622 ekf2: simplify fuseYaw() signature and use consistently
- make it safe to call for other aid sources, no EKF state is changed unless fusion_enabled
2023-07-24 10:34:00 -04:00
Daniel Agar 01bcc47fb1 ekf2: apply yaw reset to vision attitude error filter
- set vision attitude error filter uninitialized if vision data stops
 - ev error filter is only compiled when ev config is selected

Co-authored-by: bresch <brescianimathieu@gmail.com>
2023-07-24 10:32:33 -04:00
bazooka Joe 190371c6ee jenkins ci: listener topic list update 2023-07-24 10:27:48 -04:00
Junwoo Hwang e626f8666c Geofence: Disable pre-emptive geofence predictor by default (#21657)
Co-authored-by: Hamish Willee <hamishwillee@gmail.com>
2023-07-24 10:25:31 -04:00
bresch a95c11d48a ekf2-test: add test for inclination of mag earth field 2023-07-24 10:16:37 -04:00
bresch 72be724b86 ekf2: log mag inclination and strength for tuning 2023-07-24 10:16:37 -04:00
bresch 357bf024f6 ekf2-mag: add inclination check 2023-07-24 10:16:37 -04:00
bresch e4a16bfc80 ekf2-mag: rework mag strength check 2023-07-24 10:16:37 -04:00
Daniel Agar e878d0c0ef Jenkinsfile-compile fix invalid boards 2023-07-24 09:50:54 -04:00
Beat Küng 8e8b35dadf px4/fmu-v6x: disable batt_smbus for now to reduce flash 2023-07-24 13:10:31 +02:00
Beat Küng 133aeb10a6 mision: only run mission feasibility checks when mission updated
Instead of also when geofence/safe points updated.
This prevents reporting multiple times.
2023-07-24 13:10:31 +02:00
Beat Küng 72955221cb fix dataman: treat 0 as valid return for read & ensure to init buffer
This can happen e.g. when the item is cleared.
2023-07-24 13:10:31 +02:00
Beat Küng 9aa355a08c HIL: add --ignore-stdout-errors to run_nsh_cmd.py and use for 'tests dataman'
As this test is expected to contain errors.
2023-07-24 13:10:31 +02:00
Beat Küng 5c73d24765 boards/px4/fmu-v5/test: disable modules to reduce flash 2023-07-24 13:10:31 +02:00
Beat Küng 05a5bbe120 boards/diatone/mamba-f405-mk2: disable modules to reduce flash 2023-07-24 13:10:31 +02:00
Beat Küng ebd64bfab6 navigator: defer saving mission until disarmed
Avoids unnecessary dataman accesses
2023-07-24 13:10:31 +02:00
Beat Küng 16a144c00f navigator: use mission topic to notify about geofence & safe point changes
This avoids the need to regularly access dataman for checking.
2023-07-24 13:10:31 +02:00
Igor Mišić de598f3e7e ci: allow tests dataman to pass
tests dataman will trigger errors and run_nsh_cmd.py
 is not written to detect only when a test fails. This is properly tested with run_tests.py
2023-07-24 13:10:31 +02:00
Igor Mišić 3d6c376b47 dataman: add guards for max item value 2023-07-24 13:10:31 +02:00
Igor Mišić 904f18f409 boards: remove camera capture and trigger from test builds 2023-07-24 13:10:31 +02:00
Igor Mišić b6b32c5a94 dataman: update compat version
A version update is needed since the dataman is showing errors if data doesn't exist or if it is wrongly stored. This will force default data to be initialized.
2023-07-24 13:10:31 +02:00
Igor Mišić 92fc13d928 GeofenceBreachAvoidanceTest: bug fix 2023-07-24 13:10:31 +02:00
Igor Mišić 57f11c8149 dataman: add perf_counter 2023-07-24 13:10:31 +02:00
Igor Mišić c40a38bd88 dataman: remove locking mechanism 2023-07-24 13:10:31 +02:00
Igor Mišić 3143f6bd0a mavlink_mission & mission: move dataman update to mission 2023-07-24 13:10:31 +02:00
Igor Mišić 55d8adb35b mavlink_mission: remove locking mechanism 2023-07-24 13:10:31 +02:00
Igor Mišić d5ecfe0efe dataman_client: increase px4_poll timeout to 100_ms 2023-07-24 13:10:31 +02:00
Igor Mišić d1b660b104 rtl: integrate dataman cache 2023-07-24 13:10:31 +02:00
Igor Mišić 4038eeec3e geofence: integrate dataman cache 2023-07-24 13:10:31 +02:00
Igor Mišić e14216c6c7 dataman_client: prevent loading duplicates in the cache 2023-07-24 13:10:31 +02:00
Igor Mišić 80409672b1 mission: integrate dataman cache 2023-07-24 13:10:31 +02:00
Igor Mišić 6453a1c311 datamanClient: add Doxygen documentation for the API. 2023-07-24 13:10:31 +02:00
Igor Mišić 1e49eb419d datamanClient: add DatamanCache class 2023-07-24 13:10:31 +02:00
Igor Mišić e6cc3d0118 datamanClient: add async functions 2023-07-24 13:10:31 +02:00
Igor Mišić 208552fdab dataman: add DatamanClient with sync functions
Rework of dataman
2023-07-24 13:10:31 +02:00
Igor Mišić c67af1479f dataman: refactoring _file_initialize
clear dataman file and init initial value on creation
2023-07-24 13:10:31 +02:00
Igor Mišić 7563ddd91f navigator: increase stack size by 208 bytes 2023-07-24 13:10:31 +02:00
Igor Mišić 05f5ab7988 simulator_sih: increase stack size by 310 bytes 2023-07-24 13:10:31 +02:00
bresch eb9bcb0c28 update EKF2 change indicator
There is some actual changes because the earth mag field states are now
reset using the WMM when available. In the replay log, the measured mag
field does not match the WMM and this is why there is a large diff. It
is however more correct now than before.
2023-07-24 09:52:52 +02:00
bresch 99824c445c ekf2: add unit test for earth mag field reset to WMM 2023-07-24 09:52:52 +02:00
Daniel Agar c8738e3a0d ekf2: mag control cleanup mag reset 2023-07-24 09:52:52 +02:00
Daniel Agar 57b3c26ab0 Tools/simulation/gz: load ApplyLinkWrench plugin by default (#21874)
- this can be useful for applying arbitrary forces via ignition transport like hand launching a vehicle by throwing it in the air
2023-07-23 11:05:51 -04:00
bresch 1d96de5cf6 ekf2: add more unit tests for GNSS stopping control logic 2023-07-21 14:53:58 -04:00
Theotime Balaguer e195a3c0c6 fix issue #21727 2023-07-21 13:13:56 +02:00
Jukka Laitinen 485ec14246 px4_init.cpp: Properly check the return value of mounting procfs
Signed-off-by: Jukka Laitinen <jukkax@ssrc.tii.ae>
2023-07-21 07:30:15 +02:00
Matthias Grob 6889443bd7 temperature_compensation: use snprintf instead of sprintf
because sprintf is deprecated on MacOS
and CI fails with warning -> error:

'sprintf' is deprecated: This function is
provided for compatibility reasons only.
Due to security concerns inherent in the
design of sprintf(3), it is highly
recommended that you use snprintf(3) instead.
2023-07-20 13:18:45 +02:00
Junwoo Hwang a37e3e7b06 Compile Targets Actions: Buildalso on stable, beta, release branches (#21866) 2023-07-19 19:17:04 +02:00
Matthias Grob ce8dd2ba48 deploy_all: add git ownership workaround
See
a6d2c2cf5e
2023-07-19 19:09:13 +02:00
Matthias Grob 0c2a8266bc CI: use the same container versions consistently
I updated all versions to the newest one that's used anywhere.
Then at least the straing can be found with full text search.
It's another step towards understanding and unifying the CI environment.
2023-07-19 07:46:45 -07:00
Matthias Grob 39ab1f5809 generate_board_targets: use current version of each container
to consistently use container versions and fix the beaglebone build
in metadata deployment CI.
2023-07-19 07:46:45 -07:00
Matthias Grob 013856fac1 generate_board_targets: explicitly specify build containers
in order to have the right container version for each toolchain
currently for the metadata deployment GitHub actions build.
2023-07-19 07:46:45 -07:00
Daniel Agar ec9dce2e89 Update world_magnetic_model to latest Tue Jul 18 11:14:09 UTC 2023
* Update world_magnetic_model to latest Tue Jul 18 11:14:09 UTC 2023
* [AUTO COMMIT] update change indication


Co-authored-by: PX4 BuildBot <bot@px4.io>
2023-07-18 14:29:08 -04:00
PX4 BuildBot 70826c5af4 update all px4board kconfig 2023-07-18 14:28:21 -04:00
PX4 BuildBot db591f25a6 boards: update all NuttX defconfigs 2023-07-18 14:27:37 -04:00
PX4 BuildBot 3f1740cb46 Update submodule sitl_gazebo-classic to latest Tue Jul 18 17:04:39 UTC 2023
- sitl_gazebo-classic in PX4/Firmware (a3f398943e): https://github.com/PX4/PX4-SITL_gazebo-classic/commit/0d53638452e6da4371c12599e1a649608361811e
    - sitl_gazebo-classic current upstream: https://github.com/PX4/PX4-SITL_gazebo-classic/commit/c8ac7ff39b694832a3eee6ab568058c145f42c6f
    - Changes: https://github.com/PX4/PX4-SITL_gazebo-classic/compare/0d53638452e6da4371c12599e1a649608361811e...c8ac7ff39b694832a3eee6ab568058c145f42c6f

    c8ac7ff 2023-07-18 Martina Rivizzigno - Add gimbal device id to mavlink messages DeviceAttitudeStatus and DeviceInformation (#994)
2023-07-18 14:26:35 -04:00
Daniel Agar b4687c27fe Jenkinsfile-compile board updates 2023-07-18 13:53:32 -04:00
Ramon Roche a3f398943e ci: update macos runner 2023-07-18 11:45:41 -04:00
Martina Rivizzigno 7f78ae449a update submodule mavlink to latest Thu Jul 6 10:14:36 2023
* remove MAV_PROTOCOL_CAPABILITY_SET_ACTUATOR_TARGET because removed from message def Auterion/mavlink@1c9949e
2023-07-18 11:37:32 -04:00
Beat Küng 8b780f2a96 airframes/x500_v2: move motors from AUX to MAIN 2023-07-18 11:13:16 -04:00
henrykotze b405a1aa49 advertise esc_status where is publishes
- esc_status is an optional logging topic resulting in it not being
logged if it doesn't get advertise -> Add advertise where applicable
2023-07-18 09:23:36 +02:00
Daniel Agar 45968c614e airspeed_selector: fix aspd typos 2023-07-17 20:37:46 -04:00
Daniel Agar c0a56ce268 airspeed_selector: fix groundspeed typos 2023-07-17 20:37:46 -04:00
bresch f5fd369ce8 [AUTO COMMIT] update change indication 2023-07-17 13:43:18 +02:00
bresch 1128ada90a ekf2: use correct AlphaFilter for 3D rotations 2023-07-17 13:43:18 +02:00
bresch 15bb8c0f2e AlphaFilter: add unit tests for Rot3 filtering 2023-07-17 13:43:18 +02:00
bresch c6aa82441f AlphaFilter: add quaternion specialization
Filtering 3D rotations require special care as they live on a curved space.
2023-07-17 13:43:18 +02:00
Silvan Fuhrer 88c5565a29 Commander: remove COM_ARM_ARSP_EN
Since we changed the threshold for allowing arming from TRIM/2 to AIRSPEED_MAX
is is very unlikely that one needs to disable this check.

Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2023-07-17 10:35:02 +02:00
Silvan Fuhrer decf1ac0a8 Commander/Nav params: clean up descriptions
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2023-07-17 10:35:02 +02:00
Silvan Fuhrer 351f2a8287 VTOL: remove VT_B_DEC_FF
Experience from tuning different VTOL backtransitions showed only having a
I controller is beneficial over a combined FF/I breaking controller.

Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2023-07-17 10:35:02 +02:00
Silvan Fuhrer 8fe5ce4f65 VTOL: param description clean up
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2023-07-17 10:35:02 +02:00
Beat Küng 327b7e611e boards/px4/fmu-v5/test: disable modules to reduce flash 2023-07-14 07:51:01 +02:00
Beat Küng 4a18baa4bd boards/mamba-f405-mk2: disable ekf components to reduce flash 2023-07-14 07:51:01 +02:00
Matthias Grob 83b832fdce ManualControl: fix case where mode switches unintentionally in air
Case: A vehicle is already operating but has no stick input or another
source than RC. When RC stick input is switched to either because it gets
first time available or as a fallback to joystick then the mode was
immediately changed to the switch position. This can lead to loss of
control e.g. when the vehicle is flying far away and the
mode switch of the RC is in some fully manual piloted mode.

I added tests to cover the cases where RC mode initialization is expected
and also unexpceted because the vehicle is already armed.
2023-07-13 12:00:35 +02:00
Matthias Grob 2235c40e28 ManualControl: add functional test for switch behavior
Using the established interface processInput() function.
2023-07-13 12:00:35 +02:00
Matthias Grob 877f37d79e ManualControlSelector: add parentheses in condition for clarity 2023-07-13 12:00:35 +02:00
Matthias Grob b19b0d0163 ManualControl: separate switches logic function + reset fix
Fix the previous switches initialized flag getting reset when no RC was
present or in use. This was found during functional testing.
2023-07-13 12:00:35 +02:00
Matthias Grob 3b2b60adde ManualControl: put input processing in separate testable function 2023-07-13 12:00:35 +02:00
Matthias Grob 8dc73c4621 ManualControl: correct manual control input subscription name 2023-07-13 12:00:35 +02:00
Matthias Grob 258fc786dc ManualControl: put parameter update into separate function 2023-07-13 12:00:35 +02:00
Matthias Grob 17535c288c ManualControl: correct CMake module definition
modules__ instead of module__ prefix
The module depends on the hysteresis library and probably because
it compiles with the still prevalent global includes the dependency
is not declared.
2023-07-13 12:00:35 +02:00
Matthias Grob 632596c1ea FlightTask: correct header comments 2023-07-13 12:00:35 +02:00
Matthias Grob 618724b409 Functional gtests: remove unnecessary subscription updates
A new subscription is updated on instanciation and no additional
update needs to be called for processing the first sample.
2023-07-13 12:00:35 +02:00
Sergei Grichine f000238987 SensorGps.msg: switch to double precision for lat/lon/alt
To match https://github.com/PX4/PX4-GPSDrivers/pull/132 - adding high precision RTK lat/lon/alt components
2023-07-13 07:50:09 +02:00
henrykotze f82785a322 CAN Filters for STM32H7 & bus-off handling 2023-07-12 11:56:37 -04:00
Loic Fernau f8c9be087b drivers: rework NXP UWB driver (#21124)
* UWB driver rework that uses 2 UWB MKBoards - 1 as Controller (Initiator), one as Controllee (Anchor)

Co-authored-by: NXPBrianna <108274268+NXPBrianna@users.noreply.github.com>
2023-07-12 11:44:23 -04:00
Matthias Grob 715a1ff701 Jenkins, docker_run.sh: use Debian 11 armhf container
also for the other linux target builds. It's a follow up to
e5503480e3
I wasn't aware that there are multiple different
container versions used for almost the same build.
2023-07-11 17:49:36 +02:00
bresch 9ebfed010f mag_cal: increase uncertainty of calibration parameters
in air bias estimation is usually really accurate and should be weighted
more heavily compared to the calibration parameters that are often
more approximate given the worse magnetic environment near the ground.
2023-07-11 11:33:53 -04:00
bresch 9e2e888f5e ekf2-bias_cal: reduce required stability period
For the mag, 30s of bias learning is a lot, given that it is only active
during turns and that it usually converges in < 5 seconds
2023-07-11 11:33:53 -04:00
bresch 2f52926972 mag_cal: fix mag bias estimate to mag cal
- since last_us is set to 0 every time the bias is not observable, the
  total time was also reset -> needed 30 consecutive seconds in mag 3D
  to be declared "stable"
- after landing, the mag_aligned_in_flight flag is reset. Using this for
  bias validity makes it invalid before we have a chance to save it to
  the calibration.
2023-07-11 11:33:53 -04:00
alexklimaj 69aa8689c0 Revert "rover_pos_control: thrust normalization for joystick input (#20885)"
This reverts commit 22f7d913bd.
2023-07-11 08:25:50 -07:00
bresch f5edff2647 ekf2 - preflt checks: scale flow innovation checks
Opt flow raw innovations can be really large on ground due to the small
distance to the ground (vel = flow / dist). To make the pre-flight check
more meaningful, scale it with the current distance.
2023-07-11 08:18:32 -07:00
bresch 672b29d555 ekf2: report dist bottom also when using flow for terrain
Terrain height can be estimated using a range finder and/or optical flow
2023-07-11 08:18:32 -07:00
alexklimaj 03528a6200 Add EKF2_OF_QMIN_GND to handle 0 optical flow quality when on ground 2023-07-11 08:18:06 -07:00
alexklimaj bca0be47bc Apply code review changes from @dagar 2023-07-11 08:18:06 -07:00
Eric Katzfey 9511248514 Removed the huge HAGL fuse timeout increase 2023-07-11 08:18:06 -07:00
Eric Katzfey f5d9ac4526 Cleaned up some comments and debug code 2023-07-11 08:18:06 -07:00
mjturi-mai 56c794108d actual fixes for velocity estimate errors and bad rng fusion 2023-07-11 08:18:06 -07:00
Matthias Grob 2dcb525cd9 RCUpdateTest: RC switch correct corner case test value
Co-authored-by: Junwoo Hwang <junwoo091400@gmail.com>
2023-07-11 15:58:48 +02:00
Matthias Grob 42fa41e601 rc_update: fix on-off-switch with negative threshold values 2023-07-11 15:58:48 +02:00
Matthias Grob 1fa5136e30 RCUpdateTest: add unit test for return switch 2023-07-11 15:58:48 +02:00
Matthias Grob 392d445783 RCUpdateTest: fix unit test parameters + restoring state after test
Channel values stay over one unit test but some tests assumed they are
reset each time. Reset the channel after these mode button tests.

Parameters survive between unit tests presumably as long as
the bianry runs. Reset them if a test requires that.
2023-07-11 15:58:48 +02:00
Matthias Grob e127ada07b rc_update: extend ModuleParams::updateParams() for local parameter updates 2023-07-11 15:58:48 +02:00
Matthias Grob 87c697a0d6 rc_update: switch back to protected scope and use fixture for testing 2023-07-11 15:58:48 +02:00
Silvan Fuhrer 81764c43a1 EKF2: use timestamp from argument of PublishEvPosBias() (#21822)
* EKF2: use timestamp from argument of PublishEvPosBias()

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

* Update src/modules/ekf2/EKF2.cpp

Co-authored-by: Mathieu Bresciani <brescianimathieu@gmail.com>

---------

Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
Co-authored-by: Mathieu Bresciani <brescianimathieu@gmail.com>
2023-07-11 11:07:39 +02:00
Matthias Grob 02ab5e0704 drv_pwm_output: remove unused PWM_ defines 2023-07-10 18:58:37 +02:00
Matthias Grob e776aca9ef UUV: stop motors when commanding zero speed 2023-07-10 18:58:37 +02:00
Matthias Grob 6b7aed3d44 Boats: stop motors when commanding zero speed 2023-07-10 18:58:37 +02:00
Matthias Grob 95a35c972d Rovers: stop motors when commanding zero speed 2023-07-10 18:58:37 +02:00
Matthias Grob 0be6069b83 TiltrotorVTOL: allow stopping front tilted motors in fast forward flight 2023-07-10 18:58:37 +02:00
Matthias Grob 66b451e61f TailsitterVTOL: allow explicitly stop forward motor with zero thrust 2023-07-10 18:58:37 +02:00
Matthias Grob 5568afbb12 StandardVTOL: explicitly stop forward motor with zero thrust 2023-07-10 18:58:37 +02:00
Matthias Grob 6b7b34a71a FixedWing: explicitly stop forward motor with zero thrust
This allows PWM and all other output methods to configure
stopped, idling and full thrust points and use them consistently.
The fact that a fixed wing motor can be stopped when zero thrust
is demanded is explicit and could in principle even be disabled.
The mechanism is the same as for a standard VTOL stopping the
multicopter motors in the fixed wing flight phase.
2023-07-10 18:58:37 +02:00
Matthias Grob 2a077181d9 ActuatorEffectiveness: add function to delectively stop motors with zero thrust 2023-07-10 18:58:37 +02:00
Matthias Grob a8bf47e606 Set default minimum and maximum PWM for motors
This allows to consistently define:
Motor stopped - disarmed PWM
Motor idling - minimum PWM
Motor at full thrust - maximum PWM

Any allocation can then distinctly decide if
a motor should be running or not depending
on the context and also explicitly command that.
2023-07-10 18:58:37 +02:00
xianglunkai 646f711b1a fake_magnetometer: add dpends=fake_magnetometer 2023-07-06 22:43:13 -04:00
Beat Küng 0d6cb46c83 lightware_laser_i2c: add SF30/D 2023-07-06 22:42:39 -04:00
bresch afa085da7f geofence: fix altitude change fence check
When asking for an altitude change only, the current position needs to
be used, otherwise the geofence check is be skipped
2023-07-06 22:39:39 -04:00
Julian Oes 745fa3720e fmu-v6x: build battery status
This is required to process data from the ADS1115 ADC and enables the
params BATx_I_CHANNEL and BATx_V_CHANNEL.

Testing is required whether this actually works on Pixhawk 6X though.

Signed-off-by: Julian Oes <julian@oes.ch>
2023-07-07 13:40:58 +12:00
Vincent Poon e18da100ed Add ADC_ADS1115 Parameter to FMUv6x Default Build
Adding ADC_ADS1115 Parameter to FMUv6x Default Build to allow FMUv6X user to use ADS1115 with Analog Power Modules.
2023-07-07 13:40:58 +12:00
Antonio Sanjurjo C c1cb48c2ea EKF2 cleanup. Use MAX_NUM_x constants instead of hard-coded numbers
Signed-off-by: Antonio Sanjurjo C <74329840+antonio-sc66@users.noreply.github.com>
2023-07-06 09:36:27 +02:00
Patrick José Pereira 39e04d9712 lib: matrix: SquareMatrix: Deal with the special case of M=1
Signed-off-by: Patrick José Pereira <patrickelectric@gmail.com>
2023-07-06 08:24:33 +02:00
Patrick José Pereira 724f5a97a9 platform: posix: px4: Add missing ctsdint include for uint8_t
Signed-off-by: Patrick José Pereira <patrickelectric@gmail.com>
2023-07-06 08:24:33 +02:00
Julian Oes a6502c9f2b ROMFS: auto try RGBLED is31fl3195
This is required to auto-start the is31fl3195 driver if connected.

Signed-off-by: Julian Oes <julian@oes.ch>
2023-07-05 20:49:39 +12:00
Thomas Stastny dccfcb85c1 (Mission) FeasibilityChecker: remove duplicate line 2023-07-04 11:17:23 +02:00
Silvan Fuhrer a617e9c54b Navigator RTL: run find_RTL_destination() only on_inactive
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2023-07-04 09:36:22 +02:00
Silvan Fuhrer f275085e84 Navigator: Loiter: always establish new Loiter with center at current pos
When switching into Hold mode establish a Loiter around current position,
even if we were before already loitering (eg in Mission mode).

Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2023-07-04 09:35:40 +02:00
Mathieu Bresciani 288e3ae74a EKF2: vision attitude error filter (#21791)
* ekf2-ev: filter q_error for frame correction
* ekf2: filter EV attitude error centrally
2023-07-03 11:13:59 -04:00
Andrew Brahim 24665f10f2 VL53L1X: fix scheduling (#21787)
* should be 50 Hz instead of 50,000 Hz

Signed-off-by: dirksavage88 <dirksavage88@gmail.com>
2023-07-03 10:49:53 -04:00
Matthias Grob a36c922fc0 ActuatorEffectivenessHelicopterTest: adapt to new constructor 2023-07-03 16:21:27 +02:00
Beat Küng 77d6c722a7 helicopter: add tail servo support
as a separate CA_AIRFRAME, as the UI cannot switch between servo/motor.
2023-07-03 16:21:27 +02:00
Beat Küng bae413a332 v6x: start mavlink on TELEM2 for skynode
Equivalent to v5x
2023-07-03 16:20:41 +02:00
Igor Mišić abe0ca1307 boards/holybro/kakutef7: enable gps, osd, top, dmesg. Disable uxrce_dds 2023-07-03 11:22:33 +02:00
Igor Mišić f5193bb155 boards/holybro/kakutef7: enable rc serial singlewire 2023-07-03 11:22:33 +02:00
Igor Mišić 2307d4aa22 boards/holybro/kakutef7: remove px4_platform_config
kakutef7 doesn't use manifest
2023-07-03 11:22:33 +02:00
Harrison Gieraltowski 018ec97c41 mavlink_log_handler: handle _next_entry (#21784) 2023-07-03 10:30:07 +02:00
Igor Mišić bfa72a1bee rc.board_arch_defaults: add the silent flag for EKF2_MULTI_IMU 2023-07-03 10:08:26 +02:00
Matthias Grob b7e2a9c320 FlightTaskAltitude: remove duplicate, deprecated yaw stick handling 2023-07-03 09:52:47 +02:00
Matthias Grob 4d465533b5 FlightTaskManualAcceleration: remove duplicate yaw stick handling
It's already instanciated and ran by FlightTaskManualAltitude
which FlightTaskManualAcceleration inherits from.
2023-07-03 09:52:47 +02:00
Matthias Grob 03183ccacf mc_pos_control_params: remove forgotten trailing zeroes 2023-07-03 09:52:47 +02:00
Junwoo Hwang 0196241c10 stale action: Configure again (#21785)
Having newline between I think didn't apply the PR stale days setting of
30 properly (it was using 45)

And it seemd that unless I set the days-before-close to -1
intentionally, it would still close the Issue/PRs, as the default value
is 7 already.

Also updated version of the stale action to v8
2023-06-30 19:12:16 +02:00
Junwoo Hwang 3557644010 Stale action re-configure (still just debug mode) (#21783)
* Remove old stale bot yaml file

* Remove slack svg file (unused)

* Stale action: Only apply stale label, and no other actions

Respecting the opinion on
https://github.com/PX4/PX4-Autopilot/commit/fa9ac6ecf651232f3105ca124a2d2c54ab8620d0,
it seems reasonable to disable commenting feature, and just keep the
action only applying the `stale` label. This will reduce the noise /
email spams / ping pong fight with the stale bot (Action)
2023-06-30 17:18:43 +02:00
Junwoo Hwang 46b09acf0b Update Issue templates (#21779)
- Remove unnecessary text rendering, which made clicking log links
  harder
- Re adjust markdown elements to make it easier to read / intuitive when
  creating an issue
2023-06-30 16:45:05 +02:00
Silvan Fuhrer 4348dcce2a Navigator: loiter: remove unnecessary _loiter_pos_set (#21776)
* Navigator: loiter: remove unnecessary _loiter_pos_set

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

* Navigator: loiter: remove commented line

---------

Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
Co-authored-by: Matthias Grob <maetugr@gmail.com>
2023-06-30 15:40:20 +02:00
Matthias Grob a6d2c2cf5e Github Actions: add workaround for dubious ownership errors
until I figure out what a better solution
would look like.
See
https://github.com/actions/runner/issues/2033
2023-06-27 17:17:31 +02:00
Matthias Grob e5503480e3 GitHub Actions: use Debian 11 to build linux targets
This solves the CI problem related to the required cmake version
described here:
https://github.com/PX4/PX4-Autopilot/pull/21737#pullrequestreview-1489844308

See https://github.com/PX4/PX4-containers/pull/332
for the container changes.
2023-06-27 17:17:31 +02:00
Peter van der Perk e739afe362 MR-CANHUBK3 ADAP board support, add ADC support 2023-06-27 07:24:07 -04:00
Silvan Fuhrer e34993969b tiltrotor: expose tilting duration of backtransition in param
Instead of hard-coding the tilting duration (from FW to MC tilt),
expose it as a parameter (VT_BT_TILT_DUR). The default is the same
as the hard-coded value previously (1s).
Slower tilting mechanisms need a higher value here, while for smaller
ones a too high value results in unnecessary delays till the motors
are in hover configuration.

Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2023-06-27 10:11:41 +02:00
Silvan Fuhrer 05489f9ecf tiltrotor: reduce BACKTRANS_THROTTLE_UPRAMP_DUR_S to 0.5s
This reduces the motor ramp up time after a transitions is declared over.

Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2023-06-27 10:11:41 +02:00
Silvan Fuhrer c26b699f8a tiltrotor: reduce BACKTRANS_THROTTLE_DOWNRAMP_DUR_S from 1 to 0.5s
This affects how soon after a backtransition the vehicle has the
full hover controller running again. Specifically it reduces the
duration of the ramp down of the motors prior to tilting them.

Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2023-06-27 10:11:41 +02:00
Ramon Roche 98d8935034 drivers/barometer/invensense/icp201xx: increase delay after configuration (#21765)
- fixes wrong altitude reporting
2023-06-26 14:16:06 -04:00
bresch 8d1b0e45fa opt-requirements: bump SymForce version 2023-06-26 14:10:54 -04:00
bresch eb70c9f6f3 ekf2: update auto-generated code to SymForce 0.9.0 2023-06-26 14:10:54 -04:00
bresch fdf7867a3e ekf2: update derivation to SymForce 0.9.0 2023-06-26 14:10:54 -04:00
bresch c99f56f010 wind_estimator: update generated code to Symforce 0.9.0 2023-06-26 14:10:54 -04:00
bresch 73e5ff109c wind_estimator: update derivation to use SymForce 0.9.0 2023-06-26 14:10:54 -04:00
Matthias Grob 7e79d65aa4 mc_pos_control_params: clarify maximum vertical velocity parameters 2023-06-26 17:01:20 +02:00
Matthias Grob 439670444f mc_pos_control_params: more gain & velocity decimals, more clear wording 2023-06-26 17:01:20 +02:00
Matthias Grob a6a913bf25 mc_pos_control: remove trailing zeroes 2023-06-26 17:01:20 +02:00
Matthias Grob 54a351639c mc_pos_control: improve parameter metadata
- Adapted descriptions to be more clear
- Adjusted some limits and decimals
2023-06-26 17:01:20 +02:00
Matthias Grob d00ad1b815 mc_pos_control: separate parameter metadata into multiple files
because the original file was almost 1k lines and
the order of parameters more historical than after topic.
2023-06-26 17:01:20 +02:00
Matthias Grob 20d0661e87 HealthAndArmingChecks: disallow arming via parameter
COM_ARMABLE is set to "Disabled" will prevent arming.
 This allows to set the parameter when ground demoing a drone or
 if it's in maintenance for safety reasons.
2023-06-22 13:17:47 +02:00
Matthias Grob 173407581b HealthAndArmingChecks: reorder CMakeLists alphabetically 2023-06-22 13:17:47 +02:00
Sean Murphy 7ed90c6d0c ekf2: process_logdata_ekf.py fix reject_mag* and imu_coning* key errors 2023-06-21 21:08:43 -04:00
Josh Henderson a07d10704b ROMFS : POSIX Airframes reserve space for custom models 2023-06-21 21:06:07 -04:00
Matthias Grob 18d89e4bc1 lightware_lase_serial: fix pointer for enabling serial mode
const char *data = "www\r\n";
Defines a cstring of 6 bytes: 'w', 'w', 'w', '\r', '\n', '\0'

type of data: char const*
type of &data: char const**

So when we call
write(_fd, &data, strlen(data));
then strlen(data) == 5
and we send the 4 byte memory address of data
+ some additional random byte.

Correct is
write(_fd, data, strlen(data));
where char const* gets casted to const void * and we pass
the pointer to the content of data.

The fundamental problem here is write() not being typesafe.
2023-06-21 15:59:12 +02:00
Thomas Debrunner fd267fb9a5 param save: Add a blocking API for param saves to be used from shell. 2023-06-21 08:19:52 +02:00
Silvan Fuhrer 18f0311161 Navigator: Mission: improve survey mission resume
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2023-06-20 14:38:03 +02:00
Silvan Fuhrer 24b1ef93b2 Mission: reset mission on landing only if last item was reached
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2023-06-20 14:38:03 +02:00
Silvan Fuhrer c6870006c7 Navigator: move disable camera trigger on mission inactivation to seperate function
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2023-06-20 14:38:03 +02:00
Daniel Agar d9ae2ed7ac ekf2: regenerate yaw estimator symforce
- remove underscore uppercase variable naming that can be problematic
2023-06-19 21:00:25 -04:00
Silvan Fuhrer 2a48c1cb18 boards: disable gyro fft module for v4 to safe flash
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2023-06-19 16:22:42 -04:00
Beat Küng 65ad6afb08 Micro-XRCE-DDS-Client: update submodule
Go get https://github.com/eProsima/Micro-XRCE-DDS-Client/pull/359.
2023-06-19 16:05:36 -04:00
Silvan Fuhrer 4632fbd600 FWRateController: use param find for VT_DIFTHR_EN as pure FW build doesn't have VTOL module built
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2023-06-19 10:59:20 +02:00
Matthias Grob 69aebe650b FixedwingRateControl: rework VTOL differential thrust saturation
Co-authored-by: Silvan Fuhrer <silvan@auterion.com>
2023-06-19 10:59:20 +02:00
Matthias Grob 53b9e66c66 RateControl: allow setting individual saturation flags
This helps for more complicated cases where certain axes are controlled
through and get feedback from a different allocator.
2023-06-19 10:59:20 +02:00
Beniamino Pozzan 957a06a780 Fix enum for COM_RC_IN_MODE in failsafe
add enum RcInMode

Signed-off-by: Beniamino Pozzan <beniamino.pozzan@phd.unipd.it>
2023-06-19 08:04:43 +02:00
Niklas Hauser 8fe65c6722 Driver: Refactor MCP23009 GPIO expander into uORB driver 2023-06-19 07:58:21 +02:00
Konrad 3303323971 mavlink stream: Heartbeat system status should neglect the actuator_armed.lockdown flag in HIL, since this is always enabled for HIL. 2023-06-16 14:21:32 +02:00
Matthias Grob 053d3020b0 esc_calibration: handle timeout wraps better
Co-authored-by: Beat Küng <beat-kueng@gmx.net>
2023-06-16 12:05:47 +02:00
Matthias Grob cfb24869e9 esc_calibration: allow to calibrate ESCs without battery detection
Before this the ESC calibration aborts if battery detection doesn't work.
The problem is if the user still connects the battery as he gets instructed
and the calibration aborts then the ESCs are in calibration mode and
after abortion calibrate to the wrong value.

Also I realized there's no additional safety by aborting the calibration
if the battery cannot be detected during the timeout because a pixhawk
board without power module will report a battery status from the
ADC driverand in it that no battery is connected which is the best
it can do. In this situation the motors will still spin if the
ESCs are powered.
2023-06-16 12:05:47 +02:00
Matthias Grob 4396b6e9f6 esc_calibration: adjust timing to work with all tested ESCs
Some ESCs e.g. Gaui enter the menu relatively quickly if the
signal is high for too long. To solve that it's kept high shorter.
Also all tested ESCs detect the low signal within a shorter time
so no need to wait longer.
2023-06-16 12:05:47 +02:00
Matthias Grob 6929493134 esc_calibration: Improve readability and robustness
- Change timings for a more reliable calibration.
- Make sure there's an error message when battery measurement is not
available also when it gets disabled after system boot in the power
just above the calibration button.
- Safety check if measured electrical current goes up after issuing the
high calibration value for the case the user did not unplug power
and the detection either fails or is not enforced.
2023-06-16 12:05:47 +02:00
Matthias Grob a28ad8e845 mixer_module: consistent PWM/oneshot calibration range 2023-06-16 12:05:47 +02:00
Matthias Grob 1ceca8f2cf actuator_test: condition order refactoring 2023-06-16 12:05:47 +02:00
Matthias Grob ffe0ec27e6 Unify MixingOutput constructor calls
to make them easy to search for and check the arguments.
2023-06-16 12:05:47 +02:00
Silvan Fuhrer fc357921fd navigator: send commands to anyone listening
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2023-06-12 09:41:28 +02:00
Junwoo Hwang 9b95330efc Github Issue: Replace Bug report to YAML 2023-06-09 21:18:28 -04:00
Junwoo Hwang 6b1f805b15 Issue Template: Move Feature request to YAML 2023-06-09 21:18:28 -04:00
Junwoo Hwang 89e8ba0b53 Issue Template: Switch to YAML for direct links 2023-06-09 21:18:28 -04:00
PX4 BuildBot bbc6ed43bd Update submodule sitl_gazebo-classic to latest Sat Jun 10 00:39:02 UTC 2023
- sitl_gazebo-classic in PX4/Firmware (f9510557a6): https://github.com/PX4/PX4-SITL_gazebo-classic/commit/2e3ed9bfb04d8865e59380afa575dd37b0d6c8e0
    - sitl_gazebo-classic current upstream: https://github.com/PX4/PX4-SITL_gazebo-classic/commit/0d53638452e6da4371c12599e1a649608361811e
    - Changes: https://github.com/PX4/PX4-SITL_gazebo-classic/compare/2e3ed9bfb04d8865e59380afa575dd37b0d6c8e0...0d53638452e6da4371c12599e1a649608361811e

    0d53638 2023-05-23 JaeyoungLim - Fix force visualization feature (#985)
9bfecb6 2023-05-22 JaeyoungLim - Fix readme displayed in github (#984)
2023-06-09 21:17:46 -04:00
alexklimaj 51a4eafe0c ARKV6X sync with FMUV6X 2023-06-09 21:17:12 -04:00
Matthias Grob 94d2140a4f mixer_module: remove unnecessary init state
That state only delayed the first arming by 50 miliseconds.
Was presumably a workaround for some issue very very early on.
See cc452834c0
2023-06-09 21:15:08 -04:00
Matthias Grob 0f256718d3 mixer_module: correct pwm ramp
Before:
When the mixed throttle for the motor was exactly zero the ramp went
from the disarmed PWM value to the minimum PWM value.

When the throttle was even just slightly different from zero the ramp
made a jump up to the commanded throttle scaled between
disarmed PWM and maximum PWM, then ramped between
disarmed PWM and minimum PWM and at the end jumped up again to
the commanded throttle scaled between minimum PWM and maximum PWM.

After:
The ramp goes from disarmed PWM value to the the
commanded throttle scaled between minimum PWM and maximum PWM.
If the commanded throttle changes during the ramp then the scale and
hence also end value of the ramp changes.
2023-06-09 21:15:08 -04:00
Mathieu Bresciani 24de623989 EKF2: Zero gyro update (#21691)
When at rest, directly fuse the gyro data as an observation of its bias.
This allows to strongly observe the gyro biases without having to fuse a
constant heading that makes the ekf too confident about its heading.
2023-06-09 21:13:18 -04:00
Beat Küng c95539e8ce boards: increase init stack size by 150B
External airframes need a bit more stack due to nested configs.
2023-06-09 21:11:11 -04:00
Beat Küng 7230a6dd8e commander: add option to exclude mag to param SYS_FAC_CAL_MODE 2023-06-09 21:05:40 -04:00
bresch 8b67fa91a1 factory cal: exclude _PRIO params 2023-06-09 21:05:40 -04:00
alessandro f9510557a6 always trigger all cameras 2023-06-09 13:17:45 +02:00
Morten Fyhn Amundsen 135f02679a ekf2: Fix description of EKF2_HDG_GATE 2023-06-09 11:52:55 +02:00
alexklimaj c3db4f57df Subscribe to all intances of gps_inject_data and mirror uavcan rtcm pub mirror gps driver 2023-06-09 14:51:28 +12:00
alexklimaj 5b8ae69f47 uavcan rtcm set max num injections 2023-06-09 14:51:28 +12:00
alexklimaj acd19a0520 Ublox add UBX-RXM-RTCM for RTCM input status 2023-06-09 14:51:28 +12:00
Beat Küng f119cca3b3 logger: restart on file write error
This can also happen if the maximum file size is reached.
2023-06-08 09:52:49 +02:00
Hamish Willee ea61d74c17 ADS1115: update docs (#21638) 2023-06-08 08:55:31 +02:00
mcsauder 1707805ed2 Remove the simulator SIH module from fmu-v5x test build and the fixedwing autotune module from the fmu-v5 test build to meet flash constraints. 2023-06-07 12:07:29 -04:00
mcsauder af44da25f0 Use accel of the same instance or primary baro for gyro instances that do not have valid temperature readings in temperature calibration data, use primary baro for magnetometers without valid temperature. 2023-06-07 12:07:29 -04:00
mcsauder b8ad9bdbe5 Add magnetometer thermal compensation. 2023-06-07 12:07:29 -04:00
oneWayOut 6ee2d796ea delete unused ECL_LIB_GIT_VERSION
Since 'ecl' is nomore a git submodule, code lines related to
'ECL_LIB_GIT_VERSION' could be deleted
2023-06-06 11:24:49 -04:00
Matthias Grob f4de43a10b PULL_REQUEST_TEMPLATE: fix typo 2023-06-06 17:22:33 +02:00
Matthias Grob b625e43566 rc_update: throttle trim centering fix for reverse channel
The entire logic did not work for the case when the throttle channel is
reversed because then QGC sets trim = max for that channel and
the result is only half the throttle range.
2023-06-06 17:22:33 +02:00
Julian Oes cd485b3a13 lights: Add LP5562 RGBLED driver
This adds support for the TI LP5562 RGB LED driver.

Things to note:
- The driver is initialized in simple PWM mode using its internal clock,
  for R,G,B, but not for W(hite).
- The chip doesn't have a WHO_AM_I or DEVICE_ID register to check.
  Instead we read the W_CURRENT register that we're generally not using
  and therefore doesn't get changed.
- The current is left at the default 17.5 mA but could be changed using
  the command line argument.

Datasheet:
https://www.ti.com/lit/ds/symlink/lp5562.pdf

Signed-off-by: Julian Oes <julian@oes.ch>
2023-06-06 13:12:44 +12:00
Eric Katzfey c468266b27 boards: Update modalai fcv2 board support (#21653)
* Removed obsolete voxl2-io directory
* Updated support for ModalAI FC v2 board
* Added UAVCAN back in and removed local position estimator and attitude estimator Q that are no longer supported.
* Removed unneeded IMU drivers
2023-06-05 12:42:46 -04:00
bresch 5233b33242 update change indicator 2023-06-05 11:58:42 -04:00
bresch 403a6310c4 gnss yaw: compare auto-generated Jacobian against autodiff 2023-06-05 11:58:42 -04:00
bresch c6b259d5f6 yaw_fusion: compare auto-generated Jacobian against autodiff 2023-06-05 11:58:42 -04:00
bresch d4528dc53a sideslip: compare auto-generated Jacobian against autodiff 2023-06-05 11:58:42 -04:00
bresch e7c4a22be8 mag_3d: compare auto-generated Jacobian against autodiff 2023-06-05 11:58:42 -04:00
bresch c6f1a63659 opt_flow: compare auto-generated Jacobian against autodiff 2023-06-05 11:58:42 -04:00
bresch d03f242c04 DCM: use simplified conversion from unit quaternion
This is exactly equivalent for a unit quaternion (and only unit
quaternions should be used to encode a rotation)
2023-06-05 11:58:42 -04:00
bresch 9d7abf2552 ekf2: symforce - use builtin Rot3 and Quaternion operations 2023-06-05 11:58:42 -04:00
Julian Oes ea8b985a2f netman: fix line too long
Signed-off-by: Julian Oes <julian@oes.ch>
2023-06-05 12:01:07 +12:00
Ramon Roche 2f448e9d9f netman: update module description (#21664)
Co-authored-by: David Sidrane <David.Sidrane@Nscdg.com>
Co-authored-by: Hamish Willee <hamishwillee@gmail.com>
2023-06-02 09:33:18 -07:00
Giacomo Bertelli 99f6d4190c Update sitl_multiple_run.sh (#21538)
Edited line to account for the fact that the file has been moved one level deeper in the folder tree (the same edit should be made in the documentation https://docs.px4.io/main/en/simulation/multi_vehicle_jmavsim.html)
2023-06-02 10:28:49 +02:00
Silvan Fuhrer a52c0fd9f5 FW TECS: reduce default for FW_T_I_GAIN_THR to more appropriate 0.05
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2023-06-02 10:23:46 +02:00
Silvan Fuhrer 1c7320b9e3 VTOL: params: add missing @decimal and @increment
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2023-06-02 10:23:46 +02:00
Silvan Fuhrer ac811450e5 Tiltrotor params: set default for VT_TILT_TRANS to 0.4
0.4 tilt is more reasobale to get nice transitions than
the previous 0.3.

Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2023-06-02 10:23:46 +02:00
Silvan Fuhrer 8f64c79b4c FWAttitudeController: params: increases parameter ranges
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2023-06-02 10:23:46 +02:00
Silvan Fuhrer 459f9c5331 Commander: open up limits on TRIM_ROLL/PITCH/YAW to +/- 50%
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2023-06-02 10:23:46 +02:00
Silvan Fuhrer ad778b37f5 FWRateController: fix @group, all should be in FW Rate Control group
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2023-06-02 10:23:46 +02:00
Silvan Fuhrer f41ad10275 FW Rate Controller: relax param ranges
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2023-06-02 10:23:46 +02:00
Silvan Fuhrer a1167d6c98 Navigator: make sure to reset mission.item fields touched by set_vtol_transition_item (#21641)
set_vtol_transition_item sets the params of the mission item directly
to values that make sense for NAV_CMD_DO_VTOL_TRANSITION, but don't
for other NAV_CMDs. So make sure that whenever we use it, we then in
the next step reset the touched mission_item fields.

Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2023-06-02 10:21:23 +02:00
Niklas Hauser ebe152fc22 fmu-v6x: Increase Mavlink UART buffers
Our serial_test showed only ~84kB/s with the default 256 RX buffer size
with significant ~2.5ms periods of the flow control RTS pin being
asserted. Increasing size to 600 (same as FMU-v5x) brings the throughput
only to ~190kB/s, while a size of >1500 achieves ~350kB/s. Larger RX
buffers do not increase throughput anymore, while the theoretical
maximum is 375kB/s.

Transmit buffer size is increased to 10kB same as on FMUv5x to prevent
any future differences in queue behavior and throughput. serial_test
showed ~350kB/s throughput at 3kB TX buffer size, so this is just a
precaution.
2023-06-01 07:55:21 +02:00
Eric Katzfey d2011e99b2 commander: add Open Drone ID arming check (#21652) 2023-06-01 07:52:52 +02:00
Silvan Fuhrer 4b5e14aeec Navigator: MissionFeasibilityCheck: check if items fit to the current vehicle type (#21602)
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2023-05-31 19:27:27 +02:00
Roman Bapst d6413a6a90 Refactor uncommanded descend Quad-Chute (#21598)
* refactored uncommanded descend quadchute
- use fixed altitude error threshold
- compute error relative to higest altitude the vehicle has achieved
since it has flown below the altitude reference (setpoint)

* disabled altitude loss quadchute by default

* altitude loss quadchute: added protection against invalid local z


---------

Signed-off-by: RomanBapst <bapstroman@gmail.com>
2023-05-31 17:57:50 +02:00
henrykotze fab58ee2bc cannode prearm by default enable on ArmingStatus
- ArmingStatus DroneCAN message STATUS field is only set to true based on
arming_status.armed

- Cannode prearm state is set to true always when ArmingStatus DroneCan
message is received
2023-05-31 11:20:31 -04:00
Beat Küng db18a94382 refactor param: reduce flash usage
Reduces usage by ~1.5KB
2023-05-31 07:45:20 +02:00
Beat Küng 1bfca24fa9 refactor param: move autosave to px4::wq_configurations::lp_default work queue
Changes initialization order as param_init now depends on wq manager
2023-05-31 07:45:20 +02:00
Beat Küng e65a0a01d6 fix WorkQueueManager: wait until running to prevent race conditions 2023-05-31 07:45:20 +02:00
Thomas Debrunner f0dd9fa445 param: Add contained-params-bitset export interface to the param layers
Allows for efficient looping over the contained data
2023-05-31 07:45:20 +02:00
Thomas Debrunner bc872822bc params: Overhaul param system to use a layered approach without locking
- Instead we disable interrups on Nuttx where needed
- No lock is held during param export. Params can be changed
  concurrently and we rely on the fact that another export will be
  triggered in that case.
2023-05-31 07:45:20 +02:00
alexklimaj 70178b66d8 Cannode add OSD drivers 2023-05-29 14:07:38 +02:00
Silvan Fuhrer f0b476bcba ROMFS: set default for VT_B_TRANS_DUR for all tailsitter configs to 5s
5s is a more reasobale time for tailsitters, which rely differently on this param
than other VTOL types. Tailsitters will ramp the pitch up withing this time,
while for other VTOLS types its only the max transitiont time.

Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2023-05-29 12:25:20 +02:00
Silvan Fuhrer ee19ec4670 ROMFS: tailsitter SITL config: improve tuning after model changes
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2023-05-29 12:25:20 +02:00
Silvan Fuhrer f96073f442 ROMFS: quadtailsitter SITL config: improve tuning
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2023-05-29 12:25:20 +02:00
Julian Oes 6977fd9956 ROMFS: initial quadtailsitter tuning
This is now using the advanced lift drag plugin.

The important step was to enable airmode for yaw, otherwise yaw gets
saturated at low throttle and we can barely roll.

The other trick was to raise airspeed a little bit to avoid operating
too much at the lower end of throttle where control authority is low.

Signed-off-by: Julian Oes <julian@oes.ch>
2023-05-29 12:25:20 +02:00
JaeyoungLim e3aea937c3 Support quadtailsitter in SITL 2023-05-29 12:25:20 +02:00
Daniel Agar 6535cc758e ekf2: fuse mag update last heading fuse time if updating all states
- handle synthetic z special case
2023-05-26 08:48:08 -06:00
Silvan Fuhrer bd182ecf70 FWPositionControl: navigateWaypoints: fix logic if already past waypoint and need to turn back (#21635)
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2023-05-26 15:12:42 +02:00
Silvan Fuhrer ad769db8d6 FW Rate Controller: allow to enable/disable yaw axis in Acro (#21566)
* RateControl: rename setGains to setPidGains to be more precise

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

* FW Rate controller: only allow to disable Yaw in Acro, not roll and pitch

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

---------

Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2023-05-26 15:09:29 +02:00
Alex Klimaj ee96d209d7 drivers/uavcannode: add GNSS Auxiliary publisher 2023-05-24 21:27:50 -04:00
Junwoo Hwang 822d784335 Create stale bot (Github actions) (#21630) 2023-05-24 10:13:40 +09:00
Loïc Dubois 1b9d90e7c4 mavlink: fix mismatch between header macros and class used 2023-05-23 20:44:32 -04:00
alexklimaj dc99a875c3 Mavlink receiver unadvertise all
uorb multi pubs in destructor
2023-05-23 18:40:06 -06:00
Matthias Grob c903288f4c ManualControlSelectorTest: adapt to using input validity flag 2023-05-23 17:24:17 +02:00
Matthias Grob 7b6f45079b ManualControl: use input validity flag to check for RC calibration 2023-05-23 17:24:17 +02:00
Matthias Grob 7d0596d244 RCInput: follow topic name convention 2023-05-23 17:24:17 +02:00
Patrick José Pereira 8feb662557 systemcmds: Use snprintf over sprintf
Signed-off-by: Patrick José Pereira <patrickelectric@gmail.com>
2023-05-22 07:46:54 +02:00
Patrick José Pereira 09f282b282 temperature_compensation: Use snprintf over sprintf
Signed-off-by: Patrick José Pereira <patrickelectric@gmail.com>
2023-05-22 07:46:54 +02:00
Patrick José Pereira 5fff0526cf rc_update: Use snprintf over sprintf
Signed-off-by: Patrick José Pereira <patrickelectric@gmail.com>
2023-05-22 07:46:54 +02:00
Patrick José Pereira 837847f3ad mavlink: Use snprintf over sprintf
Signed-off-by: Patrick José Pereira <patrickelectric@gmail.com>
2023-05-22 07:46:54 +02:00
Patrick José Pereira ca1d32a29d HealthAndArmingChecks: Use snprintf over sprintf
Signed-off-by: Patrick José Pereira <patrickelectric@gmail.com>
2023-05-22 07:46:54 +02:00
Patrick José Pereira cee21bd703 sensor_calibration: Use snprintf over sprintf
Signed-off-by: Patrick José Pereira <patrickelectric@gmail.com>
2023-05-22 07:46:54 +02:00
Patrick José Pereira 643d89f54b uORB: Use snprintf over sprintf
Signed-off-by: Patrick José Pereira <patrickelectric@gmail.com>
2023-05-22 07:46:54 +02:00
Patrick José Pereira dc2428a348 px4_log: Use snprintf over sprintf
Signed-off-by: Patrick José Pereira <patrickelectric@gmail.com>
2023-05-22 07:46:54 +02:00
Daniel Agar bb0f2875a9 ekf2: disable multi-EKF across mags by default (H7 & SITL) for now
- re-enable once the estimator selector respects configured mag
priority (at least initially) or is otherwise able to automatically
prefer an external mag over internal
 - for SITL disabled because the full matrix of esitmator instances
(IMUs X mags) was too many topics for logger currently
2023-05-19 18:35:57 -06:00
PX4 BuildBot 74105907c9 Update submodule mavlink to latest Fri May 19 12:38:47 UTC 2023
- mavlink in PX4/Firmware (0ff9816579d1c5a4086ec7b9d05fe7a79c410df2): https://github.com/mavlink/mavlink/commit/3ee5382d0c96134b0e1c250d8c2d54bfed0166fa
    - mavlink current upstream: https://github.com/mavlink/mavlink/commit/18955a04c7c7467e00ea42b704addb4a9c12b53a
    - Changes: https://github.com/mavlink/mavlink/compare/3ee5382d0c96134b0e1c250d8c2d54bfed0166fa...18955a04c7c7467e00ea42b704addb4a9c12b53a

    18955a04 2023-05-11 Nick Exton - common.xml: Add MAV_RESULT_COMMAND_LONG_ONLY and MAV_RESULT_COMMAND_INT_ONLY to MAV_RESULT (#1982)
b92321ba 2023-03-30 Hamish Willee - Update message_definitions/v1.0/common.xml
58ff70f4 2023-03-30 Hamish Willee - COMMAND_ACK progress/result_param2 clarification
31b4aebb 2023-05-11 Julian Oes - cmake: locally install pip dependencies (#1984)
e9bf6a61 2023-05-10 Hamish Willee - Gimbal manager messages - remove WIP tagging (#1980)
0416967f 2023-05-10 Beat Küng - development: changes to standard flight modes (#1915)
ce00667f 2023-05-04 Jonas Vautherin - New cmakelists (#1977)
fdef5cc0 2023-05-03 Nick Exton - common.xml: Prefer COMMAND_INT when command includes altitude field (#1983)
89676d1d 2023-05-03 Nick Exton - common.xml: Add ZOOM_TYPE_HORIZONTAL_FOV to CAMERA_ZOOM_TYPE enum (#1979)
2023-05-19 08:41:38 -06:00
PX4 BuildBot 6c9dcd535c Update submodule devices to latest Fri May 19 12:38:42 UTC 2023
- devices in PX4/Firmware (6a645f244654695f3b178b576f7f8972f87ad774): https://github.com/PX4/PX4-GPSDrivers/commit/7d19f689f0781ef4fcaa624b318fac3fe744e59b
    - devices current upstream: https://github.com/PX4/PX4-GPSDrivers/commit/99f5960eca66150e33dc277e71a4c99187c27ddc
    - Changes: https://github.com/PX4/PX4-GPSDrivers/compare/7d19f689f0781ef4fcaa624b318fac3fe744e59b...99f5960eca66150e33dc277e71a4c99187c27ddc

    99f5960 2023-05-02 Eric Katzfey - sbf: fixed compile errors for Qurt platform (#129)
2023-05-19 08:41:21 -06:00
PX4 BuildBot 8ae7720569 Update submodule sitl_gazebo-classic to latest Fri May 19 12:38:32 UTC 2023
- sitl_gazebo-classic in PX4/Firmware (599a66c8a5): https://github.com/PX4/PX4-SITL_gazebo-classic/commit/3f2b9678af781bccb621dde5b75bb2b59419dcc7
    - sitl_gazebo-classic current upstream: https://github.com/PX4/PX4-SITL_gazebo-classic/commit/2e3ed9bfb04d8865e59380afa575dd37b0d6c8e0
    - Changes: https://github.com/PX4/PX4-SITL_gazebo-classic/compare/3f2b9678af781bccb621dde5b75bb2b59419dcc7...2e3ed9bfb04d8865e59380afa575dd37b0d6c8e0

    2e3ed9b 2023-05-14 JaeyoungLim - Add Quadtailsitter model based on the swan K1 (#982)
670d4d2 2023-05-12 Julian Oes - airspeed: rotate tube so it faces forward (#981)
803254d 2023-05-11 Julian Oes - tailsitter: add valid inertia, fix CG (#980)
6fd1d17 2023-05-09 JaeyoungLim - Fix advanced plane model (#979)
506f10c 2023-05-05 Julian Oes - iris: move IMU and GPS where they are (#978)
2023-05-19 08:41:03 -06:00
Peter van der Perk 9a17fddc31 Hardfault_log progmem always clear when re-arming 2023-05-19 08:40:07 -06:00
Daniel Agar bcf87b4b35 Tools/HIL/test_airframes.sh remove gps stop (not present everywhere) 2023-05-19 10:35:26 -04:00
Silvan Fuhrer 599a66c8a5 Tailsitter: make pitch angle thresholds for transition in Stabilized depending on max manual pitch
Transitions in Stabilized mode are done manually, the pilot controls the pitch angle
and if it's above the threshold the transition is declared finished (plus airspeed
check for front transition). Thus we can't have fixed thresholds but need to link
them to the actual max pitch angle in Stabilized mode.

Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2023-05-16 10:12:24 +02:00
Silvan Fuhrer 1ddacec36b FW Att/Rate controller: move max attitude params to Att Controller params
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2023-05-15 14:35:34 +02:00
Silvan Fuhrer bf25d8b180 FW Position Controller: increase default of FW_T_SPD_DEV_STD to 0.2
We currently fuse 0 as airspeed rate measurement, and thus simply low-pass
filter the airspeed measurements. Testing has shown that the current default
on the airspeed rate measurement noise is set to low, and thus the airspeed
mesurement is filtered too much.

Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2023-05-15 13:54:11 +02:00
Silvan Fuhrer 77d09785f3 TECS: init _velocity_control_traj_generator properly
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2023-05-15 13:53:32 +02:00
bresch 616a71a959 MC_auto: avoid yaw step if previous setpoint is NAN
A VTOL plane in MC mode has no yaw setpoint during takeoff because of
weather-vane. To align for the front transition, the yaw target jumps
and caused a step in the controller, making it reach saturation.

With this commit, the previous yaw setpoint is set to the current yaw
when no yaw setpoint is sent in order to create a smooth yaw trajectory
starting at the current orientation when yaw target is suddenly finite.

The yawspeed filter also now contains the yaw speed instead of dyaw in
order to prevent chattering due to dt jitter.
2023-05-12 13:42:09 +02:00
Silvan Fuhrer f19b81880f VTOL: adapt VT_QC_T_ALT_LOSS param
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2023-05-12 11:10:43 +02:00
Silvan Fuhrer 06713cb655 VTOL: only run front transition alt loss QC if altitude is controlled
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2023-05-12 11:10:43 +02:00
Silvan Fuhrer c1d94c7f05 VTOL: extend front transition QC to first 5s after completing transition
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2023-05-12 11:10:43 +02:00
Silvan Fuhrer 0d156f84e6 VTOL: fix transition quadchute below home
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2023-05-12 11:10:43 +02:00
Silvan Fuhrer 233d901934 VTOL: align setting of _tecs_running_ts on all VTOL types
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2023-05-12 11:10:43 +02:00
Alejandro Hernández Cordero be03b7f098 Allow to modify uxrce_dds_client port with a env var
Signed-off-by: Alejandro Hernández Cordero <ahcorde@gmail.com>
2023-05-10 08:17:56 -07:00
JaeyoungLim 47e802ef92 Fix tailsitter control frames (#21573) 2023-05-10 22:33:53 +09:00
Silvan Fuhrer 951f89c8a8 FWPosControl: constrain min pitch to FW_TKO_PITCH_MIN in takeoff state
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2023-05-10 14:23:12 +02:00
Silvan Fuhrer 9c42dcbb0b ROMFS: plane_catapult: enable launch detection and set IDLE to 0.1 to detect arming
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2023-05-10 14:23:12 +02:00
Silvan Fuhrer 87c8f170ae ROMFS: FW simulations: remove re-declaration of params to vehicle default
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2023-05-10 14:23:12 +02:00
Silvan Fuhrer 6fb55a8ad8 ROMFS: remove param RWTO_TKOFF from configs where only set to default again
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2023-05-10 14:23:12 +02:00
Silvan Fuhrer cad61fcb84 ROMFS: remove outdated param FW_LND_AIRSPD_SC from all simulation configs
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2023-05-10 14:23:12 +02:00
Silvan Fuhrer ab71ef4447 FW Rate Controller: fix manual tailsitter (only transform to body frame once) (#21565)
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2023-05-10 09:29:02 +02:00
Daniel Agar 8222cbca2c ekf2: last range sensor simple timestamp protection
- sanity check againist potential timestamp issues with incoming
distance_sensor data
2023-05-09 12:02:42 -04:00
Morten Fyhn Amundsen 04c5d70588 matrix: Describe emult, edivide functions 2023-05-09 16:14:55 +02:00
Silvan Fuhrer 4cd078409d AirspeedValidator: disable innovation checks if lpos invalid
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2023-05-08 21:46:45 -04:00
Mathieu Bresciani 1e4fcfc614 mc_pos_control: fix potential thrust spike on hover thrust change
Co-authored-by: Josh Henderson <hendjoshsr71@gmail.com>
Co-authored-by: Matthias Grob <maetugr@gmail.com>
2023-05-08 21:42:25 -04:00
Thomas Debrunner da14650aa2 ads1115: Probe for reset value before init, do not spam console on device lost 2023-05-08 16:47:34 +02:00
PX4 BuildBot 38505c80be update all px4board kconfig 2023-05-08 08:48:48 -04:00
Julian Oes 636c3c069f gimbal: make device ID a clear out argument
The API is cleaner if the control_data is const reference and the device
compid is an explicit output argument.

Signed-off-by: Julian Oes <julian@oes.ch>
2023-05-08 07:06:37 +02:00
muramura 3c45b184d3 gps: Improve the FALSE setting of the ALREADY_COPIED variable 2023-05-08 07:04:11 +02:00
Julian Oes ddfc2986dc mavlink: flow control param needs reboot
Signed-off-by: Julian Oes <julian@oes.ch>
2023-05-07 21:48:27 -04:00
alexklimaj 000a3c10e2 Add ADIS16507 params 2023-05-06 17:11:42 -04:00
alexklimaj b12f5c4e31 adis16507 group delay should be subtracted from timestamp_sample 2023-05-06 17:11:42 -04:00
alexklimaj 2cef8a03d4 ARKV6X add ADIS16507 2023-05-06 17:11:42 -04:00
Silvan Fuhrer d2ca763d23 Navigator: set cruise_speed to default on entering new mode (#21503)
The resets in the modes (eg Loiter mode) are not active yet, so manually
set rep->current.cruising_speed = -1.f if not already in the same flight mode.

Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2023-05-05 15:53:17 +02:00
Julian Oes 40324b03f4 fmu-v6x: pulldown on RTS not required
On CTS with DMA, we need the pulldown but not on RTS.

Signed-off-by: Julian Oes <julian@oes.ch>
2023-05-05 02:49:25 -04:00
Julian Oes 3cc940cb06 fmu-v6c: fix Telem1, Telem2 without flow control
When flow control is used together with DMA, we need to add a pulldown
to CTS. Without it, it assumes flow control and gets stuck when
CTS is not connected.

Signed-off-by: Julian Oes <julian@oes.ch>
2023-05-05 08:02:58 +12:00
Beniamino Pozzan 9e5420bbbd microdds_client: rename to uxrce_dds_client
| | old version | new version (second proposal) |
|-|-|-|
| module name | `microdds_client` | **`uxrce_dds_client`** |
| strings / comments about the module | non consistent | **UXRCE-DDS Client** |
| menuconfig option | `MODULES_MICRODDS_CLIENT` | **`MODULES_UXRCE_DDS_CLIENT`** |
| module parameters group name | `Micro XRCE-DDS` | **UXRCE-DDS Client** |
| module parameters name prefix | `XRCE_DDS_` | `UXRCE_DDS_` |
| module class name | `MicroddsClient` | **`UxrceddsClient`** |
|`init.d/rcS` whenever the module is mentioned | `microdds` | **`uxrce_dds`** |
| main doc page name | XRCE-DDS (PX4-FastDDS Bridge) | **uXRCE-DDS (PX4-micro XRCE-DDS Bridge)**|
| environment variable to have custom namespace in simulation | PX4_MICRODDS_NS | **PX4_UXRCE_DDS_NS** |

Signed-off-by: Beniamino Pozzan <beniamino.pozzan@phd.unipd.it>
2023-05-03 11:51:53 -07:00
Julian Oes 1d4b66fcbc gps: use all injection data
When we fall back to another link, we are already doing a uORB copy when
checking the data. Therefore, we should further down use/send that data
instead of overwriting it immediately.

Signed-off-by: Julian Oes <julian@oes.ch>
2023-05-03 07:47:51 +02:00
Julian Oes 2fd3de8f45 gps: retry switching RTCM injection more often
I don't think it makes sense to slow down switching RTCM injection to
once every 5 seconds. If we don't have corrections, we should check and
use whatever we get as soon as possible.

Signed-off-by: Julian Oes <julian@oes.ch>
2023-05-03 07:47:51 +02:00
Julian Oes 6108b31e6a gps: reset RTCM instance
We need to reset the instance after looping through all instances.
Otherwise, we are left with the last instance if none is valid but have
not updated the _selected_rtcm_instance which is what is logged.

Therefore, this change fixes the logged RTCM instance.

Signed-off-by: Julian Oes <julian@oes.ch>
2023-05-03 07:47:51 +02:00
David Sidrane b6f19d5e9b Added is31fl3195 LED Driver 2023-05-02 10:50:24 -04:00
David Sidrane 409c1bbf7a PX4 icm42688p:Add Support for the ICM42686
icm42688p:Fix colission on custom1 from rebase
2023-05-02 10:50:24 -04:00
SalimTerryLi 9c467198be module_config: support custom actuators_metadata backed by module-level params 2023-05-02 10:09:52 +02:00
SalimTerryLi 7eb6535273 driver/rc/crsf: fix print format for Linux platform 2023-05-01 17:36:26 -04:00
PX4 BuildBot 2a93875a5f Update submodule libevents to latest Mon May 1 12:39:12 UTC 2023
- libevents in PX4/Firmware (406dc9b62627aec0c14df2d1e6d09b849f12487f): https://github.com/mavlink/libevents/commit/48911e7be752a908a15d945b796ed8d8282b7b02
    - libevents current upstream: https://github.com/mavlink/libevents/commit/a9a3fc07abb8bd8eb6fbca64c35b479cab91ff35
    - Changes: https://github.com/mavlink/libevents/compare/48911e7be752a908a15d945b796ed8d8282b7b02...a9a3fc07abb8bd8eb6fbca64c35b479cab91ff35

    a9a3fc0 2023-03-31 Beat Küng - README: update link to initial design doc
fb630b3 2023-03-30 Beat Küng - pylint: fix 'Raising too general exception' errors
72108eb 2023-03-29 flickering-light - Unused content variable fix
2023-05-01 13:40:00 -04:00
PX4 BuildBot e8d12e26c2 Update submodule mavlink to latest Mon May 1 12:39:14 UTC 2023
- mavlink in PX4/Firmware (487c2b03cae972f42a9fe7c397f6949fed63ca3d): https://github.com/mavlink/mavlink/commit/d6d86d3f0c90a67c275d6833931f7c712b858dba
    - mavlink current upstream: https://github.com/mavlink/mavlink/commit/3ee5382d0c96134b0e1c250d8c2d54bfed0166fa
    - Changes: https://github.com/mavlink/mavlink/compare/d6d86d3f0c90a67c275d6833931f7c712b858dba...3ee5382d0c96134b0e1c250d8c2d54bfed0166fa

    3ee5382d 2023-04-20 Peter Barker - common.xml: exclude any stored home location from MISSION_CURRENT.total (#1976)
e0f59ae2 2023-04-13 Hamish Willee - Remove WIP from gimbal device messages/commands (#1973)
181346b5 2023-04-12 Peter Barker - common.xml: remove MAV_CMD_ACK (#1972)
2023-05-01 11:11:15 -04:00
PX4 BuildBot 432ce45ef0 Update submodule sitl_gazebo-classic to latest Mon May 1 12:38:59 UTC 2023
- sitl_gazebo-classic in PX4/Firmware (4bb4bc185b): https://github.com/PX4/PX4-SITL_gazebo-classic/commit/1c5818e56c2f54ca16f465fbf43580b1b6f3ece0
    - sitl_gazebo-classic current upstream: https://github.com/PX4/PX4-SITL_gazebo-classic/commit/3f2b9678af781bccb621dde5b75bb2b59419dcc7
    - Changes: https://github.com/PX4/PX4-SITL_gazebo-classic/compare/1c5818e56c2f54ca16f465fbf43580b1b6f3ece0...3f2b9678af781bccb621dde5b75bb2b59419dcc7

    3f2b967 2023-04-11 JaeyoungLim - Ignore sdf validation for land_pad (#977)
a91e4fd 2023-04-11 Jonas Perolini - Add support for camera and new land pad in irlock simulation (#950)
8fcd3cf 2023-04-10 JaeyoungLim - Remove bionic related tests (#974)
2023-05-01 11:10:37 -04:00
Julian Oes 3f13a6e787 gimbal: implement gimbal_device_id
It turns out that I had omitted implementing the gimbal_device_id which
is the component ID of the gimbal device that the gimbal manager (in
this case PX4) is responsible for.

Signed-off-by: Julian Oes <julian@oes.ch>
2023-05-01 09:02:25 -04:00
muramura b23eee40f0 bmi088: Do not use invalid values 2023-05-01 09:02:04 -04:00
Daniel Agar f0bea542d5 Update world_magnetic_model to latest (#21533)
* Update world_magnetic_model to latest Mon May  1 11:14:06 UTC 2023
* [AUTO COMMIT] update change indication

Co-authored-by: PX4BuildBot <PX4BuildBot@users.noreply.github.com>
2023-05-01 08:59:55 -04:00
PX4 BuildBot b74e929877 update all px4board kconfig 2023-05-01 08:59:08 -04:00
murata,katsutoshi 4bb4bc185b commander: level calibration delete unused SENS_BOARD_ROT param access 2023-04-30 21:36:43 -04:00
bresch 521abecbbf ekf2: remove all remaining uses of EKF2_AID_MASK 2023-04-28 22:31:17 -04:00
bresch 98a8d080b6 ekf2 params: fix my bad english 2023-04-28 22:31:17 -04:00
bresch 2a2e43b620 ekf2: move flow fusion activation from AID_MASK to OF_CTRL 2023-04-28 22:31:17 -04:00
bresch 39c2f95669 ekf2: move drag fusion activation from AID_MASK to DRAG_CTRL 2023-04-28 22:31:17 -04:00
Roman Dvořák 8b4566b6bb drivers/hygrometer/sht3x: extend alert range (#21521) 2023-04-28 10:33:06 -04:00
AlexKlimaj eb8342b477 ARK Cannode fix empty rc.serial 2023-04-28 09:31:31 -04:00
Daniel Agar b8b80e409f boards: px4_fmu-v5x_test remove drivers/telemetry to save flash 2023-04-27 20:14:26 +02:00
Daniel Agar 5b0b46ff55 boards: px4_fmu-v5x_default disable LPE and ATTQ to save flash 2023-04-27 20:14:26 +02:00
Andrew Wilkins cdc717be53 Speed reset when switching flight modes (#21414)
* speed reset between flight modes

* no whitespace
2023-04-27 17:32:43 +02:00
Silvan Fuhrer bfc1e36f45 Standard: fill att_sp.thrust[0] with _pusher_thr value during transition to FW (#21520)
Once passed the transition and in FW mode, it takes some ms unitl the FW att sp is updated
by the FW att controller. During this time the last published attitude sp is kept bein used,
which is the one that was published during transition. So let's fill the thrust[0] of it.

Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2023-04-27 17:30:36 +02:00
Yannick Fuhrer f76399be5e vtol_type: scale VT_TRANS_TIMEOUT with air density (#21509) 2023-04-27 09:22:04 +02:00
Julian Oes 0afd93a9e9 gimbal: add control setter and status
This adds the ability to manually set who has primary control over a
gimbal and also adds printing it as part of the status.

This is helpful, especially while working on the QGC gimbal v2
implementation.

Signed-off-by: Julian Oes <julian@oes.ch>
2023-04-26 08:20:34 +02:00
Eric Katzfey 36877b9efc Added crosshairs to MSP OSD driver 2023-04-25 13:49:42 -04:00
SalimTerryLi a46ef72fff Makefile: validate_module_configs skips src/lib/events/libevents/* 2023-04-25 07:51:25 +02:00
Silvan Fuhrer 08782a0837 reset vroi when resetting misson on landing and run set_current_mission_item()
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2023-04-21 07:47:58 +02:00
Silvan Fuhrer 55faa8cb2d mission: only run update_mission() if mission is updated, not when we want to reset
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2023-04-21 07:47:58 +02:00
Christian Rauch e76c2b6a43 delete unused mavlink_px4.py & fix typos in VehicleCommand (#21332)
This file is not used anywhere neither in PX4-Autopilot, nor in the docs.

---------

Co-authored-by: Beniamino Pozzan <beniamino.pozzan@phd.unipd.it>
2023-04-20 07:50:58 +02:00
Hamish Willee 51f71909d4 Update ekf2_params.c - typo EKF2 aid mask 2023-04-19 17:11:47 -07:00
Eric Katzfey 0934d3bf24 VOXL2 snapdragon spektrum rc refactor (#21427)
* Replaced outdated snapdragon_spektrum_rc and spektrum_rc drivers with VOXL2 board specific spektrum_rc driver
2023-04-19 11:22:43 -04:00
Eric Katzfey 018ca6b49d VOXL2 board support updates (#21426) 2023-04-19 11:21:02 -04:00
Thomas Stastny cb66c48876 drivers/gps: increase stack to handle gps dump config for RTCM output (PPK) 2023-04-19 17:08:15 +02:00
Silvan Fuhrer b874eaf5f9 VTOL: remove deprecated VT_B_TRANS_THR
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2023-04-19 10:22:10 +02:00
Silvan Fuhrer db379c9049 airframe configs: remove params set to default in custom config from configs
Removes duplication.

Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2023-04-19 10:22:10 +02:00
Silvan Fuhrer 9975db2d2f airframe configs: disable airspeed CBRK in rover and UUV defaults
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2023-04-19 10:22:10 +02:00
Silvan Fuhrer 88bf18a2fe airframe configs: remove custom tuning if close to param default and not required due to hardware
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2023-04-19 10:22:10 +02:00
Silvan Fuhrer cbbd514c1b VTOL: increase default of VT_B_TRANS_DUR to 10s
A default of 10s makes more sense compared to the old 4s, as this is only the
max time of a back transition and it's also decleared completed if the
speed drops below the hover cruising speed (MPC_XY_CRUISE).

Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2023-04-19 10:22:10 +02:00
Silvan Fuhrer f2c392e187 VTOL configs: reset TECS gains to default
There have been substantial TECS changes lately, and the config files
for custom VTOLs have not been updated since a long time. I would thus
rather use the default TECS gains for lightly maintained configs.

Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2023-04-19 10:22:10 +02:00
Silvan Fuhrer 885bb7659b navigator_main: orbit in FW: get_cruising_speed() (#21484)
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2023-04-18 16:01:24 +02:00
Julian Oes 09d86085bd kakute f7/h7/h7mini/h7v2: enable airspeed
Without this airspeed sensors are not working which is not intuitive.

Signed-off-by: Julian Oes <julian@oes.ch>
2023-04-18 07:45:52 +02:00
Eric Katzfey 73db1a02ca modal_io: add rpm unit to parameters (#21473) 2023-04-18 07:41:45 +02:00
Beniamino Pozzan 89a00f9505 rcS-posix: use ROS_DOMAIN_ID to set XRCE_DDS_DOM_ID
set XRCE_DDS_KEY to MAV_SYS_ID to avoid collisions

Signed-off-by: Beniamino Pozzan <beniamino.pozzan@phd.unipd.it>
2023-04-17 20:21:05 -04:00
Daniel Agar a11cced4b2 drivers/ins/vectornav: fix attitude (quaternion) and GPS packet extract 2023-04-17 11:18:00 -04:00
Matthias Grob 5c1e0ddd96 FlightTaskTransition: use new 2D rotation 2023-04-15 21:57:40 +02:00
Matthias Grob 7ebd6cc74f FlightTaskManualPosition: use existing stick library rotation 2023-04-15 21:57:40 +02:00
Matthias Grob 7b850a91b4 Sicks: use new 2D rotation 2023-04-15 21:57:40 +02:00
Matthias Grob 43850c24a1 AttitudeControl: remove unnecessary scope operator 2023-04-15 21:57:40 +02:00
Matthias Grob 37d3218d11 matrix: add 2d rotation matrix 2023-04-15 21:57:40 +02:00
Matthias Grob c74322fc15 Pull request template: add changelog entry 2023-04-15 16:47:30 +02:00
Matthias Grob 1e94ad19c0 FlightModeManager: rework task starting
with the goal to make it more clear and the error only appear when
armed but every time the running task doesn't actually match
the mapping inside the start_flight_task() function.
2023-04-15 16:45:32 +02:00
JaeyoungLim b02a785033 microdds: add the position_sp_triplet to the dds topics (#21449)
- Position setpoint triplets can be useful for offboard processes to understand the intention of navigator
2023-04-14 13:37:45 -04:00
Silvan Fuhrer da519573d4 FWPositionControl: trim throttle calc: guard against min/max=trim airspeed (#21469)
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2023-04-14 11:55:23 +02:00
Silvan Fuhrer bc560ddddb RTL: fix Mission RTL vs normal RTL (#21464)
* Navigator: on_mission_landing() only can return true if currently in mission mode

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

* RTL: reset RTL state when not in RTL nav_state

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

* Navigator: fix mission vs. normal RTL

- remove extra state _should_engange_mission_for_landing from rtl and have
this logic outside of RTL where Navigator decides on running mission RTL or normal RTL
- fix logic in Navigator to decide mission RTL vs normal RTL

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

* Mission: land_start(): fix decision if already on mission landing

Simply checking landing() is not enough, as that is not reset until
set_current_mission_index(get_land_start_index()) later in the function.
Instead ask Naviator about it (on_mission_landing()).

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

* Navigator: only update _shouldEngangeMissionForLanding once, to not set it to false after VTOL backtansition

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

---------

Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2023-04-14 09:49:47 +02:00
alexklimaj 752e3b450d Update GPS submodule 2023-04-14 07:35:43 +02:00
Thomas Stastny 82fd2987c9 fw pos control: revert name until we delineate this module a bit more (#21442) 2023-04-13 17:00:04 +02:00
Beat Küng a2ce73d39d px4/fmu-v6x: increase BL baudrate for flashing via uart to 1500000 2023-04-13 07:46:49 +02:00
Beat Küng 989d9243b7 fix control_allocator: correct PRINT_MODULE_USAGE_NAME 2023-04-13 07:46:09 +02:00
Seppe Geuens 7e0f929ad1 gps: add sbf with heading (#19374)
Co-authored-by: Seppe Geuens <seppe.geuens@tii.ae>
2023-04-13 07:44:35 +02:00
Beniamino Pozzan 98026a3e10 gz_bridge: fix missing orientation and frames in odometryCallback (#21348)
Signed-off-by: Beniamino Pozzan <beniamino.pozzan@phd.unipd.it>
2023-04-12 22:46:16 +02:00
TheotimeBlg 67d03461d1 Port px4vision airframe to gz environment (#21409)
* Port of the PX4 Vision gazebo-classic model to Gazebo. With Gazebo Garden, everything seems functionnal.

* Port of the PX4 Vision gazebo-classic model to Gazebo.

With Gazebo Garden, everything seems functionnal.

* Added airframe for command make px4_sitl gz_px4vision

* revert author field

* Import model from Ignition Fuel instead of defining it directly in the .sdf
2023-04-12 18:46:49 +02:00
Daniel Agar 1234aae3df gimbal: output RC fix actuator_controls_2 -> gimbal_controls regression (#21460)
- small typo introduced in https://github.com/PX4/PX4-Autopilot/pull/20837
2023-04-11 22:03:42 +02:00
Damien SIX 958c202137 fix timesync source for DDS protocol 2023-04-11 09:13:48 +02:00
Shaun C ab1e0caae9 Add NAV_CMD_DO_SET_ACTUATOR to mission commands 2023-04-11 08:12:18 +02:00
Claudio Micheli 9821513a0a sensors module: add 3 decimals to all the type:float params
Signed-off-by: Claudio Micheli <claudio@auterion.com>
2023-04-11 08:11:04 +02:00
Jaeyoung Lim cbe611ce66 Update mavlink submodule to latest 2023-04-11 07:44:10 +02:00
Jacob Dahl 7f251d0935 fixed incorrect string-from-error function usage causing build failure 2023-04-11 10:04:43 +12:00
Julian Oes 0cfe135028 cubeorangeplus: enable bl_update
This way the bootloader can be updated.

Signed-off-by: Julian Oes <julian@oes.ch>
2023-04-10 15:19:25 +12:00
Julian Oes 728367a1dc cubeorange: enable bl_update
This way the bootloader can be updated.

Signed-off-by: Julian Oes <julian@oes.ch>
2023-04-10 15:19:25 +12:00
bresch 17806a9608 ekf2: robustify wind init using airspeed
Tests showed that sideslip fusion often starts just before airspeed
fusion, resetting the wind states to 0 instead of using the airspeed
data. A quick look at the wind uncertainty allows to know if the current
wind estimate is meaningful or if we should rather reset it using the
airspeed data.
2023-04-08 14:12:21 +02:00
Silvan Fuhrer 8f520ab019 tecs: fix throttle prediction (#21444)
* tecs: fix throttle prediction

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

---------

Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
Co-authored-by: Thomas Stastny <thomas.stastny@auterion.com>
2023-04-06 20:13:32 +02:00
Silvan Fuhrer 460956fd33 TECS: revert altitude controller to old logic
- if the height rate input into TECS is finite, use that one to
update a velocity reference generator
- if the velocity reference generator reports position locked or
height rate input is not finite, then run altidue reference generator
- run altitude controller only if altitue is controlled

if height_rate_setpoint is set, only use that one to update altitdue trajectory

Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2023-04-06 20:12:52 +02:00
Silvan Fuhrer dde656f4b1 TECS status: rename tecs_status.altitude_filtered to altitude_reference
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2023-04-06 20:12:52 +02:00
Silvan Fuhrer f06150bf0c FWController: write out tecs_status
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2023-04-06 20:12:52 +02:00
Silvan Fuhrer 60cd20c19c TECS: make more readable
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2023-04-06 20:12:52 +02:00
Silvan Fuhrer 2d01cf63ce TECS: rename _reference_model to _altitude_reference_model
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2023-04-06 20:12:52 +02:00
Silvan Fuhrer beeae1f673 TECS: rename TECSReferenceModel to TECSAltitudeReferenceModel
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2023-04-06 20:12:52 +02:00
Daniel Agar 0fa0e2f583 drivers/ins/vectornav: comment out redefined and remove -Wno-error 2023-04-06 14:06:57 -04:00
Daniel Agar cbc067f235 boards: include INS drivers by default on PX4 FMU (eg VectorNav VN-100, VN-200, VN-300) 2023-04-06 14:06:57 -04:00
Silvan Fuhrer 1f5046f165 FWPositionControl: trim throttle prediction improvements (#21345)
* FWPositionController: add linear airspeed-to-trim-throttle mapping

Scale trim throttle in a linear way with airspeed.
Different gradients above/below trim airspeed.

The airspeed- and airs density-corrected trim throttle is required for an accurate
throttle prediction in TECS, while the default trim throttle is still needed
as well, as the throttle delta from height rate setpoint delta is linked to it.

---------

Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2023-04-06 11:56:54 +02:00
Silvan Fuhrer 94fb334d8f Navigator: fix logic around when to switch to mission landing for RTL (#21390)
* Navigator: change way of telling logic if RLT was started just now

* Navigator: change logic around when to engage Mission mode for RTL

To find out if we're currently on a mission landing, check if we either are
past the land start marker OR currently land start marker is current WP
and vehicle is already in LOITER mode.

* Navigator: do not engage RTL at all if already on mission landing

* Navigator: consider to be on mission landing if the LOITER_TO_ALT and dist small

To find out if we're currently on a mission landing, check if we either are
past the land start marker OR currently land start marker is current WP,
the type is LOITER_TO_ALT and the vehicle is inside loiter.

---------

Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2023-04-05 10:11:14 +02:00
bresch fb3b4a3151 ekf2: remove duplicate buffer push of system flags 2023-04-04 15:56:09 -04:00
numan 831b0d9b11 uavcan: minor fix regarding log output (#21415)
Error message for "UavcanServers init" returns error code from UavcanServers->init instead of _sensor_bridges->init
2023-04-04 07:17:31 +02:00
Thomas Stastny f4681f01b6 drivers/gps: increase stack 2023-04-04 07:16:21 +02:00
Beat Küng aa5b9ae638 fix failsafe: correctly handle Hold RC loss action
Otherwise the additional mode check triggers an RTL which takes precedence
over Hold.
Introduced in 132e9d2439
2023-04-04 07:03:42 +02:00
Beniamino Pozzan f7ed553f57 holibro qav250 airframe: fix PWM_MAIN_TIM0
Signed-off-by: Beniamino Pozzan <beniamino.pozzan@phd.unipd.it>
2023-04-03 07:29:53 +02:00
Daniel Agar 13487c654d ROMFS: add SITL generic iris airframe (SYS_AUTOSTART 10016) for backwards compatibility (airsim, etc) (#21410) 2023-04-01 20:41:33 +02:00
Julian Oes 19752a7670 fmu-v2/v3: fix HW detection on CubeBlack
This fixes the case where the hardware detection fails on CubeBlack when
a CAN device is connected to CAN1 and talking, and therefore preventing
the check from getting a clear result.

Signed-off-by: Julian Oes <julian@oes.ch>
2023-04-01 10:34:24 -07:00
Julian Oes 50f8c30f10 fmu-v2/v3: refactor detection function
This consolidates the version/revision detection function.

This should allow for actual changes in a follow up commit.

Signed-off-by: Julian Oes <julian@oes.ch>
2023-04-01 10:34:24 -07:00
Beniamino Pozzan 448b915694 gazebo airframes: cleanup and fix missing parameters (#21411)
Signed-off-by: Beniamino Pozzan <beniamino.pozzan@phd.unipd.it>
2023-03-31 23:01:29 -07:00
bresch 89bb4622ef gazebo_tailsitter: disable multi-EKF for replayable logs 2023-03-31 15:22:38 -04:00
bresch 50b084cf17 MC auto: allow yawing during hold 2023-03-31 17:32:33 +02:00
bresch 62770c43f9 [AUTO COMMIT] update change indication 2023-03-31 10:15:12 +02:00
bresch ed7c4bc5d7 ekf2: init tilt using quaternion from gravity vector 2023-03-31 10:15:12 +02:00
Julian Oes 93ba7de0c3 gps: fix protocol param max
This seemed wrong.

Signed-off-by: Julian Oes <julian@oes.ch>
2023-03-30 07:43:06 +02:00
SungTae Moon 178b31b6ff jmavsim_run.sh: fix the wrong flags expression in getopt (#20162) 2023-03-30 07:22:31 +02:00
Beat Küng 932b743e13 ROMFS: add motor assignment to holybro x500 2023-03-28 08:18:26 -07:00
Ramon Roche 319f3db5e1 tools: ip converter remove verbose output 2023-03-27 10:28:43 -07:00
Beniamino Pozzan 51dd6b783c microdds_client: Mark parameter as used only if truly used
Signed-off-by: Beniamino Pozzan <beniamino.pozzan@phd.unipd.it>
2023-03-27 10:28:43 -07:00
Beniamino Pozzan c7f67a3328 microdds_client: remove multi-instances supports, add agent IP as PX4 parameter
- multi-instances support is removed from the parameter definitions.

- XRCE_DDS_AG_IP allows to define the agent IP when udp transport is used.
The parameter is used by default if the module is started without the -h argument.

- XRCE_DDS_PRT allows to define the agent listning udp port when the
udp transport is uded. The parameter is used by default if the module is started
without the -p argument.

- Tools/convert_ip.py assists in converting ips in decimal dot notation into int32
notation.

Signed-off-by: Beniamino Pozzan <beniamino.pozzan@phd.unipd.it>
2023-03-27 10:28:43 -07:00
Daniel Mesham 6fddbea3e4 microdds_client: fix check for length of participant XML (#21374) 2023-03-27 10:03:09 -07:00
Silvan Fuhrer ba17a137e1 Navigator: MissionFeasibiltyCheck first WP: check only to current vehicle position
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2023-03-27 17:43:33 +02:00
Silvan Fuhrer 465ddddbfd Navigator: take min of vehicle position or Home distance for first WP check
To prevent mission rejections when vehicle is currently far away from Mission start,
but planned home is close to it.

Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2023-03-27 17:43:33 +02:00
Silvan Fuhrer d8ed35c422 Navigator: take vehicle position for first-WP-distance-check
And only use Home position if current vehicle position is unknown.

Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2023-03-27 17:43:33 +02:00
Silvan Fuhrer 4d2a31afe3 Navigator: remove max distance between WP mission feasibility check (MIS_DIST_WPS)
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2023-03-27 17:43:33 +02:00
Junwoo Hwang 9c001f2e40 Fix SITL Test failure: Place PX4 instance runner after Gazebo server runner (#21230)
* MAVSDK_Test_Runner: Place PX4 instance runner after Gazebo server runner

- This was a nasty bug where starting PX4 instance first, then starting
  Gazebo server was causing PX4 instance' EKF to freak out, probably
because it doesn't like getting data a while after it is started
- Detailed breakdown is given here: https://github.com/PX4/PX4-Autopilot/issues/21229#issuecomment-1450761542
- This now guarantees that such edge case won't occur and MAVSDK test
  will run as it should

* MAVSDK Test Runner: Retain comment within 79 character limit

- To pass flake8 python style check

* Update test/mavsdk_tests/mavsdk_test_runner.py

Co-authored-by: Julian Oes <julian@oes.ch>

---------

Co-authored-by: Julian Oes <julian@oes.ch>
2023-03-26 11:27:01 +09:00
PX4 BuildBot 58a5aa26a0 Update submodule mavlink to latest Sat Mar 25 00:39:09 UTC 2023
- mavlink in PX4/Firmware (73104cab2e49118903cf32bdf11f6ea917fa394e): https://github.com/mavlink/mavlink/commit/2bdcab78b53d1e349079b43c9d726036abe0617c
    - mavlink current upstream: https://github.com/mavlink/mavlink/commit/e1e68da5e6f2e44c3126cafc0780f6fee2c2b4f2
    - Changes: https://github.com/mavlink/mavlink/compare/2bdcab78b53d1e349079b43c9d726036abe0617c...e1e68da5e6f2e44c3126cafc0780f6fee2c2b4f2

    e1e68da5 2023-03-08 Hamish Willee - Add quickstart to the README (#1960)
9b92bf2e 2023-03-08 Hamish Willee - Fix enum value for payload battery (#1959)
81e9fcd5 2023-03-08 Hamish Willee - Allocate range for ras-a and indicate next free range (#1957)
abbda253 2023-03-02 Hamish Willee - Indicate preference for COMMAND_INT (#1955)
d3a8e4b8 2023-02-08 Julian Oes - development: add command to configure SiK radio
2023-03-24 21:43:59 -04:00
PX4 BuildBot 8306fb96ea boards: update all NuttX defconfigs 2023-03-24 10:03:14 -04:00
PX4 BuildBot efab9be488 update all px4board kconfig 2023-03-24 10:01:58 -04:00
Daniel Agar 4d9369dc67 Update world_magnetic_model to latest Fri Mar 24 11:14:06 UTC 2023 2023-03-24 09:39:26 -04:00
Silvan Fuhrer e8a8e7c677 VTOL: increase deafult of VT_QC_T_ALT_LOSS from 10 to 20m
Testing has shown that 10m is a bit too tight, most of all as this check is also run in not height-controlled
flight modes (eg Stabilized), and there 10m altitude loss during transitions can happen easily.

Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2023-03-24 13:33:52 +01:00
Silvan Fuhrer e58d33284a vtol: correct/improve quad-chute param description
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2023-03-24 13:33:52 +01:00
Matthias Grob 937d27f8ee Helicopter: add offset for yaw compensation based on collective pitch 2023-03-24 07:16:36 +01:00
Beniamino Pozzan eeb90ac70a gazebo-classic/sitl_mutliple_run.sh: start spawning drones from index 1 (#21183)
Fix microdds key session collision when drones
with index 0 and 1 are used together

Signed-off-by: Beniamino Pozzan <beniamino.pozzan@phd.unipd.it>
2023-03-24 05:58:26 +01:00
Antonio Sanjurjo C 1ea993880c Fix typo in WORK_ITEM_TYPE (#21311)
Signed-off-by: Antonio Sanjurjo C <74329840+antonio-sc66@users.noreply.github.com>
2023-03-24 05:49:14 +01:00
Julian Oes 09a0089c80 README: add Cube Orange+ (#21361)
This adds the Cube Orange+ to the list, and also changes the Hex naming
to CubePilot as that is how it is sold/marketed now.

Signed-off-by: Julian Oes <julian@oes.ch>
2023-03-24 05:21:43 +01:00
Daniel Agar cc2b367c0b drivers/uavcannode: fix typo (hydrometer->hygrometer) 2023-03-23 22:06:55 -04:00
Silvan Fuhrer 5b6d1e9290 TECS: change default for FW_T_I_GAIN_THR from 0.3 to more appropriate 0.1
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2023-03-23 15:00:36 +01:00
Silvan Fuhrer ac6c9c857a Gimbal: remove shutter and retraction handling
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2023-03-23 06:59:02 +01:00
Frederic Taillandier 18898f1876 updating sitl-gazebo classic (#21352)
Co-authored-by: root <root@DESKTOP-OINCOKE>
2023-03-22 14:04:02 +01:00
Silvan Fuhrer d532578ecc EKF2: only check for EKF2_BETA_FUSION when corresponding kconfig option is set
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2023-03-22 10:05:32 +01:00
Silvan Fuhrer 98d07ad1f3 disable side slip fusion for tailsitters
The attitude frame is wrong for tailsitters doing side slip fusion for wind estimation.
It doesn't take into account that the frames is 90deg tilted in FW flight.

Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2023-03-22 10:05:32 +01:00
Silvan Fuhrer 07531d29b7 FailureDetector: fix attitude check for tailsitter
-set roll/pitch used for failure detection during transition to 0
-rotate estimated attitude 90° in FW flight

Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2023-03-22 10:05:32 +01:00
Silvan Fuhrer edc570adff AirspeedSelector: fix attitude rotation for tailsitter
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2023-03-22 10:05:32 +01:00
bresch 6bee0893de add circle intersection unit tests 2023-03-22 10:03:48 +01:00
bresch af345c88e9 TrajMath: use fmaxf instead of max 2023-03-22 10:03:48 +01:00
bresch c7bddda1db MC auto: add maximum RC assist distance during landing 2023-03-22 10:03:48 +01:00
bresch d6fa42fefd mc att: add unit tests for AttitudeControlMath helper 2023-03-22 10:01:27 +01:00
bresch edaf5bf0cd mc att: extract tilt yaw error compensation to lib 2023-03-22 10:01:27 +01:00
bresch f65daf7259 mc att: do not pass by euler angles to generate att sp from sticks 2023-03-22 10:01:27 +01:00
bresch 3e3307c0d0 ekf2: fix mag declination innovation angle wrapping 2023-03-21 21:07:28 -04:00
David Sidrane 64e90b91aa px4_fmu-v6c:Add Mini & fix Rev 1 (#21226) 2023-03-21 09:16:35 -07:00
Daniel Agar 32a5bd32ad ekf2: add kconfig option to enable/disable range finder fusion (and terrain estimator) 2023-03-21 11:25:34 -04:00
Daniel Agar 0784901a66 ekf2: add kconfig option to enable/disable optical flow fusion 2023-03-21 11:25:34 -04:00
Matthias Grob 9f8fa99d70 matrix: use stack allocation for debug output string 2023-03-21 15:01:26 +01:00
Matthias Grob b1435c6e34 matrix: use output stream function template
to enable proper automatic output in gtest unit tests
that compare two `Matrix`, `Vector` or two `Dual` objects.

Credits to @jwidauer for showing me this trick.
2023-03-21 15:01:26 +01:00
Matthias Grob b0189d95af Use new Vector4 class 2023-03-21 15:01:26 +01:00
Matthias Grob 08d6465ce5 matrix: add explicit Vector4 type 2023-03-21 15:01:26 +01:00
Matthias Grob da0e40c72b googletest: switch to latest version 1.12.1 -> 1.13 2023-03-21 15:01:26 +01:00
bresch 91364ba901 mc land detect: use z_deriv and vz for vert movement check
z_deriv is less prone to bias errors
2023-03-21 09:22:58 -04:00
Beat Küng 22c94f805a component information: add translation support 2023-03-20 21:57:25 -04:00
Jukka Laitinen 631046b962 src/drivers/sw_crypto: Correct RSA lengths in the example sw crypto backend driver
Maximum plaintext length was wrong, it is just k - 2 * hLen -2, where k is RSA key modulus length and hLen is hash length

Also minimum block that can be encrypted didn't make sense for RSA-OAEP, it is just 1 byte, the rest will be padded.

Signed-off-by: Jukka Laitinen <jukkax@ssrc.tii.ae>
2023-03-20 21:54:40 -04:00
Jukka Laitinen b26669b085 Add crypto_deinit function for crypto_backend module
Bootloader needs to have a mechanism to de-initialize crypto, in case some HW accelerator
is being used. This adds the needed function for it

Signed-off-by: Jukka Laitinen <jukkax@ssrc.tii.ae>
2023-03-20 21:54:40 -04:00
Beat Küng 8497d3388f fix mavlink_ulog: use hrt_abstime instead of float
The float inaccuracy was leading to problems on SITL with large timestamps.
2023-03-20 21:47:41 -04:00
Daniel Agar 1524bd39b5 .gitignore: ignore generate top level log/ folder (colcon) 2023-03-20 11:06:12 -04:00
Daniel Agar 4363b09421 ekf2: add kconfig option to enable/disable external vision fusion 2023-03-20 10:12:17 -04:00
Daniel Agar d47f96f1a5 ekf2: add kconfig option to enable/disable AUX velocity fusion 2023-03-20 10:12:17 -04:00
Daniel Agar 4270a303ab ekf2: add kconfig option to enable/disable airspeed and sideslip fusion 2023-03-20 10:12:17 -04:00
Daniel Agar 98ff1afc19 ekf2: add kconfig option to enable/disable GNSS yaw 2023-03-20 10:12:17 -04:00
Daniel Agar 8b2205810b ekf2: add kconfig option to enable/disable baro compensation 2023-03-20 10:12:17 -04:00
Daniel Agar fe0e3acf09 ekf2: add kconfig option to enable/disable drag fusion 2023-03-20 10:12:17 -04:00
frederic@auterion.com 9a56b0a70d refactoring jinja-gen call in a cleaner way 2023-03-20 14:50:56 +01:00
numan ed174d54e9 fix typo in LeddarOne.cpp
added missing "~"
2023-03-20 07:51:00 +01:00
alexklimaj e2de62e38b GPS only warn if jamming state is critical 2023-03-17 21:38:28 -04:00
Silvan Fuhrer 0afda910d1 VTOL: make sure that all virtual topics are updated
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2023-03-17 19:43:01 +01:00
Andrew Brahim 71c746b9bf drivers/distance_sensor/lightware_sf45_serial: fix path to crc lib (no longer in systemlib)
Signed-off-by: dirksavage88 <dirksavage88@gmail.com>
2023-03-17 09:35:46 -04:00
alexklimaj 0ae296bfe2 ARK CANnode fix params 2023-03-16 14:32:36 -04:00
Silvan Fuhrer c7d4d1f45c FWPositionControl: HOTFIX: zero airspeed rate estimation input to TECS
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2023-03-16 16:58:08 +01:00
Silvan Fuhrer b33a8686f7 FWPositionController: only store acceleration and velocity in x
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2023-03-16 16:58:08 +01:00
Silvan Fuhrer 28db47480d TECS: remove ununsed getSteRate()
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2023-03-16 16:58:08 +01:00
Daniel Agar 6ec2b902cc ROMFS: only copy bootloader binary if systemcmds/bl_update included 2023-03-16 09:43:56 -04:00
Silvan Fuhrer d5e1f0fdaa uorb_graph: remove handling for actuator_controls topic
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2023-03-16 11:55:45 +01:00
Silvan Fuhrer 17cd65a239 Navigator: remove support for DO_SET_SERVO
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2023-03-16 11:55:45 +01:00
Silvan Fuhrer a1812dbde0 gimbal: move gimbal controls to new dedicated topic
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2023-03-16 11:55:45 +01:00
Silvan Fuhrer 1218d9b2fc mavlink_mission: remove support for DO_SET_CAMERA_ZOOM
Camera controls should not happen through the flight controller, and
the control allocation has no means of controlling the camera zoom.

Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2023-03-16 11:55:45 +01:00
Silvan Fuhrer 27658354da MavlinkReceiver: remove support for SET_ACTUATOR_CONTROL_TARGET
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2023-03-16 11:55:45 +01:00
Silvan Fuhrer b16f16598b VTOL: remove virtual actuator_controls and instead use virtual torque/thrust topics
MC/FW rate controller and auto tuner: remove actuator_controls

AirshipAttControl: remove actuator_controls

MulticopterLandDetector: remove actuator_controls

mavlink streams vfr_hud and high_latency2: remove actuator_controls

RoverPositionController: remove actuator_controls

UUVAttitudeController: remove actuator_controls

battery: use length of thrust_setpoint for throttle compensation

VehicleMagnetometer: use length of thrust_setpoint for throttle compensation

Signed-off-by: Silvan Fuhrer
2023-03-16 11:55:45 +01:00
akkawimo bcd6e7adee comment out fake_traffic to prevent flash overflow 2023-03-16 07:32:43 +01:00
Mohamad Akkawi 9de52bb5ec [navigator] Tone Down traffic warnings
- add unit tests for adsb conflict detection
- move adsb conflict detection to lib/adsb and adsb conflict class
- use containers/Array.hpp for buffer array
- expand fake_traffic
2023-03-16 07:32:43 +01:00
Julian Oes 89548e4f9e gps: Support for Unicore HEADINGA sentence in NMEA
This adds a parser for Unicore sentences sent in-between NMEA sentences.

This brings support for the Unicore UM982 module which publishes heading
information based on the two antennas.

Signed-off-by: Julian Oes <julian@oes.ch>
2023-03-15 21:55:15 -04:00
Alex Klimaj ea97a38b2b Initial Cannode PWM Support (#19748)
* Add uavcannode esc/servo pwm control pipeline
* Remove cannode rc.interface with mixer purge
* Cannode add Kconfig options to reduce flash usage
2023-03-15 11:20:07 -04:00
Daniel Agar f0a95f9572 ekf2: add new kconfig option for multi-EKF
- disabled if flash constrained or memory constrained
2023-03-15 09:32:47 -04:00
Daniel Agar 19a2b4ec31 ekf2: GNSS yaw only reset test ratio for new samples
- otherwise external test ratio monitoring could trigger a false positive
2023-03-14 21:49:24 -04:00
AlexKlimaj e375e02974 Add GPS spoofing state 2023-03-14 20:28:32 -04:00
Julian Oes 2605562a69 cubeorangeplus: add I2C4, start AK09918
CubeOrange+ which have the ICM45686, also have the AK09918 connected
on the internal I2C4.

Signed-off-by: Julian Oes <julian@oes.ch>
2023-03-14 08:34:28 -04:00
Julian Oes 695d48d6c9 AK09916: add support for AK09918
The AK09918 seems to only differ in the WHO_AM_I ID.

Signed-off-by: Julian Oes <julian@oes.ch>
2023-03-14 08:34:28 -04:00
Julian Oes 7be3279675 cubeorangeplus: add check for SMPS support
If NuttX is built without support for SMPS it can brick the hardware.
Therefore, I suggest that we add this additional compile-time check.

Signed-off-by: Julian Oes <julian@oes.ch>
2023-03-13 22:54:41 -04:00
Julian Oes 36f430e385 cubeorangeplus: save some flash space
We need to make space for drivers.

Signed-off-by: Julian Oes <julian@oes.ch>
2023-03-13 22:53:56 -04:00
Julian Oes bee4fe9470 boards: sensor config for CubeOrange+
Signed-off-by: Julian Oes <julian@oes.ch>
2023-03-13 22:53:56 -04:00
Julian Oes 63dc6b5bc9 ICM45686: fix clipping due to rotation
It turns out that when you rotate by 45 degrees, as required on the
CubeOrange+, then you can easily get into clipping because the vector
components are constrained after the rotation. In order to avoid that,
we have to avoid getting close to the int16 range and switch from 20 bit
resolution to 16bit resolution earlier.

Signed-off-by: Julian Oes <julian@oes.ch>
2023-03-13 22:53:56 -04:00
Julian Oes f4b48e685f drivers: add ICM45686
Signed-off-by: Julian Oes <julian@oes.ch>
2023-03-13 22:53:56 -04:00
Beniamino Pozzan 82dce9353c gz models: fix deprecated warnings (#21285)
Signed-off-by: Beniamino Pozzan <beniamino.pozzan@phd.unipd.it>
2023-03-13 12:28:20 -07:00
bresch fd33e60f78 ekf: fix GNSS yaw fusion wrapping 2023-03-13 10:46:34 +01:00
akkawimo 3bae99267b fix(precland): Improved log messages (#21289) 2023-03-13 08:39:31 +01:00
Daniel Agar 9be8f81d75 flight_mode_manager: StickAccelerationXY protect from NAN velocity reset
Co-authored-by: Matthias Grob <maetugr@gmail.com>
2023-03-10 08:17:20 -05:00
Daniel Agar 435c799f57 uORB: print more decimal places for float32 and float64 2023-03-10 07:39:34 +01:00
Frederic Taillandier 91f6ab865c ROMFS: fix shellcheck error in px4-rc.simulator (#21282) 2023-03-10 07:37:45 +01:00
Matthias Grob bd5838faf0 FlightTask: don't instaniate unused parameters 2023-03-09 17:40:55 +01:00
Tony Samaritano eb4da990c3 init.d-posix/px4-rc.simulator: adds non-default LAT and LON as optional environment variables 2023-03-09 09:40:35 -05:00
Daniel Agar b3cc945a5a ekf2: merge runOnGroundYawReset() + runInAirYawReset() into unified magReset() 2023-03-09 09:08:27 -05:00
Daniel Agar c1f244a6fd ekf2: decrease EKF2_MAG_YAWLIM default 0.25 -> 0.2 rad/s (#21264) 2023-03-09 09:07:54 -05:00
Daniel Agar 60b85c2e1a mavlink: add kconfig option to disable UAVCAN parameter bridge
- depends on DRIVERS_UAVCAN
2023-03-08 19:30:06 -05:00
frederictaillandier eb86cb85b7 removing MOUNT_ORIENTATION on udp_gcs_port_local from typhoon 2023-03-09 12:43:47 +13:00
Daniel Agar 4dda5a97d8 ekf2: mag_3d check mag bias variance before allowed to update all states (orientation) 2023-03-08 15:12:48 -05:00
Julian Oes ea20217c1b kakuteh7v2/mini: EKF2 is already the default 2023-03-08 10:48:31 -05:00
Julian Oes 593b3d250d kakuteh7mini: remove duplicate param defaults
Signed-off-by: Julian Oes <julian@oes.ch>
2023-03-08 10:48:31 -05:00
Julian Oes ed49ed3903 kakuteh7v2/mini: use EKF2 without mag by default
This switches from attitude_estimator_q to EKF2 which should now work
without mag when the params are set to SYS_HAS_MAG = 0 and
EKF2_IMU_CTRL = 7 to enable gravity fusion.

Signed-off-by: Julian Oes <julian@oes.ch>
2023-03-08 10:48:31 -05:00
Matthias Grob 132e9d2439 modeCheck: add warning when RC enabled but not present 2023-03-08 09:32:56 +01:00
Matthias Grob 898c0ae5a8 mode_requirements: refactor order of setting flags 2023-03-08 09:32:56 +01:00
Matthias Grob 7fa8dfe2d2 rcAndDataLinkCheck: always update manual control availability
and remove duplicate manual control check
possibly it needs to be readded to give warning
about RC enabled but not present.
2023-03-08 09:32:56 +01:00
Matthias Grob f498b90c41 mode_requirements: add manual control for manual modes 2023-03-08 09:32:56 +01:00
Beniamino Pozzan 636dfdec6a VScode: fix tasks.json and launch_sitl.json after ign -> gazebo renaming
PX4_SIM model need the simulator (gz_) prefix
Fix post debug task
Add x500_depth, rc_cessna, standard_vtol

Signed-off-by: Beniamino Pozzan <beniamino.pozzan@phd.unipd.it>
2023-03-07 21:28:39 -05:00
Daniel Agar d45aeae1de ekf2: add and share centralized method to clear inhibited state Kalman gains 2023-03-07 13:27:57 -05:00
Konrad 7098970a38 Tools: extend documentation parser:
- Add the possibility in the parser to replace the defines made in the current file with their argument (includes are not supported)
- Add the possibility for the parser to parse int argument with bitwise shift operators
2023-03-06 18:34:01 -05:00
PX4 BuildBot 603d4b999b Update submodule sitl_gazebo-classic to latest Mon Mar 6 12:38:18 UTC 2023
- sitl_gazebo-classic in PX4/Firmware (7edce94b93): https://github.com/PX4/PX4-SITL_gazebo-classic/commit/9343aaf4e275db48fce02dd25c5bd8273c2d583a
    - sitl_gazebo-classic current upstream: https://github.com/PX4/PX4-SITL_gazebo-classic/commit/e3722bf9132567e8dd08b7ed6df2986e21a6ec18
    - Changes: https://github.com/PX4/PX4-SITL_gazebo-classic/compare/9343aaf4e275db48fce02dd25c5bd8273c2d583a...e3722bf9132567e8dd08b7ed6df2986e21a6ec18

    e3722bf 2023-02-24 Frederic Taillandier - Allowing to override sniffer's modules ip (#963)
2221c95 2023-02-24 Frederic Taillandier - removing macos 1015 github actions (#962)
48e9b17 2023-02-24 frederic@auterion.com - removing debug
265198d 2023-02-24 frederic@auterion.com - fixing indentation
de9bf14 2023-02-24 frederic@auterion.com - try fix build by updating the path to the right gazebo
ec8641d 2022-08-24 Konrad - Revert "Enable multi IMU capability in gazebo mavlink interface"
487a789 2023-02-21 Jaeyoung Lim - Revert "Add multi magnetometer capability. Magnetometer plugin now derived from sensorplugin. Magnetometer topic dervied from naming. Updated all models with magnetometer submodel"
2023-03-06 18:33:00 -05:00
Silvan Fuhrer 2d92bd627a FWRateController: always update manual_control_setpoint if in manual and FW
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2023-03-06 22:43:41 +01:00
Silvan Fuhrer caee131e6a FW Position Controller: mini fw_control_yaw_wheel refactoring
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2023-03-06 22:43:41 +01:00
Silvan Fuhrer 1e56d9c219 Rework flaps/spoilers logic
- remove deprecated actuator_controls[INDEX_FLAPS/SPOILERS/AIRBRAKES]
- use new topic normalized_unsigned_setpoint.msg (with instances flaps_setpoint
and spoilers_setpoint) to pass into control allocation
- remove flaps/spoiler related fields from attitude_setpoint topic
- CA: add possibility to map flaps/spoilers to any control surface
- move flaps/spoiler pitch trimming to CA (previously called DTRIM_FLAPS/SPOILER)
- move manual flaps/spoiler handling from rate to attitude controller

FW Position controller: change how negative switch readings are intepreted
for flaps/spoilers (considered negative as 0).

VTOL: Rework spoiler publishing in hover

- pushlish spoiler_setpoint.msg in the VTOL module if in hover
- also set spoilers to land configuration if in Descend mode

Allocation: add slew rate limit of 0.5 to flaps/spoilers configuration change

Instead of doing the flaps/spoilers slew rate limiting in the FW Position Controller
(which then only is applied in Auto flight), do it consistently over all flight
modes, so also for manual modes.

Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2023-03-06 22:43:41 +01:00
Silvan Fuhrer 16594bffa9 Rework landing gear logic
- remove deprecated actuator_controls[INDEX_LANDING_GEAR]
- remove dead code in mc rate controller that used to prevent it from being retracted
on the ground (anyway had no effect as it only affected the actuator_control[LANDING_GEAR]
which wasn't sent to the control allocation)
- for VTOLs handle deployment/retraction of landing gear in AUTO  as a MC (retract if
more than 2m above ground, deploy if WP is a landing WP), plus additionally when transition
flight task is called (ALTITUDE mode and higher)
- for FW in AUTO: add logic in FW Position Controller, depending on waypoint type mainly
- manual landing gear settings always come through (a manual command overrides a previous
auto command, and vice-versa)

Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2023-03-06 22:43:41 +01:00
Silvan Fuhrer 3e884116c4 logged_topics: make landing_gear_wheel optional and increase interval to 100ms
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2023-03-06 22:43:41 +01:00
Silvan Fuhrer 4b54ddfe61 Remove INDEX_COLLECTIVE_TILT from actuator_controls and instead use new topic tiltrotor_extra_controls
Tiltrotor_extra_controls also contains collective thrust beside collective tilt, as passing a 3D
thrust setpoint vector beside the tilt is not feasible.

Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2023-03-06 22:43:41 +01:00
Eric Katzfey 21c7f8ad74 posix server: changed the method of checking and setting the server file lock (#21243)
* Changed the method of checking and setting the server file lock on Posix to avoid conditions where the server can indicate that it is running but still hasn't finished it's initialization
2023-03-06 09:55:57 -05:00
Eric Katzfey 5cade89499 Improve logging for Modal IO ESC (#21188)
- always publish esc_status
 - when enabled via MODAL_IO_VLOG param, enable actuator debug output

 - for modal_io commands, use ESC HW ID values instead of motor number for easier use
 - publish esc_status message for command line commands

 - Uncommented the code that fills in the cmdcount and power fields in the esc_status topic

---------

Co-authored-by: Travis Bottalico <travis@modalai.com>
2023-03-06 09:51:22 -05:00
Eric Katzfey daa302cdbe Changes to allow the commander module to be built and run on Qurt (#21186)
* Changed exclusion to rely on the definition of PX4_STORAGEDIR
2023-03-06 09:49:07 -05:00
Silvan Fuhrer dc4926dc4d remove WheelEncoders.msg
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2023-03-06 09:43:01 -05:00
Silvan Fuhrer 0633d0d826 drivers: remove RoboClaw
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2023-03-06 09:43:01 -05:00
Jaeyoung Lim e5d5fcd315 Subscribe to vehicle odometry in GZ Bridge
This PR subscribes to the vehicle odometry in gz bridge / Add x500_vision model
Fix transforms
F
2023-03-06 09:27:35 -05:00
Tahsincan Köse 8737099a33 commander: failsafe framework fix missing return in actionStr function (#21245)
- there needs to be a default statement for the compiler to work when this function is called.
2023-03-06 09:21:20 -05:00
Beniamino Pozzan b79578fa55 efk2: Force external vision vertical position if EKF2_HGT_REF=VISION
Signed-off-by: Beniamino Pozzan <beniamino.pozzan@phd.unipd.it>
2023-03-06 09:19:49 -05:00
Daniel Agar 3fac85369e ekf2: gps control use adjusted velocity and position for reset 2023-03-06 09:03:39 -05:00
Silvan Fuhrer 95754876ed Apply small suggestions from code review
Further param description improvements.

Co-authored-by: Matthias Grob <maetugr@gmail.com>
2023-03-06 14:00:02 +01:00
Silvan Fuhrer ec38ec660c FW controllers: make param description more concise
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2023-03-06 14:00:02 +01:00
Silvan Fuhrer 4be74befd2 VTOL: remove pusher reverse feature
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2023-03-06 14:00:02 +01:00
Silvan Fuhrer c09bf66639 VTOL: make param descripion more concise
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2023-03-06 14:00:02 +01:00
Silvan Fuhrer 9a038281c5 RoverPositionController: remove some unused stuff
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2023-03-06 14:00:02 +01:00
Silvan Fuhrer feec8b2036 L1: remove some functions that Rover doesn't need
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2023-03-06 14:00:02 +01:00
Silvan Fuhrer 7edce94b93 v2_default: disable hover thrust estimator to safe flash
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2023-03-02 12:22:18 -05:00
Daniel Agar 74130d7f71 ucdr msg template add timestamp protections
- if timestamp (or timestamp_sample) unpopulated fill it with current hrt_absolute_time()
 - if using provided timestamp don't allow it to exceed current hrt_absolute_time()
2023-03-02 09:52:53 -05:00
Matthias Grob 0770478dc7 FlightTaskDescend: Enable nudging by sticks when it's enabled
and stick input is available.
2023-03-02 12:06:40 +01:00
Matthias Grob 728570828f FlightTaskManualAltitude: use StickTiltXY for horizontal stick mapping 2023-03-02 12:06:40 +01:00
Matthias Grob 21d580293a StickYaw: use consistently for all flight tasks
- Switching to the first order filter that was previously
only in FlightTaskManualAltitude.
- Moving the scaling of full stick deflection to
radians per second into the class.
2023-03-02 12:06:40 +01:00
Matthias Grob 0c1f340154 StickAccelerationXY: improve comments 2023-03-02 12:06:40 +01:00
Matthias Grob a29d02fd62 MulticopterRateControl: don't instaciate unused parameter 2023-03-02 12:06:40 +01:00
Matthias Grob da4644c20a Sticks: only use stick input if flagged valid
and add a function for just pitch roll stick input
2023-03-02 12:06:40 +01:00
Matthias Grob 1dada5daf4 Add StickTiltXY utility class to FLightTasks
to map stick input to vehicle tilt consistently and reliably across modes.
2023-03-02 12:06:40 +01:00
Silvan Fuhrer 0c4b288973 RTL: only do calculations in is-inactive if global position is recent (#21208)
* RTL: only do calculations in is-inactive if global position is recent

* RTL: refactor calcRtlTimeEstimate to only calc and not pub


Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2023-03-02 11:09:32 +01:00
Beniamino Pozzan 458c351585 setup/ubuntu.sh: Only install Gazebo Garden for Ubuntu 22.04 (#21173)
* Tools/setup/ubuntu.sh: Only install Gazebo Garden on Ubuntu 22.04

Signed-off-by: Beniamino Pozzan <beniamino.pozzan@phd.unipd.it>

* Apply suggestions from code review

---------

Signed-off-by: Beniamino Pozzan <beniamino.pozzan@phd.unipd.it>
Co-authored-by: Hamish Willee <hamishwillee@gmail.com>
2023-03-02 10:51:29 +11:00
Andrew Brahim 184c7fe79d drivers/distance_sensor: Lightware Lidar SF45/B rotating sensor serial driver (#19891)
Signed-off-by: dirksavage88 <dirksavage88@gmail.com>
2023-03-01 16:16:25 -05:00
Daniel Agar bde194fb12 simulation/gz_bridge: local_position_groundtruth include heading (#21224) 2023-03-01 18:44:31 +01:00
Beat Küng e129534a58 fix ROMFS: add rc.autostart_ext to cmake 2023-03-01 08:53:17 -05:00
Daniel Mesham fe48de6240 Check position subscriber before force-send flag when sending GPS global origin stream 2023-03-01 08:52:41 -05:00
DanielePettenuzzo 539f874325 mavlink main - enable gps global origin stream also on mavlink low bw mode and change all rates to 1Hz 2023-03-01 08:52:41 -05:00
DanielePettenuzzo 6bf19ebe23 gps global origin stream - make sure we can always send out the message at least once on request
When requesting a message from a stream that is not active we start the
stream with interval=0 and call the request method once. For all streams
this works fine except the gps_global_origin. For this one the request method
is actually overidden to throttle down the rate and not just send out the message.
This will cause this message to never being sent on request if the stream
is not active by default.
2023-03-01 08:52:41 -05:00
Silvan Fuhrer 76116d79f9 TECS: remove umcommanded_descent flag
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2023-03-01 10:39:09 +01:00
Silvan Fuhrer 527225357b TECS: remove unused TECS_MODE_CLIMBOUT
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2023-03-01 10:39:09 +01:00
Tony Samaritano 2b73b6df70 commander: fixes valid mag count in HIL 2023-03-01 08:05:23 +01:00
Junwoo Hwang d6b523b574 Update README: Maintainers, Boards, Roadmap (#21030)
* Update README: Maintainers, Boards, Roadmap

- First step after the community coordination call from January 30th

* README: Fromat list & remove discontinued boards & add others

- Addressed comments

* README: Add Simulation, remove QGC

- Only leave the PX4 specific categories (QGC is not)

* Add Beniamino as ROS2 maintainer

* README: Add note that README is main source of truth for maintainers

- We need to have a source of truth, we can use Github README for that.
2023-02-28 19:06:09 +01:00
Marco Räth bdb0fe77d0 v6x: fix mag orientation for V6X009010 and V6X010010 (#21194) 2023-02-28 11:01:16 +01:00
João Neto 58000ff61c Tools/setup/ubuntu.sh: remove comment from continued line (#21191)
Comment broke script
2023-02-28 08:12:20 +01:00
Daniel Agar b5a6d6db0d ekf2: fix controlEvYawFusion() yaw reset 2023-02-24 16:59:59 -05:00
Daniel Agar a06a635da3 drivers/inv/vectornav: fix official vectornav library NuttX support
- vectornav library (libvnc) fixed for NuttX
   - open serial port O_NONBLOCK (like __APPLE__)
   - set serial port baud rate with cfsetspeed (like __APPLE__)
 - vectornav backend thread increase stack and run at higher priority (SCHED_FIFO)
2023-02-24 16:59:38 -05:00
Silvan Fuhrer 837095b9a8 tecs: use FW_T_SINK_MIN for STE_rate_min (#21190)
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2023-02-24 15:46:41 +01:00
Roman Bapst 33b54f7c57 vtol_att_control: Consolidate logic for front transiton completion (#21107)
* vtol_att_control: consolidate logic for front transiton completion

Signed-off-by: RomanBapst <bapstroman@gmail.com>

* addressed review comments

Signed-off-by: RomanBapst <bapstroman@gmail.com>

---------

Signed-off-by: RomanBapst <bapstroman@gmail.com>
2023-02-24 15:52:27 +03:00
Silvan Fuhrer 4259b5adac Commander: copy sensor_gps in HomePosition::update() and store relevant fields in separate variables
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2023-02-24 13:32:38 +01:00
Silvan Fuhrer 006321e278 Commander: remove unused param COM_POS_FS_EPV
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2023-02-24 13:32:38 +01:00
Silvan Fuhrer 526e066d9a Commander: rework GPS invalid warning to use estimator feedback instead of separate GPS quality thresholds
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2023-02-24 13:32:38 +01:00
Silvan Fuhrer e6af8b9aa6 Commander: Home Position: move gps checks on when to allow setting home pos inside HomePosition class
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2023-02-24 13:32:38 +01:00
Igor Mišić 352f773ec4 systemcmds/mtd: fix rwtest - force data to/from the device
Block Device driver uses a buffer so we need to ensure data is written or read to the device and not to the buffer so we can be sure if the device works properly
2023-02-24 08:08:19 +01:00
Dmitry Ponomarev a1efafc42b drivers/cyphal: incremental fixes for fmu-v5 (#20671)
* Cyphal: fix comparing floating-point issue

* Cyphal: fix setpoint serialization

* Cyphal: fix bug with wrong comparasion of param name and pub/sub name: remove prefix from UavcanPublisher::updateParam and UavcanDynamicPortSubscriber::updateParam and PublicationManager::updateDynamicPublications

* Cyphal: integrate UavcanEscController with PublicationManager, remove second instance of UavcanEscController from CyphalNode

* Cyphal: publish readiness with minimal frequency because according to UDRAL The drive shall enter STANDBY state automatically if the readiness subject is not updated for CONTROL_TIMEOUT

* Cyphal: increase setpoint publish rate from ~75 to 200 by removing PX4_INFO (it really significantly react on the the output rate) and changing the mixing output rate and the shedule interval

* Cyphal: restore prefix because we need it for uorb over uavcan/cyphal and add udral prefix for non uorb pub/sub

* Cyphal: fix DynamicPortSubscriber subscription: if it has multiple subscribers, it should call subscription only after updating of all port subscribers port identifiers

* Cyphal: fix SubscriptionManager: we should take care about prefix

* Cyphal: fix readiness for test motor mode

* [Cyphal] Fix dynamicsubscription, improve printinfo, enable MR-CANHUBK3 config

---------

Co-authored-by: Peter van der Perk <peter.vanderperk@nxp.com>
2023-02-23 10:57:50 -05:00
Matthias Grob 013365d6c8 ubuntu.sh: source the .profile after changing it
such that the arm toolchain is available in that terminal without
relogin for convenience.
2023-02-23 09:58:10 +01:00
Matthias Grob 22030c1b8c ubuntu.sh: add libfuse2 to general packages
to allow running QGroundControl app image out of the box.
2023-02-23 09:58:10 +01:00
Matthias Grob dabf33759b ubuntu.sh: only add gazebo source once on 22.04 2023-02-23 09:58:10 +01:00
Hamish Willee 76aac7a5e5 VehicleCommandAck typo on module docs 2023-02-23 08:19:11 +01:00
Hamish Willee 4daa63afc2 Sensors.cpp - case the uorb topics like SensorGyro 2023-02-23 08:18:39 +01:00
Alejandro Hernández Cordero ea6814d258 Simulation Gazebo: Use Gazebo Airpressure sensor (#21176)
* Simulation Gazebo: Use Gazebo Airpressure sensor

Signed-off-by: Alejandro Hernández Cordero <ahcorde@gmail.com>

* Fixed build

Signed-off-by: Alejandro Hernández Cordero <ahcorde@gmail.com>

* Added feedback

Signed-off-by: Alejandro Hernández Cordero <ahcorde@gmail.com>

* make linters happy

Signed-off-by: Alejandro Hernández Cordero <ahcorde@gmail.com>

---------

Signed-off-by: Alejandro Hernández Cordero <ahcorde@gmail.com>
2023-02-22 19:32:25 +01:00
Beat Küng 06dfd1726f microdds_client: fix -l flag and add -c for custom participant configuration
Allows to use a custom FastDDS configuration on the Agent side.
2023-02-22 11:15:29 -05:00
Daniel Agar 98263de17b ekf2: move aux vel helpers to auxvel_fusion.cpp 2023-02-22 09:08:33 -05:00
Daniel Agar a199df78cc ekf2: move mag control helpers to mag_control.cpp 2023-02-22 09:08:33 -05:00
Daniel Agar c20e4e4421 ekf2: move stopFlowFusion() to optical_flow_control.cpp 2023-02-22 09:08:33 -05:00
Daniel Agar 3a317ec18c ekf2: move gps helpers to gps_control.cpp 2023-02-22 09:08:33 -05:00
Daniel Agar 9ec3f30ae1 ekf2: move gps buffer pop to controlGpsFusion()
- controlGpsFusion() now owns yaw estimator update
2023-02-22 09:08:33 -05:00
Daniel Agar a867bb7d88 ekf2: let controlAirDataFusion() update yaw estimator TAS 2023-02-22 09:08:33 -05:00
Daniel Agar 60856ebe62 ekf2: move range buffer pop to controlRangeHeightFusion() 2023-02-22 09:08:33 -05:00
Daniel Agar 08f111f694 ekf2: consolidate airspeed fusion logic and helpers
- pass new airspeed sample around when available
 - can't completely eliminate _airspeed_sample_delayed until resetWind()
called from sideslip fusion is updated
2023-02-22 09:08:33 -05:00
Daniel Agar 241cee2bb7 ekf2: move airspeed buffer pop to controlAirDataFusion 2023-02-22 09:08:33 -05:00
Daniel Agar 0711a34d0e ekf2: move flow buffer pop to controlOpticalFlowFusion 2023-02-22 09:08:33 -05:00
Daniel Agar ed8cef6cf0 ekf2: move controlAuxVelFusion control.cpp -> auxvel_fusion.cpp 2023-02-22 09:08:33 -05:00
Daniel Agar b4e845d7c0 ekf2: move controlDragFusion control.cpp -> drag_fusion.cpp 2023-02-22 09:08:33 -05:00
Daniel Agar c08a387c5a ekf2: move controlBetaFusion control.cpp -> sideslip_fusion.cpp 2023-02-22 09:08:33 -05:00
Daniel Agar d61b8c21b2 ekf2: move controlAirDataFusion() control.cpp -> airspeed_fusion.cpp 2023-02-22 09:08:33 -05:00
Daniel Agar d840f7f39f ekf2: move controlGpsYawFusion() control.cpp -> gps_control.cpp 2023-02-22 09:08:33 -05:00
Hamish Willee b66e15c4b9 generate_msg_docs.py - fix path to messages 2023-02-22 09:32:05 +01:00
Matthias Grob f887ad6ebf mc_att_control: allow commanding a yaw rate with zero throttle
Still avoiding to build up absolute yaw error in that case.
2023-02-21 19:33:28 +01:00
Matthias Grob 2b0f7879bc mc_att_control_main: separate yaw rate setpoint generation from absolute yaw reset 2023-02-21 19:33:28 +01:00
Matthias Grob ce5cff55b7 mac_att_control: heading lock in stabilized only after ekf final yaw alignment 2023-02-21 19:33:28 +01:00
Silvan Fuhrer f0571de731 MCAttitudeController: remove reset of yaw_sp when landed
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2023-02-21 19:33:28 +01:00
Beat Küng fe3c1d0a92 logger: do not try to wait for mavlink ack when writing watchdog data
As it might block for 2.5s (if mavlink is blocked) and therefore would not
write to file before restoring the priorities.
2023-02-21 11:32:30 -05:00
Beat Küng 66b0f6eb35 log_writer_file: call fsync after reliable transfer
ensures watchdog data is flushed immediately
2023-02-21 11:32:30 -05:00
Beat Küng e4cef9f303 logger: update watchdog
- reduce boost priority to PX4_WQ_HP_BASE - 6
- add cli command 'trigger_watchdog' to manually trigger watchdog
- add perf counters when triggering watchdog
- reduce top measurement to 300ms
- restore priorities after 1.5s

There are precautions in case the SD card code itself has a busy-loop.
2023-02-21 11:32:30 -05:00
Beat Küng 015ba62727 log_writer_file: do not call close() with mutex held
Generally not an issue, but if close() takes long, or even busy-loops due
to an underlying bug in the OS, it will block the main thread too.
2023-02-21 11:32:30 -05:00
Jaeyoung Lim 5676cc32bc Optionally enable sensor simulations 2023-02-21 11:16:25 -05:00
Leonardo Garcia 3bdb42b6a7 mro/pixracerpro: add missing px4_platform_configure() call (#21158) 2023-02-21 09:30:39 +01:00
MAD-CRAZY-MAN 3ab34fe5b1 ci: build thepeach FCC-K1 & FCC-R1 2023-02-20 21:56:08 -05:00
Silvan Fuhrer 94be17af8f FWPositionControllre: only check acceptance radius to swich to loiter to reach WP alt
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2023-02-20 21:55:27 -05:00
Julian Oes 9ec6a4b1d7 icm42688p: fix comment about gyro and accel bits
This really confused me.

Signed-off-by: Julian Oes <julian@oes.ch>
2023-02-20 21:47:11 -05:00
Silvan Fuhrer 2008a447c3 FW PositionController: circular landing: publish orbit status
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2023-02-20 17:04:39 +01:00
Silvan Fuhrer 485785d81d FW PositionController: circular landing: enable automatic landing aborts
Enable automatic landing abort on timed out distance sensor reading also for
the circular landing. Do not enable the no-terrain timeout check, as, opposed
to the straight landing, we here don't know when to expect the distance sensor
to get valid.

Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2023-02-20 17:04:39 +01:00
Silvan Fuhrer 37b6dccda9 Land: use MIS_LND_ABRT_ALT also in non-mission Land
As we don't know the landing point altitude in non-mission landings, assume
the worst case (abort right before touchdown) and thus always climb
MIS_LND_ABRT_ALT on triggering an abort.

Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2023-02-20 17:04:39 +01:00
Silvan Fuhrer c47210fc77 FWPositionController: add support for circular landings
Add method for circular landing, that is used instead of the straight fixed-wing
landings in case the landing is not part of a mission landing.
Use straight landing if previous WP is valid, and the ciruclar otherwise.

Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2023-02-20 17:04:39 +01:00
Silvan Fuhrer 50d75c537e FWPositionController: auto_landing(): move non-position handling to top
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2023-02-20 17:04:39 +01:00
Silvan Fuhrer b94ed34406 FW Position Control: initializeAutoLanding(): pass only alt value of pos_sp_curr
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2023-02-20 17:04:39 +01:00
Silvan Fuhrer 805de8a6d9 Navigator: set position setpoint to current location instead of to NAN
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2023-02-20 17:04:39 +01:00
Silvan Fuhrer eaa4180920 Navigator: remove ununsed argument from set_land_item()
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2023-02-20 17:04:39 +01:00
David Sidrane 1fb6b003fc NuttX with backport ioexpander/gpio:Add gpio_pin_register_byname 2023-02-20 04:14:01 -08:00
Silvan Fuhrer 167e58abba AirspeedSelector: remove unused variable
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2023-02-20 11:35:24 +01:00
Silvan Fuhrer 1acb07c600 Navigator: set _land_start_index to first item with a position after the marker
_land_start_index is used to to start the mission from this item index, and to
avoid to publish a triplet.current.type=IDLE, we need to fill it with the actual
position setpoint that the vehicle should go to at the start of a mission landing.

Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2023-02-20 06:50:53 +01:00
bresch fafcdbf4ed tests: empty parentheses were disambiguated as a function declaration 2023-02-17 21:10:44 -05:00
bresch 8ebf47edb1 ekf2: stop mag fusion when there is no data anymore 2023-02-17 08:51:55 -05:00
Silvan Fuhrer deabe9a38d Navigator: accept yaw immedietaly if the flag heading_good_for_control is not set
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2023-02-17 13:34:30 +01:00
David Sidrane d291207b9f NuttX with mmcsd backports to prevent system hang on error 2023-02-17 10:16:15 +01:00
RomanBapst b00efcd966 cleanup
Signed-off-by: RomanBapst <bapstroman@gmail.com>
2023-02-16 11:28:41 +01:00
RomanBapst 7ef2bff0a2 FeasibilityChecker: Fixed bug and added unit test for it
Signed-off-by: RomanBapst <bapstroman@gmail.com>
2023-02-16 11:28:41 +01:00
RomanBapst 2e50277695 improved function naming
Signed-off-by: RomanBapst <bapstroman@gmail.com>
2023-02-16 11:28:41 +01:00
RomanBapst 8ecb550331 cleanup
Signed-off-by: RomanBapst <bapstroman@gmail.com>
2023-02-16 11:28:41 +01:00
RomanBapst 00b1968a5c more clang tidy stuff
Signed-off-by: RomanBapst <bapstroman@gmail.com>
2023-02-16 11:28:41 +01:00
RomanBapst b8d0a8821a fixed clang tidy
Signed-off-by: RomanBapst <bapstroman@gmail.com>
2023-02-16 11:28:41 +01:00
RomanBapst c09263d53c use correct type
Signed-off-by: RomanBapst <bapstroman@gmail.com>
2023-02-16 11:28:41 +01:00
RomanBapst 11fd3ef71a use legacy parameter system and cleaned up vehicle type
Signed-off-by: RomanBapst <bapstroman@gmail.com>
2023-02-16 11:28:41 +01:00
RomanBapst 741fbb931d fixed land requirement for VTOL
Signed-off-by: RomanBapst <bapstroman@gmail.com>
2023-02-16 11:28:41 +01:00
RomanBapst 6e07af959f fixed bug in Matrix library
Signed-off-by: RomanBapst <bapstroman@gmail.com>
2023-02-16 11:28:41 +01:00
RomanBapst 925ad97ff3 added unit tests
Signed-off-by: RomanBapst <bapstroman@gmail.com>
2023-02-16 11:28:41 +01:00
RomanBapst 11143def82 tried to add functional unit test
Signed-off-by: RomanBapst <bapstroman@gmail.com>
2023-02-16 11:28:41 +01:00
RomanBapst ceb8f6e1d5 started with feasibility checks
Signed-off-by: RomanBapst <bapstroman@gmail.com>
2023-02-16 11:28:41 +01:00
Christian Rauch d6bb19e11b drivers/linux_pwm_out: link mixer_module 2023-02-15 16:04:31 -05:00
Jaeyoung Lim 0e1e1afcf9 Correct dates in the license headers 2023-02-15 01:37:32 +09:00
Jaeyoung Lim 0b3f4dd385 Inject failure for airspeed sim 2023-02-15 01:37:32 +09:00
Jaeyoung Lim 3f50bd051f Optionally enable airspeed sensor sim
Enable and disable sensor sim module with parameter
2023-02-15 01:37:32 +09:00
PX4 BuildBot 192764387d Update submodule mavlink to latest Tue Feb 14 12:38:55 UTC 2023
- mavlink in PX4/Firmware (e7a5dedf48f967465d1f9e6c96a9bf304e1a74b1): https://github.com/mavlink/mavlink/commit/e3b8756e37cd2cd01ba658461bb4dbffb2fdf914
    - mavlink current upstream: https://github.com/mavlink/mavlink/commit/2bdcab78b53d1e349079b43c9d726036abe0617c
    - Changes: https://github.com/mavlink/mavlink/compare/e3b8756e37cd2cd01ba658461bb4dbffb2fdf914...2bdcab78b53d1e349079b43c9d726036abe0617c

    2bdcab78 2023-02-09 Hamish Willee - undo last commit
9c60f17a 2023-02-09 Hamish Willee - param_id char[] description
841b7683 2023-02-08 Alessandro Ros - remove invalid enum reference from storm32.xml (#1947)
8d4e50ee 2023-02-08 Julian Oes - scripts: install npm dependencies first
72a9b2c3 2023-02-08 Julian Oes - pymavlink: update submodule
2023-02-14 09:53:11 -05:00
Knut Hjorth db539d15bd mavlink: fix bug when opening /dev/null as default stdin/stdout/stderr
Prior commit added opening of /dev/null as 0, 1 and/or 2 file
descriptors, if they where not present. However, if the temporary
file descriptor used to open /dev/null matched the target file
descriptor, it would be immediately closed again. This commit fixes that,
and does not duplicate and close the temporary file descriptor if it is
already at the correct number.
2023-02-14 08:18:01 +01:00
Christian Rauch 5880fe4153 remove deprecated check for CONFIG_STM32_STM32F4XXX in STM32F1 micro_hal.h 2023-02-14 08:08:24 +01:00
Daniel Agar b3eb563db4 boards: cubepilot_cubeorange_test restore sd_bench (used on test rack) 2023-02-13 23:53:54 -05:00
Julian Oes 5803f692b9 boards: update CubePilot+ test defconfig
This is tracking upstream changes and making it build.

Signed-off-by: Julian Oes <julian@oes.ch>
2023-02-13 22:36:22 -05:00
Julian Oes 01a9563955 cubeorangeplus: remove some modules to save flash
Signed-off-by: Julian Oes <julian@oes.ch>
2023-02-13 22:36:22 -05:00
Julian Oes 9d8fa38793 cubeorange: remove some modules to save flash
Signed-off-by: Julian Oes <julian@oes.ch>
2023-02-13 22:36:22 -05:00
Julian Oes 69cb1da3cc workflows: add CubeOrange+ to CI build
Signed-off-by: Julian Oes <julian@oes.ch>
2023-02-13 22:36:22 -05:00
alexklimaj e5a957ae63 boards: arkv6x add pulldowns to GPIO pins UART7 RTS and UART7 CTS 2023-02-13 22:35:23 -05:00
Daniel Agar 2ea25804a1 ekf2: allow filter init with only IMU (#21041)
- if mag enabled heading init is now pushed to controlMagFusion()
2023-02-13 22:07:15 -05:00
Julian Oes d69d99b191 kakuteh7v2/mini: switch on VTX+
This just always switches the VTX+ power on.

Signed-off-by: Julian Oes <julian@oes.ch>
2023-02-13 22:00:49 -05:00
Alex Klimaj 3ed1c688bf drivers: icm42688p and iim42652 enable notch and AAF 2023-02-13 21:08:37 -05:00
Daniel Agar a18e07e525 drivers/imu/bosch/bmi088: add more time between configure and FIFO_READ
- new FIFO_RESET state used to give the sensor more time after successful configuration before sampling begins

Co-authored-by: Mathieu Bresciani <brescianimathieu@gmail.com>
2023-02-13 21:01:50 -05:00
Daniel Agar 1134d5338f boards: sky-drones_smartap-airlink_default disable modules to save flash 2023-02-13 20:58:17 -05:00
Daniel Agar 4d95150e18 boards: px4_fmu-v4pro_test disable gyro_fft to save flash 2023-02-13 20:56:19 -05:00
Daniel Agar 299cb32aa8 boards: nxp_fmuk66-v3_test disable gyro_fft to save flash 2023-02-13 20:55:06 -05:00
Daniel Agar bc5f4f8377 boards: mro ctrl-zero-h7 and pixracer disable modules to save flash 2023-02-13 20:53:52 -05:00
Daniel Agar 70a7edbcd0 boards: cubepilot_cubeorange_default disable SIH simulator to save flash 2023-02-13 20:47:26 -05:00
Daniel Agar b14e0c21b6 boards: px4_fmu-v2_default disable sensors/vehicle_airspeed and sensors/vehicle_optical_flow to save flash 2023-02-13 20:45:28 -05:00
Beniamino Pozzan ea91dbb0f5 gazebo-classic_iris_vision: fix airframe include and default parameters
Signed-off-by: Beniamino Pozzan <beniamino.pozzan@phd.unipd.it>
2023-02-14 03:26:56 +09:00
Jaeyoung Lim 3efc42cb14 Add standard vtol model
Add standard vtol model sdf
2023-02-13 13:00:39 -05:00
Jaeyoung Lim 65c287781f Set prearm mode 2023-02-13 13:00:39 -05:00
Jaeyoung Lim df4083265f Add standard vtol airframe configs 2023-02-13 13:00:39 -05:00
Jaeyoung Lim d5ddb44241 Add sensor airspeed sim
This commit adds the airspeed sensor sim to simulate airspeed sensors
2023-02-13 13:00:39 -05:00
Matthias Grob 6f4d903f45 Battery: address two comments from #2242
- use a constant instead of magic number
- fix code comment typo
2023-02-13 13:27:08 +01:00
Hamish Willee edb6c635d5 EKF2_MAG_TYPE - fix typos (#20808) 2023-02-10 14:39:57 +01:00
Konrad b9f9f25b48 parameter_translation: Add parameter translation for renamed L1 parameters 2023-02-09 17:51:55 +01:00
Konrad 92277ebb96 FixedwingPositionControl: Explicitly set wind to zero when it is not valid. 2023-02-09 17:51:55 +01:00
Konrad de4b139540 FwPosControl: Update behavior of navigating to a waypoint when the previous waypoint is not valid. Go along the line of the current aircraft position to the desired waypoint. 2023-02-09 17:51:55 +01:00
Konrad d5025810b4 FixedWingPositionControl: remove get_nav_speed_2d function as npfg can handle this internally. 2023-02-09 17:51:55 +01:00
Konrad 6bdeb43e0d fw_path_navigation: Remove explicit L1 mentioning. 2023-02-09 17:51:55 +01:00
Konrad 3e200bca0d fw_pos_control_l1: renaming to fw_path_navigation, l1 control is not used anymore, use a more generic naming. 2023-02-09 17:51:55 +01:00
Konrad aa3af7f707 fw_pos_control: purge L1 controller 2023-02-09 17:51:55 +01:00
Knut Hjorth fbc80c9bf5 RTL fixes and improvements for VTOL vehicles (#21011)
* rtl: remove unconditional transition to land after descent

This was a bug, as it renders the above code lines useless.
This would cause a undesired FW landing for VTOL vehicles if
RTL_LAND_DELAY is above 0.

* rtl: head to center after loiter in VTOL FW

To get the same behavior for RTL with and without loiter before land for
VTOL drones.

* rtl: always go to descend state after return

Previously, the state would change directly to land if in MR and
RTL_LAND_DELAY was 0.0, but we will still wish to descent to
RTL_DESCEND_ALT at descent speed, instead of using landing speeds.

* rtl: mark head to center state as part of vtol transition

The next step in the sequence is transition to MC. By setting
vtol_back_transition we ensure that the acceptance radius is adapted to
the expected transition distance.
2023-02-08 11:07:39 +01:00
Knut Hjorth 99cf1cfdfe mavlink: use /dev/null as default stdin, stdout and stderr
If 0, 1 and/or 2 file descriptors are not open when mavlink module
starts (as might be the case for USB auto-start), use default /dev/null
so that these numbers are not used by other other files.
2023-02-08 10:38:20 +01:00
Knut Hjorth 6c7ae3d845 mavlink: generate new log list for request start index 0
Instead of interpret a request for "more logs than currently exists" as
a new request, use a request for index 0, which is more likely to be
the first request.
2023-02-08 10:38:20 +01:00
KonradRudin c5d041a2f7 Rearrange npfg use path input (#21071)
* [npfg]: Remove the guideToPoint function and replace with guideToPath

* [npfg]: remove unused navigateXXX functions

* [npfg]: Move navigateXXX Function into FWPoscontrol

* [FixedwingPositionControl]: Set default flaps and spoilers in attitude setpoint topic, and only change if necessary.
2023-02-08 08:54:00 +01:00
jonasbouchraiet 9ac27c9413 Update rtl_params.c 2023-02-07 22:37:19 -05:00
Beat Küng 83c8c79af5 commander failsafe: add API to defer failsafes 2023-02-07 19:27:51 -05:00
Beat Küng a727bddc19 microdds_client: set queue depth for incoming topics according to msg definition
Otherwise the FMU might miss publications from 2 different publishers at
the same time.
2023-02-07 19:12:10 -05:00
Beat Küng 3f2336af32 navigator: add ModeCompleted signalling topic 2023-02-07 19:11:52 -05:00
Beat Küng f05e8a699e ROMFS: enable COM_LOW_BAT_ACT by default for SITL 2023-02-07 19:11:29 -05:00
Beat Küng ebc1d7544e battery_simulator: add support for failure injection
For failsafe triggering in automated tests
2023-02-07 19:11:08 -05:00
Eric Katzfey ddd1527305 Qurt PX4_INFO_RAW send to apps for display (#21080) 2023-02-07 17:22:09 -05:00
Eric Katzfey db24c2b233 Qshell static subscription (#21081)
* Changed QShell uorb subscription to be static to avoid the duplicate sequence number error
2023-02-07 17:18:01 -05:00
Daniel Agar 7b3befded5 ekf2: disable new gravity fusion by default 2023-02-07 13:57:10 -05:00
Daniel Sahu fa6fda6cce ekf2: new gravity observation (#21038)
Signed-off-by: Daniel M. Sahu <danielmohansahu@gmail.com>
2023-02-07 13:28:58 -05:00
alessandro 3e149ee6c5 FlightTaskAuto: landing position updates for precision landing (#20951)
- precision landing works incorrectly, target position is not updated during the descent above target
 - _prepareLandSetpoints needs to update _land_position continuously

Co-authored-by: kapacheuski <kapacheuski@gmail.com>
2023-02-07 12:07:26 -05:00
Jukka Laitinen deb6053d56 Update status leds every time when prearm check status changes
Signed-off-by: Jukka Laitinen <jukkax@ssrc.tii.ae>
2023-02-07 08:02:32 +01:00
Christian Rauch ef5761c223 add SPI to stm32f1 2023-02-07 07:54:38 +01:00
Christian Rauch 2f21c590b0 remove some vscode settings 2023-02-06 17:25:36 -05:00
JaeyoungLim 01c5b3934e Tune GZ plane (rc_cessna) to fly nicely (#21077)
* Increase control surface joint controller gains

* Enable prearm mode and disable airpspeed checks for gz plane
2023-02-06 16:24:01 -05:00
Daniel Agar 661eb2adb4 lib/sensor_calibration: BiasCorrectedSensorOffset() don't incorporate thermal offsets
- the thermal offsets are an optional correction applied to the raw data, so when updating an existing calibration offset with new learned bias we don't want this incorporated
2023-02-06 15:09:07 -05:00
Silvan Fuhrer e153d1defc ROMFS: fix PY asymmetry (motor 1 was wrongly placed twice as far from the CG as 0)
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2023-02-04 16:08:40 +01:00
Daniel Agar 04d3e549f5 ekf2: resetQuatStateYaw() set _time_last_heading_fuse 2023-02-03 10:03:09 -05:00
Daniel Agar 66ad7fd06c ekf2: include 0 timestamp checks in helpers (isTimedOut(), isRecent(), etc)
- EKF isTimedOut(), isRecent(), and isNewestSampleRecent() need to handle the case where the timestamp has never been set
 - reset() more thoroughly reset fields (mainly impacts unit tests)
2023-02-03 10:00:51 -05:00
Daniel Agar 264a99fb77 ekf2: new EKF2_IMU_CTRL parameter and gyro bias inhibit mechanism
- EKF2_AID_MASK accel bias inhibit moves to EKF2_IMU_CTRL
2023-02-03 09:52:24 -05:00
Daniel Agar f668ea5aa6 ekf2: RingBuffer add reset method 2023-02-03 08:49:44 -05:00
Daniel Agar e3d73cd837 ekf2: mag control reset mag_lpf on first sample 2023-02-02 16:12:09 -05:00
Michał Barciś c2f13dbccf setup/ubuntu.sh modified to correctly install all required dependencies for gazebo
Signed-off-by: Michał Barciś <michal.barcis@tii.ae>
2023-02-02 10:02:47 -05:00
ShiauweiZhao 35080504f7 drivers/drv_sensor.h fix device type duplicate definition 2023-02-02 09:54:47 -05:00
Vincent Poon a90bae9e50 ci: build and deploy kakuteh7v2 & Kakuteh7mini
Adds Holybro kakuteh7v2 & Kakuteh7mini to Travis CI for building and deployment to S3 for QGC
2023-02-02 09:51:53 -05:00
Hamish Willee 2938db1c60 Apply suggestions from code review 2023-02-02 15:20:34 +01:00
Hamish Willee 7cea384404 Update src/modules/fw_autotune_attitude_control/fw_autotune_attitude_control_params.c 2023-02-02 15:20:34 +01:00
Hamish Willee d65e5969e1 FW_AT_MAN_AUX - define what an Aux input is 2023-02-02 15:20:34 +01:00
Silvan Fuhrer ba1d02ee75 MPC: improve description of MPC_LAND_RC_HELP
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2023-02-02 14:31:22 +01:00
小光 849fbabc47 px4_mtd: the address of 'instances' will never be NULL (#21039)
Signed-off-by: AuroraRAS <chplee@gmail.com>
2023-02-02 08:06:00 +01:00
Silvan Fuhrer d9a4d1d5c4 Commander: use FW_AIRSPD_MAX as threshold for airspeed preflight checks
Check fails if airspeed reading is above FW_AIRSPD_MAX.

Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2023-02-01 20:43:38 -05:00
Robbie Drage cb4235887f vscode: change cubeorange build target
- Fixes typo in Cube Orange build target config

Fixes issue #17745
2023-02-01 18:17:45 -05:00
Silvan Fuhrer 32cab66c44 Commander: hide hint to param in low position accuracy event for end users
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2023-02-01 16:47:11 +01:00
Silvan Fuhrer 9b3a28dff5 Commander: add local_position_accuracy_low flag, incl. warning and RTL
Set this flag to true if local position is valid but accuracy low, such that
the operator can be warned before system switches to position-failure failsafe.
Additionally, switch to RTL if currently in Mission or Loiter to try to reach home
or fly out of GNSS-denied area.

Set low accuracy threshold to 50m by default for FW and VTOL.

Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2023-02-01 16:47:11 +01:00
Silvan Fuhrer 3ca126cc46 Commander: improve description of COM_FS EPH, EPV, VEL_EVH params and increase FW and VTOL defaults
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2023-02-01 16:47:11 +01:00
Silvan Fuhrer cbc4c35bcf Commander params: improve meta data for max flight time and wind
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2023-02-01 08:48:09 +01:00
Silvan Fuhrer 6d84da5cf1 Commander: add max flight time warning (starting at 90%)
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2023-02-01 08:48:09 +01:00
Beat Küng b1709743f7 commander: add wind or flight time limit exceeded mode requirement
This prevents switching into any of these modes once the condition is set.
2023-02-01 08:48:09 +01:00
Beat Küng a8628c9d9c fix commander: clear takeoff_time only on disarm
Otherwise the flight time restriction flag gets cleared too early, before
disarming (which puts the vehicle into the previous mode and it might
take off again).
2023-02-01 08:48:09 +01:00
Beat Küng 8e4c5884ec fix commander: need to check for valid mode change even if already the same
Fixes the following case:
- user intention set to X
- failsafe triggers, mode = Y
- can_run for X becomes false
- user tries to switch to X
  -> need to re-evaluate can_run
2023-02-01 08:48:09 +01:00
Beat Küng 7988491e37 failsafe simulator: improve spacing for multi-line checkboxes
Reduces line-height to 100% in that case.
2023-02-01 08:48:09 +01:00
ShiauweiZhao 931f602995 drivers/imu/invensense: new IAM-20680HP IMU driver (#21025) 2023-01-31 09:33:26 -05:00
Daniel Agar 2be701f902 platforms/nuttx: cmake debug pass GDB path and set RTOS plugin file extension 2023-01-30 20:19:38 -05:00
Eric Katzfey a4aa76f0ac VOXL2 board updates and new Kconfig option for ROOTFSDIR
- also includes a couple of miscellaneous changes to VOXL2 support to show Qurt messages on px4 console and put logs in the proper spot
2023-01-30 12:03:40 -05:00
Julian Oes b1fc0ca0d0 mavlink: always forward messages to/from USB
Previously, it was not possible to enable forwarding of messages to/from
teh USB instance because it does not have a param for it, like the
serial instances have.

With this commit, we change the default to always set forwarding on for
the USB instance as that is likely desired.

Signed-off-by: Julian Oes <julian@oes.ch>
2023-01-30 10:46:14 -05:00
Julian Oes 0446292c75 mavlink: always use public method
Signed-off-by: Julian Oes <julian@oes.ch>
2023-01-30 10:46:14 -05:00
Julian Oes 7b8cf4913e mavlink: show forwarding status
Signed-off-by: Julian Oes <julian@oes.ch>
2023-01-30 10:46:14 -05:00
Daniel Agar 47215bb625 lib/wind_estimator: symforce codegen remove reserved identifier naming
- from the C standard, "All identifiers that begin with an underscore and either an uppercase letter or another underscore are always reserved for any use"
2023-01-30 09:24:32 -05:00
Daniel Agar efe1d43550 ekf2: symforce codegen remove reserved identifier naming
- from the C standard, "All identifiers that begin with an underscore and either an uppercase letter or another underscore are always reserved for any use"
2023-01-30 09:24:32 -05:00
Beat Küng 0687fd2689 lockstep_scheduler: avoid pthread_cond_destroy on at_exit
The static object is destroyed on at_exit while threads might still be
inside a CS. This can lead to a hanging process.
Cleaner would be to gracefully stop the threads.

According to https://linux.die.net/man/3/pthread_cond_destroy:
Attempting to destroy a condition variable upon which other threads are
currently blocked results in undefined behavior.
2023-01-30 11:45:02 +01:00
Hamish Willee f25abbc80a Fix magnetometer typo 2023-01-30 10:24:16 +01:00
Daniel Agar 8da993c30e Update world_magnetic_model to latest Sat Jan 28 11:14:05 UTC 2023
Co-authored-by: PX4 BuildBot <bot@px4.io>
2023-01-28 11:41:03 -05:00
PX4 BuildBot 88038717dc update all px4board kconfig 2023-01-28 11:39:51 -05:00
Roman Bapst 4646762f9d Use multiplication instead of division 2023-01-28 10:31:17 -05:00
Silvan Fuhrer 0c735dea2e AirspeedSelector: use scientific notation for small param
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2023-01-28 10:31:17 -05:00
Silvan Fuhrer d32f400851 WindEstimator: use isAllFinite()
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2023-01-28 10:31:17 -05:00
Silvan Fuhrer a6d14796e4 WindEstimator: add consts, fix float comparison to 0 and use consistently floats in division
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2023-01-28 10:31:17 -05:00
Silvan Fuhrer 15335b194a WindEstimator: use state indexing enum consistently
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2023-01-28 10:31:17 -05:00
PX4 BuildBot 21ddb04856 Update submodule mavlink to latest Sat Jan 28 00:39:00 UTC 2023
- mavlink in PX4/Firmware (fa65292bb7542cb1f2a4cdaac10738fa17777a6d): https://github.com/mavlink/mavlink/commit/74dee05f0cd121ae27e021d011a04b161c9d0440
    - mavlink current upstream: https://github.com/mavlink/mavlink/commit/e3b8756e37cd2cd01ba658461bb4dbffb2fdf914
    - Changes: https://github.com/mavlink/mavlink/compare/74dee05f0cd121ae27e021d011a04b161c9d0440...e3b8756e37cd2cd01ba658461bb4dbffb2fdf914

    e3b8756e 2023-01-25 olliw42 - update storm32.xml (#1941)
2023-01-27 21:14:07 -05:00
Silvan Fuhrer 48f2b42e12 FWPositionController: remove factor of 2 for switching to LOITER if altitude is not reached
Instead check if system has previously switched into LOITER to acheive the current
WP of type POSITION, and in that case stay in LOITER until altitude is reached.

Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2023-01-27 16:51:30 +03:00
Eric Katzfey e862fde084 ver: use PX4_INFO_RAW and add vendor version (#21008) 2023-01-27 07:13:37 +01:00
Silvan Fuhrer d53d200aa5 Update msg/TecsStatus.msg
Co-authored-by: KonradRudin <98741601+KonradRudin@users.noreply.github.com>
2023-01-26 17:04:43 +01:00
Silvan Fuhrer 88ec117e59 TECS: rename tecs_status.altitude_filtered to altitude_sp_ref
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2023-01-26 17:04:43 +01:00
Silvan Fuhrer 06f4195663 PositionControllerStatus.msg: add comments
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2023-01-26 17:04:43 +01:00
Silvan Fuhrer fc1c5da92c tecs_status.msg: add comments to states
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2023-01-26 17:04:43 +01:00
Silvan Fuhrer 5099a91f87 TECS: keep _pitch_integ_state in radians
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2023-01-26 17:04:43 +01:00
Silvan Fuhrer e16f98c2b6 FW Position controller: remove unused climbout arguments
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2023-01-26 17:04:43 +01:00
Eric Katzfey aae431e4d5 Removed unused variables in LED driver that were causing fatal build errors on Qurt platform (#21007) 2023-01-25 16:35:56 -08:00
PX4 BuildBot d6d41af9a4 Update submodule nuttx to latest Wed Jan 25 12:38:18 UTC 2023
- nuttx in PX4/Firmware (d3b7112dd9): https://github.com/PX4/NuttX/commit/f80785664fcd99e36835dcb7e9b9b97cd5e9cf8d
    - nuttx current upstream: https://github.com/PX4/NuttX/commit/35997053c5f61039e542c01440feb10baba5049d
    - Changes: https://github.com/PX4/NuttX/compare/f80785664fcd99e36835dcb7e9b9b97cd5e9cf8d...35997053c5f61039e542c01440feb10baba5049d

    35997053c5 2023-01-23 David Sidrane - [BACKPORT] s32k1xx:serial Do not use TC use TDRE & TIE
2023-01-25 14:48:22 -05:00
PX4 BuildBot cc5509381a boards: update all NuttX defconfigs 2023-01-25 14:47:48 -05:00
PX4 BuildBot 03f681ebf8 update all px4board kconfig 2023-01-25 12:57:17 -05:00
Silvan Fuhrer a210c96aa9 Commander: ssimplify error messages for LOITER rejection
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2023-01-25 16:40:27 +01:00
Silvan Fuhrer 148ffe4e25 add support for DO_CHANGE_ALTITUDE
Do the same as DO_REPOSITION wit only the altitude field populated
and MAV_DO_REPOSITION_FLAGS set, which means:
- switch to Loiter mode if not already in it
- set the current altitude to what is specified in the altitdue field,
keep current altitude setpoint otherwise
- keep current position setpoint
- fall back to current estimated position in case a position setpoint
is not finite

Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2023-01-25 16:40:27 +01:00
Daniel Agar 0bdec5bcc0 cmake: nuttx fix jlink-nuttx dependency 2023-01-25 09:06:35 -05:00
KonradRudin d3b7112dd9 [TECS]: If in airspeedless mode, add the throttle integrator term to the throttle setpoint, if the integrator term is positive. This should avoid reducing airspeed when switching to airspeedless mode. (#20987) 2023-01-25 09:16:11 +01:00
modaltb 20b7a8c9f6 drivers/actuators/modalai_esc --> modal_io and rename UART_ESC prefix to MODAL_IO (#20995) 2023-01-24 20:24:58 -05:00
Benjamin Perseghetti 60de5b3ea4 simulation/gz_bridge: remove proceeding px4_ from servos in gazebo model (#20998)
Signed-off-by: Benjamin Perseghetti <bperseghetti@rudislabs.com>
2023-01-24 19:56:11 -05:00
Benjamin Perseghetti 684b4a4b8a simulation/gz_bridge: rc_cessna plane model working, Gazebo Garden updates, and prepare for proper airspeed (#20989)
Co-authored-by: Benjamin Perseghetti <bperseghetti@rudislabs.com>
Co-authored-by: Alejandro Hernández Cordero <ahcorde@gmail.com>
2023-01-24 19:01:45 -05:00
modaltb fbd2e111d0 boards/modalai/fc-v1: revert DMA changes on FCv1 for now (from #20956) 2023-01-24 14:50:05 -05:00
alexklimaj 0776c47d88 Enable ARK CANnode pwm outputs 7 and 8 2023-01-24 14:49:21 -05:00
alexklimaj ac7dc030c3 Add ARK CANnode ver command 2023-01-24 14:49:21 -05:00
Daniel Agar 64c2ec5eea simulation/gz_bridge: remove cmake CONFIGURE_DEPENDS
- PX4 build system simulation targets are optional and no longer
strictly required
2023-01-24 13:58:30 -05:00
Daniel Agar 9cb6de8010 simulation: relax jmavsim java requirements (finding vecmath.jar) 2023-01-24 13:56:24 -05:00
Daniel Agar 3b543c7700 mavlink: serialize mavlink generation to prevent broken output
- let uAvionix generation fully complete before generating CONFIG_MAVLINK_DIALECT
2023-01-24 13:49:28 -05:00
JaeyoungLim 644aeb9153 support fixed-wing in new Gazebo (gz or ignition gazebo) (#20939)
* Add gz plane airframe config

Co-authored-by: Alejandro Hernández Cordero <ahcorde@gmail.com>
Co-authored-by: Benjamin Perseghetti <bperseghetti@rudislabs.com>
2023-01-24 09:22:53 -05:00
Jiangxuan Chen c31867f104 support for KakuteH7v2, KakuteH7mini, and BMI270 IMU driver (#20545)
Signed-off-by: Julian Oes <julian@oes.ch>
2023-01-22 19:41:39 -05:00
Daniel Agar 7c9dcd1985 drivers/uavcan: silence noisy libuavcan cmake version deprecation warning for now
- keep drivers/uavcannode cmake in sync with drivers/uavcan
2023-01-22 14:48:43 -05:00
Daniel Agar 1b46028fd3 mavlink: generate mavlink quiet by default (stdout redirected to log file) 2023-01-22 14:45:41 -05:00
bresch 6e30f8f5cb ekf2: use dedicated aid_src message for flow for terrain aiding 2023-01-21 15:31:19 -05:00
bresch b4b48cae75 ekf2: terrain flow - migrate to Symforce 2023-01-21 15:31:19 -05:00
Daniel Agar 3f842f01a0 simulator/gz_bridge: split actuator outputs for ESCs and servos (#20979)
- existing SIM_GZ outputs -> SIM_GZ_EC (ESCs)
 - new SIM_GZ_SV for servos (not fully implemented)
2023-01-21 14:44:09 -05:00
berkercanatar 9ac6b3d3c5 Update current year in LICENSE
Update year to match with the current year 2023 in LICENSE file.
2023-01-21 12:57:27 -05:00
modaltb c0e8508b01 actuators/modalai_esc/modalai_esc: fix ESC ID to Motor remap regression (#20977) 2023-01-21 12:57:02 -05:00
Daniel Agar a93ef657d1 HIL/test_airframes.sh allow 'gps' and 'mavlink' status to fail
- we're only looking for debug info if/when things go wrong later
2023-01-21 11:38:39 -05:00
Daniel Agar fb000e874f boards: px4_fmu-v5_debug quiet RTC debug errors
- test rack CUAV v5 plus is producing false positives (in this particular situation) that are failing the overall testing
2023-01-21 11:14:28 -05:00
Daniel Agar 6b13fb8b86 HIL/test_airframes.sh check mavlink and gps status before stopping all
- occasionally these fail on the test rack (cube orange), so try to
gather more information
2023-01-21 11:06:23 -05:00
FriedrichTuttas 1830195d30 boards: px4_fmu-v6x add pulldowns to GPIO pins UART7 RTS and UART7 CTS (#20974)
- https://github.com/PX4/PX4-Autopilot/issues/20762

Co-authored-by: David Sidrane <David.Sidrane@Nscdg.com>
2023-01-21 10:19:57 -05:00
Daniel Agar 1aa8ec4537 drivers: initial VectorNav (VN-100, VN-200, VN-300) support 2023-01-20 19:09:30 -05:00
Daniel Agar bd9d09663f commander: avoid uint64 timestamp implicit float conversions
- 64 bit time in microseconds stored in a 32 bit float quickly becomes problematic
 - fixes https://github.com/PX4/PX4-Autopilot/issues/20944
2023-01-19 17:48:40 -05:00
Daniel Agar 3822ef1519 boards: update all in tree bootloaders 2023-01-19 17:25:39 -05:00
PX4 BuildBot c4127813b3 Update submodule sitl_gazebo-classic to latest Thu Jan 19 12:38:59 UTC 2023
- sitl_gazebo-classic in PX4/Firmware (f3cdf70732): https://github.com/PX4/PX4-SITL_gazebo-classic/commit/1a725dd858a3a7c15e79e8e40aa91f4fad9128e5
    - sitl_gazebo-classic current upstream: https://github.com/PX4/PX4-SITL_gazebo-classic/commit/9343aaf4e275db48fce02dd25c5bd8273c2d583a
    - Changes: https://github.com/PX4/PX4-SITL_gazebo-classic/compare/1a725dd858a3a7c15e79e8e40aa91f4fad9128e5...9343aaf4e275db48fce02dd25c5bd8273c2d583a

    9343aaf 2023-01-15 JaeyoungLim - Fix model prefix for user camera plugin (#948)
e5836d3 2023-01-13 Simone - Added robot namespace to the model (#941)
2023-01-19 12:33:53 -05:00
PX4 BuildBot d2240c0c48 Update submodule nuttx to latest Thu Jan 19 12:39:05 UTC 2023
- nuttx in PX4/Firmware (0e2eed62f9a9b44cefc9765fd21aac1a368e4314): https://github.com/PX4/NuttX/commit/d43edd7879fb398de9abcc9d58e8a65c9ed254db
    - nuttx current upstream: https://github.com/PX4/NuttX/commit/f80785664fcd99e36835dcb7e9b9b97cd5e9cf8d
    - Changes: https://github.com/PX4/NuttX/compare/d43edd7879fb398de9abcc9d58e8a65c9ed254db...f80785664fcd99e36835dcb7e9b9b97cd5e9cf8d

    f80785664f 2023-01-16 Julian Oes - [FIX] Add missing define condition
1751c2c7cb 2023-01-16 Julian Oes - [BACKPORT] stm32h7: add SMPS PWR option for STM32H7X7
2023-01-19 12:33:27 -05:00
PX4 BuildBot 8d6a336b2c boards: update all NuttX defconfigs 2023-01-19 12:32:57 -05:00
PX4 BuildBot 898dbb96b4 update all px4board kconfig 2023-01-19 12:32:09 -05:00
Silvan Fuhrer f3cdf70732 VTOL: Quad-chute: rework loss of altitude condition
Previously the condition was based on hard coded height rate estimate and
setpoint values and an altitude error threshold. That showed to be leading
to false positives when the vehicle doesn't tightly follow the altitdue
ramp given by TECS to achieve a new altitude setpoint, and has become
completely infeasibly with the latest TECS rework that leads to non-ramped
altitude setpoint changes in the tecs_status message.
The new check no longer checks the altitude error but only the height rate
instead. It begins to integrate the height rate error once it detects an
uncommanded descend condition (height rate negative while setpoint is
positive). Integral threshold can be tuned by user (VT_QC_HR_ERROR_I).

Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2023-01-19 09:36:09 +01:00
Silvan Fuhrer 36dc75bedf VTOL: introduce new quad-chute check for altitude loss during front transition
By default the threshold is set to 10m.

Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2023-01-19 09:36:09 +01:00
Beat Küng 98705ced2f lightware_laser_i2c: fix unreliable startup detection
In rare occasions asking for the protocol values after setting it returned
[0, 0]. I did not see any documentation for having to wait, but adding a
short wait period fixes it.
2023-01-18 23:02:56 -05:00
modaltb 05d828642d boards/modalai: FCv1 DMA optimiziation for 2Mbit UART (#20956)
- disable unused SPI3 DMA
- enable USART2 RX/TX, UART5/6 TX, UART4 RX
2023-01-18 23:01:57 -05:00
Daniel Agar 9d7c4b8273 boards: ark_can-flow_default disable sensors/vehicle_acceleration to save flash 2023-01-18 22:58:19 -05:00
Daniel Agar ffa9d61065 boards: px4_sitl_default include gz_bridge by default 2023-01-18 22:56:17 -05:00
Daniel Agar 2b5722786b cmake: fix and update packaging 2023-01-18 22:51:12 -05:00
alexklimaj 5eb13e4448 ARKV6X bootloader init all pwm outputs as input pulldown 2023-01-18 21:52:11 -05:00
alexklimaj 7c2da8d1ef Enable ARKV6X SPIX SYNC, enable icm426889 and iim42652 CLKIN 2023-01-18 21:52:11 -05:00
Daniel Agar 967c37ac17 boards: mro_pixracerpro_default disable examples/fake_gps to save flash 2023-01-18 21:44:09 -05:00
Daniel Agar 6a64e74ef3 icm42688p: fix register bank selection
* icm42688p: clear INT_CONFIG1 INT_ASYNC_RESET for proper INT1/INT2 pin operation
2023-01-18 11:08:03 -05:00
Daniel Agar 95300d5637 ekf2: refactor output predictor to class
- refactor all EKF backend output predictor pieces into new OutputPredictor class
 - output states are now calculated immediately with new high rate IMU rather than after EKF update
 - IMU delayed sample is passed as around as control data to avoid storing an extra copy and make the requirement clear
2023-01-18 10:59:34 -05:00
murata c054ca20cc logger: Add arm to shutdown 2023-01-18 07:47:36 +01:00
Julian Oes 35d6b734f5 perf: avoid leaks in dtor
From what address sanitizer tells me, we need to tell delete what type
it is deleting.

Signed-off-by: Julian Oes <julian@oes.ch>
2023-01-17 21:20:51 -05:00
modaltb 8123090571 boards: modalai FCv2 BSP updates (#20958)
- FCv2 MR1
 - configure TELEM2 for VOXL use case by default
 - use ICP201XX baro by default
2023-01-17 21:20:16 -05:00
Siddharth Bharat Purohit 1c63d5666b boards: add support for CubeOrange+ (#20304)
Co-authored-by: Julian Oes <julian@oes.ch>
2023-01-17 20:55:57 -05:00
Daniel Agar 71d916dbcd ekf2: PreFlightChecker fix vel_ne_innov_lpf index 2023-01-17 13:03:38 -05:00
modaltb 6f718cd48d drivers/actuators/modalai_esc: update to use mixer module and control allocator properly
- update motor mapping to use new UART_ESC_FUNC* auto generated params
 - add support for actuator_test msg to support Actuator Testing in QGC
 - modalai_fc-vX targets start driver if configured
 - keep track of ESC spin direction in own param
 - set ramp up param in MixerOutput to false
2023-01-16 21:46:37 -05:00
Beniamino Pozzan 2a64145dcd microdds_client: add _subs reset method to allow reconnections
Signed-off-by: Beniamino Pozzan <beniamino.pozzan@phd.unipd.it>
2023-01-16 21:43:49 -05:00
Alex Klimaj 00bfd5436a ekf2: increase optical flow preflight check innovation limit (#20940) 2023-01-15 17:52:12 -05:00
Daniel Agar 6991ac014c rename 'gazebo' simulation to 'gazebo-classic' (#20936)
- use `gazebo-classic` everywhere consistently referring to the original Gazebo (eg version 9,10,11)
   - additional `gazebo_*` helper targets added for compatibility, but warn about deprecation and tell you the new target naming
 - use `gz` everywhere when referring to Gazebo (aka Ignition Gazebo or new Gazebo)
2023-01-15 11:36:12 -05:00
Daniel Agar 6605378d0d boards: px4_fmu-v6c_default disable systemcmds/serial_test to save flash 2023-01-14 19:24:47 -05:00
Daniel Agar 30a240a7a4 boards: modalai_fc-v2_default disable examples/fake_gps to save flash 2023-01-14 19:23:19 -05:00
Daniel Agar 52b9b9ba2f simulation: restore 'gazebo' alias for 'gazebo_iris'
- only create helper targets if Gazebo 11 found on system
2023-01-14 17:03:18 -05:00
murata 82ecbccd85 distance_sensor: Add TF02 Pro I2C 2023-01-14 09:28:33 -05:00
Jukka Laitinen 2985b5b9c2 msg/ActuatorTest.msg: Use default queue size the same as MAX_NUM_MOTORS
For the esc_calibration code, the actuator test is published for each motor
in a row. If the orb queue size is too small, messages are lost and not
received in mixer_module.

Set the default orb queue size of ActuatorTest high enough to keep the commands
for all motors in the queue.

Signed-off-by: Jukka Laitinen <jukkax@ssrc.tii.ae>
2023-01-14 09:19:10 -05:00
Daniel Agar 45912066d2 fix copyright header year range 2023-01-14 09:16:16 -05:00
Daniel Agar 674a59e48f ekf2: new gyro bias limit parameter EKF2_GYR_B_LIM
- default is now a more conservative 0.15 rad/s (~8.6 deg/s) instead of the previous hardcoded 20 deg/s
2023-01-14 09:15:46 -05:00
Andrew Wilkins 22f7d913bd rover_pos_control: thrust normalization for joystick input (#20885) 2023-01-13 20:11:39 -05:00
Peter van der Perk 7d92d4893e VSCode C/C++ include path and config hints 2023-01-13 20:03:53 -05:00
Daniel Agar c97381c97f mavlink: streams SCALED_IMU fix gyro dt 2023-01-13 20:01:41 -05:00
Daniel Agar 5942194c66 iridiumsbd: advertise status topic immediately and log by default 2023-01-13 20:01:03 -05:00
Eric Katzfey ac80dcd7a8 Voxl2: add qurt i2c driver support and first i2c driver voxlpm 2023-01-13 19:59:41 -05:00
Julian Oes 1e93ae3148 jsbsim: take FG_BINARY env var into account
This is just to match the docs.

Signed-off-by: Julian Oes <julian@oes.ch>
2023-01-13 17:07:20 -05:00
Silvan Fuhrer 7c766692c4 FW Att and Rate Controller, Tailsitter: fix tailsitter frame transformations
Strictly follow the following convention for tailsitter:
FW Attitude and FW rate controller always operate in the FW frame, meaning that roll is
roll in FW, which for tailsitter means around the yaw axis in the body frame. The interfaces
between modules is though always in body frame.

That enables us to do the axis transformations for tailsitter, that are currently distributed
all over the controller (attitude, rate, vtol module), only at the input and output data of modules.

Side effect is that the FW rate control tuning gains meanings change: while before the roll gains
where meant for the body axis, they are now always applied for the FW roll axis (also in hover). So
the naming now is correct for FW, while before it was for Hover.

Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2023-01-13 18:18:11 +01:00
Silvan Fuhrer edb59a9000 VTOL: improve QC parameter meta data
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2023-01-13 19:02:21 +03:00
Silvan Fuhrer 544be72503 VTOL: improve messaging for quad-chute triggered error messages
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2023-01-13 19:02:21 +03:00
Silvan Fuhrer 623c1418bb Commander: improve messaging for vtol fixed-wing system failure arming check
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2023-01-13 19:02:21 +03:00
Silvan Fuhrer 303b879748 VTOL/Commander: rename transition_failsafe to vtol_fixed_wing_system_failure
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2023-01-13 19:02:21 +03:00
Silvan Fuhrer 2d4be68e00 VTOL: reset quad-chute failsafe flag when user triggeres a new transition to FW
This failsafe flag is currently used for not allowing to re-transition to FW, as well
as disabling pusher assist in hover. Till now it was only possible to reset it with
a commanded transition to MC, which many ground station interfaces didn't allow
as the system, after a quad-chute, already was in MC mode.
Hereby it is changed to reset when a new transition to FW is triggered (either via
RC switch or MAVLink command). It is the users responsibility to assess the situation
after a quad-chute happened to try to transition to FW again, manually proceed/land
the vehicle in MC, or let it finish the defined behavior after a quad-chute.

Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2023-01-13 19:02:21 +03:00
Silvan Fuhrer 8a680a3153 VTOL: fix quad-chute max altitude limit
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2023-01-13 19:02:21 +03:00
bresch 3d50a7ce44 CAL_MAG_SIDES: do not save with factory cal 2023-01-13 10:48:01 -05:00
bresch 3d73e273e6 MAG_SIDES: don't spam user to not change parameter
otherwise this will always show up on every boot if factory calibration
was done in an earlier release
2023-01-13 10:48:01 -05:00
Tanja Baumann 0099523710 v6x: fix IMU rotations for V6X009010 and V6X010010 (#20901)
And add V6X000010 (pixhawk base board)
2023-01-13 14:09:35 +01:00
bresch ced41febb7 hide legacy read-only parameter under Developer category 2023-01-13 11:40:56 +01:00
Matthias Grob a7c03de434 StickAccelerationXY: apply jerk limit after drag 2023-01-13 10:19:43 +01:00
Eric Katzfey 2a315f86ca Qurt specific drivers for testing and some updates to the startup process (#20917)
* Added a couple of Qurt specific drivers for testing and some updates to Qurt startup code
2023-01-12 20:17:30 -05:00
Mathieu Bresciani 767fcb2774 sensors: prefix mag config param SENS instead of CAL (#20723)
* sensors: prefix mag config param SENS instead of CAL
* mag sides: keep CAL_MAG_SIDES required by QGC
2023-01-12 09:42:36 -05:00
Daniel Agar 635daeed8a NuttX push jlink-nuttx into cmake and enable CONFIG_DEBUG_TCBINFO by default 2023-01-12 09:05:26 -05:00
Daniel Agar 5453630a6d Jenkins: hardware test rack ignore irrelevant sensor timeouts 2023-01-11 16:56:19 -05:00
Peter van der Perk 8b5f35b3fe Add S32K3 vscode support add Jlink rtos vscode support 2023-01-11 16:15:13 -05:00
Jaeyoung Lim 16d6e699bb Update sitl_gazebo submodule 2023-01-11 14:39:05 -05:00
Daniel Agar 0f9bc351f1 ekf2: fix global_pos alt_reset_counter publish (#20906)
- fixes #20900
2023-01-11 14:15:07 -05:00
SiHyun Noh 714b3d82fb thepeach: update px4board kconfig to fix missing fw_rate_control module (#20898) 2023-01-11 10:02:46 -05:00
Eric Katzfey 89180ac0f9 Fixed Kconfig and px4board files for voxl2 2023-01-11 09:53:18 -05:00
Julian Oes 72d36fc874 sensors: Add param for VL53L0X to startup
It turns out there was no param to enable starting the VL53L0X at
startup.

Signed-off-by: Julian Oes <julian@oes.ch>
2023-01-11 09:52:27 -05:00
David Jablonski c6239ce8c2 replay: fix replay msg ids larger than 128 (#20865) 2023-01-11 09:13:53 -05:00
Silvan Fuhrer bc9abf8c36 Commander: always update parameters, not just if disarmed
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2023-01-11 10:01:08 +01:00
alexklimaj e19c7ca18b Add reboot command to ark flow 2023-01-11 08:11:18 +01:00
Beniamino Pozzan af336719e6 gz_bridge: fix world selector environment variable
Signed-off-by: Beniamino Pozzan <beniamino.pozzan@phd.unipd.it>
2023-01-08 00:15:35 -05:00
PX4 BuildBot e6c4416250 update all px4board kconfig 2023-01-07 21:53:01 -05:00
Daniel Agar 618288cca9 SITL Gazebo classic make airframes simulator specific 2023-01-07 17:00:35 -05:00
Daniel Agar 97c8a60d67 SITL gz make airframes simulator specific 2023-01-07 17:00:35 -05:00
Daniel Agar ae4cb24100 SITL flightgear make airframes simulator specific 2023-01-07 17:00:35 -05:00
Daniel Agar 1abe35c220 SITL jsbsim make airframes simulator specific 2023-01-07 17:00:35 -05:00
Daniel Agar 75125da34c SITL sihsim make airframes simulator specific 2023-01-07 17:00:35 -05:00
Daniel Agar 95a6eba36c SITL jmavsim make airframes simulator specific
-cleanup and simplify jmavsim SITL launch and debug
2023-01-07 17:00:35 -05:00
Daniel Agar 760fff7d89 Kconfig: fix missing SERIAL_EXT2 (fmu-v5x/v6x) 2023-01-07 12:10:52 -05:00
Daniel Agar dc5ce9b0ce boards: NuttX increase default CONFIG_ARCH_INTERRUPTSTACK 512->768 bytes
- during casual testing on default configs the stack was penetration was reaching ~90% which is a bit too close for comfort
 - increasing by 50% to be conservative
2023-01-07 12:07:35 -05:00
Daniel Agar 7f7dfea998 drivers/imu/analog_devices: experimental support for new ADIS16507 IMU (untested) 2023-01-07 10:56:30 -05:00
Daniel Agar f520d4b3be Update submodule mavlink to latest Sat Jan 7 12:38:21 UTC 2023
- mavlink in PX4/Firmware (8bc88ed526044a864427a4b65135c3baffabb2ef): https://github.com/mavlink/mavlink/commit/0c7792edfeee7cf08e531cb4ce5b4f01854e5724
    - mavlink current upstream: https://github.com/mavlink/mavlink/commit/74dee05f0cd121ae27e021d011a04b161c9d0440
    - Changes: https://github.com/mavlink/mavlink/compare/0c7792edfeee7cf08e531cb4ce5b4f01854e5724...74dee05f0cd121ae27e021d011a04b161c9d0440

74dee05f 2023-01-04 Beat Küng - component_metadata: add translation schema (#1934)
0267c4cf 2023-01-04 Bob Long - common.xml: add fuel_pressure ext. to EFI_STATUS (#1938)
c64818e8 2023-01-04 Mathieu Mirmont - common.xml: fix typos in AIS_TYPE enumerate (#1939)
2306bf79 2023-01-04 Hamish Willee - Update pymavlink (#1940)
0077129b 2022-10-06 Peter Hall - Development: update airspeed message
fbf84c64 2022-10-05 Peter Hall - gitignore: add /.vscode
817c44d8 2022-12-15 Mathieu Mirmont - Add the MAV_TYPE_VTOL_TILTWING aircraft type (#1933)

Co-authored-by: PX4 BuildBot <bot@px4.io>
2023-01-07 10:55:05 -05:00
Julian Oes 243caac44a mavlink: filter command_acks by target
When we receive a command_long or command_int message to
answer, it arrives with a source sysid/compid, so this means we can send
the command_ack back on the appropriate MAVLink instances instead of all
of them.

This commit filters outgoing command_ack messages, so they are only sent
on the MAVLink instances where the sysid/compid has been seen in the
past.

This means that a command_ack is likely still sent on multiple links for
a setup with redundant links.

This should also prevent command_acks from being blasted on Iridium links
when it's not required.

Signed-off-by: Julian Oes <julian@oes.ch>
2023-01-07 10:39:08 -05:00
Matthias Grob 19cee04f3a ubuntu.sh: always install "Gazebo" next to "Gazebo classic" on 22.04 2023-01-07 10:37:02 -05:00
Marcin 91e97eded9 setup ubuntu.sh; fix legacy gazebo for ubuntu22.04 2023-01-07 10:37:02 -05:00
murata,katsutoshi d821404e4f commander: failsafe define enums for actions (#20880) 2023-01-07 10:10:57 -05:00
bresch 49f8bcfc69 ekf2: purge old ekf2 derivation 2023-01-06 18:35:19 -05:00
Peter van der Perk d1b95a21e4 Fixes MR-CANHUBK3 FMU build and adds it to the CI targets 2023-01-06 18:02:45 -05:00
Hamish Willee 1551e2f15c MIS_TKO_LAND_REQ - improve English for value 4 2023-01-06 09:43:16 +01:00
Julian Oes 7e3dcd7be4 sensors: fix overlapping ifdef
This fixes the case where vehicle_angular_rate is no longer started when
airspeed is not enabled.

Signed-off-by: Julian Oes <julian@oes.ch>
2023-01-05 21:09:14 -05:00
bresch 26122886ae ekf2: drag fusion - improve parameter description
The user should refer to the online documentation for tuning guidelines
and not the parameter description.
2023-01-05 12:03:24 -05:00
bresch 06ef39d05e ekf2: MC drag fusion - interpolate between X an Y "b" coefficients
Use the current sideslip angle to generate a drag coefficient that is a
mixture of X and Y coefficients, creating an elliptic distribution.
2023-01-05 12:03:24 -05:00
bresch 420f5ef2b7 ekf2: migrate drag fusion derivation to SymForce 2023-01-05 12:03:24 -05:00
bresch 04f76c932e ekf2: decompose drag vector into x-y components
The drag force is a vector.
drag_x = drag.norm() * vx / v.norm()
2023-01-05 12:03:24 -05:00
Paul Riseborough 1a9c358858 ekf2: Add unit tests for drag fusion 2023-01-05 12:03:24 -05:00
bresch 0509f612dd ekf2: fix drag data downsampling
setDragData needs the imu data at full speed to downsample it without
skipping samples.
2023-01-05 12:03:24 -05:00
Daniel Agar 34c57cc5b5 px4-rc.simulator shellcheck fixes 2023-01-04 17:35:41 -05:00
bresch 14bf04b9a4 SIH: add to px4_fmu-v5_default and auto start GPS sim driver
- add simulator kconfig dependencies
 - exclude SIH (+deps) where sufficient flash isn't available
2023-01-04 16:26:15 -05:00
Peter van der Perk fa87375d0c Add hardfault log progmem flash backend 2023-01-04 12:52:01 -05:00
Daniel Agar ca9ae80b10 px4-rc.simulator support launching new Gazebo Garden vs Fortress (#20864)
- "ign gazebo" command is now "gz sim" as of Gazebo Garden
2023-01-04 12:39:06 -05:00
JaeyoungLim 21e88f64b4 Add new fixed wing rate control module (fw_rate_control)
* Fixedwing rate control into a separate module
* Start fw_rate_control for vtol
* Move over airspeed related parameters to fw_rate_control

Co-authored-by: Silvan Fuhrer <silvan@auterion.com>
2023-01-04 11:14:00 -05:00
Peter van der Perk 4c2c06060d PX4Board kconfig add dependency chain for QURT & POSIX modules 2023-01-04 09:40:17 -05:00
Peter van der Perk ddaa3c24eb Fix MR-CANHUBK3 2023-01-04 05:52:58 -05:00
frederictaillandier 315c075e5c updating the sitl-gazebo-sniffer to allow a vehicle name in the serialized object 2023-01-03 17:00:48 +01:00
bresch 28d664aed5 EKF2: purge outdated matlab scripts
Those files are no longer maintained and will just confuse new users
2022-12-30 13:01:58 -05:00
Daniel Agar cc1b043e18 cmake/kconfig.cmake: fix whitespace 2022-12-30 13:01:30 -05:00
dagar 618ce9a865 [AUTO COMMIT] update change indication 2022-12-29 16:37:34 -05:00
Daniel Agar 20a1c73cf0 ekf2: reinit baro height on sensor or calibration change
- handle reset on delayed time horizon
2022-12-29 16:37:34 -05:00
Silvan Fuhrer 0e2df5a152 remove drivers/pca9685
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2022-12-29 12:57:41 -05:00
Silvan Fuhrer 348dcf11c8 remove examples/hwtest
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2022-12-29 12:57:11 -05:00
bresch 3e4e5c991c ekf2: add mag unit tests 2022-12-29 12:56:36 -05:00
bresch 657bd6cf72 ekf2: stop mag fusion when inhibited for too long
Also do not try to run anything if mag is inhibited
2022-12-29 12:56:36 -05:00
bresch c75a9058a5 EKF2: only fuse zero innovation if yaw var is large 2022-12-29 12:56:36 -05:00
Daniel Agar 40e3503c39 boards: fix all NuttX configs (CONFIG_SMALL NuttX upgrade migration) 2022-12-29 12:50:37 -05:00
Daniel Agar 0fbb6db6d4 boards: update all NuttX defconfig (make all_olddefconfig) 2022-12-29 12:50:37 -05:00
Daniel Agar c2f15f5957 boards: update all px4boards (make all_px4_savedefconfig) 2022-12-29 12:50:37 -05:00
Daniel Agar 0204a55354 Makefile: add all_olddefconfig and all_px4_savedefconfig helpers for updating all boards 2022-12-29 12:50:37 -05:00
Daniel Agar f37eb55e19 platforms/nuttx: FATAL error if NSH enabled and SET disabled 2022-12-29 12:50:37 -05:00
Peter van der Perk 964e9dd8c4 Fix MRO NuttX defconfig 2022-12-28 17:00:58 -05:00
Peter van der Perk f7c183edd3 Update NuttX kernel for K3 changes 2022-12-28 10:21:58 -05:00
Peter van der Perk 5e3165af70 S32K3 Enable dflash progmem 2022-12-28 10:21:58 -05:00
Peter van der Perk 2fde13c07d S32K3 EMAC TJA1103 Support 2022-12-28 10:21:58 -05:00
Peter van der Perk 2f1a165d85 S32K3 Enable IRQ stack 2022-12-28 10:21:58 -05:00
Benjamin Perseghetti c3174b5dec Tools/setup/ubuntu.sh: Fixes install for 22.04 gazebo (#20833)
Fixes ubuntu installation script for 22.04 to only install gazebo.

Signed-off-by: Benjamin Perseghetti <bperseghetti@rudislabs.com>
2022-12-28 10:16:43 -05:00
Peter van der Perk beabe56253 S32K3XX call functional reset on board_reset 2022-12-27 08:33:24 -05:00
Yannick Fuhrer 98529a5b49 Battery: delay initialization of SoC (#20729)
* Battery: delay initialization of SoC

* battery: rework of battery initialization delay

Co-authored-by: Matthias Grob <maetugr@gmail.com>
2022-12-26 18:44:22 +01:00
PX4 BuildBot 54d825730e Update submodule libcanard to latest Sat Dec 24 00:39:03 UTC 2022
- libcanard in PX4/Firmware (280ef8935565d4a13e0780c926e1707fa5a90118): https://github.com/opencyphal/libcanard/commit/2e3b11f6b8325080c160d38521b169b0bbb6b1c7
    - libcanard current upstream: https://github.com/opencyphal/libcanard/commit/5c69d451ab0787a81dcb615692d707f2a286f5e5
    - Changes: https://github.com/opencyphal/libcanard/compare/2e3b11f6b8325080c160d38521b169b0bbb6b1c7...5c69d451ab0787a81dcb615692d707f2a286f5e5

    5c69d45 2022-11-03 John Vishnefske - Add sanitizers to unit test cmake build (#205)
989124d 2022-10-30 Pavel Kirienko - Fix 203 (#204)
f85103b 2022-10-13 joshvazquez-amzn - Fix warnings in test helpers (#202)
2022-12-23 22:36:09 -05:00
PX4 BuildBot b6eb5ba790 Update submodule sitl_gazebo to latest Sat Dec 24 00:39:01 UTC 2022
- sitl_gazebo in PX4/Firmware (bb591c6c29): https://github.com/PX4/PX4-SITL_gazebo/commit/049b667d5e86fa71bd47c41dd10e911a0e2681b0
    - sitl_gazebo current upstream: https://github.com/PX4/PX4-SITL_gazebo/commit/d44ce17f4368ab961f87fcc59845647fb629033f
    - Changes: https://github.com/PX4/PX4-SITL_gazebo/compare/049b667d5e86fa71bd47c41dd10e911a0e2681b0...d44ce17f4368ab961f87fcc59845647fb629033f

    d44ce17 2022-12-19 Frederic Taillandier - fixing macos test build (#935)
7f9239c 2022-12-19 Daniel Mesham - Add safe landing world (#932)
61b1fc1 2022-12-19 Daniel Mesham - Update depth camera to match the RealSense D455 (#933)
2022-12-23 22:34:32 -05:00
Julian Oes bb591c6c29 mavlink_shell: fix stall on CubeOrange
On CubeOrange where no console is configured by default, starting
MAVLink shell just stalls, and doesn't work.

Also, logfile download has been reported not to work, and again, seems
to work with this change.

Signed-off-by: Julian Oes <julian@oes.ch>
2022-12-23 11:00:20 -05:00
bresch 86a3d2459a ekf2: remove old yaw estimator generated code 2022-12-23 10:28:19 -05:00
bresch 0388c161e7 ekf2: compare yaw estimator sympy vs symforce 2022-12-23 10:28:19 -05:00
bresch 7c33019510 EKF2: move yaw estimator to symforce 2022-12-23 10:28:19 -05:00
alexklimaj 2f1b3142a6 Decrease PAW3902 and PAA3905 backup schedule to 200ms 2022-12-22 20:46:19 -05:00
Eric Katzfey c3e70b03aa Add more to Voxl2 build and fix associated build errors (#20821)
- Do not pull in PWM parameters when DISABLE_PARAMS_MODULE_SCOPING is TRUE since VOXL2 has no PWM nor any of the required timer_config files that go along with that
 - Replace non-standard M_PI constants with PX4 defined M_PI_F constants
 - Include missing header file for function hrt_absolute_time declaration
 - Add new PX4_SOC_ARCH_ID for the VOXL2 board
2022-12-22 15:44:19 -05:00
alexklimaj 35a9dba6e6 Enable ARKV6X heater 2022-12-22 15:12:32 -05:00
Daniel Agar 03c0808ae6 vscode/settings.json: add .sdf and Jenkinsfile associations 2022-12-21 16:46:25 -05:00
Silvan Fuhrer aff3f2e77f boards: disable gyro fft module for v5 and v5x to safe flash
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2022-12-21 10:17:59 -05:00
Daniel Agar f2cd7667dc systemcmds/bsondump: new command line utility (extracted from parameters) 2022-12-21 10:14:00 -05:00
Konrad f5524fa605 TECS: Combine both airspeed and airspeed derivative filters in TECS into one MIMO filter using a steady state Kalman filter. 2022-12-21 09:04:19 +01:00
Konrad 08c36612b3 TECS: Updated throttle control for airspeed sensorless vehicles. It includes the P gain controller instead of feedforward only. I term is still disabled. 2022-12-21 09:04:19 +01:00
Konrad 77539d4dac TECS: Rearrange setpoint input. If an altitude rate is given, use this as a feedforward term in the altitude control. If an altitude setpoint is given use a reference model to get a smooth altitude setpoint. 2022-12-21 09:04:19 +01:00
Konrad 8c6dfc840b TECS: Fix bug to reset airspeed derivative and energy rate low pass filters at every time step. 2022-12-21 09:04:19 +01:00
Konrad 7a3e0f53c2 TECS: Replaced old tecs by cleaned up version. 2022-12-21 09:04:19 +01:00
Konrad 991689d3cd TECS: Add new tecs library in parallel to old tecs in the position control library for comparison. 2022-12-21 09:04:19 +01:00
Konrad c64e111d8e TECS: Rearranged the TECS library into submodules. 2022-12-21 09:04:19 +01:00
Daniel Agar 54a32eb2f7 ekf2: EV overhaul yaw and position fusion (#20501)
- move EV yaw and EV position to new state machines
 - EV yaw and EV pos now configured via EKF2_EV_CTRL (migrated from EKF2_AID_MASK)
 - new EV position offset estimator to enable EV position while GPS position is active (no more EV pos delta fusion)
 - yaw_align now strictly means north (no more rotate external vision aid mask)
 - automatic switching between EV yaw, and yaw align north based on GPS quality
2022-12-20 10:23:56 -05:00
Silvan Fuhrer 20342216e2 Airspeed Selector: use better density source and only save scale parameter if valid (#20764)
* AirspeedSelector: use vehicle_air_data.rho for calculating groundspeed-wind CAS

Previously the vehicle_air_data.temperature and pressure was used, instead of the
density field directly.
Only makes a difference if there is an airspeed sensor connected to provide
the air temperature.

* AirspeedSelector: only safe estimated scale in param if airspeed is valid

* AirspeedSelector: remove 0.01 cliff for saving learned scale to param

Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2022-12-20 15:52:54 +01:00
David Sidrane efbb2cf2e3 nxp_ucans32k146:Add LPSPI DMA
nxp_ucans32k146:Add Dready
2022-12-20 09:31:05 -05:00
David Sidrane b7ea31ceed s32k1xx:Add gpiosetevent 2022-12-20 09:31:05 -05:00
David Sidrane da536b3a82 nxp_ucans32k146:Add PROBEs for debugging 2022-12-20 09:29:07 -05:00
David Sidrane e8aa54e7bb nxp_ucans32k146:Use GPIO based RTS (Buffer not character) 2022-12-20 09:29:07 -05:00
David Sidrane fe7d761a11 nxp_ucans32k146:Use serial DMA 2022-12-20 09:29:07 -05:00
David Sidrane 39822ef5a1 nxp_mr-canhubk:lpuart0 use Serial HW flow control 2022-12-20 09:27:40 -05:00
David Sidrane 6a7f5a339b nxp_mr-canhubk3:fmu use Serial DMA 2022-12-20 09:27:40 -05:00
David Sidrane 022e941ebe NuttX with s32k3 Serial DMA 2022-12-20 09:27:40 -05:00
Igor Misic 52275923ad adsb: add support for callsign 2022-12-20 08:18:09 +01:00
Eric Katzfey 678607117a Qurt UART ESC driver support (#20784) 2022-12-20 01:25:12 -05:00
PX4 BuildBot da7d52e302 Update submodule libevents to latest Tue Dec 20 00:39:10 UTC 2022
- libevents in PX4/Firmware (26f3fea7ebb328ef58d4d592dae0559c91f13c1c): https://github.com/mavlink/libevents/commit/0c8bc543db2f8c78f59214d5bcf959bdadd96677
    - libevents current upstream: https://github.com/mavlink/libevents/commit/8d9c5551273a52e22253ea6abf28d9e4b05e0ab7
    - Changes: https://github.com/mavlink/libevents/compare/0c8bc543db2f8c78f59214d5bcf959bdadd96677...8d9c5551273a52e22253ea6abf28d9e4b05e0ab7

    8d9c555 2022-12-13 Beat Küng - README: clarify use of component ID
2022-12-20 01:24:15 -05:00
Peter van der Perk b8e07cc52c Fix Ethernet Socket Defaults 2022-12-19 13:24:55 -05:00
Silvan Fuhrer 9c66f1b14a AirspeedValidator: Remvoe airspeed variance after boot check (#20678)
This checks was introduced to catch the (unlikely) case of the driver publishing
a stale value that is not actually from a current measurement right after boot.
This was done by declaring it invalid if there is no update of the measurement
within the first 10s after boot.
Practice though has shown that around 0, many airspeed sensors have such a low
resolution that the reported airspeed value is often at the exact same value
for longer periods of time on totally healthy sensors, and thus we trigger
some false positive failure detections.
Given that this failure mode (driver publishing stale data) is quite rare (if
it doesn't receive new data it should stop publishing), I remove this check
here again.
When in aerodynamic flight mode and armed, there is still the data stuck
check that can trigger if there is no update for 2s.

Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2022-12-19 11:36:48 +01:00
Igor Misic df441ac202 drivers/gps: add param for enabling protocols at i2c interface 2022-12-19 08:52:36 +01:00
tanja e5255b173a v6x: use param SENS_INT_BARO_EN to start internal bmp388 2022-12-19 08:50:31 +01:00
tanja 987de56af2 v6x: rev10 has second PM 2022-12-19 08:50:31 +01:00
tanja 09039faf0a v6x: change bootloader UART7 to UART5 2022-12-19 08:50:31 +01:00
Eric Katzfey b0580d88e1 Added muorb aggregator from DSP to Apps direction 2022-12-16 19:43:00 -05:00
Peter van der Perk d945e87e4f S32K3 DRDY less ambigious 2022-12-16 12:02:44 -05:00
Peter van der Perk 05dd43a8de S32K3 Correct pinirq pinset for external interrupt 2022-12-16 12:02:44 -05:00
RomanBapst ffdf186598 vtol_att_control: reset transition timer states when starting a transition
Signed-off-by: RomanBapst <bapstroman@gmail.com>
2022-12-16 11:36:00 +03:00
frederictaillandier 84c5ce3a53 removing catkin sitl_gazebo submodule tests as it has also been removed in PX4-Autopilot
Updating the submodule
https://github.com/PX4/PX4-SITL_gazebo/pull/934
2022-12-16 08:11:28 +01:00
JaeyoungLim 9db133b13d Remove angular velocity controller module 2022-12-16 07:52:20 +01:00
Peter van der Perk 52c0cba24b NuttX with TXAVAL merged
nxp_ucans32k146:Use txavail NuttX

   Fix Stack Size
   Expose some K1 debug features
2022-12-15 08:29:10 -05:00
RomanBapst 48e8477799 vtol_att_control: disable maximum height for quadchute by default
Signed-off-by: RomanBapst <bapstroman@gmail.com>
2022-12-15 15:40:53 +03:00
RomanBapst 9ed51ba8ed quadchute: introduced parameter to specify maximum height
Signed-off-by: RomanBapst <bapstroman@gmail.com>
2022-12-15 15:40:53 +03:00
Peter van der Perk f3fe10f63e S32K Dynamic periphclocks 2022-12-14 10:44:42 -05:00
Marcell Rausch 6c7702b906 mavlink: Keep sending GPS_RAW_INT/GPS2_RAW.hpp streams on GPS failure
* GPS_RAW_INT: Only send no gps messages if gps has ever been present
 * GPS2_RAW: Keep in sync with GPS_RAW_INT

Signed-off-by: Marcell Rausch <marcell@auterion.com>
2022-12-14 09:12:39 -05:00
David Sidrane 96362bfb52 nxp_mr-canhubk3 Add PROBEs for Debugging 2022-12-14 07:34:23 -05:00
Beat Küng 5217bedd4b commander: make SYS_HAS_MAG a count param and ensure system has N calibrated + enabled mags 2022-12-14 07:55:04 +01:00
Tanja Baumann d75e61eef6 v6x: fix rc.board_sensors ver command (#20763) 2022-12-14 07:53:12 +01:00
Daniel Agar 4d318ebd30 mavlink: add initial mavlink OPEN_DRONE_ID_SYSTEM stream 2022-12-13 19:39:27 -05:00
Daniel Agar 696eeb9a49 ekf2: update EV height state machine (small piece of EV overhaul)
- respect new EKF2_EV_CTRL parameter for VPOS usage
  - EV hgt rotate EV position before usage (there's often a small offset in frames)
  - EV hgt reset use proper EV velocity body frame
  - try to keep EV hgt and EV vel state machines consistent
  - small incremental piece of https://github.com/PX4/PX4-Autopilot/pull/19128
2022-12-13 13:29:18 -05:00
Daniel Agar 805ffa9d0b ekf2: push mag cal reset to delayed time horizon 2022-12-13 10:24:02 -05:00
David Sidrane 57b82af3a0 Hard fault on Port E config (CAN0) due to not sizing the table correctly
@PetervdPerk-NXP  bit by the non-auto sizing table bug again!

Symptom: Hard fault on Port E config (CAN0)
2022-12-13 10:09:40 -05:00
PX4 BuildBot 8b02b6b661 Update submodule mavlink to latest Tue Dec 13 12:38:57 UTC 2022
- mavlink in PX4/Firmware (8e1e5c4faa7749f6bc16650c7452af249a7dcc3a): https://github.com/mavlink/mavlink/commit/081120844300d68e90c8c4d40ab4662cb3eb604c
    - mavlink current upstream: https://github.com/mavlink/mavlink/commit/0c7792edfeee7cf08e531cb4ce5b4f01854e5724
    - Changes: https://github.com/mavlink/mavlink/compare/081120844300d68e90c8c4d40ab4662cb3eb604c...0c7792edfeee7cf08e531cb4ce5b4f01854e5724

    0c7792ed 2022-12-08 olliw42 - Gimbal Device: Adding more invalid and bitmask attributes (II) (#1927)
771926e6 2022-12-07 olliw42 - gimbal manager cap flags: resolve duplication mistake
2bc32222 2022-12-07 olliw42 - add gimbal device flags to low word of gimbal manager flags (#1928)
2022-12-13 09:06:14 -05:00
Beat Küng 685d5cb473 fix kconfig: rename LINUX to LINUX_TARGET
LINUX is defined by cmake >= 3.25:
https://cmake.org/cmake/help/latest/variable/LINUX.html
2022-12-13 09:05:18 -05:00
Roman Bapst 257d4e473b fixed tailsitter transitions (#20756)
Signed-off-by: RomanBapst <bapstroman@gmail.com>
2022-12-13 10:38:38 +01:00
tanja aba11ce920 rename all instances of serial PPB to EXT2 2022-12-13 08:09:15 +01:00
tanja ba344231d2 v6x: configure SPI busses for board 0x010 2022-12-13 08:09:15 +01:00
tanja ed0f602ce8 v6x: Adapt sensor set for board 0x010 upstream 2022-12-13 08:09:15 +01:00
tanja aec4b93527 v6x: Add EXT2 instance on ttyS3 2022-12-13 08:09:15 +01:00
Eric Katzfey e17ddcc0e5 Qurt platform custom icm42688p IMU driver (#20753)
- first version of IMU driver for the VOXL 2 platform (Qurt)
 - this is a customized version of the Invensense ICM42688P driver, it is currently in the VOXL 2 board directory
2022-12-12 22:02:23 -05:00
Peter van der Perk 33e39d68f7 DroneCAN SocketCAN driver add FMU support 2022-12-12 20:06:13 -05:00
Eric Katzfey 9b3feee6ee worker and HRT threads for Qurt platform (#20739)
* Getting work manager and hrt threads ready for Qurt platform
2022-12-12 14:25:28 -05:00
Daniel Agar dc0823062e github actions: disable vtol_standard address sanitizer test
- unfortunately this is often too slow for github actions
2022-12-12 14:23:13 -05:00
bresch 41abf695a8 ekf2: use more efficient covariance update computation
KSK' is faster to compute than KHP and is mathematically equivalent
2022-12-12 12:31:54 -05:00
Daniel Agar 61fa28c0d6 Tools/generate_board_targets_json.py exclude px4_ros2_default for now 2022-12-12 11:46:36 -05:00
dirksavage88 5b667cf4ba Uavcannode hygrometer support: temp and humidity
Signed-off-by: dirksavage88 <dirksavage88@gmail.com>
2022-12-12 10:54:08 -05:00
Eric Katzfey a5e4295029 lib/drivers: device drivers library for Qurt platform (#20741) 2022-12-10 19:31:06 -05:00
Noah Bliss d8bfee517a boards: beaglebone blue point to a newer version of librobotcontrol (#20740)
- Fixes PRU path issues found in old versions of the library.
2022-12-10 17:27:32 -05:00
alexklimaj 29ade6c472 Increase SPI stacks by 16 bytes 2022-12-10 10:54:20 -05:00
Zachary Lowell e4f641e9b5 Qurt qshell implementation (#20736) 2022-12-09 16:49:41 -05:00
Daniel Agar 8cf13d50a8 ekf2: EKFGSF_yaw minor cleanup (#20510)
- don't store unnecessary IMU copy in class, pass it through where required
 - remove custom pi constants
 - remove unused fields from ahrs_ekf_gsf (vel_NE, fuse_gps, accel_dt)
 - explicitly initialize everything in header
 - apply PX4 code style
 - set GPS velocity before yaw estimator update, not after
2022-12-09 13:24:00 -05:00
Zachary Lowell 643eed51cb Qurt lightweight parameter implementation (#20735) 2022-12-09 09:55:49 -08:00
Daniel Agar f3884d5835 Update world_magnetic_model to latest Fri Dec 9 11:14:09 UTC 2022
Co-authored-by: PX4 BuildBot <bot@px4.io>
2022-12-09 11:40:30 -05:00
Daniel Agar 41fa53605c boards: rebuild STM32H7 bootloaders and px4-io-v2 2022-12-09 11:02:21 -05:00
Peter van der Perk 5b7a2230fc Update NuttX kernel 2022-12-09 06:36:40 -05:00
Peter van der Perk 3b5f0e21bc Add Sysview support in conjunction with PX4 cpuload note driver 2022-12-09 06:36:40 -05:00
Beat Küng a502146d73 board_hw_rev_ver: fix hex printf 2022-12-09 07:52:50 +01:00
Beat Küng 8bde2a7a28 board_hw_rev_ver.c: check for 'rv == OK' before reading the revision
Otherwise a potential failure reading the hw version can get overwritten.
2022-12-09 07:52:50 +01:00
Daniel Agar 8114aad983 initial minimal PX4_ROS2 platform and px4_ros2_default build (#20689)
- new ROS2 platform in PX4 intended for creating configs that build and run entirely in ROS2
 - PX4_CONFIG defaults to px4_ros2_default if no config specified and in a colcon workspace with ROS_VERSION=2
 - currently doesn't do much other than allow you to build px4 msgs interface package
2022-12-08 23:03:44 -05:00
Roman Bapst cfb670fbb3 Refactor quadchute logic (#20704)
* moved computation of _time_since_trans_start into base class

Signed-off-by: RomanBapst <bapstroman@gmail.com>

* refactor quadchute logic
- move entired logic into VtolType class
- split into smaller functions

Signed-off-by: RomanBapst <bapstroman@gmail.com>

* Update src/modules/vtol_att_control/vtol_type.h

Co-authored-by: Silvan Fuhrer <silvan@auterion.com>

Signed-off-by: RomanBapst <bapstroman@gmail.com>
Co-authored-by: Silvan Fuhrer <silvan@auterion.com>
2022-12-08 11:56:20 +03:00
Daniel Agar 2b1d8c1d8e mavlink switch to common dialect by default and update to latest 2022-12-07 15:46:04 -05:00
Daniel Agar 72cb4bee01 SITL gz fixes and init cleanup (#20725)
- remove broken gz version handling and remove x500-legacy
 - fix all shellcheck warnings
 - prepare for Gazebo Garden compatibility (needs more work)
2022-12-07 15:41:13 -05:00
Beniamino Pozzan f2c71a8874 microdds_client: added environment variable for defining namespace
Signed-off-by: Beniamino Pozzan <beniamino.pozzan@phd.unipd.it>
2022-12-07 14:36:23 -05:00
Beniamino Pozzan 5a2e41c4e4 microdds_client: add XRCE_DDS_KEY parameter
Multiple agents can connect to the same client

For sitl builds, if the intance number is different from zero,
  XRCE_DDS_KEY is set to the instance number and
  the microdds_client is automatically started
    with namespace
      px4_"instance_number"
    and udp port 8888
If the instance number is equal to zero
  XRCE_DDS_KEY is left untouched and
  the microdds_client is automatically started
    without namespace
    and udp port 8888

Signed-off-by: Beniamino Pozzan <beniamino.pozzan@phd.unipd.it>
2022-12-07 14:36:23 -05:00
Beniamino Pozzan a92897fb58 microdds_client: add namespace to partecipant name
The partecipant name is modified into
"client_namespace"/px4_micro_xrce_dds

For sitl builds the microdds_client is automatically started
with namespace
px4_"instance_number"
and udp port
8888+"intance_number"

Signed-off-by: Beniamino Pozzan <beniamino.pozzan@phd.unipd.it>
2022-12-07 14:36:23 -05:00
Daniel Agar 8eb2a0a3ec ekf2: delete orientation_covariances_euler()
- usage replaced with now public calcRotVecVariances()
2022-12-07 12:41:27 -05:00
Mathieu Bresciani a187bb3b80 ekf2: predict covariance before predicting state (#20715)
* To predict the covariance, the jacobian from the previous to the current state is required.
2022-12-07 09:34:19 -05:00
Daniel Agar c12d9124bd Update submodule GPS drivers to latest Wed Dec 7 12:38:31 UTC 2022
- GPS drivers in PX4/Firmware (4eb0a0598048df07c213659944b2720ee42e1cc2): https://github.com/PX4/PX4-GPSDrivers/commit/b49a6c257371abae6e26e0a3e0fc04b963b2f13d
    - GPS drivers current upstream: https://github.com/PX4/PX4-GPSDrivers/commit/b76fc1df45952abbc76c7eb9f5a5ab3ae994bef2
    - Changes: https://github.com/PX4/PX4-GPSDrivers/compare/b49a6c257371abae6e26e0a3e0fc04b963b2f13d...b76fc1df45952abbc76c7eb9f5a5ab3ae994bef2

    b76fc1d 2022-11-21 qst0528 - ashtech: fix position accuracy loss caused by misplaced integer cast (#118)

Co-authored-by: PX4 BuildBot <bot@px4.io>
2022-12-07 09:16:31 -05:00
PX4 BuildBot db791fa317 Update submodule sitl_gazebo to latest Wed Dec 7 12:38:25 UTC 2022
- sitl_gazebo in PX4/Firmware (b3cebc6686): https://github.com/PX4/PX4-SITL_gazebo/commit/b38e701ec4230a6105ace872447c0f63bc181d41
    - sitl_gazebo current upstream: https://github.com/PX4/PX4-SITL_gazebo/commit/1b56329b73f68f1480e58b1137b3e5169c7453d1
    - Changes: https://github.com/PX4/PX4-SITL_gazebo/compare/b38e701ec4230a6105ace872447c0f63bc181d41...1b56329b73f68f1480e58b1137b3e5169c7453d1

    1b56329 2022-11-22 Frederic Taillandier - adding a gazebo position sniffer to get position at a high rate from another program (#928)
2022-12-07 09:16:00 -05:00
PX4 BuildBot b3cebc6686 Update submodule libevents to latest Wed Dec 7 00:39:06 UTC 2022
- libevents in PX4/Firmware (ff161d5eca5ee3e605840dc05642984985fcbf5a): https://github.com/mavlink/libevents/commit/179f86a8fc7fd74cb80630e77b1b9435d3c5b748
    - libevents current upstream: https://github.com/mavlink/libevents/commit/0c8bc543db2f8c78f59214d5bcf959bdadd96677
    - Changes: https://github.com/mavlink/libevents/compare/179f86a8fc7fd74cb80630e77b1b9435d3c5b748...0c8bc543db2f8c78f59214d5bcf959bdadd96677

    0c8bc54 2022-11-07 Beat Küng - README: fix typo
ca1cce0 2022-11-04 Beat Küng - README: add note for usage of UNIT's
2022-12-06 19:39:37 -05:00
PX4 BuildBot 9c8bf0b4e0 Update submodule apps to latest Tue Dec 6 23:41:48 UTC 2022
- apps in PX4/Firmware (351bd1768a4a862f81b2a262225e945c0e4fe4fa): https://github.com/PX4/NuttX-apps/commit/e04333c986a47ec03ccb83e985f520fe30e3f1b6
    - apps current upstream: https://github.com/PX4/NuttX-apps/commit/a489381b49835ecba6f3b873b5071d882a18152f
    - Changes: https://github.com/PX4/NuttX-apps/compare/e04333c986a47ec03ccb83e985f520fe30e3f1b6...a489381b49835ecba6f3b873b5071d882a18152f

    a489381b4 2022-10-17 Peter van der Perk - [REJECTED] Backport 0d06c1c netinit:Network Monitor add a polled option
7b7cd332e 2022-09-12 Peter van der Perk - [REJECTED] Backport dbcb783671cee8a8c97b5909d9eb818c3864ca93 FAT DMA fix
2022-12-06 19:37:39 -05:00
Daniel Agar c1c4c96c88 boards: flywoo_gn-f405 NuttX upgrade fixes 2022-12-06 19:35:30 -05:00
Daniel Agar 4f99ac209c gitmodules update NuttX to 10.3.0+ 2022-12-06 18:40:58 -05:00
Silvan Fuhrer 2b8295e30f FW Position control: switch from L1 to NPFG guidance by default
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2022-12-06 12:54:58 -05:00
Daniel Agar f12dbb3ff7 boards: px4_fmu-v5_test disable common distance sensors to save flash 2022-12-06 11:39:25 -05:00
Daniel Agar 91a43c3bce boards: px4_fmu-v5_uavcanv0periph disable camera_feedback to save flash 2022-12-06 10:48:56 -05:00
Daniel Agar 9b20228ffb boards: modalai_voxl2-io NuttX upgrade fixes and sync with px4-io-v2 2022-12-06 10:45:30 -05:00
Daniel Agar a191509b27 boards: raspberrypi_pico NuttX upgrade fixes 2022-12-06 10:40:27 -05:00
Zachary Lowell 91acd494a3 Qurt uORB communicator fixes (#20705)
- there was an issue sending a message from slpi to apps. Seems the code was stuck in an loop and crashed when the message was sent from slpi to apps
2022-12-06 10:33:19 -05:00
Beat Küng 1ea026961e jmavsim_run.sh: add module exports to avoid access errors
With openjdk 17.0.5 2022-10-18, jmavsim fails to start due to missing
exports. This was previously a warning and turned into an error now.

Caught AppContextInfo(Bug 1004) InaccessibleObjectException: Unable to make public static sun.awt.AppContext sun.awt.AppContext.getAppContext() accessible: module java.desktop does not "exports sun.awt" to unnamed module @2c767a52 on thread J3D-Renderer-1
    [0]: java.base/java.lang.reflect.AccessibleObject.checkCanSetAccessible(AccessibleObject.java:354)
    [1]: java.base/java.lang.reflect.AccessibleObject.checkCanSetAccessible(AccessibleObject.java:297)
    [2]: java.base/java.lang.reflect.Method.checkCanSetAccessible(Method.java:199)
    [3]: java.base/java.lang.reflect.Method.setAccessible(Method.java:193)
    [4]: com.jogamp.nativewindow.awt.AppContextInfo$1$1.run(AppContextInfo.java:40)
    [5]: com.jogamp.common.util.UnsafeUtil.doWithoutIllegalAccessLogger(UnsafeUtil.java:219)
    [6]: com.jogamp.nativewindow.awt.AppContextInfo$1.run(AppContextInfo.java:34)
    [7]: java.base/java.security.AccessController.doPrivileged(AccessController.java:318)
    [8]: com.jogamp.nativewindow.awt.AppContextInfo.<clinit>(AppContextInfo.java:31)
    [9]: com.jogamp.nativewindow.awt.JAWTWindow.<init>(JAWTWindow.java:128)
    [10]: jogamp.nativewindow.jawt.x11.X11JAWTWindow.<init>(X11JAWTWindow.java:60)
    [11]: java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    [12]: java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:77)
    [13]: java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
    [14]: java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:499)
    [15]: java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:480)
    [16]: jogamp.nativewindow.NativeWindowFactoryImpl.getAWTNativeWindow(NativeWindowFactoryImpl.java:105)
    [17]: jogamp.nativewindow.NativeWindowFactoryImpl.getNativeWindowImpl(NativeWindowFactoryImpl.java:66)
    [18]: com.jogamp.nativewindow.NativeWindowFactory.getNativeWindow(NativeWindowFactory.java:654)
    [19]: javax.media.j3d.JoglPipeline$QueryCanvas.addNotify(JoglPipeline.java:8604)
    [20]: java.desktop/java.awt.Container.addNotify(Container.java:2804)
    [21]: java.desktop/java.awt.Window.addNotify(Window.java:791)
    [22]: java.desktop/java.awt.Frame.addNotify(Frame.java:495)
    [23]: java.desktop/java.awt.Window.show(Window.java:1053)
    [24]: java.desktop/java.awt.Component.show(Component.java:1728)
    [25]: java.desktop/java.awt.Component.setVisible(Component.java:1675)
    [26]: java.desktop/java.awt.Window.setVisible(Window.java:1036)
    [27]: javax.media.j3d.JoglPipeline.getBestConfiguration(JoglPipeline.java:8379)
    [28]: javax.media.j3d.Renderer.doWork(Renderer.java:496)
    [29]: javax.media.j3d.J3dThread.run(J3dThread.java:271)
Caught AppContextInfo(Bug 1004) IllegalAccessException: class com.jogamp.nativewindow.awt.AppContextInfo cannot access class sun.awt.AppContext (in module java.desktop) because module java.desktop does not export sun.awt to unnamed module @2c767a52 on thread J3D-Renderer-1
    [0]: java.base/jdk.internal.reflect.Reflection.newIllegalAccessException(Reflection.java:392)
    [1]: java.base/java.lang.reflect.AccessibleObject.checkAccess(AccessibleObject.java:674)
    [2]: java.base/java.lang.reflect.Method.invoke(Method.java:560)
    [3]: com.jogamp.nativewindow.awt.AppContextInfo.fetchAppContext(AppContextInfo.java:191)
    [4]: com.jogamp.nativewindow.awt.AppContextInfo.update(AppContextInfo.java:135)
    [5]: com.jogamp.nativewindow.awt.AppContextInfo.<init>(AppContextInfo.java:50)
    [6]: com.jogamp.nativewindow.awt.JAWTWindow.<init>(JAWTWindow.java:128)
    [7]: jogamp.nativewindow.jawt.x11.X11JAWTWindow.<init>(X11JAWTWindow.java:60)
    [8]: java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    [9]: java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:77)
    [10]: java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
    [11]: java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:499)
    [12]: java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:480)
    [13]: jogamp.nativewindow.NativeWindowFactoryImpl.getAWTNativeWindow(NativeWindowFactoryImpl.java:105)
    [14]: jogamp.nativewindow.NativeWindowFactoryImpl.getNativeWindowImpl(NativeWindowFactoryImpl.java:66)
    [15]: com.jogamp.nativewindow.NativeWindowFactory.getNativeWindow(NativeWindowFactory.java:654)
    [16]: javax.media.j3d.JoglPipeline$QueryCanvas.addNotify(JoglPipeline.java:8604)
    [17]: java.desktop/java.awt.Container.addNotify(Container.java:2804)
    [18]: java.desktop/java.awt.Window.addNotify(Window.java:791)
    [19]: java.desktop/java.awt.Frame.addNotify(Frame.java:495)
    [20]: java.desktop/java.awt.Window.show(Window.java:1053)
    [21]: java.desktop/java.awt.Component.show(Component.java:1728)
    [22]: java.desktop/java.awt.Component.setVisible(Component.java:1675)
    [23]: java.desktop/java.awt.Window.setVisible(Window.java:1036)
    [24]: javax.media.j3d.JoglPipeline.getBestConfiguration(JoglPipeline.java:8379)
    [25]: javax.media.j3d.Renderer.doWork(Renderer.java:496)
    [26]: javax.media.j3d.J3dThread.run(J3dThread.java:271)
Exception in thread "main" java.lang.reflect.InvocationTargetException
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
        at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.base/java.lang.reflect.Method.invoke(Method.java:568)
        at org.eclipse.jdt.internal.jarinjarloader.JarRsrcLoader.main(JarRsrcLoader.java:61)
Caused by: java.lang.RuntimeException: java.lang.IllegalAccessException: class javax.media.j3d.JoglPipeline cannot access class sun.awt.X11GraphicsDevice (in module java.desktop) because module java.desktop does not export sun.awt to unnamed module @2c767a52
        at javax.media.j3d.JoglPipeline.getScreen(JoglPipeline.java:8553)
        at javax.media.j3d.Screen3D.<init>(Screen3D.java:354)
        at javax.media.j3d.Canvas3D.<init>(Canvas3D.java:1124)
        at javax.media.j3d.Canvas3D.<init>(Canvas3D.java:1026)
        at javax.media.j3d.Canvas3D.<init>(Canvas3D.java:990)
        at me.drton.jmavsim.Visualizer3D$CustomCanvas3D.<init>(Visualizer3D.java:909)
        at me.drton.jmavsim.Visualizer3D.<init>(Visualizer3D.java:196)
        at me.drton.jmavsim.Simulator.<init>(Simulator.java:193)
        at me.drton.jmavsim.Simulator.main(Simulator.java:944)
        ... 5 more
Caused by: java.lang.IllegalAccessException: class javax.media.j3d.JoglPipeline cannot access class sun.awt.X11GraphicsDevice (in module java.desktop) because module java.desktop does not export sun.awt to unnamed module @2c767a52
        at java.base/jdk.internal.reflect.Reflection.newIllegalAccessException(Reflection.java:392)
        at java.base/java.lang.reflect.AccessibleObject.checkAccess(AccessibleObject.java:674)
        at java.base/java.lang.reflect.Method.invoke(Method.java:560)
        at javax.media.j3d.JoglPipeline.getScreen(JoglPipeline.java:8551)
        ... 13 more
2022-12-06 09:00:05 -05:00
Thomas Stastny 2da10183f3 welford mean: remove old comments 2022-12-06 08:59:12 -05:00
Silvan Fuhrer ac28c6b7e2 VTOL: take home_position into account for ground clearance (#20683)
* VTOL: take home_position into account for ground clearance

For approximating distance to ground in case there is no valid distance sensor
data, subtract the home position altitude from the local position altitude.

Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
Co-authored-by: Matthias Grob <maetugr@gmail.com>
2022-12-06 13:19:35 +01:00
Peter van der Perk f1ff47c088 nxp_ucans32k146:Use DMA on I2C 2022-12-06 06:50:46 -05:00
Peter van der Perk 45244e610f NXP MR-CANHUBK3 Support 2022-12-06 06:49:28 -05:00
MAD-CRAZY-MAN 7f01e3962f thepeach_k1/r1: Copyright Amendment, Rename HW comment Correctly. 2022-12-06 06:43:46 -05:00
MAD-CRAZY-MAN 5fc10971ff update by NuttX 10.3+ 2022-12-06 06:43:46 -05:00
MAD-CRAZY-MAN 21093b829b boards: Add ThePeach K1/R1 2022-12-06 06:43:46 -05:00
bresch 8e3517fae0 DataValidator: fix unexpected failover
Instead of always starting with instance 0 (potentially an internal
mag), first take the current sensor as reference to compare the other
ones against it.
The issue is that otherwise we can end up in a
situation where a switch occurs because the currently used sensor isn't
much better than a sensor with a lower index: because the selected one
isn't much better, we cannot "fail-over" to it and get stuck on another
sensor, triggering a fail-over.
2022-12-06 08:16:23 +01:00
Thomas Stastny c5dc1221b6 failure detector: use multiplication instead of division
Co-authored-by: Daniel Agar <daniel@agar.ca>
2022-11-30 14:51:07 -05:00
Thomas Stastny 4e8381e8cf failure detector: negative guard sqrt in std dev calc 2022-11-30 14:51:07 -05:00
Thomas Stastny eb80e0410c failure detector: fix imbalanced prop metric time interval 2022-11-30 14:51:07 -05:00
Daniel Agar 89b81b0bd6 create Welford mean Vector with covariance and improve precision with Kahan summation (#20676)
- WelfordMeanVector now computes covariance
 - use Kahan summation for Welford mean (but continue using float32 for actual mean, etc)
 - WelfordMean and WelfordMeanVector handle initial value and count roll over
 - Welford mean count rollover at 16 bit max to prevent numerical issues and shift weight to newer samples
 - sensors/vehicle_imu: update Welford mean usage (now simplified with resets removed)
    - fix vehicle_imu_status accel var, now properly rotated with full covariance matrix
 - gyro_calibration: update Welford mean usage
2022-11-30 14:50:13 -05:00
bresch 5155346d60 ekf2: do not use gnss data when no lock 2022-11-30 08:50:34 -05:00
Jaeyoung Lim 65577a4f89 Fix invalid offboard setpoints for fw pos control
This commit fixes a regression that disables offboard control
2022-11-30 09:14:57 +01:00
bresch 5d7faefa84 ekf2: don't add invalid GNSS samples to the buffer 2022-11-30 00:22:15 -05:00
Silvan Fuhrer 0c923bda4e FW Attitude Control: fix integral resetting
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2022-11-29 18:36:15 +01:00
alexklimaj b78b896498 Adjust min and max can bootloader timing for ardupilot compatibility 2022-11-29 10:21:28 -05:00
Matthias Grob 9e776741d9 battery: allow for external state of charge injection 2022-11-29 09:27:50 +01:00
Matthias Grob babe93c3bf rc_update: adapt throttle trim calibration for [-1,1]
This is fully backwards compatible: If the throttle trim is set to
the minimum then it's the legacy calibration and gets
interpreted such that there is no trim and behavior remains as before.
If the trim is set to a different value than the minimum then it gets
used like with all other channels which was unsupported before.
2022-11-28 19:25:55 +01:00
Matthias Grob 331cb21dee manual_control_setpoint: change stick axes naming
In review it was requested to have a different name for
manual_control_setpoint.z because of the adjusted range.

I started to investigate what naming is most intuitive and found
that most people recognize the stick axes as roll, pitch, yaw, throttle.
It comes at no surprise because other autopilots
and APIs seem to share this convention.

While changing the code I realized that even within the code base
the axes are usually assigned to a variable with that name or
have comments next to the assignment clarifying the axes
using these names.
2022-11-28 19:25:55 +01:00
Matthias Grob 83246c84cf Switch manual_control_setpoint.z scaling from [0,1] to [-1,1]
To be consistent with all other axes of stick input and avoid future
rescaling confusion.

Note: for the MAVLink message 69 MANUAL_CONTROL it's using the full range
according to the message specs now [-1000,1000].
2022-11-28 19:25:55 +01:00
Matthias Grob 5579e319ff mavlink_receiver: refactor forgotten manual_control_setpoint naming 2022-11-28 19:25:55 +01:00
Peter van der Perk f16286f3eb Add jlink-nuttx build command for gdb helper for multi-task debugging 2022-11-28 06:29:18 -05:00
Matthias Grob aac05d7bcd Remove unmaintained rover_steering_control example 2022-11-28 10:02:04 +01:00
Matthias Grob a953167a6a Remove unmaintained uuv_example_app 2022-11-28 10:02:04 +01:00
Silvan Fuhrer 79c55614d8 FW PositionController: remove mavlink_log_pub, and only use events
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2022-11-25 18:45:36 +01:00
Silvan Fuhrer bd176241f8 param translation: remove old param translations (more than 1 release back)
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2022-11-25 18:45:36 +01:00
Silvan Fuhrer 3f773809c4 LaunchDetection: fix code style (name class members with trailing underscore)
And also align parameter handle name to real parameter name.

Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2022-11-25 18:45:36 +01:00
Silvan Fuhrer 1d75138659 LaunchDetector: fix counter logic
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2022-11-25 18:45:36 +01:00
Silvan Fuhrer 1400f81874 FW Pos C: rename LAUN_* param to FW_LAUN_* to be more explicit
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2022-11-25 18:45:36 +01:00
Silvan Fuhrer 5587a47471 Launch Detection: reduce user notification to info from warning
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2022-11-25 18:45:36 +01:00
Silvan Fuhrer 5a1adab6fb FW Position controller params: flaring params slight meta data adjustments
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2022-11-25 18:45:36 +01:00
Silvan Fuhrer 7fb70c55df FW Position controller: runway takeoff: track initial takeoff yaw if not in Mission Takeoff
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2022-11-25 18:45:36 +01:00
Silvan Fuhrer 1b89f26691 FW PosC: remove hack to force _landed to false if (not)launch_detected, as it is now handles in land detector
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2022-11-25 18:45:36 +01:00
Silvan Fuhrer df1cd4f147 LaunchDetection: code style changes and fix info message.
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2022-11-25 18:45:36 +01:00
Silvan Fuhrer e6e2c889e0 FW Position controller: rename LAUN_ALL_ON to LAUN_DECTN_ON
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2022-11-25 18:45:36 +01:00
Silvan Fuhrer c8129fd902 Launch Detection: add briefs
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2022-11-25 18:45:36 +01:00
Silvan Fuhrer 59e5c68cb0 FW Position control: use yaw at launch detection as bearing setpoint during hand launch takeoff
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2022-11-25 18:45:36 +01:00
Silvan Fuhrer b2f21b956c FW Position control: move LAUN_ALL_ON param to FW Positon Control main params
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2022-11-25 18:45:36 +01:00
Silvan Fuhrer 7691e3ff32 FW Land Detector: force to landed if currently landed and in launch process
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2022-11-25 18:45:36 +01:00
Silvan Fuhrer 90e1f98c57 FW Launch Detection: refactor state machine and pubish launch_detection_status message
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2022-11-25 18:45:36 +01:00
Silvan Fuhrer 35da7f9bc4 Launch Detection: consolidate in single class (use the only existing method, catapult)
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2022-11-25 18:45:36 +01:00
Silvan Fuhrer b05878690d Launch Detector: remove LAUN_CAT_PMAX
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2022-11-25 18:45:36 +01:00
Silvan Fuhrer 5161165d85 FW land detector: expose trigger time in parameter (LNDFW_TRIG_TIME)
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2022-11-25 18:45:36 +01:00
Silvan Fuhrer 71835f57c9 FW land detector: reduce default for LNDFW_VEL_Z_MAX to 1m/s
And remove 0.7 factor for airspeed-less flying for the vertical speed threshold.

Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2022-11-25 18:45:36 +01:00
benjinne 85e9c17a5e drivers/power_monitor: add TI INA220 driver (#20504) 2022-11-23 15:11:29 -05:00
bresch 7888cc8cfd GyroCalibration: update sensor correction before using it
Otherwise, the thermal offset value can be outdated
2022-11-23 13:24:43 -05:00
bresch dae37803da TC: erase current calibration when temp cal is completed 2022-11-23 13:24:43 -05:00
Matthias Grob d81ca65c6f rc_update: replace RC scaling with interpolate function use 2022-11-23 11:06:44 -05:00
Matthias Grob 9de3af1cbc Functions: interpolate brackets and spacing 2022-11-23 11:06:44 -05:00
alexklimaj c7a8589afc Add ARK PAB Carrier
Add ARK_FMU_V6X to RCS netman

Remove arkv6x rc single wire

Fix arkv6x mtd

arkv6x bootloader init all pins to prevent power cycling peripherals on boot

arkv6x don't power cycle sd card on boot

arkv6x add UART4 Telem 4
2022-11-22 18:14:50 -05:00
Daniel Agar 28e1f6790f Jenkinsfile-hardware: don't run logger on stack check build
- stackcheck build is so slow it will trigger the logger watchdog (error fails Jenkins)
2022-11-22 16:07:22 -05:00
David Sidrane 9faa8e23e8 NuttX Upgrade CONFIG_LIB_BOARDCTL->CONFIG_BOARDCTL 2022-11-22 14:30:08 -05:00
David Sidrane 6e78cbe746 NuttX Upgrade CONFIG_LIB_USRWORK->CONFIG_LIBC_USRWORK 2022-11-22 14:30:08 -05:00
Silvan Fuhrer 9cd3eae0aa Navigator: re-introduce min loiter alt, but only apply it for Loiters w/o a specified altitude setpoint
Also applies to Loiters that are started due to the previous mode being over (Takeoff,
VTOL_Takeoff, Mission).

Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2022-11-22 13:46:25 -05:00
Thomas Stastny 8157d83bfc ROMFS: remove deprecated runway takeoff param sets 2022-11-22 13:46:25 -05:00
Thomas Stastny 263a1884b1 fixed-wing: explicitly define landing airspeed
landing airspeed was previously defined by a scale factor multiplied by minimum airspeed. this commit changes this parameter to an explicit speed, and when unspecified, defaults to the minimum airspeed
2022-11-22 13:46:25 -05:00
Silvan Fuhrer 9bdf09a300 Mission: fix float to double conversion when setting lat/lon to NAN
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2022-11-22 13:46:25 -05:00
Silvan Fuhrer 49c363674a FW Position Control: only prevent automatic aborts if already flaring, but allow manual aborts
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2022-11-22 13:46:25 -05:00
Silvan Fuhrer 94d44c40a7 FW Position control: remove param FW_CLMBOUT_DIFF and instead use hardcoded 10m for clearing aborted flag
Use kClearanceAltitudeBuffer for it, which is also used to ensure that during takeoff an
altitude setpoint above the clearance altitdue is set.

Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2022-11-22 13:46:25 -05:00
Silvan Fuhrer 0941ae7579 Navigator: remove MIS_LTRMIN_ALT param, and use new param MIS_LND_ABRT_ALT for landing abort
MIS_LTRMIN_ALt was used to limit the go-to altitude of a LOITER_TO_ALT (not the exit altitude,
but the altitude that the vehicle went to to fly to WP), and during landing abort to climb to
at least this altitude. The min entry altitude of LOITER_TO_ALT I remove with this commit, while
for the min alt during abort I added the new parameter MIS_LND_ABRT_ALT.

Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2022-11-22 13:46:25 -05:00
Thomas Stastny ed39eb4672 mission landing abort: take min loiter alt above land point or current vehicle alt (remove arbitrary +20m) 2022-11-22 13:46:25 -05:00
Thomas Stastny 0fc35ef082 fixed-wing landing abort: disable early landing config during a landing abort
previously, the next position setpoint in the triplet was left unchanged during an abort, which meant that the abort loiter current point combined with land next point triggered the early landing config logic. this commit is only a hack to make things work temporarily.. this needs to be handled better.
2022-11-22 13:46:25 -05:00
Thomas Stastny 08ba5d762f fixed-wing takeoff: sync launch logic with newer runway takeoff modifications
- explicitly defined takeoff airspeed setpoint
- dont use climbout mode
- allow max climb on takeoff
- dont handle post clearance altitude case (navigator will switch anyway)
2022-11-22 13:46:25 -05:00
Silvan Fuhrer a787a326e3 Fixed-wing: split out control of steering wheel into seperate message LandingGearWheel
Completely detach the steering wheel logic from the yaw controller (beside using the
same manual stick input in a manual flight mode).

Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2022-11-22 13:46:25 -05:00
Silvan Fuhrer 6c611a7e8b VehicleAttitudeSetpoint: rename fw_control_yaw to fw_control_yaw_wheel to make usage clearer
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2022-11-22 13:46:25 -05:00
Thomas Stastny 4b036e6723 fixed-wing landing: dont allow land abort while flaring 2022-11-22 13:46:25 -05:00
Thomas Stastny a8c2eaf3e0 fixed-wing landing: add a touchdown time and subsequent ramp down to rwto pitch setpoint after the flare to keep wheels on ground 2022-11-22 13:46:25 -05:00
Thomas Stastny 1de1416773 fixed-wing landing: convert flare time pitch and throttle constraint ramps to sqrt function to make more aggressive 2022-11-22 13:46:25 -05:00
Thomas Stastny f23328d14f fixed-wing landing: ramp in flaring throttle setpoints from last throttle state to keep control continuity
- also put flaring internal states into a struct to organize a bit
- one concern with blending the throttle setpoint like this with the flare time param is that folding prop belly landing airframes may want to have a separate param for shorter throttle kill and still use the flare time ramps for everything else
2022-11-22 13:46:25 -05:00
Thomas Stastny 68e1921f27 make FW_LND_FL_TIME min positive non-zero to protect dividing by zero 2022-11-22 13:46:25 -05:00
Thomas Stastny 928be2958d fixed-wing landing: continue to follow path throughout flare
abruptly changing to a heading setpoint on flare can cause the aircraft to roll and deviate from the runway, this commit
- maintains path following control during the flare not to disrupt the tracking just before touchdown
- (unfortunately for crosswind landing) removes the body axis alignment for runway bearing - this is a compromise

to achieve both runway bearing body axis alignment AND a specific touchdown point, either
1. the wind would need to be considered, and an appropriate diagonal approach (obstructions allowing)  defined to the runway
2. slip control added, keeping path following outputs only commanding roll (controlling airspeed vector) and using yaw-rate command (only actuated by e.g. rudder) to align body axis with the runway
2022-11-22 13:46:25 -05:00
Thomas Stastny e5a9a57d79 fixed-wing landing: ramp in throttle constraints during flare 2022-11-22 13:46:25 -05:00
Thomas Stastny 4fbfc42805 fixed-wing runway takeoff: ramp in pitch constraints and throttle setpoint on takeoff rotation
- consolidate takeoff rotation transition times for pitch constraints and throttle setpoint with a single param
- consolidate pitch takeoff constraint parameters (remove rwto_max_pitch, use nominal max)
- input correct units to rwto pitch constraint getters
- encapsulate absolute time interpolator method for transitions
- start runway ops from idle throttle
2022-11-22 13:46:25 -05:00
Thomas Stastny a4349193b5 fixed-wing runway takeoff: climbout at specified takeoff airspeed and max climb rate
TECS climbout mode was used for takeoff climbout, which puts throttle to full and does not regulate a specific airspeed.
This commit sets the desired takeoff airspeed explicitly and allows max climb rate to track the ascent.
2022-11-22 13:46:25 -05:00
Thomas Stastny 47963b5b67 fixed-wing runway takeoff: define explicit takeoff speeds
previously a scale factor param on min airspeed was used to define the climbout airspeed for runway takeoff
additionally, the rotation speed was defined by another hardcoded scale on top of the previously scaled min airspeed
this commit explicitly defines a takeoff speed and rotation speed for runway takeoff in params, with option to disable
2022-11-22 13:46:25 -05:00
Beat Küng 46dbb7cf63 fix pwm_out, px4io: prevent disarm and rate param updates during boot
Before, the logic to update disarm and rate values also triggered during
bootup on the px4io, because the output functions are only set in
updateSubscriptions().
Therefore change the check to prevent updating during the first cycle.
2022-11-22 13:41:16 -05:00
Beat Küng a20c581111 mixer_module: remove unused limit_callbacks_to_primary argument 2022-11-22 13:41:16 -05:00
dsix-ls2n 2833832968 simulation/gz_bridge: ignition with no lockstep (#20561)
When using ignition SITL simulation with NO_LOCKSTEP, the SITL PX4 fails to update the IMU data from Ignition Gazebo.

The timestamp for the IMU data is taken from the ignition message:

 - In LOCKSTEP mode the clock from the ignition simulation and the one from PX4 SITL are synchronized, hence everything works fine
 - In NO_LOCKSTEP mode, those clocks are not synchronized anymore, so the timestamp for the IMU data should not be the one from Ignition but the current time in PX4 SITL when receiving the message.
2022-11-22 11:26:11 -05:00
Matthias Grob 55b454a8a5 MulticopterPositionControl: avoid invalid setpoint message when switching to altitude controlled mode 2022-11-22 16:03:41 +01:00
bresch 60c448ce3a ekf2: GNSS yaw, use reported yaw accuracy when available 2022-11-22 09:59:31 -05:00
bresch b25bc1b982 ekf2: GNSS yaw, update->fuse pattern 2022-11-22 09:59:31 -05:00
bresch 4cb327fba3 ekf2: remove old GPS yaw autogenerated code 2022-11-22 09:59:31 -05:00
bresch 16a3fee54f ekf2_test: check behavior of GNSS yaw fusion at singularities 2022-11-22 09:59:31 -05:00
bresch 4116de31ad ekf2: compare GNSS yaw fusion sympy vs symforce 2022-11-22 09:59:31 -05:00
bresch eff2c6adcf ekf2: migrate GNSS yaw fusion to SymForce 2022-11-22 09:59:31 -05:00
Michael Schaeuble 19bca47b9e Preserve gimbal control when receiving updates from an input that is not active
The update function of InputMavlinkGimbalV2 returns UpdatedNotActive when receiving control commands from a system or component that doesn't match the primary control. This can happen if a component just sends commands without being in control or when transitioning to a different primary control.
If the input is marked as already_active, it will reset last_input_active which in turn resets the primary control in the next iteration. According to the MAVLink gimbal protocol v2, a component needs to send  MAV_CMD_DO_GIMBAL_MANAGER_CONFIGURE to start controlling the gimbal and to remove control. However, with the current implementation there are several other commands that would reset the primary control.

With this PR, the primary control remains with the component that requested it last if updates from a not active component are received.
2022-11-22 12:08:47 +01:00
JaeyoungLim 2586900c26 Log local position setpoint reference for fixedwings when running NPFG (#20512)
* Log position setpoint reference of npfg

This commit logs the local position setpoint reference when using NPFG

* Address review comments

This commit address review comments from @tstastny
2022-11-22 08:19:38 +01:00
Silvan Fuhrer c24f9561e9 FW Att C: use new param FW_MAN_YR_MAX to control yawing with sticks in attitude controlled mode
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2022-11-21 21:26:20 -05:00
Silvan Fuhrer c186f798b6 FW Att C: do not directly override actuator_controls[YAW] but only change yaw rate sp
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2022-11-21 21:26:20 -05:00
Daniel Agar 08cdb96f77 boards: px4_fmu-v5_uavcanv0periph disable systemcmds to save flash 2022-11-21 21:23:02 -05:00
Daniel Agar 16564af788 Jenkinsfile-hardware: remove px4_fmu-v3 2022-11-21 21:18:01 -05:00
Silvan Fuhrer 44f831c41a Navigator: Mission feasibilty check: set _has_landing also for normal landing waypoints (without pattern)
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2022-11-21 18:03:21 +01:00
Silvan Fuhrer e68ba81d6d MissionFeasibilityChecker: for MC only find if landing is present, but don't do any validation
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2022-11-21 18:03:21 +01:00
Silvan Fuhrer f2f094c33d MissionFeasibilityChecker: add @briefs
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2022-11-21 18:03:21 +01:00
Silvan Fuhrer 4cd7dfa162 MissionFeasibility: add combined takeoff/landing requirement check
Replace the existing check for the availability of a takeoff mission item with a combined
check for takeoff and landing item (or landing pattern). New param MIS_TKO_LAND_REQ
can be set to require only a takeoff, only a landing, both takeoff and landing, and
both or none. The latter is meant to be set if is e.g. deemed unsafe to start a flight
through a Takeoff WP without though defining a Landing - as then in case of a RTL the
vehicle doesn't follow a pre-defined path but instead only can do default RTL that especially
for FW and VTOL isn't always safe.

Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2022-11-21 18:03:21 +01:00
Alex Mikhalev cce3b43b4f mavlink: Fix setting MAV_SIK_RADIO_ID
The AT commands were formatted incorrectly
2022-11-21 08:12:40 +01:00
Daniel Agar 2cb4ef0629 NuttX 10.3+ upgrade (#20190)
Co-authored-by: Peter van der Perk <peter.vanderperk@nxp.com>
Co-authored-by: David Sidrane <David.Sidrane@NscDg.com>
Co-authored-by: alexklimaj <alex@arkelectron.com>
2022-11-20 20:28:07 -05:00
Beat Küng 45b390b0bf microdds: use UXR_DURABILITY_VOLATILE for data reader
This corresponds to the ROS2 default. Using reader=TRANSIENT_LOCAL and
writer=VOLATILE (=default) is incompatible according to
https://docs.ros.org/en/rolling/Concepts/About-Quality-of-Service-Settings.html
2022-11-18 21:41:24 -05:00
Silvan Fuhrer b36758b1a0 Update src/modules/fw_pos_control_l1/FixedwingPositionControl.hpp
fix typo

Co-authored-by: Thomas Stastny <thomas.stastny@auterion.com>
2022-11-18 17:35:34 +01:00
Silvan Fuhrer c4c94febfa FW Pos C: clearly define FW_AIRSPD_MIN as stall+margin, and automatically increase f(load_factor)
Previously the minimum airspeed setpoint was adjusted to the load_factor compensated
stall speed, which, when the stall speed was set without margin, gave the controller
no room for error (the vehicle would stall if the controller has even a small airspeed
error).

Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2022-11-18 17:35:34 +01:00
Silvan Fuhrer f2ca9387cf FW Position Control: also run airspeed adaptions based on wind, accelerated stall etc. in manual modes
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2022-11-18 17:35:34 +01:00
Silvan Fuhrer cec16dd9b3 FW Attidue Controller: use FW_AIRSPD_MIN for DTRIM instead of STALL
This is to make it again in line with the parameter description and docs

Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2022-11-18 17:25:10 +01:00
alexklimaj 64768f1cda Increase allowed rtk injections to 8 for moving base. Update GPS submodule. 2022-11-18 11:04:17 -05:00
alexklimaj 8b61b22da6 Fix CANNODE_SUB_MBD typo 2022-11-18 11:04:17 -05:00
Jukka Laitinen f2607335ac rc/crsf_rc/CrsfRc.cpp: Include fcntl.h for "open"
Signed-off-by: Jukka Laitinen <jukkax@ssrc.tii.ae>
2022-11-18 07:10:27 +01:00
Jukka Laitinen 9081238dc5 microdds_client.cpp: Include posix.h for PX4_STACK_ADJUSTED macro
Signed-off-by: Jukka Laitinen <jukkax@ssrc.tii.ae>
2022-11-18 07:10:27 +01:00
Jukka Laitinen 9ce234ece8 SafetyButton.cpp: Include board_config.h
Signed-off-by: Jukka Laitinen <jukkax@ssrc.tii.ae>
2022-11-18 07:10:27 +01:00
Jukka Laitinen ff3a3dac01 cdc_acm_check.cpp: Add missing #includes
- Include board_config.h for BOARD_GET_EXTERNAL_LOCKOUT_STATE etc. macros
- Include fcntl.h for "open"

Signed-off-by: Jukka Laitinen <jukkax@ssrc.tii.ae>
2022-11-18 07:10:27 +01:00
Jukka Laitinen 966560edc0 Fix overflows in abstime_to_ts
Signed-off-by: Jukka Laitinen <jukkax@ssrc.tii.ae>
2022-11-18 07:10:05 +01:00
Zachary Lowell 52b16d062c uORB Remote Manager Update (#20623) 2022-11-17 13:51:01 -08:00
Silvan Fuhrer 8b7c074680 FW Position Control: remove 0.9 mergin factor on stall vs min param comparison
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2022-11-17 13:33:10 +01:00
Silvan Fuhrer 2e0c8da7ef FW Position Control: fix load factor calculation
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2022-11-17 13:33:10 +01:00
Silvan Fuhrer 798cc4f01c LandDetectorMC: enforce that LNDMC_Z_VEL_MAX is larger than MPC_LAND_CRWL/MPC_LAND_SPEED (#20614)
* LandDetectorMC: enforce that LNDMC_Z_VEL_MAX * 1.2 is below *MPC_LAND_CRWL/MPC_LAND_SPEED

Otherwise the _in_descend flag doesn't get set correctly during the last part
of the landing, where the descend speed is at MPC_LAND_CRWL or LAND_SPEED.
The _in_descend flag is set it the velocity setpoint is >1.1*LNDMC_Z_VEL_MAX.

Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
Co-authored-by: Matthias Grob <maetugr@gmail.com>
2022-11-17 10:56:26 +01:00
Matthias Grob e58ad581a0 modalai_esc_params: remove unused parameter 2022-11-17 10:50:41 +01:00
Matthias Grob fd4d4e001d PULL_REQUEST_TEMPLATE: suggestion to make it more "concise" 2022-11-16 17:28:27 +01:00
TSC21 9c0e09c3df mavlink_main: report in AUTOPILOT_VERSION.capabilities that FLIGHT_TERMINATION is supported 2022-11-16 16:51:47 +01:00
Matthias Grob d4f18bda8e navigator_params: remove deprecated parameters
The usage of `NAV_AH_...` was removed in
5d33b9e999
#14307
2022-11-16 10:26:12 -05:00
Matthias Grob fbe5024fa8 commander_params: remove deprecated COM_RCL_ACT_T
It's now covered with COM_FAIL_ACT_T
2022-11-16 08:11:09 +01:00
Daniel Agar da82757bf6 ekf2: accumulate multiple vel/pos/orientation reset deltas per update
- if in a single EKF update there are multiple resets we need to track the accumulated delta so the change consumed by the controllers is correct
2022-11-15 13:20:54 -05:00
alexklimaj 2e918eba00 Revert "Update MAVLink so common includes standard (#20542)"
This reverts commit 0e2b1ee979.
2022-11-15 13:09:56 -05:00
Eric Katzfey 796fa8bd72 boards/modalai: separate voxl2 builds into two board builds instead of single board build with different variants
* Made voxl2 apps processor and slpi dsp processor builds into separate board builds so that they can
more easily be configured independently.

* Removed board specific link library command from px4_config.cmake and moved it to a more generic
board specific solution that can be used by any board that needs custom link libraries.

* Removed redundant cmake command for Qurt

* Removed unused definition from Qurt cmake file

* Removed unnecessary QURT_LIB cmake function

* Reorganized the voxl2 build structure to avoid 4 level board directories.

* Reverted cmake files to remove 4 level board naming code

* Updated documentation
2022-11-15 13:09:04 -05:00
bresch 22420a7bf1 ekf2: do not fuse ZVU if other velocity source is active 2022-11-15 11:17:07 -05:00
bresch c67f03f383 ekf2: update change indicator 2022-11-14 11:51:32 -05:00
bresch f319cc528b ekf2: remove old flow fusion generated code 2022-11-14 11:51:32 -05:00
bresch 2a83dbf81d ekf2_test: compare flow fusion sympy vs symforce 2022-11-14 11:51:32 -05:00
bresch 93564baccf ekf2_flow: recalculate innovation after fusing 1st axis
The state changed so we need to recalculate the innovation of the 2nd
axis after fusing the 1st one
2022-11-14 11:51:32 -05:00
bresch 4dbdf23346 ekf2: update _R_to_earth when the state quat changed through fusion 2022-11-14 11:51:32 -05:00
bresch 28458340e6 ekf2_flow: check innov variance health after fusing 1st axis 2022-11-14 11:51:32 -05:00
bresch 73a8c388e8 ekf2: fuse by looping through axes 2022-11-14 11:51:32 -05:00
bresch b54a4417fa ekf2: migrate flow fusion to SymForce 2022-11-14 11:51:32 -05:00
Daniel Agar 639d1ddca2 ekf2: update flags (in_air, at_rest, etc) on delayed time horizon (#20576)
- in a lot of cases this won't really matter, although you can see it in logs (especially with things like vehicle_at_rest), but it's something we might as well do properly

Co-authored-by: Mathieu Bresciani <brescianimathieu@gmail.com>
2022-11-14 11:35:40 -05:00
Beat Küng b0e1cc72f7 fix orbit for mc: handle VEHICLE_CMD_DO_ORBIT command and avoid race condition
Fixes a regression from 8bae4e5c0e, where
the orbit flight task wasn't an extra task (flight_tasks_to_add) anymore
and therefore the command handling wasn't generated.

There was a race condition that could cause several outcomes. The most severe
was that flight_mode_manager gets the command, switches to orbit and then
in the next iteration switches back because commander did not change
nav_state yet. When commander then switches, flight_mode_manager would still
be in the old mode.
This is prevented by storing the command (allowing it to arrive before or
after mode switch), and then apply it after the switch happens.
2022-11-14 17:31:35 +01:00
Beat Küng c1f9824396 flight_mode_manager: remove command ack for VEHICLE_CMD_DO_ORBIT
Already acked in commander
2022-11-14 17:31:35 +01:00
Daniel Agar 9e7db0ed54 merge vehicle_angular_acceleration into vehicle_angular_velocity (#20531)
- vehicle_angular_velocity and vehicle_angular_acceleration are produced together from the same input data, consumed together, and share the the same metadata (timestamps)
 - individually these topics each have 16 bytes of metadata (2 timestamps) for 12 bytes of data (x,y,z float32)
2022-11-14 11:03:59 -05:00
bresch 7d1f1d0f84 ekf2: replace macro constants by typed constexpr 2022-11-14 10:45:23 -05:00
bresch 06702da003 ekf2: add GNSS yaw max interval
yaw data usually comes at lower rate than vel/pos
2022-11-14 10:45:23 -05:00
bresch 9834c7917b ekf2: use yaw emergency estimator more aggressively
During the whole flight, if the difference between the yaw estimate from
EKF2 and the emergency estimator is large and that the GNSS velocity
fusion is failing continuously, immediately reset to the emergency yaw
estimate.
2022-11-14 10:45:23 -05:00
GaspardBesacier dfced1fe46 VTOL: Smarter pusher ramp up during front transtitions for standard VTOLs (#20394)
New param VT_PSHER_SLEW for ramping up throttle of pusher during front/back transition, that replaces the old VT_PSHER_RMP_DT param.
2022-11-14 16:32:51 +01:00
Silvan Fuhrer f5ecd1106f VTOL: some parater meta data fixes/improvements
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2022-11-14 16:25:46 +01:00
Silvan Fuhrer c04a67401e Remove some @decimal and @increment from integer parameters
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2022-11-14 16:25:46 +01:00
Silvan Fuhrer a018debd37 FW Position controller: fix some parameter meta data
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2022-11-14 16:25:46 +01:00
Silvan Fuhrer 0d7a029bfc FW Attitude controller params: fix meta data for Acro rates
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2022-11-14 16:25:46 +01:00
Matthias Grob 30d74f124d commander_params: make disarm timeouts more explicit decimals
of 100ms increment
2022-11-14 16:25:46 +01:00
Silvan Fuhrer 464a7fcbed Commander params: add @decimal to COM_SPOOLUP_TIME
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2022-11-14 16:25:46 +01:00
alexklimaj 054a549dae Move uavcan start to end of rcS to prevent sd card read lock 2022-11-14 09:32:10 -05:00
Daniel Agar bd5bc9d207 ekf2: cleanup terrain estimator init (shouldn't be valid by default)
- with Ekf::initialiseFilter() resetting _time_last_hagl_fuse the terrain estimate was technically valid regardless of any range or flow data availability and as a result optical flow fusion is able to start and stay active
 - only consider terrain estimate valid based on control status flags and recent fusion
2022-11-14 09:29:46 -05:00
Michael Schaeuble d7fde289de Use gimbal attitude for the camera feedback when available
The CameraFeedback module used only the vehicle attitude for the camera orientation so far. With this change, the gimbal_device_attitude_status is used to compute the global camera orientation when a gimbal is used.
2022-11-14 09:26:14 -05:00
Beat Küng 640f9cc801 commander: fix initialization order of _failsafe_flags
In this case it did not cause any problems.
Fixes a compiler warning:
/src/modules/commander/HealthAndArmingChecks/HealthAndArmingChecks.cpp:39:21: error: member ‘HealthAndArmingChecks::_failsafe_flags’ is used uninitialized [-Werror=uninitialized]
   39 |           _reporter(_failsafe_flags)
      |                     ^~~~~~~~~~~~~~~
2022-11-14 11:27:23 +01:00
Paul Erik Frivold 8e5efb0131 simulator_mavlink: Add basic vio failure injection (#20577)
* simulator_mavlink: Add basic vio failure injection

Signed-off-by: Paul Frivold <paul@kefrobotics.com>

* simulator_mavlink: Rm failure not supported warning

Failures commands are also handled in other files,
so warning here could be confusing.

Signed-off-by: Paul Frivold <paul@kefrobotics.com>

Signed-off-by: Paul Frivold <paul@kefrobotics.com>
2022-11-14 13:36:23 +13:00
Igor Mišić acd8f20a85 systemcmds/ver: remove duplicate header 2022-11-11 07:21:04 +01:00
batinkov 241bcc863b Decimal added for the CAL_ACC[012]* parameters 2022-11-11 07:10:55 +01:00
Zachary Lowell b6ab7f159f Qurt MUORB Communication (#20584) 2022-11-10 11:10:18 -08:00
Thomas Stastny 6b9d86680b commander: fix hold after mission logic
previous change in logic to hold after mission clear also broke rtl, as non-mission takeoff still published a mission result which allowed entering the mission finished condition and always changing state to loiter (ignoring rtl). new logic only switches navigation states if mission is finish and the nav state is explicitly in takeoff state, or in mission state
2022-11-10 16:17:18 +01:00
Thomas Stastny 6dad3a5150 commander: hold after mission clear 2022-11-10 12:08:05 +01:00
Igor Mišić 815eed2c6d mtd: add support for extended HW revision 2022-11-10 07:45:44 +01:00
Junwoo Hwang 855eb42c59 Rename param and paramgroups to airframe and airframegroups
The srcparser.py is specific to each use case (e.g. Airframes, Parameters, px4events, etc as in Tool/* folders).
Therefore it is confusing to have the px_process_airframes.py script handle concept of airframes under the generic name 'params'.

This improves readability and sets the baseground for implementing more specific vehicle type supports, as mentioned in https://github.com/PX4/PX4-user_guide/pull/1858#discussion_r876554728
2022-11-10 07:39:27 +01:00
Zachary Lowell ee11b57e75 Qurt platform configuration cleanup (#20583) 2022-11-09 11:24:00 -08:00
Matthias Grob a38bdcfc9d MulticopterPositionControl: fix amending existing idle setpoint from before takeoff
once the rampup starts. The rampup requires a valid vertical velocity setpoint.
The corner case is:
- We are before takeoff and amending the setpoint to be 0,0,100 acceleration
in order to idle
- The rampup starts BUT the setpoint is not yet overwritten by the trajectory
setpoint topic
- The idle setpoint gets amended to not contain a feed-forward vertical
acceleration because the rampup is velocity based
- The result is a brief invalid 0,0,NAN acceleration setpoint
- That invalid setpoint gets overridden by a failsafe that holds zero velocity
- Zero velocity leads to applying ~hover thrust briefly
2022-11-09 17:13:22 +01:00
Daniel Agar 84d1435880 ekf2: ensure minimum output buffer sizing
- buffer at least 2 samples for the IMU output predictor buffers
 - dropping below 2 becomes problematic for the minimum observation
interval calculation and the vertical output buffer trapezoidal
integration
2022-11-09 09:49:35 -05:00
Damien SIX 9246d38667 commander: fix offboard disarm failsafe 2022-11-09 08:20:45 +01:00
Daniel Mesham 1e39c4828f Check for OA interface failures only after it has been activated
The OA interface is 'activated' when it receives the first trajectory message.
2022-11-08 23:20:16 -05:00
Basti e721d8dd8f Split timeout check on avoidance input.
This split is necessary if the input from the mission computer might
switch from waypoints to bezier points. Otherwise
stays true.
2022-11-08 23:20:16 -05:00
Matthias Grob c85d4fdb1c MulticopterLandDetector: refactor maybe_landed condition
removing all early returns
2022-11-08 22:50:19 -05:00
PX4 BuildBot b7d2868de9 Update submodule sitl_gazebo to latest Wed Nov 9 00:39:01 UTC 2022
- sitl_gazebo in PX4/Firmware (0e2b1ee979): https://github.com/PX4/PX4-SITL_gazebo/commit/56b5508b72f40339448f3525dd4dc51f30512cbd
    - sitl_gazebo current upstream: https://github.com/PX4/PX4-SITL_gazebo/commit/b38e701ec4230a6105ace872447c0f63bc181d41
    - Changes: https://github.com/PX4/PX4-SITL_gazebo/compare/56b5508b72f40339448f3525dd4dc51f30512cbd...b38e701ec4230a6105ace872447c0f63bc181d41

    b38e701 2022-11-03 frederictaillandier - adding jinja parameters
cc8f33d 2022-11-03 frederictaillandier - allowing to override the streaming gimbal ip and port
6c3f1f8 2022-11-03 alessandro - send orientation q with landing_target message (#919)
48e764b 2022-11-02 Frederic Taillandier - allowing to override the video stream ip in a simpler way than using the jinja file (#923)
2022-11-08 22:46:42 -05:00
Hamish Willee 0e2b1ee979 Update MAVLink so common includes standard (#20542) 2022-11-09 09:24:24 +11:00
Zachary Lowell a9989df36c Qurt uORB SLPI Implementation (#20538)
- allow uORB to be compiled and run on the qurt architecture.
2022-11-08 12:30:36 -05:00
Daniel Agar 5239993c88 ekf2: move EV vel to new state machine, introduce EKF2_EV_CTRL param 2022-11-08 11:46:41 -05:00
Daniel Agar 688dae1108 ekf2: add new EKF2_EV_QMIN parameter 2022-11-08 11:46:41 -05:00
Damien SIX 5910f8982a fix warning (mavlink): connection to gcs 2022-11-08 13:02:23 +01:00
tanja 2eed5306c0 SPI: use official HW_VER_REV function 2022-11-08 07:48:21 +01:00
Chris Seto 6df2b68d72 Clean msp_osd help string and debug message 2022-11-07 21:05:17 -05:00
Matthias Grob f1b6f22bac AngularVelocityController: set timestamps on line before publishing 2022-11-07 21:04:25 -05:00
Matthias Grob ae606488bd MulticopterRateControl: set timestamp last before publishing torque and thrust setpoints 2022-11-07 21:04:25 -05:00
Junwoo Hwang 3e35f948d8 autopilot_tester: Make wait_until_ready also wait until vehicle can
arm

- Previously, due to the way MAVSDK's `health_all_ok` was implemented,
vehicle often didn't have a valid global position estimate (although
function returned true), and it wouldn't arm, and the SITL would fail
- Also sometimes as vehicle didn't have manual control, it entered weird
states where it wasn't able to arm as well
- This adds a check to make sure vehicle is able to arm, directly from
the Health struct
2022-11-08 11:53:43 +13:00
Daniel Agar dac9f0dac4 boards: px4_fmu-v6x_default include systemcmds/gpio 2022-11-07 17:10:47 -05:00
Daniel Agar 4190353192 vehicle_magnetometer: fix standalone mag bias est factored into in flight mag cal
- preflight mag bias estimate is in the vehicle body frame and removed from the raw mag data after it's rotated, calibrated, etc
 - in flight mag bias (from ekf2) is in the vehicle body frame, but stored as a sensor frame offset immediately
2022-11-07 09:31:17 -05:00
JaeyoungLim a9542baf3c Enable motor controls for tailsitter VTOLs in fixed wing mode (enable Quad Tailsitters) (#20511)
* Enable motor controls for fixed wing mode in tailsitters

This commit enable motor controls in fixed wing mode for tailsitters

This is needed for enabling quad tailsitters

* VTOL: differential thrust in FW: adapt params to be generic for all axes

Until now only suppoted on yaw axis. Not to be supported also on Roll and Pitch.

- VT_FW_DIFTHR_EN: make bitmask for all three axes independently. First bit is Yaw,
sucht that existing meaning of VT_FW_DIFTHR_EN doesn't change.
- VT_FW_DIFTHR_SC: rename to VT_FW_DIFTHR_S_Y and add same params for roll (_R) and
pitch (_P).

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

* Integrate differential control bits to three axis control

Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2022-11-07 15:29:14 +01:00
Peter van der Perk 1fc1a81d8f UCANS32K146 Add support for 2nd PWM 2022-11-03 06:26:52 -04:00
Beat Küng 6511866408 fix commander: check that offboard_control_mode data is recent
This is a regression from https://github.com/PX4/PX4-Autopilot/pull/20172
2022-11-02 10:11:29 -04:00
Daniel Agar 298cc61e07 ekf2: push fuse beta config into backend 2022-11-02 10:09:26 -04:00
Beat Küng 0996e5319f commander: add preflight check for hardfault files on SD card 2022-11-02 09:59:00 -04:00
Beat Küng ab3fe543d4 libevents: update submodule 2022-11-02 09:59:00 -04:00
Silvan Fuhrer 83e906e2e9 Control_allocator_status.msg: remove allocated_ fields
It's enough that the setpoints and the unallocated values are logged, from these
 the allocated values can be calculated if required.

Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2022-11-02 14:56:13 +01:00
Silvan Fuhrer f44713e8a3 ControlAllocator: enable custom saturation logic to override default one
Custom saturation logic currently implemented for Tiltrotor VTOL and Helicopter.

Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2022-11-02 14:56:13 +01:00
Silvan Fuhrer 2e20fb7f97 ActuatorEffectiveness: add _collective_ keyword to controls for collective tilt to disinct from yaw tilt
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2022-11-02 14:56:13 +01:00
Zachary Lowell a2d0199516 Uncommenting Qurt platform task code (#20533) 2022-11-01 15:35:20 -07:00
Matthias Grob 7667883385 MulticopterLandDetector: make in descend detection depend on vertical speed threshold
It's very important that the in descend detection is always
at a strictly higher velocity than the vertical movement check.
This combination is basically used to check for vertical downwards
velocity tracking. Desired descend, no movement -> ground

If in descend threshold is lower than vertical movement it is
by definition even with perfect tracking the case that with
any velocity between the two thresholds there is no movement
even though a descend is commanded.

See first fix of this problem #7831
e39b38ba96
2022-11-01 18:35:54 +01:00
Matthias Grob ac646d32e6 MulticopterLandDetector: Apply threshold widening only when landed, not maybe landed 2022-11-01 18:35:54 +01:00
Matthias Grob 509c37c373 MulticopterLandDetector: use quick access for xy angular velocity components 2022-11-01 18:35:54 +01:00
Matthias Grob d9764f2ef4 MulticopterLandDetector: rename vertical velocity threshold variable 2022-11-01 18:35:54 +01:00
Silvan Fuhrer 06bf60672b MC LandDetector: add constant (0.3) for vz threshold for in_descend flag
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2022-11-01 18:35:54 +01:00
Silvan Fuhrer 4e74473932 MC LandDetector: remove 2s phase after not maybe landed to still increase thresholds
I don't see where this is necessary. During takeoff, the maybe landed flag should
only get cleared once system is about to takeoff, and thus well after the spool up
is complete (for which the higher thresholds are meant in this case).

Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2022-11-01 18:35:54 +01:00
Silvan Fuhrer 91adb4c9e0 MC LandDetector: widen thresholds for vz and rotational movment always in maybe landed and 2s after
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2022-11-01 18:35:54 +01:00
Silvan Fuhrer 27309a45cc MC LandDetector: remove dependency on MPC_LAND_SPEED and MPC_LAND_CRWL
Don't consider these params for vertical speed threshold,
and instead increase the default for LNDMC_Z_VEL_MAX and
use solely that one. Makes the land detector outcome more
predictable and its interal logic simpler, while the new
default tuning is resulting in about the same vz threshold
as before.

Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2022-11-01 18:35:54 +01:00
Silvan Fuhrer 263c7923d6 MPC params: MPC_LAN_CRWL: fix description and reduce min
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2022-11-01 18:35:54 +01:00
Silvan Fuhrer bace45ba8d LandDetector: log rotational_movement
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2022-11-01 18:35:54 +01:00
tanja 7097518373 px_uploader: Allow for multiple firmware files 2022-11-01 07:45:11 +01:00
benjinne c5c634be7f lisXmdl: use I2CSPIDriverConfig (#20506)
- allows to configure the I2C address
- lis3mdl: add 2nd possible address to start
2022-11-01 07:42:27 +01:00
Matthias Grob afe1f82423 ver command: clarify PX4 version instead of FW version 2022-11-01 07:36:23 +01:00
JaeyoungLim a90857f651 FW separate reset integrals for messages (#20502)
This commit separates integral resets for attitude and rate control setpoints
2022-11-01 06:06:27 +01:00
Zachary Lowell 6d2dd798a0 Qurt drv_hrt Implementation (#20528) 2022-10-31 15:40:29 -07:00
Zachary Lowell 82f63475d7 Qurt work_queue Implementation (#20522) 2022-10-31 09:59:10 -07:00
Eric Katzfey 34c852255e Changed M_PI to M_PI_F in the matrix library since M_PI is non-standard. (#20458)
* Changed M_PI to M_PI_F in the matrix library since M_PI is non-standard.

* Added a new M_PI_PRECISE constant definition to px4_platform_common/defines.h to be
used in places when M_PI is desired but shouldn't be used because it is not C standard.

* Added the px4_platform_common/defines.h include to the matrix library math.hpp header to pull
in some non-standard M_PI constants and updated the test files to use those constants.

* Fixed PI constants in matrix helper test to prevent test failure
2022-10-31 11:51:23 -04:00
Thomas Debrunner ba3f3935ab hardfault_log: Correctly annotate adddresses for the stack trace in the hardfault log. 2022-10-31 06:36:11 -04:00
JaeyoungLim 3f5d7f38cd Handle waypoint altitude acceptance radius for boats (#20508)
This corrects the waypoint handling logic to include boat type vehicles
2022-10-31 09:13:13 +01:00
Julian Oes 21f49ff5be drivers: fix two includes for CLion
This fixes two errors where CLion complains:

error: 'size_t' does not name a type
2022-10-31 07:56:59 +01:00
PX4 BuildBot 80af8262b5 Update submodule mavlink to latest Sat Oct 29 12:39:05 UTC 2022
- mavlink in PX4/Firmware (f8b38591ac0bd31a87cb38ae4b2f7dd74400cda2): https://github.com/mavlink/mavlink/commit/dda5a18ddb002a871ba301bb584893ee6378e2f3
    - mavlink current upstream: https://github.com/mavlink/mavlink/commit/d012c7afd5f4e2a9388710596fd3eb9a1b3eb086
    - Changes: https://github.com/mavlink/mavlink/compare/dda5a18ddb002a871ba301bb584893ee6378e2f3...d012c7afd5f4e2a9388710596fd3eb9a1b3eb086

    d012c7af 2022-10-27 Hamish Willee - update pymavlink to latest (#1906)
e1058881 2022-10-27 Hamish Willee - BATTERY_STATUS_V2 - update to 20221013 RFC version (#1846)
27007cc3 2022-10-25 Hamish Willee - fix typo MAV_PROTOCOL_CAPABILITY_PARAM_ENCODE_C_CAST (#1904)
00007aca 2022-10-19 Hamish Willee - SET_DEFAULT_INTERVAL may be 0 (#1903)
af35d3a4 2022-10-09 Ashish Kurmi - ci: add minimum GitHub token permissions for workflow (#1898)
33dde554 2022-10-09 Siddharth Bharat Purohit - add vendor specs for cubepilot (#1901)
2022-10-29 10:56:25 -04:00
PX4 BuildBot a3caaa1372 Update submodule sitl_gazebo to latest Sat Oct 29 12:38:55 UTC 2022
- sitl_gazebo in PX4/Firmware (498937c56c): https://github.com/PX4/PX4-SITL_gazebo/commit/e80432759540c91f85a012f47aa6ebb0ee9de7e4
    - sitl_gazebo current upstream: https://github.com/PX4/PX4-SITL_gazebo/commit/56b5508b72f40339448f3525dd4dc51f30512cbd
    - Changes: https://github.com/PX4/PX4-SITL_gazebo/compare/e80432759540c91f85a012f47aa6ebb0ee9de7e4...56b5508b72f40339448f3525dd4dc51f30512cbd

    56b5508 2022-10-13 junkdood - Update boat.sdf.jinja
2022-10-29 10:55:53 -04:00
Daniel Agar d4fb1b1f8b Update submodule GPS drivers to latest Sat Oct 29 12:39:01 UTC 2022
- GPS drivers in PX4/Firmware (d67b19ac1d41b2dcfc61ed6d353ae513ac3f4a82): https://github.com/PX4/PX4-GPSDrivers/commit/1ff87868f6008f06e2033ee05dd904ec54109e52
    - GPS drivers current upstream: https://github.com/PX4/PX4-GPSDrivers/commit/fa2177d690207e42e0d8c92e9663578340d44fe4
    - Changes: https://github.com/PX4/PX4-GPSDrivers/compare/1ff87868f6008f06e2033ee05dd904ec54109e52...fa2177d690207e42e0d8c92e9663578340d44fe4

    fa2177d 2022-10-10 Michael Schaeuble - Return from GPSDriverUBX::receive when ready, don't wait until no data is received

Co-authored-by: PX4 BuildBot <bot@px4.io>
2022-10-29 10:55:20 -04:00
Thomas Stastny 498937c56c fw rate control: initialize rate control resets to false in stabilized mode
before there was a corner case where if in an auto mode that sets a reset command on the attitude setpoint message (e.g. auto takeoff), if the mode was then switched stabilized, this reset bool would never be changed back to false and the integrators would reset every cycle
2022-10-28 09:26:51 +02:00
Zachary Lowell 824e02a8b6 Qurt tasks implementation (#20499) 2022-10-27 14:46:47 -07:00
Eric Katzfey fa74ee3d5b perf: removed dprintf from perf library
* Removed dprintf from perf library since it is only ever used with fd=1 (STDOUT) so moved to PX4_INFO_RAW instead. This helps with some platforms (e.g. Qurt) which have some Posix support but not full Posix support.
2022-10-27 09:58:05 -04:00
Silvan Fuhrer 5edbc2f80a Navigator: remove update of reposition setpoint at Transition command
This was previously required to reset the flight speed after a VTOL transition,
but is now no longer required as the DO_CHANGE_SPEED commands are handles directly
in the controllers.

Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2022-10-27 11:04:22 +02:00
Silvan Fuhrer 473b471fb6 Navigator: add guards for using mission_item.loiter_radius only if finite and >FLT_EPS
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2022-10-27 10:28:05 +02:00
Silvan Fuhrer 605d4c47b9 Navigator: initialize _mission_item for all navigation modes in Navigator::Navigator()
This fixes the issue where the init happended in the initializer list, at which point
the params were not yet initialized and thus resulted in random values for the init
values of _mission_item.loiter_radius and .acceptance_radius.

Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2022-10-27 10:28:05 +02:00
afwilkin b834f2b5e3 README.md update for discord 2022-10-27 08:06:52 +02:00
Junwoo Hwang c2b2ae55d9 payload_deliverer: Refactor & Handle vehicle command conflicts
Refactor
- Require reboot for PD_GRIPPER_EN parameter change
- Define gripper ACTION_NONE for readability. This makes implicit assumption that -1 equals no-action commanded more explicit
- Tidy the scattered vcmd_ack struct handling cases into a single function
- Refactor to remove return in the middle of function: avoids future complications where a programmer may expect the logic at the end of the function to be executed, but isn't

Vehicle Command Handling
- Cancel the previous running vehicle command if we receive a different vehicle command
- Reject vehicle command if we get a same one that is getting executed
- Save the source system & component of currently running vehicle command
- Added note about new discovered edge case of having same entity sending different gripper commands consequently, where an unexpected ack result may be received
2022-10-27 07:51:17 +02:00
Junwoo Hwang 6529e39f8b payload_deliverer & gripper: Improve intermediate state & vcmd_ack
Gripper:
- Don't command gripper (via uORB `gripper` topic, which maps into an
actuator via Control Allocation) if we are already at the state we want
(e.g. Grabbed / Released) or in the intermediate state to the state we
want -> This prevents spamming on `gripper` topic

Payload Deliverer:
- Add read-once function for Gripper's released / grabbed state
- Send vehicle_command_ack for both release/grab actions.

TODO: target_system & target_component for the released/grabbed vcmd_ack
is incomplete, since we are not keeping track of the vehicle_command
that corresponds to this. This needs to be dealt with in the future, not
sure what the best solution it is for now.

Possible solutions:
- Queue-ing the vehicle command?
- Tying the gripper's action to specific vehicle command one-on-one, to make sure if we send multiple vehicle commands, we know
which command resulted in the action exactly?)

Only command Gripper grab when we are actually initializing gripper

- Previously, on every parameter update, gripper grab was being
commanded
- This commit narrows that scope to only when we are actually
initializing the gripper

Handle gripper de-initialization upon parameter change

- Also added some local state initialization code to init() function of
Gripper
- This will now make init / de-init more graceful & controlled compared
to before
2022-10-27 07:51:17 +02:00
Junwoo Hwang 36a3c716d6 Send IN_PROGRESS command ack when actuating gripper
- This hopefully then alerts the GCS that the command is getting
processed
- Referenced commander's `handle_command` function to implement this. As
it seems like GCS needs the acknowledgement of the command being
processed to execute such commands properly
- Also send FAILED command ack if we can't actuate the gripper

Fix wrong GRIPPER_ACTION conversion from floating point to int32_t

- Due to the MAVLink spec, we actually just convert enums into floating
point, so in PX4 we need to convert the float directly into integer as
well (although there can be precision issues on large numbers)
- This is a limitation in MAVLink spec, and should hopefully be
changed in MAVLink v2
2022-10-27 07:51:17 +02:00
Zachary Lowell eb16730400 Qurt IOCTL dependency addition (#20480) 2022-10-26 12:09:07 -07:00
Beat Küng 25fe13583e Jenskinsfile: use nuttx container as emscripten requires xz to be installed
Fixes the error:
Error: tar (child): xz: Cannot exec: No such file or directory
2022-10-26 14:54:48 -04:00
Zachary Lowell 740d2fccb1 qurt: update for functional logger 2022-10-25 21:07:15 -04:00
Zachary Lowell bcae7e550b Qurt platform/common dependency fixes 2022-10-25 21:06:00 -04:00
Daniel Agar a242a0210e Update world_magnetic_model to latest Mon 24 Oct 2022 09:29:11 PM EDT 2022-10-25 09:20:01 -04:00
Daniel Agar c32cf21b63 commander: estimator check shorten messages
- otherwise these are awkwardly split in mavlink
2022-10-25 08:02:47 +02:00
Daniel Agar a7b909234b commander: estimator nav test is not an arming check 2022-10-25 08:01:30 +02:00
Daniel Agar 6f861ba889 ekf2: pos/vel reset helpers pass new variance
- optical flow velocity reset use already computed _flow_vel_ne
2022-10-24 10:59:58 -04:00
thomas f9f466854b abort front transition in vtol module instead of in navigator/rtl.cpp 2022-10-24 13:55:41 +02:00
thomas 26c36a96f2 remove unnecessary check. correct int comparison. 2022-10-24 13:55:41 +02:00
thomas bf98503dec better return altitude initialisation 2022-10-24 13:55:41 +02:00
thomas f771c7ff63 back transition if RTL is called during front transition 2022-10-24 13:55:41 +02:00
Hamish Willee 96a305322a params/uorb docs: rename mixer to control allocation (#20447) 2022-10-24 13:22:26 +02:00
Igor Mišić 1c5750b292 mavlink: add support for uAvionix transmitters 2022-10-24 11:56:17 +02:00
Igor Mišić c35ae7260b transponder/sagetech_mxs: move the ADS-B related parameters to the lib
ADS-B parameters can be reused for other ADS-B devices
2022-10-24 11:56:17 +02:00
Igor Mišić 4e6c094a54 mavlink/CMakeLists: add uAvionix dialect 2022-10-24 11:56:17 +02:00
Silvan Fuhrer 128e49358e Wind Estimator: remove filter reset due to beta fusion timeout
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2022-10-24 09:56:18 +02:00
Daniel Agar ed558e199f ekf2: remove realignYawGPS() (replaced with yaw estimator) 2022-10-21 09:01:30 -04:00
Silvan Fuhrer c267cf71c3 FW Position Control: fix entering of no-position-estimate failsafes
Affects the states AUTO_ALTITUDE and AUTO_CLIMBRATE. Those modes should only be entered
if armed (as they are pure failsafe modes). Also allow though to enter them even if
the position setpoint(s) are invalid, as they are not needed.

Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2022-10-21 09:51:38 +02:00
Silvan Fuhrer 67b2c835e0 FW Positon control: do not use position_setpoint.valid to validate current position_setpoint
Instead of checking the .valid flag of position_setpoint, check for ISFINITE() of lat, lon, alt
    when pulling the position_setpoint triplet. This fixes problems where the .valid flag didn't
    reflect the proper state of the setpoint (e.g. .valid was true, .lat though NAN)

Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2022-10-21 09:51:38 +02:00
Silvan Fuhrer d8e483ae20 TECS: guard against NAN airspeed setpoints
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2022-10-21 09:51:38 +02:00
Eric Katzfey 4afd19f037 Moved the bad-function-cast compiler warning option out of the common flags and into
the nuttx and posix specific options files since this option cannot be used with
the qurt platform. There are header files in the hexagon sdk that fail this check.
2022-10-20 18:18:40 -04:00
bresch 96e7ea7a08 ekf2: remove old mag declination auto-code 2022-10-20 18:16:25 -04:00
bresch f0a0a3e545 ekf2_test: compare mag decl fusion sympy vs symforce 2022-10-20 18:16:25 -04:00
bresch 2f3ea88099 ekf2: migrate mag declination to SymForce 2022-10-20 18:16:25 -04:00
Beniamino Pozzan 7786437a19 Makefile: remove update_ros2_bridge make commands
as Tools/update_px4_ros2_bridge.sh as been deleted
update_ros2_bridge, update_px4_ros_com and update_px4_msgs
are no more needed

Signed-off-by: Beniamino Pozzan <beniamino.pozzan@phd.unipd.it>
2022-10-20 17:43:16 -04:00
Daniel Agar 5030b21d2e ekf2: replace quatToInverseRotMat if only used once 2022-10-20 14:15:32 -04:00
Daniel Agar fb3adc3faa ekf2: move baro compensation to delayed time horizon and add validity check
- this removes an unnecessary virtual call and simplifies things a bit

Co-authored-by: bresch <brescianimathieu@gmail.com>
2022-10-20 09:17:55 -04:00
Daniel Agar b400b7fcc4 vehicle_angular_velocity: ESC RPM notch filters minimize filter resets (#20449)
- vehicle_angular_velocity: ESC RPM notch filters minimize filter resets
 - only allow one filter init per axis per cycle
 - "park" ESC notch filters at min frequency instead of full disable
 - relax timeout before a notch filter is disabled
 - add new parameter IMU_GYRO_DNF_MIN for configuring the minimum notch filter frequency
2022-10-20 09:05:23 -04:00
bresch 89bc28e836 wind_est: extract utility functions to separate file 2022-10-20 11:41:46 +02:00
bresch 2549054b28 wind_est: remove old derivation
replaced by derivation.py
2022-10-20 11:41:46 +02:00
bresch 7115d5643c wind_est: auto-generate initialization of state and cov matrix 2022-10-20 11:41:46 +02:00
bresch a7124d3738 wind_est: auto-generate beta fusion using Symforce 2022-10-20 11:41:46 +02:00
bresch 487b84e90b wind_est: place codegen details in function 2022-10-20 11:41:46 +02:00
Daniel Agar fe80e7aa46 commander: respect COM_CPU_MAX for overload and adjust default threshold 2022-10-19 20:25:06 -04:00
Daniel Agar 309465858a commander: elapsed time checks avoid subtracting unsigned integers
- avoid the possibility of unsigned underflow from subtracting two HRT timestamps (uint64_t)
 - most of these aren't problematic, but people tend to replicate the pattern, so it's better to be safe
 - likely wasn't a problem when people were using hrt_absolute_time() in place, but if using an existing timestamp there's the possibility it's older than a more recent topic update
2022-10-19 20:21:36 -04:00
Daniel Agar cea185268e msg ROS2 compatibility, microdds_client improvements (timesync, reduced code size, added topics, etc), fastrtps purge
- update all msgs to be directly compatible with ROS2
 - microdds_client improvements
   - timesync
   - reduced code size
   - add to most default builds if we can afford it
   - lots of other little changes
 - purge fastrtps (I tried to save this multiple times, but kept hitting roadblocks)
2022-10-19 19:36:47 -04:00
Daniel Agar e211e0ca0e commander: limit some estimator checks to prearm 2022-10-19 19:06:56 -04:00
David Sidrane f60b883041 px4_fmu-v6:Add Revision 1 to manifest to note I2C4 is only internal 2022-10-19 15:48:34 -04:00
Daniel Agar f9509b442c ekf2: height aid source consistency (#20405)
- working towards keeping all height source (baro/ev/gnss/rng) handling as consistent as possible, possibly refactoring these out into separate classes later
2022-10-19 15:35:07 -04:00
Matthias Grob 870229ef49 FunctionsTest: add isFinite() tests with Vector3f arguments 2022-10-19 19:09:20 +02:00
Matthias Grob 5ca28dd6dc Use isAllFinite() in all places that check finiteness on entire vectors or matrices 2022-10-19 19:09:20 +02:00
Matthias Grob 93de9567a5 Matrix: add isAllFinite() to check if every element is finite 2022-10-19 19:09:20 +02:00
bresch f77d7d9413 [AUTO COMMIT] update change indication 2022-10-19 17:34:31 +02:00
bresch cf9859965a ekf2: remove old yaw fusion auto-code 2022-10-19 17:34:31 +02:00
bresch e33215b61c ekf2_test: compare yaw fusion sympy vs symforce 2022-10-19 17:34:31 +02:00
bresch 42f683fa64 ekf2_test: test using positive definite covariance matrix
A covariance matrix needs to be positive definite
2022-10-19 17:34:31 +02:00
bresch 10f9ac148f ekf2: migrate mag yaw fusion to SymForce 2022-10-19 17:34:31 +02:00
bresch a41b6f416e ekf2_test: verify heading innov variance in all orientations 2022-10-19 17:34:31 +02:00
bresch f11908a266 ekf2: generate yaw fusion jacobians using symforce 2022-10-19 17:34:31 +02:00
Peter van der Perk ccd90ede7a Added io_bypass_control daemon to control IO directly from uORB useful RTPS full offboard (#20422) 2022-10-19 09:15:12 -04:00
Silvan Fuhrer aade01776a airspeed selector: only do sideslip fusion (for airspeed less wind estimate) if not landed
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2022-10-19 10:35:28 +02:00
Silvan Fuhrer ebc883f157 airspeed selector: remove redundant armed check (it already checks for in_air)
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2022-10-19 10:35:28 +02:00
Silvan Fuhrer 0c4b2cd0c5 airspeed_selector: update wind estimator (w/o airspeed fusion) always if in FW mode
This fixes a bug where by accident the vtol_status was considered instead of the
vehicle_status, preventing it from running on planes.

Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2022-10-19 10:35:28 +02:00
Jaeyoung Lim 7e49147bcf Fix feedforward acceleration setpoints for fixedwing offboard position
This commit fixes feedforward acceleration setpoints for fixedwing offboard position control.

Previously when acceleration feedforward inputs were sent, negative curvature accelerations were not being computed properly
2022-10-19 09:15:13 +02:00
Daniel Agar b71fc63162 ekf2: fix sideslip timeout (typo) 2022-10-18 18:38:25 -04:00
Daniel Agar 0d2ff6e224 ekf2: test ekf_logger further reduce std::precision to minimize false positives 2022-10-18 14:19:16 -04:00
Daniel Agar 535415a537 ekf2: add OF estimator aid src status 2022-10-18 14:19:16 -04:00
Matthias Grob 75c63aee2a Fix confusion between trajectory_setpoint and vehicle_local_postion_setpoint 2022-10-17 16:18:00 -04:00
Daniel Agar 7c237fca74 boards: px4_sitl use Mavlink development dialect 2022-10-17 16:16:36 -04:00
Daniel Agar 743200df22 mavlink: move mavlink dialect selection to kconfig 2022-10-17 16:16:36 -04:00
Daniel Agar d792a3ff5b simulator_mavlink: use existing development/common mavlink generation if available 2022-10-17 16:16:36 -04:00
Hamish Willee 2a9801f191 Default mavlink dialect should be common.xml 2022-10-17 16:16:36 -04:00
bresch 8b9ac2d7f3 ekf2: remove old mag 3D fusion auto-code 2022-10-17 16:14:56 -04:00
bresch 77a36219c6 ekf2_test: compare 3D mag fusion sympy vs symforce 2022-10-17 16:14:56 -04:00
bresch b92cbe12a0 ekf2: migrate mag 3D fusion to symforce
ekf2: merge mag 3d innov var, Hx and Kx computation to reduce flash

Slightly less code produced, almost no performance change

ekf2_mag3D: do not pre-compute Kalman gains

The vector of Kalaman gains is not too expensive to compute using
matrix-vector multiplication. Pre-generating it using CSE takes a lot of
flash space for little benefit.
2022-10-17 16:14:56 -04:00
Silvan Fuhrer 5ea8c6e507 FlightTaskAuto: remove unused _getTargetVelocityXY()
Inclusive velocity_valid field in position_setpoint message that's then
no longer needed.

Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2022-10-17 16:12:15 -04:00
Silvan Fuhrer 42c613a0c7 position_setpoint.msg: remove unused alt_valid
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2022-10-17 16:12:15 -04:00
Silvan Fuhrer 42dd9b5063 position_setpoint.msg: remove unused velocity_frame field
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2022-10-17 16:12:15 -04:00
Daniel Agar 0d6766d14d limit vehicle_command subscription updates per cycle
- this is a precaution to eliminate the possibility of getting stuck in
a loop trying to keep up with a high rate publication that could be
coming from a higher priority task
2022-10-17 16:10:51 -04:00
Daniel Agar 677f3e9294 sensors/vehicle_optical_flow: limit gyro updates and generation lost error per cycle
- in the worst case scenario printing the error message can take longer than the next gyro publication, so combined with an infinite loop you could get stuck here
2022-10-17 13:45:04 -04:00
Alex Klimaj 8545164869 sensors/vehicle_optical_flow: only get gyro if optical flow delta angle not available (#20416) 2022-10-17 10:23:36 -04:00
Daniel Agar 116bb6049f ekf2: fusion helper consistency
- yaw fusion use measurementUpdate()
 - fuseVelPosHeight() respect _accel_bias_inhibit (like measurementUpdate())
2022-10-17 10:17:31 -04:00
Silvan Fuhrer 7bc90c7f00 FW rate controller gains: put default for all IMAX gains to 0.4
The previous default for yaw and roll was 0.2, which is very low, and for wheel was
1, which is very high. A value of 0.4 makes sense to me for all axes.

Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2022-10-17 10:27:09 +02:00
Silvan Fuhrer 4bbe8f3c0d FW rate controller gains: open up some limitis for the rate controller gains
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2022-10-17 10:27:09 +02:00
Silvan Fuhrer e2d1e79614 FW rate controller gains: reduce max FW_YR_I from 50 to 1
I guess this was a left over from times where the controller had a completely different structure,
a value of 50 is well outside of reasonable range (50x the default).

Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2022-10-17 10:27:09 +02:00
Silvan Fuhrer ea44c89366 FW rate controller gains: reduce max FF gains to 1
The previous max of 10 for the FF gains seems a bit very high for me, well outside
of reasonable reange.

Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2022-10-17 10:27:09 +02:00
bresch 458e5a6b0e ekf2: update change indicator 2022-10-14 11:42:23 -04:00
bresch 1b4092abbb symforce: temporarily remove custom cmake command
otherwise the generated files are removed with make clean
2022-10-14 11:42:23 -04:00
bresch a8a3107c05 ekf2: remove old covariance prediction code 2022-10-14 11:42:23 -04:00
bresch df084d65e3 ekf2_test: compare covariance prediction sympy vs symforce 2022-10-14 11:42:23 -04:00
bresch a4e511b90e ekf2: migrate covariance prediction to SymForce 2022-10-14 11:42:23 -04:00
chris1seto 079dfdf209 drivers/osd/msp_osd: cleanup and small fixes/additions (#20399)
- Fixed clearing arming word if flightmode unknown
 - Added power and cell voltage elements
 - New OSD layout
 - Fixed home direction/distance are now correct

Co-authored-by: Chris Seto <chris1seto@gmail.com>
2022-10-14 10:54:14 -04:00
Beat Küng 3c290d812d commander: use printRejectMode() also for rtl, takeoff, land & mission commands 2022-10-13 16:05:25 -04:00
Beat Küng d542ffc10c refactor vehicle_status_flags: rename to failsafe_flags 2022-10-13 16:05:25 -04:00
Beat Küng f9c8e760b1 CI: add failsafe web build & deployment to the user guide 2022-10-13 16:05:25 -04:00
chris1seto 0ddba3ea90 Fix Discord badge not a link in README (#20406)
* Add link to image
* Update link to nice permalink

Co-authored-by: Chris Seto <chris1seto@gmail.com>
2022-10-13 11:05:28 -07:00
Daniel Agar 2de990fd4b estimator_aid_source split GNSS pos (3d) -> pos (2d) + hgt
- per estimator air source status only keep a single set of flags and
timestamp that applies to the entire source
2022-10-13 11:28:50 -04:00
David Sidrane 8a9a091ff3 nxp_fmurt1062-v1:Timer configuration for 1 channel per group (timer) 2022-10-13 08:17:51 +02:00
David Sidrane 3be8d52c8e imxrt:io_timers Support 1 channel per group (timer) 2022-10-13 08:17:51 +02:00
David Sidrane 7f7137320a fix imxrt: use 1:1 timer group to channel association 2022-10-13 08:17:51 +02:00
chris1seto 7e9ec325f7 Convert README to Discord (#20400) 2022-10-12 21:41:00 -07:00
bresch bdd043f27f ekf2: fix sideslip fusion sign 2022-10-12 16:14:47 +02:00
bresch 53865118fb ekf2: remove old sideslip fusion code 2022-10-12 09:55:35 -04:00
bresch f7c749c9cd ekf2_test: compare sideslip fusion of Sympy and SymForce 2022-10-12 09:55:35 -04:00
bresch d0f92bfbd5 ekf2_test: create helper functions for auto-generated code diff 2022-10-12 09:55:35 -04:00
bresch 5f54f6fcda ekf2: migrate sideslip fusion to SymForce
- split fusion into update (compute innov and innov_var) and actual fusion to the state vector
- use estimator_aid_source_1d struct to group the data
2022-10-12 09:55:35 -04:00
Beat Küng c09be0f0ac airframes: add r1 again
This was dropped in f454dcef6b
2022-10-12 07:35:35 +02:00
Beat Küng 9b7a8d4568 vehicle_status_flags: add group 'Other' 2022-10-11 22:31:20 -04:00
Beat Küng f7819f5dba commander: reorder update calls
Moves the arming checks before the command handling.
This reduces the chance of race conditions. However it does not prevent
them! The SDK will need to check when offboard is ready to run/arm to fix
this.
Specifically this is for sitl offboard tests, where offboard_control_mode
is updated and immediately after a mode switch into offboard is commanded.
2022-10-11 22:31:20 -04:00
Beat Küng 38d3739b6d refactor commander: rename rc_signal_lost -> manual_control_signal_lost, data_link_lost -> gcs_connection_lost 2022-10-11 22:31:20 -04:00
Beat Küng e2d8ca73a5 commander: add unit tests for failsafe state machine 2022-10-11 22:31:20 -04:00
Beat Küng 3d1da597dd commander: run arming checks on _offboard_control_mode_sub update 2022-10-11 22:31:20 -04:00
Beat Küng 6ee2252b8c events: handle events being generated before a mavlink module started
- do not print dropped events warnings
- make sure current sequence is still sent with reset flag
2022-10-11 22:31:20 -04:00
Beat Küng 3fcdf40a47 events: use PRIx32 to print uint32 2022-10-11 22:31:20 -04:00
Beat Küng acaa50a448 geofence: add and report reason for violation 2022-10-11 22:31:20 -04:00
mcsauder ebc88afe46 Apply Google Style to Commander Private methods, rename geofence message geofence_violation to primary_geofence_breached. 2022-10-11 22:31:20 -04:00
Beat Küng 693af897b3 commander: check if battery was already disconnected on arming
If so, don't report.
Happens e.g. with USB powered pixhawk.
2022-10-11 22:31:20 -04:00
Beat Küng 24142bc014 commander: RcCalibrationChecks: avoid param access on each cycle
reduces cpu usage a bit
2022-10-11 22:31:20 -04:00
Beat Küng c72c580a0b commander: run arming checks @ 10Hz
Required for things like RC loss.
2022-10-11 22:31:20 -04:00
Beat Küng 6fda555cba commander: move ownership of vehicle_status_flags_s to HealthAndArmingChecks 2022-10-11 22:31:20 -04:00
Beat Küng cf2eb69d25 px4events/srcparser: ensure message is a string literal 2022-10-11 22:31:20 -04:00
Beat Küng 500a896a56 commander: print reason for mode rejection & report for GCS switches as well 2022-10-11 22:31:20 -04:00
Beat Küng e4bb219d10 vehicle_status_flags: cleanup message, move non-failsafe flags to vehicle_status 2022-10-11 22:31:20 -04:00
Beat Küng ae6377dfa0 mission_result: remove unused fields 2022-10-11 22:31:20 -04:00
Beat Küng 455b885f86 commander: use new failsafe state machine and add user intention class 2022-10-11 22:31:20 -04:00
Beat Küng a04230faa1 commander: add failsafe state machine with webassembly simulation
to run the simulation:
install sdk: https://emscripten.org/docs/getting_started/downloads.html
make run_failsafe_web_server
open http://0.0.0.0:8000/

Co-authored-by: Konrad <konrad@auterion.com>
2022-10-11 22:31:20 -04:00
Beat Küng 82911e48be fix commander: check estimator type & avoid timestamp wrap-around
Before it was possible that the publication timestamp was never than 'now',
leading to wrap-around.
2022-10-11 22:31:20 -04:00
Beat Küng 27f8298bb9 fix commander: add local position requirement to NAVIGATION_STATE_AUTO_LAND 2022-10-11 22:31:20 -04:00
Beat Küng 57c7b5e843 flight_mode_manager: reduce error verbosity & remove mode switching
While disarmed, commander allows to be in any mode now.
2022-10-11 22:31:20 -04:00
Beat Küng 31dfdea12e commander: remove state_machine_helper tests 2022-10-11 22:31:20 -04:00
Beat Küng e9387cac1d mavlink: move get_px4_custom_mode to px4_custom_mode.h 2022-10-11 22:31:20 -04:00
Silvan Fuhrer 9159f020cb mavlink local_position_ned: always publish on update, not just when xy and v_xy valid
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2022-10-11 00:47:32 -04:00
Daniel Agar ce609144b0 simulation/gz_bridge: fix implicit floating-point conversions 2022-10-09 14:11:19 -04:00
Daniel Agar 9010029e0d lib/drivers/device: Device.hpp fully init devid
- constructor use available setters
2022-10-09 13:49:39 -04:00
Daniel Agar f3964513c7 sensors: fix accel/gyro/mag calibration offset units 2022-10-09 13:02:38 -04:00
Daniel Agar ee4821ed0a commander: relax COM_ARM_MAG_ANG default to minimize false positives
- this check is mainly intended for catching blatant setup problems like a magnetometer that's mounted 90 or 180 degrees off
2022-10-09 12:41:06 -04:00
fkaiser 30150f723a Tools/px_uploader.py: use monotonic clock if available (#20352)
Signed-off-by: fkaiser <fabian.kaiser@wingtra.com>
2022-10-06 09:49:05 -04:00
alexklimaj 064f3f86bc Increase mag calibration max_var_allowed 2022-10-06 08:44:36 -04:00
Hamish Willee 022aa13aa1 mpu9250_i2c - also needs docs update 2022-10-05 20:26:25 -04:00
Hamish Willee 6d612b1ba4 MPU9250 driver doc incorrect 2022-10-05 20:26:25 -04:00
Daniel Agar 8cc39096cb load_mon: NuttX cpuload use system times for calculation
- this is to minimize the impact of any load_mon scheduling jitter in the sampled load percentage
2022-10-05 14:21:38 -04:00
benjinne 29b031c862 Tools/setup/ubuntu.sh update comment to include 22.04 2022-10-05 13:41:47 -04:00
Daniel Agar 5f0a539633 gps_blending: fix blending init to best instance
- output GPS publication defaults to best input instance
 - blended states are explicitly cleared and then populated with
weighted blend
2022-10-05 10:26:48 -04:00
Beat Küng f79dad1e63 fix ROMFS: run camera trigger, capture and PPS before pwm_out
As they might need to reserve the pwm pins.
2022-10-05 09:13:35 -04:00
Matthias Grob 46e6e83e14 Commander: allow disarmin not-landed boat like rover
This is a hotfix and a boat should never even detect a takeoff
in normal operation.
2022-10-05 09:07:18 -04:00
Beat Küng dafead6f20 logger: add compressed events metadata file if it exists in the ROMFS
Allows to decode events not (yet) on main.
The file is currently ~15KB.
2022-10-05 07:44:55 +02:00
Beat Küng 02035d94aa metadata: sort json output
ensures the files don't change arbitrarily
2022-10-05 07:44:55 +02:00
modaltb 06a0aedbdb modalai_esc: directly using deadband param value instead of converting it to RPM 2022-10-04 20:14:59 -04:00
Thomas Debrunner 0af87ec745 mavlink: initial OPEN_DRONE_ID_BASIC_ID/OPEN_DRONE_ID_LOCATION support 2022-10-04 14:40:59 -04:00
Matthias Grob b179427b4c Remove opinionated non-default MPC_TKO_SPEED from airframes 2022-10-04 11:36:57 -04:00
pandafeng1999 e4b4df4e5d drivers/distance_sensor/gy_us42: add the specified i2c address 2022-10-04 11:35:45 -04:00
Matthias Grob f96507bb22 vtol_takeoff: fix comment typo 2022-10-04 10:01:04 -04:00
Peter van der Perk c807d6079d FMUK66-V3 Enable DMA on SPI 2022-10-04 09:46:04 -04:00
Peter van der Perk 0cf2ecedb9 FMUK66 Disable Telnet to save RAM 2022-10-04 09:46:04 -04:00
Julian Oes 5c77bbcb4c ms5611: ignore reading 0
This prevents publishing a negative pressure which leads to a NAN
altitude estimate further down the line.
2022-10-04 09:37:53 -04:00
Beat Küng 04b1cbb423 vtol_att_control: standard: also do blending for FW controls
So that the sum of the control is always 1.
2022-10-04 09:54:11 +02:00
Silvan Fuhrer 6db92b4011 ControlAllocation: remove actuator trim value from actuator_sp to calculate allocated control
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2022-10-04 07:51:25 +02:00
Zachary Lowell 4520186878 qurt: replacing qurt threads with pthread 2022-10-03 18:01:04 -04:00
bresch 4b687beb3b ekf2: remove old airspeed fusion code 2022-10-03 10:59:42 -04:00
bresch 299e6058e3 ekf2_test: test airspeed symforce vs sympy generated code 2022-10-03 10:59:42 -04:00
bresch 29ebef1f74 ekf2: migrate fuse_airspeed to SymForce 2022-10-03 10:59:42 -04:00
Daniel Agar 41cda14126 ekf2: add symforce code generation helper target 2022-10-03 10:59:42 -04:00
Daniel Agar c9441bb48a boards: px4_fmu-v2/v3 allow optional mpu9250 probe to fail without error 2022-10-02 21:40:18 -04:00
Benjamin Perseghetti aa2b47845a new Gazebo simulation handle older gz versions (#20342) 2022-10-02 21:30:30 -04:00
PX4 BuildBot f4d2e176ae Update submodule sitl_gazebo to latest Sun Oct 2 12:38:54 UTC 2022
- sitl_gazebo in PX4/Firmware (2bd1ac005f): https://github.com/PX4/PX4-SITL_gazebo/commit/b968405a617005ba0a793a8b4703913d4c6eff5f
    - sitl_gazebo current upstream: https://github.com/PX4/PX4-SITL_gazebo/commit/e80432759540c91f85a012f47aa6ebb0ee9de7e4
    - Changes: https://github.com/PX4/PX4-SITL_gazebo/compare/b968405a617005ba0a793a8b4703913d4c6eff5f...e80432759540c91f85a012f47aa6ebb0ee9de7e4

    e804327 2022-10-01 Thomas Stauber - set lidar measurements to 0.0 if out of range (#914)
7ed1da6 2022-09-27 Karthik S - Advanced Lift-Drag Plugin (#901)
669d7f5 2022-09-08 Oleg Kalachev - Fix local addr assignment for qgc and sdk sockets
2022-10-02 10:54:31 -04:00
PX4 BuildBot f7a5c91fb3 Update submodule libcanard to latest Sun Oct 2 12:38:56 UTC 2022
- libcanard in PX4/Firmware (8e144eece9e9cd5a23dbeb6723591f214cad631a): https://github.com/opencyphal/libcanard/commit/db87ea32aa092c48ea103963138b6346dd3e9008
    - libcanard current upstream: https://github.com/opencyphal/libcanard/commit/2e3b11f6b8325080c160d38521b169b0bbb6b1c7
    - Changes: https://github.com/opencyphal/libcanard/compare/db87ea32aa092c48ea103963138b6346dd3e9008...2e3b11f6b8325080c160d38521b169b0bbb6b1c7

    2e3b11f 2022-07-15 Pavel Kirienko - Follow-up for #197 -- fix minor issues discovered by Sonar (#198)
106ceaf 2022-07-11 Dmitry Ponomarev - Fix cast-align warnings on ARM
8953fe6 2022-07-06 Dmitry Ponomarev - Add ARM build to github workflow
2022-10-02 10:54:05 -04:00
PX4 BuildBot 644a836d0a Update submodule libevents to latest Sun Oct 2 12:39:02 UTC 2022
- libevents in PX4/Firmware (ddc1e6d6c5c2707be5522d4c4d7434403202cf45): https://github.com/mavlink/libevents/commit/82dabdb914d7bd640c281900e2852d0afc074b68
    - libevents current upstream: https://github.com/mavlink/libevents/commit/a89808bffd1efb0543e66f17a7fa12dfce5e6bf0
    - Changes: https://github.com/mavlink/libevents/compare/82dabdb914d7bd640c281900e2852d0afc074b68...a89808bffd1efb0543e66f17a7fa12dfce5e6bf0

    a89808b 2022-09-26 Beat Küng - combine.py: sort json keys
2022-10-02 10:53:28 -04:00
PX4 BuildBot cf0cd4ebf2 Update submodule mavlink to latest Sun Oct 2 12:39:04 UTC 2022
- mavlink in PX4/Firmware (65bd1fd4c000a7fa0de2a0e8dce1ba9b2a62fa86): https://github.com/mavlink/mavlink/commit/c46af523263ff0dad59afe018fe387c1df030442
    - mavlink current upstream: https://github.com/mavlink/mavlink/commit/dda5a18ddb002a871ba301bb584893ee6378e2f3
    - Changes: https://github.com/mavlink/mavlink/compare/c46af523263ff0dad59afe018fe387c1df030442...dda5a18ddb002a871ba301bb584893ee6378e2f3

    dda5a18d 2022-09-28 WickedShell - Support a return to default speed for DO_CHANGE_SPEED (#1890)
4e04dbbf 2022-09-24 Hamish Willee - MAV_FRAME_BODY_FRD - match to implementations and sanity (#1894)
89a61214 2022-09-23 Hamish Willee - DO_CHANGE_SPEED - clarify lifetime of speed setting (#1892)
11414f88 2022-09-21 Søren Friis - Clarify swarm fields (#1891)
5cdf8b60 2022-09-08 Hamish Willee - HOME_POSITION - clarify local frame means NED (#1886)
551e3b49 2022-09-07 Julian Oes - Fix CI (#1888)
d99ee9b6 2022-09-07 Julian Oes - pymavlink: update submodule to latest master (#1887)
92d2a58d 2022-09-01 Hamish Willee - common.xml:TIMESYNC docs and extensions (#1878)
c424dc65 2022-09-01 Julian Oes - minimal: try to make component ID less confusing (#1876)
153939bd 2022-09-01 Hamish Willee - Fix typo MAV_CMD_DO_SET_MISSION_CURRENT
5043a1e0 2022-09-01 Hamish Willee - MAV_CMD_DO_SET_MISSION_CURRENT - allow mission resetting (#1870)
90aa7bfc 2022-08-31 Chikirev Sirguy - Update common.xml (#1815)
554ccadd 2022-08-31 Hamish Willee - common: OpenDroneID messages no longer WIP (#1882)
06448cf6 2022-08-24 Hamish Willee - MAV_ODID_ARM_STATUS entries update to naming convention (#1883)
ff649224 2022-08-18 Patrick José Pereira - Fix gibberish descriptions ualberta.xml (#1881)
11f4b236 2022-08-18 Hamish Willee - Mission item - document values for autocontinue (#1868)
fb8ac31b 2022-08-18 Julian Oes - development: remove MISSION_CHANGED (#1879)
76b794c2 2022-08-18 Julian Oes - common: extend MISSION_CURRENT (#1869)
1ae3edc4 2022-08-15 Andrew Tridgell - common: added OPEN_DRONE_ID_SYSTEM_UPDATE message (#1880)
aa25f4df 2022-08-11 Andrew Tridgell - common: added OPEN_DRONE_ID_ARM_STATUS (#1873)
2022-10-02 10:53:00 -04:00
Daniel Agar 2bd1ac005f .gitmodules update branches master -> main 2022-10-01 12:22:22 -04:00
Silvan Fuhrer 9b3cb6c758 FW Attitdue controller: fix throttle in acro (use _rate_sp.throttle_body) (#20330)
* FW Attitdue controller: fix throttle in acro (use _rate_sp.throttle_body)

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

* FW Attitude controller: do manual control polling before attitude setpoint polling

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

Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2022-09-30 13:45:20 +02:00
Silvan Fuhrer 34b6786f79 actuator_controls.msg: fix NUM_ACTUATOR_CONTROLS (9)
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2022-09-29 14:25:16 -04:00
Beat Küng 64ae0049de mission: add support for NAV_CMD_DO_SET_ACTUATOR 2022-09-29 14:23:16 -04:00
Daniel Agar a27aeb30bf mc_pos_control: fix trajectory setpoint copy
- trajectory_setpoint and vehicle_local_position_setpoint used to be
the same data type
 - we got extremely lucky here that this didn't cause any issues due to
all the fields still aligning
2022-09-29 14:17:00 -04:00
bresch 20b46ad33f ekf2_test: test validity of local position when not at rest
At rest, the zero velocity update keeps the local position valid all the
time. Deactivate it to be able to test the validity checks
2022-09-29 14:16:36 -04:00
bresch 1914053db2 ekf2: synchronize z_valid and v_z_valid
mc_pos_control doesn't handle all the cases at the moment
2022-09-29 14:16:36 -04:00
bresch f753b92cff ekf2: start fake pos fusion after dead-reckoning timeout
Starting the fake position as soon as all the aiding sources stop makes
the local position immediately invalid while we could continue to navigate
for a couple of second with inertial dead-reckoning
2022-09-29 14:16:36 -04:00
bresch bb790c9bec ekf2: add vertical dead-reckoning timeout check for height validity 2022-09-29 14:16:36 -04:00
Thomas Stastny da99387215 welford mean: protect against negative variances 2022-09-29 14:14:16 -04:00
Thomas Stastny d3849c0265 welford mean: convert to matrix only template 2022-09-29 14:14:16 -04:00
Daniel Agar d4e5876d4c vehicle_imu: only reset raw accel/gyro Welford mean periodically
- vehicle_imu_status can publish immediately on any measured sample
rate change or sensor error increment, but the windowed mean/variance
shouldn't necessarily reset that often
2022-09-29 14:14:16 -04:00
Benjamin Perseghetti f9522e831c Gazebo Simulation Enablement (#20319) 2022-09-29 13:49:31 -04:00
Silvan Fuhrer f89df9d986 VTOL: make const and return when either of mc or fw att sp isn't updated
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2022-09-29 16:01:43 +02:00
Silvan Fuhrer fdcbabeb9e VTOL Tailsitter: don't use the fw attitude sp for determing the initial pitch if not recent
Use a pitch of 0 to initialize the ramp otherwise.

Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2022-09-29 16:01:43 +02:00
Silvan Fuhrer 9c5a423753 VTOL: in update_transition_state(): check that needed virtual attitude setpoints are recent
This is to prevent that that data from non-recent publications of the virtual
attitude setpoints are used in the transition code.
It removes the previous implementation where the update_transition_state()
method was only run when both mc and fw virtual att sp where recent, independetly
of whether both are used or not.

Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2022-09-29 16:01:43 +02:00
Silvan Fuhrer dd2e6bd416 ROMFS: SITL configs: enable airmode by default for all VTOLs
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2022-09-29 16:01:43 +02:00
Silvan Fuhrer fbc7e6a435 ROMFS: tiltrotor sitl config: use tilt for yaw in hover as opposed to differential thrust
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2022-09-29 16:01:43 +02:00
Silvan Fuhrer 97e3b76a2e VTOL: improve readability of VT_FWD_THRUST_EN param
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2022-09-29 16:01:43 +02:00
Roman Bapst 20457c5e2e position_setpoint: replaced loiter_direction integer by boolean (#20317)
* position_setpoint: replaced loiter_direction integer by boolean (loiter_direction_counter_clockwise)

Signed-off-by: RomanBapst <bapstroman@gmail.com>
2022-09-29 11:06:10 +02:00
Yang Hau 5d39fdba6d fix: Add boundary protection for array access 2022-09-29 08:11:03 +02:00
Yang Hau 2dcde93d96 fix: Fix misuse of atoi() 2022-09-29 08:11:03 +02:00
Yang Hau e2f3157ecb fix: Add missing comma for const strings 2022-09-29 08:11:03 +02:00
David Sidrane 99ef597719 Nuttx with backport of stm32h7:SDMMC fix unaligned access 2022-09-29 07:56:46 +02:00
Ville Juven 59e86c490d Remove include <log.h> from defines.h
The reason for this is that log.h includes drv_hrt.h which sucks in
half the project's include files with it, which causes strange build
issues
2022-09-29 07:56:24 +02:00
Daniel Agar 1f7080a710 ekf2: extend sensor bias stability requirement
- for accel/gyro/mag estimated bias only consider them stable (valid
for calibration updates) if the value isn't changing (10% of limit) over
the validity period
2022-09-28 10:40:52 -04:00
Daniel Agar 16f8adb4b3 hysteresis: avoid subtracting unsigned integers
- avoid potential errors with timestamp passed in from different sources
2022-09-28 09:51:16 -04:00
bresch 06f2004580 Mag: fix estimated bias save to calibration
Clear the calibration at the end only otherwise everything gets erased
at the end of the first iteration of the outer loop
2022-09-28 10:43:54 +02:00
Karthik S 70d73c8690 Advanced Plane Airframe for SITL Advanced Lift-Drag Plugin (#20207)
* Changed sitl_gazebo to the advanced liftdrag plugin fork.

* Added advanced plane and its associated parameters to PX4. Also tweaked one of the plugins to fix a compilation error (upcasting from float to double).

* Switched gazebo back to main branch, to avoid merge conflicts.

* Change simulator bridge back to what it was in main branch

* Changed sitl_gazebo to match the PX4 main branch's (commit hash b968405)

* Changed SimulatorIgnitionBridge to match most recent main.
2022-09-27 23:09:27 +02:00
jmackay2 0ee4d89744 drivers/osd/msp_osd: fix uorb_to_msg isnan floating-point check (#20309) 2022-09-27 14:41:43 -04:00
Eric Katzfey a5bfc3fbc2 Added a self test feature to the VOXL 2 muorb module (#20307)
* Removed exit after dsp signature generation.
* First full test suite
* Cleaned up the muorb tests
* Improved VOXL 2 self test trigger in startup file
* Removed unneeded include file
2022-09-26 16:25:24 -04:00
Daniel Agar 7bc79b491f sensors/vehicle_magnetometer: more granular in flight mag cal reset on parameter changes
- if mag calibration parameters change only reset any inflight mag cal
for the corresponding magnetometer
2022-09-26 12:42:32 -04:00
Daniel Agar 462d0af384 uORB: fix static orb_exists call for protected build
- unify ORBSet to maximum code coverage
2022-09-26 12:38:58 -04:00
Silvan Fuhrer 2717137982 RTL params: remove some unnecessary param constraints
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2022-09-26 13:32:35 +02:00
Silvan Fuhrer b0a7d206f3 RTL params: increase max of RTL_RETURN_ALT and improve description
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2022-09-26 13:32:35 +02:00
Charles Cross cfdaba35cc Adds reset counter logic to EV height fusion 2022-09-26 11:48:18 +02:00
Daniel M. Sahu 779e738143 MSP OSD Revision 2022-09-24 18:40:47 -04:00
chris1seto 770f8080c0 CRSF: Validate unknown packet sizes to be smaller than max packet size
Co-authored-by: Chris Seto <chris1seto@gmail.com>
2022-09-24 16:36:17 -04:00
Daniel Agar 57bdac2b26 cmake: px4_parse_function_args re-enable failure on unparsed (invalid) arguments 2022-09-24 13:48:51 -04:00
Daniel Agar ca0465aeca Tools/generate_board_targets_json.py: properly exclude VOXL2 for now 2022-09-24 11:27:31 -04:00
Daniel Agar e58275e6f5 platforms/posix: restore none SITL helper target for replay 2022-09-23 19:20:01 -04:00
chris1seto 77fdce9f3c drivers/rc/crsf_rc: update standalone driver for CRSF and direct support for lq/rssi (#20084)
Co-authored-by: Chris Seto <chris1seto@gmail.com>
2022-09-23 19:19:25 -04:00
chris1seto 86cddc6a52 fw_autotune_attitude_control : Add better support for RC TX control while in FW AT (#20069)
Co-authored-by: Chris Seto <chris1seto@gmail.com>
2022-09-23 19:17:51 -04:00
Daniel Agar b7fab39165 icm20948_i2c_passthrough: PX4_ERR is reset/configure fails and check temperature for validity 2022-09-23 19:16:10 -04:00
Daniel Agar eb2a714aa5 ak09916: PX4_ERR if reset/configure is failing after 5s 2022-09-23 19:16:10 -04:00
Daniel Agar 16b4149492 Tools/generate_board_targets_json.py exclude VOXL2 for now (dev environment not yet available to github) 2022-09-23 16:40:56 -04:00
Thomas Debrunner 32277f6332 uavcan rgbled: Scale brightness for constant illumination 2022-09-23 14:33:20 -04:00
Eric Katzfey d30ccb2b1d initial board and platform support for the ModalAI VOXL 2 (POSIX + QuRT) 2022-09-23 12:03:05 -04:00
David Sidrane e6b292b693 Revert "boards: px4_fmu-v6x_default remove gyro_fft to save flash (will be restored later)"
This reverts commit ed16354413.
2022-09-23 09:32:43 -04:00
David Sidrane d749389f95 fmu-v6x:CUAV HW Version changes 2022-09-23 09:32:43 -04:00
bresch cddade2047 ekf2: use validated airspeed from airspeed sensor only
don't use synthetic measurements to prevent circular dependency
2022-09-23 09:26:47 -04:00
Julian Oes 8080ca966a boards/platform: remove confusing override
This removes the odd px4_i2c_bus_external override which was confusing
me and lead to odd and inconsistent results.

The function is now only available with an int as the argument.
2022-09-23 20:54:08 +12:00
Junwoo Hwang 13d565d707 payload_deliverer: Add gripper state output to "status" CLI output
- Previously it was hard to check which state the gripper was in
(GRAB/GRABBED/ etc), not even whether it was correctly initialized, this
commit adds that functionality
2022-09-23 07:41:51 +02:00
Junwoo Hwang e65d48c070 payload_deliverer: Fix Gripper unitialized message spamming
- When the gripper was uninitialized, the error message popped up
everytime the module had 'any' vehicle command received. But we should
be spamming only when we do actually get 'DO_GRIPPER' command received,
this commit adds that feature
- Also converted error messages for CLI when gripper test functinality
fails, so that user would get a feedback (originally, the PX4_DEBUG was
of course not outputting everything)
2022-09-23 07:41:51 +02:00
alexklimaj fdf4b668eb Ark flow rev 3 with PAA3905"
Add AFBR-S50LX85D
2022-09-22 20:36:43 -04:00
Daniel Agar 38d332a553 ekf2: inhibit accel bias dynamically when fake position/height fusion active
- inhibit accel bias learning dynamically depending on the angle between an accelerometer and the vertical axis when fake position fusion is active
2022-09-22 20:32:20 -04:00
Daniel Agar 1806f0d2b4 boards: delete broken flywoo_gn-f405_rtps 2022-09-22 17:44:24 -04:00
Silvan Fuhrer 300288b57e FW Attitude Controller: fix polling of rate setpoint for tailsitter
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2022-09-22 19:13:36 +02:00
Daniel Agar ed16354413 boards: px4_fmu-v6x_default remove gyro_fft to save flash (will be restored later) 2022-09-22 11:36:16 -04:00
David Sidrane e284d4aa52 fmu-v6x:CUAV HW Version changes 2022-09-22 11:36:16 -04:00
CUAVmengxiao 21daa0f398 drivers: add support for ICP101XX and ICP201XX 2022-09-22 11:36:16 -04:00
CUAVmengxiao 9493008dbb px4_fmu-v6X: add CUAV board 2022-09-22 11:36:16 -04:00
Silvan Fuhrer 0df878bc18 Navigator: use NAV_FW_ALTL_RAD only for FW landings, not VTOL landings
Also containst a mini refactor by removing the unnecessary function
get_default_altitude_acceptance_radius().

Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2022-09-22 16:52:51 +02:00
Silvan Fuhrer c6c7733587 FW Position control: add option to scale min airspeed wtih wind magnitude
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2022-09-22 16:39:27 +02:00
Beat Küng e8ac9b266b px4events: add @skip-file tag 2022-09-22 09:42:39 -04:00
Daniel Agar 54c97db8b2 ekf2: fix covariance comment typo 2022-09-21 15:29:07 -04:00
Silvan Fuhrer d7fab74727 VTOL: remove _flag_was_in_trans_mode from standard vtol (not used)
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2022-09-21 14:18:43 -04:00
Silvan Fuhrer 828f629413 VTOL: remove some pwm hackery leftovers from legacy mixing systems
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2022-09-21 14:18:43 -04:00
Beat Küng d948fcd72b fix control_allocator: check if 2. thrust and torque sp topic is valid
Otherwise the 2. setpoint is equal to the first one. This is only an issue
if the 2. instance isn't advertised.
2022-09-21 15:11:11 +02:00
Silvan Fuhrer a53e1277dd remove fixedwing example module
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2022-09-21 09:03:35 -04:00
Daniel Agar a96187cb18 drivers/optical_flow: paw3902/paa3905 refactor into simple state machine for reset/configure/read 2022-09-20 18:59:00 -04:00
vincentpoont2 d5f7763817 add V5X005001 V5X005002 to start correct sensor 2022-09-21 10:40:04 +12:00
RomanBapst e41913a699 vtol_type: removed unused "was_in_trans_mode" function
Signed-off-by: RomanBapst <bapstroman@gmail.com>
2022-09-20 16:50:07 +02:00
RomanBapst 2a6cd4a409 vtol_att_control: avoid using non-recent attitude setpoint during beginning
of transition

Signed-off-by: RomanBapst <bapstroman@gmail.com>
2022-09-20 16:50:07 +02:00
Julian Oes 5aa873aed5 fmu-v6x: alias, add VX43
- alias from hw_mft_list_v0650 to hw_mft_list_v0600 as it is the same
- add V6X50 again
2022-09-20 08:26:16 -04:00
Julian Oes d78de90fc8 fmu-v5x: alias for duplicates, remove commented
- Removed commented out config data.
- hw_mft_list_v0540 was the same as hw_mft_list_v0500
2022-09-20 08:26:16 -04:00
Daniel Agar a47895e809 [DO NOT MERGE] px4_i2c_device_external hacks 2022-09-20 10:31:26 +12:00
Julian Oes b922307ddb px4_fmu-v6c: Move I2C 4 back to External
This is a revert of the revert.
This reverts commit 1080855f4d.
2022-09-20 10:31:26 +12:00
Julian Oes 94c8a4a840 fmu-v6c: internal baro and mag on external bus
This swaps the internal baro and mag back to the bus which is both
internal an external but configured as external for this case.
2022-09-20 10:31:26 +12:00
Silvan Fuhrer 13fc5918cc AirspeedValidator: keep data stuck test but only enable in FW mode
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2022-09-19 17:44:44 +02:00
Silvan Fuhrer 1a5d0f4347 AirspeedValidator: add new check (variance after boot) and disable data stuck check by default
This new check is inteded to trigger if there is no data variation published by
the airspeed driver for the first 10s after the first data is published.
This is to capture malfunctioning sensors/drivers that do publish a value, this
value though does not come from real sensor measurements.
Previously this was captured by the data stuck check, but it has shown that
some drivers can publish a stuck value without being actually malfunctioning
(e.g. when the airspeed is outside of their measurement range). Checking for
any data variation is the more conservative check that still catches the above
described failure case.

Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2022-09-19 17:44:44 +02:00
Daniel Agar 0a5c9d4951 position_setpoint delete unused landing_gear 2022-09-19 11:16:45 -04:00
Daniel Agar 11dd924bd4 position_setpoint delete unused SETPOINT_TYPE_FOLLOW_TARGET 2022-09-19 11:16:45 -04:00
Beat Küng c707997b9e lockstep_scheduler: use PRIu64 for timestamp printf 2022-09-19 10:04:31 -04:00
Daniel Agar 87815d8869 simulator_ignition_bridge: add simple esc_status publication
- ideally we'd get this from the actual joint velocity, but this is
good enough to start
2022-09-19 09:49:12 -04:00
Daniel Agar 3440f543f1 simulator_ignition_bridge: wait for first clock set before returning successfully 2022-09-16 21:37:09 -04:00
Daniel Agar 98036f93c5 msp_osd: fix module documentation 2022-09-16 18:54:14 -04:00
modaltb e1098c328e modalai_esc: maintenance release 1 (#20225) 2022-09-16 14:52:28 -07:00
Daniel Agar 07c34f7446 boards: px4_fmu-v6x update bootloader 2022-09-16 12:11:25 -04:00
chris1seto cfb98e44c9 MSP telemetry and OSD support (#19515)
Co-authored-by: Chris Seto <chris.seto@bossanova.com>
2022-09-16 11:46:08 -04:00
Daniel Agar eaa9eae472 simulator_ignition_bridge: fix double promotions 2022-09-16 11:36:35 -04:00
Daniel Agar 085ec0e8ef flight_mode_manager: StickAccelerationXY minimize setpoint oscillations around 0 2022-09-16 07:54:12 +02:00
Ville Juven f300ec1da2 px4_platform_common/atomic.h: fetch_add/sub were really fetch_inc/dec
fetch_add/sub were really inc/dec for the __atomic_always_lock_free == true
branch. This fixes them so that the arg "num" is actually used.
2022-09-15 21:11:08 -04:00
Daniel Agar ff196a7363 crsf_rc: trivial compile fixes for updated vehicle_gps_position and removed NAVIGATION_STATE_AUTO_LANDENGFAIL 2022-09-15 21:01:53 -04:00
Daniel Agar 97f239d3ab boards/flywoo/gn-f405: fix code style 2022-09-15 20:06:01 -04:00
chris1seto b682b30ab1 drivers/rc/crsf_rc: create new standalone CRSF driver 2022-09-15 20:00:20 -04:00
David O b910c1dcf4 Update mavlink_main.cpp
Corrected
2022-09-15 19:49:49 -04:00
David O 8f7233b1e2 Tailsitters need ATTITUDE_QUATERNION to display properly the artificial horizon 2022-09-15 19:49:49 -04:00
Daniel Agar 05850e2fc0 mavlink: eliminate timestamped_list dynamic allocation 2022-09-15 19:27:39 -04:00
David Sidrane eaac84ab20 px4_fmu-v6x_bootloader:Ensure PWM pins are low from boot 2022-09-15 19:24:50 -04:00
Oleg Kalachev 585e81fc30 mavlink: fix path for mavlink_types.h include 2022-09-15 19:20:11 -04:00
Daniel Agar 5fcdffc8c0 drivers/device/nuttx/I2C: only issue I2C_RESET() if retrying, and only before the next retry 2022-09-15 18:42:30 -04:00
Claudio Micheli 30e867d4de navigator_main: use camera_trigger driver for single captures
Signed-off-by: Claudio Micheli <claudio@auterion.com>
2022-09-15 18:15:25 -04:00
Julian Oes fc89705ef8 navigator: stop capturing images on mission exit
When a mission starts capturing images using the
MAV_CMD_IMAGE_START_CAPTURE command, it should also stop it again, in
case it is stopped early, e.g. with RTL.
2022-09-15 18:15:25 -04:00
Zhengtian 70194f52cd boards: New target flywoo goku-gn-f405s-aio (#20131) 2022-09-15 18:11:49 -04:00
Ville Juven 3b9936edd2 hrt_ioctl: Move common code under /common folder
The HRT ioctl is common code, so move it out of chip specific code
2022-09-15 17:57:40 -04:00
Bruce Meagher b1c7098c54 Initial version of log history support. 2022-09-15 14:15:34 -04:00
Beniamino Pozzan 2e83c3a465 Fixed fastrtps version reading in microRTPS generation
Issue addressed: ROS2 is built from source and
no system-wide version of fastrtps is installed

Signed-off-by: Beniamino Pozzan <beniamino.pozzan@phd.unipd.it>
2022-09-15 13:36:40 -04:00
vincentpoont2 4951ce0ed7 Add PX4 vision v1.5 Airframe 2022-09-15 13:33:04 -04:00
Ville Juven 328bc5b8c2 image_toc.c: Check that the ToC actually lies within the first entry
As the first entry is used to sign / authenticate the ToC, make sure
the ToC is actually in the first entry.
2022-09-15 13:32:08 -04:00
murata 9e2ff11d45 fmu-v6x: Add sd_bench command 2022-09-15 13:25:34 -04:00
Travis Bottalico 9c0750776d voxl2_io: initial board support 2022-09-15 13:19:01 -04:00
Silvan Fuhrer 5a74f07a74 RTL: always fill loiter_radius field, indpendent on vehicle type
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2022-09-15 13:17:36 -04:00
Silvan Fuhrer e9f349a2fc RTL: set WP type to LOITER_TO_ALT for FW in Return stage
Such that the loiter (orbit) status can be displayed on groundstation
and the WP is accepted once within loiter radius

Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2022-09-15 13:17:36 -04:00
Silvan Fuhrer 5f0fc7aaf1 FW Position Controller: fix publishing of negative loiter directions (CCW)
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2022-09-15 13:17:36 -04:00
Silvan Fuhrer 7a760c8c6e RTL: use loiter radius from mission for loiter before enganging mission in RTL
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2022-09-15 13:17:36 -04:00
Alex Klimaj 0ce76679b7 boards: add new ARKV6X (#20191) 2022-09-15 13:13:49 -04:00
Alvin Sun 80243aef53 remove microdds from rtps target 2022-09-15 13:10:23 -04:00
Alvin Sun c3e6421549 add v4 rtps build 2022-09-15 13:09:35 -04:00
mcsauder b885c920d8 Breakout header file from sensors.cpp and delete unnecessary #includes. 2022-09-15 13:09:04 -04:00
Junwoo Hwang e3dff5c074 board_identity: Add UUID/MFGUID/GUID unit tests
- To check stack smashing (buffer overflow)
- To check if the buffer without enough length gets appropriate values
filled
- To check if the format has expected length
2022-09-15 13:06:15 -04:00
Junwoo Hwang f5215e8207 board_identity: Fix UUID format function buffer overflow bug
- Previously, not having a proper boundary check caused overflows in the
buffer (wrong memory access)
- Moreoever, negative size values getting introduced to snprintf &
strncat were also being truncated to unsigned value, hence causing
overflow, so index check needed to be added before both functions
- Fixed typo in board_common.h
2022-09-15 13:06:15 -04:00
bresch facf01d69d ekf2: report combined vertical position test ratio 2022-09-15 08:51:19 -04:00
Daniel Agar 54b5d4c5b8 drivers/rc_input: don't allow starting on the px4io serial port 2022-09-14 21:23:30 -04:00
Jaeyoung Lim 9245d71397 Fixedwing att control rate loop cleanup 2022-09-14 13:53:58 +02:00
Silvan Fuhrer b4f27c9abb MissionBlock: loiter exit condition based on vector operation instead of atan
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2022-09-14 10:47:21 +02:00
Silvan Fuhrer 27780308c0 MissionBlock: base loiter course exit condition on a constant value instead of MIS_YAW_ERR
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2022-09-14 10:47:21 +02:00
Konrad 5a7f098b8d Enable multiple simulated imu and magnetometers in gazebo 2022-09-14 10:27:04 +02:00
Silvan Fuhrer f9b6edab07 Navigator/FW Position Control: VTOL front towards specified transition heading if available
If the current yaw setpoint is valid we should use it to make the transition in this direction.
For a VTOL_TAKEOFF the yaw_setpoint is used to specify the transition direction (the
vehicle is aligned towards it and then transition is started). The current yaw can be
a bit off (e.g. because MIS_YAW_ERR is large), and it is better to track the actual setpoint.

Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2022-09-14 08:55:20 +02:00
alexklimaj 82b28bc72f Add BMP390 to BMP388 driver 2022-09-13 09:33:24 -04:00
Vojtech Spurny 7ca16cd504 increased rate of Lidar Lite driver over I2C 2022-09-13 09:11:12 -04:00
David Sidrane 1080855f4d Revert "px4_fmu-v6c Move I2C 4 to External"
This reverts commit 6b2509cbba.
2022-09-13 01:06:17 -04:00
alexklimaj ba1b6f4d2c Standardize AFBR irq lock calls 2022-09-12 19:14:18 -04:00
alexklimaj 3398380262 Switch to async AFBR measurement calls and use schedule. 2022-09-12 13:00:25 -04:00
Shriv 3dffa5e6df gps: add UART2 Baudrate Configurability and New UBX Mode. (#20133) 2022-09-12 14:13:17 +02:00
Daniel Agar b8fb5dfa51 merge px4_sitl_ign into px4_sitl_default (#20188)
- for convenience merge px4_sitl_ign into px4_sitl_default, but allow simulator_ignition_bridge to quietly skip inclusion if ignition-transport isn't available
 - simulator_ignition_bridge only try setting the system clock in
lockstep builds
 - this simplifies usage and CI system dependencies
2022-09-10 16:18:02 -04:00
bresch 34d8bd7988 update EKF2 change indicator 2022-09-10 12:29:29 -04:00
bresch 6bd81c0eb7 ekf2: do not store delayed baro sample in class
the sample is popped from the buffer and directly used; there is no
need to keep a local copy of it
2022-09-10 12:29:29 -04:00
bresch ae1e12a6b5 ekf2: remove baro accumulation from initializeFilter 2022-09-10 12:29:29 -04:00
bresch fe4a6ce8de ekf2: allow initialization without baro data when fusion is disabled 2022-09-10 12:29:29 -04:00
bresch a54fa7b9b1 ekf2: add fake height fusion logic
When there is no vertical aiding, fake height is started to constrain
the vertical channel of the EKF
2022-09-10 12:29:29 -04:00
bresch aa716936bf ekf2: move synthetic_position flag to control_status.flags.fake_pos 2022-09-10 12:29:29 -04:00
Julian Oes 86f7e15f7a libuavcan: update submodule
This fixes a Python 3.10 issue for me.
2022-09-09 20:41:11 -04:00
Daniel Agar 8f25acd428 sih remove gps and use standalone sensor_gps_sim 2022-09-09 18:00:50 -04:00
Daniel Agar bfe0d71a21 sih remove baro and use standalone sensor_baro_sim 2022-09-09 18:00:50 -04:00
Daniel Agar c5336abba2 sih remove mag and use standalone sensor_mag_sim 2022-09-09 18:00:50 -04:00
Daniel Agar 99a20646e2 simulator sih add local position ground truth and cleanup 2022-09-09 18:00:50 -04:00
Daniel Agar 355f184f06 boards/px4/fmu-v3: allow optional ms5607 startup to fail quietly (no error) 2022-09-09 17:32:18 -04:00
Alvin Sun 238fdadfee Add attitude and bodyrate control to RTPS 2022-09-09 22:21:02 +02:00
Daniel Agar 3f3a5f19f0 parameters: open export files O_TRUNC to discard previous data
- rcS parameter backup try to directly restore param (FRAM) from backup (in case SD card is removed before successful export)
 - rcS parameter backup logging rearrange to capture more logging output (param_import_fail.txt)
 - posix rcS try to keep param backup and restore roughly in sync with NuttX rcS
 - tinybson fix debug printf format
 - param_export_internal ensure file descriptor positioned at 0 (precaution)
2022-09-09 16:20:16 -04:00
Igor Mišić 296b1704c5 invensense/icm42688p: add additional state FIFO_RESET
This state is added to give extra time between  FIFO flush command. Some icm42688p IMUs need more time between config -> FIFO reset -> FIFO read. More about the issue  #20181
2022-09-09 16:19:10 -04:00
Alex Klimaj efcf4c95fd drivers/uavcannode: Add RTCMStream subscriber and fix RTCMStream Publisher (#20056)
* Add cannode RTCMStream subscriber
* Fix uavcan RTCMStream publisher
* Break out CANNODE_SUB_RTCM and CANNODE_SUB_MBD
2022-09-09 15:16:09 -04:00
Daniel Agar 9d1aeb6aa7 platforms/posix: cleanup macos legacy 2022-09-09 13:05:06 -04:00
matthewoots b09329f287 boards/matek/h743: add fix to resolve no startup of imu for matek_h743 target (#20184)
* Add fix for matek_h743 target that resolves no startup of imu for h743-wing v3 and h743-wlite boards
* Added imu driver according to spi bus (https://www.mateksys.com/?portfolio=h743-wing-v2#tab-id-7)
2022-09-09 13:02:38 -04:00
Agata Barcis e268e69265 Fixed fastrtps version reading in microRTPS generation for ROS2 built from sources 2022-09-09 15:11:11 +01:00
Daniel Agar b45daac0e8 commander: fix angular velocity validity
- vehicle_angular_velocity timestamp can be newer than saved now
2022-09-09 09:14:09 -04:00
Daniel Agar 15fece7e14 delete SYS_CTRL_ALLOC 2022-09-09 09:14:09 -04:00
Daniel Agar 13f9eabd70 delete unused actuator_controls_3 2022-09-09 09:14:09 -04:00
Daniel Agar 55be169e18 delete remaining PWM_MAIN/PWM_AUX/PWM_EXTRA parameters 2022-09-09 09:14:09 -04:00
Daniel Agar 4ec9e2f216 uavcan: delete unused ESC idle and soft_stop 2022-09-09 09:14:09 -04:00
Daniel Agar bdec17a9d4 drivers/pwm_out_sim: add perf counters (sync with drivers/pwm_out) 2022-09-09 09:14:09 -04:00
Daniel Agar baa05b2631 drivers/pwm_out: remove custom module boilerplate (dual output bank handling) 2022-09-09 09:14:09 -04:00
Daniel Agar ce337a3d80 delete unused PWM IOCTLs 2022-09-09 09:14:09 -04:00
Daniel Agar bcdd2203d3 delete systemcmds/motor_test and msg/test_motor.msg 2022-09-09 09:14:09 -04:00
Daniel Agar 72efe84b80 delete MOT_ORDERING 2022-09-09 09:14:09 -04:00
Daniel Agar a7bbcd5b04 delete lib/mixer and mixer_module static mixing 2022-09-09 09:14:09 -04:00
Daniel Agar 0019ffbea6 delete drv_mixer.h 2022-09-09 09:14:09 -04:00
Daniel Agar d3312f955f delete systemcmds/pwm 2022-09-09 09:14:09 -04:00
Daniel Agar 5dd1e5a018 delete systemcmds/mixer 2022-09-09 09:14:09 -04:00
Daniel Agar cac9c51ac8 ROMFS: purge old mixing system
- SYS_USE_IO is now off by default (enabled by default per board)
2022-09-09 09:14:09 -04:00
Julian Oes ed10146e9f fmu-v6: disable Rev 0, Rev 1 for HB Mini, and CM4
As I understand it, only Rev 3 and Rev 4 were shipped by HB for Mini and
CM4, and are likely to be used for it.

It would be nice to have all combinations but it requires quite some
flash in the current implementation.
2022-09-08 20:54:19 -04:00
Julian Oes f05fccebb7 fmu-v5x: disable rev0 for HB Mini and CM4 base
As I understand it, only Rev 1 and Rev 2 were shipped by HB, and likely
to be used for the Mini and CM4.
2022-09-08 20:54:19 -04:00
Julian Oes 6bd020e848 platforms: decrease flash usage by type for bus id
My assumption is that the bus are numbered < 127.
This saves about 100 bytes of flash.
2022-09-08 20:54:19 -04:00
vincentpoont2 4fe90322db update fmu-v6x rc.board_sensors, add V6X004003 2022-09-08 20:54:19 -04:00
vincentpoont2 167c3da99d update fmuv5x rc.board_sensors with V5X004000 2022-09-08 20:54:19 -04:00
Vincent Poon 70321ed610 update v5x rc.board_sensors
add V5X004002
2022-09-08 20:54:19 -04:00
Vincentpoont2 f476ebdcbf Correct BOARD_NUM_SPI_CFG_HW_VERSIONS at board_config.h 2022-09-08 20:54:19 -04:00
Vincentpoont2 9d5adf8bab Fix Error on manifest.c 2022-09-08 20:54:19 -04:00
Vincentpoont2 e91295e5db Fix Error on board_config.h Define on FMUv5X & FMUv6X 2022-09-08 20:54:19 -04:00
Vincentpoont2 b16a53018d Add Holybro Pixhawk Pi CM4 Baseboard Support 2022-09-08 20:54:19 -04:00
Don Gagne 0987bb2e8e Fix bug with yaw only reposition
Fix formatting
2022-09-08 17:55:30 -04:00
Matthias Grob da01dd9eeb mission_block: explicitly (re)set the acceptance radius to default for takeoff items
otherwise a previously adjusted or uninitialized radius from the last flight
can cause problems during the new takeoff
2022-09-08 14:49:32 +02:00
Matthias Grob b825b61a20 mission_block: minimal acceptance radius of 1mm
to avoid float rounding errors leading to tiny acceptance radii
getting considered
2022-09-08 14:49:32 +02:00
Ville Juven 9c204774f1 px4_userspace_init: Fix NULL dereference for px4_spi_buses in user space
For targets that define the SPI buses via px4_spi_buses_all_hw, a call
to px4_set_spi_buses_from_hw_version() is needed. Otherwise a NULL
de-reference will occur when trying to access px4_spi_buses.

Fixes a system crash in px4_fmu-v5_protected:
up_assert: Assertion failed at file:armv7-m/arm_memfault.c line: 101 task: wq:lp_default
2022-09-08 07:05:11 +02:00
Justin 88bf1030b5 Update CI to use the main branches. 2022-09-07 20:03:19 -04:00
Ville Juven d4cce452cf modules/dataman: Increase stack size by 100B
Fixes:
WARN  [load_mon] dataman low on stack! (276 bytes left)

Seen on px4_fmu-v5_protected target.
2022-09-07 20:02:26 -04:00
Junwoo Hwang 2542b1bb26 Implement Pacakge delivery via Gripper during mission
This feature allows user to use a Gripper type pacakge delivery
mechanism on a drone to trigger the delivery during a mission via the
mission item `DO_GRIPPER`.

This is a minimal change that is intended to have simplest pacakge
delivery feature on PX4, however the future scope would extend this
feature out of Navigator, and rather move towards a federated PX4
(flight-mode flexibility) architecture. But until then, this will serve
the purpose.

Update Tools/sitl_gazebo submodule to remove sdf file overwrite error

- There was an error happening due to .sdf file being overwritten, it
was caused by a wrongfully added. sdf file.
- This update pulls in the PR commit: https://github.com/Auterion/sitl_gazebo/pull/147

Initial cut on supporing PAYLOAD_PLACE mission item

Tidy and comment on navigation.h to clarify mission item definition

- Convert vehicle command ack subscription data type to
SubscriptionData, to not care about having a dedicated struct for
copying the latest data
- Tidy and comment on navigation.h to clarify the definition of
mission_item_s, which is confusing as it is an intergration of MAVLink
Standard into PX4's internal Mission Item structure

Rename mission_block's mission item reached function & cleanup navigator

- Isolated Handle Vehicle Commands function inside the Navigator
- Rename mission_block's mission item reached function to 'reached or
completed', as the navigation command can also be an action (e.g.
DO_SET_SERVO, which doesn't make sense to refer to as 'reached' when we
have successfully done executed the command)

Include MAVLink PR commit to include payload_drop message

More changes to add payload_drop MAVLink message support

- Comitting for testing purposes

Add mission item payload_drop to vehicle command payload drop link

- Now with a mission item with the nav_cmd set to 'payload drop', the
appropriate 'payload drop' vehicle command will be issued

Make Payload drop executable via Mission Plan

Implement payload_drop module to simulate payload delivery

- Simple module that acknowledges the payload drop vehicle command after
certain time, to simulate a successful delivery

Additional changes - payload drop module not working yet

- Need to do more thread stuff to make it work :(

Fix Payload Drop enum mismatch in vehicle_command enums

- First functional Payload Drop Implementation MVP
- Simple Ack & resuming mission from Navigator tested successfully

Hold the position while executing payload drop mission item

- Still the position hold is not solid, maybe I am missing something in
the position setpoint part and all the internal implications of
Navigator :(

Add DO_WINCH command support

Some fixes after rebase on develop branch

- Some missed brackets
- Some comment edits, etc

Add DO_WINCH command support

- Still has a problem of flying away from the waypoint while the
DO_WINCH is being executed, probably position setpoint related stuff :(

Apply braking of the vehicle for DO_WINCH command

- Copies the behavior of NAV_CMD_DELAY, which executes a smooth, braking
behavior when executing the delay because of the braking condition in
`set_mission_items` function
- This will not apply to Fixed wings
- The payload deploy getting triggered may be too early, as right now as
soon as the vehicle approaches the waypoint within the acceptance
threshold, the payload gets deployed

Add DO_GRIPPER support

Implement Gripper actual Hardware triggering support

- Currently not working, possibly in the mixer there's a bug
- Implemented the publishing of actuator_controls_1 uORB topic
- Implemented the test command for the payload_drop module, to test the
grpiper functionality
- Edited px4board file to include the payload_drop module
- Added Holybro X500 V2 airframe file, to enable testing on X500 V2
- Created new Quad X Payload Delivery mixer, which maps the actuator
controls 1 topic's data into the MAIN pin 5 output

Make Payload Drop Gripper Work

- Initialization of the Gripper position to CLOSED on Constructor of the
payload_drop module
- Setting the OPEN and CLOSED value to the appropriate actuator controls
input

Set vehicle_command_ack message's timestamp correctly

- By not setting the timestamp, the ack commands were not correctly
graphed in PlotJuggler!

Rename payload drop module to payload deliverer

- I think it's a more complex name (harder to type), but more generic

Add Gripper class (WIP)

Add Gripper class functionalities

- Add gripper uORB message
- Add gripper state machine

Use Gripper class as main interface in payload_deliverer

- Utilizes Gripper class functions for doing Gripper functionality

Remove mixer based package delivery trigger logic

- Remove custom mixer files that mapped actuator controls to outputs
statically

Additional improvements of the payload_deliverer

Fix payload_deliverer module not starting

- _task_id wasn't geting set appropriately in task_spawn function, which
led to runtime failure

Add Gripper Function to mixer_module

- Still not showing up as function mapping in QGC, needs fix

Add parameters to control gripper behavior

- Now user can enable / disable gripper
- Also select which type of gripper to use

Applying review from nuno

Remove timeout fetching from mission item and use gripper's timeout

- Previously, it was planned to use a custom DO_GRIPPER and DO_WINCH
MAVLink message definitions with information on timeout, but since now
we are using original message definition, only relevant timeout
information is defined in the payload_deliverer class

- This change brings in the timeout parameter to the Navigator, which
then sets the timeout in the mission_block class level, which then
processes the timeout logic

Make payload deployment work for Allmend test :P

Support gripper open/close test commands in payload_deliverer

Move enum definition for GRIPPER_ACTION to vehicle_command.msg

Remove double call for ` ${R}etc/init.d/rc.vehicle_setup`

- Was introduced during the rebase
- Was causing module already running & uORB topic can't be advertised
errors

Fix format via `make format` command

Modify S500 airframe file to use for control allocation usage

- Added Control allocation related parameters as default to not have it
reset every time the airframe is selected

Implement mission specific payload deploy timeout and more changes

Switch payload_deliverer to run on work queue

Remove unnecessary files

- Airframe changes from enabling control allocation are removed

Address review comments

- Remove debug messages
- Remove unnecessary or verbose comments & code
- Properly call parameter_update() function

Switch payload_deliverer to scheduled interval work item & refactor

- Switch to Schedeuled on Interval Work Item, as previous vehicle
command subscription callback based behavior led to vehicle comamnd ack
not being sent accordingly (since the Run() wouldn't be called unless
there's a new vehicle command), leading to ack command not being sent
out
- Also, old vehicle commands were getting fetched due to the
subscription callback as well, which was removed with this patch
- Fix the wrong population of floating point param2 field of vehicle
command by int8_t type gripper action by creating dedicated function
- Refactor and add comments to increase readability

Add gripper::grabbing() method and handle this in parameter update

- Previously, the intermediate state 'grabbing' was not considered, and
when the parameter update was called after the first initialization of
the gripper, the grab() function was being called again, which would
produce unnecessary duplicate vehicle command.
- Also replaced direct .grab() access to sending vehicle comamnd, which
unifies the gripper actuation mechanism through vehicle commands.

Navigator: Change SubscriptionData to Subscription to reduce memory usage

- Also removed unused vehicle command ack sub

PayloadDeliverer: Remove unnecessary changes & Bring back vehicle_command sub cb
2022-09-07 08:11:52 +02:00
Matthias Grob e115095f70 Functions: correct interpolate function for N points 2022-09-07 08:00:27 +02:00
Beat Küng 4087c27e84 control_allocator: handle saturation flags for helicopters 2022-09-07 08:00:27 +02:00
alexklimaj aa8d594e9b Add heli servo trim 2022-09-07 08:00:27 +02:00
Matthias Grob 667e99be81 Helicopter: fix unit test after default throttle curve was changed 2022-09-07 08:00:27 +02:00
Matthias Grob 115cf4d572 Helicopter: More intuitive yaw direction configuration for the common cases 2022-09-07 08:00:27 +02:00
Matthias Grob f233f2167e generic_250, px4vision: remove zero manual thrust without airmode
When hitting zero thrust by stick there is 0 torque authority
without airmode. So 0% minimum manual thrust should never be the default
without airmode.
2022-09-07 08:00:27 +02:00
Matthias Grob 8a25d06ed7 heli_defaults: comment and spacing 2022-09-07 08:00:26 +02:00
Beat Küng cecef7e3f6 control_allocator: update heli throttle + collective curve defaults 2022-09-07 08:00:26 +02:00
Beat Küng d38c02fd6a commander: increase maximum COM_SPOOLUP_TIME to 30s (for helis) 2022-09-07 08:00:26 +02:00
Beat Küng 2635e2c386 airframes: replace blade with generic helicopter 2022-09-07 08:00:26 +02:00
Beat Küng 7e75b497ae helicopter: add switch to engage main motor
For helicopters it's useful (e.g. during bringup) to be able to disable
the main rotor while the tail is still controlled to safely land.
2022-09-07 08:00:26 +02:00
Matthias Grob f32d931117 helicopter: add yaw sign parameter & expose settings in UI 2022-09-07 08:00:26 +02:00
Matthias Grob 349f152601 Helicopter: throttle spoolup upon arming
Uses COM_SPOOLUP_TIME to slowly ramp the throttle and allow the
tailrotor to compensate in a coordinated way based on the yaw
compesation from throttle, see CA_HELI_YAW_TH_S.

This coordinated spoolup is necessary to avoid unsafe yaw twitches
because of the heli rotating until the correct compensation kicks in
through the feedback controller.
2022-09-07 08:00:26 +02:00
Matthias Grob 7bf62373ae Helicopter: refactor complicated throttle curve logic 2022-09-07 08:00:26 +02:00
Matthias Grob 2edb35b1b5 Functions: add gradual function with arbitrary number of corner points 2022-09-07 08:00:26 +02:00
Matthias Grob 6a9a049f1e Helicopter: add unit testing for throttle curve 2022-09-07 08:00:26 +02:00
Matthias Grob 9ba6f4efb7 Helicopter: add yaw compensation from throttle CA_HELI_YAW_TH_S 2022-09-07 08:00:26 +02:00
Matthias Grob 554d965a2d Helicopter: use absolute value for yaw compensation from collective pitch 2022-09-07 08:00:26 +02:00
Beat Küng 608ab9ff9c control_allocator: extend description for CA_SP0_ANGx 2022-09-07 08:00:25 +02:00
Beat Küng e346190e63 helicopter: use tail motor & add CA_HELI_YAW_CP_S 2022-09-07 08:00:25 +02:00
Julian Oes 5ece24cdc4 setup: attempt to fix macOS CI
Somehow the wheel install of pymavlink fails without future, let's try
to work around that.
2022-09-07 13:49:37 +12:00
Alessandro Simovic 9a0fd624c4 update pyuavcan to latest 2022-09-07 13:11:38 +12:00
Peter van der Perk 8f0c2f4146 UCANS32K1 Enable some sensors by default 2022-09-06 09:43:11 -04:00
bresch 92fbd86b46 ekf2: add gps altitude drift test 2022-09-05 10:28:37 -04:00
bresch a2a5093881 ekf2: relax zero velocity update
The ZVU is too strong and prevents the EKF from following variations in
the height aiding sources, creating large innovations.
2022-09-05 10:28:37 -04:00
Daniel Agar d996af4647 ekf2: pass gpsSample around where required
- this minimizes potential misuse accessing _gps_sample_delayed and
makes the dependency clear
2022-09-05 10:27:19 -04:00
RomanBapst 0c860fa227 airspeed_selector: don't declare wind estimate valid if estmator is not initialised
Signed-off-by: RomanBapst <bapstroman@gmail.com>
2022-09-05 10:21:38 -04:00
Ville Juven 9ed35debec board_ctrl: Clean up usage of VBUS, nARMED from user/kernelspace
Move logic implemented in the header files to source files, this way
it will be simpler to define which is compiled to kernel space and
which to user space

Also allows to remove some headers that pull in half the universe
from the board definitions (which should just be pin definitions and
no functionality)
2022-09-05 07:37:28 +02:00
Benjamin Perseghetti a56f654651 Multi-Vehicle Ignition Gazebo Simulation (#20154) 2022-09-04 21:10:29 -04:00
Daniel Agar 7bbdc220f5 ekf2: initialiseFilter() simplify mag heading init and resetQuatStateYaw
- most of resetQuatStateYaw doesn't apply to initial heading init, so
removing the special case keeps it simple
2022-09-02 08:46:10 -04:00
Ville Juven e467d11990 boards/px4/fmu-v5/toc: The RD certificate signature points to the wrong place
The signature end address is incorrect
2022-09-02 08:00:27 +02:00
Daniel Agar 5dfd2f39ef boards/cubepilot/cubeorange: initialize all I2C pins immediately 2022-09-01 20:46:09 -04:00
Daniel Agar e93a3a2a3a ak09916: enable retries and reset perf count 2022-09-01 20:45:20 -04:00
Daniel Agar f66b5ce204 simulation: ignition bridge allow IMU or pose callbacks to update system time if newer than clock
* requires HRT lockstep changes to eliminate offset (PR #20146)
2022-09-01 20:42:21 -04:00
Daniel Agar c52f2143d2 posix lockstep remove HRT offset and use full sim time 2022-09-01 20:40:37 -04:00
Daniel Agar 3da0293369 simulator_ignition_bridge: init error handling 2022-09-01 18:54:59 -04:00
Beat Küng 43c5f14aa0 commander: update arming & health protocol, add modes to event hash 2022-09-01 17:07:23 -04:00
Beat Küng f57321d365 simulator_mavlink: fix esc_status publication 2022-09-01 17:07:23 -04:00
Beat Küng 295caaea60 events/enums.json: remove redundant manual_control_input 2022-09-01 17:07:23 -04:00
Beat Küng 2c96bb3746 px4_parameters.hpp.jinja: explicitly set .name attribute
Fixes the compile error on llvm:
mixture of designated and non-designated initializers in the same initializer list is a C99 extension [-Wc99-designator]
2022-09-01 17:07:23 -04:00
Beat Küng 1370cc0d74 log.h: add PRINTF_LOG option for direct printf to reduce dependencies 2022-09-01 17:07:23 -04:00
Beat Küng a9c1415337 Makefile: allow to set CMAKE_ARGS via CLI 2022-09-01 17:07:23 -04:00
Beat Küng 4e940fab83 perf_counter: remove unused include sys/queue.h 2022-09-01 17:07:23 -04:00
Beat Küng 9eff6dd049 commander: cleanup param value description for COM_POSCTL_NAVL 2022-09-01 17:07:23 -04:00
Beat Küng 0e130eac83 refactor commander: move code inside run() into separate methods 2022-09-01 17:07:23 -04:00
Beat Küng dcb9b712bb refactor commander: move vehicle control mode to ModeUtil 2022-09-01 17:07:23 -04:00
Beat Küng f197c8884d commander: move esc checks to arming check 2022-09-01 17:07:23 -04:00
Beat Küng c9037f115b refactor commander: split out home position 2022-09-01 17:07:23 -04:00
Beat Küng f17f38197d commander: move estimator checks to arming check 2022-09-01 17:07:23 -04:00
Beat Küng cfe3d793bf commander: move battery handling into arming checks 2022-09-01 17:07:23 -04:00
Daniel Agar 5cb44a521c ekf2: estimator interface handle sample time with signed integers
- this prevents unsigned integer overflow if the timestamp is smaller
than the configured delay (mostly a simulation edge case)
2022-09-01 09:47:29 -04:00
dagar 75f6f22223 [AUTO COMMIT] update change indication 2022-08-31 08:52:30 -04:00
Daniel Agar 1948c5057a ekf2: handle all time on delayed horizon (except for newest sample checks)
- a growing number of samples come into the backend with the time
already delayed (sensor's interrupt setting timestamp sample)
 - if the incoming timestamp is already delayed then the new data checks
(relative to latest IMU) can be slightly wrong
 - handle almost all timestamps and checks on delayed time horizon,
except for explicit checks of new samples
 - isRecent() and isTimedOut() helpers use delayed time
 - add new isNewestSampleRecent() used for checking the incoming
timestamp of the incoming (adjusted) data
2022-08-31 08:52:30 -04:00
Jukka Laitinen d6a4e158cf Add call-gates to px4_crypto for protected build
This adds kernel-userspace interfaces to crypto layer

Signed-off-by: Jukka Laitinen <jukkax@ssrc.tii.ae>
2022-08-31 09:48:49 +02:00
Beat Küng d681782c7f fix flashfs: find_entry: do not go to the next sector if the CRC is invalid 2022-08-31 09:42:59 +02:00
Beat Küng 4f52cda504 flashfs: ensure no address past the end of a sector is dereferenced
As it might result in a hardfault if it's the last flash sector.
2022-08-31 09:42:59 +02:00
Beat Küng 2776b723ea holybro/kakuteh7: switch to flash-based params 2022-08-31 09:42:59 +02:00
Hamish Willee e780a583cd Fix typo follow height: FLW_TGT_HT 2022-08-29 13:25:35 +02:00
Ben Berry 734d3e4aa0 Reverted changes that broke Level Horizon calibration 2022-08-29 09:54:36 +02:00
Beat Küng afc99749b8 px4/fmu-v5/uavcanv0perith: disable gps to reduce flash usage 2022-08-25 22:02:15 -04:00
Beat Küng 715afd27f5 ROMFS: exclude mixers on v2 & disable mixer command
The dynamic mixing is now the default
2022-08-25 22:02:15 -04:00
Beat Küng f0295cf596 px4/fmu-v2/defconfig: disable PROCFS
Reduces flash usage by ~7.3KB
2022-08-25 22:02:15 -04:00
Beat Küng ad222760dd platforms: move CONFIG_FS_PROCFS_MAX_TASKS definition to cpuload.h
So it's used for both cases
2022-08-25 22:02:15 -04:00
Beat Küng 70ec3493c5 px4/fmu-v5/stackcheck: disable distance sensors to reduce flash 2022-08-25 22:02:15 -04:00
Beat Küng 666b84027d GyroFFT: disable 4096 for IMU_GYRO_FFT_LEN
saves around 10.5KB flash on px4-fmu-v5
2022-08-25 22:02:15 -04:00
Beat Küng 060738cae1 src: avoid use of double precision pow & exp
saves around 5KB flash on px4-fmu-v5
2022-08-25 22:02:15 -04:00
Beat Küng 983a9815eb libevents: update submodule 2022-08-25 22:02:15 -04:00
Beat Küng 4c41934bb4 commander: inline HealthComponentIndex::HealthComponentIndex
Saves around 1KB flash
2022-08-25 22:02:15 -04:00
Beat Küng 1c89b0c9c8 commander: use actuator_function for ESC reporting 2022-08-25 22:02:15 -04:00
Beat Küng 13c93db11a commander: use circuit breaker params directly in arming checks 2022-08-25 22:02:15 -04:00
Beat Küng 4230eee24f commander: print 'ready for takeoff' to console for sitl after startup 2022-08-25 22:02:15 -04:00
Beat Küng 2fccb576ad commander: remove unused includes and variables 2022-08-25 22:02:15 -04:00
Beat Küng dbb814ff24 HealthAndArmingChecks: CONSOLE_PRINT_ARMING_CHECK_EVENT & reduce flash usage
- print list of events whenever they change if
  CONSOLE_PRINT_ARMING_CHECK_EVENT is set, instead of on each update call
- reduce flash usage by moving out templated code into non-template method
2022-08-25 22:02:15 -04:00
Beat Küng b2cb164c12 commander: replace health flags with health_report from arming checks 2022-08-25 22:02:15 -04:00
Beat Küng 6d1fb92eb7 commander: rework arming checks to use the events interface 2022-08-25 22:02:15 -04:00
Beat Küng b4a3597c7d posix rcS: set PWM_AUX_OUT
Prevents a shell error in rc.interface
2022-08-25 22:02:15 -04:00
Beat Küng b3fe0eeae8 mavlink_events: send reset sequence out immediately on startup 2022-08-25 22:02:15 -04:00
Beat Küng 552d08176f posix rcS: set MAV_PROTO_VER to 2
For SITL it's important that the GCS receives the first events messages
that reset the sequence number, in case the user does not press 'Disconnect'
when restarting SITL.
2022-08-25 22:02:15 -04:00
Beat Küng c7b64e3c01 commander: check for ack when calling 'commander takeoff' 2022-08-25 22:02:15 -04:00
Beat Küng 406b0bbc86 commander: handle VEHICLE_CMD_RUN_PREARM_CHECKS 2022-08-25 22:02:15 -04:00
Beat Küng 8f9be0541f HealthAndArmingChecks: add support for legacy mavlink_log reporting 2022-08-25 22:02:15 -04:00
Beat Küng f23363f88c HealthAndArmingChecks: add unit tests for Report 2022-08-25 22:02:15 -04:00
Beat Küng 2507f0a143 px4events: fix known_groups list 2022-08-25 22:02:15 -04:00
Beat Küng fcadc69e52 mavlink_receiver: set timestamp to gps_inject_data_topic 2022-08-25 22:02:15 -04:00
Beat Küng c95192d050 orb_print_message_internal: handle 64 bit bitsets 2022-08-25 22:02:15 -04:00
Beat Küng b7a6de05df arming checks: add health topic 2022-08-25 22:02:15 -04:00
Beat Küng 07afcf4586 commander preflight checks: new structure using events interface
- Reporter class that keeps track of results (list of events + whether
  arming is possible + health).
  And only reports when one or more checks change.
2022-08-25 22:02:15 -04:00
Beat Küng 04f7df3848 SubscriptionMultiArray: use Subscription instead of SubscriptionInterval
Saves ~3KB RAM on fmu-v5.
2022-08-25 22:02:15 -04:00
Daniel Agar 9b0b0d1168 ekf2: update test change indication csv 2022-08-25 15:55:45 -04:00
Ville Juven f60f6d2425 Remove px4_work_queue from the kernel side LD command
The comment is right, it is not needed -> get rid of it
2022-08-25 13:30:11 -04:00
Daniel Agar 2786239ca6 Jenkinsfile: HIL remove delete airframe from test 2022-08-25 09:48:49 -04:00
Benjamin Perseghetti 02c9ec6085 Add thumbnails for x500. 2022-08-25 09:10:03 -04:00
Benjamin Perseghetti 0e8e38e698 Add x500 ignition (replaces x3) 2022-08-25 09:10:03 -04:00
Daniel Agar 4040e4cdf2 simulation organization and cleanup
- new modules/simulation directory to collect all simulators and related modules
 - new Tools/simulation directory to collect and organize scattered simulation submodules, scripts, etc
 - simulation module renamed to simulator_mavlink
 - sih renamed to simulator_sih (not a great name, but I wanted to be clear it was a simulator)
 - ignition_simulator renamed to simulator_ignition_bridge
 - large sitl_target.cmake split by simulation option and in some cases pushed to appropriate modules
 - sitl targets broken down to what's actually available (eg jmavsim only has 1 model and 1 world)
 - new Gazebo consistently referred to as Ignition for now (probably the least confusing thing until we fully drop Gazebo classic support someday)
2022-08-25 09:10:03 -04:00
David Sidrane 6b2509cbba px4_fmu-v6c Move I2C 4 to External 2022-08-25 08:46:51 -04:00
FARHANG 8b4df8ceb2 airframes: re-add Holybro X500v2 with dynamic control allocation 2022-08-25 07:52:18 +02:00
Jukka Laitinen f8f1213841 board_adc: Small fix for printf formatter
Print sizeof type with %zu to be compatible with 64 bit targets, where it is unsigned long

Signed-off-by: Jukka Laitinen <jukkax@ssrc.tii.ae>
2022-08-25 07:50:23 +02:00
bresch 0061ef8b89 [AUTO COMMIT] update change indication 2022-08-24 09:16:11 -04:00
bresch 090d03eea2 ekf2: publish GNSS, rng and EV height biases 2022-08-24 09:16:11 -04:00
bresch a2a29ba0dd ekf2: verify parameter configuration for height sources 2022-08-24 09:16:11 -04:00
bresch 8dd5d0d1a3 ekf2: don't reset height when in conditional range aiding 2022-08-24 09:16:11 -04:00
bresch 20cd599bb7 ekf2: fix param migration 2022-08-24 09:16:11 -04:00
bresch 2d39097f60 ekf2: move rng height to file 2022-08-24 09:16:11 -04:00
bresch 28b4cd0579 ekf2: move GNSS hgt control to file 2022-08-24 09:16:11 -04:00
bresch b6f76b5eaa ekf2: move ev control to file 2022-08-24 09:16:11 -04:00
bresch f555281c94 ekf2: move height control-related function to file 2022-08-24 09:16:11 -04:00
bresch d87feee5b0 ekf2: move baro control logic to file 2022-08-24 09:16:11 -04:00
bresch 12e25eba62 ekf2: add common height fusion timeout parameter 2022-08-24 09:16:11 -04:00
bresch 52f726c5b7 ekf2: in bias estimator, use psd instead of var for prediction
PSD is independent from the sampling time while variance isn't
2022-08-24 09:16:11 -04:00
bresch b04d61c411 ekf2: param migration for rng aid, aid mask (gps) and hgt mode 2022-08-24 09:16:11 -04:00
bresch 3fb218600a ekf2_test: add multi height source unit tests 2022-08-24 09:16:11 -04:00
bresch aba2eac0df ekf2: publish GNSS, rng and EV height biases 2022-08-24 09:16:11 -04:00
bresch 6833c7e311 ekf2: adjust ekf2 aid parameters in configs 2022-08-24 09:16:11 -04:00
bresch 8962cf2d25 ekf2: GPS, baro and range finder control parameters
Also remove the legacy "range aid" than can be achieved by setting the
height reference to range finder and the range finder control parameter
to "conditional".

Conditional range aiding cal also be set when the height reference isn't
the range finder. This prevents the ratchetting effect due to switching
between references.
2022-08-24 09:16:11 -04:00
bresch 578e1339ca ekf2: re-implement range aid
range aid simply forces the range finder to be the height reference when
starting
2022-08-24 09:16:11 -04:00
bresch 88ac5ea210 ekf2_test: add test case for accel clipping handling 2022-08-24 09:16:11 -04:00
bresch 375753eba8 ekf2_test: add inertial nav falling detection tests 2022-08-24 09:16:11 -04:00
bresch 66ce1a002b ekf2_test: rename VisionHeight -> ExternalVisionHeight 2022-08-24 09:16:11 -04:00
bresch 82ec7a495a ekf2: refactor inertial nav falling check 2022-08-24 09:16:11 -04:00
bresch f9188b2a14 ekf2: refactor vertical acceleration check for multiple height sources 2022-08-24 09:16:11 -04:00
bresch 8fd79688c0 ekf2: enable multiple height sources fusion
Instead of having a single height source fused into the EKF and the
other ones "waiting" for a failure or the primary sensor, fuse all
sources in EKF2 at the same time. To prevent the sources from fighting against each
other, the "primary" source is set as reference and the other ones are
running a bias estimator in order to make all the secondary height
sources converge to the primary one.

If the reference isn't available, another one is automatically selected
from a priority list. This secondary reference keeps its current bias
estimate but stops updating it in order to be the new reference as close
as possible to the primary one.
2022-08-24 09:16:11 -04:00
bresch f5f31006a0 Ekf2: create HeightBiasEstimator class
Contains some logic common to all height bias estimators
2022-08-24 09:16:11 -04:00
JacobCrabill 57125a4c8f cyphal: Fix FMUv5 config; throw error if no CAN driver exists 2022-08-23 21:24:24 -04:00
huiyulhy c81efd0174 Fix velocity smoothing functional test 2022-08-23 21:11:35 -04:00
Beat Küng 7b810bb776 boards: update px4 io binary 2022-08-23 21:07:18 -04:00
Beat Küng b260df711c Makefile: force serial build for px4io_update 2022-08-23 21:07:18 -04:00
Beat Küng bae275898b rc/sbus: restart parser after sucessful decoding & increase time limit
Instead of directly passing the next packet to the parser after successful
parsing, switch the state to SBUS2_DECODE_STATE_SBUS_START and search for
the start byte again.

The timeout is increased as the IO main loop also takes a bit of time
(max ~0.7ms).

Tested on v5x with Futaba R7008SB (60Hz update rate) and FrSky X8R (111Hz
update rate).

Background:
When using the Futaba R7008SB, I noticed there's additional bytes added in
between packets. Often it's a null byte, but sometimes more. There's some
consistency but I did not find any documentation for it.
Sample data:
a8 fd 07 16 5b 81 05 d4 a0 06 20 00 01 08 40 00 02 10 80 00 34 00 0f 05 ec
1f a8 fd 07 16 5b 81 05 d4 a0 06 20 00 01 08 40 00 02 10 80 00 04 00 c0 8b
00 0f 04 ec 1f a8 fb 07 16 5b 81 05 d4 a0 06 20 00 01 08 40 00 02 10 80 00
14 00 0f 04 ec 1f a8 fb 07 16 5b 81 05 d4 a0 06 20 00 01 08 40 00 02 10 80
00 24 00 0f 05 ec 1f a8 fd 07 16 5b 81 05 d4 a0 06 20 00 01 08 40 00 02 10
80 00 34 00 0f 05 ec 1f 30 60 bf 1c bd 07 16 5b 81 05 d4 a0 06 20 00 01 08
40 00 02 10 80 00 34 00 0f 07 ec 1f a8 fd 07 16 5b 81 05 d4 a0 06 20 00 01
08 40 00 02 10 80 00 04 00 03 c0 31 00 0f 05 fc 1f a8 fb 07 16 5b 81 05 d4
a0 06 20 00 01 08 40 00 02 10 80 00 14 00 0f 05 fc 1f a8 fb 07 16 5b 81 05
d4 a0 06 20 00 01 08 40 00 02 10 80 00 24 00 0f 04 ec 1f a8 fd 07 16 5b 81
05 d4 a0 06 20 00 01 08 40 00 02 10 80 00 34 00 0f 04 ec 1f a8 fd 07 16 5b
81 05 d4 a0 06 20 00 01 08 40 00 02 10 80 00 04 00 03 c4 00 00 0f 04 ec 1f
a8 fd 07 16 5b 81 05 d4 a0 06 20 00 01 08 40 00 02 10 80 00 14 00 0f 04 ec
1f a8 fd 07 16 5b 81 05 d4 a0 06 20 00 01 08 40 00 02 10 80 00 24 00 0f 04
ec 1f a8 fd 07 16 5b 81 05 d4 a0 06 20 00 01 08 40 00 02 10 80 00 34 00 0f
05 ec 1f a8 fd 07 16 5b 81 05 d4 a0 06 20 00 01 08 40 00 02 10 80 00 04 00
03 c0 31 00 0f 05 ec 1f a8 fd 07 16 5b 81 05 d4 a0 06 20 00 01 08 40 00 02
10 80 00 14 00 0f 05 fc 1f a8 fd 07 16 5b 81 05 d4 a0 06 20 00 01 08 40 00
02 10 80 00 24 00 0f 05 fc 1f a8 fd 07 16 5b 81 05 d4 a0 06 20 00 01 08 40
00 02 10 80 00 34 00 0f 05 ec 1f a8 fd 07 16 5b 81 05 d4 a0 06 20 00 01 08
40 00 0f 05 ec 1f a8 fd 07 16 5b 81 05 d4 a0 06 20 00 01 08 40 00 02 10 80
00 04 00 03 c0 31 00 0f 05 ec 1f a8 fd 07 16 5b 81 05 d4 a0 06 20 00 01 08
40 00 02 10 80 00 14 00 0f 05 ec 1f a8 fd 07 16 5b 81 05 d4 a0 06 20 00 01
08 40 00 02 10 80 00 24 00 0f 05 ec 1f a8 fd 07 16 5b 81 05 d4 a0 06 20 00
01 08 40 00 02 10 80 00 34 00 0f 05 f4 1f a8 fb 07 16 5b 81 05 d4 a0 06 20
00 01 08 40 00 02 10 80 00 04 00 03 c4 00 00 b0 60 7f 1c bd 07 16 5b 81 05
d4 a0 06 20 00 01 08 40 00 02 10 80 00 14 00 0f 05 ec 1f a8 fd 07 16 5b 81
05 d4 a0 06 20 00 01 08 40 00 02 10 80 00 24 00 0f 05 ec 1f a8 fd 07 16 5b
81 05 d4 a0 06 20 00 01 08 40 00 02 10 80 00 34 00 0f 05 ec 1f a8 fb 07 16
5b 81 05 d4 a0 06 20 00 01 08 40 00 02 10 80 00 04 00 03 c0 31 00 b0 60 bf
1c bd 07 16 5b 81 05 d4 a0 06 20 00 01 08 40 00 02 10 80 00 14 00 0f 04 f4
1f a8 fd 07 16 5b 81 05 d4 a0 06 20 00 01 08 40 00 02 10 80 00 24 00 30 70
7f 1c bd 07 16 5b 81 05 d4 a0 06 20 00 01 08 40 00 02 10 80 00 34 00 0f 05
f4 1f a8 fd 07 16 5b 81 05 d4 a0 06 20 00 01 08 40 00 02 10 80 00 04 00 03
c4 00 00 0f 05 fc 1f a8 fd 07 16 5b 81 05 d4 a0 06 20 00 01 08 40 00 02 10
80 00 14 00 0f 05 ec 1f b0 60 bf 1c bd 07 16 5b 81 05 d4 a0 06 20 00 01 08
40 00 02 10 80 00 14 00 0f 05 ec 1f a8 fd 07 16 5b 81 05 d4 a0 06 20 00 01
08 40 00 02 10 80 00 24 00 0f 05 ec 1f a8 fd 07 16 5b 81 05 d4 a0 06 20 00

This was causing the parser to skip entire packets resulting in an update
rate of ~31Hz on the FMU side.
With this patch the update rate increases to 42-48Hz.

The investigation was triggered by an RC glitch with a packet containing
random channel data. It's likely, although not completely verified that
the frequent desync randomly happend to pass the CRC check with garbage
data.
2022-08-23 21:07:18 -04:00
Daniel Agar b58f70726f ekf2: scale delta angle and delta velocity bias to particular IMU sample 2022-08-23 21:06:13 -04:00
Ville Juven 213d5dac2a platforms/nuttx: Fix hard coded path for karch library
Use CONFIG_ARCH instead of arm
2022-08-23 21:05:41 -04:00
Ville Juven 4f6d523c95 mixer_module: Fix linking of mixer_module
The module has a hard dependency on mixer library, so link them together
2022-08-23 21:04:58 -04:00
bresch f89044cfbe ekf2: fix replay EKF2 start when CONSTRAINED_FLASH 2022-08-23 11:14:15 -04:00
modaltb 40149ecabc boards: modalai_fc-v2 configure SPI6, disable unused SPI3/4 (#20093) 2022-08-22 20:58:44 -04:00
alexklimaj 913bae9924 Revert "drivers/uavcan: update libuavcan"
This reverts commit deb938fcea.
2022-08-22 20:57:06 -04:00
Daniel Agar cfc579542e new Ignition Gazebo simulation interface architecture (#20057)
- much simpler direct interface using Ignition Transport 
 - in tree models and worlds
 - control allocation output configuration, no more magic actuator mapping to mavlink and back
 - currently requires no custom Gazebo plugins (keeping things as lightweight and simple as possible)

Co-authored-by: Jaeyoung-Lim <jalim@ethz.ch>
2022-08-22 10:58:19 -04:00
Silvan Fuhrer 889a2fddea FW Position Control: remove unnsed params
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2022-08-19 19:06:07 +02:00
Silvan Fuhrer e3e021a1c2 FW Attitude Control: rename att_control to angular_acceleration_setpoint
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2022-08-19 09:40:48 +02:00
Silvan Fuhrer e595952ed4 FW Attitude Control: add @brief, @param and @return for control_attitude()
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2022-08-19 09:40:48 +02:00
Silvan Fuhrer f67d80460f FW Attitude controller: update copyright headers
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2022-08-19 09:40:48 +02:00
Jaeyoung Lim bcdf61b65f Fix format 2022-08-19 09:40:48 +02:00
Silvan Fuhrer b87afb138c Update src/modules/fw_att_control/FixedwingAttitudeControl.cpp
reduce code duplication

Co-authored-by: Mathieu Bresciani <brescianimathieu@gmail.com>
2022-08-19 09:40:48 +02:00
Jaeyoung Lim 70134296ed Fix parameter description from review comments
This commit makes the parameter description of the fixewing attitude controller more descriptive
2022-08-19 09:40:48 +02:00
Silvan Fuhrer 70d7070307 ROMFS: plane airframe: make tuning tighter
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2022-08-19 09:40:48 +02:00
Silvan Fuhrer c54f62e17a FW attitude control: fix ff terms and constrain outputs to (-1, 1)
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2022-08-19 09:40:48 +02:00
Silvan Fuhrer dadd4f39ad FW attitude control: fix yaw rate publishing
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2022-08-19 09:40:48 +02:00
Silvan Fuhrer 6724e4af26 FW attitude control: manual stick input sets yaw rate setpoint, not rudder directly
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2022-08-19 09:40:48 +02:00
Silvan Fuhrer 22067a1128 FW attitude control: set FF gains for rate controller to 0 as FF controls is handles outside
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2022-08-19 09:40:48 +02:00
Silvan Fuhrer 57e052d02d FW attitdue controller: use allocator status for anti-windup
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2022-08-19 09:40:48 +02:00
Silvan Fuhrer 6aab44e425 ControlAllocator: publish allocator_status from all active matrices (2 for VTOL, otherwise 1)
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2022-08-19 09:40:48 +02:00
Silvan Fuhrer a9b848cae3 FW attitue controller: fix publishing of rate controller status
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2022-08-19 09:40:48 +02:00
Silvan Fuhrer 5a2127d026 fixed-wing: update rate controller integrator handling
-always reset roll/pitch/yaw integrators at the same time
-reset them while waiting for launch or during FW Takeoff before Climbout
-reset wheel rate integrator only when disarmed

Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2022-08-19 09:40:48 +02:00
Silvan Fuhrer cd080289c6 FW attitude controller: constrain rates correctly
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2022-08-19 09:40:48 +02:00
Silvan Fuhrer 15c95a7b6a FW attitude controller: improve readability and fix euler rate sp vs. body rate sp
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2022-08-19 09:40:48 +02:00
Silvan Fuhrer e0a998e6ad FW attitude controller: remove unused control_input.scaler
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2022-08-19 09:40:48 +02:00
Jaeyoung Lim 33d068cfb2 Added feedforward terms in fw att control 2022-08-19 09:40:48 +02:00
Jaeyoung Lim 958c61dbba Populate rate control setpoints properly 2022-08-19 09:40:48 +02:00
JaeyoungLim 6f24f4cd1c Update src/modules/fw_att_control/fw_att_control_params.c
Co-authored-by: Silvan Fuhrer <silvan@auterion.com>
2022-08-19 09:40:48 +02:00
Jaeyoung Lim dcff481219 Map derivative gains for rate controls 2022-08-19 09:40:48 +02:00
Jaeyoung-Lim f2877ce585 Replace rate controller with RateControlLibrary
This commit makes the fw attitude controller take share the rate controller as a library with the mc_rate_control module
2022-08-19 09:40:48 +02:00
Thomas Debrunner 44a18acd51 Fix race condition in px4io serial driver (#20005)
* px4io: prevent memory corruption on corrput io data

* px4io_serial: Prevent race between handling wait timeout case and interrupt posting semaphore
2022-08-18 17:46:47 +02:00
bresch 02c4e0361c MCPosControl: fix horizontal anti-reset windup algirithm
Since the horizontal and vertical velocity controllers are now
decoupled, it can be that the horizontal acceleration produced by the
controller is actually greater than the desired one (by design). This
condition would actually make the ARW run "backwards", degrading the
controller performance.
2022-08-18 14:19:10 +02:00
mcsauder 87a5705960 Rename math::gradual() to math::interpolate() and add unit tests to cover additional corner cases. 2022-08-18 14:18:02 +02:00
bresch 021b23826d wind_replay: allow estimated local vel and GNSS vel sources
local vel by default, set --gnss to use GNSS vel instead
2022-08-18 14:09:23 +02:00
bresch be6acb0a68 wind_est: add python script to replay wind estimator equations 2022-08-18 14:09:23 +02:00
bresch 4d21c90cbb wind_est: generate wind estimator equations for python use 2022-08-18 14:09:23 +02:00
Kalyan Sriram deb938fcea drivers/uavcan: update libuavcan 2022-08-16 11:05:51 -04:00
Daniel Agar 1c72f86761 Update src/drivers/imu/analog_devices/adis16470/ADIS16470.cpp
Co-authored-by: Kabir Mohammed  <kabir@corvus-robotics.com>
2022-08-16 08:40:43 -04:00
Daniel Agar 49d87f1907 adis16470: fix accel and gyro scaling 2022-08-16 08:40:43 -04:00
bresch 616b5689ba Python: move symforce to optional requirements
symforce requires python 3.8 which isn't available by default on ubuntu
18.04.
2022-08-15 21:14:07 -04:00
Silvan Fuhrer a7a8daaf4d ROMFS: tiltrotor sitl config: some small tuning improvements in hover
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2022-08-16 02:48:44 +02:00
Silvan Fuhrer 771dbf9395 ROMFS: tiltrotor sitl config: adapt CA params to new output indexes
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2022-08-16 02:48:44 +02:00
Silvan Fuhrer 09f83016c9 update sitl_gazebo (tiltrotor index fixes)
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2022-08-16 02:48:44 +02:00
Junwoo Hwang d7a962b426 mavlink: fix PX4_DEBUG message formats 2022-08-12 09:43:12 +02:00
Junwoo Hwang 0c218e6628 atl/mantis-edu: enable mavlink ftp 2022-08-12 09:43:12 +02:00
Silvan Fuhrer ffb8fb4383 Allocation: add SteeringWheel type control surface
Directly use yaw controls for it, and don't add it to the allocation matrix,
as that would have an effect on rudder scaling if the wheel also would have
a yaw effectiveness.

Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2022-08-12 09:43:12 +02:00
Silvan Fuhrer 9e18b351bc Allocation: add Single Channel Aileron to CS types
This is the control surface type for airframes that have only a
single aileron servo or have the ailerons on a single output channel.

Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2022-08-12 09:43:12 +02:00
Silvan Fuhrer c6d1b1f50f Allocation: add A-tail servo type
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2022-08-12 09:43:12 +02:00
Beat Küng f454dcef6b ROMFS: set control allocation parameters for airframes
Removes some airframes:
- 1000_rc_fw_easystar.hil
- 10015_tbs_discovery
- 10016_3dr_iris
- 10018_tbs_endurance
- 13001_caipirinha_vtol
- 13002_firefly6
- 13003_quad_tailsitter
- 13004_quad+_tailsitter
- 13005_vtol_AAERT_quad
- 13006_vtol_standard_delta
- 13007_vtol_AAVVT_quad
- 13008_QuadRanger
- 13009_vtol_spt_ranger
- 13012_convergence
- 13050_generic_vtol_octo
- 14001_tri_y_yaw+
- 14002_tri_y_yaw-
- 15001_coax_heli
- 2105_maja
- 2200_mini_talon
- 3031_phantom
- 3032_skywalker_x5
- 3033_wingwing
- 3036_pigeon
- 3100_tbs_caipirinha
- 4003_qavr5
- 4009_qav250
- 4019_x500_v2
- 4030_3dr_solo
- 4031_3dr_quad
- 4051_s250aq
- 4072_draco
- 4080_zmr250
- 4090_nanomind
- 4100_tiltquadrotor
- 50003_aion_robotics_r1_rover
2022-08-12 09:43:12 +02:00
Beat Küng 4d60fadc05 ROMFS: set control allocation parameters for sitl airframes
Removes some airframes:
- if750a
- solo
- iris_ctrlalloc
- typhoon_h480_ctrlalloc
2022-08-12 09:43:12 +02:00
Beat Küng f2db7b8deb control_allocator: hide motor positions for fixed-wings
should not be set for now
2022-08-12 09:43:12 +02:00
Beat Küng 923a90d78b control_allocator: set default control surface type to (not set)
Before it was set to left aileron, but the torque values were all 0.
2022-08-12 09:43:12 +02:00
Beat Küng 720cf5a485 config: enable dynamic control allocation by default (SYS_CTRL_ALLOC=1) 2022-08-12 09:43:12 +02:00
Oleg 6ea3c6a7d2 mavlink_ftp: fix to correctly trim reply messages
Clear any not used payload data to correctly trim mavlink ftp message reply to avoid sending long ACK and NACK messages.
2022-08-12 08:53:33 +02:00
David Sidrane cd971948da NuttX Backport critical F7 Ethernet issues 2022-08-12 08:22:55 +02:00
Matthias Grob 1f81101994 mc_att_control_main: do not jump throttle scaling when taking off
2fbb70d9ca made the lowest possible
throttle value commanded by stick in Stabilized mode before taking off 0.
The real world problem with this is that when takeoff is detected then
the entire throttle scaling range jumps from
[0, MPC_MANTHR_MIN]
to [MPC_MANTHR_MIN, MPC_MANTHR_MIN].
As a result whenever MPC_MANTHR_MIN is not zero there is a thrust jump
on every takeoff just at the moment takeoff is detected even when the
stick is moved continuously.

Because of this I suggest to revert to having a higher throttle value
from the beginning on because it's less complicated and there's
no obvious value in starting out with zero thrust if anyways not
possible to go back to zero for safety once takeoff is detected.
2022-08-11 14:18:54 +02:00
Matthias Grob 5b1b6f6080 mc_att_control_main: use gradual() for throttle curve rescale without hover thrust 2022-08-11 14:18:54 +02:00
Matthias Grob 7cb6a47714 TIME_ESTIMATE_TO_TARGET: fill unsupported fields with value representing unavailability 2022-08-11 07:27:04 +02:00
bresch 7996a1a70f ekf2: reset ekf preflight checks on takeoff correctly
Using the control status flags isn't robust as this part of the code
runs at the EKF update rate while the in_air transition is don at the
prediction rate. It was then likely to miss the transition
2022-08-10 16:52:28 +02:00
marcirsch a8b342722e mavlink_main: Add TIME_ESTIMATE_TO_TARGET stream to config, onboard, and onboard_low_bandwidth modes
Signed-off-by: marcirsch <marcell@auterion.com>
2022-08-10 09:13:58 +02:00
marcirsch 4bf6ebf4c3 TIME_ESTIMATE_TO_TARGET: Populate TIME_ESTIMATE_TO_TARGET MAVLink message with the estimated time to RTL
mavlink_messages: Added newly created MAVLink stream
mavlink_main: Enabled stream

Signed-off-by: marcirsch <marcell@auterion.com>
2022-08-10 09:13:58 +02:00
Daniel Agar 7f2fea1cca mpu9250: try all I2C addresses if not manually specified 2022-08-09 13:06:40 -04:00
Jaeyoung Lim d4b77a6172 Update sitl gazebo submodule 2022-08-09 16:35:27 +02:00
Jaeyoung Lim ea5b1be2d4 Disable rear motors tilt for tiltrotor SITL airframe
This commit disables the rear motor tilt on the tiltrotor SITL airframe
2022-08-09 16:35:27 +02:00
Jukka Laitinen c7aaf52fd4 Double the allocated stack size of 64-bit NuttX built-in modules
Signed-off-by: Jukka Laitinen <jukkax@ssrc.tii.ae>
2022-08-09 08:08:54 +02:00
Daniel Agar 7c809f034d replay: ReplayEkf2 disable parameter auto save
- not needed and silences a startup error
2022-08-08 21:27:47 -04:00
Daniel Agar 34dee09b74 ekf2: replay fixes, don't use HRT for timeout checks
- this interferes with current ekf2 replay where the latest IMU sample
is effectively the current timestamp
2022-08-08 21:27:47 -04:00
Daniel Agar 1c49a4349f ekf2: force skip multi-EKF config if replay is enabled 2022-08-08 21:27:47 -04:00
Daniel Agar 66b55d9d0a ekf2: fix yaw estimator velocity accuracy
- additionally require GPS speed accuracy is within EKF2_REQ_SACC
2022-08-08 21:27:01 -04:00
bresch d9d127a237 lightware dist sensor: set min range based on datasheet 2022-08-08 19:32:44 -04:00
Daniel Agar 0bce1ef573 drivers/imu: new TDK IIM-42652 IMU support 2022-08-08 13:51:39 -04:00
Thomas Stastny 0ea347a5c9 fw pos ctrl: fix the touchdown offset on flare, and nudge the wheel directly 2022-08-08 09:32:44 +02:00
Thomas Stastny 02d7a46025 fw pos ctrl: increase landing nudge rate 2022-08-08 09:32:44 +02:00
Beat Küng 3e68870547 gtest: update to version 1.12.1
Fixes the error
googletest-src/googletest/src/gtest-death-test.cc:1283:24: error: ‘dummy’ may be used uninitialized [-Werror=maybe-uninitialized]
with GCC 11
2022-08-08 07:43:42 +02:00
Daniel Agar bce4237963 move ekf2 Matrix helper utilities to mathlib 2022-08-05 09:58:07 -04:00
Silvan Fuhrer 6ebc88fed7 ROMFS: vtol_defaults: reduce aggressiveness around roll and yaw axis
For most VTOLs the param defaults for the agressiveness of the MC attitude controller
are too high, as VTOLs usually have high intertia and lot af drag due to wings and
can thus not rotate as fast as MCs.

Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2022-08-05 14:11:59 +02:00
Silvan Fuhrer a064164c14 FW pos C params: add param group FW Auto Landing
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2022-08-05 14:11:59 +02:00
Silvan Fuhrer b039ae1614 FW pos c params: change grouping of some clearly longitudinal params to TECS
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2022-08-05 14:11:59 +02:00
Silvan Fuhrer 45073f000a FW Position control: reduce defaults for max pitch
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2022-08-05 14:11:59 +02:00
Silvan Fuhrer d04f21aa16 FW attitude controller: reduce FW_MAN_P_MAX from 45 to 30
45° is a very large pitch angle, and for me 30° is much more reasonable for
a default value.

Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2022-08-05 14:11:59 +02:00
Silvan Fuhrer 828992adf7 increase default of MPC_Z_VEL_MAX_DN and MPC_Z_V_AUTO_DN from 1 to 1.5
I think most vehicle can safely decend with at least 1.5m/s, and having this
value too low makes Descents/Landings/RTLs unnecessary long.

Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2022-08-05 14:11:59 +02:00
Silvan Fuhrer c42667ac64 ROMFS: vtol_defaults: remvoe custom NAV_ACC_RAD, leave at param default (10)
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2022-08-05 14:11:59 +02:00
Silvan Fuhrer 4614c1a0b4 ROMFS: vtol_defaults: increase default hover speeds
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2022-08-05 14:11:59 +02:00
Silvan Fuhrer 0d10491b89 ROMFS: vtol_defaults: remove MPC_TKO_SPEED from VTOL defaults
The VTOL default was set to 1, while the param default is 1.5.
I don't see why it shuold be a different default for VTOLs and thus remove it.

Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2022-08-05 14:11:59 +02:00
Matthias Grob 87cbda1992 FlightTaskOrbit: parameterize hardcoded maximum radius (#20012) 2022-08-05 09:19:32 +02:00
Daniel Agar dfdfbbfa9c msg/vehicle_odometry.msg: simplify covariance handling and update all usage (#19966)
- replace float32[21] URT covariances with smaller dedicated position/velocity/orientation variances (the crossterms are unused, awkward, and relatively costly)
 - these are easier to casually inspect and more representative of what's actually being used currently and reduces the size of vehicle_odometry_s quite a bit
 - ekf2: add new helper to get roll/pitch/yaw covariances
 - mavlink: receiver ODOMETRY handle more frame types for both pose (MAV_FRAME_LOCAL_NED, MAV_FRAME_LOCAL_ENU, MAV_FRAME_LOCAL_FRD, MAV_FRAME_LOCAL_FLU) and velocity (MAV_FRAME_LOCAL_NED, MAV_FRAME_LOCAL_ENU, MAV_FRAME_LOCAL_FRD, MAV_FRAME_LOCAL_FLU, MAV_FRAME_BODY_FRD)
 - mavlink: delete unused ATT_POS_MOCAP stream (this is just a passthrough)

Co-authored-by: Mathieu Bresciani <brescianimathieu@gmail.com>
2022-08-04 12:55:21 -04:00
bresch 61f390b0dd ekf2_test: fix height offset compensation after origin reset 2022-08-04 16:50:31 +02:00
bresch e34de53e2e ekf2_test: let the GPS start before setting the new origin
fix test by reducing the distance to the new origin: the maximum size of
the local position origin is a cube of 1e6m. If the origin is moved
further than this, the state is clipped to that maximum value
2022-08-04 16:50:31 +02:00
Silvan Fuhrer 55f395a7e9 FlightTaskAuto: apply cruise speed from position triplet also when negative (#20006)
Navigator sets the cruise_speed to -1 if the controller shouldn't listen to
it and instead use the default speed (for MC: MPC_XY_CRUISE). This is for
example for RTL the case, where we want to return at the default speed,
independetly of what the mission speed before was.

Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2022-08-04 13:36:15 +02:00
FARHANG 2498cbbb74 boards: px4_fmu-v6c rc.board_defaults remove irrelevant ethernet configuration 2022-08-03 11:13:12 -04:00
Tony Cake f321117568 GHST: Add support for GPS Telemetry (#19953)
Add support for the basic GPS telemetry values when using the GHST protocol.

* Fix formatting in GHST GPS telemetry changes

* GHST GPS Telemetry formatting cleanup

* GHST GPS Telemetry, Last formatting change
2022-08-03 10:44:21 +02:00
Hamish Willee 270c456121 CI - build on main as well (#20001) 2022-08-02 16:52:17 -07:00
Roman Bapst dbf7d32e07 Skip VTOL_TAKEOFF mission item when in fixed wing mode (#19985)
* mission: skip VTOL_TAKEOFF mission item when in fixed wing mode

Signed-off-by: RomanBapst <bapstroman@gmail.com>

* mission: added better comment regarding skipping VTOL Takeoff in fw mode

Signed-off-by: RomanBapst <bapstroman@gmail.com>
2022-08-02 15:34:42 +02:00
RomanBapst f11f2e9797 addressed review comments
Signed-off-by: RomanBapst <bapstroman@gmail.com>
2022-08-02 15:29:25 +02:00
RomanBapst a425bc4c92 vehicle_local_position: fixed comment
Signed-off-by: RomanBapst <bapstroman@gmail.com>
2022-08-02 15:29:25 +02:00
RomanBapst fbd4534edc WindEstimator: reworked filter initialisation
- separate initialisation with and without airspeed

Signed-off-by: RomanBapst <bapstroman@gmail.com>
2022-08-02 15:29:25 +02:00
RomanBapst a63f1b71fe wind_estimator: added simple check for validity of synthetic airspeed
- synthetic airspeed will only be declared valid as soon as the wind variance
has dropped below a parameterized threshold. This is useful for vehicles without
an airspeed sensor which rely on synthetic airspeed but only once the vehicle
has turned sufficiently for the wind estimates to be reliable.

Signed-off-by: RomanBapst <bapstroman@gmail.com>
2022-08-02 15:29:25 +02:00
Hamish Willee a715b5468e mc_wind_estimator - improve readability (#19545) 2022-08-02 09:26:06 +02:00
Hamish Willee 30e2490d5b Docs are now in user guide and main (#19977)
* Fix links to docs in source to point to docs on main not master

* More docs and scripts that need to point to main
2022-08-01 11:39:39 +10:00
Peter van der Perk c566fb414b S32K1XX add dummy iwdg driver 2022-07-31 11:21:41 -04:00
Beat Küng e7588d2da0 px4io+pwm_out: set the PWM rate and disarmed value when a channel is first set to a servo
This should simplify the first setup a bit.
2022-07-31 11:20:57 -04:00
Igor Mišić f929017618 boards: link missing arch_io_pins lib 2022-07-31 11:19:20 -04:00
Daniel Agar 41d9c3dd2a ekf2: add AUX velocity aid src status
- also includes velocity and position helpers for using estimator aid
   source status messages that will later be used for GPS, EV, etc
2022-07-29 12:02:31 -04:00
Daniel Agar a397c09e59 ekf2: use estimator_aid_src for all yaw sources (mag, gnss, ev) 2022-07-29 11:20:48 -04:00
Agata Barcis d5d88cba5b generate_microRTPS_bridge.py updated to support ROS2 humble
Signed-off-by: Agata Barcis <agata.barcis@tii.ae>
2022-07-29 15:21:05 +02:00
Silvan Fuhrer 638eff426a AirspeedValidator: increase max update step size of tas_scale_validated from 1% to 5%
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2022-07-29 09:29:27 +02:00
Beniamino Pozzan a20483ed11 msg/position_controller_landing_status.msg: fix constant name conventions
- msg constant names now comply with ROS conventions:
uppercase alphanumeric characters with underscores for separating words

partially fix #19917

Signed-off-by: Beniamino Pozzan <beniamino.pozzan@phd.unipd.it>
2022-07-28 11:29:03 -04:00
Daniel Agar 9ed861e0a3 lib/mixer_module: split functions into separate headers
- this arguably improves visibility/discoverability
2022-07-28 08:08:58 +02:00
bresch f7ff0a9961 WindEstimator: add test case for airspeed fusion singularity 2022-07-27 08:19:40 -04:00
Daniel Agar 38c02ea29a wind_estimator: cmake add symforce generation helper target (wind_estimator_generate_airspeed_fusion) 2022-07-27 08:19:40 -04:00
bresch 26190a7799 WindEstimator: use SymForce auto-generated function for airspeed fusion 2022-07-27 08:19:40 -04:00
Hamish Willee e6eed43648 Spelling errors (#19935) 2022-07-27 14:33:16 +10:00
RomanBapst 97f632a408 vtol_takeoff: reset reposition triplet before handing over to loiter mode
Signed-off-by: RomanBapst <bapstroman@gmail.com>
2022-07-25 14:48:18 +02:00
Igor Mišić d6488fafc3 serial_test: fix first write_count_value for next write 2022-07-25 11:48:36 +02:00
Igor Mišić 32ca7ad706 serial_test: fix write for max buffer size 2022-07-25 11:48:36 +02:00
Taylor Nelms 21cb0ef50f Component: flash parameter storage on stm32h7. Fixes #15331.
As per the discussion in #15331, fixed issue where stm32h7 chips
    use hardware ECC bits in program memory that disallow overwriting
    32-byte flash line that has already been written. As such,
    this change allows for a variant implementation of the flashfs system
    that uses more space in the flash entry header in order to
    allow an entire line to be reserved for erasing an entry.

Signed-off-by: Taylor Nelms <tnelms@roboticresearch.com>
2022-07-25 08:19:00 +02:00
Thomas Stastny 6a0f394d46 rtl: reset rtl state only on activation
rtl state was getting reset on inactive, which meant that the state which triggered resuming e.g. mission landing would be overwritten, and the navigator mode would switch back and forth between rtl and mission. this commit:
1. moves the reset of rtl state to the on activation function (removing it from the on inactive function)
2. functionalizes the rtl state input to the rtl time estimator so that rtl time can still be calculated from state=none while inactive
2022-07-22 14:59:20 +02:00
Thomas Stastny e512d77b89 RTL: expose RTL state 2022-07-22 14:59:20 +02:00
Silvan Fuhrer 85a621303d VtolLandDetector: remove airspeed check
This commit removes the additional airspeed check (airspeed for VTOLs in
hover below LNDFW_AIRSPD_MAX), as it is not a required condition in the
landed state (headwind blowing into the airspeed sensor won't stop
once on the gruond). In FW mode the check would make more sense, but there
the land detector is currently simply disabled.

Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2022-07-22 08:31:32 +02:00
Daniel Agar 32c6ec061e sensors: add kconfig options to skip angular velocity and acceleration 2022-07-21 11:27:09 -04:00
Silvan Fuhrer c9c62b860c ROMFS: add generic tiltrotor VTOL (13200)
Add geometry for a quad tiltrotor VTOL, with only front motors tiltable,
two ailerons and a V-tail.

Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2022-07-21 10:09:12 -04:00
Silvan Fuhrer 3ffc37d988 ROMFS: generic tailsitter VTOL: enable CA by default and remove legacy mixer
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2022-07-21 10:09:12 -04:00
Silvan Fuhrer ab58717313 ROMFS: standard VTOL: enable CA by default and remove legacy mixer
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2022-07-21 10:09:12 -04:00
Silvan Fuhrer 607c53e873 ROMFS: flying wing: enable CA by default and remove legacy mixer
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2022-07-21 10:09:12 -04:00
Silvan Fuhrer 4dabc8b7ed ROMFS: standard plane: enable CA by default and remove legacy mixer
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2022-07-21 10:09:12 -04:00
Daniel Agar 70e95812e7 ekf2: reset mag_lpf (by zeroing _mag_counter) when resetting mag bias (or changing mags)
- so that there's new filtered data avaiable for reset
2022-07-21 09:24:28 -04:00
Daniel Agar ecdade3638 ekf2: mag in air reset fall back to regular resetMagHeading() if realignYawGPS() fails 2022-07-21 09:24:28 -04:00
Daniel Agar 05133aed27 ekf2: clear test ratios, flags, etc when stopping mag fusion 2022-07-21 09:24:28 -04:00
Daniel Agar 65a587e56a ekf2: mag fusion don't update all states if mag_fault or mag_field_disturbed 2022-07-21 09:24:28 -04:00
Daniel Agar a41a0e7e80 ekf2: resetMagHeading() split out simple init case 2022-07-21 09:24:28 -04:00
Daniel Agar 9efadad06a ekf2: move checkMagFieldStrength() to magFieldStrengthDisturbed() const method 2022-07-21 09:24:28 -04:00
Daniel Agar a7f573e150 ekf2: delete isStrongMagneticDisturbance() 2022-07-21 09:24:28 -04:00
Daniel Agar e6e27e694e ekf2: delete isYawResetAuthorized() 2022-07-21 09:24:28 -04:00
Daniel Agar 0f1f6daa1a ekf2: delete isMagBiasObservable() 2022-07-21 09:24:28 -04:00
Daniel Agar d160229f47 ekf2: delete isYawAngleObservable() 2022-07-21 09:24:28 -04:00
Daniel Agar b0c979f745 ekf2: add copyright header to EKFGSF_yaw and utils 2022-07-21 09:24:28 -04:00
Daniel Agar 4fee059696 ekf2: simplify mag yaw reset request when transitioning to mag enabled 2022-07-21 09:24:28 -04:00
Daniel Agar f254b55523 ekf2: add mag fusion timestamps 2022-07-21 09:24:28 -04:00
Jukka Laitinen e3e067d640 stub_keystore: Allow using also with other that SW_CRYPTO driver
Remove "depends on DRIVERS_SW_CRYPTO"

Signed-off-by: Jukka Laitinen <jukkax@ssrc.tii.ae>
2022-07-21 08:08:14 +02:00
Jukka Laitinen 026bd073b5 Don't error on CONFIG_CRYPTO_RANDOM_POOL not defined
px4_secure_random can be implemented also outside NuttX for some platform

Signed-off-by: Jukka Laitinen <jukkax@ssrc.tii.ae>
2022-07-21 08:08:14 +02:00
Thomas Stastny d6fb1114ff rtl: fix printout of rtl delay time 2022-07-20 14:15:12 +02:00
Thomas Stastny 1ec62c4063 rtl: let fixed-wing RTL all the way to the loiter/delay state
also fix home vs destination alt discrepancy on RTL
2022-07-20 14:15:12 +02:00
Daniel Agar 2f3cb97872 sensors/vehicle_magnetometer: don't advertise vehicle_magnetometer instance if mag has been disable
- if using multi-EKF across all magnetometers then an instance of
vehicle_magnetometer is advertised immediately for every sensor_mag
instance
 - this can become problematic if EKF2 multi-mag is enabled, but with
only 1 IMU (EKF2_MULTI_MAG) because you will be stuck with no magnetometer data
2022-07-20 01:18:19 -04:00
Daniel Agar e5be0e776e ekf2: if multi-mag disabled (EKF2_MULTI_MAG <= 1) properly re-enable sensors hub selection (SENS_MAG_MODE)
- this prevents potential misconfiguration if trying to disable ekf2 multi mag
2022-07-20 01:16:55 -04:00
Daniel Agar 8ccd8fbed1 px4io: minimal backup scheduling regardless of dynamic mixing
- even if there's no configured output we still need to run to grab RC
data
2022-07-20 01:15:36 -04:00
Daniel Agar 8f8615e6c2 delete CBRK_RATE_CTRL 2022-07-20 01:14:53 -04:00
Beat Küng 67107f4978 .clang-tidy: exclude some warnings
Some are too verbose, others don't apply to the code base
2022-07-20 01:14:04 -04:00
Beat Küng 84b0a889a4 cmake: add clion support 2022-07-20 01:14:04 -04:00
Beat Küng f22dc80ecc system: add missing includes (added indirectly via visibility.h for normal builds) 2022-07-20 01:14:04 -04:00
Beat Küng ea136e73be ekf2: remove unused variables 2022-07-20 01:14:04 -04:00
Thomas Schneider cd66a262ee Robustify RTPS bridge stream parsing. 2022-07-20 01:13:47 -04:00
Peter van der Perk 089fbdccc9 UAVCANNODE NuttX SocketCAN driver
Change init mode for CAN driver so it get executed in a single context
2022-07-20 01:12:43 -04:00
Peter van der Perk 47aaa38d5f Added DroneCAN SocketCAN driver Skeleton 2022-07-20 01:12:43 -04:00
Daniel Agar 14df1ee917 boards: px4_fmu-v5x_rtps disable systemcmds/gpio to save flash 2022-07-20 01:05:28 -04:00
Daniel Agar 2ece92abd0 sagetech_mxs: module.yaml remove invalid default 2022-07-20 01:00:15 -04:00
Daniel Agar ace80e2b9d fw_att_control: add simple backup scheduling if vehicle_attitude unavailable (or stops) 2022-07-20 00:53:37 -04:00
jasta 1603883dc9 Configure SCALED_PRESSURE so temperature data is available to QGroundControl 2022-07-20 00:49:11 -04:00
jasta a110032dc0 Fix typo in SCALED_PRESSURE*_HPP defines
This was preventing SCALED_PRESSURE* from being added to the list of
streams, so even if it was configured it still wouldn't work.
2022-07-20 00:49:11 -04:00
Thomas Stastny 413ce8a3c4 fw pos ctrl: absorb fw_lnd_rel_ter into fw_lnd_useter parameter 2022-07-19 22:37:09 -04:00
Thomas Stastny de3ac12ecd fw pos ctrl params: clarify landing parameters, change defaults
FW_LND_USETER defaulted to 1 and FW_LND_ABORT terrain based bits all enabled. why? because using a distance sensor is critical to detecting when to flare, and we want to force the user to actively disable these safety settings if they so choose, so that they understand the implications.
2022-07-19 22:37:09 -04:00
Thomas Stastny 26cb55ec2c fw pos ctrl: takeoff and landing nudging enabled by default 2022-07-19 22:37:09 -04:00
Thomas Stastny 121cc1fce8 fw pos ctrl: rework landing abort status
abort boolean and reasons no longer separated, single status field with corresponding abort triggers
2022-07-19 22:37:09 -04:00
Thomas Stastny 694d36050a fw pos ctrl: update landing parameter descriptions 2022-07-19 22:37:09 -04:00
Thomas Stastny 888e72661f fw pos ctrl: add option to fix the glide slope reference altitude
- new param, FW_LND_TER_REL
- fixing the glide slope helps keep the landing glide behavior steady (avoiding bumps in the altitude setpoint from e.g. trees)
- flare is still triggered via the distance sensor, if enabled by FW_LND_USETERR
2022-07-19 22:37:09 -04:00
Thomas Stastny c60b215574 fw pos ctrl: allow negative landing glide slope relative altitude
when the vehicle did not track the slope well (e.g. at an offset above the track) and the altitude setpoint flattening on intersection with terrain, the throttle would spool up to smoothly intersect the newly flattened altitude setpoint, this could happen before the flare altitude was reached, which is bad. now the steady state glide behavior will be maintained, and flare can trigger at the appropriate time
2022-07-19 22:37:09 -04:00
Thomas Stastny 4953fdd1ab fw pos ctrl: variable min calibrated airsp in auto airspeed adjuster 2022-07-19 22:37:09 -04:00
Thomas Stastny 6612d4696d fw pos ctrl: fix glide slope calculation, from geometry, not param 2022-07-19 22:37:09 -04:00
Thomas Stastny d73b2e8625 fw pos ctrl params: update flaring param values and docs 2022-07-19 22:37:09 -04:00
Thomas Stastny 7283cd7c9d fw pos ctrl: fix virtual waypoint calculation typo 2022-07-19 22:37:09 -04:00
Thomas Stastny 8f5b274e72 fw pos ctrl: refactor terrain estimate and land abort
- improve terrain estiamte documentation
- add landing abort condition bitmasked parameter to choose abort conditions
- refactor terrain estimate getter with landing abort logic
- log abort status and inform user
- log flaring status
2022-07-19 22:37:09 -04:00
Thomas Stastny c98153e044 fw pos ctrl: enumerate landing nudging options, add to param documenation 2022-07-19 22:37:09 -04:00
Thomas Stastny 9fab914687 fw pos ctrl: use max function for landing approach entrance rel alt 2022-07-19 22:37:09 -04:00
Thomas Stastny 217efcb12d fw pos ctrl: set idle throttle in landed conditions
also set the default idle throttle to zero as most PX4 applications use electric motors
2022-07-19 22:37:09 -04:00
Thomas Stastny ceb432aacb mission feasibility checker: use param_find() to check fixed-wing land angle 2022-07-19 22:37:09 -04:00
Thomas Stastny 4b0a8565fe fw pos ctrl: lower underspeed detection bound for landing airspeed 2022-07-19 22:37:09 -04:00
Thomas Stastny 41b0a6c62c fw pos ctrl: open up desired max sink rate limits for landing slope
- the target_sink_rate param could possibly constrain the maximum commanded sink rate to something less than that of the landing glide slope, which would make it impossible to track. this commit allows opening up the desired max sink rate up to the performance limits of the aircraft, if necessary, for the landing case
2022-07-19 22:37:09 -04:00
Thomas Stastny d1aca4032d mission feasibility / fw pos ctrl: add limited landing checks back, allow glide slopes below max 2022-07-19 22:37:09 -04:00
Thomas Stastny 87e09ad9f5 fw pos ctrl: auto landing refactor
- landing slope/curve library removed
- flare curve removed (the position setpoints will not be tracked during a flare, and were being ignored by open-loop maneuvers anyway)
- flare curve replaced by simply commanding a constant glide slope to the ground from the approach entrance, and commanding a sink rate once below flaring alt
- flare is now time-to-touchdown -based to account for differing descent rates (e.g. due to wind)
- flare pitch limits and height rate commands are ramped in from the previous iteration's values at flare onset to avoid jumpy commands
- TECS controls all aspects of the auto landing airspeed and altitude/height rate, and is only constrained by pitch and throttle limits (lessening unintuitive open loop manuever overrides)
- throttle is killed on flare
- flare is the singular point of no return during landing
- lateral manual nudging of the touchdown point is configurable via parameter, allowing the operator to nudge (via remote) either the touchdown point itself (adjusting approach vector) or shifting the entire approach path to the left or right. this helps when GCS map or GNSS uncertainties set the aircraft on a slightly offset approach"
2022-07-19 22:37:09 -04:00
bresch f962399ba1 ekf2: rename BaroBiasEstimator -> BiasEstimator 2022-07-19 20:46:53 -04:00
Daniel Agar 39453405a0 ekf2: cleanup zero innovation heading fusion
- refactor updateQuaternion() to compute the yaw jacobian directly (respecting  the rotation sequence determination)
 - fuseHeading()/fuseYaw321()/fuseYaw312() helpers are eliminated and now mag heading fusion and EV yaw fusion compute the innovation in place
 - clear up logic for performing zero innovation heading fusion when quaternion variance exceeds threshold (no more _is_yaw_fusion_inhibited flag manipulation)
 - when at rest continue fusing last static heading with very low variance even if other heading sources are active
2022-07-19 11:58:27 -04:00
Roman Dvořák ed14151734 Update Flight-gear bridge, Add support of TF-G2 autogyro flight-gear model (#19122)
* Add Transfer of RPM from FG to PX4,
	-switch FG_bridge module to ThudnderFlyaerospace

* Add TF-G2 flightgear sim target

* Add simulator support, fix astyle

* Update SITL TF-G2 airframe, update fg bridge

Co-authored-by: Vit Hanousek <vithanousek@seznam.cz>
2022-07-19 09:11:44 +02:00
Daniel Agar 1a513153be ekf2: update range sample fix ekf2_timestamps
- this is necessary to use distance_sensor data in replay
2022-07-18 14:39:12 -04:00
Ramon Roche e5e74f65d7 README: Project governance and trademarks
We need to ensure the Dronecode logo is prominently displayed
and linked to the PX4 brand for trademark protection of PX4 and Dronecode.
If you have any questions about this, please feel free to reach out directly to me.
2022-07-18 11:16:55 -04:00
Silvan Fuhrer 1e0235d87b ROMFS: remove outdated RWTO_MAX_ROLL from all configs
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2022-07-18 10:49:27 -04:00
Thomas Stastny 69bc5d37bc fw pos ctrl: mark completed manual takeoff true if rotary wing and armed 2022-07-18 10:49:27 -04:00
Thomas Stastny b4e066f056 fw pos ctrl: use hardcoded buffer altitude instead of parameter for clearance altitude buffer 2022-07-18 10:49:27 -04:00
Thomas Stastny 67b0f5e07e runway takeoff params: improve descriptions 2022-07-18 10:49:27 -04:00
Thomas Stastny 81d6fdfe8c fw pos ctrl params: update defaults and bounds on wing geometry 2022-07-18 10:49:27 -04:00
Thomas Stastny 7e12f6ba5a fw pos ctrl: dont use terrain alt for takeoff 2022-07-18 10:49:27 -04:00
Thomas Stastny ec02413387 fw pos ctrl: remove vtol condition from manual takeoff completion 2022-07-18 10:49:27 -04:00
Thomas Stastny a12e40b1d8 tecs: convert tas error and soft bounds to percentage of trim airspeed 2022-07-18 10:49:27 -04:00
Thomas Stastny 1782f9cd3e tecs: zero guard ste rates and airspeed setpoint rates 2022-07-18 10:49:27 -04:00
Thomas Stastny 63e4ea23b7 vehicle_rates_setpoint: log wheel controller yaw rate on common yaw rate channel 2022-07-18 10:49:27 -04:00
Thomas Stastny c447064596 fw pos ctrl: rename position control mode variable 2022-07-18 10:49:27 -04:00
Thomas Stastny 5648deb5a1 fw pos ctrl: organize state variables 2022-07-18 10:49:27 -04:00
Thomas Stastny 2d5f1a5c6b fw pos ctrl: head straight for next waypoint after takeoff 2022-07-18 10:49:27 -04:00
Thomas Stastny 721131a135 fw pos/att ctrl: pass manual nose wheel increments during takeoff ground roll 2022-07-18 10:49:27 -04:00
Thomas Stastny fcee314646 fw att ctrl: log the yaw rate command controlled by the wheel 2022-07-18 10:49:27 -04:00
Thomas Stastny 4d3f05479d fw pos ctrl: refactor takeoff mode
- post takeoff, the aircraft follows the infinite line sourced from the launch point in the direction of the takeoff waypoint
- takeoff waypoint altitude is used as a clearance altitude, set such that once above, the aircraft has cleared all ground occlusions and may proceed with the mission
- runway takeoff state machine simplified to throttle ramp, clamped to runway, climbout, and fly
- throttle ramp must complete before switching to next state to avoid a jump in throttle setpoint just after takeoff if the takeoff airspeed is reached before the ramp is complete
- roll constraints near ground post takeoff removed from runway takeoff class (handled externally now)
- minimum airspeed in TECS is reduced to takeoff speed (if necessary) to lower the underspeed detection bound
- lateral-directional guidance uses a different period parameter during ground roll
2022-07-18 10:49:27 -04:00
Thomas Stastny 7c6ce436ca fw pos ctrl: encapsulate wing tip strike constraint for roll angle
- apply constraint only for takeoff and landing modes
- add two params, wing span and wing height, to calculate a reasonable height at which roll limits can be opened
2022-07-18 10:49:27 -04:00
Thomas Stastny 5241f016f7 fw pos ctrl: rework manual takeoff aid
- takeoff situational knowledge removed from all other modes except manual (or actual takeoff mode)
- manual takeoff is marked complete if at a controllable airspeed
- minimum pitch bounds TECS until manual takeoff complete
- remove individual roll constraints during manual takeoff (ground proximity constraints coming in subsequent commit)
2022-07-18 10:49:27 -04:00
Thomas Stastny 73010cc69b TECS: speed (only) -based underspeed detection
- underspeed condition only determined by true airspeed undershoot
- change binary underspeed condition to a continuous percent undersped
- ramp-in max throttle, pitch speed weight, and TAS setpoint reduction during underspeed to avoid jumpy commands at the true airspeed error boundary
- let true airspeed filter reach zero airspeed
2022-07-18 10:49:27 -04:00
Thomas Stastny eed073887d remove in air vs landed knowledge from TECS
- create integral and trajectory generator reset methods
- always run TECS unless in rotary-wing mode (or in transition)
- constantly reset TECS integrals and trajectory generators when landed
2022-07-18 10:49:27 -04:00
Thomas Stastny ddeca2538c fw pos ctrl: handle takeoff detection when switching to takeoff mode while in air
- simplify takeoff reset method
- removes _last_manual variable in favor of _skipping_takeoff_detection, which is handled in the control mode setter
- takeoff detection (both launch and runway) is skipped if entering takeoff mode from any other mode while having already been in the air
- added method to runway takeoff class for force setting the fly state when we want to skip the takeoff detection
2022-07-18 10:49:27 -04:00
bresch 8cc6d02af3 ekf2: add missing mag fuse type in enum 2022-07-15 15:57:17 +02:00
alexklimaj f9b8ca1326 Support two RTCM links with the same corrections
Add selected_rtcm_instance to sensor_gps message to track loss of rtcm links

Publish _rate_rtcm_injection
2022-07-15 08:20:27 +02:00
Raffaele Rossi 1e55b69fdb ADS1115 ADC: start internal ADC as well (#19880)
But only publish the system power.
2022-07-15 08:15:26 +02:00
Daniel Agar c71cc5b815 drivers/imu/bosch: new BMI085 driver
- very similar to the BMI088 with minor differences in accel range
2022-07-14 18:20:13 -04:00
Daniel Agar 077547f31e rm3100: fix trivial whitespace style failure 2022-07-14 14:44:59 -04:00
alexklimaj 768565ed6f Enable GPS Blending by default 2022-07-14 10:20:59 -04:00
Daniel Agar ea4a1bfb6a sagetech_mxs: don't run by default 2022-07-14 10:20:20 -04:00
Bruce Meagher c5f72fb5d9 Fixed formatting to pass check_format 2022-07-14 09:43:59 -04:00
Bruce Meagher e66683a059 Fixed rm3100 self-test bug 2022-07-14 09:43:59 -04:00
Junwoo Hwang 1a620b450d Change min > max notation to [min, max] in Parameters Markdown (#19911)
* Change min > max notation to [min, max] in Parameters Markdown

* Update src/lib/parameters/px4params/markdownout.py

Co-authored-by: Thomas Stastny <thomas.stastny@auterion.com>

Co-authored-by: Hamish Willee <hamishwillee@gmail.com>
Co-authored-by: Thomas Stastny <thomas.stastny@auterion.com>
2022-07-14 09:13:49 +10:00
Daniel Agar a2f83269e9 airspeed_selector: don't consider vehicle_local_position valid if dead_reckoning 2022-07-13 09:01:33 +02:00
Daniel Agar ac209c2e78 ekf2: vehicle_local_position add dead_reckoning flag 2022-07-13 09:01:33 +02:00
RomanBapst 9886660862 gps_inject_data: fixed integer overflow
- array length of data was increased without changing the data type of
the variable holding the length

Signed-off-by: RomanBapst <bapstroman@gmail.com>
2022-07-13 07:49:47 +02:00
Hamish Willee 5f953fd1da commander_params: COM_RC_IN_MODE - comment out of date (#19634) 2022-07-13 15:26:32 +10:00
Daniel Agar e99da22cbe delete CBRK_VELPOSERR circuit breaker 2022-07-12 13:51:13 -04:00
bresch de74f45e2d ekf2: do not run rng kinematic consistency check for fixed-wings
As they are always moving horizontally, the check doesn't make sense
for fixed-wings.
Also don't run the check while on ground to prevent getting a failed
check during pre-takeoff manipulation.
2022-07-12 13:45:59 -04:00
Matthias Grob fb455c8f4b vehicle_status: reorder message definition
for readability. No functional changes.
2022-07-12 15:50:49 +02:00
Daniel Agar 19b9b052ab uavcan: GNSS optionally publish RTCMStream or MovingBaselineData 2022-07-12 08:15:15 -04:00
Daniel Agar a73efd9c4f NuttX carry minimal c++ cmath (replacing Matrix stdlib_imports.hpp) 2022-07-12 08:05:06 -04:00
Daniel Agar fe22167512 differential_pressure/sdp3x: sdp3x_main fix 'keep running' regression 2022-07-12 09:11:57 +02:00
RomanBapst a23cb111b7 added comment for cruising throttle only affecting rover
Signed-off-by: RomanBapst <bapstroman@gmail.com>
2022-07-12 09:07:20 +02:00
RomanBapst b7d6e646cc FixedWingPositionControl: better naming for manual airspeed setpoint
Signed-off-by: RomanBapst <bapstroman@gmail.com>
2022-07-12 09:07:20 +02:00
RomanBapst c2f5ffdfcd log tecs trim throttle
Signed-off-by: RomanBapst <bapstroman@gmail.com>
2022-07-12 09:07:20 +02:00
RomanBapst 92cdff6798 TECS: rename airspeed/throttle "cruise" to "trim"
Signed-off-by: RomanBapst <bapstroman@gmail.com>
2022-07-12 09:07:20 +02:00
RomanBapst b57d3c6d74 TECS: set true airspeed rate setpoint to zero if airspeed is not enabled
Signed-off-by: RomanBapst <bapstroman@gmail.com>
2022-07-12 09:07:20 +02:00
RomanBapst 6dbea21ef5 TECS: renamed airspeed cruse to airspeed trim & general cleanup
Signed-off-by: RomanBapst <bapstroman@gmail.com>
2022-07-12 09:07:20 +02:00
RomanBapst c05e0f076b FixedWingPositionControl: do not pass trim throttle via position setpoint triplet
- trim throttle is handled entirely by the position controller
- navigator should use speed setpoints
- added flag gliding_enabled in position setpoint to stills support gliding

Signed-off-by: RomanBapst <bapstroman@gmail.com>
2022-07-12 09:07:20 +02:00
RomanBapst cae7e1b88b improved trim throttle compensation
- allow compensation based on vehicle weight (parameterized)
- use density for calculating trim throttle compensation instead of pressure
- removed parameter FW_THR_ALT_SCL

Signed-off-by: RomanBapst <bapstroman@gmail.com>
2022-07-12 09:07:20 +02:00
RomanBapst 461d0561b8 replace FW_THR_CRUISE with FW_THR_TRIM
Signed-off-by: RomanBapst <bapstroman@gmail.com>
2022-07-12 09:07:20 +02:00
marcirsch 226b8a6f90 README: Updated links to point to main branch instead of master. Fixed broken links
Signed-off-by: marcirsch <marcell@auterion.com>
2022-07-12 08:38:05 +02:00
Matthias Grob 10a2b4c9f7 commander_helper: typo in set_tune() description 2022-07-08 14:51:15 +02:00
Junwoo Hwang f66c3914f6 Give priority to power off tune over other tunes (e.g. Battery Low)
Make Power Off tune not interruptable

This solves the case of Low Battery warning tune overriding the power
off tune, as now the Power off tune is not interruptable by any other
tune unless override flag is specified

commander_helper: resolve "redundant boolean literal in ternary expression result"
2022-07-08 14:51:15 +02:00
Junwoo Hwang 652b153383 Cleanup set_tune() functions in the commander_helper
- Existing code was hard to read and quite ambiguous
- Also it allowed constantly re-sending the tune_control request for a
fixed duration tunes like "TUNE_ID_BATTERY_WARNING_SLOW", while not
respecting the tune duration
2022-07-08 14:51:15 +02:00
bresch 3b26c611af mpc: add sideways and backward speed for manual position modes 2022-07-08 14:03:44 +02:00
bresch 1de38c88d9 mpc: use xy stick limiting function from library 2022-07-08 14:03:44 +02:00
Igor Mišić 7e9a45a01a uavcan/sensors/battery: add multiple battery filter instances 2022-07-08 10:03:11 +02:00
Igor Mišić 90e2ac60ce uavcan/sensors/battery: add the option to filter raw data
Useful for power modules that send just pure voltage and current without algorithmic prediction of voltage drop, time estimation, etc.
2022-07-08 10:03:11 +02:00
Igor Mišić 27b65481ba uavcan/sensors/battery: refactoring _battery_status name 2022-07-08 10:03:11 +02:00
Junwoo Hwang 0eeb699af8 Convert add 'Hz' suffix to PWM50, PWM400, ... protocol names
* To avoid confusion as to what the number after the 'PWM' part means
when setting it up in the Actuators Tab
2022-07-08 08:15:13 +02:00
bresch 2f486c37fc ekf2: start airspeed fusion when test ratio is passing only
When wind is already estimated, we don't reset the states using airspeed
data, so it could be that the fusion fails if the airspeed isn't
consistent with the filter (test ratio > 1). In this case, don't start
the fusion.

When wind isn't already estimated, the wind states are reset using
airspeed so the fusion can start regardless of the current test ratio.
2022-07-07 17:39:06 -04:00
Daniel Agar e1933f6ade ROMFS: execute rc.autostart (airframes) before starting dataman 2022-07-07 11:37:39 -04:00
Daniel Agar f591988f32 drivers/actuators: modalai_esc driver
Co-authored-by: Travis Bottalico <travis@modalai.com>
Co-authored-by: akushley <akushley>
2022-07-07 10:32:52 -04:00
Daniel Agar fe9af6769c commander add GPS warnings (GPS invalid if flying and jamming critical) 2022-07-07 10:24:11 -04:00
Daniel Agar 15223009d2 combine sensor_gps + vehicle_gps_position msgs (keeping separate topics) 2022-07-07 10:24:11 -04:00
Junwoo Hwang 32ae00fd44 Move Vehicle Command Result Enum defs to Vehicle Command Ack (#19729)
- As it is always only used for the vehicle command ack message
- It was a duplicate, hence making it error prone for maintainment
- The uORB message comments were updated to make the relationship with
the MAVLink message / enum definitions clear
2022-07-07 16:15:11 +02:00
bresch af4038aa7e ekf2: publish estimator_aid_src_airspeed 2022-07-07 09:42:54 -04:00
bresch 2fd87c47e8 ekf2: use estimator_aid_source_1d message for airspeed fusion
split the fusion process into:
1. updateAirspeed: computes innov, innov_var, obs_var, ...
2. fuseAirspeed: uses data computed in 1. to generate K, H and fuse the
   observation
2022-07-07 09:42:54 -04:00
bresch 503aa87957 ekf2_derivation: create functions to generate innov_var or HK only
This is required when the innovation variance computation and the fusion
are performed in two different functions.
2022-07-07 09:42:54 -04:00
Junwoo Hwang 6225fae1d6 Increase Battery level emergency shutdown time delay
from 300 ms to 60 seconds, to give enough time for the user to configure
the vehicle in the mean time.

This is needed especially when the battery cell count setting is wrong
(when it should be 3, but set to 4 for example), since then whenever you
boot the vehicle, it will shutdown after 300 ms, which leaves the user
puzzled as to exactly what's happening. And it also prevented the user
from changing the Parameter since it's shutting down so quickly.

60 second window is intended to be a reasonable time that will allow the
user to figure out what's going on (via checking the battery level on
QGC, etc) but also not deep discharge the battery to a dangerous level.
2022-07-07 15:09:41 +02:00
Chuck 4528341069 sagetech_mxs: Adding fixes for crashes due to ADSB vehicle list initialization failure
Co-authored-by: cfaber <chuck.faber@sagetech.com>
2022-07-06 21:19:46 -04:00
RomanBapst 44f98ac355 standard: fixed pusher assist in hover
- in hover mode the pusher assist is already set in update_mc_state()

Signed-off-by: RomanBapst <bapstroman@gmail.com>
2022-07-06 16:07:55 +02:00
Beat Küng 7022d59a54 ROMFS: fix incremental build for airframe processing
Fixes the error:
Aborting due to missing @type tag in file: 'build/px4_fmu-v5_test/etc/init.d/airframes/11001_hexa_cox'

This can happen due to a change to e.g. board_serial_ports, which changes
the CLI command and triggers a re-execution of the airframe processing.
2022-07-06 07:50:18 -04:00
Beat Küng 6f8663ac62 mcp23009: add drivers__device cmake dependency
needed for device::I2C
2022-07-06 07:50:18 -04:00
RomanBapst 42cd0b4ce0 FlightTaskAuto: don't override landing gear state for takeoff
- this allows landing gear to retract automatically when doing a takeoff
and the vehicle is considered high enough

Signed-off-by: RomanBapst <bapstroman@gmail.com>
2022-07-06 11:11:14 +02:00
Thomas Debrunner 42c562b748 gps: Increase param name buffer to address warning in newer gccs (#19876) 2022-07-06 10:20:31 +02:00
Silvan Fuhrer b0490b9f6b ROMFS: assign all 4 tilts to motors to have them all tilt
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2022-07-06 09:04:52 +02:00
Matthias Grob a3288ff732 Commander: run ekf checks without grace period after boot 2022-07-05 10:35:07 -04:00
Matthias Grob 8deebd07b8 preArmCheck: Shorten messages to to not write "Arming denied!" 2022-07-05 10:35:07 -04:00
bresch 3d01b5aa11 ekf2_derivation: use unsimplified q->rot for observation equations 2022-07-05 14:25:35 +02:00
bresch 28b34a634b ekf2_derivation: do not print null equations 2022-07-05 14:25:35 +02:00
bresch 78dd557b26 ekf2_derivation: automatically replace pow function 2022-07-05 14:25:35 +02:00
bresch 11f78a3686 ekf2_derivation: update generated equations with SymPy 1.10.1 2022-07-05 14:25:35 +02:00
Igor Mišić dff946c39a usr_mcu_version: add missing headers 2022-07-05 09:29:26 +02:00
Igor Mišić 89c287581b boards/px4/fmu-v6c: update to extended hw_ver_rev format 2022-07-05 09:29:26 +02:00
Igor Mišić 4b503c310e Merge PR #19575 (changes to pr-extendend_hw_ver_rev_format)
- 4096 of 3 hex digits each for rev and ver is enough.
    #defines used in SPI versions do not be long format, use use the macro
 - Board provides a prefix and the formatting is sized and built in
 - No need for funky board_get_base_eeprom_mtd_manifest interface
    Original mft is used where the abstraction is done with the MFT interface

Co-authored-by: David Sidrane <David.Sidrane@Nscdg.com>
2022-07-05 09:29:26 +02:00
Igor Mišić f7d542e720 boards/sky-drones: update to extended hw_ver_rev format 2022-07-05 09:29:26 +02:00
Igor Mišić 4ea8527304 board/fmu-v5x: reverse order for start boards to shorten the command 2022-07-05 09:29:26 +02:00
Igor Mišić 8b77d68028 board/fmu-v5x: add new board version V5X00100001 2022-07-05 09:29:26 +02:00
David Sidrane 00e82c9060 board_hw_eeprom_rev_ver:Versioning hierarchy 2022-07-05 09:29:26 +02:00
Igor Mišić ec1614d156 boards: update id string from V5X{0-a}{0-a} to V5X{xxxx}{xxxx}
boards: new format for hwtypecmp string
boards: update manifest.c to follow the new hw_ver_rev format
2022-07-05 09:29:26 +02:00
David Sidrane 49d63958a8 platforms/common/spi:Support 16 bit of VER and REV 2022-07-05 09:29:26 +02:00
Igor Mišić b938215c2b board_hw_info: add set and get functions for hw_version to/from eeprom 2022-07-05 09:29:26 +02:00
Igor Mišić dd38ced7c4 fmu-v5x: use mtd to get hw info from base EEPROM 2022-07-05 09:29:26 +02:00
Igor Mišić cc63c49a51 px4_manifest: add function declaration for get base EEPROM mtd 2022-07-05 09:29:26 +02:00
Igor Mišić 3463b725a5 px4_manifest: fix px4_mft_s to accept multiple manifests 2022-07-05 09:29:26 +02:00
Igor Mišić 432b664acc px4_mtd: fix instantiation for multiple mtds 2022-07-05 09:29:26 +02:00
Igor Mišić 08a9e49f3e px4_mtd: update eeprom at24c driver to initialize multiple instances 2022-07-05 09:29:26 +02:00
Daniel Agar efde738826 ekf2: update EKF2_EV_DELAY default to 0 2022-07-04 11:44:53 -04:00
Matthias Grob 21f858de1f drv_pwm_output: remove not used anymore define for presumed servo middle position 2022-07-04 16:34:58 +02:00
Matthias Grob af4b8bfd60 linux_pwm_out: sync configuration logic from FMU and IO 2022-07-04 16:34:58 +02:00
Matthias Grob 8ccd40185a PWMOut/px4io: use disarmed values as default failsafe values
to avoid surprises where upon disarm an ESC can suddenly spool up
even though it stops when disarmed and no specific failsafe value is configured.
2022-07-04 16:34:58 +02:00
Michael Schaeuble 85a5dd87cd Remove camera capture GPIO interrupt when the rate is higher than 5kHz
If the capture GPIO is exposed to a signal with high frequency changes, a lot of
interrupts are scheduled and the handling of these call can worst-case
starve flight critical processes leading to a loss of control. Since camera capture
is not flight critical, we now give up the capture
functionality and stop the interrupts to prevent the starvation of other processes.
2022-07-04 11:32:33 +02:00
Igor Mišić 941c47fb19 Remove logging rate limit for pps_capture
In case of a signal issue on the PPS GPIO it is helpful to have logging
data with higher rates.
2022-07-04 11:32:33 +02:00
Michael Schaeuble 5abee359d6 Remove PPS GPIO interrupt when the rate is higher than 20Hz
If the PPS GPIO is exposed to a signal with high frequency changes, a lot of
interrupts are scheduled and the handling of these calls can worst-case
starve flight critical processes leading to a loss of
control. Since PPS is not flight critical, we now give up the PPS
functionality and stop the interrupts to prevent the starvation of other processes.
2022-07-04 11:32:33 +02:00
Jaeyoung-Lim 55eed0e125 Remove multirotor mixer include from MC Ratecontro;
This commit removes multirotormixer includes since it is not being used
2022-07-03 19:20:19 -04:00
Daniel Agar c9b6047124 platforms/nuttx/CMakeLists.txt add STM32H743VI SVD/debug 2022-07-03 11:38:01 -04:00
Daniel Agar 7f76761657 uavcannode: schedule to run on log_message publications
- this is a precaution to minimize message latency and potential lost messages
2022-07-01 09:18:17 -04:00
Ryan Meagher f16ea921c2 drivers/barometer/invensense: fix icp10111 and icp10100
* fix icp so it compiles
* add icp10111 and icp10100 DEVTPYE
2022-06-29 21:22:10 -04:00
Martina Rivizzigno 55563eba49 MPC_SPOOLUP_TIME -> COM_SPOOLUP_TIME 2022-06-24 19:44:43 +02:00
Matthias Grob c8fb7a6990 fw/uuv control: remove duplicated comments, restyle initializers 2022-06-24 10:05:16 -05:00
Matthias Grob 78225f7b1f examples/fixedwing_control: use initializers instead of memset 2022-06-24 10:05:16 -05:00
Matthias Grob cfd4e64b02 uuv_pos_control: remove practically unused manual control subscription 2022-06-24 10:05:16 -05:00
Matthias Grob 3a239ff649 examples: remove empty fake_gyro 2022-06-24 10:05:16 -05:00
CUAVhonglang cfa8b451c7 cuav-nora: changed brick to compatible with cuav noraplus 2022-06-24 10:03:43 -05:00
CR ffb0097052 removed unused code - _constrainOneSide and _constrainAbs 2022-06-22 23:21:16 +02:00
Matthias Grob 479c85047f WeatherVane: Allow weathervane on multirotors not just VTOLs 2022-06-22 14:19:28 +02:00
Matthias Grob 54145cedc7 FlightTask: Weather vane cleanup
Remove the entire external yaw handler, dynamic memory allocation,
pointer passing logic. Directly instanciate the weather vane instance
in the flight tasks that support it.
2022-06-22 14:19:28 +02:00
Daniel Agar ab4e10dc26 paa3905: update scaling from datasheet 2022-06-21 16:59:14 -04:00
Daniel Agar 07e28fda7a paw3902: update scaling from datasheet 2022-06-21 16:59:14 -04:00
Daniel Agar dc8ed97809 ekf2: optical flow control limits constrain speed using HAGL max 2022-06-21 12:52:25 -04:00
Daniel Agar 15747239c1 mc_pos_control: always respect position estimate vxy_max if set
Co-authored-by: Matthias Grob <maetugr@gmail.com>
2022-06-21 12:52:25 -04:00
Daniel Agar 5d2dfadb0e boards: px4_fmu-v5_uavcanv0periph disable modules to save flash 2022-06-20 21:31:27 -04:00
Daniel Agar e5f081d9ac drivers/optical_flow/paa3905: cleanup/overhaul
- remove internal accumulation and publish every valid raw sample synchronized with sensor
 - store timestamp_sample from motion interrupt
 - improve timing requirements from datasheet (minimum delays after register read/write)
2022-06-20 20:56:56 -04:00
Daniel Agar 1fbe3c4ab3 drivers/optical_flow/paw3902: cleanup/overhaul
- remove internal accumulation and publish every valid raw sample synchronized with sensor
 - store timestamp_sample from motion interrupt
 - improve timing requirements from datasheet (minimum delays after register read/write)
2022-06-20 20:56:56 -04:00
Daniel Agar d5839e2dd5 optical flow sensor pipeline overhaul
- all sources of optical flow publish sensor_optical_flow
 - sensor_optical_flow is aggregated by the sensors module, aligned with integrated gyro, and published as vehicle_optical_flow

Co-authored-by: alexklimaj <alex@arkelectron.com>
2022-06-20 20:56:56 -04:00
Chuck 32544452f0 drivers: Sagetech MXS transponder support
Co-authored-by: Megan McCormick <megan.mccormick@sagetech.com>
Co-authored-by: Chuck Faber <chuck.faber@sagetech.com>
2022-06-20 18:16:07 -04:00
Claudio Micheli 9d486b1ccd esc_battery: account for online ESCs when averaging voltage
Signed-off-by: Claudio Micheli <claudio@auterion.com>
2022-06-20 18:14:13 -04:00
Daniel Agar 450fcca8b8 drivers/differential_pressure/Kconfig: remove ets and ms4515 from common sensors to save flash 2022-06-20 13:04:19 -04:00
Daniel Agar 8d2e8ef422 boards: px4_fmu-v5_test disable gyro_fft module to save flash 2022-06-20 13:04:19 -04:00
Bruce Meagher 714234ca90 posix: add mavlink shell for posix targets (#19800) 2022-06-20 11:51:47 +02:00
alexklimaj 4cc3e78558 Add mag bias estimator to CAN GPS units with IMUs
- run `sensors` hub to process sensor_mag and publish vehicle_magnetometer
 - update uavcannode to use vehicle_magnetometer
2022-06-19 15:46:36 -04:00
Daniel Agar 73f45fee6e boards: px4_fmu-v5_test disable fake_gps module to save flash 2022-06-19 14:25:06 -04:00
Daniel Agar 902b789292 boards: px4_fmu-v5_protected disable gyro_fft module to save flash 2022-06-19 14:25:01 -04:00
Daniel Agar b81a5b3efa ekf2: request mag yaw reset after calibration or sensor change 2022-06-17 21:04:05 -04:00
Daniel Agar c7cec4252c sensors: add CONFIG_SENSORS_VEHICLE_AIRSPEED for airspeed/differential pressure
- disable CONFIG_SENSORS_VEHICLE_AIRSPEED on boards only used for multicopter
2022-06-17 19:31:45 -04:00
Daniel Agar 10deb7019e enable gyro_calibration for CAN nodes
- allow saving initial gyro cal if very close to 0
2022-06-17 19:31:45 -04:00
Daniel Agar db4e09d529 Tools/kconfig: delete old migration helpers
- people are updating this without really understanding the purpose,
and it's generally no longer useful
2022-06-17 19:31:45 -04:00
Daniel Agar c46fa01195 sensors: add kconfig mechanism to optionally exclude sensor types 2022-06-17 19:31:45 -04:00
Alex Klimaj 60450e63c0 uavcannode: Fix dronecan baro units 2022-06-17 14:22:15 -04:00
Beat Küng b9475d6ebe mavlink_shell: set target system and component id
These got added in https://github.com/mavlink/mavlink/pull/1725 and need
to be set for correct routing.
2022-06-17 09:29:43 -04:00
Daniel Agar dea404a9a3 boards: disable modules to save flash
- px4_fmu-v5x_rtps disable common barometers to save flash
 - px4_fmu-v6x_default disable telemetry drivers to save flash
2022-06-16 16:14:57 -04:00
Junwoo Hwang 8bae4e5c0e FollowMe : Replace First order target position filter with Second order position and velocity filter
Follow me : tidied second order filter implementation

Added velocity filtered info to uORB follow target status message, and rebase to potaito/new-follow-me-task

FollowMe : Rebasing and missing definition fixes on target position second order filter

Follow Me : Remove Alpha filter delay compensation code, since second order filter is used for pose filtering now

Followme : Remove unused target pose estimation update function

Follow Target : Added Target orientation estimation logic

Follow Target : Replaced offset vector based setpoint to rate controlled orbital angle control

Follow Target : Bug fixes and first working version of rate based control logic, still buggy

Follow Target : Added target orientation, follow angle, orbit angle value into follow_target_status uORB message for debugging

Follow Target : Fix orbit angle step calculation typo bug

Follow Target : Few more fixes

Follow Target : Few fixes and follow angle value logging bug fix

Follow Target : Added lowpass alpha filter for yaw setpoint filtering

Follow Target : Remove unused filter delay compensation param

Follow Target : Add Yaw setpoint filter initialization logic and bufix for when unwrap had an input of NAN angle value

Follow Target : Add Yaw setpoint filtering enabler parameter

Follow Target : Change Target Velocity Deadzone to 1.0 m/s, to accomodate walking speed of 1.5 m/s

Follow Target : Add Orbit Tangential Velocity calculation for velocity setpoint and logging uORB topics

Follow target : Fix indentation in yaw setpoint filtering logic

Follow Target : Fix Follow Target Estimator timeout logic bug that was making the 2nd order pose filter reset to raw value every loop

Follow Target : Remove debug printf statement for target pose filter reset check

Follow Target : Add pose filter natural frequency parameter for filter testing

Follow Target : Make target following side param selectable and add target pose filter natural frequency param description

Follow Target : Add Terrain following altitude mode and make 2D altitude mode keep altitude relative to the home position, instead of raw local position origin

Follow Target : Log follow target estimator & status at full rate for filter characteristics test

Follow Target : Implementing RC control user input for Follow Target control

Follow Target : edit to conform to updated unwrap_pi function

Follow Target : Make follow angle, distance and height RC command input configurable

Follow Target : Make Follow Target not interruptable by moving joystick in Commander

Follow Target : reconfigure yaw, pitch and roll for better user experience in RC adjusting configurations, and add angular rate limit taking target distance into account

Follow Target : Change RC channels used for adjustments and re-order header file for clarity

Follow Target : Fix Parameters custom parent macro, since using DEFINE_PARAMETERS alone misses the parameter updates of the parent class, FlightTask

Follow Target : Fix Orbit Tangential speed actually being angular rate bug, which was causing a phenomenon of drnoe getting 'dragged' towards the target velocity direction

Follow Target : Final tidying and refactoring for master merge - step 1

Add more comments on header file

Follow Target : tidy, remove unnecessary debug uORB elements from follow_target_status message

Follow Target : Turn off Yaw filtering by default

Follow Target : Tidy maximum orbital velocity calculation

Follow Target : add yaw setpoint filter time constant parameter for testing and fix NAV_FT_HT title

Follow Target : Add RC adjustment window logic to prevent drone not catching up the change of follow target parameters

Follow Target : fixes

Follow Target: PR tidy few edits remove, and update comments

Follow Target : apply comments and reviews

Follow Target : Edit according to review comments part 2

Follow Target : Split RC adjustment code and other refactors

- Splitted the RC adjustment into follow angle, height and distance
- Added Parameter change detection to reset the follow properties
- Added comments and removed yaw setpoint filter enabler logic

Follow Target : Modify orbit angle error bufferzone bug that was causing excessive velocity setpoints when setpoint catched up with raw orbit setpoint

Follow Target : Remove buffer zone velocity ramp down logic and add acceleration and rate limited Trajectory generation library for orbit angle and velocity setpoint

Follow Target : Remove internally tracked data from local scope function's parameters to simplify code

Follow Target : Fix to track unwrapped orbit angle, with no wrapping

Follow Target : Apply user adjustment deadzone to reduce sensitivity

Follow Target : Apply suggestions from PR review round 2 by @potaito

Revert submodule update changes, fall back to potaito/new-followme-task

Follow Target : [Debug] Expose max vel and acceleration settings as parameters, instead of using Multicopter Position Controller
's settings

Follow Target : Use matrix::isEqualF() function to compare floats

Follow Target : Add Acceleration feedback enabler parameter and Velocity ramp in initial commit for overshoot phenomenon improvement

Follow Target : Implement Velocity feed forward limit and debug logging values

Follow Target : Apply Velocity Ramp-in for Acceleration as well & Apply it to total velocity setpoint and not just orbit tangential velocity component

Follow Target : Don't set Acceleration setpoint if not commanded

Follow Target : Use Jerk limited orbit angle control. Add orbit angle tracking related uORB values"

Follow Target : Add Orbit Angle Setpoint Rate Tracking filter, to take into consideration for calculating velocity setpoint for trajectory generator for orbit angle

Revert "Follow Target : Add Orbit Angle Setpoint Rate Tracking filter, to take into consideration for calculating velocity setpoint for trajectory generator for orbit angle"

This reverts commit a3f48ac7652adb70baf3a2fed3ea34d77cbd6a70.

Follow Target : Take Unfiltered target velocity into acount for target course calculation to fix overshoot orbit angle 180 deg flip problem

Follow Target : Remove Yaw Filter since it doesn't make a big difference in yaw jitterness

Follow Target : Remove velocity ramp in control & remove debug values from follow_target_status.msg

Follow Target : Tidy Follow Target Status message logging code

Follow Target : Remove jerk and acceleration settings from Follow Target orbit trajectory generation

Follow Target : Change PublicationMulti into Publication, since topics published are single instances

Follow Target : Edit comments to reflect changes in the final revision of Follow Target

Follow Target : Apply incorrectly merged conflicts during rebase & update Sticks function usage for getThrottled()

Follow Target : Apply final review comments before merge into Alessandro's PR

Apply further changes from the PR review, like units

Use RC Sticks' Expo() function for user adjustments to decrease sensitivity around the center (0 value)

Update Function styles to lowerCamelCase

And make functions const & return the params, rather than modifying them
internally via pointer / reference

Specify kFollowPerspective enum as uint8_t, so that it can't be set to negative value when converted from the parameter 'FLW_TGT_FP'

Fix bug in updateParams() to reset internally tracked params if they actually changed.

Remove unnecessary comments

Fix format of the Follow Target code

Fix Follow Perspective Param metadata

follow-me: use new trajectory_setpoint msg

Convert FollowPerspective enum into a Follow Angle float value

1. Increases flexibility in user's side, to set any arbitrary follow
angle [deg]
2. Removes the need to have a dedicated Enum, which can be a hassle to
make it match MAVSDK's side
3. A step in the direction of adding a proper Follow Mode (Perspective)
mode support, where we can support kite mode (drone behaves as if it is
hovering & getting dragged by the target with a leash) or a constant
orbit angle mode (Drone always on the East / North / etc. side, for
cinematic shots)

Continue fixing Follow Target MAVSDK code to match MAVSDK changes

- Support Follow Angle configuration instead of Follow Direction
- Change follow position tolerance logic to use the follow angle
*Still work in progress!

Update Follow Me MAVSDK Test Code to match MAVSDK v2 spec

- Add RC Adjustment Test case
- Change follow direction logic to follow angle based logic completely
- Cleanup on variable names and comment on code

follow-me: disable SITL test

Need to update MAVSDK with the following PR:
https://github.com/mavlink/MAVSDK/pull/1770

SITL is failing now because the follow-me
perspectives are no longer defined the
same way in MAVSDK and in the flight task.

update copyright year

follow-me: mark uORB topics optional

Apply review comments

more copyright years

follow-me sitl test: simpler "state machine"

flight_mode_manager: exclude AutoFollowTarget and Orbit on flash contrained boards

Remove unnecessary follow_target_status message properties

- As it eats up FLASH and consumes uLog bandwidth
2022-06-16 16:14:57 -04:00
Alessandro Simovic de1fa11e96 New follow-me flight task
rename follow_me_status to follow_target_status

enable follow_target_estimator on skynode

implement the responsiveness parameter:
The responsiveness parameter should behave similarly to the previous
follow-me implementation in navigator. The difference here is that
there are now two separate gains for position and velocity fusion.
The previous implemenation in navigator had no velocity fusion.

Allow follow-me to be flown without RC

SITL tests for follow-me flight task

This includes:
- Testing the setting for the follow-me angle
- Testing that streaming position only or position
  and velocity measurements both work
- Testing that RC override works

Most of these tests are done with a simulated model
of a point object that moves on a straight line. So
nothing too spectacular. But it makes the test checks
much easier.

Since the estimator for the target actually checks new
measurements and compares them to old ones, I also added
random gausian noise to the measurements with a fixed seed
for deterministic randomness. So repeated runs produce
exactly the same results over and over.

Half of the angles are still missing in MAVSDK. Need to create
an upstream PR to add center left/right and rear left/right options.
These and the corresponding SITL tests need to be implemented
later.

sitl: Increase position tolerance during follow-me

Astro seems to barely exceed the current tolerance (4.3 !< 4.0)
causing CI to fail. The point of the CI test is not to check
the accuracy of the flight behaviour, but only the fact that the
drone is doing the expected thing. So the exact value of this
tolerance is not really important.

follow-me: gimbal control in follow-me

follow-me: create sub-routines in flight task class

follow-me: use ground-dist for emergency ascent

dist_bottom is only defined when a ground facing distance sensor exist.
It's therefore better to use dist_ground instead, which has the distance
to the home altitude if no distance sensor is available.

As a consequence it will only be possible to use follow-me in a valley
when the drone has a distance sensor.

follow-me: point gimbal to the ground in 2D mode

follow-me: another fuzzy msg handling for the estimator

follow-me: bugfix in acceleration saturation limit

follow-me: parameter for filter delay compensation

mantis: dont use flow for terrain estimation

follow-me: default responsiveness 0.5 -> 0.1

0.5 is way too jerky in real and simulated tests.

flight_task: clarify comments for bottom distance

follow-me: minor comment improvement

follow-me: [debug] log emergency_ascent

follow-me: [debug] log gimbal pitch

follow-me: [debug] status values for follow-me estimator

follow-me: setting for gimbal tracking mode

follow-me: release gimbal control at destruction

mavsdk: cosmetics 💄
2022-06-16 16:14:57 -04:00
Chris Seto 285556e463 Re-set param limits for fw tuning values to align with fw tuning guide 2022-06-16 14:22:51 -04:00
Daniel Agar c1c2858341 Update submodule GPSDrivers to latest Thu Jun 16 12:38:52 UTC 2022
- GPSDrivers in PX4/Firmware (1069570a2a90fdc7f0e081b6c2c4b418446d65d7): https://github.com/PX4/PX4-GPSDrivers/commit/016c37cd1f18c716427e2465d8daa6aa1054b0f1
    - GPSDrivers current upstream: https://github.com/PX4/PX4-GPSDrivers/commit/8c09c5426d23ea4db4e462c1f4e3a1de33d253cc
    - Changes: https://github.com/PX4/PX4-GPSDrivers/compare/016c37cd1f18c716427e2465d8daa6aa1054b0f1...8c09c5426d23ea4db4e462c1f4e3a1de33d253cc

    8c09c54 2022-06-15 Daniel Agar - sbf trivial whitespace fix

Co-authored-by: PX4 BuildBot <bot@px4.io>
2022-06-16 12:21:06 -04:00
Matthias Grob 92b6862485 Commander: replace arm requirements 2022-06-16 10:25:32 -04:00
Matthias Grob 3b3d8b9942 Commander: execute pre arm check with preflight checks 2022-06-16 10:25:32 -04:00
Matthias Grob aa575d6af0 Commander: move first preflight check run to constructor 2022-06-16 10:25:32 -04:00
Matthias Grob 0f41a5e385 ArmStateMachine: simplify how preflight checks are called 2022-06-16 10:25:32 -04:00
Igor Mišić 5dc3fecac0 boards/bitcraze: add PWM_SERVO_STOP define 2022-06-16 08:09:00 +02:00
Igor Mišić 7c1da8d608 driver/px4io: set default failsafe values 2022-06-16 08:09:00 +02:00
Igor Mišić 04c2d0fe97 drivers/pwm_out: set default failsafe values 2022-06-16 08:09:00 +02:00
Daniel Agar 1980b5c5e8 ekf2: setEkfGlobalOrigin() reset baro and hgt sensor offsets if necessary
- handle uninitalized _gps_alt_ref
 - add basic lat/lon/alt sanity checks
2022-06-16 00:59:54 -04:00
achim fc3d88bb67 boards/diatone/mamba-f405-mk2: symmetric buffers for wifi telemetry (#19808)
Symmetric buffers allow a much more reliable QGC Wifi telemetry connection especially when (virtual) joysticks are used.  (this board does not provide RX DMA on UART 4 as its timer does DSHOT).
2022-06-15 14:30:28 -04:00
Matthias Grob c59809b14a Commander: remove system_sensors_initialized
and system_hotplug_timeout. They're not in use for over 2 years.
Instead control LED with preflight checks.
2022-06-15 14:02:00 -04:00
Igor Mišić 0922f003f5 uavcan: don't print an error if there is no UAVCAN device on the CAN bus 2022-06-15 03:29:13 -04:00
bresch 680191cc75 WindEstimator: make wind process noise tuning same as EKF2 2022-06-14 18:44:30 +10:00
bresch b6f1a7aed9 migrate wind process noise parameters 2022-06-14 18:39:10 +10:00
bresch 0d256b8ff6 ekf2 wind: use noise spectral density for process noise tuning
The noise spectral density, NSD, (square root of power spectral density) is a
continuous-time parameter that makes the tuning independent from the EKF
prediction rate.
NSD corresponds to the rate at which the state uncertainty increases
when no measurements are fused into the filter.
Given that the current prediction rate of EKF2 is 100Hz, the
same tuning is obtained by dividing the std_dev legacy parameter by 10:
nsd = sqrt(std_dev^2 / 100Hz)
2022-06-14 18:39:10 +10:00
bresch e105869986 wind_estimator: use noise spectral density for process noise tuning
The noise spectral density, NSD, (square root of power spectral density) is a
continuous-time parameter that makes the tuning independent from the EKF
prediction rate.
NSD corresponds to the rate at which the state uncertainty increases
when no measurements are fused into the filter.
Given that the current prediction rate of the wind estimator is 1Hz, the
same tuning is obtained with the same values as before.
2022-06-14 18:39:10 +10:00
Junwoo Hwang 377338109c uLog message definition comment improvements
- Added more comments
- Converted to DOxygen comment format for the comments on struct members
2022-06-13 10:31:07 +02:00
Junwoo Hwang 1ddd1573be Improve uLog message struct definitions
1. Rename *_header_s structs to *_s, since the _header postfix is not
helpful
2. Rename the "key" string variables in the message structs to
"key_value_str" as the string actually contains not just the key but the
key and value pair information
3. Add comments on other uLog messages to clarify use (need more
improvement / can be even more simplified)
2022-06-13 10:31:07 +02:00
achim e6f90bcb81 disable uart´s dma
Still no way to get GPS and auto flash of the IO without disabling their uart´s dma
2022-06-11 13:39:01 -04:00
fury1895 283aad01fd Airspeed params: change default for ASPD_SCALE_APPLY to 2 2022-06-10 14:02:41 +02:00
David Sidrane f15eb91814 px4_fmu-v6x:HB Mini add Ver 3, Ver 4 init 2022-06-10 04:20:26 -07:00
PX4 BuildBot e33199c182 Update submodule mavlink to latest Fri Jun 10 00:38:25 UTC 2022
- mavlink in PX4/Firmware (59630bcc7e7e983db2d9138c8254144c77855adc): https://github.com/mavlink/mavlink/commit/0909631552187b998dd6359f998ee78ee8765728
    - mavlink current upstream: https://github.com/mavlink/mavlink/commit/05864e218e204f1ebeee5555988150fcddbd873e
    - Changes: https://github.com/mavlink/mavlink/compare/0909631552187b998dd6359f998ee78ee8765728...05864e218e204f1ebeee5555988150fcddbd873e

    05864e21 2022-06-09 Peter Barker - common.xml: add ignition_voltage to EFI_STATUS (#1854)
adc9c3f5 2022-06-01 olliw42 - update storm32.xml (nfc) (#1851)
49dbdb66 2022-06-01 Randy Mackay - ardupilotmega: add nav_attitude_time command (#1852)
2022-06-10 01:01:20 -04:00
Thomas Debrunner 46c9d1e288 SIH in SITL with lockstep (#19028)
* sih: Move sih out of work queue
This reverts commit bb7dd0cf00.

* sih-sim: Enable sih in sitl, together with lockstep

* sih-sim: new files for sih: quadx and airplane

* sih: Added tailsitter for sih-sitl simulation

* sitl_target: Added seperate target loop for sih

* jmavsim_run: Allow jmavsim to run in UDP mode

* lockstep: Post semaphore on last lockstep component removed

* sih-sim: Added display for effectively achieved speed

* sih: increase stack size

* sih-sim: Improved sleep time computation, fixes bug of running too fast

* sitl_target: place omnicopter in alphabethic order

Co-authored-by: romain-chiap <romain.chiap@gmail.com>
Co-authored-by: Matthias Grob <maetugr@gmail.com>
2022-06-09 09:52:34 +02:00
Thomas Stastny a7e11464c1 fw pos ctrl: update method documentation 2022-06-09 09:23:02 +02:00
Thomas Stastny 594a6d6e80 fw pos ctrl: some incremental clean up of the class
- documentation of units, params, returns, and descriptions for variables and methods
- rename ambiguous or erroneous state variables
- remove unused or unecessary input arguments to functions
- remove ugly header white space
2022-06-09 09:23:02 +02:00
Silvan Fuhrer 9863c24b40 navigator_main: DO_REPOSITION: only trigger reposition setpoint update if vehicle is armed
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2022-06-08 21:47:06 +02:00
Thomas Stastny cbf0fe8803 fw pos ctrl: centralize parameter and state resets 2022-06-08 08:44:30 -05:00
Thomas Stastny ccfbbb553a fw pos ctrl: only manipulate heading hold yaw in manual position control mode 2022-06-08 08:44:30 -05:00
Thomas Stastny 67d8dd359d fw pos ctrl: calculate control interval once
- Use the same time interval for all position control logic (including TECS)
- Sync naming in control methods
- Remove some unused input arguments
2022-06-08 08:44:30 -05:00
Matthias Grob f5e7b1e6a8 Commander: switch battery bitflied to dedicated datatype 2022-06-08 11:32:26 +02:00
Matthias Grob 9b2166de72 manual_control_params: configure arm gesture doesn't require reboot
I added wrong documentation here.
2022-06-08 05:12:05 -04:00
Matthias Grob bd50a52c9c Commander: fix startup sound interrupted by safety button initialization
The safetyButtonHandler() reports that the safety statatus
changed on the first loop iteration when safety is disabled which makes
sense to inform the system that safety is off but the tune for the user
should not be played because it interrupts the startup tune.
2022-06-08 05:12:05 -04:00
Matthias Grob 71103e6114 Safety: keep initialized constant flags when safety disabled 2022-06-08 05:12:05 -04:00
Matthias Grob 44c4b8fa85 Style refactoring related to safety button 2022-06-08 05:12:05 -04:00
Daniel Agar ce70b6f4ac sensors/vehicle_angular_velocity: add IMU_GYRO_RATEMAX constraints 2022-06-07 15:45:47 -04:00
Daniel Agar 01f0992f49 sensors/vehicle_imu: don't bother checking IMU_GYRO_RATEMAX 2022-06-07 15:45:47 -04:00
Matthias Grob 5df266cedc MulticopterRateControl: use constructor to copy thrust setpoint array 2022-06-07 11:45:59 -04:00
bresch 4f1091792f ekf2 preflight: only check innovation of active height sources 2022-06-07 11:44:56 -04:00
Daniel Agar cb2738e187 Update submodule GPSDrivers to latest Sat Jun 4 12:38:49 UTC 2022 (#19766)
- GPSDrivers in PX4/Firmware (6e77a084cd43830c8b13018b7fd5470da9bc4ff5): https://github.com/PX4/PX4-GPSDrivers/commit/181fae1a4b5e33576d786755782adb2f195ecc48
    - GPSDrivers current upstream: https://github.com/PX4/PX4-GPSDrivers/commit/016c37cd1f18c716427e2465d8daa6aa1054b0f1
    - Changes: https://github.com/PX4/PX4-GPSDrivers/compare/181fae1a4b5e33576d786755782adb2f195ecc48...016c37cd1f18c716427e2465d8daa6aa1054b0f1

    016c37c 2022-06-01 Julian Oes - sbf: fix overrun on invalid length
2022-06-04 15:58:56 -04:00
PX4BuildBot a247b42907 [AUTO COMMIT] update change indication 2022-06-04 15:57:11 -04:00
PX4 BuildBot e86a74321e Update world_magnetic_model to latest Sat Jun 4 11:14:10 UTC 2022 2022-06-04 15:57:11 -04:00
Beat Küng da55256f2f test_multicopter_failure_injection: remove 'Reject before arming' test
Not sure why injection should fail before arming.
2022-06-04 07:40:29 +02:00
Beat Küng d1142008f6 FailureDetector: check if ESCs have current
And increase the timeout to 300ms, as some ESCs only update with 10Hz.
2022-06-04 07:40:29 +02:00
Beat Küng 8bf18e31be SITL: enable failure command (SYS_FAILURE_EN=1) 2022-06-04 07:40:29 +02:00
Beat Küng 56faaae959 failure: fix invalid memory access
failure_units[unit].key was incorrect
2022-06-04 07:40:29 +02:00
Beat Küng 0ab61aee2e control_allocator: show motor axis for MC (as advanced) 2022-06-04 07:40:29 +02:00
Beat Küng 99a329f937 mc_rate_control: pass through 3D thrust 2022-06-04 07:40:29 +02:00
Beat Küng 82eb71d70b failure_detector: allow disabling attitude failure (as already documented) 2022-06-04 07:40:29 +02:00
Jaeyoung-Lim bf68d3433e Add omnicopter SITL model
F
2022-06-04 07:40:29 +02:00
bresch e2955bdd61 terrain est: clear innovation/var/test ration when aiding stops 2022-06-03 17:31:14 -04:00
Matthias Grob fad3d46907 Use signNoZero() where possible 2022-06-03 16:08:16 +02:00
abarcis 4fc2640ee3 vehicle_command.msg: unneeded comment closings removed (#19759)
They cause problems with building px4_msgs in ROS2 Humble Hawksbill and removing them fixes the issue.

Co-authored-by: Agata Barcis <agata.barcis@tii.ae>
2022-06-03 07:25:05 +02:00
BA-ED b9be783b69 dshot: corrected DShot motor spin direction command
Some ESCs don't store DShot_cmd_spin_direction_reversed persistently
2022-06-02 13:36:40 +02:00
Thomas Watson d390e6d46d boards/mro/pixracerpro: fix voltage/current monitoring
This corrects the board definition to use the proper polarity
for the brick power valid signal, thus allowing the board to
detect the battery and monitor it properly.
2022-06-02 08:11:15 +02:00
Mark Sauder c19e74784a attitude_estimator_q: Run() method refactoring (#19526)
* Refactor attitude_estimator_q_main.cpp Run() method by breaking apart into separate method calls:
    * update_vehicle_local_position()
    * update_motion_capture_odometry()
    * update_visual_odometry()
    * update_magnetometer()
    * update_vehicle_attitude()
    * update_sensors()
 * Rename init_attitude_q()
 * Standardize whitespace formatting
 * Add remaining c++ style initializers.
2022-06-01 13:41:42 -04:00
Daniel Agar 21b1c933dc ekf2: EKFGSF_yaw delete unnecessary internal state 2022-06-01 13:16:06 -04:00
Daniel Agar 3889b79342 ekf2: yaw estimator add yaw_composite_valid boolean 2022-06-01 13:16:06 -04:00
Igor Mišić a218f4bfaf drivers/px4io: support legacy px4io firmware to enter BL 2022-06-01 13:15:13 -04:00
Igor Mišić 25488da944 px4io: replace safety_off state with safety button event (#19558)
internal PX4IO safety_off state is removed and replaced with a normal safety button event. From this 'commit' commander is taking care of the PX4IO safety.
2022-06-01 13:15:13 -04:00
Matthias Grob a9cdfff7a3 FlightModeManager: only execute flight task commands when multicopter 2022-06-01 15:14:07 +02:00
Matthias Grob 96b0304049 PreFlightCheck: disallow arming in land mode
after the automatic switch to Hold mode was introduced.
2022-06-01 12:08:32 +12:00
Matthias Grob 83c15fca9f Commander: switch back to Hold mode after autonomous landing 2022-06-01 12:08:32 +12:00
Matthias Grob 33df8b24f2 Commander: differentiate clearly between to arm and to disarm transition 2022-06-01 12:08:32 +12:00
Matthias Grob 400e1f8214 Commander: only initialize to tablet mode and don't switch back on RC loss 2022-06-01 12:08:32 +12:00
Daniel Agar 002579b3e0 Jenkins: reboot after ostest completes
- temporary workaround to ostest apparently leaving the system in a bad state
2022-05-31 01:41:07 -07:00
Daniel Agar 5b6e5a0968 boards: NuttX update all boards to preallocated sem holder list
- CONFIG_SEM_PREALLOCHOLDERS=32
 - CONFIG_SEM_NNESTPRIO=16 (default)
2022-05-31 01:41:07 -07:00
Beat Küng 0074894637 control_allocator: disable backup schedule with lockstep
The backup schedule triggers updates too early and leads to simulator errors:
ERROR [simulator] poll timeout 0, 22
2022-05-31 07:17:30 +02:00
Daniel Agar 132a07f53c boards: test boards add NuttX ostest and run on Jenkins test rack 2022-05-29 13:41:16 -04:00
Daniel Agar 0420d697e5 update NuttX and apps to latest with sem holder fixes and updated ostest 2022-05-29 13:41:16 -04:00
Daniel Agar cb8b5ae872 mavlink: MavlinkStatustextHandlerTest ignore Wcast-align 2022-05-29 09:44:48 -04:00
Daniel Agar d97bb168cf lib/motion_planning: VelocitySmoothingTest delete set but not used variable 2022-05-29 09:44:48 -04:00
Daniel Agar 095e0f0604 ekf2: sensor_simulator fix enum shadow 2022-05-29 00:21:08 -04:00
PX4 BuildBot 63155b5b01 Update submodule mavlink to latest Sat May 28 00:38:55 UTC 2022
- mavlink in PX4/Firmware (56106be4805cb2f70d22ad31b87fbd9774f0d0f3): https://github.com/mavlink/mavlink/commit/99e82cad70494903a23a67de08ff9cbb5918d8f3
    - mavlink current upstream: https://github.com/mavlink/mavlink/commit/0909631552187b998dd6359f998ee78ee8765728
    - Changes: https://github.com/mavlink/mavlink/compare/99e82cad70494903a23a67de08ff9cbb5918d8f3...0909631552187b998dd6359f998ee78ee8765728

    09096315 2022-05-26 Hamish Willee - Clarify and cross reference home position everywhere (#1836)
38c1a99f 2022-05-25 Julian Oes - WIND_COV: clarify description and unknown value (#1845)
2022-05-28 00:06:05 -04:00
David Lechner 995265c95e vscode: remove terminal settings
These terminal settings are a matter of personal preference and should
not be part of the project configuration.
2022-05-27 21:01:33 -04:00
Daniel Agar c27b9f3b1e boards: reduce SPI DMA buffers on older STM32F4 boards
- on common IMUs like the mpu6000, mpu9250, icm20602, etc each FIFO
sample is only 12 bytes so this is still more than large enough for the
worst case transfer
2022-05-27 16:27:41 -04:00
Daniel Agar 4561cf2ce6 boards: pixhawk 2 cube skip starting low quality l3gd20 gyro to save memory and cpu
- free memory is getting tight on these older boards (depending on
configuratoin) and the pixhawk 2 cube still has 2 other superior IMUs, so this is just
dropping dead weight
2022-05-27 16:27:41 -04:00
David Sidrane 74a2930315 px4_fmu-v6X:Added Holybro mini base board 2022-05-27 15:02:28 -04:00
David Sidrane dd6d7e9979 uc_stm32h7_can:Correct initalization of the mumber of interfaces
H7 Only supports 2 not 3 CAN interfaces.

   CanInitHelper passes in in the run time configuration of
   the number of interfaces. The code was ignoring these!
2022-05-27 15:02:28 -04:00
David Sidrane 9353c15e8a px4_fmu-v5X:Added Holybro mini base board 2022-05-27 15:02:28 -04:00
David Sidrane 479b52fd02 Update all H7 Bootloders 2022-05-27 14:25:25 -04:00
David Sidrane 645f4c3428 flash_cache:Flush complete cache line 2022-05-27 14:25:25 -04:00
David Sidrane fd81951391 boards: STM32H7 pad to 256 bit - 32 bytes (#19724) 2022-05-27 14:04:51 -04:00
Daniel Agar 1ba3610cfc boards: delete omnibus_f4sd_ekf2 due to flash overflow 2022-05-27 09:46:07 -04:00
David Sidrane 55cfd8597d px4_fmu-v6c:Fix mag rotation 2022-05-26 11:26:29 -07:00
Igor Misic 554283655c Revert "px4io: replace safety_off state with safety button event (#19558)"
This reverts commit 12a81979a8.
2022-05-26 10:06:32 -04:00
Igor Misic 6aefcbb6cf Revert "px4iofirmware: fix for bug introduced with #19558"
This reverts commit 79a34b5aed.
2022-05-26 10:06:32 -04:00
Matthias Grob c03f5b9481 Commander: fix overlooked rebase naming error 2022-05-25 21:10:19 +02:00
alessandro 29c4119e24 Match commander uORB var names to message names (#19707)
* match vehicle_status

* match home_position

* match vehicle_command_ack

* match actuator_armed

* match vehicle_control_mode

* match commander_state
2022-05-25 17:08:48 +02:00
Daniel Agar 98354ba10a Update submodule GPSDrivers to latest Wed May 25 12:38:58 UTC 2022
- devices in PX4/Firmware (7cc84e0f9e44697475b0f355df9a29de6ea6b9ff): https://github.com/PX4/PX4-GPSDrivers/commit/58968922b718176be8756f11113d16b2cfbc4022
    - devices current upstream: https://github.com/PX4/PX4-GPSDrivers/commit/181fae1a4b5e33576d786755782adb2f195ecc48
    - Changes: https://github.com/PX4/PX4-GPSDrivers/compare/58968922b718176be8756f11113d16b2cfbc4022...181fae1a4b5e33576d786755782adb2f195ecc48

    181fae1 2022-05-23 numan - README: add information for definition.h
2022-05-25 09:56:40 -04:00
Daniel Agar 58ea6235fe ekf2: estimator aid source status (range height) 2022-05-25 09:25:12 -04:00
Daniel Agar 1e25aee6fa ekf2: estimator aid source status (baro height) 2022-05-25 09:25:12 -04:00
Silvan Fuhrer 4dbe6f0a1c simulator_mavlink: fix MAV_TYPE_VTOL_TAILSITTER case
This type (23) doesn't specify a motor number, so it can't be properly handled.
There are duo (19) and quad (20) tailsitter types that still work in simulation.

Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2022-05-24 17:58:44 -04:00
Daniel Agar 376201e64d boards: px4_fmu-v5/v5x init all I2C pins 2022-05-24 11:02:03 -04:00
bresch d04a91a3ae ekf2_post-processing: use estimator_status_flags instead of bitmasks 2022-05-24 16:15:42 +02:00
Beat Küng 016b8aeb35 MulticopterRateControl: fix thrust sign for acro
Regression from fbc109436f
2022-05-24 15:03:17 +02:00
Matthias Grob 44be415e0e mission_block: make "Delay until" item work while landed
To enable landing, waiting and taking off again e.g. for delivery.
2022-05-24 13:42:03 +02:00
Matthias Grob 0be474430c Commander: don't disarm on landing amid a mission 2022-05-24 13:42:03 +02:00
Matthias Grob 4f34207c4e battery_params: increase default empty cellvoltage to 3.6v
Based on feedback that very often the battery is used down too low.
I observed this happens consistently when the cell voltage is properly
load compensated. The default load compensation before #19429 was very
inaccurate and resulted in unpredictable estimate.
After that if there is a usable current measurement and the battery is
within expected tolerances of the default internal resistance the
compensation is pretty good and 3.5V is too low for an empty compensated
cell voltage. That was seen in various logs where the compensated
cell voltage was already dropping fast after 3.6V.

In case the voltage is not load compensated the vehicle estimates the
state of charge a bit too low which is safer than to high
especially for a default configuration.
2022-05-24 11:26:58 +02:00
Mark Sauder a1fb9fb7c6 rcS: Keep Mag Cal with AUTOCONFIG param reset in rcS, deprecate rcS AUTOCNF param (#19693)
* Deprecate the rcS AUTOCNF script param and associated logic.

* Update posix rcS to match previous commit.
2022-05-23 20:35:22 -04:00
Daniel Agar 639222dd65 ekf2: estimator aid source status (GPS pos, GPS vel) 2022-05-23 16:21:49 -04:00
Daniel Agar 1ae467e9cd ekf2: estimator aid source status (starting with fake position) 2022-05-23 16:21:49 -04:00
Igor Misic 79a34b5aed px4iofirmware: fix for bug introduced with #19558 2022-05-23 14:59:11 -04:00
Daniel Agar d25a784a3a icm42688p: only check configured registers periodically (as intended) 2022-05-23 14:58:23 -04:00
bresch c57c575cfe ekf2: use explicit flags instead of bitmask position
This prevents bitmask mismatch when a new flag is inserted
2022-05-23 14:43:02 -04:00
Matthias Grob 62edcc7a57 battery: only compensate using sane current 2022-05-23 16:40:32 +02:00
Matthias Grob 2cbdcc9671 battery: default to reasonable internal resistance
instead of disabling the load compensation using current.
2022-05-23 16:40:32 +02:00
Matthias Grob 58b1139a21 battery: allow setting precise internal resistance with parameter 2022-05-23 16:40:32 +02:00
Matthias Grob 2c5a7ea118 battery: rather undercompensate for load
than over compensate which makes the estimate to high and breaks batteries
beause they get flown for too long.
2022-05-23 16:40:32 +02:00
Serhat Aksun bc220ddb82 sensors/vehicle_magnetometer: fix multi_mode check
Signed-off-by: Serhat Aksun <serhat.aksun@maxwell-innovations.com>
2022-05-23 10:09:41 -04:00
Igor Misic 12a81979a8 px4io: replace safety_off state with safety button event (#19558)
internal PX4IO safety_off state is removed and replaced with a normal safety button event. From this 'commit' commander is taking care of the PX4IO safety.
2022-05-23 06:54:37 +02:00
Igor Misic 08dcc72e1f commander/safety: replace safety.msg with Safety class (#19558) 2022-05-23 06:54:37 +02:00
Daniel Agar b800600a6c boards: px4_fmu-v2_fixeding disable fw_autotune_attitude_control to save flash 2022-05-22 12:32:24 -04:00
Daniel Agar 61d5a23445 Jenkinsfile: hardware test rack skip runing HITL airframes 2022-05-22 12:31:08 -04:00
Julian Oes 47bcee70c4 ROMFS: disable UAVCAN in HITL
Without this, uavcan creates MixingOutput classes which then create
empty actuator_outputs publications. This then prevents the motor
output in HITL to be forwarded to the simulator via mavlink.
2022-05-21 17:53:20 -04:00
bresch 00e88a02c0 baro bias: improve innovation sequence monitoring
The baro observation noise parameter is often over-estimated in order as
a measure to mitigate temporary offsets in the readings due to wind
gusts or poor pressure compensation tuning. The side effect is that the
innovation sequence monitoring based on normalized innovation struggles
to detect an offset in the state because the innovation isn't
statistically significant.
To counter this issue, a simpler check is added to trigger the process
noise boost when the innovation has the same sign for a long period of
time.
2022-05-21 22:37:04 +02:00
PX4 BuildBot c3f10c2cb1 Update submodule sitl_gazebo to latest Sat May 21 12:38:49 UTC 2022
- sitl_gazebo in PX4/Firmware (422be90140): https://github.com/PX4/PX4-SITL_gazebo/commit/48440d7b5c78a21182415266334981f1163f4b2c
    - sitl_gazebo current upstream: https://github.com/PX4/PX4-SITL_gazebo/commit/5eb5df80450a412076bfc24e7dd343839020f056
    - Changes: https://github.com/PX4/PX4-SITL_gazebo/compare/48440d7b5c78a21182415266334981f1163f4b2c...5eb5df80450a412076bfc24e7dd343839020f056

    5eb5df8 2022-04-28 stmoon - ROS2_PLUGIN set OFF by default
c8f4d5b 2022-04-28 stmoon - update the motor failure plugin for ros2
2022-05-21 14:58:42 -04:00
Daniel Agar db4545e442 Update world_magnetic_model to latest Sat May 21 11:14:10 UTC 2022 2022-05-21 14:57:55 -04:00
mcsauder 6b0788ff46 Standardize variable naming and formatting across vehicle attitude controller files. 2022-05-21 12:22:18 -04:00
Junwoo Hwang 422be90140 Update Issue and Pull Request Templates
1. Change the paragraph headings to proper Markdown headings (easier to
link / structure the Markdown)
2. Move PULL_REQUEST_TEMPLATE into .github folder
3. Change description in Issue template and remove outdated DevGuide
Repository information
4. Add a bug emoji to bug report isue template
5. Support automatically adding labels 'bug-report' and
'feature-request' to easily sort / filter appropriate issues in Github
2022-05-20 21:01:14 -04:00
Julian Oes d08e5eae2d sitl_gazebo: update submodule
This fixes the issue where HITL doesn't connect over USB.
2022-05-20 21:00:33 -04:00
Daniel Agar c40631c136 commander: handle RC loss timeout if manual_control_setpoint stops publishing (#19680)
Co-authored-by: Matthias Grob <maetugr@gmail.com>
2022-05-20 19:37:30 -04:00
David Sidrane 2bdeb36ea3 px4_fmu-v6x:Add Rev 4 Sensors 2022-05-20 15:52:32 -04:00
David Sidrane 9d0e57230a boards: new px4_fmu-v6c board support (#19544) 2022-05-20 15:49:06 -04:00
Julian Oes 33a77c225c commander: lockdown is not termination
We use lockdown to prevent outputs like motors and servos from being
active in HITL simulation. This means that we can't treat the lockdown
flag as a flight_terminated, otherwise we can't arm in HITL at all.
2022-05-20 09:43:32 -04:00
Nicolas MARTIN a0cb7f6258 HITL: undefined time_remaining_s should be NAN 2022-05-20 09:38:43 -04:00
Nico van Duijn 04071b9456 Commander: ignore MAV_CMD_REQUEST_MSG
This commit adds the MAV_CMD_REQUEST_MESSAGE to the list of vehicle
commands which are ignored without generating a warning sound.
2022-05-20 15:36:42 +02:00
Matthias Grob 38e027ee45 ArmStateMachine: remove dependency on armed.armed
To have the internal state as single source of truth
for the arming state within Commander.
2022-05-20 13:51:51 +02:00
Matthias Grob 37c485ce89 ArmStateMachine: move arm state into the class 2022-05-20 13:51:51 +02:00
Matthias Grob 47532ca07b ArmStateMachine: replace state name array with method 2022-05-20 13:51:51 +02:00
alessandro c5bbf4553b ubuntu.sh: fix gazebo and openjdk for 22.04 2022-05-20 06:38:09 +02:00
Matthias Grob 887fe7dba2 commander_params: shorten low battery action delay
I got multiple times the feedback now that a consistent delay
is helpful and makes sense but the default delay
is too long
for low battery action where you're trying to come back in time
and possibly the emergency reaction kicks in while the critical action
is executing which leads to a longer accumulated delay.
2022-05-19 21:54:09 +02:00
Daniel Agar fd4b62032e commander: publish actuator_armed first on any change 2022-05-19 12:47:50 -04:00
PX4 BuildBot 9518b65f93 Update submodule mavlink to latest Thu May 19 00:38:59 UTC 2022
- mavlink in PX4/Firmware (87c73145b36a835b1635de0498a5613a7af5cafc): https://github.com/mavlink/mavlink/commit/a1cb2c0e71f191f04da3d92d92db8702a7e91ff6
    - mavlink current upstream: https://github.com/mavlink/mavlink/commit/99e82cad70494903a23a67de08ff9cbb5918d8f3
    - Changes: https://github.com/mavlink/mavlink/compare/a1cb2c0e71f191f04da3d92d92db8702a7e91ff6...99e82cad70494903a23a67de08ff9cbb5918d8f3

    99e82cad 2022-05-19 Hamish Willee - Deprecated GPS_INJECT_DATA (#1842)
bf3df03d 2022-05-16 Hamish Willee - WIND_COV - accuracy units are m/s (#1844)
a73d4864 2022-05-11 Hamish Willee - development.xml FIGURE_EIGHT_EXECUTION_STATUS - add a note about it being set at lower rate (#1841)
2022-05-18 21:41:08 -04:00
mcsauder e8da98fd14 Add gyro clipping to mirror accel clipping monitoring instances. 2022-05-18 21:16:05 -04:00
mcsauder ea10eacb99 Replace EKF/common.h #defines with enums. 2022-05-18 09:25:19 -04:00
Silvan Fuhrer 8f2c84d36f VTOL paras: add min of 0.1 to transition times
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2022-05-18 10:01:04 +02:00
Silvan Fuhrer c29ca6c959 tailsitter: guard against division by 0
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2022-05-18 10:01:04 +02:00
Silvan Fuhrer 3cf07e1be5 VTOL: rename params _PTCH to _PITCH
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2022-05-18 10:01:04 +02:00
Silvan Fuhrer 7c5f0121a5 VTOL: remove some unsued variables
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2022-05-18 10:01:04 +02:00
Silvan Fuhrer 2b7efeacca vtol_vehicle_status: replace several status bools by single vehicle_vtol_state
Replace vtol_in_rw_mode, vtol_in_trans_mode, in_transition_to_fw by vehicle_vtol_state.

Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2022-05-18 10:01:04 +02:00
Silvan Fuhrer 635f64a2e5 Commander: remove permanent stabilization option for fixed-wing flight
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2022-05-18 10:01:04 +02:00
Silvan Fuhrer d8444df11c Set tailsitter flag via vehicle status
Removes the necessity of including vtol_type.h in other modules.

Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2022-05-18 10:01:04 +02:00
Silvan Fuhrer 7292ce483c VTOL: move to cpp params API
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2022-05-18 10:01:04 +02:00
Daniel Agar ff16131874 icm42670p run at full speed 2022-05-17 08:14:22 -07:00
Daniel Agar 83daf648ef drivers/imu/invensense/icm42670p: cleanup and small fixes 2022-05-17 08:14:22 -07:00
Peter van der Perk 3ea492b7a2 UCANS32K146 Fix CAN1 STB pin 2022-05-17 03:13:05 -07:00
Matthias Grob 02e11eddce mavlink_mission: add more specific information to the error message 2022-05-17 07:49:00 +02:00
Junwoo Hwang 146f0cafe0 Add get*Expo() functions to the Sticks library
To return Exponential Values, which is helpful for reducing the
sensitivity of the stick around the centered value (0), since it's
exponential curve.

Useful for user adjustment implementations, where accidentally touching the stick
wouldn't have so much effect when using the Exponential value, compared
to using the raw position value.
2022-05-16 23:55:05 +02:00
Matthias Grob 4bd2d4cf35 rc_update: add unit tests for mode slot
To verify RC mode switch and mode button functionality works as expected.
2022-05-16 14:37:29 +02:00
achim 3fe4c6e3f5 boards: matek h743-mini specify drivers to still fit to flash
- the code has become a bit bigger again that now the drivers have to be specified a bit more precisely to still fit into the flash.
2022-05-13 14:05:04 -04:00
Beat Küng 32df76ca8a dshot: handle DSHOT_MIN for reversible outputs
Also ensures there's no deadband if dead_l == dead_h (the default).
2022-05-13 14:04:01 -04:00
Matthias Grob 57a0289627 trajectory_setpoint: correct comment typo "kinematically"
Co-authored-by: Mathieu Bresciani <brescianimathieu@gmail.com>
2022-05-12 17:19:48 +02:00
Matthias Grob 4017f4bb0b vehicle_local_position_setpoint: reorder fields for clarity 2022-05-12 17:19:48 +02:00
Matthias Grob b67fbac296 uuv_pos_control: siplify passing on trajectory position setpoint 2022-05-12 17:19:48 +02:00
Matthias Grob 200124f094 mavlink_receiver: check entire Vectors for NAN
Note: Behavioral change Inf also results in the flag being true.
2022-05-12 17:19:48 +02:00
Matthias Grob 8ca28f3796 Separate message for trajectory setpoint 2022-05-12 17:19:48 +02:00
Beat Küng 9166b6953d output drivers: init SmartLock after exit_and_cleanup
This fixes an invalid memory access when exiting the module:
exit_and_cleanup destroys the object, but lock_guard is destructed after
and accesses the lock.
2022-05-12 08:16:35 -04:00
Beat Küng 0a9378e0f6 mavsdk_tests: ensure motor is stopped for motor failure test 2022-05-12 07:58:56 +02:00
Alessandro Simovic b5a3c58a95 sitl: loosen some timeouts
The typhoon_h480 model would not always complete takeoff in 30 seconds
or finish the mission within 60 seconds.
2022-05-12 07:58:56 +02:00
Alessandro Simovic 5c1932dcca disable engine failure detector for SITL VTOL
Tried increasing ESC timeout for VTOL first

VTOL sitl tests are failing because the ESC telemetry seems to be coming
in at 0.3 Hz
2022-05-12 07:58:56 +02:00
Alessandro Simovic 06f69cd469 Add SITL tests for control allocation 2022-05-12 07:58:56 +02:00
Beat Küng 0f860045f7 failure_detector: add failure injector class for motor telemetry
This allows to test motor failures via 'failure motor off -i 1' on a real
system.
2022-05-12 07:58:56 +02:00
Alessandro Simovic 4640f395d7 simulator_mavlink: Add ESC telemetry 2022-05-12 07:58:56 +02:00
Alessandro Simovic 20ccfbb719 control_allocator: remove failed motor from effectiveness
- limit to handling only 1 motor failure
- Log which motor failures are handled
- Remove motor from effectiveness matrix without
  recomputing the scale / normalization
2022-05-12 07:58:56 +02:00
Alessandro Simovic fb71e7587c failure_detector: add motor/ESC failure detection 2022-05-12 07:58:56 +02:00
Beat Küng dfd934fbdb esc_report: add actuator_function 2022-05-12 07:58:56 +02:00
Hamish Willee aab2feb8f5 pwm.cpp: remove the test example (#19587) 2022-05-12 07:56:13 +02:00
alexklimaj 0f69f8ced8 Fix uavcan battery causing immediate RTL time remaining low 2022-05-11 21:48:12 -04:00
Daniel Agar fba7c972d1 drivers/rc_input: ensure RC inversion is disabled initially and latch RC_INPUT_PROTO conservatively
- this allows jumping straight to a non-SBUS RC protocol
 - increased the scan time per protocol 300->500 ms, which the newer DSM parser seems to need in some cases.
 - only set RC_INPUT_PROTO if we've had a successful RC lock for > 3 seconds
2022-05-11 14:30:41 -04:00
Daniel Agar c772e5230f commander: remove compile time dependencies on non-commander parameters
- this allows builds with mavlink fully disabled
 - move commander MAN_ARM_GESTURE, RC_MAP_ARM_SW, MC_AIRMODE checks to manual_control
2022-05-11 10:14:23 -04:00
Beat Küng 8d36ba6727 log_writer_file: fix corner case when mission log is enabled
Normally _should_run for mission is only ever true if _should_run for the
normal log is. There are exceptions though:
- the log buffer fails to allocate
- there was a write failure (e.g. due to SD card removal)
In that situation, the writer would not wait anymore but busy-loop.
2022-05-11 10:06:35 -04:00
Beat Küng ebbe08bc86 log_writer_file: protect access to _should_run, use px4::atomicbool for _exit_thread 2022-05-11 10:06:35 -04:00
Peter van der Perk 0053aeec97 Cyphal restore O1Heap statistics 2022-05-11 09:49:18 -04:00
Peter van der Perk e62e8b58d1 Update UCANS32K146 clocking to use XTAL and support higher pheriphal freq 2022-05-11 06:02:39 -07:00
Silvan Fuhrer ea2c1095c2 ROMFS: SITL tiltrotor: enable control allocaton and only tilt front motors
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2022-05-11 10:19:37 +02:00
Silvan Fuhrer 866f9fa95b Control Allocation: add option to disable yaw by differential thrust
This replaces the propeller_torque_disabled flag to disable yaw by differential thrust
for tiltrotor and tailsitter VTOLs, as propeller_torque_disabled is not enough to set
effectiveness of an acutator in the yaw axis to 0 in case it's tilted.

Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2022-05-11 10:19:37 +02:00
Silvan Fuhrer 46179586fb Control Allocation: Tiltrotor: pass only thrust magnitude instead of 3D thrust to allocator
Special case tiltrotor: instead of passing a 3D thrust vector (that would mostly have a x-component in FW, and z in
MC), pass the vector magnitude as z-component, plus the collective tilt. Passing 3D thrust plus tilt is not feasible as they
can't be allocated independently, and with the current controller it's not possible to have collective tilt calculated
by the allocator directly.

Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2022-05-11 10:19:37 +02:00
Daniel Agar a71d101869 ROMFS: delete 3037_parrot_disco_mod airframe 2022-05-10 16:23:20 -04:00
Daniel Agar 42d7fb0b66 ROMFS: delete 3035_viper airframe and mixer 2022-05-10 16:23:20 -04:00
Daniel Agar 61c5d11375 ROMFS: delete 3034_fx79 airframe 2022-05-10 16:23:20 -04:00
Daniel Agar f1a1ed4958 ROMFS: delete 3030_io_camflyer airframe 2022-05-10 16:23:20 -04:00
Daniel Agar b00d0720cd ROMFS: delete 13010_claire airframe 2022-05-10 16:23:20 -04:00
Daniel Agar 451cc5058d ROMFS: delete minimal DJI airframes 2022-05-10 16:23:20 -04:00
Daniel Agar fa1891ace2 ROMFS: delete steadidrone airframes 2022-05-10 16:23:20 -04:00
Daniel Agar af5e903b82 .vscode/.gitignore ignore all log files 2022-05-10 11:39:55 -04:00
Daniel Agar b77bb6d88d Makefile: bootloaders_update add all Matek targets 2022-05-10 11:39:54 -04:00
Daniel Agar 45e3fad3e0 Update submodule GPSDrivers to latest Tue May 10 12:38:49 UTC 2022
- GPSDrivers in PX4/Firmware (3ac8fdbe29): https://github.com/PX4/PX4-GPSDrivers/commit/6534b050ee1a48af7932c46a9a87277eed1cc997
    - GPSDrivers current upstream: https://github.com/PX4/PX4-GPSDrivers/commit/58968922b718176be8756f11113d16b2cfbc4022
    - Changes: https://github.com/PX4/PX4-GPSDrivers/compare/6534b050ee1a48af7932c46a9a87277eed1cc997...58968922b718176be8756f11113d16b2cfbc4022

    5896892 2022-04-26 Seppe Geuens - sbf: add heading support (#100)

Co-authored-by: PX4 BuildBot <bot@px4.io>
2022-05-10 11:38:52 -04:00
PX4 BuildBot 4b7b7dfa8d Update submodule mavlink to latest Tue May 10 12:39:00 UTC 2022
- mavlink in PX4/Firmware (d6dff7daa984514185a8f31f6e653a69a278ded8): https://github.com/mavlink/mavlink/commit/3b52eac09c2e37325e4bc49cd2667ea37bf1d7d2
    - mavlink current upstream: https://github.com/mavlink/mavlink/commit/a1cb2c0e71f191f04da3d92d92db8702a7e91ff6
    - Changes: https://github.com/mavlink/mavlink/compare/3b52eac09c2e37325e4bc49cd2667ea37bf1d7d2...a1cb2c0e71f191f04da3d92d92db8702a7e91ff6

    a1cb2c0e 2022-05-05 KonradRudin - Figure eight MAV_CMD (#1831)
0ebdf846 2022-04-28 Hamish Willee - common.xml: Deprecate MAV_CMD_GET_MESSAGE_INTERVAL for MAV_CMD_REQUEST_MESSAGE. (#1835)
f357fc78 2022-04-27 Hamish Willee - Deprecate MAV_CMD_GET_HOME_POSITION for MAV_CMD_REQUEST_MESSAGE (#1834)
2022-05-10 11:37:55 -04:00
Daniel Agar 371a551f05 github actions: add all matek targets and sort 2022-05-10 11:33:01 -04:00
Daniel Agar 73f4c3ea87 Jenkins: compile add all matek targets and sort 2022-05-10 11:32:52 -04:00
Daniel Agar 6d390f393c boards: matek_h743-mini_bootloader fix NuttX CONFIG_ARCH_BOARD_CUSTOM_DIR 2022-05-10 11:28:26 -04:00
Daniel Agar 5778553508 boards: matek_h743_bootloader fix NuttX CONFIG_ARCH_BOARD_CUSTOM_DIR 2022-05-10 11:26:15 -04:00
Daniel Agar a80a74af79 Jenkins: compile update uavcanv1 -> cyphal 2022-05-10 11:23:22 -04:00
Daniel Agar 858292209d boards: px4_fmu-v5_uavcanv0periph disable common differential pressure sensors to save flash 2022-05-10 11:17:24 -04:00
Peter van der Perk b1ad4e8864 Upgrade libcanard to 3.0 and rename uavcan_v1 to cyphal
Did some prep work for redundant interfaces by introducing CanardHandle class to decouple physical interfaces from cyphal.cpp
2022-05-10 09:46:18 -04:00
Beat Küng 3ac8fdbe29 px4/fmu-v5/stackcheck: disable module to reduce flash 2022-05-10 10:25:06 +02:00
Beat Küng 689ceefada px4/fmu-v2/fixedwing: disable module to reduce flash 2022-05-10 10:24:55 +02:00
Beat Küng fc062ffad4 omnibus/f4sd/ekf2: disable module to reduce flash 2022-05-10 10:24:43 +02:00
Konrad 0e464a91be Remove contradicting geofence parameter description
The flight termination action on geofence violation is described as only trigger, when the corresponding circuit breaker is not disabled. However, the description of the circuit breaker states, that the geofence action is not depedning on this circuit breaker. The implementation follows the description of the circuit breaker. Hence the GF_ACTION description is adapted.
2022-05-10 09:01:12 +02:00
Beat Küng 6a35c9f5fe px4/fmu-v5/protected.px4board: disable module to reduce flash 2022-05-10 08:57:39 +02:00
Beat Küng 639c5c741e px4/fmu-v2/multicopter.px4board: disable module to reduce flash 2022-05-10 08:57:39 +02:00
Beat Küng abb37a3d27 holybro/kakutef7: disable module to reduce flash 2022-05-10 08:57:39 +02:00
Beat Küng 5d114329d7 cubepilot/cubeorange/test.px4board: disable module to reduce flash 2022-05-10 08:57:39 +02:00
Beat Küng adc6472480 cuav/x7pro/test.px4board: disable module to reduce flash 2022-05-10 08:57:39 +02:00
Beat Küng 5cdb6fbd8e control_allocator: add helicopter mixer
Same logic as the existing mixer.
Untested.
2022-05-10 08:57:39 +02:00
Beat Küng 32402f31df control_allocator: increase max num motors to 12 2022-05-10 08:57:39 +02:00
Beat Küng 9f5c5591a2 ActuatorEffectivenessRotors: fix motor count check
Check during init to avoid out-of-bound access.
2022-05-10 08:57:39 +02:00
Daniel Agar 15296ab453 cmake: NuttX check that CONFIG_ARCH_BOARD_CUSTOM_DIR is in PX4_BOARD_DIR 2022-05-09 15:23:18 -04:00
Silvan Fuhrer 5d6c8c986d Commander: high wind speed handling updates
- add logic for detecting high wind speed in Commander,
and handle it toghether with wind speed warning
- trigger and enforce RTL if COM_WIND_MAX is breached

Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2022-05-09 19:09:40 +02:00
Silvan Fuhrer 1aad82f87d Commander: add max flight time RTL
Adds COM_FLT_TIME_MAX param and logic in Commander to enforce RTL when
flight time is above this value. User can only override to LAND mode,
but not proceed flight beyond that.

Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2022-05-09 19:09:40 +02:00
Daniel Agar 2e1cdc9e75 boards: modalai_fc-v1 enable dshot on all outputs 2022-05-09 11:31:31 -04:00
Igor Mišić ce4e9f6690 uavcan: use timer 6 by default on stm32f7 2022-05-06 19:45:53 -04:00
achim 9c12c2a152 boards: matek h743 update unified target 2022-05-06 14:57:37 -04:00
achim 76cf4332d9 boards: matek_h743-mini sync all Matek H743 boards 2022-05-06 14:56:20 -04:00
Thomas Stastny 90789be68f fw pos ctrl: turn back to takeoff point with npfg 2022-05-06 16:36:03 +02:00
Thomas Stastny 3ef5f433b5 fw pos ctrl: add missing guidance control interval setting to control_manual_position() 2022-05-06 16:36:03 +02:00
Thomas Stastny 1ab9fb22ee fw pos ctrl: fix state switching logic for takeoff and landing 2022-05-06 16:36:03 +02:00
Matthias Grob b3776134b8 Commander: ensure diconnected battery is cleared from bit field 2022-05-06 10:32:27 -04:00
Beat Küng 113982e3e7 commander: fix incorrect return in set_link_loss_nav_state()
If both local position and altitude were not valid, then both RC loss and
datalink loss would not trigger any failsafe at all, independently from
the configured action.
2022-05-06 10:14:13 -04:00
achim a71cf21c28 boards: matek_h743-slim_default try to fit as many modules of all categories as possible into the flash. 2022-05-06 10:13:30 -04:00
achim 87ebf17ab0 boards: matek h743 enable 12 pwm outs on slim and wing V1.0 and V1.5 2022-05-06 10:10:59 -04:00
achim fc887a23af boards: matek h743 mini 2022-05-06 10:09:14 -04:00
Silvan Fuhrer 20400cbb74 ROMFS: reduce FW_SPOILERS_LND to 0.4 to leave ailerons enough control authority
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2022-05-06 16:05:03 +02:00
Matthias Grob 843c814fb8 MulticopterPositionControl: allow offboard takeoff also when not landed 2022-05-06 04:12:18 -07:00
Matthias Grob fbc109436f MultiCopterRateControl: refactor setpoint naming 2022-05-06 04:12:18 -07:00
Matthias Grob 1211a457d7 MulticopterPositionControl: Overwrite vertical acceleration during takeoff rampup only 2022-05-06 04:12:18 -07:00
Matthias Grob d9a2fe5226 Revert "MCPosControl: fix invalid setpoint race condition"
This reverts commit e7a2c1d88e.
2022-05-06 04:12:18 -07:00
achim 1f3a78b535 boards: mro ctrl zero classic enable all pwm outs
* enable all available pwm outs, cause io timer 15 is supported now
2022-05-05 22:39:12 -04:00
mcsauder 2a66be4899 Colocate struct stateSample with other instances of *Sample structs. 2022-05-05 18:41:50 -04:00
mcsauder a0d9687409 Add c++ style initializers where missing in EKF/common.cpp, standardize tab/space indentation, align comments and format whitespace. 2022-05-05 18:41:50 -04:00
bresch cab477d715 ekf2: optimize KHP computation
Calculating K(HP) takes less operations than (KH)P because K and H are
vectors.

Without considering the sparsity optimization:
- KH (24*24 operations) is then a 24x24 matrix an it takes
24^3 operations to multiply it with P. Total: 14400 op

- HP (24*(24+24-1) operations) is a row vector
and it takes 24 operations to left-multiply it by K. Total:1152 op
2022-05-05 10:34:17 -04:00
achim 3233272cbb boards: diatone_mamba-f405-mk2_default fix /dev/ttyS2 name 2022-05-05 09:41:49 -04:00
bresch c890e8bf99 WindEstimator: fix state covariance prediction
All the states are stationary so the discrete-time process noise Qk can
be directly added to the state covariance matrix P
2022-05-05 11:53:33 +02:00
Konrad 14a2fdfe55 Removed l1 control slope angle limitation. The maximal approach angle to the line was set to 45°, no the approach angle can be up to 90°. 2022-05-04 21:23:22 -04:00
achim 2bee8bfd45 boards: diatone_mamba-f405-mk2_default
- change modules still fit to flash, there is no board variant with sd slot
2022-05-04 21:08:44 -04:00
achim bf8d759d3d boards: matek h743 slim support v1 and v1.5 IMU variants
- remove temp compensation to still fit into flash
2022-05-04 14:05:16 -04:00
Matthias Grob 46fdc28cf8 MulticopterPositionControl: fix typo "descen{d/t}" 2022-05-04 02:22:18 -07:00
Daniel Agar 7f1bb556e9 Update src/modules/mc_pos_control/MulticopterPositionControl.cpp
Co-authored-by: Mathieu Bresciani <brescianimathieu@gmail.com>
2022-05-04 02:22:18 -07:00
Matthias Grob 3fb4889ab9 MultcopterPositionControl: fix executing a zero setpoint for 200ms
This is a combination of the originally introduced delay:
06c10f61c1
then the emergency failsafe being changed to not just land,
position control being rescheduled to not overwrite every setpoint in:
e502214429576ce68ac3fee9d2db19112f4604b9
and it being fixed by overwriting the setpoint but not removing
the long obsolete hystersis here:
114e85d260
2022-05-04 02:22:18 -07:00
Matthias Grob cb484c5ac7 PositionControl: publish NAN jerk
because the controller does not read or write jerk
2022-05-04 02:22:18 -07:00
Matthias Grob 5055fec796 MulticoperPositionControl: explicitly overwrite setpoint timestamp when setpoint is reset 2022-05-04 02:22:18 -07:00
Matthias Grob 424fd8b304 MulticoperPositionControl: remove time_stamp_now alias for timestamp_sample of the local position
to make it explicit what is used is not a fresh hrt_absolute_time() call
by this module.
2022-05-04 02:22:18 -07:00
Matthias Grob 8180f931de MulticopterPositionControl: rename local_pos -> vehicle_local_position 2022-05-04 02:22:18 -07:00
Matthias Grob 4ffe796b4d MulticopterPositionControl: clarify previous position control naming 2022-05-04 02:22:18 -07:00
Daniel Agar ad6592f669 mc_pos_control: require current trajectory setpoint to run controller 2022-05-04 02:22:18 -07:00
Silvan Fuhrer 138772386f FW Position control: explicitly set spoiler/flaps in every control mode
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2022-05-03 15:11:21 +02:00
Silvan Fuhrer 089673ff35 only allow positive spoiler and flap controls
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2022-05-03 15:11:21 +02:00
Silvan Fuhrer 64ff31aa08 VTOL: add flap and spoiler support
- including slew rate limiting
- adds option to set spoiler setting during the Land phase (hover)

Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2022-05-03 15:11:21 +02:00
Silvan Fuhrer 4b8f93de5c FW: rework spoiler/flap control logic
- remove separate flaperon controls input to mixer instead enable spoiler support
- add slew rate limiting on both flap and spoiler controls
- add spoiler configuration for Landing and Descend
- add trimming from spoiler deflection
- FW Attitude control: remove FW_FLAPS_SCL param -->
    The flap settings for takeoff and landing are now specified relative to full range.

Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2022-05-03 15:11:21 +02:00
Silvan Fuhrer 21a2892f47 use actuator_controls[8] for collective tilt for tiltrotor VTOL, instead of [4]
[4] is reserved for Flaps, so also having the tilt on it was preventing us from
using flaps on tiltrotors, and other ripple effects.
By using [8] the tilt is separated from all other channels - it requires to increase the size of
actuator_controls by 1 to 9.

Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2022-05-03 15:11:21 +02:00
Peter van der Perk 7e6aa28106 Added LTO targets for CI 2022-05-02 10:07:54 -04:00
Peter van der Perk 108c98a691 Added experimental LTO kconfig option 2022-05-02 10:07:54 -04:00
Beat Küng 8da02e2233 dshot: avoid using pwm failsafe params when dynamic mixing is enabled 2022-05-02 07:16:23 +02:00
Daniel Agar 7784cd1f40 boards: mro_ctrl-zero-classic updates to sync with ctrl-zero-h7-oem 2022-04-30 09:40:52 -04:00
Daniel Agar 6fc857772d ekf2: remove unnecessary const references 2022-04-29 21:39:02 -04:00
ShiauweiZhao 4a6e958100 add tattu_can smart battery kconfig 2022-04-29 13:49:32 -04:00
Vincent Poon 080ba4458a holybro/kakuteh7: change Product ID to show board name properly in QGC
https://github.com/mavlink/qgroundcontrol/pull/10270
2022-04-29 07:21:58 +02:00
Beat Küng d94ec84e46 logged_topics: remove unused vehicle_angular_acceleration_setpoint, extend add_high_rate_topics 2022-04-28 19:51:28 -04:00
Beat Küng 4338976247 ActuatorEffectivenessRotors: add missing getEffectivenessMatrix
Fixes MOTORS_6DOF
2022-04-28 19:51:28 -04:00
Beat Küng efdf5b8fce vehicle_{thrust,torque}_setpoint.msg: fix comment 2022-04-28 19:51:28 -04:00
Beat Küng a9129ea003 logger watchdog: also check main thread
There was a time window where if a task with higher priority than the main
logger thread would busy-loop, it would block both logging threads and the
watchdog would not trigger if the writer was in idle state.
This can happen for fast SD card writes.
2022-04-28 19:49:24 -04:00
Beat Küng 9e0a8050a9 fix dshot: remove setAllFailsafeValues
Fixes a regression from c1e5e666f0,
where with static mixers the dshot outputs would go to max instead of 0
in a failsafe case.
2022-04-28 13:29:24 -04:00
Daniel Agar a15432fac1 drivers/rc_input: RC_INPUT_PROTO parameter minimal implementation (#19539)
Co-authored-by: chris1seto <chris12892@gmail.com>

Co-authored-by: chris1seto <chris12892@gmail.com>
2022-04-27 21:06:43 -06:00
Daniel Agar fc7e979d84 boards: px4_fmu-v5_uavcanv0periph disable modules to save flash 2022-04-26 08:39:19 -04:00
Daniel Agar 7ab9b0c6e2 boards: cubepilot_cubeorange_test disable examples/fake_gps to save flash 2022-04-26 08:39:19 -04:00
Daniel Agar f390f52058 drivers/differential_pressure: remove lib/drivers/airspeed dependency and cleanup
- split ms4525_airspeed into separate ms4515 and ms4525 drivers
2022-04-26 08:39:19 -04:00
Daniel Agar d1d15a6f6d differential pressure remove filters from drivers and average in sensors/airspeed 2022-04-26 08:39:19 -04:00
Daniel Agar 258f558fea apply differential pressure calibration (SENS_DPRES_OFF) centrally
- remove drv_airspeed.h and ioctls
2022-04-26 08:39:19 -04:00
JaeyoungLim c6ab4c466e Separate takeoff and landing to individual fixed wing states for FW pos control (#19495) 2022-04-26 10:24:36 +02:00
Daniel Agar d6210d1725 boards: px4_fmu-v6x_default disable common barometers to save flash 2022-04-26 01:43:10 -04:00
Daniel Agar 3d7a6b4021 mc_pos_control: silence invalid setpoint warning when disarmed 2022-04-26 01:37:37 -04:00
Daniel Agar b2bcd2631a boards/diatone/mamba-f405-mk2: disable modules to save flash 2022-04-26 01:08:18 -04:00
Daniel Agar c8d2d83e55 boards: px4_fmu-v2 restore systemcmds/ver needed for board init 2022-04-25 22:47:08 -04:00
Daniel Agar 7bb789cb23 boards: update bootloaders to latest 2022-04-25 22:39:25 -04:00
Daniel Agar d8a57e15b0 boards/mro/ctrl-zero-classic: fix code style 2022-04-25 22:07:32 -04:00
Daniel Agar 248f42f9ec boards/diatone/mamba-f405-mk2: fix code style 2022-04-25 22:07:21 -04:00
achim adacdad32d boards: add new Diatone Mamba F405 mk2 2022-04-25 21:53:58 -04:00
achim 1bf16cb4df boards: add new mRo Control Zero Classic 2022-04-25 21:52:38 -04:00
Daniel Agar 3d590af115 mc_att_control: only apply quat reset if estimate is newer than setpoint 2022-04-25 21:25:29 -04:00
Daniel Agar 23c89429ac systemcmds/param: set-default should mark parameter active to avoid race conditions 2022-04-25 21:24:18 -04:00
bresch e32a484906 [AUTO COMMIT] update change indication 2022-04-25 12:58:18 -04:00
bresch db0274e19b ekf: robustify bad_acc_vertical check
when the vertical pos or vel innov ratio is above the threshold, the
other one needs to be significant too and not just positive to trigger
the failure
2022-04-25 12:58:18 -04:00
Daniel Agar 980f696023 commander: mag calibration tolerate fit failure if sensor disabled 2022-04-25 12:41:20 -04:00
Daniel Agar 89374b2e1d mavlink: delete Mavlink instance if early startup fails 2022-04-25 12:38:28 -04:00
Alex Mikhalev 45dff7f71a commander: Add prearm check for flight termination 2022-04-25 11:57:37 -04:00
Daniel Agar 6359c8c008 mavlink: shell expand locking (#19308)
- on some H7 boards (cuav x7pro tested) there's an occasional hard fault when starting the mavlink shell that is no longer reproducible with the slightly expanded locking
 - this is likely just changing the timing (holding the sched lock for longer), but this should be harmless for now until we can identify the root cause
2022-04-25 11:53:22 -04:00
Junwoo Hwang af839c828d Set Tune's Volume for Power-Off in Commander to default volume of tune_control message 2022-04-25 11:47:43 -04:00
Daniel Agar 8df3932d6a icm20948: disable debug output (_debug_enabled=true) 2022-04-24 15:45:51 -04:00
Kirill Shilov 6981a70859 boards: new Sky-Drones AIRLink board support 2022-04-24 13:57:42 -04:00
Daniel Agar 503f97c8bc logger: add default ground truth logging for HITL/SITL 2022-04-24 12:45:23 -04:00
Silvan Fuhrer 680fe86c05 FlightTaskAuto: fix Weather Vane during landing
Weather vane should only set a yawrate setpoint, but no yaw setpoint.
Setting it to NAN when WV is active makes sure that whatever _yaw_setpoint
is set previously (e.g. through Waypoint) is not used.

Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2022-04-23 18:14:42 +02:00
Silvan Fuhrer ae5725e71a ROMFS: fix typo in convergence and clair configs
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2022-04-23 10:29:57 -04:00
Silvan Fuhrer bd1b0cab73 Mission: don't do anything in set_current_mission_index() when index=current already
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2022-04-22 22:32:06 -04:00
Daniel Agar 6f87a4546d platforms/nuttx: cdc_acm_check implement mavlink reboot directly 2022-04-22 21:16:07 -04:00
Daniel Agar 9073f3ccdf px4flow allow delayed background startup 2022-04-22 21:11:02 -04:00
mcsauder fef47513f5 Add gyro and accel range register values to the icm42688p driver. 2022-04-22 21:03:01 -04:00
Hamish Willee e1d3728208 13004_quad+_tailsitter - outputs mixed up 2022-04-22 07:34:05 +02:00
Daniel Agar 435a474dff Update submodule GPSDrivers to latest Thu Apr 21 12:38:20 UTC 2022
- GPSDrivers in PX4/Firmware (e9c07fac6f): https://github.com/PX4/PX4-GPSDrivers/commit/ddb1825fe33f517853ca8a3ef75ac6f2df76f613
    - GPSDrivers current upstream: https://github.com/PX4/PX4-GPSDrivers/commit/6534b050ee1a48af7932c46a9a87277eed1cc997
    - Changes: https://github.com/PX4/PX4-GPSDrivers/compare/ddb1825fe33f517853ca8a3ef75ac6f2df76f613...6534b050ee1a48af7932c46a9a87277eed1cc997

    6534b05 2022-04-19 Jonas Perolini - ubx: disable gps heading for in RTK float fix type (#104)

Co-authored-by: PX4 BuildBot <bot@px4.io>
2022-04-21 11:41:24 -04:00
bresch e9c07fac6f EKF: move python tuning tools to EKF module 2022-04-21 13:39:26 +02:00
bresch 49bc5082e7 Tools: add baro pressure coefficient tuning script 2022-04-21 13:39:26 +02:00
bresch ea7009546b mc wind: rename MC wind estimor tuning script 2022-04-21 13:39:26 +02:00
Julian Oes 37fa4bccb6 mavsdk_tests: update MAVSDK dependency
This should fix the CI issue where the test just hangs trying to
connect.
2022-04-20 11:48:53 -04:00
bresch 3c6b72c33b commander: improve set_in_air_position
- set local home using global pos and global home
- set local home using GNSS pos and global home
- set global home using global ref of local frame and local home
2022-04-19 15:29:25 +02:00
bresch e9a2b3f260 geofence: remove unused function parameters 2022-04-19 15:29:25 +02:00
bresch 3f3a4ac5c1 navigator: home_positionvalid -> global_home_position_valid
This is to make clear that the relevant part of the home position
message for navigator is the global one. Local home position isn't
required as everything is done in global coordinates.
The specific home_alt_valid is used when lat/lon are not used
2022-04-19 15:29:25 +02:00
bresch d2f2ba59a4 commander: refactor home position setter
- always try to set local or global home position when possible
- set global home with GNSS position if global pos from EKF isn't
  available
- reset home when significantly moved from home before takeoff (checking
  lpos or gpos or GNSS)
- reset home on takeoff transition
- reset home on mavlink arm command
- remove "home required accuracy" parameters, rely on validity flags
2022-04-19 15:29:25 +02:00
RomanBapst a7683eea07 mission_block: fix vehicle not exiting loiter after reaching exit heading
Signed-off-by: RomanBapst <bapstroman@gmail.com>
2022-04-19 13:32:18 +02:00
Thomas Stastny d5a6174e7f mission block: fix incorrectly calculated ccw loiter exit (#19487)
* mission block: fix incorrectly calculated ccw loiter exit

* mission block: update comment on orbit exit location
2022-04-19 13:30:11 +02:00
Daniel Agar 5e05d98fe2 output modules simplify locking for mixer reset and load
- fixes the deadlock in px4io ioctl mixer reset
   - px4io Run() locks (CDev semaphore)
   - mixer load goes through px4io ioctl MIXERIOCRESET which calls MixingOutput::resetMixerThreadSafe()
   - MixingOutput::resetMixerThreadSafe() stores a Command::Type::resetMixer command in an atomic variable, schedules a work queue cycle, then sleep spins until the command is cleared
   - the execution of the cycle eventually calls back into PX4IO::updateOutputs(), which tries to lock (and waits forever)
2022-04-19 08:52:17 +02:00
bazooka joe 5d95cc001f small cleanup for FlightTask::_evaluateDistanceToGround if-else 2022-04-18 20:47:41 -04:00
Daniel Agar 2e290345d3 boards: px4_fmu-v5_stackcheck disable unused systemcmds to save flash 2022-04-18 10:01:29 -04:00
Daniel Agar 90e2cab3fa boards: px4_fmu-v5/v5x run default & rtps boards through kconfiglib to cleanup 2022-04-18 09:58:36 -04:00
Daniel Agar 3cdeeb8d64 px4iofirmware: convert most files to c++ 2022-04-17 20:44:30 -04:00
Daniel Agar 3211d0ff19 boards: px4_fmu-v2_multicopter disable lightware_laser_serial to save flash 2022-04-17 18:59:56 -04:00
Daniel Agar d06032d7f3 boards: px4_fmu-v5_uacanv0periph disable systecmds/sd_bench to save flash 2022-04-17 16:04:01 -04:00
stmoon e7562df13a boards: px4_fmu_v5x_rtps disable several modules to save flash 2022-04-17 13:36:24 -04:00
Daniel Agar cbc37f9fcd boards: px4_fmu-v6x_default disable systemcmds/sd_bench to save flash 2022-04-14 20:07:28 -04:00
alexklimaj 6e0ac66c3c drivers/optical_flow: new PixArt PAA3905 optical flow driver 2022-04-14 16:47:53 -04:00
Beat Küng 9a9aad98a1 mavlink: add COMPONENT_METADATA message
And still support the previous message COMPONENT_INFORMATION for now.
2022-04-14 09:55:06 -04:00
Igor Misic cdfa65d792 commander/safety: set early safety_button_available 2022-04-14 08:03:37 +02:00
Thomas Debrunner f6bdc42977 param-reset: Add option to reset all configurable params, but not the ones that store vehicle information 2022-04-14 07:57:48 +02:00
Daniel Agar 3f13c70cae px4io cleanup LED and heater handling
- most px4_io-v2 boards have a blue LED that breathes for status
 - the pixhawk 2.1 (hex) re-used this blue LED for as an IMU heater (active low), but kept the same board id (so we have to detect at runtime)
 - the new cubepilot boards (yellow, orange) inverted the polarity of this heater pin
 - untangle the mess slightly so that things we know statically (eg cubepilot cubeorange LEDs and heater polarity) are handled at build time.
2022-04-13 18:43:59 -04:00
Alessandro Simovic 510ad00024 dronecan beeper: remove unneded var 2022-04-13 18:06:58 -04:00
chris1seto 912962f109 lib/rc: Fix DSM2/DSMX guessing routine and DSM range checking (#18270)
* Add Orangerx test case

Co-authored-by: Chris Seto <chris.seto@bossanova.com>
2022-04-13 17:29:08 -04:00
PX4 BuildBot 93268a285d Update submodule mavlink to latest Wed Apr 13 12:39:05 UTC 2022
- mavlink in PX4/Firmware (16fd85d9b9133f21a79a5c1bccbf4756f4b3c781): https://github.com/mavlink/mavlink/commit/56a5110d38b77c8477b0a1d6ee909607a588f98d
    - mavlink current upstream: https://github.com/mavlink/mavlink/commit/3b52eac09c2e37325e4bc49cd2667ea37bf1d7d2
    - Changes: https://github.com/mavlink/mavlink/compare/56a5110d38b77c8477b0a1d6ee909607a588f98d...3b52eac09c2e37325e4bc49cd2667ea37bf1d7d2

    3b52eac0 2022-04-13 Beat Küng - add COMPONENT_METADATA, deprecate COMPONENT_INFORMATION (#1823)
2022-04-13 14:09:03 -04:00
Daniel Agar 9c381a60b5 Tools/ecl_ekf: fix vibe_metrics usage (moved to vehicle_imu_status instances) 2022-04-13 10:36:45 -04:00
Daniel Agar b4158c1b48 sensors/vehicle_imu: Integrator use 1 microsecond for minimum DT
- this is a more realistic minimum for the system
2022-04-13 10:36:45 -04:00
Daniel Agar d2f1349d1a sensors/vehicle_imu: replace coning metric with actual integrator coning correction (averaged)
- this saves a relatively expensive higih rate cross product and gives
better visibility into what's actually happening internally
2022-04-13 10:36:45 -04:00
bresch 37cafe7dcd ekf rng kin: reduce minimum rng variance 2022-04-13 11:41:48 +02:00
bresch 4994649500 ekf rng kin: increase default gate size
The user needs to tune the range finder noise parameters properly and we
shouldn't need such a small gate
2022-04-13 11:41:48 +02:00
bresch 1fbe04986f ekf rng finder consistency: simplify class member names 2022-04-13 11:41:48 +02:00
bresch 4c03f0bc50 ekf: make range finder kin consistency gate tunable by parameter 2022-04-13 11:41:48 +02:00
bresch 079a5e92ba ekf: run rng consistency check only when not horizontally moving
The check assumes a non-moving terrain height
2022-04-13 11:41:48 +02:00
bresch d903613c9c ekf: add logging for rng kinematic consistency check 2022-04-13 11:41:48 +02:00
bresch 8693ad15a7 ekf: add logging of range finder consistency check 2022-04-13 11:41:48 +02:00
bresch baf9cc9597 ekf: use uint64_t for time variables 2022-04-13 11:41:48 +02:00
bresch 9fc331b7ea ekf: requires kinematically consistent range finder data to continue terrain aiding 2022-04-13 11:41:48 +02:00
bresch 78211f9dbb ekf: improve rng consistency check
To pass from invalid to valid:
- time hysteresis
- some vertical velocity
- test ratio < 1
- low-passed signed test ratio < 1

To pass from valid to invalid:
- low-passed signed test ratio >= 1
2022-04-13 11:41:48 +02:00
bresch b1ea2e4e15 ekf: use same gate for innov and innov sequence monitoring 2022-04-13 11:41:48 +02:00
bresch f96287b80a ekf: access member variable without getter 2022-04-13 11:41:48 +02:00
bresch 904bf8ef9f ekf: add range finder kinematic consistency check
At each new valid range measurement, the time derivative of the distance
to the ground is computed and compared with the estimated velocity.
The average of a normalized innovation squared statistic check is used
to detect a bias in the derivative of distance measurement,
indicating that the distance measurements are kinematically inconsistent
with the filter.
2022-04-13 11:41:48 +02:00
bresch 064518f57a ekf: extract range finder noise computation 2022-04-13 11:41:48 +02:00
Matthias Grob 97b2947416 FlightTaskAuto: refactor _commanded_speed_ts -> _time_last_cruise_speed_override 2022-04-13 12:23:27 +03:00
Matthias Grob 68cf686892 FlightTask: rename and move setCruisingSpeed() -> overrideCruiseSpeed() 2022-04-13 12:23:27 +03:00
Matthias Grob f892a624b7 FlightModeManager/FixedwingPositionControl: robustify vehicle command parameter casting 2022-04-13 12:23:27 +03:00
Matthias Grob 6ce3e88f9d vehicle_command: specify what SPEED_TYPEs are for 2022-04-13 12:23:27 +03:00
RomanBapst 3ed929c7b6 addressed review comments
Signed-off-by: RomanBapst <bapstroman@gmail.com>
2022-04-13 12:23:27 +03:00
RomanBapst b335710655 vehicle_command: added enum for speed types
Signed-off-by: RomanBapst <bapstroman@gmail.com>
2022-04-13 12:23:27 +03:00
RomanBapst d41de33a85 FlightModeManager: handle MAV_CMD_DO_CHANGE_SPEED
- support setting the cruise speed of the auto flight task via command

Signed-off-by: RomanBapst <bapstroman@gmail.com>
2022-04-13 12:23:27 +03:00
RomanBapst ca657f36ef FixedWingPositionControl: handle VEHICLE_CMD_DO_CHANGE_SPEED
Signed-off-by: RomanBapst <bapstroman@gmail.com>
2022-04-13 12:23:27 +03:00
RomanBapst 36e32ecd7b navigator: stop handling speed changes via reposition triplet
- the mc and fw controllers are handling the speed changes directly

Signed-off-by: RomanBapst <bapstroman@gmail.com>
2022-04-13 12:23:27 +03:00
Junwoo Hwang 35613df210 uORB : Don't automatically include message name as default topic name in uORBTopics source files, to handle case where user doesn't use default messgae name for multi topic definition in .msg file 2022-04-13 09:08:51 +02:00
alexklimaj 4fc161192a Add ARK CANnode board config 2022-04-12 21:23:18 -04:00
Daniel Agar 0a0987a6e0 ROMFS: move px4flow start to rc.sensors 2022-04-12 21:22:41 -04:00
Daniel Agar 1d66f2cf83 posix: HRT hrt_lock() sem_wait try again if error returned 2022-04-12 12:46:29 -04:00
Matthias Grob 10f927ae2b MulticopterPositionControl: remove unused return value parameters_update() 2022-04-12 10:13:11 -04:00
Daniel Agar c30475b04b Update submodule GPSDrivers to latest Tue Apr 12 12:38:56 UTC 2022
- GPSDrivers in PX4/Firmware (c04e66a890c75f57f5588d669eec45c8da8c3ed5): https://github.com/PX4/PX4-GPSDrivers/commit/ad1094aaf16fcc650b270431a1d0bdcf38e8d89a
    - GPSDrivers current upstream: https://github.com/PX4/PX4-GPSDrivers/commit/ddb1825fe33f517853ca8a3ef75ac6f2df76f613
    - Changes: https://github.com/PX4/PX4-GPSDrivers/compare/ad1094aaf16fcc650b270431a1d0bdcf38e8d89a...ddb1825fe33f517853ca8a3ef75ac6f2df76f613

    ddb1825 2022-03-29 Daniel Agar - ubx: print relevent UBX-MON-VER output

Co-authored-by: PX4 BuildBot <bot@px4.io>
2022-04-12 10:12:46 -04:00
PX4 BuildBot 5e6fb9b537 Update submodule sitl_gazebo to latest Tue Apr 12 12:38:53 UTC 2022
- sitl_gazebo in PX4/Firmware (bb2ea574aa): https://github.com/PX4/PX4-SITL_gazebo/commit/25138e803ee8525ee5fe4e6d511506e88e3f819c
    - sitl_gazebo current upstream: https://github.com/PX4/PX4-SITL_gazebo/commit/2cf56d0bf8a9119cadc1a44d20d641ab24a6a42d
    - Changes: https://github.com/PX4/PX4-SITL_gazebo/compare/25138e803ee8525ee5fe4e6d511506e88e3f819c...2cf56d0bf8a9119cadc1a44d20d641ab24a6a42d

    2cf56d0 2022-03-23 Julian Oes - Revert "models: Add model for standard_vtol_ctrlalloc"
b3ab8de 2022-03-18 JamesAnawati - Update cloudship.sdf.jinja
2022-04-12 10:12:12 -04:00
Daniel Agar 8166a500ac Update world_magnetic_model to latest Mon Apr 11 11:14:11 UTC 2022 (#19475) 2022-04-12 10:11:51 -04:00
Daniel Agar bb2ea574aa ekf2: properly reset IMU biases on calibration change (non-multi-EKF)
- this was working in the multi-EKF case using vehicle_imu, but missing
in sensor_combined
2022-04-11 12:23:55 -04:00
Daniel Agar 8f891332f1 boards: px4_fmu-v2_multicopter disable load_mon to save flash 2022-04-11 12:23:35 -04:00
bresch 76a59d5c66 Tools: add drag fusion tuning script 2022-04-11 09:56:01 -04:00
Daniel Agar 04f37222f8 ekf2: fix IMU missed perf count when not using multi-EKF 2022-04-10 11:07:33 -04:00
PX4 BuildBot f2c5d70d3a Update submodule mavlink to latest Sun Apr 10 12:39:00 UTC 2022
- mavlink in PX4/Firmware (a1530591764f0c694560e4bb6ae41c15d3e35c9b): https://github.com/mavlink/mavlink/commit/0133e5db7fd640dcf250f3ba7817d6f0f7bb7589
    - mavlink current upstream: https://github.com/mavlink/mavlink/commit/56a5110d38b77c8477b0a1d6ee909607a588f98d
    - Changes: https://github.com/mavlink/mavlink/compare/0133e5db7fd640dcf250f3ba7817d6f0f7bb7589...56a5110d38b77c8477b0a1d6ee909607a588f98d

    56a5110d 2022-04-09 Tom Pittenger - Add radius to DO_REPOSITION (#1825)
3b5959bd 2022-04-07 Thomas Debrunner - Option to not reset non-configurable params in preflight storage (#1826)
2022-04-10 10:21:14 -04:00
Silvan Fuhrer 6096620828 ROMFS: remove duplicate setting of NAV_LOITER_RAD to 80
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2022-04-09 14:31:17 -04:00
Silvan Fuhrer c7023e5879 Increase NAV_LOITER_RAD and RTL_LOITER_RAD to 80m each
For many VTOLs/fixed-wing drones a 50m loiter radius is too tight, and
going to 80m is a better and safer default.

Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2022-04-09 14:31:17 -04:00
Nicolas MARTIN eb1bb4335b commander: fix enable_failsafe reason (#19391)
- In this case, no action is configured for datalink lost. Action is configured for RC lost.
 - In case of no data link and no rc failsafe is enabled but reporting a "no_datalink" reason but "no_rc_and_no_datalink" seems more explicit.
2022-04-09 14:30:49 -04:00
Daniel Agar 091fca701e px4io: input_rc only publish new successful decodes
- previously an invalid decode would continue to be transferred to the FMU (at 50 Hz) and published to the rest of the system as successfully decoded new RC data
 - by only publishing new successful decodes we can more effectively discard invalid data in downstream consumers
2022-04-09 14:28:16 -04:00
alexklimaj 017f860f44 Add I2C retries in INA226 to prevent publishing 0's on a single read failure 2022-04-09 14:23:52 -04:00
Ryan Johnston 777540bd02 boards/matek/gnss-m9n-f4: RM3100 orientation fix
- the RM3100 needs to be pitched 180º for correction orientation on this board.
2022-04-09 14:22:21 -04:00
Ryan Johnston c585758f67 boards/matek/gnss-m9n-f4: IMU orientation update
- the icm20602 needs to be rolled 180º and yaw 90º for this board.
2022-04-09 14:21:45 -04:00
Jacob Dahl 3bffe3087d use new safety_button topic for uavcannode Button publishing 2022-04-09 14:20:18 -04:00
Matthias Grob fe26ee244d modeCheck: allow arming in land mode for MAVSDK compatibility
ideally we can remove it again when the workflow is changed to
first changing mode then arming.
2022-04-08 09:56:47 +02:00
Ramon Roche 889a5aa0b1 ci: build and deploy kakuteh7 2022-04-07 19:09:19 -04:00
Daniel Agar 77a37c26bf rc_update: further tighten timing requirements for valid data
- any real RC data input will be much faster than 3 Hz, so this is an
easy way to minimize bogus decoded data from propagating
2022-04-07 14:42:05 -04:00
Daniel Agar 98623f69a3 update mavlink submodule to latest
- update MAV_TYPE VTOL usage for current mavlink
2022-04-07 20:35:41 +02:00
Julian Oes a5bd65b923 mavlink: set correct param capability
PX4 supports int32 parameter types by interpreting the 32 bits in
the float field as an int32 field. To signal this behaviour, it should
set the bit which is described as PARAM_ENCODE_BYTEWISE.

PX4 had always handled parameters this way but never actually sent the
capability (which back then was called PARAM_UNION), however, it should
have. This came up recently in the MAVLink devcall when these flags were
discussed. The takeaway was to remove the flags to make it clearer and
to make sure the projects (like PX4) send them out correctly.
2022-04-07 20:35:41 +02:00
Matthias Grob 92adc71424 ArmStateMachine: port over unit tests to functional gtests 2022-04-06 10:02:14 +02:00
Matthias Grob f968a5947d ArmStateMachine: port arming_state_names into the class 2022-04-06 10:02:14 +02:00
Matthias Grob 074080c816 Commander: separate out arm state machine to class
Pure refactoring and just the first step to avoid conflicts on the way.
2022-04-06 10:02:14 +02:00
Daniel Agar 6e9c673262 boards: omnibus_f4sd_ekf2 disable frsky telemetry to save flash (and fix build)
- this isn't great, but our options are limited at the moment and this
can be fixed later once the old mixing system is deleted
2022-04-05 11:10:33 -04:00
Thomas Stastny e4b11c49c3 mathlib: add second order reference model filter with optional rate feedback (#19246)
mathlib: add second order reference model filter with optional rate feedback (#19246)

Reference models can be used as filters which exhibit a particular, chosen (reference) dynamic behavior. This PR implements a simple second order transfer function which can be used as such a reference model, additionally with rate feedback. The system is parameterized by explicitly set natural frequency and damping ratio. Another nice externality is that the output state and rate are kinematically consistent. Forward-euler and bilinear transform discretizations for the state space integration step are available.
2022-04-05 10:31:41 +02:00
Igor Misic 80aef942cd safety and safety button: refactoring #19413 2022-04-05 07:57:37 +02:00
Jacob Dahl 1f17a1470a uavcan: update safety button
updated uavcannode/Publishers/SafetyButton.hpp
tested successfully
make format
revert cannode publishing
2022-04-05 07:57:37 +02:00
Daniel Agar 8c3ba7adb4 commander: silence GPS no longer validity PX4_WARN 2022-04-04 14:43:11 -04:00
Alessandro Simovic 47b08fd698 precland: save flash space 2022-04-04 17:26:52 +02:00
Hovergames 457130fb69 Support for NXP UWB position sensor
uwb_sr150 driver for the sensor, and some
modifications in precision landing to allow
landing on a platform using the UWB system.
2022-04-04 17:26:52 +02:00
Beat Küng 3381a5914d holybro/kakuteh7: fix BOARD_FLASH_SIZE
The BL was reporting a flash size of 1703936, whereas it should be 1835008.
2022-04-04 10:44:11 -04:00
Matthias Grob dd28c3e019 battery: update average current also when no capacity is configured 2022-04-04 10:02:55 +02:00
Matthias Grob 13c3eae6d0 battery: use mechanism to keep an up to date armed state 2022-04-04 10:02:55 +02:00
Silvan Fuhrer 3f6ab5ea19 battery: improve flight time remaining improvements
- introduce BAT_AVRG_CURRENT param that is used for init of average current estimate
- increase filtering of average current estimation
- only update average current filter when armed

Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2022-04-04 10:02:55 +02:00
Beat Küng 6652718354 metadata.cmake: enable ethernet parameters 2022-04-04 09:54:47 +02:00
alessandro 8af0eeae46 1011_iris_irlock: require precland (#19431) 2022-04-04 08:27:31 +02:00
stmoon 179820cead boards: px4_fmu_v5x_rtps disable common telemetry modules to save flash 2022-04-02 11:46:37 -04:00
Daniel Agar 803cc6814f boards: px4_fmu-v2_fixedwing disable drivers/camera_trigger to save flash 2022-04-01 11:08:03 -04:00
Daniel Agar f0be554857 boards: px4_fmu-v5_uavcanv0periph disable modules to save flash 2022-03-31 09:59:58 -04:00
Matthias Grob 3aee2497bb commander_params: add precision land option for mode switch 2022-03-30 18:11:44 +02:00
David Sidrane d6db06faf3 px_update_git_header:Extract latest release tag 2022-03-30 11:19:02 -04:00
Daniel Agar 82c1ffb8f8 boards: px4_fmu-v5_stackcheck disable common telemetry modules to save flash 2022-03-30 10:07:05 -04:00
Alex Mikhalev 9e57c5d217 tunes: Print warning if there is a tune error 2022-03-30 09:58:33 -04:00
Alex Mikhalev f6cda64f0d tunes: Fixed unspecified behaviour
This fixes unspecified behaviour due to evaluation order of args.
It's up to the compiler whether next_number() or next_dots() is executed
first which means that the behaviour is not properly specified.
2022-03-30 09:58:33 -04:00
Kabir Mohammed d3b3de7159 mavlink: Use round instead of ceil on BATTERY_STATUS percentage
Co-authored-by: Alex Mikhalev <alex@corvus-robotics.com>
2022-03-30 09:49:11 -04:00
CUAVmengxiao 1870b9245b fmu-v5: add macro definitions for different version revisions 2022-03-29 17:09:34 -04:00
CUAVmengxiao f540335998 spi: get the correct version revision 2022-03-29 17:09:34 -04:00
CUAVmengxiao c0d5ae2f9f fmu-v5: Add support for ICM-42688-P 2022-03-29 17:09:34 -04:00
Matthias Grob 7cd57b4415 FlightTaskOrbit: alert user about exceeded radius (mavlink_log) 2022-03-29 18:46:37 +02:00
Matthias Grob 3e8d2fea94 FlightTaskOrbit: alert user about exceeded radius (events) 2022-03-29 18:46:37 +02:00
Matthias Grob 8ad44ee128 FlightModeManager: remove needless space at the end of invalid task error string 2022-03-29 18:46:37 +02:00
Matthias Grob 9bdde98a68 FlightModeManager: refactor flight task switch result condition for vehicle commands 2022-03-29 18:46:37 +02:00
Matthias Grob ffaef906c4 FlightModeManager: don't ack with result failed when parameters are invalid
Command denied is defined as "supported but has invalid parameters"
which matches the case.
2022-03-29 18:46:37 +02:00
Matthias Grob fc0be6c4fc FlightModeManager: switch to failsafe task if orbit is rejected 2022-03-29 18:46:37 +02:00
RomanBapst 18074dec5a simulator: fix conversion from hPa to Pa
Signed-off-by: RomanBapst <bapstroman@gmail.com>
2022-03-29 17:41:54 +03:00
Daniel Agar 8a552fac78 uavcannode: publish RelPosHeading (from sensor_gnss_relative) 2022-03-29 07:59:41 +02:00
Daniel Agar 84e796c385 drives/gps: add new sensor_gnsss_relative msg
- for ublox this corresponds to NAV_RELPOSNED
2022-03-29 07:59:41 +02:00
Daniel Agar dfe13e16e8 boards: px4_fmu-v2_multicopter disable distance_sensor/tfmini to save flash 2022-03-28 15:40:46 -04:00
Daniel Agar 67920f089b boards: px4_fmu-v5x_rtps disable unused systemcmds and examples to save flash 2022-03-28 12:01:21 -04:00
Matthias Grob c7f114a26a FlightTaskOrbit: increase radius limit 2022-03-28 17:57:56 +02:00
Matthias Grob d0794c1189 FlightTaskOrbit: don't start Orbit if radius is not in range 2022-03-28 17:57:56 +02:00
Daniel Agar 0595efbd9b sensors/vehicle_magnetometer: publish sensors_status_mag and other minor updates to stay in sync with air data 2022-03-26 16:08:41 -04:00
Daniel Agar 0c31f63896 sensors: add baro calibration and cleanup
- sensor_baro.msg use SI (pressure in Pascals)
 - update all barometer drivers to publish directly and remove PX4Barometer helper
 - introduce baro cal (offset) mainly as a mechanism to adjust
relative priority
 - commander: add simple baro cal that sets baro offsets to align with
GPS altitude (if available)
 - create new sensors_status.msg to generalize sensor reporting
2022-03-26 16:08:41 -04:00
Daniel Agar 5800c417c8 boards: px4_fmu-v2_rover disable unused drivers to save flash 2022-03-25 17:30:42 -04:00
Daniel Agar 01eb27c703 Jenkinsfile-compile: skip px4_sitl_rtps for now 2022-03-25 15:07:20 -04:00
Daniel Agar eb666e94a4 bords: omnibus_f4sd move ekf2 from default to new ekf2 board variant
- temporary solution to flash overflow
2022-03-25 12:47:25 -04:00
Daniel Agar bc26b73c07 px4io: only publish valid input_rc 2022-03-25 10:56:24 -04:00
Daniel Agar 3d08e031d2 rc_update: improve manual_switches simple protections
- require back to back matching switch decode to match within 1 second
 - clear any previous manual switches if RC is unstable
2022-03-25 10:56:24 -04:00
Daniel Agar 875a2cc423 commander: remove loop counters and update UI LED control to use monotonic time 2022-03-24 22:43:26 -04:00
Daniel Agar 879622547c commander: only process one vehicle_command/action_request per cycle
- things like arming requests can be dependent on current nav state
that might requested by a previous command, but the state machine
transition will only happen after command processing
2022-03-24 22:43:26 -04:00
Daniel Agar e528eb5dc4 commander: fix status flags usage (condition_global_position_valid->global_position_valid)
- broken due to the merge timing of https://github.com/PX4/PX4-Autopilot/pull/19378 and https://github.com/PX4/PX4-Autopilot/pull/19351
2022-03-24 09:40:15 -04:00
Jaeyoung-Lim 106044be38 Initialize global local projection for rovers
This commit initializes the global and local projection for rovers
2022-03-24 08:57:53 -04:00
Jonas Perolini e31304d7d5 Quadchute param update (#19351)
New parameter for actions after a quadchute (COM_QC_ACT)

Co-authored-by: Jonas <jonas.perolini@rigi.tech>
Co-authored-by: Matthias Grob <maetugr@gmail.com>
2022-03-24 10:27:32 +01:00
Jacob Schloss 5ae4cae073 orb_advertise_multi: might return nullptr (#19387) 2022-03-24 07:47:48 +01:00
Daniel Agar 6135bb384b cleanup module callback registration failed errors 2022-03-23 20:44:50 -04:00
Daniel Agar f4c3084c26 init adjustments to ensure used topics are advertised early (primarily for logging)
- multi-EKF create each instance as soon as IMU & mag are advertised (before device id populated)
2022-03-23 16:51:16 -04:00
Matthias Grob e6ed595651 Commander: make last_fail_time_us parameter a reference instead of pointer 2022-03-23 15:04:48 -04:00
Matthias Grob eee4aaee4f Commander: remove dynamic position velocity probation period 2022-03-23 15:04:48 -04:00
David Sidrane 9fe2dfc2e3 px4_fmuv-6x Sensor set 3 2022-03-23 12:24:31 -04:00
Thies Lennart Alff f1ec6ea026 make mavlink atttitude setpoints non-exlusive for offboard setpoints 2022-03-23 11:06:40 -04:00
Daniel Agar 94e30f5efb boards: delete unused px4_fmu-v2_test 2022-03-23 10:39:58 -04:00
Silvan Fuhrer a7ddaf08c4 vehicle_status_flags.msg: remove condition_ prefix to reduce message size
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2022-03-23 10:37:51 -04:00
Silvan Fuhrer c30f2b9493 vehicle_status_flags.msg: remove unused condition_system_returned_to_home
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2022-03-23 10:37:51 -04:00
Jaeyoung-Lim 194a281fae Project local coordinates for all fw landing states 2022-03-23 13:34:13 +01:00
Jaeyoung-Lim cb81c6ac8c Address review comments 2022-03-23 13:34:13 +01:00
Jaeyoung-Lim 71bfb9c0de Convert NPFG to local coordinates 2022-03-23 13:34:13 +01:00
Jaeyoung-Lim f804b3516f Remove local planar vector 2022-03-23 13:34:13 +01:00
Jaeyoung Lim 28d34bf095 Convert L1 controller to local coordinates 2022-03-23 13:34:13 +01:00
Matthias Grob 897506267d Sticks: name getThrottle() explicitly about range 2022-03-23 11:54:05 +01:00
Junwoo Hwang 0e5c305163 Stick Verbose Functinos : Make get functions for roll, pitch, yaw and throttle const to specify that it's not changing Sticks' internal variables 2022-03-23 11:54:05 +01:00
Junwoo Hwang f78465428c Stick Verbose Functions : Edit other FlightTasks using checkAndUpdateStickInputs() functions and correct Throttle returned value inverse issue 2022-03-23 11:54:05 +01:00
Junwoo Hwang 8266a4df98 Sticks : Add utility functions to get pitch, roll, throttle and yaw values intuitively and rename ambiguously named function checkAndSetStickInputs() 2022-03-23 11:54:05 +01:00
Matthias Grob db7430aa65 matrix helper: remove needless comment line 2022-03-23 10:51:45 +01:00
Matthias Grob 18629bb535 FlightTaskOrbit: fix tangential yaw stick input for rotation direction changes 2022-03-23 10:51:45 +01:00
Matthias Grob 74c0ae6e55 Functions: add sign from boolean function with unit tests 2022-03-23 10:51:45 +01:00
Matthias Grob e03585ca06 FlightTaskOrbit: remap stick input when vehicle faces tangential 2022-03-23 10:51:45 +01:00
Matthias Grob db1fb6acf7 Commander: no battery time based RTL when already landed 2022-03-23 10:49:38 +01:00
Matthias Grob 69f6092031 mavlink_receiver: remove unused land detection publication 2022-03-23 10:49:38 +01:00
Matthias Grob c1b9b8a1c0 MulticopterLandDetector: correct comment with outdated time constant reference 2022-03-23 10:49:38 +01:00
Matthias Grob b85c4ec475 Commander: rename land detection subscription for consistency 2022-03-23 10:49:38 +01:00
Matthias Grob 4a5a8d59fe matrix helper: add documentation for sign function 2022-03-23 08:47:52 +01:00
Matthias Grob d0abcc1ca3 MatrixHelperTest: add unit tests for the signum function 2022-03-23 08:47:52 +01:00
Matthias Grob 03f836f79d matrix helper: fix sign function zero case 2022-03-23 08:47:52 +01:00
David Sidrane 1a17e9df4d board_hw_rev_ve:Use 97.50% for ADC ref for "High" detection 2022-03-22 21:15:03 -04:00
David Sidrane ebc8ecdee6 board_hw_rev_ve:ADC returns 32 bits 2022-03-22 21:15:03 -04:00
David Sidrane 1c224be8f6 stm32h7:ADC fix CCr Access 2022-03-22 21:15:03 -04:00
RomanBapst 60231bbcb6 navigator: don't reset cruise speed and throttle during a transition as part
of the VTOL takeoff navigation state

- the reset causes the loiter circle to be reset to home

Signed-off-by: RomanBapst <bapstroman@gmail.com>
2022-03-22 15:14:02 +01:00
Daniel Mesham 06a9be74fa microdds: add xrce client 2022-03-22 09:01:05 +01:00
Konrad e080fab8f6 Set up landing gear logic for tiltrotor and tailsitter VTOL. Gear is set down when in hover mode, esle gear is set up. 2022-03-21 09:30:04 +01:00
Konrad d7de67844f Set up landing gear logic for standard VTOL. Gear is set down when in hover mode, else gear is set up. 2022-03-21 09:30:04 +01:00
Daniel Agar c86d5769ea boards: px4_fmu-v2_{fixedwing,multicopter} module selection changes to save flash 2022-03-19 14:43:45 -04:00
Daniel Agar 475bd42ab8 sensors: add 2nd static notch and migrate existing parameters
- new static notch filter configured via IMU_GYRO_NF1_FRQ and IMU_GYRO_NF1_BW
 - existing notch parameters IMU_GYRO_NF_FREQ and IMU_GYRO_NF_BW become
IMU_GYRO_NF0_FRQ and IMU_GYRO_NF0_BW
2022-03-19 14:38:04 -04:00
Daniel Agar afeab9587e gyro_fft: peak detection exclude side FFT buckets
- when estimating the peak frequency the magnitude of side buckets will
be factored in, so it doesn't make sense to potentially treat them as
separatey detected peaks
2022-03-19 14:37:36 -04:00
Matthias Grob 9ab99a7689 MatrixHelperTest: don't rely on FLOAT_EQ accepting FLT_EPSILON inaccuracy 2022-03-18 13:35:18 +01:00
Thomas Stastny 144697bb6a MatrixHelperTest: correct wrap compare values 2022-03-18 13:35:18 +01:00
benjinne 620f25503c Add geofence predict param (#17795) 2022-03-18 11:44:13 +01:00
Thomas Debrunner 5b0fc8f507 print_load: Removed unused variable to fix compilation on macos 2022-03-18 10:42:19 +01:00
Daniel Agar 36e6527013 ROMFS: MAV_TYPE cleanup
- set MAV_TYPE as a parameter default per vehicle type, or airframe if necessary
 - cleanup MAV_TYPE param metadata and commander helper to only include
what's currently used in PX4
2022-03-17 09:28:10 -04:00
Matthias Grob cde7b1bc41 Matrix: remove deprecated minimal test framework 2022-03-17 13:02:22 +01:00
Matthias Grob 91493307b9 Matrix: convert vector test to gtest 2022-03-17 13:02:22 +01:00
Matthias Grob 4b63f6b29a Matrix: convert vector assignment test to gtest 2022-03-17 13:02:22 +01:00
Matthias Grob f4b53d2762 Matrix: convert vector3 test to gtest 2022-03-17 13:02:22 +01:00
Matthias Grob ddfd62dfc2 Matrix: convert vector2 test to gtest 2022-03-17 13:02:22 +01:00
Matthias Grob be28aeb3ee Matrix: convert upper right triangle test to gtest 2022-03-17 13:02:22 +01:00
Matthias Grob 4d43aad847 Matrix: convert transpose test to gtest 2022-03-17 13:02:22 +01:00
Matthias Grob b3cc18c6de Matrix: convert square test to gtest 2022-03-17 13:02:22 +01:00
Matthias Grob 555ed9b9d8 Matrix: convert slice test to gtest 2022-03-17 13:02:22 +01:00
Matthias Grob 46df8ab60c Matrix: convert set identity test to gtest 2022-03-17 13:02:22 +01:00
Matthias Grob 831f0e9aac Matrix: convert scalar multiplication test to gtest 2022-03-17 13:02:22 +01:00
Matthias Grob 38d742f1b5 Matrix: convert pseudo inverse test to gtest 2022-03-17 13:02:22 +01:00
Matthias Grob 57e443c4a4 Matrix: convert multiplication test to gtest 2022-03-17 13:02:22 +01:00
Matthias Grob 719898f1e3 Matrix: convert least squares test to gtest 2022-03-17 13:02:22 +01:00
Matthias Grob fddcf342e9 Matrix: convert inverse test to gtest 2022-03-17 13:02:22 +01:00
Matthias Grob f5ec4b2339 Matrix: convert integral test to gtest 2022-03-17 13:02:22 +01:00
Matthias Grob 7c9e28c168 Matrix: convert helper test to gtest 2022-03-17 13:02:22 +01:00
Matthias Grob 0c4c3a917c Matrix: convert hat vee test to gtest 2022-03-17 13:02:22 +01:00
Matthias Grob 8f695a5613 Matrix: convert filter test to gtest 2022-03-17 13:02:22 +01:00
Matthias Grob 79e8152f05 Matrix: convert dual test to gtest 2022-03-17 13:02:22 +01:00
Matthias Grob 62571b6984 Matrix: convert copy to test to gtest 2022-03-17 13:02:22 +01:00
Matthias Grob 35b035e880 Matrix: convert attitude test to gtest 2022-03-17 13:02:22 +01:00
Matthias Grob c33bf5b705 Matrix: convert assignment test to gtest 2022-03-17 13:02:22 +01:00
Matthias Grob fa35635486 Matrix: change naming of sparse vector test 2022-03-17 13:02:22 +01:00
Jukka Laitinen 3d35929f3e Put gyro_fft in kernel by default in protected build
It is a performance issue to run it on user side

Signed-off-by: Jukka Laitinen <jukkax@ssrc.tii.ae>
2022-03-17 08:01:51 +01:00
Jukka Laitinen 4658a627d7 Separate i2c and spi board bus configuration into and own library for protected build target
This info is needed on both kernel and user sides, and is just data.

Signed-off-by: Jukka Laitinen <jukkax@ssrc.tii.ae>
2022-03-17 08:01:51 +01:00
Jukka Laitinen 543c7bd0c5 uORB: Build uorb systemcmd always in kernel side in memory protected build
Signed-off-by: Jukka Laitinen <jukkax@ssrc.tii.ae>
2022-03-17 08:01:51 +01:00
Jukka Laitinen d167f91eb8 logger/watchdog: Disable watchdog for NuttX protected/kernel builds
It accesses kernel internal structures directly; this needs to be
worked out with some proper userspace-kernel interface

Signed-off-by: Jukka Laitinen <jukkax@ssrc.tii.ae>
2022-03-17 08:01:51 +01:00
Jukka Laitinen 56c6120e83 Use IOCTL for board_read_VBUS_state in NuttX protected builds
Direct gpio read is not possible from user side applications, so use boardctl
interface instead.

Signed-off-by: Jukka Laitinen <jukkax@ssrc.tii.ae>
2022-03-17 08:01:51 +01:00
Jukka Laitinen 0cf3079401 px4_fmuv5: Implement BOARD_*_LOCKOUT_STATE in protected/kernel builds
In memory protected builds these perform nuttx boardctl ioctl calls to kerenel

Signed-off-by: Jukka Laitinen <jukkax@ssrc.tii.ae>
2022-03-17 08:01:51 +01:00
Jukka Laitinen 356328056a Add px4_fmu-v5_protected target
Add a target for nuttx protected build development

Signed-off-by: Jukka Laitinen <jukkax@ssrc.tii.ae>
2022-03-17 08:01:51 +01:00
Jukka Laitinen 005095d199 Add gran allocator also to user side in protected build
This is needed for DMA capable memory for fat also in the user side;
the file system doesn't seem to work reliably without.

Signed-off-by: Jukka Laitinen <jukkax@ssrc.tii.ae>
2022-03-17 08:01:51 +01:00
Jukka Laitinen 49b089f149 Add a simple way to launch kernel side modules
Add launch_kmod command to start/execute px4 modules in kenel space
in NuttX protected build

Signed-off-by: Jukka Laitinen <jukkax@ssrc.tii.ae>
2022-03-17 08:01:51 +01:00
Jukka Laitinen c43c71f4af platforms/nuttx/src/px4/common/board_ctrl: Add handlers for vbus & shutdown lockout
Add kernel side ioctls and handlers for vbus state and managing shutdown lockout

Signed-off-by: Jukka Laitinen <jukkax@ssrc.tii.ae>
2022-03-17 08:01:51 +01:00
Jukka Laitinen 4a74d266be Initialize cxx static variables also in kernel side
For protected/kernel builds the cxx static initializations
needs to be done also in kernel side, since px4 creates
c++ objects in kernel

Signed-off-by: Jukka Laitinen <jukkax@ssrc.tii.ae>
2022-03-17 08:01:51 +01:00
Jukka Laitinen c1a7b8df1d Add a px4 userspace initialization in protected build
The px4_userspace_init function is called from userspace
entrypoint before starting NSH

Signed-off-by: Jukka Laitinen <jukkax@ssrc.tii.ae>
2022-03-17 08:01:51 +01:00
bresch f3f09c1344 PreFlightCheck: add data timeout detection for mag, baro accel and gyro 2022-03-16 11:46:01 +01:00
bresch 75aa11c955 PreFlightCheck: refactor sensors preflight checks 2022-03-16 11:46:01 +01:00
bresch b1c1163ee4 PreFlightCheck: remove unused device_id argument 2022-03-16 11:46:01 +01:00
bresch 5f1b577b6d PreFlightCheck: mark sensor required if used by an EKF2 instance 2022-03-16 11:46:01 +01:00
stmoon 6d0b11ca99 add custom target for uorb_sources_microcdr_gen 2022-03-15 17:59:22 -04:00
wangwwno1 746c16400a Typo Fix: ChangeWorkQeue
Fix the typo of 'WorkItem::ChangeWorkQeue' to 'WorkItem::ChangeWorkQueue'
2022-03-15 13:31:52 -04:00
Daniel Agar 4746a19c0c boards: px4_fmu-v5_stackcheck disable UUV modules to save flash 2022-03-15 12:10:03 -04:00
Daniel Agar 233c7fd293 goertek/spl06: parameters.c add copyright header and fix formatting 2022-03-15 10:14:46 -04:00
Ncerzzk cb23179c50 Add Goertek SPL06 barometer driver (#19229)
Signed-off-by: ncer <huangzzk@bupt.edu.cn>
2022-03-15 10:13:03 -04:00
Konrad 963f6a91d9 exclude Mixer for Tailsitter with x motor configuration and elevons for fmu-v2 and omnibus to avoid flash size issues 2022-03-15 10:44:27 +01:00
KonradRudin 5f43be9d60 preflight checks: add check for distance sensor (via parameter) 2022-03-15 10:44:27 +01:00
Jukka Laitinen 0d31aadcc3 src/lib/paramters: Add a new interface library for protected build user side
Implement an interface for protected build to access parameters.

The implementation only does IOCTL calls to the kernel, where the parameters
live.

Signed-off-by: Jukka Laitinen <jukkax@ssrc.tii.ae>
2022-03-15 07:52:26 +01:00
Jukka Laitinen 41a7ae3db2 src/lib/parameters: Refactor common functions to an own file
Put all functions which are commont to flat build and protected kernel and
userspace to an own source file

Signed-off-by: Jukka Laitinen <jukkax@ssrc.tii.ae>
2022-03-15 07:52:26 +01:00
Daniel Agar 7ef38112d2 ekf2: return saved mag bias variance when not in 3d magnetometer fusion
- the estimated mag bias was requiring > 30 seconds of continuous 3d
mag fusion to be reported stable (and saved back to mag cal), this
restores the original intent requiring 30 seconds of accumulated valid
3d mag fusion
2022-03-14 21:03:41 -04:00
Daniel Agar 5717434e93 ekf2: initialize GPS drift metrics to NAN rather than 0 2022-03-14 10:09:24 -04:00
alessandro 62d1058cc2 log irlock_report and landing_target_pose messages
Need to log both, because on some systems the
information will come in directly as a 
landing_target_pose message, and on others
it's coming in as irlock_report and then filtered
in PX4 to produce the landing_target_pose message.
2022-03-14 10:13:08 +01:00
Matthias Grob f1e44c6e2a PreFlightCheck: only allow modes suitable for takeoff 2022-03-14 09:03:39 +01:00
Daniel Agar a430f0ccae ekf2: add simple zero velocity update when vehicle at rest (#19149)
- further decreases initial tilt alignment time (now down to 2.5 seconds if still) and improves initial bias estimates
2022-03-12 12:56:31 -05:00
Daniel Agar 3d54d25867 sensor calibration delete temperature (CAL_ACCx_TEMP, CAL_GYROx_TEMP, CAL_MAGx_TEMP)
- this was an experiment to casually monitor sensor offsets relative to temperature, but now that all calibration offsets can be adjusted post-flight the stored temperature can be misleading
 - deleting to save a little bit of flash (and storing the temperature wasn't useful)
2022-03-12 11:38:49 -05:00
wangwwno1 aa64789792 sensors/vehicle_imu: Fix Integration Rate greater than Gyro Rate (#19318) 2022-03-12 11:29:23 -05:00
RomanBapst 58a4c38519 rtl: don't fly mission landing if we trigger rtl in hover
Signed-off-by: RomanBapst <bapstroman@gmail.com>
2022-03-11 15:23:31 +03:00
bresch 58bd3d0c60 cmake: use elif -> elseif 2022-03-11 11:59:20 +01:00
JunwooHWANG 04f8453f4a Reduce Beeepr Default volume : 40 -> 20, since it's too loud for TAP_ESC devices from Yuneec (#19311) 2022-03-11 10:27:57 +01:00
Silvan Fuhrer f4c300af25 FlightTaskAuto: Nudging: only set yawrate_sp if WV is disabled or stick out of dead-zone
Otherwise the setpoint from weather vane is constantly overwritten by it,
even if the yaw stick is not moved.

Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2022-03-11 09:18:31 +01:00
Alex Klimaj 71850eeda6 mavlink: Add flow control parameters (#19254) 2022-03-10 08:22:00 -08:00
Daniel Agar b66dd5ffa6 adis16470: fix gyro scaling 2022-03-09 23:00:54 -05:00
Roman Bapst 69560bd4f4 Compensate VTOL transition time for air density (#19293)
* vtol: compensate front transition minimum time and front transiton openloop time
for air density

Signed-off-by: RomanBapst <bapstroman@gmail.com>
2022-03-09 08:41:30 -05:00
alessandro 0617fd2b6f fmu-v6x: increase UART5 buffer size
The same fix had to be done for the fmu-v5x:
PX4/PX4-Autopilot#14932
2022-03-09 08:39:34 -05:00
bresch 182980526f commander: allow rearming grace period for arming switch only 2022-03-09 08:42:21 +01:00
wangwwno1 cd5a1e510a ekf2: typo Fix: pub.advertised() -> pub.advertise() (#19302) 2022-03-09 08:39:08 +01:00
Jacob Dahl 3e21efb721 ina228: fix sign error on CURRENT reading (#19296) 2022-03-08 19:47:11 -05:00
Daniel Agar b7e0f17c6a ekf2: minor position/velocity reset cleanup
- try to use avoid resetVelocity() call where possible
 - reset timeouts centrally
2022-03-08 11:16:35 -05:00
Daniel Agar c10ea97967 ekf2: fusion helpers return success/fail and set pos/vel update timestamps centrally (if healthy) 2022-03-08 11:16:35 -05:00
Matthias Grob c4bc062714 helper_functions: generalize unwrapping function 2022-03-08 10:56:32 +01:00
Matthias Grob c86c2db07f helper_functions: simplify unwrap function 2022-03-08 10:56:32 +01:00
Thomas Stastny 5a3aba9c21 matrix: add angle unwrapping method 2022-03-08 10:56:32 +01:00
Matthias Grob 68a0414622 Quaternion: rename function to rotate vectors 2022-03-07 20:03:54 -05:00
Daniel Agar 5affa693f2 uavcan: increase ESC max rate 200->400 Hz
- this should run synchronized with the rate controller and can be
limited by IMU_GYRO_RATEMAX
2022-03-07 10:28:51 -05:00
Beat Küng 601c588294 holybro/kakuteh7: disable bluetooth 2022-03-04 08:02:11 -05:00
Beat Küng 047352d049 holybro/kakuteh7: update bootloader binary 2022-03-04 08:02:11 -05:00
Beat Küng 591c95ce2f mixer_module: print actual failsafe value 2022-03-04 08:02:11 -05:00
Bulut Gözübüyük 80c6ab7106 Add support for Omnibus F4 boards with ICM20608G IMUs
One can use following command to compile:
make omnibus_f4sd_icm20608g

Co-Authored-By: berkercanatar <19846944+berkercanatar@users.noreply.github.com>
2022-03-04 08:27:48 +01:00
Matthias Grob 666cf2326d mission_block: handle SET_ROI_LOCATION with absolute altitude correctly (#19258) 2022-03-03 13:25:00 +01:00
Daniel Agar 49df00c319 lib/mixer_module: check thrust factor range valid and minor optimization (#19272) 2022-03-03 08:10:09 +01:00
JunwooHWANG 35af604a82 Added RTL Switch Setting for ATL Mantis Edu (#19267)
Co-authored-by: Junwoo Hwang <junwoo@auterion.com>
2022-03-02 16:57:20 +01:00
Daniel Agar 52221b0bb7 vscode: add stlink debug config (#19269)
Co-authored-by: Jacob Crabill <jacob.crabill@gmail.com>
2022-03-01 09:47:22 -05:00
PX4 BuildBot c2c455be0d Update submodule flightgear_bridge to latest Sat Feb 26 16:47:29 UTC 2022
- flightgear_bridge in PX4/Firmware (8549fadb6c): https://github.com/PX4/PX4-FlightGear-Bridge/commit/ea9b6cb5b93365928190864a6592c0a280e101ea
    - flightgear_bridge current upstream: https://github.com/PX4/PX4-FlightGear-Bridge/commit/f47ce7b5fbbb3aa43d33d2be1f6cd3746b13d5bf
    - Changes: https://github.com/PX4/PX4-FlightGear-Bridge/compare/ea9b6cb5b93365928190864a6592c0a280e101ea...f47ce7b5fbbb3aa43d33d2be1f6cd3746b13d5bf

    f47ce7b 2022-02-07 Roman Dvořák - Add support of TF-G1 and TF-G2 to FG bridge, update readme, update mavlink communication Add support of TF-G1 and TF-G2 to FG bridge, update readme, update mavlink communication
2022-02-26 16:57:20 -05:00
Daniel Agar 6224e11463 Update world_magnetic_model to latest Sat Feb 26 16:47:08 UTC 2022 (#19262)
* Update world_magnetic_model to latest Sat Feb 26 16:47:08 UTC 2022
* [AUTO COMMIT] update change indication

Co-authored-by: PX4 BuildBot <bot@px4.io>
2022-02-26 15:39:37 -05:00
Daniel Agar 44f0278d97 Update submodule GPSDrivers to latest Sat Feb 26 16:47:30 UTC 2022 (#19264)
- GPSDrivers in PX4/Firmware (be9dbf6a077309c4c6bcf8d2de91b82502bf5d01): https://github.com/PX4/PX4-GPSDrivers/commit/d6940d9c8ccb8ab3273c677097a29d46903021ff
    - GPSDrivers current upstream: https://github.com/PX4/PX4-GPSDrivers/commit/fa275c39935e00906d7a691770d2c10f1ea95d3c
    - Changes: https://github.com/PX4/PX4-GPSDrivers/compare/d6940d9c8ccb8ab3273c677097a29d46903021ff...fa275c39935e00906d7a691770d2c10f1ea95d3c

    fa275c3 2022-02-17 chalkytoast - ubx: ensure payloadRxDone does not return -1

Co-authored-by: PX4 BuildBot <bot@px4.io>
2022-02-26 15:38:43 -05:00
PX4 BuildBot d94ad5bd6d Update submodule mavlink to latest Sat Feb 26 16:47:38 UTC 2022
- mavlink in PX4/Firmware (95358ae501e92687b00d2786bc8eadf28ff93930): https://github.com/mavlink/mavlink/commit/4ee1eebbd173a3a483b79088b58fef6ec0a4dfef
    - mavlink current upstream: https://github.com/mavlink/mavlink/commit/b568a60fca42599d9998434e606f6e38e0b5e298
    - Changes: https://github.com/mavlink/mavlink/compare/4ee1eebbd173a3a483b79088b58fef6ec0a4dfef...b568a60fca42599d9998434e606f6e38e0b5e298

    b568a60f 2022-02-24 Hamish Willee - Update pymavlink to latest (#1805)
b86834e0 2022-02-23 Hamish Willee - Component info - tidy descriptiosn (#1803)
79e9545a 2022-02-23 Hamish Willee - Remove external dialect doc and improve dialect pages (#1802)
fd7ccfbe 2022-02-23 Hamish Willee - MAV_PROTOCOL_CAPABILITY_FLIGHT_TERMINATION - improve linking to command (#1774)
2b7de26c 2022-02-23 Hamish Willee - [Discuss.] MAV_PROTOCOL_CAPABILITY_FTP - supports FTP protocol not specific message (#1772)
a7541658 2022-02-18 Alessandro Ros - fix common.xml include in AVSSUAS (#1800)
5b4482fe 2022-02-17 Hamish Willee - RFC 0016 - Mavlink Standard Modes - Add to development.xml
2022-02-26 15:07:42 -05:00
ShiauweiZhao 8549fadb6c add icm42670p driver kconfig 2022-02-25 12:21:06 -05:00
Jukka Laitinen aae0876d82 platforms/rpi: Clean away the removed hrt_elapsed_time_atomic
Signed-off-by: Jukka Laitinen <jukkax@ssrc.tii.ae>
2022-02-25 13:35:14 +01:00
Jukka Laitinen 77f71e61d2 Add a generic hrt driver userspace interface
This adds a nuttx userspace interface for hrt driver, communicating with
the actual px4 hrt driver via BOARDCTL IOCTLs

This is be used when running PX4 in NuttX protected or kernel builds

Signed-off-by: Jukka Laitinen <jukkax@ssrc.tii.ae>
2022-02-25 13:35:14 +01:00
Jukka Laitinen 9f049b4dca Inline ts_to_abstime and abstime_to_ts
Signed-off-by: Jukka Laitinen <jukkax@ssrc.tii.ae>
2022-02-25 13:35:14 +01:00
Beat Küng 3e6a35fe8a px4/fmu-v2/rover: disable module to reduce flash 2022-02-25 08:30:58 +01:00
Beat Küng 29d5dd9b8f omnibus/f4sd: disable module to reduce flash 2022-02-25 08:30:58 +01:00
Beat Küng bc9dfe8599 holybro/kakutef7: disable module to reduce flash 2022-02-25 08:30:58 +01:00
Beat Küng ddad4c31c9 control_allocator: compute thrust scaling individually per axis
Before, adding the pusher to the same matrix as the upwards motors affected
the scaling for the upwards motors, resulting in values not equal to -1
anymore.
2022-02-25 08:30:58 +01:00
Beat Küng 76d8d8cae6 control_allocator: generic motor configuration for standard vtols
This adds the pusher/puller to the standard motors and makes the axis
configurable.
2022-02-25 08:30:58 +01:00
Beat Küng b2dc9ee710 control_allocator: add title & help url to geometry UI 2022-02-25 08:30:58 +01:00
Beat Küng cbcae260e4 mavlink: update submodule 2022-02-25 08:30:58 +01:00
Beat Küng e10ff59340 px4/fmu-v5/stackcheck: disable module to reduce flash 2022-02-25 08:30:58 +01:00
Beat Küng dce2968470 ROMFS: set CA_* + HIL_ACT_* params for hitl+sih airframes 2022-02-25 08:30:58 +01:00
Beat Küng 9b629a9e95 hitl,sitl,sih: use separate actuator_outputs_sim for SYS_CTRL_ALLOC==1
- removes the need to do type-specific rescaling of pwm to normalized values
- allows to run physical output drivers alongside HIL/SIH
2022-02-25 08:30:58 +01:00
Charles Cross 1e32398217 Adds scheduling call to ControlAllocator initialization 2022-02-25 08:16:08 +01:00
Charles Cross aecfbef128 Enables 20Hz backup scheduling for ControlAllocator 2022-02-25 08:16:08 +01:00
Charles Cross b0352135bb Restores Dshot trigger condition and adds dynamic mixing condition 2022-02-25 08:16:08 +01:00
Charles Cross 51c055832f Changes ControlAllocator to always publish actuator controls and status 2022-02-25 08:16:08 +01:00
Charles Cross 59f9a40584 Changes Dshot commands to always trigger from updateOutputs(), unless outputs are completely off 2022-02-25 08:16:08 +01:00
Charles Cross 46f8de3a17 Changes actuator_test syscmd value arg to be a float from -1 to 1 2022-02-25 08:16:08 +01:00
Daniel Agar 32a91377bf Tools/process_sensor_caldata.py fix scipy import 2022-02-24 20:27:26 -05:00
Jukka Laitinen caaa13ddc0 uORB performance updates
Move some logic from Subscriber into uORBManager. This reduces calls from the
modules to the uORB manager, improving performance in protected build.

Signed-off-by: Jukka Laitinen <jukkax@ssrc.tii.ae>
2022-02-24 11:50:05 -05:00
Daniel Agar 611d50edf3 boards: holybro kakutef7 disable tone_alarm to save flash 2022-02-24 11:33:25 -05:00
Daniel Agar 8de2c80b34 mavlink: SCALED_IMU streams add temperature
- preference for accel or gyro temperature before mag
2022-02-23 14:05:31 -05:00
Daniel Agar 5b5d428189 boards: px4_fmu-v5_stackcheck disable fake_gps to save flash 2022-02-23 10:44:09 -05:00
Daniel Agar 01daf8d6d6 boards: omnibus_f4sd disable events module to save flash 2022-02-23 10:42:48 -05:00
Daniel Agar 11f617ca9b ekf2: default to in air and not at rest
- this is a more conservative default if a vehicle isn't set (no land detector running)
 - handled horizontal preflight failures in commander when disarmed
rather than overloading xy_valid and v_xy_valid flags
 - ekf2 no longer depend on arming or standby status
2022-02-22 16:59:10 -05:00
Daniel Agar d6d529539d ekf2: consolidate and simplify gnd effect logic 2022-02-22 16:59:10 -05:00
Daniel Agar 1d7791dad6 commander: monitor GPS validity and EKF2 dead reckoning
- ekf2: expose dead reckoning as control status flags
 - commander:
    - add GPS validity check
    - in AUTO MISSION if dependent on GPS then a loss of GPS will
2022-02-22 09:46:21 -05:00
Julian Oes 6021b8efb3 navigator: only apply breaking for multirotors 2022-02-22 09:41:22 -05:00
Julian Oes fa6c051ae5 navigator: break smoothly when entering hold mode
This uses the existing breaking functionality when hold/loiter mode is
activated.
2022-02-22 09:41:22 -05:00
Julian Oes f88dd28e85 navigator: extract breaking functionality out
This only moves the breaking functionality out from the reposition
command handling to a function, so that it can get re-used in other
places.
2022-02-22 09:41:22 -05:00
bresch 0e0e0d8be7 [AUTO COMMIT] update change indication 2022-02-22 11:49:25 +01:00
bresch 4f0a959244 gps_hgt: add and improve unit tests 2022-02-22 11:49:25 +01:00
bresch edabfd2f0e ekf_hgt: call specific height reset function instead of generic one
- Also use the delayed current data instead of newest that might not be
available (gps buffer is sometimes empty if the dt between samples is
larger than the delayed horizon).

- Separate "baro fault" from "baro intermittent": intermittent is a
  temporary failure and should prevent from switching to baro right now,
  but "fault" means that it should never be used anymore

- In case of height timeout, check for metrics but not for consistency
  as the filter is likely to have diverged already.
2022-02-22 11:49:25 +01:00
bresch cba73585e1 use recorded last sensor timestamp for intermittent check 2022-02-22 11:49:25 +01:00
Daniel Agar f431b233f3 ekf2: preflight checker fix flow y innovation filter 2022-02-22 09:39:22 +01:00
Daniel Agar 4f62b01dc7 Tools/px4moduledoc: add new rpm_sensor subcategory 2022-02-22 07:57:30 +01:00
Charles Cross f31f3370ef Add support for Timer15 on H743 boards (#19228)
* Adds Timer15 to stm32_common, if the timer base is defined
* Adds Timer15 logic for DMA and AltFunc config on stm32h7 boards
* Adds TIM15 BDTR->MOE support in stm32_common timer init
* Adds support for TIM15 pwm channels on Matek H743 Slim
2022-02-21 16:52:38 -05:00
Daniel Agar 710185d2ad drivers/magnetometer/rm3100: cleanup and simplify (#19238)
* switch to continuous mode at 75 Hz 
 * add simple failure count and reset mechanism
 * add range checks and perf counts
2022-02-21 16:48:20 -05:00
Roman Dvořák 976c994156 Extend the PCF8583 driver to support multiple instances (#19232)
* Add some restart events into pcf8583 driver

Co-authored-by: Vít Hanousek <vithanousek@seznam.cz>
2022-02-21 16:47:16 -05:00
Daniel Agar 3c58932aff boards: px4_fmu-v2_default disable ms4525 to save flash 2022-02-21 16:45:22 -05:00
Charles Cross 699f34ba83 drivers/magnetometer/rm3100: self-test procedure revision (#19207)
* Adds retry behavior and additional checks to RM3100 BIST

Signed-off-by: Charles Cross <charles@missionrobotics.us>
2022-02-21 11:27:42 -05:00
Beat Küng 960003a86a control_allocator: fix weak authority matrix check & update
- use max(fabsf(val)) instead of max(val)
- use correct actuator count
2022-02-21 11:17:00 -05:00
Daniel Agar 591b7b6934 ekf2: add new estimator_gps_status.msg
- includes the estimator status check fail bits broken out as descriptive booleans
 - absorbs ekf_gps_drift.msg
2022-02-21 08:58:59 -05:00
Daniel Agar f8d7574d3c ekf2: simplify global position publication validity check 2022-02-21 08:57:33 -05:00
fury1895 be92165c54 AirspeedSelector: fix messaging 2022-02-21 15:21:13 +03:00
David Sidrane c0facec889 cdc_acm_check:Prevent USB disconect on param save
If the hardware support RESET lockout that has nArmed ANDed with VBUS
   vbus_sense may drop during a param save which uses
   BOARD_INDICATE_EXTERNAL_LOCKOUT_STATE to prevent external resets
   while writing the params.  If we are not armed and nARMRED is low
   we are in such a lock out so ignore changes on VBUS_SENSE during this
   time.
2022-02-21 10:56:41 +01:00
Julian Oes 9b35b680f6 gimbal: fix input selection
Once we have valid input we should use that and not overwrite our
update_result with the result from other inputs, otherwise the
automatic selection does not actually work.

This behavior means that only the first update will be used if there are
several sources updating in the same cycle.
2022-02-21 08:38:16 +01:00
Igor Mišić 3c09448daf dataman: add silence flag for _file_initialize 2022-02-21 08:36:36 +01:00
murata cc6c6c3b8c power_monitor: Determine I2C communication errors 2022-02-20 16:05:44 -05:00
Daniel Agar 09e36e6cb4 gimbal: new pitch limits [MNT_LND_P_MIN, MNT_LND_P_MAX] when landed 2022-02-20 16:04:09 -05:00
Justin 59f28517c5 Force ignition to use version 5 (edifice) which is what it is built for so it doesn't default to a newer version 2022-02-19 19:04:26 +01:00
Daniel Agar d147ad3a9a gimbal: add parameter units 2022-02-18 14:15:58 -05:00
Daniel Agar 2a8aa17a81 mavlink: streams MOUNT_ORIENTATION populate time_boot_ms 2022-02-18 14:14:56 -05:00
Daniel Agar 1f77a3750e mavlink: don't reset _src_addr_initialized on parameter updates 2022-02-18 14:14:36 -05:00
Daniel Agar e0a8d217fc mavlink increase HEARTBEAT timeout 1.5->2.5s
- tolerate missing one HEARTBEAT + jitter
2022-02-18 10:16:20 -05:00
Daniel Agar 1addbe469e mavlink: STATUSTEXT increase stale message timeout 2022-02-18 10:16:20 -05:00
Daniel Agar d5d50d5855 gyro_calibration: add additional validity check before finalizing calibrations
- this can slip through if sensors are running normally, but then stop publishing valid data
2022-02-18 09:12:30 -05:00
Jukka Laitinen dab7b007de Auto-generate a list of kernel-side built-in modules(drivers)
Signed-off-by: Jukka Laitinen <jukkax@ssrc.tii.ae>
2022-02-18 07:58:58 +01:00
Jukka Laitinen 9449ed6e66 Add support for protected build in drivers, systemcmds and modules Kconfig
Signed-off-by: Jukka Laitinen <jukkax@ssrc.tii.ae>
2022-02-18 07:58:58 +01:00
Jukka Laitinen 6071b87afc platforms/common/uORB: Separate IOCTLs going through boardctl interface from the original ones
It was a mistake to mix these two together, it is simpler to implement the boardctl interface
for the protected build, if the boardctl ioctls are different

Signed-off-by: Jukka Laitinen <jukkax@ssrc.tii.ae>
2022-02-18 07:53:13 +01:00
Jukka Laitinen f0d9f44f45 Add an ioctl handler to launch built-in modules in kernel side
Signed-off-by: Jukka Laitinen <jukkax@ssrc.tii.ae>
2022-02-18 07:53:13 +01:00
Jukka Laitinen db3baf6c26 Add an ioctl interface for userspace to kernel calls
This adds an ioctl interface for NuttX protected build, allowing
system calls from user space to kernel for uORB, HRT and crypto

Signed-off-by: Jukka Laitinen <jukkax@ssrc.tii.ae>
2022-02-18 07:53:13 +01:00
Daniel Agar 8489cec08f boards: spracing h7extreme keep icm42688p in RAM
- to make space move rc_update itcm -> sram
2022-02-17 10:30:14 -05:00
Daniel Agar 9aca693945 boards: spracing h7extreme add alternate IMU icm42688p 2022-02-17 10:30:14 -05:00
Silvan Fuhrer c51dc3b4b7 ControlAllocator: Set all the elements of a row to 0 if that row has weak authority
Weak authority on a axis is currently defined as: none of the actuators have an
effectivness on this particular axis larger than 0.05.

Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2022-02-17 13:21:50 +01:00
Silvan Fuhrer 97a280d41d CA: Tiltrotor: set tilts to exactly -1 or 1 if close to these end points
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2022-02-17 13:21:50 +01:00
Silvan Fuhrer 25f5152583 Tiltrotor: make sure tilt doesn't exceed the FW tilt angle
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2022-02-17 13:21:50 +01:00
Silvan Fuhrer c13726af66 Enable DO_SET_SPEED commands outside of missions in other AUTO modes (#18834)
* Navigator: enable DO_CHANGE_SPEED for outside of mission
- update _mission_cruising_speed_mc/_fw also if DO_CHANGE_SPEED command
is received outside of mission (e.g. while Loitering doing an Orbit)
- if vehicle is in AUTO_LOITER when receiving the change speed, then immediately
apply it by doing a reposition without updating any other field than cruising_speed
and cruising_throttle
-when RTL is activated reset the cruising speed and throttle

* Navigator: reset cruise speed and throttle to default when VTOL-transitioning

Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2022-02-17 11:19:02 +01:00
Jaeyoung-Lim b0f9611eb9 NPFG: use cross product for matrix library
This removes the use of cross products from NPFG and takes advantage of the matrix library
2022-02-17 09:52:47 +01:00
Daniel Agar ca97b9ba5f drivers/gps: add new GPS_SAT_INFO parameter to enable satelitte_info
- this replaces the command line argument -s
2022-02-17 08:30:25 +01:00
Daniel Agar abfa3d23a5 boards: matek h743-slim fix STM32_SDMMC_SDXFR_CLKDIV typo 2022-02-16 10:28:01 -05:00
David Sidrane 1c66fb44aa holybro_kakutef7:fit in flash 2022-02-16 10:09:02 -05:00
David Sidrane 2e67b92b4d px4_fmu-v5_stackcheck:Fit in flash 2022-02-16 10:09:02 -05:00
David Sidrane 3593cf795d NuttX With DMA/FLASH Backports 2022-02-16 10:09:02 -05:00
David Sidrane d05d7f4154 bl:Clean up formatting 2022-02-16 10:09:02 -05:00
David Sidrane 92590155fc px4_fmu-v6x:Bootloader move to TELEM1 with DMA 2022-02-16 10:09:02 -05:00
David Sidrane c7bd7323ec serial_test:Fix infinte TX loop with H7/DMA 2022-02-16 10:09:02 -05:00
David Sidrane b5916ac712 px4_fmu-v6x:Document the DMA usage 2022-02-16 10:09:02 -05:00
David Sidrane 7eefdd1e3d px4_fmu-v6x:Enable DMA on TELEM{1|2} 2022-02-16 10:09:02 -05:00
Charles Cross f9feb04f8b Changes SDIO clock speed to 20MHz for the Matek H743 slim
Signed-off-by: Charles Cross <charles@missionrobotics.us>
2022-02-15 09:38:09 -08:00
Yannick Fuhrer 26ea70e729 Airspeed selector: fix condition for messaging (#19173)
Change warning message after airspeed failure on the ground, 
recommend RTL only if flying.
2022-02-15 17:23:36 +01:00
Roman Bapst 6de5d24e00 Added VTOL Takeoff navigation mode (#19027)
* Commander: added support for MAIN_STATE_AUTO_VTOL_TAKEOFF
* navigator: added support for vtol_takeoff navigation mode
2022-02-15 14:56:57 +01:00
Silvan Fuhrer 374bcb105a RTL: fill loiter radius in state Climb (#19165)
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2022-02-15 14:50:14 +01:00
Daniel Agar 5370733d62 ekf2: publish flow vel only if compensated flow is available
- fix a few publication timestamp_samples
2022-02-14 10:55:10 -05:00
Daniel Agar b157afde6a ekf2: prefer airspeed_validated over raw airspeed if available (#19159)
* ekf2: prefer airspeed_validated over raw airspeed if available

Co-authored-by: Silvan Fuhrer <silvan@auterion.com>
2022-02-14 15:37:29 +01:00
Silvan Fuhrer df0e402c44 CA: refactor logic for matrix updating
-pass flag EffectivenessUpdateReason into effectiveness, indicating if there was an external
update or not. Reasons for external updates are:
  -config changes (parameter)
  -motor failure detected or certain redundant motors are switched off to save energy

Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2022-02-14 09:23:10 +01:00
Jukka Laitinen 36d440f895 Add IOCTL interface to uORBManager for nuttx protected/kernel build split
When building uORB for NuttX flat build, or for some other target, everything
works as before.

When building uORB for NuttX protected or kernel build, this does the following:
- The kernel side uORB library reigsters a boardctl handler for calls from userspace
  and services the boardctl_ioctls by calling the actual uORB functions
- For user mode binaries, the uORBManager acts as a proxy, making boardctl_ioctl calls to the
  kernel side

Signed-off-by: Jukka Laitinen <jukkax@ssrc.tii.ae>
2022-02-14 09:10:49 +01:00
Daniel Agar 8b9a856cf7 drivers/barometer: new ms5837 driver (#18213)
Co-authored-by: xn365 <xn_365@163.com>
2022-02-12 14:41:31 -05:00
PX4 BuildBot 41e48435c9 Update submodule mavlink to latest Sat Feb 12 12:38:48 UTC 2022
- mavlink in PX4/Firmware (9457e7b25c4fa51f5ccc0bd887760e910926ba8a): https://github.com/mavlink/mavlink/commit/311eee010bb82f5fb2e4e0f64f7961a83212b003
    - mavlink current upstream: https://github.com/mavlink/mavlink/commit/4b0558d0d10efbdd550cb5321d56f6a611d0ab14
    - Changes: https://github.com/mavlink/mavlink/compare/311eee010bb82f5fb2e4e0f64f7961a83212b003...4b0558d0d10efbdd550cb5321d56f6a611d0ab14

    4b0558d0 2022-02-11 Andrew Tridgell - added CANFD_FRAME and CAN_FILTER_MODIFY messages
7f032afe 2022-02-10 Daniel Agar - Apply suggestions from code review
9379a601 2022-02-06 Andrew Tridgell - common: added MAV_CMD_CAN_FORWARD and CAN_FRAME
2022-02-12 13:16:42 -05:00
Daniel Agar fca886e05a drivers/irlock: add SENS_EN_IRLOCK parameter to start driver 2022-02-11 22:57:56 -05:00
Silvan Fuhrer 2eba1847fd HTE: add new parameter HTE_THR_RANGE to define range of estimated thrust
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2022-02-11 17:04:14 +01:00
Silvan Fuhrer 34805e43fd HTE: remove unused method setMeasurementNoiseStdDev()
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2022-02-11 17:04:14 +01:00
bresch 493e35b72e ekf_terr: reset rng fault when on ground 2022-02-11 10:57:45 -05:00
bresch 502ec7ef46 ekf_terr: fix unit test
the flags were valid ony because they were based on timeouts and when
starting the unit test, it takes a couple of seconds to actually timeout
2022-02-11 10:57:45 -05:00
bresch 2fb7b35a8b ekf2_terr: refactor terrain estimator - flow aiding 2022-02-11 10:57:45 -05:00
bresch 33fd1849e0 ekf2_terr: refactor terrain estimator - rng aiding 2022-02-11 10:57:45 -05:00
bresch 5818974f0f ekf: add range finder "faulty" status
When delclared faulty, the range finder cannot be used anymore
2022-02-11 10:57:45 -05:00
bresch a3b2550f07 mc_auto: only check for offtrack, infront and behind in XY-plane
This fixes the issue when changing the altitude during a goto for
example, where the vehicle was going backwards and upwards to reach the
closest point to the line. Now the vehicle simply goes towards the
target waypoint.
2022-02-11 16:14:48 +01:00
alessandro 1febba315a mantis: disable optical flow fusion in EKF2
Above grass fields I can frequently observe position 
instabilities with the mantis due to the optical flow fusion.

Let's disable flow fusion for now.
2022-02-11 15:33:34 +01:00
Daniel Agar 0b9f60a037 drivers/rc_input: always provide RC_PORT_CONFIG parameter
- RC_PORT_CONFIG is disabled by default if the board doesn't have
CONFIG_BOARD_SERIAL_RC set
 - allows user facing custom RC configuration that overrides board
defaults
2022-02-10 09:41:32 -05:00
Daniel Agar 97a75fc388 sensors: skip selection and failover checks during parameter update cycles 2022-02-10 09:31:23 -05:00
Beat Küng b6607a7b78 battery_status: do not publish if no voltage channel is defined
This is the case for boards with digital readout, like v5x, but still
enable the battery_status module for external analog driver options.

An alternative would be to not run battery_status depending on config.
2022-02-09 16:54:45 -05:00
Nico van Duijn 10ad553f1d v5x: add battery_status module to enable analog bat sensing 2022-02-09 16:54:45 -05:00
Beat Küng 28c27f1b9a px4/fmu-v5x: add ADC_ADS1115_EN param to use external ADC 2022-02-09 16:54:45 -05:00
David Sidrane fd1aa3cfb9 matek_gnss-m9n-f4:Use CONFIG_BOARD_SERIAL_GPSn for serial_passthru 2022-02-09 13:11:52 -05:00
David Sidrane 0c936e4fd2 serial_passthru:Move CONFIG_xxx to serial_passthru 2022-02-09 13:11:52 -05:00
Silvan Fuhrer 81b08a0168 FW Pos C: set position_sp type to position during VTOL backtransition
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2022-02-09 11:39:47 -05:00
Silvan Fuhrer 1d6396b418 Navigator: VTOL: track virtual WP 1m ahead of vehicle during backtransition in Land mode
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2022-02-09 11:39:47 -05:00
Jukka Laitinen dcde0d0559 src/drivers/sw_crypto: Late initialize tomcypt
This saves a lot of flash space, in case functions from libtomcrypt
are not used (currently only RSA related).

When RSA is not used, the linker can now drop all libtomcrypt related things.
This is especially relevant for bootloaders using the SW crypto.

Signed-off-by: Jukka Laitinen <jukkax@ssrc.tii.ae>
2022-02-09 10:28:06 -05:00
Daniel Agar a95da715d5 Jenkins: HIL remove airframe 4018 test 2022-02-09 10:08:59 +01:00
Beat Küng 86860808e3 ROMFS: set CA_* geometry params for some of the generic airframes
Not enabled, makes it easier to switch.
2022-02-09 10:08:59 +01:00
Beat Küng a2ba613254 ROMFS: remove 4018 + 6003 ctrlalloc airframes 2022-02-09 10:08:59 +01:00
PX4 BuildBot 33ce1b9b64 Update submodule mavlink to latest Wed Feb 9 00:39:13 UTC 2022
- mavlink in PX4/Firmware (ed8c1dca2e792e95d9ab1ba72a22bc9658f10b79): https://github.com/mavlink/mavlink/commit/51abf3c82b3d7137406459dc9b337e57637711ae
    - mavlink current upstream: https://github.com/mavlink/mavlink/commit/311eee010bb82f5fb2e4e0f64f7961a83212b003
    - Changes: https://github.com/mavlink/mavlink/compare/51abf3c82b3d7137406459dc9b337e57637711ae...311eee010bb82f5fb2e4e0f64f7961a83212b003

    311eee01 2022-02-04 Peter Barker - common.xml: deprecate SET_HOME_POSITION message (#1791)
63d62522 2022-02-02 Julian Oes - minimal: add MAV_TYPE_WINCH (#1789)
2022-02-08 21:50:55 -05:00
PX4 BuildBot 421ca2fc48 Update submodule sitl_gazebo to latest Wed Feb 9 00:39:03 UTC 2022
- sitl_gazebo in PX4/Firmware (a088277fe866860272f1ef21773f5be1b6832b11): https://github.com/PX4/PX4-SITL_gazebo/commit/2750fe233c6a38dbe60e545ac0ec878d6ac20b1e
    - sitl_gazebo current upstream: https://github.com/PX4/PX4-SITL_gazebo/commit/25138e803ee8525ee5fe4e6d511506e88e3f819c
    - Changes: https://github.com/PX4/PX4-SITL_gazebo/compare/2750fe233c6a38dbe60e545ac0ec878d6ac20b1e...25138e803ee8525ee5fe4e6d511506e88e3f819c

    25138e8 2021-07-16 Julian Oes - gimbal_controller: fix attitude status
2022-02-08 20:52:12 -05:00
Andrew Tridgell d440691406 update README for DroneCAN 2022-02-09 11:31:03 +11:00
Daniel Agar b24aa071b6 Jenkins: hardware always dump pyserial debug (silently) 2022-02-08 17:22:57 -05:00
Daniel Agar 6686736cff drv_pwm_output.h fix dshot cmd typo 2022-02-08 17:11:49 -05:00
Daniel Agar 86f81680fb sensors: check uORB::SubscriptionData validity before use 2022-02-08 13:19:01 -05:00
Oleg Kalachev 21b78f9d05 Enable mpu9250’s magnetometer on fmu-v4 2022-02-08 13:18:39 -05:00
Steve Nogar dce067df83 add configurable rtps rate parameter 2022-02-08 19:03:20 +01:00
Daniel Agar 133fe0cfb1 local_position_estimator: move to INS0 work queue (for significantly more stack) 2022-02-08 11:16:49 -05:00
Daniel Agar be3da5089c uORB: uORBDeviceNode use px4_cache_aligned_alloc 2022-02-08 10:20:50 -05:00
Viktor Vladic f4d02a2937 MatekH743 board_id, usb vid/pid changes, and MPU6000 delay before transfer - not after (#18733)
* Make board_id compatible with ardupilot
 * Initialize outputs for CAM1/CAM2 and Vsw pad
 * Correct board type 1013 in bootloader to match AP
 * Change usb vendor string to "Matek"
 * Change cdcacm pid to 1013
 * Comment out FLASH_BASED_PARAMS because of #15331
2022-02-07 19:55:49 -05:00
Julian Oes 490a0c473b Rename vmount to gimbal 2022-02-07 19:21:15 -05:00
Julian Oes 853047c643 Mantis: use gimbal auto input
This allows RC and mavlink gimbal v2 input.
2022-02-07 19:21:15 -05:00
Julian Oes 39f0e97245 vmount: refactor for v2 auto input, test command
This is a bigger refactor of vmount to clean it up and plug some holes
in functionality.

The changes include:
- Fixing/simplifying the test command.
- Changing the dependencies of the input and output classes to just the
  parameter list.
- Adding a separate topic to publish gimbal v1 commands to avoid
  polluting the vehicle_command topic.
- Removing outdated comments and author lists.
- Extracting the gimbal v2 "in control" notion outside into control_data
  rather than only the v2 input.
2022-02-07 19:21:15 -05:00
Julian Oes f2216dff55 mavlink: don't send gimbal_device_attitude_status
If we receive gimbal_device_attitude_status by mavlink we should not
re-send it as we are already supposed to be forwarding mavlink traffic
from the gimbal to the ground station.
2022-02-07 19:21:15 -05:00
Julian Oes 7e7a99b542 mavlink: handle for GIMBAL_DEVICE_ATTITUDE_STATUS
That way we can log it later.
2022-02-07 19:21:15 -05:00
Daniel Agar 5b07398b3e Tools/HIL/test_airframes.sh: only attempt setting first 3 MAV_x_CONFIG
- MAV_3_CONFIG doesn't exist
2022-02-07 16:31:27 -05:00
Daniel Agar f9d87fd97a sensors/vehicle_angular_velocity: improve error handling (especially during initial selection) 2022-02-07 12:47:02 -05:00
Daniel Agar 3a37fd92e6 Jenkins: HIL temporarily tolerate ERRORs during 'uorb top' (long running command)
- on older boards if the sensor auto cal completes while this is
running it causes a brief sensor timeout
2022-02-07 10:26:48 -05:00
Daniel Agar 052adfbfd9 borads: holybro_kakutef7 disable modules/events to save flash 2022-02-06 16:53:13 -05:00
Daniel Agar 3a741cb9c9 boards: bitcrazy_crazyflie disable gyro_fft to save flash 2022-02-06 16:53:13 -05:00
Thomas Debrunner b4087ebd2b mc_pos_control: increase the default crawl speed for three-stage-landing approach for a more robust landing detection 2022-02-04 21:56:20 -05:00
Matthias Grob 4ef8cead3d mc_pos_control_params: correct crawl speed reference 2022-02-04 21:56:20 -05:00
Matthias Grob 1df9d6fca6 MulticopterLandDetector: fix crawl speed parameter fetching 2022-02-04 21:56:20 -05:00
Thomas Debrunner fb8b9b647a land-detector: switch to crawl speed for intent detection 2022-02-04 21:56:20 -05:00
Thomas Debrunner 2a6d9bc1dd fligh-mode-manager: First implementation of a three-stage-landing for multirotos, in case LIDAR is available 2022-02-04 21:56:20 -05:00
Daniel Agar 893cdf8f38 ekf2: test external vision adjustments after lowering fake position fusion variance 2022-02-04 21:48:32 -05:00
Daniel Agar 6b1750d8be ekf2: lower fake position observation variance when at rest 2022-02-04 21:48:32 -05:00
Daniel Agar c028b964e2 bmm150: minor changes to match reference driver 2022-02-04 19:57:24 -05:00
Beat Küng 8b2016b4ed fix protocol_splitter: increment i properly in scan_for_packets
This also guarantees that i is increased in every loop iteration.
Before it was possible to enter a busy loop.
2022-02-04 09:42:52 -05:00
Daniel Agar cf3db0d313 mavlink: don't send_mission_current if mission invalid 2022-02-04 09:40:25 -05:00
Silvan Fuhrer 26dba1407b Commander: VTOL quadchuate also triggers a RTL in Loiter and VTOL_Takeoff modes, not just in Mission (#19123)
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2022-02-03 14:18:28 +01:00
JaeyoungLim f82c722653 Publish correct orbit status with goto (#19102)
For fixedwings, the orbit status was publishing zero radius when a goto waypoint was being passed.

This commit corrects this by passing the default loiter radius as the guidance logic was using
2022-02-03 10:16:39 +01:00
bresch 917910f3e2 ekf: pass a float by copy instead of a constant ref 2022-02-02 17:43:25 -05:00
bresch 3077f27821 ekf: use float instead of Vector2f for innov gate in pos/vel fusion
We always use the same innovation gate for X and Y anyway
2022-02-02 17:43:25 -05:00
Daniel Agar 5fb0084524 ekf2: remove unused shared fields for last velocity observation and variance 2022-02-02 17:43:25 -05:00
Daniel Agar 8a0581516c ekf2: don't store _auxvel_sample_delayed 2022-02-02 17:43:25 -05:00
Daniel Agar 452b5e94b4 ekf2: don't store _drag_sample_delayed 2022-02-02 17:43:25 -05:00
Daniel Agar 138ff7a316 sensors: ensure that best accel/gyro is in bounds 2022-02-02 17:14:46 -05:00
Daniel Agar 07c273fc31 sensors/vehicle_angular_velocity: print full sensor_selection if device id not found 2022-02-02 17:14:46 -05:00
Daniel Agar 94604ff21a Jenkins: hardware pyserial cat shouldn't fail the build 2022-02-02 14:17:02 -05:00
Peter van der Perk 9f97793491 Generate C/C++ header to expose px4board kconfig symbols to the preprocessor 2022-02-02 13:23:21 -05:00
Jaeyoung Lim 2fc95bb369 Rebase fix
Use getnavspeed_2d for groundspeed
2022-02-02 17:16:19 +01:00
Jaeyoung Lim 3dd5c1fbaf Enable NPFG by default on the believer 2022-02-02 17:16:19 +01:00
Jaeyoung Lim 3a9c5c3178 Use acceleration to pass path curvature 2022-02-02 17:16:19 +01:00
Jaeyoung Lim e2741f988a Add interface for passing path tangent and closest point directly
This commit adds an interface to pass the path tangent and closest point directly to NPFG using the offboard interface
2022-02-02 17:16:19 +01:00
David Sidrane f460611098 Fix serial_test stack warning 2022-02-02 11:12:53 -05:00
Peter van der Perk efd3bc1794 Serial_test move g_cl and g_mod from heap to stack to save memory by not preallocating them 2022-02-02 07:21:43 -08:00
Daniel Agar 88ffc177f7 ekf2: utils add getEulerYaw() that uses the best rotation sequence 2022-02-02 08:54:03 -05:00
Daniel Agar c3e0b93fc8 ekf2: remove unnecessary inlines 2022-02-02 08:50:49 -05:00
Hamish Willee 26d5ac4f58 GPS_YAW_OFFSET param docs: use rover and moving base terminology 2022-02-02 07:39:01 +01:00
David Sidrane 3358712b92 UAVCAN Node Correct C to Kelvin conversion 2022-02-01 21:49:29 -05:00
David Sidrane ec441fdba6 gnss-m9n-f4:Add serial_passthru 2022-02-01 21:49:29 -05:00
David Sidrane 3fecf8a23c Added ability to launch passthru on u-center traffic 2022-02-01 21:49:29 -05:00
David Sidrane 48c32f7795 Added serial passthru
This addes the command serial_passthru which will pass data from one
   device to another. This can be used to use u-center connected to USB
   with a GPS on a serial port.

   Usage: serial_passthru [arguments...]
      -e <val>    External device path
                  values: <file:dev>
      -d <val>    Internal device path
                  values: <file:dev>
      [-b <val>]  Baudrate
                  default: 115200
      [-t]        Track the External devices baudrate on internal device

    With the -t option baudrate changes made on the PC connected to the USB
    will be set to the intrenal device.
2022-02-01 21:49:29 -05:00
David Sidrane 0c8a5b3da1 matek-gnss-m9n-f4:Enable IO compensation 2022-02-01 21:49:29 -05:00
David Sidrane 2761112466 NuttX with CDCACM/OTGID backports
disable otg id
   cdcacm:support c_cflag in the termios structure
   and speed
2022-02-01 21:49:29 -05:00
David Sidrane cb06f82f0f gnss-m9n-f4:Board support clean up
SD is on SPI3 - correct pin mapping
   Fix DMA Mapping for all SPI and RX DMA on U[S]ART RX
   Fix Memory MAP SRAM size
   Removed unused GPIO
   Used proper I2C definitions
   Ensure Watchdog is configured for debugging
   Fixed FLASH param definitions
   Removed unedded SPI init

matek_gnss-m9n-f4:Correct Board ID and Size

Build order SJF

Added Support for F40x
2022-02-01 21:49:29 -05:00
dirksavage88 d92244b664 Initial Matek m9nf4 can node support
Signed-off-by: dirksavage88 <dirksavage88@gmail.com>

Added uavcan board identity

Signed-off-by: dirksavage88 <dirksavage88@gmail.com>

Added usb.c, LED rework may be needed

Signed-off-by: dirksavage88 <dirksavage88@gmail.com>

PX4 dates added to all files

Signed-off-by: dirksavage88 <dirksavage88@gmail.com>

Matek M9NF4 CAN Node initial board support

Signed-off-by: dirksavage88 <dirksavage88@gmail.com>

Changed GPS to ttyS3 in board sensors, led board on/off definitions

Signed-off-by: dirksavage88 <dirksavage88@gmail.com>

Added app descriptor section to canbootloader linker script

Signed-off-by: dirksavage88 <dirksavage88@gmail.com>

Changed board naming convention to match vendor

Signed-off-by: dirksavage88 <dirksavage88@gmail.com>

Changed canbootloader and nsh menuconfig

Signed-off-by: dirksavage88 <dirksavage88@gmail.com>

Test defconfig changes, IRQ hardfault in bootloader

Signed-off-by: dirksavage88 <dirksavage88@gmail.com>

Working canbootloader, App firmware stil WIP

Working App firmware: changed romfsroot to 'cannode', TODO: verify GPS & IMU config

Signed-off-by: dirksavage88 <dirksavage88@gmail.com>

TODO: Debug GPS no sats/low sats issue, no magnetometer on some boards

Signed-off-by: dirksavage88 <dirksavage88@gmail.com>
2022-02-01 21:49:29 -05:00
Daniel Agar f3e2a197ad move vehicle at rest detection ekf2 -> land_detector
- move vehicle at reset detection ekf2 -> land_detector
 - ekf_unit: reduce init period
   - Fake fusion is when at rest is quite strong and makes the variance reduce rapidly. Reduce the amount of time we wait before checking if the variances are still large enough.
 - ekf_unit: reduce minimum vel/pos variance required after init
   - Fake pos fusion has a low observation noise, making the vel/pos variances reduce quickly.

Co-authored-by:: bresch <brescianimathieu@gmail.com>
2022-02-01 17:50:19 -05:00
Daniel Agar e387f302f9 mavlink: streams/COMMAND_LONG don't send internal vehicle_commands 2022-02-01 09:15:10 -05:00
Jukka Laitinen f8a090e85e Remove HYGROMETERS from fmu-v5 stackcheck build and rename to COMMON_HYGROMETERS
The stackcheck build flash space overflows after adding hygrometers.

Also follow the naming convention of other similar config flags, and rename the
config.

Signed-off-by: Jukka Laitinen <jukkax@ssrc.tii.ae>
2022-02-01 08:56:25 -05:00
Beat Küng a4206ba553 logger: log excluded optional topics
Can be displayed with:
ulog_info <file> -m excluded_optional_topics
2022-02-01 08:40:02 +01:00
Roman Dvořák 2b1229786e Multi instance SHT3x driver support 2022-01-31 21:38:26 -05:00
Roman Dvořák ed475ca324 SHT3x driver
SHT3x driver, clean code
changes leading to merge TFHT with CUAV hygrometer
Delete humidity_temperature.msg
Update CMakeLists.txt
rename 'atmosphefir_quantities' to 'hygrometers'
fix logging
removed cmake files
fix PR issues
2022-01-31 21:38:26 -05:00
mcsauder e554f0174d Format whitespace and group checkall() methods together in geofence class. 2022-01-31 21:01:03 -05:00
Matthias Grob ae0bb8371d Commander: message planned battery action with warning together 2022-01-31 20:27:06 -05:00
Matthias Grob 973116c7a4 commander_params: clarify failsafe delay procedure description 2022-01-31 20:27:06 -05:00
Matthias Grob cd560da57c Commander: correct battery failsafe message severity level 2022-01-31 20:27:06 -05:00
Matthias Grob 405852b5c8 Commander: only disallow RC override during battery failsafe delay 2022-01-31 20:27:06 -05:00
Matthias Grob 5ec21835a4 Commander: ensure low battery failsafe flying unatended without GPS 2022-01-31 20:27:06 -05:00
Matthias Grob 1911ec0085 Commander: fix user messageing for low battery failsafe delay 2022-01-31 20:27:06 -05:00
Matthias Grob 52a9040c62 BatterySimulator: recharge battery upon disarming 2022-01-31 20:27:06 -05:00
Matthias Grob 955aad0dfb Commander: consistent hysteresis initialization 2022-01-31 20:27:06 -05:00
Matthias Grob d10f9030ad Commander: add delay before executing low battery failsafe action 2022-01-31 20:27:06 -05:00
Matthias Grob 3af315f2c3 Commander: change battery failsafe to return action instead of executing 2022-01-31 20:27:06 -05:00
Matthias Grob 8eed43b515 Commander: put battery warning and failsafe action in separate functions 2022-01-31 20:27:06 -05:00
Matthias Grob 367b6123e1 state_machine_helper: change main state directly also for low battery RTL 2022-01-31 20:27:06 -05:00
Matthias Grob f49bd9956b state_machine_helper: reuse battery action conditions 2022-01-31 20:27:06 -05:00
Matthias Grob 95b5bc0d84 state_machine_helper: separate low battery warning from action 2022-01-31 20:27:06 -05:00
Jukka Laitinen 70872d94c8 Split px4_layer into kernel and userspace parts for nuttx protected build
Split the px4_layer into user and kernel space libraries. Add some stubs for
user-space (e.g. version) where an interface to the kernel needs to be added

Use posix-versions for cpuload.cpp and print_load.cpp for userspace; these link to nuttx internals. This functinality could be built on top of posix (e.g. procfs) interfaces

Signed-off-by: Jukka Laitinen <jukkax@ssrc.tii.ae>
2022-01-31 20:26:08 -05:00
Jukka Laitinen 3a6ebe5fc1 NuttX Cmake changes to build combined kernel+userspace image in nuttx protected build
Signed-off-by: Jukka Laitinen <jukkax@ssrc.tii.ae>
2022-01-31 20:26:08 -05:00
Jukka Laitinen 1f9ace3901 boards/px4/fmu-v5: Add linker scripts for kernel-userspace split
These scripts are used in protected build configuration

Signed-off-by: Jukka Laitinen <jukkax@ssrc.tii.ae>
2022-01-31 20:26:08 -05:00
Daniel Agar 999737ddd5 ekf2: refactor mag control
- remove class _mag_sample_delayed
 - update mag fusion call graph to use mag sample delayed functionally
 - Ekf::resetMagHeading()
   - use low pass mag directly, but check if valid (magnitude)
   - MAG_FUSE_TYPE_INDOOR treat like auto if heading required
2022-01-31 11:47:10 -05:00
Daniel Agar ad447ab223 commander: respect control mode for prearm requirements
- preflight tolerate ekf2 warnings if not in an attitude/velocity/position mode (eg manual or acro)
2022-01-31 09:48:37 -05:00
Daniel Agar 90358f078f add odometry reset counter (ekf2, mavlink, etc) 2022-01-31 09:19:36 -05:00
mcsauder 463ac8e8a1 Standardize method name style in navigator_main.cpp and whitespace formatting in navigator.h 2022-01-29 21:36:11 -05:00
PX4 BuildBot 3862a24b8e Update submodule sitl_gazebo to latest Sat Jan 29 00:39:00 UTC 2022
- sitl_gazebo in PX4/Firmware (3b277667ff): https://github.com/PX4/PX4-SITL_gazebo/commit/831aa36fea6a1b53d083e0bbad2faf9b31807669
    - sitl_gazebo current upstream: https://github.com/PX4/PX4-SITL_gazebo/commit/2750fe233c6a38dbe60e545ac0ec878d6ac20b1e
    - Changes: https://github.com/PX4/PX4-SITL_gazebo/compare/831aa36fea6a1b53d083e0bbad2faf9b31807669...2750fe233c6a38dbe60e545ac0ec878d6ac20b1e

    2750fe2 2022-01-24 Jaeyoung-Lim - Improve realtime factor for standard_vtol
2022-01-28 22:56:51 -05:00
murata 3b277667ff tfmini: If the distance is 0xFFFF, a negative value is returned 2022-01-28 17:31:12 -05:00
Daniel Agar 274d0d65c6 lib/cdev/posix: increase max FDs 256->512 2022-01-28 17:30:53 -05:00
Jukka Laitinen 058302ecdb Link px4iofirmware against nuttx_mm
Signed-off-by: Jukka Laitinen <jukkax@ssrc.tii.ae>
2022-01-28 17:30:13 -05:00
Jukka Laitinen 32c53ff2dd Link rc against nuttx_fs in nuttx builds
Signed-off-by: Jukka Laitinen <jukkax@ssrc.tii.ae>
2022-01-28 17:30:13 -05:00
Jukka Laitinen 9e999a39be Revert erroneous linking of drivers__device to px4_work_queue
This was a mistake in commit 91b812fc42

Signed-off-by: Jukka Laitinen <jukkax@ssrc.tii.ae>
2022-01-28 17:30:13 -05:00
Jukka Laitinen a2dc6e63cf Fix sdcard logging when crypto is used but algorithm is set to NONE
If the board supports encrypting logfiles, but the parameter SDCARD_ALGORITHM is set to NONE,
the log should be written to the sdcard in plaintext format. This fixes a bug which caused
logger to hang in mutex instead.

Signed-off-by: Jukka Laitinen <jukkax@ssrc.tii.ae>
2022-01-28 17:29:51 -05:00
Daniel Agar 0104b84289 logger: PX4_SITL log all ekf2 publications at full rate for replay 2022-01-28 07:46:54 +01:00
Daniel Agar d2ce9a8560 ROMFS: rc.replay fix ulog_params argument 2022-01-28 07:46:54 +01:00
Jukka Laitinen 70704ff9d6 platforms/nuttx/src/px4/common/CMakeLists.txt: Link px4_layer to nuttx_mm for gran allocators
Signed-off-by: Jukka Laitinen <jukkax@ssrc.tii.ae>
2022-01-27 12:42:40 -05:00
Jukka Laitinen 4c75f1d505 platforms/nuttx/CMakeLists.txt: fixes to accommodate other linker changes
Signed-off-by: Jukka Laitinen <jukkax@ssrc.tii.ae>
2022-01-27 12:42:40 -05:00
Jukka Laitinen e1f2bff9be Fix parameters building for nuttx protected/kernel builds
- Don't link to px4_layer
- Don't link to flashparams; flashparams would work only in kernel side
- Add missing link to px4_platform

Signed-off-by: Jukka Laitinen <jukkax@ssrc.tii.ae>
2022-01-27 12:42:40 -05:00
Jukka Laitinen 705171eb53 Fix linking for posix targets
Signed-off-by: Jukka Laitinen <jukkax@ssrc.tii.ae>
2022-01-27 12:42:40 -05:00
Jukka Laitinen 138f584e70 fw_pos_control_l1: Add a missing dependency to motion_planning
Signed-off-by: Jukka Laitinen <jukkax@ssrc.tii.ae>
2022-01-27 12:42:40 -05:00
Jukka Laitinen 4c3234af38 mavlink: fix linking
- link to nuttx_apps if CONFIG_NET is defined for "netlib_get_ipv4netmask"
- link to tunes

Signed-off-by: Jukka Laitinen <jukkax@ssrc.tii.ae>
2022-01-27 12:42:40 -05:00
Jukka Laitinen e959fcf9d1 bootloader: link stm bootloaders to nuttx_arch for flash functions
Signed-off-by: Jukka Laitinen <jukkax@ssrc.tii.ae>
2022-01-27 12:42:40 -05:00
Jukka Laitinen fe5059b0e8 s32k1xx/led_pwm: link to arch_io_pins
Signed-off-by: Jukka Laitinen <jukkax@ssrc.tii.ae>
2022-01-27 12:42:40 -05:00
Jukka Laitinen 1326c51a1c esc_battery: Link to battery library
Signed-off-by: Jukka Laitinen <jukkax@ssrc.tii.ae>
2022-01-27 12:42:40 -05:00
Jukka Laitinen 03c0a2d56c Fix some cmake / linker depenencies for boards
Signed-off-by: Jukka Laitinen <jukkax@ssrc.tii.ae>
2022-01-27 12:42:40 -05:00
Jukka Laitinen 91b812fc42 link drivers__device to nuttx_karch instead of nuttx_arch in protected build
On protected/kernel build the library would be karch.

Signed-off-by: Jukka Laitinen <jukkax@ssrc.tii.ae>
2022-01-27 12:42:40 -05:00
Jukka Laitinen 700c13cdff Remove linking of arch_io_pins into drivers_board
This goes the other way around; arch_io_pins is using the pin
definitions from drivers_board, so the drivers_board needs to be linked
into arch_io_pins

Signed-off-by: Jukka Laitinen <jukkax@ssrc.tii.ae>
2022-01-27 12:42:40 -05:00
Jukka Laitinen 68729e8ec0 nuttx/rpi io_pins: link to drivers_board for timer_io_channels dependency
Signed-off-by: Jukka Laitinen <jukkax@ssrc.tii.ae>
2022-01-27 12:42:40 -05:00
Jukka Laitinen d181fe0cee nuttx/stm io_pins: link to drivers_board for timer_io_channels dependency
Signed-off-by: Jukka Laitinen <jukkax@ssrc.tii.ae>
2022-01-27 12:42:40 -05:00
Jukka Laitinen 76d4b6c7d0 arch_board_reset: link to nuttx_arch / nuttx_karch for up_systemreset dependency
Signed-off-by: Jukka Laitinen <jukkax@ssrc.tii.ae>
2022-01-27 12:42:40 -05:00
Jukka Laitinen 7bb33e65ae Remove px4_work_queue linking to px4_platform
Remove linking to px4_plaform in here; this breaks linking for nuttx protected build

Signed-off-by: Jukka Laitinen <jukkax@ssrc.tii.ae>
2022-01-27 12:42:40 -05:00
Jukka Laitinen 98906c224b Don't link px4_platform directly to uORB
Since uORB is split into kernel and userspace parts, it is no longer possible to just
link uORB into px4_platform, which is used in both kernel and user side.

Signed-off-by: Jukka Laitinen <jukkax@ssrc.tii.ae>
2022-01-27 12:42:40 -05:00
Jukka Laitinen 54f1e12684 Link arch_spi with drivers_board
Signed-off-by: Jukka Laitinen <jukkax@ssrc.tii.ae>
2022-01-27 12:42:40 -05:00
Jukka Laitinen 51ceb9a85e Add support for compiling modules into kernel side
Define __KERNEL__ macro during compilation and place the module in separate library

Remove default library linking to m or libc on NuttX. Add these in platform layer instead, since
they are different on kernel and user side

Signed-off-by: Jukka Laitinen <jukkax@ssrc.tii.ae>
2022-01-27 12:42:40 -05:00
Jukka Laitinen 714df398eb lib/version: Don't link to drivers_board
The needed version specific things come from px4 layer. Since version
is used both in kernel an user sides in protected build, it can't directly
link to drivers_board

Signed-off-by: Jukka Laitinen <jukkax@ssrc.tii.ae>
2022-01-27 12:42:40 -05:00
Jukka Laitinen ff4eae2c9b Fix px4_impl_os for protected build
For NuttX protected or kernel build, the prebuilds can't contain libraries which are
different for kernel and user-space in protected/kerenl builds

Signed-off-by: Jukka Laitinen <jukkax@ssrc.tii.ae>
2022-01-27 12:42:40 -05:00
Jukka Laitinen d94cc1e114 Add kernel/userspace and nuttx_syscall libraries to build
Build NuttX proxies, stubs and separate user space and kernel space libraries

Signed-off-by: Jukka Laitinen <jukkax@ssrc.tii.ae>
2022-01-27 12:42:40 -05:00
Daniel Agar 49d9d1c987 ekf2: only set fault status bad_acc_clipping if clipping frequently 2022-01-27 09:59:50 -05:00
Daniel Agar f499749c23 ekf2: mag field strength check respect requirements
- requires valid mag data (_mag_data_ready)
 - respect mag_fusion_type (including MAG_FUSE_TYPE_INDOOR)
2022-01-27 09:05:13 -05:00
CUAVmengxiao 0ddf76ed7f uavcan: Add support for BatteryInfoAux message 2022-01-26 13:44:48 -05:00
CUAVmengxiao 425d03d909 msg: Add full_charge_capacity_wh 2022-01-26 13:44:48 -05:00
zhaoxiaowei 996b01acbc uavcannode need link conversion 2022-01-26 13:43:29 -05:00
Roman Dvořák c8349811d1 Enable logging of mavlink tunnel messages
Co-authored-by: Vit Hanousek <vithanousek@seznam.cz>
2022-01-26 11:10:43 -05:00
Daniel Agar ae3070bbf1 ekf2: make filter update period configurable
- introduces new parameter EKF2_PREDICT_US to configure the filter
update period in microseconds
 - actual filter update period will be an integer multiple of IMU
2022-01-26 10:57:09 -05:00
Daniel Agar 3f25349eb9 commander: don't reject VEHICLE_CMD_DO_SET_ACTUATOR 2022-01-25 18:44:58 -05:00
Oleg Kalachev 2945ce7c87 ekf2: fuse optical flow when magnetometer is disabled
Co-authored-by: bresch <brescianimathieu@gmail.com>
2022-01-25 15:42:10 +01:00
bresch 82e88a9547 [AUTO COMMIT] update change indication 2022-01-25 15:07:48 +01:00
bresch d20e46567e ekf2: improve flow for terrain unit test 2022-01-25 15:07:48 +01:00
bresch 1502d77df2 ekf: refactor fake position control logic 2022-01-25 15:07:48 +01:00
Matthias Grob 42404ade77 FlightTaskOrbit: Use cruise speed and manual acceleration for radius and velocity changes
instead of arbitrary fractions of the maximum radius and velocity.
2022-01-25 11:45:31 +01:00
Matthias Grob 7c55229db7 FlightTaskOrbit: Fix altitude adjustment by stick
This is done by inheriting from FlightTaskManualAltitudeSmoothVel again.
The altitude change by command is taken care of by switching
to the apporach when the altitude difference is big enough and
switching back once the altitude is close enough.

The altitude of the command is not perfectly reached but this can
only be done smoothly when the Orbit has full control over the
altitude smoothing. The independent altitude smoothing is not kept
because it was lacking stick handling like altitude lock and smooth
transitions when opening and closing the vertical position loop.
2022-01-25 11:45:31 +01:00
Matthias Grob d73d8f390b FlightTaskOrbit: Fix vertical speed limit 2022-01-25 11:45:31 +01:00
Matthias Grob 38de07186d FlightTaskOrbit: include acceleration and jerk in approach setpoint publishing
I think they were forgotten and it leads to side effects:
- The acceleration feed-forward does not get executed
- The acceleration setpoint is NAN when initializing the altitude
  smoothing when arriving at the circle
2022-01-25 11:45:31 +01:00
Matthias Grob b9fb8490ba FlightTaskOrbit: initialize position smoothing with previous setpoints instead of current state 2022-01-25 11:45:31 +01:00
Matthias Grob e0337a484b FlightTaskOrbit: remove unnecessary _sanitizeParams() in activation
the parameters are anyways sanitized on every update so even if activate()
sets unfeasible one's they get adjusted on the first update.
2022-01-25 11:45:31 +01:00
Matthias Grob 661496ab24 FlightTaskOrbit: improved naming in applyCommandParameters() 2022-01-25 11:45:31 +01:00
Matthias Grob 8525a8e520 FlightTaskAuto: fix typo pos(i)tion 2022-01-25 11:45:31 +01:00
Thomas Debrunner 4671a741dc FlightTaskOrbit: Do not switch out of circle orbit control logic on radius change. 2022-01-25 11:45:31 +01:00
Beat Küng bbc2b703c3 mavsdk_tests: update catch2 to 2.13.8
Fixes this issue on Fedora: https://github.com/catchorg/Catch2/issues/2178
2022-01-24 16:16:29 -05:00
Daniel Agar 8d03e71c16 drivers/magnetometer/bosch/bmm150: init and self test improvements
- if self test fails consistently proceed with startup, but report failure
2022-01-24 16:16:03 -05:00
Daniel Agar 8217e0f335 drivers/magnetometer/bosch/bmm150: add self test fail perf counter to status 2022-01-24 13:06:32 -05:00
Daniel Agar 5ded1aedcb sensors/vehicle_angular_velocity: add IMU_GYRO_DNF_HMC to configure number of ESC RPM notch filter harmonics 2022-01-24 09:23:03 -05:00
SungTae Moon 4c6e746360 uorb graph: fix the link problem for multi topics (#19062) 2022-01-24 09:18:21 +01:00
Jaeyoung-Lim ee98a3336d Spawn at different height for multivehicle simulation
This commit fixes the spawn location of the multivehicle gazebo sitl script
2022-01-23 17:59:42 -08:00
Daniel Agar 07e6c274d5 uavcan/uavcannode: bridge LogMessage and PX4 ORB_ID(log_message_s) 2022-01-23 20:21:39 -05:00
PX4 BuildBot ed28b216c7 Update submodule sitl_gazebo to latest Sat Jan 22 12:38:57 UTC 2022
- sitl_gazebo in PX4/Firmware (6203ad25c7): https://github.com/PX4/PX4-SITL_gazebo/commit/27298574ce33a79ba6cfc31ed4604974605e7257
    - sitl_gazebo current upstream: https://github.com/PX4/PX4-SITL_gazebo/commit/831aa36fea6a1b53d083e0bbad2faf9b31807669
    - Changes: https://github.com/PX4/PX4-SITL_gazebo/compare/27298574ce33a79ba6cfc31ed4604974605e7257...831aa36fea6a1b53d083e0bbad2faf9b31807669

    831aa36 2021-10-09 Shaochang Tan - fix imu noise model.
2022-01-22 12:24:49 -05:00
PX4 BuildBot 6203ad25c7 Update submodule mavlink to latest Sat Jan 22 00:39:17 UTC 2022
- mavlink in PX4/Firmware (a16a8dceb1b2d234ae963c74621c147f521abce9): https://github.com/mavlink/mavlink/commit/3d8092006ec1b2321f74e84039dadb1ebd3d1f37
    - mavlink current upstream: https://github.com/mavlink/mavlink/commit/51abf3c82b3d7137406459dc9b337e57637711ae
    - Changes: https://github.com/mavlink/mavlink/compare/3d8092006ec1b2321f74e84039dadb1ebd3d1f37...51abf3c82b3d7137406459dc9b337e57637711ae

    51abf3c8 2022-01-21 Julian Oes - Component information: add note (#1785)
f5694b29 2022-01-19 Julian Oes - component_info: re-use protocol capabilities (#1786)
2022-01-21 23:10:05 -05:00
Beat Küng 92769bd2b2 dshot: remove BOARD_DSHOT_MOTOR_ASSIGNMENT & handle timer channel gaps 2022-01-21 20:41:15 -05:00
Daniel Agar 4de9c598fa bmm150: retry probe up to 3 times 2022-01-21 15:51:43 -05:00
David Sidrane a11fe60135 imxrt:ADC extend timeout 2022-01-21 13:07:44 -05:00
Daniel Agar 7cb8ed3a1f sensors/vehicle_gps_position: don't work with 64 time with 32 bit floats 2022-01-21 09:18:49 -05:00
JaeyoungLim 0607982b23 Publish orbit status also when the waypoint is a loiter waypoint (#19048)
* Publish orbit status also when the waypoint is a loiter waypoint

* Remove redundant orbit status publishing
2022-01-21 09:13:03 +01:00
Beat Küng bcd057ac3e uORB: fix copy-paste mistake in orb_print_message_internal
Could have led to invalid memory access.
2022-01-20 12:58:20 -05:00
bresch a2260e53da ekf2: replace yaw failure detection criteria
The existing logic using the angle between velocity vectors failed to
determine a yaw failure in practice because the state velocity is often
too small compared to its uncertainty to be used. In all the failures
reported, the yaw emergency estimator converged properly and yaw reset
would have fixed the issue.
A much simpler check using the yaw difference between the main EKF
and the emergency estimator is now used to tell if the vel/pos update
failure is most likely caused by a wrong heading.
2022-01-20 11:54:24 +01:00
Daniel Agar 446729566d platforms/nuttx: px4io_serial always cleanup DMA before next bus exchange
- this really shouldn't be necessary, but worst case it's harmless and
much better than potentially falling out of the sky
2022-01-19 18:00:18 -05:00
Jaeyoung Lim 0dea56f88b Use current_sp for publishing orbit status 2022-01-19 12:00:03 -05:00
Jaeyoung-Lim dec5e7e9c8 Publish orbit status whenever the vehicle is in loiter
This commit moves the publish orbit status to be published whenever the vehicle is considering a loiter setpoint
2022-01-19 12:00:03 -05:00
Thomas Stastny 19c98b8841 npfg: fix typo in Vector2f indexing 2022-01-19 11:17:44 -05:00
bresch e89e3c1b0c ekf2: extract logic to test yaw emergency estimate quality 2022-01-19 09:05:41 -05:00
bresch ea80c5027e ekf2: split yaw estimator state getter into several functions 2022-01-19 09:05:41 -05:00
dagar 476c1e5c09 [AUTO COMMIT] update change indication 2022-01-19 09:04:53 -05:00
bresch ffebd8e771 ekf2: initialize cos tilt variable assuming no tilt 2022-01-19 09:04:53 -05:00
Daniel Agar 92a5bbe97f ekf2: improve ring buffer sizing and dynamically allocate 2022-01-19 09:04:53 -05:00
Daniel Agar 36605bfff6 sensors: lower SENS_MAG_RATE default
- reduce estimator 3D mag fusion cpu load (-3% on Pixhawk4)
2022-01-19 08:51:57 -05:00
Matthias Grob c9f7c20d46 MulticoperPositionController: time failsafe messages together
The following output instead of printing the
action "stop and wait" just once:

WARN  [mc_pos_control] invalid setpoints
WARN  [mc_pos_control] invalid setpoints
WARN  [mc_pos_control] Failsafe: stop and wait
WARN  [mc_pos_control] invalid setpoints
WARN  [mc_pos_control] Failsafe: stop and wait
WARN  [mc_pos_control] invalid setpoints
WARN  [mc_pos_control] Failsafe: stop and wait
2022-01-19 14:31:19 +01:00
Matthias Grob d4e356a1ac PosititionControl: fix integrator windup with invalid setpoint 2022-01-19 14:31:19 +01:00
Matthias Grob 8811482f1d PositionControlTest: add integrator windup with invalid setpoint combination unit test
This bug was by chance found during simulation testing and debugging.
The unit test is to easily reproduce and cover this case.
2022-01-19 14:31:19 +01:00
Silvan Fuhrer 632dfa55e6 FW Pos C: add option to disable airspeed setpoint via stick input
-rename FW_POSCTL_INV_ST to FW_POS_STK_CONF and make bitmask out of it:
  - bit 0: alternative mapping (height rate on throttle stick, airspeed on pitch)
  - bit 1: enable/disable airspeed setpoints via stick

Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2022-01-19 10:13:07 +01:00
Silvan Fuhrer cbb8c90245 ControlAllocation: fix calculation of roll/pitch normalization scale
Take into account the actual number of roll and pitch acutators,
instead of assuming that all actuators have a roll/pitch component.

Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2022-01-19 08:22:12 +01:00
Silvan Fuhrer 0950bb81ab ControlAllocation: update normalization scale only if matrix updated is forced
The forced flag is used to distinguish between updates due to a configuration
(parameter) change (only enabled when disarmed), and matrix updates due to motor
tilt change. Only update the normalization scale if the forced flag is true, and
use a tilt angle of vertical position for it to have the scales tilt-invariant.

Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2022-01-19 08:22:12 +01:00
CUAVmengxiao 258a563dd5 barometer: Add ICP10100 and ICP1011 2022-01-18 19:14:40 -05:00
FARHANG fe44e281e5 ROMFS: Holybro X500 v2 airframe addition 2022-01-18 15:11:41 -05:00
Daniel Agar dd6b7fa98f sensors: switch status PX4_INFO -> PX4_INFO_RAW 2022-01-18 15:00:18 -05:00
Daniel Agar b1d2a0cc4e sensors: simplify timestamp data validator handling 2022-01-18 14:57:18 -05:00
Daniel Agar 8067207ea6 px4_work_queue: rename serial port WQs 2022-01-18 14:56:15 -05:00
bresch 953c90d3a6 failure detector: change imbalanced propeller metric
Use standard deviations instead of variances to get a linear metric
2022-01-18 12:24:35 -05:00
bresch 408cf011b2 failure detector: fix dt computation 2022-01-18 12:24:35 -05:00
Daniel Agar 7eee949a81 Jenkins: hardware tolerate irrelevant uorb status failure 2022-01-18 12:23:05 -05:00
Daniel Agar 548b7d5ece sensors/vehicle_imu: on calibration change don't resume in flight calibration learning immediately 2022-01-18 11:22:41 -05:00
Daniel Agar ece09064c4 parameters: perform verification pass twice
- on NuttX with MTD storage this is to ensure we are verifying what's
actually stored on ramtron or eeprom, not just what's cached by bchlib
2022-01-18 09:47:28 -05:00
alexklimaj cdb6a437a0 Fix UAVCAN beep not started 2022-01-17 21:49:53 -05:00
PX4 BuildBot 0bb9cce1ce Update submodule mavlink to latest Tue Jan 18 00:39:07 UTC 2022
- mavlink in PX4/Firmware (37e04f56da3916dcb518eeba66b0888db1cd8c32): https://github.com/mavlink/mavlink/commit/75204adad281e017e58e0a68fdb0a478c2b74d6f
    - mavlink current upstream: https://github.com/mavlink/mavlink/commit/3d8092006ec1b2321f74e84039dadb1ebd3d1f37
    - Changes: https://github.com/mavlink/mavlink/compare/75204adad281e017e58e0a68fdb0a478c2b74d6f...3d8092006ec1b2321f74e84039dadb1ebd3d1f37

    3d809200 2022-01-14 Hamish Willee - MAV_PROTOCOL_CAPABILITY_FLIGHT_INFORMATION - mark as reserved capability (#1775)
68ff649f 2022-01-13 Hamish Willee - MAV_PROTOCOL_CAPABILITY_MISSION_FLOAT - deprecate (#1768)
ae531d97 2022-01-13 Peter Barker - Move "external" dialects to be normal dialects (#1761)
00a3f8ed 2022-01-12 Julian Oes - Revert "Delete unused cmake tree (#1760)" (#1782)
aa0764bd 2022-01-12 Hamish Willee - MAV_PROTOCOL_CAPABILITY_PARAM_UNION - rename/reserved (#1771)
c3b46620 2022-01-12 Hamish Willee - Update mavlink_udp.c example readme to use mavlink 2 (#1780)
0449a5ec 2022-01-12 Tatsuya Yamaguchi - add extended sensor status bits to MAVLink UDP example (#1778)
fc3539e1 2022-01-10 Josh Henderson - ardupilotmega: Sync to ArduPilot downstream 10-JAN-2022 (#1777)
27395aa7 2022-01-06 Julian Oes - pymavlink: update submodule to latest master (#1776)
2180611b 2022-01-06 Hamish Willee - MAV_WINCH_STATUS_CLUTCH_ENGAGED: Winch clutch is engaged allowing motor to move freely
7c6f104f 2022-01-05 Jacob Dahl - Extend WINCH_STATUS_FLAG and WINCH_ACTION (#1766)
dcb44e75 2022-01-06 Hamish Willee - Delete unused cmake tree (#1760)
5b8bec5b 2022-01-05 Hamish Willee - common.xml: AUTOTUNE_AXIS_YAW - fix value to correct one for bitmask (#1767)
2022-01-17 21:36:02 -05:00
Julian Oes be9385ef06 cmake: use at least 1 core to build SITL
If we use -j 0, ninja fails with invalid argument.
2022-01-17 17:07:31 -05:00
Daniel Agar 2fb82789fe lib/wind_estimator: pass q_att as const reference 2022-01-17 16:59:28 -05:00
Beat Küng 4cbee44220 rc.mc_defaults: only set IMU_GYRO_RATEMAX if default
Allows boards to set a higher rate.
2022-01-17 10:41:33 -05:00
Beat Küng 425b268feb boards: add holybro/kakuteh7
known issues:
- flash-based params does not work on H7 (due to ECC), so params are on
  SD card. The last flash sector is still reserved however.
- output channel 6 does not support DShot (the implementation does not
  handle channel gaps)
- flashing of the 2. flash bank is much slower (around 3x), than the 1.
  bank for some unknown reason.
- after the BL jumps to the app, there's several seconds passing until
  stm32_boardinitialize() is called.
2022-01-17 10:41:33 -05:00
Beat Küng cd2bb14f9b stm32h7/micro_hal.h: add RCC_APB1ENR_TIM4EN 2022-01-17 10:41:33 -05:00
Berker Canatar 9249d3ae3d Update current year in LICENSE 2022-01-17 08:10:57 +01:00
Silvan Fuhrer 0ce44cebb7 WindEstimator: use vehicle heading instead of ground course for initialisation
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2022-01-14 17:42:01 -05:00
Silvan Fuhrer 1a4b2b37bb AirspeedValidator: remove unused variable _tas_gate
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2022-01-14 17:42:01 -05:00
Thomas Stastny 3b6c9448aa npfg: fix format CMakeLists 2022-01-14 22:05:53 +01:00
Thomas Stastny 13c36155ce fw_pos_ctrl: allow npfg to operate without wind estimate, dont switch controllers 2022-01-14 22:05:53 +01:00
Thomas Stastny 082e320191 integrate optional NPFG library for wind-aware fixed-wing guidance 2022-01-14 22:05:53 +01:00
Beat Küng 66cbbf9f2e control_allocator: use 'bidirectional' to clarify reversible motors 2022-01-14 12:18:29 -05:00
Beat Küng 9ca58f5e97 actuator outputs: always add reverse range param
and remove the possibility to set min > max to reverse.

Initially the idea was to add the checkbox on the UI side, to avoid adding
another param, but I don't think I'll go through the extra effort on the
QGC side.
2022-01-14 12:18:29 -05:00
Daniel Agar 98a9748bb8 drivers/dshot: use uORB::PublicationMulti for ORB_ID(esc_status)
- there can be multiple different outupt modules publishing esc_status (eg dshot & uavcan)
2022-01-14 12:17:49 -05:00
Daniel Agar 81ecd130fc uavcan: ESC publish esc_status in callback instead of timer
- this ensures every ESC status gets published with minimal latency
 - also prevents publishing ORB_ID(esc_status) when there's no actual
data (bug)
2022-01-14 12:17:49 -05:00
David Sidrane 25099ce11f fmurt1062-v1:Added GPS driver dropped in move to boardconfig 2022-01-14 07:04:06 -08:00
Julian Oes 651702c2c1 setup: don't install ccache
I don't think the PX4 setup script should decide whether a user is to
use ccache or not. Anecdotally, I've heard from some in the dev team
that they are not using it themselves, so I don't think there is a good
basis to push it onto others.

That being said, we can of course still use ccache as part of the CI
builds nevertheless.
2022-01-14 10:01:23 -05:00
Roman Bapst dc6067ed12 Update src/modules/fw_att_control/fw_att_control_params.c
Co-authored-by: Silvan Fuhrer <silvan@auterion.com>
2022-01-14 16:34:44 +03:00
RomanBapst 34bb671a73 improve parameter descriptions for fw maximum/minimum roll/pitch angles
Signed-off-by: RomanBapst <bapstroman@gmail.com>
2022-01-14 16:34:44 +03:00
RomanBapst 555ee371e8 FixedWingPositionControl: consistently use the same roll and pitch angle
limits for autonomous and semi-autonomous modes (altitude & position control)

Signed-off-by: RomanBapst <bapstroman@gmail.com>
2022-01-14 16:34:44 +03:00
Thomas Stastny f8c2ee73db handle line segment termination in navigator
- if following line segment (fixed-wing position control) switch waypoint when in acceptance radius OR passed the second waypoint. this handles the case of being beyond the second waypoint but not within the acceptance radius without the need to fly back to the waypoint (e.g. after a loiter up to waypoint alt)
- sync navigator and fw pos ctrl waypoint acceptance altitude
2022-01-13 13:43:02 +01:00
Claudio Micheli 8a01135a93 Commander: more changes to use events with escs and battery failures
Signed-off-by: Claudio Micheli <claudio@auterion.com>
2022-01-13 08:40:34 +01:00
Claudio Micheli d122513197 extend support for Battery status message
Signed-off-by: Claudio Micheli <claudio@auterion.com>
2022-01-13 08:40:34 +01:00
Daniel Agar bb1177d504 sensor_calibration: refactor and centralize calibration slot logic
- centralize logic for selecting a preferred calibration slot
   - automatically use existing calibration slot if it exists, otherwise
find first available slot, with a preference for a requested index
 - existing commander calibration methods rewrite all calibration slots
to match current sensor ordering
2022-01-12 16:16:26 -05:00
alexklimaj d1304e1ceb Add CANNODE_GPS_RTCM 2022-01-12 15:30:38 -05:00
Silvan Fuhrer 3cd1e0ce19 MCLandDetector: clean up logic for ground effect
Before: in_ground_effect was always true with the default settings (LNDMC_ALT_GND =-1)
 and when a distance sensor was present with valid data.
Now: default of LNDMC_ALT_GND is set to 2m by default, and if set to a negative value
then in_ground_effect is never set to true

Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2022-01-12 18:41:16 +01:00
Matthias Grob 443406ea2b FlightTaskAuto: use longerThan() when possible in vector calculations 2022-01-12 15:12:24 +01:00
bresch 4fc7348582 mpc: leave room for altitude error control during descent and descent
Since the same parameter is used to generate the trajectory and to
saturate the controller, there is no additional space for the output of
the position controller once it is filled with the feedforward, letting
the altitude grow uncontrolled.
2022-01-12 13:33:48 +01:00
bresch ea7d2334c9 mpc: add parameter for ascent/descent speed in auto modes 2022-01-12 13:33:48 +01:00
Daniel Agar 463513f31f Jenkins: hardware disable auto cal before on board tests 2022-01-11 11:47:02 -05:00
Daniel Agar 2eec7842ae sensors/vehicle_imu: fix SENS_IMU_AUTOCAL saving logic
- on cycles that don't check for updated calibraton (estimated bias) we
check if there's anything valid to save (when disarmed)
2022-01-11 11:47:02 -05:00
romain-chiap 4e06b40e2b sih: add tailsitter support, disable UAVCAN 2022-01-11 08:29:19 +01:00
Julian Oes 6ed48ad0c0 ROMFS: Remove now unused variable 2022-01-10 23:04:10 -05:00
Julian Oes b52972f3f8 ROMFS: remove duplicate startup tune
This must have come back in a rebase.
2022-01-10 23:04:10 -05:00
Julian Oes 1baecf07ad Mantis: remove startup tune volume
Let's just leave it at the default like the rest of the beeps.
2022-01-10 23:04:10 -05:00
Julian Oes 38439256e5 Mantis: move MIXER vars to airframe init
The two were actually conflicting and are now consolidated.
2022-01-10 23:04:10 -05:00
Julian Oes 14fb019821 Mantis: move SYS_DM_BACKEND to board_defaults
Otherwise it is set too late and not used during startup.
2022-01-10 23:04:10 -05:00
Julian Oes feb2987fa8 Mantis: remove unused transition script
When coming from the previous stack there are no params anywhere, so
this will not execute anyway.
2022-01-10 23:04:10 -05:00
Julian Oes a061d7a02a Mantis: use dataman in RAM 2022-01-10 23:04:10 -05:00
Julian Oes b3d830dd11 Mantis: move power off tune to commander
This way we don't allocate inside the interrupt context.
2022-01-10 23:04:10 -05:00
Julian Oes 372a0da987 Mantis: move upload.sh into boards/atl/mantis-edu 2022-01-10 23:04:10 -05:00
Julian Oes 73044c51f9 vmount: only send CONFIGURE cmd if type changes
We don't always have to send MOUNT_CONFIGURE but really only when the
control data type actually changes.
2022-01-10 23:04:10 -05:00
Julian Oes 22180a2639 mavlink: make range params optional
If there is no range sensor compiled in, these two params do not seem to
be available. Hence, we need to make them optional.
2022-01-10 23:04:10 -05:00
Julian Oes 0ffdccbd60 Mantis: Add MPC2520 again 2022-01-10 23:04:10 -05:00
Julian Oes b44f5b49ca Mantis: add tap_esc to Kconfig 2022-01-10 23:04:10 -05:00
Julian Oes 8331339927 atl_mantis: update bootloader binary again
This includes the fix which disables the UART overrun.
2022-01-10 23:04:10 -05:00
Julian Oes b1a1e4913b Mantis: rotate flow by 180 degrees
This seemed to be exactly inverted.
2022-01-10 23:04:10 -05:00
Julian Oes 28d69d3285 Mantis: fix throttle RC calibration 2022-01-10 23:04:10 -05:00
Julian Oes b92aa92bec Mantis: fix mixer loading
The ordering before did not work out, and without the sleep it fails.
2022-01-10 23:04:10 -05:00
Julian Oes 06b5b58b3b Mantis: increase Tx buffer to with gimbal->camera
This way log streaming works with much less drops.
2022-01-10 23:04:10 -05:00
Julian Oes 11b60904c3 Mantis: use lower log streaming rate 2022-01-10 23:04:10 -05:00
Julian Oes ca1fabf80a logger: add rate factor to slow logging down
This is required for the Mantis to reduce the log streaming rate.
2022-01-10 23:04:10 -05:00
Julian Oes f3a278dce5 Mantis: add comment about boot order.
The boot order is now:
1. The PX4 bootloader boots, and starts the camera.
2. The camera starts and sends the boot command to the PX4 bootloader.
3. PX4 starts.
2022-01-10 23:04:10 -05:00
Julian Oes ecfc7cc24f Mantis: set bootloader timeout to 180 seconds
The first byte 0xb4 is 180. This number is read by the bootloader.
2022-01-10 23:04:10 -05:00
Julian Oes e15cbc3a6b Mantis: move tap_esc to extras
This way we work around an issue where tap_esc got stuck during bootup
in a cold boot.
2022-01-10 23:04:10 -05:00
Julian Oes 24bdf79180 ROMFS: fix debug output 2022-01-10 23:04:10 -05:00
Julian Oes c2e0e09b2d commander: reduce PWM max again
This is no longer required now.
2022-01-10 23:04:10 -05:00
Julian Oes e4763f15f6 Mantis: add RC hacks
This changes the way RC is handled for the Mantis:
- The RC values are re-written when arriving over MAVLink. They are
  rescaled from 0..4095 to 1000..2000 and the channel bits added to
  separate channels. This makes the downstream handling easier.
- Gimbal pitch is moved from Aux1 to Aux2 as that should be the default.
- Aux3 and Aux4 are used for the photo and video trigger.
- The speed button is used as the FLTMODE channel and set to switch
  between POSCTL and ALTCTL.
2022-01-10 23:04:10 -05:00
Julian Oes 9fe7a40673 manual_control: enable sending camera commands 2022-01-10 23:04:10 -05:00
Julian Oes 1754e25920 vmount: add param to use RC input for angular rate
Until now RC input was translated to angles only. I added the param
MNT_RC_IN_MODE which allows the RC input to be used for angular rate.
2022-01-10 23:04:10 -05:00
Julian Oes f03990f015 Mantis: prevent output setup from running
This is not required as we start tap_esc directly and load the mixer.
2022-01-10 23:04:10 -05:00
Julian Oes cb15728536 Mantis: save mission in RAM
This is using a reduced number of mission items of 1000 instead of 2000
in order to fit in RAM.
2022-01-10 23:04:10 -05:00
Julian Oes 7d09635fb6 ROMFS: add option for dataman args
This is required for boards requiring dataman in RAM.
2022-01-10 23:04:10 -05:00
Julian Oes bb09646b41 ROMFS: allow the output config to be skipped
This is required for the ATL Mantis-EDU.
2022-01-10 23:04:10 -05:00
Julian Oes 0fbb03dee1 ROMFS: add option for startup tune volume
Otherwise the CBRK_BUZZER param does not work as it should.
2022-01-10 23:04:10 -05:00
Julian Oes a50f7af3b1 Mantis: update bootloader and SYS_AUTOSTART
This adds a check for the previous SYS_AUTOSTART id. If it is still the
old/previous SYS_AUTOSTART id, it will flash the new bootloader as well
as set the proper SYS_AUTOSTART id.
2022-01-10 23:04:10 -05:00
Julian Oes fa282cfe86 Mantis: make startup less loud 2022-01-10 23:04:10 -05:00
Julian Oes 880292f5d7 commander: relax RC min/max 2022-01-10 23:04:10 -05:00
Julian Oes 2b4b87571c Mantis: adapt RC calibration
This is with a newer RC firmware.
2022-01-10 23:04:10 -05:00
Julian Oes aa007dadee commander: fix emergency power off
From what I can see the CONFIG_BOARDCTL_POWEROFF is not really used
anywhere, however, the BOARD_HAS_POWER_CONTROL is something that is set,
e.g. for the Mantis, to allow power off.
2022-01-10 23:04:10 -05:00
Julian Oes 6301fa35c1 commander: add command to power off 2022-01-10 23:04:10 -05:00
Julian Oes 4a43155e69 Mantis: remove duplicate define 2022-01-10 23:04:10 -05:00
Julian Oes 7759ffb00e Mantis: reduce power button hold time
This is more intuitive and matches the tune.
Hopefully, it's still long enough to prevent any false positives.
2022-01-10 23:04:10 -05:00
Julian Oes 6960600c28 Mantis: play power off tune
To play a power off tune, I needed to convert the file to C++, so that I
could use the uORB::Publication.

The current implementation starts playing the power off sound but then
stops it as soon as the button is released.

The problem is mostly that we only get an interrupt when the button is
pressed or released but we don't seem to be able to poll it, at least
not in the current state.
2022-01-10 23:04:10 -05:00
Julian Oes 860b23dd17 tunes: add tune to power off
This is used by the ATL Mantis EDU to help the user realize when the
drone is powered off.
2022-01-10 23:04:10 -05:00
Julian Oes a21fefda48 tune_control: prevent segfault 2022-01-10 23:04:10 -05:00
Julian Oes 856e229482 ROMFS: reset the startup sound for Mantis 2022-01-10 23:04:10 -05:00
Julian Oes 1be4e35ed4 ROMFS: move startup sound further down
This way it works for the Mantis where the tap_esc driver needs to be
running before beeping is posssible.
2022-01-10 23:04:10 -05:00
Julian Oes 76920171c7 tap_esc: fix tunes
This removes the redundant _play_tone flag and instead just polls the
next_note() interface to check if there is something to play.
2022-01-10 23:04:10 -05:00
Julian Oes de1849167d Mantis: Add upload_wifi target to upload firmware 2022-01-10 23:04:10 -05:00
Julian Oes 185e4cfd48 Mantis: set range finder limits, and min quality
The limits might somewhat match the sensor, guessed based on the
original driver.

The quality is set so that spikes when sitting on the ground are not
used.
2022-01-10 23:04:10 -05:00
Julian Oes dd00e43ca3 mavlink: set signal_quality (and sane variance)
Otherwise this distance data is actually not used at all.
2022-01-10 23:04:10 -05:00
Julian Oes aefbd80b53 mavlink: use optical flow limits from params
This makes more sense than hard-coding arbitrary values.
2022-01-10 23:04:10 -05:00
Julian Oes f48c3a2cc6 mavlink: don't handle RC_CHANNELS
This is a status/output but should not be an input for the autopilot.
Instead RC_CHANNELS_OVERRIDE should be used.
2022-01-10 23:04:10 -05:00
Daniel Agar cc1fee525a lib/sensor_calibration: handle calibration slot change on parameter update 2022-01-10 17:16:50 -05:00
Daniel Agar ab547bb982 sensors/vehicle_angular_velocity: RPM notch don't fully disable if first harmonic frequency drops below minimum frequency
- keep higher frequency harmonics enabled per ESC
 - cleanup timestamp handling (timeouts, etc)
2022-01-10 14:51:29 -05:00
Daniel Agar b58922a5d7 sensors/vehicle_angular_velocity: notch filters automatically reset on sufficient parameter change 2022-01-10 14:51:29 -05:00
Daniel Agar 7d632254be NotchFilter push initialization/reset into filter
- this simplifies the reset by allowing a notch filter to reset as
needed
 - improves cascade initialization, on reset each filter will reset
properly from the previous
2022-01-10 14:51:29 -05:00
Daniel Agar 2e2ac36cab drivers/uavcan: make firmware server available on both CAN1/CAN2 always (if enabled)
- uavcan firmware server no longer shuts down when arming (nodes might restart in flight)
 - always handle UAVCAN parameters with or without the FW server active
 - remove legacy ESC enumeration in FW server
2022-01-10 11:13:02 -05:00
Daniel Agar d9e7315420 sensors: automatically set initial accel/gyro calibration if stable bias available 2022-01-10 10:46:37 -05:00
Daniel Agar e731fcdbc0 sensors (accel/gyro/mag) determine if external with device id 2022-01-10 10:31:07 -05:00
Daniel Agar 45040be669 ekf2: accel/gyro/mag sensor cal minor cleanup
- cleanup obsolete comments
 - remove debug helpers
 - add additional variance requirements to mag bias stable (matching accel & gyro)
2022-01-10 09:55:59 -05:00
Daniel Agar c3ca40a98f drivers/px4io: delete monitor command
- the px4io console isn't even connected on most flight controllers
2022-01-10 09:51:11 -05:00
Daniel Agar e5d49f6fff drivers/px4io: delete unused detect 2022-01-10 09:51:11 -05:00
Daniel Agar d077ca15fb delete PWM_SERVO_SET, PWM_SERVO_SET_MODE, systemcmds/motor_ramp, and pwm_out test 2022-01-10 09:51:11 -05:00
Daniel Agar df44df2df6 delete systemcmds/esc_calib
- this is redundant with commander esc_calibration
2022-01-10 09:51:11 -05:00
Daniel Agar 03bdc460d8 drivers/px4io: PWM_SERVO_GET_FAILSAFE_PWM don't get registers directly 2022-01-10 09:51:11 -05:00
Daniel Agar d3301ba826 delete PWM_SERVO_GET_TRIM_PWM 2022-01-10 09:51:11 -05:00
Daniel Agar 8de59dad32 delete PWM_SERVO_SET_TERMINATION_FAILSAFE 2022-01-10 09:51:11 -05:00
Daniel Agar 1739ecc981 delete PWM_SERVO_SET_FORCE_FAILSAFE 2022-01-10 09:51:11 -05:00
Daniel Agar 649d3e3f55 delete PWM_SERVO_SET_DISABLE_LOCKDOWN/PWM_SERVO_GET_DISABLE_LOCKDOWN 2022-01-10 09:51:11 -05:00
Daniel Agar b7ed4fd3e0 delete PWM_SERVO_SET_DISARMED_PWM 2022-01-10 09:51:11 -05:00
Daniel Agar 551a31ce2f delete PWM_SERVO_SET_FAILSAFE_PWM 2022-01-10 09:51:11 -05:00
Daniel Agar daa925137c boards: move default battery calibration defines to parameter defaults 2022-01-10 09:49:36 -05:00
Daniel Agar 78b3d22471 lib/mixer_module: consume output_limit library 2022-01-10 11:59:55 +01:00
Daniel Agar 71d8b15b73 commander: fix COM_HOME_EN missing case
- VEHICLE_CMD_COMPONENT_ARM_DISARM is yet another path that calls set_home_position()
2022-01-09 20:52:07 -05:00
Daniel Agar 0b1402afe2 Tools/HIL/test_airframes.sh enable all mavlink and GPS 2022-01-08 18:11:43 -05:00
bresch 57fa9c545a PosControl: fix hover update equation
The integrator now absorbs properly the change in hover thrust
2022-01-08 15:42:10 +01:00
Daniel Agar 6c97700eaa move sensor calibration parameters to yaml 2022-01-07 19:00:41 -05:00
Matthias Grob bbad4a5397 FlightTaskAuto: Respect altitude with offtrack state
To avoid weird cases where the altitude is different enough and
the offtrack state flies to the target altitude instead of the closest
point on the track between the waypoints.
2022-01-07 10:30:39 -05:00
Julian Oes be0a5b4b32 workflows: Set up batch fuzzing every 24 hours
So instead of fuzzing each and every PR for 10minutes, we just fuzz
30mins every 24 hours, at 6am UTC which should be a time when US and
Europe might be least active.
2022-01-07 10:17:12 -05:00
Julian Oes 2cbc993976 Add clusterfuzzlite to fuzz in CI 2022-01-07 10:17:12 -05:00
Julian Oes 9eda5b373c posix: add fuzz testing using MAVLink messages
This adds the env option PX4_FUZZ which runs the LLVM libFuzzer which
throws random bytes at mavlink_receiver using MAVLink messages over UDP.

The MAVLink messages that are being sent are valid, so the CRC is
calculated but the payload and msgid, etc. are generally garbage, unless
the fuzzing gets a msgid right by chance.

As I understand it, libFuzzer watches the test coverage and will try to
execute as much of the code as possible.
2022-01-07 10:17:12 -05:00
Daniel Agar c17a9e8003 sensors/vehicle_imu: refactor SensorCalibrationUpdate() to separate accel/gyro cal saving 2022-01-07 09:40:51 -05:00
Daniel Agar aec97e0020 sensors: minor IMU bias saving updates
- sensors/vehicle_imu: reset learned cal on any calibration change
during parameter update
 - sensors/vehicle_imu: cleanup logic estimated bias -> calibration offset
saving
   - don't invalidate saved calibration (the point is to keep the last valid)
   - remove old debug code, etc
 - sensors/vehicle_imu: notify parameter changes if accel or gyro
calibration has changed
 - lib/sensor_calibration: add calibrated() and calibration_index()
getters, keep Accelerometer/Gyroscope/Magnetometer in sync
2022-01-07 09:40:51 -05:00
Silvan Fuhrer 5d7ddf5734 FW Pos Control: use SlewRate library for airspeed setpoint
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2022-01-07 09:39:10 -05:00
Daniel Agar 30ccfdb2ed sensors/vehicle_magnetomeer: fix copyright year 2022-01-06 20:27:56 -05:00
Julian Oes 07d75d85cf mavsdk_tests: trigger flush to stdout every second 2022-01-06 09:24:32 -05:00
Julian Oes 2d8ebc6839 mavsdk_tests: add timestamp to log output
The timestamp is added when the output is queued up, rather than later
when the queue is emptied and some time might have passed.
2022-01-06 09:24:32 -05:00
Julian Oes dd6fb58f82 mavsdk_tests: don't stall mavsdk_tests binary
This is an attempt to fix the test failure where PX4 detects an RC
timeout presumably because the tester process mavsdk_tests is stalled
and does not send RC control messages in time.
2022-01-06 09:24:32 -05:00
Julian Oes 952cfe2fd7 ekf2: fix uninitalized memory warning
The imu and sensor_combined data should not be used when it has not been
updated yet, otherwise this triggers a memory sanitizer warning:

Conditional jump or move depends on uninitialised value(s)
   at 0x2DA7AA: __sanitizer_cov_trace_const_cmp1 (in build/px4_sitl_default-clang/bin/px4)
   by 0x3C4E79: EKF2::Run() (src/modules/ekf2/EKF2.cpp:401)
   by 0x6EB881: px4::WorkQueue::Run() (platforms/common/px4_work_queue/WorkQueue.cpp:187)
   by 0x6ECB9D: px4::WorkQueueRunner(void*) (platforms/common/px4_work_queue/WorkQueueManager.cpp:230)
   by 0x4C07258: start_thread (in /usr/lib/libpthread-2.33.so)
   by 0x4D415E2: clone (in /usr/lib/libc-2.33.so)

Conditional jump or move depends on uninitialised value(s)
   at 0x3C4E7C: EKF2::Run() (src/modules/ekf2/EKF2.cpp:401)
   by 0x6EB881: px4::WorkQueue::Run() (platforms/common/px4_work_queue/WorkQueue.cpp:187)
   by 0x6ECB9D: px4::WorkQueueRunner(void*) (platforms/common/px4_work_queue/WorkQueueManager.cpp:230)
   by 0x4C07258: start_thread (in /usr/lib/libpthread-2.33.so)
   by 0x4D415E2: clone (in /usr/lib/libc-2.33.so)
2022-01-05 16:20:06 -05:00
romain-chiap 4264ec992d Update 1101_rc_plane_sih.hil
This bugged me for a while, the sih FW would not takeoff from the ground. Now, I found it!
2022-01-05 16:18:53 -05:00
Silvan Fuhrer 0a82025faf FW Position Control: some airspeed setpoint handling adaptions
- introuce slew rate limiting of airspeed setpoint (with slew rate of 1 m/s/s)
- some refactoring and clean up

Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2022-01-05 17:06:41 +01:00
Silvan Fuhrer 20a1e5f77c FW Position Control: simplify underspeed disabling logic for tecs
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2022-01-05 17:06:41 +01:00
Matthias Grob bbb04ab4b8 Remove relaying of maximum altitude through land detector 2022-01-05 14:54:59 +01:00
Julian Oes 2445fa8b4c commander: prevent uninitialized warning
This prevents a memory sanitizer/valgrind warning:

Conditional jump or move depends on uninitialised value(s)
   at 0x2DA536: __sanitizer_cov_trace_cmp4 (in build/px4_sitl_default-clang/bin/px4)
   by 0x6590D8: FailureDetector::update(vehicle_status_s const&, vehicle_control_mode_s const&) (src/modules/commander/failure_detector/FailureDetector.cpp:76) by 0x3817DF: Commander::run() (src/modules/commander/Commander.cpp:2605)
   by 0x38B10B: ModuleBase<Commander>::run_trampoline(int, char**) (platforms/common/include/px4_platform_common/module.h:180)
2022-01-05 10:53:51 +01:00
Daniel Agar 170849c8f8 ekf2: expand accel bias stability criteria 2022-01-04 13:57:49 -05:00
PX4 BuildBot 846f807eff Update submodule mavlink to latest Tue Jan 4 12:39:05 UTC 2022
- mavlink in PX4/Firmware (a8c88f1c98212e72a266fec8a9e7c0da2a14f3af): https://github.com/mavlink/mavlink/commit/4bc0de9c38626fe3640de266118af5fd64fe6a18
    - mavlink current upstream: https://github.com/mavlink/mavlink/commit/75204adad281e017e58e0a68fdb0a478c2b74d6f
    - Changes: https://github.com/mavlink/mavlink/compare/4bc0de9c38626fe3640de266118af5fd64fe6a18...75204adad281e017e58e0a68fdb0a478c2b74d6f

    75204ada 2022-01-04 Hamish Willee - Add ability to specify axis to autotune (#1759)
2022-01-04 09:32:43 -05:00
bresch d094fbbd70 ekf2: fix delta angle coning metric 2022-01-04 09:28:48 -05:00
PX4BuildBot 6fbc0e95d0 [AUTO COMMIT] update change indication 2022-01-04 09:12:45 -05:00
PX4 BuildBot a89f21d566 Update world_magnetic_model to latest Tue Jan 4 11:14:11 UTC 2022 2022-01-04 09:12:45 -05:00
Daniel Agar e835a7c4ea boards: enable readline history and tab completion on newer boards 2022-01-03 10:44:32 -05:00
Daniel Agar 9d1558af25 ekf2: selector use status timestamp for timeout rather than timestamp_sample (delayed time horizon)
- update stale checks for publication to use hrt elapsed time from
timestamp sample
2022-01-03 09:20:44 -05:00
Daniel Agar 333edfe12f ekf2: use delayed IMU timestamp for publication's timestamp_sample 2022-01-03 09:20:44 -05:00
Daniel Agar 35502c249d ekf2: don't use Vectors for height innovations (baro, rng, etc) 2022-01-03 09:20:20 -05:00
David Sidrane eac92ec671 imxrt:ADC fix timeouts 2022-01-03 06:02:19 -08:00
Jaeyoung-Lim bdec85fdd0 Disable local vehicle setpoints while in transition
This commit adds disabling vehicle setpoints while in transition
2022-01-03 11:09:06 +01:00
Jaeyoung-Lim 4127dfa791 Log vehicle local position setpoints
This commit enables the local position setpoints to be logged by publishing vehicle_local_position_setpoint
2022-01-03 11:09:06 +01:00
Jaeyoung Lim 52418f13b0 Use groundspeed for navigate heading 2022-01-03 10:52:34 +01:00
Jaeyoung-Lim e66e82228f Add support for offboard velocity setpoints for fixedwing vehicles
This commit adds a velocity controller which the setpoint can be passed using offboard setpoints
2022-01-03 10:52:34 +01:00
Daniel Agar 75bb2f8dd2 Jenkins: hardware temporarily tolerate sd_bench failures on px4_fmu-v5_debug 2022-01-02 14:47:52 -05:00
Daniel Agar 673d4544d1 parameters: verify param backup after export 2022-01-02 10:46:34 -05:00
Daniel Agar 8e26b33009 tinybson: file write error add more detail 2022-01-02 10:46:34 -05:00
Daniel Agar 80ef6e19df tinybson: explicitly append int32 or int64 2022-01-02 10:46:34 -05:00
Daniel Agar 9cbb5c9920 parameters: fix export shutdown locking
- in NuttX bchlib keeps a sector sized buffer that might not be written
out to RAMTRON until the file is closed
2022-01-02 10:46:34 -05:00
Daniel Agar 2153710917 Tools/HIL/monitor_firmware_upload.py don't fail on any ERROR
- on first boot we only care that it completes (gets to nsh prompt)
2022-01-02 10:05:30 -05:00
Daniel Agar c421bff73c Tools/HIL: use pyserial spy:// to log all serial traffic and dump on failure 2022-01-01 22:25:29 -05:00
Daniel Agar 7df1721d32 ROMFS: rcS disable simplistic SD I/O test
- this was added when trying to identify SD card issues at boot and
trigger a format, but didn't provide any value
2022-01-01 18:43:27 -05:00
Daniel Agar f76aa0e772 cmake: NuttX ARMV7M_STACKCHECK skip ekf2
- px4_fmu-v5_stackcheck switch from icm20689 -> bmi055 (lower rate)
 - this is to make performance tolerable
2022-01-01 18:43:27 -05:00
Daniel Agar e9283d90cc systemcmds/netman: fix code style 2022-01-01 18:40:47 -05:00
Daniel Agar 0029317e55 Jenkins: hardware additional reboots no longer required 2022-01-01 14:06:05 -05:00
Daniel Agar 439ad7daea Jenkins: hardware disable calib_delay (too slow) and manual SD format 2022-01-01 12:10:28 -05:00
Daniel Agar 501474993e Tools/HIL: default to USB UART if available 2022-01-01 10:49:30 -05:00
Daniel Agar 77b65ee564 boards: px4_fmu-v5_debug disable stack check
- this is redundant with px4_fmu-v5_stackcheck
2021-12-31 19:34:18 -05:00
Daniel Agar 247b975675 Tools/HIL: disable XON/XOFF, consistent timeouts, proper input buffer clear 2021-12-31 19:28:40 -05:00
Daniel Agar 03371f8522 NuttX with bch flush backport 2021-12-31 10:59:56 -08:00
David Sidrane db159a43cc test_dataman:Set SEM_PRIO_NONE on all semaphores 2021-12-31 10:27:24 -05:00
Daniel Agar 1b6700592b parameters: require valid BSON document size 2021-12-30 16:36:23 -05:00
Daniel Agar 3514458f42 Tools/HIL/test_airframes.sh: dump all parameter storage after bootup to verify contents 2021-12-30 12:43:00 -05:00
Daniel Agar b06215d038 Tools/HIL/test_airframes.sh: run param dump after save to verify BSON 2021-12-30 11:11:14 -05:00
PX4 BuildBot 5fc7e551ab Update submodule mavlink to latest Wed Dec 29 12:38:13 UTC 2021
- mavlink in PX4/Firmware (395eeb440a2ca7503591f872d4f733fcd9867218): https://github.com/mavlink/mavlink/commit/bfaf605bd6f25c8c4843d67e455fe02acb5a9452
    - mavlink current upstream: https://github.com/mavlink/mavlink/commit/4bc0de9c38626fe3640de266118af5fd64fe6a18
    - Changes: https://github.com/mavlink/mavlink/compare/bfaf605bd6f25c8c4843d67e455fe02acb5a9452...4bc0de9c38626fe3640de266118af5fd64fe6a18

    4bc0de9c 2021-12-27 olliw42 - Component Information Basics: add camera cap flag (#1752)
8035ad4d 2021-12-27 Hamish Willee - GIMBAL_DEVICE_FLAGS_NEUTRAL - note that this can be any angle (#1758)
2021-12-29 17:16:49 -05:00
Daniel Agar 6706d9b434 Jenkins: always fully clean git workspace 2021-12-29 17:14:11 -05:00
Daniel Agar 6d0339ba0c I2CSPIDriverBase: sensor start failure ERROR if internal, WARN if external 2021-12-28 11:05:35 -05:00
Daniel Agar 990d7c159d pwm_out: cleanup and prep for linux compatibility 2021-12-28 11:04:00 -05:00
Daniel Agar 10f4a2e91f boards: omnibus_f4sd_default disable systemcmds to save flash 2021-12-27 12:19:55 -05:00
Daniel Agar 3ef9c2d16c boards: holybro_kakutef7_default disable modules/gyro_calibration to save flash 2021-12-27 12:19:55 -05:00
FengShun 8f8719d33b cmake: use add_definitions instead of add_compile_definitions
Using make tests in docker will fail, because the current basic image used by px4io/px4-dev-simulation-bionic is ubuntu18.04, the default version of cmake is 3.10, and the add_compile_definitions command is only available in cmake 3.12+(ubuntu 20.04).
2021-12-27 12:19:31 -05:00
FengShun 65e976bbc2 docker: update px4-dev-simulation-bionic container versions to 2021-12-11
The current docker image will cause "make tests" to fail: "kconfiglib is not installed or not in PATH"
2021-12-27 12:19:31 -05:00
Daniel Agar d94767ef88 cmake: NuttX use cygwin friendly path for linker script 2021-12-27 12:19:12 -05:00
honglang 17a99bc827 mavlink: add HYGROMETER_SENSOR stream 2021-12-27 12:13:09 -05:00
honglang 983867f9af uavcan: support uavcan hygrometer 2021-12-27 12:13:09 -05:00
honglang b60e59d9be msg: new sensor_hygrometer msg 2021-12-27 12:13:09 -05:00
Daniel Agar 3f17acdcc9 boards: mro_ctrl-zerl-h7-oem pin fixes (sync with mro_ctrl-zero-h7) 2021-12-27 09:25:21 -05:00
Daniel Agar 0f4e1dd9f9 boards: mro ctrl-zero-h7 pin fixes 2021-12-27 09:25:21 -05:00
Daniel Agar 236794235a parameters: export empty BSON document even if there are no parameters to save
- otherwise a 'param reset_all' won't be saved until a parameter is changed
2021-12-27 09:17:00 -05:00
Daniel Agar 33d7b42040 parameters: import quietly retry if there's no data (as a precuation) 2021-12-27 09:17:00 -05:00
Daniel Agar 20d3e6f4e1 parameters: add simple BSON verification pass after export 2021-12-27 09:17:00 -05:00
Beat Küng 72065c3d71 fix protocol_splitter: remove timeout, drop buffer if too full instead
The existing implementation had a flaw: when the buffer was getting full,
mavlink started to busy-loop, as the uart has data (poll returns immediately)
but no new data was read from the uart due to the buffer being full.
As rtps is running at lower prio, it never got the chance to read again,
making the problem even worse.
After 1s the timeout triggered and the buffer was cleared, so it recovered.

Instead of allowing for CPU spikes, we now immediately clear the buffer
(only as much as we have to), ensuring that new data is read from the uart.
2021-12-24 20:28:43 -05:00
Rui Miguel Carvalho 542ee86bc9 landing_target_estimator: custom irlock frame params (#18884)
Signed-off-by: ruimscarvalho98 <ruimsc98@gmail.com>
2021-12-24 20:20:35 -05:00
Silvan Fuhrer 28e01c3510 FW Position controller: make loiter switching logic robust against pos_sp with loiter_rad=0
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2021-12-24 20:17:15 -05:00
Daniel Agar 98d706772e boards: px4_fmu-v2_rover disable events module to save flash 2021-12-24 20:06:13 -05:00
Beat Küng d202bf9631 control_allocator: add scope to reduce stack usage by 256B 2021-12-24 20:06:13 -05:00
Silvan Fuhrer 48be55dec8 Tiltrotor: disable tilt/thrust compensation when dynamic allocation is enabled
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2021-12-24 20:06:13 -05:00
Silvan Fuhrer 31d7328f4d Tailsitter: invert roll (make it NED-correct) for filling vehicle_torque_setpoint
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2021-12-24 20:06:13 -05:00
Silvan Fuhrer 1ad66e606b ControlAllocation: introduce convention for control surface deflection sign
- horizontal control surfaces: up=positive deflection
- vertical control surfaces (rudder): right=positive deflection
- mixed (V-Tail): up=positive deflection

Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2021-12-24 20:06:13 -05:00
Beat Küng 5259877b1b control_allocator: update matrix normalization
- only normalize rpy for MC matrices
- for thrust use the 3D vector, so it works for FW and tilt rotors as well

This keeps MC unchanged.
2021-12-24 20:06:13 -05:00
Silvan Fuhrer 460a0df850 tiltrotor: fill out thrust_setpoint[0] also in hover, based on tilt and hover thrust
In the tiltrotor case, beside an F_z thrust setpoint also a F_x setpoint must be passed
to the allocator as the matrix has non-zero thrust-x effectiveness when tilts are applied.

Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2021-12-24 20:06:13 -05:00
Beat Küng 2333bef670 px4airframes doc: handle common outputs individually
preparation for dynamic control allocation, where we won't have MAIN vs
AUX anymore (at least for the generic frames).
2021-12-24 20:06:13 -05:00
Beat Küng 203e253dfe airframes: sitl boat: switch to dynamic control allocation 2021-12-24 20:06:13 -05:00
Beat Küng 8486ca5766 airframes: sitl cloudship: switch to dynamic control allocation 2021-12-24 20:06:13 -05:00
Beat Küng 9bc9169b77 px4/fmu-v5x: add missing board variants to rc.board_mavlink 2021-12-24 20:06:13 -05:00
Beat Küng 09200b994d airship_att_control: publish thrust + torque setpoint 2021-12-24 20:06:13 -05:00
Silvan Fuhrer 478724c9fe EffectivenessTiltrotor: fix logic for matrix update
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2021-12-24 20:06:13 -05:00
Beat Küng 6c8f322dfe px4/fmu-v2/test: disable modules to reduce flash 2021-12-24 20:06:13 -05:00
Beat Küng 082cd74cab holybro/kakutef7: disable IST8310 to reduce flash 2021-12-24 20:06:13 -05:00
Beat Küng 8e04934eab commander: consider COM_MOT_TEST_EN for COMMAND_ACTUATOR_TEST as well 2021-12-24 20:06:13 -05:00
Silvan Fuhrer 39d441317a ActuatorEffectivenssTailsitterVTOL: only enable MC yaw control if more than 3 rotors
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2021-12-24 20:06:13 -05:00
Silvan Fuhrer 426aa76a59 CA/VTOL: change description of VT_ELEV_MC_LOCK as it applies to not just elevons
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2021-12-24 20:06:13 -05:00
Silvan Fuhrer 18008b2de7 CA module.yaml: add motor direction function also to UI for Tailsitter an Tiltrotor
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2021-12-24 20:06:13 -05:00
Beat Küng 8743b78474 px4/fmu-v2/rover: disable modules to reduce flash 2021-12-24 20:06:13 -05:00
Beat Küng 8c782b7cd9 control_allocator: add Custom + MC with tilts effectiveness
The param group is changed to Geometry, as this reflects the naming in the
QGC UI.
2021-12-24 20:06:13 -05:00
Beat Küng 0818bb4be0 bitcraze/crazyflie{,21}: disable modules to reduce flash 2021-12-24 20:06:13 -05:00
Beat Küng 751539304e omnibus/f4sd: disable modules to reduce flash 2021-12-24 20:06:13 -05:00
Beat Küng 627ec0df5d control_allocator: increase STACK_MAIN to 3000
It was exceeding 2000
2021-12-24 20:06:13 -05:00
Beat Küng 4d38742371 control_allocator: show VT_ELEV_MC_LOCK for vtol mixers in config ui 2021-12-24 20:06:13 -05:00
Beat Küng 28c4d0b7df mixer_module: add unit tests 2021-12-24 20:06:13 -05:00
Beat Küng fe1b726b62 ScheduledWorkItem: do not call ScheduleClear() if not init in destructor
This avoids that unit tests trying to access a wq hang.
It still fails with an error currently.
2021-12-24 20:06:13 -05:00
Silvan Fuhrer 07306c4be3 control_allocator: add support for Tailsitter VTOL
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2021-12-24 20:06:13 -05:00
Silvan Fuhrer 0568cff299 control_allocator: handle thrust allocation for VTOL's properly
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2021-12-24 20:06:13 -05:00
Silvan Fuhrer 936f2dff52 logger: log both instances of vehicle_thrust/torque_setpoint
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2021-12-24 20:06:13 -05:00
Beat Küng d688e5dee4 sitl airframes: add control allocation config to some airframes (not enabled)
To use them, manually set SYS_CTRL_ALLOC
2021-12-24 20:06:13 -05:00
Beat Küng 2362feddac airframes/uuv_bluerov2_heavy: switch over to control allocation 2021-12-24 20:06:13 -05:00
Beat Küng 4f8e6a9548 control_allocator: do not update params while armed
As a precaution
2021-12-24 20:06:13 -05:00
Beat Küng e04b4a8dbf control_allocator: add 6DOF configuration 2021-12-24 20:06:13 -05:00
Beat Küng 4c80adfaf1 control_allocator: implement trim + slew rate limits configuration 2021-12-24 20:06:13 -05:00
Beat Küng 301100ce0e uuv_att_control: publish vehicle_thrust_setpoint & vehicle_torque_setpoint 2021-12-24 20:06:13 -05:00
Beat Küng 590239dedb work_queue: increase rate_ctrl stack size by 150 B
WARN  [load_mon] wq:rate_ctrl low on stack! (172 bytes left)
2021-12-24 20:06:13 -05:00
Beat Küng b5c2cdf6c4 vtol_att_control: do not manipulate PWM outputs if SYS_CTRL_ALLOC == 1
Not required anymore
2021-12-24 20:06:13 -05:00
Beat Küng 43e15148f6 rover: switch sitl configs to control allocation 2021-12-24 20:06:13 -05:00
Beat Küng 8d9e2a28c4 control_allocator: add fixed-wing actuator effectiveness 2021-12-24 20:06:13 -05:00
Beat Küng 4d2a403afa control_allocator: add rover actuator effectiveness
This can be generalized later
2021-12-24 20:06:13 -05:00
Beat Küng ed3a115c8f control_allocator: add status publication rate limitation comment 2021-12-24 20:06:13 -05:00
Beat Küng 70e46a194f control_allocator: major refactoring & additions
- allow effectiveness matrix to select control allocator method
  (desaturation algorithm)
- add actuator_servos publication
- add support for multiple matrices (for vtol)
- add updateSetpoint callback method to actuator effectiveness to allow it
  to manipulate the actuator setpoint after allocation
- handle motor stopping & reversal
- add control surfaces & tilt servos
- handle standard vtol + tiltrotor
- rename MC rotors params & class to be more generically usable
- fixes and enables ActuatorEffectivenessRotorsTest
2021-12-24 20:06:13 -05:00
Beat Küng a81f11acdd mc_rate_control: don't publish thrust + torque sp if vtol 2021-12-24 20:06:13 -05:00
Beat Küng 28e995ede2 fw_att_control: publish vehicle_thrust_setpoint & vehicle_torque_setpoint 2021-12-24 20:06:13 -05:00
Beat Küng 4becd6e4c7 rover: publish vehicle_thrust_setpoint & vehicle_torque_setpoint 2021-12-24 20:06:13 -05:00
Beat Küng 5da67e2e28 vtol_att_control: publish vehicle_thrust_setpoint & vehicle_torque_setpoint 2021-12-24 20:06:13 -05:00
Beat Küng d1abdd0f8d output drivers: add option to generate a separate output range reversing param
Makes it a bit easier to configure. Reversing by setting MIN > MAX is still
supported.
2021-12-24 20:06:13 -05:00
Beat Küng 1901edf13c actuator_motors.msg: add reversible flags & implement in mixer_module 2021-12-24 20:06:13 -05:00
Beat Küng ccc1f0e8fa generate_actuators_metadata: minor additions (index_offset, item_label_prefix) 2021-12-24 20:06:13 -05:00
Beat Küng 81cef522fd generate_params.py: fix bitmask param type 2021-12-24 20:06:13 -05:00
Beat Küng 5bcc5d3a13 generate_actuators_metadata.py: add mixer rules support 2021-12-24 20:06:13 -05:00
Beat Küng 230aae580f ROMFS: add control_allocator to all types 2021-12-24 20:06:13 -05:00
Beat Küng 86aa9f9336 Makefile: exclude src/lib/crypto/libtommath from validate_module_configs 2021-12-24 20:06:13 -05:00
Beat Küng 9c767ff1ee control_allocator: make effective source name a class member 2021-12-24 20:06:13 -05:00
Beat Küng 20d96f3bd9 metadata: fix BOARD_WITH_IO detection
Wasn't correctly updated during a rebase.
2021-12-24 20:06:13 -05:00
Daniel Agar 712353ea56 gyro_calibration: increase required samples (to be more conservative)
- make sure variance is checked across all available sensors
2021-12-24 19:53:44 -05:00
Daniel Agar 3f3836afa8 parameters: simplify import mark_unsaved and don't fail bson decode unnecessarily 2021-12-24 14:32:40 -05:00
Daniel Agar d1cd4904dc parameters: param_value_is_default avoid locking if value unchanged 2021-12-24 14:32:40 -05:00
Daniel Agar c0b8f2952c parameters: param_get_default_value avoid locking if value is static default 2021-12-24 14:32:40 -05:00
Daniel Agar 27a113ecab parameters: param_get avoid locking if value is static default 2021-12-24 14:32:40 -05:00
Daniel Agar cd8ce4d01e parameters: remove obsolete perf_end 2021-12-24 14:32:40 -05:00
Daniel Agar 38731662c6 parameters use bitset for mark_unsaved 2021-12-24 14:32:40 -05:00
Daniel Agar 0e0639a5bf Jenkins: hardware don't tolerate logger failures 2021-12-24 14:31:21 -05:00
Daniel Agar b054fc7b8b navigator: trivial code style fix 2021-12-24 10:55:20 -05:00
seungjo0109 0f7c850080 Fix typo(at modules/navigator_main) 2021-12-24 08:54:43 -05:00
PX4 BuildBot 7e9cdef57b Update submodule jMAVSim to latest Thu Dec 23 18:11:33 UTC 2021
- jMAVSim in PX4/Firmware (a4040f7afd): https://github.com/PX4/jMAVSim/commit/b23dc53d558e801b214fbcb605a061c9773105e0
    - jMAVSim current upstream: https://github.com/PX4/jMAVSim/commit/66b764ada522893c05224950aa6268c809f8e48a
    - Changes: https://github.com/PX4/jMAVSim/compare/b23dc53d558e801b214fbcb605a061c9773105e0...66b764ada522893c05224950aa6268c809f8e48a

    66b764a 2021-12-17 romain-chiap - Merge pull request #129 from romain-chiap/tailsitter
71444c6 2021-10-04 romain-chiap - Update x_vert.mtl
4cc100e 2021-08-27 Romain Chiappinelli - tailsitter .mtl updated
561a5c4 2021-08-27 Romain Chiappinelli - tailsitter selection and docs
57fbdb8 2021-08-25 Romain Chiappinelli - tailsitter
2021-12-23 17:50:10 -05:00
Daniel Agar 00eae055ac lib/sensor_calibration: don't save uninitialized priority parameter immediately 2021-12-23 17:49:11 -05:00
Daniel Agar e694fa906b tinybson: add more error output on node name overflow 2021-12-23 17:45:50 -05:00
Daniel Agar 47d6a6c63d Tools/HIL/test_airframes.sh dump parameters before reboot (for verification) 2021-12-23 17:45:50 -05:00
Daniel Agar 14c2225b1c ROMFS: rcS dump parameter backup contents before using
- this is mainly for debug comparion
2021-12-23 17:45:50 -05:00
Daniel Agar 38af93085b linux_pwm_out: use PWM_MAIN parameter prefix
- this keeps things simpler for now across the old and new output
configuration
2021-12-23 15:57:11 -05:00
Daniel Agar 64e00c41d4 posix-configs: fix bbblue and rpi param import 2021-12-23 15:57:11 -05:00
Daniel Agar c8f2a29d67 boards: beaglebone_blue_default fix missing linux_pwm_out driver 2021-12-23 15:57:11 -05:00
Daniel Agar a5f58d321e boards: emlid_navio_default fix missing drivers/modules 2021-12-23 15:57:11 -05:00
Daniel Agar 7d7d707db9 commander: add COM_HOME_EN parameter to enable/disable home position 2021-12-23 15:46:31 -05:00
Daniel Agar 28c34a0484 Jenkins: hardware don't force tests dataman to pass and add to stackcheck build 2021-12-23 14:50:47 -05:00
PX4 BuildBot a069a47d50 Update submodule nuttx to latest Thu Dec 23 18:11:37 UTC 2021
- nuttx in PX4/Firmware (d0ce5705359f8beeb9faf7fa0d12279e03bb7ac7): https://github.com/PX4/NuttX/commit/d4c06e9dfb7bb14d0f19ef47b94d838b1caf50f3
    - nuttx current upstream: https://github.com/PX4/NuttX/commit/378032a44ba1ec0e7e3df16a23d21a6e77a2d816
    - Changes: https://github.com/PX4/NuttX/compare/d4c06e9dfb7bb14d0f19ef47b94d838b1caf50f3...378032a44ba1ec0e7e3df16a23d21a6e77a2d816

    378032a44b 2021-12-15 David Sidrane - [BACKPORT] stm32f7:sdmmc invalidate before DMA to avoid eviction overwrite
2021-12-23 14:50:47 -05:00
Daniel Agar a4040f7afd px4io_serial: always perform full abort DMA on error
- enable DMA error perf count
2021-12-23 12:48:42 -05:00
Matthias Grob f68ae39840 Commander: avoid RC actions during calibration 2021-12-22 09:08:23 -05:00
Beat Küng 89974c46b9 mavlink streams: add return in all cases
Generally not needed here, but GCC produced an error when compiling with
-finstrument-functions.
2021-12-22 08:47:33 -05:00
Beat Küng e29759d877 WorkQueueManager: explicitly convert PTHREAD_STACK_MIN to int
fixes a compiler error on GCC 11.2.1:
error: no matching function for call to ‘max(long int, int)’
2021-12-22 08:47:33 -05:00
alessandro 2c8a92c628 sitl config: put model name first
Github constructs the workflow names from the 
matrix configurations. Having latitude and longitude
in the fist columns makes these names rather cryptic.
2021-12-22 12:48:54 +01:00
Daniel Agar 47fcdb1fdb sensors/vehicle_angular_velocity: replace ESC/FFT elapsed perf counters with single cycle perf counter
- non-trivial perf counters (elapsed & interval) are relatively expensive
 - if ESC and FFT notch filtering are enabled this reduces 6 updates (2 per axis) to 1
2021-12-21 14:21:10 -05:00
Julian Oes 5894f302b5 mavlink: add test for zero padding
We want to avoid publishing garbage leftover from earlier publications.
2021-12-21 09:40:36 -05:00
Julian Oes 5cfe30fa2e mavlink: fix include for unit tests
This is required to find the include directory for the unit test of the
MavlinkStatustextHandler.
2021-12-21 09:40:36 -05:00
Julian Oes 2e0286e6bb mavlink: support receiving multi-chunk statustexts
This adds support for mavlink statustext messages arriving in multiple
chunks.
2021-12-21 09:40:36 -05:00
Daniel Agar 0029a75ab0 systemcmds: convert c -> c++ 2021-12-21 09:22:49 -05:00
Julian Oes d2e931858d px4io: remove unused cmake_policy
This should fix the build with older cmake versions.
2021-12-21 09:21:25 -05:00
Julian Oes 9686c81f7d boards: enable flow control on CDCACM
This enables flow control on CDCACM for the NuttX boards which fixes a
problem where HITL would stall.

The stall could happen if the hardware would be a bit too slow in
keeping up with the incoming messages. Often, this happened on arming
because the logger would take some time to log all parameters right at
the beginning.

The stall would then not recover due to NuttX bug where the rx interrupt
would not be restored correctly and instead only a slower watchdog would
release the next read. This watchdog takes 200ms which means it's hard
to impossible to get out of the situation without restarting sim and/or
PX4.  For more information about the issue, see:
apache/incubator-nuttx#3633

As a workaround, until that bug is fixed, and because it makes sense
anyway, I propose to enable FLOWCONTROL for the serial via USB.
2021-12-21 08:01:38 +01:00
DanielePettenuzzo 88521b0145 print error only if the mavlink command fails
In some cases we printed also the mavlink commands that replied
to be unsupported. This is not an error to show in the log.
2021-12-21 07:37:23 +01:00
Julian Oes 199b5e7d48 Revert "mavsdk_tests: retry gz model spawn command"
This reverts commit c15d3f7cfa.
2021-12-20 13:05:46 -05:00
Julian Oes 9184038359 mavsdk_tests: try to restart gzserver
Sometimes gzserver seems to just not start correctly. With this commit
we try to just restart.
2021-12-20 13:05:46 -05:00
TSC21 9894598b63 mavsdk_tests: update to be able to fetch rtps builds as well 2021-12-20 13:05:46 -05:00
Thomas Debrunner 9312c772f1 mavsdk-tests: Re-try to launch a mission for some time before failing. This mitigates an issue where the flight controller has an uploaded mission, but has not finished the mission feasibility checks yet. 2021-12-20 13:05:46 -05:00
Julian Oes 764af19da4 mavsdk_tests: bump MAVSDK version to v0.48.0
This might help with CI tests where we get RC loss because, presumably,
MAVSDK is not sending them in time.
2021-12-20 13:05:46 -05:00
Claudio Micheli 9d02851893 vmount: increase stack size to 2100
Signed-off-by: Claudio Micheli <claudio@auterion.com>
2021-12-20 13:05:15 -05:00
Julian Oes 90fe4b7a54 vmount: publish gimbal v2 protocol for v1 gimbals
This enables the use case where the gimbal v2 protocol is used
between the ground station and the drone, and the gimbal v1 protocol is
used between the drone and the gimbal.
2021-12-20 13:05:15 -05:00
Julian Oes 6d74b390d9 vmount: use absolute angle for location tracking
I'm pretty sure it makes more sense to use an absolute angle to track a
lat/lon location.
2021-12-20 13:05:15 -05:00
Julian Oes d88f9353e8 vmount: improve debug message
This should help to figure out when gimbal commands don't work.
2021-12-20 13:05:15 -05:00
Julian Oes f7c4034f3c vmount: fix v1 frames with v2 input
It looks like the frames for pitch and roll were not set correctly when
v1 is used in v2 input.
2021-12-20 13:05:15 -05:00
Julian Oes 0ce4eae314 vmount: fix v1 frames for v1 input
This basically means that we want roll and pitch to be absolute, so
relative to the horizon.
2021-12-20 13:05:15 -05:00
Julian Oes 3c5bf497a3 esc_calib: remove unused variable 2021-12-20 10:56:24 -05:00
Julian Oes a6431ab8f0 simulator: fix implicit-const-int-float-conversion 2021-12-20 10:56:24 -05:00
Daniel Agar 019eaf7038 multicopter: minimize dt jitter by using estimate timestamp_sample 2021-12-17 17:52:28 -05:00
Julian Oes dcf69144cb mavsdk_tests: fix type for mypy check
This was probably triggered due to a mypy update.
2021-12-17 17:28:54 +01:00
marcojob 2cfe08b3b1 small typo in vehicle_local_position msg 2021-12-17 15:45:07 +01:00
Igor Mišić 2d680dfd1a pps_capture: fix PARAM_PREFIX for boards with px4io (CONFIG_BOARD_IO) 2021-12-17 07:56:08 +01:00
Igor Mišić 89f828fba7 pps_capture: advertise for logging 2021-12-17 07:56:08 +01:00
Igor Mišić 17f5df2d3e pps_capture: add argument guard 2021-12-17 07:56:08 +01:00
Beat Küng f6ced71d26 pps_capture: make it configurable via output functions 2021-12-17 07:56:08 +01:00
Igor Mišić 0f60e7debf pps_capture: add kconfig 2021-12-17 07:56:08 +01:00
Michael Schaeuble 064a602962 Add PPS capture message to logged topics, simplify timestamp logic and small cleanup 2021-12-17 07:56:08 +01:00
Michael Schaeuble 5ad8b84dec Fix PPS based UTC timestamp in camera trigger and capture messages
The existing implementation has about 100ms difference to a reference clock. With the changes this error less than 25us.
- Use sensor_gps messages with hrt timestamps as RTC reference and not the system realtime clock. The PPS interrupt can then be aligned with the GPS clock system.
- Keep fallback based on system RTC when no PPS pulse was captured
2021-12-17 07:56:08 +01:00
Michael Schaeuble ebb657bcf4 Fix camera trigger via MAVLink when camera capture feedback is enabled
- camera_trigger module always publishes the camera_trigger msg (independent of the camera feedback)
- Use camera_trigger msg and set the feedback flag
- Subscribing modules determine if the message is relevant based on the feedback message
2021-12-17 07:56:08 +01:00
Michael Schaeuble 3e4031cf0f Set rtc_edge_time also in capture_callback
When using an FMU channel as PPS capture GPIO, the rtc_edge_time is now set as well. The delay between actual capture and callback is compensated with the elapsed time of the rtc clock.
2021-12-17 07:56:08 +01:00
Thomas Debrunner 43bc6db99e PPS capture: Add a param to enable / disable PPS capture module. This is important, since it takes over an FMU pin which can no longer be used for actuator output. 2021-12-17 07:56:08 +01:00
Igor Mišić 298a8c4637 boards/fmu-v5x: allocating PPS pin
- start pps_capture before pwm_out
2021-12-17 07:56:08 +01:00
Igor Mišić 60a212f717 px4_arch: add PX4_MAKE_GPIO_EXTI 2021-12-17 07:56:08 +01:00
Igor Mišić c6098ef3dd camera_capture: update to use PPS correction for UTC time 2021-12-17 07:56:08 +01:00
Igor Mišić 8eca35111e camera_trigger: update to use PPS correction for UTC time 2021-12-17 07:56:08 +01:00
Igor Mišić 72b1db4a63 pps_capture: implementation of pulse per second capture driver 2021-12-17 07:56:08 +01:00
Daniel Agar 43a04c9bca fix PARAM_PREFIX for boards with px4io (CONFIG_BOARD_IO) 2021-12-16 07:20:12 +01:00
Andrew Tridgell de3174b0f3 dsdl: update to master 2021-12-16 12:15:10 +11:00
Andrew Tridgell 2c00bc5ec6 dsdl_compiler: update to master 2021-12-16 12:15:10 +11:00
Andrew Tridgell 8effda261e dsdl_compiler: use dronecan namespace 2021-12-16 12:15:10 +11:00
Daniel Agar 9c09983f73 update dsdl submodule to latest and fix branch 2021-12-16 12:10:55 +11:00
Daniel Agar ecc2ca7f98 mathlib: int16_t negate explicitly handle both INT16_MIN and INT16_MAX
- technically negating INT16_MAX doesn't need special handling, but
this ensures any simple saturation logic downstream works by default
2021-12-15 12:45:58 -05:00
Daniel Agar d59d16a6cd drivers/accelerometer: adjust int16_t clipping threshold slightly
- consider data clipped/saturated if it's INT16_MIN/INT16_MAX or within 1
 - this accommodates rotated data (|INT16_MIN| = INT16_MAX + 1) and sensors that may re-use the lowest bit for other purposes (sync indicator, etc)
2021-12-15 12:45:58 -05:00
Daniel Agar ea29b45282 ekf2: enable mag check by default, but commander only warn 2021-12-15 09:43:46 -05:00
Daniel Agar 3fba7288af ekf2: selector use hysteresis for healthy flag
- require that an instance is healthy continuously for >= 1s before
allowing it to be used
2021-12-14 09:52:36 -05:00
Thomas Debrunner eb69f15d3a health-flags: Increase health flags to 64 bit bit field to support extended sys status mavlink message
Add SYS_STATUS flag for parachute
2021-12-14 09:41:12 -05:00
Thomas Debrunner 37099f85b9 mavlink: Update to newest mavlink master 2021-12-14 09:41:12 -05:00
Silvan Fuhrer e9b9176ce2 param translation: fix for FW_GPSF_LT and FW_GPSF_R
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2021-12-14 08:27:04 +01:00
Jukka Laitinen ce6147f570 uORB: Remove transfer of memory allocation ownership to CDev
- Allocate and free the node name in uORBDeviceNode.
- Add protected build support by de-allocating the name with kmm_free, when
  running in kernel side. strdup allocates from the kernel heap in NuttX kernel
  space.
- Remove the CDev::unregister_driver_and_memory(), it is no longer used

Signed-off-by: Jukka Laitinen <jukkax@ssrc.tii.ae>
2021-12-13 22:52:36 -05:00
Jukka Laitinen 25c10eb124 cdev: build & link fixes for NuttX protected build
- Always link to nuttx_fs for register/unregister_driver calls

Signed-off-by: Jukka Laitinen <jukkax@ssrc.tii.ae>
2021-12-13 22:52:36 -05:00
Daniel Agar acdcc35392 tests: dataman fix ssize_t printf 2021-12-13 22:51:23 -05:00
alexklimaj 6133ef0d63 Dronecan fix beep driver 2021-12-13 14:52:46 -05:00
bresch 67a893ac6d WelfordMean: remove unnecessary case for first sample
setting the mean to the sample value and then adding 0 is the same as
setting the mean to zero and then add the sample value divided by 1
2021-12-13 11:42:48 -05:00
bresch 5468841aa5 WelfordMean: add unit test 2021-12-13 11:42:48 -05:00
Daniel Agar fc17797548 ekf2: delete obsolete _bad_vert_accel_detected 2021-12-13 09:13:39 -05:00
Daniel Agar 986cf288da dataman: remove obsolete persistence and reset reason 2021-12-12 12:06:35 -05:00
Daniel Agar ad1bfb5410 Tools/HIL/reboot.py retry every 90 seconds for up to 5 minutes 2021-12-12 11:53:01 -05:00
96moustafa 63189067f6 set the transponder_report message of uavs with no icao address to be their mav id 2021-12-11 15:29:43 -05:00
Daniel Agar 167edcc77b simulator: add standalone sensor_gps_sim module 2021-12-11 15:03:15 -05:00
Daniel Agar 95b961c622 simulator: add standalone sensor_baro_sim module 2021-12-11 15:03:15 -05:00
Daniel Agar 4edfb4799f simulator: add standalone sensor_mag_sim module 2021-12-11 15:03:15 -05:00
Daniel Agar b71b908ac7 Tools/HIL: explain cmd, use monotonic time 2021-12-11 15:02:49 -05:00
Daniel Agar 0f6e30599c Jenkins: hardware tolerate px4_fmu-v5_debug dataman failures for now 2021-12-10 10:28:19 -05:00
bresch 66290de745 ekf: improve range primary height source
allow range fusion to start with fake measurements if the sensor is
providing bad measurements because too close to the ground
2021-12-10 15:18:10 +01:00
bresch 9147d5ea5c ekf2: use ground as ekf altitude datum when in range primary hgt mode 2021-12-10 15:18:10 +01:00
bresch 5e790da634 ekf2: reset the timeout timer in the reset function directly 2021-12-10 15:18:10 +01:00
bresch 0d874cf00a ekf2: move aiding start details in dedicated function
When an aiding source needs to be started, simply call the corresponding
starting function and any required reset is handled in there.
2021-12-10 15:18:10 +01:00
Matthias Grob 897775f38d ManualControlSelector: Allow disabling stick input 2021-12-10 09:11:08 -05:00
Matthias Grob 300e439144 ManualControlSelector: Enable original PX4 default behavior until QGC catches up 2021-12-10 09:11:08 -05:00
Daniel Agar d961a067b9 navigator: reduce NUM_MISSIONS_SUPPORTED 2000->500 for dataman RAM usability 2021-12-10 09:10:02 -05:00
Daniel Agar ca3f6f59f9 dataman: add SYS_DM_BACKEND parameter 2021-12-10 09:10:02 -05:00
Beat Küng f76086ffa1 microRTPS_agent_CMakeLists.txt.em: add install section 2021-12-10 09:03:08 -05:00
Beat Küng a9e918c7b2 fix ina226: use shunt param value 2021-12-10 09:03:08 -05:00
Beat Küng a4ca298ee9 simulator_mavlink: handle MAV_TYPE_VTOL_RESERVED3 2021-12-10 09:03:08 -05:00
Beat Küng 7aed8c4f47 sd_bench: print errno on write failure 2021-12-10 09:03:08 -05:00
Beat Küng 80300c36b4 parameter units: add 'A' (Ampere) 2021-12-10 09:03:08 -05:00
Beat Küng 10f49c99ef px4_add_gtest.cmake: add optional COMPILE_FLAGS, INCLUDES, EXTRA_SRCS and LINKLIBS 2021-12-10 09:03:08 -05:00
Beat Küng 87ec8839c4 px4/fmu-v5x: remove unused base_phy_DP83848C build variant 2021-12-10 09:03:08 -05:00
Igor Mišić d1aec01b86 uavcan/actuators: stop update esc status if there is no UAVCAN ESCs 2021-12-10 09:03:08 -05:00
Beat Küng aa96e39306 kconfig: do not inherit for recovery.px4board from default.px4board 2021-12-10 09:03:08 -05:00
Beat Küng ca6df035b4 px4/fmu-v5x: add arch_io_pins dependency (required in init.cpp) 2021-12-10 09:03:08 -05:00
Beat Küng 0d1d454a4c mavlink: add missing 'sensor_calibration' lib dependency 2021-12-10 09:03:08 -05:00
alexklimaj 31af09f8e7 Fix uavcan distance sensor not being logged 2021-12-10 07:19:34 +01:00
Silvan Fuhrer 24d871f792 FW land detector: tighten thresholds in airspeed-less case
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2021-12-09 20:55:09 -05:00
PX4 BuildBot 16621b19b3 Update submodule sitl_gazebo to latest Fri Dec 10 00:38:56 UTC 2021
- sitl_gazebo in PX4/Firmware (95222baa33): https://github.com/PX4/PX4-SITL_gazebo/commit/ffb87ef4a312564cf91791bd5a9d683aacd085a6
    - sitl_gazebo current upstream: https://github.com/PX4/PX4-SITL_gazebo/commit/27298574ce33a79ba6cfc31ed4604974605e7257
    - Changes: https://github.com/PX4/PX4-SITL_gazebo/compare/ffb87ef4a312564cf91791bd5a9d683aacd085a6...27298574ce33a79ba6cfc31ed4604974605e7257

    2729857 2021-12-06 Silvan Fuhrer - Plane.sdf: reduce flaps and aileron effectiveness by reducing the angle-to-lift ratio
2021-12-09 20:52:31 -05:00
Thomas Debrunner ade4a1930c trajectory-planning: Added option for PositionSmoothing library with single target waypoint that disables L1 guidance 2021-12-09 20:51:39 -05:00
Jukka Laitinen 77af102cab px4_work_queue: Use px4_task_spawn_cmd for WorkQueueRunner in NuttX protected
In NuttX protected build there are separate work queues in kernel and user sides.

pthreads are only available in user side, so use tasks and kthreads for
memory protected builds.

Signed-off-by: Jukka Laitinen <jukkax@ssrc.tii.ae>
2021-12-09 20:42:28 -05:00
Jukka Laitinen 3aab4d2daf px4_task_spawn_cmd: launch kernel thread in protected/kernel build on kernel side
Also task name is accessible only in kernel side for protected/kernel build

Signed-off-by: Jukka Laitinen <jukkax@ssrc.tii.ae>
2021-12-09 20:42:28 -05:00
Daniel Agar 8185e2a384 boards: board_app_initialize() don't return early on failure
- depending on the situation we're more likely to get actionable user
feedback by allowing boot to complete rather than silently failing
2021-12-09 20:41:54 -05:00
Daniel Agar 08ee3208b2 mavlink: stop_command fix potential dead lock 2021-12-09 20:40:55 -05:00
Cindy Hsieh ca90c785e9 correct pin in the comment, no code changed 2021-12-09 20:40:34 -05:00
Thomas Stastny 95222baa33 fix incorrect L1 period param documentation (#18811)
* fix incorrect L1 period param documentation

* reduce minimum L1 period
2021-12-08 16:42:50 +01:00
Daniel Agar 8b1543e3b0 mavlink: destroy all instances fix potential dead lock 2021-12-08 09:30:39 -05:00
Silvan Fuhrer b00ebe53bb FlightTaskAuto: use MPC_VEL_MAX instead of MPC_XY_CRUISE for emergency braking thresholds
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2021-12-08 09:13:01 +01:00
Julian Oes 94884594bb mavsdk_tests: check gzserver and gz model calls
This adds two checks to make sure gzserver has actually started before
continuing, and also whether the gz model call was successful.
2021-12-08 07:26:32 +01:00
Daniel Agar 51c0e5553e vmount: adjust MNT_RANGE_PITCH and MNT_RANGE_ROLL defaults
- this seems like a much more reasonable default
2021-12-08 01:02:46 -05:00
Daniel Agar 3b94742117 vmount: adjust timeout 50 -> 20 ms (50 Hz) 2021-12-08 01:02:46 -05:00
Julian Oes 9cb2bf389c vmount: add param to use RC input for angular rate
Until now RC input was translated to angles only. I added the param
MNT_RC_IN_MODE which allows the RC input to be used for angular rate.
2021-12-08 01:02:46 -05:00
Daniel Agar 08b0ac9654 dataman: retry file read/write failures and report seek errors 2021-12-07 17:03:07 -05:00
Matthias Grob 495f1c9165 battery: don't initialize _source without constructor 2021-12-07 21:06:51 +01:00
Matthias Grob 68e2940f58 math: support max of three values additional to min and use it everywhere 2021-12-07 21:06:51 +01:00
Matthias Grob e8676fe87a BATTERY_STATUS: improve filling cell voltage
according to review comment
2021-12-07 21:06:51 +01:00
Matthias Grob b41e345a5b battery: correct updateBatteryStatus() description 2021-12-07 21:06:51 +01:00
Matthias Grob ee3bc6673a AnalogBattery: make update variables const 2021-12-07 21:06:51 +01:00
Matthias Grob fdc40880d0 battery: separate out publishing from updating
to allow smart battery drivers to use the battery class and
filling in additional information in case it makes sense.
2021-12-07 21:06:51 +01:00
Matthias Grob e70d70468a battery: pass voltage and current by setter 2021-12-07 21:06:51 +01:00
Matthias Grob 39641494da battery: pass connected flag in by setter 2021-12-07 21:06:51 +01:00
Matthias Grob 38d23f5345 battery: pass priority in by setter 2021-12-07 21:06:51 +01:00
Matthias Grob f9fc9a9af6 battery: pass source in by constructor 2021-12-07 21:06:51 +01:00
Matthias Grob b965923c08 battery: fetch throttle value inside of class 2021-12-07 21:06:51 +01:00
Matthias Grob ddc6b6bc9c battery: move MAVLink specific handling out of battery class 2021-12-07 21:06:51 +01:00
Matthias Grob da2fdf923e battery parameters: allow usage of 1S battery 2021-12-07 21:06:51 +01:00
Jukka Laitinen d0d7f29422 platforms/common/shutdown.cpp: Enable boardctl functions for shutdown and poweroff
Shutdown and poweroff must go through boardctl in NuttX protected build

Signed-off-by: Jukka Laitinen <jukkax@ssrc.tii.ae>
2021-12-07 09:24:53 -05:00
Daniel Agar 7185bb3243 vmount: output rc simple protections 2021-12-07 13:11:22 +01:00
bresch c947562183 ekf: get rid of intermediate variable "fuse_height" 2021-12-07 09:16:21 +01:00
bresch 9651f78b0a ekf: centralize the height fusion decision 2021-12-07 09:16:21 +01:00
bresch d583ef6b79 ekf2: move height fusion code to separate source file 2021-12-07 09:16:21 +01:00
Daniel Agar 452a7199a6 Jenkins: HIL stop modules before running certain tests 2021-12-06 23:31:49 -05:00
Daniel Agar f9faa97d85 Tools/HIL/run_nsh_cmd.py increase timeout 3->4 minutes 2021-12-06 17:51:03 -05:00
Daniel Agar 01e60e853e navigator: increase stack slightly 2021-12-06 15:10:50 -05:00
Daniel Agar 41378fcef9 ms5611: lower SPI clock 20 MHz -> 16 MHz
- this was necessary to get the secondary ms5611 working reliably on a
particular CubeOrange
 - the sensor is transferring very little data, so lowering the speed by
default everywhere is harmless
2021-12-06 12:51:52 -05:00
Daniel Agar 8cd517f533 dataman: PX4_ERR on create_work_item failure 2021-12-06 10:23:42 -05:00
Daniel Agar 9ab633c18f drivers/imu/invensense: check register bank during probe if necessary
- the WHO_AM_I is only accessible in register bank 0, which might not
be currently selected if the sensor didn't have a clean reset
2021-12-06 10:22:54 -05:00
Daniel Agar 4bf1b46e47 boards: free up flash on crazyflie and omnibus 2021-12-06 09:37:08 -05:00
Daniel Agar 2256def180 Jenkins: hardware run param dump 2021-12-06 09:37:08 -05:00
Daniel Agar 1f6acd0171 parameters: add simple backup and restore mechanism 2021-12-06 09:37:08 -05:00
Daniel Agar e692f4ca01 ROMFS: rcS param import fail try to gather data
- startup tune and console message to notify user
 - save dmesg and param bson copy to microsd
 - run param dump to show full contents of bson
2021-12-06 09:37:08 -05:00
Daniel Agar 674b92df18 parameters: sleep 10 ms before retrying a failed import/export 2021-12-06 09:37:08 -05:00
Daniel Agar 7bfebf5289 parameters: add param dump to read and decode bson to console 2021-12-06 09:37:08 -05:00
Daniel Agar 7560d45c61 parameters: import tolerate unhanlded BSON types 2021-12-06 09:37:08 -05:00
Daniel Agar 9db5bc0755 px4_mtd: increase retries, wait inbetween, try decreasing frequency 2021-12-06 09:37:08 -05:00
Daniel Agar 1af068179e parameters: tinybson print errors and count imported types 2021-12-06 09:37:08 -05:00
Silvan Fuhrer ba1526896d Navigator: VTOL: remove generate_waypoint_from_heading()
The FW Position controller sets the wp to be tracked during a
VTOL front transition, the coordinates sp set here weren't used.

Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2021-12-06 16:30:59 +03:00
Matthias Grob 10ceea2fe6 geo: refactoring on comments and usage 2021-12-06 14:30:14 +01:00
Thomas Debrunner 8db7a6225b geo: Moved the map_projection_* functions and state into a self-contained C++ class 2021-12-06 14:30:14 +01:00
Daniel Agar fe23718e2c drivers/gps: require valid device to start 2021-12-06 08:44:50 +01:00
Daniel Agar 3160e7a3cd Jenkins: run calib_udelay on test rack 2021-12-05 19:42:10 -05:00
PX4 BuildBot 01192e3c37 Update submodule simulation-ignition to latest Sun Dec 5 12:38:56 UTC 2021
- simulation-ignition in PX4/Firmware (4e3d944f58): https://github.com/PX4/px4-simulation-ignition/commit/0ea4dbe2c3dac84f5927a59b1caf5e5561cf942e
    - simulation-ignition current upstream: https://github.com/PX4/px4-simulation-ignition/commit/483193d9b8b89211c3b970c735b4fbb5f724b63a
    - Changes: https://github.com/PX4/px4-simulation-ignition/compare/0ea4dbe2c3dac84f5927a59b1caf5e5561cf942e...483193d9b8b89211c3b970c735b4fbb5f724b63a

    483193d 2021-11-27 JaeyoungLim - Merge pull request #2 from PX4/pr-upstream-merge
4f3fd67 2021-11-27 Jaeyoung-Lim - Merge remote-tracking branch 'origin/master' into pr-upstream-merge
bd96d89 2021-11-27 Jaeyoung-Lim - Use mavlink develop dialect
bba86d6 2021-11-27 Jaeyoung-Lim - Fix firmware build test on github actions
e78ad94 2021-09-04 Jaeyoung-Lim - Update Readme
63ac33c 2021-09-03 Jaeyoung-Lim - Rename world path to accomodate different models
794a8dc 2021-07-12 Jaeyoung-Lim - Add ignition gazebo firmware build test
2021-12-05 19:23:55 -05:00
Daniel Agar 58421f2edc Update submodule GPS drivers to latest Fri Dec 3 12:38:58 UTC 2021
- GPSDrivers in PX4/Firmware (3e0d06c65167c0bd79c193ea75ca5c7959053ff7): https://github.com/PX4/PX4-GPSDrivers/commit/bd72eb6794e8fb4f2ed3e47311a14c2cec69f60b
    - GPSDrivers current upstream: https://github.com/PX4/PX4-GPSDrivers/commit/d6940d9c8ccb8ab3273c677097a29d46903021ff
    - Changes: https://github.com/PX4/PX4-GPSDrivers/compare/bd72eb6794e8fb4f2ed3e47311a14c2cec69f60b...d6940d9c8ccb8ab3273c677097a29d46903021ff

    d6940d9 2021-12-02 alexklimaj - Update F9P moving base with direct UART2 connection
    eb0cb58 2021-11-25 sebastian - always using groundspeed for vel_m_s in ubx driver
    0408160 2021-11-18 alexklimaj - Remove extra UART1 baudrate set
2021-12-05 19:23:07 -05:00
Daniel Agar f63a7642d6 NuttX debug helper improvements
- use NuttX gdb script for nxthreads and thread backtrace
 - update jlink_gdb_backtrace and jlink_debug_gdb helper targets to use
NuttX gdb script
 - Debug/PX4 fix "perf" divide by zero
 - Debug/PX4 add "dmesg"
2021-12-05 19:18:56 -05:00
Daniel Agar 76b2c4c338 update dsdl submodule reference 2021-10-20 21:51:33 -04:00
Daniel Agar 0cfba10e5b switch to DroneCAN for DSDL and pyuavcan 2021-10-20 21:43:43 -04:00
Siddharth Purohit 2cc6dcabed ignore cast-align in Pool allocation for Node 2021-10-20 21:35:14 -04:00
Siddharth Purohit 02c165fafd protocol: replace unsupported %llu format string 2021-10-20 21:34:03 -04:00
Peter Barker ebfa20c994 Add override keyword to those methods requiring it 2021-10-20 21:33:54 -04:00
David Sidrane 29e1aa6c12 Reworked file naming and use ROM fs as fall back
The server will now attempt to provide files from the primary
    path RootPath and then the alternate AltRootPath. This alows
    a layered approch to file service.

    Setting the RootPath to an SD card and the AltRootPath to a
    ROM FS will allow a user to provide an updated uavcan firware
    file that will be used instead of the baked in one without
    any copying.

    The path as been removed from the interactions with nodes.
    There by supporting Non-compliant nodes that could not
    handle the specified path length.

    The vitrual pathing has been moved into the FDCache.
2021-02-17 21:21:31 -05:00
Daniel Agar 04377cc270 PX4 branch remove redundant confusing libuavcan_drivers 2020-08-12 14:32:34 -04:00
Matthias Grob 52e7ce0990 Support python3 only systems by using cmake's FindPythonInterp
Ubuntu 20.04 comes with no Python 2 and no link from python to python3.
To not mess with the system we just use cmake's detection for seamless
python3 support.
2020-03-28 16:08:26 +00:00
ARob109 d7b1c14650 Specify legacy-v0 branch for dsdl submodule
The PX4/libuavcan "px4" branch is tracked to DSDL commit 192295c. This commit is not present in the "master" branch for DSDL, but is present in the "legacy-v0" branch.
2020-03-27 09:12:55 +00:00
David Sidrane 0c6ed108f5 Update Kinetis driver to NuttX 8.1+ 2019-11-06 14:05:48 -08:00
Daniel Agar b8629b236b update stm32_tim.h path 2019-08-28 13:15:42 -04:00
Pavel Kirienko 6174b8c10a Link to the new forum 2018-10-06 19:31:18 +03:00
Pavel Kirienko 479d144ded Merge pull request #168 from julianoes/fix-python3.7
Fix exception with Python 3.7
2018-10-04 11:55:55 +02:00
Julian Oes 90ae14efcd dsdl_compiler: check for StopIteration exception
This fixes the exception happening with Python 3.7.

I'm assuming this has to do with:
https://www.python.org/dev/peps/pep-0479/
2018-10-04 08:44:48 +02:00
Julian Oes 65d1f61d9b dsdl_compiler: remove trailing whitespace 2018-10-04 08:44:27 +02:00
Julian Oes 5e2d14ef7b dsdl_compiler: add missing shebang 2018-10-04 08:43:58 +02:00
Pavel Kirienko 85d48036ab Merge pull request #166 from UAVCAN/master_update
libuavcan_drivers/kinetis:Updated to no priority fix
2018-09-25 16:58:13 +02:00
David Sidrane 641a36a5cc libuavcan_drivers/kinetis:Updated to no priority fix 2018-09-25 07:54:18 -07:00
Pavel Kirienko aa3650d34d Merge pull request #156 from UAVCAN/master_kinetis_flexcan
kinetis:UAVCAN driver
2018-08-16 22:12:43 +03:00
David Sidrane 3ca697e64d Adds kinetis Flexcan driver as a submodule 2018-08-07 10:53:25 -07:00
Pavel Kirienko 0dc5751ffd Merge pull request #155 from hjoertel/change-start-script
replaced the depricated ifconfig command by the ip command
2018-07-30 23:52:46 +03:00
Oertel ff040ea166 removed the confusing "echo ..." line (it confused Pavel) 2018-07-30 22:29:06 +02:00
Oertel 8bb5677527 replaced the depricated ifconfig command by the ip command 2018-07-30 14:59:58 +02:00
Pavel Kirienko c044630390 Merge pull request #138 from thirtytwobits/feature/issue100
Issue #100 remove auto_ptr and c++03 support.
2018-06-27 17:43:11 +03:00
Dixon, Scott 4750a50099 Issue #100 remove auto_ptr and c++03 support.
Problem:
auto_ptr is deprecated.

Solution:
use unique_ptr which is only available in c++11 and newer.
Also fix how unit tests are run as part of the build to keep them from being
deleted when they fail.

Testing:
Unit tests on linux run.
2018-06-26 20:56:53 -07:00
Pavel Kirienko dfcdf22eda Merge pull request #142 from thirtytwobits/feature/issue141
Issue #141 Add Vagrantfile to automate dev environment
2018-06-26 23:39:27 +03:00
Dixon, Scott 529a376bb5 Issue #141 Add Vagrantfile to automate dev environment
Problem:
There is no automated way to setup a build environment.

Solution:
Use Vagrant to pull an Ubuntu image and install the same
prerequisites used on Travis.

Testing:
Full build on my macintosh.
2018-06-26 10:27:36 -07:00
Pavel Kirienko 231b221b64 Merge pull request #134 from UAVCAN/master_upstream_nuttx_irq_changes
Support upstream NuttX IRQ API changes
2018-06-12 21:59:22 +03:00
David Sidrane 7764a926ef Support upstream NuttX IRQ API changes 2018-06-12 06:18:39 -10:00
Pavel Kirienko 883cba97f8 Merge pull request #133 from thirtytwobits/master
#132 proper googletest dependency and fixes for unittests on OSX
2018-06-09 15:09:48 +03:00
Dixon, Scott 784ec114f6 Issue #132 Proper googletest dependency and fixes for unitests on OSX.
Problem:
It's really hard to get Libuavcan tests building on a mac or other platform if googletest isn't installed.

Solution:
add "if linux" guards to problem areas. Also include googletest as recommended in the googletest project's README.

Testing:
Successfully built on OSX sierra using gcc6
2018-06-07 12:25:49 -07:00
Pavel Kirienko 1e60063e82 DSDL update 2018-06-04 10:21:31 +03:00
Pavel Kirienko 8bb62cdbcc Merge pull request #129 from ArduPilot/pr-usec-wait
stm32: allow for less than 1ms wait time on ChibiOS
2018-05-26 12:40:30 +03:00
Andrew Tridgell a4754d19ec stm32: allow for less than 1ms wait time on ChibiOS
this prevents us chewing all the cpu when asking for fast spin times
2018-05-26 12:00:29 +10:00
Pavel Kirienko c759e54b3a Merge pull request #128 from UAVCAN/integer_bit_len_check
DSDL union tag code generation bug fix
2018-05-19 23:01:38 +03:00
Pavel Kirienko e096e33bb6 Formatting fix 2018-05-19 17:57:40 +03:00
Pavel Kirienko 53e33d01f7 Unit test for the previous commit 2018-05-19 17:52:07 +03:00
Pavel Kirienko 94c0374165 Fixed the union code generation: if the union contained a power of two number of items, the tag bit length was one higher than needed, causing incorrect serialization. 2018-05-19 17:39:26 +03:00
Pavel Kirienko d036cb3f5c Merge pull request #127 from magicrub/sync
update DSDL
2018-05-17 12:44:27 +03:00
Tom Pittenger 32ebfceb32 update DSDL 2018-05-16 16:23:19 -07:00
Pavel Kirienko cf4c7355c8 Merge pull request #125 from UAVCAN/stm32-test-removal
Remove STM32 test application
2018-04-26 17:31:51 +03:00
Pavel Kirienko 06a994384e Typo 2018-04-26 17:23:11 +03:00
Pavel Kirienko e6505005c5 STM32 example application removed 2018-04-26 17:21:32 +03:00
Pavel Kirienko dbd037b082 Merge pull request #123 from UAVCAN/stm32-chibios-18
STM32 ChibiOS 18 support
2018-04-19 15:34:33 +03:00
Pavel Kirienko fca62242ba ChbiOS 18 support 2018-04-19 15:24:26 +03:00
Pavel Kirienko 9a8b059e21 Merge pull request #122 from magicrub/upstream_ch_shadow_warning
Rename variable "ch" to "chr" to avoid shadow variable in ChibiOS
2018-03-26 02:10:10 +03:00
Tom Pittenger f935822406 rename ch to chr to avoid shadow variable in ChibiOS 2018-03-25 15:22:53 -07:00
Pavel Kirienko 1dfcaca3e0 README update; fixes #120 2018-01-04 22:52:48 +02:00
Pavel Kirienko da34eae9c4 Added IAdHocNodeStatusUpdater 2018-01-02 11:32:35 +02:00
Pavel Kirienko 0066382ff5 TransferPerfCounter made noncopyable, returns counters by references 2018-01-01 21:17:21 +02:00
Pavel Kirienko eebf0bfcf5 Linux SocketCAN: Missing initializer warning fix 2018-01-01 21:06:26 +02:00
Pavel Kirienko 9044cd17c4 Merge pull request #119 from battlesnake/master
Minor fixes: unnecessary sign conversion, redundant path delimiter.
2017-11-29 19:25:59 +02:00
Mark K Cowan 155c721324 Removed redundant path delimiter 2017-11-29 16:56:02 +00:00
Mark K Cowan 934cc4f2d2 Fixed unnecessary sign conversion 2017-11-29 16:56:02 +00:00
Pavel Kirienko e2c68bea6a STM32: new config parameter UAVCAN_STM32_TIMX_INPUT_CLOCK 2017-11-27 13:48:33 +02:00
Pavel Kirienko 2d0225886d STM32: fixed an implicit conversion warning 2017-11-26 19:00:38 +02:00
Pavel Kirienko ba9af4ce93 Merge pull request #117 from battlesnake/master
Fixed failing build when socket.h adds flexible arrays to end of structures
2017-11-24 21:36:56 +02:00
Mark K Cowan e797d69cb7 Fixed failing build when socket.h adds flexible arrays to end of structures. 2017-11-24 19:24:06 +00:00
Pavel Kirienko a1022b0f0c Merge pull request #115 from UAVCAN/stm32-acceptance-filter-fix
Fixed the CAN acceptance filter initialization in the STM32 driver
2017-11-24 19:57:49 +02:00
Pavel Kirienko 414a2e2bef Fixed the CAN acceptance filter initialization in the STM32 driver 2017-11-21 21:49:36 +02:00
Pavel Kirienko fa6dbde51d Merge pull request #114 from daniel-formlabs/dont-overwrite-cmake-cxx-flags
Don't completely overwrite the CMAKE_CXX_FLAGS
2017-11-21 17:29:26 +02:00
Daniel Willenson 337fdff08e Don't completely overwrite the CMAKE_CXX_FLAGS 2017-11-21 10:07:27 -05:00
Pavel Kirienko d577c5871c Merge pull request #113 from partyzzzan/chibi-version
Fixed. Add new CH_KERNEL_MAJOR to stm32 driver.
2017-10-05 14:02:50 +02:00
Anton Zaytsev 60ea60e9de Fixed. Add new CH_KERNEL_MAJOR to stm32 driver. 2017-10-03 15:35:16 +03:00
Pavel Kirienko 38702ff85a Merge pull request #112 from cvra/master
Fix redefined IRQ handler in CAN driver for STM32F3 + ChibiOS
2017-09-26 10:56:16 +02:00
Michael Spieler 674133e290 Fix CAN driver for STM32F3 + ChibiOS 2017-09-25 21:29:26 +02:00
Pavel Kirienko f45be6fe58 New link to coding conventions 2017-07-21 15:35:04 +03:00
Pavel Kirienko 9d75eba870 Merge pull request #110 from frizensami/pr-update-dsdl
DSDL update
2017-07-07 14:36:51 +03:00
Sriram Sami 0a01036890 DSDL update 2017-07-07 10:31:09 +08:00
Pavel Kirienko 215117df72 Merge pull request #109 from jlecoeur/jl/arm-none-eabi-gcc7
Fix -Wexpansion-to-defined
2017-07-04 23:31:16 +03:00
Julien Lecoeur 648860248e Fix -Wexpansion-to-defined 2017-07-04 21:54:18 +02:00
Pavel Kirienko 5805438d92 DSDL update 2017-06-17 08:37:17 +03:00
Pavel Kirienko a15ba77214 Merge pull request #107 from larics/master
fixed usage of atomic operation lib for armcc compiler, added conditi…
2017-05-28 18:17:01 +03:00
Marko Car fab231d5db changed tabs into spaces, added error if compiler is not supported 2017-05-24 17:01:49 +02:00
Marko Car da46a8fab2 fixed usage of atomic operation lib for armcc compiler, added conditional compilation 2017-05-24 13:36:16 +02:00
Pavel Kirienko f7ea240b80 Merge pull request #106 from EShamaev/stm32_filtering_support
stm32 driver configuration of filters
2017-05-06 12:43:00 +03:00
Eugene Shamaev 89221efe21 stm32 driver configuration of filters 2017-05-06 12:40:01 +03:00
Pavel Kirienko 648c471f63 More test fixes 2017-04-07 01:28:00 +03:00
Pavel Kirienko b6ecfb33d4 Fixed failing unit test dynamic_node_id_server_NodeDiscoverer.Basic 2017-04-07 01:09:04 +03:00
Pavel Kirienko a1c0948f19 Merge branch 'default_service_timeout_update' 2017-04-06 18:35:17 +03:00
Pavel Kirienko e5a0746443 Syncing unit tests with spec changes 2017-04-06 18:34:17 +03:00
Pavel Kirienko bf3648ddff Default timeout update 2017-04-06 18:05:32 +03:00
Pavel Kirienko 4a9da04407 Merge pull request #104 from MonashUAS/master
STM32F303 support for baremetal driver
2017-04-02 14:55:46 +03:00
James Stewart 797f459289 Added docs reference for chip.h in STM32 driver 2017-04-02 20:34:57 +10:00
James Stewart 60ce5e07f9 Added support for STM32F303 using bare metal driver 2017-04-02 20:34:22 +10:00
Pavel Kirienko e97164d953 DSDL update 2017-04-02 11:38:39 +03:00
Pavel Kirienko 3a000b90ab DSDL update 2017-04-02 10:10:34 +03:00
Pavel Kirienko 8d2a667ef5 DSDL update 2017-03-23 14:53:11 +03:00
Pavel Kirienko a22fdebeed DSDL update 2017-03-20 00:03:45 +03:00
Pavel Kirienko aaa6840933 Multiset test compatibility fix 2017-03-16 17:37:31 +03:00
Pavel Kirienko c914f98772 Updated the unit tests for compatibility with GCC 5.4 2017-03-16 17:16:21 +03:00
Pavel Kirienko 182c30490f STM32 driver: removed SCE IRQ definitions, because SCE IRQ is no longer used 2017-01-23 04:10:21 +03:00
Pavel Kirienko f1fc72ef7a Added proper support for ChibiOS 4; added compile-time check that fails if IRQ vectors are not properly defined 2017-01-23 04:09:00 +03:00
Pavel Kirienko dcbb573972 Merge pull request #98 from UAVCAN/for_upstream_nuttx_changes_4
For upstream nuttx changes 4 fixed CI
2017-01-12 22:30:12 +03:00
David Sidrane ed47da5b2a Back out upstream changes from test_stm32f107/src/board/board.cpp 2017-01-12 06:05:45 -10:00
Pavel Kirienko 4f363685a6 Merge pull request #92 from UAVCAN/for_upstream_nuttx_changes_2
Do Not merge - This is needed to work with the latest upstream nuttx
2017-01-09 23:55:38 +03:00
Pavel Kirienko 773104ed4e STM32 driver: supporting ChibiOS RT kernel v4 2016-11-29 13:48:54 +03:00
Pavel Kirienko 7dbd763ae6 README updated with the input from Mateusz Sadowski 2016-11-17 13:56:19 +03:00
Pavel Kirienko 89e68cfa47 Merge pull request #96 from guludo/fix-windows-build
Fix build on Windows
2016-08-24 22:36:41 +03:00
Gustavo Jose de Sousa 1e04e6b70d Fix build on Windows
Windows native shell doesn't understand shebangs. Also, make sure the Python
scripts are run by the same interpreter.
2016-08-24 16:13:37 -03:00
Pavel Kirienko 919a794ccb Merge branch 'warnings' 2016-08-15 11:11:56 +03:00
Pavel Kirienko 641932f625 STM32: default size of the RX queue increased to 128 2016-08-07 12:59:48 +03:00
Pavel Kirienko 43d7b12c7d STM32 comments 2016-08-07 12:47:21 +03:00
Pavel Kirienko ca15954213 STM32 driver: getRxQueueOverflowCount() 2016-08-07 12:45:17 +03:00
Pavel Kirienko c2ba231741 ReceivedDataStructure<> made noncopyable 2016-07-29 17:24:18 +03:00
Pavel Kirienko 8b434c7768 STM32 build fix 2016-07-29 16:59:36 +03:00
Pavel Kirienko c9ec822244 -Wold-style-cast; linked list items made noncopyable 2016-07-29 16:46:57 +03:00
Pavel Kirienko 32d8851dde -Wnon-virtual-dtor -Woverloaded-virtual -Wsign-promo 2016-07-29 16:02:31 +03:00
Pavel Kirienko 38a241a90a Added -Wzero-as-null-pointer-constant, replaced NULL --> UAVCAN_NULLPTR. All changes are automatic, no manual edits to the library code. 2016-07-29 15:39:24 +03:00
Pavel Kirienko b6fa34fed5 STM32 warning fixes 2016-07-28 12:37:04 +03:00
Pavel Kirienko 7a9031db73 There's no such thing as too much static analysis 2016-07-28 11:53:11 +03:00
Pavel Kirienko af06b1a322 STM32: Fixed compilation warning (-Wconversion) 2016-07-28 09:37:09 +03:00
David Sidrane e031a0e93f Back out upstream changes from test_stm32f107/src/main.cpp 2016-06-22 11:25:04 -10:00
David Sidrane c1b6451b9c his is needed to work with the latest upstream nuttx 7.16+
Logger changes
2016-06-20 13:54:31 -10:00
David Sidrane 534b8686f1 This is needed to work with the latest upstream nuttx 7.16+ 2016-06-20 13:54:31 -10:00
David Sidrane 1d5f1596fa This is needed to work with the latest upstream nuttx 2016-06-20 13:54:31 -10:00
Pavel Kirienko fee413d40f Merge branch 'linux_helpers' 2016-06-16 23:52:39 +03:00
Pavel Kirienko 42464cfe19 Warning fix 2016-06-16 23:43:03 +03:00
Pavel Kirienko 04ac02e727 Update README.md 2016-06-14 18:33:16 +03:00
Pavel Kirienko a19dfd56dc Linux makeNode() helper overload 2016-06-13 00:46:13 +03:00
Pavel Kirienko 59bcde5868 Travis: forcing APT to accept unsigned packages 2016-06-09 19:25:51 +03:00
Pavel Kirienko af6c825954 Merge pull request #85 from larics/master
support for FreeRTOS
2016-06-03 01:09:20 +03:00
Pavel Kirienko 3629a8033d Building tests only if GTest is found 2016-06-02 23:36:42 +03:00
suiauthon 6b74f21fba fixed spacing and variable notation 2016-06-02 17:31:37 +02:00
suiauthon ea8e8cd892 removed unnecessary include 2016-06-02 15:43:43 +02:00
suiauthon 0a757e1914 removed unnecessary includes 2016-06-02 15:42:51 +02:00
suiauthon bd820fb86a added more generic include, fixed spacing 2016-06-02 15:42:10 +02:00
Pavel Kirienko ec84f64f5f Warning fixes (GCC 5.3) 2016-05-05 05:30:49 +03:00
David Sidrane 1cef941bc7 This is needed to work with the latest upstream nuttx 2016-04-26 14:29:55 -10:00
Pavel Kirienko b04396ace5 Merge pull request #91 from dagar/master
python build only output if there's an error
2016-04-18 12:04:59 +03:00
Daniel Agar 7f3a3d4a96 python only output if there's an error 2016-04-17 16:30:23 -04:00
Lorenz Meier 986ce57197 Merge pull request #90 from dagar/deps
cmake only run libuavcan_dsdlc if there are changes
2016-04-17 21:18:46 +02:00
Daniel Agar 27f112a831 cmake only run libuavcan_dsdlc if there are changes 2016-04-17 14:54:17 -04:00
suiauthon e006189ce5 changed counting semaphore to binary 2016-04-04 10:06:59 +02:00
suiauthon b3818860de changes in includes for baremetal 2016-04-01 13:50:29 +02:00
suiauthon 13dbca3f0e fixed yield from isr 2016-03-29 16:49:26 +02:00
Pavel Kirienko 7ce96d6c1e Merge pull request #86 from UAVCAN/nid_allocation_activity_monitoring
Monitoring activity of dynamic node ID allocation servers
2016-02-20 05:56:13 +03:00
Pavel Kirienko 38f5591dda Optimized default timeouts 2016-02-19 12:35:44 +03:00
Pavel Kirienko b7515646bb New field in dynamic allocator app for Linux: 'All allocated' 2016-02-19 11:52:51 +03:00
Pavel Kirienko eb4532aefe Registering outgoing Allocation messages as activity as well 2016-02-19 11:51:40 +03:00
Pavel Kirienko f72e082846 AbstractServer::guessIfAllDynamicNodesAreAllocated() 2016-02-19 11:40:48 +03:00
Pavel Kirienko ab2b952432 Refactored the dynamic node ID allocation server: added a new class AbstractServer, which is inherited by CentralizedServer and DistributedServer. This change allowed to move the data and logic that is common to both types of servers to a single location. In the next step this will be used to add more complex common logic. 2016-02-19 11:25:50 +03:00
Pavel Kirienko e13d6dbfd6 AllocationRequestManager::getTimeOfLastAllocationActivity() 2016-02-19 11:00:18 +03:00
suiauthon 8abfd18189 uncommented osDelay 2016-02-17 09:51:50 +01:00
suiauthon 6b30772353 removed unnecessary comment 2016-02-17 09:49:25 +01:00
suiauthon ee6ae3ec95 added new method that yield from ISR after semaphore is given from ISR 2016-02-17 09:46:36 +01:00
suiauthon ada61ef06b added support for FreeRTOS 2016-02-15 11:21:10 +01:00
suiauthon b4f6e1e553 added support for FreeRTOS 2016-02-15 11:15:42 +01:00
Pavel Kirienko 702f6f0560 STM32: Fixed CS in pollErrorFlags() 2016-01-31 23:06:12 +03:00
Pavel Kirienko cf9edf13cd Disabled SCE interrupts; error handling is now polling based 2016-01-31 14:47:23 +03:00
Pavel Kirienko f7a0e36882 Fixed unused variable in STM32 baremetal driver 2016-01-29 13:24:55 +03:00
Pavel Kirienko 30059d8239 SLCAN helper script: using default baudrate 921600 because it is more common than 3M for serial adapters 2016-01-28 02:28:49 +03:00
Pavel Kirienko 818c4eaeb9 Merge pull request #84 from UAVCAN/socketcan_select_refactoring
Refactored SocketCAN select() call; fixes #83
2016-01-28 01:18:04 +03:00
Pavel Kirienko f86a4b98d1 SocketCAN: Setting correct errno when throwing AllIfacesDownException 2016-01-28 01:06:29 +03:00
Pavel Kirienko 3d0186c547 SocketCAN doc comments 2016-01-28 00:54:22 +03:00
Pavel Kirienko 597e0b4356 SocketCAN: Proper error reporting from openSocket() 2016-01-28 00:50:28 +03:00
Pavel Kirienko 587088bb18 Refactored SocketCAN select() call; fixes #83
Features:
- The driver will throw if it's fed a non-existing or malfunctioning interface during initialization
- When an interface becomes down/disconnected while the node is running, the driver will silently
  exclude it from the IO loop and continue to run on the remaining interfaces.
- When all interfaces become down/disconnected, the driver will throw AllIfacesDownException() from
  SocketCanDriver::select().
2016-01-28 00:12:27 +03:00
Pavel Kirienko cbd36a4a5b Linux SocketCAN: Fixed hasReadyTx() - now checking whether the driver will be ready to release further frames from the queue 2016-01-27 14:31:05 +03:00
Pavel Kirienko f9a10b1a81 Linux SocketCAN: Fixed handling of outgoing frames. The old logic was handling writes incorrectly, losing frames if the socket was not writable. 2016-01-27 13:56:43 +03:00
Pavel Kirienko 3050d0ae36 STM32: Fixed IRQ race condition in CAN controller initialization 2016-01-05 10:32:50 +03:00
Pavel Kirienko 5bd641a744 Fixed busyloop in the STM32 CAN driver for ChibiOS 2016-01-04 15:18:04 +03:00
Pavel Kirienko 4c03b29401 Merge pull request #82 from ilia-sheremet/master
Can_acceptance_filter_configurator and unit test are corrected
2015-12-27 20:04:01 +03:00
Pavel Kirienko ff13fa866f Linux driver copyright update 2015-12-27 20:01:22 +03:00
Pavel Kirienko 3e5f2e5eff configureCanAcceptanceFilters() 2015-12-27 19:52:59 +03:00
Pavel Kirienko 1447674bfa CAN cfger - using consistent return types 2015-12-27 19:42:38 +03:00
Pavel Kirienko 288478fa4a Linux driver: Avoiding use of cstdint from global scope, using proper loops 2015-12-27 19:41:12 +03:00
Pavel Kirienko 9a55a4fc9b CAN filter cfger API doc clarifications 2015-12-27 19:34:16 +03:00
Pavel Kirienko 8f67bcbc39 Updated copyrights and include guards in CAN filter cfger 2015-12-27 18:39:57 +03:00
Ilia 7236370409 checkHWFilters arg by reference.
loopback checked first
2015-12-27 14:38:00 +00:00
Pavel Kirienko f94fc322e5 Gitter badge 2015-12-21 14:53:18 +03:00
Ilia 73f0a9074d uncrustify applied 2015-12-21 00:34:38 +00:00
Ilia 292b06c2d8 pull request corrections 2015-12-20 22:53:19 +00:00
Ilia c5a340719f Merge remote-tracking branch 'origin/filters_corrections' 2015-12-19 16:57:18 +00:00
Ilia 8a5719248f HW acceptance filters unit test corrected.
specificator changed for cfg.MK-ID print
2015-12-19 16:43:29 +00:00
Ilia 5563dbacff addFilterConfig() added. computeConfiguration() separated from applyConfiguration.
Other small corrections
2015-12-16 00:33:00 +00:00
Pavel Kirienko 1006c7cdc2 Merge pull request #81 from UAVCAN/stm32_can_error_codes
Returning meaningful error codes from STM32 CAN driver methods
2015-12-14 08:53:09 +03:00
Ilia a2ed997cb4 socketcan HW filters moved to userspace 2015-12-14 00:20:35 +00:00
Pavel Kirienko 8423fb3ed5 Returning meaningful error codes from STM32 CAN driver methods instead of plain -1 2015-12-11 11:20:02 +03:00
Pavel Kirienko 426f349e36 Reworked the script uavcan_add_slcan 2015-12-08 02:49:37 +03:00
Pavel Kirienko 8b31d993be STM32: optimized clock instance access 2015-12-04 03:20:20 +03:00
Pavel Kirienko b29b40165e STM32: exposed getMonotonic() and getUtc() in order to discourage direct access to uavcan_stm32::clock 2015-12-04 03:16:31 +03:00
Pavel Kirienko 82d161ee61 LPC11C24 - added support for 100kbps because this is the bit rate used by the bootloader 2015-11-27 19:19:13 +03:00
Pavel Kirienko 1702ec05d0 LPC11: Fixed unique ID reading 2015-11-27 18:44:22 +03:00
Pavel Kirienko 0a07f5c713 Merge pull request #80 from UAVCAN/fixed_out_of_dated_comment
Fixed comment to match
2015-11-21 10:54:58 +03:00
David Sidrane c97e6e5096 Fixed comment to match
https://github.com/mavlink/mavlink/pull/414#issuecomment-120088482

The stale comment has led to much misunderstanding .
2015-11-20 18:01:55 -10:00
Pavel Kirienko c152f28a62 Linux: Installing vcan/slcan init scripts 2015-11-05 12:22:13 +03:00
Pavel Kirienko 180f56ad2f SocketCAN slcan_init script 2015-11-05 12:07:49 +03:00
Pavel Kirienko 50ce241ba0 SocketCAN: default max_frames_in_socket_tx_queue reduced to 2 2015-11-05 12:01:29 +03:00
Pavel Kirienko 7bbb368967 STM32 example - notes on auto bit rate detection 2015-10-26 13:25:51 +03:00
Pavel Kirienko 8d726ec86d Merge pull request #77 from UAVCAN/issue-76
Adding CONTINUOUS_INTEGRATION_BUILD flag
2015-10-26 11:13:41 +03:00
Pavel Kirienko d1a0971751 Merge pull request #78 from UAVCAN/issue-63
Replace bitarrayCopy with a smaller, from-scratch version (resolves #63)
2015-10-25 11:14:42 +03:00
Ben Dyer 8b178aaa65 Use --gtest_filter to exclude real-time tests, instead of modifying source 2015-10-25 17:51:30 +11:00
Ben Dyer 2d9374044b Use std::size_t 2015-10-25 17:45:34 +11:00
Ben Dyer 57915e98ba Replace bitarrayCopy with a smaller, from-scratch version 2015-10-25 17:24:21 +11:00
Ben Dyer c446898d05 Adding CONTINUOUS_INTEGRATION_BUILD flag 2015-10-25 10:42:23 +11:00
Pavel Kirienko 99f084d013 README edits: Travis CI badge, note on triggering Coverity Scan by pushing, Python version synchronized with Pyuavcan 2015-10-24 20:56:02 +03:00
Pavel Kirienko 84f68b91b5 Merge pull request #75 from UAVCAN/bendyer-issue-64
Travis CI configuration (resolves #64)
2015-10-24 17:22:24 +03:00
Ben Dyer ee6acfebe8 Added Coverity Scan build and native app test matrix 2015-10-25 00:46:25 +11:00
Pavel Kirienko ed1d71e639 Merge pull request #73 from UAVCAN/footprint_reduction
Footprint reduction
2015-10-17 20:46:38 +03:00
Pavel Kirienko 9b092509c9 TestNode uses heap based allocator now 2015-10-17 00:45:04 +03:00
Pavel Kirienko 9a432c0323 Heap based allocator - peak usage removed 2015-10-16 20:36:56 +03:00
Pavel Kirienko 4e4d9b7854 Node<>, SubNode<>: MemPoolSize defaults to zero 2015-10-16 16:57:02 +03:00
Pavel Kirienko 04381686bd Optional thread-safety for default allocator 2015-10-16 16:46:10 +03:00
Pavel Kirienko 12c5fc8256 Heap based block allocator docs 2015-10-16 16:32:56 +03:00
Pavel Kirienko b0d0c607a5 Updated HeapBasedPoolAllocator 2015-10-16 16:24:22 +03:00
Pavel Kirienko 6d29f0e405 UAVCAN_LIKELY(), UAVCAN_UNLIKELY() 2015-10-16 15:50:33 +03:00
Pavel Kirienko 660e84e17f Allocator interface: getNumBlocks() --> getBlockCapacity() 2015-10-16 14:31:42 +03:00
Pavel Kirienko 913f6ea034 Traditional lock-based thread safety for HeapBasedPoolAllocator 2015-10-15 16:49:03 +03:00
Pavel Kirienko ef93f1b1e8 Heap based pool allocator - configurable getNumBlocks() 2015-10-15 10:51:58 +03:00
Pavel Kirienko edadf58a91 Some tests for HeapBasedPoolAllocator<>; the concurrency test is failing with heap corruption 2015-10-15 05:06:30 +03:00
Pavel Kirienko a5d3895cbf HeapBasedPoolAllocator<> with a basic test 2015-10-15 03:54:48 +03:00
Pavel Kirienko d1511bed5c Node<> and SubNode<> support custom allocators 2015-10-14 21:36:13 +03:00
Pavel Kirienko 23352746cd Speed-optimized versions of bitarrayCopy() removed 2015-10-14 20:30:24 +03:00
Pavel Kirienko 899aae44f7 OTR deinterfaced 2015-10-14 20:15:19 +03:00
Pavel Kirienko 0d5fc65907 Transfer listener .hpp --> .cpp 2015-10-14 20:02:25 +03:00
Pavel Kirienko a9fdf44fa9 Transfer buffering system detemplatized; compiles but tests are failing 2015-10-14 19:59:04 +03:00
Pavel Kirienko 763e96b6ed Test node pool increased to 1024 blocks; this fixes the last test 2015-10-14 10:10:15 +03:00
Pavel Kirienko 898e78fd06 Node tests fixed 2015-10-14 09:59:11 +03:00
Pavel Kirienko 1149fc316e OTR test fix 2015-10-14 09:54:27 +03:00
Pavel Kirienko 34b32ce0c0 More transport test fixes, 4 to go 2015-10-14 09:48:19 +03:00
Pavel Kirienko 706198fa38 Transport test fixes, 10 to go 2015-10-14 09:06:15 +03:00
Pavel Kirienko 3e6102d479 Map<> and Multiset<> fixed, 22 tests to go 2015-10-14 08:51:20 +03:00
Pavel Kirienko dc5fdbb1cc Unit tests no longer segfault, 26 are failing 2015-10-14 08:38:33 +03:00
Pavel Kirienko be84897ed6 First stab at global refactoring of memory management - the library builds, but unit tests are failing horribly 2015-10-14 08:29:50 +03:00
Pavel Kirienko 0643879922 STM32 driver test app removed 2015-10-13 17:25:34 +03:00
Pavel Kirienko 995a5510e5 Merge pull request #71 from UAVCAN/lpc11c24
Missing features for LPC11C24
2015-10-13 17:23:26 +03:00
Pavel Kirienko e060962261 LPC11C24 demo optimization 2015-10-13 17:15:14 +03:00
Pavel Kirienko eb104b45bd LPC11C24 demo with dynamic node ID allocaiton 2015-10-13 17:08:24 +03:00
Pavel Kirienko d7bd5fc28b LPC11C24 printing a scary message when the app fails 2015-10-13 17:01:21 +03:00
Pavel Kirienko b94246237d LPC11C24 enforcing GCC 4.9 or newer 2015-10-13 15:39:21 +03:00
Pavel Kirienko df056a7948 LPC11C24 acceptance filters 2015-10-13 15:29:15 +03:00
Pavel Kirienko 873e386793 LPC11C24 minor cleanup in sys/board* 2015-10-13 14:26:13 +03:00
Pavel Kirienko 98189950e4 LPC11C24 C_CAN IF_CMDREQ_BUSY 2015-10-13 14:12:53 +03:00
Pavel Kirienko d9ca67c84c LPC11C24 - break on die() 2015-10-13 12:49:41 +03:00
Pavel Kirienko 6f782b2be2 LPC11C24 abort debug code removed 2015-10-12 23:09:57 +03:00
Pavel Kirienko 367389f728 LPC11C24 temporary test app 2015-10-12 23:07:17 +03:00
Pavel Kirienko 8a88ea35cc LPC11C24 automatic bus-off recovery 2015-10-12 23:06:55 +03:00
Pavel Kirienko 0e97d7a9ba LPC11C24 support for TX aborts 2015-10-12 13:26:13 +03:00
Pavel Kirienko 98000f2076 LPC11C24 driver - removed some literal constants 2015-10-12 08:39:22 +03:00
Pavel Kirienko 563ec45c6e LPC11C24 auto bit rate detection is sort of working 2015-10-12 04:07:13 +03:00
Pavel Kirienko fc2a4527d3 LPC11C24 fixes and some debug output to bit rate detection routine 2015-10-12 02:37:13 +03:00
Pavel Kirienko 851b0c7c29 LPC11C24 C_CAN 32 bit constants allow to use ~ without explicit cast 2015-10-12 02:34:00 +03:00
Pavel Kirienko 972d895f88 LPC11C24 C_CAN paranoid offset checks 2015-10-12 01:12:42 +03:00
Pavel Kirienko 800f245be7 LPC11C24 automatic CAN bit rate detection 2015-10-12 00:12:52 +03:00
Pavel Kirienko 5a649eb11b LPC11C24 clock initialization validation 2015-10-11 20:40:32 +03:00
Pavel Kirienko 3f8a61a4c1 Merge branch 'master' into lpc11c24 2015-10-11 18:36:34 +03:00
Pavel Kirienko 8effe93d6e Merge pull request #70 from UAVCAN/info_retriever_inherit
Changed NodeInfoRetriever to inherit publicly from NodeStatusMonitor
2015-10-11 17:54:20 +03:00
Ben Dyer c08016edbc Changed NodeInfoRetriever to inherit publicly from NodeStatusMonitor to allow access to node status API 2015-10-11 21:22:00 +11:00
Pavel Kirienko 8c2d86d55c STM32 demo board init fix 2015-10-10 17:50:25 +03:00
Pavel Kirienko d8bf7112b2 Merge pull request #69 from UAVCAN/stm32_can_auto_bit_rate_fix
STM32 auto bit rate detection fix
2015-10-10 17:19:38 +03:00
Pavel Kirienko 3dffcc007b STM32 demo - bxCAN GPIO initialization fixed 2015-10-10 17:09:52 +03:00
Pavel Kirienko 076104877a STM32 new CAN initialization 2015-10-10 10:16:57 +03:00
Pavel Kirienko 85100d6766 STM32 initOnce(), not complete yet 2015-10-10 10:05:51 +03:00
Pavel Kirienko 93fe54bb21 Experimental fix to CAN bus lockup bug 2015-10-09 05:10:13 +03:00
Pavel Kirienko 69dc2114c9 Merge pull request #68 from paulpatience/master
Fix -Wundef warning and use constructor to compile in C++03
2015-10-09 02:23:05 +03:00
Paul A. Patience 45eb37d905 Use a constructor in UtcSyncParams to compile in C++03 without warnings 2015-10-08 19:13:27 -04:00
Pavel Kirienko d773db4ffc STM32 example extended with dynamic node ID allocation 2015-10-09 02:06:45 +03:00
Paul A. Patience c5c16e97f8 Fix -Wundef warning by defining UAVCAN_STM32_BAREMETAL to 0 if it is not defined 2015-10-08 18:55:29 -04:00
Pavel Kirienko 67ee9d567f STM32 example: cleaner node initialization 2015-10-09 01:53:53 +03:00
Pavel Kirienko 47da7f17df STM32 example: cleaner node instantiation 2015-10-09 01:51:37 +03:00
Pavel Kirienko 70232725e6 STM32 example refactored 2015-10-09 01:45:23 +03:00
Pavel Kirienko 909d71081e Merge branch 'cmake-cross' 2015-10-06 18:04:29 +03:00
Pavel Kirienko 9fb9053b01 Minor corrections to @jgoppert's CMakeLists.txt 2015-10-06 18:04:07 +03:00
James Goppert 562d308712 Requested changes. 2015-10-05 17:56:48 -04:00
James Goppert 86c3397b1b Requested changes. 2015-10-05 17:15:43 -04:00
James Goppert 0b0e7bc6cc Added cross-compiling support. 2015-10-04 21:28:22 -04:00
Pavel Kirienko 09370a8160 Merge pull request #65 from cvra/chibios3
Update stm32 drivers to ChibiOS 3.0
2015-10-04 14:24:24 +03:00
Ben Dyer 480d25c007 Travis CI configuration 2015-10-04 20:54:18 +11:00
Pavel Kirienko 04897f613d README: Note on unit testing 2015-10-02 14:02:18 +03:00
Pavel Kirienko fbab130b2e Removed a redundant assertion check in Linux test app 2015-09-30 17:53:21 +03:00
Pavel Kirienko 0410b34d0c Coverity fix 1325169 2015-09-30 02:14:46 +03:00
Pavel Kirienko ac04e374c6 BasicFileServerBackend - fixed a missing include 2015-09-25 23:09:28 +03:00
Pavel Kirienko 62e89b3399 BasicFileServerBackend typo fix 2015-09-25 23:01:57 +03:00
Pavel Kirienko 531433a326 Fixed makeApplicationID() (rookie mistake) 2015-09-25 01:47:39 +03:00
Pavel Kirienko 14cdbc0594 Added some getters to the Node<> class 2015-09-25 01:45:40 +03:00
Pavel Kirienko 335cd6622a uavcan_linux::makeApplicationID() - instance_id made optional 2015-09-25 00:38:55 +03:00
Antoine Albertelli 5716f3eb3e Add compatibility defines for STM32F3 2015-09-24 23:33:43 +02:00
Pavel Kirienko 0f53a76b50 Changed API of DynamicNodeIDClient: start() accepts UniqueID instead of HardwareVersion 2015-09-25 00:02:58 +03:00
Antoine Albertelli d2a5476af1 Fix mutex lock typo 2015-09-23 14:57:14 +02:00
Pavel Kirienko 50dc08663a Revert "DSDL script installation removed from the top-level CMake script"
This reverts commit fc997cff88.
2015-09-21 16:46:32 +03:00
Pavel Kirienko 24c19f7cee DSDL update 2015-09-14 14:07:26 +02:00
Michael Spieler a767b77de2 Keep ChibiOS 2 compatibility, fix ISR names for ChibiOS 3. 2015-09-08 18:32:49 +02:00
Antoine Albertelli 3efd9bdfd0 Correct CORTEX_MAX_KERNEL_PRIORITY use
Now the NVIC minidriver always take the priority as parameter, the use
of the CORTEX_PRIORITY_MASK() macro is no more required.

Reference: http://www.chibios.org/dokuwiki/doku.php?id=chibios:articles:porting_from_2_to_3
2015-09-03 18:15:09 +02:00
Antoine Albertelli 73242f39c6 Update stm32 drivers to ChibiOS 3.0 2015-09-03 17:41:01 +02:00
Pavel Kirienko 4dff5c2223 Stupid typo in allocation request manager 2015-09-02 19:16:11 +03:00
David Sidrane e6bdbaeb72 Merge pull request #62 from UAVCAN/master_baremetal
Master baremetal
2015-08-24 11:02:57 -10:00
Pavel Kirienko d75e76555d LPC11C24: CanDriver::detectBitRate() - NOT TESTED, NOT FINISHED 2015-08-24 19:44:47 +03:00
Pavel Kirienko dedefdc6a8 LPC11C24: Added C_CAN definitions; they are still unused 2015-08-24 19:35:02 +03:00
Pavel Kirienko b7aa3109bc LPC11C24: Consistent use of nullptr 2015-08-24 18:05:19 +03:00
Pavel Kirienko d82213504f LPC11C24 PoC UART logging 2015-08-24 18:03:01 +03:00
Pavel Kirienko 8eac06c9dc LPC11C24 test: some GCC flags were removed, which fixed hardfault and reduced code size by ~300 bytes 2015-08-24 16:44:58 +03:00
Pavel Kirienko 42b48d9626 LPC11C24 wrong optimization setting 2015-08-24 16:42:54 +03:00
Pavel Kirienko c856236a4a LPC11C24 UART 2015-08-24 16:37:16 +03:00
Pavel Kirienko 03ed261477 LPC11C24: Proper CAN timings 2015-08-24 15:43:16 +03:00
Pavel Kirienko b334dbbfe5 Merge branch 'master' into lpc11c24 2015-08-24 14:21:08 +03:00
Pavel Kirienko be7f68763e Merge pull request #60 from UAVCAN/bendyer-half-nostdlib
Use public domain half<->float routines which dependence on math functions in C stdlib
2015-08-24 14:17:18 +03:00
Pavel Kirienko 4ecdfd844e Minor style fix in IEEE754Converter; no changes to the logic 2015-08-24 14:06:56 +03:00
Ben Dyer 37bd23e4fa Replace float<->half implementation with public domain code 2015-08-24 20:07:03 +10:00
Pavel Kirienko 9ca9d941c7 STM32 test updated with autobauding 2015-08-23 17:54:58 +03:00
Pavel Kirienko a7fe27a365 Ninja fix 2015-08-21 15:03:25 +03:00
Pavel Kirienko aeb8beadc1 IEEE754Converter::enforceIeee<>() 2015-08-21 15:00:50 +03:00
Pavel Kirienko 9c185b3ddf float16 converter is explicitly declared non-compatible with non-IEEE754 2015-08-21 14:50:47 +03:00
Pavel Kirienko ec1210dfec Fixed doxygen comments 2015-08-21 14:43:37 +03:00
Pavel Kirienko fbcd484e48 Merge pull request #61 from UAVCAN/bendyer-global-data-type-registry-flag
Add UAVCAN_NO_GLOBAL_DATA_TYPE_REGISTRY flag
2015-08-21 13:51:07 +03:00
Ben Dyer e97f948b9a Uncrustified 2015-08-21 20:35:59 +10:00
Ben Dyer dfc350a67a Correct default flag value 2015-08-21 20:31:29 +10:00
Ben Dyer adfe61d613 Use NumPy half<->float routines to avoid dependence on math functions in C stdlib 2015-08-21 17:57:41 +10:00
Ben Dyer cfa77b13a4 Add UAVCAN_NO_GLOBAL_DATA_TYPE_REGISTRY flag to allow the global data type registry to be disabled 2015-08-21 15:57:04 +10:00
Pavel Kirienko 3ae5400aa5 DSDL sync 2015-08-20 12:21:56 +03:00
Pavel Kirienko 16800376af LPC11C24: removed #define-s 2015-08-20 07:11:52 +03:00
Pavel Kirienko c24aca186c LPC11C24 driver: Proper use of std:: 2015-08-20 07:09:23 +03:00
Pavel Kirienko 5decf35aed LPC11C24: C++11 in the demo app 2015-08-20 06:57:23 +03:00
Pavel Kirienko cf39ecf879 POSIX driver: Proper use of std:: and uavcan:: 2015-08-20 05:42:17 +03:00
Pavel Kirienko b4b6c9eff5 Default initialization of stack variables 2015-08-20 05:30:15 +03:00
David Sidrane 121f83a420 Proper file IO loops #40 2015-08-19 11:05:42 -10:00
David Sidrane 7fc43d0cbf Fixed Typo 2015-08-18 15:35:30 -10:00
Pavel Kirienko e0a619c011 Default TX timeout increased to 100 ms 2015-08-19 01:12:26 +03:00
Pavel Kirienko b317b94d98 Update to beta DSDL 2015-08-18 16:04:48 +03:00
Pavel Kirienko 940399a6a1 Pyuavcan update 2015-08-18 14:52:27 +03:00
Pavel Kirienko 677d55343f DSDL update 2015-08-17 18:10:56 +03:00
Pavel Kirienko ec7c997ed3 Acceptance filter test fix 2015-08-17 15:06:51 +03:00
Pavel Kirienko bfee82f3c4 Pyuavcan update 2015-08-17 14:52:38 +03:00
Pavel Kirienko d6dfd07ecf DSDL update 2015-08-17 14:51:14 +03:00
Pavel Kirienko 04dc7d5e85 Timestamp update 2015-08-17 14:12:24 +03:00
Pavel Kirienko 181b4f6094 DSDL update 2015-08-16 17:30:03 +03:00
Pavel Kirienko e32dfafbae First stab at fixing #55 2015-08-15 13:15:44 +03:00
Pavel Kirienko f3931f7fc5 EnumerationRequest removed 2015-08-14 21:55:34 +03:00
David Sidrane 06ac74bd40 Rebased on stm32_nuttx_clock 2015-08-14 07:24:41 -10:00
David Sidrane 9750e3f58d Initail STM32 Baremetal build 2015-08-14 05:46:33 -10:00
David Sidrane b0fef2ed1f Backing out setting priority of driver's clock tick under nuttx as it is hard faulting the system in IRQ 2015-08-14 05:00:24 -10:00
David Sidrane 9e51b2b125 Adding mechanism to update the drivers notion of UTC from the system RTC
Fixed Clock source and prescale calculation
2015-08-14 05:00:24 -10:00
David Sidrane 4c80149b23 Adds Nuttx Support to uc_stm32_clock 2015-08-14 05:00:24 -10:00
Pavel Kirienko bbfebbcf37 OStream fix 2015-08-14 06:26:56 +03:00
Pavel Kirienko 46793c5e06 STM32 timing doc fix 2015-08-14 05:11:24 +03:00
Pavel Kirienko c2fec7be38 STM32 driver: CAN timing docs 2015-08-13 01:55:27 +03:00
Pavel Kirienko e5efb2bb62 STM32: SJW fix 2015-08-13 01:52:52 +03:00
Pavel Kirienko 7aac8bcfee README - updated links 2015-08-08 17:29:31 +03:00
Pavel Kirienko 2fc0e99681 Minor adjustments in the acceptance filter configurator API 2015-08-04 20:10:32 +03:00
Pavel Kirienko 1e9c434ff0 Merge pull request #54 from ilia-sheremet/master
Acceptance filter update for new transport layer
2015-08-04 20:02:50 +03:00
Pavel Kirienko 58afe173db See #56 2015-08-01 20:21:26 +03:00
ilia-sheremet 9e246617d1 Acceptance filter update for new transport layer corrections_2 2015-07-29 19:04:30 +01:00
Pavel Kirienko b09509c407 Test fix #42 2015-07-26 16:03:07 +03:00
ilia-sheremet b204cb36d8 Acceptance filter update for new transport layer corrections 2015-07-25 20:25:06 +01:00
Pavel Kirienko 1e749b687c Linux nodetool: YAML parameter output 2015-07-25 20:04:29 +03:00
Pavel Kirienko ec6722ba28 STM32: simple init overload 2015-07-25 00:54:19 +03:00
Pavel Kirienko 0a5edf314c STM32: auto bit rate in silent mode 2015-07-25 00:52:09 +03:00
Pavel Kirienko 14913b4cb2 STM32 auto bit rate 2015-07-25 00:16:37 +03:00
ilia-sheremet 5fa5a4f365 Acceptance filter update for new transport layer 2015-07-24 21:04:56 +01:00
Pavel Kirienko ad12760d7f NodeStatusMonitor: Fix to premature node timeout 2015-07-23 14:47:57 +03:00
Pavel Kirienko 5bf015aa28 STM32: Proper CAN timing computation routine; closes #43 2015-07-22 22:54:52 +03:00
Pavel Kirienko 4238df3e9f Proper OTR deadlines 2015-07-20 18:11:53 +03:00
Pavel Kirienko 035f107ab5 RX logic revisited 2015-07-20 18:07:29 +03:00
Pavel Kirienko 8364249587 test segfault fix 2015-07-20 13:12:21 +03:00
Pavel Kirienko 5991d3000f Printing backtrace on segfault 2015-07-20 13:09:06 +03:00
Pavel Kirienko 29aff593aa Revert "TransferID::subtracted()"
This reverts commit c36fdb2156.
2015-07-20 12:40:27 +03:00
Pavel Kirienko c36fdb2156 TransferID::subtracted() 2015-07-20 12:32:13 +03:00
Pavel Kirienko 29c295bf11 TransferReceiver timing fix 2015-07-15 21:22:28 +03:00
Pavel Kirienko da3d41307d Clarification in TransferReceiver 2015-07-15 16:55:35 +03:00
Pavel Kirienko 38f8b34f54 TransferSender: Fixed OTR entry lifetime 2015-07-15 16:55:05 +03:00
Pavel Kirienko f94649f1cc SocketCAN driver: Fixed frame reordering 2015-07-13 15:44:03 +03:00
Pavel Kirienko 4f63d569da dsdl and pyuavcan update 2015-07-12 20:15:11 +03:00
Pavel Kirienko 64bed86ca8 dsdl update 2015-07-11 14:55:13 +03:00
Pavel Kirienko 749901815f More DSDL tests 2015-07-11 14:24:43 +03:00
Pavel Kirienko 7aeed04af7 dsdl update 2015-07-11 14:17:17 +03:00
Pavel Kirienko 17c0003a87 Another test for complex data structures with unions and voids 2015-07-11 14:03:50 +03:00
Pavel Kirienko 1b7ff0693f dsdlc: fixed linker error (multiple definitions) 2015-07-11 13:51:01 +03:00
Pavel Kirienko fc3f0808a6 Union test 2015-07-11 13:38:23 +03:00
Pavel Kirienko 96c496600b Cleaner YAML validation 2015-07-11 11:52:39 +03:00
Pavel Kirienko e6aeb036e8 Refactored unions 2015-07-11 11:35:26 +03:00
Pavel Kirienko 903d88b8d1 dsdlc namespace fix 2015-07-11 11:00:42 +03:00
Pavel Kirienko 50233da38d Support for void fields 2015-07-11 10:46:15 +03:00
Pavel Kirienko 75d1d03655 pyuavcan update 2015-07-11 10:13:02 +03:00
Pavel Kirienko 08a66b1ee2 pyuavcan & dsdl update 2015-07-11 08:38:00 +03:00
Pavel Kirienko b50a70862c dsdlc: union streaming 2015-07-11 07:59:39 +03:00
Pavel Kirienko 35e65135c3 Nodetool update; build is fixed now 2015-07-11 07:46:42 +03:00
Pavel Kirienko b4c0f71412 dsdlc: template typename fix 2015-07-11 07:42:51 +03:00
Pavel Kirienko 427b473f3f ParamServer test update 2015-07-11 07:37:16 +03:00
Pavel Kirienko 7a8260b191 ParamServer update 2015-07-11 07:35:04 +03:00
Pavel Kirienko 38897225d6 dsdlc: union tag enumeration; improved is()/as()/to() with support for either direct access via StorageType, or indirect access via Spec type 2015-07-11 07:34:23 +03:00
Pavel Kirienko 4000712ae5 DSDL update 2015-07-10 20:07:37 +03:00
Pavel Kirienko d4ac6fd639 Array fix - avoiding boolean as array size type 2015-07-10 19:34:46 +03:00
Pavel Kirienko 4cc8282e15 IntegerSpec - boolean specialization 2015-07-10 18:33:30 +03:00
Pavel Kirienko 6f1ef63f56 Boolean traits 2015-07-10 17:54:22 +03:00
Pavel Kirienko 8a9b945a50 pyuavcan update 2015-07-10 17:38:32 +03:00
Pavel Kirienko 33c25538a4 pyuavcan update 2015-07-10 17:33:23 +03:00
Pavel Kirienko 05f7c16cff dsdlc: union bit lengths 2015-07-10 17:23:22 +03:00
Pavel Kirienko 37a8562961 EnumMin, EnumMax 2015-07-10 17:11:09 +03:00
Pavel Kirienko 17aeaf2d0a dsdlc template fix 2015-07-10 16:42:39 +03:00
Pavel Kirienko 5ac6dc1fb8 Union methods - is(), as(), to() 2015-07-10 16:13:48 +03:00
Pavel Kirienko 263aea3542 dsdlc: Union encode()/decode() 2015-07-10 15:13:25 +03:00
Pavel Kirienko ef8919942e dsdlc: Union comparison operators 2015-07-10 14:53:21 +03:00
Pavel Kirienko 9fb7497add dsdlc: union tag generation 2015-07-10 14:36:52 +03:00
Pavel Kirienko d4efc4e4c0 pyuavcan update 2015-07-10 14:04:20 +03:00
Pavel Kirienko d448edbaef DSDL and pyuavcan update 2015-07-10 13:37:00 +03:00
Pavel Kirienko 78ccc42653 pyuavcan/dsdl update 2015-07-09 15:42:24 +03:00
Pavel Kirienko 4d18f381e5 DSDL and pyuavcan update 2015-07-09 09:03:03 +03:00
Pavel Kirienko dd05c824b7 Driver documentation update 2015-07-09 07:22:48 +03:00
Pavel Kirienko 6202cee04a STM32 test update 2015-07-09 07:04:29 +03:00
Pavel Kirienko 5223244a62 LPC11C24 test update 2015-07-09 07:02:51 +03:00
Pavel Kirienko 9ac61008b1 NodeStatusMonitor logic fix 2015-07-09 01:49:45 +03:00
Pavel Kirienko 9c2a61e0fd uavcan_monitor update 2015-07-09 01:45:42 +03:00
Pavel Kirienko 1a5bd6c906 Node monitor update 2015-07-09 01:03:58 +03:00
Pavel Kirienko 6b811faccd Linux app compilation fixes 2015-07-09 00:54:21 +03:00
Pavel Kirienko e063556567 All tests are passing 2015-07-08 23:54:11 +03:00
Pavel Kirienko 7125eeb5c2 Blah blah 2015-07-08 23:39:50 +03:00
Pavel Kirienko 82cd3f6196 Component status manager removed 2015-07-08 23:38:56 +03:00
Pavel Kirienko 88cf10d5a1 Tests fixes, the library should compile now 2015-07-08 23:33:41 +03:00
Pavel Kirienko ece4cfc196 NodeInfoRetriever updated 2015-07-08 23:26:57 +03:00
Pavel Kirienko 2fa78ddda2 NodeStatusMonitor update 2015-07-08 23:24:59 +03:00
Pavel Kirienko e98ba01e22 Node<> and NodeStatusProvider updated 2015-07-08 21:54:56 +03:00
Pavel Kirienko 948ab8d695 dsdl update 2015-07-08 21:32:58 +03:00
Pavel Kirienko e4632ebba2 STM32 NuttX facepalm fix 2015-07-08 02:35:07 +03:00
Pavel Kirienko 4f79527860 STM32: NuttX driver fixed 2015-07-08 02:15:57 +03:00
Pavel Kirienko e36d276e1f STM32 driver test app 2015-07-07 19:25:12 +03:00
Pavel Kirienko cdd8bfc5c3 STM32: doc comment, fixed error counting 2015-07-07 19:20:05 +03:00
Pavel Kirienko 4247087e5e STM32: simplified abort handling 2015-07-07 19:05:09 +03:00
Pavel Kirienko d3a1c84f27 STM32 SCE IRQ fix 2015-07-07 18:56:24 +03:00
Pavel Kirienko 36ec6781e8 STM32 IRQ fix 2015-07-07 01:33:11 +03:00
Pavel Kirienko a72bc11093 STM32 TX aborts 2015-07-07 01:22:16 +03:00
Pavel Kirienko d58d3423ff STM32: proper TX prioritization 2015-07-06 20:17:11 +03:00
Pavel Kirienko 5028ab1813 STM32 test: var LIBUAVCAN_REPO_ROOT 2015-07-06 13:44:34 +03:00
Pavel Kirienko 0d251cdb38 Nodetool warning fix 2015-07-05 18:48:34 +03:00
Pavel Kirienko 8d923fee4c Modified CAN driver API: Passing the next pending TX frames into the select() call to facilitate proper prioritization in the driver 2015-07-05 18:46:21 +03:00
Pavel Kirienko b4ba088e08 DataTypeInfoProvider test update 2015-07-05 10:05:45 +03:00
Pavel Kirienko 054b60276d Resolved a TODO in AllocationRequestManager 2015-07-05 10:00:36 +03:00
Pavel Kirienko 35fd634282 Configurable priority in high-level protocol logic classes 2015-07-05 09:54:54 +03:00
Pavel Kirienko f48c16d1ef Dynamic node ID servers - configurable priority 2015-07-05 09:37:39 +03:00
Pavel Kirienko 7240e0d6d2 Publisher init() overload with priority argument 2015-07-05 09:34:34 +03:00
Pavel Kirienko 27ec2419ff DSDL catchup 2015-07-05 09:27:22 +03:00
Pavel Kirienko a25a9252a7 Global discovery request removed 2015-07-05 07:21:34 +03:00
Pavel Kirienko 36a7c7e7a9 CATS and network compatibility checker removed 2015-07-05 07:07:59 +03:00
Pavel Kirienko 4f0c448723 DSDL update 2015-07-04 15:51:06 +03:00
Pavel Kirienko aab59e2031 DSDL update 2015-07-04 12:20:01 +03:00
Pavel Kirienko 31c6116345 DynamicNodeIDClient test fix 2015-07-04 12:07:05 +03:00
Pavel Kirienko 10877089d8 Raft: Test event tracer logs timestamp 2015-07-04 11:50:46 +03:00
Pavel Kirienko f839cf010b Dynamic node ID client update 2015-07-04 11:00:10 +03:00
Pavel Kirienko d8f354ff1f VirtualCanIface: fixes #47 for Linux/POSIX 2015-07-03 21:58:24 +03:00
Pavel Kirienko f501153c6b Abort flag check in TransferSender test 2015-07-03 10:48:38 +03:00
Pavel Kirienko 6a17bf6eb5 DSDL update 2015-07-03 10:42:03 +03:00
Pavel Kirienko 71b62ede9c CanIOFlagAbortOnError - automatically enforced by TransferSender if the node is in passive mode 2015-07-03 10:41:39 +03:00
Pavel Kirienko b927c1de5f ServiceServer sends response at the same priority as request 2015-07-03 10:02:10 +03:00
Pavel Kirienko f015c2de8b Configurable priority for service calls; plus a minor collateral refactoring 2015-07-03 09:56:52 +03:00
Pavel Kirienko 546fda2b39 Time sync update 2015-07-03 09:28:54 +03:00
Pavel Kirienko 52505864da DSDL update 2015-07-03 09:25:05 +03:00
Pavel Kirienko cfc069d552 Time sync slave tests fixed, all tests pass successfully 2015-07-03 09:04:24 +03:00
Pavel Kirienko 05609e7c84 NodeStatusMonitor test fixed, 2 to go 2015-07-03 08:57:37 +03:00
Pavel Kirienko 3b911372cf Service server test fixed, 3 to go 2015-07-03 08:51:44 +03:00
Pavel Kirienko d461d16bfd TransferListener tests fixed, 4 to go 2015-07-03 08:43:39 +03:00
Pavel Kirienko 2b9b367c67 CAN acceptance filter configurator temporarily disabled, 5 to go 2015-07-03 08:36:22 +03:00
Pavel Kirienko 60ce395297 TransferSender test fixed, 6 to go 2015-07-03 08:30:55 +03:00
Pavel Kirienko 15621947e9 TransferID test fixed, 7 to go 2015-07-03 08:24:10 +03:00
Pavel Kirienko 445f3c4003 Frame tests fixed, 8 to go 2015-07-03 08:15:53 +03:00
Pavel Kirienko 2d6fc2a5bd UTC timestamping support in CAN driver mock; this enables stricter timestamping checks in other tests 2015-07-03 07:41:18 +03:00
Pavel Kirienko 8debad440e Dispatcher tests fixed, 13 to go 2015-07-03 07:29:32 +03:00
Pavel Kirienko 591cfcb98a Test output cleanup 2015-07-03 06:58:51 +03:00
Pavel Kirienko da6dd5a227 TransferReceiver: Checking for unexpected start of transfer 2015-07-03 06:16:50 +03:00
Pavel Kirienko c56458c73d TransferReceiver tests fixed, 17 to go 2015-07-03 02:41:27 +03:00
Pavel Kirienko 19cd458ae6 Temporary fix to STM32 driver 2015-07-02 22:20:50 +03:00
Pavel Kirienko 8d00058307 Unittest fix 2015-07-02 22:07:11 +03:00
Pavel Kirienko 4bc7620178 Tests are crashing no more! 25 to go... 2015-07-02 02:52:32 +03:00
Pavel Kirienko a4020f8749 Redirecting test stderr to files 2015-07-02 02:33:42 +03:00
Pavel Kirienko d1bd175a29 Incoming transfer tests fixed 2015-07-02 02:01:09 +03:00
Pavel Kirienko b49392569e Three tests fixed, ~21 to go 2015-07-02 01:54:08 +03:00
Pavel Kirienko 08dd1e6c63 Tail byte transmission fix 2015-07-01 19:16:10 +03:00
Pavel Kirienko 8a2e22046e All unit tests compile, but crash. This is the most horrifying commit I've ever made. 2015-07-01 14:55:24 +03:00
Pavel Kirienko feb7600f17 Test services updated 2015-06-29 19:28:19 +03:00
Pavel Kirienko c0a4058c5f Node objects update 2015-06-29 19:26:06 +03:00
Pavel Kirienko 287d9dd942 TransferReceiver updated; build is still broken 2015-06-29 19:22:59 +03:00
Pavel Kirienko a565a9025e TransferSender updated; build is still broken 2015-06-29 19:13:47 +03:00
Pavel Kirienko 350761fa7a Basic modifications; the build is terribly broken 2015-06-29 19:01:33 +03:00
Pavel Kirienko 7502a451e4 pyuavcan update 2015-06-28 17:48:08 +03:00
Pavel Kirienko 587872e6ef dsdl update 2015-06-28 17:34:38 +03:00
Pavel Kirienko 6e185b1012 Merge pull request #45 from ilia-sheremet/master
Can HW acceptance filter feature + getIface() corrections + dsdl hash fixed
2015-06-27 19:25:45 +03:00
ilia-sheremet 0ce069fce2 uc_can_acceptance_filter_configurator.cpp formatting corrections and getNumFilters() extra check 2015-06-27 17:40:53 +02:00
ilia-sheremet 876ef38097 dsdl hash update 2015-06-26 14:53:37 +02:00
ilia-sheremet 0af89b8d15 Merge remote-tracking branch 'upstream/master'
Conflicts:
	libuavcan/include/uavcan/build_config.hpp
2015-06-26 14:39:29 +02:00
ilia-sheremet 573b268457 CAN HW filters are added using map container 2015-06-26 14:35:53 +02:00
Pavel Kirienko 1b698c4267 NodeInfoRetriever::invalidateAll() 2015-06-24 01:32:44 +03:00
Pavel Kirienko 532d490fac DSDL update 2015-06-22 21:28:36 +03:00
Pavel Kirienko e99120c257 Memory pool usage tracking + size optimization 2015-06-22 21:02:41 +03:00
Pavel Kirienko ba2f7de9d8 Scheduler: spin deadline computation fix 2015-06-21 03:39:45 +03:00
Pavel Kirienko a1a1715b10 UAVCAN_PACKED_ removed from the STM32 test 2015-06-20 23:00:23 +03:00
Pavel Kirienko 5cfbb193e6 UAVCAN_PACKED_* removed completely, as with the latest optimizations it is not needed anymore 2015-06-20 22:42:54 +03:00
Pavel Kirienko 815337ab1f TransferReceiver optimization 2015-06-20 22:39:39 +03:00
Pavel Kirienko cb7f1ef460 UAVCAN_PACK_STRUCTS removed, was useless 2015-06-18 18:52:43 +03:00
Pavel Kirienko 22c51b28e3 Smarter use of UAVCAN_PACKED_* 2015-06-18 18:46:54 +03:00
Pavel Kirienko 37c858627a Fixed padding in DataTypeDescriptor class 2015-06-18 18:37:38 +03:00
Pavel Kirienko 3ba1fad9ac Using packed structs in STM32 test 2015-06-18 18:34:56 +03:00
Pavel Kirienko 91ed3709eb Field alignment hackery in Map<> that allows to reduce object sizes (see the following commits) 2015-06-18 18:19:58 +03:00
Pavel Kirienko 356f46d08a Centralized server: Allocation table cache removed 2015-06-18 17:50:17 +03:00
Pavel Kirienko b8ce1699a5 Doc clarification for UAVCAN_MAX_NETWORK_SIZE_HINT 2015-06-15 15:50:12 +03:00
Pavel Kirienko 9a77d27d81 Build config UAVCAN_MAX_NETWORK_SIZE_HINT (#33) 2015-06-15 15:44:58 +03:00
Pavel Kirienko 00319909c1 PoolManager<> removed (was useless) (#33) 2015-06-15 15:27:33 +03:00
Pavel Kirienko 95091ab26c LPC11C24: clean target removes the generated headers 2015-06-15 14:46:42 +03:00
ilia-sheremet bad7123b7d getIface() constants added 2015-06-13 20:15:45 +02:00
Pavel Kirienko 3784484b16 Installation updates 2015-06-10 20:30:10 +03:00
Pavel Kirienko c4108f3c21 pyuavcan submodule fix 2015-06-10 20:13:51 +03:00
Pavel Kirienko c3de88b89f When dsdlc is running from source, it does not require pyuavcan anymore 2015-06-10 20:10:40 +03:00
Pavel Kirienko 91642adfe5 README fix 2015-06-10 15:37:38 +03:00
Pavel Kirienko fc997cff88 DSDL script installation removed from the top-level CMake script 2015-06-10 15:32:39 +03:00
Pavel Kirienko a7ce4aac8c Pyuavcan removed from the top-level CMake script 2015-06-10 15:32:03 +03:00
Pavel Kirienko e612a0014b dsdlc: path extension feature removed 2015-06-10 15:28:53 +03:00
Pavel Kirienko 68e21a6e77 README update 2015-06-10 15:27:37 +03:00
Pavel Kirienko dfaf1f268c pyuavcan removed 2015-06-10 15:17:48 +03:00
Pavel Kirienko c2e3cb3315 README update 2015-06-10 15:05:21 +03:00
Pavel Kirienko 28733e2492 DSDLC update 2015-06-10 15:04:22 +03:00
Pavel Kirienko c8e9277e62 DSDL and Pyuavcan submodules 2015-06-10 15:00:23 +03:00
Pavel Kirienko 03c251db4f Pyuavcan and DSDL removed, will be returned back as submodules in the next commit 2015-06-10 14:59:30 +03:00
Pavel Kirienko da69feec76 README update 2015-06-10 14:58:34 +03:00
Pavel Kirienko e5b7a2c158 Warning fix in a Linux app 2015-06-10 14:12:11 +03:00
Pavel Kirienko df34ed9ffe Logging installed Python files into text files; this partially resolves #26 2015-06-10 13:59:36 +03:00
Pavel Kirienko 1a7a94c24c Coverity 1304850 2015-06-10 13:30:51 +03:00
Pavel Kirienko a1cf761917 Coverity 1304857 1304856 1304855 2015-06-10 13:17:40 +03:00
Pavel Kirienko 4d9e3b1131 Coverity 1304853 2015-06-10 13:15:31 +03:00
Pavel Kirienko 37f2b8044f Coverity 1304854 2015-06-10 13:06:42 +03:00
Pavel Kirienko b98aee7250 Coverity 1304851 2015-06-10 13:04:52 +03:00
Pavel Kirienko eaaf2f15cd Coverity 1304852 2015-06-10 13:00:15 +03:00
Pavel Kirienko dc3f09855c Coverity 1304849 2015-06-10 12:54:57 +03:00
Pavel Kirienko 2961f75cb3 Coverity 1304848 2015-06-10 12:49:50 +03:00
Pavel Kirienko c6dc048e61 Merge pull request #39 from kylemanna/tiny_remove_rxframelistener
libuavcan: Disable Frame Listener with UAVCAN_TINY
2015-06-10 11:32:50 +03:00
Kyle Manna b01f2bcc97 libuavcan: Disable Frame Listener with UAVCAN_TINY
* Compliation will fail on small systems with UAVCAN_TINY defined
  with the following error:

      abstract_node.hpp:123:33: error: 'IRxFrameListener' has not been declared

* Resolve issue by removing unecessary functions.
* Error is revealed and resolved when building test_stm32f107.
2015-06-09 19:53:45 -07:00
Pavel Kirienko 7b44bf8822 Safer virtual methods; this breaks compatibility with GCC 4.6 2015-06-09 23:05:49 +03:00
Pavel Kirienko 9ac2813cea Cleaner type definitions in Linux driver 2015-06-09 22:58:00 +03:00
Pavel Kirienko 44b84ea5cb Using -std=c++11 compiler flag 2015-06-09 22:48:19 +03:00
Pavel Kirienko 6f22745e55 Multithreading test for Linux 2015-06-09 19:49:16 +03:00
Pavel Kirienko c793ab4177 Linux driver fix 2015-06-09 19:01:54 +03:00
Pavel Kirienko d185eccf18 Exposed RX listener API via INode interface 2015-06-09 18:35:49 +03:00
Pavel Kirienko 2b8517905d Linux driver: Refactored node instantiation helpers 2015-06-08 21:30:48 +03:00
Pavel Kirienko 83dd399cda Virtual CAN driver interface 2015-06-08 20:25:21 +03:00
Pavel Kirienko 25371abe3b Partially complete test of a multithreaded application Linux. It works, but it doesn't use iface sharing yet. 2015-06-08 14:59:44 +03:00
Pavel Kirienko 70b366d680 SubNode<> test 2015-06-08 12:49:44 +03:00
Pavel Kirienko e24fa5f236 SubNode<> 2015-06-08 12:37:31 +03:00
Pavel Kirienko fa2829a04a Merge branch 'master' into multiprocessing 2015-06-08 12:23:50 +03:00
Pavel Kirienko 32adb8fabd IRxFrameListener test 2015-06-08 12:18:50 +03:00
Pavel Kirienko 2b2b816004 Frame listeners are disabled in tiny mode 2015-06-08 12:05:54 +03:00
Pavel Kirienko 8891015321 IRxFrameListener 2015-06-08 11:57:05 +03:00
Pavel Kirienko e8e0653022 INode::injectTxFrame() 2015-06-07 17:28:37 +03:00
Pavel Kirienko aa0583c8dc spinOnce() fix 2015-06-07 16:44:47 +03:00
Pavel Kirienko 988e404586 Work-around for false -Wtype-limits from GCC 2015-06-07 00:07:49 +03:00
Pavel Kirienko fc990b6ef0 Specialization for CompileTimeIntSqrt<1> 2015-06-05 15:23:31 +03:00
Pavel Kirienko 8ab48f61e7 try_implicit_cast<>() --> coerceOrFallback<>() 2015-06-05 15:21:05 +03:00
Pavel Kirienko 1f1679c75d LPC11C24 - removed useless libstdc++ stubs 2015-06-03 15:02:22 +03:00
Pavel Kirienko 107e0af4fd LPC11C24 makefile fix 2015-06-03 14:57:42 +03:00
Pavel Kirienko 06f5489c1f Merge branch 'dynamic_node_id_raft' 2015-06-03 02:38:00 +03:00
Pavel Kirienko 3d5f6f5d40 test_file_server 2015-06-03 02:20:36 +03:00
Pavel Kirienko e54a1ed75e Typo 2015-06-03 01:58:23 +03:00
Pavel Kirienko 250837965e Minor fixes to BasicFileSeverBackend 2015-06-03 01:49:54 +03:00
Pavel Kirienko ac3e70f6ba Insignificant formatting fixes (uncrustify is not smart enough) 2015-06-03 01:32:10 +03:00
David Sidrane 82d9bf29be Added Garbage collection closes #36 2015-06-02 11:03:11 -10:00
David Sidrane a39c8fef3a Consistant use of NULL 2015-06-01 10:38:44 -10:00
Pavel Kirienko 0dc18f9623 Fixed STM32 NuttX driver 2015-06-01 16:45:12 +03:00
Pavel Kirienko 5442c0ac04 Revert "STM32 NuttX driver: Edge-triggered poll(), sort of fixes #35"
This reverts commit 22787651e6.
2015-06-01 16:36:02 +03:00
Pavel Kirienko 7518172f6e POSIX tools - more autoformatting 2015-06-01 15:22:06 +03:00
Pavel Kirienko e0ea51aa21 Fixed naming and CV-correctness 2015-06-01 15:17:58 +03:00
Pavel Kirienko 1c88bd7183 Using proper NULL in POSIX tools 2015-06-01 15:09:34 +03:00
Pavel Kirienko 2615fda63e POSIX event tracer formatting 2015-06-01 15:04:46 +03:00
Pavel Kirienko 52529408d3 POSIX tools - visibility fix 2015-06-01 15:03:27 +03:00
Pavel Kirienko 49019bfcff firmware_version_checker.hpp formatting 2015-06-01 14:58:21 +03:00
Pavel Kirienko cc74cf46af Basic file server backend formatting 2015-06-01 14:57:44 +03:00
Pavel Kirienko 52f809a620 firmware_version_checker.hpp formatting 2015-06-01 14:22:32 +03:00
Pavel Kirienko 22787651e6 STM32 NuttX driver: Edge-triggered poll(), sort of fixes #35 2015-06-01 13:58:20 +03:00
Pavel Kirienko 28e82797c2 Optimized padding, added more sizeof() outputs 2015-05-31 08:12:46 +03:00
Pavel Kirienko 05099181e5 Marshal buffer removed 2015-05-31 07:18:56 +03:00
David Sidrane cf32ca0573 Uodated to 20150527 Read GetInfo changes 2015-05-30 08:00:02 -10:00
David Sidrane 81512cc2e7 Merge branch 'dynamic_node_id_raft' of https://github.com/UAVCAN/uavcan into dynamic_node_id_raft 2015-05-29 18:00:08 -10:00
David Sidrane 4733a0d1a0 File Open Cache 2015-05-29 17:59:31 -10:00
Pavel Kirienko b73dbd3f41 Padding optimization in TransferSender 2015-05-30 01:34:05 +03:00
Pavel Kirienko 941981066c CRC64 removed, file messages refactored 2015-05-29 23:56:41 +03:00
Pavel Kirienko 0ce23a4f34 Lazy initialization of TransferSender removed 2015-05-29 23:30:02 +03:00
Pavel Kirienko 3499db227b Stack-allocating the service response structure 2015-05-29 22:36:16 +03:00
Pavel Kirienko d8c096430f Added some comments concerning stack allocation and references 2015-05-29 22:23:41 +03:00
Pavel Kirienko af09237dd2 Stack-allocating RX objects 2015-05-29 22:04:19 +03:00
Pavel Kirienko 84cac99d62 Merge branch 'dynamic_node_id_raft' into global_rx_object_buffer 2015-05-29 17:47:07 +03:00
Pavel Kirienko d20f8e7356 Using global RX object buffer 2015-05-29 16:47:02 +03:00
Pavel Kirienko b8ca0baa70 Merge branch 'dynamic_node_id_raft' of https://github.com/UAVCAN/uavcan into dynamic_node_id_raft 2015-05-29 03:34:46 +03:00
Pavel Kirienko fe3fce4996 CanIOManager::makePendingTxMask() made public 2015-05-29 03:34:37 +03:00
Pavel Kirienko d8ef97ece1 Merge pull request #34 from miccio-dk/dynamic_node_id_raft
Dynamic node id raft
2015-05-28 19:13:34 +03:00
Riccardo Miccini 7ef306bd4e no data type info provider for TINY 2015-05-28 18:10:42 +02:00
Riccardo Miccini cafa2498b9 no data type info provider for TINY 2015-05-28 18:00:03 +02:00
Riccardo Miccini 4191710feb no data type info provider for TINY 2015-05-28 17:53:19 +02:00
Riccardo Miccini 4e587a44d6 Merge pull request #2 from UAVCAN/dynamic_node_id_raft
Dynamic node id raft update to latest
2015-05-28 17:40:10 +02:00
Pavel Kirienko d4e49d518a First step towards introducing the global RX object buffer 2015-05-28 13:49:01 +03:00
Pavel Kirienko 954ab2491a Fruitless attempt to optimize memory use 2015-05-28 12:59:22 +03:00
Pavel Kirienko 34bcfb21df Improved docs for IFileServerBackend 2015-05-28 11:57:00 +03:00
David Sidrane f2fe415e55 Code consolidation 2015-05-27 06:07:47 -10:00
David Sidrane 436cfcefa9 Use FileCRC typedef 2015-05-27 04:32:50 -10:00
David Sidrane faf13e6942 Merge branch 'dynamic_node_id_raft' of https://github.com/UAVCAN/uavcan into dynamic_node_id_raft 2015-05-27 03:54:32 -10:00
David Sidrane be50b94cba Revert of format changes 2015-05-27 03:53:54 -10:00
Pavel Kirienko 5205d13f37 centralized::Storage fix 2015-05-27 16:28:31 +03:00
Pavel Kirienko 5930bf3ed4 CentralizedServer 2015-05-27 16:12:54 +03:00
Pavel Kirienko bdc0a327b7 centralized::Storage - new test 2015-05-27 16:10:14 +03:00
Pavel Kirienko abe2401e38 Distributed server logging fix 2015-05-27 15:24:55 +03:00
Pavel Kirienko a78c015934 Distributed server tracing fix 2015-05-27 15:16:17 +03:00
Pavel Kirienko 638de08115 CentralizedServer - storage implementation and test 2015-05-27 14:52:41 +03:00
Pavel Kirienko 82c24967e7 Minor fixes in Raft server 2015-05-27 12:55:49 +03:00
Pavel Kirienko 75e2bed3c2 Typo 2015-05-27 11:56:18 +03:00
Pavel Kirienko 74298b1860 spinOnce(), fixes #31 2015-05-27 11:53:12 +03:00
Pavel Kirienko 89c8ed0cf1 Docs for dsdl/uavcan/protocol/dynamic_node_id/server/220.AppendEntries.uavcan 2015-05-27 11:06:23 +03:00
David Sidrane 75b8831f21 Removed perfunction optimization setting 2015-05-26 14:21:16 -10:00
David Sidrane 28802a38dd removed firmware common, made GetInfo part of the firmware checke class fixed firmware path so that code compiles 2015-05-26 14:00:49 -10:00
Pavel Kirienko fcca97d71c FirmwareCommon signature fix 2015-05-26 21:53:26 +03:00
Pavel Kirienko 3a07bde393 Fixes and notes in FirmwareCommon 2015-05-26 21:38:14 +03:00
Pavel Kirienko adbf059585 Fixes and notes in FirmwarePath 2015-05-26 21:27:33 +03:00
Pavel Kirienko 85f498bbe0 FirmwareVersionChecker formatting fix 2015-05-26 21:14:26 +03:00
Pavel Kirienko 53317eb902 BasicFileSeverBackend style fixes 2015-05-26 20:37:58 +03:00
Pavel Kirienko 6a34d19cc5 Style fixes in uavcan_posix/dynamic_node_id_server 2015-05-26 20:36:41 +03:00
Pavel Kirienko aafdf81f29 Removed unused event code 2015-05-26 20:25:29 +03:00
Pavel Kirienko 9faf8470e6 Fixed Raft definitions 2015-05-26 20:22:21 +03:00
Pavel Kirienko a97762ae21 Dead code removal 2015-05-26 20:13:13 +03:00
Pavel Kirienko e60a76d562 Test timing fix 2015-05-26 20:08:38 +03:00
Pavel Kirienko 2231b00637 Raft active state extension removed 2015-05-26 20:04:59 +03:00
Pavel Kirienko 489c178681 Merge pull request #30 from kylemanna/readme_discussion_group
README: Add link to discussion group
2015-05-26 16:17:12 +03:00
Kyle Manna 57282441cb README: Add link to discussion group
* Add a link to the discussion group so people know where to ask
  questions.  This wasn't immediately apparent to me.
2015-05-25 20:32:49 -07:00
Pavel Kirienko 388c023168 uavcan_dynamic_node_id_server - longer log 2015-05-26 02:11:02 +03:00
Pavel Kirienko 97b35cd09e NodeIDSelector fix 2015-05-26 01:57:07 +03:00
Pavel Kirienko d89a8dcbcc Linux test app - Dynamic node ID client 2015-05-26 01:50:24 +03:00
Pavel Kirienko e289a1e09c uavcan_linux::makeApplicationID() 2015-05-26 01:22:26 +03:00
Pavel Kirienko 258da95d12 RaftCore::checkInvariants() 2015-05-26 00:15:18 +03:00
Pavel Kirienko 17c4b975ac Test fix 2015-05-24 23:13:10 +03:00
Pavel Kirienko 78a380062c uavcan_dynamic_node_id_server - printing the number of internal failures 2015-05-24 21:25:38 +03:00
Pavel Kirienko 702c96a192 Node<>::getInternalFailureCount() 2015-05-24 21:21:36 +03:00
Pavel Kirienko 8c77793892 Raft logic fix: auto-discovery on AE request 2015-05-24 21:14:59 +03:00
Pavel Kirienko eb6102a9d4 Raft - minor timing fix, no changes to the logic 2015-05-24 21:09:56 +03:00
Pavel Kirienko b7f7defd85 Raft implementation fix 2015-05-24 20:19:56 +03:00
Pavel Kirienko c323d8e724 Raft - ignoring Allocation activity if it is a response 2015-05-24 20:12:33 +03:00
Pavel Kirienko 59dd6d0905 Raft fix 2015-05-24 20:06:13 +03:00
Pavel Kirienko fc173aca44 uavcan_dynamic_node_id_server fixed coloring 2015-05-24 18:32:27 +03:00
Pavel Kirienko 2952608ffa RaftCore: new event code 2015-05-24 18:20:57 +03:00
Pavel Kirienko a2104f0bba Fixed Raft timings 2015-05-24 17:53:23 +03:00
Pavel Kirienko 73273ab06d Optimized NodeDiscoverer - picking any node to query, without any preference 2015-05-24 17:21:26 +03:00
Pavel Kirienko 11161e7b1f NodeDiscoverer logic fix 2015-05-24 17:18:14 +03:00
Pavel Kirienko 1234494e77 uavcan_dynamic_node_id_server will not run if stdout is not a tty 2015-05-24 16:53:58 +03:00
Pavel Kirienko e5f3a96476 RaftCore implementation fix 2015-05-24 16:32:52 +03:00
Pavel Kirienko 546be2b89b Fixed RaftCore. The logic is even more complicated. 2015-05-24 16:26:14 +03:00
Pavel Kirienko 8729d6a2d6 ServiceClient<>::getCallIDByIndex() 2015-05-24 15:59:32 +03:00
Pavel Kirienko 4f64e2378e RaftCore - runtime assertions 2015-05-24 15:41:51 +03:00
Pavel Kirienko 9e9ade0055 Node ID allocation server - allocation response TX timeout set to DEFAULT_REQUEST_PERIOD_MS 2015-05-24 14:25:56 +03:00
Pavel Kirienko 7cac4cd4fa uavcan_dynamic_node_id_server - cleaner time formatting 2015-05-24 14:23:04 +03:00
Pavel Kirienko 5361d7bbeb uavcan_status_monitor - improved CLI rendering 2015-05-24 13:36:39 +03:00
Pavel Kirienko 0bb767c42f uavcan_dynamic_node_id_server - improved CLI rendering 2015-05-24 13:34:05 +03:00
Pavel Kirienko 132ab39c49 uavcan_dynamic_node_id_server - Highliting Leader state in green 2015-05-23 23:25:08 +03:00
Pavel Kirienko ed96e9f0fd uavcan_dynamic_node_id_server - Fixed output coloring 2015-05-23 23:21:03 +03:00
Pavel Kirienko ce4ae983a3 Event logs uses local time 2015-05-23 22:46:16 +03:00
Pavel Kirienko 0348b22b1e distributed allocation server - StateReport fix 2015-05-23 21:49:01 +03:00
Pavel Kirienko aaa3c225c4 uavcan_dynamic_node_id_server - posfixing the storage path with self node ID 2015-05-23 21:35:12 +03:00
Pavel Kirienko 9b5074051f uavcan_dynamic_node_id_server - setting status OK 2015-05-23 21:32:00 +03:00
Pavel Kirienko a6618d9be0 uavcan_dynamic_node_id_server - colored events 2015-05-23 21:30:10 +03:00
Pavel Kirienko bf0fd63bfe uavcan_dynamic_node_id_server - simple output coloring 2015-05-23 20:54:12 +03:00
Pavel Kirienko 65db68a514 uavcan_dynamic_node_id_server - a couple of fixes 2015-05-23 20:15:48 +03:00
Pavel Kirienko 66dc702a7e New Linux tool: uavcan_dynamic_node_id_server (mostly complete) 2015-05-23 03:26:52 +03:00
Pavel Kirienko 5f4adbf1a3 dynamic_node_id_server::distributed::StateReport structure 2015-05-23 00:38:17 +03:00
David Sidrane b205cd3bbb Merge branch 'dynamic_node_id_raft' of https://github.com/UAVCAN/uavcan into dynamic_node_id_raft 2015-05-21 07:26:51 -10:00
David Sidrane 64b14db1f5 More string refactoring 2015-05-21 07:25:53 -10:00
Pavel Kirienko e5ce6f74c6 POSIX file event tracer visibility fix 2015-05-21 17:16:20 +03:00
David Sidrane fa11a76143 Refactoring paths 2015-05-20 18:17:16 -10:00
Pavel Kirienko 823b14c121 POSIX dynamic ID storage backend: calling fsync() on set(), plus a minor style fix 2015-05-21 01:28:41 +03:00
Pavel Kirienko 45942eef1f Note on error codes 2015-05-20 22:15:19 +03:00
Pavel Kirienko 489a27f70d BasicFileServer::handleRead() error handling fix 2015-05-20 22:13:32 +03:00
David Sidrane 5358c734ef Fixed guard 2015-05-20 02:59:36 -10:00
David Sidrane 8b87990c1b Fixed guard 2015-05-20 02:58:33 -10:00
David Sidrane 9f17dca012 Fixed guard 2015-05-20 02:57:20 -10:00
Pavel Kirienko 6abe343f04 FirmwareUpdateTrigger handleFirmwareUpdateConfirmation() made optional 2015-05-20 15:19:51 +03:00
Pavel Kirienko bb412f3f93 FirmwareUpdateTrigger retry logic optimization 2015-05-20 15:13:31 +03:00
Pavel Kirienko 1f47596688 FirmwareUpdateTrigger node selector fix, more testing 2015-05-20 14:53:16 +03:00
David Sidrane b8d3884eb6 Ensured close in all paths.
This still needed the EAGAIN logic added
2015-05-19 18:54:15 -10:00
David Sidrane 5a0bccf787 Update file_server_backend.hpp 2015-05-19 18:28:19 -10:00
David Sidrane 2443f29595 Merge branch 'dynamic_node_id_raft' of https://github.com/UAVCAN/uavcan into dynamic_node_id_raft 2015-05-19 17:48:25 -10:00
David Sidrane ee25e3db45 POSIX File Server Backend 2015-05-19 17:47:37 -10:00
Pavel Kirienko 19cffa682f TestNetwork<> fix 2015-05-20 01:20:42 +03:00
Pavel Kirienko 4398cceb4c Fixing the previous commit 2015-05-20 00:41:44 +03:00
Pavel Kirienko 228785b8f8 libuavcan testing: TestNetwork<> helper 2015-05-20 00:12:06 +03:00
Pavel Kirienko 1047a25872 FirmwareUpdateTrigger - fixes and test 2015-05-19 13:22:52 +03:00
Pavel Kirienko 0d60595d7c FirmwareUpdateTrigger - fixes and test 2015-05-19 13:16:51 +03:00
Pavel Kirienko d7ae3f90c0 Doc fix 2015-05-19 02:13:50 +03:00
Pavel Kirienko 694d29ab47 Misleading comment that somehow survived refactoring 2015-05-19 02:10:22 +03:00
Pavel Kirienko 6b179d032b Firmware update trigger implementation. It is most likely broken, because I'm half asleep by now; proper tests will be added later 2015-05-19 01:37:10 +03:00
Pavel Kirienko f9b946addd Merge pull request #29 from cvra/master
Add missing include
2015-05-18 23:15:49 +03:00
Antoine Albertelli 76305b3c69 Add missing include 2015-05-18 22:12:54 +02:00
Pavel Kirienko 5e458e918d MakeString<> helper template 2015-05-18 22:29:09 +03:00
David Sidrane 65c5d6efa8 Merge pull request #27 from UAVCAN/posix_tools_refactor
Posix tools refactor
2015-05-18 06:32:58 -10:00
Pavel Kirienko 875c74d88e Removed useless constructors 2015-05-18 17:11:05 +03:00
Pavel Kirienko 3c073ac9d4 Simple test for POSIX storage backend 2015-05-18 17:08:49 +03:00
Pavel Kirienko 09a96061ad Fixed and improved file event tracer + POSIX test 2015-05-18 17:02:17 +03:00
Pavel Kirienko 46afa99b27 Refactored POSIX tools 2015-05-18 15:14:37 +03:00
Pavel Kirienko e4886606f0 Typo 2015-05-18 14:31:10 +03:00
Pavel Kirienko 51a2ce39c5 Full file server implementation 2015-05-18 14:21:58 +03:00
Pavel Kirienko 58ca7319dd File server implementation with test 2015-05-18 14:05:10 +03:00
Pavel Kirienko cd41840f59 Multi-call client in RaftCore 2015-05-17 17:18:14 +03:00
Pavel Kirienko e5fddfdb66 Node info retriever unit test fix 2015-05-17 17:17:28 +03:00
Pavel Kirienko c089f4d72b Node info retriever - timer event optimization 2015-05-17 16:35:09 +03:00
Pavel Kirienko 600c29a953 NodeInfoRetriever - docs, logical fixes, tests 2015-05-17 16:29:19 +03:00
Pavel Kirienko 36dda9c017 NodeInfoRetriever basic test 2015-05-17 13:49:40 +03:00
Pavel Kirienko 2123853cae Using concurrent calls in NodeInfoRetriever 2015-05-17 00:01:49 +03:00
Pavel Kirienko 5e5540b8ce ServiceClient<>::hasPendingCallToServer() 2015-05-16 23:57:11 +03:00
Pavel Kirienko 0553d18cf9 Merge branch 'dynamic_node_id_raft' into concurrent_service_client 2015-05-16 23:19:51 +03:00
Pavel Kirienko 7df9fb0820 NodeInfoRetriever - using Multiset instead of Map<> 2015-05-16 23:17:54 +03:00
Pavel Kirienko 3f9cad4f3b Multiset: Simpler type handling in predicate adapter template 2015-05-16 23:17:26 +03:00
Pavel Kirienko fdf5100985 Safer list traversing in Multiset<> and Map<> 2015-05-16 22:46:33 +03:00
Pavel Kirienko 02fe76cd6f Simplified Multiset<> 2015-05-16 22:39:01 +03:00
Pavel Kirienko 16a9d206c6 ServiceClient documentation 2015-05-16 22:26:04 +03:00
Pavel Kirienko f224be0742 ServiceClient<>: test of concurrent call logic 2015-05-16 22:17:14 +03:00
Pavel Kirienko dbf3d1622e Improved test of ServiceClient<> 2015-05-16 21:43:12 +03:00
Pavel Kirienko 90d60688b3 ServiceClient<>: renaming and a minor logic fix 2015-05-16 21:19:54 +03:00
Pavel Kirienko 9ba6050af1 ServiceClient<>: proper destruction of CallState objects via execution relaying 2015-05-16 21:12:15 +03:00
Pavel Kirienko 81533eda46 Method to generate immediate deadlines in DeadlineHandler 2015-05-16 21:04:25 +03:00
David Sidrane 3ede15f160 Merge branch 'master' into dynamic_node_id_raft 2015-05-16 07:06:27 -10:00
Pavel Kirienko 34200c18be New logic of file.Read 2015-05-16 16:07:52 +03:00
Pavel Kirienko cbbb3bd9be All tests are passing 2015-05-16 15:12:10 +03:00
Pavel Kirienko e921f4da02 More debug outputs 2015-05-16 15:07:21 +03:00
Pavel Kirienko da98060a58 Nasty bug in ServiceClient<>::call() 2015-05-16 15:03:53 +03:00
Pavel Kirienko b2b7693ee6 Partially implemented and fixed ServiceClient<>, 7 tests are failing 2015-05-16 14:19:48 +03:00
Pavel Kirienko 40e68d4103 TransferListenerWithFilter - NULL checks removed as they were conflicting with ServiceClient<>'s logic 2015-05-16 14:09:32 +03:00
Pavel Kirienko 39b924cd8a Multiset storage alignment fix 2015-05-16 14:06:32 +03:00
Pavel Kirienko 861315d1c3 Typo 2015-05-16 13:44:03 +03:00
Pavel Kirienko 713ec48ce9 Multiset<>::forEach() 2015-05-16 13:38:42 +03:00
Pavel Kirienko be5bcf9084 ParameterType<> template 2015-05-16 13:21:53 +03:00
Pavel Kirienko f713ef5e00 LazyConstructor memory optimization 2015-05-16 03:36:01 +03:00
Pavel Kirienko eb370b08dd Refactored Map<> 2015-05-16 03:31:18 +03:00
Pavel Kirienko 24f0ec56f4 Multiset fixes and more tests 2015-05-16 03:14:46 +03:00
Pavel Kirienko 5e7f81c11b Fixed Multiset tests 2015-05-16 02:36:45 +03:00
Pavel Kirienko 048e0a33ee Non-moving multiset, tests are failing in C++03 mode 2015-05-15 21:32:08 +03:00
Pavel Kirienko 0d85d672c7 Temporary fix for assertion failure in tests; 12 tests are failing 2015-05-15 18:45:37 +03:00
Pavel Kirienko 282b995c1e Partially refactored ServiceClient, tests are failing, the code is totally broken 2015-05-15 18:41:38 +03:00
Pavel Kirienko ee761eebad Multiset<> 2015-05-15 15:29:31 +03:00
Pavel Kirienko 12b35d0da9 dsdlc: Fixed comment generation 2015-05-15 00:02:06 +03:00
Pavel Kirienko 7492e9fedb Merge branch 'dynamic_node_id_raft' of https://github.com/UAVCAN/uavcan into dynamic_node_id_raft 2015-05-14 00:08:38 +03:00
Pavel Kirienko fb155d8fc9 Fixed missing UAVCAN_EXPORT declaration 2015-05-14 00:08:22 +03:00
Pavel Kirienko 509ef85048 Properly defining poll interval of NodeDiscoverer 2015-05-14 00:02:43 +03:00
Pavel Kirienko 3db54cd6af Improved NodeDiscoverer logic 2015-05-13 23:23:03 +03:00
Pavel Kirienko e2ef4a4518 Restructured NodeStatusMonitor and NodeInfoRetriever - TimerBase is not inherited by the monitor now because that was a suboptimal solution for a class designed for inheritance 2015-05-13 22:32:23 +03:00
Pavel Kirienko 2b0d669d7f Revert "NodeStatusMonitor API update"
This reverts commit 08d96ef329.
2015-05-13 22:02:02 +03:00
Pavel Kirienko 842319a290 Initial implementation of NodeInfoRetriever; fixes pending 2015-05-13 21:59:43 +03:00
Pavel Kirienko bc00899e70 Testing tooling fix 2015-05-13 17:50:45 +03:00
Pavel Kirienko a548d8311c Testing framework: added emulateSingleFrameBroadcastTransfer() 2015-05-13 16:39:22 +03:00
David Sidrane 37ace75abc Formated, tested 2015-05-12 15:00:32 -10:00
David Sidrane 6f95595e35 Merge branch 'dynamic_node_id_raft' of https://github.com/UAVCAN/uavcan into dynamic_node_id_raft 2015-05-12 14:48:05 -10:00
David Sidrane 416a5e69a4 Debuged - missing return value 2015-05-12 14:46:49 -10:00
David Sidrane e43cf6b553 Added POSIX File event tracer 2015-05-12 13:18:59 -10:00
Pavel Kirienko 8f1ed202f7 Merge branch 'dynamic_node_id_raft' of https://github.com/UAVCAN/uavcan into dynamic_node_id_raft 2015-05-13 00:00:48 +03:00
Pavel Kirienko 08d96ef329 NodeStatusMonitor API update 2015-05-12 23:56:13 +03:00
David Sidrane adeb1ef58f Added POSIX file storage backend 2015-05-12 10:52:32 -10:00
Pavel Kirienko 93376316b8 Using static receivers in NodeDiscoverer 2015-05-12 21:48:30 +03:00
Pavel Kirienko 9efd1ac7ae NodeIDSelector: allocating only in the range [1, 125], unless the node explicitly requested higher node ID 2015-05-12 13:01:44 +03:00
Pavel Kirienko 1c52527f97 Fixed KeyValue definition
TAO is enabled, value is only float32
2015-05-12 12:29:15 +03:00
Pavel Kirienko 0253933f75 Linux driver: added system_utils.hpp with a helper class that reads Linux machine ID 2015-05-11 21:54:16 +03:00
Pavel Kirienko b6639d922b Fixed naming in CoarseOrientation
'defined' cannot be used because it's a keyword in C/C++.
2015-05-11 20:48:35 +03:00
Pavel Kirienko 92c8944e49 Too many tracepoints? No such thing. 2015-05-11 18:52:03 +03:00
Pavel Kirienko 2868fd5712 NodeDiscoverer test fix 2015-05-11 18:36:50 +03:00
Pavel Kirienko 8df1cfe1d9 NodeDiscoverer: another test 2015-05-11 18:26:42 +03:00
Pavel Kirienko 558171bf71 NodeDiscoverer: fixes and test 2015-05-11 17:50:36 +03:00
Pavel Kirienko c62b871f20 Revert "NodeDiscoverer: Pausing querying GetNodeInfo if the node does not send NodeStatus"
This reverts commit f0627423c6.
2015-05-11 17:25:38 +03:00
Pavel Kirienko f0627423c6 NodeDiscoverer: Pausing querying GetNodeInfo if the node does not send NodeStatus 2015-05-11 17:15:18 +03:00
Pavel Kirienko e10d262631 Improved event tracer stub 2015-05-11 14:35:58 +03:00
Pavel Kirienko 63ce2b793d New trace code on remote node restart 2015-05-11 14:27:55 +03:00
Pavel Kirienko 3221179eef Fixed test names 2015-05-11 14:05:47 +03:00
Pavel Kirienko 1a6226ddc2 Added a comment explaining extensions to Raft 2015-05-11 13:36:34 +03:00
Pavel Kirienko 706e72cc74 Raft tracepoint at election completion 2015-05-11 13:29:13 +03:00
Pavel Kirienko d623eee54a Raft logic fix: forcing active mode when allocation activity is detected 2015-05-11 13:26:53 +03:00
Pavel Kirienko 5af19f82c3 Raft logic fixes 2015-05-11 13:06:30 +03:00
Pavel Kirienko 731d9f4574 Changed RaftCore API; giving up Leader status if the leader cannot write its log 2015-05-10 23:44:25 +03:00
Pavel Kirienko a6b0a256fb Byte order fix in logging 2015-05-10 20:33:34 +03:00
Pavel Kirienko 526b9371e4 Minor logging fix 2015-05-10 20:24:32 +03:00
Pavel Kirienko f2c393e90d Server test extension 2015-05-10 20:10:13 +03:00
Pavel Kirienko b7a4c9524e Fixed error codes 2015-05-10 20:05:40 +03:00
Pavel Kirienko a309c6d8da Raft allocator adds its own allocation entry to the log 2015-05-10 20:03:17 +03:00
Pavel Kirienko 6e287dc1b2 Fixed naming of trace events 2015-05-10 19:33:16 +03:00
Pavel Kirienko 10b5661da4 Advanced tracing 2015-05-10 19:22:03 +03:00
Pavel Kirienko c49ee1c4d3 Top-level typedef for distributed::Server 2015-05-10 17:56:48 +03:00
Pavel Kirienko 12a81b5bef Server event tracer extracted to the common level 2015-05-10 17:53:16 +03:00
Pavel Kirienko 7477de3bd9 NodeDiscoverer - implemented, integrated, not tested 2015-05-10 17:44:34 +03:00
Pavel Kirienko aae4317beb Improved allocation logic 2015-05-10 14:12:19 +03:00
Pavel Kirienko 67b33a712e Improved logic of allocation request manager 2015-05-09 23:52:51 +03:00
Pavel Kirienko 1a763a824c Better naming 2015-05-09 23:34:30 +03:00
Pavel Kirienko 68c36924e3 Better naming 2015-05-09 23:17:22 +03:00
Pavel Kirienko ab0017f870 Top level header for distributed server 2015-05-09 23:06:58 +03:00
Pavel Kirienko d980b5e655 Typo in UAVCAN_TRACE() 2015-05-09 17:04:14 +03:00
Pavel Kirienko ea3886b048 Refactored tests of node ID allocation server 2015-05-09 16:55:52 +03:00
Pavel Kirienko 2c36e91c54 Fixed calls to UAVCAN_TRACE() 2015-05-09 16:29:31 +03:00
Pavel Kirienko 567d167640 Updated default service timeout 2015-05-09 16:21:50 +03:00
Pavel Kirienko 0f10d85f7e Node ID selection logic extracted into a class 2015-05-09 16:16:43 +03:00
Pavel Kirienko 696d97880d Include guard fix 2015-05-09 16:05:15 +03:00
Pavel Kirienko 18d5cb78aa Refactored node ID allocation server; no changes to the logic 2015-05-09 16:03:22 +03:00
Pavel Kirienko 098c29ce93 Transport stats provider moved to header 2015-05-09 12:39:05 +03:00
Pavel Kirienko 9d20d983b5 Restart request server moved to header 2015-05-09 12:38:12 +03:00
Pavel Kirienko 15fa5ad163 Param server moved to header 2015-05-09 12:37:16 +03:00
Pavel Kirienko 106cb94379 Added a README explaining what's going on 2015-05-09 12:35:18 +03:00
Pavel Kirienko ee85d2d73a Panic broadcaster moved to header 2015-05-09 12:26:22 +03:00
Pavel Kirienko 00ec7186b0 Node status monitor moved to header 2015-05-09 12:24:31 +03:00
Pavel Kirienko 894d951c33 Network compat checker moved to header 2015-05-09 12:21:46 +03:00
Pavel Kirienko 6e19d1c7ad Logger moved to header 2015-05-09 12:17:57 +03:00
Pavel Kirienko fc7e242100 Global time sync slave moved to header 2015-05-09 12:13:49 +03:00
Pavel Kirienko 899fa93201 Global time sync master moved to header 2015-05-09 12:07:37 +03:00
Pavel Kirienko 0ee3a7f311 Data type info provider moved to header 2015-05-09 12:03:30 +03:00
Pavel Kirienko 8ea708b77e Renamed DynamicNodeIDClient 2015-05-09 11:56:17 +03:00
Pavel Kirienko 69c361e259 Proper allocation logic with basic test 2015-05-08 23:12:57 +03:00
Pavel Kirienko aca9fcb12c Very basic implementation of DynamicNodeIDAllocationServer - not all logic is implemented yet, but it can be used for testing already 2015-05-08 21:00:17 +03:00
Pavel Kirienko 618e4c766a Tests for Allocation request manager 2015-05-08 20:27:05 +03:00
Pavel Kirienko 952009c284 Allocation request manager (untested) 2015-05-08 20:00:30 +03:00
Pavel Kirienko 6a35e65ecc Removed misleading comment 2015-05-08 19:53:30 +03:00
Pavel Kirienko e48fa77d85 Raft logic fixes & more tests 2015-05-08 18:43:27 +03:00
Pavel Kirienko 1d7e83bd71 Raft log append test 2015-05-08 17:32:22 +03:00
Pavel Kirienko dab32220e0 Improved Raft event tracer - added event code to string conversion 2015-05-08 17:20:02 +03:00
Pavel Kirienko 1f7c0b40b3 Basic Raft test 2015-05-08 16:35:36 +03:00
Pavel Kirienko 7d607a4dec Added missing tests for Raft 2015-05-08 15:02:27 +03:00
Pavel Kirienko 43f849cc10 Log commit callback - needed by the main allocator class to broadcast allocation responses 2015-05-08 14:57:27 +03:00
Pavel Kirienko a7c09ed714 Raft Leader implementation. RaftCore is now finished. 2015-05-08 14:41:15 +03:00
Pavel Kirienko 6985c72dd3 Follower and candidate logic implemented 2015-05-08 13:30:55 +03:00
Pavel Kirienko 1a640e6763 Properly defined timeouts and max cluster size 2015-05-08 12:29:28 +03:00
Pavel Kirienko a1ee2efea0 All Raft logic finished except time updates 2015-05-07 19:48:05 +03:00
Pavel Kirienko ce752d93bd Raft AE and RV RPC response handlers 2015-05-07 19:11:13 +03:00
Pavel Kirienko 944ac75d93 Raft AE and RV servers 2015-05-07 18:16:26 +03:00
Pavel Kirienko 5e56c8a612 Raft event tracing interface, more states of RaftCore, basic functions of RaftCore 2015-05-07 13:58:24 +03:00
Pavel Kirienko 6ae48c25cb Naming cleanup 2015-05-06 18:01:27 +03:00
Pavel Kirienko 2273df059a ClusterManager tests 2015-05-05 12:53:33 +03:00
Pavel Kirienko 3af95e3dd4 Log initialization fix 2015-05-05 11:31:55 +03:00
Pavel Kirienko f11f49a7d2 ClusterManager test for the case of one server 2015-05-05 11:29:51 +03:00
Pavel Kirienko 92d74d35ea ClusterManager initialization test 2015-05-04 22:33:18 +03:00
Pavel Kirienko 51cd8404b1 Cluster manager implementation, no tests yet 2015-05-04 19:00:39 +03:00
Pavel Kirienko 1994260a2c Persistent storage implementation and tests 2015-05-04 16:44:04 +03:00
Pavel Kirienko 6a8135fedf Service server feature - response suppression 2015-05-04 13:42:02 +03:00
Pavel Kirienko 954d6899b2 Persistent storage implementation 2015-05-04 08:11:24 +03:00
Pavel Kirienko c9b41330b2 Tests for log removal 2015-05-03 20:37:07 +03:00
Pavel Kirienko 54fcfe4e06 Log::append() tests 2015-05-03 20:28:39 +03:00
Pavel Kirienko a7dd5f9aea Proper log initialization 2015-05-03 20:10:45 +03:00
Pavel Kirienko b1f5313fcb Raft log - basic tests of state recovery 2015-05-03 14:21:41 +03:00
Pavel Kirienko a439c62532 String constructor for Array<> 2015-05-03 13:29:53 +03:00
Pavel Kirienko 5633cb8bdb Raft: Basic log methods 2015-05-03 12:34:45 +03:00
Pavel Kirienko a60d5c812a Fixed RaftCore API 2015-05-03 11:28:59 +03:00
Pavel Kirienko 80169f9a1c Marshalling storage decorator 2015-05-02 16:59:22 +03:00
Pavel Kirienko 3e7026ad19 Dynamic Node ID allocation server - internal types 2015-05-02 11:41:54 +03:00
Pavel Kirienko c3d22ca56e Merge pull request #25 from PX4-Works/dynamic_node_id_raft_compile_fix
Added uavcan/debug.hpp to compile
2015-05-02 09:22:56 +03:00
David Sidrane 86675455fb Added uavcan/debug.hpp to compile 2015-05-01 15:28:06 -10:00
Pavel Kirienko 741eac2b17 Merge branch 'master' into dynamic_node_id_raft 2015-05-01 22:20:39 +03:00
Pavel Kirienko 850849beb1 Fixed error handling in ServiceClient 2015-05-01 22:20:15 +03:00
Pavel Kirienko 8096ac3e7c Merge branch 'master' into dynamic_node_id_raft 2015-05-01 20:54:05 +03:00
Pavel Kirienko 90435991ca Speed optimization of ServiceClient<> - requesting DTID only once at the time of first call 2015-05-01 20:53:16 +03:00
Pavel Kirienko 1283eb2811 Style fix in ServiceClient<> 2015-05-01 20:43:49 +03:00
Pavel Kirienko 5527faca5d Raft server: more internals 2015-05-01 18:19:11 +03:00
Pavel Kirienko 3dcb3c0b57 Basic interface of allocation server 2015-05-01 18:06:46 +03:00
Pavel Kirienko 1017935ba9 Dynamic allocation master - added definitions of Raft types 2015-05-01 10:11:31 +03:00
Pavel Kirienko 2f718b66b1 Readjusted DDTID 2015-04-30 15:30:15 +03:00
Pavel Kirienko 6b07222650 Checking priorities in Publisher's unit test 2015-04-30 15:19:51 +03:00
Pavel Kirienko 65ec6fce2e Unit tests now check frame priorities 2015-04-30 15:16:21 +03:00
Pavel Kirienko ffe7ad6ae1 pyuavcan Parser unit test removed - it doesn't work anyway 2015-04-30 14:47:33 +03:00
Pavel Kirienko 2407157c9c Passing priority value of received transfers to application 2015-04-30 14:35:00 +03:00
Pavel Kirienko 20feaba1de Using transfer priorities in protocol:: classes 2015-04-30 14:19:52 +03:00
Pavel Kirienko 2bfadc46b4 Priority support in Publisher 2015-04-30 13:57:11 +03:00
Pavel Kirienko 6b19bf09e2 Support for priority in TransferSender 2015-04-30 12:30:13 +03:00
Pavel Kirienko 5c0314e187 Dedicated error code for transfers of excessive length 2015-04-30 12:04:55 +03:00
Pavel Kirienko 0ea4e5e4e0 pyuavcan: DSDL length validation 2015-04-30 11:50:01 +03:00
Pavel Kirienko 898fe67225 Fixed message definitions; added a compile-time check for maximum serialized message length 2015-04-30 11:24:06 +03:00
Pavel Kirienko ecd7d8a8a5 CATS test for services 2015-04-30 11:05:59 +03:00
Pavel Kirienko b8c5613522 Passing all tests now 2015-04-30 10:55:52 +03:00
Pavel Kirienko 2843c0a35e Basic support for frame prioritization; tests are failing 2015-04-30 08:26:25 +03:00
Pavel Kirienko eafcfa1733 Support for different DTID limits depending on data type kind; tests are failing now! 2015-04-29 03:08:07 +03:00
Pavel Kirienko feb534a45f Temporary fix of the DSDL parser 2015-04-29 01:27:48 +03:00
Pavel Kirienko cf7d231ef1 Readjusted default DTID values 2015-04-28 16:29:01 +03:00
Pavel Kirienko c159f9f7df First step in changing the CAN frame format - introduced various transfer lengths per transfer type 2015-04-28 11:27:01 +03:00
Pavel Kirienko 1b75c48783 Fixed #21 2015-04-27 10:31:21 +03:00
Pavel Kirienko bfc4b5336c Symmetric square matrix packing 2015-04-27 10:12:50 +03:00
Pavel Kirienko f2209c214a gnss.RTCMStream - protocol id field 2015-04-26 08:43:28 +03:00
Pavel Kirienko 21998db4a2 Gimbal messages update - added gimbal_id field 2015-04-26 08:40:01 +03:00
Pavel Kirienko 8bb700d528 build_config.hpp - smarter defaults, UAVCAN_GENERAL_PURPOSE_PLATFORM macro 2015-04-26 08:32:24 +03:00
Pavel Kirienko de8fa4f299 Merge branch 'dynamic_node_id' 2015-04-26 07:51:05 +03:00
Pavel Kirienko abea24eeec New dynamic node ID allocation client 2015-04-26 07:42:26 +03:00
Pavel Kirienko edf556a9f2 Merge pull request #24 from PX4-Works/dynamic_node_id_no_compile
Has issue will compiling
2015-04-24 16:05:08 +03:00
David Sidrane b70d32a2ac Compile error std.hpp:70:37: error: 'std::size_t' has not been declared
extern int snprintf(char out, std::size_t maxlen, const char
2015-04-23 16:44:30 -10:00
Pavel Kirienko 2dbf8cd432 Fixed template instantiation of ServiceResponseTransferListener<> 2015-04-21 21:51:21 +03:00
Pavel Kirienko 78e2351df5 Empty service client test (fails to compile due to a mistake in template instantiation) 2015-04-21 21:46:33 +03:00
Pavel Kirienko b6659f096f Empty server test 2015-04-21 21:00:06 +03:00
Pavel Kirienko e6ff5818a3 libuavcan test: string comparison fix 2015-04-21 20:47:13 +03:00
Pavel Kirienko 246dcb30f0 Map<> fix for tiny mode 2015-04-15 14:38:53 +03:00
Pavel Kirienko df2a38c217 Better name for anonymous transfers (automatic renaming) 2015-04-08 02:40:28 +03:00
Pavel Kirienko 042aa60773 DynamicNodeIDAllocationClient 2015-04-07 00:47:02 +03:00
Pavel Kirienko 012765a796 Typo (missing newline) 2015-04-07 00:14:44 +03:00
Pavel Kirienko ea2e885c50 DynamicNodeIDAllocation constants updated 2015-04-07 00:14:03 +03:00
Pavel Kirienko 82052fb098 ReceivedDataStructure<>::isRogueTransfer() 2015-04-06 22:30:01 +03:00
Pavel Kirienko 1a8757e54b allowRogueTransfers() exposed in Publisher and Subscriber 2015-04-06 19:21:01 +03:00
Pavel Kirienko 7aa30e9cdc Naming: TransferSender::allowRogueTransfers() 2015-04-06 19:11:21 +03:00
Pavel Kirienko de33cf9250 TransferListener now can accept rogue transfers 2015-04-06 19:02:22 +03:00
Pavel Kirienko b4d93df450 TransferSender is now capable of broadcasting in passive mode; Frame::isValid() was modified to accept SFT broadcasts with zero SNID 2015-04-05 11:51:58 +03:00
Pavel Kirienko d4eee21747 Update README.md
Eclipse instructions
2015-04-04 22:11:49 +03:00
Pavel Kirienko 38c6a0d7ac Update 580.BeginFirmwareUpdate.uavcan
Add ERROR_IN_PROGRESS
2015-04-03 00:26:34 +03:00
Pavel Kirienko 85bd75eb1b Merge pull request #20 from thiemar/bendyer-dsdlc-syspath-fix
Prepend pyuavcan in source directory to sys.path
2015-04-02 17:26:22 +03:00
Ben Dyer 42f436d609 Prepend pyuavcan in source directory to sys.path
When running from the source directory, libuavcan_dsdlc should
use the version of pyuavcan in the source directory instead of
a globally installed version of pyuavcan.

Fixes UAVCAN/uavcan#18
2015-04-03 00:43:11 +11:00
Pavel Kirienko ec3d5dd8be Adjusted priorities of file services 2015-04-02 01:34:53 +03:00
Pavel Kirienko c48a22e1b1 Minor updates to the DynamicNodeIDAllocation message 2015-04-01 15:57:10 +03:00
Pavel Kirienko 8bb90afb0f DynamicNodeIDAllocation updated according to David's input 2015-04-01 03:03:19 +03:00
Pavel Kirienko 777eee8ae4 Dynamic Node ID allocation message 2015-04-01 00:48:54 +03:00
Pavel Kirienko 034123873e Merge branch 'dsdl_review' 2015-03-27 00:05:46 +03:00
Pavel Kirienko 0c8f0700af protocol.param.GetSet update - min/max only for numeric types, longer string value 2015-03-24 22:25:25 +03:00
Pavel Kirienko d41a216546 BatteryInfo update 2015-03-24 02:06:33 +03:00
Pavel Kirienko 209547e8b6 Map<>::KVPair constructor fix 2015-03-23 22:20:15 +03:00
Pavel Kirienko 0affb0eaec Convenience method IParamManager::isParamValueEmpty() 2015-03-23 18:34:19 +03:00
Pavel Kirienko 6598b15d88 ParamServer logic improvement 2015-03-23 18:14:44 +03:00
Pavel Kirienko a12dc5aa98 param.GetSet clarifications 2015-03-23 17:34:55 +03:00
Pavel Kirienko ab4c5f54a6 Map<>::getByIndex() 2015-03-23 04:27:59 +03:00
Pavel Kirienko bd7a088728 Air data update 2015-03-22 13:58:27 +03:00
Pavel Kirienko bc5d07ab2a snprintf() fix 2015-03-21 16:01:16 +03:00
Pavel Kirienko 71d4b02a7f Dependency on math.h and the last 'using namespace std' were removed 2015-03-21 14:14:48 +03:00
Pavel Kirienko ec9006381b Removing all dirty 'using namespace std' that were used as C++ library compatibility work-around 2015-03-21 14:08:37 +03:00
Pavel Kirienko 23dd75f1b0 Revert case-insensitive ParamServer 2015-03-21 13:40:08 +03:00
Pavel Kirienko 8bab5c0f5d ParamServer fix - no case conversion by default 2015-03-21 13:30:26 +03:00
Pavel Kirienko 63c5f2742a Revert "Notes on GDTR case sensitivity"
This reverts commit a5bc052d31.
2015-03-21 13:24:44 +03:00
Pavel Kirienko 6e15a541e6 uavcan::Array<> - compile-time check fix in appendFormatted() 2015-03-21 13:10:52 +03:00
Pavel Kirienko a5bc052d31 Notes on GDTR case sensitivity 2015-03-21 00:25:35 +03:00
Pavel Kirienko 80c2c175aa ParamServer - automatic case conversion for parameter names 2015-03-21 00:12:06 +03:00
Pavel Kirienko 241ae8a538 Array methods for case conversion 2015-03-20 23:37:42 +03:00
Pavel Kirienko a6b5f753f1 Test fix 2015-03-20 22:20:30 +03:00
Pavel Kirienko fbdf07fa74 Cleaner naming 2015-03-20 01:51:25 +03:00
Pavel Kirienko 8417b47575 Reduced min pub period of NodeStatus 2015-03-20 01:48:37 +03:00
Pavel Kirienko 79d167a84c Tests for vendor-specific status code management 2015-03-20 00:32:24 +03:00
Pavel Kirienko a63c9510fc Vendor-specific status code support 2015-03-20 00:24:53 +03:00
Pavel Kirienko 3b3c0d3b9e Vendor-specific status code reduced to 16 bit 2015-03-19 23:03:04 +03:00
Pavel Kirienko 659c2899d5 DSDL signature does not depend on constant definitions anymore (see specification) 2015-03-19 22:11:58 +03:00
Pavel Kirienko f63f22bd2b Max parameter name length increased to 92 in order to provide enough space for messaging configuration parameters (12-byte prefix + 80-char type name) 2015-03-19 22:03:00 +03:00
Pavel Kirienko ee67e2f7fb Max data type name length test 2015-03-19 21:56:15 +03:00
Pavel Kirienko 3b7669219e Basic support for string parameters 2015-03-19 00:19:40 +03:00
Pavel Kirienko ddc4b649a8 param.SaveErase --> param.ExecuteOpcode 2015-03-18 23:53:02 +03:00
Pavel Kirienko 62dd626025 Time synchronization message update: 1. field prev_utc_usec renamed to a more human-readable name; 2. UTC is no longer required, but rather recommended 2015-03-18 23:32:58 +03:00
Pavel Kirienko 7946ddd5bc Global DDTID adjustment 2015-03-18 18:31:33 +03:00
Pavel Kirienko 86c234fa9b Gimbal message update 2015-03-18 18:00:58 +03:00
Pavel Kirienko 519a9f22a0 AltitudeAGL removed, because its functionality overlaps with RangeMeasurement. The latter was assigned a new DDTID 2015-03-18 17:32:04 +03:00
Pavel Kirienko ae053fc5a6 OpticalFlow removed 2015-03-17 00:02:43 +03:00
Pavel Kirienko 1a295c0b50 RangeMeasurement update 2015-03-17 00:02:03 +03:00
Pavel Kirienko 560d9f3930 uavcan.nav.* namespace removed 2015-03-17 00:00:28 +03:00
Pavel Kirienko cd1cb470ee Merge branch 'master' into dsdl_review 2015-03-16 23:52:27 +03:00
Pavel Kirienko 2d7e20b885 Improved doc for PanicBroadcaster 2015-03-16 23:43:42 +03:00
Pavel Kirienko 4df5d41c11 BatteryStatus - vendor-specific fields made reserved 2015-03-16 23:38:41 +03:00
Pavel Kirienko f2cfed70cb GetDataTypeInfo now can be requested either by dtid/id, or by name 2015-03-16 23:35:37 +03:00
Pavel Kirienko 14c176015a GDTR find() overload for name only 2015-03-16 20:18:36 +03:00
Pavel Kirienko 670e8bda51 Minor API cleanup in GDTR: regist() --> registerDataType() 2015-03-16 20:01:39 +03:00
Pavel Kirienko 7ecd0a4259 Bit array copy algorithm update - Fixed an error with 1 bit lengthed copies (see the original discussion at stackoverflow.com) 2015-03-16 19:34:32 +03:00
Pavel Kirienko e17ad9fc00 README formatting 2015-03-16 13:10:33 +03:00
Pavel Kirienko fc7ba89b42 Merge pull request #17 from jpkh/master
Adding more install instructions
2015-03-16 13:06:33 +03:00
Jani Hirvinen 5694ea5508 Adding more install instructions 2015-03-16 15:53:11 +07:00
Pavel Kirienko c791f65ccd UAVCAN_VERSION_NUMBER set to 1.0. Although it is not a release yet, no major changes are anticipated 2015-03-12 01:01:07 +03:00
Pavel Kirienko 5b8bb64727 Revert "New tool: unpragma_once.pl"
This reverts commit c47f196281.
2015-03-12 00:54:09 +03:00
Pavel Kirienko eb982bdd40 All occurences of pragma once in libuavcan headers were replaced with conventional include guards. 2015-03-12 00:53:18 +03:00
Pavel Kirienko c47f196281 New tool: unpragma_once.pl 2015-03-12 00:52:23 +03:00
Pavel Kirienko 79623033c1 Abandoning pragma once 2015-03-12 00:36:25 +03:00
Pavel Kirienko d4986598b1 LPC11C24: Stack overflow fix 2015-02-27 16:17:03 +03:00
Pavel Kirienko 9ad492e745 .gitignore update 2015-02-27 04:05:21 +03:00
Pavel Kirienko 2155ac8bb6 Merge pull request #15 from ilia-sheremet/master
Cmake gcc 4.9 compatability
2015-02-23 21:21:12 +03:00
postal 803e60f30f Cmake gcc 4.9 compatability 2015-02-23 19:07:18 +01:00
Pavel Kirienko eb72ee1655 Max node name length increased to 80 characters 2015-02-08 01:41:33 +03:00
Pavel Kirienko a8837943a3 DSDL clarifications 2015-02-08 01:37:47 +03:00
Pavel Kirienko 7019065812 debug: Max key length increased to 80 characters 2015-02-08 01:34:52 +03:00
Pavel Kirienko 84e22f1fb7 param: Max parameter name length increased to 80 characters 2015-02-08 01:34:03 +03:00
Pavel Kirienko 6dd432c974 Merge pull request #14 from ilia-sheremet/new_branch
Linux apps CMake script dependency fix
2015-02-06 22:02:06 +03:00
Pavel Kirienko 211b90fbaf Airspeed message update. Thanks Holger Steinhaus and Jonathan Challinger. 2015-02-06 21:55:41 +03:00
postal 672874d11e Dependencies update for linux/cmake 2015-02-06 19:54:18 +01:00
Pavel Kirienko 444937b8e0 Actuator messages update. Fixes #11 2015-02-06 21:52:53 +03:00
postal 41755b46a8 Dependencies update for linux/cmake 2015-02-06 19:50:02 +01:00
postal 1bf41b135d Dependencies update for linux/cmake 2015-02-06 19:42:26 +01:00
postal b6d145aa35 Dependencies update for linux/cmake 2015-02-06 19:24:43 +01:00
Pavel Kirienko beefb2cd60 CanIOManager::getCanDriver() - mutating overload 2015-02-05 22:20:42 +03:00
Pavel Kirienko 9f7149d85c Coverity CID 1268191 2015-02-05 03:25:52 +03:00
Pavel Kirienko 403a70e899 Proper node names for Linux apps 2015-02-05 03:02:31 +03:00
Pavel Kirienko de1a669bea Linux vcan_init fix (requires bash, not sh) 2015-02-05 02:52:02 +03:00
Pavel Kirienko 9675e31933 Linux apps: printing usage to stderr 2015-02-05 02:49:53 +03:00
Pavel Kirienko 00bada6fb9 Coverity CID 1203388..1203395 2015-02-05 02:47:35 +03:00
Pavel Kirienko 3a0aa4ce46 Coverity CID 1268180 2015-02-05 02:41:46 +03:00
Pavel Kirienko 315d21c256 Coverity CID 1268181, 1268182 2015-02-05 02:37:42 +03:00
Pavel Kirienko b9f802026e Coverity CID 1268184..1268189 2015-02-05 02:35:25 +03:00
Pavel Kirienko 035a607944 Logging functions defined with UAVCAN_NOEXCEPT 2015-02-05 02:31:28 +03:00
Pavel Kirienko 60cf13995a Coverity CID 1268191 2015-02-05 02:04:13 +03:00
Pavel Kirienko 849abc8179 README.md - Coverity build instructions 2015-02-04 23:53:02 +03:00
Pavel Kirienko 2d1c8f1a2d Note on code size for LPC11C24 2015-02-04 23:27:04 +03:00
Pavel Kirienko f4ba884b31 Formatting fix 2015-02-04 22:53:27 +03:00
Pavel Kirienko c415cf90c3 Const version of getReceivedStructStorage(), clarified docs 2015-02-04 22:53:17 +03:00
Pavel Kirienko 812f7f4597 Update 600.Status.uavcan
Units removed, since the specification explicitly calls for SI. In this case it means that the units will be dependent on the type of the actuator, e.g. Newtons for linear actuators, and Newton meters for rotational type. Thanks Robert Lefebvre for pointing this out.
2015-02-04 22:02:26 +03:00
Pavel Kirienko 222ea1e093 CanIOManager::getCanDriver() 2015-02-04 20:17:29 +03:00
Pavel Kirienko db0f544af8 GNSS Aux moved 302 --> 301 2015-02-04 19:34:22 +03:00
Pavel Kirienko a50399266a param.GetSet - string parameters support 2015-02-03 23:41:34 +03:00
Pavel Kirienko 54696997af debug KeyValue refers to param.Value 2015-02-03 23:24:06 +03:00
Pavel Kirienko d40a1397e7 Elaborated SaveErase 2015-02-03 23:22:48 +03:00
Pavel Kirienko ec10722d59 GNSS Fix clarifications 2015-02-03 18:56:37 +03:00
Pavel Kirienko f5526a4d6d GNSS messages updated 2015-02-03 16:16:06 +03:00
Pavel Kirienko 4239c2eddd Optimized NodeStatusMonitor 2015-02-03 15:55:53 +03:00
Pavel Kirienko d3d266264c NodeStatus extended with a 32-bit vendor-specific status code 2015-02-03 15:55:19 +03:00
Pavel Kirienko d75139a318 Gimbal messages updated 2015-02-03 15:26:20 +03:00
Pavel Kirienko 7944aa0853 System arming status 2015-02-03 15:03:43 +03:00
Pavel Kirienko 03ed54df72 uavcan.hardpoint update 2015-02-03 15:00:53 +03:00
Pavel Kirienko 9f63356c42 DSDL comments update 2015-02-03 14:56:28 +03:00
Pavel Kirienko 8a1942d906 Comment updates in uavcan.equipment.*.uavcan 2015-02-03 14:35:53 +03:00
Pavel Kirienko af1d0d3554 Renamed field in BatteryInfo 2015-02-03 12:55:36 +03:00
Lorenz Meier 7719f7692a Fix include paths (remove double slashes) for lib 2015-01-22 09:22:15 +01:00
Pavel Kirienko 3240c5dd03 Power messages restructured 2015-01-21 22:24:54 +03:00
Pavel Kirienko 3026289430 Fixed temperature units - K, not degC 2015-01-21 22:19:27 +03:00
Pavel Kirienko 8966f97013 Fixes #10 2015-01-19 16:22:22 +03:00
Pavel Kirienko 632b668d44 Fixes #9 2015-01-19 16:17:43 +03:00
Pavel Kirienko c9227cf6d2 Runtime check in linked list insert() 2015-01-18 01:34:16 +03:00
Pavel Kirienko 8a5d001e29 Linked list: optimized insertBefore(), elaborated docs 2015-01-18 01:20:56 +03:00
Pavel Kirienko 5209806304 GetTransportStats - 48-bit fields 2015-01-14 17:23:05 +03:00
Pavel Kirienko 20439bb397 Experimental optimization of the bit copy algorithm with special cases 2015-01-11 04:35:03 +03:00
Pavel Kirienko 21c07b90a5 Separated bit array copy algorithms - aligned to unaligned and vice versa. 2015-01-11 03:46:25 +03:00
Pavel Kirienko c1fac577f3 Merge branch 'master' of https://github.com/UAVCAN/uavcan 2015-01-10 20:13:22 +03:00
Pavel Kirienko 7b7286b9ca HardwareVersion extended with 255-byte COA field 2015-01-10 20:12:48 +03:00
Pavel Kirienko 5399976af4 Rename 256.Ahrs.uavcan to 256.AHRS.uavcan
According to the data type naming conventions
2015-01-10 18:10:25 +03:00
Pavel Kirienko c4c45b995f STM32 driver -Wundef fix 2015-01-10 01:52:25 +03:00
Pavel Kirienko 53ee643480 lpc11c24 driver -Wundef fixes 2015-01-10 01:22:55 +03:00
Pavel Kirienko 6ea66c045c libuavcan now compiles warning-free with -Wundef 2015-01-10 01:15:25 +03:00
Pavel Kirienko 7d23c7be80 uavcan.equipment.gimbal.GeoPOICommand update 2014-12-27 14:15:40 +03:00
Pavel Kirienko a31eb4ec82 RTCMStream message update 2014-12-27 14:00:20 +03:00
Pavel Kirienko 2a77569d8f uavcan.protocol.file.* doc fixes 2014-12-27 13:57:18 +03:00
Pavel Kirienko 6a19364898 Doc typos 2014-12-21 20:51:44 +03:00
Pavel Kirienko eda4f4b879 With 2074a3e145 2014-12-12 17:45:54 +03:00
Pavel Kirienko 1efd244275 Copyright fix 2014-12-05 15:38:59 +03:00
Pavel Kirienko a0867cf860 Merge pull request #7 from UAVenture/make-fix
Trailing slashes in included makefiles break build under OS X
2014-12-01 23:04:15 +03:00
Andreas Antener 2074a3e145 remove slashes for building (os x issue?) 2014-12-01 20:36:59 +01:00
Pavel Kirienko 112f87f13f REAME update 2014-11-04 04:24:32 +03:00
Pavel Kirienko 1f36c92f82 Removed an unused template parameter in Array<>::packSquareMatrixImpl<>() 2014-11-04 04:20:33 +03:00
Pavel Kirienko f97b21c89e uncrustify config moved to https://github.com/Zubax/zubax_style_guide 2014-11-02 22:19:17 +03:00
Pavel Kirienko 4de0338824 ESC messages update 2014-10-09 10:14:26 +04:00
Pavel Kirienko 01d5bb242a Warning fixes 2014-10-08 17:39:45 +04:00
Pavel Kirienko ae81d9d8d9 BatteryStatus STATUS_MASK_ERROR 2014-10-08 17:28:31 +04:00
Pavel Kirienko 1fc60c4557 AltitudeAGL moved to range_sensor 2014-10-08 17:25:34 +04:00
Pavel Kirienko 5136eaad42 Removed some types from uavcan.nav.*, will be re-added later when properly specified 2014-10-08 17:24:04 +04:00
Pavel Kirienko 8836c1d84e Merge branch 'master' of https://github.com/pavel-kirienko/uavcan 2014-10-05 03:10:50 +04:00
Pavel Kirienko e9fdabe278 A minor style fix - typename instead of class in a template 2014-10-05 03:10:10 +04:00
Pavel Kirienko f134b81300 Update README.md 2014-09-23 00:21:17 +04:00
Pavel Kirienko 9542acabeb Update README.md 2014-09-19 02:53:30 +04:00
Pavel Kirienko 66c70fc2d3 uavcan_nodetool - fixed node name 2014-09-13 19:15:45 +04:00
Pavel Kirienko cf087cf05a uavcan_status_monitor - running in passive mode 2014-09-13 19:14:53 +04:00
Pavel Kirienko ca16ab038d Much improved uavcan_nodetool 2014-09-13 18:56:15 +04:00
Pavel Kirienko 704f89ce07 Rearranged Linux tests 2014-09-13 17:59:31 +04:00
Pavel Kirienko 07f60b4aab gitignore 2014-09-10 14:14:31 +04:00
Pavel Kirienko deaff8323e STM32/LPC11C24 examples: branding 2014-09-10 14:13:41 +04:00
Pavel Kirienko 8ecdd6586a Linux test - nodetool - enumeration support 2014-09-06 04:39:11 +04:00
Pavel Kirienko 286adbcc56 GNSS fix message update 2014-09-03 21:41:27 +04:00
Pavel Kirienko c4c14c60fb areFloatsClose() - two last params can be passed by ref 2014-08-29 03:27:37 +04:00
Pavel Kirienko 287079e642 Dispatcher: Access methods for the listener lists 2014-08-29 03:14:55 +04:00
Pavel Kirienko 4755130311 LPC11C24 warnings 2014-08-29 02:20:08 +04:00
Pavel Kirienko 8b73a68de8 areClose() tests and docs 2014-08-29 01:25:55 +04:00
Pavel Kirienko d4019da5ff Array fuzzy comparison test 2014-08-28 23:33:39 +04:00
Pavel Kirienko 28d21a4e1b Smaller SizeType for static Array<>s 2014-08-28 23:27:05 +04:00
Pavel Kirienko 9d806c2be6 areClose(), isClose() 2014-08-28 20:25:27 +04:00
Pavel Kirienko f255a725c1 Added IntToType<> 2014-08-28 18:46:35 +04:00
Pavel Kirienko 0bfd5a95df LPC11C24 warning fixes 2014-08-28 17:43:12 +04:00
Pavel Kirienko 8a8bb78d38 More warning fixes in the STM32 drvier, STM32 test project and the library core 2014-08-28 17:28:44 +04:00
Pavel Kirienko acf45e3e6b Using custom RemoveReference instead of relying on the standard library 2014-08-28 16:37:32 +04:00
Pavel Kirienko 62db10d9aa More warnings 2014-08-28 16:31:22 +04:00
Pavel Kirienko 128a8bad1c Warning fixes 2014-08-28 16:09:21 +04:00
Pavel Kirienko b09bfab117 Strict warnings in the unit tests. This commit needs to be carefully reviewed. 2014-08-28 04:54:59 +04:00
Pavel Kirienko d9d6e80aea Strict sign conversions 2014-08-28 02:51:29 +04:00
Pavel Kirienko 4cc7dfb2d4 Float classification test 2014-08-28 01:40:29 +04:00
Pavel Kirienko 8240c7962b Extra warnings for the debug build: -Wfloat-equal -Wconversion. The code was fixed accordingly. No broken tests. 2014-08-28 01:33:27 +04:00
Pavel Kirienko 61c4f89ea3 Using proper float comparison everywhere 2014-08-27 19:13:45 +04:00
Pavel Kirienko 6446d05446 Floating point comparison routines 2014-08-27 17:57:10 +04:00
Pavel Kirienko dca96fd21d libuavcan: Extended numeric traits 2014-08-27 15:58:28 +04:00
Pavel Kirienko c7872def16 NodeStatus timing constant updates 2014-08-24 19:44:04 +04:00
Pavel Kirienko 6e3627dda8 libuavcan: Convenience method NodeStatusProvider::setStatusPublishingPeriod() 2014-08-24 19:11:14 +04:00
Pavel Kirienko 75153eb643 dsdlc: Fixed deoendency include order 2014-08-24 16:31:17 +04:00
Pavel Kirienko 5bfa1999f4 dsdlc/pyuavcan: nicer path formatting 2014-08-24 15:33:43 +04:00
Pavel Kirienko 6c070852d7 StaticAirData - timestamp removed 2014-08-22 19:59:31 +04:00
Pavel Kirienko 69362db0c8 uavcan.equipment.airdata --> air_data 2014-08-22 15:57:38 +04:00
Pavel Kirienko 446577e4fb Test update 2014-08-21 23:22:12 +04:00
Pavel Kirienko 4773bb10f3 Message refactoring 2014-08-21 23:17:11 +04:00
Pavel Kirienko d87a0fd4df Message review; FOM removed 2014-08-21 23:10:12 +04:00
Pavel Kirienko f809a9c4a3 Messages review 2014-08-20 23:05:56 +04:00
Pavel Kirienko 361454efa3 Reorganized actuator control messages 2014-08-19 21:56:34 +04:00
Pavel Kirienko d816d58b30 CharArrayFormatter: using %g instead of %f for better readability 2014-08-16 13:43:24 +04:00
Pavel Kirienko e2e358bb06 Possible name clashing fix in uavcan::ReceivedDataStructure<> 2014-08-11 13:32:52 +04:00
Pavel Kirienko da62126ca2 libuavcan build: cppcheck made optional 2014-08-10 22:29:49 +04:00
Pavel Kirienko 481086f2c7 ComponentStatusManager UAVCAN_EXPORT 2014-08-10 22:00:23 +04:00
Pavel Kirienko 03ad07d43f OStream UAVCAN_EXPORT 2014-08-10 21:59:14 +04:00
Pavel Kirienko 5405f244b3 OStream operators made inline 2014-08-10 21:58:10 +04:00
Pavel Kirienko 93e84ab56c OStream helper class 2014-08-10 21:36:56 +04:00
Pavel Kirienko c32260137c vcan init script update 2014-08-10 20:50:54 +04:00
Pavel Kirienko 6c23d7feee TODO cleanup 2014-08-09 11:43:38 +04:00
Pavel Kirienko 8d306a90b8 Merge branch 'master' of https://github.com/pavel-kirienko/uavcan 2014-08-07 21:02:00 +04:00
Pavel Kirienko 731a4ae42b README update 2014-08-07 21:01:44 +04:00
Pavel Kirienko b90fdf9f7d libuavcan unit test fix 2014-08-03 15:28:09 +04:00
Pavel Kirienko 6c972e6ba5 cppcheck warning suppressions 2014-08-03 14:27:33 +04:00
Pavel Kirienko 63843285a0 libuavcan cppcheck definitions 2014-08-03 14:10:58 +04:00
Pavel Kirienko f40f00c0c7 cppcheck false positive suppression 2014-08-03 14:04:04 +04:00
Pavel Kirienko f2e028715a libuavcan test: removed unused local type declarations 2014-08-03 14:01:56 +04:00
Pavel Kirienko c3bed4c825 libuavcan DSDLC template: suffix ULL instead of UL for 64-bit unsigned integers 2014-08-03 13:47:33 +04:00
Pavel Kirienko dd5a070bc6 STM32: Added TODO in the example app 2014-08-02 13:51:45 +04:00
Pavel Kirienko 16a555e571 LPC11C24: Watchdog 2014-08-02 13:46:45 +04:00
Pavel Kirienko 1a0caeb723 LPC11C24: extended hardware and software version info 2014-08-02 12:54:34 +04:00
Pavel Kirienko 6980ee8240 HardwareVersion extended with UDID 2014-07-30 19:56:37 +04:00
Pavel Kirienko 236df482f7 Clarified docs for UAVCAN_CPP_VERSION 2014-07-28 01:35:30 +04:00
Pavel Kirienko 8e5a5e02be Remove misleading doc comment 2014-07-28 01:16:27 +04:00
Pavel Kirienko 7b47b84c8e DSDL: uavcan.equipment.camera.* removed 2014-07-27 17:31:52 +04:00
Pavel Kirienko 70441d0ea6 DSDL cleanup 2014-07-27 17:31:20 +04:00
Pavel Kirienko a9e70a97a3 Typo 2014-07-27 17:16:17 +04:00
Pavel Kirienko d3bde9bcf9 Timer API doc clarification 2014-07-26 02:06:59 +04:00
Pavel Kirienko 50b46ae927 Timer API doc clarification 2014-07-26 01:58:51 +04:00
Pavel Kirienko 86dc2b6edb Remove irrelevant comment from DSDLC package 2014-07-25 14:35:31 +04:00
Pavel Kirienko d84fc8a846 Standard data type renamed Aux --> Auxiliary because windoze 2014-07-25 02:10:12 +04:00
Pavel Kirienko f51ee9cdec DSDLC compiler fix for Windows - libuavcan_dsdl_compiler.pretty_filename() 2014-07-25 00:48:45 +04:00
Pavel Kirienko c0d3b3f2b0 DSDLC fix for Windows 2014-07-25 00:34:38 +04:00
Pavel Kirienko 3a70b17b1d Release builds without -Werror -pedantinc. Strict compilation warnings shall only be enforced for debug builds. 2014-07-24 23:41:00 +04:00
Pavel Kirienko 4e472ed1b4 LPC11C24: WFE disabled by default 2014-07-24 19:07:40 +04:00
Pavel Kirienko d5e7b277f2 STM32 test: simplified makefile 2014-07-24 13:40:01 +04:00
Pavel Kirienko 126e84a38b Removed TODOs from stm32 and lpc11 makefiles 2014-07-24 13:16:36 +04:00
Pavel Kirienko 75090d6168 Remove messages uavcan.equipment.rotor.* 2014-07-23 20:05:08 +04:00
Pavel Kirienko 99b7aa8579 Properly handling the initial node status broadcast in passive mode 2014-07-23 03:17:11 +04:00
Pavel Kirienko 43c5d2e090 BatteryStatus message doc fix 2014-07-22 19:54:43 +04:00
Pavel Kirienko 046c9559d1 Gimbal status messageupdate 2014-07-22 15:08:12 +04:00
Pavel Kirienko 35b7ae180b Power messages update 2014-07-22 15:01:34 +04:00
Pavel Kirienko dca2611c31 Libuavcan DSDL compiler: Speed optimization - full generation takes less than a second (way faster than Mako) 2014-07-22 02:53:07 +04:00
Pavel Kirienko 5d7666f059 Libuavcan DSDL compiler: Using the built-in Pyratemp instead of Mako, so virtually we don't need any 3rd party dependencies anymore 2014-07-22 02:37:21 +04:00
Pavel Kirienko 137a2f36d8 Refactored uavcan.protocol.SoftwareVersion 2014-07-21 16:31:17 +04:00
Pavel Kirienko 4d554116d8 GetNodeInfo - UAVCAN stack version removed 2014-07-21 15:57:38 +04:00
Pavel Kirienko 767462c992 Firmware update clarifications 2014-07-18 17:31:59 +04:00
Pavel Kirienko e1eb7554cf libuavcan: impl_constants.hpp renamed to build_config.hpp 2014-07-16 19:56:34 +04:00
Pavel Kirienko 23178da7af libuavcan: Coverity false positive suppression 2014-07-15 22:40:34 +04:00
Pavel Kirienko efd3f23eb1 STM32 doc comments 2014-07-15 15:34:56 +04:00
Pavel Kirienko e42da1f9ae LPC11C24 doc comments 2014-07-15 15:24:29 +04:00
Pavel Kirienko 1cfd2a2f84 STM32 doc comments 2014-07-15 15:19:49 +04:00
Pavel Kirienko 9d36eef359 Fixed timeouts in uavcan_linux::BlockingServiceClient 2014-07-15 14:18:22 +04:00
Pavel Kirienko 476d8b8513 libuavcan docs 2014-07-15 14:11:06 +04:00
Pavel Kirienko c31d41c9c8 libuavcan: Proper passive mode handling 2014-07-15 01:03:41 +04:00
Pavel Kirienko abaaf8d440 Properly handling passive mode in NodeStatusProvider 2014-07-15 00:54:35 +04:00
Pavel Kirienko 90702b5795 libuavcan: Enforcing constant node name and version information 2014-07-15 00:47:47 +04:00
Pavel Kirienko 93a5755dec Added clarifications for the type GetNodeInfo 2014-07-15 00:47:17 +04:00
Pavel Kirienko 31642c6963 libuavcan doc clarification 2014-07-14 22:35:57 +04:00
Pavel Kirienko ce6d4b4a31 Typo 2014-07-14 22:28:56 +04:00
Pavel Kirienko e5ca1f7379 libuavcan documentation 2014-07-14 22:22:18 +04:00
Pavel Kirienko ee4c191684 EnumerationRequest message 2014-07-12 19:29:16 +04:00
Pavel Kirienko af065e9ca9 libuavcan STM32 driver: UAVCAN_ASSERT() instead of assert() (autoreplace) 2014-07-12 17:18:59 +04:00
Pavel Kirienko 530242819d libuavcan core now uses UAVCAN_ASSERT() instead of assert() (autoreplace) 2014-07-12 17:17:09 +04:00
Pavel Kirienko cf19d86842 Macro UAVCAN_ASSERT() instead of assert() (not used yet, see the next commit) 2014-07-12 17:16:44 +04:00
Pavel Kirienko 1042d09de5 libuavcan default publisher TX timeout - 10 milliseconds 2014-07-12 16:54:15 +04:00
Pavel Kirienko c9c9a16e94 libuavcan passive mode support 2014-07-12 16:52:17 +04:00
Pavel Kirienko 93f861ad60 README update 2014-07-12 02:12:58 +04:00
Pavel Kirienko b060cf7e0d Refined pyuavcan docs 2014-07-11 19:13:41 +04:00
Pavel Kirienko 26147880a6 Using default Python version in pyuavcan/setup.py 2014-07-11 19:06:59 +04:00
Pavel Kirienko 975a11566d libuavcan_dsdlc docstrings 2014-07-11 19:02:57 +04:00
Pavel Kirienko 7c8f08b0d0 Explicitly stating the supported Pyhton versions 2014-07-11 18:54:40 +04:00
Pavel Kirienko e55dd01184 pyuavcan docstring formatting 2014-07-11 18:49:59 +04:00
Pavel Kirienko 907a797a54 Clarified help for libuavcan_dsdlc 2014-07-11 15:33:52 +04:00
Pavel Kirienko 4fd4e217e1 pyuavcan docstrings 2014-07-11 15:28:36 +04:00
Pavel Kirienko dc347f658b SocketCAN driver: Node::getDriverPack() 2014-07-09 12:19:40 +04:00
Pavel Kirienko f66c1a7de3 Comments for uavcan.equipment.PerformAutomaticSelfTest and PerformAutomaticCalibration 2014-07-08 19:04:51 +04:00
Pavel Kirienko 7d7e6b69fa Updated comment for uavcan.protocol.NodeStatus 2014-07-07 15:36:51 +04:00
Pavel Kirienko 55f2cc9e54 Test update 2014-07-07 15:35:07 +04:00
Pavel Kirienko a40fde6a0a GNSS message update 2014-07-07 15:30:11 +04:00
Pavel Kirienko 771623e056 Added specialization for CompileTimeIntSqrt<> 2014-07-05 14:30:38 +04:00
Pavel Kirienko fc298d19d1 Standard data type renamed 2014-07-05 14:20:09 +04:00
Pavel Kirienko e9f21773fa Reorganized message IDs 2014-07-05 14:13:46 +04:00
Pavel Kirienko 75c285c6c2 Camera CaptureSettings update 2014-07-05 13:52:17 +04:00
Pavel Kirienko d9ed0c3926 LightsCommand message - array length reduced to 15 2014-07-03 22:26:44 +04:00
Pavel Kirienko 3e452ea112 ESC status message - renamed field power_rating_pct 2014-07-03 19:41:56 +04:00
Pavel Kirienko 88bc1520c1 ESC status message update 2014-07-03 15:25:07 +04:00
Pavel Kirienko 154dcd105c In-place matrix packing 2014-07-03 12:56:33 +04:00
Pavel Kirienko 4098d8694d Explicitly unsigned literals 2014-06-16 11:25:26 +04:00
Pavel Kirienko 95cdeff49e Explicit cast in transport CRC computer 2014-06-16 11:22:21 +04:00
Pavel Kirienko ff7481334a Python 2.7 compatibility 2014-06-16 00:48:47 +04:00
Pavel Kirienko 7dbba5887a Ignoring .pyc files 2014-06-16 00:43:48 +04:00
Pavel Kirienko 0c1ecc0caa NetworkCompatibilityChecker: num_failed_nodes moved to NetworkCompatibilityCheckResult 2014-06-15 22:27:16 +04:00
Pavel Kirienko 163c3e0791 DSDL parser: Support for ASCII character literals 2014-06-15 22:25:46 +04:00
Pavel Kirienko 2337a5d547 File IO services 2014-06-15 21:10:36 +04:00
Pavel Kirienko 518e105809 NetworkCompatChecker can tolerate no-response from CATS service. This allows nodes to not implement services at all while being UAVCAN compatible. 2014-06-14 12:38:50 +04:00
Pavel Kirienko ce023d14c8 Modified GNSS Aux message: wider bitfields for sat count, extra flag for diff mode 2014-06-11 00:58:25 +04:00
Pavel Kirienko 7c8b2fac61 Modified GNSS Fix message: added pdop, 8-bit alignment 2014-06-11 00:52:11 +04:00
Pavel Kirienko a11f1b4192 New data types: uavcan.nav.* 2014-06-11 00:43:46 +04:00
Pavel Kirienko 5bd787cce0 DSDL definitions: gnss.Fix got 5 bits for sats_used field 2014-06-09 20:33:22 +04:00
Pavel Kirienko da3a361840 Optimized gimbal status message 2014-05-29 16:42:43 +04:00
Pavel Kirienko ab1851d00e uavcan.equipment.gnss.RTCMStream moved to ID 745 2014-05-29 12:32:50 +04:00
Pavel Kirienko 305301ec1e pyuavcan.dsdl.parse_namespaces() - search dirs are optional 2014-05-28 20:53:02 +04:00
Pavel Kirienko 2ef80bc853 Merge branch 'master' of https://github.com/pavel-kirienko/uavcan 2014-05-17 18:37:57 +04:00
Pavel Kirienko d4743555ba Readme update 2014-05-17 18:37:39 +04:00
Lorenz Meier 01ccf55e5a Removed non-POSIX tempfile command, using a hardcoded filename instead 2014-05-09 13:37:26 +02:00
Pavel Kirienko 6329351098 LPC11C24 test app: non mandatory preprocessor symbols removed 2014-05-09 02:50:16 +04:00
Pavel Kirienko eeb8b84215 STM32: Refactored driver; NuttX CPU ussage dropped to 7% 2014-05-09 02:17:27 +04:00
Pavel Kirienko e260fc2ccd STM32: SCE interrupt removed, error handling moved to RX/TX interrupts. This reduced CPU load on NuttX from 18% to 12% (with two active interfaces, only one connected to the bus) 2014-05-09 00:42:04 +04:00
Pavel Kirienko 6be5246101 STM32: Implemented event device /dev/uavcan/busevent for multiplexing via poll() 2014-05-08 16:45:49 +04:00
Pavel Kirienko 09ac68bffd STM32: Proper semaphore destruction in NuttX driver 2014-05-08 11:37:45 +04:00
Pavel Kirienko 7f6ef17b18 Typo 2014-05-08 00:38:23 +04:00
Pavel Kirienko 3a90bbfa5e STM32: Logging in CAN driver disabled 2014-05-08 00:11:37 +04:00
Pavel Kirienko 44d9764334 STM32: Unused function in CAN driver 2014-05-07 23:47:27 +04:00
Pavel Kirienko 44516c2cbe Typo 2014-05-07 22:33:48 +04:00
Pavel Kirienko 7d2fccff77 STM32: Proper critical in CAN driver initialization 2014-05-07 19:32:44 +04:00
Pavel Kirienko cbf5450164 Automatic defaults for MemPoolBlockSize 2014-05-07 14:13:49 +04:00
Pavel Kirienko 72c89a1e0f Autodetect for UAVCAN_TOSTRING default value 2014-05-07 14:04:31 +04:00
Pavel Kirienko fe16649de3 STM32 CAN driver fix 2014-05-06 22:36:34 +04:00
Pavel Kirienko 6e8cad20c6 STM32 NuttX support. Doesn't work though, hardfaults in IRQ handler. 2014-05-06 18:27:04 +04:00
Pavel Kirienko 87402b9701 Sign compare fix 2014-05-06 02:28:42 +04:00
Pavel Kirienko 0a9169fe87 Forgotten <cstddef> in templates.hpp 2014-05-05 22:06:37 +04:00
Pavel Kirienko b2e942c7f9 Shadowed variable fix 2014-05-05 21:59:37 +04:00
Pavel Kirienko 4361703f07 .gitignore update 2014-05-05 21:55:52 +04:00
Pavel Kirienko c3cae8d8ad Workaround for broken C++ stdlibs (NuttX) 2014-05-05 21:25:36 +04:00
Pavel Kirienko ca96854332 Fixed include: <cstdio> for snprintf() in time.hpp 2014-05-05 21:22:22 +04:00
Pavel Kirienko 2b14328787 Style fix, UAVCAN_CPP_VERSION made optional 2014-05-05 20:14:57 +04:00
Pavel Kirienko 581ee43231 UAVCAN_IMPLEMENT_PLACEMENT_NEW 2014-05-05 19:28:28 +04:00
Pavel Kirienko 8c8732d051 Collateral fixes 2014-05-05 16:15:22 +04:00
Pavel Kirienko 17ac1f7f6b NumericTraits<> specialized for basic types instead of std integer typedefs 2014-05-05 16:07:11 +04:00
Pavel Kirienko 08cea4aacd <limits> from STL is not required 2014-05-05 15:51:49 +04:00
Pavel Kirienko 1a9e1d8202 Fixed tests 2014-05-05 14:23:14 +04:00
Pavel Kirienko ad3c0af324 Some headers moved to util/ (map, bitset, linked_list); compile_time.hpp renamed to templates.hpp 2014-05-05 14:17:04 +04:00
Pavel Kirienko 74a7ff6a82 Fixed possible ADL issue in the Array template 2014-05-04 23:15:14 +04:00
Pavel Kirienko 7608e4ca08 Functions from <algorithm> reimplemented in libuavcan 2014-05-04 23:13:38 +04:00
Pavel Kirienko cf3d6e2c08 UAVCAN_EXPORT for BitSet<> 2014-05-04 21:28:27 +04:00
Pavel Kirienko 0db43b6489 Partially removed all references to STL's algorithm. <algorithm> is not included anywhere, though still used in several places which still alows the code to compile as <algorithm> is being pulled in from some other standard headers. 2014-05-04 21:22:18 +04:00
Pavel Kirienko d0c2898def std::bitset<> replaced with BitSet<>; stdexcept is not included unless exceptions are enabled 2014-05-04 20:49:58 +04:00
Pavel Kirienko 9b465a0959 Renamed StartHilSimulation service 2014-05-04 18:17:46 +04:00
Pavel Kirienko bedc6bbc8a DSDL messages in uavcan.equpment.* 2014-04-30 14:18:03 +04:00
Pavel Kirienko ea19fea568 uavcan_linux::Node::makeBlockingServiceClient() 2014-04-29 13:59:11 +04:00
Pavel Kirienko 5d272ca410 Linux test: Hardpoint control from nodetool 2014-04-29 13:51:30 +04:00
Pavel Kirienko 6d39793855 STM32: IRQ definitions fix 2014-04-29 13:50:54 +04:00
Pavel Kirienko d4689c1616 Hardpoint DSDL types 2014-04-28 23:36:07 +04:00
Pavel Kirienko ae4acbcd12 Refactored nodetool 2014-04-28 14:26:56 +04:00
Pavel Kirienko 4a2df2975a Linux: New test util 2014-04-28 01:51:13 +04:00
Pavel Kirienko ae26afdc9f Blocking service caller 2014-04-28 00:33:08 +04:00
Pavel Kirienko 4f544f28b7 Service caller: Server Node ID validation before call 2014-04-27 22:49:22 +04:00
Pavel Kirienko 0e93ea6940 STM32: Dramatically improved clock synchronization 2014-04-27 20:57:56 +04:00
Pavel Kirienko 6815e5c755 STM32: Removed debug code 2014-04-26 23:47:39 +04:00
Pavel Kirienko 4a761b44bb STM32 clock sync defaults 2014-04-26 19:40:36 +04:00
Pavel Kirienko 803222dcc3 STM32: New clock sync algorithm 2014-04-26 17:48:42 +04:00
Pavel Kirienko 430776469f STM32: Clock speed PPM limit 2014-04-25 15:23:22 +04:00
Pavel Kirienko 32671fe574 Somewhat improved clock sync stability (the algorithm still has to be reimplemented from scratch) 2014-04-25 10:45:39 +04:00
Pavel Kirienko f28b00c5db Renamed clock::setMinJump() 2014-04-24 23:48:25 +04:00
Pavel Kirienko 5a01135970 STM32, LPC11C24: Default min jump set to 10 ms 2014-04-24 14:46:37 +04:00
Pavel Kirienko 95363908bf STM32: clock::setMinJump(..) 2014-04-24 14:14:47 +04:00
Pavel Kirienko 4defcde10b ComponentStatusManager<> 2014-04-23 13:38:56 +04:00
Pavel Kirienko 9597dc4ddb crdr_chibios followup 2014-04-20 23:40:53 +04:00
Pavel Kirienko f155702008 Data type registrator went the same way - using plain statics instead of in-place allocation at first call. For code size critical applications, GCC flag -fno-threadsafe-statics should be used 2014-04-20 23:40:32 +04:00
Pavel Kirienko 7a02960401 Good old GDTR singleton re-implemented via static local again, because previous implementation could cause undefined behavior as GDTR could be initialized after static type registrators that use it 2014-04-20 23:14:02 +04:00
Pavel Kirienko afc56cf87b GDTR list integrity check (debug builds only) 2014-04-20 21:36:01 +04:00
Pavel Kirienko 5cd0aff0d3 GDTR list integrity check (debug builds only) 2014-04-20 21:33:51 +04:00
Pavel Kirienko b7b53630d1 Linux driver: verbose exception with error code 2014-04-20 20:45:26 +04:00
Pavel Kirienko 0fd24fd6b0 Braces in complex boolean condition to suppress false positive from the static analyzer 2014-04-19 22:55:57 +04:00
Pavel Kirienko 5fcfd7726b Removed unused constant ErrOk 2014-04-19 22:29:40 +04:00
Pavel Kirienko 0440aa844d DSDL signature in generated types is upper case 2014-04-19 22:15:26 +04:00
Pavel Kirienko e3aa0d91c8 Minor style fixes in Linux tests 2014-04-19 19:27:17 +04:00
Pavel Kirienko f8883e0bb2 Fixed memory leak in CanIOManager test 2014-04-19 19:13:52 +04:00
Pavel Kirienko ddcedfd9d0 Fixed sizeof(ptr) in test (detected by clang static analyzer) 2014-04-19 19:05:34 +04:00
Pavel Kirienko c1be9f1fef Explicit virtual keyword 2014-04-19 18:51:36 +04:00
Pavel Kirienko f31d46ea6c Explicit void cast for unused return values 2014-04-19 17:45:03 +04:00
Pavel Kirienko b2c021397d Linked list test fix 2014-04-19 17:18:51 +04:00
Pavel Kirienko 4e39fc61d9 LinkedListRoot<>::remove() does not return anything, as it was not used anyway 2014-04-19 17:13:44 +04:00
Pavel Kirienko 3eec1e18c3 Include order fix 2014-04-19 17:03:16 +04:00
Pavel Kirienko 4112c949fc strcmp() --> strncmp() 2014-04-19 16:50:43 +04:00
Pavel Kirienko acff3d274c Null pointer checks 2014-04-19 16:47:14 +04:00
Pavel Kirienko efb2251ef8 strcmp() --> strncmp() 2014-04-19 16:42:39 +04:00
Pavel Kirienko 799846de02 Scope hiding fixes 2014-04-19 16:32:42 +04:00
Pavel Kirienko c4c77ea321 Fixed typedef reuse 2014-04-19 15:52:17 +04:00
Pavel Kirienko 2eb15268f7 Stupid condition swap to eliminate a false positive from static analyzer 2014-04-19 15:30:30 +04:00
Pavel Kirienko 6aa9bd0c41 Removed enum constants from generated types 2014-04-19 15:26:39 +04:00
Pavel Kirienko dfe3b4511e Most enums were replaced with constants, according to MISRA 2014-04-19 15:16:10 +04:00
Pavel Kirienko ace2cf9d0e Error codes are constants, not enum. That fixes another MISRA violation. 2014-04-19 14:13:55 +04:00
Pavel Kirienko 519532da14 Fixed undefined behavior 2014-04-19 13:57:10 +04:00
Pavel Kirienko dfc69b4b5f Destructor fixes 2014-04-18 23:44:31 +04:00
Pavel Kirienko 707c3e3ed1 All literal suffixes are upper case (U, L, F) 2014-04-18 22:10:59 +04:00
Pavel Kirienko b3769c9cb3 Removed forward declarations (not compatible with MISRA) 2014-04-18 21:14:17 +04:00
Pavel Kirienko ed2ad4b4c9 Coding style fix in DSDL header template 2014-04-18 20:23:34 +04:00
Pavel Kirienko c9ede31d56 U suffix for unsigned constants 2014-04-18 20:17:54 +04:00
Pavel Kirienko fd71f55933 Control flow/braces fixes 2014-04-18 19:55:51 +04:00
Pavel Kirienko 1853f5c73c Explicit constructors 2014-04-18 19:37:08 +04:00
Pavel Kirienko febc3ed870 Virtual call screwup fix 2014-04-18 18:57:54 +04:00
Pavel Kirienko bfe1447426 Fixes suggested by static analyzer 2014-04-18 18:46:47 +04:00
Pavel Kirienko 1bac8d6561 Fixed unused variables in generated code 2014-04-18 18:21:03 +04:00
Pavel Kirienko fe2b49b1ab #undef in generated headers moved into the global scope 2014-04-18 18:05:24 +04:00
Pavel Kirienko d1d42e83a7 Added script to generate SciTols Understand project file using buildspy 2014-04-18 16:58:18 +04:00
Pavel Kirienko 9a04bc6dbc SciTools Understand warning fixes 2014-04-18 16:32:20 +04:00
Pavel Kirienko b7cf443418 Coverity annotation fixes 2014-04-18 15:56:22 +04:00
Pavel Kirienko 189760f662 Uncrustify config moved into tools/ 2014-04-18 15:17:53 +04:00
Pavel Kirienko b5f67403dd Coverity scan code annotations and modeling file 2014-04-18 15:16:22 +04:00
Pavel Kirienko c17a2bbd5b Fixed Linux driver: SocketCan driver adds time offset from the provided clock instance, which fixes time synchronization in PerDriverPrivate clock adjustment mode 2014-04-17 16:14:39 +04:00
Pavel Kirienko bd27ab02ac #ifdef for GCC-specific attribute 2014-04-17 15:52:20 +04:00
Pavel Kirienko 3acf0be231 LPC11C24: Removed compiler-dependent code 2014-04-17 12:53:50 +04:00
Pavel Kirienko 32474838c0 LPC11C24: Fixed undefined behavior in clock driver 2014-04-17 12:50:24 +04:00
Pavel Kirienko 03ff492bc4 More compliance fixes 2014-04-17 12:23:31 +04:00
Pavel Kirienko cff3a24883 C++ compliance fixes 2014-04-17 12:05:02 +04:00
Pavel Kirienko c772cea438 Typos in Linux driver 2014-04-16 23:07:25 +04:00
Pavel Kirienko 507e395672 LPC11C24 test: Optimized logging 2014-04-16 22:56:47 +04:00
Pavel Kirienko 77ca59a2ad LPC11C24 test: Added time sync slave and logging 2014-04-16 22:35:03 +04:00
Pavel Kirienko 87e89fc042 Heavy optimizations for ROM/RAM usage in UAVCAN_TINY mode 2014-04-16 21:11:42 +04:00
Pavel Kirienko 4085613d00 Support for zero static buffers 2014-04-16 20:25:37 +04:00
Pavel Kirienko 85c176cb60 Preprocessor symbol UAVCAN_LPC11C24_NO_WFE to disable WFE in select() 2014-04-16 19:20:15 +04:00
Pavel Kirienko 091356c1ba LPC11C24: Reduced RX queue len 2014-04-16 19:15:52 +04:00
Pavel Kirienko 3c2c623c08 LPC11C24: Added some fancy GCC flags 2014-04-16 19:03:23 +04:00
Pavel Kirienko 698a3ad325 LPC11C24: Enabled LTO; binary size 26.6k 2014-04-16 18:57:59 +04:00
Pavel Kirienko 65c6fdf396 Disabled optimization in crt0 to avoid optimization errors on the naked function (anyway there's nothing to optimize) 2014-04-16 18:47:32 +04:00
Pavel Kirienko b18daa070b UAVCAN_TINY does not support GTSM, NCC, TSP - saves ~900 bytes 2014-04-16 17:27:46 +04:00
Pavel Kirienko a298ad9ba2 Transport CRC will not use table in UAVCAN_TINY builds 2014-04-16 17:19:05 +04:00
Pavel Kirienko f8b10ab003 Shorter error strings - saves ~200 bytes 2014-04-16 16:59:58 +04:00
Pavel Kirienko 97cb814ffd LPC11C24: Added node status init 2014-04-16 15:09:32 +04:00
Pavel Kirienko 5926e3dd45 LPC11C24: Fixed TX priority inversion in CAN driver 2014-04-16 15:02:45 +04:00
Pavel Kirienko c114ce8c99 LPC11C24: Default RX queue len reduced to 10 items 2014-04-16 14:10:19 +04:00
Pavel Kirienko 13e8fdbdc8 LPC11C24: Minor fixes in CAN driver 2014-04-16 13:59:37 +04:00
Pavel Kirienko 58636c780c LPC11C24: Simple UAVCAN node. Does nothing. There's some problem with TX reordering, it was solved temporarily by setting number of TX slots to one. 2014-04-16 13:53:30 +04:00
Pavel Kirienko e934f54c9f LPC11C24: LD script: Implicit function alignment - saves 900 bytes of code for this test 2014-04-16 13:15:21 +04:00
Pavel Kirienko c62b425b31 LPC11C24: LTO requires abort() to be used 2014-04-16 13:09:37 +04:00
Pavel Kirienko 2a03b21aba LPC11C24 superheader 2014-04-16 13:09:03 +04:00
Pavel Kirienko 60947bc9dc LPC11C24: Removed redundant comments 2014-04-16 12:35:50 +04:00
Pavel Kirienko 1e68df6187 LPC11C24 clock driver bug fix: SysTick pending bit is checked in SCB.ICSR, which is the only right way according to the Cortex-M0 manual 2014-04-16 01:16:10 +04:00
Pavel Kirienko a1ea05bdea LPC11C24: select() 2014-04-16 00:05:25 +04:00
Pavel Kirienko 09203aab1d LPC11C24: More complete test 2014-04-15 23:28:01 +04:00
Pavel Kirienko 1c73f4884c LPC11C24 iface activity LED support 2014-04-15 23:11:55 +04:00
Pavel Kirienko 272c05edf1 LPC11C24: __low_init() renamed to commonly known SystemInit() 2014-04-15 22:57:24 +04:00
Pavel Kirienko a392f5c61c LPC11C24: Using --specs=nano.specs (link with small newlib) 2014-04-15 22:17:42 +04:00
Pavel Kirienko e205c2e441 LPC11C24 clock driver. Not well tested yet, but generally seems to be OK 2014-04-15 22:12:19 +04:00
Pavel Kirienko 1f0f6b0899 Misleading comment removed 2014-04-15 21:18:32 +04:00
Pavel Kirienko 6127963db7 LPC11C24: CAN bouncer (test) 2014-04-15 17:22:45 +04:00
Pavel Kirienko 841c581991 LPC11C24: CAN transmission 2014-04-15 17:15:49 +04:00
Pavel Kirienko 03ab77b02f LPC11C24: Building with libuavcan; partially implemented CAN driver (RX only, no timestamping) 2014-04-15 16:50:13 +04:00
Pavel Kirienko a7233c1f17 LPC11C24 linking alignment fix 2014-04-15 16:21:42 +04:00
Pavel Kirienko a4884fc452 LPC11C24: Added abort() stub 2014-04-15 15:44:40 +04:00
Pavel Kirienko 80ebb62b49 Simple C_CAN test on LPC11C24 2014-04-15 11:05:40 +04:00
Pavel Kirienko 38ca53d7d5 LPC11C24: Proper CRT initialization with BSS and constructors. All assembler code was removed. 2014-04-14 23:30:06 +04:00
Pavel Kirienko af2141daaf __start() and main() declared with noreturn attribute 2014-04-14 15:30:20 +04:00
Pavel Kirienko f451aba2c6 LPC11C24: Fixed C++ runtime initialization 2014-04-14 15:28:50 +04:00
Pavel Kirienko 03fc05a456 LPC11C24 test app - does nothing but blinks a LED 2014-04-14 15:03:48 +04:00
Pavel Kirienko c2b878965e DataTypeSignatureCRC - methods moved to .cpp 2014-04-13 00:02:48 +04:00
Pavel Kirienko 627dc5f2d9 UAVCAN_TINY preprocessor option - STM32 test compiles into 41kB in release mode (-Os, LTO) 2014-04-12 23:28:32 +04:00
Pavel Kirienko bbbcf97cae STM32 test - typo 2014-04-12 23:12:11 +04:00
Pavel Kirienko e476a957a8 NetworkCompatibilityChecker will not be executed at each Node<>::start(), there's special method for that - Node<>::checkNetworkCompatibility() 2014-04-12 22:10:26 +04:00
Pavel Kirienko dd5908dad8 Renaming: NodeInitializer --> NetworkCompatibilityChecker 2014-04-12 21:40:30 +04:00
Pavel Kirienko d8c37584c0 STM32: clock sync: Simple PI controller for speed adjustments; converges to +-100 usec in few minutes 2014-04-12 21:21:02 +04:00
Pavel Kirienko 67f92628a8 STM32: optimized clock speed adjustment 2014-04-12 20:29:57 +04:00
Pavel Kirienko 77b1cb1320 STM32 test print 2014-04-12 18:44:16 +04:00
Pavel Kirienko 590634a82c STM32: increased default RX queue size 2014-04-12 18:23:43 +04:00
Pavel Kirienko d801f4a7f3 CAN TX queue quota - limiting max number of memory blocks per TX queue to avoid memory congestion if one iface is down 2014-04-12 18:11:30 +04:00
Pavel Kirienko 3e4234e049 Allocator fixes 2014-04-12 17:50:32 +04:00
Pavel Kirienko 6f1affa51f Pool test 2014-04-12 17:34:16 +04:00
Pavel Kirienko 95d2328a8c Removed debug memset() in pool allocator 2014-04-12 17:18:08 +04:00
Pavel Kirienko 4e7287358a Dynamic memory refactoring: Entire library now uses IPoolAllocator instead of IAllocator, which was removed completely. This change was needed to enable TX queue constraints, see the next commits. 2014-04-12 17:17:06 +04:00
Pavel Kirienko 5808bfc0c9 LimitedPoolAllocator (for TX queue) 2014-04-12 13:40:15 +04:00
Pavel Kirienko 74b62cc3a9 STM32 CAN driver RX queue bug fix 2014-04-12 12:55:36 +04:00
Pavel Kirienko ad49bc1ece STM32 debug helpers: printing RX queue length 2014-04-11 19:34:41 +04:00
Pavel Kirienko bba89bdd3d Node<>::getAllocator() preserves full allocator type 2014-04-11 19:23:05 +04:00
Pavel Kirienko 6435c82d06 Linux driver got default logger that dumps everything into stderr 2014-04-11 19:02:24 +04:00
Pavel Kirienko 3b0b0494b8 STM32 test: fixed race condition 2014-04-11 16:14:08 +04:00
Pavel Kirienko 9b56534506 Time sync master: paranoid check for loopback frame correctness 2014-04-11 16:13:23 +04:00
Pavel Kirienko c634a676be Removed assert() in time sync master 2014-04-11 15:38:00 +04:00
Pavel Kirienko 11102443be STM32: Super aggressive memory allocation (testing) 2014-04-11 15:05:56 +04:00
Pavel Kirienko d2eb0a03ee Properly implemented registerInternalFailure(); some logging in STM32 test app 2014-04-11 14:18:36 +04:00
Pavel Kirienko 1fbd6c2cdd STM32: LTO disabled by default 2014-04-11 13:23:41 +04:00
Pavel Kirienko 46e9aeb1a6 STM32 test: libstdc++ support moved into crdr_chibios 2014-04-11 12:55:56 +04:00
Pavel Kirienko 154f4e2e0d STM32: libstdc++ tweaks. Code size reduced to 61k (release, -Os, LTO) with no functional changes. Shall be refactored later. 2014-04-11 02:09:43 +04:00
Pavel Kirienko 59fd0224e0 STM32: UAVCAN_STM32_DEBUG removed 2014-04-11 00:01:34 +04:00
Pavel Kirienko e567c16fd0 Compact Entry constructor for GlobalDataTypeRegistry::regist<>() 2014-04-10 22:51:37 +04:00
Pavel Kirienko 01328da9eb STM32 driver: Space optimized SystemClock constructor 2014-04-10 21:23:57 +04:00
Pavel Kirienko 1c741016bf STM32 test: libstdc++ error handling workaround 2014-04-10 20:21:14 +04:00
Pavel Kirienko d7b34ffd99 Fixed singletons in the STM32 test app (http://stackoverflow.com/questions/22985570) 2014-04-10 15:06:28 +04:00
Pavel Kirienko c26c320dd9 Fixed GDTR singleton (http://stackoverflow.com/questions/22985570) 2014-04-10 15:05:55 +04:00
Pavel Kirienko d0b541e22d Added config macro UAVCAN_TOSTRING 2014-04-10 13:32:35 +04:00
Pavel Kirienko 29138214dc Unused header 2014-04-10 12:52:01 +04:00
Pavel Kirienko 36192076b3 Removed sstream from uc_frame.cpp 2014-04-10 12:50:49 +04:00
Pavel Kirienko f65aaa2ecd Removed sstream from data_type 2014-04-10 12:46:59 +04:00
Pavel Kirienko b586897948 Removed sstream from can_io 2014-04-10 12:27:05 +04:00
Pavel Kirienko 9849a6ce22 Removed sstream from BitStream::toString() 2014-04-10 12:19:44 +04:00
Pavel Kirienko f66f06e895 Removed sstream from time.hpp 2014-04-10 12:11:45 +04:00
Pavel Kirienko 266e95127b Removed sstream in OTR 2014-04-10 11:50:14 +04:00
Pavel Kirienko d7ec6918be dsdlc: YAML streamer specialization methods defined out-of-line 2014-04-09 19:28:26 +04:00
Pavel Kirienko 8cd94d152c Methods of generated types defined out-of-line. This has been done in order to reduce code size on low optimization levels, though for whatever reason the code size INCREASED by 100 bytes on -Os (see STM32 test). Maybe this change should be reverted later. 2014-04-09 19:10:09 +04:00
Pavel Kirienko 693149cb2f Better formatting of generated headers 2014-04-09 19:07:35 +04:00
Pavel Kirienko f768378e2b Size optimized ServiceClient<> 2014-04-09 18:04:16 +04:00
Pavel Kirienko 3391803d86 GenericSubscriber: one method moved to the base class 2014-04-09 18:03:31 +04:00
Pavel Kirienko 33bb1be4a1 Space optimized GenericSubscriber 2014-04-09 17:19:31 +04:00
Pavel Kirienko 44153e16db GenericPublisher made noncopyable 2014-04-09 17:02:14 +04:00
Pavel Kirienko 72425b712a Space optimized GenericPublisher 2014-04-09 16:38:49 +04:00
Pavel Kirienko 5bd2f0ea74 Out of line methods - Node<> 2014-04-09 15:58:29 +04:00
Pavel Kirienko 6177e27f8d GDTR - Out of line methods 2014-04-09 15:42:23 +04:00
Pavel Kirienko 311ae8dca1 Refactored TransferListener - all logic moved into non-generic subclass and implemented in *.cpp 2014-04-09 15:06:27 +04:00
Pavel Kirienko a8e0037363 Compiling STM32 test with Os by default, no LTO. 2014-04-09 12:52:10 +04:00
Pavel Kirienko 990a531674 Protected constructor of MapBase<> 2014-04-09 12:51:10 +04:00
Pavel Kirienko 37f78c9261 Optimized Map<> 2014-04-09 12:24:27 +04:00
Pavel Kirienko 2c9572d845 TransferBuffer optimized RAM usage 2014-04-09 11:59:45 +04:00
Pavel Kirienko a8d12d2004 TransferBufferManager rewritten to move all the code into a non-generic subclass. STM32 test code size reduced to 176k (-O1) 2014-04-09 11:52:05 +04:00
Pavel Kirienko 9e5115948b Out of line Logger methods 2014-04-08 23:07:36 +04:00
Pavel Kirienko dd38c38ff2 Out of line methods in transfer_listener.hpp 2014-04-08 21:27:35 +04:00
Pavel Kirienko 8102980583 Out of line methods for ScalarCodec 2014-04-08 21:16:38 +04:00
Pavel Kirienko a573f48372 Space optimized transfer_buffer.hpp - STM32 test 180k -O1 2014-04-08 21:13:37 +04:00
Pavel Kirienko 6a68318d49 OTR out of line methods 2014-04-08 19:07:57 +04:00
Pavel Kirienko e6559eff9f Out of line methods in linked_list.hpp 2014-04-08 18:59:15 +04:00
Pavel Kirienko a32d0d335c Out of line methods in dynamic_memory.hpp 2014-04-08 18:54:05 +04:00
Pavel Kirienko a13e4de58a Much space optimized Map<> container - saves 40kb of Flash for STM32 test (-O1) 2014-04-08 18:43:40 +04:00
Pavel Kirienko 20aa6e3056 Removed needless declarations from dynamic_memory.hpp 2014-04-08 18:22:52 +04:00
Pavel Kirienko f702be8dc7 Slightly optiimzed for size ScalarCodec 2014-04-08 18:08:09 +04:00
Pavel Kirienko aca9b98016 STM32: -flto --> binary size reduced from 220k to 155k 2014-04-08 15:53:25 +04:00
Pavel Kirienko e8fa4a2369 UAVCAN_EXPORT 2014-04-08 15:40:51 +04:00
Pavel Kirienko 159b14e129 Array::packSquareMatrix(), Array::unpackSquareMatrix() 2014-04-07 20:26:51 +04:00
Pavel Kirienko 0c4e76a557 Added future TODO for proper float comparison for generated types 2014-04-07 15:29:46 +04:00
Pavel Kirienko 377d2f7d7f STM32: iface activity indication 2014-04-07 15:17:58 +04:00
Pavel Kirienko d3f76c5c16 STM32: Renamed CriticalSectionLocker 2014-04-07 14:54:26 +04:00
Pavel Kirienko 43c0b5490e STM32 test: cleaner Makefile 2014-04-07 14:51:12 +04:00
Pavel Kirienko 2c38c4b96b STM32: Fixed race condition in clock driver 2014-04-07 14:50:43 +04:00
Pavel Kirienko c674fdfc1c GNSS Fix message got status field 2014-04-06 19:57:39 +04:00
Pavel Kirienko 5d601acb8b Atmospheric pressure extended to float32 2014-04-06 13:08:48 +04:00
Pavel Kirienko bbd8088b66 Added some equipment messages 2014-04-06 00:26:21 +04:00
Pavel Kirienko 56c74487ec STM32: Added notes on thread safety and driver usage. 2014-04-06 00:00:30 +04:00
Pavel Kirienko 8d1d435544 STM32: Slightly optimized clock speed adjustment algorithm, though it still isn't applicable for real work. 2014-04-05 18:18:27 +04:00
Pavel Kirienko 0edeff9e4d STM32 test: Time sync slave 2014-04-05 18:02:57 +04:00
Pavel Kirienko befd18de6d STM32F107 test runs a full featured UAVCAN node (223KB FLASH, 20KB RAM) 2014-04-05 17:18:50 +04:00
Pavel Kirienko 2957da8f34 Updated tests to match recent changes in dynamic memory configuration 2014-04-05 17:15:21 +04:00
Pavel Kirienko f32cd16f77 Extra runtime check in CanIOManager queue 2014-04-05 17:14:55 +04:00
Pavel Kirienko e077bbf7a9 Defaults for dynamic memory: Default block size is 64 bytes; packing is disabled by default; alignment set to __BIGGEST_ALIGNMENT__ if available, otherwise 16 bytes. 2014-04-05 16:55:03 +04:00
Pavel Kirienko 54606e494a Fixed STM32 Event 2014-04-05 16:34:37 +04:00
Pavel Kirienko db334f9fab Increased MemPoolAlignment (16 bytes) 2014-04-05 16:34:17 +04:00
Pavel Kirienko 75455438fc STM32 test fixes 2014-04-05 13:48:25 +04:00
Pavel Kirienko 941f936197 STM32: Driver multiplexing, fixed ChibiOS Event 2014-04-05 13:19:00 +04:00
Pavel Kirienko 9e197f129b STM32: Added mutex; clock made thread safe 2014-04-05 11:19:20 +04:00
Pavel Kirienko c025df05fb STM32: Fixed critical sections 2014-04-05 11:07:28 +04:00
Pavel Kirienko c92573b840 Added support for timers 6 and 7 2014-04-05 10:43:58 +04:00
Pavel Kirienko e04a32662e STM32: RX 2014-04-05 01:39:51 +04:00
Pavel Kirienko 38f57f343d STM32: Higher default IRQ priority 2014-04-05 01:39:20 +04:00
Pavel Kirienko 6341be88fd STM32: Fixed critical sections, removed clock interface for can driver 2014-04-05 00:11:21 +04:00
Pavel Kirienko f66338d329 STM32: Partially implemented CAN driver (transmission only); added debug tracing macro and some stuff into internal.hpp 2014-04-04 23:28:34 +04:00
Pavel Kirienko daa7b9ec19 STM32 clock driver 2014-04-03 14:53:11 +04:00
Pavel Kirienko 39269c6bf9 Typo 2014-04-02 22:00:36 +04:00
Pavel Kirienko 9c08f54e65 STM32: Added basic OS abstraction (ChibiOS event), test app for this, minor changes in Makefile 2014-04-02 21:56:44 +04:00
Pavel Kirienko b465c0a303 Added STM32 driver project. Compiles, does nothing; driver itself is not implemented (at all). 2014-04-02 14:27:00 +04:00
Pavel Kirienko e485541c2e Compilation error fixes, thanks GCC 4.8 2014-04-02 14:12:21 +04:00
Pavel Kirienko 9e91cd1e7c C++ library usage fix: snprintf() may or may not be in std:: 2014-04-02 13:53:39 +04:00
Pavel Kirienko cdd0ff3a28 Added prefix 'uc_' to all .cpp files, which allows to compile libuavcan with makefiles that flatten directory structure (e.g. ChibiOS build system) 2014-04-02 13:11:24 +04:00
Pavel Kirienko 68e4c94fca include.mk make script 2014-04-02 12:34:58 +04:00
Pavel Kirienko 3bbcc9b0db Removed excessive void casts 2014-04-01 23:35:05 +04:00
Pavel Kirienko b71657cb39 Formatting in Linux tests 2014-04-01 23:16:41 +04:00
Pavel Kirienko 5d737cf171 Logging shortcuts return void, since logging functions are not expected to fail in most cases 2014-04-01 23:15:35 +04:00
Pavel Kirienko 8fbcf82cd6 GlobalTimeSyncSlave logs whether it is suppressed or not 2014-04-01 23:05:29 +04:00
Pavel Kirienko 639f326341 Linux time sync test 2014-04-01 23:01:57 +04:00
Pavel Kirienko 53c870a950 Fixed time synchronization master: publishing to all ifaces with the same Transfer ID 2014-04-01 23:01:34 +04:00
Pavel Kirienko 943b50bdf0 Publisher::broadcast() with explicit Transfer ID 2014-04-01 18:25:04 +04:00
Pavel Kirienko e2fa613917 Added slave time sync suppression, which allows to use slave and master on the same node. Shall be documented later. 2014-04-01 17:35:32 +04:00
Pavel Kirienko 2dc8525823 Added another Linux test app - node status monitor (CLI) 2014-04-01 15:08:32 +04:00
Pavel Kirienko f451015d3b Fixed linked list traversing in Dispatcher 2014-04-01 13:46:10 +04:00
Pavel Kirienko d8a976df00 Removed annoying debug trace in ServiceResponseTransferListener 2014-04-01 12:29:13 +04:00
Pavel Kirienko 4f87487d46 Linux test node 2014-04-01 12:08:09 +04:00
Pavel Kirienko ce50e8e433 Software version is not required for node initialization 2014-04-01 12:07:28 +04:00
Pavel Kirienko 18c4f60a46 Fixed select() in Linux driver 2014-04-01 12:00:21 +04:00
Pavel Kirienko 0309d13eae Linux SOcketCAN driver: strict ordering of received CAN frames; added debug header for tests 2014-04-01 02:29:57 +04:00
Pavel Kirienko da6e032cf9 NodeStatus timeout set 5 seconds (was 4). 5 is easier to comprehend for us hoomans. 2014-04-01 02:03:28 +04:00
Pavel Kirienko 29e2ea4e30 Removed two annoying debug traces 2014-04-01 01:56:42 +04:00
Pavel Kirienko 0eb6704edf ILogSink logging level method made non-pure with default level DEBUG 2014-04-01 00:49:40 +04:00
Pavel Kirienko 0b2c00307d Some functions with unused return value explicitly casted to (void) 2014-04-01 00:13:43 +04:00
Pavel Kirienko 5f8eb61a6f Fixed installation rules 2014-03-31 23:53:42 +04:00
Pavel Kirienko c80e0388eb Linux helpers 2014-03-31 20:23:26 +04:00
Pavel Kirienko 788d7348b6 Linux: Auto-detecting clock adjustment mode 2014-03-31 19:52:43 +04:00
Pavel Kirienko fd6f27b7d8 Callback type made visible 2014-03-31 18:45:46 +04:00
Pavel Kirienko eafdc82b4b SocketCanIface can maintain arbitrary number of frames pending in socket TX queue, which improves performance. By default, max_frames_in_socket_tx_queue = 3. 2014-03-31 17:57:01 +04:00
Pavel Kirienko e8ee882379 Extra checks for socketcan driver test 2014-03-31 17:26:25 +04:00
Pavel Kirienko b3866feda5 Improved vcan_init 2014-03-31 17:17:43 +04:00
Pavel Kirienko 39933ba41d Finished Linux driver 2014-03-31 17:13:33 +04:00
Pavel Kirienko 75f475fac2 CamIOManager allows the driver to set event masks even if corresponding events were not requested. This feature somewhat simplifies driver logic. 2014-03-31 14:22:52 +04:00
Pavel Kirienko b941c6293c Linux SocketCAN driver (not finished yet) 2014-03-31 00:38:09 +04:00
Pavel Kirienko d2b3832860 Proper priority comparison for CAN frames of different types 2014-03-31 00:32:52 +04:00
Pavel Kirienko fc4d54ed86 Runtime checks for maximum DLC 2014-03-30 20:04:19 +04:00
Pavel Kirienko c5d4b81009 SystemClockDriver --> SystemClock 2014-03-30 19:55:17 +04:00
Pavel Kirienko 3df6f958f7 Added clock test, superheader uavcan_linux.hpp 2014-03-30 18:58:30 +04:00
Pavel Kirienko d9dd012a05 Added script vcan_init 2014-03-30 18:16:32 +04:00
Pavel Kirienko a869c46f73 Linux clock driver - minor improvements 2014-03-30 17:07:26 +04:00
Pavel Kirienko ec6a4cd328 Linux clock driver fix 2014-03-29 22:47:15 +04:00
Pavel Kirienko 74ecfe0cc8 Fixed type signedness through the entire codebase; driver interfaces do not use starndard types now 2014-03-29 22:40:15 +04:00
Pavel Kirienko bdec81bbfa Explicit 'virtual' for implemented methods 2014-03-29 19:50:22 +04:00
Pavel Kirienko 5a8a672152 Forgotten pragma once 2014-03-29 19:46:42 +04:00
Pavel Kirienko af14b4efec Linux clock driver 2014-03-29 19:44:16 +04:00
Pavel Kirienko 68a91d888d Fixed library targets for tests 2014-03-29 15:37:20 +04:00
Pavel Kirienko 21152e00db Renamed dsdlc target, library made static, added linux drivers project (empty yet) 2014-03-29 15:31:06 +04:00
Pavel Kirienko 89e5cf60e0 Added top-level CMake script 2014-03-29 15:18:36 +04:00
Pavel Kirienko 18e4d919c1 uavcan_dsdlc renamed to libuavcan_dsdlc 2014-03-29 14:54:26 +04:00
Pavel Kirienko e212c6a9d5 Rewritten CMake installation directives, added setup.py for libuavcan_dsdl_compiler. uavcan_dsdlc should be lifted from libuavcan to a separate subproject in order to add support for other programming languages 2014-03-29 14:31:27 +04:00
Pavel Kirienko 77d46cb91f pyuavcan setup.py 2014-03-29 12:35:52 +04:00
Pavel Kirienko fc543fafe6 Rewritten CMakeLists.txt; now it should work with any compiler (not only GCC). By default it compiles just libuavcan itself and nothing else. In case of GCC or Clang it is possible to select C++ standard (03/11, the latter is default) 2014-03-29 00:35:36 +04:00
Pavel Kirienko 0e2965e6fb Reorganized CMake script; unit tests and cppcheck will be used only if CMAKE_BUILD_TYPE=Debug, otherwise they are not required 2014-03-28 22:36:55 +04:00
Pavel Kirienko b25efbb996 Fixed uninitialized variable in Array<> 2014-03-28 21:40:43 +04:00
Pavel Kirienko eead3f55ec libuavcan installation rules 2014-03-28 20:25:02 +04:00
Pavel Kirienko 4b1c4014c1 dsdlc fix - now works correctly under root 2014-03-28 20:13:34 +04:00
Pavel Kirienko 162a066575 Updated magic number for uavcan.protocol.StartHilSimulation 2014-03-28 20:03:26 +04:00
Pavel Kirienko c6df3833d3 Subscriber and Server register their internal errors in the global transport perf counter object 2014-03-28 19:31:02 +04:00
Pavel Kirienko 0d9be57d92 handleFatalError() moved to error.hpp 2014-03-28 19:26:25 +04:00
Pavel Kirienko ae63ad5db5 Meaningful error codes instead of plain -1 2014-03-28 19:21:08 +04:00
Pavel Kirienko 4886e2194f Proper data alignment for allocator and lazy constructor 2014-03-28 13:47:21 +04:00
Pavel Kirienko c54b3314e4 Superheader <uavcan/uavcan.hpp> 2014-03-28 13:33:44 +04:00
Pavel Kirienko 6b733dde49 Main Node class 2014-03-28 13:21:56 +04:00
Pavel Kirienko b85fdc886b Added method Logger::init() (optional) 2014-03-28 11:53:07 +04:00
Pavel Kirienko 062170c995 Using std::function<> for callbacks with C++11 2014-03-28 02:17:00 +04:00
Pavel Kirienko c769626eef Fixed timings for tests in order to reduce probability of test failure on a non-realtime system 2014-03-28 02:04:22 +04:00
Pavel Kirienko 86269c32ff Fix for the previous commit 2014-03-28 01:39:43 +04:00
Pavel Kirienko 7616c214b3 Auto ptr checks in tests 2014-03-28 01:32:58 +04:00
Pavel Kirienko c7cc8c8758 Removed duplicated code of Timer 2014-03-28 00:27:14 +04:00
Pavel Kirienko 96aa295615 NodeInitializer - performs network checks during intialization: NodeID collisions, incompatible data types 2014-03-28 00:15:19 +04:00
Pavel Kirienko 49eb6fa463 Forgotten #pragma once 2014-03-27 22:50:30 +04:00
Pavel Kirienko 701f2a07e1 ServiceClient incapsulation fix 2014-03-27 22:24:13 +04:00
Pavel Kirienko 159fda99db Some constructors made explicit 2014-03-27 14:09:22 +04:00
Pavel Kirienko f30b071fcf Preventing recursive calls of Scheduler::spin() 2014-03-27 14:03:05 +04:00
Pavel Kirienko 5157f9182e C++11 Timer API 2014-03-27 13:52:41 +04:00
Pavel Kirienko c4e0404d02 Added test with -O3, removed noexcept tests, the library compiles in two versions: C++11 (default) and C++03 (with suffix '_cpp03') 2014-03-27 13:51:16 +04:00
Pavel Kirienko 9476dfbdad Renaming: Timer --> TimerBase, see the next commit 2014-03-27 11:59:02 +04:00
Pavel Kirienko 0dff5b36e4 TransportStatsProvider 2014-03-27 03:13:25 +04:00
Pavel Kirienko 851e984e35 Renaming TransportPerfCounter --> TransferPerfCounter 2014-03-27 02:51:06 +04:00
Pavel Kirienko da357f5992 TransportPerfCounter - counting transfers and transport errors 2014-03-27 02:19:27 +04:00
Pavel Kirienko 66916920ef TransferReceiver error counter 2014-03-26 19:18:17 +04:00
Pavel Kirienko 2798252fd4 CAN IO perf counters 2014-03-26 18:18:24 +04:00
Pavel Kirienko 09e3ad0187 Transport stats service 2014-03-26 17:58:48 +04:00
Pavel Kirienko 01902f07aa NodeStatusMonitor 2014-03-26 15:42:04 +04:00
Pavel Kirienko 5fa805e14e TransferReceiver::DefaultTransferIntervalUSec increased to 1 second 2014-03-26 15:28:33 +04:00
Pavel Kirienko 6eb5a5a401 Fix for Logger::LogLevelAboveAll 2014-03-26 13:06:10 +04:00
Pavel Kirienko 396037af7e Documented node naming convention 2014-03-26 12:28:00 +04:00
Pavel Kirienko 2fd608d602 Uncrustified test headers 2014-03-25 22:56:49 +04:00
Pavel Kirienko d1278b5ed3 Uncrustified tests 2014-03-25 22:49:31 +04:00
Pavel Kirienko 57de608bf0 Few manual style fixes for tests 2014-03-25 22:33:12 +04:00
Pavel Kirienko d967eaf94d Uncrustify config 2014-03-25 22:32:52 +04:00
Pavel Kirienko f2be356319 Added references to M. Gergeleit, H. Streich - 'Implementing a Distributed High-Resolution Real-Time Clock using the CAN-Bus' 2014-03-25 21:52:52 +04:00
Pavel Kirienko 40a9194574 Logger: Independent logging level for ILogSink 2014-03-25 21:45:12 +04:00
Pavel Kirienko 379a19c1b8 DSDL definitions for file transfer support were removed. This functionality is certainly needed for the protocol, but it is not going to be implemented in the first order, so there is no point in keeping these (unfinished) types now. 2014-03-25 21:10:19 +04:00
Pavel Kirienko 0da3a93ec9 Parameter server 2014-03-25 19:16:56 +04:00
Pavel Kirienko 7ff5630eaa FloatSpec does not use non-standard C lib anymore 2014-03-25 03:25:08 +04:00
Pavel Kirienko 7a3790b460 Uncrustify config and launch script 2014-03-25 03:05:27 +04:00
Pavel Kirienko 0cc627016a Automated style fixes in order to bring the code a little bit closer to compliance with MISRA C++ rules. No changes in logic. 2014-03-25 03:04:36 +04:00
Pavel Kirienko cce657e1fe Manual style fixes, logic was not affected 2014-03-25 01:36:25 +04:00
Pavel Kirienko 41a145424b Style fixes 2014-03-24 23:17:05 +04:00
Pavel Kirienko 42b80da0dd Style fix for generated code 2014-03-24 21:20:48 +04:00
Pavel Kirienko 0b33dbe173 GlobalTimeSyncMaster 2014-03-24 20:39:59 +04:00
Pavel Kirienko 6b43e55dc6 Dispatcher::getCanIOManager() 2014-03-24 19:11:49 +04:00
Pavel Kirienko b40ee02383 GlobalTimeSyncSlave message validation test 2014-03-24 16:24:40 +04:00
Pavel Kirienko 31ed44ff5c GlobalTimeSyncSlave Transfer ID and timing validation (not tested) 2014-03-24 15:14:03 +04:00
Pavel Kirienko 56748523fc GlobalTimeSyncSlave typo 2014-03-24 13:25:26 +04:00
Pavel Kirienko 9d797e5ac5 ::uavcan::CanIOManeger::MaxIfaces --> ::uavcan::MaxCanIfaces 2014-03-24 12:35:23 +04:00
Pavel Kirienko 53027b1365 GlobalTimeSyncSlave: Removed redundant code 2014-03-24 11:03:38 +04:00
Pavel Kirienko 438340ae98 GlobalTimeSyncSlave: methods isActive(), getMasterNodeID() 2014-03-24 10:53:41 +04:00
Pavel Kirienko d56d5d5dca GlobalTimeSyncSlave 2014-03-23 21:35:01 +04:00
Pavel Kirienko 42fdadba2c Tests: Clock mock and test node got some fixes 2014-03-23 21:34:42 +04:00
Pavel Kirienko 1171ef30e8 Refactored helper class InterlinkedTestNodes 2014-03-23 17:40:52 +04:00
Pavel Kirienko 1be6c26a6d SystemClockMock adjustment support 2014-03-23 17:40:31 +04:00
Pavel Kirienko c05d27a7c5 PanicListener test fix 2014-03-23 17:15:40 +04:00
Pavel Kirienko a9dc281c9d cppcheck warning fixes in tests 2014-03-23 16:42:47 +04:00
Pavel Kirienko aa5d7a190a NodeID comparison operators 2014-03-23 16:36:55 +04:00
Pavel Kirienko ec94ebb1f4 stdint.hpp - typedef instead of using declaration - typedefs are safer 2014-03-23 14:41:17 +04:00
Pavel Kirienko ac6a1fb9a8 Added the Coverity Scan badge 2014-03-22 10:21:07 +04:00
Pavel Kirienko 166ded6ba5 Array overrun fix in ScalarCodec, thanks Coverity 2014-03-22 10:14:31 +04:00
Pavel Kirienko fe57f3f5c5 Array<>::resize() pass-by-value fix 2014-03-22 10:10:31 +04:00
Pavel Kirienko 314e117f7e Fixed DSDL template to prevent name clashing with user defined types 2014-03-22 10:01:02 +04:00
Pavel Kirienko 5f434fe072 getIfaceIndex() for received transfers 2014-03-21 18:32:20 +04:00
Pavel Kirienko c15ceb64ec Optional pre-initialization for GenericPublisher<>, TransferSender accessor 2014-03-21 18:24:34 +04:00
Pavel Kirienko 48922c6f37 Typo: Dispatcher::ListenerRegister --> ListenerRegistry 2014-03-21 17:32:28 +04:00
Pavel Kirienko 54921a3738 Loopback frame listener API implemented; TransferSender supports iface masks and CanIOFlags. All of that is necessary to implement network-wide time synchronization. 2014-03-21 17:30:25 +04:00
Pavel Kirienko 9d35c616ef CAN IO flags 2014-03-21 16:02:05 +04:00
Pavel Kirienko 6246f24297 CAN Error frame support for future extensibility 2014-03-21 10:43:34 +04:00
Pavel Kirienko 670d844f08 ICanDriver::select() call accepts CanSelectMasks instead of raw integer masks 2014-03-21 10:12:33 +04:00
Pavel Kirienko 57d720119f Typo in CAN driver iface 2014-03-20 23:51:09 +04:00
Pavel Kirienko 96297678dc Run-time checks: Enforcing valid monotonic timestamp for all received frames 2014-03-20 23:49:26 +04:00
Pavel Kirienko cfbbe41777 Driver API moved to <uavcan/driver/*> 2014-03-20 23:37:27 +04:00
Pavel Kirienko 6eb660f11a ISystemClock::adjustUtc() accepts only relative offset now 2014-03-20 23:27:09 +04:00
Pavel Kirienko 9c02ce2e05 GlobalTimeSync message update 2014-03-20 20:41:47 +04:00
Pavel Kirienko de64f2aef3 Fixed name: TransferID::forwardDistance() --> computeForwardDistance() 2014-03-20 13:38:02 +04:00
Pavel Kirienko 8feacc9072 Fixed visibility of TimerEventForwarder<>::handleTimerEvent() 2014-03-19 20:02:11 +04:00
Pavel Kirienko cee6ea3529 Changed default prototype of the PanicListener callback 2014-03-19 19:55:23 +04:00
Pavel Kirienko 3829506368 PanicListener 2014-03-19 14:27:37 +04:00
Pavel Kirienko 5cc74bf872 Tests: fixed spin() for InterlinkedTestNodes 2014-03-19 14:27:01 +04:00
Pavel Kirienko 8828b79c4e Fixed name of a test class 2014-03-19 14:04:10 +04:00
Pavel Kirienko f2bacbf4e1 Clarified description of uavcan.protocol.Panic 2014-03-19 13:38:05 +04:00
Pavel Kirienko 56d50a4689 uavcan.protocol.RestartNode.magic_number bitlen reduced to 40 bits, which dramatically reduces RAM usage on a service server because the transfer buffers are no longer necessary 2014-03-19 13:37:44 +04:00
Pavel Kirienko ce9c0b6dbe PanicBroadcaster 2014-03-19 12:25:49 +04:00
Pavel Kirienko b353c5b9d8 RestartRequestServer 2014-03-19 10:45:20 +04:00
Pavel Kirienko 1bc411f3af Removed extra debug.hpp inclusions 2014-03-19 10:00:24 +04:00
Pavel Kirienko 6257896627 Added -Wno-long-long for C++03 builds because this library requires 64 bit integer type 2014-03-18 21:50:40 +04:00
Pavel Kirienko ad253a80ac Memory pool block size fixed to 48 bytes 2014-03-18 21:43:43 +04:00
Pavel Kirienko 3dec56da00 Printing size of uavcan.protocol.RestartNode server in a test 2014-03-18 21:13:24 +04:00
Pavel Kirienko ad65b25a26 Removed an irrelevant comment from ISystemClock class 2014-03-18 20:54:11 +04:00
Pavel Kirienko 888057f3ec DataTypeInfoProvider 2014-03-18 20:51:22 +04:00
Pavel Kirienko 8879230798 UAVCAN_PACK_STRUCTS is always defined 2014-03-18 20:06:35 +04:00
Pavel Kirienko 5eb49fcf7e Runtime check for GDTR::find() 2014-03-18 16:40:08 +04:00
Pavel Kirienko 2103e59ef1 GDTR got the method find() by DTID 2014-03-18 16:38:14 +04:00
Pavel Kirienko f5fd0ffe26 NodeStatus TX timeout set to a large value 2014-03-18 16:00:59 +04:00
Pavel Kirienko fc490e93e1 Test: TestSubscriber renamed to TestListener 2014-03-18 15:36:31 +04:00
Pavel Kirienko aeee4b9e37 Added Dispatcher type usage methods: hasPublisher(), hasSubscriber(), hasServer() 2014-03-18 15:33:31 +04:00
Pavel Kirienko c9b284a2d7 IOutgoingTransferRegistry::exists() 2014-03-18 15:15:53 +04:00
Pavel Kirienko b5e201647f Map<> got the new method findFirstKey<>(), which is needed for the upcoming Dispatcher logic 2014-03-18 14:58:05 +04:00
Pavel Kirienko c7d6bcbdda Tests: reduced timestamp comparison precision to reduce test failure probability with parallel build 2014-03-18 13:30:24 +04:00
Pavel Kirienko 3a86edad62 Faster CharArrayFormatter 2014-03-18 11:06:47 +04:00
Pavel Kirienko 11267860f3 Logger implementation 2014-03-18 02:30:57 +04:00
Pavel Kirienko 1e2352bb30 CharArrayFormatter<> implementation and tests 2014-03-18 00:45:11 +04:00
Pavel Kirienko eb0139bd66 array.hpp - fixed #include 2014-03-18 00:44:39 +04:00
Pavel Kirienko 7603007d90 Array<>::appendFormatted() + test 2014-03-17 23:25:45 +04:00
Pavel Kirienko f3f9f3dd18 Build speedup: dsdlc compiler is being invoked without -v, which improves its performance a tiny bit 2014-03-17 22:24:31 +04:00
Pavel Kirienko 6ad511a9be Multithreaded mode for cppcheck 2014-03-17 22:19:52 +04:00
Pavel Kirienko 41eeae8200 Automatic selection between <stdint.h> and <cstdint> depending on the C++ standard. This improvement made the library completely independent from the standard C headers in C++11 mode. In C++03 mode, though, some C headers are still needed: <stdint.h>, <math.h> 2014-03-17 21:15:20 +04:00
Pavel Kirienko 81a03b4d5e impl_constants.hpp: macro definitions were moved out of ::uavcan namespace 2014-03-17 20:51:18 +04:00
Pavel Kirienko 3f99cdd607 Proper #define for UAVCAN_EXCEPTIONS 2014-03-17 20:48:03 +04:00
Pavel Kirienko 093328e386 Proper C++ version detection 2014-03-17 20:38:02 +04:00
Pavel Kirienko 06603ad237 Much improved tests: Both C++03/C++11 are supported, with exceptions and without them; test outputs are being dumped on disk 2014-03-17 19:45:27 +04:00
Pavel Kirienko 4025bf033b Fixed C++11 support 2014-03-17 19:06:11 +04:00
Pavel Kirienko fa8a9cd8ed DSDL: LogLevel extracted into a separate nested type for future extensibility 2014-03-17 15:28:58 +04:00
Pavel Kirienko 730a571c8d The work on the highest-level concepts have just started; here goes NodeStatusProvider with tests 2014-03-15 14:49:23 +04:00
Pavel Kirienko 65cdbbdddb Fixed unused arguments in generated data types 2014-03-15 13:59:30 +04:00
Pavel Kirienko 206551bf78 Testing helper class - InterlinkedTestNodes 2014-03-15 12:58:39 +04:00
Pavel Kirienko bb5f77857d Changes in uavcan.protocol.GetNodeInfo 2014-03-15 11:55:56 +04:00
Pavel Kirienko cf3f2080a5 INode got void registerInternalFailure(const char* msg) 2014-03-15 11:55:22 +04:00
Pavel Kirienko 9b0aa5353b Array<> - more runtime checks 2014-03-15 11:54:20 +04:00
Pavel Kirienko f60e4a537f UAVCAN_VERSION_* defines 2014-03-15 11:49:24 +04:00
Pavel Kirienko 964e666f86 Timer constructor takes INode instead of Scheduler - for compatibility reasons 2014-03-14 23:04:45 +04:00
Pavel Kirienko 6e49c2aeaf Error handling fix 2014-03-14 22:17:00 +04:00
Pavel Kirienko 613efa49b9 INode class. Publisher, Subscriber, ServiceServer, ServiceClient now accept INode in constructor instead of the bunch of independent params. Self NodeID now being configured via setNodeID() method instead of constructor param 2014-03-14 19:54:27 +04:00
Pavel Kirienko 15cbf96378 Reorganized directory structure - directory 'internal' pulled up one level. No logical changes. 2014-03-14 15:01:20 +04:00
Pavel Kirienko ab34c94ba2 Printing size of some data structures from the ServiceClient<> test 2014-03-14 13:32:01 +04:00
Pavel Kirienko ce0174a734 Optimized messages in uavcan.protocol.* 2014-03-14 13:18:31 +04:00
Pavel Kirienko 8889a52e63 Added runtime checks for server and client 2014-03-14 11:33:37 +04:00
Pavel Kirienko 0f1b124086 Array<>::operator+=(Array<>) implementation and test 2014-03-14 02:19:57 +04:00
Pavel Kirienko 62abf10f65 ostream operator for ReceivedDataStructure<> 2014-03-14 01:54:02 +04:00
Pavel Kirienko 8f2034b090 ostream operator for ServiceCallResult<> 2014-03-14 01:45:16 +04:00
Pavel Kirienko bc70390722 Renaming: Server<> --> ServiceServer<> 2014-03-14 01:20:27 +04:00
Pavel Kirienko cefc346ebb TimerEvent fields were renamed; timer pointer removed 2014-03-14 01:09:13 +04:00
Pavel Kirienko 6d584734bb ServiceClient<> 2014-03-14 00:53:53 +04:00
Pavel Kirienko 4bb66fb492 OTR logging 2014-03-14 00:52:51 +04:00
Pavel Kirienko e7cef20c79 Added logging for GDTR 2014-03-14 00:19:44 +04:00
Pavel Kirienko b18e9c84ed Passing callbacks by reference 2014-03-13 21:28:29 +04:00
Pavel Kirienko 51833fb08f Fixed publication timeouts (Server, Publisher, GenericPublisher) 2014-03-13 14:45:31 +04:00
Pavel Kirienko 2eaa4b3c31 Refactored GenericSubscriber<> to support the upcoming Caller<> 2014-03-13 13:00:03 +04:00
Pavel Kirienko beaba20749 Simplified service types: the nested types Request/Response are templates now, but the containing type is not, so using 'typename' to refer to Request or Response is no longer necessary. 2014-03-12 21:20:05 +04:00
Pavel Kirienko 7bc7269e37 Checking server failure counters in test 2014-03-12 13:08:31 +04:00
Pavel Kirienko 0f877dec88 Server<> 2014-03-12 13:02:28 +04:00
Pavel Kirienko 629ed8c28e MethodBinder passes all values by reference 2014-03-12 13:01:39 +04:00
Pavel Kirienko 3426d55cac CAN mock method - popTxFrame() 2014-03-12 13:01:15 +04:00
Pavel Kirienko 54f920898d Pub/sub fixes 2014-03-12 13:00:40 +04:00
Pavel Kirienko ad3175a235 GenericSubscriber<>::getFailureCount() made protected - needed for Server<> 2014-03-12 11:28:19 +04:00
Pavel Kirienko 061dc8f513 Fixed linking of generated types - generated types are templates now, which allows to define static constant member in headers avoiding linking errors 2014-03-12 10:44:40 +04:00
Pavel Kirienko 07bad40387 Added tests for proper linking of generated types. Now these tests are failing to pass - will be fixed soon. 2014-03-11 22:23:15 +04:00
Pavel Kirienko d1d35760d4 DataTypeID tests 2014-03-11 21:33:18 +04:00
Pavel Kirienko 62ea9e2746 Type safe DataTypeID class 2014-03-11 21:29:35 +04:00
Pavel Kirienko befea376c2 Fixed inclusion loops 2014-03-11 21:00:28 +04:00
Pavel Kirienko 6eee97fb05 DSDLC default output directory name was changed to more obvious 'dsdlc_generated' 2014-03-11 20:16:58 +04:00
Pavel Kirienko 026105d0b4 DSDLC invocation has been fixed - now it generates messages even if the tests are not going to be built 2014-03-11 20:12:57 +04:00
Pavel Kirienko ca9bebce13 Time overflow tests 2014-03-11 15:00:14 +04:00
Pavel Kirienko d5e30f643c Renaming: MonotonicDeadlineHandler --> DeadlineHandler 2014-03-11 14:49:43 +04:00
Pavel Kirienko 65a4dcc2cf Superrefactoring - all time values were replaced with new safer classes from uavcan/time.hpp; generated types were moved away from anonymous namespaces because this makes it impossible to use a type from different compilation units. Some less vital fixes are to follow - see the next few commits 2014-03-11 14:41:48 +04:00
Pavel Kirienko 633fa9d8bd Bitarray copy algorithm was moved to C++ source file, thus C compiler is no longer required 2014-03-10 19:33:06 +04:00
Pavel Kirienko b86ea67563 Reorganized directory structure for tests and src 2014-03-10 19:25:28 +04:00
Pavel Kirienko 21fda96978 Type safe time classes with tests, to replace uint64_t for time values 2014-03-10 19:00:59 +04:00
Pavel Kirienko aa7a74bd1e Scheduler test moved into the appropriate directory 2014-03-10 17:25:25 +04:00
Pavel Kirienko 1f2b8bf006 Checking the max transfer payload length for generated types 2014-03-10 15:51:59 +04:00
Pavel Kirienko ee7a847ce0 dsdlc template renamed to *.tmpl to enable proper syntax highlighting and avoid confusion with C++ headers 2014-03-10 15:48:27 +04:00
Pavel Kirienko d834edbf62 Forgotten explicit keyword for timer forwarder constructor 2014-03-10 14:08:30 +04:00
Pavel Kirienko 3d8285b123 Common naming conventions for event handling methods: handleFooBar() instead of onFooBar() 2014-03-10 14:03:46 +04:00
Pavel Kirienko 393641b5b6 Conforming style for TimerEventForwarder<> 2014-03-10 14:00:51 +04:00
Pavel Kirienko 4b92497aee Refactoring - Scheduler, GenericPublisher, GenericSubscruber moved into /uavcan/internal/node/* 2014-03-10 13:53:10 +04:00
Pavel Kirienko 6573d79fd1 Style fix in Map<> 2014-03-10 11:18:04 +04:00
Pavel Kirienko 224a072120 try_implicit_cast<>() supports non default constructible target types 2014-03-10 11:12:57 +04:00
Pavel Kirienko 38e43e58ad Nicer TimerEventForwarder<> 2014-03-10 11:01:43 +04:00
Pavel Kirienko 2aa9d8cdb5 Subscriber properly handles types that do not require buffering (i.e. types that do not require MFT transport). Ugly test added. 2014-03-10 01:50:42 +04:00
Pavel Kirienko 30aa1bdecc StaticIf<> renamed to much more appropriate and widely known name - Select<> 2014-03-09 21:50:58 +04:00
Pavel Kirienko ce618f6436 Utils moved to uavcan/util/* 2014-03-09 21:46:21 +04:00
Pavel Kirienko 0aa76d71e3 Comparison operators for generated types 2014-03-09 21:28:46 +04:00
Pavel Kirienko ee1de9ab2e Streaming operator for generated types was moved into the type's namespace 2014-03-09 21:13:37 +04:00
Pavel Kirienko 3dc5183317 Centralized fatal error handling via handleFatalError(msg) 2014-03-09 20:48:06 +04:00
Pavel Kirienko 1b7efa45f5 Subscriber: proper destruction, tests for that, tests for getFailureCount() 2014-03-09 19:37:07 +04:00
Pavel Kirienko 31e169db4a Added checks for the subscriber test 2014-03-09 18:02:28 +04:00
Pavel Kirienko 2c2d7605a7 Subscriber with simple test 2014-03-09 17:58:32 +04:00
Pavel Kirienko 5fa5962f6f Tests: areTimestampsClose() moved to common.hpp 2014-03-09 17:58:17 +04:00
Pavel Kirienko acca96f5a0 Quick fix for test execution order problems (yes, singletones are hard to unittest) 2014-03-09 17:03:39 +04:00
Pavel Kirienko c7351c4bbb Improved MethodBinder 2014-03-09 16:53:32 +04:00
Pavel Kirienko c1a8f818f8 GDTR tracing 2014-03-09 16:49:59 +04:00
Pavel Kirienko 326f7082d5 Syntax fix 2014-03-09 14:07:51 +04:00
Pavel Kirienko 6a2eb3b852 Tests for try_implicit_cast<>() 2014-03-09 14:04:11 +04:00
Pavel Kirienko 1659b5c476 Added try_implicit_cast<>() to check callbacks validness at run time 2014-03-09 13:47:07 +04:00
Pavel Kirienko 0afb7f4eea Minor optimization for publisher 2014-03-09 11:24:13 +04:00
Pavel Kirienko 8bd1dd01e9 Test fix 2014-03-09 11:17:34 +04:00
Pavel Kirienko 081f1f9733 Publisher got simplified - no blocking deadline, default tx_timeout = 2.5 ms 2014-03-09 11:14:31 +04:00
Pavel Kirienko baed1d17c5 IncomingTransfer implements ITransferBuffer, which is necessary for message codec 2014-03-09 00:47:01 +04:00
Pavel Kirienko 31e47daf84 Fixed fatal error handing (exceptions); MethodBinder moved into a separate file 2014-03-09 00:12:07 +04:00
Pavel Kirienko d9474388b0 Compile time BitLenToByteLen computation; marshal type util tests 2014-03-08 23:24:20 +04:00
Pavel Kirienko fb329a2f0a Typo 2014-03-08 23:08:30 +04:00
Pavel Kirienko 395710b781 getScheduler() for Publisher 2014-03-08 23:04:05 +04:00
Pavel Kirienko 77184fc062 Writing top-level logic - publisher 2014-03-08 23:01:05 +04:00
Pavel Kirienko 35db1858c8 Latest fixes to GDTR made such thing as name collisions completely impossible, so tests were fixed accordingly 2014-03-08 22:03:58 +04:00
Pavel Kirienko 7e17e852d1 Static analyzer warning fix; I'm not sure there is any point in such initialization though, so it might need to be removed later 2014-03-08 22:02:51 +04:00
Pavel Kirienko 5a92b58e3e Safer LazyConstructor - now requires to specify constructor parameter types manually 2014-03-08 21:50:28 +04:00
Pavel Kirienko b6dd1e3a14 GDTR fix - double remove() before registering 2014-03-08 20:10:10 +04:00
Pavel Kirienko c00083f9f8 Added accessors for static transfer buffer template 2014-03-08 19:51:46 +04:00
Pavel Kirienko 7cb85561bf Scheduler checks its timing configs 2014-03-08 18:54:22 +04:00
Pavel Kirienko 7b4ef80c40 Lazy constructor init fix 2014-03-08 18:53:42 +04:00
Pavel Kirienko fd454a77f8 LazyConstructor 2014-03-08 15:19:41 +04:00
Pavel Kirienko bc065ee3c4 TransferSender::DefaultMaxTransferInterval made public 2014-03-08 14:13:00 +04:00
Pavel Kirienko 9ad3017929 Explicit constructors for deadline handler and timer 2014-03-08 13:24:34 +04:00
Pavel Kirienko 5559e7e447 Added scheduler accessor for deadline handler 2014-03-08 13:20:18 +04:00
Pavel Kirienko 2fa3f2c7c7 Refactored scheduler 2014-03-08 13:03:04 +04:00
Pavel Kirienko aef70367d9 Scheduler 2014-03-08 01:01:50 +04:00
Pavel Kirienko fb5840116a Enabled RTTI for tests, added POSIX clock driver, modified CAN driver mock to add the new clock driver support 2014-03-07 23:59:20 +04:00
Pavel Kirienko edb6a58d1b Added simple method binder and system clock getter for dispatcher 2014-03-07 22:14:54 +04:00
Pavel Kirienko 93d06a2494 Fixed DSDL parser test 2014-03-07 01:10:16 +04:00
Pavel Kirienko 4fef972c2a DSDL compiler fix: detecting DTID collisions from all namespaces 2014-03-07 01:08:03 +04:00
Pavel Kirienko 35e4fd00fc Cleaner YAML streaming for strings 2014-03-07 00:58:14 +04:00
Pavel Kirienko 4753d4ac79 YAML streaming for generated types 2014-03-07 00:43:36 +04:00
Pavel Kirienko da6e25a708 dsdlc bugfix 2014-03-07 00:22:09 +04:00
Pavel Kirienko d470cf1fb4 Added workarounds for name clashing in generated messages 2014-03-06 17:55:51 +04:00
Pavel Kirienko c08aa34645 Simplified structures in uavcan.protocol.* 2014-03-06 17:22:18 +04:00
Pavel Kirienko 5345dd794f Optimized array initialization 2014-03-06 16:53:58 +04:00
Pavel Kirienko 76cecca84a String-like behavior for arrays 2014-03-06 16:39:12 +04:00
Pavel Kirienko a2d786fe5c Removed test DSDL files 2014-03-06 13:35:21 +04:00
Pavel Kirienko 451ea11795 Added standard DSDL types: uavcan.*, uavcan.protocol.*, uavcan.mavlink.* 2014-03-06 13:32:38 +04:00
Pavel Kirienko f06346877f Type registration test 2014-03-05 22:32:35 +04:00
Pavel Kirienko 98b2597c30 Slightly more verbose error reporting 2014-03-04 23:13:39 +04:00
Pavel Kirienko c4f47e0b70 Disabled instantiation of Service types 2014-03-04 22:31:15 +04:00
Pavel Kirienko 6b7eea5a4f Added tests for generated types 2014-03-04 19:57:17 +04:00
Pavel Kirienko 082805b2f1 Generated types can be compiled sucessfully now 2014-03-03 22:14:37 +04:00
Pavel Kirienko 7e2182c5ed Numerous fixes for type header template: UL prefix for DSDL signature, static const data members defined out of the class in an anonymous namespace 2014-03-03 22:05:23 +04:00
Pavel Kirienko 5e10ac6434 Follow-up fixes 2014-03-03 21:07:17 +04:00
Pavel Kirienko 8e298f98c3 Added gtest for dsdlc (not fully implemented yet); dropped support for inf and nan constants in DSDL as this functionality is not portable 2014-03-03 20:58:21 +04:00
Pavel Kirienko 6f4cf36438 dsdlc cmake integration; dsdlc implements lazy write 2014-03-03 18:56:49 +04:00
Pavel Kirienko e0fdb7e773 Missed header 2014-03-03 16:37:51 +04:00
Pavel Kirienko f4112068c1 Using UAVCAN_PACKED_BEGIN/UAVCAN_PACKED_END macros globally 2014-03-03 16:34:36 +04:00
Pavel Kirienko 89f8925a76 Packing control for generated types 2014-03-03 16:27:06 +04:00
Pavel Kirienko 02963500ec Refactored and fixed DSDL signature computation; added DSSD comment into .hpp template 2014-03-03 15:40:53 +04:00
Pavel Kirienko fdfe5938c2 Read only permissions for generated types 2014-03-03 14:52:43 +04:00
Pavel Kirienko c035dd4436 DSDL compiler for libuavcan - dsdlc 2014-03-03 13:39:27 +04:00
Pavel Kirienko 5568e5751e Preserving original filename in the compound type descriptor structure 2014-03-03 10:46:57 +04:00
Pavel Kirienko c994fa59b0 DSDL signature is being computed from constants as well 2014-03-03 10:43:11 +04:00
Pavel Kirienko 33ebb1f9e0 parse_namespace() parses one namespace at a time 2014-03-02 21:26:14 +04:00
Pavel Kirienko b8aa04917f Less verbose logging 2014-03-02 17:48:58 +04:00
Pavel Kirienko 30566e3b69 Slightly reorganized DSDL parser 2014-03-02 17:42:34 +04:00
Pavel Kirienko 609346b26f Max data structure length validation 2014-03-02 17:37:06 +04:00
Pavel Kirienko 888c2dfd44 parse_namespaces() 2014-03-02 16:45:09 +04:00
Pavel Kirienko dac212e997 Cleaner error reporting 2014-03-02 15:39:23 +04:00
Pavel Kirienko e21142f746 Simplified PrimitiveType.get_normalized_definition() 2014-03-02 14:50:58 +04:00
Pavel Kirienko e3eb70f33e DSDL constant range validation 2014-03-02 14:46:04 +04:00
Pavel Kirienko 3b35c27c05 Fixed gitignore 2014-03-01 23:17:09 +04:00
Pavel Kirienko 954b3e4bf3 DSDL parser 2014-03-01 23:13:26 +04:00
Pavel Kirienko 1f7054b6ca Minor cleanup for utils.hpp 2014-02-28 15:22:36 +04:00
Pavel Kirienko 161c3fdc7d Some more renamings: marshalling --> marshal 2014-02-28 14:31:03 +04:00
Pavel Kirienko 2e79b92aee name --> full_name 2014-02-28 14:26:13 +04:00
Pavel Kirienko 1c1e1b1fb9 GDTR: much faster type signature computation 2014-02-28 14:12:35 +04:00
Pavel Kirienko 03cf4aa901 GDTR remove() fix 2014-02-28 12:33:05 +04:00
Pavel Kirienko eb573ce04e GDTR registration error codes 2014-02-28 12:26:46 +04:00
Pavel Kirienko 61a9adb369 Typo 2014-02-28 12:01:12 +04:00
Pavel Kirienko e4f6866524 GDTR collision checks, ordered storage 2014-02-28 11:59:54 +04:00
Pavel Kirienko c4add96a81 Improved GDTR test 2014-02-28 11:35:50 +04:00
Pavel Kirienko c6518d22f5 Aggregate type signature computation + tests 2014-02-28 11:19:16 +04:00
Pavel Kirienko 3b67b15ff5 GlobalDataTypeRegistry partially implemented 2014-02-27 11:30:38 +04:00
Pavel Kirienko d71ec29fcf DataTypeDescriptor got name_ 2014-02-27 09:29:58 +04:00
Pavel Kirienko bc54015265 data_type.hpp moved one level up from 'internal/' 2014-02-27 08:47:32 +04:00
Pavel Kirienko 1a7c0ee65b DataTypeDescriptor::MaxDataTypeID 2014-02-27 08:35:07 +04:00
Pavel Kirienko c46beca304 Integrated DataTypeSignature; hash removed 2014-02-26 19:13:35 +04:00
Pavel Kirienko 057574b2ec DataTypeSignature 2014-02-26 19:01:12 +04:00
Pavel Kirienko 121f8d2dee TransportCRC --> TransferCRC 2014-02-26 18:16:14 +04:00
Pavel Kirienko dc2460f264 Signature CRC extension 2014-02-26 18:12:05 +04:00
Pavel Kirienko a73560e1bd Added DataTypeSignatureCRC 2014-02-26 12:17:06 +04:00
Pavel Kirienko 3edfe803c7 Added compile time and run time assertions for IntegerSpec<> 2014-02-26 10:56:12 +04:00
Pavel Kirienko 887ee64d54 Fixed TransportCRC compatibility with CRC-16-CCITT 2014-02-26 09:45:06 +04:00
Pavel Kirienko a6ab9c416f Crc16 --> TransferCRC 2014-02-25 17:58:31 +04:00
Pavel Kirienko 366c5f5460 Two extra array tests 2014-02-25 16:26:15 +04:00
Pavel Kirienko e4530daa2d Optimized Array<>::clear() 2014-02-25 15:44:07 +04:00
Pavel Kirienko af00efade2 TAO tests 2014-02-25 15:23:08 +04:00
Pavel Kirienko ca277a4ef9 Tail array optimization; untested 2014-02-25 13:19:55 +04:00
Pavel Kirienko a24cbcc493 Simplified StorageType<> 2014-02-24 21:46:18 +04:00
Pavel Kirienko 2b8996b82c Fixed array MaxBitLen 2014-02-24 21:15:03 +04:00
Pavel Kirienko 01b45c892d Dynamic array test 2014-02-24 14:14:45 +04:00
Pavel Kirienko da4c2b524b CRC fix 2014-02-23 20:10:09 +04:00
Pavel Kirienko 0c7d51b9ec Dynamic arrays; not fully tested yet. Tail array optimization is not implemented yet. 2014-02-23 16:53:27 +04:00
Pavel Kirienko 77d3cb3518 StaticArray<> boolean specialization shouldn't have ValueType, so it was removed 2014-02-22 22:35:32 +04:00
Pavel Kirienko e2e4e420f1 Marshalling headers reorganized 2014-02-22 21:56:24 +04:00
Pavel Kirienko 056791619e StaticArray specialization for std::bitset<> 2014-02-22 21:37:31 +04:00
Pavel Kirienko ac6456695e StaticArray<> impl and test 2014-02-22 21:10:58 +04:00
Pavel Kirienko 202fa3b58b Minor fixes for FloatSpec, IntegerSpec and types.hpp 2014-02-22 20:47:54 +04:00
Pavel Kirienko fb32aabb54 Removed enable_tail_array_optimization and init() 2014-02-22 17:08:38 +04:00
Pavel Kirienko a58e8842e2 FloatSpec made unconstructible 2014-02-22 15:25:52 +04:00
Pavel Kirienko 51e42038c6 FloatSpec<> implementation and tests 2014-02-22 15:06:08 +04:00
Pavel Kirienko 1e1fdc613b IntegerSpec test name fix 2014-02-22 12:54:13 +04:00
Pavel Kirienko ac2a31b087 Renamed IntegerInfo to IntegerSpec, few minor naming fixes 2014-02-22 11:00:42 +04:00
Pavel Kirienko 0e28a0826c IntegerInfo 2014-02-21 22:03:17 +04:00
Pavel Kirienko aee9ce238e Type categorization via EnableIfType - for integer info class 2014-02-21 21:41:14 +04:00
Pavel Kirienko 47a2b01a14 Style fix: All constants are CamelCase now 2014-02-21 18:45:23 +04:00
Pavel Kirienko a155e6f859 StaticIf - needed for standard types 2014-02-21 15:58:44 +04:00
Pavel Kirienko 232b69580f ScalarCodec fix 2014-02-21 15:58:04 +04:00
Pavel Kirienko df04599ac0 ScalarCodec - added representation correctness test 2014-02-21 00:42:11 +04:00
Pavel Kirienko dc3111c77d ScalarCodec implementation; more tests to come 2014-02-21 00:29:26 +04:00
Pavel Kirienko 361cf53265 Cleaner error reporting logic for BitStream 2014-02-20 20:58:57 +04:00
Pavel Kirienko 4eb2886ca9 Doc comment 2014-02-20 20:36:40 +04:00
Pavel Kirienko 5d106dfac0 Resolved TODO in BitStream 2014-02-20 20:30:16 +04:00
Pavel Kirienko cb0ff11eea BitStream::read() - implementation and tests 2014-02-20 20:28:42 +04:00
Pavel Kirienko 3cf6a5ff60 Partially implemented BitStream class - only write() so far. 2014-02-20 19:03:43 +04:00
Pavel Kirienko e5a8302b9d CMake C rules (for the upcoming BitStream class) 2014-02-20 17:03:38 +04:00
Pavel Kirienko c10abf53e9 Style fix - DynamicTransferBuffer --> DynamicTransferBufferManagerEntry 2014-02-20 14:09:25 +04:00
Pavel Kirienko 7c4902deb5 StaticTransferBuffer extracted for standalone usage 2014-02-20 14:06:09 +04:00
Pavel Kirienko 4f49d61de6 Style fixes 2014-02-19 17:55:18 +04:00
Pavel Kirienko 195dca3696 Renaming: TransferBufferBase --> ITransferBuffer 2014-02-19 17:11:05 +04:00
Pavel Kirienko cd851312ff TransferSender implementation and tests 2014-02-19 17:05:19 +04:00
Pavel Kirienko bb9d21287e makeDataType() moved to generic transfer test helpers 2014-02-19 16:47:48 +04:00
Pavel Kirienko 15d90f72e9 Verbose logging on CRC failure 2014-02-19 16:47:08 +04:00
Pavel Kirienko c136d92b5d Added Frame::setIndex() 2014-02-19 16:46:50 +04:00
Pavel Kirienko d330572e37 Style fix: LinkedListRoot<>::length() --> getLength() 2014-02-19 00:50:24 +04:00
Pavel Kirienko 903ec1b0a1 getNum*() Dispatcher methods for testing 2014-02-19 00:45:52 +04:00
Pavel Kirienko 0d50ec077c Cleaned up dynamic memory management, explicit pointer zeroing from destroy() 2014-02-19 00:39:58 +04:00
Pavel Kirienko 2f9c0087ef Dispatcher spin timeout test 2014-02-18 16:48:21 +04:00
Pavel Kirienko f186888b04 Dispatcher transmission test 2014-02-18 16:42:32 +04:00
Pavel Kirienko 69eadee72b Dispatcher reception test 2014-02-18 16:26:48 +04:00
Pavel Kirienko 0bc595d4a8 Test: Transfer::operator==() - data type comparison 2014-02-18 14:16:29 +04:00
Pavel Kirienko cd2a13c60d Further test refactoring: data type descriptor moved to transfer object 2014-02-18 14:14:55 +04:00
Pavel Kirienko 7039711027 Tests: refectored IncomingTransferEmulator, CAN iface mock supports pushRx(RxFrame) 2014-02-18 12:20:35 +04:00
Pavel Kirienko a9a86bc151 CAN iface mock uses monotonic timestamping instead of UTC 2014-02-18 12:03:05 +04:00
Pavel Kirienko 980659ebb5 Minor test refactoring 2014-02-18 12:00:45 +04:00
Pavel Kirienko 06d74d3213 Added test for maximum transfer length 2014-02-17 15:13:05 +04:00
Pavel Kirienko 1886f0a8a9 Frame parsing test 2014-02-17 14:14:08 +04:00
Pavel Kirienko d3d85a671c Renamed some Frame methods 2014-02-17 12:53:07 +04:00
Pavel Kirienko 9d06a328dc Simplified Frame::parse() 2014-02-17 12:43:47 +04:00
Pavel Kirienko 697a55aebb Refactoring: Frame Index field size increased, Trnasfer ID field size reduced. NodeID class added, Frame class rewritten with stricter runtime checks. All tests were updated accordingly. 2014-02-17 12:35:12 +04:00
Pavel Kirienko 20778f1acb Better explanation of frame filtering logic 2014-02-15 21:08:45 +04:00
Pavel Kirienko 06d757b78e Tests refactoring - mocks and helpers were separated from testing logic 2014-02-15 21:04:12 +04:00
Pavel Kirienko e7ce9fb586 Extra logging in TransferListener 2014-02-14 19:34:34 +04:00
Pavel Kirienko 20c828912f Dispatcher class, tests to come 2014-02-14 19:19:23 +04:00
Pavel Kirienko 69fa8643d4 Added RxCanFrame::toString() 2014-02-14 18:45:49 +04:00
Pavel Kirienko d81a96beb2 TransferListener::cleanup() test 2014-02-14 15:53:28 +04:00
Pavel Kirienko 02cbd60efe Outgoing Transfer ID registry 2014-02-14 15:04:26 +04:00
Pavel Kirienko 96f8c9aa09 TransferListenerBase holds its DataTypeDescriptor, which is needed for the upcoming dispatcher class 2014-02-13 14:06:59 +04:00
Pavel Kirienko 328f98e605 Typo 2014-02-13 13:04:50 +04:00
Pavel Kirienko 2d2116f624 TransferListener implemented and tested 2014-02-13 13:01:08 +04:00
Pavel Kirienko f78a2a452c Removing the buffer after handleIncomingTransfer() 2014-02-12 13:40:54 +04:00
Pavel Kirienko 4a7efc19d0 Fixed specialization of TransferBufferManager<0, 0> 2014-02-12 13:29:31 +04:00
Pavel Kirienko a1ead1b90b TransferListener implemented, tests to be added 2014-02-12 13:27:49 +04:00
Pavel Kirienko 5ceaafe419 TransferReceiver: on-the-fly CRC extraction from multi frame transfers saves 2 to 3 bytes of payload buffers 2014-02-12 12:34:48 +04:00
Pavel Kirienko 0533539c7c Starting refactoring of the receiving logic 2014-02-12 10:49:32 +04:00
Pavel Kirienko 0bc62a74c9 TransferListener partially implemented 2014-02-11 21:55:36 +04:00
Pavel Kirienko 0acf1b976b Explicit specialization for empty TransferBuffer (for single frame transfers) 2014-02-11 21:44:43 +04:00
Pavel Kirienko 5be2801fa1 Dynamic buffer size limitation 2014-02-11 21:26:18 +04:00
Pavel Kirienko 031f90f326 Added TransferBufferAccessor, saves few bytes on stack/heap 2014-02-11 20:13:19 +04:00
Pavel Kirienko 25d285e209 Map<>, TransferBufferManager - isEmpty() calls for runtime checks 2014-02-11 19:56:09 +04:00
Pavel Kirienko bb215d3c15 Map<>, TransferBufferManager - isEmpty() calls for runtime checks 2014-02-11 19:50:15 +04:00
Pavel Kirienko fe2126536d TransferReceiver: removed field for buffer manager key in order to save some memory (at least 2 bytes) 2014-02-11 19:27:52 +04:00
Pavel Kirienko 8a007c8522 Fixed destruction/copying of TransferReceiver 2014-02-11 19:18:43 +04:00
Pavel Kirienko 4c1a4a32c7 Map<>::insert() --> Value*, saves one lookup for TransferListener::handleFrame() 2014-02-11 19:11:36 +04:00
Pavel Kirienko 445ec8173c IncomingTransfer for single frame and multi frame transfers 2014-02-11 18:08:20 +04:00
Pavel Kirienko 55ea9963f0 Minor renaming in TransferReceiver 2014-02-11 15:34:19 +04:00
Pavel Kirienko afd265e8c6 TransferReceiver made 32 bit less in size 2014-02-11 14:51:23 +04:00
Pavel Kirienko 557278c6ac Added tests for UTC transfer timestamping 2014-02-11 14:41:24 +04:00
Pavel Kirienko 696451baca RX frames have two timestamps: monotonic - for protocol timings management; utc - for application-level timestamping 2014-02-11 14:32:45 +04:00
Pavel Kirienko b8f6bf3ffa Minor renaming in DataTypeDescriptor 2014-02-11 13:55:50 +04:00
Pavel Kirienko d4e4f1a416 Added CRC initializing constructor 2014-02-11 12:36:54 +04:00
Pavel Kirienko 78ff31f9ad TransferBufferManager: using TransferBufferManagerKey instead of plain Node ID, this allows to distinguish transfers of different type from the same Node ID, which is necessary for message broadcasting/unicasting 2014-02-11 12:21:25 +04:00
Pavel Kirienko 149ac87a54 TransferReceiver - new tests, fixed logic 2014-02-10 20:35:35 +04:00
Pavel Kirienko dae9718903 Cleaner copyableness of transfer buffers 2014-02-10 18:51:50 +04:00
Pavel Kirienko e9680c04d0 TransferReceiver - fixed assignment operator 2014-02-10 18:50:39 +04:00
Pavel Kirienko b2adf25485 Transfer receiver 2014-02-10 18:35:58 +04:00
Pavel Kirienko 12111e63d4 Frame::toString() with tests 2014-02-10 13:39:27 +04:00
Pavel Kirienko 6c76e8a25d Transfer buffer: removed timestamps and cleanup() 2014-02-09 21:35:35 +04:00
Pavel Kirienko 017863a32d Explicit noncopyableness, static_assert.hpp --> util.hpp 2014-02-09 21:28:10 +04:00
Pavel Kirienko 56a69a4ba0 Typo 2014-02-07 19:55:02 +04:00
Pavel Kirienko 070e85d2ab Removed TransferIDRegistry in favor of Map<> 2014-02-06 22:26:55 +04:00
Pavel Kirienko ad51ca5c0d KV container for TransferID 2014-02-06 22:23:51 +04:00
Pavel Kirienko 7ed9c43e95 DataTypeDescriptor, DataTypeHash 2014-02-06 15:50:14 +04:00
Pavel Kirienko 544940fd6b CRC16 class 2014-02-06 15:30:16 +04:00
Pavel Kirienko cc991efdc6 CanIOManager::send() unblocks as soon as the frame was transmitted, instead of waiting for the entire queue to flush 2014-02-06 12:41:09 +04:00
Pavel Kirienko 805fea8234 Added prefix TRANSFER_TYPE_ to enum TransferType 2014-02-06 12:24:24 +04:00
Pavel Kirienko 46657e8449 TransferIDRegistry - grouping by data type kind instead of transfer type 2014-02-06 12:23:20 +04:00
Pavel Kirienko 261dd546cd Implemented TransferBufferManager 2014-02-06 00:08:51 +04:00
Pavel Kirienko 690e0257dc cppcheck: removed flag --inconclusive as it was producing some stupid false positives 2014-02-06 00:08:18 +04:00
Pavel Kirienko c8c7a86f99 Proper destruction of DynamicTransferBuffer 2014-02-05 19:35:14 +04:00
Pavel Kirienko f707e889f9 Arch dependent MEM_POOL_BLOCK_SIZE 2014-02-05 19:15:06 +04:00
Pavel Kirienko 50d399e5b3 Improved test for dynamic transfer buffer 2014-02-05 19:07:20 +04:00
Pavel Kirienko 06cb11b6ec Transport buffers - dynamic and static 2014-02-05 01:23:02 +04:00
Pavel Kirienko fb0f44c4b4 Renamed AssertDynamicallyAllocatable --> IsDynamicallyAllocatable 2014-02-05 01:21:53 +04:00
Pavel Kirienko f91d8090c9 Globally defined and statically checked block size for pool allocator 2014-02-04 20:16:50 +04:00
Pavel Kirienko 832f0395bd Transfer ID registry 2014-02-04 02:12:24 +04:00
Pavel Kirienko 9559a9506a Static assert for TX queue entry size 2014-02-03 14:41:27 +04:00
Pavel Kirienko 366ae6397e Extra tests for RxFrame 2014-02-02 23:10:08 +04:00
Pavel Kirienko 479e851f0a RxFrame inherits Frame 2014-02-02 23:00:30 +04:00
Pavel Kirienko 6790b04056 CanRxFrame inherits CanFrame 2014-02-02 22:58:44 +04:00
Pavel Kirienko 8794c7eab9 Frame parse()/compile(), some renamings 2014-02-02 22:54:27 +04:00
Pavel Kirienko 4bf2b2e81a TransferID class 2014-02-02 01:57:54 +04:00
Pavel Kirienko 5252972d3e Basic transfer definitions (untested) 2014-02-01 20:03:47 +04:00
Pavel Kirienko 00b977eb40 Minor source reorganization; few dangerous C functions replaced with safer std:: alternatives 2014-02-01 19:00:05 +04:00
Pavel Kirienko b385ffb12e Running cppcheck with every build 2014-02-01 17:04:56 +04:00
Pavel Kirienko d77d2967e0 Minor clarification on how to test 2014-02-01 15:45:15 +04:00
Pavel Kirienko f6feaa0544 Pool manager automatically sorts pools by block size in addPool() 2014-02-01 15:04:52 +04:00
Pavel Kirienko 6c12982b9d Basic functionality: CAN IO Manager, unit tests, debug stuff, memory management 2014-02-01 14:40:09 +04:00
Pavel Kirienko b685173185 Very basic stuff: CAN driver iface, linked list, system clock interface, tests 2014-01-25 20:06:43 +04:00
Pavel Kirienko 0d2f1da2a2 First commit 2014-01-24 14:21:15 +04:00
Pavel Kirienko 4ae1ef3c71 Initial commit 2014-01-23 11:41:25 -08:00
12737 changed files with 1231139 additions and 188508 deletions
-1
View File
@@ -1 +0,0 @@
--ignore-dir=Documentation
-198
View File
@@ -1,198 +0,0 @@
#!/usr/bin/env groovy
pipeline {
agent none
stages {
stage('Build') {
steps {
script {
def build_nodes = [:]
def docker_images = [
armhf: "px4io/px4-dev-armhf:2021-09-08",
arm64: "px4io/px4-dev-aarch64:2021-09-08",
base: "px4io/px4-dev-base-bionic:2021-09-08",
nuttx: "px4io/px4-dev-nuttx-focal:2021-09-08",
]
def armhf_builds = [
target: ["beaglebone_blue_default", "emlid_navio2_default", "px4_raspberrypi_default", "scumaker_pilotpi_default"],
image: docker_images.armhf,
archive: false
]
def arm64_builds = [
target: ["scumaker_pilotpi_arm64"],
image: docker_images.arm64,
archive: false
]
def base_builds = [
target: ["px4_sitl_rtps"],
image: docker_images.base,
archive: false
]
def nuttx_builds_archive = [
target: [
"airmind_mindpx-v2_default",
"ark_can-flow_canbootloader",
"ark_can-flow_default",
"ark_can-gps_canbootloader",
"ark_can-gps_default",
"ark_can-rtk-gps_canbootloader",
"ark_can-rtk-gps_default",
"atl_mantis-edu_default",
"av_x-v1_default",
"bitcraze_crazyflie_default",
"bitcraze_crazyflie21_default",
"cuav_can-gps-v1_canbootloader",
"cuav_can-gps-v1_default",
"cuav_nora_default",
"cuav_x7pro_default",
"cubepilot_cubeorange_default",
"cubepilot_cubeyellow_default",
"freefly_can-rtk-gps_canbootloader",
"freefly_can-rtk-gps_default",
"holybro_can-gps-v1_canbootloader",
"holybro_can-gps-v1_default",
"holybro_durandal-v1_default",
"holybro_kakutef7_default",
"holybro_pix32v5_default",
"matek_h743-slim",
"modalai_fc-v1_default",
"modalai_fc-v1_rtps",
"modalai_fc-v2_default",
"mro_ctrl-zero-f7_default",
"mro_ctrl-zero-f7-oem_default",
"mro_ctrl-zero-h7_default",
"mro_ctrl-zero-h7_rtps",
"mro_ctrl-zero-h7-oem_default",
"mro_ctrl-zero-h7-oem_rtps",
"mro_pixracerpro_default",
"mro_pixracerpro_rtps",
"mro_x21-777_default",
"mro_x21_default",
"nxp_fmuk66-e_default",
"nxp_fmuk66-e_rtps",
"nxp_fmuk66-e_socketcan",
"nxp_fmuk66-v3_default",
"nxp_fmuk66-v3_rtps",
"nxp_fmuk66-v3_socketcan",
"nxp_fmurt1062-v1_default",
"nxp_ucans32k146_canbootloader",
"nxp_ucans32k146_default",
"omnibus_f4sd_default",
"raspberrypi_pico_default",
"px4_fmu-v2_default",
"px4_fmu-v2_fixedwing",
"px4_fmu-v2_multicopter",
"px4_fmu-v2_rover",
"px4_fmu-v3_default",
"px4_fmu-v4_default",
"px4_fmu-v4pro_default",
"px4_fmu-v5_debug",
"px4_fmu-v5_default",
"px4_fmu-v5_rtps",
"px4_fmu-v5_stackcheck",
"px4_fmu-v5_uavcanv0periph",
"px4_fmu-v5_uavcanv1",
"px4_fmu-v5x_base_phy_DP83848C",
"px4_fmu-v5x_default",
"px4_fmu-v6u_default",
"px4_fmu-v6x_default",
"px4_io-v2_default",
"spracing_h7extreme_default",
"uvify_core_default"
],
image: docker_images.nuttx,
archive: true
]
def docker_builds = [
armhf_builds, base_builds, nuttx_builds_archive
]
for (def build_type = 0; build_type < docker_builds.size(); build_type++) {
for (def build_target = 0; build_target < docker_builds[build_type].target.size(); build_target++) {
build_nodes.put(docker_builds[build_type].target[build_target],
createBuildNode(docker_builds[build_type].archive, docker_builds[build_type].image, docker_builds[build_type].target[build_target])
)
}
}
parallel build_nodes
} // script
} // steps
} // stage Build
// TODO: actually upload artifacts to S3
// stage('S3 Upload') {
// agent {
// docker { image 'px4io/px4-dev-base-focal:2021-09-08' }
// }
// options {
// skipDefaultCheckout()
// }
// when {
// anyOf {
// branch 'master'
// branch 'beta'
// branch 'stable'
// branch 'pr-jenkins' // for testing
// }
// }
// steps {
// sh 'echo "uploading to S3"'
// }
// }
} // stages
environment {
CCACHE_DIR = '/tmp/ccache'
CI = true
}
options {
buildDiscarder(logRotator(numToKeepStr: '5', artifactDaysToKeepStr: '14'))
timeout(time: 90, unit: 'MINUTES')
}
}
def createBuildNode(Boolean archive, String docker_image, String target) {
return {
bypass_entrypoint = ''
node {
docker.withRegistry('https://registry.hub.docker.com', 'docker_hub_dagar') {
docker.image(docker_image).inside('-e CCACHE_BASEDIR=${WORKSPACE} -v ${CCACHE_DIR}:${CCACHE_DIR}:rw' + bypass_entrypoint) {
stage(target) {
try {
sh('export')
checkout(scm)
sh('make distclean')
sh('git fetch --tags')
sh('ccache -s')
sh('make ' + target)
sh('ccache -s')
sh('make sizes')
if (archive) {
archiveArtifacts(allowEmptyArchive: false, artifacts: 'build/*/*.px4, build/*/*.elf, build/*/*.bin', fingerprint: true, onlyIfSuccessful: true)
}
sh('make ' + target + ' package')
archiveArtifacts(allowEmptyArchive: true, artifacts: 'build/*/*.tar.bz2', fingerprint: true, onlyIfSuccessful: true)
archiveArtifacts(allowEmptyArchive: true, artifacts: 'build/*/*.deb', fingerprint: true, onlyIfSuccessful: true)
}
catch (exc) {
throw (exc)
}
finally {
sh('make distclean')
}
}
}
}
}
}
}
-959
View File
@@ -1,959 +0,0 @@
#!/usr/bin/env groovy
pipeline {
agent none
stages {
stage('Hardware Test') {
parallel {
stage("cubepilot_cubeorange_test") {
stages {
stage("build cubepilot_cubeorange_test") {
agent {
docker {
image 'px4io/px4-dev-nuttx-focal:2021-09-08'
args '--cpu-shares 512 -e CCACHE_BASEDIR=$WORKSPACE -v ${CCACHE_DIR}:${CCACHE_DIR}:rw'
}
}
steps {
checkoutSCM()
sh 'make cubepilot_cubeorange_bootloader'
sh 'make cubepilot_cubeorange_test'
sh 'ccache -s'
stash includes: 'build/*/*.elf, platforms/nuttx/Debug/*, Tools/HIL/*, build/cubepilot_cubeorange_test/etc/init.d/airframes/*', name: 'cubepilot_cubeorange_test'
}
post {
always {
sh 'make distclean'
}
}
} // stage build
stage("hardware") {
agent {
label 'cubepilot_cubeorange'
}
stages {
stage("flash") {
steps {
sh 'export'
sh 'find /dev/serial'
unstash 'cubepilot_cubeorange_test'
sh './platforms/nuttx/Debug/upload_jlink_gdb.sh build/cubepilot_cubeorange_bootloader/cubepilot_cubeorange_bootloader.elf'
// flash board and watch bootup
sh './platforms/nuttx/Debug/upload_jlink_gdb.sh build/cubepilot_cubeorange_test/cubepilot_cubeorange_test.elf && ./Tools/HIL/monitor_firmware_upload.py --device `find /dev/serial -name *usb-*` --baudrate 57600'
resetBoard()
}
}
stage("tests") {
steps {
// run tests
runTests()
// load all airframes
// sh("./Tools/HIL/test_airframes.sh `find /dev/serial -name *usb-*` `cd build/cubepilot_cubeorange_test/etc/init.d/airframes/; find . -regex '.*/[0-9].*' -exec basename {} \\; | cut -d '_' -f 1` || true") // test loading all airframes\
}
}
stage("status") {
steps {
// configure
resetParameters()
sh './Tools/HIL/nsh_param_set.py --device `find /dev/serial -name *usb-*` --name "IMU_GYRO_RATEMAX" --value "2000"'
sh './Tools/HIL/nsh_param_set.py --device `find /dev/serial -name *usb-*` --name "SYS_AUTOSTART" --value "13000"' // generic vtol standard
sh './Tools/HIL/nsh_param_set.py --device `find /dev/serial -name *usb-*` --name "SYS_BL_UPDATE" --value "1"' // update bootloader
checkStatus()
quickCalibrate()
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "px4io status"'
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "calib_udelay"'
}
}
stage("print topics") {
steps {
printTopics()
}
}
}
post {
always {
sh './platforms/nuttx/Debug/jlink_gdb_backtrace.sh build/cubepilot_cubeorange_test/cubepilot_cubeorange_test.elf || true'
}
}
} // stage test
}
}
stage("cuav_x7pro_test") {
stages {
stage("build cuav_x7pro_test") {
agent {
docker {
image 'px4io/px4-dev-nuttx-focal:2021-09-08'
args '--cpu-shares 512 -e CCACHE_BASEDIR=$WORKSPACE -v ${CCACHE_DIR}:${CCACHE_DIR}:rw'
}
}
steps {
checkoutSCM()
sh 'make cuav_x7pro_bootloader'
sh 'make cuav_x7pro_test'
sh 'ccache -s'
stash includes: 'build/*/*.elf, platforms/nuttx/Debug/*, Tools/HIL/*', name: 'cuav_x7pro_test'
}
post {
always {
sh 'make distclean'
}
}
} // stage build
stage("hardware") {
agent {
label 'cuav_x7pro'
}
stages {
stage("flash") {
steps {
sh 'export'
sh 'find /dev/serial'
unstash 'cuav_x7pro_test'
sh './platforms/nuttx/Debug/upload_jlink_gdb.sh build/cuav_x7pro_bootloader/cuav_x7pro_bootloader.elf'
// flash board and watch bootup
sh './platforms/nuttx/Debug/upload_jlink_gdb.sh build/cuav_x7pro_test/cuav_x7pro_test.elf && ./Tools/HIL/monitor_firmware_upload.py --device `find /dev/serial -name *usb-*` --baudrate 57600'
resetBoard()
}
}
stage("tests") {
steps {
runTests()
}
}
stage("status") {
steps {
// configure
resetParameters()
sh './Tools/HIL/nsh_param_set.py --device `find /dev/serial -name *usb-*` --name "IMU_GYRO_RATEMAX" --value "2000"'
sh './Tools/HIL/nsh_param_set.py --device `find /dev/serial -name *usb-*` --name "SYS_AUTOSTART" --value "13000"' // generic vtol standard
sh './Tools/HIL/nsh_param_set.py --device `find /dev/serial -name *usb-*` --name "SYS_BL_UPDATE" --value "1"' // update bootloader
checkStatus()
quickCalibrate()
}
}
stage("print topics") {
steps {
printTopics()
}
}
}
post {
always {
sh './platforms/nuttx/Debug/jlink_gdb_backtrace.sh build/cuav_x7pro_test/cuav_x7pro_test.elf || true'
}
}
} // stage test
}
}
stage("px4_fmu-v3_test") {
stages {
stage("build px4_fmu-v3_test") {
agent {
docker {
image 'px4io/px4-dev-nuttx-focal:2021-09-08'
args '--cpu-shares 512 -e CCACHE_BASEDIR=$WORKSPACE -v ${CCACHE_DIR}:${CCACHE_DIR}:rw'
}
}
steps {
checkoutSCM()
sh 'make px4_fmu-v3_test'
sh 'make px4_fmu-v3_test bootloader_elf'
sh 'ccache -s'
stash includes: 'build/*/*.elf, platforms/nuttx/Debug/*, Tools/HIL/*', name: 'px4_fmu-v3_test'
}
post {
always {
sh 'make distclean'
}
}
} // stage build
stage("hardware") {
agent {
label 'px4_fmu-v3'
}
stages {
stage("flash") {
steps {
sh 'export'
sh 'find /dev/serial'
unstash 'px4_fmu-v3_test'
sh './platforms/nuttx/Debug/upload_jlink_gdb.sh build/px4_fmu-v3_test/px4_fmu-v3_bootloader.elf'
// flash board and watch bootup
sh './platforms/nuttx/Debug/upload_jlink_gdb.sh build/px4_fmu-v3_test/px4_fmu-v3_test.elf && ./Tools/HIL/monitor_firmware_upload.py --device `find /dev/serial -name *usb-*` --baudrate 57600'
resetBoard()
}
}
stage("tests") {
steps {
runTests()
}
}
stage("status") {
steps {
// configure
resetParameters()
sh './Tools/HIL/nsh_param_set.py --device `find /dev/serial -name *usb-*` --name "SYS_AUTOSTART" --value "13000"' // generic vtol standard
sh './Tools/HIL/nsh_param_set.py --device `find /dev/serial -name *usb-*` --name "SYS_BL_UPDATE" --value "1"' // update bootloader
checkStatus()
quickCalibrate()
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "px4io status"'
}
}
stage("print topics") {
steps {
printTopics()
}
}
}
post {
always {
sh './platforms/nuttx/Debug/jlink_gdb_backtrace.sh build/px4_fmu-v3_test/px4_fmu-v3_test.elf || true'
}
}
} // stage test
}
}
stage("px4_fmu-v4_test") {
stages {
stage("build px4_fmu-v4_test") {
agent {
docker {
image 'px4io/px4-dev-nuttx-focal:2021-09-08'
args '--cpu-shares 512 -e CCACHE_BASEDIR=$WORKSPACE -v ${CCACHE_DIR}:${CCACHE_DIR}:rw'
}
}
steps {
checkoutSCM()
sh 'make px4_fmu-v4_test'
sh 'make px4_fmu-v4_test bootloader_elf'
sh 'ccache -s'
stash includes: 'build/*/*.elf, platforms/nuttx/Debug/*, Tools/HIL/*', name: 'px4_fmu-v4_test'
}
post {
always {
sh 'make distclean'
}
}
} // stage build
stage("hardware") {
agent {
label 'px4_fmu-v4'
}
stages {
stage("flash") {
steps {
sh 'export'
sh 'find /dev/serial'
unstash 'px4_fmu-v4_test'
sh './platforms/nuttx/Debug/upload_jlink_gdb.sh build/px4_fmu-v4_test/px4_fmu-v4_bootloader.elf'
// flash board and watch bootup
sh './platforms/nuttx/Debug/upload_jlink_gdb.sh build/px4_fmu-v4_test/px4_fmu-v4_test.elf && ./Tools/HIL/monitor_firmware_upload.py --device `find /dev/serial -name *usb-*` --baudrate 57600'
resetBoard()
}
}
stage("tests") {
steps {
runTests()
}
}
stage("status") {
steps {
// configure
resetParameters()
sh './Tools/HIL/nsh_param_set.py --device `find /dev/serial -name *usb-*` --name "SYS_AUTOSTART" --value "4001"' // generic quadcopter
sh './Tools/HIL/nsh_param_set.py --device `find /dev/serial -name *usb-*` --name "SYS_BL_UPDATE" --value "1"' // update bootloader
checkStatus()
quickCalibrate()
}
}
stage("print topics") {
steps {
printTopics()
}
}
}
post {
always {
sh './platforms/nuttx/Debug/jlink_gdb_backtrace.sh build/px4_fmu-v4_test/px4_fmu-v4_test.elf || true'
}
}
} // stage test
}
}
stage("px4_fmu-v4pro_test") {
stages {
stage("build px4_fmu-v4pro_test") {
agent {
docker {
image 'px4io/px4-dev-nuttx-focal:2021-09-08'
args '--cpu-shares 512 -e CCACHE_BASEDIR=$WORKSPACE -v ${CCACHE_DIR}:${CCACHE_DIR}:rw'
}
}
steps {
checkoutSCM()
sh 'make px4_fmu-v4pro_test'
sh 'make px4_fmu-v4pro_test bootloader_elf'
sh 'ccache -s'
stash includes: 'build/*/*.elf, platforms/nuttx/Debug/*, Tools/HIL/*', name: 'px4_fmu-v4pro_test'
}
post {
always {
sh 'make distclean'
}
}
} // stage build
stage("hardware") {
agent {
label 'px4_fmu-v4pro'
}
stages {
stage("flash") {
steps {
sh 'export'
sh 'find /dev/serial'
unstash 'px4_fmu-v4pro_test'
sh './platforms/nuttx/Debug/upload_jlink_gdb.sh build/px4_fmu-v4pro_test/px4_fmu-v4pro_bootloader.elf'
// flash board and watch bootup
sh './platforms/nuttx/Debug/upload_jlink_gdb.sh build/px4_fmu-v4pro_test/px4_fmu-v4pro_test.elf && ./Tools/HIL/monitor_firmware_upload.py --device `find /dev/serial -name *usb-*` --baudrate 57600'
resetBoard()
}
}
stage("tests") {
steps {
runTests()
}
}
stage("status") {
steps {
// configure
resetParameters()
sh './Tools/HIL/nsh_param_set.py --device `find /dev/serial -name *usb-*` --name "SYS_AUTOSTART" --value "13000"' // generic vtol standard
sh './Tools/HIL/nsh_param_set.py --device `find /dev/serial -name *usb-*` --name "SYS_BL_UPDATE" --value "1"' // update bootloader
checkStatus()
quickCalibrate()
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "px4io status"'
}
}
stage("print topics") {
steps {
printTopics()
}
}
}
post {
always {
sh './platforms/nuttx/Debug/jlink_gdb_backtrace.sh build/px4_fmu-v4pro_test/px4_fmu-v4pro_test.elf || true'
}
}
} // stage test
}
}
stage("px4_fmu-v5_debug") {
stages {
stage("build px4_fmu-v5_debug") {
agent {
docker {
image 'px4io/px4-dev-nuttx-focal:2021-09-08'
args '--cpu-shares 512 -e CCACHE_BASEDIR=$WORKSPACE -v ${CCACHE_DIR}:${CCACHE_DIR}:rw'
}
}
steps {
checkoutSCM()
sh 'make px4_fmu-v5_debug'
sh 'make px4_fmu-v5_debug bootloader_elf'
sh 'ccache -s'
stash includes: 'build/*/*.elf, platforms/nuttx/Debug/*, Tools/HIL/*', name: 'px4_fmu-v5_debug'
}
post {
always {
sh 'make distclean'
}
}
} // stage build
stage("hardware") {
agent {
label 'px4_fmu-v5'
}
stages {
stage("flash") {
steps {
sh 'export'
sh 'find /dev/serial'
unstash 'px4_fmu-v5_debug'
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set SYS_AUTOSTART 0" || true'
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set IMU_GYRO_RATEMAX 200" || true' // limit cpu usage
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set MAV_0_CONFIG 0" || true' // limit cpu usage
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set MAV_1_CONFIG 0" || true' // limit cpu usage
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param save" || true'
sh './platforms/nuttx/Debug/upload_jlink_gdb.sh build/px4_fmu-v5_debug/px4_fmu-v5_bootloader.elf'
// flash board and watch bootup
sh './platforms/nuttx/Debug/upload_jlink_gdb.sh build/px4_fmu-v5_debug/px4_fmu-v5_debug.elf && ./Tools/HIL/monitor_firmware_upload.py --device `find /dev/serial -name *usb-*` --baudrate 57600 || true'
resetBoard()
}
}
stage("tests") {
steps {
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "top once"'
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "uorb top -1"'
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "work_queue status"'
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "sd_bench"'
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "sd_bench -v"'
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "sd_bench -u -v"'
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "sd_stress"'
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "tests dataman"'
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "tests file" || true'
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "uorb_tests"'
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "uorb_tests latency_test" || true'
}
}
stage("status") {
steps {
// configure
resetParameters()
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set SYS_AUTOSTART 4001" || true' // generic quadcopter
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set IMU_GYRO_RATEMAX 200" || true' // limit cpu usage
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set MAV_0_CONFIG 0" || true' // limit cpu usage
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set MAV_1_CONFIG 0" || true' // limit cpu usage
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set SDLOG_MODE -1" || true' // limit cpu usage
checkStatus()
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "px4io status" || true'
}
}
stage("print topics") {
steps {
printTopics()
}
}
}
post {
always {
sh './platforms/nuttx/Debug/jlink_gdb_backtrace.sh build/px4_fmu-v5_debug/px4_fmu-v5_debug.elf || true'
}
}
} // stage test
}
}
stage("px4_fmu-v5_stackcheck") {
stages {
stage("build px4_fmu-v5_stackcheck") {
agent {
docker {
image 'px4io/px4-dev-nuttx-focal:2021-09-08'
args '--cpu-shares 512 -e CCACHE_BASEDIR=$WORKSPACE -v ${CCACHE_DIR}:${CCACHE_DIR}:rw'
}
}
steps {
checkoutSCM()
sh 'make px4_fmu-v5_stackcheck'
sh 'make px4_fmu-v5_stackcheck bootloader_elf'
sh 'ccache -s'
stash includes: 'build/*/*.elf, platforms/nuttx/Debug/*, Tools/HIL/*', name: 'px4_fmu-v5_stackcheck'
}
post {
always {
sh 'make distclean'
}
}
} // stage build
stage("hardware") {
agent {
label 'px4_fmu-v5'
}
stages {
stage("flash") {
steps {
sh 'export'
sh 'find /dev/serial'
unstash 'px4_fmu-v5_stackcheck'
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set SYS_AUTOSTART 0" || true'
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set IMU_GYRO_RATEMAX 200" || true' // limit cpu usage
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set MAV_0_CONFIG 0" || true' // limit cpu usage
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set MAV_1_CONFIG 0" || true' // limit cpu usage
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param save" || true'
sh './platforms/nuttx/Debug/upload_jlink_gdb.sh build/px4_fmu-v5_stackcheck/px4_fmu-v5_bootloader.elf'
// flash board and watch bootup
sh './platforms/nuttx/Debug/upload_jlink_gdb.sh build/px4_fmu-v5_stackcheck/px4_fmu-v5_stackcheck.elf && ./Tools/HIL/monitor_firmware_upload.py --device `find /dev/serial -name *usb-*` --baudrate 57600'
resetBoard()
}
}
stage("tests") {
steps {
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "top once"'
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "work_queue status"'
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "uorb_tests"'
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "uorb_tests latency_test" || true'
}
}
stage("status") {
steps {
// configure
resetParameters()
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set SYS_AUTOSTART 4001" || true' // generic quadcopter
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set IMU_GYRO_RATEMAX 200" || true' // limit cpu usage
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set MAV_0_CONFIG 0" || true' // limit cpu usage
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set MAV_1_CONFIG 0" || true' // limit cpu usage
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set SDLOG_MODE -1" || true' // limit cpu usage
checkStatus()
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "px4io status" || true'
}
}
stage("print topics") {
steps {
printTopics()
}
}
}
post {
always {
sh './platforms/nuttx/Debug/jlink_gdb_backtrace.sh build/px4_fmu-v5_stackcheck/px4_fmu-v5_stackcheck.elf || true'
}
}
} // stage test
}
}
stage("px4_fmu-v5_test") {
stages {
stage("build px4_fmu-v5_test") {
agent {
docker {
image 'px4io/px4-dev-nuttx-focal:2021-09-08'
args '--cpu-shares 512 -e CCACHE_BASEDIR=$WORKSPACE -v ${CCACHE_DIR}:${CCACHE_DIR}:rw'
}
}
steps {
checkoutSCM()
sh 'make px4_fmu-v5_test'
sh 'make px4_fmu-v5_test bootloader_elf'
sh 'ccache -s'
stash includes: 'build/*/*.elf, platforms/nuttx/Debug/*, Tools/HIL/*', name: 'px4_fmu-v5_test'
}
post {
always {
sh 'make distclean'
}
}
} // stage build
stage("hardware") {
agent {
label 'px4_fmu-v5'
}
stages {
stage("flash") {
steps {
sh 'export'
sh 'find /dev/serial'
unstash 'px4_fmu-v5_test'
sh './platforms/nuttx/Debug/upload_jlink_gdb.sh build/px4_fmu-v5_test/px4_fmu-v5_bootloader.elf'
// flash board and watch bootup
sh './platforms/nuttx/Debug/upload_jlink_gdb.sh build/px4_fmu-v5_test/px4_fmu-v5_test.elf && ./Tools/HIL/monitor_firmware_upload.py --device `find /dev/serial -name *usb-*` --baudrate 57600'
resetBoard()
}
}
stage("tests") {
steps {
runTests()
}
}
stage("status") {
steps {
// configure
resetParameters()
sh './Tools/HIL/nsh_param_set.py --device `find /dev/serial -name *usb-*` --name "SYS_AUTOSTART" --value "4001"' // generic quadcopter
sh './Tools/HIL/nsh_param_set.py --device `find /dev/serial -name *usb-*` --name "SYS_BL_UPDATE" --value "1"' // update bootloader
checkStatus()
quickCalibrate()
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "px4io status" || true'
}
}
stage("print topics") {
steps {
printTopics()
}
}
}
post {
always {
sh './platforms/nuttx/Debug/jlink_gdb_backtrace.sh build/px4_fmu-v5_test/px4_fmu-v5_test.elf || true'
}
}
} // stage test
}
}
stage("nxp_fmuk66-v3_test") {
stages {
stage("build nxp_fmuk66-v3_test") {
agent {
docker {
image 'px4io/px4-dev-nuttx-focal:2021-09-08'
args '--cpu-shares 512 -e CCACHE_BASEDIR=$WORKSPACE -v ${CCACHE_DIR}:${CCACHE_DIR}:rw'
}
}
steps {
checkoutSCM()
sh 'make nxp_fmuk66-v3_test'
//sh 'make nxp_fmuk66-v3_test bootloader_elf'
sh 'ccache -s'
stash includes: 'build/*/*.elf, platforms/nuttx/Debug/*, Tools/HIL/*', name: 'nxp_fmuk66-v3_test'
}
post {
always {
sh 'make distclean'
}
}
} // stage build
stage("hardware") {
agent {
label 'nxp_fmuk66-v3'
}
stages {
stage("flash") {
steps {
sh 'export'
sh 'find /dev/serial'
unstash 'nxp_fmuk66-v3_test'
//sh './platforms/nuttx/Debug/upload_jlink_gdb.sh build/nxp_fmuk66-v3_test/nxp_fmuk66-v3_bootloader.elf'
// flash board and watch bootup
sh './platforms/nuttx/Debug/upload_jlink_gdb.sh build/nxp_fmuk66-v3_test/nxp_fmuk66-v3_test.elf && ./Tools/HIL/monitor_firmware_upload.py --device `find /dev/serial -name *usb-*` --baudrate 57600'
resetBoard()
}
}
stage("tests") {
steps {
runTests()
}
}
stage("status") {
steps {
// configure
resetParameters()
sh './Tools/HIL/nsh_param_set.py --device `find /dev/serial -name *usb-*` --name "IMU_GYRO_RATEMAX" --value "400"'
sh './Tools/HIL/nsh_param_set.py --device `find /dev/serial -name *usb-*` --name "SYS_AUTOSTART" --value "4001"' // generic quadcopter
sh './Tools/HIL/nsh_param_set.py --device `find /dev/serial -name *usb-*` --name "SYS_BL_UPDATE" --value "1"' // update bootloader
checkStatus()
quickCalibrate()
}
}
stage("print topics") {
steps {
printTopics()
}
}
}
post {
always {
sh './platforms/nuttx/Debug/jlink_gdb_backtrace.sh build/nxp_fmuk66-v3_test/nxp_fmuk66-v3_test.elf || true'
}
}
} // stage test
}
}
} // parallel
} // stage Hardware Test
} // stages
environment {
CCACHE_DIR = '/tmp/ccache'
CCACHE_NOHASHDIR = 1
CI = true
}
options {
buildDiscarder(logRotator(numToKeepStr: '30', artifactDaysToKeepStr: '60'))
timeout(time: 180, unit: 'MINUTES')
skipDefaultCheckout()
}
}
void checkoutSCM() {
retry(3) {
checkout scm
sh 'export'
sh 'make distclean'
sh 'git fetch --tags'
sh 'ccache -z'
}
}
void quickCalibrate() {
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param show CAL_*"' // parameters before
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "sensors status"'
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "gyro_calibration status || true"'
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "commander calibrate accel quick"'
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param show CAL_ACC*"'
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "commander calibrate gyro"'
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param show CAL_GYRO*"'
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "commander calibrate level"'
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param show SENS*"'
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "commander calibrate mag quick"'
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param show CAL_MAG*"'
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param show CAL_*"' // parameters after
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "sensors status"'
}
void checkStatus() {
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param save"'
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param status"'
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param show SYS*"'
sh './Tools/HIL/reboot.py --device `find /dev/serial -name *usb-*`' // reboot to apply
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param show SYS*"'
// run logger
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "logger on" || true'
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "sleep 1"' // sleep before continuing
// status commands
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "cat /proc/meminfo"'
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "cat /proc/uptime"'
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "commander check" || true'
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "commander status"'
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "dataman status"'
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "df"'
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "ekf2 status"'
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "free"'
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "gps status"'
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "listener cpuload; top once; listener cpuload"'
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "logger status" || true'
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "ls /"'
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "ls /bin"'
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "ls /dev"'
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "ls /etc"'
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "ls /obj"'
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "ls /proc"'
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "mavlink status streams" || true'
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "mavlink status" || true'
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "mount"'
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "mtd status"'
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param show" || true'
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param status"'
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "perf latency"'
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "perf"'
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "ps"'
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "pwm info -d /dev/pwm_output0"'
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "pwm info -d /dev/pwm_output1" || true'
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "pwm_out status"'
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "sensors status"'
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "top once"'
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "uavcan status" || true'
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "uorb status"'
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "uorb top -1 -a"'
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "ver all"'
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "work_queue status"'
// stop logger
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "logger off" || true'
}
void resetParameters() {
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param reset_all"'
sh './Tools/HIL/nsh_param_set.py --device `find /dev/serial -name *usb-*` --name "CBRK_BUZZER" --value "782097"'
sh './Tools/HIL/nsh_param_set.py --device `find /dev/serial -name *usb-*` --name "SDLOG_DIRS_MAX" --value "1"'
}
void runTests() {
// test loading a range of airframes
sh './Tools/HIL/test_airframes.sh `find /dev/serial -name *usb-*` 1000 1001 2100 3000 4001 6001 8001 10016'
resetParameters()
sh './Tools/HIL/nsh_param_set.py --device `find /dev/serial -name *usb-*` --name "IMU_GYRO_CAL_EN" --value "0" || true' // disable during testing
sh './Tools/HIL/nsh_param_set.py --device `find /dev/serial -name *usb-*` --name "IMU_GYRO_FFT_EN" --value "0" || true' // disable during testing
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param save"'
sh './Tools/HIL/reboot.py --device `find /dev/serial -name *usb-*`' // reboot to apply
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "top once"'
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "work_queue status"'
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "commander_tests" || true'
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "controllib_test"'
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "lightware_laser_test"'
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "mavlink_tests" || true' // TODO
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "uorb_tests"'
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "uorb_tests latency_test" || true'
sh './Tools/HIL/run_tests.py --device `find /dev/serial -name *usb-*`'
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "tests file" || true'
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "mtd readtest"'
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "mtd rwtest"'
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "mtd erase"'
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "sd_bench"'
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "sd_bench -v"'
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "sd_bench -u -v"'
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "sd_stress"'
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "commander stop"'
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "sensors stop"' // ignore irrelevant sensor timeouts during microbenchmarks
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "microbench all"'
// test rebooting multiple times
resetParameters()
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set SYS_AUTOSTART 4001" || true'
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param save"'
sh './Tools/HIL/reboot.py --device `find /dev/serial -name *usb-*`'
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param show CBRK*; param show SYS*"' // check that CBRK_BUZZER and SYS_AUTOSTART haven't been lost
sh './Tools/HIL/reboot.py --device `find /dev/serial -name *usb-*`'
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param show CBRK*; param show SYS*"' // check that CBRK_BUZZER and SYS_AUTOSTART haven't been lost
sh './Tools/HIL/reboot.py --device `find /dev/serial -name *usb-*`'
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param show CBRK*; param show SYS*"' // check that CBRK_BUZZER and SYS_AUTOSTART haven't been lost
sh './Tools/HIL/reboot.py --device `find /dev/serial -name *usb-*`'
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param show CBRK*; param show SYS*"' // check that CBRK_BUZZER and SYS_AUTOSTART haven't been lost
}
void printTopics() {
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "ls /obj"'
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "uorb status"'
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "uorb top -1 -a"'
// these are for casually inspecting the system, output failure doesn't matter
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "listener actuator_armed" || true'
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "listener actuator_controls_0" || true'
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "listener actuator_controls_1" || true'
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "listener actuator_controls_2" || true'
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "listener actuator_controls_3" || true'
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "listener actuator_outputs" || true'
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "listener adc_report" || true'
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "listener airspeed_validated" || true'
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "listener airspeed_wind" || true'
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "listener battery_status" || true'
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "listener commander_state" || true'
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "listener cpuload" || true'
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "listener distance_sensor" || true'
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "listener ekf2_timestamps" || true'
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "listener ekf_gps_drift" || true'
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "listener esc_status" || true'
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "listener estimator_attitude" || true'
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "listener estimator_baro_bias" || true'
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "listener estimator_event_flags" || true'
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "listener estimator_global_position" || true'
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "listener estimator_innovation_test_ratios" || true'
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "listener estimator_innovation_variances" || true'
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "listener estimator_innovations" || true'
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "listener estimator_local_position" || true'
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "listener estimator_odometry" || true'
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "listener estimator_optical_flow_vel" || true'
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "listener estimator_selector_status" || true'
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "listener estimator_sensor_bias" || true'
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "listener estimator_states" || true'
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "listener estimator_status" || true'
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "listener estimator_status_flags" || true'
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "listener estimator_wind" || true'
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "listener event" || true'
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "listener heater_status" || true'
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "listener input_rc" || true'
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "listener led_control" || true'
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "listener log_message" || true'
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "listener logger_status" || true'
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "listener manual_control_setpoint" || true'
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "listener mavlink_log" || true'
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "listener mission" || true'
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "listener multirotor_motor_limits" || true'
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "listener optical_flow" || true'
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "listener parameter_update" || true'
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "listener position_controller_landing_status" || true'
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "listener position_setpoint_triplet" || true'
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "listener radio_status" || true'
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "listener rate_ctrl_status" || true'
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "listener safety" || true'
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "listener sensor_accel" || true'
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "listener sensor_accel_fifo" || true'
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "listener sensor_baro" || true'
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "listener sensor_combined" || true'
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "listener sensor_gyro" || true'
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "listener sensor_gyro_fft" || true'
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "listener sensor_gyro_fifo" || true'
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "listener sensor_mag" || true'
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "listener sensor_preflight_mag" || true'
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "listener sensor_selection" || true'
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "listener sensors_status_imu" || true'
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "listener system_power" || true'
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "listener task_stack_info" || true'
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "listener telemetry_status" || true'
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "listener test_motor" || true'
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "listener trajectory_setpoint" || true'
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "listener tune_control" || true'
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "listener vehicle_acceleration" || true'
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "listener vehicle_air_data" || true'
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "listener vehicle_angular_acceleration" || true'
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "listener vehicle_angular_velocity" || true'
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "listener vehicle_attitude" || true'
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "listener vehicle_attitude_setpoint" || true'
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "listener vehicle_command" || true'
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "listener vehicle_command_ack" || true'
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "listener vehicle_control_mode" || true'
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "listener vehicle_global_position" || true'
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "listener vehicle_imu" || true'
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "listener vehicle_imu_status" || true'
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "listener vehicle_land_detected" || true'
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "listener vehicle_local_position" || true'
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "listener vehicle_local_position_setpoint" || true'
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "listener vehicle_magnetometer" || true'
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "listener vehicle_odometry" || true'
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "listener vehicle_rates_setpoint" || true'
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "listener vehicle_status" || true'
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "listener vehicle_status_flags" || true'
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "listener vtol_vehicle_status" || true'
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "listener yaw_estimator_status" || true'
}
void resetBoard() {
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "df -h" || true'
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "ls /fs/" || true'
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "ls /fs/microsd" || true'
resetParameters()
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set SYS_AUTOSTART 0" || true'
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set IMU_GYRO_RATEMAX 200" || true' // limit cpu usage
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set MAV_0_CONFIG 0" || true' // limit cpu usage
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set MAV_1_CONFIG 0" || true' // limit cpu usage
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set SDLOG_MODE -1" || true' // limit cpu usage
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "echo > /fs/microsd/.format" || true'
sh './Tools/HIL/reboot.py --device `find /dev/serial -name *usb-*`' // reboot to apply
// check SD card
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "df -h" || true'
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "ls /fs/microsd" || true'
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "ls /proc/fs" || true'
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "cat /proc/fs/blocks" || true'
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "cat /proc/fs/mount" || true'
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "cat /proc/fs/usage" || true'
// format
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "dataman stop" || true'
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "umount /fs/microsd" || true'
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "top once" || true'
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "mkfatfs -F 32 /dev/mmcsd0" || true'
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "top once" || true'
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "mount -t vfat /dev/mmcsd0 /fs/microsd" || true'
// check SD card
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "df -h" || true'
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "ls /fs/microsd" || true'
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "ls /proc/fs" || true'
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "cat /proc/fs/blocks" || true'
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "cat /proc/fs/mount" || true'
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "cat /proc/fs/usage" || true'
sh './Tools/HIL/reboot.py --device `find /dev/serial -name *usb-*`' // reboot to apply
}
+10 -2
View File
@@ -1,11 +1,17 @@
---
Checks: '*,
-*-avoid-c-arrays,
-*-uppercase-literal-suffix,
-*-magic-numbers,
-altera-id-dependent-backward-branch,
-altera-unroll-loops,
-android*,
-bugprone-integer-division,
-cert-dcl50-cpp,
-cert-env33-c,
-cert-err34-c,
-cert-err58-cpp,
-cert-flp30-c,
-cert-msc30-c,
-cert-msc50-cpp,
-clang-analyzer-core.CallAndMessage,
@@ -18,6 +24,7 @@ Checks: '*,
-clang-analyzer-deadcode.DeadStores,
-clang-analyzer-optin.cplusplus.VirtualCall,
-clang-analyzer-optin.performance.Padding,
-clang-analyzer-security.FloatLoopCounter,
-clang-analyzer-security.insecureAPI.strcpy,
-clang-analyzer-unix.API,
-clang-analyzer-unix.cstring.BadSizeArg,
@@ -37,8 +44,7 @@ Checks: '*,
-cppcoreguidelines-pro-type-union-access,
-cppcoreguidelines-pro-type-vararg,
-cppcoreguidelines-special-member-functions,
-fuchsia-default-arguments,
-fuchsia-overloaded-operator,
-fuchsia-*,
-google-build-using-namespace,
-google-explicit-constructor,
-google-global-names-in-headers,
@@ -62,6 +68,7 @@ Checks: '*,
-hicpp-use-equals-delete,
-hicpp-use-override,
-hicpp-vararg,
-llvmlibc-*,
-llvm-header-guard,
-llvm-include-order,
-llvm-namespace-comment,
@@ -84,6 +91,7 @@ Checks: '*,
-modernize-use-override,
-modernize-use-trailing-return-type,
-modernize-use-using,
-modernize-use-trailing-return-type,
-performance-inefficient-string-concatenation,
-readability-avoid-const-params-in-decls,
-readability-container-size-empty,
+4 -2
View File
@@ -2,7 +2,7 @@
// https://github.com/microsoft/vscode-dev-containers/tree/v0.134.0/containers/cpp
{
"name": "px4-dev-nuttx",
"image": "px4io/px4-dev-nuttx-focal:2021-09-08",
"image": "px4io/px4-dev-nuttx-focal:2022-08-12",
"runArgs": [ "--cap-add=SYS_PTRACE", "--security-opt", "seccomp=unconfined" ],
@@ -15,6 +15,7 @@
"extensions": [
"chiehyu.vscode-astyle",
"dan-c-underwood.arm",
"editorconfig.editorconfig",
"fredericbonnet.cmake-test-adapter",
"github.vscode-pull-request-github",
"marus25.cortex-debug",
@@ -29,7 +30,8 @@
"twxs.cmake",
"uavcan.dsdl",
"wholroyd.jinja",
"zixuanwang.linkerscript"
"zixuanwang.linkerscript",
"ms-vscode.makefile-tools"
],
"containerUser": "user",
+22
View File
@@ -0,0 +1,22 @@
root = true
[*]
insert_final_newline = true
[{*.{c,cpp,cc,h,hpp},CMakeLists.txt,Kconfig}]
indent_style = tab
tab_width = 8
# Not in the official standard, but supported by many editors
max_line_length = 120
[*.yaml, *.yml]
indent_style = space
indent_size = 2
[*.sh]
indent_style = tab
indent_size = 2
insert_final_newline = true
trim_trailing_whitespace = true
# Not in the official standard, but supported by many editors
max_line_length = 80
+2 -2
View File
@@ -19,9 +19,8 @@
*.jar binary
*.xml text eol=lf
# PX4 mixers, msgs, etc
# PX4 msgs, etc
*.bin binary
*.mix text eol=lf
*.msg text eol=lf
*.config text eol=lf
*.sdf text eol=lf
@@ -73,6 +72,7 @@ Makefile.* text eol=lf
*.tar binary
*.tgz binary
*.zip binary
*.hex binary
# everything else
.gitattributes text eol=lf
-32
View File
@@ -1,32 +0,0 @@
---
name: Bug report
about: Create a report to help us improve
---
**Describe the bug**
A clear and concise description of the bug.
**To Reproduce**
Steps to reproduce the behavior:
1. Drone switched on '...'
2. Uploaded mission '....' (attach QGC mission file)
3. Took off '....'
4. See error
**Expected behavior**
A clear and concise description of what you expected to happen.
**Log Files and Screenshots**
*Always* provide a link to the flight log file:
- Download the flight log file from the vehicle ([tutorial](https://docs.px4.io/master/en/getting_started/flight_reporting.html)).
- Share the link to a log showing the problem on [PX4 Flight Review](http://logs.px4.io/).
Add screenshots to help explain your problem.
**Drone (please complete the following information):**
- Describe the type of drone.
- Photo of the IMU / autopilot setup if possible.
**Additional context**
Add any other context about the problem here.
@@ -1,19 +0,0 @@
---
name: 🚀 Feature Request
about: Suggest an idea for this project
---
For general questions please use [PX4 Discuss](http://discuss.px4.io/) or Slack (you can find an invite link on this project README).
**Describe problem solved by the proposed feature**
A clear and concise description of the problem, if any, this feature will solve. E.g. I'm always frustrated when ...
**Describe your preferred solution**
A clear and concise description of what you want to happen.
**Describe possible alternatives**
A clear and concise description of alternative solutions or features you've considered.
**Additional context**
Add any other context or screenshots for the feature request here.
@@ -1,10 +0,0 @@
---
name: ⛔ Support Question
about: See [PX4 Discuss](http://discuss.px4.io/) for questions about using PX4.
---
We use GitHub issues only to discuss PX4 bugs and new features. For
questions about using PX4 or related components, please use [PX4 Discuss](http://discuss.px4.io/).
Thanks!
@@ -1,9 +0,0 @@
---
name: ⛔ Documentation Issue
about: See https://github.com/PX4/Devguide for documentation issues
---
PX4 has dedicated repositories for developer documentation (https://github.com/PX4/Devguide) and user documentation (https://github.com/PX4/px4_user_guide).
Thanks!
+94
View File
@@ -0,0 +1,94 @@
name: 🐛 Bug report
description: Create a report to help us improve
title: "[Bug] "
labels: ["bug-report"]
body:
- type: textarea
attributes:
label: Describe the bug
description: A clear and concise description of the bug.
validations:
required: true
- type: textarea
attributes:
label: To Reproduce
description: |
Steps to reproduce the behavior.
1. Drone switched on '...'
2. Uploaded mission '....' (attach QGC mission file)
3. Took off '....'
4. See error
validations:
required: false
- type: textarea
attributes:
label: Expected behavior
description: A clear and concise description of what you expected to happen.
validations:
required: false
- type: textarea
attributes:
label: Screenshot / Media
description: Add screenshot / media if you have them
- type: textarea
attributes:
label: Flight Log
description: |
*Always* provide a link to the flight log file:
- Download the flight log file from the vehicle ([tutorial](https://docs.px4.io/main/en/getting_started/flight_reporting.html)).
- Upload the log to the [PX4 Flight Review](http://logs.px4.io/)
- Share the link to the log (Copy and paste the URL of the log)
placeholder: |
# PASTE HERE THE LINK TO THE LOG
validations:
required: false
- type: markdown
attributes:
value: |
## Setup
- type: textarea
attributes:
label: Software Version
description: |
Which version of PX4 are you using?
placeholder: |
# If you don't know the version, paste the output of `ver all` in the MAVLink Shell of QGC
validations:
required: false
- type: input
attributes:
label: Flight controller
description: Specify your flight controller model (what type is it, where was it bought from, ...).
validations:
required: false
- type: dropdown
attributes:
label: Vehicle type
options:
- Multicopter
- Helicopter
- Fixed Wing
- Hybrid VTOL
- Airship/Balloon
- Rover
- Boat
- Submarine
- Other
- type: textarea
attributes:
label: How are the different components wired up (including port information)
description: Details about how all is wired.
- type: textarea
attributes:
label: Additional context
description: Add any other context about the problem here.
+5
View File
@@ -0,0 +1,5 @@
blank_issues_enabled: false
contact_links:
- name: Support Question
url: https://docs.px4.io/main/en/contribute/support.html#forums-and-chat
about: For questions about using PX4 or related components, please use the discuss forum and discord server
@@ -0,0 +1,33 @@
name: 📑 Documentation Bug report
description: Create a report to help us improve the docs
title: "[Docs] [Bug] "
labels: ["Documentation 📑"]
body:
- type: textarea
attributes:
label: Describe the bug
description: A clear and concise description of the bug.
placeholder: |
# A PR to fix the bug is often better than adding this issue!
#
# If you can't create a PR please provide the following:
# - What page and/or section has the problem
# - What is the problem - missing information, incorrect information?
# - Suggested fixes, links to corresponding code PRs
# - Any additional context
validations:
required: true
- type: input
attributes:
label: Page URL
description: The URL of the problem page.
validations:
required: false
- type: textarea
attributes:
label: Screenshot / Media
description: Add screenshot / media if you have them
validations:
required: false
@@ -0,0 +1,35 @@
name: 🚀 Feature Request
description: Suggest an idea for this project
labels: ["feature-request"]
body:
- type: markdown
attributes:
value: |
## Please note that feature requests are not 'fire and forget'
It is a lot more likely that the feature you would like to have will be implemented if you keep watching your feature request, and provide more details to developers looking into implementing your feature, and help them with testing.
- type: textarea
attributes:
label: Describe problem solved by the proposed feature
description: A clear and concise description of the problem, if any, this feature will solve. E.g. I'm always frustrated when ...
validations:
required: true
- type: textarea
attributes:
label: Describe your preferred solution
description: A clear and concise description of what you want to happen.
validations:
required: true
- type: textarea
attributes:
label: Describe possible alternatives
description: A clear and concise description of any alternative solutions or features you've considered.
validations:
required: true
- type: textarea
attributes:
label: Additional context
description: Add any other context or screenshots for the feature request here.
+37
View File
@@ -0,0 +1,37 @@
<!--
Thank you for your contribution!
Get early feedback through
- Dronecode Discord: https://discord.gg/dronecode
- PX4 Discuss: http://discuss.px4.io/
- opening a draft pr and sharing the link
-->
### Solved Problem
When ... I found that ...
Fixes #{Github issue ID}
### Solution
- Add ... for ...
- Refactor ...
### Changelog Entry
For release notes:
```
Feature/Bugfix XYZ
New parameter: XYZ_Z
Documentation: Need to clarify page ... / done, read docs.px4.io/...
```
### Alternatives
We could also ...
### Test coverage
- Unit/integration test: ...
- Simulation/hardware testing logs: https://review.px4.io/
### Context
Related links, screenshot before/after, video
+6
View File
@@ -0,0 +1,6 @@
---
title: '[CI] Fuzzing Workflow Failed'
labels: ['Fuzzing']
---
The automated fuzzing workflow has failed.
See {{ env.WORKFLOW_RUN_URL }} for details.
+10
View File
@@ -0,0 +1,10 @@
# Labeler configuration file for GitHub Actions
# The action is ./.github/workflows/label.yml
# Docs for the syntax in this file can be found at
# https://github.com/actions/labeler
# Add 'Documentation' label to any changes within 'docs' folder or any subfolders
"Documentation 📑":
- changed-files:
- any-glob-to-any-file: docs/**
+24
View File
@@ -0,0 +1,24 @@
runners:
x86-small-runner:
cpu: [1, 2]
ram: [1, 4]
disk: default
spot: price-capacity-optimized
image: ubuntu24-full-x64
extras: s3-cache
x86-firmware-builder:
cpu: [4, 8]
ram: [8, 16]
disk: default
family: ["c7i", "m7i", "r7i"]
spot: price-capacity-optimized
image: ubuntu24-full-x64
extras: s3-cache
arm64-firmware-builder:
cpu: [4, 8]
ram: [8, 16]
disk: default
family: ["c7g", "m7g", "r7g"]
spot: price-capacity-optimized
image: ubuntu24-full-arm64
extras: s3-cache
-24
View File
@@ -1,24 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="90" height="20">
<linearGradient id="smooth" x2="0" y2="100%">
<stop offset="0" stop-color="#bbb" stop-opacity=".1"/>
<stop offset="1" stop-opacity=".1"/>
</linearGradient>
<mask id="round">
<rect width="90" height="20" rx="3" fill="#fff"/>
</mask>
<g mask="url(#round)">
<rect width="42" height="20" fill="#555"/>
<rect x="42" width="48" height="20" fill="#E01563"/>
<rect width="90" height="20" fill="url(#smooth)"/>
</g>
<g fill="#fff" text-anchor="middle" font-family="DejaVu Sans,Verdana,Geneva,sans-serif" font-size="11">
<text x="22" y="15" fill="#010101" fill-opacity=".3">slack</text>
<text x="22" y="14">slack</text>
<text x="65" y="15" fill="#010101" fill-opacity=".3">Join us!</text>
<text x="65" y="14">Join us!</text>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 894 B

-15
View File
@@ -1,15 +0,0 @@
# Number of days of inactivity before an issue becomes stale
daysUntilStale: 90
# Number of days of inactivity before a stale issue is closed, or `false` to disable
daysUntilClose: false
# Issues with these labels will never be considered stale
exemptLabels:
- pinned
# Label to use when marking an issue as stale
staleLabel: stale
# Comment to post when marking an issue as stale. Set to `false` to disable
markComment: >
This issue has been automatically marked as stale because it has not had
recent activity. Thank you for your contributions.
# Comment to post when closing a stale issue. Set to `false` to disable
closeComment: false
+265
View File
@@ -0,0 +1,265 @@
# NOTE: this workflow is now running on Dronecode / PX4 AWS account.
# - If you want to keep the tests running in GitHub Actions you need to uncomment the "runs-on: ubuntu-latest" lines
# and comment the "runs-on: [runs-on,runner=..." lines.
# - If you would like to duplicate this setup try setting up "RunsOn" on your own AWS account try https://runs-on.com
#
# ===================================================================================
# RELEASE UPLOAD LOGIC
# ===================================================================================
# This workflow handles building firmware and uploading to S3 + GitHub Releases.
#
# S3 Bucket Structure (s3://px4-travis/Firmware/):
# - master/ <- Latest main branch build (for QGC compatibility)
# - stable/ <- Latest stable release, controlled by 'stable' branch
# - beta/ <- Latest pre-release, controlled by 'beta' branch
# - vX.Y.Z/ <- Archived stable release
# - vX.Y.Z-beta1/ <- Archived pre-release
#
# Trigger Behavior:
# - Tag v1.16.1 -> Upload to: v1.16.1/ only (versioned archive)
# - Tag v1.17.0-beta1 -> Upload to: v1.17.0-beta1/ only (versioned archive)
# - Branch main -> Upload to: master/ (for QGC compatibility)
# - Branch stable -> Upload to: stable/ (QGC stable firmware)
# - Branch beta -> Upload to: beta/ (QGC beta firmware)
# - Branch release/** -> Build only, no S3 upload (CI validation)
# - Pull requests -> Build only, no S3 upload (CI validation)
#
# GitHub Releases:
# - All version tags create a draft GitHub Release
# - Pre-releases (alpha/beta/rc suffixes) are automatically marked as such
#
# IMPORTANT: Version tags do NOT upload to stable/ or beta/. Only the
# corresponding branch pushes control those directories. This prevents
# pre-release tags from accidentally overwriting stable firmware (#26340)
# and avoids race conditions between tag and branch builds.
# ===================================================================================
name: Build all targets
on:
push:
tags:
- 'v*'
branches:
- 'main'
- 'stable'
- 'beta'
- 'release/**'
paths-ignore:
- 'docs/**'
pull_request:
branches:
- '**'
paths-ignore:
- 'docs/**'
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
permissions:
contents: write
actions: read
jobs:
group_targets:
name: Scan for Board Targets
# runs-on: ubuntu-latest
runs-on: [runs-on,runner=1cpu-linux-x64,image=ubuntu24-full-x64,"run-id=${{ github.run_id }}",spot=false]
outputs:
matrix: ${{ steps.set-matrix.outputs.matrix }}
timestamp: ${{ steps.set-timestamp.outputs.timestamp }}
branchname: ${{ steps.set-branch.outputs.branchname }}
steps:
- uses: actions/checkout@v4
- name: Cache Python pip
uses: actions/cache@v4
with:
path: ~/.cache/pip
key: ${{ runner.os }}-pip-${{ hashFiles('**./Tools/setup/requirements.txt') }}
restore-keys: |
${{ runner.os }}-pip-
- name: Update python packaging to avoid canonicalize_version() error
run: |
pip3 install -U packaging
- name: Install Python Dependencies
uses: py-actions/py-dependency-install@v4
with:
path: "./Tools/setup/requirements.txt"
- id: set-matrix
name: Generate Build Matrix
run: echo "matrix=$(./Tools/ci/generate_board_targets_json.py --group)" >> $GITHUB_OUTPUT
- id: set-timestamp
name: Save Current Timestamp
run: echo "timestamp=$(date +"%Y%m%d%H%M%S")" >> $GITHUB_OUTPUT
- id: set-branch
name: Save Current Branch Name
run: |
echo "branchname=${{
github.event_name == 'pull_request' &&
format('pr-{0}', github.event.pull_request.number) ||
github.head_ref ||
github.ref_name
}}" >> $GITHUB_OUTPUT
- name: Debug Matrix Output
if: runner.debug == '1'
run: |
echo "${{ steps.set-timestamp.outputs.timestamp }}"
echo "${{ steps.set-branch.outputs.branchname }}"
echo "$(./Tools/ci/generate_board_targets_json.py --group --verbose)"
setup:
name: Build [${{ matrix.runner }}][${{ matrix.group }}]
# runs-on: ubuntu-latest
runs-on: [runs-on,"runner=8cpu-linux-${{ matrix.runner }}","image=ubuntu24-full-${{ matrix.runner }}","run-id=${{ github.run_id }}",spot=false]
needs: group_targets
strategy:
matrix: ${{ fromJson(needs.group_targets.outputs.matrix) }}
fail-fast: false
container:
image: ${{ matrix.container }}
steps:
- uses: runs-on/action@v2
- uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Git ownership workaround
run: git config --system --add safe.directory '*'
# ccache key breakdown:
# ccache-<system os>-<system arch>-<builder group>-
# ccache-<linux>-<arm64>-<aarch64-0>-
# ccache-<linux>-<x64>-<nuttx-0>-
- name: Cache Restore from Key
id: cc_restore
uses: actions/cache/restore@v4
with:
path: ~/.ccache
key: ${{ format('ccache-{0}-{1}-{2}', runner.os, matrix.runner, matrix.group) }}
restore-keys: |
ccache-${{ runner.os }}-${{ matrix.runner }}-${{ matrix.group }}-
ccache-${{ runner.os }}-${{ matrix.runner }}-
ccache-${{ runner.os }}-${{ matrix.runner }}-
ccache-${{ runner.os }}-
ccache-
- name: Cache Config and Stats
run: |
mkdir -p ~/.ccache
echo "base_dir = ${GITHUB_WORKSPACE}" > ~/.ccache/ccache.conf
echo "compression = true" >> ~/.ccache/ccache.conf
echo "compression_level = 6" >> ~/.ccache/ccache.conf
echo "max_size = 120M" >> ~/.ccache/ccache.conf
echo "hash_dir = false" >> ~/.ccache/ccache.conf
echo "compiler_check = content" >> ~/.ccache/ccache.conf
ccache -s
ccache -z
- name: Building Artifacts for [${{ matrix.targets }}]
run: |
./Tools/ci/build_all_runner.sh ${{matrix.targets}} ${{matrix.arch}}
- name: Arrange Build Artifacts
run: |
./Tools/ci/package_build_artifacts.sh
- name: Upload Build Artifacts
uses: actions/upload-artifact@v4
with:
name: px4_${{matrix.group}}_build_artifacts
path: artifacts/
- name: Cache Post Build Stats
if: always()
run: |
ccache -s
ccache -z
- name: Cache Save
if: always()
uses: actions/cache/save@v4
with:
path: ~/.ccache
key: ${{ steps.cc_restore.outputs.cache-primary-key }}
# ===========================================================================
# ARTIFACT UPLOAD JOB
# ===========================================================================
# Uploads build artifacts to S3 and creates GitHub Releases.
# Runs for version tags (v*), main, stable, and beta branch pushes.
# See header comments for full upload logic documentation.
# ===========================================================================
artifacts:
name: Upload Artifacts
# runs-on: ubuntu-latest
runs-on: [runs-on,runner=1cpu-linux-x64,image=ubuntu24-full-x64,"run-id=${{ github.run_id }}",spot=false]
needs: [setup, group_targets]
if: startsWith(github.ref, 'refs/tags/v') || contains(fromJSON('["main","stable","beta"]'), needs.group_targets.outputs.branchname)
outputs:
uploadlocation: ${{ steps.upload-location.outputs.uploadlocation }}
steps:
- name: Download Artifacts
uses: actions/download-artifact@v4
with:
path: artifacts/
merge-multiple: true
- name: Choose Upload Location
id: upload-location
run: |
set -euo pipefail
ref="${GITHUB_REF}"
branch=${{ needs.group_targets.outputs.branchname }}
location="$branch"
is_prerelease="false"
# Main branch uploads to "master" for QGC backward compatibility
if [[ "$branch" == "main" ]]; then
location="master"
fi
# Version tags: upload to versioned directory (e.g., v1.16.1/)
if [[ "$ref" == refs/tags/v[0-9]* ]]; then
tag="${ref#refs/tags/}"
location="$tag"
# Pre-release tags contain -alpha, -beta, or -rc suffix
if [[ "$tag" =~ -(alpha|beta|rc) ]]; then
is_prerelease="true"
fi
fi
echo "uploadlocation=$location" >> $GITHUB_OUTPUT
echo "is_prerelease=$is_prerelease" >> $GITHUB_OUTPUT
- name: Uploading Artifacts to S3 [${{ steps.upload-location.outputs.uploadlocation }}]
uses: jakejarvis/s3-sync-action@master
with:
args: --acl public-read
env:
AWS_S3_BUCKET: 'px4-travis'
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
AWS_REGION: 'us-west-1'
SOURCE_DIR: artifacts/
DEST_DIR: Firmware/${{ steps.upload-location.outputs.uploadlocation }}/
# Create a draft GitHub Release for all version tags
# Pre-releases are automatically marked as such
- name: Upload Artifacts to GitHub Release
uses: softprops/action-gh-release@v2
if: startsWith(github.ref, 'refs/tags/v')
with:
draft: true
prerelease: ${{ steps.upload-location.outputs.is_prerelease == 'true' }}
files: artifacts/*.px4
name: ${{ steps.upload-location.outputs.uploadlocation }}
+34 -25
View File
@@ -3,19 +3,32 @@ name: Checks
on:
push:
branches:
- 'master'
- 'main'
paths-ignore:
- 'docs/**'
pull_request:
branches:
- '*'
- '**'
paths-ignore:
- 'docs/**'
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
build:
runs-on: ubuntu-latest
container:
image: px4io/px4-dev:v1.16.0-rc1-258-g0369abd556
strategy:
fail-fast: false
matrix:
check: [
"check_format",
"check_newlines",
"tests",
"tests_coverage",
"px4_fmu-v2_default stack_check",
@@ -23,29 +36,25 @@ jobs:
"shellcheck_all",
"NO_NINJA_BUILD=1 px4_fmu-v5_default",
"NO_NINJA_BUILD=1 px4_sitl_default",
"BUILD_MICRORTPS_AGENT=1 px4_sitl_rtps",
"airframe_metadata",
"px4_sitl_allyes",
"module_documentation",
"parameters_metadata",
]
container:
image: px4io/px4-dev-nuttx-focal:2021-09-08
options: --privileged --ulimit core=-1 --security-opt seccomp=unconfined
steps:
- uses: actions/checkout@v1
with:
token: ${{ secrets.ACCESS_TOKEN }}
- name: check environment
run: |
export
ulimit -a
- name: ${{matrix.check}}
run: make ${{matrix.check}}
- name: upload coverage
if: contains(matrix.check, 'coverage')
uses: codecov/codecov-action@v1
with:
token: ${{ secrets.CODECOV_TOKEN }}
flags: unittests
file: coverage/lcov.info
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Building [${{ matrix.check }}]
run: |
cd "$GITHUB_WORKSPACE"
git config --global --add safe.directory "$GITHUB_WORKSPACE"
make ${{ matrix.check }}
- name: Uploading Coverage to Codecov.io
if: contains(matrix.check, 'coverage')
uses: codecov/codecov-action@v1
with:
token: ${{ secrets.CODECOV_TOKEN }}
flags: unittests
file: coverage/lcov.info
+17 -8
View File
@@ -3,19 +3,28 @@ name: Clang Tidy
on:
push:
branches:
- 'master'
- 'main'
paths-ignore:
- 'docs/**'
pull_request:
branches:
- '*'
- '**'
paths-ignore:
- 'docs/**'
jobs:
build:
runs-on: ubuntu-latest
container: px4io/px4-dev-clang:2021-09-08
steps:
- uses: actions/checkout@v1
- uses: actions/checkout@v4
with:
token: ${{secrets.ACCESS_TOKEN}}
fetch-depth: 0
- name: make clang-tidy-quiet
run: make clang-tidy-quiet
- name: Testing (clang-tidy)
uses: addnab/docker-run-action@v3
with:
image: px4io/px4-dev-clang:2021-09-08
options: -v ${{ github.workspace }}:/workspace
run: |
cd /workspace
git config --global --add safe.directory /workspace
make clang-tidy
-54
View File
@@ -1,54 +0,0 @@
name: Linux Targets
on:
push:
branches:
- 'master'
pull_request:
branches:
- '*'
jobs:
build:
runs-on: ubuntu-latest
container: px4io/px4-dev-armhf:2021-09-08
strategy:
matrix:
config: [
beaglebone_blue_default,
emlid_navio2_default,
px4_raspberrypi_default,
scumaker_pilotpi_default,
]
steps:
- uses: actions/checkout@v1
with:
token: ${{secrets.ACCESS_TOKEN}}
- name: Prepare ccache timestamp
id: ccache_cache_timestamp
shell: cmake -P {0}
run: |
string(TIMESTAMP current_date "%Y-%m-%d-%H;%M;%S" UTC)
message("::set-output name=timestamp::${current_date}")
- name: ccache cache files
uses: actions/cache@v2
with:
path: ~/.ccache
key: ${{matrix.config}}-ccache-${{steps.ccache_cache_timestamp.outputs.timestamp}}
restore-keys: ${{matrix.config}}-ccache-
- name: setup ccache
run: |
mkdir -p ~/.ccache
echo "base_dir = ${GITHUB_WORKSPACE}" > ~/.ccache/ccache.conf
echo "compression = true" >> ~/.ccache/ccache.conf
echo "compression_level = 6" >> ~/.ccache/ccache.conf
echo "max_size = 100M" >> ~/.ccache/ccache.conf
echo "hash_dir = false" >> ~/.ccache/ccache.conf
ccache -s
ccache -z
- name: make ${{matrix.config}}
run: make ${{matrix.config}}
- name: ccache post-run
run: ccache -s
-51
View File
@@ -1,51 +0,0 @@
name: Linux ARM64 Targets
on:
push:
branches:
- 'master'
pull_request:
branches:
- '*'
jobs:
build:
runs-on: ubuntu-latest
container: px4io/px4-dev-aarch64:2021-09-08
strategy:
matrix:
config: [
scumaker_pilotpi_arm64,
]
steps:
- uses: actions/checkout@v1
with:
token: ${{secrets.ACCESS_TOKEN}}
- name: Prepare ccache timestamp
id: ccache_cache_timestamp
shell: cmake -P {0}
run: |
string(TIMESTAMP current_date "%Y-%m-%d-%H;%M;%S" UTC)
message("::set-output name=timestamp::${current_date}")
- name: ccache cache files
uses: actions/cache@v2
with:
path: ~/.ccache
key: ${{matrix.config}}-ccache-${{steps.ccache_cache_timestamp.outputs.timestamp}}
restore-keys: ${{matrix.config}}-ccache-
- name: setup ccache
run: |
mkdir -p ~/.ccache
echo "base_dir = ${GITHUB_WORKSPACE}" > ~/.ccache/ccache.conf
echo "compression = true" >> ~/.ccache/ccache.conf
echo "compression_level = 6" >> ~/.ccache/ccache.conf
echo "max_size = 100M" >> ~/.ccache/ccache.conf
echo "hash_dir = false" >> ~/.ccache/ccache.conf
ccache -s
ccache -z
- name: make ${{matrix.config}}
run: make ${{matrix.config}}
- name: ccache post-run
run: ccache -s
+19 -8
View File
@@ -3,28 +3,39 @@ name: MacOS build
on:
push:
branches:
- 'master'
- 'main'
paths-ignore:
- 'docs/**'
pull_request:
branches:
- '*'
- '**'
paths-ignore:
- 'docs/**'
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
build:
runs-on: macos-10.15
runs-on: macos-latest
strategy:
matrix:
config: [
px4_fmu-v5_default,
px4_sitl
#tests, # includes px4_sitl
]
steps:
- uses: actions/checkout@v1
- name: install Python 3.10
uses: actions/setup-python@v5
with:
token: ${{secrets.ACCESS_TOKEN}}
python-version: "3.10"
- uses: actions/checkout@v4
- name: setup
run: ./Tools/setup/macos.sh; ./Tools/setup/macos.sh
run: |
./Tools/setup/macos.sh
- name: Prepare ccache timestamp
id: ccache_cache_timestamp
@@ -33,7 +44,7 @@ jobs:
string(TIMESTAMP current_date "%Y-%m-%d-%H;%M;%S" UTC)
message("::set-output name=timestamp::${current_date}")
- name: ccache cache files
uses: actions/cache@v2
uses: actions/cache@v4
with:
path: ~/.ccache
key: macos_${{matrix.config}}-ccache-${{steps.ccache_cache_timestamp.outputs.timestamp}}
-118
View File
@@ -1,118 +0,0 @@
name: Nuttx Targets
on:
push:
branches:
- 'master'
pull_request:
branches:
- '*'
jobs:
build:
runs-on: ubuntu-latest
container: px4io/px4-dev-nuttx-focal:2021-09-08
strategy:
fail-fast: false
matrix:
config: [
airmind_mindpx-v2,
ark_can-flow,
ark_can-gps,
ark_can-rtk-gps,
atl_mantis-edu,
av_x-v1,
bitcraze_crazyflie,
bitcraze_crazyflie21,
cuav_can-gps-v1,
cuav_nora,
cuav_x7pro,
cubepilot_cubeorange,
cubepilot_cubeyellow,
freefly_can-rtk-gps,
holybro_can-gps-v1,
holybro_durandal-v1,
holybro_kakutef7,
holybro_pix32v5,
matek_h743-slim,
modalai_fc-v1,
modalai_fc-v2,
mro_ctrl-zero-f7,
mro_ctrl-zero-f7-oem,
mro_ctrl-zero-h7,
mro_ctrl-zero-h7-oem,
mro_pixracerpro,
mro_x21,
mro_x21-777,
nxp_fmuk66-e,
nxp_fmuk66-v3,
nxp_fmurt1062-v1,
nxp_ucans32k146,
omnibus_f4sd,
raspberrypi_pico,
px4_fmu-v2,
px4_fmu-v3,
px4_fmu-v4,
px4_fmu-v4pro,
px4_fmu-v5,
px4_fmu-v5x,
px4_fmu-v6u,
px4_fmu-v6x,
spracing_h7extreme,
uvify_core
]
steps:
- uses: actions/checkout@v1
with:
token: ${{secrets.ACCESS_TOKEN}}
- name: Prepare ccache timestamp
id: ccache_cache_timestamp
shell: cmake -P {0}
run: |
string(TIMESTAMP current_date "%Y-%m-%d-%H;%M;%S" UTC)
message("::set-output name=timestamp::${current_date}")
- name: ccache cache files
uses: actions/cache@v2
with:
path: ~/.ccache
key: ${{matrix.config}}-ccache-${{steps.ccache_cache_timestamp.outputs.timestamp}}
restore-keys: ${{matrix.config}}-ccache-
- name: setup ccache
run: |
mkdir -p ~/.ccache
echo "base_dir = ${GITHUB_WORKSPACE}" > ~/.ccache/ccache.conf
echo "compression = true" >> ~/.ccache/ccache.conf
echo "compression_level = 6" >> ~/.ccache/ccache.conf
echo "max_size = 120M" >> ~/.ccache/ccache.conf
echo "hash_dir = false" >> ~/.ccache/ccache.conf
ccache -s
ccache -z
- name: make all_variants_${{matrix.config}}
run: make all_variants_${{matrix.config}}
timeout-minutes: 45
- name: make ${{matrix.config}} bloaty_compileunits
run: make ${{matrix.config}} bloaty_compileunits || true
- name: make ${{matrix.config}} bloaty_inlines
run: make ${{matrix.config}} bloaty_inlines || true
- name: make ${{matrix.config}} bloaty_segments
run: make ${{matrix.config}} bloaty_segments || true
- name: make ${{matrix.config}} bloaty_symbols
run: make ${{matrix.config}} bloaty_symbols || true
- name: make ${{matrix.config}} bloaty_templates
run: make ${{matrix.config}} bloaty_templates || true
- name: make ${{matrix.config}} bloaty_ram
run: make ${{matrix.config}} bloaty_ram || true
- name: make ${{matrix.config}} bloaty_compare_master
run: make ${{matrix.config}} bloaty_compare_master || true
- name: ccache post-run
run: ccache -s
- name: Upload px4 package
uses: actions/upload-artifact@v2
with:
name: px4_package_${{matrix.config}}
path: |
build/**/*.px4
build/**/*.bin
+57
View File
@@ -0,0 +1,57 @@
name: Ubuntu environment build
on:
push:
branches:
- 'main'
- 'stable'
- 'beta'
- 'release/**'
paths-ignore:
- 'docs/**'
pull_request:
branches:
- '**'
paths-ignore:
- 'docs/**'
env:
RUNS_IN_DOCKER: true
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
build_and_test:
name: Build and Test
strategy:
fail-fast: false
matrix:
version: ['ubuntu:22.04', 'ubuntu:24.04']
runs-on: [runs-on,runner=4cpu-linux-x64,"image=ubuntu24-full-x64","run-id=${{ github.run_id }}",spot=false]
container:
image: ${{ matrix.version }}
volumes:
- /github/workspace:/github/workspace
steps:
- name: Fix git in container
run: |
# we only need this because we are running the job in a container
# when checkout pulls git it does it in a shared volume
# and file ownership changes between steps
# first we install git since its missing from the base image
# then we mark the directory as safe for other instances
# of git to use.
apt update && apt install git -y
git config --global --add safe.directory $(realpath .)
- uses: actions/checkout@v4
- name: Install Deps, Build, and Make Quick Check
run: |
# we need to install dependencies and build on the same step
# given the stateless nature of docker images
./Tools/setup/ubuntu.sh
make quick_check
-54
View File
@@ -1,54 +0,0 @@
name: Deploy metadata for all targets
on:
push:
branches:
- 'master'
- 'release/*'
- 'pr-metadata-test'
jobs:
enumerate_targets:
runs-on: ubuntu-latest
container: px4io/px4-dev-base-focal:2021-09-08
outputs:
matrix: ${{ steps.set-matrix.outputs.matrix }}
steps:
- uses: actions/checkout@v1
with:
token: ${{secrets.ACCESS_TOKEN}}
- id: set-matrix
run: echo "::set-output name=matrix::$(./Tools/generate_board_targets_json.py)"
build:
runs-on: ubuntu-latest
needs: enumerate_targets
strategy:
matrix: ${{fromJson(needs.enumerate_targets.outputs.matrix)}}
container: px4io/px4-dev-${{ matrix.container }}:2021-09-08
steps:
- uses: actions/checkout@v1
with:
token: ${{secrets.ACCESS_TOKEN}}
- name: make ${{matrix.target}}
run: make ${{matrix.target}}
- name: parameter & events metadata
run: |
make ${{matrix.target}} ver_gen events_json actuators_json
./src/lib/version/get_git_tag_or_branch_version.sh build/${{ matrix.target }} >> $GITHUB_ENV
cd build/${{ matrix.target }}
mkdir _metadata || true
cp parameters.* events/*.xz actuators.json* _metadata
- uses: jakejarvis/s3-sync-action@master
with:
args: --acl public-read
env:
AWS_S3_BUCKET: 'px4-travis'
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
AWS_REGION: 'us-west-1'
SOURCE_DIR: 'build/${{ matrix.target }}/_metadata/'
DEST_DIR: 'Firmware/${{ env.version }}/${{ matrix.target }}/'
+192
View File
@@ -0,0 +1,192 @@
name: Container build
on:
push:
branches:
- 'main'
- 'stable'
- 'beta'
- 'release/**'
tags:
- 'v*'
pull_request:
branches:
- '**'
paths:
- '.github/workflows/dev_container.yml'
- 'Tools/setup/ubuntu.sh'
- 'Tools/setup/requirements.txt'
- 'Tools/setup/Dockerfile'
- 'Tools/setup/docker-entrypoint.sh'
workflow_dispatch:
inputs:
px4_version:
description: 'Container tag (e.g. v1.16.0)'
required: true
type: string
deploy_to_registry:
description: 'Whether to push built images to the registry'
required: false
type: boolean
default: false
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
setup:
name: Set Tags and Variables
permissions:
contents: read
runs-on: [runs-on,"runner=1cpu-linux-x64","image=ubuntu24-full-x64","run-id=${{ github.run_id }}",extras=s3-cache,spot=false]
outputs:
px4_version: ${{ steps.px4_version.outputs.px4_version }}
meta_tags: ${{ steps.meta.outputs.tags }}
meta_labels: ${{ steps.meta.outputs.labels }}
steps:
- uses: runs-on/action@v1
- uses: actions/checkout@v4
with:
fetch-tags: true
submodules: false
fetch-depth: 0
# If manual dispatch, take the userprovided input
- name: Set PX4 Tag Version
id: px4_version
run: |
if [[ "${{ github.event_name }}" == "workflow_dispatch" ]]; then
echo "px4_version=${{ github.event.inputs.px4_version }}" >> $GITHUB_OUTPUT
else
echo "px4_version=$(git describe --tags --match 'v[0-9]*')" >> $GITHUB_OUTPUT
fi
- name: Extract metadata (tags, labels) for Docker
id: meta
uses: docker/metadata-action@v5
with:
images: |
ghcr.io/PX4/px4-dev
px4io/px4-dev
tags: |
type=raw,enable=true,value=${{ steps.px4_version.outputs.px4_version }},priority=1000
build:
name: Build Container (${{ matrix.arch }})
permissions:
contents: read
packages: write
needs: setup
strategy:
matrix:
include:
- platform: linux/arm64
arch: arm64
runner: arm64
- platform: linux/amd64
arch: amd64
runner: x64
runs-on: [runs-on,"runner=4cpu-linux-${{ matrix.runner }}","image=ubuntu24-full-${{ matrix.runner }}","run-id=${{ github.run_id }}",extras=s3-cache,spot=false]
steps:
- uses: runs-on/action@v1
- uses: actions/checkout@v4
with:
fetch-tags: true
submodules: false
fetch-depth: 0
- name: Login to Docker Hub
uses: docker/login-action@v3
if: ${{ startsWith(github.ref, 'refs/tags/') || (github.event_name == 'workflow_dispatch' && github.event.inputs.deploy_to_registry) }}
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
- name: Login to GitHub Container Registry
uses: docker/login-action@v3
if: ${{ startsWith(github.ref, 'refs/tags/') || (github.event_name == 'workflow_dispatch' && github.event.inputs.deploy_to_registry) }}
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
with:
driver: docker-container
platforms: ${{ matrix.platform }}
- name: Build and Load Container Image
uses: docker/build-push-action@v6
id: docker
with:
context: Tools/setup
tags: |
ghcr.io/px4/px4-dev:${{ needs.setup.outputs.px4_version }}-${{ matrix.arch }}
px4io/px4-dev:${{ needs.setup.outputs.px4_version }}-${{ matrix.arch }}
labels: ${{ needs.setup.outputs.meta_labels }}
platforms: ${{ matrix.platform }}
load: false
push: ${{ startsWith(github.ref, 'refs/tags/') || (github.event_name == 'workflow_dispatch' && github.event.inputs.deploy_to_registry) }}
provenance: false
cache-from: type=gha,version=1
cache-to: type=gha,version=1,mode=max
deploy:
name: Deploy To Registry
permissions:
contents: read
packages: write
runs-on: [runs-on,"runner=4cpu-linux-x64","image=ubuntu24-full-x64","run-id=${{ github.run_id }}",extras=s3-cache,spot=false]
needs: [build, setup]
if: ${{ startsWith(github.ref, 'refs/tags/') || (github.event_name == 'workflow_dispatch' && github.event.inputs.deploy_to_registry) }}
steps:
- uses: runs-on/action@v1
- uses: actions/checkout@v4
with:
fetch-tags: true
submodules: false
fetch-depth: 0
- name: Login to Docker Hub
uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
- name: Login to GitHub Container Registry
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Verify Images Exist Before Creating Manifest
run: |
docker manifest inspect px4io/px4-dev:${{ needs.setup.outputs.px4_version }}-arm64 || echo "⚠️ Warning: No ARM64 image found!"
docker manifest inspect px4io/px4-dev:${{ needs.setup.outputs.px4_version }}-amd64 || echo "⚠️ Warning: No AMD64 image found!"
docker manifest inspect ghcr.io/px4/px4-dev:${{ needs.setup.outputs.px4_version }}-arm64 || echo "⚠️ Warning: No ARM64 image found!"
docker manifest inspect ghcr.io/px4/px4-dev:${{ needs.setup.outputs.px4_version }}-amd64 || echo "⚠️ Warning: No AMD64 image found!"
- name: Create and Push Multi-Arch Manifest for Docker Hub
run: |
docker manifest create px4io/px4-dev:${{ needs.setup.outputs.px4_version }} \
--amend px4io/px4-dev:${{ needs.setup.outputs.px4_version }}-arm64 \
--amend px4io/px4-dev:${{ needs.setup.outputs.px4_version }}-amd64
docker manifest annotate px4io/px4-dev:${{ needs.setup.outputs.px4_version }} px4io/px4-dev:${{ needs.setup.outputs.px4_version }}-arm64 --arch arm64
docker manifest annotate px4io/px4-dev:${{ needs.setup.outputs.px4_version }} px4io/px4-dev:${{ needs.setup.outputs.px4_version }}-amd64 --arch amd64
docker manifest push px4io/px4-dev:${{ needs.setup.outputs.px4_version }}
- name: Create and Push Multi-Arch Manifest for GHCR
run: |
docker manifest create ghcr.io/px4/px4-dev:${{ needs.setup.outputs.px4_version }} \
--amend ghcr.io/px4/px4-dev:${{ needs.setup.outputs.px4_version }}-arm64 \
--amend ghcr.io/px4/px4-dev:${{ needs.setup.outputs.px4_version }}-amd64
docker manifest annotate ghcr.io/px4/px4-dev:${{ needs.setup.outputs.px4_version }} ghcr.io/px4/px4-dev:${{ needs.setup.outputs.px4_version }}-arm64 --arch arm64
docker manifest annotate ghcr.io/px4/px4-dev:${{ needs.setup.outputs.px4_version }} ghcr.io/px4/px4-dev:${{ needs.setup.outputs.px4_version }}-amd64 --arch amd64
docker manifest push ghcr.io/px4/px4-dev:${{ needs.setup.outputs.px4_version }}
@@ -0,0 +1,55 @@
name: Docs - Crowdin - Download Guide Translations
# https://github.com/crowdin/github-action/tree/master
on:
schedule:
- cron: '0 0 * * 0' # Runs every Sunday at 00:00 UTC
workflow_dispatch:
permissions:
contents: write
pull-requests: write
jobs:
synchronize-with-crowdin:
name: Synchronize with Crowdin
runs-on: ubuntu-latest
strategy:
fail-fast: false
max-parallel: 1 # Should be 1 to avoid parallel builds
matrix:
lc: [ko, uk, zh-CN] # Target languages https://developer.crowdin.com/language-codes/
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Debug Environment Variables
run: |
echo "CROWDIN_PROJECT_ID: ${{ secrets.CROWDIN_DOCS_PROJECT_ID }}"
echo "CROWDIN_PERSONAL_TOKEN: ${{ secrets.PX4BUILDBOT_CROWDIN_PERSONAL_TOKEN }}"
- name: Matrix
uses: crowdin/github-action@v2
with:
config: 'docs/crowdin_docs.yml'
upload_sources: false
upload_translations: false
download_translations: true
commit_message: New Crowdin translations - ${{ matrix.lc }}
localization_branch_name: l10n_crowdin_docs_translations_${{ matrix.lc }}
crowdin_branch_name: main
create_pull_request: true
pull_request_base_branch_name: 'main'
pull_request_title: New PX4 guide translations (Crowdin) - ${{ matrix.lc }}
pull_request_body: 'New PX4 guide Crowdin translations by [Crowdin GH Action](https://github.com/crowdin/github-action) for ${{ matrix.lc }}'
pull_request_labels: 'Documentation 📑'
pull_request_reviewers: hamishwillee
download_language: ${{ matrix.lc }}
env:
# A classic GitHub Personal Access Token with the 'repo' scope selected (the user should have write access to the repository).
GITHUB_TOKEN: ${{ secrets.PX4BUILTBOT_PERSONAL_ACCESS_TOKEN }}
# A numeric ID, found at https://crowdin.com/project/<projectName>/tools/api
CROWDIN_PROJECT_ID: ${{ secrets.CROWDIN_DOCS_PROJECT_ID }}
# Visit https://crowdin.com/settings#api-key to create this token
CROWDIN_PERSONAL_TOKEN: ${{ secrets.PX4BUILDBOT_CROWDIN_PERSONAL_TOKEN }}
+44
View File
@@ -0,0 +1,44 @@
name: Docs - Crowdin - Upload Guide sources (en)
# https://github.com/crowdin/github-action/tree/master
on:
push:
branches:
- main
paths:
- 'docs/en/**'
#pull_request:
# types:
# - closed
# branches:
# - main
# paths:
# - 'docs/en/**'
workflow_dispatch:
jobs:
upload-to-crowdin:
#if: github.event.pull_request.merged == true || github.event_name == 'push' || github.event_name == 'workflow_dispatch'
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: crowdin push
uses: crowdin/github-action@v2
with:
config: 'docs/crowdin_docs.yml'
upload_sources: true
upload_translations: false
download_translations: false
crowdin_branch_name: main
env:
# A classic GitHub Personal Access Token with the 'repo' scope selected (the user should have write access to the repository).
GITHUB_TOKEN: ${{ secrets.PX4BUILDBOT_ACCESSTOKEN }}
# A numeric ID, found at https://crowdin.com/project/<projectName>/tools/api
CROWDIN_PROJECT_ID: ${{ secrets.CROWDIN_DOCS_PROJECT_ID }}
# Visit https://crowdin.com/settings#api-key to create this token
CROWDIN_PERSONAL_TOKEN: ${{ secrets.PX4BUILDBOT_CROWDIN_PERSONAL_TOKEN }}
+86
View File
@@ -0,0 +1,86 @@
name: Docs - Deploy PX4 User Guide to Github pages (Manual)
on:
workflow_dispatch:
# Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages
permissions:
contents: read
pages: write
id-token: write
# Allow only one concurrent deployment, skipping runs queued between the run in-progress and latest queued.
# However, do NOT cancel in-progress runs as we want to allow these production deployments to complete.
concurrency:
group: pages
cancel-in-progress: false
env:
BRANCH_NAME: ${{ github.head_ref || github.ref_name }}
jobs:
build:
runs-on: [runs-on,runner=4cpu-linux-x64,image=ubuntu24-full-x64,"run-id=${{ github.run_id }}",extras=s3-cache,spot=false]
steps:
- uses: runs-on/action@v1
- name: Checkout
uses: actions/checkout@v4
- name: Setup Node
uses: actions/setup-node@v4
with:
node-version: 20
cache: npm
# Specify the path to lock file for correct caching
cache-dependency-path: ./docs/yarn.lock
- name: Install dependencies
run: yarn install --frozen-lockfile --cwd ./docs
- name: Build with VitePress
working-directory: ./docs
run: |
npm run docs:build_ubuntu
touch .vitepress/dist/.nojekyll
npm run docs:sitemap
- name: Upload artifact
if: ${{ github.event_name == 'push' || (github.event_name == 'pull_request' && github.event.pull_request.merged) || github.event_name == 'workflow_dispatch' }}
uses: actions/upload-artifact@v4
with:
name: px4_docs_build
path: docs/.vitepress/dist/
retention-days: 1
deploy:
if: ${{ github.event_name == 'push' || (github.event_name == 'pull_request' && github.event.pull_request.merged) || github.event_name == 'workflow_dispatch' }}
needs: build
runs-on: [runs-on,runner=4cpu-linux-x64,image=ubuntu24-full-x64,"run-id=${{ github.run_id }}",spot=false]
steps:
- name: Download Artifact
uses: actions/download-artifact@v4
with:
name: px4_docs_build
path: ~/_book
- name: Deploy
run: |
git clone --single-branch --branch main --depth 1 https://${{ secrets.PX4BUILTBOT_PERSONAL_ACCESS_TOKEN }}@github.com/PX4/docs.px4.io.git
# make it an orphan branch
cd docs.px4.io
CURRENT_DATETIME=$(date +'%Y%m%d_%H_%M')
git checkout --orphan "${CURRENT_DATETIME}_main"
rm -rf ${BRANCH_NAME}
mkdir -p ${BRANCH_NAME}
cp -r ~/_book/* ${BRANCH_NAME}/
git config --global user.name "${{ secrets.PX4BUILDBOT_USER }}"
git config --global user.email "${{ secrets.PX4BUILDBOT_EMAIL }}"
git add .
git commit -a -m "PX4 docs build update (vitepress) `date`"
# push branch as backup
git push origin "${CURRENT_DATETIME}_main"
# Now make main from backup and push updated
git branch -D main
git checkout -b main
git push origin main -f
+116
View File
@@ -0,0 +1,116 @@
name: Docs - Deploy PX4 User Guide to AWS
on:
push:
branches:
- "main"
- "release/**"
paths:
- "docs/en/**"
- "docs/zh/**"
- "docs/uk/**"
- "docs/ko/**"
pull_request:
paths:
- "docs/en/**"
- "docs/zh/**"
- "docs/uk/**"
- "docs/ko/**"
workflow_dispatch:
permissions:
contents: read
actions: read
id-token: write # for AWS OIDC
concurrency:
group: docs-deploy
cancel-in-progress: false
jobs:
build:
runs-on: [runs-on,runner=4cpu-linux-x64,image=ubuntu24-full-x64,"run-id=${{ github.run_id }}",spot=false,extras=s3-cache]
outputs:
branchname: ${{ steps.set-branch.outputs.branchname }}
releaseversion: ${{ steps.set-version.outputs.releaseversion }}
steps:
- uses: runs-on/action@v1
- name: Checkout
uses: actions/checkout@v4
- id: set-branch
run: echo "branchname=${GITHUB_HEAD_REF:-${GITHUB_REF#refs/heads/}}" >> $GITHUB_OUTPUT
- id: set-version
run: |
branch="${{ steps.set-branch.outputs.branchname }}"
if [[ "$branch" == "main" ]]; then
version="main"
else
version="v${branch#release/}"
fi
echo "releaseversion=$version" >> $GITHUB_OUTPUT
- name: Setup Node
uses: actions/setup-node@v4
with:
node-version: 20
cache: npm
cache-dependency-path: ./docs/yarn.lock
- name: Install dependencies
run: yarn install --frozen-lockfile --cwd ./docs
- name: Build with VitePress
working-directory: ./docs
env:
BRANCH_NAME: ${{ steps.set-version.outputs.releaseversion }}
run: |
npm run docs:build_ubuntu
touch .vitepress/dist/.nojekyll
npm run docs:sitemap
- name: Upload artifact
if: ${{ github.event_name == 'push' || (github.event_name == 'pull_request' && github.event.pull_request.merged) || github.event_name == 'workflow_dispatch' }}
uses: actions/upload-artifact@v4
with:
name: px4_docs_build
path: docs/.vitepress/dist/
retention-days: 1
deploy:
if: ${{ github.event_name == 'push' || (github.event_name == 'pull_request' && github.event.pull_request.merged) || github.event_name == 'workflow_dispatch' }}
needs: build
runs-on: ubuntu-latest
steps:
- name: Download Artifact
uses: actions/download-artifact@v4
with:
name: px4_docs_build
path: ~/_book
- name: Configure AWS from OIDC
uses: aws-actions/configure-aws-credentials@v4
with:
role-to-assume: ${{ secrets.AWS_ROLE_ARN }}
aws-region: us-west-2
- name: Sanity check AWS credentials
run: aws sts get-caller-identity
- name: Upload HTML with short cache
run: |
aws s3 sync ~/_book/ s3://px4-docs/${{ needs.build.outputs.releaseversion }}/ \
--delete \
--exclude "*" --include "*.html" \
--cache-control "public, max-age=60"
- name: Upload assets with long cache
run: |
aws s3 sync ~/_book/ s3://px4-docs/${{ needs.build.outputs.releaseversion }}/ \
--delete \
--exclude "*.html" \
--cache-control "public, max-age=86400, immutable"
+85
View File
@@ -0,0 +1,85 @@
name: Docs - Check for flaws in PX4 Guide Source
# So far:
# Modifications of translations files
# Broken internal links
on:
pull_request_target:
types: [opened, edited, synchronize]
paths:
- 'docs/en/**'
jobs:
check_flaws:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v3
with:
ref: ${{ github.event.pull_request.head.sha }}
- name: Install Node.js
uses: actions/setup-node@v3
with:
node-version: '18'
- name: Create logs directory
run: |
mkdir logs
- name: Get changed english doc files
id: get_changed_markdown_english
uses: tj-actions/changed-files@v46.0.5
with:
json: true
base_sha: "${{ github.event.pull_request.base.sha }}"
sha: "${{ github.event.pull_request.head.sha }}"
# Below are used to output files to a directory. May use in flaw checker.
# write_output_files: true
# output_dir: "./logs"
files: |
docs/en/**/*.md
- name: Save JSON file containing files to link check
run: |
echo "$ALL_CHANGED_FILES"
# echo "$ALL_CHANGED_FILES" > ./logs/prFiles.json
echo "$ALL_CHANGED_FILES" | sed 's/\\//g' | jq '.' > ./logs/prFiles.json
env:
ALL_CHANGED_FILES: ${{ steps.get_changed_markdown_english.outputs.all_changed_files }}
- name: Run link checker
id: link-check
run: |
npm -g install markdown_link_checker_sc@0.0.138
markdown_link_checker_sc \
-r "$GITHUB_WORKSPACE" \
-d docs \
-e en \
-f ./logs/prFiles.json \
-i assets \
-u docs.px4.io/main/ \
> ./logs/errorsFilteredByPrPages.md
mkdir -p ./pr
cp ./logs/errorsFilteredByPrPages.md ./pr/errorsFilteredByPrPages.md
- name: Read errorsFilteredByPrPages.md file
id: read-errors-by-page
uses: juliangruber/read-file-action@v1
with:
path: ./logs/errorsFilteredByPrPages.md
- name: Echo Errors by Page
run: echo "$ERRORS"
env:
ERRORS: ${{ steps.read-errors-by-page.outputs.content }}
- name: Save PR number
run: echo "$PR_NUMBER" > ./pr/pr_number
env:
PR_NUMBER: ${{ github.event.number }}
- uses: actions/upload-artifact@v4
with:
name: pr_number
path: pr/
+111
View File
@@ -0,0 +1,111 @@
name: Docs - Comment Workflow
on:
workflow_run:
workflows: ["Docs - Check for flaws in PX4 Guide Source"]
types:
- completed
jobs:
comment:
permissions:
pull-requests: write # for marocchino/sticky-pull-request-comment
name: Comments
runs-on: ubuntu-latest
steps:
- name: 'Download PR artifact'
uses: actions/github-script@v6
with:
script: |
let allArtifacts = await github.rest.actions.listWorkflowRunArtifacts({
owner: context.repo.owner,
repo: context.repo.repo,
run_id: context.payload.workflow_run.id,
});
let matchArtifact = allArtifacts.data.artifacts.filter((artifact) => {
return artifact.name == "pr_number"
})[0];
let download = await github.rest.actions.downloadArtifact({
owner: context.repo.owner,
repo: context.repo.repo,
artifact_id: matchArtifact.id,
archive_format: 'zip',
});
let fs = require('fs');
fs.writeFileSync(`${process.env.GITHUB_WORKSPACE}/pr_number.zip`, Buffer.from(download.data));
- name: 'Unzip artifact'
run: unzip pr_number.zip
# Doesn't work across workflows
#- name: Get artifacts from flaw checker workflow
# uses: actions/download-artifact@v3
# with:
# name: logs_and_errors
# #path: ./logs
- name: Read errorsFilteredByPrPages.md file
id: read-errors-by-page
uses: juliangruber/read-file-action@v1
with:
path: ./errorsFilteredByPrPages.md
- name: Read PR number
id: read-error-pr-number
uses: juliangruber/read-file-action@v1
with:
path: ./pr_number
- name: File detail info
run: |
echo "$ERRORS"
echo "$PRNUM"
env:
ERRORS: ${{ steps.read-errors-by-page.outputs.content }}
PRNUM: ${{ steps.read-error-pr-number.outputs.content }}
- name: Create or update comment
id: comment_to_pr
uses: marocchino/sticky-pull-request-comment@v2
with:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
recreate: true
number: ${{ steps.read-error-pr-number.outputs.content }}
header: flaws
message: ${{ steps.read-errors-by-page.outputs.content || 'No flaws found' }}
#- name: Dump GitHub context
# env:
# GITHUB_CONTEXT: ${{ toJSON(github) }}
# run: echo "$GITHUB_CONTEXT"
# Would like to do this, but it doesn't work (for me).
# Moving to time-based, or triggering on workflow
#- name: Wait for artifacts upload to succeed
# uses: lewagon/wait-on-check-action@v1.3.1
# with:
# ref: ${{ github.ref }}
# check-name: 'Archive production artifacts'
# repo-token: ${{ secrets.GITHUB_TOKEN }}
# wait-interval: 80
# Not needed for now - trying to trigger off the workflow
#- name: Sleep for 80 seconds
# run: sleep 80s
# shell: bash
#- name: Find Comment
# uses: peter-evans/find-comment@v2
# id: fc
# with:
# issue-number: ${{ steps.read-error-pr-number.outputs.content }}
# comment-author: 'github-actions[bot]'
# body-includes: Flaws (may be none)
#- name: Create or update comment
# uses: peter-evans/create-or-update-comment@v3
# with:
# comment-id: ${{ steps.fc.outputs.comment-id }}
# issue-number: ${{ steps.read-error-pr-number.outputs.content }}
# body: |
# Flaws (may be none)
# ${{ steps.read-errors-by-page.outputs.content }}
# edit-mode: replace
@@ -1,21 +1,35 @@
name: EKF Change Indicator
on: pull_request
on:
pull_request:
branches:
- '**'
paths-ignore:
- 'docs/**'
# If two events are triggered within a short time in the same PR, cancel the run of the oldest event
concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number }}
cancel-in-progress: true
jobs:
unit_tests:
runs-on: ubuntu-latest
container: px4io/px4-dev-base-focal:2021-09-08
container:
image: px4io/px4-dev:v1.16.0-rc1-258-g0369abd556
steps:
- uses: actions/checkout@v2.3.1
with:
fetch-depth: 0
- name: checkout newest version of branch
run: |
git fetch origin pull/${{github.event.pull_request.number}}/head:${{github.head_ref}}
git checkout ${GITHUB_HEAD_REF}
- name: main test
run: make tests TESTFILTER=EKF
- name: Check if there is a functional change
run: git diff --exit-code
working-directory: src/modules/ekf2/test/change_indication
- uses: actions/checkout@v4
with:
fetch-depth: 0
- name: main test
run: |
cd "$GITHUB_WORKSPACE"
git config --global --add safe.directory "$GITHUB_WORKSPACE"
make tests TESTFILTER=EKF
- name: Check if there is a functional change
run: git diff --exit-code
working-directory: src/modules/ekf2/test/change_indication
@@ -1,29 +1,54 @@
name: EKF Update Change Indicator
on: push
on:
push:
paths-ignore:
- 'docs/**'
jobs:
unit_tests:
runs-on: ubuntu-latest
container: px4io/px4-dev-base-focal:2021-09-08
container:
image: px4io/px4-dev:v1.16.0-rc1-258-g0369abd556
env:
GIT_COMMITTER_EMAIL: bot@px4.io
GIT_COMMITTER_NAME: PX4BuildBot
steps:
- uses: actions/checkout@v2.3.1
with:
fetch-depth: 0
- name: main test updates change indication files
run: make tests TESTFILTER=EKF
- name: Check if there exists diff and save result in variable
run: echo "CHANGE_INDICATED=$(git diff --exit-code --output=/dev/null || echo $?)" >> $GITHUB_ENV
working-directory: src/modules/ekf2/test/change_indication
- name: auto-commit any changes to change indication
uses: stefanzweifel/git-auto-commit-action@v4
with:
commit_message: '[AUTO COMMIT] update change indication'
commit_user_name: ${GIT_COMMITTER_NAME}
commit_user_email: ${GIT_COMMITTER_EMAIL}
- if: ${{env.CHANGE_INDICATED}}
name: if there is a functional change, fail check
run: exit 1
- uses: actions/checkout@v4
with:
fetch-depth: 0
- name: main test
run: |
cd "$GITHUB_WORKSPACE"
git config --global --add safe.directory "$GITHUB_WORKSPACE"
make tests TESTFILTER=EKF
- name: Check if there exists diff and save result in variable
id: diff-check
working-directory: src/modules/ekf2/test/change_indication
run: |
if git diff --quiet; then
echo "CHANGE_INDICATED=false" >> $GITHUB_OUTPUT
else
echo "CHANGE_INDICATED=true" >> $GITHUB_OUTPUT
fi
- name: auto-commit any changes to change indication
if: steps.diff-check.outputs.CHANGE_INDICATED == 'true'
uses: stefanzweifel/git-auto-commit-action@v4
with:
file_pattern: 'src/modules/ekf2/test/change_indication/*.csv'
commit_user_name: ${{ env.GIT_COMMITTER_NAME }}
commit_user_email: ${{ env.GIT_COMMITTER_EMAIL }}
commit_message: |
[AUTO COMMIT] update change indication
See .github/workflows/ekf_update_change_indicator.yml for more details
- name: if there is a functional change, fail check
if: steps.diff-check.outputs.CHANGE_INDICATED == 'true'
run: exit 1
+58
View File
@@ -0,0 +1,58 @@
name: Failsafe Simulator Build
on:
push:
branches:
- 'main'
paths-ignore:
- 'docs/**'
pull_request:
branches:
- '**'
paths-ignore:
- 'docs/**'
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
build:
runs-on: ubuntu-latest
defaults:
run:
shell: bash
strategy:
fail-fast: false
matrix:
check: [
"failsafe_web",
]
container:
image: px4io/px4-dev:v1.16.0-rc1-258-g0369abd556
options: --privileged --ulimit core=-1 --security-opt seccomp=unconfined
steps:
- name: Install Node v20.18.0
uses: actions/setup-node@v4
with:
node-version: 20.18.0
- uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Git ownership workaround
run: git config --system --add safe.directory '*'
- name: Install empscripten
run: |
git clone https://github.com/emscripten-core/emsdk.git _emscripten_sdk
cd _emscripten_sdk
git checkout 4.0.15
./emsdk install latest
./emsdk activate latest
- name: Testing [${{ matrix.check }}]
run: |
. ./_emscripten_sdk/emsdk_env.sh
make ${{ matrix.check }}
+153
View File
@@ -0,0 +1,153 @@
name: FLASH usage analysis
permissions:
contents: read
pull-requests: write
issues: write
on:
push:
branches:
- 'main'
paths-ignore:
- 'docs/**'
pull_request:
branches:
- '**'
paths-ignore:
- 'docs/**'
env:
MIN_FLASH_POS_DIFF_FOR_COMMENT: 50
MIN_FLASH_NEG_DIFF_FOR_COMMENT: -50
jobs:
analyze_flash:
name: Analyzing ${{ matrix.target }}
runs-on: [runs-on,runner=4cpu-linux-x64,image=ubuntu24-full-x64,"run-id=${{ github.run_id }}",spot=false]
container:
image: px4io/px4-dev:v1.16.0-rc1-258-g0369abd556
strategy:
matrix:
target: [px4_fmu-v5x, px4_fmu-v6x]
outputs:
px4_fmu-v5x-bloaty-output: ${{ steps.gen-output.outputs.px4_fmu-v5x-bloaty-output }}
px4_fmu-v5x-bloaty-summary-map: ${{ steps.gen-output.outputs.px4_fmu-v5x-bloaty-summary-map }}
px4_fmu-v6x-bloaty-output: ${{ steps.gen-output.outputs.px4_fmu-v6x-bloaty-output }}
px4_fmu-v6x-bloaty-summary-map: ${{ steps.gen-output.outputs.px4_fmu-v6x-bloaty-summary-map }}
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
submodules: recursive
- name: Git ownership workaround
run: git config --system --add safe.directory '*'
- name: Build Target
run: make ${{ matrix.target }}_flash-analysis
- name: Store the ELF with the change
run: cp ./build/**/*.elf ./with-change.elf
- name: Clean previous build
run: |
make clean
make distclean
- name: If it's a PR checkout the base branch
if: ${{ github.event.pull_request }}
# As checkout creates a merge commit (merging the base branch into the PR branch), the base branch is the base for a diff of the PR changes.
run: git checkout ${{ github.event.pull_request.base.ref }}
- name: If it's a push checkout the previous commit
if: github.event_name == 'push'
run: git checkout ${{ github.event.before }}
- name: Update submodules
run: make submodulesupdate
- name: Build
run: make ${{ matrix.target }}_flash-analysis
- name: Store the ELF before the change
run: cp ./build/**/*.elf ./before-change.elf
- name: bloaty-action
uses: PX4/bloaty-action@v1.0.0
id: bloaty-step
with:
bloaty-file-args: ./with-change.elf -- ./before-change.elf
bloaty-additional-args: -d sections,symbols -s vm -n 20
output-to-summary: true
- name: Generate output
id: gen-output
run: |
EOF=$(dd if=/dev/urandom bs=15 count=1 status=none | base64)
echo "${{ matrix.target }}-bloaty-output<<$EOF" >> $GITHUB_OUTPUT
echo "${{ steps.bloaty-step.outputs.bloaty-output-encoded }}" >> $GITHUB_OUTPUT
echo "$EOF" >> $GITHUB_OUTPUT
echo "${{ matrix.target }}-bloaty-summary-map<<$EOF" >> $GITHUB_OUTPUT
echo '${{ steps.bloaty-step.outputs.bloaty-summary-map }}' >> $GITHUB_OUTPUT
echo "$EOF" >> $GITHUB_OUTPUT
# TODO:
# This part of the workflow is causing errors for forks. We should find a way to fix this and enable it again for forks.
# Track this issue https://github.com/PX4/PX4-Autopilot/issues/24408
post_pr_comment:
name: Publish Results
runs-on: [runs-on,runner=1cpu-linux-x64,image=ubuntu24-full-x64,"run-id=${{ github.run_id }}"]
needs: [analyze_flash]
env:
V5X-SUMMARY-MAP-ABS: ${{ fromJSON(fromJSON(needs.analyze_flash.outputs.px4_fmu-v5x-bloaty-summary-map).vm-absolute) }}
V5X-SUMMARY-MAP-PERC: ${{ fromJSON(fromJSON(needs.analyze_flash.outputs.px4_fmu-v5x-bloaty-summary-map).vm-percentage) }}
V6X-SUMMARY-MAP-ABS: ${{ fromJSON(fromJSON(needs.analyze_flash.outputs.px4_fmu-v6x-bloaty-summary-map).vm-absolute) }}
V6X-SUMMARY-MAP-PERC: ${{ fromJSON(fromJSON(needs.analyze_flash.outputs.px4_fmu-v6x-bloaty-summary-map).vm-percentage) }}
if: github.event.pull_request && github.event.pull_request.head.repo.full_name == github.repository
steps:
- name: Find Comment
uses: peter-evans/find-comment@v3
id: fc
with:
issue-number: ${{ github.event.pull_request.number }}
comment-author: 'github-actions[bot]'
body-includes: FLASH Analysis
- name: Set Build Time
id: bt
run: |
echo "timestamp=$(date +'%Y-%m-%dT%H:%M:%S')" >> $GITHUB_OUTPUT
- name: Create or update comment
# This can't be moved to the job-level conditions, as GH actions don't allow a job-level if condition to access the env.
if: |
steps.fc.outputs.comment-id != '' ||
env.V5X-SUMMARY-MAP-ABS >= fromJSON(env.MIN_FLASH_POS_DIFF_FOR_COMMENT) ||
env.V5X-SUMMARY-MAP-ABS <= fromJSON(env.MIN_FLASH_NEG_DIFF_FOR_COMMENT) ||
env.V6X-SUMMARY-MAP-ABS >= fromJSON(env.MIN_FLASH_POS_DIFF_FOR_COMMENT) ||
env.V6X-SUMMARY-MAP-ABS <= fromJSON(env.MIN_FLASH_NEG_DIFF_FOR_COMMENT)
uses: peter-evans/create-or-update-comment@v4
with:
comment-id: ${{ steps.fc.outputs.comment-id }}
issue-number: ${{ github.event.pull_request.number }}
body: |
## 🔎 FLASH Analysis
<details>
<summary>px4_fmu-v5x [Total VM Diff: ${{ env.V5X-SUMMARY-MAP-ABS }} byte (${{ env.V5X-SUMMARY-MAP-PERC}} %)]</summary>
```
${{ needs.analyze_flash.outputs.px4_fmu-v5x-bloaty-output }}
```
</details>
<details>
<summary>px4_fmu-v6x [Total VM Diff: ${{ env.V6X-SUMMARY-MAP-ABS }} byte (${{ env.V6X-SUMMARY-MAP-PERC }} %)]</summary>
```
${{ needs.analyze_flash.outputs.px4_fmu-v6x-bloaty-output }}
```
</details>
**Updated: _${{ steps.bt.outputs.timestamp }}_**
edit-mode: replace
+49
View File
@@ -0,0 +1,49 @@
name: Fuzzing
on:
schedule:
- cron: '0 6 * * *' # UTC 6am every day.
permissions:
contents: read
issues: write # for JasonEtco/create-an-issue
env:
RUNS_IN_DOCKER: true
jobs:
Fuzzing:
runs-on: ubuntu-latest
container:
image: px4io/px4-dev:v1.16.0-rc2-4-gb67c65bfe6
steps:
- name: Install Dependencies
run: |
apt update && apt install -y clang
- name: Fix git in Container
run: |
git config --global --add safe.directory $(realpath .)
- uses: actions/checkout@v4
- name: Build and Run Fuzz Tests
run: |
# Only build the tests
export CC=clang
export CXX=clang++
make tests TESTFILTER=__no_tests__
# Run the fuzz tests
for fuzz_binary in build/px4_sitl_test/*fuzz*; do
./Tools/ci/run_fuzz_tests.sh $fuzz_binary 15m
done
# Create a github issue in case of a failure
- name: Create Issue
if: ${{ failure() }}
uses: JasonEtco/create-an-issue@v2
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
WORKFLOW_RUN_URL: https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}
with:
filename: .github/fuzzing_issue_template.md
+67
View File
@@ -0,0 +1,67 @@
name: ITCM check
permissions:
contents: read
on:
push:
branches:
- 'main'
paths-ignore:
- 'docs/**'
pull_request:
branches:
- '**'
paths-ignore:
- 'docs/**'
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
check_itcm:
name: Checking ${{ matrix.target }}
runs-on: [runs-on,runner=4cpu-linux-x64,image=ubuntu24-full-x64,"run-id=${{ github.run_id }}",spot=false]
container:
image: px4io/px4-dev:v1.16.0-rc1-258-g0369abd556
strategy:
fail-fast: false
matrix:
include:
- target: px4_fmu-v5x
scripts: >
boards/px4/fmu-v5x/nuttx-config/scripts/itcm_gen_functions.ld
boards/px4/fmu-v5x/nuttx-config/scripts/itcm_static_functions.ld
- target: px4_fmu-v6xrt
scripts: >
boards/px4/fmu-v6xrt/nuttx-config/scripts/itcm_functions_includes.ld
boards/px4/fmu-v6xrt/nuttx-config/scripts/itcm_static_functions.ld
- target: nxp_tropic-community
scripts: >
boards/nxp/tropic-community/nuttx-config/scripts/itcm_functions_includes.ld
boards/nxp/tropic-community/nuttx-config/scripts/itcm_static_functions.ld
- target: nxp_mr-tropic
scripts: >
boards/nxp/mr-tropic/nuttx-config/scripts/itcm_functions_includes.ld
boards/nxp/mr-tropic/nuttx-config/scripts/itcm_static_functions.ld
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
submodules: recursive
- name: Git ownership workaround
run: git config --system --add safe.directory '*'
- name: Build Target
run: make ${{ matrix.target }}
- name: Copy built ELF
run: cp ./build/**/*.elf ./built.elf
- name: Install itcm-check dependencies
run: pip3 install -r Tools/setup/optional-requirements.txt --break-system-packages
- name: Execute the itcm-check
run: python3 Tools/itcm_check.py --elf-file built.elf --script-files ${{ matrix.scripts }}
+21
View File
@@ -0,0 +1,21 @@
# This workflow will triage pull requests and apply a label based on the
# paths that are modified in the pull request.
# The paths are set up in .github/labeler.yml
#
# See: https://github.com/actions/labeler
name: Labeler
on: [pull_request_target]
jobs:
label:
runs-on: ubuntu-latest
permissions:
contents: read
pull-requests: write
steps:
- uses: actions/labeler@v5
with:
repo-token: "${{ secrets.GITHUB_TOKEN }}"
+29 -123
View File
@@ -3,137 +3,43 @@ name: MAVROS Mission Tests
on:
push:
branches:
- 'master'
- 'main'
paths-ignore:
- 'docs/**'
pull_request:
branches:
- '*'
- '**'
paths-ignore:
- 'docs/**'
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
build:
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
config:
- {vehicle: "iris", mission: "MC_mission_box", build_type: "RelWithDebInfo"}
- {vehicle: "rover", mission: "rover_mission_1", build_type: "RelWithDebInfo"}
#- {vehicle: "plane", mission: "FW_mission_1", build_type: "RelWithDebInfo"}
#- {vehicle: "plane_catapult",mission: "FW_mission_1", build_type: "RelWithDebInfo"}
#- {vehicle: "standard_vtol", mission: "VTOL_mission_1", build_type: "Coverage"}
#- {vehicle: "standard_vtol", mission: "VTOL_mission_1", build_type: "AddressSanitizer"}
#- {vehicle: "tailsitter", mission: "VTOL_mission_1", build_type: "RelWithDebInfo"}
#- {vehicle: "tiltrotor", mission: "VTOL_mission_1", build_type: "RelWithDebInfo"}
container:
image: px4io/px4-dev-ros-melodic:2021-09-08
options: --privileged --ulimit core=-1 --security-opt seccomp=unconfined
steps:
- uses: actions/checkout@v1
with:
token: ${{ secrets.ACCESS_TOKEN }}
- uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Prepare ccache timestamp
id: ccache_cache_timestamp
shell: cmake -P {0}
run: |
string(TIMESTAMP current_date "%Y-%m-%d-%H;%M;%S" UTC)
message("::set-output name=timestamp::${current_date}")
- name: ccache cache files
uses: actions/cache@v2
with:
path: ~/.ccache
key: sitl_tests-${{matrix.config.build_type}}-ccache-${{steps.ccache_cache_timestamp.outputs.timestamp}}
restore-keys: sitl_tests-${{matrix.config.build_type}}-ccache-
- name: setup ccache
run: |
mkdir -p ~/.ccache
echo "base_dir = ${GITHUB_WORKSPACE}" > ~/.ccache/ccache.conf
echo "compression = true" >> ~/.ccache/ccache.conf
echo "compression_level = 6" >> ~/.ccache/ccache.conf
echo "max_size = 100M" >> ~/.ccache/ccache.conf
echo "hash_dir = false" >> ~/.ccache/ccache.conf
ccache -s
ccache -z
- name: check environment
run: |
export
ulimit -a
- name: Build PX4 and sitl_gazebo
env:
PX4_CMAKE_BUILD_TYPE: ${{matrix.config.build_type}}
run: |
ccache -z
make px4_sitl_default
make px4_sitl_default sitl_gazebo
ccache -s
- name: Core dump settings
run: |
ulimit -c unlimited
echo "`pwd`/%e.core" > /proc/sys/kernel/core_pattern
- name: Run SITL tests
env:
PX4_CMAKE_BUILD_TYPE: ${{matrix.config.build_type}}
run: |
export
./test/rostest_px4_run.sh mavros_posix_test_mission.test mission:=${{matrix.config.mission}} vehicle:=${{matrix.config.vehicle}}
timeout-minutes: 45
- name: Look at core files
if: failure()
run: gdb build/px4_sitl_default/bin/px4 px4.core -ex "thread apply all bt" -ex "quit"
- name: Upload px4 coredump
if: failure()
uses: actions/upload-artifact@v2-preview
with:
name: coredump
path: px4.core
- name: ecl EKF analysis
if: always()
run: ./Tools/ecl_ekf/process_logdata_ekf.py ~/.ros/log/*/*.ulg || true
- name: Upload logs to flight review
if: always()
run: ./Tools/upload_log.py -q --description "${GITHUB_WORKFLOW} ${GITHUB_RUN_ID}" --feedback "${GITHUB_WORKFLOW} ${GITHUB_RUN_ID} ${GITHUB_REPOSITORY} ${GITHUB_REF}" --source CI ~/.ros/log/*/*.ulg
- name: Upload px4 binary
if: failure()
uses: actions/upload-artifact@v2
with:
name: binary
path: build/px4_sitl_default/bin/px4
- name: Store PX4 log
if: failure()
uses: actions/upload-artifact@v2
with:
name: px4_log
path: ~/.ros/log/*/*.ulg
- name: Store ROS log
if: failure()
uses: actions/upload-artifact@v2
with:
name: ros_log
path: ~/.ros/**/rostest-*.log
# Report test coverage
- name: Upload coverage
if: contains(matrix.config.build_type, 'Coverage')
run: |
git config --global credential.helper "" # disable the keychain credential helper
git config --global --add credential.helper store # enable the local store credential helper
echo "https://x-access-token:${{ secrets.ACCESS_TOKEN }}@github.com" >> ~/.git-credentials # add credential
git config --global url."https://github.com/".insteadof git@github.com: # credentials add credential
mkdir -p coverage
lcov --directory build/px4_sitl_default --base-directory build/px4_sitl_default --gcov-tool gcov --capture -o coverage/lcov.info
- name: Upload coverage information to Codecov
if: contains(matrix.config.build_type, 'Coverage')
uses: codecov/codecov-action@v1
with:
token: ${{ secrets.CODECOV_TOKEN }}
flags: mavros_mission
file: coverage/lcov.info
- name: Build SITL and Run Tests (inside old ROS container)
run: |
docker run --rm \
-v "${GITHUB_WORKSPACE}:/workspace" \
-w /workspace \
px4io/px4-dev-ros-melodic:2021-09-08 \
bash -c '
git config --global --add safe.directory /workspace
make px4_sitl_default
make px4_sitl_default sitl_gazebo-classic
./test/rostest_px4_run.sh \
mavros_posix_test_mission.test \
mission:=MC_mission_box \
vehicle:=iris
'
+28 -118
View File
@@ -3,132 +3,42 @@ name: MAVROS Offboard Tests
on:
push:
branches:
- 'master'
- 'main'
paths-ignore:
- 'docs/**'
pull_request:
branches:
- '*'
- '**'
paths-ignore:
- 'docs/**'
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
build:
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
config:
- {test_file: "mavros_posix_tests_offboard_posctl.test", vehicle: "iris", build_type: "RelWithDebInfo"}
#- {test_file: "mavros_posix_tests_offboard_attctl.test", vehicle: "iris", build_type: "RelWithDebInfo"}
#- {test_file: "mavros_posix_tests_offboard_rpyrt_ctl.test", vehicle: "iris", build_type: "RelWithDebInfo"}
container:
image: px4io/px4-dev-ros-melodic:2021-09-08
options: --privileged --ulimit core=-1 --security-opt seccomp=unconfined
steps:
- uses: actions/checkout@v1
with:
token: ${{ secrets.ACCESS_TOKEN }}
- uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Prepare ccache timestamp
id: ccache_cache_timestamp
shell: cmake -P {0}
run: |
string(TIMESTAMP current_date "%Y-%m-%d-%H;%M;%S" UTC)
message("::set-output name=timestamp::${current_date}")
- name: ccache cache files
uses: actions/cache@v2
with:
path: ~/.ccache
key: sitl_tests-${{matrix.config.build_type}}-ccache-${{steps.ccache_cache_timestamp.outputs.timestamp}}
restore-keys: sitl_tests-${{matrix.config.build_type}}-ccache-
- name: setup ccache
run: |
mkdir -p ~/.ccache
echo "base_dir = ${GITHUB_WORKSPACE}" > ~/.ccache/ccache.conf
echo "compression = true" >> ~/.ccache/ccache.conf
echo "compression_level = 6" >> ~/.ccache/ccache.conf
echo "max_size = 100M" >> ~/.ccache/ccache.conf
echo "hash_dir = false" >> ~/.ccache/ccache.conf
ccache -s
ccache -z
- name: check environment
run: |
export
ulimit -a
- name: Build PX4 and sitl_gazebo
env:
PX4_CMAKE_BUILD_TYPE: ${{matrix.config.build_type}}
run: |
ccache -z
make px4_sitl_default
make px4_sitl_default sitl_gazebo
ccache -s
- name: Core dump settings
run: |
ulimit -c unlimited
echo "`pwd`/%e.core" > /proc/sys/kernel/core_pattern
- name: Run SITL tests
env:
PX4_CMAKE_BUILD_TYPE: ${{matrix.config.build_type}}
run: |
export
./test/rostest_px4_run.sh ${{matrix.config.test_file}} vehicle:=${{matrix.config.vehicle}}
timeout-minutes: 45
- name: Look at core files
if: failure()
run: gdb build/px4_sitl_default/bin/px4 px4.core -ex "thread apply all bt" -ex "quit"
- name: Upload px4 coredump
if: failure()
uses: actions/upload-artifact@v2-preview
with:
name: coredump
path: px4.core
- name: ecl EKF analysis
if: always()
run: ./Tools/ecl_ekf/process_logdata_ekf.py ~/.ros/log/*/*.ulg || true
- name: Upload logs to flight review
if: always()
run: ./Tools/upload_log.py -q --description "${GITHUB_WORKFLOW} ${GITHUB_RUN_ID}" --feedback "${GITHUB_WORKFLOW} ${GITHUB_RUN_ID} ${GITHUB_REPOSITORY} ${GITHUB_REF}" --source CI ~/.ros/log/*/*.ulg
- name: Upload px4 binary
if: failure()
uses: actions/upload-artifact@v2
with:
name: binary
path: build/px4_sitl_default/bin/px4
- name: Store PX4 log
if: failure()
uses: actions/upload-artifact@v2
with:
name: px4_log
path: ~/.ros/log/*/*.ulg
- name: Store ROS log
if: failure()
uses: actions/upload-artifact@v2
with:
name: ros_log
path: ~/.ros/**/rostest-*.log
# Report test coverage
- name: Upload coverage
if: contains(matrix.config.build_type, 'Coverage')
run: |
git config --global credential.helper "" # disable the keychain credential helper
git config --global --add credential.helper store # enable the local store credential helper
echo "https://x-access-token:${{ secrets.ACCESS_TOKEN }}@github.com" >> ~/.git-credentials # add credential
git config --global url."https://github.com/".insteadof git@github.com: # credentials add credential
mkdir -p coverage
lcov --directory build/px4_sitl_default --base-directory build/px4_sitl_default --gcov-tool gcov --capture -o coverage/lcov.info
- name: Upload coverage information to Codecov
if: contains(matrix.config.build_type, 'Coverage')
uses: codecov/codecov-action@v1
with:
token: ${{ secrets.CODECOV_TOKEN }}
flags: mavros_offboard
file: coverage/lcov.info
- name: Build SITL and Run Tests (inside old ROS container)
run: |
docker run --rm \
-v "${GITHUB_WORKSPACE}:/workspace" \
-w /workspace \
px4io/px4-dev-ros-melodic:2021-09-08 \
bash -c '
git config --global --add safe.directory /workspace
make px4_sitl_default
make px4_sitl_default sitl_gazebo-classic
./test/rostest_px4_run.sh \
mavros_posix_tests_offboard_posctl.test \
vehicle:=iris
'
-157
View File
@@ -1,157 +0,0 @@
name: Metadata
on:
push:
branches:
- 'master'
- 'release/*'
- 'pr-metadata-test'
jobs:
airframe:
runs-on: ubuntu-latest
container: px4io/px4-dev-base-focal:2021-09-08
steps:
- uses: actions/checkout@v1
with:
token: ${{ secrets.ACCESS_TOKEN }}
- name: airframe metadata
run: |
make airframe_metadata
./src/lib/version/get_git_tag_or_branch_version.sh build/px4_sitl_default >> $GITHUB_ENV
cd build/px4_sitl_default/docs
# TODO: deploy to userguide gitbook
- uses: jakejarvis/s3-sync-action@master
with:
args: --acl public-read
env:
AWS_S3_BUCKET: 'px4-travis'
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
AWS_REGION: 'us-west-1'
SOURCE_DIR: 'build/px4_sitl_default/docs/'
DEST_DIR: 'Firmware/${{ env.version }}/_general/'
module:
runs-on: ubuntu-latest
container: px4io/px4-dev-base-focal:2021-09-08
steps:
- uses: actions/checkout@v1
with:
token: ${{ secrets.ACCESS_TOKEN }}
- name: module documentation
run: |
make module_documentation
cd build/px4_sitl_default/docs
ls -ls *
# TODO: deploy to userguide gitbook and s3
parameter:
runs-on: ubuntu-latest
container: px4io/px4-dev-base-focal:2021-09-08
steps:
- uses: actions/checkout@v1
with:
token: ${{ secrets.ACCESS_TOKEN }}
- name: parameter metadata
run: |
make parameters_metadata
./src/lib/version/get_git_tag_or_branch_version.sh build/px4_sitl_default >> $GITHUB_ENV
- uses: jakejarvis/s3-sync-action@master
with:
args: --acl public-read
env:
AWS_S3_BUCKET: 'px4-travis'
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
AWS_REGION: 'us-west-1'
SOURCE_DIR: 'build/px4_sitl_default/docs/'
DEST_DIR: 'Firmware/${{ env.version }}/_general/'
events:
runs-on: ubuntu-latest
container: px4io/px4-dev-base-focal:2021-09-08
steps:
- uses: actions/checkout@v1
with:
token: ${{ secrets.ACCESS_TOKEN }}
- name: events metadata
run: |
make extract_events
./src/lib/version/get_git_tag_or_branch_version.sh build/px4_sitl_default >> $GITHUB_ENV
cd build/px4_sitl_default
mkdir _events_full || true
cp events/all_events_full.json.xz _events_full/all_events.json.xz
- uses: jakejarvis/s3-sync-action@master
with:
args: --acl public-read
env:
AWS_S3_BUCKET: 'px4-travis'
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
AWS_REGION: 'us-west-1'
SOURCE_DIR: 'build/px4_sitl_default/_events_full/'
DEST_DIR: 'Firmware/${{ env.version }}/_general/'
uorb_graph:
runs-on: ubuntu-latest
container: px4io/px4-dev-nuttx-focal:2021-09-08
steps:
- uses: actions/checkout@v1
with:
token: ${{ secrets.ACCESS_TOKEN }}
- name: uORB graph
run: |
make uorb_graphs
cd Tools/uorb_graph
ls -ls *
# TODO: deploy graph_px4_sitl.json to S3 px4-travis:Firmware/master/
micrortps_agent:
runs-on: ubuntu-latest
container: px4io/px4-dev-base-focal:2021-09-08
steps:
- uses: actions/checkout@v1
with:
token: ${{ secrets.ACCESS_TOKEN }}
- name: microRTPS agent
run: |
make px4_sitl_rtps
git clone https://github.com/PX4/micrortps_agent.git
cp -R build/px4_sitl_rtps/src/modules/micrortps_bridge/micrortps_agent/* micrortps_agent
ROS_msgs:
runs-on: ubuntu-latest
container: px4io/px4-dev-base-focal:2021-09-08
steps:
- uses: actions/checkout@v1
with:
token: ${{ secrets.ACCESS_TOKEN }}
- name: PX4 ROS msgs
run: |
git clone https://github.com/PX4/px4_msgs.git
python3 msg/tools/uorb_to_ros_msgs.py msg/ px4_msgs/msg/
ROS2_bridge:
runs-on: ubuntu-latest
container: px4io/px4-dev-base-focal:2021-09-08
steps:
- uses: actions/checkout@v1
with:
token: ${{ secrets.ACCESS_TOKEN }}
- name: PX4 ROS2 bridge
run: |
git clone https://github.com/PX4/px4_ros_com.git
./msg/tools/uorb_to_ros_urtps_topics.py -i msg/tools/urtps_bridge_topics.yaml -o px4_ros_com/templates/urtps_bridge_topics.yaml
+46
View File
@@ -0,0 +1,46 @@
name: Nuttx Target with extra env config
on:
push:
branches:
- 'main'
paths-ignore:
- 'docs/**'
pull_request:
branches:
- '**'
paths-ignore:
- 'docs/**'
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
build:
runs-on: ubuntu-latest
container:
image: px4io/px4-dev:v1.16.0-rc1-258-g0369abd556
strategy:
matrix:
config:
- px4_fmu-v5_default
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Build PX4 and Run Test [${{ matrix.config }}]
run: |
cd "$GITHUB_WORKSPACE"
git config --global --add safe.directory "$GITHUB_WORKSPACE"
export PX4_EXTRA_NUTTX_CONFIG='CONFIG_NSH_LOGIN_PASSWORD="test";CONFIG_NSH_CONSOLE_LOGIN=y'
echo "PX4_EXTRA_NUTTX_CONFIG: $PX4_EXTRA_NUTTX_CONFIG"
make ${{ matrix.config }} nuttx_context
echo "Check that the config option is set"
grep CONFIG_NSH_LOGIN_PASSWORD build/${{ matrix.config }}/NuttX/nuttx/.config
+14 -6
View File
@@ -3,23 +3,31 @@ name: Python CI Checks
on:
push:
branches:
- 'master'
- 'main'
paths-ignore:
- 'docs/**'
pull_request:
branches:
- '*'
- '**'
paths-ignore:
- 'docs/**'
jobs:
build:
runs-on: ubuntu-latest
runs-on: ubuntu-24.04
steps:
- uses: actions/checkout@v1
- uses: actions/checkout@v4
with:
token: ${{ secrets.ACCESS_TOKEN }}
fetch-depth: 0
- name: Install Python3
run: sudo apt-get install python3 python3-setuptools python3-pip -y
- name: Install tools
run: pip3 install --user mypy types-requests flake8
run: python3 -m pip install mypy types-requests flake8 --break-system-packages
- name: Check MAVSDK test scripts with mypy
run: $HOME/.local/bin/mypy --strict test/mavsdk_tests/*.py
- name: Check MAVSDK test scripts with flake8
run: $HOME/.local/bin/flake8 test/mavsdk_tests/*.py
+131
View File
@@ -0,0 +1,131 @@
# NOTE: this workflow is now running on Dronecode / PX4 AWS account.
# - If you want to keep the tests running in GitHub Actions you need to uncomment the "runs-on: ubuntu-latest" lines
# and comment the "runs-on: [runs-on,runner=..." lines.
# - If you would like to duplicate this setup try setting up "RunsOn" on your own AWS account try https://runs-on.com
name: ROS Integration Tests
on:
push:
branches:
- 'main'
paths-ignore:
- 'docs/**'
pull_request:
branches:
- '**'
paths-ignore:
- 'docs/**'
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
build:
runs-on: [runs-on,runner=4cpu-linux-x64,image=ubuntu22-full-x64,"run-id=${{ github.run_id }}",spot=false]
container:
image: px4io/px4-dev-ros2-galactic:2021-09-08
options: --privileged --ulimit core=-1 --security-opt seccomp=unconfined
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Git Ownership Workaround
run: git config --system --add safe.directory '*'
- name: Update ROS Keys
run: |
sudo rm /etc/apt/sources.list.d/ros2.list && \
sudo curl -sSL https://raw.githubusercontent.com/ros/rosdistro/master/ros.key -o /usr/share/keyrings/ros-archive-keyring.gpg && \
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/ros-archive-keyring.gpg] http://packages.ros.org/ros2/ubuntu $(. /etc/os-release && echo $UBUNTU_CODENAME) main" | sudo tee /etc/apt/sources.list.d/ros2.list > /dev/null
- name: Install gazebo
run: |
apt update && apt install -y gazebo11 libgazebo11-dev gstreamer1.0-plugins-bad gstreamer1.0-plugins-base gstreamer1.0-plugins-good gstreamer1.0-plugins-ugly libgstreamer-plugins-base1.0-dev
- name: Prepare ccache timestamp
id: ccache_cache_timestamp
shell: cmake -P {0}
run: |
string(TIMESTAMP current_date "%Y-%m-%d-%H;%M;%S" UTC)
message("::set-output name=timestamp::${current_date}")
- name: ccache cache files
uses: actions/cache@v4
with:
path: ~/.ccache
key: ros_integration_tests-${{matrix.config.build_type}}-ccache-${{steps.ccache_cache_timestamp.outputs.timestamp}}
restore-keys: ros_integration_tests-${{matrix.config.build_type}}-ccache-
- name: setup ccache
run: |
mkdir -p ~/.ccache
echo "base_dir = ${GITHUB_WORKSPACE}" > ~/.ccache/ccache.conf
echo "compression = true" >> ~/.ccache/ccache.conf
echo "compression_level = 6" >> ~/.ccache/ccache.conf
echo "max_size = 300M" >> ~/.ccache/ccache.conf
echo "hash_dir = false" >> ~/.ccache/ccache.conf
ccache -s
ccache -z
- name: Get and build micro-xrce-dds-agent
run: |
cd /opt
git clone --recursive https://github.com/eProsima/Micro-XRCE-DDS-Agent.git
cd Micro-XRCE-DDS-Agent
git checkout v2.2.1 # recent versions require cmake 3.22, but px4-dev-ros2-galactic:2021-09-08 is on 3.16
sed -i 's/_fastdds_tag 2.8.x/_fastdds_tag 2.8.2/g' CMakeLists.txt
mkdir build
cd build
cmake ..
make -j2
- name: ccache post-run micro-xrce-dds-agent
run: ccache -s
- name: Get and build the ros2 interface library
shell: bash
run: |
PX4_DIR="$(pwd)"
. /opt/ros/galactic/setup.bash
mkdir -p /opt/px4_ws/src
cd /opt/px4_ws/src
git clone --recursive https://github.com/Auterion/px4-ros2-interface-lib.git
cd ..
# Copy messages to ROS workspace
"${PX4_DIR}/Tools/copy_to_ros_ws.sh" "$(pwd)"
rm -rf src/translation_node src/px4_msgs_old
colcon build --symlink-install
- name: ccache post-run ros workspace
run: ccache -s
- name: Build PX4
run: make px4_sitl_default
- name: ccache post-run px4/firmware
run: ccache -s
- name: Build SITL Gazebo
run: make px4_sitl_default sitl_gazebo-classic
- name: ccache post-run sitl_gazebo-classic
run: ccache -s
- name: Core dump settings
run: |
ulimit -c unlimited
echo "`pwd`/%e.core" > /proc/sys/kernel/core_pattern
- name: Run tests
shell: bash
run: |
. /opt/px4_ws/install/setup.bash
/opt/Micro-XRCE-DDS-Agent/build/MicroXRCEAgent udp4 localhost -p 8888 -v 0 &
test/ros_test_runner.py --verbose --model iris --upload --force-color
timeout-minutes: 45
- name: Upload failed logs
if: failure()
uses: actions/upload-artifact@v4
with:
name: failed-logs.zip
path: |
logs/**/**/**/*.log
logs/**/**/**/*.ulg
build/px4_sitl_default/tmp_ros_tests/rootfs/log/**/*.ulg
@@ -0,0 +1,61 @@
name: ROS Translation Node Tests
on:
push:
branches:
- 'main'
paths-ignore:
- 'docs/**'
pull_request:
branches:
- '**'
paths-ignore:
- 'docs/**'
defaults:
run:
shell: bash
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
build_and_test:
name: Build and test
runs-on: [runs-on,runner=4cpu-linux-x64,image=ubuntu24-full-x64,"run-id=${{ github.run_id }}",spot=false]
strategy:
fail-fast: false
matrix:
config:
- {ros_version: "humble", ubuntu: "jammy"}
- {ros_version: "jazzy", ubuntu: "noble"}
container:
image: rostooling/setup-ros-docker:ubuntu-${{ matrix.config.ubuntu }}-latest
steps:
- name: Setup ROS 2 (${{ matrix.config.ros_version }})
uses: ros-tooling/setup-ros@v0.7
with:
required-ros-distributions: ${{ matrix.config.ros_version }}
- name: Checkout repository
uses: actions/checkout@v4
with:
fetch-depth: 0
# Workaround for https://github.com/actions/runner/issues/2033
- name: ownership workaround
run: git config --system --add safe.directory '*'
- name: Check .msg file versioning
if: github.event_name == 'pull_request'
run: |
./Tools/ci/check_msg_versioning.sh ${{ github.event.pull_request.base.sha }} ${{github.event.pull_request.head.sha}}
- name: Build and test
run: |
ros_ws=/ros_ws
mkdir -p $ros_ws/src
./Tools/copy_to_ros_ws.sh $ros_ws
cd $ros_ws
source /opt/ros/${{ matrix.config.ros_version }}/setup.sh
colcon build --cmake-args -DCMAKE_BUILD_TYPE=Release --symlink-install --event-handlers=console_cohesion+
source ./install/setup.sh
./build/translation_node/translation_node_unit_tests
+137 -111
View File
@@ -1,135 +1,161 @@
# NOTE: this workflow is now running on Dronecode / PX4 AWS account.
# - If you want to keep the tests running in GitHub Actions you need to uncomment the "runs-on: ubuntu-latest" lines
# and comment the "runs-on: [runs-on,runner=..." lines.
# - If you would like to duplicate this setup try setting up "RunsOn" on your own AWS account try https://runs-on.com
name: SITL Tests
on:
push:
branches:
- 'master'
- 'main'
paths-ignore:
- 'docs/**'
pull_request:
branches:
- '*'
- '**'
paths-ignore:
- 'docs/**'
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
build:
runs-on: ubuntu-latest
name: Testing PX4 ${{ matrix.config.model }}
runs-on: [runs-on,runner=4cpu-linux-x64,image=ubuntu22-full-x64,"run-id=${{ github.run_id }}",spot=false]
container:
image: px4io/px4-dev-simulation-focal:2021-09-08
options: --privileged --ulimit core=-1 --security-opt seccomp=unconfined
strategy:
fail-fast: false
matrix:
config:
- {latitude: "59.617693", longitude: "-151.145316", altitude: "48", build_type: "RelWithDebInfo", model: "iris" } # Alaska
- {latitude: "-38.071235", longitude: "145.281220", altitude: "31", build_type: "AddressSanitizer", model: "standard_vtol" } # Australia
- {latitude: "29.660316", longitude: "-82.316658", altitude: "30", build_type: "RelWithDebInfo", model: "tailsitter" } # Florida
- {latitude: "47.397742", longitude: "8.545594", altitude: "488", build_type: "Coverage", model: "standard_vtol" } # Zurich
- {model: "iris", latitude: "59.617693", longitude: "-151.145316", altitude: "48", build_type: "RelWithDebInfo" } # Alaska
- {model: "tailsitter" , latitude: "29.660316", longitude: "-82.316658", altitude: "30", build_type: "RelWithDebInfo" } # Florida
- {model: "standard_vtol", latitude: "47.397742", longitude: "8.545594", altitude: "488", build_type: "Coverage" } # Zurich
container:
image: px4io/px4-dev-simulation-focal:2021-09-08
options: --privileged --ulimit core=-1 --security-opt seccomp=unconfined
steps:
- uses: actions/checkout@v1
with:
token: ${{ secrets.ACCESS_TOKEN }}
- uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Download MAVSDK
run: wget "https://github.com/mavlink/MAVSDK/releases/download/v$(cat test/mavsdk_tests/MAVSDK_VERSION)/mavsdk_$(cat test/mavsdk_tests/MAVSDK_VERSION)_ubuntu20.04_amd64.deb"
- name: Install MAVSDK
run: dpkg -i "mavsdk_$(cat test/mavsdk_tests/MAVSDK_VERSION)_ubuntu20.04_amd64.deb"
- name: Git Ownership Workaround
run: git config --system --add safe.directory '*'
- name: Prepare ccache timestamp
id: ccache_cache_timestamp
shell: cmake -P {0}
run: |
string(TIMESTAMP current_date "%Y-%m-%d-%H;%M;%S" UTC)
message("::set-output name=timestamp::${current_date}")
- name: ccache cache files
uses: actions/cache@v2
with:
path: ~/.ccache
key: sitl_tests-${{matrix.config.build_type}}-ccache-${{steps.ccache_cache_timestamp.outputs.timestamp}}
restore-keys: sitl_tests-${{matrix.config.build_type}}-ccache-
- name: setup ccache
run: |
mkdir -p ~/.ccache
echo "base_dir = ${GITHUB_WORKSPACE}" > ~/.ccache/ccache.conf
echo "compression = true" >> ~/.ccache/ccache.conf
echo "compression_level = 6" >> ~/.ccache/ccache.conf
echo "max_size = 100M" >> ~/.ccache/ccache.conf
echo "hash_dir = false" >> ~/.ccache/ccache.conf
ccache -s
ccache -z
- id: set-timestamp
name: Set timestamp for cache
run: echo "::set-output name=timestamp::$(date +"%Y%m%d%H%M%S")"
- name: check environment
env:
PX4_HOME_LAT: ${{matrix.config.latitude}}
PX4_HOME_LON: ${{matrix.config.longitude}}
PX4_HOME_ALT: ${{matrix.config.altitude}}
PX4_CMAKE_BUILD_TYPE: ${{matrix.config.build_type}}
run: |
export
ulimit -a
- name: Build PX4
env:
PX4_CMAKE_BUILD_TYPE: ${{matrix.config.build_type}}
run: make px4_sitl_default
- name: ccache post-run px4/firmware
run: ccache -s
- name: Build SITL Gazebo
env:
PX4_CMAKE_BUILD_TYPE: ${{matrix.config.build_type}}
run: make px4_sitl_default sitl_gazebo
- name: ccache post-run sitl_gazebo
run: ccache -s
- name: Build MAVSDK tests
env:
PX4_CMAKE_BUILD_TYPE: ${{matrix.config.build_type}}
DONT_RUN: 1
run: make px4_sitl_default gazebo mavsdk_tests
- name: ccache post-run mavsdk_tests
run: ccache -s
- name: Cache Key Config
uses: actions/cache@v4
with:
path: ~/.ccache
key: sitl-ccache-${{ steps.set-timestamp.outputs.timestamp }}
restore-keys: sitl-ccache-${{ steps.set-timestamp.outputs.timestamp }}
- name: Core dump settings
run: |
ulimit -c unlimited
echo "`pwd`/%e.core" > /proc/sys/kernel/core_pattern
- name: Cache Conf Config
run: |
mkdir -p ~/.ccache
echo "base_dir = ${GITHUB_WORKSPACE}" > ~/.ccache/ccache.conf
echo "compression = true" >> ~/.ccache/ccache.conf
echo "compression_level = 6" >> ~/.ccache/ccache.conf
echo "max_size = 120M" >> ~/.ccache/ccache.conf
echo "hash_dir = false" >> ~/.ccache/ccache.conf
ccache -s
ccache -z
- name: Run SITL tests
env:
PX4_HOME_LAT: ${{matrix.config.latitude}}
PX4_HOME_LON: ${{matrix.config.longitude}}
PX4_HOME_ALT: ${{matrix.config.altitude}}
PX4_CMAKE_BUILD_TYPE: ${{matrix.config.build_type}}
run: test/mavsdk_tests/mavsdk_test_runner.py --speed-factor 20 --abort-early --model ${{matrix.config.model}} --upload test/mavsdk_tests/configs/sitl.json --verbose
timeout-minutes: 45
- name: Build PX4
env:
PX4_CMAKE_BUILD_TYPE: ${{matrix.config.build_type}}
run: make px4_sitl_default
- name: Look at core files
if: failure()
run: gdb build/px4_sitl_default/bin/px4 px4.core -ex "thread apply all bt" -ex "quit"
- name: Upload px4 coredump
if: failure()
uses: actions/upload-artifact@v2-preview
with:
name: coredump
path: px4.core
- name: Cache Post-Run [px4_sitl_default]
run: ccache -s
- name: Upload px4 binary
if: failure()
uses: actions/upload-artifact@v2-preview
with:
name: binary
path: build/px4_sitl_default/bin/px4
- name: Build SITL Gazebo
env:
PX4_CMAKE_BUILD_TYPE: ${{matrix.config.build_type}}
run: make px4_sitl_default sitl_gazebo-classic
# Report test coverage
- name: Upload coverage
if: contains(matrix.config.build_type, 'Coverage')
run: |
git config --global credential.helper "" # disable the keychain credential helper
git config --global --add credential.helper store # enable the local store credential helper
echo "https://x-access-token:${{ secrets.ACCESS_TOKEN }}@github.com" >> ~/.git-credentials # add credential
git config --global url."https://github.com/".insteadof git@github.com: # credentials add credential
mkdir -p coverage
lcov --directory build/px4_sitl_default --base-directory build/px4_sitl_default --gcov-tool gcov --capture -o coverage/lcov.info
- name: Upload coverage information to Codecov
if: contains(matrix.config.build_type, 'Coverage')
uses: codecov/codecov-action@v1
with:
token: ${{ secrets.CODECOV_TOKEN }}
flags: mavsdk
file: coverage/lcov.info
- name: Cache Post-Run [sitl_gazebo-classic]
run: ccache -s
- name: Download MAVSDK
run: wget "https://github.com/mavlink/MAVSDK/releases/download/v$(cat test/mavsdk_tests/MAVSDK_VERSION)/libmavsdk-dev_$(cat test/mavsdk_tests/MAVSDK_VERSION)_ubuntu20.04_amd64.deb"
- name: Install MAVSDK
run: dpkg -i "libmavsdk-dev_$(cat test/mavsdk_tests/MAVSDK_VERSION)_ubuntu20.04_amd64.deb"
- name: Check PX4 Environment Variables
env:
PX4_HOME_LAT: ${{matrix.config.latitude}}
PX4_HOME_LON: ${{matrix.config.longitude}}
PX4_HOME_ALT: ${{matrix.config.altitude}}
PX4_CMAKE_BUILD_TYPE: ${{matrix.config.build_type}}
run: |
export
ulimit -a
- name: Build PX4 / MAVSDK tests
env:
PX4_CMAKE_BUILD_TYPE: ${{matrix.config.build_type}}
DONT_RUN: 1
run: make px4_sitl_default sitl_gazebo-classic mavsdk_tests
- name: Cache Post-Run [px4_sitl_default sitl_gazebo-classic mavsdk_tests]
run: ccache -s
- name: Core Dump Settings
run: |
ulimit -c unlimited
echo "`pwd`/%e.core" > /proc/sys/kernel/core_pattern
- name: Run SITL / MAVSDK Tests
env:
PX4_HOME_LAT: ${{matrix.config.latitude}}
PX4_HOME_LON: ${{matrix.config.longitude}}
PX4_HOME_ALT: ${{matrix.config.altitude}}
PX4_CMAKE_BUILD_TYPE: ${{matrix.config.build_type}}
run: test/mavsdk_tests/mavsdk_test_runner.py --speed-factor 10 --abort-early --model ${{matrix.config.model}} --upload test/mavsdk_tests/configs/sitl.json --verbose --force-color
timeout-minutes: 45
- name: Upload failed logs
if: failure()
uses: actions/upload-artifact@v4
with:
name: failed-${{matrix.config.model}}-logs.zip
path: |
logs/**/**/**/*.log
logs/**/**/**/*.ulg
build/px4_sitl_default/tmp_mavsdk_tests/rootfs/log/**/*.ulg
- name: Look at Core files
if: failure() && ${{ hashFiles('px4.core') != '' }}
run: gdb build/px4_sitl_default/bin/px4 px4.core -ex "thread apply all bt" -ex "quit"
- name: Upload PX4 coredump
if: failure() && ${{ hashFiles('px4.core') != '' }}
uses: actions/upload-artifact@v4
with:
name: coredump
path: px4.core
- name: Setup & Generate Coverage Report
if: contains(matrix.config.build_type, 'Coverage')
run: |
git config --global credential.helper "" # disable the keychain credential helper
git config --global --add credential.helper store # enable the local store credential helper
echo "https://x-access-token:${{ secrets.ACCESS_TOKEN }}@github.com" >> ~/.git-credentials # add credential
git config --global url."https://github.com/".insteadof git@github.com: # credentials add credential
mkdir -p coverage
lcov --directory build/px4_sitl_default --base-directory build/px4_sitl_default --gcov-tool gcov --capture -o coverage/lcov.info
- name: Upload Coverage Information to Codecov
if: contains(matrix.config.build_type, 'Coverage')
uses: codecov/codecov-action@v4
with:
token: ${{ secrets.CODECOV_TOKEN }}
flags: mavsdk
file: coverage/lcov.info
+21
View File
@@ -0,0 +1,21 @@
name: 'Handle stale issues and PRs'
on:
schedule:
- cron: '30 1 * * *'
jobs:
stale:
runs-on: ubuntu-latest
steps:
- uses: actions/stale@v10
with:
operations-per-run: 250
days-before-stale: 90
days-before-close: 30
stale-issue-label: 'stale'
stale-pr-label: 'stale'
remove-stale-when-updated: true
stale-issue-message: 'This issue has been marked as stale due to 90 days of inactivity. If no further activity occurs, it will be automatically closed in 30 days. Please leave a comment, add a reaction, make an update, or remove the stale label if youd like to keep it open.'
close-issue-message: 'This issue has been closed due to prolonged inactivity after being marked as stale. If you believe this was closed in error or the topic is still relevant, please feel free to reopen it or create a new issue.'
stale-pr-message: 'This PR was identified as stale and it will be closed in 30 days unless any activity is detected.'
close-pr-message: 'This pull request has been closed after being marked as stale with no further activity. Thank you for the time and effort you put into this contribution. If youd like to continue the discussion or update the work, please feel free to reopen it or submit a new PR.'
-33
View File
@@ -1,33 +0,0 @@
# How to install:
# gem install github_changelog_generator
# How to run:
# github_changelog_generator -u PX4 -p Firmware
# Description:
# The following params are sensible defaults for the PX4 project,
# if you want to do a changelog before a release you need to update since-tag and future-releases,
# Params:
# github_changelog_generator --help for all options
# max-issues
# max threshold for github api queries
# make sure you set your CHANGELOG_GITHUB_TOKEN before
# running
max-issues=1500
# exclude-tags-regex
# excludes release candidates
exclude-tags-regex=rc[0-9]{1,}|beta[0-9]{1,}
# since-tag
# version of last stable release
# you need to change this depending on what you need
# if you want a changelog between versions this is the lowest version
since-tag=1.6.5
# future-release
# version you are about to release
# if you want a changelog between a version and all unreleased changes grouped as a release
# eg: v1.6.5 to v1.7.0
future-release=v1.7.0
+4 -5
View File
@@ -93,7 +93,6 @@ rules.ninja
/googletest-*/
/logs
/mavsdk_tests
/test_mixer_multirotor
/unit-*
/uORB/
DartConfiguration.tcl
@@ -105,8 +104,8 @@ src/lib/version/build_git_version.h
src/modules/simulator/simulator_config.h
src/systemcmds/topic_listener/listener_generated.cpp
# SITL
dataman
eeprom/
!src/drivers/distance_sensor/broadcom/afbrs50/Lib/*
# colcon
log/
keys/
+71 -32
View File
@@ -2,48 +2,40 @@
path = src/modules/mavlink/mavlink
url = https://github.com/mavlink/mavlink.git
branch = master
[submodule "src/drivers/uavcan/libuavcan"]
path = src/drivers/uavcan/libuavcan
url = https://github.com/dronecan/libuavcan.git
branch = main
[submodule "Tools/jMAVSim"]
path = Tools/jMAVSim
[submodule "Tools/simulation/jmavsim/jMAVSim"]
path = Tools/simulation/jmavsim/jMAVSim
url = https://github.com/PX4/jMAVSim.git
branch = master
[submodule "Tools/sitl_gazebo"]
path = Tools/sitl_gazebo
url = https://github.com/PX4/PX4-SITL_gazebo.git
branch = master
branch = main
[submodule "Tools/simulation/gazebo-classic/sitl_gazebo-classic"]
path = Tools/simulation/gazebo-classic/sitl_gazebo-classic
url = https://github.com/PX4/PX4-SITL_gazebo-classic.git
branch = main
[submodule "src/drivers/gps/devices"]
path = src/drivers/gps/devices
url = https://github.com/PX4/PX4-GPSDrivers.git
branch = master
[submodule "src/modules/micrortps_bridge/micro-CDR"]
path = src/modules/micrortps_bridge/micro-CDR
url = https://github.com/PX4/Micro-CDR.git
branch = master
branch = main
[submodule "platforms/nuttx/NuttX/nuttx"]
path = platforms/nuttx/NuttX/nuttx
url = https://github.com/PX4/NuttX.git
branch = px4_firmware_nuttx-10.1.0+
branch = px4_firmware_nuttx-10.3.0+
[submodule "platforms/nuttx/NuttX/apps"]
path = platforms/nuttx/NuttX/apps
url = https://github.com/PX4/NuttX-apps.git
branch = px4_firmware_nuttx-10.1.0+
branch = px4_firmware_nuttx-10.3.0+
[submodule "Tools/flightgear_bridge"]
path = Tools/flightgear_bridge
path = Tools/simulation/flightgear/flightgear_bridge
url = https://github.com/PX4/PX4-FlightGear-Bridge.git
[submodule "Tools/jsbsim_bridge"]
path = Tools/jsbsim_bridge
[submodule "Tools/simulation/jsbsim/jsbsim_bridge"]
path = Tools/simulation/jsbsim/jsbsim_bridge
url = https://github.com/PX4/px4-jsbsim-bridge.git
[submodule "src/drivers/uavcan_v1/libcanard"]
path = src/drivers/uavcan_v1/libcanard
url = https://github.com/UAVCAN/libcanard.git
[submodule "src/drivers/uavcan_v1/public_regulated_data_types"]
path = src/drivers/uavcan_v1/public_regulated_data_types
url = https://github.com/UAVCAN/public_regulated_data_types.git
[submodule "src/drivers/uavcan_v1/legacy_data_types"]
path = src/drivers/uavcan_v1/legacy_data_types
[submodule "src/drivers/cyphal/libcanard"]
path = src/drivers/cyphal/libcanard
url = https://github.com/opencyphal/libcanard.git
[submodule "src/drivers/cyphal/public_regulated_data_types"]
path = src/drivers/cyphal/public_regulated_data_types
url = https://github.com/opencyphal/public_regulated_data_types.git
[submodule "src/drivers/cyphal/legacy_data_types"]
path = src/drivers/cyphal/legacy_data_types
url = https://github.com/PX4/public_regulated_data_types.git
branch = legacy
[submodule "src/lib/crypto/monocypher"]
@@ -53,9 +45,7 @@
[submodule "src/lib/events/libevents"]
path = src/lib/events/libevents
url = https://github.com/mavlink/libevents.git
[submodule "Tools/simulation-ignition"]
path = Tools/simulation-ignition
url = https://github.com/PX4/px4-simulation-ignition.git
branch = main
[submodule "src/lib/crypto/libtomcrypt"]
path = src/lib/crypto/libtomcrypt
url = https://github.com/PX4/libtomcrypt.git
@@ -64,3 +54,52 @@
path = src/lib/crypto/libtommath
url = https://github.com/PX4/libtommath.git
branch = px4
[submodule "src/modules/uxrce_dds_client/Micro-XRCE-DDS-Client"]
path = src/modules/uxrce_dds_client/Micro-XRCE-DDS-Client
url = https://github.com/PX4/Micro-XRCE-DDS-Client.git
branch = px4
[submodule "src/lib/cdrstream/cyclonedds"]
path = src/lib/cdrstream/cyclonedds
url = https://github.com/px4/cyclonedds
[submodule "src/lib/cdrstream/rosidl"]
path = src/lib/cdrstream/rosidl
url = https://github.com/px4/rosidl
[submodule "src/modules/zenoh/zenoh-pico"]
path = src/modules/zenoh/zenoh-pico
url = https://github.com/px4/zenoh-pico
branch = dev/1.0.0-px4
[submodule "src/lib/heatshrink/heatshrink"]
path = src/lib/heatshrink/heatshrink
url = https://github.com/PX4/heatshrink.git
branch = px4
[submodule "Tools/simulation/gz"]
path = Tools/simulation/gz
url = https://github.com/PX4/PX4-gazebo-models.git
branch = main
[submodule "boards/modalai/voxl2/libfc-sensor-api"]
path = boards/modalai/voxl2/libfc-sensor-api
url = https://gitlab.com/voxl-public/voxl-sdk/core-libs/libfc-sensor-api.git
[submodule "src/drivers/actuators/vertiq_io/iq-module-communication-cpp"]
path = src/drivers/actuators/vertiq_io/iq-module-communication-cpp
url = https://github.com/PX4/iq-module-communication-cpp.git
branch = master
[submodule "src/drivers/uavcan/libdronecan/dsdl"]
path = src/drivers/uavcan/libdronecan/dsdl
url = https://github.com/PX4/DSDL.git
[submodule "src/drivers/uavcan/libdronecan/libuavcan/dsdl_compiler/pydronecan"]
path = src/drivers/uavcan/libdronecan/libuavcan/dsdl_compiler/pydronecan
url = https://github.com/dronecan/pydronecan
[submodule "test/fuzztest"]
path = test/fuzztest
url = https://github.com/google/fuzztest.git
branch = main
[submodule "src/lib/tensorflow_lite_micro/tflite_micro"]
path = src/lib/tensorflow_lite_micro/tflite_micro
url = https://github.com/PX4/tflite-micro.git
branch = main
[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
-35
View File
@@ -1,35 +0,0 @@
language: cpp
git:
depth: 100
submodules: false
matrix:
fast_finish: true
include:
- os: linux
dist: xenial
# In order to stay under the coverity rate limit, we only run this weekly
# and not on push which is configured in travis-ci settings.
if: branch = master
before_install:
- echo -n | openssl s_client -connect scan.coverity.com:443 | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' | sudo tee -a /etc/ssl/certs/ca-
install:
- export PATH=$HOME/.local/bin:$PATH
- pip install --user --upgrade pip
- pip install --user -r Tools/setup/requirements.txt
script:
- make
addons:
coverity_scan:
project:
name: "PX4/Firmware"
description: "Build submitted via Travis CI"
notification_email: ci@px4.io
build_command_prepend: "make distclean"
build_command: "make px4_sitl_default"
branch_pattern: coverity_scan
+3
View File
@@ -4,8 +4,11 @@ compile_commands.json
# generated by cmake
launch.json
c_cpp_properties.json
# C/C++ extension does some local caching in this folder
ipch/
browse.vc.db*
*.log
-16
View File
@@ -1,16 +0,0 @@
{
"configurations": [
{
"name": "PX4",
"includePath": [
"${workspaceFolder}/**"
],
"defines": [],
"macFrameworkPath": [],
"configurationProvider": "ms-vscode.cmake-tools",
"cppStandard": "c++14",
"cStandard": "c11"
}
],
"version": 4
}
+1 -1
View File
@@ -2,4 +2,4 @@
{
"name": "PX4 detect"
}
]
]
+265 -5
View File
@@ -2,15 +2,20 @@ CONFIG:
default: px4_sitl_default
choices:
px4_sitl_default:
short: px4_sitl
short: px4_sitl_default
buildType: RelWithDebInfo
settings:
CONFIG: px4_sitl_default
px4_sitl_rtps:
short: px4_sitl_rtps
px4_sitl_spacecraft:
short: px4_sitl_spacecraft
buildType: RelWithDebInfo
settings:
CONFIG: px4_sitl_rtps
CONFIG: px4_sitl_spacecraft
px4_sitl_nolockstep:
short: px4_sitl_nolockstep
buildType: RelWithDebInfo
settings:
CONFIG: px4_sitl_nolockstep
px4_sitl_asan:
short: px4_sitl (AddressSanitizer)
buildType: AddressSanitizer
@@ -31,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
@@ -71,6 +81,26 @@ CONFIG:
buildType: MinSizeRel
settings:
CONFIG: px4_fmu-v5x_default
px4_fmu-v6c_default:
short: px4_fmu-v6c
buildType: MinSizeRel
settings:
CONFIG: px4_fmu-v6c_default
px4_fmu-v6c_bootloader:
short: px4_fmu-v6c_bootloader
buildType: MinSizeRel
settings:
CONFIG: px4_fmu-v6c_bootloader
px4_fmu-v6u_default:
short: px4_fmu-v6u
buildType: MinSizeRel
settings:
CONFIG: px4_fmu-v6u_default
px4_fmu-v6u_bootloader:
short: px4_fmu-v6u_bootloader
buildType: MinSizeRel
settings:
CONFIG: px4_fmu-v6u_bootloader
px4_fmu-v6x_default:
short: px4_fmu-v6x
buildType: MinSizeRel
@@ -81,6 +111,21 @@ CONFIG:
buildType: MinSizeRel
settings:
CONFIG: px4_fmu-v6x_bootloader
px4_fmu-v6xrt_default:
short: px4_fmu-v6xrt
buildType: MinSizeRel
settings:
CONFIG: px4_fmu-v6xrt_default
px4_fmu-v6xrt_bootloader:
short: px4_fmu-v6xrt_bootloader
buildType: MinSizeRel
settings:
CONFIG: px4_fmu-v6xrt_bootloader
3dr_ctrl-zero-h7-oem-revg_default:
short: 3dr_ctrl-zero-h7-oem-revg
buildType: MinSizeRel
settings:
CONFIG: 3dr_ctrl-zero-h7-oem-revg_default
airmind_mindpx-v2_default:
short: airmind_mindpx-v2
buildType: MinSizeRel
@@ -96,6 +141,11 @@ CONFIG:
buildType: MinSizeRel
settings:
CONFIG: ark_can-flow_canbootloader
ark_can-flow-mr_canbootloader:
short: ark_can-flow-mr_canbootloader
buildType: MinSizeRel
settings:
CONFIG: ark_can-flow-mr_canbootloader
ark_can-gps_default:
short: ark_can-gps_default
buildType: MinSizeRel
@@ -121,6 +171,91 @@ CONFIG:
buildType: MinSizeRel
settings:
CONFIG: ark_can-rtk-gps_canbootloader
ark_septentrio-gps_default:
short: ark_septentrio-gps_default
buildType: MinSizeRel
settings:
CONFIG: ark_septentrio-gps_default
ark_septentrio-gps_canbootloader:
short: ark_septentrio-gps_canbootloader
buildType: MinSizeRel
settings:
CONFIG: ark_septentrio-gps_canbootloader
ark_teseo-gps_canbootloader:
short: ark_teseo-gps_canbootloader
buildType: MinSizeRel
settings:
CONFIG: ark_teseo-gps_canbootloader
ark_cannode_default:
short: ark_cannode_default
buildType: MinSizeRel
settings:
CONFIG: ark_cannode_default
ark_cannode_canbootloader:
short: ark_cannode_canbootloader
buildType: MinSizeRel
settings:
CONFIG: ark_cannode_canbootloader
ark_dist_default:
short: ark_dist_default
buildType: MinSizeRel
settings:
CONFIG: ark_dist_default
ark_dist_canbootloader:
short: ark_dist_canbootloader
buildType: MinSizeRel
settings:
CONFIG: ark_dist_canbootloader
ark_f9p-gps_default:
short: ark_f9p-gps_default
buildType: MinSizeRel
settings:
CONFIG: ark_f9p-gps_default
ark_f9p-gps_canbootloader:
short: ark_f9p-gps_canbootloader
buildType: MinSizeRel
settings:
CONFIG: ark_f9p-gps_canbootloader
ark_fmu-v6x_bootloader:
short: ark_fmu-v6x_bootloader
buildType: MinSizeRel
settings:
CONFIG: ark_fmu-v6x_bootloader
ark_fmu-v6x_default:
short: ark_fmu-v6x_default
buildType: MinSizeRel
settings:
CONFIG: ark_fmu-v6x_default
ark_fpv_bootloader:
short: ark_fpv_bootloader
buildType: MinSizeRel
settings:
CONFIG: ark_fpv_bootloader
ark_fpv_default:
short: ark_fpv_default
buildType: MinSizeRel
settings:
CONFIG: ark_fpv_default
ark_pi6x_bootloader:
short: ark_pi6x_bootloader
buildType: MinSizeRel
settings:
CONFIG: ark_pi6x_bootloader
ark_pi6x_default:
short: ark_pi6x_default
buildType: MinSizeRel
settings:
CONFIG: ark_pi6x_default
ark_x20-gps_default:
short: ark_x20-gps_default
buildType: MinSizeRel
settings:
CONFIG: ark_x20-gps_default
ark_x20-gps_canbootloader:
short: ark_x20-gps_canbootloader
buildType: MinSizeRel
settings:
CONFIG: ark_x20-gps_canbootloader
atl_mantis-edu_default:
short: atl_mantis-edu
buildType: MinSizeRel
@@ -136,6 +271,11 @@ CONFIG:
buildType: MinSizeRel
settings:
CONFIG: bitcraze_crazyflie_default
bluerobotics_navigator_default:
short: bluerobotics_navigator
buildType: MinSizeRel
settings:
CONFIG: bluerobotics_navigator_default
cuav_can-gps-v1_default:
short: cuav_can-gps-v1_default
buildType: MinSizeRel
@@ -156,11 +296,31 @@ CONFIG:
buildType: MinSizeRel
settings:
CONFIG: cuav_x7pro_default
cuav_7-nano_default:
short: cuav_7-nano
buildType: MinSizeRel
settings:
CONFIG: cuav_7-nano_default
cuav_fmu-v6x_default:
short: cuav_fmu-v6x
buildType: MinSizeRel
settings:
CONFIG: cuav_fmu-v6x_default
cuav_x25_default:
short: cuav_x25-evo
buildType: MinSizeRel
settings:
CONFIG: cuav_x25-evo_default
cubepilot_cubeorange_test:
short: cubepilot_cubeorange
buildType: MinSizeRel
settings:
CONFIG: cubepilot_orange_test
CONFIG: cubepilot_cubeorange_test
cubepilot_cubeorangeplus_test:
short: cubepilot_cubeorangeplus
buildType: MinSizeRel
settings:
CONFIG: cubepilot_cubeorangeplus_test
emlid_navio2_default:
short: emlid_navio2
buildType: MinSizeRel
@@ -191,11 +351,61 @@ CONFIG:
buildType: MinSizeRel
settings:
CONFIG: holybro_durandal-v1_default
holybro_kakuteh7-wing_default:
short: holybro_kakuteh7-wing
buildType: MinSizeRel
settings:
CONFIG: holybro_kakuteh7-wing_default
holybro_kakuteh7dualimu_default:
short: holybro_kakuteh7dualimu
buildType: MinSizeRel
settings:
CONFIG: holybro_kakuteh7dualimu_default
matek_h743-slim_default:
short: matek_h743-slim
buildType: MinSizeRel
settings:
CONFIG: matek_h743-slim_default
matek_gnss-m9n-f4_canbootloader:
short: matek_gnss-m9n-f4_canbootloader
buildType: MiniSizeRel
settings:
CONFIG: matek_m9nf4can_canbootloader
matek_gnss-m9n-f4_default:
short: matek_gnss-m9n-f4_default
buildType: MiniSizeRel
settings:
CONFIG: matek_gnss-m9n-f4_default
micoair_h743_bootloader:
short: micoair_h743_bootloader
buildType: MinSizeRel
settings:
CONFIG: micoair_h743_bootloader
micoair_h743_default:
short: micoair_h743
buildType: MinSizeRel
settings:
CONFIG: micoair_h743_default
micoair_h743-aio_bootloader:
short: micoair_h743-aio_bootloader
buildType: MinSizeRel
settings:
CONFIG: micoair_h743-aio_bootloader
micoair_h743-aio_default:
short: micoair_h743-aio
buildType: MinSizeRel
settings:
CONFIG: micoair_h743-aio_default
micoair_h743-v2_bootloader:
short: micoair_h743-v2_bootloader
buildType: MinSizeRel
settings:
CONFIG: micoair_h743-v2_bootloader
micoair_h743-v2_default:
short: micoair_h743-v2
buildType: MinSizeRel
settings:
CONFIG: micoair_h743-v2_default
modalai_fc-v1_default:
short: modalai_fc-v1
buildType: MinSizeRel
@@ -206,6 +416,11 @@ CONFIG:
buildType: MinSizeRel
settings:
CONFIG: modalai_fc-v2_default
modalai_voxl2-io_default:
short: modalai_voxl2-io
buildType: MinSizeRel
settings:
CONFIG: modalai_voxl2-io_default
mro_ctrl-zero-f7_default:
short: mro_ctrl-zero-f7
buildType: MinSizeRel
@@ -231,8 +446,53 @@ CONFIG:
buildType: MinSizeRel
settings:
CONFIG: nxp_fmuk66-v3_default
nxp_mr-canhubk3_default:
short: nxp_mr-canhubk3_default
buildType: MinSizeRel
settings:
CONFIG: nxp_mr-canhubk3_default
nxp_mr-canhubk3_fmu:
short: nxp_mr-canhubk3_fmu
buildType: MinSizeRel
settings:
CONFIG: nxp_mr-canhubk3_fmu
nxp_mr-tropic_default:
short: nxp_mr-tropic_default
buildType: MinSizeRel
settings:
CONFIG: nxp_mr-tropic_default
nxp_mr-tropic_bootloader:
short: nxp_mr-tropic_bootloader
buildType: MinSizeRel
settings:
CONFIG: nxp_mr-tropic_bootloader
nxp_tropic-community_default:
short: nxp_tropic-community_default
buildType: MinSizeRel
settings:
CONFIG: nxp_tropic-community_default
raspberrypi_pico_default:
short: raspberrypi_pico
buildType: MinSizeRel
settings:
CONFIG: raspberrypi_pico_default
zeroone_x6_default:
short: zeroone_x6
buildType: MinSizeRel
settings:
CONFIG: zeroone_x6_default
zeroone_x6_bootloader:
short: zeroone_x6_bootloader
buildType: MinSizeRel
settings:
CONFIG: zeroone_x6_bootloader
x-mav_ap-h743v2_bootloader:
short: x-mav_ap-h743v2-boot
buildType: MinSizeRel
settings:
CONFIG: x-mav_ap-h743v2_bootloader
x-mav_ap-h743v2_default:
short: x-mav_ap-h743v2
buildType: MinSizeRel
settings:
CONFIG: x-mav_ap-h743v2_default
+3 -1
View File
@@ -4,6 +4,7 @@
"recommendations": [
"chiehyu.vscode-astyle",
"dan-c-underwood.arm",
"editorconfig.editorconfig",
"fredericbonnet.cmake-test-adapter",
"github.vscode-pull-request-github",
"marus25.cortex-debug",
@@ -18,6 +19,7 @@
"twxs.cmake",
"uavcan.dsdl",
"wholroyd.jinja",
"zixuanwang.linkerscript"
"zixuanwang.linkerscript",
"ms-vscode.makefile-tools"
]
}
+6 -14
View File
@@ -2,7 +2,6 @@
"astyle.astylerc": "${workspaceFolder}/Tools/astyle/astylerc",
"astyle.c.enable": true,
"astyle.cpp.enable": true,
"breadcrumbs.enabled": true,
"C_Cpp.autoAddFileAssociations": false,
"C_Cpp.clang_format_fallbackStyle": "none",
"C_Cpp.default.browse.limitSymbolsToIncludedHeaders": true,
@@ -16,11 +15,11 @@
"cmake.buildDirectory": "${workspaceFolder}/build/${variant:CONFIG}",
"cmake.configureOnOpen": true,
"cmake.ctest.parallelJobs": 1,
"cmake.options.statusBarVisibility": "compact",
"cmake.skipConfigureIfCachePresent": true,
"cmakeExplorer.buildDir": "${workspaceFolder}/build/px4_sitl_test",
"cmakeExplorer.parallelJobs": 1,
"cmakeExplorer.suiteDelimiter": "-",
"cortex-debug.enableTelemetry": false,
"cSpell.allowCompoundWords": true,
"cSpell.diagnosticLevel": "Hint",
"cSpell.showStatus": false,
@@ -31,7 +30,6 @@
],
"debug.toolBarLocation": "docked",
"editor.defaultFormatter": "chiehyu.vscode-astyle",
"editor.dragAndDrop": false,
"editor.insertSpaces": false,
"editor.minimap.maxColumn": 120,
"editor.minimap.renderCharacters": false,
@@ -45,7 +43,7 @@
"files.watcherExclude": {
"**/build/**": true
},
"git.detectSubmodulesLimit": 20,
"git.detectSubmodulesLimit": 25,
"git.ignoreLimitWarning": true,
"githubPullRequests.defaultMergeMethod": "squash",
"githubPullRequests.telemetry.enabled": false,
@@ -119,22 +117,16 @@
"utility": "cpp",
"valarray": "cpp",
"variant": "cpp",
"vector": "cpp"
"vector": "cpp",
"Jenkinsfile*": "groovy",
"*.sdf": "xml"
},
"search.exclude": {
"${workspaceFolder}/build": true
},
"search.showLineNumbers": true,
"telemetry.enableTelemetry": false,
"terminal.integrated.copyOnSelection": true,
"terminal.integrated.rightClickBehavior": "paste",
"terminal.integrated.scrollback": 5000,
"window.title": "${dirty} ${activeEditorMedium}${separator}${rootName}",
"workbench.editor.highlightModifiedTabs": true,
"workbench.enableExperiments": false,
"workbench.settings.enableNaturalLanguageSearch": false,
"terminal.integrated.scrollback": 15000,
"yaml.schemas": {
"${workspaceFolder}/validation/module_schema.yaml": "${workspaceFolder}/src/modules/*/module.yaml"
},
"cortex-debug.openocdPath": "${env:PICO_SDK_PATH}/../openocd/src/openocd" // Added for rp2040
}
+100 -163
View File
@@ -50,41 +50,64 @@
}
},
{
"label": "jmavsim build",
"label": "jmavsim kill",
"type": "shell",
"command": "ant create_run_jar copy_res",
"options": {
"cwd": "${workspaceFolder}/Tools/jMAVSim"
},
"problemMatcher": [],
"presentation":{
"command": "kill $(ps aux | grep jmavsim | grep -v 'grep' | awk '{print $2}') || true",
"presentation": {
"echo": true,
"reveal": "never",
"revealProblems": "onProblem",
"focus": false,
"panel": "shared",
"panel": "dedicated",
"showReuseMessage": false,
"clear": false,
}
"close": true
},
"problemMatcher": [],
"dependsOn":["px4_sitl_cleanup"]
},
{
"label": "jmavsim",
"label": "gazebo-classic build",
"type": "shell",
"dependsOn": "jmavsim build",
"command": "java -Djava.ext.dirs= -jar jmavsim_run.jar -r 250 -lockstep -tcp localhost:4560 -qgc",
"command": "make px4_sitl_default sitl_gazebo-classic",
"options": {
"cwd": "${workspaceFolder}/Tools/jMAVSim/out/production",
"cwd": "${workspaceFolder}"
},
"presentation": {
"echo": true,
"reveal": "never",
"revealProblems": "onProblem",
"focus": false,
"panel": "dedicated",
"showReuseMessage": false,
"clear": false,
"close": true
},
"problemMatcher": [],
},
{
"label": "gazebo-classic start",
"type": "shell",
"dependsOn": "gazebo-classic build",
"options": {
"cwd": "${workspaceFolder}",
"env": {
"GAZEBO_PLUGIN_PATH": "${workspaceFolder}/build/px4_sitl_default/build_gazebo-classic",
"GAZEBO_MODEL_PATH": "${workspaceFolder}/Tools/simulation/gazebo-classic/sitl_gazebo-classic/models",
"PX4_SIM_SPEED_FACTOR": "1"
}
},
"command": "gzserver --verbose ${workspaceFolder}/Tools/simulation/gazebo-classic/sitl_gazebo-classic/worlds/empty.world",
"isBackground": true,
"presentation": {
"echo": true,
"reveal": "never",
"revealProblems": "onProblem",
"focus": false,
"panel": "shared",
"panel": "dedicated",
"showReuseMessage": false,
"clear": false
"clear": false,
"close": true
},
"problemMatcher": [
{
@@ -105,57 +128,28 @@
]
},
{
"label": "jmavsim kill",
"label": "gazebo-classic",
"type": "shell",
"command": "kill $(ps aux | grep jmavsim | grep -v 'grep' | awk '{print $2}')",
"presentation": {
"echo": false,
"reveal": "never",
"focus": false,
"panel": "shared",
"showReuseMessage": false,
"clear": false
},
"problemMatcher": []
},
{
"label": "gazebo build",
"type": "shell",
"command": "make px4_sitl_default sitl_gazebo",
"options": {
"cwd": "${workspaceFolder}"
},
"problemMatcher": [],
"presentation":{
"echo": true,
"reveal": "always",
"focus": false,
"panel": "shared",
"showReuseMessage": false,
"clear": false,
}
},
{
"label": "gazebo start",
"type": "shell",
"dependsOn": "gazebo build",
"dependsOn": "gazebo-classic start",
"options": {
"cwd": "${workspaceFolder}",
"env": {
"GAZEBO_PLUGIN_PATH": "${workspaceFolder}/build/px4_sitl_default/build_gazebo",
"GAZEBO_MODEL_PATH": "${workspaceFolder}/Tools/sitl_gazebo/models",
"GAZEBO_PLUGIN_PATH": "${workspaceFolder}/build/px4_sitl_default/build_gazebo-classic",
"GAZEBO_MODEL_PATH": "${workspaceFolder}/Tools/simulation/gazebo-classic/sitl_gazebo-classic/models",
"PX4_SIM_SPEED_FACTOR": "1"
}
},
"command": "gzserver --verbose ${workspaceFolder}/Tools/sitl_gazebo/worlds/${input:gazeboWorld}.world",
"isBackground": true,
"command": "gz model --verbose --spawn-file=${workspaceFolder}/Tools/simulation/gazebo-classic/sitl_gazebo-classic/models/iris/iris.sdf --model-name=iris -x 1.01 -y 0.98 -z 0.83",
"isBackground": false,
"presentation": {
"echo": true,
"reveal": "never",
"revealProblems": "onProblem",
"focus": false,
"panel": "shared",
"panel": "dedicated",
"showReuseMessage": false,
"clear": false
"clear": false,
"close": true
},
"problemMatcher": [
{
@@ -178,109 +172,75 @@
{
"label": "gazebo",
"type": "shell",
"dependsOn": "gazebo start",
"options": {
"cwd": "${workspaceFolder}",
"env": {
"GAZEBO_PLUGIN_PATH": "${workspaceFolder}/build/px4_sitl_default/build_gazebo",
"GAZEBO_MODEL_PATH": "${workspaceFolder}/Tools/sitl_gazebo/models",
"PX4_SIM_SPEED_FACTOR": "1"
"IGN_GAZEBO_RESOURCE_PATH": "${workspaceFolder}/Tools/simulation/gz/models",
}
},
"command": "gz model --verbose --spawn-file=${workspaceFolder}/Tools/sitl_gazebo/models/${input:vehicleModel}/${input:vehicleModel}.sdf --model-name=${input:vehicleModel} -x 1.01 -y 0.98 -z 0.83",
"isBackground": false,
"presentation": {
"echo": true,
"reveal": "never",
"focus": false,
"panel": "shared",
"showReuseMessage": false,
"clear": false
},
"problemMatcher": [
{
"pattern": [
{
"regexp": ".",
"file": 1,
"location": 2,
"message": 3
}
],
"background": {
"activeOnStart": true,
"beginsPattern": ".",
"endsPattern": ".",
}
}
]
},
{
"label": "gazebo client",
"type": "shell",
"dependsOn": "gazebo build",
"options": {
"cwd": "${workspaceFolder}",
"env": {
"GAZEBO_PLUGIN_PATH": "${workspaceFolder}/build/px4_sitl_default/build_gazebo",
"GAZEBO_MODEL_PATH": "${workspaceFolder}/Tools/sitl_gazebo/models",
"PX4_SIM_SPEED_FACTOR": "1"
}
},
"command": "gzclient --verbose",
"command": "gz sim -v 4 -r ${workspaceFolder}/Tools/simulation/gz/worlds/${input:gzWorld}.sdf",
"isBackground": true,
"presentation": {
"echo": true,
"reveal": "never",
"focus": false,
"panel": "shared",
"reveal": "always",
"revealProblems": "onProblem",
"focus": true,
"panel": "dedicated",
"showReuseMessage": false,
"clear": false
"clear": false,
"close": false
},
"problemMatcher": [
{
"pattern": [
{
"regexp": ".",
"file": 1,
"location": 2,
"message": 3
}
],
"background": {
"activeOnStart": true,
"beginsPattern": ".",
"endsPattern": ".",
}
}
]
"problemMatcher": [],
"dependsOn":["gazebo kill"]
},
{
"label": "gazebo kill",
"label": "gazebo-classic kill",
"type": "shell",
"command": "killall gzserver",
"command": "pkill -9 -f gzserver || true",
"presentation": {
"echo": true,
"reveal": "silent",
"reveal": "never",
"revealProblems": "onProblem",
"focus": false,
"panel": "shared",
"panel": "dedicated",
"showReuseMessage": false,
"clear": false
"clear": false,
"close": true
},
"problemMatcher": [],
"dependsOn":["px4_sitl_cleanup"]
},
{
"label": "px4_sitl_cleanup",
"label": "gazebo kill",
"type": "shell",
"command": "rm -rfv /tmp/px4*",
"command": "pkill -9 -f 'gz sim' || true",
"presentation": {
"echo": true,
"reveal": "silent",
"reveal": "never",
"revealProblems": "onProblem",
"focus": false,
"panel": "shared",
"panel": "dedicated",
"showReuseMessage": false,
"clear": false
"clear": false,
"close": true
},
"problemMatcher": [],
"dependsOn":["px4_sitl_cleanup"]
},
{
"label": "px4_sitl_cleanup",
"type": "shell",
"command": "rm -rfv /tmp/px4* || true",
"presentation": {
"echo": true,
"reveal": "never",
"revealProblems": "onProblem",
"focus": false,
"panel": "dedicated",
"showReuseMessage": false,
"clear": false,
"close": true
},
"problemMatcher": [],
"dependsOn":["px4_kill"]
@@ -288,14 +248,16 @@
{
"label": "px4_kill",
"type": "shell",
"command": "killall px4 || true",
"command": "pkill -9 px4 || true",
"presentation": {
"echo": true,
"reveal": "silent",
"reveal": "never",
"revealProblems": "onProblem",
"focus": false,
"panel": "shared",
"panel": "dedicated",
"showReuseMessage": false,
"clear": false
"clear": false,
"close": true
},
"problemMatcher": []
},
@@ -337,37 +299,12 @@
"inputs": [
{
"type": "pickString",
"id": "vehicleModel",
"description": "gazebo model",
"id": "gzWorld",
"description": "gz world",
"options": [
"iris",
"typhoon_h480",
"plane",
"plane_catapult",
"plane_lidar",
"standard_vtol",
"tailsitter",
"tiltrotor",
"r1_rover",
"boat"
"default"
],
"default": "iris"
},
{
"type": "pickString",
"id": "gazeboWorld",
"description": "gazebo world",
"options": [
"baylands",
"empty",
"ksql_airport",
"mcmillan_airfield",
"sonoma_raceway",
"warehouse",
"windy",
"yosemite"
],
"default": "empty"
"default": "default"
}
]
}
-172
View File
@@ -1,172 +0,0 @@
# This file is NOT licensed under the GPLv3, which is the license for the rest
# of YouCompleteMe.
#
# Here's the license text for this file:
#
# This is free and unencumbered software released into the public domain.
#
# Anyone is free to copy, modify, publish, use, compile, sell, or
# distribute this software, either in source code form or as a compiled
# binary, for any purpose, commercial or non-commercial, and by any
# means.
#
# In jurisdictions that recognize copyright laws, the author or authors
# of this software dedicate any and all copyright interest in the
# software to the public domain. We make this dedication for the benefit
# of the public at large and to the detriment of our heirs and
# successors. We intend this dedication to be an overt act of
# relinquishment in perpetuity of all present and future rights to this
# software under copyright law.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
# IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR
# OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
# ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
# OTHER DEALINGS IN THE SOFTWARE.
#
# For more information, please refer to <http://unlicense.org/>
import os
import ycm_core
# These are the compilation flags that will be used in case there's no
# compilation database set (by default, one is not set).
# CHANGE THIS LIST OF FLAGS. YES, THIS IS THE DROID YOU HAVE BEEN LOOKING FOR.
flags = [
'-Wall',
'-Wextra',
'-Werror',
#'-Wc++98-compat',
'-Wno-long-long',
'-Wno-variadic-macros',
'-fexceptions',
'-DNDEBUG',
# You 100% do NOT need -DUSE_CLANG_COMPLETER in your flags; only the YCM
# source code needs it.
#'-DUSE_CLANG_COMPLETER',
# THIS IS IMPORTANT! Without a "-std=<something>" flag, clang won't know which
# language to use when compiling headers. So it will guess. Badly. So C++
# headers will be compiled as C headers. You don't want that so ALWAYS specify
# a "-std=<something>".
# For a C project, you would set this to something like 'c99' instead of
# 'c++14'.
'-std=c++14',
# ...and the same thing goes for the magic -x option which specifies the
# language that the files to be compiled are written in. This is mostly
# relevant for c++ headers.
# For a C project, you would set this to 'c' instead of 'c++'.
'-x',
'c++',
'-undef', # get rid of standard definitions to allow us to include arm math header
'-I', os.path.join(os.path.expanduser("~"),'gcc-arm-none-eabi-4_7-2013q3/arm-none-eabi/include'),
'-I', 'Build/px4_io-v2_default.build/nuttx-export/include/',
'-I', './NuttX/nuttx/arch/arm/include',
'-include', './src/include/visibility.h',
'-I', './src',
'-I', './src/modules',
'-I', './src/include',
'-I', './src/lib',
'-I', './NuttX',
]
# Set this to the absolute path to the folder (NOT the file!) containing the
# compile_commands.json file to use that instead of 'flags'. See here for
# more details: http://clang.llvm.org/docs/JSONCompilationDatabase.html
#
# Most projects will NOT need to set this to anything; you can just change the
# 'flags' list of compilation flags. Notice that YCM itself uses that approach.
compilation_database_folder = ''
if os.path.exists( compilation_database_folder ):
database = ycm_core.CompilationDatabase( compilation_database_folder )
else:
database = None
SOURCE_EXTENSIONS = [ '.cpp', '.cxx', '.cc', '.c', '.m', '.mm' ]
def DirectoryOfThisScript():
return os.path.dirname( os.path.abspath( __file__ ) )
def MakeRelativePathsInFlagsAbsolute( flags, working_directory ):
if not working_directory:
return list( flags )
new_flags = []
make_next_absolute = False
path_flags = [ '-isystem', '-I', '-iquote', '--sysroot=' ]
for flag in flags:
new_flag = flag
if make_next_absolute:
make_next_absolute = False
if not flag.startswith( '/' ):
new_flag = os.path.join( working_directory, flag )
for path_flag in path_flags:
if flag == path_flag:
make_next_absolute = True
break
if flag.startswith( path_flag ):
path = flag[ len( path_flag ): ]
new_flag = path_flag + os.path.join( working_directory, path )
break
if new_flag:
new_flags.append( new_flag )
return new_flags
def IsHeaderFile( filename ):
extension = os.path.splitext( filename )[ 1 ]
return extension in [ '.h', '.hxx', '.hpp', '.hh' ]
def GetCompilationInfoForFile( filename ):
# The compilation_commands.json file generated by CMake does not have entries
# for header files. So we do our best by asking the db for flags for a
# corresponding source file, if any. If one exists, the flags for that file
# should be good enough.
if IsHeaderFile( filename ):
basename = os.path.splitext( filename )[ 0 ]
for extension in SOURCE_EXTENSIONS:
replacement_file = basename + extension
if os.path.exists( replacement_file ):
compilation_info = database.GetCompilationInfoForFile(
replacement_file )
if compilation_info.compiler_flags_:
return compilation_info
return None
return database.GetCompilationInfoForFile( filename )
def FlagsForFile( filename, **kwargs ):
if database:
# Bear in mind that compilation_info.compiler_flags_ does NOT return a
# python list, but a "list-like" StringVec object
compilation_info = GetCompilationInfoForFile( filename )
if not compilation_info:
return None
final_flags = MakeRelativePathsInFlagsAbsolute(
compilation_info.compiler_flags_,
compilation_info.compiler_working_dir_ )
# NOTE: This is just for YouCompleteMe; it's highly likely that your project
# does NOT need to remove the stdlib flag. DO NOT USE THIS IN YOUR
# ycm_extra_conf IF YOU'RE NOT 100% SURE YOU NEED IT.
#try:
# final_flags.remove( '-stdlib=libc++' )
#except ValueError:
# pass
else:
relative_to = DirectoryOfThisScript()
final_flags = MakeRelativePathsInFlagsAbsolute( flags, relative_to )
return {
'flags': final_flags,
'do_cache': True
}
+114 -93
View File
@@ -1,6 +1,6 @@
############################################################################
#
# Copyright (c) 2017 - 2019 PX4 Development Team. All rights reserved.
# Copyright (c) 2017 - 2024 PX4 Development Team. All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions
@@ -99,7 +99,7 @@
#
#=============================================================================
cmake_minimum_required(VERSION 3.2 FATAL_ERROR)
cmake_minimum_required(VERSION 3.10 FATAL_ERROR)
set(PX4_SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}" CACHE FILEPATH "PX4 source directory" FORCE)
set(PX4_BINARY_DIR "${CMAKE_CURRENT_BINARY_DIR}" CACHE FILEPATH "PX4 binary directory" FORCE)
@@ -113,22 +113,52 @@ include(px4_parse_function_args)
include(px4_git)
execute_process(
COMMAND git describe --exclude ext/* --always --tags
COMMAND git describe --exclude ext/* --tags --match "v[0-9]*"
OUTPUT_VARIABLE PX4_GIT_TAG
OUTPUT_STRIP_TRAILING_WHITESPACE
RESULTS_VARIABLE GIT_DESCRIBE_RESULT
WORKING_DIRECTORY ${PX4_SOURCE_DIR}
)
message(STATUS "PX4 version: ${PX4_GIT_TAG}")
# if proper git tag unavilable default to v0.0.0
if(NOT ${GIT_DESCRIBE_RESULT} MATCHES "0")
set(PX4_GIT_TAG "v0.0.0")
endif()
message(STATUS "PX4_GIT_TAG: ${PX4_GIT_TAG}")
# git describe to X.Y.Z version
string(REPLACE "." ";" VERSION_LIST ${PX4_GIT_TAG})
# major version
list(GET VERSION_LIST 0 PX4_VERSION_MAJOR)
string(REPLACE "v" "" PX4_VERSION_MAJOR ${PX4_VERSION_MAJOR})
# minor version
list(GET VERSION_LIST 1 PX4_VERSION_MINOR)
# patch version
list(GET VERSION_LIST 2 PX4_VERSION_PATCH)
string(REPLACE "-" ";" PX4_VERSION_PATCH ${PX4_VERSION_PATCH})
list(GET PX4_VERSION_PATCH 0 PX4_VERSION_PATCH)
# # Capture only the hash part after 'g'
string(REGEX MATCH "g([a-f0-9]+)$" GIT_HASH "${PX4_GIT_TAG}")
set(PX4_GIT_HASH ${CMAKE_MATCH_1})
define_property(GLOBAL PROPERTY PX4_MODULE_LIBRARIES
BRIEF_DOCS "PX4 module libs"
FULL_DOCS "List of all PX4 module libraries"
)
define_property(GLOBAL PROPERTY PX4_KERNEL_MODULE_LIBRARIES
BRIEF_DOCS "PX4 kernel side module libs"
FULL_DOCS "List of all PX4 kernel module libraries"
)
define_property(GLOBAL PROPERTY PX4_MODULE_PATHS
BRIEF_DOCS "PX4 module paths"
FULL_DOCS "List of paths to all PX4 modules"
)
define_property(GLOBAL PROPERTY PX4_SRC_FILES
BRIEF_DOCS "src files from all PX4 modules & libs"
FULL_DOCS "SRC files from px4_add_{module,library}"
@@ -138,24 +168,17 @@ define_property(GLOBAL PROPERTY PX4_SRC_FILES
# configuration
#
set(CONFIG "px4_sitl_default" CACHE STRING "desired configuration")
include(px4_add_module)
set(config_module_list)
set(config_kernel_list)
# Find Python
# If using catkin, Python 2 is found since it points
# to the Python libs installed with the ROS distro
if (NOT CATKIN_DEVEL_PREFIX)
find_package(PythonInterp 3)
# We have a custom error message to tell users how to install python3.
if (NOT PYTHONINTERP_FOUND)
message(FATAL_ERROR "Python 3 not found. Please install Python 3:\n"
" Ubuntu: sudo apt install python3 python3-dev python3-pip\n"
" macOS: brew install python")
endif()
else()
find_package(PythonInterp REQUIRED)
find_package(PythonInterp 3)
# We have a custom error message to tell users how to install python3.
if(NOT PYTHONINTERP_FOUND)
message(FATAL_ERROR "Python 3 not found. Please install Python 3:\n"
" Ubuntu: sudo apt install python3 python3-dev python3-pip\n"
" macOS: brew install python")
endif()
option(PYTHON_COVERAGE "Python code coverage" OFF)
@@ -169,6 +192,12 @@ include(kconfig)
message(STATUS "PX4 config: ${PX4_CONFIG}")
message(STATUS "PX4 platform: ${PX4_PLATFORM}")
if($ENV{CLION_IDE})
# CLion automatically executes some compiler commands after configuring the
# project. This would fail on NuttX, as visibility.h tries to (indirectly)
# include nuttx/config.h, which at that point does not exist yet
add_definitions(-DPX4_DISABLE_GCC_POISON)
endif()
if(${PX4_PLATFORM} STREQUAL "posix")
if(ENABLE_LOCKSTEP_SCHEDULER)
@@ -195,6 +224,11 @@ if(EXISTS "${PX4_SOURCE_DIR}/platforms/${PX4_PLATFORM}/cmake/init.cmake")
include(init)
endif()
#=============================================================================
# project definition
#
project(px4 CXX C ASM)
# CMake build type (Debug Release RelWithDebInfo MinSizeRel Coverage)
if(NOT CMAKE_BUILD_TYPE)
if(${PX4_PLATFORM} STREQUAL "nuttx")
@@ -223,10 +257,13 @@ endif()
set_property(CACHE CMAKE_BUILD_TYPE PROPERTY STRINGS "Debug;Release;RelWithDebInfo;MinSizeRel;Coverage;AddressSanitizer;UndefinedBehaviorSanitizer")
message(STATUS "cmake build type: ${CMAKE_BUILD_TYPE}")
#=============================================================================
# project definition
#
project(px4 CXX C ASM)
# Check if LTO option and check if toolchain supports it
if(LTO)
include(CheckIPOSupported)
check_ipo_supported()
message(AUTHOR_WARNING "LTO enabled: LTO is highly experimental and should not be used in production")
set(CMAKE_INTERPROCEDURAL_OPTIMIZATION TRUE)
endif()
set(package-contact "px4users@googlegroups.com")
@@ -236,15 +273,9 @@ set(CMAKE_C_STANDARD 11)
set(CMAKE_C_STANDARD_REQUIRED ON)
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
# For the catkin build process, unset build of dynamically-linked binaries
# and do not change CMAKE_RUNTIME_OUTPUT_DIRECTORY
if (NOT CATKIN_DEVEL_PREFIX)
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${PX4_BINARY_DIR})
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY_DEBUG ${PX4_BINARY_DIR})
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY_RELEASE ${PX4_BINARY_DIR})
else()
SET(BUILD_SHARED_LIBS OFF)
endif()
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${PX4_BINARY_DIR})
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY_DEBUG ${PX4_BINARY_DIR})
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY_RELEASE ${PX4_BINARY_DIR})
#=============================================================================
@@ -276,7 +307,10 @@ if(${PX4_PLATFORM} STREQUAL "posix")
set(CMAKE_POSITION_INDEPENDENT_CODE ON)
set(CMAKE_ENABLE_EXPORTS ON)
include(coverage)
if(CMAKE_BUILD_TYPE MATCHES "Coverage")
include(coverage)
endif()
include(sanitizers)
# Define GNU standard installation directories
@@ -289,21 +323,6 @@ endif()
include(ccache)
#=============================================================================
# find programs and packages
#
# see if catkin was invoked to build this
if (CATKIN_DEVEL_PREFIX)
message(STATUS "catkin ENABLED")
find_package(catkin REQUIRED)
if (catkin_FOUND)
catkin_package()
else()
message(FATAL_ERROR "catkin not found")
endif()
endif()
#=============================================================================
# get chip and chip manufacturer
#
@@ -315,6 +334,33 @@ if(NOT PX4_CHIP)
message(FATAL_ERROR "px4_os_determine_build_chip() needs to set PX4_CHIP")
endif()
#=============================================================================
# Testing - Automatic unit and integration testing with CTest
# (Needs to be before setting the common compile flags)
#
# optionally enable cmake testing (supported only on posix)
option(CMAKE_TESTING "Configure test targets" OFF)
if(${PX4_CONFIG} STREQUAL "px4_sitl_test")
set(CMAKE_TESTING ON)
endif()
if(CMAKE_TESTING)
include(CTest) # sets BUILD_TESTING variable
endif()
# enable test filtering to run only specific tests with the ctest -R regex functionality
set(TESTFILTER "" CACHE STRING "Filter string for ctest to selectively only run specific tests (ctest -R)")
include(px4_add_gtest)
if(BUILD_TESTING)
# Setting FUZZTEST_FUZZING_MODE=on enables ASAN, and is only supported with Clang
if (("${CMAKE_CXX_COMPILER_ID}" MATCHES "Clang") OR ("${CMAKE_CXX_COMPILER_ID}" MATCHES "AppleClang"))
set(FUZZTEST_FUZZING_MODE ON)
endif()
add_subdirectory(test)
fuzztest_setup_fuzzing_flags()
endif()
#=============================================================================
# build flags
#
@@ -367,45 +413,13 @@ if (NOT EXTERNAL_MODULES_LOCATION STREQUAL "")
endforeach()
endif()
#=============================================================================
# Testing - Automatic unit and integration testing with CTest
#
# optionally enable cmake testing (supported only on posix)
option(CMAKE_TESTING "Configure test targets" OFF)
if(${PX4_CONFIG} STREQUAL "px4_sitl_test")
set(CMAKE_TESTING ON)
endif()
if(CMAKE_TESTING)
include(CTest) # sets BUILD_TESTING variable
endif()
# enable test filtering to run only specific tests with the ctest -R regex functionality
set(TESTFILTER "" CACHE STRING "Filter string for ctest to selectively only run specific tests (ctest -R)")
# if testing is enabled download and configure gtest
list(APPEND CMAKE_MODULE_PATH ${PX4_SOURCE_DIR}/cmake/gtest/)
include(px4_add_gtest)
if(BUILD_TESTING)
include(gtest)
add_custom_target(test_results
COMMAND GTEST_COLOR=1 ${CMAKE_CTEST_COMMAND} --output-on-failure -T Test -R ${TESTFILTER} USES_TERMINAL
DEPENDS
px4
examples__dyn_hello
test_mixer_multirotor
USES_TERMINAL
COMMENT "Running tests"
WORKING_DIRECTORY ${PX4_BINARY_DIR})
set_target_properties(test_results PROPERTIES EXCLUDE_FROM_ALL TRUE)
endif()
#=============================================================================
# subdirectories
#
add_library(parameters_interface INTERFACE)
add_library(kernel_parameters_interface INTERFACE)
add_library(events_interface INTERFACE)
add_library(kernel_events_interface INTERFACE)
include(px4_add_library)
add_subdirectory(src/lib EXCLUDE_FROM_ALL)
@@ -428,7 +442,16 @@ add_subdirectory(src/lib/metadata EXCLUDE_FROM_ALL)
# must be the last module before firmware
add_subdirectory(src/lib/parameters EXCLUDE_FROM_ALL)
target_link_libraries(parameters_interface INTERFACE parameters)
if(${PX4_PLATFORM} STREQUAL "nuttx" AND NOT CONFIG_BUILD_FLAT)
target_link_libraries(parameters_interface INTERFACE usr_parameters)
target_link_libraries(kernel_parameters_interface INTERFACE parameters)
target_link_libraries(events_interface INTERFACE usr_events)
target_link_libraries(kernel_events_interface INTERFACE events)
else()
target_link_libraries(parameters_interface INTERFACE parameters)
target_link_libraries(events_interface INTERFACE events)
endif()
# firmware added last to generate the builtin for included modules
add_subdirectory(platforms/${PX4_PLATFORM})
@@ -456,21 +479,19 @@ add_custom_command(OUTPUT ${uorb_graph_config}
add_custom_target(uorb_graph DEPENDS ${uorb_graph_config})
include(doxygen)
include(bloaty)
include(metadata)
include(package)
# print size
add_custom_target(size
COMMAND size $<TARGET_FILE:px4>
DEPENDS px4
WORKING_DIRECTORY ${PX4_BINARY_DIR}
USES_TERMINAL
)
# install python requirements using configured python
add_custom_target(install_python_requirements
COMMAND ${PYTHON_EXECUTABLE} -m pip install --requirement ${PX4_SOURCE_DIR}/Tools/setup/requirements.txt
COMMAND ${PYTHON_EXECUTABLE} -m pip install --break-system-packages --requirement ${PX4_SOURCE_DIR}/Tools/setup/requirements.txt
DEPENDS ${PX4_SOURCE_DIR}/Tools/setup/requirements.txt
USES_TERMINAL
)
if(EXISTS "${PX4_SOURCE_DIR}/platforms/${PX4_PLATFORM}/cmake/finalize.cmake")
include(finalize)
endif()
+2 -2
View File
@@ -8,7 +8,7 @@ First [fork and clone](https://help.github.com/articles/fork-a-repo) the project
### Create a feature branch
*Always* branch off master for new features.
*Always* branch off main for new features.
```
git checkout -b mydescriptivebranchname
@@ -16,7 +16,7 @@ git checkout -b mydescriptivebranchname
### Edit and build the code
The [developer guide](http://dev.px4.io/) explains how to set up the development environment on Mac OS, Linux or Windows. Please take note of our [coding style](https://dev.px4.io/master/en/contribute/code.html) when editing files.
The [developer guide](https://docs.px4.io/main/en/development/development.html) explains how to set up the development environment on Mac OS, Linux or Windows. Please take note of our [coding style](https://docs.px4.io/main/en/contribute/code.html) when editing files.
### Commit your changes
File diff suppressed because it is too large Load Diff
-83
View File
@@ -1,83 +0,0 @@
{
"folders":
[
{
"path": ".",
"file_exclude_patterns":
[
"*.o",
"*.a",
"*.d",
".built",
".context",
".depend",
".config",
".version",
"Make.dep",
".configured",
"*.sublime-project",
"*.sublime-workspace",
".project",
".cproject",
"cscope.out"
],
"folder_exclude_patterns":
[
".settings",
"nuttx/arch/arm/src/board",
"nuttx/arch/arm/src/chip",
"build_*"
]
}
],
"settings":
{
"tab_size": 8,
"translate_tabs_to_spaces": false,
"highlight_line": true,
"AStyleFormatter":
{
"options_c":
{
"use_only_additional_options": true,
"additional_options_file": "${project_path}/Tools/astyle/astylerc"
},
"options_c++":
{
"use_only_additional_options": true,
"additional_options_file": "${project_path}/Tools/astyle/astylerc"
}
}
},
"build_systems":
[
{
"name": "PX4: make all",
"working_dir": "${project_path}",
"file_regex": "^(..[^:]*):([0-9]+):?([0-9]+)?:? (.*)$",
"cmd": ["make"],
"shell": true
},
{
"name": "PX4: make and upload",
"working_dir": "${project_path}",
"file_regex": "^(..[^:]*):([0-9]+):?([0-9]+)?:? (.*)$",
"cmd": ["make upload px4_fmu-v2_default -j8"],
"shell": true
},
{
"name": "PX4: make posix",
"working_dir": "${project_path}",
"file_regex": "^(..[^:]*):([0-9]+):?([0-9]+)?:? (.*)$",
"cmd": ["make posix"],
"shell": true
},
{
"name": "MindPX_V2: make and upload",
"working_dir": "${project_path}",
"file_regex": "^(..[^:]*):([0-9]+):?([0-9]+)?:? (.*)$",
"cmd": ["make upload mindpx-v2_default -j8"],
"shell": true
}
]
}
Vendored
+73 -178
View File
@@ -7,88 +7,19 @@ pipeline {
stage('Analysis') {
when {
anyOf {
branch 'master'
branch 'main'
branch 'master' // should be removed, but in case there is something going on...
branch 'pr-jenkins' // for testing
}
}
parallel {
// stage('Catkin build on ROS workspace') {
// agent {
// docker {
// image 'px4io/px4-dev-ros-melodic:2021-08-18'
// args '-e CCACHE_BASEDIR=$WORKSPACE -v ${CCACHE_DIR}:${CCACHE_DIR}:rw -e HOME=$WORKSPACE'
// }
// }
// steps {
// sh 'ls -l'
// sh '''#!/bin/bash -l
// echo $0;
// mkdir -p catkin_ws/src;
// cd catkin_ws;
// git -C ${WORKSPACE}/catkin_ws/src/Firmware submodule update --init --recursive --force Tools/sitl_gazebo
// git clone --recursive ${WORKSPACE}/catkin_ws/src/Firmware/Tools/sitl_gazebo src/mavlink_sitl_gazebo;
// git -C ${WORKSPACE}/catkin_ws/src/Firmware fetch --tags;
// source /opt/ros/melodic/setup.bash;
// export PYTHONPATH=/opt/ros/$ROS_DISTRO/lib/python2.7/dist-packages:/usr/lib/python2.7/dist-packages:/usr/local/lib/python2.7/dist-packages;
// catkin init;
// catkin build -j$(nproc) -l$(nproc);
// '''
// // test if the binary was correctly installed and runs using 'mavros_posix_silt.launch'
// sh '''#!/bin/bash -l
// echo $0;
// source catkin_ws/devel/setup.bash;
// rostest px4 pub_test.launch;
// '''
// }
// post {
// always {
// sh 'rm -rf catkin_ws'
// }
// failure {
// archiveArtifacts(allowEmptyArchive: false, artifacts: '.ros/**/*.xml, .ros/**/*.log')
// }
// }
// options {
// checkoutToSubdirectory('catkin_ws/src/Firmware')
// }
// }
stage('Colcon build on ROS2 workspace') {
agent {
docker {
image 'px4io/px4-dev-ros2-foxy:2021-08-18'
args '-e CCACHE_BASEDIR=$WORKSPACE -v ${CCACHE_DIR}:${CCACHE_DIR}:rw -e HOME=$WORKSPACE'
}
}
steps {
sh 'ls -l'
sh '''#!/bin/bash -l
echo $0;
unset ROS_DISTRO;
mkdir -p colcon_ws/src;
cd colcon_ws;
git -C ${WORKSPACE}/colcon_ws/src/Firmware submodule update --init --recursive --force Tools/sitl_gazebo;
git -C ${WORKSPACE}/colcon_ws/src/Firmware fetch --tags;
source /opt/ros/foxy/setup.sh;
colcon build --event-handlers console_direct+ --symlink-install;
'''
}
post {
always {
sh 'rm -rf colcon_ws'
}
}
options {
checkoutToSubdirectory('colcon_ws/src/Firmware')
}
}
stage('Airframe') {
agent {
docker { image 'px4io/px4-dev-base-focal:2021-08-18' }
}
steps {
sh 'make distclean'
sh 'make distclean; git clean -ff -x -d .'
sh 'git fetch --all --tags'
sh 'make airframe_metadata'
dir('build/px4_sitl_default/docs') {
@@ -98,7 +29,7 @@ pipeline {
}
post {
always {
sh 'make distclean'
sh 'make distclean; git clean -ff -x -d .'
}
}
}
@@ -108,7 +39,7 @@ pipeline {
docker { image 'px4io/px4-dev-base-focal:2021-08-18' }
}
steps {
sh 'make distclean'
sh 'make distclean; git clean -ff -x -d .'
sh 'git fetch --all --tags'
sh 'make parameters_metadata'
dir('build/px4_sitl_default/docs') {
@@ -118,7 +49,7 @@ pipeline {
}
post {
always {
sh 'make distclean'
sh 'make distclean; git clean -ff -x -d .'
}
}
}
@@ -128,7 +59,7 @@ pipeline {
docker { image 'px4io/px4-dev-base-focal:2021-08-18' }
}
steps {
sh 'make distclean'
sh 'make distclean; git clean -ff -x -d .'
sh 'git fetch --all --tags'
sh 'make module_documentation'
dir('build/px4_sitl_default/docs') {
@@ -138,7 +69,7 @@ pipeline {
}
post {
always {
sh 'make distclean'
sh 'make distclean; git clean -ff -x -d .'
}
}
}
@@ -148,7 +79,7 @@ pipeline {
docker { image 'px4io/px4-dev-base-focal:2021-08-18' }
}
steps {
sh 'mkdir -p build/msg_docs; ./msg/tools/generate_msg_docs.py -d build/msg_docs'
sh 'mkdir -p build/msg_docs; ./Tools/msg/generate_msg_docs.py -d build/msg_docs'
dir('build') {
archiveArtifacts(artifacts: 'msg_docs/*.md')
stash includes: 'msg_docs/*.md', name: 'msg_documentation'
@@ -156,7 +87,38 @@ pipeline {
}
post {
always {
sh 'make distclean'
sh 'make distclean; git clean -ff -x -d .'
}
}
}
stage('failsafe docs') {
agent {
docker { image 'px4io/px4-dev-nuttx-focal:2022-08-12' }
}
steps {
sh '''#!/bin/bash -l
echo $0;
git clone https://github.com/emscripten-core/emsdk.git _emscripten_sdk;
cd _emscripten_sdk;
./emsdk install latest;
./emsdk activate latest;
cd ..;
. ./_emscripten_sdk/emsdk_env.sh;
git fetch --all --tags;
make failsafe_web;
cd build/px4_sitl_default_failsafe_web;
mkdir -p failsafe_sim;
cp index.* parameters.json failsafe_sim;
'''
dir('build/px4_sitl_default_failsafe_web') {
archiveArtifacts(artifacts: 'failsafe_sim/*')
stash includes: 'failsafe_sim/*', name: 'failsafe_sim'
}
}
post {
always {
sh 'make distclean; git clean -ff -x -d .'
}
}
}
@@ -164,13 +126,13 @@ pipeline {
stage('uORB graphs') {
agent {
docker {
image 'px4io/px4-dev-nuttx-focal:2021-08-18'
image 'px4io/px4-dev-nuttx-focal:2022-08-12'
args '-e CCACHE_BASEDIR=$WORKSPACE -v ${CCACHE_DIR}:${CCACHE_DIR}:rw'
}
}
steps {
sh 'export'
sh 'make distclean'
sh 'make distclean; git clean -ff -x -d .'
sh 'git fetch --all --tags'
sh 'make uorb_graphs'
dir('Tools/uorb_graph') {
@@ -180,7 +142,7 @@ pipeline {
}
post {
always {
sh 'make distclean'
sh 'make distclean; git clean -ff -x -d .'
}
}
}
@@ -202,22 +164,25 @@ pipeline {
unstash 'metadata_parameters'
unstash 'metadata_module_documentation'
unstash 'msg_documentation'
unstash 'failsafe_sim'
unstash 'uorb_graph'
withCredentials([usernamePassword(credentialsId: 'px4buildbot_github_personal_token', passwordVariable: 'GIT_PASS', usernameVariable: 'GIT_USER')]) {
sh('git clone https://${GIT_USER}:${GIT_PASS}@github.com/PX4/px4_user_guide.git')
sh('cp airframes.md px4_user_guide/en/airframes/airframe_reference.md')
sh('cp parameters.md px4_user_guide/en/advanced_config/parameter_reference.md')
sh('cp -R modules/*.md px4_user_guide/en/modules/')
sh('cp -R graph_*.json px4_user_guide/.vuepress/public/en/middleware/')
sh('cp -R msg_docs/*.md px4_user_guide/en/msg_docs/')
sh('cd px4_user_guide; git status; git add .; git commit -a -m "Update PX4 Firmware metadata `date`" || true')
sh('cd px4_user_guide; git push origin master || true')
sh('rm -rf px4_user_guide')
sh('git clone https://${GIT_USER}:${GIT_PASS}@github.com/PX4/PX4-user_guide.git')
sh('cp airframes.md PX4-user_guide/en/airframes/airframe_reference.md')
sh('cp parameters.md PX4-user_guide/en/advanced_config/parameter_reference.md')
sh('cp -R modules/*.md PX4-user_guide/en/modules/')
sh('cp -R graph_*.json PX4-user_guide/public/middleware/') // vitepress
sh('cp -R msg_docs/*.md PX4-user_guide/en/msg_docs/')
sh('cp -R failsafe_sim/* PX4-user_guide/public/config/failsafe') // vitepress
sh('cd PX4-user_guide; git status; git add .; git commit -a -m "Update PX4 Firmware metadata `date`" || true')
sh('cd PX4-user_guide; git push origin main || true')
sh('rm -rf PX4-user_guide')
}
}
when {
anyOf {
branch 'master'
branch 'main'
branch 'master' // should be removed, but in case there is something going on...
branch 'pr-jenkins' // for testing
}
}
@@ -245,7 +210,8 @@ pipeline {
}
when {
anyOf {
branch 'master'
branch 'main'
branch 'master' // should be removed, but in case there is something going on...
branch 'pr-jenkins' // for testing
}
}
@@ -254,104 +220,32 @@ pipeline {
}
}
stage('microRTPS agent') {
agent {
docker { image 'px4io/px4-dev-base-focal:2021-08-18' }
}
steps {
sh('export')
sh('git fetch --all --tags')
sh('make distclean')
sh('make px4_sitl_rtps')
withCredentials([usernamePassword(credentialsId: 'px4buildbot_github_personal_token', passwordVariable: 'GIT_PASS', usernameVariable: 'GIT_USER')]) {
sh("git clone https://${GIT_USER}:${GIT_PASS}@github.com/PX4/micrortps_agent.git -b ${BRANCH_NAME}")
sh("rm -rf micrortps_agent/src micrortps_agent/idl")
sh('cp -R build/px4_sitl_rtps/src/modules/micrortps_bridge/micrortps_agent/* micrortps_agent')
sh('cd micrortps_agent; git status; git add src; git commit -a -m "Update microRTPS agent source code `date`" || true')
sh('cd micrortps_agent; git push origin ${BRANCH_NAME} || true')
sh('cd micrortps_agent; git status; git add idl; git commit -a -m "Update IDL definitions `date`" || true')
sh('cd micrortps_agent; git push origin ${BRANCH_NAME} || true')
sh('cd micrortps_agent; git status; git add CMakeLists.txt; git commit -a -m "Update CMakeLists.txt `date`" || true')
sh('cd micrortps_agent; git push origin ${BRANCH_NAME} || true')
sh('rm -rf micrortps_agent')
}
}
when {
anyOf {
branch 'master'
branch 'pr-jenkins' // for testing
}
}
}
stage('PX4 ROS msgs') {
agent {
docker { image 'px4io/px4-dev-base-focal:2021-08-18' }
}
steps {
sh('export')
sh('make distclean')
sh('make distclean; git clean -ff -x -d .')
withCredentials([usernamePassword(credentialsId: 'px4buildbot_github_personal_token', passwordVariable: 'GIT_PASS', usernameVariable: 'GIT_USER')]) {
sh("git clone https://${GIT_USER}:${GIT_PASS}@github.com/PX4/px4_msgs.git")
// 'master' branch
sh('./msg/tools/uorb_to_ros_msgs.py msg/ px4_msgs/msg/')
// 'main' branch
sh('rm -f px4_msgs/msg/*.msg')
sh('rm -f px4_msgs/msg/versioned/*.msg')
sh('rm -f px4_msgs/srv/*.srv')
sh('rm -f px4_msgs/srv/versioned/*.srv')
sh('cp msg/*.msg px4_msgs/msg/')
sh('cp msg/versioned/*.msg px4_msgs/msg/ || true')
sh('cp srv/*.srv px4_msgs/srv/')
sh('cp srv/versioned/*.srv px4_msgs/srv/ || true')
sh('cd px4_msgs; git status; git add .; git commit -a -m "Update message definitions `date`" || true')
sh('cd px4_msgs; git push origin master || true')
// 'ros1' branch
sh('cd px4_msgs; git checkout ros1')
sh('./msg/tools/uorb_to_ros_msgs.py msg/ px4_msgs/msg/')
sh('cd px4_msgs; git status; git add .; git commit -a -m "Update message definitions `date`" || true')
sh('cd px4_msgs; git push origin ros1 || true')
sh('cd px4_msgs; git push origin main || true')
sh('rm -rf px4_msgs')
}
}
when {
anyOf {
branch 'master'
branch 'pr-jenkins' // for testing
}
}
}
stage('PX4 ROS2 bridge') {
agent {
docker { image 'px4io/px4-dev-base-focal:2021-08-18' }
}
steps {
sh('export')
sh('make distclean')
withCredentials([usernamePassword(credentialsId: 'px4buildbot_github_personal_token', passwordVariable: 'GIT_PASS', usernameVariable: 'GIT_USER')]) {
sh("git clone https://${GIT_USER}:${GIT_PASS}@github.com/PX4/px4_ros_com.git -b ${BRANCH_NAME}")
// deploy uORB RTPS ID map
sh('./msg/tools/uorb_to_ros_urtps_topics.py -i msg/tools/urtps_bridge_topics.yaml -o px4_ros_com/templates/urtps_bridge_topics.yaml')
sh('cd px4_ros_com; git status; git add .; git commit -a -m "Update uORB RTPS ID map `date`" || true')
sh('cd px4_ros_com; git push origin ${BRANCH_NAME} || true')
// deploy uORB RTPS required tools
sh('cp msg/tools/uorb_rtps_classifier.py px4_ros_com/scripts/uorb_rtps_classifier.py')
sh('cp msg/tools/generate_microRTPS_bridge.py px4_ros_com/scripts/generate_microRTPS_bridge.py')
sh('cp msg/tools/px_generate_uorb_topic_files.py px4_ros_com/scripts/px_generate_uorb_topic_files.py')
sh('cp msg/tools/px_generate_uorb_topic_helper.py px4_ros_com/scripts/px_generate_uorb_topic_helper.py')
// deploy templates
sh('cp msg/templates/urtps/microRTPS_agent.cpp.em px4_ros_com/templates/microRTPS_agent.cpp.em')
sh('cp msg/templates/urtps/microRTPS_timesync.cpp.em px4_ros_com/templates/microRTPS_timesync.cpp.em')
sh('cp msg/templates/urtps/microRTPS_timesync.h.em px4_ros_com/templates/microRTPS_timesync.h.em')
sh('cp msg/templates/urtps/microRTPS_transport.cpp px4_ros_com/templates/microRTPS_transport.cpp')
sh('cp msg/templates/urtps/microRTPS_transport.h px4_ros_com/templates/microRTPS_transport.h')
sh('cp msg/templates/urtps/Publisher.cpp.em px4_ros_com/templates/Publisher.cpp.em')
sh('cp msg/templates/urtps/Publisher.h.em px4_ros_com/templates/Publisher.h.em')
sh('cp msg/templates/urtps/Subscriber.cpp.em px4_ros_com/templates/Subscriber.cpp.em')
sh('cp msg/templates/urtps/Subscriber.h.em px4_ros_com/templates/Subscriber.h.em')
sh('cp msg/templates/urtps/RtpsTopics.cpp.em px4_ros_com/templates/RtpsTopics.cpp.em')
sh('cp msg/templates/urtps/RtpsTopics.h.em px4_ros_com/templates/RtpsTopics.h.em')
sh('cd px4_ros_com; git status; git add .; git commit -a -m "Update uORB RTPS script tools `date`" || true')
sh('cd px4_ros_com; git push origin ${BRANCH_NAME} || true')
sh('rm -rf px4_msgs')
}
}
when {
anyOf {
branch 'master'
branch 'pr-jenkins' // for testing
branch 'main'
}
}
}
@@ -373,7 +267,8 @@ pipeline {
}
when {
anyOf {
branch 'master'
branch 'main'
branch 'master' // should be removed, but in case there is something going on...
branch 'pr-jenkins' // for testing
}
}
+42 -4
View File
@@ -17,6 +17,8 @@ menu "Toolchain"
bool "posix"
config PLATFORM_QURT
bool "qurt"
config PLATFORM_ROS2
bool "ros2"
endchoice
config BOARD_PLATFORM
@@ -24,6 +26,7 @@ menu "Toolchain"
default "nuttx" if PLATFORM_NUTTX
default "posix" if PLATFORM_POSIX
default "qurt" if PLATFORM_QURT
default "ros2" if PLATFORM_ROS2
config BOARD_LOCKSTEP
bool "Force enable lockstep"
@@ -37,8 +40,8 @@ menu "Toolchain"
help
forces nolockstep behaviour, despite REPLAY env variable
config BOARD_LINUX
bool "Linux OS"
config BOARD_LINUX_TARGET
bool "Linux OS Target"
depends on PLATFORM_POSIX
help
Board Platform is running the Linux operating system
@@ -51,6 +54,13 @@ menu "Toolchain"
string "Architecture"
default ""
config BOARD_LTO
bool "(EXPERIMENTAL) Link Time Optimization (LTO)"
default n
help
Enables LTO flag in linker
Note: Highly EXPERIMENTAL, furthermore make sure you're using a modern compiler GCC 9 or later
config BOARD_FULL_OPTIMIZATION
bool "Full optmization (O3)"
default n
@@ -63,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"
@@ -118,6 +133,11 @@ config BOARD_CRYPTO
help
Enable PX4 Crypto Support. Select the implementation under drivers
config BOARD_PROTECTED
bool "Memory protection"
help
Enable memory protection via MPU/MMU
menu "Serial ports"
config BOARD_SERIAL_URT6
@@ -159,8 +179,19 @@ menu "Serial ports"
config BOARD_SERIAL_WIFI
string "WIFI tty port"
config BOARD_SERIAL_PPB
string "PPB (Pixhawk Payload Bus) tty port"
config BOARD_SERIAL_EXT2
string "EXT2 tty port"
endmenu
menu "File paths"
config BOARD_ROOT_PATH
string "PX4 Root file path"
default "/fs/microsd"
config BOARD_PARAM_FILE
string "Parameter file"
default "/fs/mtd_params"
endmenu
menu "drivers"
@@ -178,3 +209,10 @@ endmenu
menu "examples"
source "src/examples/Kconfig"
endmenu
menu "platforms"
depends on PLATFORM_QURT || PLATFORM_POSIX || PLATFORM_NUTTX
source "platforms/Kconfig"
endmenu
source "src/lib/*/Kconfig"
+1 -1
View File
@@ -1,6 +1,6 @@
BSD 3-Clause License
Copyright (c) 2012 - 2021, PX4 Development Team
Copyright (c) 2012 - 2023, PX4 Development Team
All rights reserved.
Redistribution and use in source and binary forms, with or without
+43
View File
@@ -0,0 +1,43 @@
Maintainers
===========
See [the documentation on Maintainers](https://docs.px4.io/main/en/contribute/maintainers.html) to learn about the role of the maintainers and the process to become one.
**Active Maintainers**
| Name | Sector | GitHub | Chat | email
|-------------------------|--------|--------|------|----------------
| Lorenz Meier | Founder | [@LorenzMeier](https://github.com/LorenzMeier) | | <lorenz@px4.io>
| Daniel Agar | Architecture | [@dagar](https://github.com/dagar) | daniel_agar | <daniel@agar.ca>
| Beat Küng | Architecture | [@bkueng](https://github.com/bkueng) | beatkueng | <beat-kueng@gmx.net>
| Ramón Roche | CI / Testing | [@mrpollo](https://github.com/mrpollo) | rroche | <rroche@linuxfoundation.org>
| Mathieu Bresciani | State Estimation | [@bresch](https://github.com/bresch) | mbresch |
| Paul Riseborough | State Estimation | [@priseborough](https://github.com/priseborough) | |
| David Sidrane | RTOS / NuttX | [@davids5](https://github.com/davids5) | david_s5 | <David.Sidrane@Nscdg.com>
| Jayoung Lim | Simulation | [@Jaeyoung-Lim](https://github.com/Jaeyoung-Lim) | jaeyounglim. | <jalim@ethz.ch>
| Beniamino Pozzan | ROS 2 | [@beniaminopozzan](https://github.com/beniaminopozzan) | beniaminopozzan | <beniamino.pozzan@gmail.com>
| 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 | <roque@caltech.edu>
| Jacob Dahl | Simulation | [@dakejahl](https://github.com/dakejahl) | dakejahl | <dahl.jakejacob@gmail.com>
**Documentation Maintainers**
| Name | GitHub | Chat | email
|------|--------|------|----------------------
| Hamish Willee | [@hamishwillee](https://github.com/hamishwillee) | hamishwillee |
**Release Managers**
| Name | GitHub | Chat | email
|------|--------|------|----------------------
| Ramón Roche | [@mrpollo](https://github.com/mrpollo) | rroche | <rroche@linuxfoundation.org>
| Daniel Agar | [@dagar](https://github.com/dagar) | daniel_agar | <daniel@agar.ca>
**Retired Maintainers**
| Name | GitHub | Chat | email
|------|--------|------|----------------------
| | | |
+109 -73
View File
@@ -1,6 +1,6 @@
############################################################################
#
# Copyright (c) 2015 - 2020 PX4 Development Team. All rights reserved.
# Copyright (c) 2015 - 2024 PX4 Development Team. All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions
@@ -129,52 +129,49 @@ else
BUILD_DIR_SUFFIX :=
endif
CMAKE_ARGS ?=
# additional config parameters passed to cmake
ifdef EXTERNAL_MODULES_LOCATION
CMAKE_ARGS += -DEXTERNAL_MODULES_LOCATION:STRING=$(EXTERNAL_MODULES_LOCATION)
override CMAKE_ARGS += -DEXTERNAL_MODULES_LOCATION:STRING=$(EXTERNAL_MODULES_LOCATION)
endif
ifdef PX4_CMAKE_BUILD_TYPE
CMAKE_ARGS += -DCMAKE_BUILD_TYPE=${PX4_CMAKE_BUILD_TYPE}
override CMAKE_ARGS += -DCMAKE_BUILD_TYPE=${PX4_CMAKE_BUILD_TYPE}
else
# Address Sanitizer
ifdef PX4_ASAN
CMAKE_ARGS += -DCMAKE_BUILD_TYPE=AddressSanitizer
override CMAKE_ARGS += -DCMAKE_BUILD_TYPE=AddressSanitizer
endif
# Memory Sanitizer
ifdef PX4_MSAN
CMAKE_ARGS += -DCMAKE_BUILD_TYPE=MemorySanitizer
override CMAKE_ARGS += -DCMAKE_BUILD_TYPE=MemorySanitizer
endif
# Thread Sanitizer
ifdef PX4_TSAN
CMAKE_ARGS += -DCMAKE_BUILD_TYPE=ThreadSanitizer
override CMAKE_ARGS += -DCMAKE_BUILD_TYPE=ThreadSanitizer
endif
# Undefined Behavior Sanitizer
ifdef PX4_UBSAN
CMAKE_ARGS += -DCMAKE_BUILD_TYPE=UndefinedBehaviorSanitizer
override CMAKE_ARGS += -DCMAKE_BUILD_TYPE=UndefinedBehaviorSanitizer
endif
endif
# Pick up specific Python path if set
ifdef PYTHON_EXECUTABLE
CMAKE_ARGS += -DPYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}
endif
# Check if the microRTPS agent is to be built
ifdef BUILD_MICRORTPS_AGENT
CMAKE_ARGS += -DBUILD_MICRORTPS_AGENT=ON
override CMAKE_ARGS += -DPYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}
endif
# Functions
# --------------------------------------------------------------------
# describe how to build a cmake config
define cmake-build
$(eval CMAKE_ARGS += -DCONFIG=$(1))
$(eval override CMAKE_ARGS += -DCONFIG=$(1))
@$(eval BUILD_DIR = "$(SRC_DIR)/build/$(1)")
@# check if the desired cmake configuration matches the cache then CMAKE_CACHE_CHECK stays empty
@$(call cmake-cache-check)
@@ -246,7 +243,7 @@ endef
# Other targets
# --------------------------------------------------------------------
.PHONY: qgc_firmware px4fmu_firmware misc_qgc_extra_firmware check_rtps
.PHONY: qgc_firmware px4fmu_firmware misc_qgc_extra_firmware
# QGroundControl flashable NuttX firmware
qgc_firmware: px4fmu_firmware misc_qgc_extra_firmware
@@ -264,22 +261,13 @@ px4fmu_firmware: \
misc_qgc_extra_firmware: \
check_nxp_fmuk66-v3_default \
check_nxp_fmurt1062-v1_default \
check_mro_x21_default \
check_bitcraze_crazyflie_default \
check_bitcraze_crazyflie21_default \
check_airmind_mindpx-v2_default \
sizes
# builds with RTPS
check_rtps: \
check_px4_fmu-v3_rtps \
check_px4_fmu-v4_rtps \
check_px4_fmu-v4pro_rtps \
check_px4_sitl_rtps \
sizes
.PHONY: sizes check quick_check check_rtps uorb_graphs
.PHONY: sizes check quick_check uorb_graphs
sizes:
@-find build -name *.elf -type f | xargs size 2> /dev/null || :
@@ -307,12 +295,18 @@ uorb_graphs:
@$(MAKE) --no-print-directory px4_fmu-v2_default uorb_graph
@$(MAKE) --no-print-directory px4_fmu-v4_default uorb_graph
@$(MAKE) --no-print-directory px4_fmu-v5_default uorb_graph
@$(MAKE) --no-print-directory px4_fmu-v5x_default uorb_graph
@$(MAKE) --no-print-directory px4_fmu-v6x_default uorb_graph
@$(MAKE) --no-print-directory px4_sitl_default uorb_graph
px4io_update: px4_io-v2_default cubepilot_io-v2_default
px4io_update:
@$(MAKE) --no-print-directory px4_io-v2_default
@$(MAKE) --no-print-directory cubepilot_io-v2_default
# px4_io-v2_default
cp build/px4_io-v2_default/px4_io-v2_default.bin boards/ark/fmu-v6x/extras/px4_io-v2_default.bin
cp build/px4_io-v2_default/px4_io-v2_default.bin boards/holybro/durandal-v1/extras/px4_io-v2_default.bin
cp build/px4_io-v2_default/px4_io-v2_default.bin boards/holybro/pix32v5/extras/px4_io-v2_default.bin
cp build/px4_io-v2_default/px4_io-v2_default.bin boards/mro/x21/extras/px4_io-v2_default.bin
cp build/px4_io-v2_default/px4_io-v2_default.bin boards/mro/x21-777/extras/px4_io-v2_default.bin
cp build/px4_io-v2_default/px4_io-v2_default.bin boards/px4/fmu-v2/extras/px4_io-v2_default.bin
cp build/px4_io-v2_default/px4_io-v2_default.bin boards/px4/fmu-v3/extras/px4_io-v2_default.bin
@@ -320,12 +314,49 @@ px4io_update: px4_io-v2_default cubepilot_io-v2_default
cp build/px4_io-v2_default/px4_io-v2_default.bin boards/px4/fmu-v5/extras/px4_io-v2_default.bin
cp build/px4_io-v2_default/px4_io-v2_default.bin boards/px4/fmu-v5x/extras/px4_io-v2_default.bin
cp build/px4_io-v2_default/px4_io-v2_default.bin boards/px4/fmu-v6x/extras/px4_io-v2_default.bin
cp build/px4_io-v2_default/px4_io-v2_default.bin boards/px4/fmu-v6c/extras/px4_io-v2_default.bin
# cubepilot_io-v2_default
cp build/cubepilot_io-v2_default/cubepilot_io-v2_default.bin boards/cubepilot/cubeorange/extras/cubepilot_io-v2_default.bin
cp build/cubepilot_io-v2_default/cubepilot_io-v2_default.bin boards/cubepilot/cubeyellow/extras/cubepilot_io-v2_default.bin
git status
bootloaders_update: cuav_nora_bootloader cuav_x7pro_bootloader cubepilot_cubeorange_bootloader holybro_durandal-v1_bootloader matek_h743-slim_bootloader modalai_fc-v2_bootloader mro_ctrl-zero-h7_bootloader mro_ctrl-zero-h7-oem_bootloader mro_pixracerpro_bootloader px4_fmu-v6u_bootloader px4_fmu-v6x_bootloader
bootloaders_update: \
3dr_ctrl-zero-h7-oem-revg_bootloader \
ark_fmu-v6x_bootloader \
ark_fpv_bootloader \
ark_pi6x_bootloader \
auterion_fmu-v6s_bootloader \
auterion_fmu-v6x_bootloader \
cuav_nora_bootloader \
cuav_x7pro_bootloader \
cuav_7-nano_bootloader \
cuav_fmu-v6x_bootloader \
cuav_x25-evo_bootloader \
cubepilot_cubeorange_bootloader \
cubepilot_cubeorangeplus_bootloader \
hkust_nxt-dual_bootloader \
hkust_nxt-v1_bootloader \
holybro_durandal-v1_bootloader \
holybro_kakuteh7_bootloader \
holybro_kakuteh7mini_bootloader \
holybro_kakuteh7v2_bootloader \
matek_h743_bootloader \
matek_h743-mini_bootloader \
matek_h743-slim_bootloader \
micoair_h743_bootloader \
micoair_h743-aio_bootloader \
micoair_h743-v2_bootloader \
modalai_fc-v2_bootloader \
mro_ctrl-zero-classic_bootloader \
mro_ctrl-zero-h7_bootloader \
mro_ctrl-zero-h7-oem_bootloader \
mro_pixracerpro_bootloader \
narinfc_h7_bootloader \
px4_fmu-v6c_bootloader \
px4_fmu-v6u_bootloader \
px4_fmu-v6x_bootloader \
px4_fmu-v6xrt_bootloader \
siyi_n7_bootloader
git status
.PHONY: coverity_scan
@@ -334,7 +365,7 @@ coverity_scan: px4_sitl_default
# Documentation
# --------------------------------------------------------------------
.PHONY: parameters_metadata airframe_metadata module_documentation extract_events px4_metadata doxygen
.PHONY: parameters_metadata airframe_metadata module_documentation extract_events px4_metadata
parameters_metadata:
@$(MAKE) --no-print-directory px4_sitl_default metadata_parameters ver_gen
@@ -350,15 +381,9 @@ extract_events:
px4_metadata: parameters_metadata airframe_metadata module_documentation extract_events
doxygen:
@mkdir -p "$(SRC_DIR)"/build/doxygen
@cd "$(SRC_DIR)"/build/doxygen && cmake "$(SRC_DIR)" $(CMAKE_ARGS) -G"$(PX4_CMAKE_GENERATOR)" -DCONFIG=px4_sitl_default -DBUILD_DOXYGEN=ON
@$(PX4_MAKE) -C "$(SRC_DIR)"/build/doxygen
@touch "$(SRC_DIR)"/build/doxygen/Documentation/.nojekyll
# Astyle
# Style
# --------------------------------------------------------------------
.PHONY: check_format format
.PHONY: check_format format check_newlines
check_format:
$(call colorecho,'Checking formatting with astyle')
@@ -369,37 +394,48 @@ format:
$(call colorecho,'Formatting with astyle')
@"$(SRC_DIR)"/Tools/astyle/check_code_style_all.sh --fix
check_newlines:
$(call colorecho,'Checking for missing or duplicate newlines at the end of files')
@"$(SRC_DIR)"/Tools/astyle/check_newlines.sh
# Testing
# --------------------------------------------------------------------
.PHONY: tests tests_coverage tests_mission tests_mission_coverage tests_offboard tests_avoidance
.PHONY: tests tests_coverage tests_mission tests_mission_coverage tests_offboard
.PHONY: rostest python_coverage
tests:
$(eval CMAKE_ARGS += -DTESTFILTER=$(TESTFILTER))
$(eval override CMAKE_ARGS += -DTESTFILTER=$(TESTFILTER))
$(eval ARGS += test_results)
$(eval ASAN_OPTIONS += color=always:check_initialization_order=1:detect_stack_use_after_return=1)
$(eval UBSAN_OPTIONS += color=always)
$(call cmake-build,px4_sitl_test)
# work around lcov bug #316; remove once lcov is fixed (see https://github.com/linux-test-project/lcov/issues/316)
LCOBUG = --ignore-errors mismatch
tests_coverage:
@$(MAKE) clean
@$(MAKE) --no-print-directory tests PX4_CMAKE_BUILD_TYPE=Coverage
@mkdir -p coverage
@lcov --directory build/px4_sitl_test --base-directory build/px4_sitl_test --gcov-tool gcov --capture -o coverage/lcov.info
@lcov --directory build/px4_sitl_test \
--base-directory build/px4_sitl_test \
--gcov-tool gcov \
--capture \
$(LCOBUG) \
-o coverage/lcov.info
rostest: px4_sitl_default
@$(MAKE) --no-print-directory px4_sitl_default sitl_gazebo
@$(MAKE) --no-print-directory px4_sitl_default sitl_gazebo-classic
tests_integration: px4_sitl_default
@$(MAKE) --no-print-directory px4_sitl_default sitl_gazebo
@$(MAKE) --no-print-directory px4_sitl_default sitl_gazebo-classic
@$(MAKE) --no-print-directory px4_sitl_default mavsdk_tests
@"$(SRC_DIR)"/test/mavsdk_tests/mavsdk_test_runner.py --speed-factor 20 test/mavsdk_tests/configs/sitl.json
tests_integration_coverage:
@$(MAKE) clean
@$(MAKE) --no-print-directory px4_sitl_default PX4_CMAKE_BUILD_TYPE=Coverage
@$(MAKE) --no-print-directory px4_sitl_default sitl_gazebo
@$(MAKE) --no-print-directory px4_sitl_default sitl_gazebo-classic
@$(MAKE) --no-print-directory px4_sitl_default mavsdk_tests
@"$(SRC_DIR)"/test/mavsdk_tests/mavsdk_test_runner.py --speed-factor 20 test/mavsdk_tests/configs/sitl.json
@mkdir -p coverage
@@ -409,13 +445,13 @@ tests_mission: rostest
@"$(SRC_DIR)"/test/rostest_px4_run.sh mavros_posix_tests_missions.test
rostest_run: px4_sitl_default
@$(MAKE) --no-print-directory px4_sitl_default sitl_gazebo
@$(MAKE) --no-print-directory px4_sitl_default sitl_gazebo-classic
@"$(SRC_DIR)"/test/rostest_px4_run.sh $(TEST_FILE) mission:=$(TEST_MISSION) vehicle:=$(TEST_VEHICLE)
tests_mission_coverage:
@$(MAKE) clean
@$(MAKE) --no-print-directory px4_sitl_default PX4_CMAKE_BUILD_TYPE=Coverage
@$(MAKE) --no-print-directory px4_sitl_default sitl_gazebo PX4_CMAKE_BUILD_TYPE=Coverage
@$(MAKE) --no-print-directory px4_sitl_default sitl_gazebo-classic PX4_CMAKE_BUILD_TYPE=Coverage
@"$(SRC_DIR)"/test/rostest_px4_run.sh mavros_posix_test_mission.test mission:=VTOL_mission_1 vehicle:=standard_vtol
@$(MAKE) --no-print-directory px4_sitl_default generate_coverage
@@ -424,10 +460,6 @@ tests_offboard: rostest
@"$(SRC_DIR)"/test/rostest_px4_run.sh mavros_posix_tests_offboard_posctl.test
@"$(SRC_DIR)"/test/rostest_px4_run.sh mavros_posix_tests_offboard_rpyrt_ctl.test
tests_avoidance: rostest
@"$(SRC_DIR)"/test/rostest_avoidance_run.sh mavros_posix_test_avoidance.test
@"$(SRC_DIR)"/test/rostest_avoidance_run.sh mavros_posix_test_safe_landing.test
python_coverage:
@mkdir -p "$(SRC_DIR)"/build/python_coverage
@cd "$(SRC_DIR)"/build/python_coverage && cmake "$(SRC_DIR)" $(CMAKE_ARGS) -G"$(PX4_CMAKE_GENERATOR)" -DCONFIG=px4_sitl_default -DPYTHON_COVERAGE=ON
@@ -441,7 +473,7 @@ python_coverage:
# static analyzers (scan-build, clang-tidy, cppcheck)
# --------------------------------------------------------------------
.PHONY: scan-build px4_sitl_default-clang clang-tidy clang-tidy-fix clang-tidy-quiet
.PHONY: scan-build px4_sitl_default-clang clang-tidy clang-tidy-fix
.PHONY: cppcheck shellcheck_all validate_module_configs
scan-build:
@@ -467,10 +499,6 @@ clang-tidy: px4_sitl_default-clang
clang-tidy-fix: px4_sitl_default-clang
@cd "$(SRC_DIR)"/build/px4_sitl_default-clang && "$(SRC_DIR)"/Tools/run-clang-tidy.py -header-filter=".*\.hpp" -j$(j_clang_tidy) -fix -p .
# modified version of run-clang-tidy.py to return error codes and only output relevant results
clang-tidy-quiet: px4_sitl_default-clang
@cd "$(SRC_DIR)"/build/px4_sitl_default-clang && "$(SRC_DIR)"/Tools/run-clang-tidy.py -header-filter=".*\.hpp" -j$(j_clang_tidy) -p .
# TODO: Fix cppcheck errors then try --enable=warning,performance,portability,style,unusedFunction or --enable=all
cppcheck: px4_sitl_default
@mkdir -p "$(SRC_DIR)"/build/cppcheck
@@ -482,11 +510,19 @@ shellcheck_all:
@make px4_fmu-v5_default shellcheck
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/*" -print0 | xargs -0 "$(SRC_DIR)"/Tools/validate_yaml.py --schema-file "$(SRC_DIR)"/validation/module_schema.yaml
@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/*" \
-not -path "$(SRC_DIR)/src/lib/crypto/libtommath/*" -print0 | \
xargs -0 "$(SRC_DIR)"/Tools/validate_yaml.py --schema-file "$(SRC_DIR)"/validation/module_schema.yaml
# Cleanup
# --------------------------------------------------------------------
.PHONY: clean submodulesclean submodulesupdate gazeboclean distclean
.PHONY: clean submodulesclean submodulesupdate distclean
clean:
@[ ! -d "$(SRC_DIR)/build" ] || find "$(SRC_DIR)/build" -mindepth 1 -maxdepth 1 -type d -exec sh -c "echo {}; cmake --build {} -- clean || rm -rf {}" \; # use generated build system to clean, wipe build directory if it fails
@@ -504,10 +540,7 @@ submodulesupdate:
@git submodule update --init --recursive --jobs 4
@git fetch --all --tags --recurse-submodules=yes --jobs=4
gazeboclean:
@rm -rf ~/.gazebo/*
distclean: gazeboclean
distclean:
@git submodule deinit --force $(SRC_DIR)
@rm -rf "$(SRC_DIR)/build"
@git clean --force -X "$(SRC_DIR)/msg/" "$(SRC_DIR)/platforms/" "$(SRC_DIR)/posix-configs/" "$(SRC_DIR)/ROMFS/" "$(SRC_DIR)/src/" "$(SRC_DIR)/test/" "$(SRC_DIR)/Tools/"
@@ -518,14 +551,14 @@ distclean: gazeboclean
# All other targets are handled by PX4_MAKE. Add a rule here to avoid printing an error.
%:
$(if $(filter $(FIRST_ARG),$@), \
$(error "Make target $@ not found. It either does not exist or $@ cannot be the first argument. Use '$(MAKE) help|list_config_targets' to get a list of all possible [configuration] targets."),@#)
$(error "Make target $@ not found. It either does not exist or $@ cannot be the first argument. Use '$(MAKE) list_config_targets' to get a list of all possible [configuration] targets."),@#)
# Print a list of non-config targets (based on http://stackoverflow.com/a/26339924/1487069)
help:
@echo "Usage: $(MAKE) <target>"
@echo "Where <target> is one of:"
@$(MAKE) -pRrq -f $(lastword $(MAKEFILE_LIST)) : 2>/dev/null | \
awk -v RS= -F: '/^# File/,/^# Finished Make data base/ {if ($$1 !~ "^[#.]") {print $$1}}' | sort | \
awk -v RS= -F: '/(^|\n)# Files(\n|$$)/,/(^|\n)# Finished Make data base/ {if ($$1 !~ "^[#.]") {print $$1}}' | sort | \
egrep -v -e '^[^[:alnum:]]' -e '^($(subst $(space),|,$(ALL_CONFIG_TARGETS)))$$' -e '_default$$' -e '^(Makefile)'
@echo
@echo "Or, $(MAKE) <config_target> [<make_target(s)>]"
@@ -547,17 +580,20 @@ check_px4: $(call make_list,nuttx,"px4") \
check_nxp: $(call make_list,nuttx,"nxp") \
sizes
ifneq ($(ROS2_WS_DIR),)
ROS2_WS_DIR := $(basename ${ROS2_WS_DIR})
else
ROS2_WS_DIR := ~/colcon_ws
endif
# helpers for running olddefconfig (nuttx) and px4_savedefconfig on all boards
.PHONY: all_oldconfig all_px4_savedefconfig
all_oldconfig:
@for targ in $(ALL_CONFIG_TARGETS); do $(MAKE) $$targ oldconfig; done
update_ros2_bridge:
@Tools/update_px4_ros2_bridge.sh --ws_dir ${ROS2_WS_DIR} --all
all_px4_savedefconfig:
@for targ in $(ALL_CONFIG_TARGETS); do $(MAKE) $$targ px4_savedefconfig; done
update_px4_ros_com:
@Tools/update_px4_ros2_bridge.sh --ws_dir ${ROS2_WS_DIR} --px4_ros_com
update_px4_msgs:
@Tools/update_px4_ros2_bridge.sh --ws_dir ${ROS2_WS_DIR} --px4_msgs
.PHONY: failsafe_web run_failsafe_web_server
failsafe_web:
@if ! command -v emcc; then echo -e "Install emscripten first: https://emscripten.org/docs/getting_started/downloads.html\nAnd source the env: source <path>/emsdk_env.sh"; exit 1; fi
@$(MAKE) --no-print-directory px4_sitl_default failsafe_test parameters_xml \
PX4_CMAKE_BUILD_TYPE=Release BUILD_DIR_SUFFIX=_failsafe_web \
CMAKE_ARGS="-DCMAKE_CXX_COMPILER=em++ -DCMAKE_C_COMPILER=emcc"
run_failsafe_web_server: failsafe_web
@cd build/px4_sitl_default_failsafe_web && \
python3 -m http.server
-17
View File
@@ -1,17 +0,0 @@
Please use [PX4 Discuss](http://discuss.px4.io/) or [Slack](http://slack.px4.io/) to align on pull requests if necessary. You can then open draft pull requests to get early feedback.
**Describe problem solved by this pull request**
A clear and concise description of the problem this proposed change will solve.
E.g. For this use case I ran into...
**Describe your solution**
A clear and concise description of what you have implemented.
**Describe possible alternatives**
A clear and concise description of alternative solutions or features you've considered.
**Test data / coverage**
How was it tested? What cases were covered? Logs uploaded to https://review.px4.io/ and screenshots of the important plot parts.
**Additional context**
Add any other related context or media.
+28 -88
View File
@@ -2,121 +2,61 @@
[![Releases](https://img.shields.io/github/release/PX4/PX4-Autopilot.svg)](https://github.com/PX4/PX4-Autopilot/releases) [![DOI](https://zenodo.org/badge/22634/PX4/PX4-Autopilot.svg)](https://zenodo.org/badge/latestdoi/22634/PX4/PX4-Autopilot)
[![Nuttx Targets](https://github.com/PX4/PX4-Autopilot/workflows/Nuttx%20Targets/badge.svg)](https://github.com/PX4/PX4-Autopilot/actions?query=workflow%3A%22Nuttx+Targets%22?branch=master) [![SITL Tests](https://github.com/PX4/PX4-Autopilot/workflows/SITL%20Tests/badge.svg?branch=master)](https://github.com/PX4/PX4-Autopilot/actions?query=workflow%3A%22SITL+Tests%22)
[![Build Targets](https://github.com/PX4/PX4-Autopilot/actions/workflows/build_all_targets.yml/badge.svg?branch=main)](https://github.com/PX4/PX4-Autopilot/actions/workflows/build_all_targets.yml) [![SITL Tests](https://github.com/PX4/PX4-Autopilot/workflows/SITL%20Tests/badge.svg?branch=master)](https://github.com/PX4/PX4-Autopilot/actions?query=workflow%3A%22SITL+Tests%22)
[![Slack](/.github/slack.svg)](https://join.slack.com/t/px4/shared_invite/zt-si4xo5qs-R4baYFmMjlrT4rQK5yUnaA)
[![Discord Shield](https://discordapp.com/api/guilds/1022170275984457759/widget.png?style=shield)](https://discord.gg/dronecode)
This repository holds the [PX4](http://px4.io) flight control solution for drones, with the main applications located in the [src/modules](https://github.com/PX4/PX4-Autopilot/tree/master/src/modules) directory. It also contains the PX4 Drone Middleware Platform, which provides drivers and middleware to run drones.
This repository holds the [PX4](http://px4.io) flight control solution for drones, with the main applications located in the [src/modules](https://github.com/PX4/PX4-Autopilot/tree/main/src/modules) directory. It also contains the PX4 Drone Middleware Platform, which provides drivers and middleware to run drones.
PX4 is highly portable, OS-independent and supports Linux, NuttX and MacOS out of the box.
* Official Website: http://px4.io (License: BSD 3-clause, [LICENSE](https://github.com/PX4/PX4-Autopilot/blob/master/LICENSE))
* [Supported airframes](https://docs.px4.io/master/en/airframes/airframe_reference.html) ([portfolio](http://px4.io/#airframes)):
* [Multicopters](https://docs.px4.io/master/en/frames_multicopter/)
* [Fixed wing](https://docs.px4.io/master/en/frames_plane/)
* [VTOL](https://docs.px4.io/master/en/frames_vtol/)
* [Autogyro](https://docs.px4.io/master/en/frames_autogyro/)
* [Rover](https://docs.px4.io/master/en/frames_rover/)
* many more experimental types (Blimps, Boats, Submarines, High altitude balloons, etc)
* Official Website: http://px4.io (License: BSD 3-clause, [LICENSE](https://github.com/PX4/PX4-Autopilot/blob/main/LICENSE))
* [Supported airframes](https://docs.px4.io/main/en/airframes/airframe_reference.html) ([portfolio](https://px4.io/ecosystem/commercial-systems/)):
* [Multicopters](https://docs.px4.io/main/en/frames_multicopter/)
* [Fixed wing](https://docs.px4.io/main/en/frames_plane/)
* [VTOL](https://docs.px4.io/main/en/frames_vtol/)
* [Autogyro](https://docs.px4.io/main/en/frames_autogyro/)
* [Rover](https://docs.px4.io/main/en/frames_rover/)
* many more experimental types (Blimps, Boats, Submarines, High Altitude Balloons, Spacecraft, etc)
* Releases: [Downloads](https://github.com/PX4/PX4-Autopilot/releases)
## Releases
Release notes and supporting information for PX4 releases can be found on the [Developer Guide](https://docs.px4.io/main/en/releases/).
## Building a PX4 based drone, rover, boat or robot
The [PX4 User Guide](https://docs.px4.io/master/en/) explains how to assemble [supported vehicles](https://docs.px4.io/master/en/airframes/airframe_reference.html) and fly drones with PX4.
See the [forum and chat](https://docs.px4.io/master/en/#support) if you need help!
The [PX4 User Guide](https://docs.px4.io/main/en/) explains how to assemble [supported vehicles](https://docs.px4.io/main/en/airframes/airframe_reference.html) and fly drones with PX4. See the [forum and chat](https://docs.px4.io/main/en/#getting-help) if you need help!
## Changing code and contributing
## Changing Code and Contributing
This [Developer Guide](https://docs.px4.io/master/en/development/development.html) is for software developers who want to modify the flight stack and middleware (e.g. to add new flight modes), hardware integrators who want to support new flight controller boards and peripherals, and anyone who wants to get PX4 working on a new (unsupported) airframe/vehicle.
This [Developer Guide](https://docs.px4.io/main/en/development/development.html) is for software developers who want to modify the flight stack and middleware (e.g. to add new flight modes), hardware integrators who want to support new flight controller boards and peripherals, and anyone who wants to get PX4 working on a new (unsupported) airframe/vehicle.
Developers should read the [Guide for Contributions](https://docs.px4.io/master/en/contribute/).
See the [forum and chat](https://dev.px4.io/master/en/#support) if you need help!
Developers should read the [Guide for Contributions](https://docs.px4.io/main/en/contribute/).
See the [forum and chat](https://docs.px4.io/main/en/#getting-help) if you need help!
### Weekly Dev Call
## Weekly Dev Call
The PX4 Dev Team syncs up on a [weekly dev call](https://dev.px4.io/master/en/contribute/#dev_call).
The PX4 Dev Team syncs up on a [weekly dev call](https://docs.px4.io/main/en/contribute/).
> **Note** The dev call is open to all interested developers (not just the core dev team). This is a great opportunity to meet the team and contribute to the ongoing development of the platform. It includes a QA session for newcomers. All regular calls are listed in the [Dronecode calendar](https://www.dronecode.org/calendar/).
## Maintenance Team
* Project: Founder
* [Lorenz Meier](https://github.com/LorenzMeier)
* Architecture
* [Daniel Agar](https://github.com/dagar)
* [Dev Call](https://github.com/PX4/PX4-Autopilot/labels/devcall)
* [Ramon Roche](https://github.com/mrpollo)
* Communication Architecture
* [Beat Kueng](https://github.com/bkueng)
* [Julian Oes](https://github.com/JulianOes)
* UI in QGroundControl
* [Gus Grubba](https://github.com/dogmaphobic)
* [Multicopter Flight Control](https://github.com/PX4/PX4-Autopilot/labels/multicopter)
* [Mathieu Bresciani](https://github.com/bresch)
* [Multicopter Software Architecture](https://github.com/PX4/PX4-Autopilot/labels/multicopter)
* [Matthias Grob](https://github.com/MaEtUgR)
* [VTOL Flight Control](https://github.com/PX4/PX4-Autopilot/labels/vtol)
* [Roman Bapst](https://github.com/RomanBapst)
* [Fixed Wing Flight Control](https://github.com/PX4/PX4-Autopilot/labels/fixedwing)
* [Roman Bapst](https://github.com/RomanBapst)
* OS / NuttX
* [David Sidrane](https://github.com/davids5)
* Driver Architecture
* [Daniel Agar](https://github.com/dagar)
* Commander Architecture
* [Julian Oes](https://github.com/julianoes)
* [UAVCAN](https://github.com/PX4/PX4-Autopilot/labels/uavcan)
* [Daniel Agar](https://github.com/dagar)
* [State Estimation](https://github.com/PX4/PX4-Autopilot/issues?q=is%3Aopen+is%3Aissue+label%3A%22state+estimation%22)
* [Paul Riseborough](https://github.com/priseborough)
* Vision based navigation and Obstacle Avoidance
* [Markus Achtelik](https://github.com/markusachtelik)
* RTPS/ROS2 Interface
* [Nuno Marques](https://github.com/TSC21)
See the latest list of maintainers on [MAINTAINERS](MAINTAINERS.md) file at the root of the project.
See also [maintainers list](https://px4.io/community/maintainers/) (px4.io) and the [contributors list](https://github.com/PX4/PX4-Autopilot/graphs/contributors) (Github).
For the latest stats on contributors please see the latest stats for the Dronecode ecosystem in our project dashboard under [LFX Insights](https://insights.lfx.linuxfoundation.org/foundation/dronecode). For information on how to update your profile and affiliations please see the following support link on how to [Complete Your LFX Profile](https://docs.linuxfoundation.org/lfx/my-profile/complete-your-lfx-profile). Dronecode publishes a yearly snapshot of contributions and achievements on its [website under the Reports section](https://dronecode.org).
## Supported Hardware
This repository contains code supporting Pixhawk standard boards (best supported, best tested, recommended choice) and proprietary boards.
For the most up to date information, please visit [PX4 User Guide > Autopilot Hardware](https://docs.px4.io/main/en/flight_controller/).
### Pixhawk Standard Boards
* FMUv6X and FMUv6U (STM32H7, 2021)
* Various vendors will provide FMUv6X and FMUv6U based designs Q3/2021
* FMUv5 and FMUv5X (STM32F7, 2019/20)
* [Pixhawk 4 (FMUv5)](https://docs.px4.io/master/en/flight_controller/pixhawk4.html)
* [Pixhawk 4 mini (FMUv5)](https://docs.px4.io/master/en/flight_controller/pixhawk4_mini.html)
* [CUAV V5+ (FMUv5)](https://docs.px4.io/master/en/flight_controller/cuav_v5_plus.html)
* [CUAV V5 nano (FMUv5)](https://docs.px4.io/master/en/flight_controller/cuav_v5_nano.html)
* [Auterion Skynode (FMUv5X)](https://docs.px4.io/master/en/flight_controller/auterion_skynode.html)
* FMUv4 (STM32F4, 2015)
* [Pixracer](https://docs.px4.io/master/en/flight_controller/pixracer.html)
* [Pixhawk 3 Pro](https://docs.px4.io/master/en/flight_controller/pixhawk3_pro.html)
* FMUv3 (STM32F4, 2014)
* [Pixhawk 2](https://docs.px4.io/master/en/flight_controller/pixhawk-2.html)
* [Pixhawk Mini](https://docs.px4.io/master/en/flight_controller/pixhawk_mini.html)
* [CUAV Pixhack v3](https://docs.px4.io/master/en/flight_controller/pixhack_v3.html)
* FMUv2 (STM32F4, 2013)
* [Pixhawk](https://docs.px4.io/master/en/flight_controller/pixhawk.html)
* [Pixfalcon](https://docs.px4.io/master/en/flight_controller/pixfalcon.html)
## Project Governance
### Manufacturer and Community supported
* [Holybro Durandal](https://docs.px4.io/master/en/flight_controller/durandal.html)
* [Hex Cube Orange](https://docs.px4.io/master/en/flight_controller/cubepilot_cube_orange.html)
* [Hex Cube Yellow](https://docs.px4.io/master/en/flight_controller/cubepilot_cube_yellow.html)
* [Airmind MindPX V2.8](http://www.mindpx.net/assets/accessories/UserGuide_MindPX.pdf)
* [Airmind MindRacer V1.2](http://mindpx.net/assets/accessories/mindracer_user_guide_v1.2.pdf)
* [Bitcraze Crazyflie 2.0](https://docs.px4.io/master/en/complete_vehicles/crazyflie2.html)
* [Omnibus F4 SD](https://docs.px4.io/master/en/flight_controller/omnibus_f4_sd.html)
* [Holybro Kakute F7](https://docs.px4.io/master/en/flight_controller/kakutef7.html)
* [Raspberry PI with Navio 2](https://docs.px4.io/master/en/flight_controller/raspberry_pi_navio2.html)
The PX4 Autopilot project including all of its trademarks is hosted under [Dronecode](https://www.dronecode.org/), part of the Linux Foundation.
Additional information about supported hardware can be found in [PX4 user Guide > Autopilot Hardware](https://docs.px4.io/master/en/flight_controller/).
## Project Roadmap
A high level project roadmap is available [here](https://github.com/orgs/PX4/projects/25).
<a href="https://www.dronecode.org/" style="padding:20px" ><img src="https://dronecode.org/wp-content/uploads/sites/24/2020/08/dronecode_logo_default-1.png" alt="Dronecode Logo" width="110px"/></a>
<div style="padding:10px">&nbsp;</div>
+100 -20
View File
@@ -85,10 +85,32 @@ endif()
if(PX4_ETHERNET)
set(added_arguments ${added_arguments} --ethernet)
endif()
# Check if board has an rc.board_airframes file to filter airframes
set(board_airframes_file "${PX4_BOARD_DIR}/init/rc.board_airframes")
set(airframes_whitelist "")
if(EXISTS "${board_airframes_file}")
message(STATUS "ROMFS: Using board-specific airframes list: ${board_airframes_file}")
file(STRINGS "${board_airframes_file}" airframes_whitelist)
# Remove comments and empty lines
list(FILTER airframes_whitelist EXCLUDE REGEX "^[ \t]*#")
list(FILTER airframes_whitelist EXCLUDE REGEX "^[ \t]*$")
endif()
# create list of relative romfs file names
set(romfs_copy_files_relative)
foreach(romfs_file IN LISTS romfs_copy_files)
string(REPLACE "${romfs_src_dir}/" "" romfs_file_rel ${romfs_file})
# If we have an airframes whitelist, filter airframe files
if(airframes_whitelist AND romfs_file_rel MATCHES "^init.d/airframes/")
# Extract just the filename
get_filename_component(airframe_name "${romfs_file_rel}" NAME)
# Check if it's in the whitelist
if(NOT "${airframe_name}" IN_LIST airframes_whitelist)
continue()
endif()
endif()
list(APPEND romfs_copy_files_relative ${romfs_file_rel})
endforeach()
# copy the ROMFS files by creating a tar and extracting it to the build
@@ -112,23 +134,18 @@ add_custom_command(
${PX4_SOURCE_DIR}/Tools/px4airframes/xmlout.py
${PX4_SOURCE_DIR}/Tools/serial/generate_config.py
)
set(romfs_extract_stamp ${CMAKE_CURRENT_BINARY_DIR}/romfs_extract.stamp)
add_custom_command(
OUTPUT ${romfs_extract_stamp}
COMMAND ${CMAKE_COMMAND} -E remove_directory ${romfs_gen_root_dir}/*
COMMAND ${CMAKE_COMMAND} -E tar xf ${romfs_tar_file}
COMMAND ${CMAKE_COMMAND} -E touch ${romfs_extract_stamp}
WORKING_DIRECTORY ${romfs_gen_root_dir}
DEPENDS ${romfs_tar_file}
VERBATIM
)
set(romfs_copy_stamp ${CMAKE_CURRENT_BINARY_DIR}/romfs_copy.stamp)
add_custom_command(
OUTPUT
${romfs_gen_root_dir}/init.d/rc.serial
${romfs_gen_root_dir}/init.d/rc.autostart
${romfs_gen_root_dir}/init.d/rc.autostart.post
romfs_copy.stamp
${romfs_gen_root_dir}/init.d/rc.filepaths
${romfs_copy_stamp}
COMMAND ${CMAKE_COMMAND} -E remove_directory ${romfs_gen_root_dir}/*
COMMAND ${CMAKE_COMMAND} -E tar xf ${romfs_tar_file}
COMMAND ${PYTHON_EXECUTABLE} ${PX4_SOURCE_DIR}/Tools/px_process_airframes.py
--airframes-path ${romfs_gen_root_dir}/init.d
--start-script ${romfs_gen_root_dir}/init.d/rc.autostart
@@ -137,17 +154,15 @@ add_custom_command(
--rc-dir ${romfs_gen_root_dir}/init.d
--serial-ports ${board_serial_ports} ${added_arguments}
--config-files ${module_config_files} #--verbose
COMMAND ${CMAKE_COMMAND} -E touch romfs_copy.stamp
DEPENDS
${romfs_extract_stamp}
COMMAND ${PYTHON_EXECUTABLE} ${PX4_SOURCE_DIR}/Tools/filepaths/generate_config.py
--rc-dir ${romfs_gen_root_dir}/init.d
--params-file ${CONFIG_BOARD_PARAM_FILE}
COMMAND ${CMAKE_COMMAND} -E touch ${romfs_copy_stamp}
WORKING_DIRECTORY ${romfs_gen_root_dir}
DEPENDS ${romfs_tar_file}
COMMENT "ROMFS: copying, generating airframes"
)
if(EXISTS ${PX4_BOARD_DIR}/extras/${PX4_BOARD_VENDOR}_${PX4_BOARD_MODEL}_bootloader.bin)
set(BOARD_FIRMWARE_BIN "${PX4_BOARD_VENDOR}_${PX4_BOARD_MODEL}_bootloader.bin")
configure_file(${PX4_SOURCE_DIR}/platforms/nuttx/init/rc.board_bootloader_upgrade.in ${romfs_gen_root_dir}/init.d/rc.board_bootloader_upgrade @ONLY)
endif()
# copy extras into ROMFS
set(extras_dependencies)
@@ -209,11 +224,75 @@ 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)
file(GLOB OPTIONAL_BOARD_EXTRAS ${PX4_BOARD_DIR}/extras/*)
# bootloader (optional)
# - if systemcmds/bl_update included and board bootloader available then generate rc.board_bootloader_upgrade and copy bootloader binary
# - otherwise remove bootloader binary from extras in final ROMFS
foreach(board_extra_file ${OPTIONAL_BOARD_EXTRAS})
file(RELATIVE_PATH extra_file_base_name ${PX4_BOARD_DIR}/extras/ ${board_extra_file})
if(${extra_file_base_name} MATCHES "${PX4_BOARD_VENDOR}_${PX4_BOARD_MODEL}_bootloader.bin")
if(CONFIG_SYSTEMCMDS_BL_UPDATE)
# generate rc.board_bootloader_upgrade
set(BOARD_FIRMWARE_BIN "${PX4_BOARD_VENDOR}_${PX4_BOARD_MODEL}_bootloader.bin")
message(STATUS "ROMFS: Adding platforms/nuttx/init/rc.board_bootloader_upgrade -> /etc/init.d/rc.board_bootloader_upgrade")
# Generate the file using configure_file at configure time to a temporary location
set(bootloader_upgrade_tmp ${CMAKE_CURRENT_BINARY_DIR}/rc.board_bootloader_upgrade.tmp)
configure_file(${PX4_SOURCE_DIR}/platforms/nuttx/init/rc.board_bootloader_upgrade.in ${bootloader_upgrade_tmp} @ONLY)
# Then copy it at build time with proper dependencies
add_custom_command(
OUTPUT
${romfs_gen_root_dir}/init.d/rc.board_bootloader_upgrade
rc.board_bootloader_upgrade.stamp
COMMAND ${CMAKE_COMMAND} -E copy_if_different ${bootloader_upgrade_tmp} ${romfs_gen_root_dir}/init.d/rc.board_bootloader_upgrade
COMMAND ${CMAKE_COMMAND} -E touch rc.board_bootloader_upgrade.stamp
DEPENDS
${bootloader_upgrade_tmp}
${PX4_SOURCE_DIR}/platforms/nuttx/init/rc.board_bootloader_upgrade.in
romfs_copy.stamp
COMMENT "ROMFS: copying rc.board_bootloader_upgrade"
)
list(APPEND extras_dependencies
rc.board_bootloader_upgrade.stamp
)
else()
# remove bootloader from extras
list(REMOVE_ITEM OPTIONAL_BOARD_EXTRAS ${board_extra_file})
endif()
endif()
endforeach()
foreach(board_extra_file ${OPTIONAL_BOARD_EXTRAS})
if(EXISTS "${board_extra_file}")
@@ -311,8 +390,9 @@ add_custom_command(OUTPUT romfs_extras.stamp
add_custom_target(romfs_gen_files_target
DEPENDS
${romfs_extract_stamp}
${romfs_copy_stamp}
${romfs_gen_root_dir}/init.d/rc.serial
${romfs_gen_root_dir}/init.d/rc.filepaths
romfs_extras.stamp
)
+34 -11
View File
@@ -21,20 +21,14 @@ set R /
#
ver all
if mft query -q -k MTD -s MTD_PARAMETERS -v /fs/mtd_params
then
set PARAM_FILE /fs/mtd_params
fi
if mft query -q -k MTD -s MTD_PARAMETERS -v /dev/eeeprom0
then
set PARAM_FILE /dev/eeeprom0
fi
# Load param file location from kconfig
. ${R}etc/init.d/rc.filepaths
#
# Load parameters.
#
param select $PARAM_FILE
if ! param load
then
param reset_all
@@ -62,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.
#
@@ -86,10 +91,28 @@ unset BOARD_RC_SENSORS
. ${R}etc/init.d/rc.serial
# Check for flow sensor
if param compare SENS_EN_PX4FLOW 1
if param compare -s SENS_EN_PX4FLOW 1
then
px4flow start -X
px4flow start -X &
fi
if param compare -s IMU_GYRO_CAL_EN 1
then
gyro_calibration start
fi
if param compare -s MBE_ENABLE 1
then
# conservative mag bias estimation
param set-default MBE_LEARN_GAIN 5
param set-default IMU_GYRO_CUTOFF 20
mag_bias_estimator start
fi
param set-default SENS_MAG_RATE 100
sensors start
uavcannode start
unset R
+34
View File
@@ -0,0 +1,34 @@
############################################################################
#
# Copyright (c) 2025 PX4 Development Team. All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions
# are met:
#
# 1. Redistributions of source code must retain the above copyright
# notice, this list of conditions and the following disclaimer.
# 2. Redistributions in binary form must reproduce the above copyright
# notice, this list of conditions and the following disclaimer in
# the documentation and/or other materials provided with the
# distribution.
# 3. Neither the name PX4 nor the names of its contributors may be
# used to endorse or promote products derived from this software
# without specific prior written permission.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
# FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
# COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
# BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
# OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
# AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
# ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
# POSSIBILITY OF SUCH DAMAGE.
#
############################################################################
add_subdirectory(init.d)
@@ -0,0 +1,36 @@
############################################################################
#
# Copyright (c) 2025 PX4 Development Team. All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions
# are met:
#
# 1. Redistributions of source code must retain the above copyright
# notice, this list of conditions and the following disclaimer.
# 2. Redistributions in binary form must reproduce the above copyright
# notice, this list of conditions and the following disclaimer in
# the documentation and/or other materials provided with the
# distribution.
# 3. Neither the name PX4 nor the names of its contributors may be
# used to endorse or promote products derived from this software
# without specific prior written permission.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
# FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
# COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
# BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
# OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
# AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
# ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
# POSSIBILITY OF SUCH DAMAGE.
#
############################################################################
px4_add_romfs_files(
rcS
)
+68
View File
@@ -0,0 +1,68 @@
#!/bin/sh
# Un comment and use set +e to ignore and set -e to enable 'exit on error control'
set +e
# Un comment the line below to help debug scripts by printing a trace of the script commands
#set -x
# PX4FMU startup script.
#
# NOTE: environment variable references:
# If the dollar sign ('$') is followed by a left bracket ('{') then the
# variable name is terminated with the right bracket character ('}').
# Otherwise, the variable name goes to the end of the argument.
#
#
# NOTE: COMMENT LINES ARE REMOVED BEFORE STORED IN ROMFS.
#
#------------------------------------------------------------------------------
set R /
#
# Print full system version.
#
ver all
#
# Set the parameter file the board supports params on
# MTD device.
#
if mft query -q -k MTD -s MTD_PARAMETERS -v /fs/mtd_params
then
set PARAM_FILE /fs/mtd_params
fi
#
# Load parameters.
#
# if the board has a storage for (factory) calibration data
if mft query -q -k MTD -s MTD_CALDATA -v /fs/mtd_caldata
then
param load /fs/mtd_caldata
fi
#
# Load parameters.
#
param select $PARAM_FILE
if ! param load
then
param reset_all
fi
#
# Try to mount the microSD card.
#
mount -t vfat /dev/mmcsd0 /fs/microsd
if [ $? = 0 ]
then
echo "SD card mounted at /fs/microsd"
else
echo "No SD card found"
fi
unset R
echo ""
echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
echo "!!!!!! This is the PERFORMANCE TESTING firmware! WARNs and ERRORs are expected! !!!!!"
echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
echo ""
-2
View File
@@ -32,9 +32,7 @@
############################################################################
add_subdirectory(init.d)
add_subdirectory(mixers)
# TODO: make this configurable from the board config, or better combine
if("${PX4_BOARD}" MATCHES "sitl")
add_subdirectory(mixers-sitl)
add_subdirectory(init.d-posix)
endif()
@@ -35,9 +35,11 @@ add_subdirectory(airframes)
px4_add_romfs_files(
px4-rc.mavlink
px4-rc.params
px4-rc.rtps
px4-rc.simulator
px4-rc.gzsim
px4-rc.jmavsim
px4-rc.mavlinksim
px4-rc.sihsim
rc.replay
rcS
)
@@ -0,0 +1,32 @@
#!/bin/sh
#
# @name 3DR Iris Quadrotor SITL
#
# @type Quadrotor Wide
#
# @maintainer Julian Oes <julian@oes.ch>
#
. ${R}etc/init.d/rc.mc_defaults
param set-default CA_AIRFRAME 0
param set-default CA_ROTOR_COUNT 4
param set-default CA_ROTOR0_PX 0.1515
param set-default CA_ROTOR0_PY 0.245
param set-default CA_ROTOR0_KM 0.05
param set-default CA_ROTOR1_PX -0.1515
param set-default CA_ROTOR1_PY -0.1875
param set-default CA_ROTOR1_KM 0.05
param set-default CA_ROTOR2_PX 0.1515
param set-default CA_ROTOR2_PY -0.245
param set-default CA_ROTOR2_KM -0.05
param set-default CA_ROTOR3_PX -0.1515
param set-default CA_ROTOR3_PY 0.1875
param set-default CA_ROTOR3_KM -0.05
param set-default PWM_MAIN_FUNC1 101
param set-default PWM_MAIN_FUNC2 102
param set-default PWM_MAIN_FUNC3 103
param set-default PWM_MAIN_FUNC4 104
@@ -1,12 +0,0 @@
#!/bin/sh
#
# @name 3DR Iris Quadrotor SITL
#
# @type Quadrotor Wide
#
# @maintainer Julian Oes <julian@oes.ch>
#
. ${R}etc/init.d/rc.mc_defaults
set MIXER quad_w
@@ -0,0 +1,30 @@
#!/bin/sh
#
# @name Generic Iris Quadrotor SITL
#
# @type Quadrotor Wide
#
. ${R}etc/init.d/rc.mc_defaults
param set-default CA_AIRFRAME 0
param set-default CA_ROTOR_COUNT 4
param set-default CA_ROTOR0_PX 0.1515
param set-default CA_ROTOR0_PY 0.245
param set-default CA_ROTOR0_KM 0.05
param set-default CA_ROTOR1_PX -0.1515
param set-default CA_ROTOR1_PY -0.1875
param set-default CA_ROTOR1_KM 0.05
param set-default CA_ROTOR2_PX 0.1515
param set-default CA_ROTOR2_PY -0.245
param set-default CA_ROTOR2_KM -0.05
param set-default CA_ROTOR3_PX -0.1515
param set-default CA_ROTOR3_PY 0.1875
param set-default CA_ROTOR3_KM -0.05
param set-default PWM_MAIN_FUNC1 101
param set-default PWM_MAIN_FUNC2 102
param set-default PWM_MAIN_FUNC3 103
param set-default PWM_MAIN_FUNC4 104
@@ -1,37 +0,0 @@
#!/bin/sh
#
# @name 3DR Iris Quadrotor SITL
#
# @type Quadrotor Wide
#
# @maintainer Julian Oes <julian@oes.ch>
#
. ${R}etc/init.d/rc.mc_defaults
param set-default SYS_CTRL_ALLOC 1
param set-default CA_AIRFRAME 0
param set-default CA_MC_R_COUNT 4
param set-default CA_MC_R0_PX 0.1515
param set-default CA_MC_R0_PY 0.245
param set-default CA_MC_R0_KM 0.05
param set-default CA_MC_R1_PX -0.1515
param set-default CA_MC_R1_PY -0.1875
param set-default CA_MC_R1_KM 0.05
param set-default CA_MC_R2_PX 0.1515
param set-default CA_MC_R2_PY -0.245
param set-default CA_MC_R2_KM -0.05
param set-default CA_MC_R3_PX -0.1515
param set-default CA_MC_R3_PY 0.1875
param set-default CA_MC_R3_KM -0.05
param set-default PWM_MAIN_FUNC1 101
param set-default PWM_MAIN_FUNC2 102
param set-default PWM_MAIN_FUNC3 103
param set-default PWM_MAIN_FUNC4 104
set MIXER skip
set MIXER_AUX none
@@ -0,0 +1,31 @@
#!/bin/sh
#
# @name 3DR Iris Quadrotor SITL jMAVSim
#
# @type Quadrotor Wide
#
# @maintainer Julian Oes <julian@oes.ch>
#
. ${R}etc/init.d/rc.mc_defaults
param set-default CA_AIRFRAME 0
param set-default CA_ROTOR_COUNT 4
param set-default CA_ROTOR0_PX 0.1515
param set-default CA_ROTOR0_PY 0.245
param set-default CA_ROTOR0_KM 0.05
param set-default CA_ROTOR1_PX -0.1515
param set-default CA_ROTOR1_PY -0.1875
param set-default CA_ROTOR1_KM 0.05
param set-default CA_ROTOR2_PX 0.1515
param set-default CA_ROTOR2_PY -0.245
param set-default CA_ROTOR2_KM -0.05
param set-default CA_ROTOR3_PX -0.1515
param set-default CA_ROTOR3_PY 0.1875
param set-default CA_ROTOR3_KM -0.05
param set-default PWM_MAIN_FUNC1 101
param set-default PWM_MAIN_FUNC2 102
param set-default PWM_MAIN_FUNC3 103
param set-default PWM_MAIN_FUNC4 104
@@ -0,0 +1,32 @@
#!/bin/sh
#
# @name 3DR Iris Quadrotor SITL (foggy_lidar)
#
# @type Quadrotor Wide
#
. ${R}etc/init.d/rc.mc_defaults
param set-default CA_AIRFRAME 0
param set-default CA_ROTOR_COUNT 4
param set-default CA_ROTOR0_PX 0.1515
param set-default CA_ROTOR0_PY 0.245
param set-default CA_ROTOR0_KM 0.05
param set-default CA_ROTOR1_PX -0.1515
param set-default CA_ROTOR1_PY -0.1875
param set-default CA_ROTOR1_KM 0.05
param set-default CA_ROTOR2_PX 0.1515
param set-default CA_ROTOR2_PY -0.245
param set-default CA_ROTOR2_KM -0.05
param set-default CA_ROTOR3_PX -0.1515
param set-default CA_ROTOR3_PY 0.1875
param set-default CA_ROTOR3_KM -0.05
param set-default PWM_MAIN_FUNC1 101
param set-default PWM_MAIN_FUNC2 102
param set-default PWM_MAIN_FUNC3 103
param set-default PWM_MAIN_FUNC4 104
param set-default EKF2_RNG_A_HMAX 10
@@ -1,11 +0,0 @@
#!/bin/sh
#
# @name 3DR Iris Quadrotor SITL (foggy_lidar)
#
# @type Quadrotor Wide
#
. ${R}etc/init.d-posix/airframes/10016_iris
param set-default EKF2_RNG_A_HMAX 10
@@ -0,0 +1,96 @@
#!/bin/sh
#
# @name 6DoF Omnicopter SITL
#
# @type Quadrotor Wide
#
# @maintainer Jaeyoung Lim <jalim@ethz.ch>
#
. ${R}etc/init.d/rc.mc_defaults
param set-default CA_AIRFRAME 0
param set-default CA_ROTOR_COUNT 8
param set-default CA_R_REV 255
param set-default CA_ROTOR0_PX 0.14435
param set-default CA_ROTOR0_PY -0.14435
param set-default CA_ROTOR0_PZ -0.14435
param set-default CA_ROTOR0_KM 0.05 # CCW
param set-default CA_ROTOR0_AX -0.788675
param set-default CA_ROTOR0_AY -0.211325
param set-default CA_ROTOR0_AZ -0.57735
param set-default CA_ROTOR1_PX -0.14435
param set-default CA_ROTOR1_PY -0.14435
param set-default CA_ROTOR1_PZ -0.14435
param set-default CA_ROTOR1_KM 0.05
param set-default CA_ROTOR1_AX 0.211325
param set-default CA_ROTOR1_AY -0.788675
param set-default CA_ROTOR1_AZ 0.57735
param set-default CA_ROTOR2_PX 0.14435
param set-default CA_ROTOR2_PY 0.14435
param set-default CA_ROTOR2_PZ -0.14435
param set-default CA_ROTOR2_KM 0.05
param set-default CA_ROTOR2_AX -0.211325
param set-default CA_ROTOR2_AY 0.788675
param set-default CA_ROTOR2_AZ 0.57735
param set-default CA_ROTOR3_PX -0.14435
param set-default CA_ROTOR3_PY 0.14435
param set-default CA_ROTOR3_PZ -0.14435
param set-default CA_ROTOR3_KM 0.05
param set-default CA_ROTOR3_AX 0.788675
param set-default CA_ROTOR3_AY 0.211325
param set-default CA_ROTOR3_AZ -0.57735
param set-default CA_ROTOR4_PX 0.14435
param set-default CA_ROTOR4_PY -0.14435
param set-default CA_ROTOR4_PZ 0.14435
param set-default CA_ROTOR4_KM 0.05
param set-default CA_ROTOR4_AX 0.788675
param set-default CA_ROTOR4_AY 0.211325
param set-default CA_ROTOR4_AZ -0.57735
param set-default CA_ROTOR5_PX -0.14435
param set-default CA_ROTOR5_PY -0.14435
param set-default CA_ROTOR5_PZ 0.14435
param set-default CA_ROTOR5_KM 0.05
param set-default CA_ROTOR5_AX -0.211325
param set-default CA_ROTOR5_AY 0.788675
param set-default CA_ROTOR5_AZ 0.57735
param set-default CA_ROTOR6_PX 0.14435
param set-default CA_ROTOR6_PY 0.14435
param set-default CA_ROTOR6_PZ 0.14435
param set-default CA_ROTOR6_KM 0.05
param set-default CA_ROTOR6_AX 0.211325
param set-default CA_ROTOR6_AY -0.788675
param set-default CA_ROTOR6_AZ 0.57735
param set-default CA_ROTOR7_PX -0.14435
param set-default CA_ROTOR7_PY 0.14435
param set-default CA_ROTOR7_PZ 0.14435
param set-default CA_ROTOR7_KM 0.05
param set-default CA_ROTOR7_AX -0.788675
param set-default CA_ROTOR7_AY -0.211325
param set-default CA_ROTOR7_AZ -0.57735
param set-default PWM_MAIN_FUNC1 101
param set-default PWM_MAIN_FUNC2 102
param set-default PWM_MAIN_FUNC3 103
param set-default PWM_MAIN_FUNC4 104
param set-default PWM_MAIN_FUNC5 105
param set-default PWM_MAIN_FUNC6 106
param set-default PWM_MAIN_FUNC7 107
param set-default PWM_MAIN_FUNC8 108
# disable MC desaturation which improves attitude tracking
param set-default CA_METHOD 0
# disable attitude failure detection
param set-default FD_FAIL_P 0
param set-default FD_FAIL_R 0
@@ -1,19 +0,0 @@
#!/bin/sh
#
# @name IF750A SITL
# InspiredFlight 750 Auterion edition. Gazebo Only.
#
# @type Quadrotor
#
. ${R}etc/init.d/rc.mc_defaults
# EKF2: Multi GPS blending (as the model has 2 GPS's)
param set-default SENS_GPS_MASK 7
param set-default TRIG_INTERFACE 3
param set-default TRIG_MODE 4
param set-default MNT_MODE_IN 4
param set-default MNT_MODE_OUT 2
param set-default MNT_DO_STAB 2
set MIXER quad_x
@@ -0,0 +1,14 @@
#!/bin/sh
#
# @name PX4Vision SITL
# Holybro px4vision. Gazebo Only.
#
# @type Quadrotor
#
. ${R}etc/init.d/airframes/4016_holybro_px4vision
param set-default PWM_MAIN_FUNC1 101
param set-default PWM_MAIN_FUNC2 102
param set-default PWM_MAIN_FUNC3 103
param set-default PWM_MAIN_FUNC4 104
@@ -1,11 +0,0 @@
#!/bin/sh
#
# @name PX4Vision SITL
# Holybro px4vision. Gazebo Only.
#
# @type Quadrotor
#
. ${R}etc/init.d/airframes/4016_holybro_px4vision
set MIXER quad_x
@@ -0,0 +1,39 @@
#!/bin/sh
#
# @name QuadrotorX SITL for SIH
#
# @type Quadrotor
#
# @maintainer Romain Chiappinelli <romain.chiap@gmail.com>
#
. ${R}etc/init.d/rc.mc_defaults
PX4_SIMULATOR=${PX4_SIMULATOR:=sihsim}
PX4_SIM_MODEL=${PX4_SIM_MODEL:=quadx}
param set-default SENS_EN_GPSSIM 1
param set-default SENS_EN_BAROSIM 1
param set-default SENS_EN_MAGSIM 1
# Square quadrotor X PX4 numbering
param set-default CA_ROTOR_COUNT 4
param set-default CA_ROTOR0_PX 1
param set-default CA_ROTOR0_PY 1
param set-default CA_ROTOR1_PX -1
param set-default CA_ROTOR1_PY -1
param set-default CA_ROTOR2_PX 1
param set-default CA_ROTOR2_PY -1
param set-default CA_ROTOR2_KM -0.05
param set-default CA_ROTOR3_PX -1
param set-default CA_ROTOR3_PY 1
param set-default CA_ROTOR3_KM -0.05
param set-default PWM_MAIN_FUNC1 101
param set-default PWM_MAIN_FUNC2 102
param set-default PWM_MAIN_FUNC3 103
param set-default PWM_MAIN_FUNC4 104
param set-default EKF2_GPS_DELAY 0
param set SIH_VEHICLE_TYPE 0
@@ -0,0 +1,67 @@
#!/bin/sh
#
# @name Plane SITL for SIH
#
# @type Plane
#
# @maintainer Romain Chiappinelli <romain.chiap@gmail.com>
. ${R}etc/init.d/rc.fw_defaults
PX4_SIMULATOR=${PX4_SIMULATOR:=sihsim}
PX4_SIM_MODEL=${PX4_SIM_MODEL:=airplane}
param set-default SENS_EN_GPSSIM 1
param set-default SENS_EN_BAROSIM 1
param set-default SENS_EN_MAGSIM 1
param set-default SENS_EN_ARSPDSIM 1
param set-default SIH_T_MAX 6
param set-default SIH_MASS 0.3
param set-default SIH_IXX 0.00402
param set-default SIH_IYY 0.0144
param set-default SIH_IZZ 0.0177
param set-default SIH_IXZ 0.00046
param set-default SIH_KDV 0.2
param set-default SIH_VEHICLE_TYPE 1 # sih as fixed wing
param set-default RWTO_TKOFF 1 # enable takeoff from runway (as opposed to launched)
param set-default CA_AIRFRAME 1
param set-default CA_ROTOR_COUNT 1
param set-default CA_ROTOR0_PX 0.3
# SIH for now hardcodes this configuration which we need to match in the airframe files.
param set-default CA_SV_CS_COUNT 3
param set-default CA_SV_CS0_TRQ_R 1
param set-default CA_SV_CS0_TYPE 15 # single channel aileron
param set-default CA_SV_CS1_TRQ_P 1
param set-default CA_SV_CS1_TYPE 3 # elevator
param set-default CA_SV_CS2_TRQ_Y 1
param set-default CA_SV_CS2_TYPE 4 # rudder
param set-default PWM_MAIN_FUNC1 201
param set-default PWM_MAIN_FUNC2 202
param set-default PWM_MAIN_FUNC3 203
param set-default PWM_MAIN_FUNC4 101
param set-default EKF2_GPS_DELAY 0
# Rate controllers
param set-default FW_RR_P 0.0500
param set-default FW_RR_I 2.0000
param set-default FW_RR_D 0.0000
param set-default FW_RR_FF 0.0000
param set-default FW_RR_IMAX 1.0000
param set-default FW_PR_P 0.0800
param set-default FW_PR_I 2.5000
param set-default FW_PR_D 0.0000
param set-default FW_PR_FF 0.0000
param set-default FW_PR_IMAX 1.0000
param set-default FW_YR_P 0.0500
param set-default FW_YR_I 3.0000
param set-default FW_YR_D 0.0000
param set-default FW_YR_FF 0.0000
param set-default FW_YR_IMAX 1.0000
@@ -0,0 +1,66 @@
#!/bin/sh
#
# @name SIH Tailsitter Duo
#
# @type VTOL
#
# @maintainer Romain Chiappinelli <romain.chiap@gmail.com>
. ${R}etc/init.d/rc.vtol_defaults
PX4_SIMULATOR=${PX4_SIMULATOR:=sihsim}
PX4_SIM_MODEL=${PX4_SIM_MODEL:=xvert}
param set-default EKF2_GPS_DELAY 0
param set-default EKF2_FUSE_BETA 0 # side slip fusion is currently not supported for tailsitters
param set-default SENS_EN_GPSSIM 1
param set-default SENS_EN_BAROSIM 1
param set-default SENS_EN_MAGSIM 1
param set-default VT_B_TRANS_DUR 5
param set-default VT_ELEV_MC_LOCK 0
param set-default VT_TYPE 0
param set-default VT_FW_DIFTHR_EN 1
param set-default VT_FW_DIFTHR_S_Y 0.3
param set-default MPC_MAN_Y_MAX 60
param set-default MC_PITCH_P 5
param set-default MAV_TYPE 19
param set-default SIH_T_MAX 2
param set-default SIH_Q_MAX 0.0165
param set-default SIH_MASS 0.2
# IXX and IZZ are inverted from the thesis as the body frame is pitched by 90 deg
param set-default SIH_IXX 0.00354
param set-default SIH_IYY 0.000625
param set-default SIH_IZZ 0.00300
param set-default SIH_IXZ 0
param set-default SIH_KDV 0.2
param set-default SIH_L_ROLL 0.145
# sih as tailsitter
param set-default SIH_VEHICLE_TYPE 2
param set-default CA_AIRFRAME 4
param set-default CA_ROTOR_COUNT 2
param set-default CA_ROTOR0_PX 0
param set-default CA_ROTOR0_PY 1
param set-default CA_ROTOR0_KM 0.05
param set-default CA_ROTOR1_PX 0
param set-default CA_ROTOR1_PY -1
param set-default CA_ROTOR1_KM 0.05
param set-default CA_SV_CS_COUNT 2
param set-default CA_SV_CS0_TYPE 5
param set-default CA_SV_CS0_TRQ_P 0.5
param set-default CA_SV_CS0_TRQ_Y -0.5
param set-default CA_SV_CS1_TYPE 6
param set-default CA_SV_CS1_TRQ_P 0.5
param set-default CA_SV_CS1_TRQ_Y 0.5
param set-default PWM_MAIN_FUNC1 101
param set-default PWM_MAIN_FUNC2 102
param set-default PWM_MAIN_FUNC5 201
param set-default PWM_MAIN_FUNC6 202
@@ -0,0 +1,96 @@
#!/bin/sh
#
# @name SIH Standard VTOL
#
# @type Simulation
# @class VTOL
#
# @output Motor1 MC motor front right
# @output Motor2 MC motor back left
# @output Motor3 MC motor front left
# @output Motor4 MC motor back right
# @output Motor5 Forward thrust motor
# @output Servo1 Ailerons (single channel)
# @output Servo2 Elevator
# @output Servo3 Rudder
#
# @board px4_fmu-v2 exclude
#
. ${R}etc/init.d/rc.vtol_defaults
PX4_SIMULATOR=${PX4_SIMULATOR:=sihsim}
PX4_SIM_MODEL=${PX4_SIM_MODEL:=standard_vtol}
param set-default SENS_EN_GPSSIM 1
param set-default SENS_EN_BAROSIM 1
param set-default SENS_EN_MAGSIM 1
param set-default SENS_EN_ARSPDSIM 1
param set-default EKF2_GPS_DELAY 0
param set-default VT_TYPE 2
param set-default MPC_MAN_Y_MAX 60
param set-default MC_PITCH_P 5
param set-default CA_AIRFRAME 2
param set-default CA_ROTOR_COUNT 5
param set-default CA_ROTOR0_KM 0.05
param set-default CA_ROTOR0_PX 0.2
param set-default CA_ROTOR0_PY 0.2
param set-default CA_ROTOR1_KM 0.05
param set-default CA_ROTOR1_PX -0.2
param set-default CA_ROTOR1_PY -0.2
param set-default CA_ROTOR2_PX 0.2
param set-default CA_ROTOR2_PY -0.2
param set-default CA_ROTOR2_KM -0.05
param set-default CA_ROTOR3_PX -0.2
param set-default CA_ROTOR3_PY 0.2
param set-default CA_ROTOR3_KM -0.05
param set-default CA_ROTOR4_PX -0.3
param set-default CA_ROTOR4_KM 0.05
param set-default CA_ROTOR4_AX 1
param set-default CA_ROTOR4_AZ 0
# SIH for now hardcodes this configuration which we need to match in the airframe files.
param set-default CA_SV_CS_COUNT 3
param set-default CA_SV_CS0_TRQ_R 1
param set-default CA_SV_CS0_TYPE 15 # single channel aileron
param set-default CA_SV_CS1_TRQ_P 1
param set-default CA_SV_CS1_TYPE 3 # elevator
param set-default CA_SV_CS2_TRQ_Y 1
param set-default CA_SV_CS2_TYPE 4 # rudder
param set-default FW_AIRSPD_MIN 7
param set-default FW_AIRSPD_TRIM 10
param set-default FW_AIRSPD_MAX 12
param set-default PWM_MAIN_FUNC1 101
param set-default PWM_MAIN_FUNC2 102
param set-default PWM_MAIN_FUNC3 103
param set-default PWM_MAIN_FUNC4 104
param set-default PWM_MAIN_FUNC5 201
param set-default PWM_MAIN_FUNC6 202
param set-default PWM_MAIN_FUNC7 203
param set-default PWM_MAIN_FUNC8 105
param set-default MAV_TYPE 22
# set SYS_HITL to 2 to start the SIH and avoid sensors startup
# param set-default SYS_HITL 2
param set-default SENS_DPRES_OFF 0.001
param set SIH_T_MAX 2.0
param set SIH_Q_MAX 0.0165
param set SIH_MASS 0.2
# IXX and IZZ are inverted from the thesis as the body frame is pitched by 90 deg
param set SIH_IXX 0.00354
param set SIH_IYY 0.000625
param set SIH_IZZ 0.00300
param set SIH_IXZ 0
param set SIH_KDV 0.2
param set SIH_L_ROLL 0.2
# sih as standard vtol
param set SIH_VEHICLE_TYPE 3
@@ -0,0 +1,47 @@
#!/bin/sh
#
# @name HexarotorX SITL for SIH
#
# @type Hexarotor x
# @class Copter
#
# @maintainer Matthias Grob <maetugr@gmail.com>
#
. ${R}etc/init.d/rc.mc_defaults
PX4_SIMULATOR=${PX4_SIMULATOR:=sihsim}
PX4_SIM_MODEL=${PX4_SIM_MODEL:=hex}
param set-default SENS_EN_GPSSIM 1
param set-default SENS_EN_BAROSIM 1
param set-default SENS_EN_MAGSIM 1
param set SIH_VEHICLE_TYPE 4
# Symmetric hexacopter X clockwise motor numbering
param set-default CA_ROTOR_COUNT 6
param set-default CA_ROTOR0_PX 0.866
param set-default CA_ROTOR0_PY 0.5
param set-default CA_ROTOR1_PX 0
param set-default CA_ROTOR1_PY 1
param set-default CA_ROTOR1_KM -0.05
param set-default CA_ROTOR2_PX -0.866
param set-default CA_ROTOR2_PY 0.5
param set-default CA_ROTOR3_PX -0.866
param set-default CA_ROTOR3_PY -0.5
param set-default CA_ROTOR3_KM -0.05
param set-default CA_ROTOR4_PX 0
param set-default CA_ROTOR4_PY -1
param set-default CA_ROTOR5_PX 0.866
param set-default CA_ROTOR5_PY -0.5
param set-default CA_ROTOR5_KM -0.05
param set-default PWM_MAIN_FUNC1 101
param set-default PWM_MAIN_FUNC2 102
param set-default PWM_MAIN_FUNC3 103
param set-default PWM_MAIN_FUNC4 104
param set-default PWM_MAIN_FUNC5 105
param set-default PWM_MAIN_FUNC6 106
param set-default EKF2_GPS_DELAY 0
@@ -0,0 +1,72 @@
#!/bin/sh
# @name Rover Ackermann
# @type Rover
# @class Rover
. ${R}etc/init.d/rc.rover_ackermann_defaults
set VEHICLE_TYPE rover_ackermann
param set-default CA_AIRFRAME 5 # Rover (Ackermann)
param set-default CA_R_REV 1 # Motor is assumed to be reversible
param set-default EKF2_MAG_TYPE 1 # Make sure magnetometer is fused even when not driving
param set-default NAV_ACC_RAD 0.5 # Waypoint acceptance radius
param set-default EKF2_GBIAS_INIT 0.01
param set-default EKF2_ANGERR_INIT 0.01
PX4_SIMULATOR=${PX4_SIMULATOR:=sihsim}
PX4_SIM_MODEL=${PX4_SIM_MODEL:=rover_ackermann}
param set-default SIH_VEHICLE_TYPE 5 # sih as rover ackermann
param set-default PWM_MAIN_FUNC1 201 # Steering
param set-default PWM_MAIN_FUNC2 101 # Throttle
param set-default SIH_MASS 20
param set-default SIH_IXX 0.4333
param set-default SIH_IYY 1.6833
param set-default SIH_IZZ 2.0833
param set-default SIH_IXZ 0
param set-default SIH_KDV 50
param set-default SIH_KDW 10
param set-default SENS_EN_GPSSIM 1
param set-default SENS_EN_BAROSIM 1
param set-default SENS_EN_MAGSIM 1
# Ackermann Parameters
param set-default RA_WHEEL_BASE 0.321
param set-default RA_ACC_RAD_GAIN 2
param set-default RA_ACC_RAD_MAX 3
param set-default RA_MAX_STR_ANG 0.5236
param set-default RA_STR_RATE_LIM 360
# Rate Control Parameters
param set-default RO_YAW_RATE_I 0.01
param set-default RO_YAW_RATE_P 0.25
param set-default RO_YAW_RATE_LIM 180
param set-default RO_YAW_ACCEL_LIM 400
param set-default RO_YAW_DECEL_LIM 800
param set-default RO_YAW_RATE_CORR 1
# Attitude Control Parameters
param set-default RO_YAW_P 5
# Velocity Control Parameters
param set-default RO_ACCEL_LIM 3
param set-default RO_DECEL_LIM 3
param set-default RO_JERK_LIM 10
param set-default RO_MAX_THR_SPEED 3.2
param set-default RO_SPEED_LIM 3
param set-default RO_SPEED_I 0.001
param set-default RO_SPEED_P 0.001
param set-default RO_SPEED_RED 1
# Pure Pursuit parameters
param set-default PP_LOOKAHD_GAIN 1
param set-default PP_LOOKAHD_MAX 10
param set-default PP_LOOKAHD_MIN 1
# Pure Pursuit parameters
param set-default PP_LOOKAHD_GAIN 1
param set-default PP_LOOKAHD_MAX 10
param set-default PP_LOOKAHD_MIN 1

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