Commit Graph
73 Commits
Author SHA1 Message Date
Dennis Mannhart bf25c462b2 Orbit failsafe: switch internal_state to Posctrl such that Manual-Positionctrl is activated after failsafe recovery. This is needed because Orbit can only be invoked via vehicle_command msg. 2019-08-15 14:31:23 +02:00
Dennis Mannhart 9e9b2ab9e8 FlightTaskAutoLine/SmoothVel: stop at waypoint if altitude is has not been reached yet 2019-08-09 12:04:48 +02:00
Dennis Mannhart 5887a2393c PositionControl: skip controller only if adjusted thrust setpoint are not finite
PositionControl: update comment about the order of thrust and position

mc_pos_control: reset setpoints to NAN if required

MulticopterLandDetector: consider to be landed if vehicle is not armed

mc_pos_control: initialize landing struct with landed

mc-pos-ctrl: adjust thrust-setpoint and yaw during ground-contact/maybe-landed without capturing
that information within vehicle-local-position-setpoint topic because that information
does not belong to user intention

PositionControl: set local position/velocity setpoint to NAN if not used in the control pipeline

mc-pos-ctrl: Fill vehicle_local_position_setpoint_s structure as follow:
The message contains setpoints where each type of setpoint is either the input to the PositionController
or was generated by the PositionController and therefore corresponds to the PositioControl internal states (states that were generated by P-PID).
Example:
If the desired setpoint is position-setpoint, _local_pos_sp will contain
position-, velocity- and thrust-setpoint where the velocity- and thrust-setpoint were generated by the PositionControlller.
If the desired setpoint has a velocity-setpoint only, then _local_pos_sp will contain valid velocity- and thrust-setpoint, but the position-setpoint
will remain NAN. Given that the PositionController cannot generate a position-setpoint, this type of setpoint is always equal to the input to the
PositionController.

mc_pos_control: switch to designated initializer for landed

It's less error prone because it produces an error on every discrepancy.
2019-01-08 15:36:30 +01:00
Dennis Mannhart 55947d2782 exponentialFromLimits make small number const 2018-11-30 09:30:00 -05:00
Dennis Mannhart be4900f61d FlightTaskAutoMapper2: remove speed_at_target 2018-11-30 09:30:00 -05:00
Dennis Mannhart b3cde5ac44 FlightTaskAutoLine: replace NAV_ACC_RAD with _target_acceptance_radius 2018-11-30 09:30:00 -05:00
Dennis Mannhart 6110ddc8b1 math Functions constrain X_in of exponentialFromLimits function 2018-11-30 09:30:00 -05:00
Dennis Mannhart c97b2a3071 FlightTaskAuto: move method getVelocityFromAngle to FlightTaskAutoLine 2018-11-30 09:30:00 -05:00
Dennis Mannhart 23afb939f0 math Functions: exponential function with constraints 2018-11-30 09:30:00 -05:00
Dennis Mannhart 80193cd227 math Functions: replace float with T 2018-11-30 09:30:00 -05:00
Dennis Mannhart 370371767f FlightTaskAutoLine: ensure that desired speed along track does not exceed maximum speed at threshold to target 2018-11-29 12:32:56 +01:00
Dennis Mannhart 304e00f158 ALTITUDE_THRESHOLD lower to 0.3 meters 2018-10-16 11:13:00 -04:00
Dennis Mannhart 511563d4ac mc_pos_control: enable control in xy during smooth-takeoff from ground but limit tilt 2018-10-16 11:13:00 -04:00
Dennis Mannhart 3329d69d05 mc_pos_control: replace const with constexpr 2018-10-16 11:13:00 -04:00
Dennis Mannhart 4627d5d6e4 mc_pos_control_main smooth takeoff: enable position-xy/yaw control once above 0.5m from takeoff reference 2018-10-16 11:13:00 -04:00
Dennis Mannhart 345d3278d1 mc_pos_control smooth takeoff: if velocity is valid, the control velocity in xy during takeoff 2018-10-16 11:13:00 -04:00
Dennis Mannhart 4b70584cf4 mc_pos_control takeoff: control velocity if velocity estimation is available, otherwise
just keep thrust vector pointing upward
2018-10-16 11:13:00 -04:00
Dennis Mannhart dbd1e1432a mc_pos_control: for sanity distinguish between velocity and position setpoint during
smooth-takeoff. This is only required if someone writes a FlightTask where both position
and velocity setpoints are finite
2018-10-16 11:13:00 -04:00
Dennis Mannhart ff45ee67b4 FlightTasks: remove empty line 2018-10-10 10:30:48 -04:00
Dennis Mannhart c3ba2687ac FlightTask: if not in air, reActivate the task which will set the setpoints to current
vehicle state.
2018-10-10 10:30:48 -04:00
Dennis Mannhart 1f0d559d65 PositionControl: check and set _skip_controller flag at the end of the setpoint update 2018-10-10 10:29:46 -04:00
Dennis Mannhart 2f833a26d1 mc_pos_control: check if position-control setpoint update succeeded.
refactor use_obstacle_avoidance method
2018-10-10 10:29:46 -04:00
Dennis Mannhart 6212e9c752 FlightTaskManualAltitude: use stick inputs for the brake check 2018-10-09 12:05:52 -04:00
Dennis Mannhart 3ff8cd33a1 mc_pos_control: smooth takeoff requires current position as reference 2018-08-28 10:14:54 +02:00
Dennis Mannhart a9d83b77de ControlMath: math optimization 2018-08-15 16:19:51 +02:00
Dennis Mannhart d94778dd94 test_controlmath: replace FLT_EPSILON with 10^-6 2018-08-15 16:19:51 +02:00
Dennis Mannhart caa773008a PositionControl: degrees to radians 2018-07-20 09:26:18 +02:00
Dennis Mannhart 4761f0a344 PositionControl: bug fix Pv replacement with Pp 2018-07-20 09:26:18 +02:00
Dennis Mannhart 83f6398e93 ControlMath: comments refactor 2018-07-20 09:26:18 +02:00
Dennis Mannhart 19743bcaec FlightTaskAuto: comments refactor 2018-07-20 09:26:18 +02:00
Dennis Mannhart c01fab089a PositionControl parameter renaming. Use the the name as stored in the metadata 2018-07-20 09:26:18 +02:00
Dennis Mannhart cf59c2a2ac PositionControl/mc_pos_control: update comments 2018-07-20 09:26:18 +02:00
Dennis Mannhart 673945f28b PositionControl: check if constraints are below global maximum 2018-07-20 09:26:18 +02:00
Dennis Mannhart 1cde38f82f FlightTaskAuto: always update yaw 2018-07-20 09:26:18 +02:00
Dennis Mannhart 29391acbca FlightTaskAutoLine: fix greater sign 2018-07-20 09:26:18 +02:00
Dennis Mannhart 60a9b45c88 Positioncontrol: limit velocity upwards during smooth takeoff 2018-07-20 09:26:18 +02:00
Dennis Mannhart 0f4eb8e766 PositionControl: add integral reset methods 2018-07-20 09:26:18 +02:00
Dennis Mannhart 65a9cd171f PositionControl: variable replacement 2018-07-20 09:26:18 +02:00
Dennis Mannhart e2ac12ef2c FlightTask: comment fixes 2018-07-20 09:26:18 +02:00
Dennis Mannhart c6b5731086 test_controlmath: add first few tests for constrain function in xy 2018-07-20 09:26:18 +02:00
Dennis Mannhart c60481614e ControlMath constrainxy: fix one of the condition 2018-07-20 09:26:18 +02:00
Dennis Mannhart 386b70dc58 ControlMath: add derivation and simplify computation 2018-07-20 09:26:18 +02:00
Dennis Mannhart 99de97a528 FlightTaskAuto: fix global reference update 2018-07-20 09:26:18 +02:00
Dennis Mannhart b7f729e432 FlightTask: split _evalutateVehiclePosition into _evaluateVehicleLocalPosition
and _evaluateVehicleGlobalPosition
2018-07-20 09:26:18 +02:00
Dennis Mannhart 913932ff9e FlightTask: move geo-lib include to FlightTaskAuto where it is required
for conversion from global to local
2018-07-20 09:26:18 +02:00
Dennis Mannhart 10bd3a50ba PositionControl: parameter subscription declaration 2018-07-20 09:26:18 +02:00
Dennis Mannhart b20bd076a0 FlightTaskAuto: always update type 2018-07-20 09:26:18 +02:00
Dennis Mannhart 7f68417d19 PositionControl: make distinction for throttle minimum depending on mode 2018-07-20 09:26:18 +02:00
Dennis Mannhart 59087afac8 FlightTaskManualStabilized: replace minimum throttle with minum throttle specific for stabilized 2018-07-20 09:26:18 +02:00
Dennis Mannhart 65603d7de7 FlightTaskAutoLine: don't reset during normal operation 2018-07-20 09:26:18 +02:00
Dennis Mannhart 26ca17e329 comment fix 2018-07-20 09:26:18 +02:00
Dennis Mannhart 08a89ccdbb FlightTaskAutoLine: if previous type was idle, set thrust to NAN again to ensure
thrust is not used. Also, if previous was not a loiter or position type, then reset
setpoints to current state. This is needed because during line following, the
previous setpoints are requires and cannot be NAN.
2018-07-20 09:26:18 +02:00
Dennis Mannhart 5f293cceac FlightTaskAutoLine: first activate and then reset 2018-07-20 09:26:18 +02:00
Dennis Mannhart 6da47b4a85 FlightTaskAutoLine: move method 2018-07-20 09:26:18 +02:00
Dennis Mannhart 3d034823b0 FlightTaskAutoLine: introduce previous type which used to reset setpoints 2018-07-20 09:26:18 +02:00
Dennis Mannhart a401778038 FlightTask: remove global to local map 2018-07-20 09:26:18 +02:00
Dennis Mannhart 0efbbdc227 FlightTaskAutoLine: replace xy/z setpoints with FlightTask base setpoints 2018-07-20 09:26:18 +02:00
Dennis Mannhart 37bfd8e01a FlightTaskAuto: always update cruise speed 2018-07-20 09:26:18 +02:00
Dennis Mannhart fbe8a558b2 FlightTaskIndex: add AutoLine 2018-07-20 09:26:18 +02:00
Dennis Mannhart 288ee2362e FlightTaskAuto: remove warning message 2018-07-20 09:26:18 +02:00
Dennis Mannhart 48fa3fbca3 PositionControl: thrust setpoint check with fabsf 2018-04-05 07:30:12 +02:00
Dennis Mannhart 26ffda5079 PositionControl: replace matrix length() method with simple dot-product to safe compuation 2018-04-05 07:30:12 +02:00
Dennis Mannhart 0c6c771620 ControlMath: remove unused methods 2018-04-05 07:30:12 +02:00
Dennis Mannhart 81da94ff46 PositionControl: Anti-windup that uses max in NE based on tilt limit and remaining throttle
excess
2018-04-05 07:30:12 +02:00
Dennis Mannhart 88cf2aebc6 PositionControl: comment fix + unused parameter removal 2018-04-05 07:30:12 +02:00
Dennis Mannhart 421aeb69d8 FlightTaskManual: transformation into heading frame use vehicle yaw or yaw_sp based
on vehicle rotation in yaw
2018-04-05 07:30:12 +02:00
Dennis Mannhart ab8527cc8f FlightTaskManualStabilized: limit manual yaw rate in flighttask 2018-04-05 07:30:12 +02:00
Dennis Mannhart 03b3026e18 PositionControl: remove unused parameters 2018-04-05 07:30:12 +02:00
Dennis Mannhart 67900512ab PositionControl: remove legacy yaw logic 2018-04-05 07:30:12 +02:00
Dennis Mannhart 017576262c FlightTaskManual: replace yaw with yaw_sp for rotation 2018-04-05 07:30:12 +02:00
Dennis Mannhart ec79b2f8c8 ControlMath: don't consider sign when vector length is 0 2018-04-05 07:30:12 +02:00
Dennis Mannhart bd37c274c6 PositionControl: parameter naming fix 2018-04-05 07:30:12 +02:00
Dennis Mannhart 59bddf339a ManualSmoothingXY: brake with large default jerk max 2018-04-05 07:30:12 +02:00