Commit Graph

18 Commits

Author SHA1 Message Date
KiraFlux d06eb2a1aa Quaternion::fromBetweenVectors: pass u and v as const references (#21) 2025-10-19 20:46:46 +03:00
Oleg Kalachev 8418723ccc Refactor control subsystem
Add interpretControls function to convert pilot commands and mode into control targets and make control functions independent from the mode.
Add ratesExtra target for rates feed-forward; remove yawMode.
Rename controlRate to controlRates to reflect rates variable name.
Remove USER mode.
2025-08-26 01:00:56 +03:00
Oleg Kalachev dee4d97ab3 Add getRoll, getPitch, setRoll, setPitch methods
Add methods to Quaternion for consistency with getYaw and setYaw
2025-08-09 18:10:11 +03:00
Oleg Kalachev 48c7135efb Return zero rotation vector when converting neutral quaternion
Previously it would return nans
2025-07-01 02:48:49 +03:00
Oleg Kalachev 9229b743eb Add missing equals and non-equals operators for quaternion lib 2025-07-01 02:47:01 +03:00
Oleg Kalachev 6b7601c0bd Improve vector and quaternion libraries
Make the order or basic methods consistent between Vector and Quaternion.
Remove `ZYX` from Euler method names as this is standard for robotics.
Rename angular rates to rotation vector, which is more correct.
Make rotation methods static, to keep the arguments order consistent.
Make `Quaternion::fromAxisAngle` accept Vector for axis.
Minor fixes.
2025-05-31 04:17:00 +03:00
Oleg Kalachev ca409396c7 Add missing const qualifiers to some quaternion methods 2025-01-09 10:02:53 +03:00
Oleg Kalachev ca032abc03 Implement rotate method for quaternions as replace for multiplication
Vector rotating method is renamed from `rotate` to `rotateVector` to avoid inconsistent object and argument order in different `rotate` methods
2025-01-09 09:56:49 +03:00
Oleg Kalachev 732de2a5d6 Remove redundant inline specifiers
In-class defined methods are specified as inline by default
2025-01-04 04:09:51 +03:00
Oleg Kalachev b0b6eb9a97 Minor code cleanups and clarifications 2024-10-23 09:25:39 +03:00
Oleg Kalachev ad6bc02643 Minor fixes and changes 2024-05-21 10:49:57 +03:00
Oleg Kalachev 5ec6b5e665 Make fromEulerZYX accept Vector instead of x, y, z 2024-02-20 04:51:59 +03:00
Oleg Kalachev 85182ac2b8 Use more correct implementation of toEulerZYX fixing some yaw issues
We actually need to use Tait–Bryan Z-Y-X angles, not classic Euler's
2024-02-20 04:47:13 +03:00
Oleg Kalachev 410fccf015 Fix vector, quaternion, pid and lpf libraries curly braces code style 2024-02-06 13:50:56 +03:00
Oleg Kalachev 3207fdb43c Minor changes 2023-12-29 18:43:34 +03:00
Oleg Kalachev d3e715ae53 Quaternion library cleanups and code style 2023-12-13 08:42:03 +03:00
Oleg Kalachev d6cca7dcf7 Some unification of the headers 2023-05-24 11:26:30 +03:00
Oleg Kalachev 34fd303027 Restore accidentally removed files 2023-05-24 10:58:34 +03:00