* 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.
* fix guidance_v in flight plan and remove old settings
* nav radius, descend and climb
* [stab] make a attitute set quat function
* fix function name
* fix parsing of variables in proc, don't use = in fp
* fix nav heading in modules
* fix some more errors
* fix var name
This is a complete rework of the navigation for rotorcraft with the key features:
- all nav functions and interface in float
- nav function are registered (decoupling between nav API and implementation of standard pattern)
- submodes to specify if setpoint is a position (legacy), speed or accel (better integration of algorithms like GVF)
- guidance (H and V) is reorganized with default function to implement (run_pos, run_speed, run_accel)
- guidance control (the old default PID) is separated from the guidance logic
---------
Co-authored-by: Freek van Tienen <freek.v.tienen@gmail.com>
this is not a proper fix, but a workaroud to compile example files and
prevent to use the old ins_neutrals.xml file that is no longer valid.
the issue of ins neutrals should be treated correctly later, either by
adding proper settings to each modules that requires it, or using a
ins_common module
some errors after #2828
- fix all airframes using dual boards
- fix calls to ap_state or old imcu API
- fix some includes
- protect some code to compile test programs (without 'commands' API)
close#2840
* [cleaning] removing some old stuff
- infrared sensors and related ahrs
- mkk and asctec actuators
- old carto modules
- fix bebop actuators for NPS
- clean airframe and conf
* [conf] add back asctec_v2 actuators that is still being used
* [ocaml] massive update of the build process
convert individual code generator to a single process, parsing everything once and calling the required generators
- remove all subsystems makefiles
- fix module name
- example of radio file without ctl attribute
* [build] start with flight plan to make semaphore happy
* [ocaml] move the buffer outside the lazy block
for some reason, it seems to make problems with compilation server
Semaphore
it really makes no sense, but nevermind...
Basic support for a rover firmware based on ChibiOS and generated AP:
- simple control loop
- new navigation layer based on registered functions
- xbee_api for telemetry, gps_passthrough for ins
- basic telemetry and settings files
* First shot towards a separate HITL target
* Changes in HITL - still doesn't compile
* Added makefile selection
* HITL target works for fixedwing and rotorcraft - still needs cleanup and TLC
* Removed info messages from compilation process
* [autopilot] refactor autopilot API for both firmwares
With this, fixedwing and rotorcraft are mostly using the same interface
for the autopilot. Some specific code and messages handling are still
firmware dependent.
A large part of the autopilot logic of the fixedwing is moved from
main_ap to autopilot_static.
More getter/setter functions are provided.
* [autopilot] update the rest of the system and the conf
for using the refactored autopilot API
* [autopilot] fix some errors from CI servers
* [actuators] use dummy actuators module to prevent autoloading
* Rename Bart_heliDD_INDI.xml to tudelft_bs_helidd_indi.xml
* Rename Bart_heliDD_pid.xml to tudelft_bs_helidd_pid.xml
* Delete tudelft_course2016_bebop_colorfilter.xml
* Delete tudelft_course2016_bebop_avoider.xml
* [actuators] don't autoload actuators when set to 'none'
* [gcs] autodetect firmware for strip mode button
* update INDI tu use full control effecitvens matrix
Instead of using commands (roll, pitch, yaw, thrust), give the
controller direct control over all actuators.
This allows for online individual actuator control effectiveness
estimation and inversion, as well as better saturation handling.
The INDI controller as it was previous is renamed to 'simple'.
* Made INDI more flexible wrt number of actuators
- 4x4 matrix inverse to accomodate the thrust axis as well
- support for more actuators
- cleanup of code
* Change filters guidance indi to butterworth
* Added body acceleration to state interface
* Better adaptation and guidance thrust increment
- Adaptation flexible wrt. number of actuators.
- Added adaptation of the specific force effectiveness of the actuators.
- Added connection to guidance INDI through ABI. The thrust increment is
caclulated in guidance INDI and sent to the stabilization.
* lower case variables
* change filter of indi to butterworth
* INDI fix array index & no declarations in for loop
- Also added doxygen comments
* Added actuators_pprz
the array actuators is used to drive the servos, so a new array to store
the command to the actuators in pprz scale is needed
* Removed hardcoded scaling
* Lsm303d spi driver
* Use lsm303d for pixhawk instead of depricated lsm303dlhc
* Fixed the actual acc problem
* Removed lsm303dlhc_spi device, which does not even exist
* Updated acc calibration after solving scaling bug
* INDI adaptive tuned Iris
* Conf stuff
* Remove seperate pid airframe, as indi works pretty good and I'm not maintaining it anyway
* Fixed units in airframe file
* Enlarged range of slider for indi max rates
* [rotorcraft] allow to change some modes from settings even without RC
see #1819
* [rotorcraft] allow some more modes without RC
* [joystick] change mode directly instead of rc_auto2
* [rotorcraft] change handler name to avoid confusion
* [imu] convert imu subsystems to modules
Also
- get rid of explicit imu init|event|periodic calls in main
- each imu implementation has their own imu_x_init/event/periodic
* [imu] fix some imu modules
* [imu] fix bad paths
* [imu] add imu_common module that every implementation autoloads
and put body_to_imu settings in imu_common module
* [imu] fix imu_ardrone2
* [conf] add imu_common settings module in conf_example and conf_tests
This pull request is for the guidance algorithms used to control hybrid drones like the Quadshot and MavShot. It supports autonomous waypoint navigation as well as "forward-flight". The code was flight tested in autonomous waypoint navigation mode, including autonomous landing (using sonar).
the yaw of a typical quadrotor easily saturates. One of the problems that occur when asking for a large change in yaw angle, is that the quadrotor can build up so much angular velocity in the yaw axis, that it can not physically slow down before reaching the yaw setpoint due to saturating. This will result in overshoot.
This can be helped by adding a yaw rate limit, which this PR does for the INDI controller.
meant for controlling the rotorcraft via external input (from a module or datalink message)
Currently positions mode only:
- specify frame via first 4 bits in flags:
- 0x0: LOCAL_NED
- 0x1: LOCAL_OFFSET_NED
- 0x2: BODY_NED
- 0x3: BODY_OFFSET_NED
"pleasent" rate control without reference model
- updated airframes with removal of rate control reference model
- removed everything related to rate reference
use UDP telemetry in NPS sim
When launching a Simulator session from the Paparazzi Center, link should be automatically started as well.
If sitl is started directly, one also needs to start link with the -udp option.