Leonard Hall
1a21c6da1e
AP_Math: Move rc_input_to_roll_pitch conversion
2022-05-31 08:08:17 +09:00
Peter Barker
a08025125b
AP_Math: tidy includes
2022-05-03 09:14:58 +10:00
Andrew Tridgell
a95b429acc
AP_Math: added unsigned versions of constrain functions
...
sometimes it really does matter that we use constrain_uint32() instead
of constrain_int32(). For example, if we have a value like 0xFFFFFFFF
then the result will be very different
we should use unsigned constrain when dealing with unsigned values
2022-04-05 17:46:52 +10:00
Randy Mackay
8fcefb59b1
AP_Math: add Vector2f::dot
2022-03-30 15:34:14 +09:00
Peter Barker
d9f819085c
AP_Math: add specialisation for sq(float)
...
avoids conversion to double
2022-03-30 08:44:19 +11:00
xianglunkai
abb0bf34d2
test_3d_lines:fix test result for test_3d_lines
2022-03-29 08:26:39 +09:00
xianglunkai
4513546845
vector3:return w1 not zero vector
2022-03-29 08:26:39 +09:00
Bill Geyer
7e09f68f26
AP_Math: add chirp function to support frequency sweeps in systemid and autotune
2022-03-29 08:05:41 +09:00
Andrew Tridgell
ca4151be2c
AP_Math: added angle_to_accel() and accel_to_angle()
2022-03-18 13:36:16 +11:00
Peter Barker
e07ddf95b4
AP_Math: provide rand_float on embedded hardware
2022-03-17 14:39:55 +11:00
Andrew Tridgell
eee2b00d8c
AP_Math: fixed build error on cygwin
...
ensure variables are always initialised
2022-03-09 14:08:26 +11:00
Leonard Hall
7673948d2a
AP_Math: SCurve: Increase corner speeds
2022-03-05 11:34:40 +09:00
Leonard Hall
a8b86e9c45
AP_Math: Convert S-Curves to use maximum Snap to remove minimum time between waypoints
2022-03-05 11:34:40 +09:00
Iampete1
3e75283717
AP_Math: ftype: include float.h
2022-03-02 18:16:42 +11:00
Iampete1
9ec8bb17b2
AP_Math: benchmarks: define hal
2022-03-02 18:16:42 +11:00
Iampete1
97602aadf5
AP_Math: examples: test custom rotations
2022-03-02 18:16:42 +11:00
Iampete1
15326a8d90
AP_Math: tests: define hal where requirerd for custom rotaitons
2022-03-02 18:16:42 +11:00
Iampete1
7a6f57ccf1
AP_Math: add support for AP_CustomRotations
2022-03-02 18:16:42 +11:00
Andrew Tridgell
e96507f55f
AP_Math: added crc_crc64()
2022-02-17 14:37:41 +11:00
Andy Piper
87a369727a
AP_Math: specialize float and double functions to use fabsf() and simple comparison otherwise
2022-02-13 14:43:37 +11:00
Randy Mackay
f57a081ceb
AP_Math: minor control format fix
2022-02-08 17:01:23 +09:00
Leonard Hall
a47fc65511
AP_Math: Control: improve real time S-Curve response to small inputs
2022-02-08 16:58:44 +09:00
Randy Mackay
372fc1a840
AP_Math: spline lateral scaler reduced to 0.5
...
Co-authored-by: Leonard Hall <leonardthall@gmail.com>
2022-01-31 12:05:59 +09:00
Joshua Henderson
4e3a66a4d3
AP_Math: quaternion add is_zero() & zero()
...
& length_squared() & add unit tests
2022-01-19 18:03:17 +11:00
Andrew Tridgell
319592a148
AP_Math: added degF_to_Kelvin()
2022-01-17 15:16:24 +11:00
Peter Barker
e988bf9046
AP_Math: add KELVIN_TO_C define
2022-01-13 18:31:46 +11:00
murata
414ca96e5c
AP_Math: Move crc16-ibm CRC calculation method to a common class
2022-01-13 09:44:40 +11:00
Randy Mackay
8bbdd4825f
AP_Math: minor control spelling and format fixes
2022-01-12 13:07:15 +09:00
Andy Piper
fbaa2e7b09
AP_Math: allow selection of inline version of vector operations for performance.
2021-12-22 18:23:33 +11:00
arbalasquide
fd3c83c0d1
AP_Math: Add AUS_TO_MAH definition
2021-12-22 07:52:03 +11:00
Leonard Hall
1e124ca957
AP_Math: Control: Add directional based acceleration limit
...
AP_Math: Control: Add directional based acceleration limit
2021-12-16 09:54:49 +09:00
Peter Barker
2205b95c99
AP_Math: create double versions of is_zero, is_positive and is_negative
...
Seeks to prevent
Thread 1 "ardurover" received signal SIGFPE, Arithmetic exception.
is_positive<double> (fVal1=9.6315720352771873e+44)
at ../../libraries/AP_Math/AP_Math.h:66
66 return (static_cast<float>(fVal1) >= FLT_EPSILON);
2021-12-15 19:33:55 +11:00
Randy Mackay
09388b7408
AP_Math: minor comment fix
2021-12-15 11:58:23 +09:00
Leonard Hall
718c094293
AP_Math: Control: Adjust limit handling to improve corners
2021-12-07 09:47:42 +09:00
Randy Mackay
4096a70a1f
AP_Math: update_pos_vel_accel methods accept limit as const reference
...
also update some comments
2021-12-01 12:45:46 +09:00
Peter Barker
99b1659e4b
AP_Math: memcpy nanfs rather than iteratively setting them
2021-11-30 10:35:38 +11:00
Josh Henderson
28d9be1cc0
AP_Math: get_horizontal_cm() simplify
2021-11-30 10:08:07 +11:00
Josh Henderson
2a15cf86ad
AP_Math: Location get_bearing & get_horizontal_distance use Vector2f
2021-11-30 10:08:07 +11:00
Iampete1
460df9bb50
AP_Math: control: remove unneeded normalisation.
2021-11-23 13:47:10 +09:00
Tom Pittenger
ec5820044b
AP_Math: add defines for AP_SEC_PER_HOUR and AP_MSEC_PER_HOUR
2021-11-23 09:16:04 +11:00
Buzz
adaccdf0ba
AP_Math: esp32 with esp_idf have MIN and MAX defined to something else.
...
Author: Charles Villard <charlesvillard10@gmail.com>
Author: Buzz <davidbuzz@gmail.com>
2021-11-01 17:40:31 +11:00
Josh Henderson
9b74452270
AP_Math: add Internal_Error for quaternion of 0 length
2021-09-28 19:09:16 +10:00
Josh Henderson
0125ae26ac
AP_Math: enable SITL unit testing
2021-09-28 09:11:48 +10:00
Leonard Hall
77fbcf1741
AP_Math: Control: add expo calculation.
2021-09-23 20:03:53 +09:00
Pierre Kancir
d853d16c42
AP_Math: fix vectorN ctor warning by using C++11 brace initilization in all cases
2021-09-21 20:51:37 +10:00
Tom Pittenger
8c9dcf4ad8
AP_Math: added CRC16_CCITT non-standard variant
2021-08-19 17:49:27 +10:00
Peter Barker
be076e5b1a
AP_Math: correct descriptions of quaternion functions
2021-08-19 10:00:35 +10:00
Peter Barker
2251e442cc
AP_Math: move crc8_dvb_update into crc library
2021-08-13 16:22:37 +10:00
Leonard Hall
ad2a152751
AP_Math: Spelling fix
2021-08-11 17:07:29 +09:00
Leonard Hall
8961695369
AP_Math: Control: Refactor to use Jerk
2021-08-11 17:07:29 +09:00
Leonard Hall
3a8924c185
AP_Math: Control: protect against divide by zero
2021-08-11 17:07:29 +09:00
Iampete1
22100dd37c
AP_Math: move to 32 digit rotation constants
2021-07-28 18:09:05 +10:00
Iampete1
5ecfd3fbce
AP_Math: remove unused ROTATION_MAX_AUTO_ROTATION define
2021-07-28 18:09:05 +10:00
Iampete1
dbd95f8163
AP_Math: make duplicate rotations clear
2021-07-28 18:09:05 +10:00
Iampete1
080f6c295c
AP_Math: examples: rotations: add test for duplicate rotations.
2021-07-28 18:09:05 +10:00
Iampete1
f8220a8adf
AP_Math: tests: test quaternion rotation is the same as vector
2021-07-28 18:09:05 +10:00
Iampete1
6c5424aad6
AP_Math: add roll +- 45 rotations
2021-07-28 18:09:05 +10:00
Peter Barker
118d3f085f
AP_Math: quaternion: add from_euler(Vector3&)
2021-07-28 17:20:28 +10:00
Andrew Tridgell
c5ef672fb5
AP_Math: fixed expo_curve()
...
doesn't make sense as constexpr
2021-07-23 14:47:14 +10:00
Randy Mackay
7daacfd63e
AP_Math: vector2f gets float.h include
2021-07-22 08:51:41 +09:00
Randy Mackay
52bb8112b3
AP_Math: control.h needs vector2/3 includes
2021-07-22 08:51:41 +09:00
Randy Mackay
6c180994cd
AP_Math: add support for crc8_maxim
...
Thanks to FastCRC
2021-07-13 10:01:14 +09:00
Leonard Hall
de36398ebf
AC_Math: Control: Support Accel only input
2021-07-10 20:25:05 +09:00
Andrew Tridgell
75411afd21
AP_Math: added test for SCurve::calculate_path
...
this was the values shown in the core dump for failing guided mode
test in CI
2021-07-10 10:34:01 +09:00
Andrew Tridgell
498220b9f3
AP_Math: fixed error where t4_out could be negative in SCurve::calculate_path
...
this case cropped up in SITL due to floating point accuracies
2021-07-10 10:34:01 +09:00
Andrew Tridgell
f343c8501b
AP_Math: fixed double fill_nanf()
2021-07-10 07:20:41 +10:00
Andrew Tridgell
168e860f70
AP_Math: fixed a few more single precision calls
2021-07-10 07:20:41 +10:00
Andrew Tridgell
1486a473bd
AP_Math: remove unused rotation_matrix_norm()
2021-07-10 07:20:41 +10:00
Andrew Tridgell
d91397f2f2
AP_Math: change wrap_PI to ftype
...
prevent loss of precision
2021-07-10 07:20:41 +10:00
Andrew Tridgell
afb928081a
AP_Math: use ftype for a few internal trig fns
2021-07-10 07:20:41 +10:00
Andrew Tridgell
31a6663797
AP_Math: fixed vel correction test build
2021-07-10 07:20:41 +10:00
Andrew Tridgell
0f2f0d4cb2
AP_Math: allow for double EKF build
2021-07-10 07:20:41 +10:00
Michelle Rossouw
f95cb16434
AP_Math: Add Vector2f+z initialiser for Vector3f
2021-07-06 14:56:02 +10:00
Andrew Tridgell
978ea307b0
AP_Math: fixed the value LATLON_TO_CM
...
it didn't have enough digits of precision, and was inconsistent with
LOCATION_SCALING_FACTOR
2021-06-29 17:26:34 +09:00
Andrew Tridgell
aa03afafa7
AP_Math: added matrix3 tofloat and todouble
2021-06-24 21:34:30 +10:00
Andrew Tridgell
9b91cfe4ee
AP_Math: implement double versions of some position control methods
2021-06-24 21:34:30 +10:00
Andrew Tridgell
3a3a30ab22
AP_Math: define postype_t and vectors
2021-06-24 21:34:30 +10:00
Andrew Tridgell
3315ec5acc
AP_Math: added tofloat() and todouble() methods to Vector2 and Vector3
2021-06-24 21:34:30 +10:00
Andrew Tridgell
639570505b
AP_Math: cleanups from Leonards feedback
2021-06-24 20:28:45 +10:00
Andrew Tridgell
566dd8ca8b
AP_Math: cleanup API comments on control code
2021-06-24 20:28:45 +10:00
Andrew Tridgell
86f09cad09
AP_Math: cleanup position control APIs
...
use Vector2 for xy, float for z
2021-06-24 20:28:45 +10:00
Andrew Tridgell
fe4abc521a
AP_Math: make vector3 xy() method return a reference
2021-06-24 20:28:45 +10:00
Josh Henderson
566621e2ba
AP_Math: SCurve check direction.length_squared is_zero
2021-06-14 13:26:44 +09:00
Andrew Tridgell
f19b604a0c
AP_Math: added xy() method on Vector3
...
useful for getting xy length
2021-06-13 07:50:02 +10:00
Rishabh
b9fbf1a661
AP_Math: Update segment_to_segment_dis test
2021-06-12 13:31:52 +09:00
Rishabh
547f0efd57
AP_Math: Add segment to plane intersection function
2021-06-12 13:31:52 +09:00
Pierre Kancir
519b1a6913
AP_Math: correct and increase unit test coverage
...
AP_Math: correct some tests
AP_Math: more vector2 tests
AP_Math: make test_vector2 complete
AP_Math: add initial unittest for vector3
2021-06-09 18:06:18 +10:00
Randy Mackay
b263a1d751
AP_Math: add Quaternion::roll_pitch_difference
2021-06-08 12:55:17 +09:00
Andrew Tridgell
154ae64e63
AP_Math: support either polarity in linear_interpolate()
2021-06-05 13:05:30 +10:00
Peter Barker
d77d258442
AP_Math: add tests for the sqrt_controller
2021-06-04 23:00:19 +10:00
Leonard Hall
5c47c0a131
AP_Math: Fix before squash
2021-05-24 20:13:37 +10:00
Andrew Tridgell
53e5bef0c2
AP_Math: added rotate_xy to Vector3f
...
this makes it easy to rotate a vector3f in xy plane for earth/body
navigation
2021-05-24 20:13:37 +10:00
Leonard Hall
c4bb8baf0c
AP_Math: Control: Add XY S-Curve shapers and shaping limits
2021-05-24 20:13:37 +10:00
Leonard Hall
3530d9121f
AP_Math: minor format fix to SCurve::advance_target_along_track
2021-05-12 19:53:57 +09:00
Tom Pittenger
ba6bb21560
AP_Math: added helper for16bit float conversions
2021-04-28 19:22:53 -07:00
hs293go
93a13bbf0e
AP_Math: Implement tests for the Quaternion class
...
These tests cover Quaternion multiplication, conversion to rotation
matrix, and the optimized rotation operator
2021-04-19 15:34:45 +10:00
hs293go
8bc02ab00b
AP_Math: Implement quaternion vector rotation operator
...
Overloads operator*() with semantics of applying a rotation to a vector, in
common with usage in Eigen/OpenGL. This implementation carries out 30
operations, compared to 58 operations for the q*v*q.inverse() formula
2021-04-19 15:34:45 +10:00
Randy Mackay
bc0da915c4
AP_Math: add SplineCurve library
...
Co-authored-by: Leonard Hall <leonardthall@gmail.com>
includes corrections from peer review
2021-04-03 12:07:59 +09:00
Leonard Hall
af7403f4e9
AP_Math: add SCurve library
...
SCurve const more local variables
rename update to get_jerk_vel_pos_at_time
removed unused update
debug output in SITL
fixes to ensure finished at end of path
fixes including validity check
includes corrections from peer review
2021-04-03 12:07:59 +09:00
Randy Mackay
0e506a71a1
AP_Math: remove control's limit_vector_length
...
these have been moved to Vector2f and Vector3f
2021-04-03 12:07:59 +09:00