Commit Graph

30195 Commits

Author SHA1 Message Date
bresch 7cdb2364e9 ManualVelocitySmoothingXY - Add simple unit test 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
Dennis Mannhart 453b6a39e4 TrajMath: move from FlightTasks/Utility into mathlib library because the function is also used by other libraries 2019-09-19 14:09:44 +02:00
Dennis Mannhart e6b7062442 TrajMath: replace type placeholder with floats 2019-09-19 14:09:44 +02:00
bresch e9ab6a75ba MC rate control - Scale the integrator with K during the integration
part to avoid having to scale its saturation separately. This is
required to avoid premature saturation of the integrator when using
the K term.
Also remove double saturation of the integrator
2019-09-19 14:05:28 +02:00
bresch 67e528ec0c Takeoff - allow publishing NAN longitude and latitude
A NAN is interpreted in the FlightTaskAuto as a non-valid global coordinate and sets a local position.
If a zero is sent instead, the global coordinate is recognized as valid and will be executed.
This is a problem when the global position is gained for the first time after takeoff and that a valid global reference did not exist before
2019-09-19 14:03:58 +02:00
Nico van Duijn 549a962553 EKF2: move handling of invalid range into ECL (#12988)
* ekf2: Move handling of invalid range finder data inside ecl library

The ecl library EKF is able to use vehicle motion and in-air status to better determine when the default on-ground range finder reading can be used.
The description for the EKF2_MIN_RNG parameter has been updated to make its use clearer.
2019-09-19 11:29:34 +02:00
Matthias Grob fa13f63db6 ekf2: temporarily hardcode new quality information to unkown
until priseborough's and nicovanduijn's pr #12950
2019-09-18 22:01:36 -04:00
Matthias Grob c8d0eba1d2 Update ecl and matrix to safe matrix access 2019-09-18 22:01:36 -04:00
Matthias Grob 1ecbf8efd2 test_matrix: remove duplicate namespace accesses 2019-09-18 22:01:36 -04:00
Julian Kent 2d4ecab3b0 Remove unsafe access to .data() and _data in Matrix 2019-09-18 22:01:36 -04:00
Daniel Agar 78bf12f0db px4_tasks: reduce POSITION_CONTROL priority
* this is to prevent the loss of any sensor data or estimator time slip in the event of a position controller or flight task overrun
2019-09-18 09:55:06 -04:00
Daniel Agar 494f35d5f4 Mavlink: wait for boot complete before sending or receiving anything 2019-09-18 09:07:55 -04:00
Daniel Agar be61d93d64 tfmini split out header and main 2019-09-17 21:50:59 -04:00
Daniel Agar 9b7ef7141f tfmini cleanup and use PX4Rangefinder 2019-09-17 21:50:59 -04:00
Nico van Duijn 18eaeb564d PMW3901 improvements (#12977)
* PMW3901: use frame count and quality metric

* PMW3901: set qual to 0 for unsuccessful SPI reads

* PMW3901: improve comment for collect_time

* PMW3901: set qual to zero for huge flow values
2019-09-17 10:54:56 -04:00
Maximilian Laiacker 72e93a9c36 fixed total flight time counting bug
After landing it can happen that a second take off is detected and then the _takeoff_time is rest, resulting in a wrong total flight time counter. With this fix the flight time is reliably counted from the first take off until the vehicle is disarmed. Normally the vehicle will not spend much time armed after landing, if it does the flight time will be off but this is the same as before this fix. This fix was tested in several flight experiments.
2019-09-17 14:52:27 +02:00
Daniel Agar c13835c0f0 replay module split replay_main.cpp into separate compilation units 2019-09-17 14:33:04 +02:00
Matthias Grob 270e12a4df VelocitySmoothing: refactor local scope t variables instead of array 2019-09-17 09:27:00 +02:00
bresch da8ac8cafb VelocitySmoothing - Clean up updateTraj function based on Matthias' comments 2019-09-17 09:27:00 +02:00
bresch b82fa68893 VelocitySmoothingTest - Fix typo and use "zero" instead of "null" 2019-09-17 09:27:00 +02:00
bresch 42cedb7fda VelocitySmoothing - Change direction of "brake" as braking means that
only the T3 part is required and that the jerk applied during T3 is the
opposite of the one defined by "_direction".
2019-09-17 09:27:00 +02:00
bresch 8490266be8 VelocitySmoothing - (Re)set _state_init every time _state is (re)set 2019-09-17 09:27:00 +02:00
bresch 654938f6a1 VelocitySmoothing - Cosmetic changes (new lines, reorganize functions),
regroup both updateTraj functions and edit some comments
2019-09-17 09:27:00 +02:00
bresch 0b765a1642 AltitudeSmoothVel - Update to use new implementation of VelocitySmoothing
Remove jerk reduction (not needed in the new implementation)
2019-09-17 09:27:00 +02:00
bresch 862454827e VelocitySmoothingTest - Test that the trajectory is always within the constraints 2019-09-17 09:27:00 +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 c7696488fe VelocitySmoothing - Improve computation of the direction of the trajectory by predicting the velocity at zero acceleration instead of the current velocity
This helps when the current velocity is smaller than the target but that
the acceleration is too large such that the velocity will overshoot.
Without this check, the algorithm increases the acceleration which leads
to an even larger overshoot.
2019-09-17 09:27:00 +02:00
bresch 052932fa95 VelocitySmoothingTest - Update unit test to use the same parameters ordering (time, setpoint) as the VelocitySmoothing class 2019-09-17 09:27:00 +02:00
bresch c13499e64b test_velocity_smothing - Update test script to use new polynomial evaluation algorithm 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
Hamish Willee 0c0b261ff2 ubuntu.sh - remove modemmanager 2019-09-17 00:38:14 -04:00
Daniel Agar 5507f14bb2 Jenkins HIL disable rgbled 2019-09-15 17:17:09 -04:00
Daniel Agar ed6c7cc806 cmake remove unused/broken _no_optimization_for_target 2019-09-15 17:16:38 -04:00
Daniel Agar 251831f7af cmake px4_add_library remove unused PX4_LIBRARIES property 2019-09-15 17:16:38 -04:00
Daniel Agar dc46b6a749 cmake px4_add_module MAIN is always present (required) 2019-09-15 17:16:38 -04:00
Daniel Agar fb7521eb5e cmake px4_base -> px4_parse_function_args 2019-09-15 14:36:38 -04:00
Daniel Agar d256fb8770 cmake px4_find_python_module move to standalone file 2019-09-15 14:36:38 -04:00
Daniel Agar d27dfcd921 NuttX CMakeLists.txt extract helpers (jlink, upload, etc) 2019-09-15 14:36:38 -04:00
Daniel Agar f2189dd045 CMakeLists.txt extract top level helpers (ccache, doxygen, metadata, etc) 2019-09-15 14:36:38 -04:00
Matthias Grob d4f984fea5 FlightTaskAutoLineSmooth: Fix comment to be style compliant 2019-09-13 18:10:05 +02:00
bresch 47401d1177 AutoLineSmoothVel - Replace min/max absolute constraints with a function named constrainAbs
This function constrain the absolute value of some value but keeps the original sign.
2019-09-13 17:46:01 +02:00
bresch 3c5b24037a AutoLineSmoothVel - Improve virtual pilot logic that provides velocity setpoints to the trajectory generator.
Constrain the generated velocities in the NE inertial frame rather than
just constraining the norm.
2019-09-13 17:46:01 +02:00
bresch 59f54a7fd8 mathlib - Add FLT_EPSILON deadzone in sign computation 2019-09-13 17:46:01 +02:00
mcsauder 410dd85289 Comment out the ll40ls (LidarLite) driver from the fmu-v2 build. 2019-09-13 11:03:13 -04:00
Nico van Duijn a26865c279 drivers: set CM8JL65 signal_quality invalid beyond bounds 2019-09-13 10:42:10 -04:00
Martina Rivizzigno 78279f6587 Unit tests for Obstacle Avoidance interface (#12816)
* FlighTask: remove legacy definition of empty_trajectory_wapoint

* add unit tests for the ObstacleAvoidance interface
2019-09-12 14:37:31 +02:00
Julian Kent 39451b811a Do syscall for time once, outside of loop 2019-09-11 12:34:59 -04:00
Julian Kent b27d6a958a Account for the time since range data arrived 2019-09-11 12:34:59 -04:00