Compare commits

..

2959 Commits

Author SHA1 Message Date
Ramon Roche c5f2a32c96 ci: build each platform on its own arch 2025-02-27 08:48:02 -08:00
Ramon Roche fd06661da9 ci: test container build push 2025-02-27 07:41:13 -08:00
Ramon Roche b786006443 ci: only build amd64 for tests
avoids docker engine error when trying to export manifest lists
2025-02-26 20:48:39 -08:00
Ramon Roche 379bb181f2 ci: multi platform container build
saves cache to s3 and defaults to gh public cache
2025-02-26 20:39:56 -08:00
Ramon Roche c942530825 ci: only push containers on tag events 2025-02-26 19:29:52 -08:00
Ramon Roche b5993c4ec0 setup: install all compilers for arch
plus better output formatting
2025-02-26 19:27:39 -08:00
Ramon Roche cdaaf81354 ci: build containers on releases only 2025-02-25 21:21:59 -08:00
Ramon Roche d60d760eb4 ci: build targets using px4-dev container 2025-02-25 21:21:59 -08: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
Alessandro Simovic 9a0fd624c4 update pyuavcan to latest 2022-09-07 13:11:38 +12:00
Andrew Tridgell d440691406 update README for DroneCAN 2022-02-09 11:31:03 +11: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 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
2469 changed files with 135745 additions and 26865 deletions
-222
View File
@@ -1,222 +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:2023-06-26",
arm64: "px4io/px4-dev-aarch64:2022-08-12",
base: "px4io/px4-dev-ros2-foxy:2022-08-12",
nuttx: "px4io/px4-dev-nuttx-focal:2022-08-12",
]
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_default"],
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",
"ark_cannode_canbootloader",
"ark_cannode_default",
"ark_fmu-v6x_bootloader",
"ark_fmu-v6x_default",
"ark_pi6x_bootloader",
"ark_pi6x_default",
"atl_mantis-edu_default",
"av_x-v1_default",
"bitcraze_crazyflie21_default",
"bitcraze_crazyflie_default",
"cuav_can-gps-v1_canbootloader",
"cuav_can-gps-v1_default",
"cuav_nora_default",
"cuav_x7pro_default",
"cubepilot_cubeorange_default",
"cubepilot_cubeorangeplus_default",
"cubepilot_cubeyellow_default",
"diatone_mamba-f405-mk2_default",
"flywoo_gn-f405_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_kakuteh7_default",
"holybro_kakuteh7mini_default",
"holybro_kakuteh7v2_default",
"holybro_pix32v5_default",
"matek_gnss-m9n-f4_canbootloader",
"matek_gnss-m9n-f4_default",
"matek_h743-mini_default",
"matek_h743-slim_default",
"matek_h743_default",
"modalai_fc-v1_default",
"modalai_fc-v2_default",
"mro_ctrl-zero-classic_default",
"mro_ctrl-zero-f7-oem_default",
"mro_ctrl-zero-f7_default",
"mro_ctrl-zero-h7-oem_default",
"mro_ctrl-zero-h7_default",
"mro_pixracerpro_default",
"mro_x21-777_default",
"mro_x21_default",
"nxp_fmuk66-e_default",
"nxp_fmuk66-e_socketcan",
"nxp_fmuk66-v3_default",
"nxp_fmuk66-v3_socketcan",
"nxp_mr-canhubk3_default",
"nxp_ucans32k146_canbootloader",
"nxp_ucans32k146_default",
"omnibus_f4sd_default",
"px4_fmu-v2_default",
"px4_fmu-v2_fixedwing",
"px4_fmu-v2_lto",
"px4_fmu-v2_multicopter",
"px4_fmu-v2_rover",
"px4_fmu-v3_default",
"px4_fmu-v4_default",
"px4_fmu-v4pro_default",
"px4_fmu-v5_cyphal",
"px4_fmu-v5_debug",
"px4_fmu-v5_default",
"px4_fmu-v5_lto",
"px4_fmu-v5_rover",
"px4_fmu-v5_stackcheck",
"px4_fmu-v5_uavcanv0periph",
"px4_fmu-v5x_default",
"px4_fmu-v5x_rover",
"px4_fmu-v6c_default",
"px4_fmu-v6c_rover",
"px4_fmu-v6u_default",
"px4_fmu-v6u_rover",
"px4_fmu-v6x_default",
"px4_fmu-v6x_rover",
"px4_fmu-v6xrt_bootloader",
"px4_fmu-v6xrt_default",
"px4_fmu-v6xrt_rover",
"px4_io-v2_default",
"raspberrypi_pico_default",
"siyi_n7_default",
"sky-drones_smartap-airlink_default",
"spracing_h7extreme_default",
"thepeach_k1_default",
"thepeach_r1_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: 120, 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; git clean -ff -x -d .')
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; git clean -ff -x -d .')
}
}
}
}
}
}
}
-904
View File
@@ -1,904 +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:2022-08-12'
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/*, platforms/nuttx/NuttX/nuttx/tools/nuttx-gdbinit, Tools/HIL/*, build/cubepilot_cubeorange_test/etc/init.d/airframes/*', name: 'cubepilot_cubeorange_test'
}
post {
always {
sh 'make distclean; git clean -ff -x -d .'
}
}
} // 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
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 "logger on"' // run logger
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 "logger off"' // stop logger
}
}
stage("print topics") {
steps {
printTopics()
}
}
}
post {
always {
sh 'cat /tmp/pyserial_spy_file.txt || true'
sh './platforms/nuttx/Debug/jlink_gdb_backtrace_simple.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:2022-08-12'
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/*, platforms/nuttx/NuttX/nuttx/tools/nuttx-gdbinit, Tools/HIL/*', name: 'cuav_x7pro_test'
}
post {
always {
sh 'make distclean; git clean -ff -x -d .'
}
}
} // 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
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 "logger on"' // run logger
checkStatus()
quickCalibrate()
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "logger off"' // stop logger
}
}
stage("print topics") {
steps {
printTopics()
}
}
}
post {
always {
sh 'cat /tmp/pyserial_spy_file.txt || true'
sh './platforms/nuttx/Debug/jlink_gdb_backtrace_simple.sh build/cuav_x7pro_test/cuav_x7pro_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:2022-08-12'
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/*, platforms/nuttx/NuttX/nuttx/tools/nuttx-gdbinit, Tools/HIL/*', name: 'px4_fmu-v4_test'
}
post {
always {
sh 'make distclean; git clean -ff -x -d .'
}
}
} // 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
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 "logger on"' // run logger
checkStatus()
quickCalibrate()
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "logger off"' // stop logger
}
}
stage("print topics") {
steps {
printTopics()
}
}
}
post {
always {
sh 'cat /tmp/pyserial_spy_file.txt || true'
sh './platforms/nuttx/Debug/jlink_gdb_backtrace_simple.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:2022-08-12'
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/*, platforms/nuttx/NuttX/nuttx/tools/nuttx-gdbinit, Tools/HIL/*', name: 'px4_fmu-v4pro_test'
}
post {
always {
sh 'make distclean; git clean -ff -x -d .'
}
}
} // 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
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 "logger on"' // run logger
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 "logger off"' // stop logger
}
}
stage("print topics") {
steps {
printTopics()
}
}
}
post {
always {
sh 'cat /tmp/pyserial_spy_file.txt || true'
sh './platforms/nuttx/Debug/jlink_gdb_backtrace_simple.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:2022-08-12'
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/*, platforms/nuttx/NuttX/nuttx/tools/nuttx-gdbinit, Tools/HIL/*', name: 'px4_fmu-v5_debug'
}
post {
always {
sh 'make distclean; git clean -ff -x -d .'
}
}
} // 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" || true'
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "sd_stress"'
// test dataman
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "tests dataman" --ignore-stdout-errors'
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/reboot.py --device `find /dev/serial -name *usb-*`' // reboot to apply
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 'cat /tmp/pyserial_spy_file.txt || true'
sh './platforms/nuttx/Debug/jlink_gdb_backtrace_simple.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:2022-08-12'
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/*, platforms/nuttx/NuttX/nuttx/tools/nuttx-gdbinit, Tools/HIL/*', name: 'px4_fmu-v5_stackcheck'
}
post {
always {
sh 'make distclean; git clean -ff -x -d .'
}
}
} // 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'
// test dataman
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "tests dataman" --ignore-stdout-errors'
}
}
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/reboot.py --device `find /dev/serial -name *usb-*`' // reboot to apply
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 'cat /tmp/pyserial_spy_file.txt || true'
sh './platforms/nuttx/Debug/jlink_gdb_backtrace_simple.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:2022-08-12'
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/*, platforms/nuttx/NuttX/nuttx/tools/nuttx-gdbinit, Tools/HIL/*', name: 'px4_fmu-v5_test'
}
post {
always {
sh 'make distclean; git clean -ff -x -d .'
}
}
} // 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
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 "logger on"' // run logger
checkStatus()
quickCalibrate()
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "px4io status" || true'
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "logger off"' // stop logger
}
}
stage("print topics") {
steps {
printTopics()
}
}
}
post {
always {
sh 'cat /tmp/pyserial_spy_file.txt || true'
sh './platforms/nuttx/Debug/jlink_gdb_backtrace_simple.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:2022-08-12'
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/*, platforms/nuttx/NuttX/nuttx/tools/nuttx-gdbinit, Tools/HIL/*', name: 'nxp_fmuk66-v3_test'
}
post {
always {
sh 'make distclean; git clean -ff -x -d .'
}
}
} // 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
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 "logger on"' // run logger
checkStatus()
quickCalibrate()
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "logger off"' // stop logger
}
}
stage("print topics") {
steps {
printTopics()
}
}
}
post {
always {
sh 'cat /tmp/pyserial_spy_file.txt || true'
sh './platforms/nuttx/Debug/jlink_gdb_backtrace_simple.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; git clean -ff -x -d .'
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; sleep 1"'
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; sleep 2"'
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; sleep 2"'
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; sleep 1"'
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 "commander calibrate baro; sleep 5"'
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param show CAL_BARO*"'
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/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "bsondump /fs/mtd_params"'
// status commands
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "cat /proc/fs/blocks"'
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "cat /proc/fs/mount"'
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "cat /proc/fs/usage"'
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 -h"'
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"'
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 /fs"'
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "ls /fs/microsd"'
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 "ls /proc/fs"'
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 "bsondump /fs/mtd_params"'
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_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" || true'
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "uorb top -1 -a" || true'
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"'
}
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-*` 2100 3000 4001 6001 8001'
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/nsh_param_set.py --device `find /dev/serial -name *usb-*` --name "SENS_IMU_AUTOCAL" --value "0" || true' // disable during testing
sh './Tools/HIL/nsh_param_set.py --device `find /dev/serial -name *usb-*` --name "SENS_MAG_AUTOCAL" --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 "sensors stop"' // ignore irrelevant sensor timeouts during test
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "ostest"'
sh './Tools/HIL/reboot.py --device `find /dev/serial -name *usb-*`' // reboot after ostest
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "sensors stop"' // ignore irrelevant sensor timeouts during test
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_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 "bsondump /fs/mtd_params"'
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 "bsondump /fs/mtd_params"'
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 "bsondump /fs/mtd_params"'
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 "bsondump /fs/mtd_params" || true' // expected to fail after 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"'
// tests (stop modules first)
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 "mavlink stop-all"'
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "navigator stop"'
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 "sensors stop"' // ignore irrelevant sensor timeouts during microbenchmarks
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "microbench all"'
//sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "calib_udelay"'
}
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" || true'
// 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_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 esc_status" || true'
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "listener estimator_aid_src_fake_pos" || true'
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "listener estimator_aid_src_gnss_pos" || true'
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "listener estimator_aid_src_gnss_vel" || 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_gps_status" || 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 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_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 failsafe_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() {
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
}
+1 -1
View File
@@ -9,6 +9,6 @@ tab_width = 8
# Not in the official standard, but supported by many editors
max_line_length = 120
[*.yaml]
[*.yaml, *.yml]
indent_style = space
indent_size = 2
+5 -5
View File
@@ -20,14 +20,14 @@ body:
3. Took off '....'
4. See error
validations:
required: true
required: false
- type: textarea
attributes:
label: Expected behavior
description: A clear and concise description of what you expected to happen.
validations:
required: true
required: false
- type: textarea
attributes:
@@ -45,7 +45,7 @@ body:
placeholder: |
# PASTE HERE THE LINK TO THE LOG
validations:
required: true
required: false
- type: markdown
attributes:
@@ -60,14 +60,14 @@ body:
placeholder: |
# If you don't know the version, paste the output of `ver all` in the MAVLink Shell of QGC
validations:
required: true
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: true
required: false
- type: dropdown
attributes:
+160
View File
@@ -0,0 +1,160 @@
# 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: Build all targets
on:
push:
tags:
- 'v*'
branches:
- 'main'
- 'stable'
- 'beta'
- 'release/**'
pull_request:
branches:
- '*'
jobs:
group_targets:
name: Scan for Board Targets
# runs-on: ubuntu-latest
runs-on: [runs-on,runner=1cpu-linux-x64,image=ubuntu22-full-x64,"run-id=${{ github.run_id }}",spot=false]
outputs:
matrix: ${{ steps.set-matrix.outputs.matrix }}
timestamp: ${{ steps.set-timestamp.outputs.timestamp }}
tagname: ${{ steps.set-tag.outputs.tagname }}
branchname: ${{ steps.set-branch.outputs.branchname }}
steps:
- uses: actions/checkout@v4
- 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
run: echo "::set-output name=matrix::$(./Tools/ci/generate_board_targets_json.py --group)"
- id: set-timestamp
run: echo "::set-output name=timestamp::$(date +"%Y%m%d%H%M%S")"
- id: set-branch
run: echo "::set-output name=branchname::${GITHUB_HEAD_REF:-${GITHUB_REF#refs/heads/}}"
- 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 Group [${{ matrix.group }}]
# runs-on: ubuntu-latest
runs-on: [runs-on,runner=8cpu-linux-x64,image=ubuntu22-full-x64,"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: actions/checkout@v4
with:
fetch-depth: 0
- name: Git ownership workaround
run: git config --system --add safe.directory '*'
- name: Setup ccache
uses: actions/cache@v4
with:
path: ~/.ccache
key: ${{ matrix.group }}-ccache-${{ needs.group_targets.outputs.timestamp }}
restore-keys: ${{ matrix.group }}-ccache-${{ needs.group_targets.outputs.timestamp }}
- name: Configure 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: Building [${{ matrix.group }}]
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 Save
run: ccache -s
artifacts:
name: Upload Artifacts to S3
# runs-on: ubuntu-latest
runs-on: [runs-on,runner=1cpu-linux-x64,image=ubuntu22-full-x64,"run-id=${{ github.run_id }}",spot=false]
needs: [setup, group_targets]
if: contains(fromJSON('["main", "stable", "beta"]'), needs.group_targets.outputs.branchname)
steps:
- name: Download Artifacts
uses: actions/download-artifact@v4
with:
path: artifacts/
merge-multiple: true
- name: Branch Name
run: |
echo "${{ needs.group_targets.outputs.branchname }}"
- name: Uploading Artifacts to S3 [${{ needs.group_targets.outputs.branchname == 'main' && 'master' || needs.group_targets.outputs.branchname }}]
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/${{ needs.group_targets.outputs.branchname == 'main' && 'master' || needs.group_targets.outputs.branchname }}/
release:
name: Create Release and Upload Artifacts
permissions:
contents: write
# runs-on: ubuntu-latest
runs-on: [runs-on,runner=1cpu-linux-x64,image=ubuntu22-full-x64,"run-id=${{ github.run_id }}",spot=false]
needs: [setup, group_targets]
if: startsWith(github.ref, 'refs/tags/')
steps:
- name: Download Artifacts
uses: actions/download-artifact@v4
with:
path: artifacts/
merge-multiple: true
- name: Upload Binaries to Release
uses: softprops/action-gh-release@v2
with:
draft: true
files: artifacts/*.px4
+22 -21
View File
@@ -16,6 +16,7 @@ jobs:
matrix:
check: [
"check_format",
"check_newlines",
"tests",
"tests_coverage",
"px4_fmu-v2_default stack_check",
@@ -23,28 +24,28 @@ jobs:
"shellcheck_all",
"NO_NINJA_BUILD=1 px4_fmu-v5_default",
"NO_NINJA_BUILD=1 px4_sitl_default",
"airframe_metadata",
"px4_sitl_allyes",
"module_documentation",
"parameters_metadata",
]
container:
image: px4io/px4-dev-nuttx-focal:2022-08-12
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: 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
- name: Building [${{ matrix.check }}]
uses: addnab/docker-run-action@v3
with:
image: px4io/px4-dev-nuttx-focal:2022-08-12
options: -v ${{ github.workspace }}:/workspace
run: |
cd /workspace
git config --global --add safe.directory /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
+11 -5
View File
@@ -11,11 +11,17 @@ on:
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-quiet)
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-quiet
-58
View File
@@ -1,58 +0,0 @@
name: Compile Linux Targets
on:
push:
branches:
- 'main'
- 'stable'
- 'beta'
- 'release/*'
pull_request:
branches:
- '*'
jobs:
build:
runs-on: ubuntu-latest
container: px4io/px4-dev-armhf:2023-06-26
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: 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: ${{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
-54
View File
@@ -1,54 +0,0 @@
name: Compile Linux ARM64 Targets
on:
push:
branches:
- 'main'
- 'stable'
- 'beta'
- 'release/*'
pull_request:
branches:
- '*'
jobs:
build:
runs-on: ubuntu-latest
container: px4io/px4-dev-aarch64:2022-08-12
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
+3 -5
View File
@@ -19,13 +19,11 @@ jobs:
]
steps:
- name: install Python 3.10
uses: actions/setup-python@v4
uses: actions/setup-python@v5
with:
python-version: "3.10"
- uses: actions/checkout@v1
with:
token: ${{secrets.ACCESS_TOKEN}}
- uses: actions/checkout@v4
- name: setup
run: ./Tools/setup/macos.sh; ./Tools/setup/macos.sh
@@ -37,7 +35,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}}
-136
View File
@@ -1,136 +0,0 @@
name: Compile Nuttx Targets
on:
push:
branches:
- 'main'
- 'stable'
- 'beta'
- 'release/*'
pull_request:
branches:
- '*'
jobs:
build:
runs-on: ubuntu-latest
container: px4io/px4-dev-nuttx-focal:2022-08-12
strategy:
fail-fast: false
matrix:
config: [
airmind_mindpx-v2,
ark_can-flow,
ark_can-gps,
ark_can-rtk-gps,
ark_cannode,
ark_fmu-v6x,
ark_pi6x,
ark_septentrio-gps,
atl_mantis-edu,
av_x-v1,
bitcraze_crazyflie,
bitcraze_crazyflie21,
cuav_can-gps-v1,
cuav_nora,
cuav_x7pro,
cubepilot_cubeorange,
cubepilot_cubeorangeplus,
cubepilot_cubeyellow,
diatone_mamba-f405-mk2,
freefly_can-rtk-gps,
holybro_can-gps-v1,
holybro_durandal-v1,
holybro_kakutef7,
holybro_kakuteh7,
holybro_pix32v5,
matek_gnss-m9n-f4,
matek_h743,
matek_h743-mini,
matek_h743-slim,
modalai_fc-v1,
modalai_fc-v2,
mro_ctrl-zero-classic,
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_mr-canhubk3,
nxp_ucans32k146,
omnibus_f4sd,
px4_fmu-v2,
px4_fmu-v3,
px4_fmu-v4,
px4_fmu-v4pro,
px4_fmu-v5,
px4_fmu-v5x,
px4_fmu-v6c,
px4_fmu-v6u,
px4_fmu-v6x,
px4_fmu-v6xrt,
raspberrypi_pico,
sky-drones_smartap-airlink,
spracing_h7extreme,
uvify_core,
siyi_n7
]
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
+46
View File
@@ -0,0 +1,46 @@
name: Ubuntu environment build
on:
push:
branches:
- 'main'
- 'stable'
- 'beta'
- 'release/**'
pull_request:
branches:
- '*'
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=8cpu-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
-57
View File
@@ -1,57 +0,0 @@
name: Deploy metadata for all targets
on:
push:
branches:
- 'main'
- '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: ${{ matrix.container }}
steps:
- uses: actions/checkout@v1
with:
token: ${{secrets.ACCESS_TOKEN}}
- name: ownership workaround
run: git config --system --add safe.directory '*'
- 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 }}/'
+105
View File
@@ -0,0 +1,105 @@
name: Container build
on:
push:
branches:
- 'main'
- 'stable'
- 'beta'
- 'release/**'
tags:
- 'v*'
pull_request:
branches:
- '*'
jobs:
build:
name: Build and Push Container (${{ matrix.arch }})
strategy:
matrix:
arch: [x64, arm64]
runs-on: [runs-on,"runner=8cpu-linux-${{ matrix.arch }}","image=ubuntu24-full-${{ matrix.arch }}","run-id=${{ github.run_id }}",spot=false,extras=s3-cache]
steps:
- uses: runs-on/action@v1
- uses: actions/checkout@v4
with:
fetch-tags: true
submodules: false
fetch-depth: 0
- name: Set PX4 Tag
id: px4-tag
run: |
echo "tag=$(git describe --tags --match 'v[0-9]*')" >> $GITHUB_OUTPUT
- name: Login to Docker Hub
uses: docker/login-action@v3
# if: ${{ startsWith(github.ref, 'refs/tags/') }}
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/') }}
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Extract metadata (tags, labels) for Docker
id: meta
uses: docker/metadata-action@v5
with:
images: |
ghcr.io/PX4/px4-dev
${{ (github.event_name != 'pull_request') && 'px4io/px4-dev' || '' }}
tags: |
type=raw,enable=true,value=${{ steps.px4-tag.outputs.tag }},priority=1000
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Build and load container image
uses: docker/build-push-action@v6
id: docker
with:
context: Tools/setup
tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}
platforms: linux/${{ matrix.arch == 'x64' && 'amd64' || 'arm64' }}
load: true
push: false
cache-from: type=gha
cache-to: type=gha,mode=max
- name: Get Tag Name
id: tag_name
run: |
echo "::set-output name=tag_name::$(echo '${{ fromJSON(steps.docker.outputs.metadata)['image.name'] }}' | sed 's/,.*$//')"
- name: make quick_check
uses: addnab/docker-run-action@v3
with:
image: ${{ steps.tag_name.outputs.tag_name }}
options: -v ${{ github.workspace }}:/workspace
run: |
cd /workspace
git config --global --add safe.directory /workspace
make px4_sitl_default
make px4_fmu-v6x_default
- name: Push container image
uses: docker/build-push-action@v6
# if: ${{ startsWith(github.ref, 'refs/tags/') }}
with:
context: Tools/setup
tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}
platforms: linux/${{ matrix.arch == 'x64' && 'amd64' || 'arm64' }}
provenance: mode=max
push: true
cache-from: type=gha
cache-to: type=gha,mode=max
@@ -1,21 +1,28 @@
name: EKF Change Indicator
on: pull_request
on:
pull_request:
branches:
- '*'
jobs:
unit_tests:
runs-on: ubuntu-latest
container: px4io/px4-dev-base-focal:2021-09-08
steps:
- uses: actions/checkout@v2.3.1
- uses: actions/checkout@v4
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
uses: addnab/docker-run-action@v3
with:
image: px4io/px4-dev-base-focal:2021-09-08
options: -v ${{ github.workspace }}:/workspace
run: |
cd /workspace
git config --global --add safe.directory /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
@@ -5,25 +5,40 @@ on: push
jobs:
unit_tests:
runs-on: ubuntu-latest
container: px4io/px4-dev-base-focal:2021-09-08
env:
GIT_COMMITTER_EMAIL: bot@px4.io
GIT_COMMITTER_NAME: PX4BuildBot
steps:
- uses: actions/checkout@v2.3.1
- uses: actions/checkout@v4
with:
fetch-depth: 0
- name: main test updates change indication files
run: make tests TESTFILTER=EKF
- name: main test
uses: addnab/docker-run-action@v3
with:
image: px4io/px4-dev-base-focal:2021-09-08
options: -v ${{ github.workspace }}:/workspace
run: |
cd /workspace
git config --global --add safe.directory /workspace
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
id: diff-check
run: echo "CHANGE_INDICATED=$(git diff --exit-code --output=/dev/null || echo $?)" >> $GITHUB_OUTPUT
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'
file_pattern: 'src/modules/ekf2/test/change_indication/*.csv'
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
commit_message: |
'[AUTO COMMIT] update change indication'
See .github/workflopws/ekf_update_change_indicator.yml for more details
- name: if there is a functional change, fail check
if: ${{ steps.diff-check.outputs.CHANGE_INDICATED }}
run: exit 1
+19 -17
View File
@@ -24,21 +24,23 @@ jobs:
image: px4io/px4-dev-nuttx-focal:2022-08-12
options: --privileged --ulimit core=-1 --security-opt seccomp=unconfined
steps:
- uses: actions/checkout@v1
with:
token: ${{ secrets.ACCESS_TOKEN }}
- name: Install Node v20.18.0
uses: actions/setup-node@v4
with:
node-version: 20.18.0
- name: check environment
run: |
export
ulimit -a
- name: install emscripten
run: |
git clone https://github.com/emscripten-core/emsdk.git _emscripten_sdk
cd _emscripten_sdk
./emsdk install latest
./emsdk activate latest
- name: ${{matrix.check}}
run: |
. ./_emscripten_sdk/emsdk_env.sh
make ${{matrix.check}}
- uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Install empscripten
run: |
git clone https://github.com/emscripten-core/emsdk.git _emscripten_sdk
cd _emscripten_sdk
./emsdk install latest
./emsdk activate latest
- name: Testing [${{ matrix.check }}]
run: |
. ./_emscripten_sdk/emsdk_env.sh
make ${{ matrix.check }}
+150
View File
@@ -0,0 +1,150 @@
name: FLASH usage analysis
permissions:
contents: read
pull-requests: write
issues: write
on:
push:
branches:
- 'main'
pull_request:
branches:
- '*'
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=8cpu-linux-x64,image=ubuntu24-full-x64,"run-id=${{ github.run_id }}",spot=false]
container:
image: px4io/px4-dev-nuttx-focal
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,compileunits -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, we should find a way to fix this and enable this test again
# 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 }}",spot=false]
#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 }}
#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
+14 -117
View File
@@ -15,125 +15,22 @@ jobs:
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"}
- {vehicle: "iris", mission: "MC_mission_box"}
- {vehicle: "rover", mission: "rover_mission_1"}
container:
image: px4io/px4-dev-ros-melodic:2021-09-08
options: --privileged --ulimit core=-1 --security-opt seccomp=unconfined
steps:
- uses: actions/checkout@v1
- uses: actions/checkout@v4
with:
token: ${{ secrets.ACCESS_TOKEN }}
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
- name: Build SITL and Run Tests
uses: addnab/docker-run-action@v3
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-classic
env:
PX4_CMAKE_BUILD_TYPE: ${{matrix.config.build_type}}
run: |
ccache -z
make px4_sitl_default
make px4_sitl_default sitl_gazebo-classic
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
image: px4io/px4-dev-ros-melodic:2021-09-08
options: -v ${{ github.workspace }}:/workspace
run: |
cd /workspace
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:=${{matrix.config.mission}} vehicle:=${{matrix.config.vehicle}}
+15 -112
View File
@@ -11,124 +11,27 @@ on:
jobs:
build:
runs-on: ubuntu-latest
env:
ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION: true
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"}
- {test_file: "mavros_posix_tests_offboard_posctl.test", vehicle: "iris"}
container:
image: px4io/px4-dev-ros-melodic:2021-09-08
options: --privileged --ulimit core=-1 --security-opt seccomp=unconfined
steps:
- uses: actions/checkout@v1
- uses: actions/checkout@v4
with:
token: ${{ secrets.ACCESS_TOKEN }}
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
- name: Build PX4 and Run Tests
uses: addnab/docker-run-action@v3
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-classic
env:
PX4_CMAKE_BUILD_TYPE: ${{matrix.config.build_type}}
run: |
ccache -z
make px4_sitl_default
make px4_sitl_default sitl_gazebo-classic
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
image: px4io/px4-dev-ros-melodic:2021-09-08
options: -v ${{ github.workspace }}:/workspace
run: |
cd /workspace
git config --global --add safe.directory /workspace
make px4_sitl_default
make px4_sitl_default sitl_gazebo-classic
./test/rostest_px4_run.sh ${{matrix.config.test_file}} vehicle:=${{matrix.config.vehicle}}
-133
View File
@@ -1,133 +0,0 @@
name: Metadata
on:
push:
branches:
- 'main'
- '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:2022-08-12
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/
ROS2_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 ROS2 msgs
run: |
git clone https://github.com/PX4/px4_msgs.git
rm px4_msgs/msg/*.msg
rm px4_msgs/srv/*.srv
cp msg/*.msg px4_msgs/msg/
cp srv/*.srv px4_msgs/srv/
+19 -14
View File
@@ -11,22 +11,27 @@ on:
jobs:
build:
runs-on: ubuntu-latest
container: px4io/px4-dev-nuttx-focal:2022-08-12
strategy:
matrix:
config: [
px4_fmu-v5,
px4_fmu-v5_default,
]
steps:
- uses: actions/checkout@v1
with:
token: ${{secrets.ACCESS_TOKEN}}
- name: make ${{matrix.config}}
env:
PX4_EXTRA_NUTTX_CONFIG: "CONFIG_NSH_LOGIN_PASSWORD=\"test\";CONFIG_NSH_CONSOLE_LOGIN=y"
run: |
echo "PX4_EXTRA_NUTTX_CONFIG: $PX4_EXTRA_NUTTX_CONFIG"
make ${{matrix.config}} nuttx_context
# Check that the config option is set
grep CONFIG_NSH_LOGIN_PASSWORD build/${{matrix.config}}_default/NuttX/nuttx/.config
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Build PX4 and Run Test [${{ matrix.config }}]
uses: addnab/docker-run-action@v3
with:
image: px4io/px4-dev-nuttx-focal:2022-08-12
options: -v ${{ github.workspace }}:/workspace
run: |
cd /workspace
git config --global --add safe.directory /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
+8 -4
View File
@@ -10,16 +10,20 @@ on:
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
@@ -0,0 +1,52 @@
name: ROS Translation Node Tests
on:
push:
branches:
- 'main'
pull_request:
branches:
- '*'
defaults:
run:
shell: bash
jobs:
build_and_test:
name: Build and test
runs-on: [runs-on,runner=8cpu-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
+124 -106
View File
@@ -1,3 +1,8 @@
# 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:
@@ -10,126 +15,139 @@ on:
jobs:
build:
runs-on: ubuntu-latest
name: Testing PX4 ${{ matrix.config.model }}
runs-on: [runs-on,runner=16cpu-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:
- {model: "iris", latitude: "59.617693", longitude: "-151.145316", altitude: "48", build_type: "RelWithDebInfo" } # Alaska
# - {model: "standard_vtol", latitude: "-38.071235", longitude: "145.281220", altitude: "31", build_type: "AddressSanitizer" } # Australia
- {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)/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: 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-classic
- name: ccache post-run sitl_gazebo-classic
run: ccache -s
- name: Build 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: 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
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/*.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
+11 -5
View File
@@ -2,10 +2,6 @@
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/simulation/jmavsim/jMAVSim"]
path = Tools/simulation/jmavsim/jMAVSim
url = https://github.com/PX4/jMAVSim.git
@@ -71,7 +67,7 @@
[submodule "src/modules/zenoh/zenoh-pico"]
path = src/modules/zenoh/zenoh-pico
url = https://github.com/px4/zenoh-pico
branch = pr-zubf-werror-fix
branch = dev/1.0.0-px4
[submodule "src/lib/heatshrink/heatshrink"]
path = src/lib/heatshrink/heatshrink
url = https://github.com/PX4/heatshrink.git
@@ -83,3 +79,13 @@
[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
+1 -1
View File
@@ -2,4 +2,4 @@
{
"name": "PX4 detect"
}
]
]
+91 -6
View File
@@ -111,6 +111,11 @@ CONFIG:
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
@@ -126,6 +131,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
@@ -151,16 +161,21 @@ CONFIG:
buildType: MinSizeRel
settings:
CONFIG: ark_can-rtk-gps_canbootloader
ark_septentrio_gps_default:
short: ark_septentrio_gps_default
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
CONFIG: ark_septentrio-gps_default
ark_septentrio-gps_canbootloader:
short: ark_septentrio-gps_canbootloader
buildType: MinSizeRel
settings:
CONFIG: ark_septentrio_gps_canbootloader
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
@@ -181,6 +196,16 @@ CONFIG:
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
@@ -226,6 +251,11 @@ CONFIG:
buildType: MinSizeRel
settings:
CONFIG: cuav_x7pro_default
cuav_7-nano_default:
short: cuav_7-nano
buildType: MinSizeRel
settings:
CONFIG: cuav_7-nano_default
cubepilot_cubeorange_test:
short: cubepilot_cubeorange
buildType: MinSizeRel
@@ -281,6 +311,36 @@ CONFIG:
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
@@ -331,8 +391,33 @@ CONFIG:
buildType: MinSizeRel
settings:
CONFIG: nxp_mr-canhubk3_fmu
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
+1 -1
View File
@@ -15,6 +15,7 @@
"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,
@@ -128,5 +129,4 @@
"yaml.schemas": {
"${workspaceFolder}/validation/module_schema.yaml": "${workspaceFolder}/src/modules/*/module.yaml"
},
"ros.distro": "humble"
}
+17 -2
View File
@@ -113,12 +113,20 @@ 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}
)
# 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})
@@ -400,8 +408,15 @@ include(px4_add_gtest)
if(BUILD_TESTING)
include(gtest)
# Ensure there's no -R without any filter expression since that trips newer ctest versions
if(TESTFILTER)
set(TESTFILTERARG "-R")
else()
set(TESTFILTERARG "")
endif()
add_custom_target(test_results
COMMAND GTEST_COLOR=1 ${CMAKE_CTEST_COMMAND} --output-on-failure -T Test -R ${TESTFILTER} USES_TERMINAL
COMMAND GTEST_COLOR=1 ${CMAKE_CTEST_COMMAND} --output-on-failure -T Test ${TESTFILTERARG} ${TESTFILTER}
DEPENDS
px4
examples__dyn_hello
+1 -1
View File
@@ -828,7 +828,7 @@ RECURSIVE = YES
# Note that relative paths are relative to the directory from which doxygen is
# run.
EXCLUDE = @CMAKE_SOURCE_DIR@/src/modules/uavcan/libuavcan \
EXCLUDE = @CMAKE_SOURCE_DIR@/src/modules/uavcan/libdronecan \
@CMAKE_SOURCE_DIR@/src/examples \
@CMAKE_SOURCE_DIR@/src/templates
Vendored
+4
View File
@@ -231,9 +231,13 @@ pipeline {
sh("git clone https://${GIT_USER}:${GIT_PASS}@github.com/PX4/px4_msgs.git")
// '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 main || true')
sh('rm -rf px4_msgs')
+11 -7
View File
@@ -73,13 +73,6 @@ menu "Toolchain"
help
relative path to the ROMFS root directory
config BOARD_ROOTFSDIR
string "Root directory"
depends on PLATFORM_POSIX
default "."
help
Configure the root directory in the file system for PX4 files
config BOARD_IO
string "IO board name"
default "px4_io-v2_default"
@@ -185,6 +178,17 @@ menu "Serial ports"
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"
source "src/drivers/Kconfig"
endmenu
+42
View File
@@ -0,0 +1,42 @@
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][LorenzMeier] | | <lorenz@px4.io>
| Daniel Agar | Architecture | [dagar][dagar] | daniel_agar | <daniel@agar.ca>
| Beat Küng | Architecture | [bkueng][bkueng] | beatkueng | <beat-kueng@gmx.net>
| Ramón Roche | CI / Testing | [mrpollo][mrpollo] | rroche | <rroche@linuxfoundation.org>
| Mathieu Bresciani | State Estimation | [bresch][bresch] | mbresch |
| Paul Riseborough | State Estimation | [priseborough][priseborough] | |
| David Sidrane | RTOS / NuttX | [davids5][davids5] | david_s5 | <David.Sidrane@Nscdg.com>
| Jayoung Lim | Simulation | [Jaeyoung-Lim][Jaeyoung-Lim] | jaeyounglim. | <jalim@ethz.ch>
| Beniamino Pozzan | ROS 2 | [beniaminopozzan][beniaminopozzan] | beniaminopozzan | <beniamino.pozzan@gmail.com>
| Matthias Grob | Multirotor | [MaEtUgR][MaEtUgR] | maetugr |
| Silvan Fuhrer | Fixed-Wing / VTOL | [sfuhrer][sfuhrer] | sfuhrer |
| Christian Friedrich | Rover | [chfriedrich98][chfriedrich98] | christian982564 |
| Pedro Roque | Spacecraft | [Pedro-Roque][Pedro-Roque] | .pedroroque | <padr@kth.se>
**Documentation Maintainers**
| Name | GitHub | Chat | email
|------|--------|------|----------------------
| Hamish Willee | [hamishwillee][hamishwillee] | hamishwillee |
**Release Managers**
| Name | GitHub | Chat | email
|------|--------|------|----------------------
| Ramón Roche | [mrpollo][mrpollo] | rroche | <rroche@linuxfoundation.org>
| Daniel Agar | [dagar][dagar] | daniel_agar | <daniel@agar.ca>
**Retired Maintainers**
| Name | GitHub | Chat | email
|------|--------|------|----------------------
| | | |
+42 -11
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
@@ -323,7 +323,38 @@ px4io_update:
cp build/cubepilot_io-v2_default/cubepilot_io-v2_default.bin boards/cubepilot/cubeyellow/extras/cubepilot_io-v2_default.bin
git status
bootloaders_update: ark_fmu-v6x_bootloader cuav_nora_bootloader cuav_x7pro_bootloader cubepilot_cubeorange_bootloader holybro_durandal-v1_bootloader holybro_kakuteh7_bootloader matek_h743_bootloader matek_h743-mini_bootloader matek_h743-slim_bootloader modalai_fc-v2_bootloader mro_ctrl-zero-classic_bootloader mro_ctrl-zero-h7_bootloader mro_ctrl-zero-h7-oem_bootloader mro_pixracerpro_bootloader px4_fmu-v6c_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 \
cuav_nora_bootloader \
cuav_x7pro_bootloader \
cuav_7-nano_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 \
px4_fmu-v6c_bootloader \
px4_fmu-v6u_bootloader \
px4_fmu-v6x_bootloader \
px4_fmu-v6xrt_bootloader \
siyi_n7_bootloader
git status
.PHONY: coverity_scan
@@ -354,9 +385,9 @@ doxygen:
@$(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')
@@ -367,9 +398,13 @@ 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:
@@ -422,10 +457,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
@@ -520,14 +551,14 @@ distclean:
# 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)>]"
+12 -88
View File
@@ -2,7 +2,7 @@
[![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)
[![Discord Shield](https://discordapp.com/api/guilds/1022170275984457759/widget.png?style=shield)](https://discord.gg/dronecode)
@@ -17,17 +17,19 @@ PX4 is highly portable, OS-independent and supports Linux, NuttX and MacOS out o
* [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, etc)
* 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/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!
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/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.
@@ -35,7 +37,7 @@ Developers should read the [Guide for Contributions](https://docs.px4.io/main/en
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://docs.px4.io/main/en/contribute/).
@@ -44,95 +46,17 @@ The PX4 Dev Team syncs up on a [weekly dev call](https://docs.px4.io/main/en/con
## Maintenance Team
Note: This is the source of truth for the active maintainers of PX4 ecosystem.
See the latest list of maintainers on [MAINTAINERS](MAINTAINERS.md) file at the root of the project.
| Sector | Maintainer |
|---|---|
| Founder | [Lorenz Meier](https://github.com/LorenzMeier) |
| Architecture | [Daniel Agar](https://github.com/dagar) / [Beat Küng](https://github.com/bkueng)|
| State Estimation | [Mathieu Bresciani](https://github.com/bresch) / [Paul Riseborough](https://github.com/priseborough) |
| OS/NuttX | [David Sidrane](https://github.com/davids5) |
| Drivers | [Daniel Agar](https://github.com/dagar) |
| Simulation | [Jaeyoung Lim](https://github.com/Jaeyoung-Lim) |
| ROS2 | [Beniamino Pozzan](https://github.com/beniaminopozzan) |
| Community QnA Call | [Ramon Roche](https://github.com/mrpollo) |
| [Documentation](https://docs.px4.io/main/en/) | [Hamish Willee](https://github.com/hamishwillee) |
| Vehicle Type | Maintainer |
|---|---|
| Multirotor | [Matthias Grob](https://github.com/MaEtUgR) |
| Fixed Wing | [Thomas Stastny](https://github.com/tstastny) |
| Hybrid VTOL | [Silvan Fuhrer](https://github.com/sfuhrer) |
| Boat | x |
| Rover | x |
See also [maintainers list](https://px4.io/community/maintainers/) (px4.io) and the [contributors list](https://github.com/PX4/PX4-Autopilot/graphs/contributors) (Github). However it may be not up to date.
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
Pixhawk standard boards and proprietary boards are shown below (discontinued boards aren't listed).
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
These boards fully comply with Pixhawk Standard, and are maintained by the PX4-Autopilot maintainers and Dronecode team
* FMUv6X and FMUv6C
* [CUAV Pixahwk V6X (FMUv6X)](https://docs.px4.io/main/en/flight_controller/cuav_pixhawk_v6x.html)
* [Holybro Pixhawk 6X (FMUv6X)](https://docs.px4.io/main/en/flight_controller/pixhawk6x.html)
* [Holybro Pixhawk 6C (FMUv6C)](https://docs.px4.io/main/en/flight_controller/pixhawk6c.html)
* [Holybro Pix32 v6 (FMUv6C)](https://docs.px4.io/main/en/flight_controller/holybro_pix32_v6.html)
* FMUv5 and FMUv5X (STM32F7, 2019/20)
* [Pixhawk 4 (FMUv5)](https://docs.px4.io/main/en/flight_controller/pixhawk4.html)
* [Pixhawk 4 mini (FMUv5)](https://docs.px4.io/main/en/flight_controller/pixhawk4_mini.html)
* [CUAV V5+ (FMUv5)](https://docs.px4.io/main/en/flight_controller/cuav_v5_plus.html)
* [CUAV V5 nano (FMUv5)](https://docs.px4.io/main/en/flight_controller/cuav_v5_nano.html)
* [Auterion Skynode (FMUv5X)](https://docs.auterion.com/avionics/skynode)
* FMUv4 (STM32F4, 2015)
* [Pixracer](https://docs.px4.io/main/en/flight_controller/pixracer.html)
* [Pixhawk 3 Pro](https://docs.px4.io/main/en/flight_controller/pixhawk3_pro.html)
* FMUv3 (STM32F4, 2014)
* [Pixhawk 2](https://docs.px4.io/main/en/flight_controller/pixhawk-2.html)
* [Pixhawk Mini](https://docs.px4.io/main/en/flight_controller/pixhawk_mini.html)
* [CUAV Pixhack v3](https://docs.px4.io/main/en/flight_controller/pixhack_v3.html)
* FMUv2 (STM32F4, 2013)
* [Pixhawk](https://docs.px4.io/main/en/flight_controller/pixhawk.html)
### Manufacturer supported
These boards are maintained to be compatible with PX4-Autopilot by the Manufacturers.
* [ARK Electronics ARKV6X](https://docs.px4.io/main/en/flight_controller/arkv6x.html)
* [CubePilot Cube Orange+](https://docs.px4.io/main/en/flight_controller/cubepilot_cube_orangeplus.html)
* [CubePilot Cube Orange](https://docs.px4.io/main/en/flight_controller/cubepilot_cube_orange.html)
* [CubePilot Cube Yellow](https://docs.px4.io/main/en/flight_controller/cubepilot_cube_yellow.html)
* [Holybro Durandal](https://docs.px4.io/main/en/flight_controller/durandal.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)
* [Holybro Kakute F7](https://docs.px4.io/main/en/flight_controller/kakutef7.html)
### Community supported
These boards don't fully comply industry standards, and thus is solely maintained by the PX4 public community members.
### Experimental
These boards are nor maintained by PX4 team nor Manufacturer, and is not guaranteed to be compatible with up to date PX4 releases.
* [Raspberry PI with Navio 2](https://docs.px4.io/main/en/flight_controller/raspberry_pi_navio2.html)
* [Bitcraze Crazyflie 2.0](https://docs.px4.io/main/en/complete_vehicles/crazyflie2.html)
## Project Roadmap
**Note: Outdated**
A high level project roadmap is available [here](https://github.com/orgs/PX4/projects/25).
For the most up to date information, please visit [PX4 User Guide > Autopilot Hardware](https://docs.px4.io/main/en/flight_controller/).
## Project Governance
The PX4 Autopilot project including all of its trademarks is hosted under [Dronecode](https://www.dronecode.org/), part of the Linux Foundation.
<a href="https://www.dronecode.org/" style="padding:20px" ><img src="https://mavlink.io/assets/site/logo_dronecode.png" alt="Dronecode Logo" width="110px"/></a>
<a href="https://www.linuxfoundation.org/projects" style="padding:20px;"><img src="https://mavlink.io/assets/site/logo_linux_foundation.png" alt="Linux Foundation Logo" width="80px" /></a>
<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>
+5
View File
@@ -120,6 +120,7 @@ add_custom_command(
${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_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}
@@ -131,6 +132,9 @@ 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 ${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}
@@ -320,6 +324,7 @@ add_custom_target(romfs_gen_files_target
DEPENDS
${romfs_copy_stamp}
${romfs_gen_root_dir}/init.d/rc.serial
${romfs_gen_root_dir}/init.d/rc.filepaths
romfs_extras.stamp
)
+3 -14
View File
@@ -21,25 +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
if mft query -q -k MTD -s MTD_PARAMETERS -v /mnt/qspi/params
then
set PARAM_FILE /mnt/qspi/params
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
+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)
@@ -1,6 +1,6 @@
############################################################################
#
# Copyright (c) 2018 PX4 Development Team. All rights reserved.
# 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
@@ -31,9 +31,6 @@
#
############################################################################
px4_add_library(bezier
BezierQuad.cpp
BezierN.cpp
px4_add_romfs_files(
rcS
)
px4_add_unit_gtest(SRC BezierNTest.cpp LINKLIBS bezier)
+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 ""
@@ -29,4 +29,3 @@ 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
@@ -30,4 +30,3 @@ param set-default PWM_MAIN_FUNC3 103
param set-default PWM_MAIN_FUNC4 104
param set-default EKF2_RNG_A_HMAX 10
@@ -94,4 +94,3 @@ param set-default CA_METHOD 0
# disable attitude failure detection
param set-default FD_FAIL_P 0
param set-default FD_FAIL_R 0
@@ -12,4 +12,3 @@ 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
@@ -16,12 +16,6 @@ param set-default SENS_EN_GPSSIM 1
param set-default SENS_EN_BAROSIM 1
param set-default SENS_EN_MAGSIM 1
# disable some checks to allow to fly:
# - without real battery
param set-default CBRK_SUPPLY_CHK 894281
# - without safety switch
param set-default CBRK_IO_SAFETY 22027
# Square quadrotor X PX4 numbering
param set-default CA_ROTOR_COUNT 4
param set-default CA_ROTOR0_PX 1
@@ -40,4 +34,6 @@ 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
@@ -16,16 +16,6 @@ param set-default SENS_EN_BAROSIM 1
param set-default SENS_EN_MAGSIM 1
param set-default SENS_EN_ARSPDSIM 1
# disable some checks to allow to fly:
# - with usb
param set-default CBRK_USB_CHK 197848
# - without real battery
param set-default CBRK_SUPPLY_CHK 894281
# - without safety switch
param set-default CBRK_IO_SAFETY 22027
param set-default BAT_N_CELLS 3
param set-default SIH_T_MAX 6
param set-default SIH_MASS 0.3
param set-default SIH_IXX 0.00402
@@ -37,19 +27,22 @@ 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 -0.5
param set-default CA_SV_CS0_TYPE 1
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
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
param set-default PWM_MAIN_FUNC3 201
param set-default PWM_MAIN_FUNC4 202
param set-default PWM_MAIN_FUNC5 203
param set-default PWM_MAIN_FUNC6 101
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
@@ -11,6 +11,7 @@
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
@@ -27,14 +28,6 @@ param set-default MC_PITCH_P 5
param set-default MAV_TYPE 19
# disable some checks to allow to fly:
# - without real battery
param set-default CBRK_SUPPLY_CHK 894281
# - without safety switch
param set-default CBRK_IO_SAFETY 22027
param set-default BAT_N_CELLS 3
param set-default SIH_T_MAX 2
param set-default SIH_Q_MAX 0.0165
param set-default SIH_MASS 0.2
@@ -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
@@ -47,5 +47,5 @@ param set-default MPC_ALT_MODE 2
param set-default SENS_FLOW_ROT 6
param set-default SENS_FLOW_MINHGT 0.7
param set-default SENS_FLOW_MAXHGT 3
param set-default SENS_FLOW_MAXHGT 15
param set-default SENS_FLOW_MAXR 2.5
@@ -30,4 +30,3 @@ param set-default PWM_MAIN_FUNC3 103
param set-default PWM_MAIN_FUNC4 104
param set-default LPE_FUSION 242
@@ -5,7 +5,7 @@
# @type Quadrotor Wide
#
. ${R}etc/init.d-posix/airframes/10016_gazebo-classic_iris
. ${R}etc/init.d-posix/airframes/10015_gazebo-classic_iris
# EKF2: Vision position and heading, no GPS
param set-default EKF2_EV_DELAY 5
@@ -18,4 +18,3 @@ param set-default LPE_FUSION 132
# AEQ: External heading set to use vision input
param set-default ATT_EXT_HDG_M 1
@@ -1,32 +0,0 @@
#!/bin/sh
#
# @name 3DR Iris Quadrotor SITL (Obstacle Avoidance)
#
# @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 COM_OBS_AVOID 1
@@ -1,2 +0,0 @@
# shellcheck disable=SC2154
mavlink start -x -u 14558 -r 4000000 -m onboard -o 14541 -p # add mavlink stream for SDK
@@ -41,4 +41,3 @@ 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
@@ -61,4 +61,3 @@ 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
@@ -68,5 +68,3 @@ param set-default PWM_MAIN_FUNC7 202
param set-default PWM_MAIN_FUNC8 203
param set-default PWM_MAIN_FUNC9 206
param set-default PWM_MAIN_REV 256
@@ -39,7 +39,6 @@ param set-default FW_T_SINK_MIN 2.2
param set-default FW_W_EN 1
param set-default MIS_LTRMIN_ALT 30
param set-default MIS_TAKEOFF_ALT 30
param set-default NAV_ACC_RAD 15
@@ -0,0 +1 @@
mavlink start -x -u 14558 -r 4000 -f -m onboard -o 14530 -p
@@ -41,7 +41,6 @@ param set-default FW_T_SINK_MIN 2.2
param set-default FW_W_EN 1
param set-default MIS_LTRMIN_ALT 30
param set-default MIS_TAKEOFF_ALT 30
param set-default NAV_ACC_RAD 15
@@ -71,4 +70,3 @@ param set-default PWM_MAIN_FUNC7 202
param set-default PWM_MAIN_FUNC8 203
param set-default PWM_MAIN_FUNC9 206
param set-default PWM_MAIN_REV 256
@@ -55,4 +55,3 @@ param set-default PWM_MAIN_FUNC7 202
param set-default PWM_MAIN_FUNC8 203
param set-default PWM_MAIN_FUNC9 206
param set-default PWM_MAIN_REV 256
@@ -54,4 +54,3 @@ param set-default PWM_MAIN_FUNC7 202
param set-default PWM_MAIN_FUNC8 203
param set-default PWM_MAIN_FUNC9 206
param set-default PWM_MAIN_REV 256
@@ -55,4 +55,3 @@ param set-default PWM_MAIN_FUNC7 202
param set-default PWM_MAIN_FUNC8 203
param set-default PWM_MAIN_FUNC9 206
param set-default PWM_MAIN_REV 256
@@ -62,4 +62,3 @@ param set-default PWM_MAIN_FUNC7 202
param set-default PWM_MAIN_FUNC8 203
param set-default PWM_MAIN_FUNC9 206
param set-default PWM_MAIN_REV 256
@@ -39,7 +39,6 @@ param set-default FW_T_SINK_MIN 2.2
param set-default FW_W_EN 1
param set-default MIS_LTRMIN_ALT 30
param set-default MIS_TAKEOFF_ALT 30
param set-default NAV_ACC_RAD 15
@@ -23,7 +23,6 @@ param set-default FW_RR_P 0.085
param set-default FW_W_EN 1
param set-default MIS_LTRMIN_ALT 30
param set-default MIS_TAKEOFF_ALT 20
param set-default NAV_ACC_RAD 15
@@ -78,4 +78,3 @@ param set-default VT_FWD_THRUST_EN 4
param set-default VT_FWD_THRUST_SC 1
param set-default VT_F_TRANS_THR 0.75
param set-default VT_TYPE 2
@@ -75,4 +75,3 @@ param set-default VT_F_TRANS_DUR 1.5
param set-default VT_TYPE 0
param set-default WV_EN 0
@@ -88,4 +88,3 @@ param set-default PWM_MAIN_FUNC11 422
param set-default RC_MAP_AUX1 8
param set-default RC_MAP_AUX2 9
param set-default RC_MAP_AUX3 10
@@ -39,7 +39,6 @@ param set-default FW_T_SINK_MIN 2.2
param set-default FW_W_EN 1
param set-default MIS_LTRMIN_ALT 30
param set-default MIS_TAKEOFF_ALT 30
param set-default NAV_ACC_RAD 15
@@ -33,7 +33,7 @@ param set-default PWM_MAIN_FUNC3 103
param set-default PWM_MAIN_FUNC4 104
param set-default PWM_MAIN_FUNC5 0
parm set-default FD_FAIL_R 70
param set-default FD_FAIL_R 70
param set-default FW_P_TC 0.6
@@ -31,4 +31,3 @@ param set-default PWM_MAIN_FUNC1 201
param set-default PWM_MAIN_FUNC2 201
param set-default PWM_MAIN_FUNC6 101
param set-default PWM_MAIN_FUNC7 101
@@ -38,4 +38,3 @@ param set-default PWM_MAIN_FUNC1 201
param set-default PWM_MAIN_FUNC2 201
param set-default PWM_MAIN_FUNC6 101
param set-default PWM_MAIN_FUNC7 101
@@ -41,4 +41,3 @@ param set-default CA_R_REV 3
param set-default PWM_MAIN_FUNC1 101
param set-default PWM_MAIN_FUNC2 102
@@ -64,4 +64,3 @@ param set-default PWM_MAIN_FUNC4 203
param set-default PWM_MAIN_FUNC5 407
param set-default PWM_MAIN_FUNC6 408
param set-default PWM_MAIN_FUNC7 409
@@ -69,4 +69,3 @@ param set-default PWM_MAIN_FUNC4 203
param set-default PWM_MAIN_FUNC5 407
param set-default PWM_MAIN_FUNC6 408
param set-default PWM_MAIN_FUNC7 409
@@ -36,4 +36,3 @@ param set-default PWM_MAIN_FUNC1 101
param set-default PWM_MAIN_FUNC2 102
param set-default PWM_MAIN_FUNC3 201
param set-default PWM_MAIN_FUNC4 103
@@ -52,3 +52,4 @@ param set-default SIM_GZ_EC_MAX3 1000
param set-default SIM_GZ_EC_MAX4 1000
param set-default MPC_THR_HOVER 0.60
param set-default NAV_DLL_ACT 2
@@ -24,33 +24,33 @@ param set-default FW_LND_ANG 8
param set-default NPFG_PERIOD 12
param set-default FW_PR_P 0.9
param set-default FW_PR_FF 0.5
param set-default FW_PR_FF 0.2
param set-default FW_PR_I 0.5
param set-default TRIM_PITCH -0.15
param set-default FW_PSP_OFF 2
param set-default FW_P_LIM_MIN -15
param set-default FW_RR_FF 0.5
param set-default FW_RR_P 0.3
param set-default FW_RR_I 0.5
param set-default FW_RR_P 0.4
param set-default FW_RR_I 0.7
param set-default FW_YR_FF 0.5
param set-default FW_YR_P 0.6
param set-default FW_YR_I 0.5
param set-default FW_R_RMAX 56.15
param set-default FW_YR_FF 0.3
param set-default FW_YR_P 1.3
param set-default FW_YR_I 0.7
param set-default FW_PSP_OFF 0
param set-default FW_P_LIM_MIN -15
param set-default FW_SPOILERS_LND 0.4
param set-default FW_THR_MAX 0.6
param set-default FW_THR_MIN 0.05
param set-default FW_THR_TRIM 0.25
param set-default FW_T_CLMB_MAX 8
param set-default FW_T_SINK_MAX 2.7
param set-default FW_T_SINK_MIN 2.2
param set-default FW_T_CLMB_MAX 5
param set-default FW_T_SINK_MAX 3.5
param set-default FW_T_SINK_MIN 3
param set-default FW_W_EN 1
param set-default FD_ESCS_EN 0
param set-default MIS_TAKEOFF_ALT 30
param set-default NAV_ACC_RAD 15
@@ -101,8 +101,9 @@ param set-default MPC_XY_VEL_I_ACC 4
param set-default MPC_XY_VEL_D_ACC 0.1
param set-default NAV_ACC_RAD 5
param set-default NAV_DLL_ACT 2
param set-default VT_FWD_THRUST_EN 4
param set-default VT_F_TRANS_THR 0.75
param set-default VT_F_TRANS_THR 0.3
param set-default VT_TYPE 2
param set-default FD_ESCS_EN 0
@@ -19,7 +19,6 @@ param set-default SENS_EN_BAROSIM 0
param set-default SENS_EN_MAGSIM 1
# Commander Parameters
param set-default COM_OBS_AVOID 0
param set-default COM_DISARM_LAND 0.5
# EKF2 parameters
@@ -75,7 +74,6 @@ param set-default MPC_Z_VEL_P_ACC 5
param set-default MPC_Z_VEL_I_ACC 3
param set-default MPC_LAND_ALT1 3
param set-default MPC_LAND_ALT2 1
param set-default MPC_POS_MODE 3
param set-default CP_GO_NO_DATA 1
# Navigator Parameters
@@ -97,11 +95,6 @@ param set-default IMU_GYRO_CUTOFF 100
# Power Parameters
param set-default BAT1_N_CELLS 4
# param set-default BAT1_A_PER_V 36.364 Not found
# param set-default BAT1_V_DIV 18.182 Not found
# Circuit breakers
param set-default CBRK_IO_SAFETY 22027
param set-default THR_MDL_FAC 0.3
@@ -132,3 +125,5 @@ param set-default SIM_GZ_EC_MAX1 1100
param set-default SIM_GZ_EC_MAX2 1100
param set-default SIM_GZ_EC_MAX3 1100
param set-default SIM_GZ_EC_MAX4 1100
param set-default NAV_DLL_ACT 2
@@ -16,39 +16,36 @@ param set-default SENS_EN_MAGSIM 1
param set-default SENS_EN_ARSPDSIM 1
param set-default FW_LND_ANG 8
param set-default NPFG_PERIOD 12
param set-default FW_MAN_P_MAX 30
param set-default FW_PR_P 0.9
param set-default FW_PR_FF 0.5
param set-default FW_PR_I 0.5
param set-default FW_PR_FF 0.08
param set-default FW_PR_I 0.3
param set-default FW_PR_P 0.08
param set-default FW_RR_FF 0.05
param set-default FW_RR_I 0.2
param set-default FW_RR_P 0.03
param set-default FW_YR_FF 0.3
param set-default FW_YR_I 0.4
param set-default FW_YR_P 0.2
param set-default FW_PSP_OFF 2
param set-default FW_P_LIM_MAX 32
param set-default FW_P_LIM_MIN -15
param set-default FW_RR_FF 0.5
param set-default FW_RR_P 0.3
param set-default FW_RR_I 0.5
param set-default FW_YR_FF 0.5
param set-default FW_YR_P 0.6
param set-default FW_YR_I 0.5
param set-default FW_SPOILERS_LND 0.4
param set-default FW_THR_MIN 0.05
param set-default FW_THR_TRIM 0.25
param set-default FW_THR_MAX 0.6
param set-default FW_T_CLMB_MAX 8
param set-default FW_T_CLMB_R_SP 5
param set-default FW_T_CLMB_MAX 6
param set-default FW_T_SINK_MAX 2.7
param set-default FW_T_SINK_MIN 2.2
param set-default FW_W_EN 1
param set-default MIS_TAKEOFF_ALT 30
param set-default NAV_ACC_RAD 15
param set-default NAV_DLL_ACT 2
param set-default RWTO_TKOFF 1
@@ -56,7 +53,6 @@ param set-default RWTO_TKOFF 1
param set-default CA_AIRFRAME 1
param set-default CA_ROTOR_COUNT 1
param set-default CA_ROTOR0_PX 0.3
param set-default CA_SV_CS_COUNT 6
param set-default CA_SV_CS0_TRQ_R -0.5
@@ -6,26 +6,60 @@
. ${R}etc/init.d/rc.rover_differential_defaults
PX4_SIMULATOR=${PX4_SIMULATOR:=gz}
PX4_GZ_WORLD=${PX4_GZ_WORLD:=default}
PX4_GZ_WORLD=${PX4_GZ_WORLD:=rover}
PX4_SIM_MODEL=${PX4_SIM_MODEL:=r1_rover}
param set-default SIM_GZ_EN 1 # Gazebo bridge
param set-default NAV_ACC_RAD 0.5
# Differential Parameters
param set-default RD_WHEEL_TRACK 0.3
param set-default RD_MAX_THR_YAW_R 1.5
param set-default RD_TRANS_DRV_TRN 0.349066
param set-default RD_TRANS_TRN_DRV 0.174533
# Rover Control Parameters
param set-default RO_ACCEL_LIM 5
param set-default RO_DECEL_LIM 10
param set-default RO_JERK_LIM 30
param set-default RO_MAX_THR_SPEED 2.1
# Rover 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 120
param set-default RO_YAW_DECEL_LIM 1000
# Rover Attitude Control Parameters
param set-default RO_YAW_P 5
# Rover Position Control Parameters
param set-default RO_SPEED_LIM 2
param set-default RO_SPEED_I 0.5
param set-default RO_SPEED_P 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
# Simulated sensors
param set-default SENS_EN_GPSSIM 1
param set-default SENS_EN_BAROSIM 0
param set-default SENS_EN_MAGSIM 1
param set-default SENS_EN_ARSPDSIM 1
param set-default SENS_EN_ARSPDSIM 0
# Actuator mapping
param set-default SIM_GZ_WH_FUNC1 101 # right wheel
param set-default SIM_GZ_WH_MIN1 0
param set-default SIM_GZ_WH_MAX1 200
param set-default SIM_GZ_WH_MIN1 70
param set-default SIM_GZ_WH_MAX1 130
param set-default SIM_GZ_WH_DIS1 100
param set-default SIM_GZ_WH_FUNC2 102 # left wheel
param set-default SIM_GZ_WH_MIN2 0
param set-default SIM_GZ_WH_MAX2 200
param set-default SIM_GZ_WH_MIN2 70
param set-default SIM_GZ_WH_MAX2 130
param set-default SIM_GZ_WH_DIS2 100
param set-default SIM_GZ_WH_REV 1 # reverse right wheel
@@ -15,14 +15,27 @@ param set-default SIM_GZ_EN 1 # Gazebo bridge
param set-default SENS_EN_GPSSIM 1
param set-default SENS_EN_BAROSIM 0
param set-default SENS_EN_MAGSIM 1
param set-default SENS_EN_ARSPDSIM 1
param set-default SENS_EN_ARSPDSIM 0
# We can arm and drive in manual mode when it slides and GPS check fails:
param set-default COM_ARM_WO_GPS 1
# Set Differential Drive Kinematics Library parameters:
param set RDD_WHEEL_BASE 0.9
param set RDD_WHEEL_RADIUS 0.22
param set RDD_WHEEL_SPEED 10.0 # Maximum wheel speed rad/s, approx 8 km/h
# Rover parameters
param set-default RD_WHEEL_TRACK 0.9
param set-default RD_YAW_RATE_I 0.1
param set-default RD_YAW_RATE_P 5
param set-default RD_MAX_ACCEL 1
param set-default RD_MAX_JERK 3
param set-default RD_MAX_SPEED 8
param set-default RD_YAW_P 5
param set-default RD_YAW_I 0.1
param set-default RD_MAX_YAW_RATE 30
param set-default RD_TRANS_DRV_TRN 0.349066
param set-default RD_TRANS_TRN_DRV 0.174533
# Pure pursuit parameters
param set-default PP_LOOKAHD_MAX 30
param set-default PP_LOOKAHD_MIN 2
param set-default PP_LOOKAHD_GAIN 1
# Actuator mapping - set SITL motors/servos output parameters:
@@ -36,30 +49,36 @@ param set-default SIM_GZ_WH_FUNC1 101 # right wheel
param set-default SIM_GZ_WH_FUNC2 102 # left wheel
#param set-default SIM_GZ_WH_MIN2 0
#param set-default SIM_GZ_WH_MAX2 200
#aram set-default SIM_GZ_WH_DIS2 100
#param set-default SIM_GZ_WH_DIS2 100
#param set-default SIM_GZ_WH_FAIL2 100
param set-default SIM_GZ_WH_REV 0 # no need to reverse any wheels
# Note: The servo configurations ( SIM_GZ_SV_FUNC*) outlined below are intended for educational purposes in this simulation.
# They do not have physical effects in the simulated environment, except for actuating the joints. Their definitions are meant to demonstrate
# how actuators could be mapped and configured in a real-world application, providing a foundation for understanding and implementing actuator
# Note: The servo configurations ( SIM_GZ_SV_FUNC*) outlined below are intended for educational purposes in this simulation.
# They do not have physical effects in the simulated environment, except for actuating the joints. Their definitions are meant to demonstrate
# how actuators could be mapped and configured in a real-world application, providing a foundation for understanding and implementing actuator
# controls in practical scenarios.
# Cutter deck blades clutch, PCA9685 servo channel 3, "RC FLAPS" (406) - leftmost switch, or "Servo 3" (203):
param set-default SIM_GZ_SV_FUNC3 203
param set-default SIM_GZ_SV_MIN3 0
param set-default SIM_GZ_SV_MAX3 1000
param set-default SIM_GZ_SV_DIS3 500
param set-default SIM_GZ_SV_FAIL3 500
param set-default SIM_GZ_SV_FUNC1 201
param set-default SIM_GZ_SV_MIN1 0
param set-default SIM_GZ_SV_MAX1 1000
param set-default SIM_GZ_SV_DIS1 500
param set-default SIM_GZ_SV_FAIL1 500
param set-default SIM_GZ_SV_MAXA1 90
param set-default SIM_GZ_SV_MINA1 -90
# Gas engine throttle, PCA9685 servo channel 4, "RC AUX1" (407) - left knob, or "Servo 4" (204):
# - on minimum when disarmed or failed:
param set-default SIM_GZ_SV_FUNC4 204
param set-default SIM_GZ_SV_MIN4 0
param set-default SIM_GZ_SV_MAX4 1000
param set-default SIM_GZ_SV_DIS4 500
param set-default SIM_GZ_SV_FAIL4 500
param set-default SIM_GZ_SV_FUNC2 202
param set-default SIM_GZ_SV_MIN2 0
param set-default SIM_GZ_SV_MAX2 1000
param set-default SIM_GZ_SV_DIS2 500
param set-default SIM_GZ_SV_FAIL2 500
param set-default SIM_GZ_SV_MAXA2 90
param set-default SIM_GZ_SV_MINA2 -90
param set-default CA_SV_CS_COUNT 2
# Controlling PCA9685 servos 5,6,7,8 directly via "Servo 5..8" setting, by publishing actuator_servos.control[]:
@@ -0,0 +1,64 @@
#!/bin/sh
# @name Rover Ackermann
# @type Rover
# @class Rover
. ${R}etc/init.d/rc.rover_ackermann_defaults
PX4_SIMULATOR=${PX4_SIMULATOR:=gz}
PX4_GZ_WORLD=${PX4_GZ_WORLD:=rover}
PX4_SIM_MODEL=${PX4_SIM_MODEL:=rover_ackermann}
param set-default SIM_GZ_EN 1 # Gazebo bridge
param set-default NAV_ACC_RAD 0.5
# 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
# Rover Control Parameters
param set-default RO_ACCEL_LIM 3
param set-default RO_DECEL_LIM 6
param set-default RO_JERK_LIM 15
param set-default RO_MAX_THR_SPEED 3.1
# Rover Rate Control Parameters
param set-default RO_YAW_RATE_I 0.1
param set-default RO_YAW_RATE_P 1
param set-default RO_YAW_RATE_LIM 180
# Rover Attitude Control Parameters
param set-default RO_YAW_P 3
# Rover Position Control Parameters
param set-default RO_SPEED_LIM 3
param set-default RO_SPEED_I 0.1
param set-default RO_SPEED_P 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
# Simulated sensors
param set-default SENS_EN_GPSSIM 1
param set-default SENS_EN_BAROSIM 0
param set-default SENS_EN_MAGSIM 1
param set-default SENS_EN_ARSPDSIM 0
# Wheels
param set-default SIM_GZ_WH_FUNC1 101
param set-default SIM_GZ_WH_MIN1 0
param set-default SIM_GZ_WH_MAX1 200
param set-default SIM_GZ_WH_DIS1 100
# Steering
param set-default SIM_GZ_SV_MAXA1 30
param set-default SIM_GZ_SV_MINA1 -30
param set-default CA_SV_CS_COUNT 1
param set-default SIM_GZ_SV_FUNC1 201
param set-default SIM_GZ_SV_REV 1
@@ -0,0 +1,10 @@
#!/bin/sh
#
# @name Gazebo x500 lidar 2d
#
# @type Quadrotor
#
PX4_SIM_MODEL=${PX4_SIM_MODEL:=x500_lidar_2d}
. ${R}etc/init.d-posix/airframes/4001_gz_x500
@@ -0,0 +1,10 @@
#!/bin/sh
#
# @name Gazebo x500 mono cam
#
# @type Quadrotor
#
PX4_SIM_MODEL=${PX4_SIM_MODEL:=x500_mono_cam_down}
. ${R}etc/init.d-posix/airframes/4001_gz_x500
@@ -0,0 +1,74 @@
#!/bin/sh
# @name Aion Robotics R1 Rover
# @type Rover
# @class Rover
. ${R}etc/init.d/rc.rover_mecanum_defaults
PX4_SIMULATOR=${PX4_SIMULATOR:=gz}
PX4_GZ_WORLD=${PX4_GZ_WORLD:=rover}
PX4_SIM_MODEL=${PX4_SIM_MODEL:=r1_rover_mecanum}
param set-default SIM_GZ_EN 1 # Gazebo bridge
param set-default NAV_ACC_RAD 0.5
# Mecanum Parameters
param set-default RM_WHEEL_TRACK 0.3
param set-default RM_MAX_THR_YAW_R 1.2
param set-default RM_MISS_SPD_GAIN 1
# Rover Control Parameters
param set-default RO_ACCEL_LIM 3
param set-default RO_DECEL_LIM 5
param set-default RO_JERK_LIM 30
param set-default RO_MAX_THR_SPEED 2.1
# Rover Rate Control Parameters
param set-default RO_YAW_RATE_I 0.1
param set-default RO_YAW_RATE_P 0.1
param set-default RO_YAW_RATE_LIM 120
param set-default RO_YAW_ACCEL_LIM 240
param set-default RO_YAW_DECEL_LIM 1000
# Rover Attitude Control Parameters
param set-default RO_YAW_P 5
# Rover Position Control Parameters
param set-default RO_SPEED_LIM 2
param set-default RO_SPEED_I 0.5
param set-default RO_SPEED_P 1
# Pure Pursuit parameters
param set-default PP_LOOKAHD_GAIN 0.5
param set-default PP_LOOKAHD_MAX 10
param set-default PP_LOOKAHD_MIN 1
# Simulated sensors
param set-default SENS_EN_GPSSIM 1
param set-default SENS_EN_BAROSIM 0
param set-default SENS_EN_MAGSIM 1
param set-default SENS_EN_ARSPDSIM 0
# Actuator mapping
param set-default SIM_GZ_WH_FUNC1 102 # right wheel front
param set-default SIM_GZ_WH_MIN1 70
param set-default SIM_GZ_WH_MAX1 130
param set-default SIM_GZ_WH_DIS1 100
param set-default SIM_GZ_WH_FUNC2 101 # left wheel front
param set-default SIM_GZ_WH_MIN2 70
param set-default SIM_GZ_WH_MAX2 130
param set-default SIM_GZ_WH_DIS2 100
param set-default SIM_GZ_WH_FUNC3 104 # right wheel back
param set-default SIM_GZ_WH_MIN3 70
param set-default SIM_GZ_WH_MAX3 130
param set-default SIM_GZ_WH_DIS3 100
param set-default SIM_GZ_WH_FUNC4 103 # left wheel back
param set-default SIM_GZ_WH_MIN4 70
param set-default SIM_GZ_WH_MAX4 130
param set-default SIM_GZ_WH_DIS4 100
param set-default SIM_GZ_WH_REV 10
@@ -0,0 +1,10 @@
#!/bin/sh
#
# @name Gazebo x500 lidar down
#
# @type Quadrotor
#
PX4_SIM_MODEL=${PX4_SIM_MODEL:=x500_lidar_down}
. ${R}etc/init.d-posix/airframes/4001_gz_x500
@@ -0,0 +1,10 @@
#!/bin/sh
#
# @name Gazebo x500 lidar front
#
# @type Quadrotor
#
PX4_SIM_MODEL=${PX4_SIM_MODEL:=x500_lidar_front}
. ${R}etc/init.d-posix/airframes/4001_gz_x500
@@ -0,0 +1,97 @@
#!/bin/sh
#
# @name Quadrotor + Tailsitter
#
# @type VTOL Quad Tailsitter
#
. ${R}etc/init.d/rc.vtol_defaults
PX4_SIMULATOR=${PX4_SIMULATOR:=gz}
PX4_GZ_WORLD=${PX4_GZ_WORLD:=default}
PX4_SIM_MODEL=${PX4_SIM_MODEL:=quadtailsitter}
param set-default SIM_GZ_EN 1 # Gazebo bridge
param set-default SENS_EN_GPSSIM 1
param set-default SENS_EN_BAROSIM 0
param set-default SENS_EN_MAGSIM 1
param set-default SENS_EN_ARSPDSIM 0
param set-default MAV_TYPE 20
param set-default CA_AIRFRAME 4
param set-default CA_ROTOR_COUNT 4
param set-default CA_ROTOR0_PX 0.15
param set-default CA_ROTOR0_PY 0.23
param set-default CA_ROTOR0_KM 0.05
param set-default CA_ROTOR1_PX -0.15
param set-default CA_ROTOR1_PY -0.23
param set-default CA_ROTOR1_KM 0.05
param set-default CA_ROTOR2_PX 0.15
param set-default CA_ROTOR2_PY -0.23
param set-default CA_ROTOR2_KM -0.05
param set-default CA_ROTOR3_PX -0.15
param set-default CA_ROTOR3_PY 0.23
param set-default CA_ROTOR3_KM -0.05
param set-default CA_SV_CS_COUNT 0
param set-default SIM_GZ_EC_FUNC1 101
param set-default SIM_GZ_EC_FUNC2 102
param set-default SIM_GZ_EC_FUNC3 103
param set-default SIM_GZ_EC_FUNC4 104
param set-default SIM_GZ_EC_MIN1 10
param set-default SIM_GZ_EC_MIN2 10
param set-default SIM_GZ_EC_MIN3 10
param set-default SIM_GZ_EC_MIN4 10
param set-default SIM_GZ_EC_MAX1 1500
param set-default SIM_GZ_EC_MAX2 1500
param set-default SIM_GZ_EC_MAX3 1500
param set-default SIM_GZ_EC_MAX4 1500
param set-default FD_FAIL_R 70
param set-default FW_P_TC 0.6
param set-default FW_PR_I 0.3
param set-default FW_PR_P 0.5
param set-default FW_PSP_OFF 2
param set-default FW_RR_FF 0.1
param set-default FW_RR_I 0.1
param set-default FW_RR_P 0.2
param set-default FW_YR_FF 0 # make yaw rate controller very weak, only keep default P
param set-default FW_YR_I 0
param set-default FW_THR_TRIM 0.35
param set-default FW_THR_MAX 0.8
param set-default FW_THR_MIN 0.05
param set-default FW_T_CLMB_MAX 6
param set-default FW_T_HRATE_FF 0.5
param set-default FW_T_SINK_MAX 3
param set-default FW_T_SINK_MIN 1.6
param set-default FW_AIRSPD_STALL 10
param set-default FW_AIRSPD_MIN 14
param set-default FW_AIRSPD_TRIM 18
param set-default FW_AIRSPD_MAX 22
param set-default MC_AIRMODE 2
param set-default MAN_ARM_GESTURE 0 # required for yaw airmode
param set-default MC_ROLL_P 3
param set-default MC_PITCH_P 3
param set-default MC_ROLLRATE_P 0.3
param set-default MC_PITCHRATE_P 0.3
param set-default VT_ARSP_TRANS 15
param set-default VT_B_TRANS_DUR 5
param set-default VT_FW_DIFTHR_EN 7
param set-default VT_FW_DIFTHR_S_Y 1
param set-default VT_F_TRANS_DUR 1.5
param set-default VT_TYPE 0
param set-default WV_EN 0
param set-default EKF2_FUSE_BETA 0
@@ -0,0 +1,23 @@
#!/bin/sh
#
# @name Gazebo x500 gimbal
#
# @type Quadrotor
#
PX4_SIM_MODEL=${PX4_SIM_MODEL:=x500_gimbal}
. ${R}etc/init.d-posix/airframes/4001_gz_x500
# Gimbal settings
param set-default MNT_MODE_IN 4
param set-default MNT_MODE_OUT 2
param set-default MNT_RC_IN_MODE 1
param set-default MNT_MAN_ROLL 1
param set-default MNT_MAN_PITCH 2
param set-default MNT_MAN_YAW 3
param set-default MNT_RANGE_ROLL 180
param set-default MNT_RANGE_PITCH 180
param set-default MNT_RANGE_YAW 720
@@ -0,0 +1,112 @@
#!/bin/sh
#
# @name VTOL Tiltrotor
#
# @type VTOL Tiltrotor
#
. ${R}etc/init.d/rc.vtol_defaults
PX4_SIMULATOR=${PX4_SIMULATOR:=gz}
PX4_GZ_WORLD=${PX4_GZ_WORLD:=default}
PX4_SIM_MODEL=${PX4_SIM_MODEL:=tiltrotor}
param set-default SIM_GZ_EN 1 # Gazebo bridge
param set-default SENS_EN_GPSSIM 1
param set-default SENS_EN_BAROSIM 0
param set-default SENS_EN_MAGSIM 1
param set-default SENS_EN_ARSPDSIM 0
param set-default MAV_TYPE 21
param set-default CA_AIRFRAME 3
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 CA_ROTOR0_TILT 1
param set-default CA_ROTOR2_TILT 2
param set-default CA_SV_TL0_MAXA 90
param set-default CA_SV_TL0_MINA 0
param set-default CA_SV_TL0_TD 0
param set-default CA_SV_TL0_CT 1
param set-default CA_SV_TL1_MAXA 90
param set-default CA_SV_TL1_MINA 0
param set-default CA_SV_TL1_TD 0
param set-default CA_SV_TL1_CT 1
param set-default CA_SV_CS0_TRQ_R -0.5
param set-default CA_SV_CS0_TYPE 1
param set-default CA_SV_CS1_TRQ_R 0.5
param set-default CA_SV_CS1_TYPE 2
param set-default CA_SV_CS2_TRQ_P 1
param set-default CA_SV_CS2_TYPE 3
param set-default CA_SV_CS_COUNT 3
param set-default CA_SV_TL_COUNT 2
param set-default SIM_GZ_EC_FUNC1 101
param set-default SIM_GZ_EC_FUNC2 102
param set-default SIM_GZ_EC_FUNC3 103
param set-default SIM_GZ_EC_FUNC4 104
param set-default SIM_GZ_EC_MIN1 10
param set-default SIM_GZ_EC_MIN2 10
param set-default SIM_GZ_EC_MIN3 10
param set-default SIM_GZ_EC_MIN4 10
param set-default SIM_GZ_EC_MAX1 1500
param set-default SIM_GZ_EC_MAX2 1500
param set-default SIM_GZ_EC_MAX3 1500
param set-default SIM_GZ_EC_MAX4 1500
param set-default SIM_GZ_SV_FUNC1 201
param set-default SIM_GZ_SV_FUNC2 202
param set-default SIM_GZ_SV_FUNC3 203
param set-default SIM_GZ_SV_FUNC4 204
param set-default SIM_GZ_SV_FUNC5 205
param set-default SIM_GZ_SV_MAXA4 90
param set-default SIM_GZ_SV_MINA4 0
param set-default SIM_GZ_SV_MAXA5 90
param set-default SIM_GZ_SV_MINA5 0
param set-default NPFG_PERIOD 12
param set-default FW_PR_FF 0.2
param set-default FW_PR_P 0.9
param set-default FW_PSP_OFF 2
param set-default FW_P_LIM_MIN -15
param set-default FW_RR_FF 0.1
param set-default FW_RR_P 0.3
param set-default FW_THR_TRIM 0.38
param set-default FW_THR_MAX 0.6
param set-default FW_THR_MIN 0.05
param set-default FW_T_CLMB_MAX 8
param set-default FW_T_SINK_MAX 2.7
param set-default FW_T_SINK_MIN 2.2
param set-default MC_AIRMODE 1
param set-default MC_YAWRATE_P 0.4
param set-default MC_YAWRATE_I 0.1
param set-default MPC_XY_VEL_P_ACC 3
param set-default MPC_XY_VEL_I_ACC 4
param set-default MPC_XY_VEL_D_ACC 0.1
param set-default MIS_TAKEOFF_ALT 10
param set-default VT_FWD_THRUST_EN 4
param set-default VT_FWD_THRUST_SC 0.6
param set-default VT_TILT_TRANS 0.6
param set-default VT_TYPE 1
@@ -63,4 +63,3 @@ param set-default PWM_MAIN_FUNC9 422
# Landing gear
param set-default PWM_MAIN_FUNC10 400
param set-default PWM_MAIN_FUNC11 400
@@ -0,0 +1,155 @@
#!/bin/sh
#
# @name 6DoF Spacecraft Model
#
# @type Freeflyer with 8 thrusters
#
# @maintainer Pedro Roque <padr@kth.se>
#
. ${R}etc/init.d/rc.sc_defaults
param set-default CA_AIRFRAME 15
param set-default MAV_TYPE 99
param set-default CA_THRUSTER_CNT 12
param set-default CA_R_REV 0
# param set-default FW_ARSP_MODE 1
# Auto to be provided by Custom Airframe
param set-default CA_METHOD 0
# disable attitude failure detection
param set-default FD_FAIL_P 0
param set-default FD_FAIL_R 0
# Set proper failsafes
param set-default COM_ACT_FAIL_ACT 0
param set-default COM_LOW_BAT_ACT 0
param set-default NAV_DLL_ACT 0
param set-default GF_ACTION 1
param set-default NAV_RCL_ACT 1
param set-default COM_POSCTL_NAVL 2
# Set thrusters
param set-default CA_THRUSTER0_PX -0.50
param set-default CA_THRUSTER0_PY 0.50
param set-default CA_THRUSTER0_PZ 0.0
param set-default CA_THRUSTER0_CT 0.237
param set-default CA_THRUSTER0_AX 0.0
param set-default CA_THRUSTER0_AY -1.0
param set-default CA_THRUSTER0_AZ 0.0
param set-default CA_THRUSTER1_PX 0.50
param set-default CA_THRUSTER1_PY 0.50
param set-default CA_THRUSTER1_PZ 0.0
param set-default CA_THRUSTER1_CT 0.237
param set-default CA_THRUSTER1_AX 0.0
param set-default CA_THRUSTER1_AY -1.0
param set-default CA_THRUSTER1_AZ 0.0
param set-default CA_THRUSTER2_PX 0.50
param set-default CA_THRUSTER2_PY -0.50
param set-default CA_THRUSTER2_PZ 0.0
param set-default CA_THRUSTER2_CT 0.237
param set-default CA_THRUSTER2_AX 0.0
param set-default CA_THRUSTER2_AY 1.0
param set-default CA_THRUSTER2_AZ 0.0
param set-default CA_THRUSTER3_PX -0.50
param set-default CA_THRUSTER3_PY -0.50
param set-default CA_THRUSTER3_PZ 0.0
param set-default CA_THRUSTER3_CT 0.237
param set-default CA_THRUSTER3_AX 0.0
param set-default CA_THRUSTER3_AY 1.0
param set-default CA_THRUSTER3_AZ 0.0
param set-default CA_THRUSTER4_PX -0.50
param set-default CA_THRUSTER4_PY 0.0
param set-default CA_THRUSTER4_PZ -0.50
param set-default CA_THRUSTER4_CT 0.237
param set-default CA_THRUSTER4_AX 1.0
param set-default CA_THRUSTER4_AY 0.0
param set-default CA_THRUSTER4_AZ 0.0
param set-default CA_THRUSTER5_PX 0.50
param set-default CA_THRUSTER5_PY 0.0
param set-default CA_THRUSTER5_PZ -0.50
param set-default CA_THRUSTER5_CT 0.237
param set-default CA_THRUSTER5_AX -1.0
param set-default CA_THRUSTER5_AY 0.0
param set-default CA_THRUSTER5_AZ 0.0
param set-default CA_THRUSTER6_PX 0.50
param set-default CA_THRUSTER6_PY 0.0
param set-default CA_THRUSTER6_PZ 0.50
param set-default CA_THRUSTER6_CT 0.237
param set-default CA_THRUSTER6_AX -1.0
param set-default CA_THRUSTER6_AY 0.0
param set-default CA_THRUSTER6_AZ 0.0
param set-default CA_THRUSTER7_PX -0.50
param set-default CA_THRUSTER7_PY 0.0
param set-default CA_THRUSTER7_PZ 0.50
param set-default CA_THRUSTER7_CT 0.237
param set-default CA_THRUSTER7_AX 1.0
param set-default CA_THRUSTER7_AY 0.0
param set-default CA_THRUSTER7_AZ 0.0
param set-default CA_THRUSTER8_PX 0.0
param set-default CA_THRUSTER8_PY -0.50
param set-default CA_THRUSTER8_PZ -0.50
param set-default CA_THRUSTER8_CT 0.237
param set-default CA_THRUSTER8_AX 0.0
param set-default CA_THRUSTER8_AY 0.0
param set-default CA_THRUSTER8_AZ 1.0
param set-default CA_THRUSTER9_PX 0.0
param set-default CA_THRUSTER9_PY 0.50
param set-default CA_THRUSTER9_PZ -0.50
param set-default CA_THRUSTER9_CT 0.237
param set-default CA_THRUSTER9_AX 0.0
param set-default CA_THRUSTER9_AY 0.0
param set-default CA_THRUSTER9_AZ 1.0
param set-default CA_THRUSTER10_PX 0.0
param set-default CA_THRUSTER10_PY 0.50
param set-default CA_THRUSTER10_PZ 0.50
param set-default CA_THRUSTER10_CT 0.237
param set-default CA_THRUSTER10_AX 0.0
param set-default CA_THRUSTER10_AY 0.0
param set-default CA_THRUSTER10_AZ -1.0
param set-default CA_THRUSTER11_PX 0.0
param set-default CA_THRUSTER11_PY -0.50
param set-default CA_THRUSTER11_PZ 0.50
param set-default CA_THRUSTER11_CT 0.237
param set-default CA_THRUSTER11_AX 0.0
param set-default CA_THRUSTER11_AY 0.0
param set-default CA_THRUSTER11_AZ -1.0
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
param set-default PWM_MAIN_FUNC9 109
param set-default PWM_MAIN_FUNC10 110
param set-default PWM_MAIN_FUNC11 111
param set-default PWM_MAIN_FUNC12 112
# PWM Simulation
param set PWM_SIM_PWM_MAX 10000
param set PWM_SIM_PWM_MIN 0
# Controller Tunings
param set-default SC_ROLLRATE_P 0.14
param set-default SC_PITCHRATE_P 0.14
param set-default SC_ROLLRATE_I 0.3
param set-default SC_PITCHRATE_I 0.3
param set-default SC_ROLLRATE_D 0.004
param set-default SC_PITCHRATE_D 0.004
@@ -0,0 +1,149 @@
#!/bin/sh
#
# @name 3DoF Spacecraft Model
#
# @type 2D Freeflyer with 8 thrusters - Planar motion
#
# @maintainer Pedro Roque <padr@kth.se>
#
. ${R}etc/init.d/rc.sc_defaults
PX4_SIMULATOR=${PX4_SIMULATOR:=gz}
PX4_GZ_WORLD=${PX4_GZ_WORLD:=default}
PX4_SIM_MODEL=${PX4_SIM_MODEL:=spacecraft_2d}
param set-default SIM_GZ_EN 1
param set-default SENS_EN_GPSSIM 1
param set-default SENS_EN_BAROSIM 1
param set-default SENS_EN_MAGSIM 1
param set-default COM_ARM_CHK_ESCS 0 # We don't have ESCs
param set-default FD_ESCS_EN 0 # We don't have ESCs - but maybe we need this later?
param set-default CA_AIRFRAME 14
param set-default MAV_TYPE 99
param set-default CA_THRUSTER_CNT 8
param set-default CA_R_REV 0
# param set-default FW_ARSP_MODE 1
# Auto to be provided by Custom Airframe
param set-default CA_METHOD 0 # 0 is PseudoInverse, 3 is Metric
# Set proper failsafes
param set-default COM_ACT_FAIL_ACT 0
param set-default COM_LOW_BAT_ACT 0
param set-default NAV_DLL_ACT 0
param set-default GF_ACTION 1
param set-default NAV_RCL_ACT 1
param set-default COM_POSCTL_NAVL 2
# disable attitude failure detection
param set-default FD_FAIL_P 0
param set-default FD_FAIL_R 0
param set-default CA_THRUSTER0_PX -0.12
param set-default CA_THRUSTER0_PY -0.12
param set-default CA_THRUSTER0_PZ 0.0
param set-default CA_THRUSTER0_CT 1.4
param set-default CA_THRUSTER0_AX 1.0
param set-default CA_THRUSTER0_AY 0.0
param set-default CA_THRUSTER0_AZ 0.0
param set-default CA_THRUSTER1_PX 0.12
param set-default CA_THRUSTER1_PY -0.12
param set-default CA_THRUSTER1_PZ 0.0
param set-default CA_THRUSTER1_CT 1.4
param set-default CA_THRUSTER1_AX -1.0
param set-default CA_THRUSTER1_AY 0.0
param set-default CA_THRUSTER1_AZ 0.0
param set-default CA_THRUSTER2_PX -0.12
param set-default CA_THRUSTER2_PY 0.12
param set-default CA_THRUSTER2_PZ 0.0
param set-default CA_THRUSTER2_CT 1.4
param set-default CA_THRUSTER2_AX 1.0
param set-default CA_THRUSTER2_AY 0.0
param set-default CA_THRUSTER2_AZ 0.0
param set-default CA_THRUSTER3_PX 0.12
param set-default CA_THRUSTER3_PY 0.12
param set-default CA_THRUSTER3_PZ 0.0
param set-default CA_THRUSTER3_CT 1.4
param set-default CA_THRUSTER3_AX -1.0
param set-default CA_THRUSTER3_AY 0.0
param set-default CA_THRUSTER3_AZ 0.0
param set-default CA_THRUSTER4_PX 0.12
param set-default CA_THRUSTER4_PY -0.12
param set-default CA_THRUSTER4_PZ 0.0
param set-default CA_THRUSTER4_CT 1.4
param set-default CA_THRUSTER4_AX 0.0
param set-default CA_THRUSTER4_AY 1.0
param set-default CA_THRUSTER4_AZ 0.0
param set-default CA_THRUSTER5_PX 0.12
param set-default CA_THRUSTER5_PY 0.12
param set-default CA_THRUSTER5_PZ 0.0
param set-default CA_THRUSTER5_CT 1.4
param set-default CA_THRUSTER5_AX 0.0
param set-default CA_THRUSTER5_AY -1.0
param set-default CA_THRUSTER5_AZ 0.0
param set-default CA_THRUSTER6_PX -0.12
param set-default CA_THRUSTER6_PY -0.12
param set-default CA_THRUSTER6_PZ 0.0
param set-default CA_THRUSTER6_CT 1.4
param set-default CA_THRUSTER6_AX 0.0
param set-default CA_THRUSTER6_AY 1.0
param set-default CA_THRUSTER6_AZ 0.0
param set-default CA_THRUSTER7_PX -0.12
param set-default CA_THRUSTER7_PY 0.12
param set-default CA_THRUSTER7_PZ 0.0
param set-default CA_THRUSTER7_CT 1.4
param set-default CA_THRUSTER7_AX 0.0
param set-default CA_THRUSTER7_AY -1.0
param set-default CA_THRUSTER7_AZ 0.0
param set-default SIM_GZ_TH_FUNC1 101
param set-default SIM_GZ_TH_FUNC2 102
param set-default SIM_GZ_TH_FUNC3 103
param set-default SIM_GZ_TH_FUNC4 104
param set-default SIM_GZ_TH_FUNC5 105
param set-default SIM_GZ_TH_FUNC6 106
param set-default SIM_GZ_TH_FUNC7 107
param set-default SIM_GZ_TH_FUNC8 108
param set-default SIM_GZ_TH_MIN1 0
param set-default SIM_GZ_TH_MIN2 0
param set-default SIM_GZ_TH_MIN3 0
param set-default SIM_GZ_TH_MIN4 0
param set-default SIM_GZ_TH_MIN5 0
param set-default SIM_GZ_TH_MIN6 0
param set-default SIM_GZ_TH_MIN7 0
param set-default SIM_GZ_TH_MIN8 0
param set-default SIM_GZ_TH_MAX1 10000
param set-default SIM_GZ_TH_MAX2 10000
param set-default SIM_GZ_TH_MAX3 10000
param set-default SIM_GZ_TH_MAX4 10000
param set-default SIM_GZ_TH_MAX5 10000
param set-default SIM_GZ_TH_MAX6 10000
param set-default SIM_GZ_TH_MAX7 10000
param set-default SIM_GZ_TH_MAX8 10000
# Controller Tunings
param set SC_YAWRATE_P 3.335
param set SC_YAWRATE_I 0.87
param set SC_YAWRATE_D 0.15
param set SC_YR_INT_LIM 0.2
param set SC_YAW_P 3.0
param set SPC_POS_P 0.20
param set SPC_VEL_P 6.55
param set SPC_VEL_I 0.0
param set SPC_VEL_D 0.0
param set SPC_VEL_MAX 12.0
@@ -119,4 +119,3 @@ param set-default CA_METHOD 0
# disable attitude failure detection
param set-default FD_FAIL_P 0
param set-default FD_FAIL_R 0
@@ -39,8 +39,6 @@ px4_add_romfs_files(
1012_gazebo-classic_iris_rplidar
1013_gazebo-classic_iris_vision
1013_gazebo-classic_iris_vision.post
1014_gazebo-classic_iris_obs_avoid
1014_gazebo-classic_iris_obs_avoid.post
1015_gazebo-classic_iris_depth_camera
1016_gazebo-classic_iris_downward_depth_camera
1017_gazebo-classic_iris_opt_flow_mockup
@@ -49,6 +47,7 @@ px4_add_romfs_files(
1022_gazebo-classic_uuv_bluerov2_heavy
1030_gazebo-classic_plane
1031_gazebo-classic_plane_cam
1031_gazebo-classic_plane_cam.post
1032_gazebo-classic_plane_catapult
1033_jsbsim_rascal
1034_flightgear_rascal-electric
@@ -83,6 +82,15 @@ px4_add_romfs_files(
4009_gz_r1_rover
4010_gz_x500_mono_cam
4011_gz_lawnmower
4012_gz_rover_ackermann
4013_gz_x500_lidar_2d
4014_gz_x500_mono_cam_down
4015_gz_r1_rover_mecanum
4016_gz_x500_lidar_down
4017_gz_x500_lidar_front
4018_gz_quadtailsitter
4019_gz_x500_gimbal
4020_gz_tiltrotor
6011_gazebo-classic_typhoon_h480
6011_gazebo-classic_typhoon_h480.post
@@ -99,9 +107,13 @@ px4_add_romfs_files(
10040_sihsim_quadx
10041_sihsim_airplane
10042_sihsim_xvert
10043_sihsim_standard_vtol
17001_flightgear_tf-g1
17002_flightgear_tf-g2
71001_gazebo-classic_spacecraft_dart
71002_gz_spacecraft_2d
# [22000, 22999] Reserve for custom models
)
@@ -29,7 +29,7 @@ mavlink start -x -u $udp_offboard_port_local -r 4000000 -f -m onboard -o $udp_of
mavlink start -x -u $udp_onboard_payload_port_local -r 4000 -f -m onboard -o $udp_onboard_payload_port_remote
# Onboard link to gimbal
mavlink start -x -u $udp_onboard_gimbal_port_local -r 400000 -m gimbal -o $udp_onboard_gimbal_port_remote
mavlink start -x -u $udp_onboard_gimbal_port_local -r 400000 -f -m gimbal -o $udp_onboard_gimbal_port_remote
# To display for SIH sitl
if [ "$PX4_SIMULATOR" = "sihsim" ]; then
@@ -4,6 +4,9 @@
# Simulator IMU data provided at 250 Hz
param set-default IMU_INTEG_RATE 250
# For simulation, allow registering modes while armed for developer convenience
param set-default COM_MODE_ARM_CHK 1
if [ "$PX4_SIMULATOR" = "sihsim" ] || [ "$(param show -q SYS_AUTOSTART)" -eq "0" ]; then
echo "INFO [init] SIH simulator"
@@ -15,6 +18,9 @@ if [ "$PX4_SIMULATOR" = "sihsim" ] || [ "$(param show -q SYS_AUTOSTART)" -eq "0"
if [ -n "${PX4_HOME_LON}" ]; then
param set SIH_LOC_LON0 ${PX4_HOME_LON}
fi
if [ -n "${PX4_HOME_ALT}" ]; then
param set SIH_LOC_H0 ${PX4_HOME_ALT}
fi
if simulator_sih start; then
@@ -30,6 +36,10 @@ if [ "$PX4_SIMULATOR" = "sihsim" ] || [ "$(param show -q SYS_AUTOSTART)" -eq "0"
then
sensor_mag_sim start
fi
if param compare -s SENS_EN_AGPSIM 1
then
sensor_agp_sim start
fi
else
echo "ERROR [init] simulator_sih failed to start"
@@ -150,6 +160,10 @@ elif [ "$PX4_SIMULATOR" = "gz" ] || [ "$(param show -q SIM_GZ_EN)" = "1" ]; then
then
sensor_airspeed_sim start
fi
if param compare -s SENS_EN_AGPSIM 1
then
sensor_agp_sim start
fi
elif [ "$PX4_SIM_MODEL" = "jmavsim_iris" ] || [ "$(param show -q SYS_AUTOSTART)" -eq "10017" ]; then

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