Go to the documentation of this file.
18 namespace abc_eqf_lib {
20 using namespace gtsam;
76 }
else if (
B.size() == 0) {
81 result.block(0, 0,
A.rows(),
A.cols()) =
A;
82 result.block(
A.rows(),
A.cols(),
B.rows(),
B.cols()) =
B;
97 for (
int i = 1;
i <
n;
i++) {
112 static Input random();
132 std::array<Rot3, N>
S;
136 const std::array<Rot3, N>&
S = std::array<Rot3, N>{})
141 std::array<Rot3, N> S_id{};
157 eps.segment<3>(3) =
other.b -
b;
160 for (
size_t i = 0;
i <
N;
i++) {
174 throw std::invalid_argument(
175 "Vector size does not match state dimensions");
179 std::array<Rot3, N> newS;
180 for (
size_t i = 0;
i <
N;
i++) {
183 return State(newR, newB, newS);
199 std::array<Rot3, N>
B;
203 const std::array<Rot3, N>& B = std::array<Rot3, N>{})
204 :
A(A),
a(
a),
B(B) {}
208 std::array<Rot3, N> newB;
209 for (
size_t i = 0;
i <
N;
i++) {
217 Matrix3 Ainv =
A.inverse().matrix();
218 std::array<Rot3, N> Binv;
219 for (
size_t i = 0;
i <
N;
i++) {
220 Binv[
i] =
B[
i].inverse();
227 std::array<Rot3, N>
B;
235 throw std::invalid_argument(
"Vector size mismatch for group exponential");
240 std::array<Rot3, N>
B;
241 for (
size_t i = 0;
i <
N;
i++) {
Class between(const Class &g) const
Vector localCoordinates(const State< N > &other) const
G(const Rot3 &A=Rot3::Identity(), const Matrix3 &a=Matrix3::Zero(), const std::array< Rot3, N > &B=std::array< Rot3, N >{})
List of SO(3) elements for calibration.
Matrix< SCALARB, Dynamic, Dynamic, opt_B > B
Expression< T > between(const Expression< T > &t1, const Expression< T > &t2)
typedef and functions to augment Eigen's VectorXd
Array< double, 1, 3 > e(1./3., 0.5, 2.)
Matrix3 a
First SO(3) element.
typedef and functions to augment Eigen's MatrixXd
static Rot3 Identity()
identity rotation for group operation
State class representing the state of the Biased Attitude System.
set noclip points set clip one set noclip two set bar set border lt lw set xdata set ydata set zdata set x2data set y2data set boxwidth set dummy x
G inv() const
Group inverse.
static State identity()
Identity function.
static G identity(int n)
Identity element.
Matrix3 Sigma
Known direction in global frame.
static Rot3 Expmap(const Vector3 &v, OptionalJacobian< 3, 3 > H={})
Matrix< SCALARA, Dynamic, Dynamic, opt_A > A
3D rotation represented as a rotation matrix or quaternion
bool checkNorm(const Vector3 &x, double tol=1e-3)
Check if a vector is a unit vector.
Rot3 is a 3D rotation represented as a rotation matrix if the preprocessor symbol GTSAM_USE_QUATERNIO...
internal::DoglegState State
State(const Rot3 &R=Rot3::Identity(), const Vector3 &b=Vector3::Zero(), const std::array< Rot3, N > &S=std::array< Rot3, N >{})
Constructor.
G operator*(const G< N > &other) const
Group multiplication.
Matrix repBlock(const Matrix &A, int n)
Repeat a block matrix n times along the diagonal.
std::array< Rot3, N > B
so(3) element (skew-symmetric matrix)
static G exp(const Vector &x)
Exponential map of the tangent space elements to the group.
static Matrix3 Hat(const Vector3 &xi)
Hat maps from tangent vector to Lie algebra.
static Matrix3 ExpmapDerivative(const Vector3 &x)
Derivative of Expmap.
bool hasNaN(const Vector3 &vec)
Check if vector contains NaN values.
JacobiRotation< float > G
Array< int, Dynamic, 1 > v
Matrix blockDiag(const Matrix &A, const Matrix &B)
Create a block diagonal matrix from two matrices.
State retract(const Vector &v) const
static Vector3 Logmap(const Rot3 &R, OptionalJacobian< 3, 3 > H={})
static Vector3 Vee(const Matrix3 &X)
Vee maps from Lie algebra to tangent vector.
Represents a 3D point on a unit sphere.
Rot2 R(Rot2::fromAngle(0.1))
Unit3 d
Measurement direction in sensor frame.
for(size_t i=1;i< poses.size();++i)
EIGEN_DEFAULT_DENSE_INDEX_TYPE Index
The Index type as used for the API.
gtsam
Author(s):
autogenerated on Wed May 28 2025 03:00:48