Make it possible to set the command vector from the stabilization INDI controller, when STABILIZATION_INDI_COMMANDS array is defined. The benefit is a simpler configuration of the control_laws section of the airframe file when using INDI.
Be careful that with this, a "correct" failsafe_value is needed for the commands, since it is the value applied in KILL mode. Some special keywords (e.g. MOTOR_STOP) are added to help avoiding mistakes.
Backward compatible if STABILIZATION_INDI_COMMANDS is not defined.
- add example airframe
- add special names for command failsafe values:
- MOTOR_STOP = MIN_PPRZ = -9600
- MAX_PPRZ = 9600
- MOTOR_IDLE = 0
This PR allows to redefine the outer-loop for stabilization and
guidance, and to specify the guidance model for something else than a
quarotor (but still not an hybrid).
Two use case are proposed:
- replace the PD control of the outer-loop (still used by default) by
and Hinfinity controller
- parametrize the guidance for an hexa-copter with tilted motors,
allowing to produce side force for lateral motion control.
* [fix] fix some bugs
small errors from compilation tests
* Attempt to fix the detection of failing tests
Side effect: the file issues.md is not produced anymore, but still available in stdout, so needs a manual copy if needed
- possibility to use basic PID with steering rover
- fix navigation
- add support for mission mode
- fix simulator (orientation was wrong, leading to opposite steering
between sim and reality)
- add support of 2 wheels rover in simulation
- add and update config files
New message can set position, speed, acceleration and heading setpoint
for an accurate trajectory tracking.
Also fix the update of ref when h_ref is disabled.
The Ranger T1 is a tilt-rotor hybrid plane. As a first basic approach,
two separated controls are used for hovering (INDI) and forward flight
(PID). The mixing is done by a dedicated module and the autopilot is
customized to support the specific modes.
A simple PID controller is added to the rotorcraft firmware as it is not
possible to directly reuse the one from fixedwing firmware.
In a future work, a full INDI version might be used, but this approach
can still serves as an example of customized autopilot.
A simulation model for JSBSim is also provided.
* [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++
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
* first push
* temp tracking of new pprz link branch
* update of pprzlink
* fix highspeed telem
* fix telem
* Add example guidance eff mat msg streaming
* track new pprzlink
* Lighter STAB ATTITUDE
* delete old msg
* fix bug
* removed warning
* Fix bug
* change conf to match new messages
* fixed indentation
* No need to stream u_cmd as it is already in COMMANDS
* track new pprzlink
* Move RC6CH to new pull request
* Remove ACTUATORS SATE
* Use different telemetry
* Small fix
* Track pprzlink master
* WLS Debug
WLS Debug
* track new develop branch
* WLS to use pointer of struct to allow multiple calls of WLS in the same control loop
* additional changes and bug fixes to wls struct pointer rework
* Track new pprzling branch with wls msg additions
* code clean up
* Implement new WLS in guidance and stabilization
* code clean up
* add wls mesg to telemetry. Fix stabilization wanring.
* track pprzlink
* Better casing
* Use WLS_N_U_MAX and WLS_N_V_MAX
* Register periodic telemetry of WLS only if WLS is used
* Track master pprzlink
* Shortened explanation of parameters
* track pprzlink master
---------
Co-authored-by: Tomaso Maria Luigi De Ponti <48210579+tmldeponti@users.noreply.github.com>
Co-authored-by: tomaso_de_ponti <tomasodp@gmail.com>
* Actuators in PPRZ values
* New messages
* Dual Actuator messages
* ACTUATORS_RAW for driver_val and ACTUATORS for pprz_val
* New PPRZLINK
---------
Co-authored-by: Freek van Tienen <freek.v.tienen@gmail.com>
* Update rotwing
fix merge
use same pusher effectiveness in guidance INDI
Correct spaces
Apply suggested fix
* Rotwing default altitude 25kg
* sensible values for max lat accel
---------
Co-authored-by: Ewoud Smeur <e.j.j.smeur@tudelft.nl>
* [chibios] remove unecessary option that makes a warning on H7
see ChibiOS forum: http://forum.chibios.org/viewtopic.php?t=5830
* [guidance] fix hybrid guidance
after merging #3248
* [natnet] remove call to function that doesn't exist
issue were only on verbose mode
* [conf] remove bebop_flip aiframe file
The FLIP mode is not supported anymore, better remove this example.
If flip is really needed, it should be implemented as a custom mode in
generated autopilot.
* max bank in deg
* takeoff no attitude msec timer
* Prepared elevator moment compensation fix
* [EHVB_rotwing fp] Updated takeoff stratgey with roll and pitch check and added standby_free to flightplan
* [fp EHVB] Takeoff 3 seconds on att 0,0
* increase filter freq and setting for max acc
* [rot_wing_eff_sched] Elevator 5 degrees higher
* [rot_wing] Decreased cutoff frequencies of filters
* [modules] Support dual ublox GPS modules
* [ekf2] Add failsafe remove yaw
* Reverted acceleration limits
* takeoff procedure update
* [flight_plan] Takeoff when hover motors are running
* scale elevator ctrl eff in transition
* [conf] Fix takeoff
* Higher pitch gains
* Fix conf
* Add extra throttle for spinup
* Update calibration
* max_bank in Radians only except in xml/gcs with auto-conversion
* cleanup
* Use flightplan variables instead...
* fix test
* revert debugging action
* cleanup unused
* cleanup more
* Fix compile bug
* [pfc] Fix actuators
* Add follow tests
* reduce pitch weight in forward flight
* correctly set cmd thrust in INDI
* fix takeoff unequal roll effectiveness and not in_flight
* Fix heading in approach
* fix double define and roll scaling setting
* settings names and roll scaling in right settings
* moving simulator stuff
* [flight_plan] Update angel for takeoff
* Update conf
* Conf update
* [conf] Update checks
* land in approach
* Fix flightplan
* Update sw/ground_segment/python/moving_base/moving_base.py
* input params for moving base sim
* no elevator compensation
---------
Co-authored-by: Ewoud Smeur <e.j.j.smeur@tudelft.nl>
Co-authored-by: Dennis van Wijngaarden <32736330+Dennis-Wijngaarden@users.noreply.github.com>
Co-authored-by: Freek van Tienen <freek.v.tienen@gmail.com>
* max bank in deg
* Fix allocation switching problem
* [rot_wing_v3] Updated max bank in all airframes
* Update sw/airborne/modules/checks/preflight_checks.c
Co-authored-by: Gautier Hattenberger <gautier.hattenberger@enac.fr>
* use unit and alt_unit for conversions instead
* remove needless conversion
* Also fix normal INDI to fit the code
---------
Co-authored-by: Ewoud Smeur <e.j.j.smeur@tudelft.nl>
Co-authored-by: Christophe De Wagter <dewagter@gmail.com>
Co-authored-by: Gautier Hattenberger <gautier.hattenberger@enac.fr>