mirror of
https://github.com/sunnypilot/sunnypilot.git
synced 2026-02-18 23:33:58 +08:00
* locationd at 20hz
* update ref
* bump cereal
* dont modify global state
* add scons files
* ecef2geodetic and geodetic2ecef
* Finish local coords class
* Add header file
* Add orientation.cc
* cleanup
* Add functions to header file
* Add cython wrapper
* y u no work?
* This passes the tests
* test rot2quat and quat2rot
* Teste euler2rot and rot2euler
* rot_matrix
* test ecef_euler_from_ned and ned_euler_from_ecef
* add benchmark
* Add test
* Consistent newlines
* no more radians supported in geodetic
* test localcoord single
* test localcoord single
* all tests pass
* Unused import
* Add alternate namings
* Add source for formulas
* no explicit tests needed
* remove benchmark
* Add release files
* Typo
* Remove print statement
* no access to raw transform matrix
* temporarily add tolerance
* handcode quat2euler
* update ref
old-commit-hash: c18e7da3c2
69 lines
1.4 KiB
Cython
69 lines
1.4 KiB
Cython
from libcpp cimport bool
|
|
|
|
cdef extern from "orientation.cc":
|
|
pass
|
|
|
|
cdef extern from "orientation.hpp":
|
|
cdef cppclass Quaternion "Eigen::Quaterniond":
|
|
Quaternion()
|
|
Quaternion(double, double, double, double)
|
|
double w()
|
|
double x()
|
|
double y()
|
|
double z()
|
|
|
|
cdef cppclass Vector3 "Eigen::Vector3d":
|
|
Vector3()
|
|
Vector3(double, double, double)
|
|
double operator()(int)
|
|
|
|
cdef cppclass Matrix3 "Eigen::Matrix3d":
|
|
Matrix3()
|
|
Matrix3(double*)
|
|
|
|
double operator()(int, int)
|
|
|
|
Quaternion euler2quat(Vector3)
|
|
Vector3 quat2euler(Quaternion)
|
|
Matrix3 quat2rot(Quaternion)
|
|
Quaternion rot2quat(Matrix3)
|
|
Vector3 rot2euler(Matrix3)
|
|
Matrix3 euler2rot(Vector3)
|
|
Matrix3 rot_matrix(double, double, double)
|
|
Vector3 ecef_euler_from_ned(ECEF, Vector3)
|
|
Vector3 ned_euler_from_ecef(ECEF, Vector3)
|
|
|
|
|
|
cdef extern from "coordinates.cc":
|
|
cdef struct ECEF:
|
|
double x
|
|
double y
|
|
double z
|
|
|
|
cdef struct NED:
|
|
double n
|
|
double e
|
|
double d
|
|
|
|
cdef struct Geodetic:
|
|
double lat
|
|
double lon
|
|
double alt
|
|
bool radians
|
|
|
|
ECEF geodetic2ecef(Geodetic)
|
|
Geodetic ecef2geodetic(ECEF)
|
|
|
|
cdef cppclass LocalCoord_c "LocalCoord":
|
|
LocalCoord_c(Geodetic, ECEF)
|
|
LocalCoord_c(Geodetic)
|
|
LocalCoord_c(ECEF)
|
|
|
|
NED ecef2ned(ECEF)
|
|
ECEF ned2ecef(NED)
|
|
NED geodetic2ned(Geodetic)
|
|
Geodetic ned2geodetic(NED)
|
|
|
|
cdef extern from "coordinates.hpp":
|
|
pass
|