Commit Graph

499 Commits

Author SHA1 Message Date
Daniel Agar 4416c4ddb3 navigator move parameters out of MissionBlock
- MissionBlock is an interface with > 10 implementations
2017-10-26 22:43:53 +02:00
ChristophTobler 8e457b6037 reset setpoint to current position
avoid abrupt position changes as the delta can be quite big depending on deadreckoning/imu
2017-10-26 21:36:36 +02:00
DonLakeFlyer 8693c51cba Fix bad meta data 2017-10-21 20:17:41 +02:00
Dennis Mannhart 8a0a8e20e1 mc_pos_control: use correct altitude as limit
fadfdasf
2017-10-10 10:28:07 +02:00
Dennis Mannhart f9b8afc006 Navigator: Use maximum flight altitude to limit missions
This change limits all mission items to the maximum flight altitude. The mission will still be executed and flown,
but the vehicle will never exceed the mission altitude. This ensures the vehicle can always reach the mission
items. Wether or not the entire mission should be rejected if it falls outside of the fenced area is enforced
in the mission feasibility checker function.
2017-10-10 10:28:07 +02:00
Dennis Mannhart 44a71d90f5 mc_pos_control: takeoff threshold to 0.65 2017-10-09 19:05:15 +02:00
Julian Oes 7229ec2a37 Move throttle check from land detector to posctrl
This commit is an attempt to fix a race condition happening on takeoff
between the land detector and the multicopter position controller.

Previously, an auto-takeoff leads to the following events:

1. A takeoff setpoint is given.
2. The thrust setpoint spikes because we don't enter smooth takeoff yet.
3. The land detector detects a takeoff because of the high thrust.
4. The position controller sees the landed state transition and
   initiates the smooth takeoff. Thrust goes back down.
5. Depending on control gains the takeoff is successful or fails
   if the smoothing takes too long which causes thrust to be too low, so
   the land detector detects land again.

The two obvious problems with this are:
- The intermittent spike.
- The failed takeoff because of the smoothing leads to a delay..

With this change, the logic for a takeoff detection is moved from the
land detector to the position controller.

The events are now:

1. A takeoff setpoint is given.
2. The position controller detects the takeoff setpoint and initiates
   the smooth takeoff.
3. As thrust ramps up, the land detector detects the take off.

In the same way, we now detect the intent to takeoff in manual,
altitude, control, position control in the position controller instead
of in the land detector.
2017-10-09 19:05:15 +02:00
Dennis Mannhart 0d7d6e59f5 mc_pos_control: description fix 2017-10-09 10:20:29 +02:00
Matthias Grob 2b7dcd3f34 mc_pos_control: multiple small fixes in position controller we acumulated over time during our PX4 deployment and want to contribute back 2017-10-09 10:20:29 +02:00
Matthias Grob c177d6491a mc_pos_control: simplify unnecessary complicated boolean conditions 2017-10-09 10:20:29 +02:00
Beat Küng 29e85edac8 Revert "param MPC_MAN_TILT_MAX: decrease maximum from 90 to 85 degrees"
This reverts commit d6df692b7a.

The changes to attitude controller improve this a lot.
2017-10-01 15:36:21 +02:00
Paul Riseborough f0e8abe783 mc_pos_control: Use arming state to prevent unsafe reference point changes 2017-09-24 03:46:42 -07:00
Paul Riseborough ef0e47ee63 mc_pos_control: Fix bug causing flyaway when GPS gained after takeoff
The change in origin when GPS was gained after takeoff was being used to shift the set point despite the previous origin being invalid.
2017-09-24 03:46:42 -07:00
eric 557559cd85 set _triplet_lat_lon_finite true to avoid landing to not the current location, see #7990 2017-09-22 15:20:13 +02:00
Daniel Agar b4755297ec delete control_state and cleanup vehicle_attitude (#7882) 2017-09-21 16:24:53 -04:00
Beat Küng b00c93ac21 mc_pos_control_main: add clarification that we're in world frame 2017-09-19 11:44:29 +02:00
Beat Küng 05e3c58e18 mc_pos_control_main: simplify manual control handling 2017-09-19 11:44:29 +02:00
Beat Küng d6df692b7a param MPC_MAN_TILT_MAX: decrease maximum from 90 to 85 degrees
At 90 degrees the yaw is extremely unstable (tested with HIL), it
overshoots and only very slowly converges to the correct value.
This behavior is also noticable with lower angles, but not so extreme.
It definitely needs to be looked into further, but for now this makes it
safer.
2017-09-19 11:44:29 +02:00
Beat Küng 55bd35cba6 mc_pos_control_main: improve the manual input setpoints 2017-09-19 11:44:29 +02:00
Beat Küng fc51c42280 mc_pos_control_main: fix types for parameter values 2017-09-19 11:44:29 +02:00
Dennis Mannhart 82f25453a7 mc_pos_control: smooth position control from stick input 2017-09-18 13:30:16 +02:00
Dennis Mannhart a398dc09c7 mc_pos_control: set curr_pos_sp(0:1) to pos(0:1) if non-finite 2017-09-11 02:08:22 -07:00
Dennis Mannhart 22be99da3e mc_pos_control: change name _pos_first_nofinite to _triplet_lat_lon_finite 2017-09-11 02:08:22 -07:00
Dennis Mannhart cdb610a453 mc_pos_control: remove _limit_vel_xy 2017-09-11 02:08:22 -07:00
Dennis Mannhart 9ea465b66b mc_pos_control auto: fix curr pos sp mapping to local frame 2017-09-11 02:08:22 -07:00
Dennis Mannhart cb9efd7119 mc_pos_control: remove unused defines and add SIGMA 2017-09-11 02:08:22 -07:00
Dennis Mannhart 352f86fff4 mc_pos_control reintegration fixes of duplicates, unused parameter and order 2017-09-11 02:08:22 -07:00
Dennis Mannhart bf5e81a34f mc_pos_control param: acceleration parameters adjustment and addition 2017-09-11 02:08:22 -07:00
Dennis Mannhart 10a9c410e3 mc_pos_control: parameter for maximum horizontal velocity 2017-09-11 02:08:22 -07:00
Dennis Mannhart 8eca82022c mc_pos_control: sub param.acc with block param 2017-09-11 02:08:22 -07:00
Dennis Mannhart 44e4beeeec mc_pos_control: check if triplets are valid, otherwise ignore 2017-09-11 02:08:22 -07:00
Dennis Mannhart c84c7cdcb4 mc_pos_control: set previous triplet point to invalid when switching to manual 2017-09-11 02:08:22 -07:00
Dennis Mannhart 2ceb703613 mc_pos_control: use math::constrain 2017-09-11 02:08:22 -07:00
Dennis Mannhart 947d63fb11 mc_pos_control auto: replace min_cruise_speed with cruise_speed_90; take care of case when cruise_speed_90 is exactly in the middle of max and min 2017-09-11 02:08:22 -07:00
Dennis Mannhart 3538f028b4 mc_pos_control: use 0.5 of acceleration for auto 2017-09-11 02:08:22 -07:00
Dennis Mannhart 807d45c99c mc_pos_control slowing down close to target take over previous setpoint if low 2017-09-11 02:08:22 -07:00
Dennis Mannhart ac3321dc6c mc_pos_control: distinguish between up and down acceleration 2017-09-11 02:08:22 -07:00
Dennis Mannhart 9ec0d72f3c mc_pos_control: make sure that passing waypoint only allowed if altitude is reached 2017-09-11 02:08:22 -07:00
Dennis Mannhart b769d1cee0 mc_pos_control auto: apply auto logic for z-direction 2017-09-11 02:08:22 -07:00
Dennis Mannhart 8e99c73f49 mc_pos_control: don't divide by zero 2017-09-11 02:08:22 -07:00
Dennis Mannhart cb820a168a mc_pos_control: use original targethreshold when computing target_velocity 2017-09-11 02:08:22 -07:00
Dennis Mannhart 08d15f5402 mc_pos_control: remove target threshold from auto 2017-09-11 02:08:22 -07:00
Dennis Mannhart dbed42a720 mc_pos_control auto: ensure the order of cruise speeds during mission 2017-09-11 02:08:22 -07:00
Dennis Mannhart 3f73a56f5a mc_pos_control: accelerate faster in auto and increase speed at 90degrees angle 2017-09-11 02:08:22 -07:00
Dennis Mannhart 540c0bdafb mc_pos_control: accelerate faster 2017-09-11 02:08:22 -07:00
Dennis Mannhart 7a822c9db2 mc_pos_control: don't use slewrate in mission 2017-09-11 02:08:22 -07:00
Dennis Mannhart 267dbe9b7a mc_pos_control: when close to current and previous, ajdust target velocity 2017-09-11 02:08:22 -07:00
Dennis Mannhart 0a37d8dc42 mc_pos_control: clarify speed params 2017-09-11 02:08:22 -07:00
Dennis Mannhart 9cfc57e4a6 mc_pos_control: rebase fix 2017-09-11 02:08:22 -07:00
Dennis Mannhart 3e4ab5ed59 mc_pos_control: when close to current and previous, ajdust target velocity 2017-09-11 02:08:22 -07:00