Commit Graph

34 Commits

Author SHA1 Message Date
Matthias Grob 9c25b987bc vehicle_local_position_setpoint: make acceleration and jerk arrays 2019-10-24 14:58:57 +02:00
bresch c811cf4784 FlightTask - Move ekf reset counter monitoring logic in the base FlihtTask
Each child FlightTask can simply implement what it wants to do in case
of an EKF reset event by overriding one of the _ekfResetHandler functions
2019-09-24 10:34:08 +02:00
bresch 0153e1b126 Matrix - Explicitly cast array[3] to Vector3f
Use .xy() for Vector2 -> Vector3 assignment
2019-09-19 17:31:49 +02:00
bresch f5d7eb4d87 Refactor FlightTaskManualPositionSmoothVel 2019-09-19 17:31:49 +02:00
bresch 080eedfd02 ManualPositionSmoothVel - Split large function into smaller ones, split XY and Z axes
Next step is to move as much as possible to a library in order to
reuse the Z axis in the Altitude FlightTask
2019-09-19 17:31:49 +02:00
bresch 8cc2a7018e VelocitySmoothing - Re-enable time stretch, integrate dt to get local time.
Also split a few functions into smaller ones for readability, fix
formatting, use geters to get the current state of the trajectory
instead of return arguments.
2019-09-17 09:27:00 +02:00
bresch a03cc495ce VelocitySmoothing - Refactor class to use polynomial evaluation instead of numerical integration
This solves many numerical issues when the trajectory is close to the
primary NE axes (small velocities). It is also more robust when dt is
large and has some jitter.
2019-09-17 09:27:00 +02:00
bresch f4b40865af SmoothVel - Fix altitude lock logic.
It was broken because _velocity_setpoint is used for input and output
and was assumed to be the input at a place where it was already overwitten
To clarify this, the input setpoint is renamed "target"
2019-08-22 16:43:41 +02:00
baumanta d168d5049f check vel_setpoint instead of stick input for position lock 2019-08-21 10:02:40 +02:00
bresch ea0e164145 FlightTask - Rename state_prev to last_setpoint 2019-07-16 13:09:09 +02:00
bresch 37a9b90945 FlightTask - Move checkSetpoints function in each FlightTask to be tailored to the specific needs and avoid checking all the setpoints 2019-07-16 13:09:09 +02:00
bresch 24811cf550 FlightTask smoothVel - Initialize ekf reset counters when task is activated 2019-07-16 13:09:09 +02:00
bresch 1414f50cea FlightTask - When switching task, pass the last setpoints of the previous task to the new task
This is done to allow proper initialization of the new FlightTask and
give it a chance to continue the setpoints without discontinuity. The
function checkSetpoints replaces the setpoints containing NANs with an
estimate of the state. The estimate is usually the current estimate of
the EKF or zero.
The transition FlightTask also provides an estimate of the current
acceleration to properly initialize the next FlightTask after
back-transition. This avoid having to initialize the accelerations to
zero knowing that the actual acceleration is usually far from zero.
2019-07-16 13:09:09 +02:00
bresch b14446f0e5 Parameter update - Rename variables in lib
using paramter_update.py script
2019-04-03 15:38:50 +02:00
bresch a08b1682e3 [Position|AutoLine]SmoothVel - Update position and velocity states of the trajectories in case of EKF reset. Until now, only the position reset on XY axis was properly handled. Now, xy, vxy, z and vz are handled 2019-03-20 14:35:26 -04:00
bresch aecf8fce58 ManualPositionSmoothVel - Force velocity and acceleration setpoints to zero if the velocity setpoint is smaller than 1mm/s and that the acceleration setpoint is null 2019-03-18 08:33:11 +01:00
bresch 1fefa76e5d ManualSmoothVel - Set jerk to 1.0 during position hold to help the optimizer to converge towards 0 vel and acc 2019-03-18 08:33:11 +01:00
bresch f229444722 ManualSmoothVel - Split position lock condition and flag action 2019-02-25 21:41:04 +01:00
bresch 8f584a1496 smooth takeoff - Support smooth takeoff triggered by jerk setpoint 2019-02-25 08:07:33 +01:00
bresch 70ddb8049a Traj Smoothing - make format 2019-02-13 20:56:57 +01:00
bresch 4cace1bbe9 Manual vel smooth - use speed_up and speed_down constraints to limit velocity target of the trajectory generator 2019-02-13 20:56:57 +01:00
bresch b7c2464cce Manual vel smooth - Use MPC_JERK_MAX only 2019-02-13 20:56:57 +01:00
bresch f1262cbe84 Manual Traj - Avoid velocity jumps due to a modification of the constraints 2019-02-13 20:56:57 +01:00
bresch 57eef6b170 Manual Trajectory - Add Z position lock logic and log complete trajectory 2019-02-13 20:56:57 +01:00
bresch a2d5485c7f Trajectory manual - Handle EKF xy reset 2019-01-22 17:23:16 +01:00
bresch 90cee2d5ea Manual Smoth Vel - Override reActivate to not reset Z axis (prevented takeoff) 2018-11-06 22:17:00 +01:00
bresch 67c0846068 Vel smooth - Improve position lock/unlock detection 2018-11-06 22:17:00 +01:00
bresch d9edcfdc06 Trajectory - format style 2018-11-06 22:17:00 +01:00
bresch 6a7ce651bc Trajectory - Add position lock-unlock logic and proper initialization from controller feedback 2018-11-06 22:17:00 +01:00
bresch 84665672ad Vel smooth - Change jerk scheduling strategy 2018-11-06 22:17:00 +01:00
bresch ab7e4436b3 Vel smooth - Add Z trajectory 2018-11-06 22:17:00 +01:00
Beat Küng 787d82c9e6 VelocitySmoothing: simplify the API & fix style 2018-11-06 22:17:00 +01:00
bresch 22780efcd0 Trajectory - Add time synchronization between trajectories. Split update(...) function into updateDurations(...) and integrate(...) to be able to insert time synchronization in between. 2018-11-06 22:17:00 +01:00
Beat Küng 86463e4ec7 Flight Tasks: add new trajectory smoothing flight task & library
Derivation by Mathieu Bresciani:
https://github.com/Auterion/trajectory_generator
2018-11-06 22:17:00 +01:00