By Balaji Balasubramaniam , Hamid Bagheri , Sebastian Elbaum , and Justin Bradley
NIMBUS Lab, University of Nebraska - Lincoln
Successful cyber-physical system controllers evolve as they are refined, extended, and adapted to new systems and contexts. This evolution occurs in the controller design and also in its software implementation. Model-based design and controller synthesis can help to synchronize this evolution of design and software, but such synchronization is rarely complete as software tends to also evolve in response to elements rarely present in a control model, leading to mismatches between the control design and the software. In this paper we perform a first-of-its-kind study on the evolution of two popular open-source safety- critical autopilot control software – ArduPilot, and Paparazzi, to better understand how controllers evolve and the space of potential mismatches between control design and their software implementation. We then use that understanding to prototype a technique that can generate mutated versions of code to mimic evolution to assess its impact on a controller’s behavior.
We find that 1) control software evolves quickly and controllers are rewritten in their entirety over their lifetime, implying that the design, synthesis, and implementation of controllers should also support incremental evolution, 2) many software changes stem from an inherent mismatch between continuous physical models and their corresponding discrete software implementa- tion, but also from the mishandling of exceptional conditions, and limitations and distinct data representation of the underlying computing architecture, 3) small code changes can have a dramatic effect in a controller’s behavior, implying that further support is needed to bridge these mismatches as carefully verified model properties may not necessarily translate to its software implementation.
A software change resulting from features or limitations of the computing architecture, including software and hardware. In ArduPilot such changes are often intended to better fit or utilize existing resources such as memory, energy, or bandwith.
Commit id: 452749149fd4d3e910e6ed22a6f861d5862a4b0
Committers comment: convert AC_PID library to AP_Param
... +const AP_Param::GroupInfo AC_PID::var_info[] PROGMEM={ + AP_GROUPINFO("P", AC_PID, _kp), + AP_GROUPINFO("I", AC_PID, _ki), + AP_GROUPINFO("D", AC_PID, _kd), ...
A software change that modifies a measured value or a numerical calculation in order to more closely mimic continuous mathematics. In ArduPilot such changes often consist of utilizing improved functions in advanced math libraries or newer sensor devices, and simply using types with more bits for representation.
Commit id: 872583f4412ade16a31e8b7bd0363c294a20d301
Committers comment: AC_AttitudeControl: removed fast_atan
... - _pitch_target = constrain_float(fast_atan(-accel_forward/(GRAVITY_MSS * 100))*(18000/M_PI_F),-lean_angle_max, lean_angle_max); + _pitch_target = constrain_float(atanf(-accel_ forward/(GRAVITY_MSS * 100))*(18000/M_PI_F),-lean_angle_max, lean_angle_max); ...
A software change resulting from the intrinsic discrete nature of the computing system in representing time and space. In ArduPilot such changes often consist of handling the inherent mismatch between continuous and discrete paradigms in representing and manipulating time in the calculations of derivatives and integrals, in the manipulation of variables associated with the vehicle location or motion, or in governing the periodic execution of certain pieces of code (e.g.tasks).
Commit id: 88ec13b10d913d72cdb0b24ba2e1244e6ed37734
Committers comment: fix build
... - if (dt > POSCONTROL_ACTIVE_TIMEOUT_SEC) { + if (dt > POSCONTROL_ACTIVE_TIMEOUT_MS*1.0e-3f) { ...
A software change resulting from the handling of anomalous conditions that would otherwise result in computational failures. In ArduPilot such changes often consist in additional support for conditions to adhere to either mathematical laws (e.g. dividing by zero), or computational laws (e.g. unexpected input, seg fault, etc.).
Commit id: ae77c18a1933dcb00eb9fc838872119b2250915c
Committers comment: Input to the PID controller is protect against NaN and INF.
... + // don’t pass in inf or NaN + if (isfinite(input)){ ...
We required artifacts that included significant control software systems with many available versions reflecting their evolution. This choice was opportunistic in that Ardupilot and Paparazzi have been widely deployed, so findings in these code bases can still be valid for similar systems (e.g.,LibrePilot , PX4 ). The first artifact is the popular ArduPilot (The Ardupilot website reports that over one million vehicles use this code base, including companies like 3DR, PrecisionHawk, AgEagle, Intel and Insitu/Boeing, Kespry, branches of the US military, and NASA among others.), that provides a sophisticated control system for autopilot support that can operate on a variety of vehicles including airplanes, multirotors, helicopters, and boats. It has over nine years of well maintained history, and its code base is accessible through a git repository that stores the code changes committed by the developers since 2010. As of May 2019, the repository includes 448 contributors that have committed almost 38,000 changes. The latest version of ArduPilot contains approximately 250k lines of code (LOC) in C/C++. We focus our analysis on the evolution of the core control files that provide coverage of functionality associated with position and attitude control. We analyzed 585 commits (excluding the five first draft commits for the firve targeted files), where each commit included changes to at least one of the target files.
The second artifact is Paparazzi UAV , which has over 13 years of development history. Paparazzi UAV provides autopilot capabilities for fixed-wing, and rotorcraft vehicles. The code base is accessible through a git repository. As of May 2019 there are 99 contributors and ~15,400 changes. The latest version of Paparazzi UAV contains approximately 212k LOC in C/C++. We again selected control files central to position and attitude control, and analyzed 379 commits (excluding the five first draft commits for the firve targeted files), where each commit included changes to at least one of the target files.
S.No | Filename | Commit message | Category | Example | Justification | Link | |
---|---|---|---|---|---|---|---|
Filename | Category | Example | Justification | Link | |||
A1 | AC_PID.cpp | Added D term to APM_PI - need to refactor this as a parent class and two child classes to save code space, remove dupes | First draft | af79eb273f | |||
A2 | AC_PID.cpp | fixed missing return in D value | Non-Control | f9eed9bd9e | |||
A3 | AC_PID.cpp | convert AC_PID library to AP_Param | Resource Attributes | Resource Attributes: line 9: +const AP_Param::GroupInfo AC_PID::var_info[] PROGMEM = { | Resource Attributes: This change stores variable in the flash memory instead of storing in static random access memory (RAM) to permanently store the PID controller gain variables. | 452749149f | |
A4 | AC_PID.cpp | added indexes to group info structures | Non-Control | 9c5a5473ab | |||
A5 | AC_PID.cpp | made I term return in same pattern as D term | Software Maintenance | 24ce02c6a4 | |||
A6 | AC_PID.cpp | AC_PID - added more paranoid checking that imax is positive in constructor, operator() and load_gains methods | Cyber-Physical matches | 24a471ff8f | |||
A7 | AC_PID.cpp | AP_Param: update PID libraries for new constructor syntax | Cyber-Physical matches | 5e8fe8d93e | |||
A8 | AC_PID.cpp | uncrustify libraries/AC_PID/AC_PID.cpp | Software Maintenance | fc9f1a8216 | |||
A9 | AC_PID.cpp | AC_PID: Create Leaky Integrator Function. | Cyber-Physical matches | 1d12b781a0 | |||
A10 | AC_PID.cpp | AC_PID: save 8 bytes per AC_PID object | Software Maintenance | eac1ad49d6 | |||
A11 | AC_PID.cpp | AC_PID: suppress the derivative immediately after reset | Time and Space Model, Exception Handling, Initialization of Computing Type | Time and Space Model: line 63: + derivative = 0; ,Exception Handling: line 59: + if (isnan(_last_derivative)) { ,Initialization of Computing Type: line 101: + _last_derivative = NAN; | Time and Space Model: This change modifies the derivative variable which is a instantenous time discretized low pass filter, Exception Handling: This change introduces a predicate condition to check if the waypoint acceleration variable is equal to zero to avoid divide-by-zero computational failure, Initialization of Computing Type: This change keeps track of the destination reached state using a special computational type to avoid inconsistent initial states. | 5e7ca5b0f8 | |
A12 | AC_PID.cpp | AC_PID, AP_AHRS: added descriptions to some parameters | Software Maintenance | 24317e721b | |||
A13 | AC_PID.cpp | AC_PID: fixed build on ARM | Cyber-Physical matches | 2294acc652 | |||
A14 | AC_PID.cpp | Add AVR compatibility header for missing math.h definitions. | Precision & Accuracy | Precision & Accuracy: line 6: +#include |
Precision & Accuracy: This change includes a different math library for performing math related operations. | 4fa7bb1486 | |
A15 | AC_PID.cpp | AC_PID: fixed indent-tabs-mode | Non-Control | 8c25a504c3 | |||
A16 | AC_PID.cpp | AC_PID: results returned as float | Precision & Accuracy | Precision & Accuracy: line 29: +float AC_PID::get_p(float error) const | Precision & Accuracy: This change converts error variable from int32 to float for better numerical representation. | fbc5af2705 | |
A17 | AC_PID.cpp | AC_PID: Remove get_leaky_i function which is now found in AC_HELI_PID. | Software Maintenance | f1c3f2a3d1 | |||
A18 | AC_PID.cpp | AC_PID: Add method to set the D-term Filter Rate from main code. | Cyber-Physical matches | b35ec4339e | |||
A19 | AC_PID.cpp | AC_PID: add input filtering and restructure | Initialization of Computing Type, Time and Space Model | Initialization of Computing Type: line 59: + _flags._reset_filter = true;,Time and Space Model: line 66: +void AC_PID::set_dt(float dt) | Initialization of Computing Type: This change sets the input filter variable to a special boolean computational type to avoid inconsistent initial states, Time and Space Model: This change adds a function that sets the time step in seconds |
517448e536 | |
A20 | AC_PID.cpp | AC_PID: replace set_filt_hz method with filt_hz | Software Maintenance | Precision & Accuracy: line 74: + _filt_hz.set(fabs(hz)); | c10b0b34ca | ||
A21 | AC_PID.cpp | AC_PID: remove include of stdio.h | Non-Control | 12724e9556 | |||
A22 | AC_PID.cpp | AC_PID: Protect against NaN and INF | Exception Handling | Exception Handling: line 88: + if (isfinite(input)){ | Exception Handling: This change introduces a predicate that checks whether the input variable is infinite or undefined before resetting the input fiter | ae77c18a19 | |
A23 | AC_PID.cpp | AC_PID: more protection against NaN and Inf | Exception Handling | Exception Handling: line 113: + if (!isfinite(input)) { | Exception Handling: This change introduces a predicate that checks whether the input variable is infinite or undefined before resetting the input fiter | a095a8c3a1 | |
A24 | AC_PID.cpp | AC_PID: calculate filt_alpha every time the filter is run | Cyber-Physical matches | 6ea91d012e | |||
A25 | AC_PID.cpp | AC_PID: replace floating point '==' with is_equal | Precision & Accuracy | Precision & Accuracy: line 135: + if(!is_equal(_ki, 0.0f) && !is_equal(_dt, 0.0f)) { | Precision & Accuracy: This change includes a different math library for performing math related operations, and integer zero in predicate condition is represented as floating point for better numerical representation and comparison. | 303cfd683a | |
A26 | AC_PID.cpp | AC_PID: replace is_equal with is_zero | Precision & Accuracy | Precision & Accuracy: line 135: + if(!is_zero(_ki) && !is_zero(_dt)) { | Precision & Accuracy: This change includes a different math library for performing math related operations. | 67b0c6f5c4 | |
A27 | AC_PID.cpp | AP_PID: compiler warnings: apply is_zero(float) | Precision & Accuracy | Precision & Accuracy: line 135: + if(!AP_Math::is_zero(_ki) && !AP_Math::is_zero(_dt)) { | Precision & Accuracy: This change includes a different math library for performing math related operations. | 01180d52c4 | |
A28 | AC_PID.cpp | AC_PID: revert AP_Math class change | Precision & Accuracy | Precision & Accuracy: line 202: + if (is_zero(_filt_hz)) { | Precision & Accuracy: This change includes a different math library for performing math related operations. | 33555b7f12 | |
A29 | AC_PID.cpp | AP_PID: replace fabs() with fabsf() | Precision & Accuracy | Precision & Accuracy: line 55: + _imax = fabsf(initial_imax); | Precision & Accuracy: This change returns the absolute value in float instead of double for better numerical representation | 9d74f57ed3 | |
A30 | AC_PID.cpp | AC_PID: Integrate PID Logging functionality. | Non-Control | 967071ca62 | |||
A31 | AC_PID.cpp | AC_PID: standardize inclusion of libaries headers | Non-Control | 286d084d83 | |||
A32 | AC_PID.cpp | Remove use of PROGMEM | Non-Control | 831d8acca5 | |||
A33 | AC_PID.cpp | Global: rename min and max macros to uppercase | Non-Control | 2591261af6 | |||
A34 | AC_PID.cpp | AP_Math: Cleaned macro definitions | Non-Control | 5148e41c1a | |||
A35 | AC_PID.cpp | AC_PID: shorten FILT_HZ to FILT | Software Maintenance | 920425567c | |||
A36 | AC_PID.cpp | AC_PID: fix parameter description | Non-Control | 227e4f86d7 | |||
A37 | AC_PID.cpp | Global: remove mode line from headers | Non-Control | 152edf7189 | |||
A38 | AC_PID.cpp | AC_PID: added feed-forward to AC_PID | Cyber-Physical matches | b97bf5d15e | |||
A39 | AC_PosControl.cpp | AC_AttControl: first draft of PosControl class | First draft | 05bb943a69 | |||
A40 | AC_PosControl.cpp | AC_PosControl: add throttle controller | Precision & Accuracy, Time and Space Model, Exception Handling, Initialization of Computing Type | Precision & Accuracy: line 80: + linear_distance = POSCONTROL_ALT_HOLD_ACCEL_MAX/(2.0f*_pi_alt_pos.kP()*_pi_alt_pos.kP());, Exception Handling: line 559: - if (_track_length == 0.0f) {, Time and Space Model: line 165: + uint32_t now = hal.scheduler->millis();, Initialization of Computing Type: line 103: + _limit.pos_up = false; | Time and Space Model: This change governs the periodic execution of calculating the desired acceleration and then calling the acceleration based throttle controller, Exception Handling: This change removes a divide-by-zero predicate when calculating total distance to the destination, Precision & Accuracy: This change converts the integer value 2 to floating point for better numerical representation and calculation of linear distance, Initialization of Computing Type: This change clears the position limit flag variable using a special boolean computational type to avoid inconsistent initial states. |
dcac124105 | |
A41 | AC_PosControl.cpp | AC_PosControl: add init take-off | Cyber-Physical matches | 8988b48ad8 | |||
A42 | AC_PosControl.cpp | AC_PosControl: add get_alt_error method | Non-Control | 3ce1c0a9d5 | |||
A43 | AC_PosControl.cpp | AC_PosControl: add horizontal pos control | Time and Space Model, Exception Handling, Initialization of Computing Type | Time and Space Model: line 404: + uint32_t now = hal.scheduler->millis();, Exception Handling: line 632: + if (kP <= 0.0f) {, Initialization of Computing Type: line 63: + _flags.force_recalc_xy = false; | Time and Space Model: This change governs the periodic execution of updating the horizontal position controller that is called at 100hz or higher, Exception Handling: This change adds a predicate condition to ensure proportional gain is greater than zero to avoid divide-by-zero computational failure, Initialization of Computing Type: This change sets the recalculation of position in horizontal position controller using a special boolean computational type to avoid inconsistent initial states. | bbcf8cc84c | |
A44 | AC_PosControl.cpp | AC_PosControl: remove debug | Software Maintenance | 80ae3dca2e | |||
A45 | AC_PosControl.cpp | AC_PosControl: recalculate leash when speed or accel modified | Initialization of Computing Type | Initialization of Computing Type: line 69: + _flags.recalc_leash_xy = true; | Initialization of Computing Type: This change sets the recalculation of leash lengths using a special boolean computational type to avoid inconsistent initial states |
de34359808 | |
A46 | AC_PosControl.cpp | AC_PosControl: remove debug | Software Maintenance | 1b8791a142 | |||
A47 | AC_PosControl.cpp | AC_AttControl: alternative get_stopping_point_z | Cyber-Physical matches | 26b257c8ba | |||
A48 | AC_PosControl.cpp | AC_PosControl: make some methods const | Cyber-Physical matches | 551836c49d | |||
A49 | AC_PosControl.cpp | AC_PosControl: use trig values from ahrs | Precision & Accuracy | Precision & Accuracy: line 639: + accel_forward = _accel_target.x*_ahrs.cos_yaw() + _accel_target.y*_ahrs.sin_yaw(); | Precision & Accuracy: This change includes a different math library for performing math related operations and numerical representation. | 8b8d6a8e01 | |
A50 | AC_PosControl.cpp | AC_PosControl: replace APM_PI with AC_P | Cyber-Physical matches | 94fb9c4274 | |||
A51 | AC_PosControl.cpp | AC_PosControl: throttle rate to simple P controller | Cyber-Physical matches | 9130c88f15 | |||
A52 | AC_PosControl.cpp | AC_PosControl: update _pos_error if it is being limited | Cyber-Physical matches | 024855014f | |||
A53 | AC_PosControl.cpp | AC_PosControl: fixed leash length calc for descent speed | Cyber-Physical matches | 345115fddd | |||
A54 | AC_PosControl.cpp | AC_PosControl: update some comments re leash lengths | Software Maintenance | dd45647626 | |||
A55 | AC_PosControl.cpp | AC_PosControl: replace safe_sqrt with pythagorous2 | Cyber-Physical matches | 90e205c905 | |||
A56 | AC_PosControl.cpp | PosControl: update_pos_controller renamed to update_xy_controller | Software Maintenance | 7e376bc517 | |||
A57 | AC_PosControl.cpp | AC_PosControl: bug fix to vertical speed limit | Cyber-Physical matches | 6f6c9e2585 | |||
A58 | AC_PosControl.cpp | AC_PosControl: stop I term build-up when motors at max | Cyber-Physical matches | e565ee6d33 | |||
A59 | AC_PosControl.cpp | AC_PosControl: bugfix for freezing I-term build-up | Cyber-Physical matches | 09a35cf90f | |||
A60 | AC_PosControl.cpp | AC_PosControl: update_xy_controller allows not resetting I term | Cyber-Physical matches | 6c71569775 | |||
A61 | AC_PosControl.cpp | AC_PosControl: add keep_xy_I_terms method | Initialization of Computing Type | Initialization of Computing Type: line 67: + _flags.keep_xy_I_terms = false; | Initialization of Computing Type: This change ensures horizontal position controller's PID's I terms are not cleared using a special boolean computational type to avoid inconsistent initial states | 098f8169b0 | |
A62 | AC_PosControl.cpp | AC_PosControl: set_speed_z accepts positive descent speeds | Cyber-Physical matches | 9f63de9b59 | |||
A63 | AC_PosControl.cpp | AC_PosControl: add set_target_to_stopping_point_xy method | Cyber-Physical matches | 937e9ea687 | |||
A64 | AC_PosControl.cpp | AC_PosControl: add is_active_z method | Resource Attributes, Time and Space Model, Initialization of Computing Type | Resource Attributes: Consolidated z-axis timeout checks to save 4bytes of RAM, Time and Space Model: line 195: + uint32_t now = hal.scheduler->millis();, Initialization of Computing Type: line 67: + _flags.reset_accel_to_throttle = true; | Resource Attributes: This change is specifically intended to saves 4 bytes of RAM memory by consolidating different control logics of z-axis timeout checks, Time and Space Model: This change governs the periodic execution of z-axis update position controller, Initialization of Computing Type: This change resets the acceleration to throttle of the z-axis position controller a special boolean computational type to avoid inconsistent initial states | a1f1dd8059 | |
A65 | AC_PosControl.cpp | AC_PosControl: include vel error when get_stopping_point_z | Cyber-Physical matches | 21c93e48ab | |||
A66 | AC_PosControl.cpp | AC_PosControl: lean_angles_to_accel added for smooth initialisation | Time and Space Model, Initialization of Computing Type | Time and Space Model: line 514: + _last_update_xy_ms = hal.scheduler->millis();, Initialization of Computing Type: line 67: + _flags.reset_desired_vel_to_pos = true; | Time and Space Model: This change governs the periodic execution of initializing position controller, Initialization of Computing Type: This change resets the acceleration carried out by rate based throttle controller using a special boolean computational type to avoid inconsistent initial states | 0819e05896 | |
A67 | AC_PosControl.cpp | AC_PosControl: remove unused _cos_yaw variable | Resource Attributes | Resource Attributes: Also removed _sin_yaw, _cos_pitch, _step saving a total of 17bytes of RAM RAM |
Resource Attributes: This change saves 17 bytes of RAM memory by removing unused variables | cd8b1f278c | |
A68 | AC_PosControl.cpp | AC_PosControl: remove reset_I_xy | Cyber-Physical matches | c13db680b7 | |||
A69 | AC_PosControl.cpp | AC_PosControl: set alt hold accel control D term filter | Time and Space Model | Time and Space Model: line 78: +void AC_PosControl::set_dt(float delta_sec) | Time and Space Model: This change adds a function that sets the time step in seconds | 29ca7a10df | |
A70 | AC_PosControl.cpp | AC_PosControl: fix typo in D-filter definition | Non-Control | 2b0f142a17 | |||
A71 | AC_PosControl.cpp | AC_PosControl: freeze feed forward and vector fixes | Initialization of Computing Type | Initialization of Computing Type: line 310: + _flags.reset_rate_to_accel_z = false; | Initialization of Computing Type: This change reset last velocity target to current target using a special boolean computational type to avoid inconsistent initial states | 0d87298221 | |
A72 | AC_PosControl.cpp | AC_PosControl: freeze feed forward for alt control in Auto | Software Maintenance | 8bbce7e658 | |||
A73 | AC_PosControl.cpp | AC_AttControl: move freeze_ff to flags structure | Software Maintenance | 4d4c7a2118 | |||
A74 | AC_PosControl.cpp | AC_PosControl: add xyz velocity controller | Time and Space Model, Initialization of Computing Type | Time and Space Model: line 623: + uint32_t now = hal.scheduler->millis();, Initialization of Computing Type: line 601: + _flags.reset_desired_vel_to_pos = true; | Time and Space Model: This change governs the periodic execution of initializing position controller, Initialization of Computing Type: This change resets the acceleration carried out by rate based throttle controller using a special boolean computational type to avoid inconsistent initial states | 82ed70b25e | |
A75 | AC_PosControl.cpp | AC_AttitudeControl: Fixup some minor mistakes in AC_PosControl | Precision & Accuracy | Precision & Accuracy: line 47: + _roll_target(0.0f) | Precision & Accuracy: This change converts target roll variable in to float for better numerical representation. | 5f66027ba3 | |
A76 | AC_PosControl.cpp | AC_AttitudeControl: Limit _pos_target.z to below alt_max before computing error | Cyber-Physical matches | 762bb3e6e8 | |||
A77 | AC_PosControl.cpp | AC_PosControl: cast fabs to float to resolve compiler warnings | Precision & Accuracy | Precision & Accuracy: line 94: +speed_down = (float)-fabs(speed_down); | Precision & Accuracy: This change converts speed variable in to float for better numerical representation. | 9233bbab14 | |
A78 | AC_PosControl.cpp | AC_PosControl: init members to resolve compiler warnings | Precision & Accuracy | Precision & Accuracy: line 51: +_alt_max(0.0f) | Precision & Accuracy: This change converts maximum altitude variable in to float for better numerical representation. | 70568225a6 | |
A79 | AC_PosControl.cpp | AC_PosControl: smooth take-off with accel PID's I term | Cyber-Physical matches | 1362bdc338 | |||
A80 | AC_PosControl.cpp | AC_PosControl: 2hz filter on accel error | Cyber-Physical matches | 665f353416 | |||
A81 | AC_PosControl.cpp | AC_PosControl: 4hz filter on z-axis velocity error | Cyber-Physical matches | cf3b2be99c | |||
A82 | AC_PosControl.cpp | AC_PosControl: remove completed to-do comments | Non-Control | 1754cacf3c | |||
A83 | AC_PosControl.cpp | AC_PosControl: Protect from divide-by-zero in get_stopping_point_xy | Exception Handling | Exception Handling: line 475: + if (kP <= 0.0f || _accel_cms <= 0.0f || vel_total == 0.0f) { | Exception Handling: This change introduces a predicate condition to check if the total velocity variable is equal to zero to avoid computational failure of divide-by-zero | 4a397a8d67 | |
A84 | AC_PosControl.cpp | AC_PosControl: bug fix dt calculation | Time and Space Model | Time and Space Model: line 551: + now = _last_update_xy_ms; | Time and Space Model: This change governs the periodic execution of horizontal position controller | a1cfd03c9b | |
A85 | AC_PosControl.cpp | AC_PosControl: Use sqrt_controller function | Cyber-Physical matches | 779baa006d | |||
A86 | AC_PosControl.cpp | AC_PosControl: use AttControl's sqrt_controller | Cyber-Physical matches | ac7ea2a12c | |||
A87 | AC_PosControl.cpp | AC_PosControl: add force_descend option to set_alt_target_from_climb_rate | Initialization of Computing Type | Initialization of Computing Type: line 140: + void set_alt_target_from_climb_rate(float climb_rate_cms, float dt, bool force_descend = true); | Initialization of Computing Type: This change introduces a boolean variable called force descend that keeps track of state during landing to allow target to move low enough to slow the motors. | e81c1dd5a1 | |
A88 | AC_PosControl.cpp | AC_PosControl: Use blended accelerometer measurement in altitude control | Cyber-Physical matches | bfe71fea82 | |||
A89 | AC_PosControl.cpp | AC_PosControl: Add spike and noise filter to demanded angles | Time and Space Model | Time and Space Model: line 827: + uint32_t now = hal.scheduler->millis(); | Time and Space Model: This change governs the periodic execution of desired acceleration converter | 2dff76394d | |
A90 | AC_PosControl.cpp | AC_AttitudeControl: Add EKF optical flow noise gain scaler | Cyber-Physical matches | e80b1c67cd | |||
A91 | AC_PosControl.cpp | AC_AttitudeControl: Scale angle demand noise filter | Cyber-Physical matches | 12ea1d6e85 | |||
A92 | AC_PosControl.cpp | AC_PosControl: change keep_xy_I_terms to a parameter of init_xy_controller | Initialization of Computing Type | Initialization of Computing Type: line 503: +void AC_PosControl::init_xy_controller(bool reset_I) | Initialization of Computing Type: This change introduces a resetting boolean variable for position controller's PID's I terms to ensure the state of automatically resetting to zero during the next run. | d6e455417f | |
A93 | AC_PosControl.cpp | AC_PosControl: remove various unnecessary timing hacks | Time and Space Model, Initialization of Computing Type | Time and Space Model: line 524: + float dt = (now - _last_update_xy_ms) / 1000.0f;, Initialization of Computing Type: line 543: - _flags.force_recalc_xy = false; | Time and Space Model: This change governs the periodic execution of velocity controller, Initialization of Computing Type: This change removes setting the recalculation of position in horizontal position controller using a special boolean computational type to avoid inconsistent initial states | 557d339cf1 | |
A94 | AC_PosControl.cpp | AC_AttControl: remove deprecated trigger_xy method | Non-Control | 2a5a133bbf | |||
A95 | AC_PosControl.cpp | AC_PosControl: Fill _vel_desired.z for reporting | Non-Control | a580cd83e8 | |||
A96 | AC_PosControl.cpp | AC_PosControl: reincarnate dead block of code | Non-Control | 9ebd0e9960 | |||
A97 | AC_PosControl.cpp | AC_PosControl: remove unnecessary set of desired_accel | Software Maintenance | aeecc46f7b | |||
A98 | AC_PosControl.cpp | AC_PosControl: Enable altitude limit checking. | Cyber-Physical matches | 02f3f96310 | |||
A99 | AC_PosControl.cpp | AC_PosControl: move alt limit to set_alt_target_from_climb_rate | Cyber-Physical matches | 07a0388f25 | |||
A100 | AC_PosControl.cpp | AC_AttitudeControl: Correct comment. | Non-Control | 14d76d158a | |||
A101 | AC_PosControl.cpp | AC_PosControl: allow control of xy rate constraint behavior | Cyber-Physical matches | 3faca88423 | |||
A102 | AC_PosControl.cpp | AC_PosControl: rename xy_mode enum values | Software Maintenance | 186337f18e | |||
A103 | AC_PosControl.cpp | AC_PosControl: modify accel_to_lean_angles to apply filters before yaw rotation | Cyber-Physical matches | e9bbe062f3 | |||
A104 | AC_PosControl.cpp | AC_PosControl: integrate PID input filter | Time and Space Model | Time and Space Model: line 89: +void AC_PosControl::set_dt_xy(float dt_xy) | Time and Space Model: This change adds a function that sets time delta in seconds for horizontal controller | 8d4f0ec80c | |
A105 | AC_PosControl.cpp | AC_PosControl: use 2-axis PI controller | Cyber-Physical matches | 349f1aeceb | |||
A106 | AC_PosControl.cpp | AC_PosControl: rename p_alt_pos to p_pos_z | Software Maintenance | 9866eaded1 | |||
A107 | AC_PosControl.cpp | AC_PosControl: remove THR_HOVER parameter | Software Maintenance | 7de5bccc93 | |||
A108 | AC_PosControl.cpp | AC_PosControl: fix dt sanity checking | Precision & Accuracy, Time and Space Model | Precision & Accuracy: line 531: +#define POSCONTROL_ACTIVE_TIMEOUT_SEC 0.2f, Time and Space Model: line 531: + if (dt > POSCONTROL_ACTIVE_TIMEOUT_SEC) { | Precision & Accuracy: This change converts time representation to float for better numerical representation (actual value present in header file), Time and Space Model: This change alters the time representation from seconds to milliseconds to more accurately estimate the horizontal position controller activity. | 9871b95586 | |
A109 | AC_PosControl.cpp | AC_PosControl: 2d jerk constraint in accel_to_lean_angles | Cyber-Physical matches | 4408c1b935 | |||
A110 | AC_PosControl.cpp | AC_PosControl: add comments and defines for jerk limits | Software Maintenance | 965db2c7f7 | |||
A111 | AC_PosControl.cpp | AC_AttControl: init throttle_hover in constructor | Cyber-Physical matches | 50d2e98aa4 | |||
A112 | AC_PosControl.cpp | AC_PosControl: fix build | Precision & Accuracy, Time and Space Model | Precision & Accuracy: line 534: + if (dt > POSCONTROL_ACTIVE_TIMEOUT_MS*1.0e-3f) {, Time and Space Model: line 534: + if (dt > POSCONTROL_ACTIVE_TIMEOUT_MS*1.0e-3f) { | Precision & Accuracy: This change converts time representation to float for better numerical representation, Time and Space Model: This change alters the time representation from seconds to milliseconds to more accurately estimate the horizontal position controller activity. | 88ec13b10d | |
A113 | AC_PosControl.cpp | AC_PosControl: fix twitch when entering RTL | Initialization of Computing Type | Initialization of Computing Type: line 57: + _flags.reset_accel_to_lean_xy = true; | Initialization of Computing Type: This change resets accel to lean angle step using a special boolean computational type to avoid inconsistent initial states | bb74b8dec8 | |
A114 | AC_PosControl.cpp | AC_PosControl: ensure throttle output above zero | Cyber-Physical matches | 9a3f48cc1f | |||
A115 | AC_PosControl.cpp | AC_AttitudeControl: Formatting fix | Non-Control | 48fb487a8c | |||
A116 | AC_PosControl.cpp | AC_PosControl: don't limit throttle any more | Cyber-Physical matches | d14893fcd5 | |||
A117 | AC_PosControl.cpp | AC_PosControl: change int32/int16 to float in accel_to_throttle | Precision & Accuracy | Precision & Accuracy: line 382: + float thr_out = p+i+d+_throttle_hover; | Precision & Accuracy: This change converts throttle output variable from int32 to float for better numerical representation. | 7abd02baf2 | |
A118 | AC_PosControl.cpp | AC_PosControl: remove accel error filter and set throttle output filter instead | Cyber-Physical matches | 3e0dab7b2d | |||
A119 | AC_PosControl.cpp | AC_PosControl: add feed forward to Alt Hold | Cyber-Physical matches | 7cb3c4ba39 | |||
A120 | AC_PosControl.cpp | AC_PosControl: add relax Alt Hold controllers | Initialization of Computing Type | Initialization of Computing Type: line 173: + _flags.reset_accel_to_throttle = true; | Initialization of Computing Type: This change resets the throttle acceleration using a special boolean computational type to avoid inconsistent initial states | 0aca3c4be6 | |
A121 | AC_PosControl.cpp | AC_PosControl: accessors to log z-axis vel and accel | Non-Control | a632a57d79 | |||
A122 | AC_PosControl.cpp | AC_PosControl: add accel filter parameter | Cyber-Physical matches | c2a6a0a9e2 | |||
A123 | AC_PosControl.cpp | AC_AttitudeControl: use new lowpass filter | Cyber-Physical matches | 87500d9d70 | |||
A124 | AC_PosControl.cpp | AC_PosControl: use LowPassFilterVector2f | Cyber-Physical matches | 738b1967ad | |||
A125 | AC_PosControl.cpp | AC_PosControl: fix thr twitch when changing modes | Cyber-Physical matches | 12957867fd | |||
A126 | AC_PosControl.cpp | AC_PosControl: add_takeoff_climb_rate method | Cyber-Physical matches | 31edd6a72b | |||
A127 | AC_PosControl.cpp | AC_AttitudeControl: compiler warnings: apply is_zero(float) or is_equal(float) and float to doubles | Precision & Accuracy | Precision & Accuracy: line 5: +#include |
Precision & Accuracy: This change includes a different math library for performing math related operations. | 1bca81eaed | |
A128 | AC_PosControl.cpp | AC_AttitudeControl: revert AP_Math class change | Precision & Accuracy | Precision & Accuracy: line 437: + if (is_zero(_ahrs.cos_pitch())) { | Precision & Accuracy: This change modifies a different math library for performing math related operations. | 326b0b33ea | |
A129 | AC_PosControl.cpp | AC_AttitudeControl: use M_PI_F instead of (float)M_PI | Precision & Accuracy | Precision & Accuracy: line 879: + float cos_pitch_target = cosf(_pitch_target*M_PI_F/18000); | Precision & Accuracy: This change modifies a different math library for performing math related operations. | 84ac721340 | |
A130 | AC_PosControl.cpp | AC_AttitudeControl: removed fast_atan | Precision & Accuracy | Precision & Accuracy: line 879: + _pitch_target = constrain_float(atanf(-accel_forward/(GRAVITY_MSS * 100))*(18000/M_PI_F),-lean_angle_max, lean_angle_max); | Precision & Accuracy: This change better represents the arctangent value (in radians) by replacing the fast_atan into atanf used for calculating the target pitch angle. | 872583f441 | |
A131 | AC_PosControl.cpp | AC_PosControl: recalc leash length on speed or accel change | Cyber-Physical matches | d1808c645d | |||
A132 | AC_PosControl.cpp | AC_PosControl: Change motors.get_throttle_out | Software Maintenance | e87ca6de6f | |||
A133 | AC_PosControl.cpp | AC_AttitudeControl: use set_desired_rate() on PID controllers | Cyber-Physical matches | 521dae1c65 | |||
A134 | AC_PosControl.cpp | AC_PosControl: init accel_last_z_cms | Cyber-Physical matches | 11fee21f06 | |||
A135 | AC_PosControl.cpp | AC_PosControl: explicitly set set_alt_target_from_climb_rate params | Cyber-Physical matches | 382f5d087f | |||
A136 | AC_PosControl.cpp | AC_PosControl: init flags | Cyber-Physical matches | d2f93dd379 | |||
A137 | AC_PosControl.cpp | AC_AttitudeControl: Remove unused takeoff jump #define | Software Maintenance | 14882bc6a8 | |||
A138 | AC_PosControl.cpp | AC_AttitudeControl: standardize inclusion of libaries headers | Non-Control | d49f10d2e5 | |||
A139 | AC_PosControl.cpp | AC_PosControl: move accel constraint to accel_to_lean_angles | Cyber-Physical matches | b58cc7ea8d | |||
A140 | AC_PosControl.cpp | AC_PosControl: allow limiting lean angle to avoid alt loss | Cyber-Physical matches | cf5db31053 | |||
A141 | AC_PosControl.cpp | AC_PosControl: add alt hold without feed forward | Initialization of Computing Type | Initialization of Computing Type: line 167: + _limit.pos_up = true; | Initialization of Computing Type: This change sets the state of vertical position leash limit reached while going up to avoid any inconsistencies. | f55c31a157 | |
A142 | AC_PosControl.cpp | AC_PosControl: allow desired vel z to be above speed limit | Cyber-Physical matches | 245f7ce268 | |||
A143 | AC_PosControl.cpp | AC_PosControl: faster z-axis slowdown when over speed | Exception Handling | Exception Handling: line 186: + if (_vel_desired.z < _speed_down_cms && !is_zero(_speed_down_cms)) { | Exception Handling: This change introduces predicate condition to check whether the maximum descent rate is not equal to zero to avoid computational failures. | aec66c5db6 | |
A144 | AC_PosControl.cpp | AC_PosControl: use_desvel_ff flag added | Initialization of Computing Type | Initialization of Computing Type: line 73: + _flags.use_desvel_ff_z = true; | Initialization of Computing Type: This change initialise the z-axis desired velocity as feed forward to avoid any inconsistencies. | 895a40893d | |
A145 | AC_PosControl.cpp | AC_PosControl: add set_jerk_xy | Software Maintenance | ee0abb1750 | |||
A146 | AC_PosControl.cpp | AC_PosControl: add shift_pos_xy_target | Cyber-Physical matches | 550ba478c9 | |||
A147 | AC_PosControl.cpp | Remove use of PROGMEM | Non-Control | 831d8acca5 | |||
A148 | AC_PosControl.cpp | AC_PosControl: velocity controller uses feed-forward althold | Cyber-Physical matches | 323a527734 | |||
A149 | AC_PosControl.cpp | AC_PosControl: default z-axis controller to 400hz | Time and Space Model | Time and Space Model: line 40: + #define POSCONTROL_DT_400HZ 0.0025f | Time and Space Model: This change modifies the frequency of update rate from 10hz to 400hz in position controller | dbc8ce1d69 | |
A150 | AC_PosControl.cpp | AC_PosControl: run velocity controller z-axis at 400hz | Precision & Accuracy, Time and Space Model | Precision & Accuracy: line 710: + float dt = (now - _last_update_xy_ms)*0.001f;, Time and Space Model: line 710: + float dt = (now - _last_update_xy_ms)*0.001f; | Precision & Accuracy: This change modifies the time delta variable calculation that increase the speed of calculation, but it would sacricifice precision, Time and Space Model: This change modifies the time delta variable calculation that governs the execution of updating velocity controller. | c9340dbeb6 | |
A151 | AC_PosControl.cpp | AC_AttControl: use millis/micros/panic functions | Precision & Accuracy, Time and Space Model | Precision & Accuracy: line 320: + uint32_t now = AP_HAL::millis();, Time and Space Model: line 320: + uint32_t now = AP_HAL::millis(); | Precision & Accuracy: This change includes a different math library for performing math related operations, Time and Space Model: This change introduces different library that modifies the time estimation. | ea08b6115d | |
A152 | AC_PosControl.cpp | Global: rename min and max macros to uppercase | Non-Control | 2591261af6 | |||
A153 | AC_PosControl.cpp | AP_Math: Cleaned macro definitions | Non-Control | 5148e41c1a | |||
A154 | AC_PosControl.cpp | AC_PosControl: accel_to_throttle outputs 0 to 1 | Cyber-Physical matches | 15be80a25d | |||
A155 | AC_PosControl.cpp | AC_PosControl: relax_alt_hold_controllers accepts throttle in 0 to 1 range | Cyber-Physical matches | c64a505906 | |||
A156 | AC_PosControl.cpp | AC_AttitudeControl: fixed accel limit trigonometry | Cyber-Physical matches | 23a64e1227 | |||
A157 | AC_PosControl.cpp | AP_Math: Replace the pythagorous | Cyber-Physical matches | 41661f815f | |||
A158 | AC_PosControl.cpp | AC_AttitudeControl: set desired_vel for reporting purposes even when not used | Exception Handling | Exception Handling: line 146: + if (!is_zero(dt)) { | Exception Handling: This change introduces predicate condition to check whether the time delta variable is not equal to zero to avoid computational failures. | 1639e22b74 | |
A159 | AC_PosControl.cpp | AC_PosControl: Move hover throttle calculation to AP_Motors | Software Maintenance | dcbb071c07 | |||
A160 | AC_PosControl.cpp | AC_AttitudeControl: fixed factor of 1000 error in init_takeoff | Cyber-Physical matches | d1b28aaed9 | |||
A161 | AC_PosControl.cpp | AC_PosControl: add get_horizontal_error | Non-Control | 630e5378da | |||
A162 | AC_PosControl.cpp | AC_PosControl: fix relax_alt_hold_controllers | Cyber-Physical matches | 34055944cd | |||
A163 | AC_PosControl.cpp | AC_PosControl: check Z-axis accel imax can always overpower hover throttle | Cyber-Physical matches | fdcdcb0033 | |||
A164 | AC_PosControl.cpp | AC_PosControl: fix bug related to ekfNavVelGainScaler | Cyber-Physical matches | 77dbf99cee | |||
A165 | AC_PosControl.cpp | AC_PosControl: add interface to override horizontal velocity process variable | Initialization of Computing Type | Initialization of Computing Type: + _flags.vehicle_horiz_vel_override = false; | Initialization of Computing Type: This change tracks of whether the state of horizontal velocity process variable is overridden or not. | 5a8db4f271 | |
A166 | AC_PosControl.cpp | Global: remove mode line from headers | Non-Control | 152edf7189 | |||
A167 | AC_PosControl.cpp | AC_PosControl: set Alt_Hold filter for PID not just D | Cyber-Physical matches | 42672de606 | |||
A168 | AC_PosControl.cpp | AC_PosControl: add ekf position reset handling | Cyber-Physical matches | 1012333eef | |||
A169 | AC_PosControl.cpp | AC_PosControl: remove unnecessary parentheses | Non-Control | 421524951f | |||
A170 | AC_PosControl.cpp | AC_PosControl: remove alt_max | Non-Control | ff042528fe | |||
A171 | AC_PosControl.cpp | AC_AttitudeControl: added support for AP_AHRS_View | Non-Control | 1345bf8737 | |||
A172 | AC_PosControl.cpp | AC_PosControl: protect against POS_Z_P, ACCEL_Z_P divide-by-zero | Exception Handling | Exception Handling: line 277: + if (_p_pos_z.kP() <= 0.0f || _accel_z_cms <= 0.0f) { | Exception Handling: This change introduces a predicate to avoid computational failure of divide-by-zero by using current position if proportional gain is very low or acceleration is zero | 132979b12f | |
A173 | AC_PosControl.cpp | AC_PosControl: z-axis stopping point up to 3m above vehicle | Cyber-Physical matches | 3a397584a1 | |||
A174 | AC_AttitudeControl.cpp | AC_AttitudeControl: first draft of library | First draft | 715c8eaf02 | |||
A175 | AC_AttitudeControl.cpp | AC_AttControl: implement angle_boost | Cyber-Physical matches | 89b7e6b1c8 | |||
A176 | AC_AttitudeControl.cpp | AC_AttControl: add high level angle controllers | Cyber-Physical matches | 0e0a15f4a8 | |||
A177 | AC_AttitudeControl.cpp | AC_AttControl: accessor for lean angle max | Software Maintenance | 9fe4d883d0 | |||
A178 | AC_AttitudeControl.cpp | AC_AttControl: bug fix for yaw target handling | Software Maintenance | ba3ba9e157 | |||
A179 | AC_AttitudeControl.cpp | AC_AttControl: leonard's body frame rate controller | Cyber-Physical matches | 4003b4da9b | |||
A180 | AC_AttitudeControl.cpp | AC_AttControl: make ahrs, ins objects const | Cyber-Physical matches | 468be05867 | |||
A181 | AC_AttitudeControl.cpp | AC_AttControl: add rateef_rpy | Cyber-Physical matches | a2b017abd2 | |||
A182 | AC_AttitudeControl.cpp | AC_AttControl: add RATE_RP_MAX, RATE_Y_MAX params | Cyber-Physical matches | 2dae0d68c5 | |||
A183 | AC_AttitudeControl.cpp | AC_AttControl: add slew_yaw | Cyber-Physical matches | 2db24659d0 | |||
A184 | AC_AttitudeControl.cpp | AC_AttControl: init_targets() clears body frame angle errors | Cyber-Physical matches | eda376c7f6 | |||
A185 | AC_AttitudeControl.cpp | AC_AttControl: use trig values from ahrs | Software Maintenance | d76180d605 | |||
A186 | AC_AttitudeControl.cpp | AC_AttControl: bug fix to yaw rate limit | Software Maintenance | 5f89e9e746 | |||
A187 | AC_AttitudeControl.cpp | AC_AttControl: Leaonard's rate feedforward | Cyber-Physical matches | 98224db1e4 | |||
A188 | AC_AttitudeControl.cpp | AC_AttControl: use motor accessors to set roll, pitch, yaw, thr | Software Maintenance | f216cffb77 | |||
A189 | AC_AttitudeControl.cpp | AC_AttControl: ACRO fixes | Cyber-Physical matches | 65c2fc0cc6 | |||
A190 | AC_AttitudeControl.cpp | AC_AttControl: rename most methods | Non-Control | a6ad51b38f | |||
A191 | AC_AttitudeControl.cpp | AC_AttControl: replace APM_PI with AC_P | Cyber-Physical matches | ff9f4fe6e7 | |||
A192 | AC_AttitudeControl.cpp | AC_AttControl: accel limit for roll, pitch yaw rates | Cyber-Physical matches | b8d9bdb794 | |||
A193 | AC_AttitudeControl.cpp | AC_AttControl: fix @Units parameter descriptions | Software Maintenance | d277b6cabd | |||
A194 | AC_AttitudeControl.cpp | AC_AttControl: Stabilize input shaping | Cyber-Physical matches | 15f88c2a2b | |||
A195 | AC_AttitudeControl.cpp | AC_AttControl: smoothing_gain to angle_ef_roll_pitch_rate_ef_yaw_smooth | Cyber-Physical matches | 25ee5d5dc8 | |||
A196 | AC_AttitudeControl.cpp | AC_AttControl: constrain earth frame yaw angle error | Cyber-Physical matches | 7bff8e9312 | |||
A197 | AC_AttitudeControl.cpp | AC_AttControl: increase default rp accel to 900deg/s/s | Software Maintenance | 5876a2fe47 | |||
A198 | AC_AttitudeControl.cpp | AC_AttControl: set roll, pitch, yaw rate control D term filters | Time and Space Model | Time and Space Model: line 62: +void AC_AttitudeControl::set_dt(float delta_sec) | Time and Space Model: This change adds a function that sets time delta in seconds for attitude controller | 0969e464fb | |
A199 | AC_AttitudeControl.cpp | Copter: Fix zero throttle flip issue Stabilize | Cyber-Physical matches | 1bdde31f6b | |||
A200 | AC_AttitudeControl.cpp | AC_AttControl: rename init_targets to relax_bf_rate_controller | Software Maintenance | 5209598459 | |||
A201 | AC_AttitudeControl.cpp | AC_AttControl: rate compensation for yaw | Cyber-Physical matches | 922026c15c | |||
A202 | AC_AttitudeControl.cpp | AC_AttControl: zero _accel_xyz_max stops feed forward | Cyber-Physical matches | c24d293e1b | |||
A203 | AC_AttitudeControl.cpp | AC_AttControl: clean up stabilize | Software Maintenance | 2bb63857fa | |||
A204 | AC_AttitudeControl.cpp | AC_AttControl: formatting fixes | Precision & Accuracy | Precision & Accuracy: line 314: + if (_angle_ef_target.y > 9000.0f) { | Precision & Accuracy: This change converts numerical number 9000 to float for better numerical operation and representation. | 698cf934b8 | |
A205 | AC_AttitudeControl.cpp | AC_AttControl: add earth frame angle constraints | Cyber-Physical matches | 7f734f38d6 | |||
A206 | AC_AttitudeControl.cpp | AC_AttControl: remove resolved To-Do | Non-Control | a662f87ffb | |||
A207 | AC_AttitudeControl.cpp | AC_AttControl: RATE_FF_ENAB param to disable rate feed forward | Cyber-Physical matches | d9c966c927 | |||
A208 | AC_AttitudeControl.cpp | AC_AttControl: check accel_rp_max instead of rate_bff_ff_enabled | Software Maintenance | b57c0dabf6 | |||
A209 | AC_AttitudeControl.cpp | AC_AttControl: angle_ef_roll_pitch_rate_ef_yaw supports zero yaw accel | Cyber-Physical matches | 130eb07d48 | |||
A210 | AC_AttitudeControl.cpp | AC_AttControl: allow enabling/disabling feedforward and accel limiting | Cyber-Physical matches | 46f25c52a4 | |||
A211 | AC_AttitudeControl.cpp | AC_AttControl: fixed typo in parameter description | Non-Control | 971411e0db | |||
A212 | AC_AttitudeControl.cpp | AC_AttControl: cast fabs to float to resolve compiler warning | Precision & Accuracy | Precision & Accuracy: line 111: + rate_ef_desired = safe_sqrt(2.0f*_accel_rp_max*((float)fabs(angle_to_target)-(linear_angle/2.0f))); | Precision & Accuracy: This change converts the an angle variable in desired rate calculation into float for better numerical representation. | 0f7178e447 | |
A213 | AC_AttitudeControl.cpp | AC_AttitudeControl: Use bias-corrected angular rates instead of raw gyro measurements | Cyber-Physical matches | 6e66cf43cb | |||
A214 | AC_AttitudeControl.cpp | AC_AttControl: Fix feedforward behavior | Cyber-Physical matches | 2889f5abc4 | |||
A215 | AC_AttitudeControl.cpp | Copter: Acro use same error limit in all three axis | Cyber-Physical matches | fb55658c91 | |||
A216 | AC_AttitudeControl.cpp | AC_AttControl: remove duplicate rate_ef_desired to resolve compiler warning | Software Maintenance | eebd32f306 | |||
A217 | AC_AttitudeControl.cpp | AC_AttControl: FF and accel limiting off by default | Software Maintenance | c2f8571f37 | |||
A218 | AC_AttitudeControl.cpp | Copter: ACRO Error calculation fix | Cyber-Physical matches | 90dc9411a5 | |||
A219 | AC_AttitudeControl.cpp | Copter: AC_ATT correct yaw error calculation | Cyber-Physical matches | 329118b7c9 | |||
A220 | AC_AttitudeControl.cpp | AC_AttControl: set rate D term filter from ins filter | Cyber-Physical matches | 58257e3858 | |||
A221 | AC_AttitudeControl.cpp | AC_AttControl: div-by-zero check for bf-to-ef conversion | Exception Handling | Exception Handling: line 439: + if (_ahrs.cos_pitch() == 0.0f) { | Exception Handling: This change introduces a predicate that checks whether the pitch variable is zero to avoid divide-by-zero computational failure. | c45338f080 | |
A222 | AC_AttitudeControl.cpp | AC_AttControl: remove debug message | Non-Control | 3e0b573dfe | |||
A223 | AC_AttitudeControl.cpp | AC_AttControl: bug fix for ef target during acro | Cyber-Physical matches | 5a66ff1ef9 | |||
A224 | AC_AttitudeControl.cpp | AC_AttControl: remove some old comments | Non-Control | f65e81cb07 | |||
A225 | AC_AttitudeControl.cpp | AC_AttControl: add sqrt_controller | Cyber-Physical matches | fc898a00a3 | |||
A226 | AC_AttitudeControl.cpp | AC_AttitudeControl: use sqrt_controller function | Cyber-Physical matches | 0c4a489491 | |||
A227 | AC_AttitudeControl.cpp | AC_AttitudeControl: cleanup angle_ef_roll_pitch_rate_ef_yaw_smooth | Cyber-Physical matches | 7224669399 | |||
A228 | AC_AttitudeControl.cpp | AC_AttControl: bf yaw control uses input filtered PID | Cyber-Physical matches | eb084f7c58 | |||
A229 | AC_AttitudeControl.cpp | AC_AttControl: get_max_rate_step_bf_roll, pitch and yaw | Cyber-Physical matches | 9833c91b2b | |||
A230 | AC_AttitudeControl.cpp | AC_AttControl: separate accel max for roll, pitch, yaw | Cyber-Physical matches | 792b2a2eb3 | |||
A231 | AC_AttitudeControl.cpp | AC_AttControl: accel limiting for angular control only if feed forward enabled | Cyber-Physical matches | 20de383084 | |||
A232 | AC_AttitudeControl.cpp | AC_AttitudeControl: relax_bf_rate_controller resets rate integrators | Cyber-Physical matches | e2383581cc | |||
A233 | AC_AttitudeControl.cpp | AC_AttitudeControl: sqrt controller on Stab | Cyber-Physical matches | afcd1c6ec3 | |||
A234 | AC_AttitudeControl.cpp | AC_AttitudeControl: throttle is a float | Precision & Accuracy | Precision & Accuracy: line 713: + float throttle_out; | Precision & Accuracy: This change converts the throttle output variable from int16 to float for better numerical representation. | 5c2341009a | |
A235 | AC_AttitudeControl.cpp | AC_AttitudeControl: modify throttle interface to specify stabilization | Initialization of Computing Type | Initialization of Computing Type: line 699: + _motors.set_stabilizing(true); | Initialization of Computing Type: This change introduces motor stabilizing state using a special boolean computational type to avoid inconsistent initial states | f3555d0d43 | |
A236 | AC_AttitudeControl.cpp | AC_AttitudeControl: rework angle_boost | Cyber-Physical matches | 518e798f53 | |||
A237 | AC_AttitudeControl.cpp | AC_AttitudeControl: add throttle filter cutoff parameter to set_throttle_out functions | Cyber-Physical matches | b7f7624aac | |||
A238 | AC_AttitudeControl.cpp | AC_AttitudeControl: add comment | Non-Control | 24b8d32b0e | |||
A239 | AC_AttitudeControl.cpp | AC_AttitudeControl: constrain _angle_boost to avoid overflow | Cyber-Physical matches | ab2532a609 | |||
A240 | AC_AttitudeControl.cpp | AC_AttitudeControl: compiler warnings: apply is_zero(float) or is_equal(float) and float to doubles | Precision & Accuracy | Precision & Accuracy: line 437: + if (AP_Math::is_zero(_ahrs.cos_pitch())) { | Precision & Accuracy: This change modifies a different math library for performing math related operations. | 1bca81eaed | |
A241 | AC_AttitudeControl.cpp | AC_AttitudeControl: revert AP_Math class change | Precision & Accuracy | Precision & Accuracy: line 675: + if (is_zero(_accel_roll_max)) { | Precision & Accuracy: This change modifies a different math library for performing math related operations. | 326b0b33ea | |
A242 | AC_AttitudeControl.cpp | AC_AttitudeControl: Non-functional comment change | Non-Control | 915236f1f5 | |||
A243 | AC_AttitudeControl.cpp | AC_AttitudeControl: Remove To-Do comments for Attitude Rate logging. | Non-Control | 23adf2773c | |||
A244 | AC_AttitudeControl.cpp | AC_AttitudeControl: use set_desired_rate() on PID controllers | Cyber-Physical matches | 521dae1c65 | |||
A245 | AC_AttitudeControl.cpp | AC_AttControl: add shift_ef_yaw_target | Cyber-Physical matches | 1e3e65e443 | |||
A246 | AC_AttitudeControl.cpp | AC_AttControl: get_boosted_throttle purely virtual | Software Maintenance | 93dd7dd970 | |||
A247 | AC_AttitudeControl.cpp | AC_AttControl: relax earth frame rate targets along with bf | Cyber-Physical matches | 0bf1d04172 | |||
A248 | AC_AttitudeControl.cpp | AC_AttitudeControl: standardize inclusion of libaries headers | Non-Control | d49f10d2e5 | |||
A249 | AC_AttitudeControl.cpp | AC_AttControl: limit lean angle from throttle | Cyber-Physical matches | 29ff5035b4 | |||
A250 | AC_AttitudeControl.cpp | AC_AttControl: rename set_throttle_out parameter | Software Maintenance | c8872e082d | |||
A251 | AC_AttitudeControl.cpp | Remove use of PROGMEM | Non-Control | 831d8acca5 | |||
A252 | AC_AttitudeControl.cpp | AC_AttitudeControl: reserve parameter IDs | Software Maintenance | 6784fd8625 | |||
A253 | AC_AttitudeControl.cpp | AC_AttitudeControl: Add Hover Roll Trim functionality for helicopters. | Cyber-Physical matches | 0b33ef3862 | |||
A254 | AC_AttitudeControl.cpp | AC_AttControl: minor comment fix | Software Maintenance | 4b41710261 | |||
A255 | AC_AttitudeControl.cpp | AC_AttitudeControl: fixed one usage of zero accel limits | Cyber-Physical matches | 58f0abaf4c | |||
A256 | AC_AttitudeControl.cpp | AC_AttitudeControl: change internals to use radians instead of centidegrees | Cyber-Physical matches | 7330de86e5 | |||
A257 | AC_AttitudeControl.cpp | AC_AttitudeControl: rename and modify frame_conversion functions to follow conventions | Exception Handling | Exception Handling: line 508: + if (is_zero(cos_theta)) { | Exception Handling: This change introduces a predicate that checks whether the cosine theta value is zero to avoid divide-by-zero computational failure. | 06c8457efd | |
A258 | AC_AttitudeControl.cpp | AC_AttitudeControl: extensive renaming and recommenting | Cyber-Physical matches | 1afab89991 | |||
A259 | AC_AttitudeControl.cpp | AC_AttitudeControl: keep _att_target_euler_deriv_rads updated in euler_angle_roll_pitch_yaw | Cyber-Physical matches | edda7e4e1e | |||
A260 | AC_AttitudeControl.cpp | AC_AttitudeControl: minor comment changes and reorganization | Software Maintenance | 8b886bc479 | |||
A261 | AC_AttitudeControl.cpp | AC_AttitudeControl: quaternion acro controller | Cyber-Physical matches | f8c709478a | |||
A262 | AC_AttitudeControl.cpp | AC_AttitudeControl: correct bugs found in review | Software Maintenance | bba360ea2b | |||
A263 | AC_AttitudeControl.cpp | AC_AttitudeControl: add input_ prefix to input shaper functions | Software Maintenance | 5919e95635 | |||
A264 | AC_AttitudeControl.cpp | AC_AttitudeControl: add input_att_quat_bf_ang_vel and use for ACRO | Software Maintenance | 41e580e53a | |||
A265 | AC_AttitudeControl.cpp | AC_AttitudeControl: fixup more names | Software Maintenance | 0baf86c485 | |||
A266 | AC_AttitudeControl.cpp | AC_AttitudeControl: naming changes in response to Leonard's review | Software Maintenance | 162d2a9112 | |||
A267 | AC_AttitudeControl.cpp | AC_AttitudeControl: properly protect sqrt_controller from nonpositive acceleration limits | Cyber-Physical matches | b8223771d3 | |||
A268 | AC_AttitudeControl.cpp | AC_AttitudeControl: fix regression in angular velocity controller | Software Maintenance | 846ee7d2af | |||
A269 | AC_AttitudeControl.cpp | AC_AttitudeControl: rename local variable to match naming convention | Software Maintenance | 3a06edcee3 | |||
A270 | AC_AttitudeControl.cpp | AC_AttControl: remove comment, fix formatting | Non-Control | 02eda4dcab | |||
A271 | AC_AttitudeControl.cpp | AC_AttitudeControl: reflect renamed function in AP_AHRS | Software Maintenance | ee8090e25f | |||
A272 | AC_AttitudeControl.cpp | AC_AttitudeControl: add helper functions to retrieve rotation matrices | Non-Control | 3d4bd92b48 | |||
A273 | AC_AttitudeControl.cpp | AC_AttitudeControl: rotate angular velocity feedforward into vehicle frame | Cyber-Physical matches | ae3357baee | |||
A274 | AC_AttitudeControl.cpp | AC_AttitudeControl: convert euler rates to angular velocity using the correct attitude | Cyber-Physical matches | 829d6037fc | |||
A275 | AC_AttitudeControl.cpp | AC_AttitudeControl: modify comment on kinematic correction feedforward | Software Maintenance | 46e6ff3ca9 | |||
A276 | AC_AttitudeControl.cpp | AC_AttControl: use ahrs get_rotation_body_to_ned | Non-Control | 86bb03aa79 | |||
A277 | AC_AttitudeControl.cpp | AC_AttControl: add ANGLE_BOOST param | Cyber-Physical matches | 5ddd332277 | |||
A278 | AC_AttitudeControl.cpp | AC_AttitudeControl: add attitude_controller_run functions, call from input functions | Cyber-Physical matches | e946e047e6 | |||
A279 | AC_AttitudeControl.cpp | AC_AttControl: angle_boost to float | Precision & Accuracy | Precision & Accuracy: line 613: + _angle_boost = 0.0f; | Precision & Accuracy: This change converts the boosting throttle variable into floating point for better numerical representation. | c0f209fa42 | |
A280 | AC_AttitudeControl.cpp | AC_AttControl: add get_throttle_in accessor | Non-Control | 2822b93cd4 | |||
A281 | AC_AttitudeControl.cpp | AC_AttControl: roll, pitch, yaw output to motors in -1 to +1 range | Cyber-Physical matches | 979534279a | |||
A282 | AC_AttitudeControl.cpp | AC_AttControl: add angle and rate PIDs | Time and Space Model | Time and Space Model: line 72: -void AC_AttitudeControl::set_dt(float delta_sec) | Time and Space Model: This change removes a function that sets time delta in seconds for attitude controller | 17c9db08f3 | |
A283 | AC_AttitudeControl.cpp | AC_AttControl: remove scaling for centi-degrees and legacy motor input | Non-Control | b30606bb22 | |||
A284 | AC_AttitudeControl.cpp | AC_AttControl: remove unused call to motors.set_stabilizing | Non-Control | 4a06ca4be2 | |||
A285 | AC_AttitudeControl.cpp | AC_AttitudeControl: added monitoring of controller error | Non-Control | 6330060e49 | |||
A286 | AC_AttitudeControl.cpp | AC_AttitudeControl: Move set_throttle_out to _Multi and _Heli | Software Maintenance | 35ef761deb | |||
A287 | AC_AttitudeControl.cpp | AC_AttitudeControl: update throttle rpy mix on every iteration | Cyber-Physical matches | b7431b7d0c | |||
A288 | AC_AttitudeControl.cpp | AC_AttitudeControl: multicopter specific rate_controller_run | Non-Control | 7ff0fcb25d | |||
A289 | AC_AttitudeControl.cpp | AC_AttitudeControl: add TC for Alt_Hold angle limit | Cyber-Physical matches | 3d27ecca92 | |||
A290 | AC_AttitudeControl.cpp | AC_AttitudeControl: move get_althold_lean_angle_max to parent class | Software Maintenance | dafc45eb26 | |||
A291 | AC_AttitudeControl.cpp | AC_AttitudeControl: add ATC_ANG_LIM_TC parameter | Time and Space Model | Time and Space Model: + AP_GROUPINFO("ANG_LIM_TC", 16, AC_AttitudeControl, _angle_limit_tc, AC_ATTITUDE_CONTROL_ANGLE_LIMIT_TC_DEFAULT), | Time and Space Model: This change introduces a time variable called angle limit time constant to maintain altitude. | 096bdd67f8 | |
A292 | AC_AttitudeControl.cpp | AC_AttitudeControl: enhanced quaternion attitude controller | Cyber-Physical matches | 8737f6b62d | |||
A293 | AC_AttitudeControl.cpp | AC_AttutudeControl: Yaw shift fix | Cyber-Physical matches | 80bda572ba | |||
A294 | AC_AttitudeControl.cpp | AC_AttControl: add reset_rate_controller_I_terms() | Cyber-Physical matches | 011bc0a350 | |||
A295 | AC_AttitudeControl.cpp | AC_AttControl: reduce max_rate_step based on hover throttle | Cyber-Physical matches | 29d4790fc7 | |||
A296 | AC_AttitudeControl.cpp | Global: remove mode line from headers | Non-Control | 152edf7189 | |||
A297 | AC_AttitudeControl.cpp | AC_AttControl: do not limit rate if ATC_ACCEL_MAX param is zero | Cyber-Physical matches | ea0e413b04 | |||
A298 | AC_AttitudeControl.cpp | AC_AttitudeControl: use FF from AC_PID | Cyber-Physical matches | 5acbf5d16e | |||
A299 | AC_AttitudeControl.cpp | AC_AttitudeControl: use gyro_latest | Cyber-Physical matches | 67097c8d59 | |||
A300 | AC_AttitudeControl.cpp | AC_AttitudeControl: Use SI units conventions in parameter units | Software Maintenance | 188dfb6936 | |||
A301 | AC_AttitudeControl.cpp | AC_AttControl: add step input for autotune | Cyber-Physical matches | 0544cf1d82 | |||
A302 | AP_Baro.cpp | Baro: added get_altitude() and get_climb_rate() interfaces | First draft | c387edd74c | |||
A303 | AP_Baro.cpp | Barometer: fixed airstart for APM | Cyber-Physical matches | 5bccfbd94c | |||
A304 | AP_Baro.cpp | AP_Baro: use DerivativeFilter in barometer climb rate | Cyber-Physical matches | f9fc7aafe7 | |||
A305 | AP_Baro.cpp | AP_Baro: change to a 7 point DerivativeFilter for climb rate | Cyber-Physical matches | 185c6e5b32 | |||
A306 | AP_Baro.cpp | AP_Baro: improved barometer averaging | Precision & Accuracy | Precision & Accuracy: line 38: + float ground_pressure = 0; | Precision & Accuracy: This change converts the ground pressure variable from int32 to float for better numerical representation. | f501503eb0 | |
A307 | AP_Baro.cpp | AP_Baro: the DerivativeFilter now handles duplicate data | Non-Control | a7b9aff79f | |||
A308 | AP_Baro.cpp | AP_Param: update remaining libraries for new constructor syntax | Non-Control | 518d6365ff | |||
A309 | AP_Baro.cpp | uncrustify libraries/AP_Baro/AP_Baro.cpp | Software Maintenance | 6f02a645c3 | |||
A310 | AP_Baro.cpp | AP_Baro: port to AP_HAL | Non-Control | 5d40074e4e | |||
A311 | AP_Baro.cpp | AP_Baro: robust calibration | Time and Space Model | Time and Space Model: line 45: + uint32_t tstart = hal.scheduler->millis(); | Time and Space Model: This change governs the periodic execution of claiberating the barometer | 60f7788be4 | |
A312 | AP_Baro.cpp | AP_Baro: uses scheduler panic | Non-Control | d92e8045c1 | |||
A313 | AP_Baro.cpp | Update floating point calculations to use floats instead of doubles. | Precision & Accuracy | Precision & Accuracy: line 26: + float temp = g.throttle_slewrate * G_Dt * 0.01f * fabsf(g.channel_throttle.radio_max - g.channel_throttle.radio_min); | Precision & Accuracy: This change returns the absolute value from double to float for better numerical representation. | 5631f865b2 | |
A314 | AP_Baro.cpp | Add AVR compatibility header for missing math.h definitions. | Precision & Accuracy | Precision & Accuracy: line 6: +#include |
Precision & Accuracy: This change includes a different math library for performing math related operations. | 4fa7bb1486 | |
A315 | AP_Baro.cpp | AP_Baro: TEMP parameter comment fix | Non-Control | aa2b10f044 | |||
A316 | AP_Baro.cpp | AP_Baro: more precise altitude calculation on PX4 | Cyber-Physical matches | 3b98bbd159 | |||
A317 | AP_Baro.cpp | AP_Baro: added units to baro documentation | Software Maintenance | 61361dac9b | |||
A318 | AP_Baro.cpp | AP_Baro: added get_EAS2TAS() | Cyber-Physical matches | 7bdb098e77 | |||
A319 | AP_Baro.cpp | AP_Baro: added GND_ALT_OFFSET parameter | Cyber-Physical matches | 0f72401d8d | |||
A320 | AP_Baro.cpp | AP_Baro: use fabs() not abs() | Precision & Accuracy | Precision & Accuracy: line 151: + if ((fabs(_altitude - _last_altitude_EAS2TAS) < 100.0f) && (_EAS2TAS != 0.0f)) { | Precision & Accuracy: This change returns the absolute value in double integer representation for better numerical representation. | 5607c89df0 | |
A321 | AP_Baro.cpp | libraries: update license header to GPLv3 | Software Maintenance | 97b7130bb9 | |||
A322 | AP_Baro.cpp | AP_Baro: cleaned up temperature and pressure units | Cyber-Physical matches | fc119d9b80 | |||
A323 | AP_Baro.cpp | AP_Baro: added update_calibration() method | Cyber-Physical matches | 487caea3a5 | |||
A324 | AP_Baro.cpp | AP_Baro: use HAL_CPU_CLASS in baro driver | Cyber-Physical matches | 5e3c4441dc | |||
A325 | AP_Baro.cpp | AP_Baro: changed HIL driver to use floats and better handle starup | Cyber-Physical matches | 2cd781997f | |||
A326 | AP_Baro.cpp | AP_Baro: expose get_altitude_difference() | Cyber-Physical matches | 41dd280739 | |||
A327 | AP_Baro.cpp | AP_Baro: avoid some float conversion warnings | Precision & Accuracy | Precision & Accuracy: line 184: + if ((fabsf(_altitude - _last_altitude_EAS2TAS) < 100.0f) && (_EAS2TAS != 0.0f)) { | Precision & Accuracy: This change returns the absolute value in floating point representation for better numerical representation. | 74c3b404ee | |
A328 | AP_Baro.cpp | AP_Baro: minor improvements to Baro HIL code health check | Software Maintenance | a458f1bf5f | |||
A329 | AP_Baro.cpp | Baro: make get_altitude_difference const | Software Maintenance | e9fbea9497 | |||
A330 | AP_Baro.cpp | Baro: add altitude sanity check | Exception Handling | Exception Handling: line 177: + if (isnan(alt) || isinf(alt)) { | Exception Handling: This change introduces a predicate that checks whether the altitude variable is infinite or undefined to avoid computational failures. | 330d883f97 | |
A331 | AP_Baro.cpp | Baro: minor param description updates | Software Maintenance | 3a81732721 | |||
A332 | AP_Baro.cpp | AP_Baro: add set_external_temperature() | Time and Space Model | Time and Space Model: line 240: + if (_last_external_temperature_ms != 0 && hal.scheduler->millis() - _last_external_temperature_ms < 10000) { | Time and Space Model: This change monitors the frequency of external temperature measurements | d404cc6542 | |
A333 | AP_Baro.cpp | AP_Baro: split into frontend/backend | Time and Space Model, Exception Handling | Time and Space Model: line 274: + uint32_t now = hal.scheduler->millis();, Exception Handling: line 257: + if (_num_drivers == 0 || _num_sensors == 0 || drivers[0] == NULL) { |
Time and Space Model: This change governs the periodic execution of barometer driver updates, Exception Handling: This change introduces predicate conditions to avoid computational failures when initializing the barometer driver. | 5bb57a31f7 | |
A334 | AP_Baro.cpp | AP_Baro: BMP085 driver done, but untested | Cyber-Physical matches | f1891cea1f | |||
A335 | AP_Baro.cpp | AP_Baro: fixed baro on NavIO | Non-Control | 8359c082ca | |||
A336 | AP_Baro.cpp | AP_Baro: added all_healthy() method | Cyber-Physical matches | 1c2a6deaaf | |||
A337 | AP_Baro.cpp | AP_Baro: fixed build after rebase with all_healthy() | Software Maintenance | 0a8677b3e2 | |||
A338 | AP_Baro.cpp | AP_Baro: only allow calibrated sensors to be used | Initialization of Computing Type | Initialization of Computing Type: line 83: + sensors[i].calibrated = true; | Initialization of Computing Type: This change sets a sensor calibration variable to a special computational type to avoid inconsistent initial states | b1d8df3d54 | |
A339 | AP_Baro.cpp | Baro: init external_temperature in constructor | Cyber-Physical matches | c93e7a69a7 | |||
A340 | AP_Baro.cpp | AP_Baro: added hil_mode support | Initialization of Computing Type | Initialization of Computing Type: line 70: + _hil_mode(FALSE) | Initialization of Computing Type: This change sets the hardware in the loop variable mode to a special computational type to avoid inconsistent initial states. | ac3dd87790 | |
A341 | AP_Baro.cpp | AP_Baro: fixed baro startup on PXF cape | Time and Space Model | Time and Space Model: line 102: + hal.scheduler->delay(10); | Time and Space Model: This change delays the periodic execution of barometer calibration. | 1f70b34cbc | |
A342 | AP_Baro.cpp | AP_Baro: load only HIL backend for hil_mode | Non-Control | 2e9d2e6449 | |||
A343 | AP_Baro.cpp | AP_Baro: add get_air_density_ratio | Non-Control | f381ef93e8 | |||
A344 | AP_Baro.cpp | Baro: get_air_density_ratio gets div-by-zero check | Exception Handling | Exception Handling: line 215: + if (eas2tas > 0.0f) { | Exception Handling: This change introduces a predicate condition to check if the true airspeed ratio is greater than zero to avoid computational failure of divide-by-zero and square of negative number. | 1b381b5675 | |
A345 | AP_Baro.cpp | AP_Baro: compiler warnings: apply is_zero(float) or is_equal(float) | Precision & Accuracy | Precision & Accuracy: line 200: + if ((fabsf(altitude - _last_altitude_EAS2TAS) < 100.0f) && !AP_Math::is_zero(_EAS2TAS)) { | Precision & Accuracy: This change includes a different math library for performing math related operations. | 0b29848277 | |
A346 | AP_Baro.cpp | AP_BARO: revert AP_Math class change | Precision & Accuracy | Precision & Accuracy: line 321: + sensors[i].healthy = (now - sensors[i].last_update_ms < 500) && !is_zero(sensors[i].pressure); | Precision & Accuracy: This change includes a different math library for performing math related operations. | 48fb7f8159 | |
A347 | AP_Baro.cpp | AP_Baro: use ground_temperature instead of calibration_temperature for alt calculation | Cyber-Physical matches | 23787cf695 | |||
A348 | AP_Baro.cpp | AP_Baro: added MS5607 support | Cyber-Physical matches | d407737434 | |||
A349 | AP_Baro.cpp | Baro: update climb rate only if healthy | Cyber-Physical matches | 5732a6a144 | |||
A350 | AP_Baro.cpp | AP_Baro: standardize inclusion of libaries headers | Non-Control | f18802bc46 | |||
A351 | AP_Baro.cpp | AP_Baro - fix BARO_ALT_OFFSET param | Cyber-Physical matches | 749c0c190f | |||
A352 | AP_Baro.cpp | AP_Baro: allow selection of primary barometer and add 3rd baro | Cyber-Physical matches | a5462fec0b | |||
A353 | AP_Baro.cpp | AP_Baro: Add MS5637 over I2C to init() | Cyber-Physical matches | 9a98eb35fc | |||
A354 | AP_Baro.cpp | AP_Baro: Fix typo | Non-Control | c53e9d1ff0 | |||
A355 | AP_Baro.cpp | AP_Baro: support MS5611 on second i2c bus | Cyber-Physical matches | 386547427d | |||
A356 | AP_Baro.cpp | Remove use of PSTR | Software Maintenance | 2c38e31c93 | |||
A357 | AP_Baro.cpp | Remove use of PROGMEM | Non-Control | 831d8acca5 | |||
A358 | AP_Baro.cpp | AP_Baro: remove check for AVR CPUs | Cyber-Physical matches | 8eef58a8c2 | |||
A359 | AP_Baro.cpp | AP_Baro: notify GCS of calibration | Software Maintenance | 1b13315092 | |||
A360 | AP_Baro.cpp | AP_Baro: don't notify the GCS of new pressure reference too often | Time and Space Model | Time and Space Model: line 173: + uint32_t now = hal.scheduler->millis(); | Time and Space Model: This change monitors the periodic execution to avoid very frequent reading of barometer sensor value. | 840c9e65bb | |
A361 | AP_Baro.cpp | AP_Baro: use millis/micros/panic functions | Precision & Accuracy, Time and Space Model | Precision & Accuracy: line 106: + if (AP_HAL::millis() - tstart > 500) {, Time and Space Model: line 103: + uint32_t tstart = AP_HAL::millis(); | Precision & Accuracy: This change includes a different math library for performing math related operations, Time and Space Model: This change introduces different library that modifies the time estimation. | 5a280838f8 | |
A362 | AP_Baro.cpp | AP_Baro: reduce header scope | Software Maintenance | 81a298c9c8 | |||
A363 | AP_Baro.cpp | AP_Baro: added qflight driver | Cyber-Physical matches | 1f4e503d91 | |||
A364 | AP_Baro.cpp | AP_Baro: added QURT driver | Cyber-Physical matches | ff44a63007 | |||
A365 | AP_Baro.cpp | AP_Baro: tolerate GND_ALT_OFFSET step inputs | Cyber-Physical matches | f435c5ee50 | |||
A366 | AP_Baro.cpp | AP_Baro: BMP085: use I2CDevice interface | Cyber-Physical matches | b05954660a | |||
A367 | AP_Baro.cpp | AP_Baro: MS5611: Use AP_HAL::Device abstraction | Cyber-Physical matches | f1ade970a3 | |||
A368 | AP_Baro.cpp | AP_Baro: prevent bad ground pressure from making a board unbootable | Exception Handling | Exception Handling: line 367: + if (is_zero(ground_pressure) || isnan(ground_pressure) || isinf(ground_pressure)) { | Exception Handling: This change adds predicate conditions that checks whether the ground pressure variable is infinite or undefined. | 0a72c2bbd5 | |
A369 | AP_Baro.cpp | Add @Volatile, @ReadOnly support | Software Maintenance | cae7ea0d13 | |||
A370 | AP_Baro.cpp | AP_Baro; allow for exact replay of baro data | Non-Control | 0b71652afc | |||
A371 | AP_Baro.cpp | AP_Baro: allow setHIL to set last update time | Cyber-Physical matches | 8b7bf5cf7a | |||
A372 | AP_Baro.cpp | AP_Baro: slow down the LPF for slewing to a new GND_ALT_OFFSET. Instead of a couple seconds, make it about 15sec. This makes TECS happy by not glitching the height demand as much. When applied too fast the TECS height demand causes a large single oscillation as it chases the filter lag. | Time and Space Model | Time and Space Model: line 352: + _alt_offset_active = (0.95f*_alt_offset_active) + (0.05f*_alt_offset); | Time and Space Model: This change deals with slowing down the response time of low pass filter from couple of seconds to 15sec. | d55050e5e3 | |
A373 | AP_Baro.cpp | AP_Baro: coverity scan - variables not initialized in constructor | Initialization of Computing Type | Initialization of Computing Type: line 91: - _hil_mode(FALSE) | Initialization of Computing Type: This change removes the hardware in the loop variable mode to a special computational type to avoid inconsistent initial states. | 8d2872d3ab | |
A374 | AP_Baro.cpp | Revert "AP_Baro: coverity scan - variables not initialized in constructor" | Initialization of Computing Type | Initialization of Computing Type: line 91: + _hil_mode(false) | Initialization of Computing Type: This change sets the hardware in the loop variable mode to a special computational type to avoid inconsistent initial states. | 1d81df8144 | |
A375 | AP_Baro.cpp | AP_Baro: remove zero-init in constructor | Initialization of Computing Type | Initialization of Computing Type: line 91: - _hil_mode(FALSE) | Initialization of Computing Type: This change removes the hardware in the loop variable mode to a special computational type to avoid inconsistent initial states. | 84ce499a0d | |
A376 | AP_Baro.cpp | AP_Baro: MS5611: always use timer thread | Cyber-Physical matches | 929348ff75 | |||
A377 | AP_Baro.cpp | Global: remove mode line from headers | Non-Control | 152edf7189 | |||
A378 | AP_Baro.cpp | AP_Baro: add missing parameter metadata | Software Maintenance | dbecb1bc25 | |||
A379 | AP_Baro.cpp | Global: To nullptr from NULL. | Cyber-Physical matches | c808ee2f49 | |||
A380 | AP_Baro.cpp | AP_Baro: select in-tree vs PX4 drivers at runtime | Cyber-Physical matches | 72c2e3a4d5 | |||
A381 | AP_Baro.cpp | AP_Baro: enable dual baro on PH2 | Cyber-Physical matches | 66026100c3 | |||
A382 | AP_Baro.cpp | AP_Baro: fixed FMUv1 baro and enable in-tree driver for PHMINI | Cyber-Physical matches | 565f1986e0 | |||
A383 | AP_Baro.cpp | AP_Baro: switch pixracer to always use in-tree drivers | Cyber-Physical matches | b8c789cf35 | |||
A384 | AP_Baro.cpp | AP_Baro: use in-tree drivers for PH2SLIM | Cyber-Physical matches | d716bbedee | |||
A385 | AP_Baro.cpp | AP_Baro: setup for new board PX4 IDs | Cyber-Physical matches | 41b132e576 | |||
A386 | AP_Baro.cpp | AP_Baro: added MS5611 probing, and support 3 baros on Pixhawk2 | Cyber-Physical matches | f2246326bb | |||
A387 | AP_Baro.cpp | AP_Baro: added GND_EXT_BUS option | Cyber-Physical matches | eea7758a63 | |||
A388 | AP_Baro.cpp | AP_Baro: Changed if statements to switch statement. | Non-Control | 753638851e | |||
A389 | AP_Baro.cpp | AP_Baro: Add Bosch BMP280 driver | Cyber-Physical matches | 1ce5e5360a | |||
A390 | AP_Baro.cpp | AP_Baro: Add support for water pressure and Sub | Cyber-Physical matches | 613bc46592 | |||
A391 | AP_Baro.cpp | AP_Baro: fixed spelling in comment | Non-Control | fb214ef95f | |||
A392 | AP_Baro.cpp | AP_Baro: support AUAV21 board | Cyber-Physical matches | d5cad2ae44 | |||
A393 | AP_Baro.cpp | Add support for baro on aerofc | Cyber-Physical matches | 00c2949dfb | |||
A394 | AP_Baro.cpp | AP_Baro: don't compile drivers for devices that don't use them | Cyber-Physical matches | fb24a03faf | |||
A395 | AP_Baro.cpp | AP_Baro: Limit ground temperature used for the altitude | Exception Handling | Exception Handling: line 310: + if (is_zero(_user_ground_temperature)) { | Exception Handling: This change introduces a predicate condition that checks whether the ground temperature variable is zero to avoid inconsistent input. | c37209a8d5 | |
A396 | AP_Baro.cpp | AP_Baro: support for UAVCAN connected barometers | Cyber-Physical matches | 331419a51e | |||
A397 | AP_Baro.cpp | AP_Baro: removal of legacy UAVCAN support | Cyber-Physical matches | fd866d3e20 | |||
A398 | AP_Baro.cpp | AP_Baro: Fix GND_EXT_BUS @Values formatting | Software Maintenance | 96f503d9d1 | |||
A399 | AP_Baro.cpp | AP_Baro: use sensor_config_error() | Software Maintenance | cbea29ad71 | |||
A400 | AP_Baro.cpp | AP_Baro: moved SITL baro to standard sensor backend model | Non-Control | ee4161fa62 | |||
A401 | AP_Baro.cpp | AP_Baro: added set_pressure_correction() | Non-Control | 9bdf971336 | |||
A402 | AP_Baro.cpp | AP_Baro: Use SI units conventions in parameter units | Software Maintenance | ed916327fc | |||
A403 | AP_Baro.cpp | AP_Baro: enumeration and multiple interfaces support | Cyber-Physical matches | 6e6efa7e1b | |||
A404 | AP_Baro.cpp | Baro: health check that values are changing | Cyber-Physical matches | 6982e58cf2 | |||
A405 | AC_WPNav.cpp | AC_WPNav: first implementation | First draft | b92c4097d2 | |||
A406 | AC_WPNav.cpp | AC_WPNav: add distance and bearing to target methods | Time and Space Model | Time and Space Model: line 75: + uint32_t now = hal.scheduler->millis(); | Time and Space Model: This change governs the periodic execution of loiter controller. | 39bc3800c9 | |
A407 | AC_WPNav.cpp | AC_WPNav: bug fix to dt calculation | Time and Space Model | Time and Space Model: line 189: + float dt = (now - _last_update) / 1000.0f; | Time and Space Model: This change governs the periodic execution of loiter controller. | 0d70ba1030 | |
A408 | AC_WPNav.cpp | AC_WPNav: add get_target_alt | Non-Control | 60060d8184 | |||
A409 | AC_WPNav.cpp | AC_WPNav: add set_loiter_target to use velocity | Exception Handling | Exception Handling: line 47: + if( _pid_pos_lat->kP() <= 0.1 ) { | Exception Handling: This change introduces a predicate condition to avoid proportional gain of PID from computational failure of divide-by-zero. | 8ec7fd1c9c | |
A410 | AC_WPNav.cpp | AC_WPNav: bug fix for track covered being 2D | Precision & Accuracy | Precision & Accuracy: line 161: + cross_track_dist = fabsf(curr.x - _destination.x); | Precision & Accuracy: This change returns the absolute value of floating point values for better numerical representation. | afd2f82768 | |
A411 | AC_WPNav.cpp | AC_WPNav: add angle limits and set from AC's throttle controller | Cyber-Physical matches | f82ce449d7 | |||
A412 | AC_WPNav.cpp | AC_WPNav: Leonard's loiter target smoothing | Cyber-Physical matches | 926c404994 | |||
A413 | AC_WPNav.cpp | AC_WPNav: Leonard's ff loiter and 3d wp nav | Cyber-Physical matches | 0ccdce1b22 | |||
A414 | AC_WPNav.cpp | AC_WPNAV: change loiter controllers to use floats | Precision & Accuracy | Precision & Accuracy: + float linear_distance; // the distace we swap between linear and sqrt. | Precision & Accuracy: This change converts distance variable from int16 to float for better numerical representation. | 31838b2865 | |
A415 | AC_WPNav.cpp | AC_WPNav: limit max loiter position error | Cyber-Physical matches | 6dbcbdcb43 | |||
A416 | AC_WPNav.cpp | AC_WPNav: advance track fixes | Cyber-Physical matches | 74e1c2e660 | |||
A417 | AC_WPNav.cpp | AC_WPNav: Leonard's 3d leash calculator | Cyber-Physical matches | c6b68c7843 | |||
A418 | AC_WPNav.cpp | AC_WPNav: stop track_desired from moving backwards | Non-Control | 35001619f0 | |||
A419 | AC_WPNav.cpp | AC_WPNAV: check distance to waypoint within library | Initialization of Computing Type | Initialization of Computing Type: line 198: + _reached_destination = true; | Initialization of Computing Type: This change keeps track of the destination reached state using a special computational type to avoid inconsistent initial states. | 9d7d174995 | |
A420 | AC_WPNav.cpp | AC_WPNav: use global gravity constant | Software Maintenance | 252e98ec57 | |||
A421 | AC_WPNav.cpp | AC_WPNav: allow setting of horizontal velocity | Software Maintenance | 0351c2ae33 | |||
A422 | AC_WPNav.cpp | AC_WPNav: use prev wp as origin for next wp | Cyber-Physical matches | 0eab3e87b2 | |||
A423 | AC_WPNav.cpp | Copter: add WPNAV log message | Non-Control | 8fe3e689f4 | |||
A424 | AC_WPNav.cpp | AC_WPNav: improved comments | Cyber-Physical matches | effd5b0da7 | |||
A425 | AC_WPNav.cpp | AC_WPNav: add climb and descent params, dynamic leash length | Cyber-Physical matches | 764853bd56 | |||
A426 | AC_WPNav.cpp | AC_WPNav: remove unnecessary limit in leash calc | Software Maintenance | ed298363f4 | |||
A427 | AC_WPNav.cpp | Copter: Leonard's fix for get_loiter_accel_to_lean_angle | Cyber-Physical matches | 2fc25da4c3 | |||
A428 | AC_WPNav.cpp | AC_WPNav: optimise to reduce memory copies | Cyber-Physical matches | ad40ba57be | |||
A429 | AC_WPNav.cpp | AC_WPNav: slow acceleration of intermediate point | Cyber-Physical matches | 6c081c3def | |||
A430 | AC_WPNav.cpp | libraries: replace constrain() with constrain_float() | Software Maintenance | ba83950fc4 | |||
A431 | AC_WPNav.cpp | Copter: remove jerk when entering RTL or AUTO | Cyber-Physical matches | 647a93e78e | |||
A432 | AC_WPNav.cpp | AC_WPNav: remove unnecessary speed constraint | Software Maintenance | 1f8161b493 | |||
A433 | AC_WPNav.cpp | WPNav: flexible loiter speed | Cyber-Physical matches | 328d900647 | |||
A434 | AC_WPNav.cpp | WPNav: reduce max acceleration to 2.5m/s | Cyber-Physical matches | 4704b729c2 | |||
A435 | AC_WPNav.cpp | WPNav: add fast waypoints flag | Initialization of Computing Type | Initialization of Computing Type: line 351: + _flags.reached_destination = false; | Initialization of Computing Type: This change keeps track of the destination reached state using a special computational type to avoid inconsistent initial states. | 9f735c8d03 | |
A436 | AC_WPNav.cpp | WPNav: initialise desired roll, pitch | Cyber-Physical matches | ed5ddfd9db | |||
A437 | AC_WPNav.cpp | WPNav: make get_stopping_point method public | Non-Control | 61288fcb90 | |||
A438 | AC_WPNav.cpp | Copter: bug fix for slow loiter repositioning | Cyber-Physical matches | 55235630b6 | |||
A439 | AC_WPNav.cpp | WPNav: divide by zero checks | Exception Handling | Exception Handling: line 175: + if (vel_delta_total > vel_max && vel_delta_total > 0.0f) { | Exception Handling: This change introduces a predicate condition to check if the total velocity variable is greater than zero to avoid computational failure of divide-by-zero. | cb795ea536 | |
A440 | AC_WPNav.cpp | Copter: smooth waypoint transitions | Cyber-Physical matches | 400c1bd7b7 | |||
A441 | AC_WPNav.cpp | Copter: lengthen loiter stopping point | Cyber-Physical matches | 46d65150af | |||
A442 | AC_WPNav.cpp | Copter: Leonard's improved Loiter | Exception Handling | Exception Handling: line 169: + if( _loiter_speed_cms < 100.0f) { | Exception Handling: This change introduces a predicate condition for loiter speed variable to avoid computational failure of divide-by-zero. | 916f241fff | |
A443 | AC_WPNav.cpp | Copter: resolve compiler warning re unused vars | Non-Control | a474b97291 | |||
A444 | AC_WPNav.cpp | Copter: initialise target vel in loiter | Cyber-Physical matches | e3dffb920b | |||
A445 | AC_WPNav.cpp | Copter: WPNav consolidate acceleration #defines | Non-Control | dbd6524f9f | |||
A446 | AC_WPNav.cpp | Copter: bug fix for vertical speed during missions | Cyber-Physical matches | d203f0295b | |||
A447 | AC_WPNav.cpp | Copter: use fast tan for accel to lean angle calcs | Cyber-Physical matches | a1926441da | |||
A448 | AC_WPNav.cpp | Copter WPNav: Leonard's improved speed fix | Cyber-Physical matches | 8c4a7ec094 | |||
A449 | AC_WPNav.cpp | Copter WPNav: remove unused variable | Non-Control | 89bbf5844f | |||
A450 | AC_WPNav.cpp | Copter: reduce twitch when entering CIRCLE mode | Cyber-Physical matches | 272f0e5032 | |||
A451 | AC_WPNav.cpp | WPNav: add acceleration parameter | Precision & Accuracy, Exception Handling | Precision & Accuracy: line 138: + linear_distance = _wp_accel_cms/(2.0f*kP*kP);, Exception Handling: line 126: + if (vel_total < 10.0f || kP <= 0.0f || _wp_accel_cms <= 0.0f) { | Precision & Accuracy: This change the variable integer 2 to floating point value for better numerical representation and calculation of linear distance, Exception Handling: This change introduces a predicate condition to check if the waypoint acceleration variable is equal to zero to avoid computational failure of divide-by-zero. | dde19c9585 | |
A452 | AC_WPNav.cpp | WPNav: reduce loiter speed used to correct pos error | Cyber-Physical matches | 5d23d5aaa7 | |||
A453 | AC_WPNav.cpp | WPNav: rounding error fix in loiter | Precision & Accuracy | Precision & Accuracy: line 538: + desired_vel.y = _pid_pos_lon->kP() * dist_error.y; | Precision & Accuracy: This change cirrects the rounding error issue in loiter mode calculaton. | c4f17b3235 | |
A454 | AC_WPNav.cpp | WPNav: bug fix to loiter accel calculation | Cyber-Physical matches | 518eba0729 | |||
A455 | AC_WPNav.cpp | WPNav: bug fix to reported distance to target | Non-Control | 204f613467 | |||
A456 | AC_WPNav.cpp | WPNav: replace LOITER_ACCEL_MAX with parameter | Software Maintenance | 345924ddec | |||
A457 | AC_WPNav.cpp | WPNav: stopping point projection uses wp_leash | Non-Control | bf5a50f738 | |||
A458 | AC_WPNav.cpp | Copter: configurable max lean angle | Cyber-Physical matches | 6969ab573d | |||
A459 | AC_WPNav.cpp | Copter: split up loiter into 4 steps | Time and Space Model | Time and Space Model: line 281: + _loiter_last_update = now; | Time and Space Model: This change governs the periodic execution of loiter controller | 45aeb1a921 | |
A460 | AC_WPNav.cpp | AC_WPNav: replace unnecessary objects with const refs | Non-Control | 1ecb583dd9 | |||
A461 | AC_WPNav.cpp | AC_WPNav: make member pointer to AP_InertialNav object const since it's never modified | Software Maintenance | bb5cf4a311 | |||
A462 | AC_WPNav.cpp | AC_WPNav: make more member pointers const | Non-Control | c3309d909c | |||
A463 | AC_WPNav.cpp | AC_WPNav: fixed some build warnings | Precision & Accuracy, Time and Space Model | Precision & Accuracy: line 266: + dt = 0.0f;, Time and Space Model: line 265: + if( dt >= 1.0f ) { | Precision & Accuracy: This change sets the time delta variable into floating point value for better numerical representation, Time and Space Model: This change modifies the resetting of time delta variable when updating the loiter controller | 30fffa5854 | |
A464 | AC_WPNav.cpp | Copter: initialise waypoint leash length | Initialization of Computing Type | Initialization of Computing Type: line 106: + calculate_wp_leash_length(true); | Initialization of Computing Type: This change is part of initialising the horizontal and vertical leash lengths for waypoint controller using a special boolean type to avoid inconsistent initial states. | 952afd296e | |
A465 | AC_WPNav.cpp | AC_WPNav: reduce leash length for stopping | Cyber-Physical matches | 5767aa47d9 | |||
A466 | AC_WPNav.cpp | AC_WPNav: use ahrs trig values | Precision & Accuracy | Precision & Accuracy: line 201: + target_vel_adj.x = (_pilot_vel_forward_cms*_ahrs->cos_yaw() - _pilot_vel_right_cms*_ahrs->sin_yaw()); | Precision & Accuracy: This change includes a different math library for performing math related operations and numerical representation. | c9415a08f1 | |
A467 | AC_WPNav.cpp | AC_WPNav: add reference to AC_PosControl | Cyber-Physical matches | 2984e492df | |||
A468 | AC_WPNav.cpp | AC_WPNav: remove xy pos controller | Time and Space Model, Exception Handling, Initialization of Computing Type | Time and Space Model: line 226: +/// update_loiter - run the loiter controller - should be called at 100hz, Exception Handling: line 322: - if (kP <= 0.0f || _wp_accel_cms <= 0.0f) {, Initialization of Computing Type: line 299: + _flags.fast_waypoint = false; | Time and Space Model: This change modifies the update loiter controller to be executed at 100hz, instead of previous 10hz, Exception Handling: This change removes the check of ensuring proportional gain greater than zero to avoid divide-by-zero computational failure, Initialization of Computing Type: This change modifies the state of ignoring the waypoint radius and consider the waypoint complete once the intermediate target has reached the waypoint. | 0c8cbba644 | |
A469 | AC_WPNav.cpp | AC_WPNav: move leashes to AC_PosControl | Cyber-Physical matches | 1596d83d02 | |||
A470 | AC_WPNav.cpp | AC_WPNav: remove debug | Software Maintenance | 4cd45e2edf | |||
A471 | AC_WPNav.cpp | AC_WPNav: set wp origin to horiz and vert stopping point | Cyber-Physical matches | fc427967ae | |||
A472 | AC_WPNav.cpp | AC_WPNav: remove unused PID references | Software Maintenance | d4e4620159 | |||
A473 | AC_WPNav.cpp | AC_WPNav: use PosControl accessor, Saves 2bytes of RAM |
Resource Attributes | Resource Attributes: Saves 2bytes of RAM | Resource Attributes: This change is specifically intended to saves 2 bytes of RAM memory by using different accessor. | 9e31f0b985 | |
A474 | AC_WPNav.cpp | AC_WPNav: set loiter accel to 1/2 of speed | Cyber-Physical matches | 98bdbb7fed | |||
A475 | AC_WPNav.cpp | WPNav: add spline support | Time and Space Model, Initialization of Computing Type | Time and Space Model: line 636: + uint32_t now = hal.scheduler->millis();, Initialization of Computing Type: line 653: + _pos_control.update_pos_controller(false); | Time and Space Model: This change governs the periodic execution of updating spline controller, Initialization of Computing Type: This change runs the horizontal position controller using a special boolean type to avoid inconsistent initial states. | e5e71ce371 | |
A476 | AC_WPNav.cpp | AC_WPNav: add get_spline_yaw | Cyber-Physical matches | b42b12f7be | |||
A477 | AC_WPNav.cpp | WPNav: add yaw control for straight line wp nav | Cyber-Physical matches | 24eb195aa3 | |||
A478 | AC_WPNav.cpp | WPNav: clean up spline comments | Non-Control | 197683d539 | |||
A479 | AC_WPNav.cpp | AC_WPNav: rounder corners for short spline segments | Cyber-Physical matches | f0f3688172 | |||
A480 | AC_WPNav.cpp | AC_WPNav: check acceleration is non zero | Exception Handling | Exception Handling: line 535: + if (_wp_accel_cms <= 0) { | Exception Handling: This change introduces a predicate condition to check if the waypoint acceleration variable is equal to zero to avoid computational failure of divide-by-zero | c0458b786a | |
A481 | AC_WPNav.cpp | AC_WPNav: advance_spline to use dt | Non-Control | 7dfde39e19 | |||
A482 | AC_WPNav.cpp | AC_WPNav: spline sets origin vel to zero when no prev segment | Cyber-Physical matches | + _spline_time = 0.0f; | d27ca53a9d | ||
A483 | AC_WPNav.cpp | AC_WPNav: use atan2f, make methods const | Precision & Accuracy | Precision & Accuracy: line 712: + _yaw = RadiansToCentiDegrees(atan2f(target_vel.y,target_vel.x)); | Precision & Accuracy: This change converts the target velocity variable from atan2 to atan2f for better numerical representation. | b15d4379d8 | |
A484 | AC_WPNav.cpp | AC_WPNav: replace safe_sqrt with pythagorous2 | Cyber-Physical matches | 15da01cf3a | |||
A485 | AC_WPNav.cpp | AC_WPNav: set_wp_destination to use current target | Cyber-Physical matches | 60f522a094 | |||
A486 | AC_WPNav.cpp | AC_WPNav: integrate update_xy_controller name change | Software Maintenance | 72d2712c4e | |||
A487 | AC_WPNav.cpp | AC_WPNav: run loiter and wp nav at 50hz on Pixhawk | Cyber-Physical matches | d382fa51ee | |||
A488 | AC_WPNav.cpp | AC_WPNav: update target speed immediately | Cyber-Physical matches | 2167dd7d3e | |||
A489 | AC_WPNav.cpp | AC_WPNav: rename some definitions | Non-Control | 648787a6c8 | |||
A490 | AC_WPNav.cpp | AC_WPNav: bug fix to limit target point from moving beyond leash | Cyber-Physical matches | 559a258ede | |||
A491 | AC_WPNav.cpp | AC_WPNav: add reset_I to init_loiter_target | Initialization of Computing Type | Initialization of Computing Type: line 121: +void AC_WPNav::init_loiter_target(bool reset_I) | Initialization of Computing Type: This change introduces a resetting boolean variable as part of initializing target loiter position state. | 5d0476e522 | |
A492 | AC_WPNav.cpp | AC_WPNav: add reset_I to set_loiter_target | Initialization of Computing Type | Initialization of Computing Type: line 100: +void AC_WPNav::init_loiter_target(bool reset_I) | Initialization of Computing Type: This change introduces a resetting boolean variable as part of setting loiter target position state. | 4d5b73b968 | |
A493 | AC_WPNav.cpp | AC_WPNav: reset_I flag moved to position controller | Non-Control | 7c02a02bd8 | |||
A494 | AC_WPNav.cpp | AC_WPNav: slow target point's speed near destination | Initialization of Computing Type | Initialization of Computing Type: line 340: + _flags.slowing_down = false; | Initialization of Computing Type: This change add a slow down boolean variable to avoid inconsistent state of slowing down calculation (the distance from the destination when the target point should begin slow down). | 46fba47c8e | |
A495 | AC_WPNav.cpp | AC_WPNav: recalc leash lengths if set_horizontal_velocity is called | Initialization of Computing Type | Initialization of Computing Type: line 275: + _flags.recalc_wp_leash = true; | Initialization of Computing Type: This change add a waypoint recalculation boolean variable to avoid inconsistent state of calculating the leash length when setting the horizontal velocity. | ad99918fee | |
A496 | AC_WPNav.cpp | AC_WPNav: rename get_horizontal_velocity to get_speed_xy | Software Maintenance | 510c9920a6 | |||
A497 | AC_WPNav.cpp | AC_WPNav: add WPNAV_ACCEL_Z | Cyber-Physical matches | 0103ae2eb0 | |||
A498 | AC_WPNav.cpp | AC_WPNav: init_loiter sets speed, accel before calcing stopping distance | Cyber-Physical matches | 7dd366d84e | |||
A499 | AC_WPNav.cpp | AC_WPNav: replace inav, ahrs pointers with references | Cyber-Physical matches | fd9f8f571f | |||
A500 | AC_WPNav.cpp | AC_WPNav: add LOIT_JERK parameter | Cyber-Physical matches | b38c484874 | |||
A501 | AC_WPNav.cpp | WPNav: add wp_and_spline_init to set speeds an init pos controller | Cyber-Physical matches | 091ff91a70 | |||
A502 | AC_WPNav.cpp | AC_WPNav: bug fix for loiter init in Hybrid | Cyber-Physical matches | aed5787c1b | |||
A503 | AC_WPNav.cpp | AC_WPNav: set_loiter_target uses set_xy_target | Cyber-Physical matches | e7b3c00767 | |||
A504 | AC_WPNav.cpp | AC_WPNav: rename set_loiter_target to init_loiter_target | Software Maintenance | 597d5227f5 | |||
A505 | AC_WPNav.cpp | AC_WPNav: fix divide by zero when origin and dest are same location | Exception Handling | Exception Handling: line 866: + if (accel_cmss <= 0.0f) { | Exception Handling: This change introduces a predicate that checks whether the acceleration value is zero to avoid divide-by-zero computational failure. | cde7d31dad | |
A506 | AC_WPNav.cpp | Spline div zero and leash limit fix | Cyber-Physical matches | 0912bec8f5 | |||
A507 | AC_WPNav.cpp | AC_WPNav: spline div by zero fix | Time and Space Model, Exception Handling | Time and Space Model: line 107: + _spline_time_scale(0.0), Exception Handling: line 817: + if (target_vel_length != 0.0f) { | Time and Space Model: This change sets the default current spline time between origin and destination, Exception Handling: This change introduces a predicate condition that ensure target velocity variable is not equal to zero to avoid divide-by-zero computational failure. | efd6d6dc70 | |
A508 | AC_WPNav.cpp | AC_WPNav: use fast_atan2 for bearing calcs | Precision & Accuracy | Precision & Accuracy: line 825: + _yaw = RadiansToCentiDegrees(fast_atan2(target_vel.y,target_vel.x)); | Precision & Accuracy: This change converts the target velocity variable from atan2f to fast_atan2 for better numerical calculation. | f23e94707c | |
A509 | AC_WPNav.cpp | AC_PosControl: freeze feed forward for alt control in Auto | Cyber-Physical matches | 8bbce7e658 | |||
A510 | AC_WPNav.cpp | AC_WPNav: use curr pos target as spline origin | Cyber-Physical matches | ce85d1f6b2 | |||
A511 | AC_WPNav.cpp | AC_WPNav: smooth waypoint by freezing feed-forward and allowing overshoot | Initialization of Computing Type | Initialization of Computing Type: line 391: + _flags.new_wp_destination = true; | Initialization of Computing Type: This change introduces a waypoint flag of boolean type to freeze the position controller's feed forward and smooth the state transition. | a2f54fdf2c | |
A512 | AC_WPNav.cpp | AC_WPNav: integrate set_desired_velocity_xy function name change | Non-Control | c9661cfb09 | |||
A513 | AC_WPNav.cpp | AC_WPNav: update yaw only when track is at least 2m | Cyber-Physical matches | 2b64c511ed | |||
A514 | AC_WPNav.cpp | AC_WPNav: init members to resolve compiler warnings | Cyber-Physical matches | 3fd2b3b4a1 | |||
A515 | AC_WPNav.cpp | AC_WPNav: resolve twitch when passing spline waypoints | Cyber-Physical matches | 1c6606cc58 | |||
A516 | AC_WPNav.cpp | AC_WPNav: WP_SPEED_DN parameter range to 0~500 | Software Maintenance | ad37fc0408 | |||
A517 | AC_WPNav.cpp | AC_WPNav: add loiter_soften_for_landing method | Cyber-Physical matches | 765420ee04 | |||
A518 | AC_WPNav.cpp | AC_WPNav: add shift_wp_origin_to_current_pos for takeoff | Cyber-Physical matches | dbe1c55666 | |||
A519 | AC_WPNav.cpp | AC_WPNav: bug fix sanity check of set_speed_xy | Software Maintenance | e80328d3a5 | |||
A520 | AC_WPNav.cpp | AC_WPNav: Use target yaw instead of current yaw for close waypoints | Cyber-Physical matches | 369839c7ca | |||
A521 | AC_WPNav.cpp | AC_WPNav: minor fix to comments | Non-Control | 71586d40e3 | |||
A522 | AC_WPNav.cpp | AC_WPNav: add set_spline_dest_and_vel function | Time and Space Model, Exception Handling, Initialization of Computing Type | Time and Space Model: line 812: + _spline_time = 0.0f; Exception Handling: line 808: + if (_wp_accel_cms <= 0) {, Initialization of Computing Type: line 849: + _flags.reached_destination = false; | Time and Space Model: This change sets the current spline time between origin and destination, Exception Handling: This change introduces a predicate condition to check if the waypoint acceleration variable is equal to zero to avoid divide-by-zero computational failure, Initialization of Computing Type: This change keeps track of the destination reached state using a special computational type to avoid inconsistent initial states. | 2cc65dffe0 | |
A523 | AC_WPNav.cpp | AC_WPNav: Add EKF ground speed limit to loiter speed control | Cyber-Physical matches | 5fa0c59310 | |||
A524 | AC_WPNav.cpp | AC_WPNav: Add nav velocity gain scaler to interfaces | Non-Control | 11fb51ceba | |||
A525 | AC_WPNav.cpp | AC_WPNav: minor const fix | Precision & Accuracy | Precision & Accuracy: line 656: + if (_pos_delta_unit.z >= 0.0f) { | Precision & Accuracy: This change compares the predicate variables with floating point zero for better numerical comparison. | 4a1ba9b186 | |
A526 | AC_WPNav.cpp | AC_WPNav: provide reset_I to init_xy_controller | Cyber-Physical matches | 5438d38df5 | |||
A527 | AC_WPNav.cpp | AC_WPNav: remove various timing hacks | Precision & Accuracy, Time and Space Model | Precision & Accuracy: line 304: + dt = 0.0f;, Time and Space Model: line 303: + if (dt >= 0.2f) { | Precision & Accuracy: This change sets the time delta variable into floating point value for better numerical representation, Time and Space Model: This change modifies the resetting of time delta variable when updating the loiter controller and it used to update the desired velocity based on pilot input. | 6eab698e85 | |
A528 | AC_WPNav.cpp | AC_WPNav: update usage of update_xy_controller | Software Maintenance | 626521c366 | |||
A529 | AC_WPNav.cpp | AC_WPNav: rename xy_mode | Software Maintenance | fc4442bf61 | |||
A530 | AC_WPNav.cpp | AC_WPNav: allow user to tune loiter | Cyber-Physical matches | 1da410a6c6 | |||
A531 | AC_WPNav.cpp | AC_WPNav: fix double-twitch on stop in loiter | Cyber-Physical matches | fd55068620 | |||
A532 | AC_WPNav.cpp | AC_WPNav: minor comment and formatting changes | Non-Control | 39213584da | |||
A533 | AC_WPNav.cpp | AC_WPNav: Create Stop Mode functions | Time and Space Model | Time and Space Model: line 239: + float dt = _pos_control.time_since_last_xy_update(); | Time and Space Model: This change adds a time delta variable that governs the execution of stop controller. | 4a7fe83b0f | |
A534 | AC_WPNav.cpp | AC_WPNav: move stop below all loiter methods | Non-Control | 35874292a0 | |||
A535 | AC_WPNav.cpp | AC_WPNav: Improve application of EKF optical flow speed limit | Cyber-Physical matches | 7481217445 | |||
A536 | AC_WPNav.cpp | AC_WPNav: protect against div-by-zero related to gnd_speed_limit | Exception Handling | Exception Handling: line 236: + gnd_speed_limit_cms = max(gnd_speed_limit_cms, 10.0f); | Exception Handling: This change introduces a range condition that checks whether the loiter speed limit to avoid divide-by-zero computational failure. | 33431acaa4 | |
A537 | AC_WPNav.cpp | AC_WPNav: remove unused set_loiter_velocity | Software Maintenance | 2b29060a4e | |||
A538 | AC_WPNav.cpp | AP_WPNav: compiler warnings: apply is_zero(float) or is_equal(float) | Precision & Accuracy | Precision & Accuracy: line 4: +#include |
Precision & Accuracy: This change includes a different math library for performing math related operations. | 913d00f525 | |
A539 | AC_WPNav.cpp | AC_WPNav: Compiler warnings: add in the appropriate whitrespace | Non-Control | 1b84bbc3e7 | |||
A540 | AC_WPNav.cpp | AC_WPNav: Compiler warnings: nuke fast_atan2() | Precision & Accuracy | Precision & Accuracy: line 250: + float bearing_rad = atan2f(curr_pos.y-_center.y,curr_pos.x-_center.x); | Precision & Accuracy: This change converts the target velocity variable from fast_atan2 to atan2f for better numerical calculation. | 7fd285f483 | |
A541 | AC_WPNav.cpp | AC_WPNAV: revert AP_Math class change | Precision & Accuracy | Precision & Accuracy: line 128: + if (!is_zero(_radius)) { | Precision & Accuracy: This change includes a different math library for performing math related operations. | c08b62f9e4 | |
A542 | AC_WPNav.cpp | Copter: fix spline overshoot | Cyber-Physical matches | 7056484ef0 | |||
A543 | AC_WPNav.cpp | AC_WPNav: remove unused set_spline_dest_and_vel | Software Maintenance | 61c851885f | |||
A544 | AC_WPNav.cpp | AC_WPNav: rename stop to brake | Software Maintenance | 0077cac1b7 | |||
A545 | AC_WPNav.cpp | AC_WPNav: init flags | Initialization of Computing Type | Initialization of Computing Type: line 132: + _flags.reached_destination = false; | Initialization of Computing Type: This change keeps track of the destination reached state using a special computational type to avoid inconsistent initial states. | aa7a151fe5 | |
A546 | AC_WPNav.cpp | AC_WPNav: fix spline height loss | Cyber-Physical matches | 8195f45d6c | |||
A547 | AC_WPNav.cpp | AC_WPNav: replace hardcoded 0.02 with pos_control dt | Exception Handling | Exception Handling: line 929: + if (!is_zero(dt)) { | Exception Handling: This change introduces a predicate that checks whether the time interval is not equal to zero to avoid divide-by-zero computational failure. | fb9cc124c8 | |
A548 | AC_WPNav.cpp | AC_WPNav: standardize inclusion of libaries headers | Non-Control | ee2c388bb0 | |||
A549 | AC_WPNav.cpp | AC_WPNav: make changes in WPNAV_ACCEL take effect immediately | Cyber-Physical matches | f6f2973acd | |||
A550 | AC_WPNav.cpp | AC_WPNav: add shift_loiter_target method | Cyber-Physical matches | 7706102d1e | |||
A551 | AC_WPNav.cpp | AC_WPNav: loiter limits lean angle for alt loss | Cyber-Physical matches | 5ab2a19173 | |||
A552 | AC_WPNav.cpp | AC_WPNav: stop gradually in loiter | Cyber-Physical matches | 853f8bfaf4 | |||
A553 | AC_WPNav.cpp | AC_WPNav: set jerk separately for wpnav and loiter | Cyber-Physical matches | 49c4a133d7 | |||
A554 | AC_WPNav.cpp | AC_WPNav: increase param description max for LOIT_JERK | Software Maintenance | c52f16b86f | |||
A555 | AC_WPNav.cpp | AC_WPNav: loiter uses pos_control.shift_pos_xy_target | Cyber-Physical matches | 040ec481f4 | |||
A556 | AC_WPNav.cpp | AC_WPNav: handle ekf position reset in Loiter and Brake | Cyber-Physical matches | adee13d729 | |||
A557 | AC_WPNav.cpp | Remove use of PROGMEM | Non-Control | 831d8acca5 | |||
A558 | AC_WPNav.cpp | AC_WPNav: WPNAV_LOIT_SPEED WPNAV_LOIT_MAXA take effect immediately | Cyber-Physical matches | f9c7f15052 | |||
A559 | AC_WPNav.cpp | AC_WPNav: use millis/micros/panic functions | Precision & Accuracy, Time and Space Model | Precision & Accuracy: + if ((AP_HAL::millis() - _wp_last_update) < 1000) {, Time and Space Model: + if ((AP_HAL::millis() - _wp_last_update) < 1000) { | Precision & Accuracy: This change includes a different math library for performing math related operations, Time and Space Model: This change introduces different library that modifies the time estimation. | e867a06383 | |
A560 | AC_WPNav.cpp | Global: rename min and max macros to uppercase | Non-Control | 2591261af6 | |||
A561 | AC_WPNav.cpp | AC_WPNav: call renamed functions in AC_AttitudeControl | Software Maintenance | 3c4d226b64 | |||
A562 | AC_WPNav.cpp | AC_WPNav: limit WPNAV_ACCEL to that implied by ANGLE_MAX | Cyber-Physical matches | 4908350ccb | |||
A563 | AC_WPNav.cpp | AC_WPNav: straight line waypoints accept terrain | Initialization of Computing Type | Initialization of Computing Type: line 1130: + terrain_alt = true; |
Initialization of Computing Type: This change adds a boolean variable to keep track of whether z-axis destination has to be treated as altitude above terrain or not. | 8b2c479d62 | |
A564 | AC_WPNav.cpp | AC_WPNav: spline handles terrain altitudes | Cyber-Physical matches | 9fbfea951a | |||
A565 | AC_WPNav.cpp | AC_WPNav: fix reporting of set_wp_destination failure | Software Maintenance | e23c869c5d | |||
A566 | AC_WPNav.cpp | AC_WPNav: simplify use of terrain to just current location | Exception Handling | Exception Handling: line 1158: + if (_terrain != NULL && _terrain->height_above_terrain(terr_alt, true)) { | Exception Handling: This change introduces a predicate that checks whether the terrain variable has unintended data value NULL to avoid computational failure during the mission of terrain following waypoints. | 1c4b2be16a | |
A567 | AC_WPNav.cpp | AP_Math: Replace the pythagorous | Cyber-Physical matches | 41661f815f | |||
A568 | AC_WPNav.cpp | AC_WPNav: fix compile when using AP_TERRAIN_AVAILABLE 0 | Non-Control | 684ac12dd6 | |||
A569 | AC_WPNav.cpp | AC_WPNav: support rangefinder for terrain following | Cyber-Physical matches | 2bafc36ded | |||
A570 | AC_WPNav.cpp | AC_WPNav: use AC_Avoidance to stop at fence during Loiter | Cyber-Physical matches | 8a6aa24525 | |||
A571 | AC_WPNav.cpp | AC_WPNav: remove shift_loiter_target | Non-Control | b5e80148c6 | |||
A572 | AC_WPNav.cpp | Copter: reduce WPNAV_LOIT_MINA parameter description range | Software Maintenance | 2dc111ff39 | |||
A573 | AC_WPNav.cpp | AC_WPNav: added WP_RFND_USE parameter | Cyber-Physical matches | c87fa13e77 | |||
A574 | AC_WPNav.cpp | Global: remove mode line from headers | Non-Control | 152edf7189 | |||
A575 | AC_WPNav.cpp | Global: To nullptr from NULL. | Cyber-Physical matches | c808ee2f49 | |||
A576 | AC_WPNav.cpp | AC_WPNav: remove unused _loiter_step member | Software Maintenance | 6406e34016 | |||
A577 | AC_WPNav.cpp | AC_WPNav: remove ekf position reset handler | Non-Control | a32068a973 | |||
A578 | AC_WPNav.cpp | AC_WPNav: Reduced WPNAV_SPEED minimum to 20cm/s | Software Maintenance | 713b08d830 | |||
A579 | AC_WPNav.cpp | AC_WPNav: converted to use AP_AHRS_View | Non-Control | 17e1329068 | |||
A580 | AC_WPNav.cpp | AC_WPNav: protect against LOIT_SPEED divide-by-zero | Exception Handling | Exception Handling: line 145: + _loiter_speed_cms = MAX(_loiter_speed_cms, WPNAV_LOITER_SPEED_MIN); | Exception Handling: This change introduces a range condition that checks whether the loiter horizontal maximum speed to avoid divide-by-zero computational failure. | 8c6c2e46cc | |
A581 | AC_WPNav.cpp | AC_WPNav: speed-up and down parameter min to 10cm/s | Software Maintenance | d4c4daca16 | |||
A582 | AC_WPNav.cpp | AC_WPNav: reduce spline to straight twitch | Cyber-Physical matches | e96332d346 | |||
A583 | AC_WPNav.cpp | AC_WPNav: add get_stopping_point | Non-Control | e2cf836734 | |||
A584 | AC_WPNav.cpp | AC_WPNav: init z-axis feed-foward to correct stopping point calcs | Cyber-Physical matches | ba011eef78 | |||
A585 | AC_WPNav.cpp | AC_WPNav: correct straight line waypoint leash calculation | Cyber-Physical matches | 62c123bb08 | |||
A586 | AC_WPNav.cpp | AC_WPNav: yaw points along leash | Initialization of Computing Type | Initialization of Computing Type: line 413: + _flags.wp_yaw_set = false; | Initialization of Computing Type: This change sets yaw target boolean variable to initialise yaw heading to current heading target to avoid inconsistent states. | b1bd3f0364 | |
A587 | AC_WPNav.cpp | AC_WPNav: unset yaw when setting new origin and destination | Initialization of Computing Type | Initialization of Computing Type: line 515: + _flags.wp_yaw_set = false; | Initialization of Computing Type: This change sets yaw target boolean variable to initialise yaw heading to current heading target to avoid inconsistent states. | bffc5daeb0 | |
A588 | AC_WPNav.cpp | AC_WPNav: sanity check wpnav-radius | Cyber-Physical matches | a1a5c9f239 | |||
A589 | AC_WPNav.cpp | AC_WPNav: correct min limit | Software Maintenance | 079d2ff3be | |||
A590 | AC_WPNav.cpp | AC_WPNav: minor format fix | Non-Control | bd2ba1565c | |||
P1 | stabilization_attitude.c | >Autopilot refactor (#2009)* [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 |
Software Maintenance | 363dec8693 | |||
P2 | stabilization_attitude.c | Skid landing (#1669)Skid landing navigation routine.Comes with an optional landing control for vertical control system I did test the build at a localhost. |
Cyber-Physical matches | 75f8e34e51 | |||
P3 | stabilization_attitude.c | replace TRUE/FALSE by stdbool true/false | Non-Control | 8edab84dd4 | |||
P4 | stabilization_attitude.c | replace bool_t with C99 bool from stdbool.h | Non-Control | 5c1e4260fe | |||
P5 | stabilization_attitude.c | [telemetry] register_periodic: use PPRZ_MSG_ID_x instead of DL_x | Software Maintenance | driver specific | faf2206c32 | ||
P6 | stabilization_attitude.c | Change register_periodic_telemetry() to use msg id | Software Maintenance | 83065af402 | |||
P7 | stabilization_attitude.c | [state interface] get functions: don't return pointers for single values | Software Maintenance | 247c0367f8 | |||
P8 | stabilization_attitude.c | [fixedwing] stabilization_attitude: fix bug in AGR_CLIMB Not sure exactly of the impact as this as lingering in the code for a long time | Software Maintenance | f052e69b91 | |||
P9 | stabilization_attitude.c | new setpoints | Cyber-Physical matches | 908e74ffa7 | |||
P10 | stabilization_attitude.c | [fixedwing] use min/max_cruise_throttle variables instead of definescloses #1057 | Software Maintenance | cf96b48d86 | |||
P11 | stabilization_attitude.c | [airborne] fix code style on (nearly) all files``` find sw/airborne/ -regextype posix-extended -regex 'sw/airborne/.*(chibios-libopencm3|lpcusb|efsl|lpc21/include|lpc21/test/bootloader|subsystems/ahrs)' -prune -o -name '*.[ch]' -exec ./fix_code_style.sh {} + ```ignored ahrs (for now) to not create unnecessary conflicts for some pending changes.. | Non-Control | 603b40a513 | |||
P12 | stabilization_attitude.c | [telemetry] rename 'device' to 'link_device' | Non-Control | 34b6ca3a26 | |||
P13 | stabilization_attitude.c | [telemetry] convert macros in registered callback to functions
|
Software Maintenance | e5cdfa1ce1 | |||
P14 | stabilization_attitude.c | [telemetry] change register callback to pass arguments | Software Maintenance | c4b73552cd | |||
P15 | stabilization_attitude.c | [fixedwing] move nav.[ch] to firmwares/fixedwing | Software Maintenance | 65a82463d4 | |||
P16 | stabilization_attitude.c | [telemetry] make specific flag for periodic telemetry | Software Maintenance | eba60ba1fe | |||
P17 | stabilization_attitude.c | [fixedwing]
cosmetic: untabify |
Software Maintenance | 2be00c735b | |||
P18 | stabilization_attitude.c | [telemetry] protect telemetry code with #if DOWNLINK- also get rid of AP_DOWNLINK and FBW_DOWNLINK - still needs to make it work again (for the only remaining classix inthe world...) | Cyber-Physical matches | 116faaeda6 | |||
P19 | stabilization_attitude.c | [telemetry] new periodic telemetry system- only FW currently | Cyber-Physical matches | 1bff48ec2d | |||
P20 | stabilization_attitude.c | [dox] fix some doxygen file blocks for fixedwing firmware | Non-Control | 49f28d4529 | |||
P21 | stabilization_attitude.c | cleanup: removeident from source files. | Non-Control | d5b53269ba | |||
P22 | stabilization_attitude.c | [fixedwing] fix typo in attitude stabilization was within an ifdef STRONG_WIND | Software Maintenance | 40bee12d8a | |||
P23 | stabilization_attitude.c | [AoA] add angle of attack and sideslip to state interface | Cyber-Physical matches | e9794e8986 | |||
P24 | stabilization_attitude.c | Merge remote-tracking branch 'paparazzi/master' into state_interfaceConflicts: sw/airborne/subsystems/nav.h | Non-Control | 81bde17609 | |||
P25 | stabilization_attitude.c | [airborne] removed pragma messages warning about changed signs | Software Maintenance | ffd52c72a7 | |||
P26 | stabilization_attitude.c | Total Energy Control for Fixedwing | Software Maintenance | b845da2bb5 | |||
P27 | stabilization_attitude.c | [state interface] fw control/guidance/nav convertedOnly the basic navigation routines are converted to the new state interface Some stuff are missing into the state interface: angle of attack and sideslip angle | Cyber-Physical matches | aa2cd517e8 | |||
P28 | stabilization_attitude.c | fixedwing stabilization attitude: fix sign of v_ctl_altitude_error when using AGR_CLIMB | Software Maintenance | b90ca9991e | |||
P29 | stabilization_attitude.c | fixedwing gains: do not use ABS anymore | Cyber-Physical matches | 81c5792b5c | |||
P30 | stabilization_attitude.c | Merge branch 'dev' into positive_control_gainsConflicts: conf/airframes/ENAC/fixed-wing/funjet2.xml conf/airframes/ENAC/fixed-wing/funjet2_nc.xml conf/airframes/ENAC/fixed-wing/funjet2_new.xml conf/airframes/ENAC/fixed-wing/funjet3.xml conf/airframes/ENAC/fixed-wing/merlin.xml conf/airframes/ENAC/fixed-wing/minimag1.xml conf/airframes/ENAC/fixed-wing/obsolete/drops.xml conf/airframes/ENAC/fixed-wing/overview.xml conf/airframes/ENAC/fixed-wing/soarzi.xml conf/airframes/ENAC/fixed-wing/weasel.xml conf/airframes/LAAS/mmlaas_N1.xml conf/airframes/LAAS/mmlaas_N2.xml conf/airframes/LAAS/mmlaas_N3.xml conf/airframes/Poine/funjet42.xml conf/airframes/Poine/swift_1.xml conf/airframes/TU_Delft/MicrojetBR.xml conf/airframes/delta_wing_minimal_example.xml conf/airframes/easystar_ets_example.xml conf/airframes/easystar_example.xml conf/airframes/example_twog_analogimu.xml conf/airframes/funjet_cam_example.xml conf/airframes/funjet_example.xml conf/airframes/mm/extra/press_t.xml conf/airframes/mm/extra/probe_t.xml conf/airframes/mm/extra/turbine_trigger.xml conf/airframes/mm/fixed-wing/drops.xml conf/airframes/mm/fixed-wing/funjet43.xml conf/airframes/mm/fixed-wing/funjetdca.xml conf/airframes/mm/fixed-wing/funjetdcb.xml conf/airframes/mm/fixed-wing/funjetdcc.xml conf/airframes/mm/fixed-wing/funjeteth1.xml conf/airframes/mm/fixed-wing/funjeteth2.xml conf/airframes/mm/fixed-wing/funjetfmi1.xml conf/airframes/mm/fixed-wing/funjetfmi2.xml conf/airframes/mm/fixed-wing/funjetfmi3.xml conf/airframes/mm/fixed-wing/funjetgfi1.xml conf/airframes/mm/fixed-wing/funjetgfi3.xml conf/airframes/mm/fixed-wing/funjetgfi4.xml conf/airframes/mm/fixed-wing/funjetgfi5.xml conf/airframes/mm/fixed-wing/funjetgfi6.xml conf/airframes/mm/fixed-wing/funjetgfi7.xml conf/airframes/mm/fixed-wing/funjetgfi8.xml conf/airframes/mm/fixed-wing/funjetgfi9.xml conf/airframes/mm/fixed-wing/funjetlisa.xml conf/airframes/mm/fixed-wing/funjetlisam.xml conf/airframes/mm/fixed-wing/funjetmm.xml conf/airframes/mm/fixed-wing/funjetmm2.xml conf/airframes/mm/fixed-wing/fw_ins_arduimu.xml conf/airframes/mm/fixed-wing/merlin.xml conf/airframes/mm/fixed-wing/miniwing.xml conf/airframes/mm/fixed-wing/slowfast.xml conf/airframes/mm/fixed-wing/slowfast2.xml conf/airframes/mm/fixed-wing/twinstarmm.xml conf/airframes/mm/hangar/black_one.xml conf/airframes/mm/hangar/glass_one1.xml conf/airframes/mm/hangar/glass_one2.xml conf/airframes/mm/hangar/glass_one3.xml conf/airframes/mm/hangar/lila.xml conf/airframes/mm/hangar/mac06a.xml conf/airframes/mm/hangar/red_one.xml conf/airframes/obsolete/easystar2.xml conf/airframes/obsolete/kalscott_easystar.xml conf/airframes/obsolete/microjet5_tp_auto.xml conf/airframes/obsolete/microjet6.xml conf/airframes/obsolete/microjetII.xml conf/airframes/obsolete/minimag1.xml conf/airframes/obsolete/minimag_fs.xml conf/airframes/obsolete/mmlaas_N1_carto_cam.xml conf/airframes/obsolete/storm1.xml conf/airframes/obsolete/tiny2.xml conf/airframes/obsolete/xxx1.xml conf/airframes/test_hb.xml conf/airframes/twinstar_example.xml conf/airframes/usb_test.xml conf/settings/tuning_ctl_adaptive.xml sw/airborne/firmwares/fixedwing/stabilization/stabilization_adaptive.c | Non-Control | dd15598389 | |||
P31 | stabilization_attitude.c | use #if USE_x instead of #ifdef USE_xThen you can also define e.g. -DUSE_GPS=0 and it will work as expected (disable it just like as if it would be undefined) -DUSE_GPS (without a value) has the same effect as -DUSE_GPS=1 If you need to define it in the code | Cyber-Physical matches | 00f8eec9b1 | |||
P32 | stabilization_attitude.c | Revert "#if USE_x instead of #ifdef USE_x"somehow this does not work in some cases: arch/lpc21/mcu_periph/adc_arch.c:32:12: error: #if with no expressionThis reverts commit c12f3401a082ef5b016f208a1b1ccd0fec0a3fd6. | Software Maintenance | b83a9fbd56 | |||
P33 | stabilization_attitude.c | #if USE_x instead of #ifdef USE_x | Software Maintenance | c12f3401a0 | |||
P34 | stabilization_attitude.c | changed h_ctl_roll_rate_gain to positive | Cyber-Physical matches | a107375f8e | |||
P35 | stabilization_attitude.c | changed h_ctl_roll_attitude_gain to positive | Cyber-Physical matches | 5e59fc1f1b | |||
P36 | stabilization_attitude.c | changed h_ctl_pitch_dgain to positive already had postive definition for stabilization_adaptive | Cyber-Physical matches | d4d97473d4 | |||
P37 | stabilization_attitude.c | changed h_ctl_pitch_pgain to positive | Cyber-Physical matches | c3f0bb8170 | |||
P38 | stabilization_attitude.c | start defining all control gains with positive values: changed H_CTL_COURSE_PGAIN to positive | Cyber-Physical matches | 225111d9bc | |||
P39 | stabilization_attitude.c | fix remains of conflict in stabilization_attitude | Software Maintenance | 9b351df8de | |||
P40 | stabilization_attitude.c | Merge pull request #67 makes sense so you can't accidentally switch to AOA pitch mode while you don't even have an AOA sensor | Non-Control | cc5109ee84 | |||
P41 | stabilization_attitude.c | initialize h_ctl_pitch_mode to zero | Cyber-Physical matches | 38613d1e4a | |||
P42 | stabilization_attitude.c | exclude the AOA code if USE_AOA is not defined | Cyber-Physical matches | 1070bb2a54 | |||
P43 | stabilization_attitude.c | AoA Module to use the USDigital M3 as an AoA-Sensor Pitchloop Switcher in stabilization_attitude.c Settingsfile to load in GUI Downlink message ID 69 | Cyber-Physical matches | f840fc61f6 | |||
P44 | stabilization_attitude.c | Merge branch 'master' into nav and resolve conflicts | Non-Control | f0c9716dcd | |||
P45 | stabilization_attitude.c | put generated headers in a seperate generated dir and specifically include generated/xxx.h | Non-Control | 7fd01bcbe2 | |||
P46 | stabilization_attitude.c | fix nav.h includes | Non-Control | c34a790dec | |||
P47 | stabilization_attitude.c | fix some more includes after moving/renaming of fixedwing control | Non-Control | 8de34cc7dd | |||
P48 | stabilization_attitude.c | cleanup some trailing whitespaces | Software Maintenance | 18f1ad5a0a | |||
P49 | stabilization_attitude.c | moved fw_[hv]_ctl to firmwares/fixedwing/stabilization and guidance | Non-Control | 9902669bd1 | |||
P50 | fw_h_ctl.c | use double quotes for subsystems and firmware, angle brackets only for external includes | Non-Control | 08716bbd8d | |||
P51 | fw_h_ctl.c | fixing header path | Non-Control | 55289d94c2 | |||
P52 | fw_h_ctl.c | Added aggressive climb mode and climb limiter when USE_AIRSPEED is enabled. Kalman filter parameters have been adjusted for use with the ETS barometric sensor. | Cyber-Physical matches | f646d52d4c | |||
P53 | fw_h_ctl.c | Cyber-Physical matches | dfd54d61b9 | ||||
P54 | fw_h_ctl.c | comments | Non-Control | e508dabace | |||
P55 | fw_h_ctl.c | estimator_psi estimation moved to estimator.c | Software Maintenance | af5d898020 | |||
P56 | fw_h_ctl.c | Strong Wind | Cyber-Physical matches | ea5181ead2 | |||
P57 | fw_h_ctl.c | Bug fixed: v_ctl_altitude_error may be null ! | Cyber-Physical matches | df16da4f8e | |||
P58 | fw_h_ctl.c | *** empty log message *** | Cyber-Physical matches | 65f1ae5f13 | |||
P59 | fw_h_ctl.c | Cleaned up 2 lines, no change in functionality | Non-Control | dcfc73b70a | |||
P60 | fw_h_ctl.c | missed the altitude_error | Cyber-Physical matches | 4502bab574 | |||
P61 | fw_h_ctl.c | Fixed Error preventing AGR climb from working.Navigation would not blend. | Exception Handling | Exception Handling: line 202: +nav_ratio = AGR_CLIMB_NAV_RATIO + ( 1 - AGR_CLIMB_NAV_RATIO)*(1 - (fabs (altitude_error) - GR_BLEND_END) / → (AGR_BLEND_START - AGR_BLEND_END)) | Exception Handling: This change prevents a divide by zero error by ensuring the variable is greater than zero before being used to calculate the navigation ratio for the vehicle controller. | 7f91efa285 | |
P62 | fw_h_ctl.c | Default value forH_CTL_ROLL_RATE_GAIN | Cyber-Physical matches | 704b878011 | |||
P63 | fw_h_ctl.c | Simpler roll loop (old code will be removed later) | Cyber-Physical matches | 835799a1f1 | |||
P64 | fw_h_ctl.c | course dgain | Cyber-Physical matches | line 99 | 76c599093f | ||
P65 | fw_h_ctl.c | course slew | Cyber-Physical matches | 545439920 | |||
P66 | fw_h_ctl.c | limited course control in THROTTLE_BLENDED mode (like in AGRESSIVE) | Cyber-Physical matches | f509e1660c | |||
P67 | fw_h_ctl.c | roll slew | Cyber-Physical matches | ff527c2e4b | |||
P68 | fw_h_ctl.c | ready for MAV06 | Cyber-Physical matches | a22168ad09 | |||
P69 | fw_h_ctl.c | *** empty log message *** | Cyber-Physical matches | fb246a9187 | |||
P70 | fw_h_ctl.c | *** empty log message *** | Cyber-Physical matches | a4b8424238 | |||
P71 | fw_h_ctl.c | loiter and dash | Cyber-Physical matches | a46ad658b1 | |||
P72 | fw_h_ctl.c | *** empty log message *** | Cyber-Physical matches | 1b25c684f6 | |||
P73 | fw_h_ctl.c | *** empty log message *** | First draft | 50c497f59a | |||
P74 | stabilization_attitude_euler_int.c | replace bool_t with C99 bool from stdbool.h | Non-Control | 5c1e4260fe | |||
P75 | stabilization_attitude_euler_int.c | [telemetry] register_periodic: use PPRZ_MSG_ID_x instead of DL_x | Software Maintenance | faf2206c32 | |||
P76 | stabilization_attitude_euler_int.c | Change register_periodic_telemetry() to use msg id | Software Maintenance | 83065af402 | |||
P77 | stabilization_attitude_euler_int.c | [rotorcraft] attitude ref: refactor euler_int | Software Maintenance | 794384470b | |||
P78 | stabilization_attitude_euler_int.c | [airborne] replace memcpy with assignment for structsNo reason to use memcpy to copy structs, assignment works since C90. Normal assignment should actually be preferred as it will better deal with alignment/padding in some cases. | Software Maintenance | 7322cdbfd0 | |||
P79 | stabilization_attitude_euler_int.c | [airborne] fix code style on (nearly) all files``` find sw/airborne/ -regextype posix-extended -regex 'sw/airborne/.*(chibios-libopencm3|lpcusb|efsl|lpc21/include|lpc21/test/bootloader|subsystems/ahrs)' -prune -o -name '*.[ch]' -exec ./fix_code_style.sh {} + ```ignored ahrs (for now) to not create unnecessary conflicts for some pending changes.. | Non-Control | 603b40a513 | |||
P80 | stabilization_attitude_euler_int.c | [telemetry] rename 'device' to 'link_device' | Non-Control | 34b6ca3a26 | |||
P81 | stabilization_attitude_euler_int.c | [telemetry] convert macros in registered callback to functions | Software Maintenance | e5cdfa1ce1 | |||
P82 | stabilization_attitude_euler_int.c | [telemetry] change register callback to pass arguments | Software Maintenance | c4b73552cd | |||
P83 | stabilization_attitude_euler_int.c | [rotorcraft] reorg stabilization includes/inittowards not requiring any specfic stabilization controllers (none, rate, attitude) | Software Maintenance | 0c64a410c0 | |||
P84 | stabilization_attitude_euler_int.c | [rotorcraft] include and dox cleanup | Precision & Accuracy | Precision & Accuracy: line 35: + #include "math/pprz_algebra_int.h" | Precision & Accuracy: This change includes a different math library in attitude stabilization for performing math related operations. | 96778c01f3 | |
P85 | stabilization_attitude_euler_int.c | [rotorcraft] error on negative gains | Software Maintenance | 4601197d36 | |||
P86 | stabilization_attitude_euler_int.c | [rotorcraft] rc setpoint handling refactoredcloses #684 which partially solves #599 | Cyber-Physical matches | f4b8517ed5 | |||
P87 | stabilization_attitude_euler_int.c | [telemetry] make specific flag for periodic telemetry | Software Maintenance | eba60ba1fe | |||
P88 | stabilization_attitude_euler_int.c | Merge branch 'master' into telemetry* master: (125 commits) [abi] define ABI x_SENDER_IDs in abi_sender_ids.h[sim] flight gear viz: daytime on all spots on the planet, not only France [abi] split abi messages from telemetry messages[fix] fix typo in actuators asctec v2[baro] fix baro scaling for booz and navgo[boards] sim pc: only USE_BARO_BOARD for nps[conf] move some airframes to obsolete[modules] add baro_sim[sim] remove unused sim_baro[apogee] fix baro mpl3115 init on apogeeUpdate README for recommended gcc-arm-embedded toolchain[boards] stm32f4_discovery typo in description [boards] roughly correct BOOZ_BARO_SENS[modules] baro_ets: BARO_ETS_SCALE[modules] baro modules for real sensors only for ap target, not sim[conf] remove baro_board.xml module file [boards] update stm32f4_discovery [lib/ocaml] update leap_seconds [mission] fix segmentation fault and add generic mission FP[generator] generate arrays of the settings and fp blocks names...Conflicts: | Non-Control | 8ac5fd8d5b | |||
P89 | stabilization_attitude_euler_int.c | Merge remote-tracking branch 'paparazzi/master' into telemetryConflicts: | Non-Control | 3e92315488 | |||
P90 | stabilization_attitude_euler_int.c | [rotorcraft][stabilization] set_rpy|earth_cmd for euler | Cyber-Physical matches | adfeb50c24 | |||
P91 | stabilization_attitude_euler_int.c | [rotorcraft][guidance][stabilization] quat setpoint fixesDon't pretend that the commands from guidance_h are actually real euler angles. Compose a roll/pitch quaternion from simultaneous rotation of roll/pitch, then rotate around resulting body z-axis to align the heading.This should "fix" the setpoint passed to the attitude stabilization if in HOVER or NAV at large angles. Only tested quickly in simulation... | Cyber-Physical matches | 104acd2767 | |||
P92 | stabilization_attitude_euler_int.c | Merge remote-tracking branch 'paparazzi/master' into telemetryConflicts: | Non-Control | 2b3a1da82e | |||
P93 | stabilization_attitude_euler_int.c | [rotorcraft] add missing include so stabilization_attitude_euler_int can be used standalone | Software Maintenance | e4a3316d81 | |||
P94 | stabilization_attitude_euler_int.c | [telemetry] protect telemetry code with #if DOWNLINK- also get rid of AP_DOWNLINK and FBW_DOWNLINK - still needs to make it work again (for the only remaining classix inthe world...) | Software Maintenance | 116faaeda6 | |||
P95 | stabilization_attitude_euler_int.c | [telemetry] adapt rotorcraft to new telemetry system | Cyber-Physical matches | 8377d60184 | |||
P96 | stabilization_attitude_euler_int.c | [rotorcraft] big fat attempt to clean stabilization and guidance- No more STABILIZATION_ATTITUDE_FLOAT_x in airframe file. - Hopefully seamlessly switch between int and float. - Also make it possible to not use a reference at all, e.g. for passthrough | Exception Handling | Exception Handling: line 99: + stab_att_sp_euler.phi = 0 | Exception Handling: Sets failsafe point for airframe (failsafe set to zero for roll/pitch and current heading) to fall back to depending on the mode that is set in its parent call (autopilot_set_mode). | 1de769b6f2 | |
P97 | stabilization_attitude_euler_int.c | [stab att] converte stab attitude euler to new state interface | Software Maintenance | c57e6c704e | |||
P98 | stabilization_attitude_euler_int.c | rotorcraft stabilization: updated gain scales to get roughly the same gains as before the change of commands * attitude int_quat: multiply old gain scale by 48 (9600/200) * attitude int euler: changed CMD_SHIFT from 16 to 11, so a multiply of 32 to be a bit more conservative for a start * rate: changed the command shift by 5, so also a conservative 32 | Cyber-Physical matches | 313bde5157 | |||
P99 | stabilization_attitude_euler_int.c | Merge branch 'attitude_ref_frac' into dev * cleaned up rotorcraft stabilization and guidance * removed not properly functioning nav tracking algorithm * same guidance loop for hover and nav (except that nav uses a reference) * guidance should now be running properly for quaternion stabilization as well | Non-Control | 896c84ebec | |||
P100 | stabilization_attitude_euler_int.c | Merge branch '4.0_beta' into dev | Non-Control | a24ae2d31c | |||
P101 | stabilization_attitude_euler_int.c | rotorcraft guidance and stabilization: * moved reading of RC setpoint to separate header file * fix and clean up resetting of psi reference * more minor cleanup | Software Maintenance | 577b52a016 | |||
P102 | stabilization_attitude_euler_int.c | rotorcraft stabilization: bound stabilization_cmd to MAX_PPRZ | Cyber-Physical matches | 1905e350c4 | |||
P103 | stabilization_attitude_euler_int.c | Merge branch 'dev' into 4.0_beta contains fixes for: * stabilization int_quat now works correctly for quads and final command always works (even if pitch command is first command in airframe file) * added sys_time_usleep implementation for stm32, this fixes xbee_api mode again | Non-Control | a984fb6eb7 | |||
P104 | stabilization_attitude_euler_int.c | rotorcraft stabilization int quat: removed unused/non-functional gain scheduling | Non-Control | 94335cf29e | |||
P105 | stabilization_attitude_euler_int.c | rotorcraft stabilization int: * moved common defines to attitude_ref_int.h * replaced STABILIZATION_ATTITUDE_READ_RC macro with stabilization_attitude_read_rc_ref static inline function * removed unused stab_att_sp_vi_euler and stab_att_sp_rc_euler from attitude_ref_int.h | Software Maintenance | 6e1072abea | |||
P106 | stabilization_attitude_euler_int.c | rotorcraft gains: do not use ABS anymore, warn instead if gains are negative | Cyber-Physical matches | df76dc8fbe | |||
P107 | stabilization_attitude_euler_int.c | Merge branch 'positive_control_gains' into rotorcraft_positive_control_gains Conflicts: | Non-Control | ea47766125 | |||
P108 | stabilization_attitude_euler_int.c | Revert "#if USE_x instead of #ifdef USE_x"somehow this does not work in some cases: arch/lpc21/mcu_periph/adc_arch.c:32:12: error: #if with no expressionThis reverts commit c12f3401a082ef5b016f208a1b1ccd0fec0a3fd6. | Software Maintenance | b83a9fbd56 | |||
P109 | stabilization_attitude_euler_int.c | #if USE_x instead of #ifdef USE_x | Software Maintenance | c12f3401a0 | |||
P110 | stabilization_attitude_euler_int.c | readability: defined a CMD_SHIFT for heli.. | Software Maintenance | 5d2b11099b | |||
P111 | stabilization_attitude_euler_int.c | changed rotorcraft stabilization_attitude_euler gains to positive | Cyber-Physical matches | 3167c8fecc | |||
P112 | stabilization_attitude_euler_int.c | put generated headers in a seperate generated dir and specifically include generated/xxx.h | Software Maintenance | 7fd01bcbe2 | |||
P113 | stabilization_attitude_euler_int.c | cleanup a LOT of trailing whitespaces | Non-Control | 19199755fb | |||
P114 | stabilization_attitude_euler_int.c | use double quotes for subsystems and firmware, angle brackets only for external includes | Software Maintenance | 08716bbd8d | |||
P115 | stabilization_attitude_euler_int.c | start fixing booz radio control includes | Software Maintenance | 5497b21831 | |||
P116 | stabilization_attitude_euler_int.c | moved ahrs to general subsystems dir | Software Maintenance | 79a927adfb | |||
P117 | stabilization_attitude_euler_int.c | rename booz_stab_att_* to stab_att_* | Software Maintenance | 35830e36fd | |||
P118 | stabilization_attitude_euler_int.c | 10 bit resolution for heli actuators | Cyber-Physical matches | 6acb533a8f | |||
P119 | stabilization_attitude_euler_int.c | rename booz_stabilization to stabilization | Software Maintenance | 963450f6a0 | |||
P120 | stabilization_attitude_euler_int.c | moved booz stabilization to firmwares/rotorcraft, still need to rename and adjust makefiles | Software Maintenance | e68d6b372e | |||
P121 | booz_stabilization_attitude_euler_int.c | use full ahrs include path | Non-Control | 1cb5c50581 | |||
P122 | booz_stabilization_attitude_euler_int.c | rename booz_ahrs to ahrs, fix makefiles | Software Maintenance | c2a645a7ee | |||
P123 | booz_stabilization_attitude_euler_int.c | Clean up booz_stabilization_attitude_quat_float.c by removing plenty of junk from it and pushing said bits down into ref or setpoint generation, or elsewhere entirely. Also move all of booz_stabilization gains into a single struct (potentially useful for gain scheduling or other hackery) | Non-Control | 9c8a34fca5 | |||
P124 | booz_stabilization_attitude_euler_int.c | Make ref_quat_float reference attitude generation not depend on in_flight mode again | Cyber-Physical matches | 703ba70552 | |||
P125 | booz_stabilization_attitude_euler_int.c | Implement rate-mode pitch/roll sticks for ref_quat_float (instead of postition setpoints). Requires BOOZ_STABILIZATION_ATTITUDE_DEADBAND_A/E and conditionally enabled by STICKS_PITCH_RATE / STICKS_ROLL_RATE #defines. Also make booz_stabilization_attitude_ref_update take in_flight as an argument and skip updating yaw reference acceleration when not in_flight. | Cyber-Physical matches | de7d066ebe | |||
P126 | booz_stabilization_attitude_euler_int.c | added a floating point version of the current attitude stabilization loop and a floating point version of a quaternion based attitude stabilization loop | First draft | 91e2d0a346 | |||
P127 | stabilization_rate.c | [rotorcraft] converted PI rate controller to floating pointcloses #1624 | Precision & Accuracy | Precision & Accuracy: line 67: +struct FloatRates stabilization_rate_sp | Precision & Accuracy: Replaces int32 with float to improve accuracy and precision for calculating the angular rate set point. | 0c95b9e26e | |
P128 | stabilization_rate.c | remove scaling from rate feedback (#1601)Currently gains from rate control do not carry over to attitude stabilization, because there is a factor 2 in the rate control and prescaler values (factor 3 for rate) in the attitude control. I searched through the airframes, and there are not many that use rate control. I doubled all the gains and removed rate control for bebop, as rate control over datalink is very difficult due to lag. The prescaler values should also be default 1 for stabilization quat_int, as they already are for float_quat. However, this will mean updating a large amount of airframes, which will require some scripting. I might have time for this later. | Cyber-Physical matches | d29c83aab9 | |||
P129 | stabilization_rate.c | replace bool_t with C99 bool from stdbool.h | Non-Control | 5c1e4260fe | |||
P130 | stabilization_rate.c | fix integrator scaling for rate control | Precision & Accuracy | Precision & Accuracy: line 206: +OFFSET_AND_ROUND2((stabilization_rate_igain.p * stabilization_rate_sum_err.p), 6) | Precision & Accuracy: This change works on a bit manipulation level to improve results of PI control mathematical operation. | 799a9a7586 | |
P131 | stabilization_rate.c | rate sp in degrees/s | Cyber-Physical matches | RATE_BFP_OF_REAL | 2a6b981b24 | ||
P132 | stabilization_rate.c | [telemetry] register_periodic: use PPRZ_MSG_ID_x instead of DL_x | Software Maintenance | faf2206c32 | |||
P133 | stabilization_rate.c | Change register_periodic_telemetry() to use msg id | Software Maintenance | 83065af402 | |||
P134 | stabilization_rate.c | removed everything related to rate reference | Cyber-Physical matches | bf06d09f29 | |||
P135 | stabilization_rate.c | pleasant rate control | Cyber-Physical matches | 528cfdab82 | |||
P136 | stabilization_rate.c | [airborne] fix code style on (nearly) all files``` find sw/airborne/ -regextype posix-extended -regex 'sw/airborne/.*(chibios-libopencm3|lpcusb|efsl|lpc21/include|lpc21/test/bootloader|subsystems/ahrs)' -prune -o -name '*.[ch]' -exec ./fix_code_style.sh {} + ```ignored ahrs (for now) to not create unnecessary conflicts for some pending changes.. | Non-Control | 603b40a513 | |||
P137 | stabilization_rate.c | [telemetry] rename 'device' to 'link_device' | Non-Control | 34b6ca3a26 | |||
P138 | stabilization_rate.c | [telemetry] convert macros in registered callback to functions | Software Maintenance | e5cdfa1ce1 | |||
P139 | stabilization_rate.c | [telemetry] change register callback to pass arguments | Software Maintenance | c4b73552cd | |||
P140 | stabilization_rate.c | [rotorcraft] reorg stabilization includes/inittowards not requiring any specfic stabilization controllers (none, rate, attitude) | Software Maintenance | 0c64a410c0 | |||
P141 | stabilization_rate.c | [rotorcraft] include and dox cleanup | Non-Control | 96778c01f3 | |||
P142 | stabilization_rate.c | [rotorcraft] RC input: zero yaw command if throttle is zeroshould fix #736 | Cyber-Physical matches | 1ff8bb587f | |||
P143 | stabilization_rate.c | [rotorcraft] error on negative gains | Software Maintenance | 4601197d36 | |||
P144 | stabilization_rate.c | [telemetry] make specific flag for periodic telemetry | Software Maintenance | eba60ba1fe | |||
P145 | stabilization_rate.c | Merge remote-tracking branch 'paparazzi/master' into telemetryConflicts: | Non-Control | Merge | 2b3a1da82e | ||
P146 | stabilization_rate.c | [telemetry] protect telemetry code with #if DOWNLINK- also get rid of AP_DOWNLINK and FBW_DOWNLINK - still needs to make it work again (for the only remaining classix inthe world...) | Software Maintenance | 116faaeda6 | |||
P147 | stabilization_rate.c | cleanup some trailing whitespace | Non-Control | 1931ec6628 | |||
P148 | stabilization_rate.c | [telemetry] adapt rotorcraft to new telemetry system | Cyber-Physical matches | 8377d60184 | |||
P149 | stabilization_rate.c | Added possibility to switch sticks | Cyber-Physical matches | 3710206de3 | |||
P150 | stabilization_rate.c | [stab rate] convert stabilization in rate mode to new state interface | Software Maintenance | 5450ba7774 | |||
P151 | stabilization_rate.c | rotorcraft stabilization: updated gain scales to get roughly the same gains as before the change of commands * attitude int_quat: multiply old gain scale by 48 (9600/200) * attitude int euler: changed CMD_SHIFT from 16 to 11, so a multiply of 32 to be a bit more conservative for a start * rate: changed the command shift by 5, so also a conservative 32 | Cyber-Physical matches | 313bde5157 | |||
P152 | stabilization_rate.c | Merge branch '4.0_beta' into dev | Non-Control | a24ae2d31c | |||
P153 | stabilization_rate.c | Merge branch 'dev' into 4.0_beta * updated tests * set quaternion setpoint in hover and attitude nav | Non-Control | Merge | c840489326 | ||
P154 | stabilization_rate.c | rotorcraft stabilization: bound stabilization_cmd to MAX_PPRZ | Cyber-Physical matches | 1905e350c4 | |||
P155 | stabilization_rate.c | rotorcraft guidance and stabilization: only documentation and cosmetics | Non-Control | fe7c72c741 | |||
P156 | stabilization_rate.c | CAUTION, changed roll and yaw input signs from rc to adhere to standard aerospace convention directions | Cyber-Physical matches | 532c810c2b | |||
P157 | stabilization_rate.c | rotorcraft gains: do not use ABS anymore, warn instead if gains are negative | Cyber-Physical matches | df76dc8fbe | |||
P158 | stabilization_rate.c | changed stabilization_rate gains to positive | Cyber-Physical matches | 070eb4c064 | |||
P159 | stabilization_rate.c | fix rate mode | Cyber-Physical matches | Time and space model, rate is shifted | 0d6a13e000 | ||
P160 | stabilization_rate.c | put generated headers in a seperate generated dir and specifically include generated/xxx.h | Non-Control | 7fd01bcbe2 | |||
P161 | stabilization_rate.c | use double quotes for subsystems and firmware, angle brackets only for external includes | Non-Control | 08716bbd8d | |||
P162 | stabilization_rate.c | update rotorcraft to use RADIO_THROTTLE instead of RADIO_CONTROL_THROTTLE, etc. | Software Maintenance | a8c1b523cd | |||
P163 | stabilization_rate.c | start fixing booz radio control includes | Non-Control | 5497b21831 | |||
P164 | stabilization_rate.c | moved ahrs to general subsystems dir | Non-Control | 79a927adfb | |||
P165 | stabilization_rate.c | correct includes after moving imu | Non-Control | 38c909d66a | |||
P166 | stabilization_rate.c | rename booz_stabilization to stabilization | Software Maintenance | 963450f6a0 | |||
P167 | booz_stabilization_rate.c | moved booz stabilization to firmwares/rotorcraft, still need to rename and adjust makefiles | Software Maintenance | e68d6b372e | |||
P168 | booz_stabilization_rate.c | use full ahrs include path | Software Maintenance | 1cb5c50581 | |||
P169 | booz_stabilization_rate.c | use full path to imu includes | Software Maintenance | 8e7e499bb6 | |||
P170 | booz_stabilization_rate.c | rename booz_ahrs to ahrs, fix makefiles | Software Maintenance | c2a645a7ee | |||
P171 | booz_stabilization_rate.c | rename booz_imu to imu, fix imu makefiles | Software Maintenance | 28118816bd | |||
P172 | booz_stabilization_rate.c | change scaling of feedforward gains in rate mode, gains effectively four times higher now | Cyber-Physical matches | 7749ca640e | |||
P173 | booz_stabilization_rate.c | stabilization_rate: compute feedback error between reference and actual rate instead of stick setpoint and actual rate | Cyber-Physical matches | 6bef819be9 | |||
P174 | booz_stabilization_rate.c | add deadbands to rate mode | Cyber-Physical matches | 78b9cd3f12 | |||
P175 | booz_stabilization_rate.c | disable integrator term in rate by default | Cyber-Physical matches | c5eeae93ea | |||
P176 | booz_stabilization_rate.c | add integral part to rate stabilization | Cyber-Physical matches | line 61 | d6b0c1d67c | ||
P177 | booz_stabilization_rate.c | add feedforward to rate stabilization | Cyber-Physical matches | line 87 | a083f4a7e7 | ||
P178 | booz_stabilization_rate.c | remove rate measurement var | Software Maintenance | dc97c7cc48 | |||
P179 | booz_stabilization_rate.c | use body rate from ahrs in rate mode | Cyber-Physical matches | body_rate - rotational velocity in body frame | 39079ecef6 | ||
P180 | booz_stabilization_rate.c | init measurement with zero in rate mode | Cyber-Physical matches | c14bf86b83 | |||
P181 | booz_stabilization_rate.c | moving files | Non-Control | 24ad57ca46 | |||
P182 | booz2_stabilization_rate.c | moving files around | Non-Control | 8d8bc2f3ba | |||
P183 | booz2_stabilization_rate.c | big files move/rename replaced CONFIG with BOARD_CONFIG removed booz_geometry_xxxx (now replaced by math/pprz_trig_int and math/pprz_algebra_xxx ) moved booz/arm7 to booz/arch/lpc21 and booz/stm32 to booz/arch/stm32 | Non-Control | fa2d6026e6 | |||
P184 | booz2_stabilization_rate.c | switched to new radio_control code that supports both classic ppm scheme and newer serial frames from 2.4GHz spektrum transmitters.created two makefiles to select between modes | Cyber-Physical matches | 033d6334b1 | |||
P185 | booz2_stabilization_rate.c | fixing licence headers, thank you Piotr | Non-Control | 36e44fdb8d | |||
P186 | booz2_stabilization_rate.c | *** empty log message *** | Software Maintenance | 1d7290e7ce | |||
P187 | booz2_stabilization_rate.c | moving booz from temporary google svn | First draft | cd00d48253 | |||
P188 | baro_board.c | fix some more implicit-fallthrough warnings | Non-Control | 168 | 995be46092 | ||
P189 | baro_board.c | replace TRUE/FALSE by stdbool true/false | Non-Control | 8edab84dd4 | |||
P190 | baro_board.c | replace bool_t with C99 bool from stdbool.h | Non-Control | 5c1e4260fe | |||
P191 | baro_board.c | [abi] allow to pass variables by valuebefore the generated ABI callbacks always had a signature with `const type *var` where type was e.g float. Now the generated signature is simply `type var`. To pass const pointers again, set it accordingly in abi.xml, e.g. type="const float *" instead of type="float" | Software Maintenance | 30df14eb05 | |||
P192 | baro_board.c | [airborne] fix code style on (nearly) all files``` find sw/airborne/ -regextype posix-extended -regex 'sw/airborne/.*(chibios-libopencm3|lpcusb|efsl|lpc21/include|lpc21/test/bootloader|subsystems/ahrs)' -prune -o -name '*.[ch]' -exec ./fix_code_style.sh {} + ```ignored ahrs (for now) to not create unnecessary conflicts for some pending changes.. | Non-Control | 603b40a513 | |||
P193 | baro_board.c | [abi] define ABI x_SENDER_IDs in abi_sender_ids.hSame BARO_BOARD_SENDER_ID for all baro_board implementations. Since there can only be one baro_board at the same time and this provides a good default for INS_BARO_ID.The abi_sender_ids.h can be considered a temporary solution, we might come up with a different scheme later... | Software Maintenance | 78ede475d4 | |||
P194 | baro_board.c | [baro] convert remaining baro_board to ABI | Time and Space Model | Time and Space Model: line 137: + baro_trans.status != I2CTransPending) | Time and Space Model: The number of bytes a transaction can hold at a time for the barometer reading using I2C (I2C is a synchronous, multi-master, multi-slave, packet switched, single-ended, serial computer bus) is checked. | 815f7a9a0f | |
P195 | baro_board.c | [config] consistent foo_I2C_DEV and PRINT_CONFIG | Software Maintenance | 5c7f9790b7 | |||
P196 | baro_board.c | Merge branch 'dev' into dev_i2c * this is for testing of the new i2c driver as long as locm3 is not far enough * has all the shebang from current dev, so positive gains, rc roll, etc.. | Non-Control | fff541d6a3 | |||
P197 | baro_board.c | Merge branch 'master' of github.com:paparazzi/paparazzi into 4.0_beta | Non-Control | 8d0251451e | |||
P198 | baro_board.c | Cleanspaces | Non-Control | aa88480860 | |||
P199 | baro_board.c | lisa_l baro: enable it again | Cyber-Physical matches | eeb266d021 | |||
P200 | baro_board.c | Merge branch 'stm_i2c' into dev_i2c | Non-Control | 17bbb1eda7 | |||
P201 | baro_board.c | Merge branch 'master' of github.com:paparazzi/paparazzi into stm_i2c | Non-Control | 37cf82d386 | |||
P202 | baro_board.c | Merge branch 'master' into dev | Non-Control | 9f8163ef42 | |||
P203 | baro_board.c | Baro on Lisa-L needs to be set in low gain when pressure is low | Cyber-Physical matches | 697593f621 | |||
P204 | baro_board.c | Merge branch 'master' of github.com:paparazzi/paparazzi into stm_i2c | Non-Control | ae606a13b2 | |||
P205 | baro_board.c | removed baro_downlink_raw from lisa_l baro_board, use normal periodic send | Cyber-Physical matches | 59907827a4 | |||
P206 | baro_board.c | some more downlink macros adapted | Cyber-Physical matches | 33d59cd8dd | |||
P207 | baro_board.c | fix inlude of downlink for lisa/l baro board | Software Maintenance | bdce5f123b | |||
P208 | baro_board.c | fix inlude of downlink for lisa/l baro board | Software Maintenance | d94719bef8 | |||
P209 | baro_board.c | added baro_downlink_raw for lisa_l baro_board, but this is not very nice... there should be no downlink in baro implementation | Cyber-Physical matches | 98cb9c414a | |||
P210 | baro_board.c | :-) :-) :-) :-) | Software Maintenance | 9f52491f31 | |||
P211 | baro_board.c | Disable other interrupt while first is running | Cyber-Physical matches | interrupt | 0118e49e20 | ||
P212 | baro_board.c | Whitespaces | Non-Control | e06da71f7d | |||
P213 | baro_board.c | Pulled stm_i2c_pullable into dev-branch stm_i2c | Cyber-Physical matches | 12629f5cbf | |||
P214 | baro_board.c | Allen: I have an idea why you added this but it should not be needed anymore | Cyber-Physical matches | 6988843baf | |||
P215 | baro_board.c | start with 1 driver at a time | Cyber-Physical matches | 817407cc5b | |||
P216 | baro_board.c | Don't submit more baro i2c requests if the bus is busy | Cyber-Physical matches | fa88414f1d | |||
P217 | baro_board.c | moved firmwares/rotorcraft/baro to subsystems/sensors/baro | Non-Control | e90467ba86 | |||
P218 | baro_board.c | cleanup a LOT of trailing whitespaces | Non-Control | 19199755fb | |||
P219 | baro_board.c | use double quotes for subsystems and firmware, angle brackets only for external includes | Non-Control | 08716bbd8d | |||
P220 | baro_board.c | use angle brackets for firmware includes | Non-Control | 43839b5b7e | |||
P221 | baro_board.c | breaking I2C - don't update now, work in progress | Cyber-Physical matches | i2c_submit return TRUE if insertion to the transaction queue succeded | 9cb3001ba2 | ||
P222 | baro_board.c | moved booz/booz2_main.c to firmwares/rotorcraft/main.c | Non-Control | 0c80fd0db7 | |||
P223 | baro_board.c | had forgoten to pass the status to RUNNING after initialization | Cyber-Physical matches | 923a2e92ce | |||
P224 | baro_board.c | lisa_l and booz now have different baros implementations | First draft | 99b17f0d89 | |||
P225 | guidance_h.c | [build] fix some of the implicit-fallthrough warnings from GCC7 Some warnings related to the use of the Label() macro are still there. It seems that the only way would be generate the labels instead of calling the macros. See issue #2207 | Non-Control | 546 | 9e5a645120 | ||
P226 | guidance_h.c | guidance_h heading setpoint in float (#2051) | Precision & Accuracy | line 176: +FLOAT_EULERS_ZERO(guidance_h.rc_sp); | Precision & Accuracy: This change converts remote control setpoint variable from int to float for better numerical representation. | 86baffe98a | |
P227 | guidance_h.c | [hybrid vehicles] gradually transition back from forward flight (#2003)Before, if you wanted to go back from forward flight to hover, the pitch angle setpoint would jump back to hover. Some vehicles can handle this, but possibly not all. With this commit when you switch back the setpoint will gradually come up again, just like in the transition to forward flight. Also add the attitude visualizer message to the indi controller | Cyber-Physical matches | 9792de5704 | |||
P228 | guidance_h.c | [modules] convert GNC susystems to modules for rotorcraft | Software Maintenance | 3048259ea8 | |||
P229 | guidance_h.c | [autopilot] support generated autopilot, based on rotorcraft firmwareBy default the original static autopilot is used. A config flag can enable the use of the generated AP code. A basic autopilot description is provided (4 modes + failsafe modes). The server is capable of using the list of generated mode to properly display mode names. Tested in NAV and GUIDED mode in sim, and direct attitude control on real aircraft. | Software Maintenance | 5613d79dc4 | |||
P230 | guidance_h.c | set nav cmds instead of angles in nav manual mode (#1839) * set nav cmds instead of angles in nav manual mode * updated doxygen documentation for the nav_set_manual function | Precision & Accuracy | Precision & Accuracy: line 418: + stabilization_cmd[COMMAND_ROLL] = nav_cmd_roll; | Precision & Accuracy: To set manual roll, pitch and yaw without stabilization the roll angle in radians (float) was converted into roll command in pprz scale (int32_t). | 1a53c4471a | |
P231 | guidance_h.c | fix hover enter to position hold not zero velocity hold | Software Maintenance | a88161d10c | |||
P232 | guidance_h.c | [rotorcraft] fix set_guided_body_vel (#1775) | Software Maintenance | ea7b0b9432 | |||
P233 | guidance_h.c | Hybrid guidance code for hybrid drones (#1769)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). | Cyber-Physical matches | f1f75e96b8 | |||
P234 | guidance_h.c | [guidance] added helper function to set velocity in body frame when in guided mode | Cyber-Physical matches | 0135507d28 | |||
P235 | guidance_h.c | [guidance] Expansion of the guided protocol (#1694) Updates the GUIDED_SETPOINT_NED message to set the reference frame of each input separately and adds a heading_rate setpoint. Frame can be specified with the bits 0-3 Velocity of position setpoint can be specified with the bits 5-7 Flags field definition: - bit 0: x,y as offset coordinates - bit 1: x,y in body coordinates - bit 2: z as offset coordinates - bit 3: yaw as offset coordinates - bit 4: free - bit 5: x,y as vel - bit 6: z as vel - bit 7: yaw as rate | Cyber-Physical matches | 6686c9a0ce | |||
P236 | guidance_h.c | [heli][flight_plans] Heli Spinup routine and flight plan mode manual (#1606) | Cyber-Physical matches | a9e9be2dab | |||
P237 | guidance_h.c | [rotorcraft] guidance_h: use shift defines instead of hardcoded numbersand fixed some typoscloses part of #1634 | Non-Control | 0f53c6f270 | |||
P238 | guidance_h.c | replace TRUE/FALSE by stdbool true/false | Non-Control | 8edab84dd4 | |||
P239 | guidance_h.c | replace bool_t with C99 bool from stdbool.h | Non-Control | 5c1e4260fe | |||
P240 | guidance_h.c | [rotorcraft] fix velocity command in HOVER modeThis was a regression accidentally introduced in af1739b54c3a02b67ac5e919b7e38a95e12e1adc Fixes #1549 | Software Maintenance | 1e29cb623f | |||
P241 | guidance_h.c | [stabilization] INDI rewrite and rate control | Cyber-Physical matches | a3a641c1ee | |||
P242 | guidance_h.c | [rotorcraft] start adding velocity commands for guided mode | Cyber-Physical matches | af1739b54c | |||
P243 | guidance_h.c | [rotorcraft] add a GUIDED modemeant 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 | Cyber-Physical matches | 85777e86cd | |||
P244 | guidance_h.c | [telemetry] register_periodic: use PPRZ_MSG_ID_x instead of DL_x | Software Maintenance | faf2206c32 | |||
P245 | guidance_h.c | Change register_periodic_telemetry() to use msg id | Software Maintenance | 83065af402 | |||
P246 | guidance_h.c | [fix] fix most of the warnings found by CI servers | Non-Control | 32fba7c45e | |||
P247 | guidance_h.c | Merge pull request #1354 from EwoudSmeur/outer_loop_to_master2outer loop INDI control | Non-Control | f30db36838 | |||
P248 | guidance_h.c | added include and added heading support | Cyber-Physical matches | 8a938b394c | |||
P249 | guidance_h.c | [guidance_h] In MODE_NAV, submode ATTITUDE, set the heading from nav_heading | Cyber-Physical matches | eac9c94a47 | |||
P250 | guidance_h.c | flying position hold | Cyber-Physical matches | 60c27cccfd | |||
P251 | guidance_h.c | [guidance] Add a flip guidance mode | Cyber-Physical matches | 1e4b0b6d91 | |||
P252 | guidance_h.c | add OPTICAL_FLOW and VELOCITY_ESTIMATE ABI messagesand use them in the opticflow modules | Cyber-Physical matches | dab660ff55 | |||
P253 | guidance_h.c | [rotorcraft] guidance_h: put vars in struct | Non-Control | 0a0b119c8f | |||
P254 | guidance_h.c | [rotorcraft] guidance_h: make some vars private | Non-Control | a4275abee3 | |||
P255 | guidance_h.c | [rotorcraft] guidance: fix max bank angle limitthanks Eduardo for pointing this out | Software Maintenance | 0bc805da09 | |||
P256 | guidance_h.c | [module-ctrl] Generic framework to add many new types of controllers in a module | Software Maintenance | 7a0f034bd8 | |||
P257 | guidance_h.c | [opticflow] controller | Cyber-Physical matches | 98c27f257c | |||
P258 | guidance_h.c | [airborne] fix code style on (nearly) all files``` find sw/airborne/ -regextype posix-extended -regex 'sw/airborne/.*(chibios-libopencm3|lpcusb|efsl|lpc21/include|lpc21/test/bootloader|subsystems/ahrs)' -prune -o -name '*.[ch]' -exec ./fix_code_style.sh {} + ```ignored ahrs (for now) to not create unnecessary conflicts for some pending changes.. | Non-Control | 603b40a513 | |||
P259 | guidance_h.c | [telemetry] rename 'device' to 'link_device' | Non-Control | 34b6ca3a26 | |||
P260 | guidance_h.c | [telemetry] convert macros in registered callback to functions | Software Maintenance | e5cdfa1ce1 | |||
P261 | guidance_h.c | [telemetry] change register callback to pass arguments | Software Maintenance | c4b73552cd | |||
P262 | guidance_h.c | [rotorcraft] reorg stabilization includes/inittowards not requiring any specfic stabilization controllers (none, rate, attitude) | Software Maintenance | 0c64a410c0 | |||
P263 | guidance_h.c | [rotorcraft] horizontal guidance reference refactormake the reference model adjustable at runtime via settings | Software Maintenance | 70b08f099c | |||
P264 | guidance_h.c | [rotorcraft] add speed sp to GUIDANCE_H_REF_INT message closes #763 | Software Maintenance | 843ea9b850 | |||
P265 | guidance_h.c | [rotorcraft] guidance_h: fix typo in y vgain | Software Maintenance | 30b7bd7b82 | |||
P266 | guidance_h.c | [rotorcraft] include and dox cleanup | Non-Control | 96778c01f3 | |||
P267 | guidance_h.c | [rotorcraft] guidance_h speed ref saturation fixBound ref to max accel along reference vector. If angle can't be computed, simply set both axes to max magnitude instead of zero. Should (tm) fix #716 | Software Maintenance | 9bcccc6f51 | |||
P268 | guidance_h.c | [guidance] fix rotation matrix | Cyber-Physical matches | 3830f136e0 | |||
P269 | guidance_h.c | [guidance] fix IGAIN precision and add VGAINbased on #682this may introduce too large horizontal guidance IGAIN in rotorcraft airframe files | Resource Attributes, Precision & Accuracy, Exception Handling | Resource Attributes: line 92: +#ifndef GUIDANCE_H_VGAIN +#define GUIDANCE_H_VGAIN 0 +#endif, fix IGAIN precision, Precision & Accuracy: line 466: + guidance_h_cmd_earth.x += (guidance_h_trim_att_integrator.x >> 16), Exception Handling: line 53: + (GUIDANCE_H_VGAIN < 0) | Resource Attributes: The horizontal feedforward gain is defined as 0. This is later used for multiplication bit operation to determine the control command for horizontal guidance navigation. Bit representations of control variables cannot be represented in the control model. Precision & Accuracy: line 466: This change increases the guidance command values and right shift operation from 12 digits to 16 digital bits. If you right shift with more number of bits, you reduce value and change accuracy. Exception Handling: line 53: This change introduces a predicate condition to warn the error to the user to ensure the horizontal guidance gain variable is positive to avoid computational failure. | 5de51d3558 | |
P270 | guidance_h.c | [rotorcraft] rc setpoint handling refactoredcloses #684 which partially solves #599 | Cyber-Physical matches | f4b8517ed5 | |||
P271 | guidance_h.c | [telemetry] make specific flag for periodic telemetry | Software Maintenance | eba60ba1fe | |||
P272 | guidance_h.c | [telemetry] fix some remaining telemetry messages | Cyber-Physical matches | e3830578fb | |||
P273 | guidance_h.c | Merge branch 'master' into telemetryfix ahrs_gx3 and stabilization_attitude_euler_float | Non-Control | Merge | c384bc158f | ||
P274 | guidance_h.c | [rotorcraft][guidance_h] GUIDANCE_H_USE_SPEED_REF defaults to TRUEThis also allows to give velocity commands via RC in GUIDANCE_H_MODE_HOVER. | Software Maintenance | 3c7c08d16f | |||
P275 | guidance_h.c | [telemetry] update HOVER_LOOPremove unused cmd_body and nav_err | Software Maintenance | 72ea3b6aa6 | |||
P276 | guidance_h.c | Merge branch 'master' into telemetry* master: (125 commits)[abi] define ABI x_SENDER_IDs in abi_sender_ids.h [sim] flight gear viz: daytime on all spots on the planet, not only France[abi] split abi messages from telemetry messages[fix] fix typo in actuators asctec v2[baro] fix baro scaling for booz and navgo[boards] sim pc: only USE_BARO_BOARD for nps [conf] move some airframes to obsolete[modules] add baro_sim[sim] remove unused sim_baro[apogee] fix baro mpl3115 init on apogeeUpdate README for recommended gcc-arm-embedded toolchain[boards] stm32f4_discovery typo in description [boards] roughly correct BOOZ_BARO_SENS[modules] baro_ets: BARO_ETS_SCALE[modules] baro modules for real sensors only for ap target, not sim[conf] remove baro_board.xml module file [boards] update stm32f4_discovery [lib/ocaml] update leap_seconds [mission] fix segmentation fault and add generic mission FP[generator] generate arrays of the settings and fp blocks names...Conflicts: sw/airborne/firmwares/fixedwing/ap_downlink.hsw/airborne/firmwares/fixedwing/main_ap.c sw/airborne/firmwares/rotorcraft/telemetry.h sw/airborne/modules/sensors/baro_MS5534A.c | Non-Control | 8ac5fd8d5b | |||
P277 | guidance_h.c | [rotorcraft] guidance_h typo in saturation and better resolution of the integrator | Cyber-Physical matches | 9077861210 | |||
P278 | guidance_h.c | [rotorcraft] guidance_h Resolution of integrator increased, AGain not in integration. | Cyber-Physical matches | b6c2a8fef4 | |||
P279 | guidance_h.c | [rotorcraft] guidance_h total_max_bank | Cyber-Physical matches | de12d2f4bb | |||
P280 | guidance_h.c | [rotorcraft] guidance_h: Updated integrator dynamics Integrate twice as fast when not only POS but also SPEED are wrong, but do not integrate POS errors when the SPEED is already catching up. | Cyber-Physical matches | integrate twice as fast when not only POS but also SPEED are wrong, but do not integrate POS errors when the SPEED is already catching up | 8a3b8b4991 | ||
P281 | guidance_h.c | [rotorcraft] guidance_h: Rename sum err for clarity | Software Maintenance | cad1ca2ad2 | |||
P282 | guidance_h.c | [rotorcraft] guidance_h MAX_BANKIn case of wind, the -20 to 20 max bank should become -40 deg in the wind direction and +0 in the opposite direction. The i-gain should be sufficiently SLOW but with HIGH authority. This commit suggests to split the max-bank from PD an I with separate saturation and have the I-gain before the integrator so better insight is gained in its authority. | Cyber-Physical matches | 45ff6dbc11 | |||
P283 | guidance_h.c | Merge remote-tracking branch 'paparazzi/master' into telemetry Conflicts: conf/firmwares/subsystems/fixedwing/autopilot.makefilesw/airborne/boards/ardrone/navdata.c sw/airborne/boards/lisa_m/baro_ms5611_i2c.c sw/airborne/boards/lisa_m/baro_ms5611_spi.c sw/airborne/firmwares/fixedwing/ap_downlink.h sw/airborne/firmwares/fixedwing/main_ap.c sw/airborne/firmwares/rotorcraft/telemetry.hsw/airborne/mcu_periph/i2c.c sw/airborne/subsystems/ahrs/ahrs_float_cmpl.c sw/airborne/subsystems/ahrs/ahrs_float_lkf.csw/airborne/subsystems/datalink/downlink.hsw/tools/gen_periodic.ml sw/airborne/subsystems/ahrs/ahrs_float_cmpl.c sw/airborne/subsystems/ahrs/ahrs_float_lkf.c sw/airborne/subsystems/datalink/downlink.hsw/tools/gen_periodic.ml | Non-Control | 3e92315488 | |||
P284 | guidance_h.c | [rotorcraft] fix hover speed RC setpoint- fix rc_x and rc_y values- still needs to be scaled to max speed using circle instead of box bounding,but while making sure a division by zero can't occur! - only copy pos_ref to pos_sp in hover mode - move GUIDANCE_H_REF_MAX_SPEED|ACCEL to ref header file so it can be used - refactor rc speed setpoint reading into separate functioncloses #543 | Cyber-Physical matches | fc2a471d6f | |||
P285 | guidance_h.c | Added RC setpoint control in H-H mode | Cyber-Physical matches | 4775fc5244 | |||
P286 | guidance_h.c | [rotorcraft][guidance_h] guidance_h_approx_force_by_thrust - enable/disable via settings - gets a better approximation of vertical thrust using guidance_v_thrust_coeff - vertical thrust is recomputed in guidance_h to take the latest thrust command after guidance_v was run | Cyber-Physical matches | 03234de546 | |||
P287 | guidance_h.c | [rotorcraft] add GUIDANCE_H_APPROX_FORCE_BY_THRUST based on the idea of Sergei from pull request #532Still need to use only the vertical thrust instead of total thrust. Will be corrected later using the get_vertical_thrust_coeff from pull request #528 | Cyber-Physical matches | 4d8d2a907d | |||
P288 | guidance_h.c | [rotorcraft] ups, fix setting commands from guidance_h | Software Maintenance | 969705306b | |||
P289 | guidance_h.c | [rotorcraft] update read_rc_roll_pitch_quat | Non-Control | d1a180de02 | |||
P290 | guidance_h.c | [rotorcraft] guidance_h commands in earth frame | Cyber-Physical matches | f0e5a20000 | |||
P291 | guidance_h.c | [rotorcraft] ups, fix wrong endif | Non-Control | c5c8772458 | |||
P292 | guidance_h.c | [rotorcraft] by default always reset attitude stab on mode change againTo only reset (psi setpoint to current value, reset ref, reset integrators) the attitude stabilization if the previous mode was not using it, define NO_ATTITUDE_RESET_ON_MODE_CHANGE | Cyber-Physical matches | 07a1dc6908 | |||
P293 | guidance_h.c | [rotorcraft] also call stabilization_attitude_enter if previous mode was GUIDANCE_H_MODE_KILL | Cyber-Physical matches | 29da4ede96 | |||
P294 | guidance_h.c | [rotorcraft] guidance_h: normalize psi sp from nav_heading | Cyber-Physical matches | c32ea43ed2 | |||
P295 | guidance_h.c | [rotorcraft][guidance][stabilization] quat setpoint fixes Don't pretend that the commands from guidance_h are actually real euler angles. Compose a roll/pitch quaternion from simultaneous rotation of roll/pitch, then rotate around resulting body z-axis to align the heading.This should "fix" the setpoint passed to the attitude stabilization if in HOVER or NAV at large angles. Only tested quickly in simulation... | Software Maintenance | 104acd2767 | |||
P296 | guidance_h.c | [rotorcraft] only reset psi and integrators if previous mode was not attitude | Cyber-Physical matches | 71efabe590 | |||
P297 | guidance_h.c | [telemetry] fix some include and remove unnecessary files | Non-Control | 09680b07e9 | |||
P298 | guidance_h.c | [telemetry] protect telemetry code with #if DOWNLINK- also get rid of AP_DOWNLINK and FBW_DOWNLINK - still needs to make it work again (for the only remaining classix in the world...) | Software Maintenance | 116faaeda6 | |||
P299 | guidance_h.c | [telemetry] adapt rotorcraft to new telemetry system | Cyber-Physical matches | 8377d60184 | |||
P300 | guidance_h.c | [rotorcraft] horizontal guidance mode switchingIf swtiching to HOVER or NAV mode: reset attitude stabilization if previous mode was not using it | Cyber-Physical matches | 8d2781e256 | |||
P301 | guidance_h.c | [rotorcraft] big fat attempt to clean stabilization and guidance - No more STABILIZATION_ATTITUDE_FLOAT_x in airframe file. - Hopefully seamlessly switch between int and float. - Also make it possible to not use a reference at all, e.g. for passthrough | Cyber-Physical matches | 1de769b6f2 | |||
P302 | guidance_h.c | Added possibility to switch sticks | Software Maintenance | 3710206de3 | |||
P303 | guidance_h.c | [rotorcraft] TRANSITION_MAX_OFFSET in radians, float fixes | Cyber-Physical matches | 09c97dd6c4 | |||
P304 | guidance_h.c | [rotorcraft] Add forward mode for transitioning vehicles | Resource Attributes, Exception Handling | Resource Attributes: line 17: + int32_t transition_percentage, Exception Handling: line 383: #ifdef TRANSITION_MAX_OFFSET | Resource Attributes: line 17: For the horizontal guidance mode, control variables are stored at the bit level representations for bit operation in line 385 to determine the control command. Exception Handling: line 383: This block is called a conditional group. The controlled text is the pitch angle that the Quadshot will have in forward flight, it will be included in the output of the preprocessor if and only if MACRO is defined. We say that the conditional succeeds if MACRO is defined, fails if it is not. | 40248363dd | |
P305 | guidance_h.c | [rotorcraft] silence warning in guidance | Software Maintenance | adca9867d1 | |||
P306 | guidance_h.c | [rotorcraft] use horizontal guidance ref by defaultAlso use the horizontal guidance reference for HOVER mode. Using the reference can be temporarly disabled via settings. The reference is then still computed to stay consistent, but not used. | Cyber-Physical matches | 370100b83e | |||
P307 | guidance_h.c | [guidance] split h_ref and v_ref into h and c files | Software Maintenance | cdbfcb47d7 | |||
P308 | guidance_h.c | [rotorcraft] horizontal guidance fixedpoint fixes Significantly reduce the quantization error of the horizontal guidance cmds. This should result in nicer position hold and better trajectory tracking. Verified in NPS sim. | Precision & Accuracy | Precision & Accuracy: line 292: + ((guidance_h_dgain * (guidance_h_speed_err.x >> 2)) >> (INT32_SPEED_FRAC - GH_GAIN_SCALE - 2)) | Precision & Accuracy: This change multiplies the gain with the error before shifting/dividing it. If you shift only the error before the multiplication, you loose more precision. | 68d07e6128 | |
P309 | guidance_h.c | [rotorcraft] care free mode- still not implemented for stabilization_euler - move read_rc_setpoint_* functions to c file - add GUIDANCE_H_MODE_CARE_FREE mode - add stabilization float_euler subsystem - use normal stabilization subsystem in NPS instead of hardcoded euler | Cyber-Physical matches | 3a7bba4a6e | |||
P310 | guidance_h.c | [doxygen] only doxygen updates | Non-Control | ecae43d551 | |||
P311 | guidance_h.c | [rotorcraft] use american spelling: STABILIZATION instead of STABILISATION everywhere | Software Maintenance | be7daca9ae | |||
P312 | guidance_h.c | [guidance] convert rotorcraft guidance to new state interface | Software Maintenance | 472ac96fbf | |||
P313 | guidance_h.c | [rotorcraft] use new state interface instead of ins in guidance | Software Maintenance | f5054fcb6b | |||
P314 | guidance_h.c | [rotorcraft guidance] get rid of guidance_h_psi_sp * directly set final guidance_h_command_body.psi* in HOVER directly from RC psi setpoint* in NAV directly from nav_heading * This should also fix a bug with changing psi setpointwhen switching between HOVER and NAV mode. | Cyber-Physical matches | 448e91c306 | |||
P315 | guidance_h.c | [rotorcraft guidance] minor cleanup when using guidance_h ref | Software Maintenance | 9782d0a12b | |||
P316 | guidance_h.c | rotorcraft guidance_h: make max bank angle in nav configurable in airframe file, default is still 20deg | Cyber-Physical matches | 4e570aeb47 | |||
P317 | guidance_h.c | rotorcraft guidance horizontal: divide gain scale for accel (feed-forward) gain by 256, should be same as in master again | Cyber-Physical matches | 9be470a908 | |||
P318 | guidance_h.c | rotorcraft horizontal guidance: fix earth.y command, rshift instead of lshift | Software Maintenance | 9f980d6551 | |||
P319 | guidance_h.c | get rid of some unused arg warnings | Non-Control | f1183faa7a | |||
P320 | guidance_h.c | rotorcraft guidance: removed ngain since tracking algorithm was removed | Software Maintenance | 67743b5150 | |||
P321 | guidance_h.c | rotorcraft horizontal guidance: * removed tracking algorithm (no integral part) from nav_run* was used if position error > HOLD_DISTANCE* but was not working properly * use the same traj_run for both hover and nav modes * in hover set the reference speed and accel to zero * in nav use compute real reference if GUIDANCE_H_USE_REF, just like before | Cyber-Physical matches | ba8aa325af | |||
P322 | guidance_h.c | rotorcraft guidance and stabilization: * moved reading of RC setpoint to separate header file * fix and clean up resetting of psi reference * more minor cleanup | Software Maintenance | 577b52a016 | |||
P323 | guidance_h.c | rotorcraft guidance and stabilization: start changeing all euler setpoints to INT32_ANGLE_FRAC only reference eulers with REF_ANGLE_FRAC | Cyber-Physical matches | 812b6b32bd | |||
P324 | guidance_h.c | Merge branch 'dev' into 4.0_beta * preliminary fix for rotorcraft guidance when fixed-point quaternion stabilization is used | Non-Control | acdd03e3e0 | |||
P325 | guidance_h.c | rotorcraft guidance: hopefully fixed the fixedpoint resolution for attitude setpoint when using the quaternion stabilization * still needs to be cleaned up properly, it's bad that the stab_att_sp_euler has a different fixedpoint fraction for quat than for euler | Cyber-Physical matches | f8fd4f8799 | |||
P326 | guidance_h.c | Merge branch 'dev' into 4.0_beta * updated tests * set quaternion setpoint in hover and attitude nav | Non-Control | c840489326 | |||
P327 | guidance_h.c | rotorcraft guidance: if quaternion stabilization is used, compute quat setpoint from eulers in hover and attitude nav as well | Cyber-Physical matches | 8a95ddd256 | |||
P328 | guidance_h.c | rotorcraft guidance and stabilization: only documentation and cosmetics | Non-Control | fe7c72c741 | |||
P329 | guidance_h.c | Merge branch 'dev' into 4.0_beta | Non-Control | 596fee5011 | |||
P330 | guidance_h.c | rotorcraft guidance_h: only compute quaternion setpoint if we actually have a quaternion version added a STABILISATION_ATTITUDE_TYPE_QUAT define... maybe not the best way to go, but works for now... | Cyber-Physical matches | 58b842d472 | |||
P331 | guidance_h.c | rotorcraft guidance_h: also compute quaternion setpoint from euler setpoint | Cyber-Physical matches | c2bc03e6fd | |||
P332 | guidance_h.c | Merge branch 'dev' into 4.0_beta * some minor systime fixes * rc_direct helicopter safety pilot mode * nav_catapult * add an option to only show FP of the selected aircraft | Non-Control | 2044e9c081 | |||
P333 | guidance_h.c | Merge branch 'master' into dev * nav_catapult * more fixedwing tuning params * helicopter safety pilot stuff, stabilization_none | Non-Control | f415f44be9 | |||
P334 | guidance_h.c | Helicopter Safety Pilot Code | Cyber-Physical matches | 7f1a7e4294 | |||
P335 | guidance_h.c | Merge branch 'dev' into 4.0_beta contains fixes for: * stabilization int_quat now works correctly for quads and final command always works (even if pitch command is first command in airframe file) * added sys_time_usleep implementation for stm32, this fixes xbee_api mode again | Non-Control | a984fb6eb7 | |||
P336 | guidance_h.c | rotorcraft stabilization int: * moved common defines to attitude_ref_int.h * replaced STABILIZATION_ATTITUDE_READ_RC macro with stabilization_attitude_read_rc_ref static inline function * removed unused stab_att_sp_vi_euler and stab_att_sp_rc_euler from attitude_ref_int.h | Software Maintenance | 6e1072abea | |||
P337 | guidance_h.c | rotorcraft gains: do not use ABS anymore, warn instead if gains are negative | Exception Handling | Exception Handling: line 61: + #if (GUIDANCE_H_PGAIN < 0) | Exception Handling: This change introduces a predicate condition to warn the user to ensure the control gain variable is positive to avoid computational failure. | df76dc8fbe | |
P338 | guidance_h.c | rotorcraft: fix guidance_h_speed_err | Software Maintenance | f145bc74c9 | |||
P339 | guidance_h.c | Merge branch 'positive_control_gains' into rotorcraft_positive_control_gainsConflicts: sw/airborne/math/pprz_algebra.h | Non-Control | ea47766125 | |||
P340 | guidance_h.c | use #if USE_x instead of #ifdef USE_xThen you can also define e.g. -DUSE_GPS=0 and it will work as expected (disable it just like as if it would be undefined) -DUSE_GPS (without a value) has the same effect as -DUSE_GPS=1 If you need to define it in the code, use #define USE_GPS 1Please always use #if instead of #ifdef if it is a flag to enable/disable something and it will always evaluate as an integer arithmetic expression. | Software Maintenance | 00f8eec9b1 | |||
P341 | guidance_h.c | changed rotorcraft guidance_h gains to positive | Exception Handling | Exception Handling: line 89: + guidance_h_pgain = ABS(GUIDANCE_H_PGAIN); | Exception Handling: Making sure the positive values are used while determining the comptational position error and speed error. | b78989045c | |
P342 | guidance_h.c | reset guidance_h_nav_err to zero if within HOLD_DISTANCE | Cyber-Physical matches | c8572b2481 | |||
P343 | guidance_h.c | rotorcraft guidance_h: set the same gain multipliers in hover as in nav. With this the hover (stay) behaviour should be the same in AP_HOVER and in nav (without using the ref). This means that if you tuned the p-gain and i-gain in AP_MODE_HOVER_x before, you will have to divide the old p-gain by 2 and the old i-gain by 4. | Cyber-Physical matches | 6b6b32a715 | |||
P344 | guidance_h.c | put generated headers in a seperate generated dir and specifically include generated/xxx.h | Non-Control | 7fd01bcbe2 | |||
P345 | guidance_h.c | Make static inlines also always_inline to get rid of a warning in gcc 4.5. We want to inline these functions at any cost anyways even if this will make the code grow. | Non-Control | a6cc31e36a | |||
P346 | guidance_h.c | moved ins to general subsystem | Software Maintenance | 8620ecb82b | |||
P347 | guidance_h.c | use double quotes for subsystems and firmware, angle brackets only for external includes | Non-Control | 08716bbd8d | |||
P348 | guidance_h.c | start fixing rc for rotorcraft | Software Maintenance | 8bb77a3c3d | |||
P349 | guidance_h.c | moved ahrs to general subsystems dir | Software Maintenance | 79a927adfb | |||
P350 | guidance_h.c | rename booz_stab_att_* to stab_att_* | Software Maintenance | 35830e36fd | |||
P351 | guidance_h.c | some temporary fix for booz_fms removal | Software Maintenance | a769a5ab7d | |||
P352 | guidance_h.c | move and rename booz2_navigation to rotorcraft navigation | Software Maintenance | 16b3b0cab5 | |||
P353 | guidance_h.c | rename booz_stabilization to stabilization | Software Maintenance | 963450f6a0 | |||
P354 | guidance_h.c | use full ahrs include path | Software Maintenance | 1cb5c50581 | |||
P355 | guidance_h.c | fix guidance includes to use full path | Software Maintenance | 21de0f6db2 | |||
P356 | guidance_h.c | fix ins.h includes | Non-Control | a21dd8b7d8 | |||
P357 | guidance_h.c | rename b2_gv/B2_GV to gv/GV | Non-Control | 4391630566 | |||
P358 | guidance_h.c | rename booz2_guidance/BOOZ2_GUIDANCE and B2_GUIDANCE to guidance/GUIDANCE | Software Maintenance | 6579e914c2 | |||
P359 | guidance_h.c | moving guidance, rename still to be done | Software Maintenance | 0891f38a48 | |||
P360 | guidance_h.c | rename booz ins | Software Maintenance | 8bfa75a2f9 | |||
P361 | guidance_h.c | rename booz_ahrs to ahrs, fix makefiles | Software Maintenance | c2a645a7ee | |||
P362 | guidance_h.c | more toward modular vi | Software Maintenance | 0ea232ed1b | |||
P363 | guidance_h.c | added default in switch and missing declarations | Non-Control | 2f55f8bbbc | |||
P364 | guidance_h.c | initialized "zero" variable in booz2_guidance_h_nav_enter | Cyber-Physical matches | 8e808f76f9 | |||
P365 | guidance_h.c | add integral part to rate stabilization | Cyber-Physical matches | d6b0c1d67c | |||
P366 | booz2_guidance_h.c | add feedforward to rate stabilization | Cyber-Physical matches | a083f4a7e7 | |||
P367 | booz2_guidance_h.c | fix variable name | Non-Control | 7afcdc05bb | |||
P368 | booz2_guidance_h.c | trajectory generation for horizontal guidance used in the navigation loop | Cyber-Physical matches | line 39 | 178d4d5037 | ||
P369 | booz2_guidance_h.c | remove trailing whitespaces | Non-Control | c0029db233 | |||
P370 | booz2_guidance_h.c | hysteresis on radio ok; ground detect use main event; rc not used in guidance if lost | Cyber-Physical matches | ddf825c9a2 | |||
P371 | booz2_guidance_h.c | navigation function in guidance; frequency set at 16 Hz | Time and Space Model | Time and Space Model: line 62:-RunOnceEvery(50, nav_periodic_task_10Hz()); | This change alters the execution frequency of the navigation task from 10Hz to 16Hz. | 624ce9eea9 | |
P372 | booz2_guidance_h.c | switching to new supervision code for n-rotors | Software Maintenance | 2765d61d59 | |||
P373 | booz2_guidance_h.c | added a floating point version of the current attitude stabilization loop and a floating point version of a quaternion based attitude stabilization loop | Cyber-Physical matches | line 155 | struct
Int32Eulers booz_stabilization_att_sp;
to struct FloatVect3 booz_stabilization_pgain; |
91e2d0a346 | |
P374 | booz2_guidance_h.c | moving files | Non-Control | 24ad57ca46 | |||
P375 | booz2_guidance_h.c | big files move/rename replaced CONFIG with BOARD_CONFIG removed booz_geometry_xxxx (now replaced by math/pprz_trig_int and
math/pprz_algebra_xxx ) moved booz/arm7 to booz/arch/lpc21 and booz/stm32 to booz/arch/stm32 |
Precision & Accuracy | Precision & Accuracy: line 42: struct Int32Vect2 booz2_guidance_h_speed_err | Precision & Accuracy: This change includes a different math library in guidance mechanism for performing algebra operations. | fa2d6026e6 | |
P376 | booz2_guidance_h.c | switched to new radio_control code thatsupports both classic ppm scheme and newer serial frames from 2.4GHz spektrum transmitters. created two makefiles to select between modes | Cyber-Physical matches | 033d6334b1 | |||
P377 | booz2_guidance_h.c | fixing licence headers, thank you Piotr | Non-Control | 36e44fdb8d | |||
P378 | booz2_guidance_h.c | reset heading when changing mode | Cyber-Physical matches | 0ae85a8598 | |||
P379 | booz2_guidance_h.c | update navigation modes for booz2 | Cyber-Physical matches | 596cb87b41 | |||
P380 | booz2_guidance_h.c | navigation (horizontal) for booz using the flight plans | Cyber-Physical matches | horizontal position setpoint from navigation/flightplan | c67df28ada | ||
P381 | booz2_guidance_h.c | *** empty log message *** | Software Maintenance | 1d7290e7ce | |||
P382 | booz2_guidance_h.c | *** empty log message *** | Cyber-Physical matches | The Local
Tangent Plane (LTP) is an approximation of the
earth at a fixed position. It is defined using an ECEF position, a LLA
position and a rotational matrix to convert between them. LLA coordinates (longitude, lattitude, attitude) are the more intuitive way to express a position on the earth's surface. The values ``longitude'' and ``lattitude'' are angles and therefore in degrees or radians and the ``attitude'' is in meters above the surface of the earth's approximated shape. |
f4818d7e2d | ||
P383 | booz2_guidance_h.c | big fat commit - changed INS and guidance to LTPZ | Resource Attributes, Exception Handling | Resource Attributes: line 17: + int32_t booz2_guidance_h_psi_sp, Exception Handling: line 40: + booz2_guidance_h_psi_sp = 0 | Resource Attributes: line 17: For the INS (Inertial Navigation System), control variables are stored at the bit level representations for bit operation to determine the control command. Exception Handling: line 40: In order to avoid mathematical bit operation error, the control variable is ensured to have zero bit value in the beginning of calculation. | 3b4dcd5c55 | |
P384 | booz2_guidance_h.c | moving booz from temporary google svn | First draft | cd00d48253 |
The mutation software tool is available in the GitHub repository: mutationdocker
Our mutation tool is capable of handling C and C++ programming languages. This is done by constructing the abstract syntax tree (AST). We use Clang 3.8.2 and LLVM 4.0 for this and use the MatchFinder class of Clang to process the AST. To support repeatability, we have built this software infrastructure inside an operating-system level virtualization, called docker (version 1.13.1).
BibTeX | |
---|---|
@inproceedings{balaji2020controllerevolution, title={Investigating Controller Evolution and Divergence through Mining and Mutation}, author={Balaji Balasubramaniam, Hamid Bagheri, Sebastian Elbaum, Justin Bradley}, booktitle={Proceedings of the 11th ACM/IEEE International Conference on Cyber-Physical Systems (ICCPS 2020)}, publisher = {{IEEE} Computer Society / {ACM}}, year={2020}}
| |
MLA | |
Balasubramaniam, Bagheri, Elbaum, and Bradley. "Investigating Controller Evolution and Divergence through Mining and Mutation." 11th ACM/IEEE International Conference on Cyber-Physical Systems (ICCPS 2020). 2020. | |
APA | |
Balasubramaniam, Bagheri, Elbaum, and Bradley (2020). Investigating Controller Evolution and Divergence through Mining and Mutation. In 11th ACM/IEEE International Conference on Cyber-Physical Systems (ICCPS 2020). | |
Chicago | |
Balasubramaniam, Bagheri, Elbaum, and Bradley. "Investigating Controller Evolution and Divergence through Mining and Mutation." In 11th ACM/IEEE International Conference on Cyber-Physical Systems (ICCPS 2020). 2020. | |
Harvard | |
Balasubramaniam, Bagheri, Elbaum, Bradley, 2020. Investigating Controller Evolution and Divergence through Mining and Mutation. In 11th ACM/IEEE International Conference on Cyber-Physical Systems (ICCPS 2020). |
We would love to hear from you!
223 Schorr Center