* update control effectiveness script for new matrix format
* add a config file example for a quadcopter
- full indi
- no G2 vector
- new output format
* [generator] generate unique ID and names table for modules
* [state] add accessors for the state origin
* [state] don't access directly to state origin, use getters
* [state] filter inputs with module ID
* [ahrs] convert AHRS modules to state input filter
- selection of ahrs with settings from each module
- init functions for each ahrs modules
- remove old chimu
* update unit test
* [ins] decoupled INS implementation
To allow multiple INS at the same time:
- remove weak functions from ins.c
- remove the INS_TYPE_H define
- use ABI message to trigger INS reset
* [state] protect for c++
* [python] setup venv and update pprzlink.
* [supervision] open terminal in the venv if it exists.
* clean setup.py
* guard venv boostrap
* [install] Use distro instead of lsb_release.
---------
Co-authored-by: Fabien-B <Fabien-B@github.com>
The functions passed to the attributes 'on_enter' and 'on_exit' will be
called once every time the flight plan state machine enters or leaves a
block, even if the block change is requested by the operator or if it is
caused by an exception.
It allows to properly activate and then disable services related to a
specific block.
Another good side effect is that the block and stage index are now
private and can't be modified by external modules. Old variables
nav_block and nav_stage can still be used as read-only.
Based on the work from:
Baptiste Pollien, Christophe Garion, Gautier Hattenberger, Pierre Roux, Xavier Thirioux.
A Verified UAV Flight Plan Generator. 2023 IEEE/ACM 11th International Conference on Formal Methods in Software Engineering (FormaliSE),
May 2023, Melbourne, Australia. pp.130-140, 10.1109/FormaliSE58978.2023.00021
* actuators[ ] array in pprz units, conversion to actuator_driver units when sending to the actuator_driver.
actuators becomes an array
* Moved scaling of the Servo to the Set function.
* Fixed switches and pan-tilt to work in PPRZ units now. Simplified code.
Introducing several changes to the control stask for the stabilization:
- new structures: stabilization, stab (att and/or rates) and thrust (vector)
- more functional approach: stabilization receives the stab and thrust
setpoints from guidance and fill command vector at the end
- modes and sub-modes are redefined (split stab and guidance modes),
some AP modes are removed (FLIP and MODULE)
- RC read functions are removed and replaced by ABI bindings, one for
each part (AP, stab, guidance_h, guidance_v) with dedicated functions
- transition ratio (float in [0-1]) replace transition_percentage (int)
- the AP_MODULE mode is replaced by generated autopilot
- the ABI hack for guidance indi is not needed anymore
- AP generator supports a new 'store' attribute to use return values of
functions
- cleaning of the stabilization API (for setter functions)
* Add actuator type attribute to command
* Implemented new command based counting of the atuators in the oneloop controller
* Added group attribute to dtd file. Initialize as empty subgroup count of commands. Avoid unnecessary array to list conversion.
* Generate list of names from defined commands
* Use the defined commands number and name in NPS
* Update sw/tools/generators/gen_airframe.ml
Co-authored-by: Gautier Hattenberger <gautier.hattenberger@enac.fr>
* Added logic to remove redundant code
---------
Co-authored-by: Gautier Hattenberger <gautier.hattenberger@enac.fr>
* removed the -o flag because it caussed natnet errors
* smaller obstacle zone for first week testing
* Updated distance measurement script
* 3x3 convolution addition (#97)
Added a convolution algorithm for a general 3x3 kernel
---------
Co-authored-by: robinferede <robinferede@tudelft.nl>
Co-authored-by: yamacbirol <y.birol@student.tudelft.nl>
Co-authored-by: dvanwolffelaar <50547974+pigparty6@users.noreply.github.com>
This mode is not really used and not even recommended. It is also not
implemented in all firmwares. If a direct call to stabilization command
is needed, it should be done with a specific function but not from a
builtin instruction from the flight plan.
It was discussed in #3208, but not applyied because of nav_heli_spinup.
A new h_mode 'NONE' allows to disable guidance and stabilization while in
NAV mode, which allows to set directly the commands.
* [generator] add support for matrix and struct in airframe
update ENAC airframe and code for indi G1 matrix and IMU calib
* update calibration tool output
* PFC for actuator deflections
* [checks] Preflight check actuators
[checks] PFC actuators
merge-error
* Fixes for other airframes
* [pfc] Fix better debug information for actuator checks
* [modules] Fix warnings in test build
* Update conf/modules/imu_mpu9250_i2c.xml
* Update conf/modules/imu_mpu9250_spi.xml
* [uavcan] Fix possible misconfiguration and overflow
---------
Co-authored-by: Freek van Tienen <freek.v.tienen@gmail.com>
* Hide actuator internal driver number. Should never be used in code.
* Bugfix ... these should not be actutator_driver numbers but INDI output numbers
- old way (based on ins_vectornav) is not supported anymore
- directly send sensor data and receive commands with a dedicated link
- examples with USB link for better results
- update sphinx documentation
- compilation in a single build
* Squash on master
* fix bebeop2_flow
* Divergence is more noisy than previous time... added a low-pass filter, and allow for a higher threshold...
* fixed the sim, removed warnings, removed double airframe
* cleanup airframe, remove all warnings, allow placing camera parameters in sections
* PPRZLINK
* Silent warnings and compile errors
* reintegrated pprzlink
---------
Co-authored-by: guidoAI <guido.de.croon@gmail.com>
* silent warnings make test_tudelft
* [fix] bugfix
* info instead of warning
* fix optical flow landing
* module that can not stop does not need a stop function
* missing CAMERA
* dangerous define not standard
* simulator not working at 120Hz
* When no if-statement was triggered, this is information and not a warning.
* remove doubles
* point to inexisting telemetry
* firmware settings hardcoded to need 7 actuators
* Merge double file into 1
* untested airframe
* old sim can only handle 60Hz
* non-existing telemetry
* old sim not accepting 120Hz
* Unify info messages
* only 60Hz sim
* survey no height
* Missing camera
* WP further from HOME than MAX_DIST_FROM_HOME
* No more warning when there is no heading feedback by design, only an info message
* clean releases
* no warning on free floating heading in manual controlled AC
* no double firmware block: use dual target instead
* fixedwing: PERIODIC must be multiple of TELEMETRY_FREQ
* missing camera
* error with dual heading feedback
* missing kill switch
* remove prefix
* implicit declaration of function 'scb_reset_system'
* implicit declaration of function 'spektrum_try_bind'
* no dual firmware
* shadowed variable
* wrong header
* typo in fix
* TELEMETRY_PERIOD should be a multiple of PERIODIC
* Missing struct dshot actuators_dshot_values in sim during e7781e7b87
* matek sim does not compile
* bebop misses a camera
* silent compile warnings opticflow
* silent compile warnings
* guido fixed
* double prefix
* changed confs
* new way
* setup_actuators setting up 8 actuators needs 8 actuators
* [openuas] so many comments that the compiler failed.
* [tests] make test_tudelft has 4 coonfs
* [ins_flow] depends on gps (called in initialization of NED)
* [doc] update
* update naming convention
* an octocopter needs 8 ports please
* pprz_can_init type change
* changed conf
* [rpm_actuators] actuators on a bus require indices
* Fix all other ABI RPM messages
* [tools] Add servo driver offset in gen_airframe
* [fix] test actuators_bebop
* [test] disco fix
---------
Co-authored-by: Freek van Tienen <freek.v.tienen@gmail.com>
Add two new items in module's dependency:
- recommends: a recommended module tells the sorting algo that if the module is found, it should be sorted accordingly. It is useful for optional dependencies, like shell or mission in some modules
- suggests: if a functionality is not provided by the user, a module can suggest a list of modules that can provide them. It is a convenient way to have "default" modules.
As a result the former autoload node is removed and replaced by suggested modules.
Fix upload failing if using PX4 bootloader on a Pixracer R14/15 Flightcontroller to upload the PPRZ AP main firmware. Tested with Fix Pixracer R14 and one R15
Fixes#2974 Tested with tested with BMP Firmware v1.9.0 Hardware v2.3 OK and to test NOPWR in airframe defined:
<configure name="FLASH_MODE" value="SWD_NOPWR"/>
<configure name="BMP_PORT" value="/dev/ttyACM0" />
To fix#2974 tested with:
tested with BMP Firmware v1.6.1 Hardware v1.0 OK
tested with BMP Firmware v1.8.2 Hardware v1.0 OK
tested with BMP Firmware v1.6.1 Hardware v2.0 OK
tested with BMP Firmware v1.8.2 Hardware v2.3 OK
tested with BMP Firmware v1.9.0 Hardware v2.3 OK
* [PX4_Bootloader] update firmware generator and upload scripts with latest versions
* [PX4_flash] fix px4_flash module to support ChibiOS USB driver
* [PX4_flash] fix px4_flash FBW firmware upload through AP
* [chibios] change USB serial descriptor strings to the ones used in STM32 arch
* reboot to boot-loader for ChibiOS flash