Matthias Grob
c34e8dc98f
helper: consider matrices with the same NANs and INFINITYs equal
...
to simplify bulk checks when these values are expected
2019-09-18 09:59:50 +02:00
Matthias Grob
bbaa93880b
helper: consider NAN equal to NAN such that vectors can be compared exactly
2019-09-18 09:59:50 +02:00
Matthias Grob
33a629105c
Matrix: add proper print function testing
...
Before the print function was just implicitly called somewhere
and that's why we had 100% line coverage. With this we have actual
testing of the functions.
2019-09-18 09:59:50 +02:00
Matthias Grob
b0b7d7229a
Multiplication test: fix division resulting in NAN
2019-09-18 09:59:50 +02:00
Matthias Grob
3747232724
LeastSquaresSolver: Fix nasty GCC compile optimization error
...
The original implementation with no wrapping on size_t is more readable
but the compiler errors with:
internal compiler error: in trunc_int_for_mode, at explow.c:55
I read up and it's apparently a loop optimization problem.
Inspired by https://stackoverflow.com/a/27224697/6326048
I used a far less readable implementation that works fine and
wrote a comment to explain it.
2019-09-18 09:59:50 +02:00
Matthias Grob
5844b0e46e
Implement one float equality check and use it everywhere
2019-09-18 09:59:50 +02:00
Matthias Grob
1e80807e8e
test: Add uncovered equality checks with NAN and INFINITE
2019-09-18 09:59:50 +02:00
Matthias Grob
a374f37a54
Include helper_functions like all other library components
2019-09-18 09:59:50 +02:00
Matthias Grob
62a1e07512
ecl_EKF: Do not include SquareMatrix from Matrix library
...
because the template of upper_right_triangle() contains /2 and
swig fails to create a wrapper for that (suddenly)
2019-09-18 08:42:58 +02:00
Daniel Agar
eddee193d1
update matrix git tag to latest
2019-09-18 08:42:58 +02:00
Julian Kent
4c4c1f2984
Use copyTo for writing to memory blocks
2019-09-18 08:42:58 +02:00
Julian Kent
8cc8db211c
Fix copy_quaternion reference in code generation
2019-09-18 08:42:58 +02:00
Julian Kent
8d60f8ba8f
Remove direct unsafe access to matrix internal data
2019-09-18 08:42:58 +02: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
c446ee444a
EKF: fake rng if faulty on ground
2019-09-18 10:15:37 +10:00
Andreas Antener
4f19d457c4
ekf, control: make sure mag fusion doesn't start anymore when we have GPS heading fusion active
2019-09-18 09:27:24 +10:00
Jan Brehmer
93eb1266f6
EKF: reset position when stopping GPS use and EV is active
2019-09-18 08:33:40 +10:00
James Goppert
60c9c99dcc
Fix type for division.
2019-09-17 11:08:00 -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
Julian Kent
b4714e2ed2
Don't lose array sizes in copyTo
2019-09-17 15:09:12 +02: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
Julian Kent
51d2f9f0dc
Remove direct access to internal data
2019-09-16 21:58:32 -04:00
Julian Kent
18218c8f9c
Test non-square matrix multiplication ( #91 )
...
* Test non-square matrix multiplication
2019-09-16 17:40:25 +02:00
Julian Kent
b817e8677d
Add helpers based on Slice: row(), col(), xy()
2019-09-16 16:11:08 +02:00
Julian Kent
82d565f4d9
Add support for Slice to Matrix, SquareMatrix, Vector
2019-09-16 16:11:08 +02:00
Julian Kent
af1378cc55
Add Slice class
2019-09-16 16:11:08 +02: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