13 std::uniform_real_distribution<float> &dist,
const RotMat<float> &R_body) {
23 .template cast<float>();
43 computeAcceleration(robotState, robotStateD, data->
accelerometer,
44 _vectornavAccelerometerDistribution, R_body);
49 robotState.
bodyVelocity.template head<3>().
template cast<float>();
52 if (_vectorNavOrientationNoise) {
67 data->
quat[3] = ori_quat[0];
68 data->
quat[0] = ori_quat[1];
69 data->
quat[1] = ori_quat[2];
70 data->
quat[2] = ori_quat[3];
void updateCheaterState(const FBModelState< T > &robotState, const FBModelStateDerivative< T > &robotStateD, CheaterState< T > &state)
typename Eigen::Matrix< T, 4, 1 > Quat
typename Eigen::Matrix< T, 3, 1 > Vec3
auto spatialToLinearAcceleration(const Eigen::MatrixBase< T > &a, const Eigen::MatrixBase< T2 > &v)
Vec3< float > accelerometer
Quat< typename T::Scalar > integrateQuat(const Eigen::MatrixBase< T > &quat, const Eigen::MatrixBase< T2 > &omega, T3 dt)
void updateVectornav(const FBModelState< T > &robotState, const FBModelStateDerivative< T > &robotStateD, VectorNavData *data)
void computeAcceleration(const FBModelState< T > &robotState, const FBModelStateDerivative< T > &robotStateD, Vec3< float > &acc, std::uniform_real_distribution< float > &dist, const RotMat< float > &R_body)
Mat3< typename T::Scalar > quaternionToRotationMatrix(const Eigen::MatrixBase< T > &q)
typename Eigen::Matrix< T, 3, 3 > RotMat
void fillEigenWithRandom(Eigen::MatrixBase< T > &v, std::mt19937 &gen, std::uniform_real_distribution< typename T::Scalar > &dist)
EIGEN_MAKE_ALIGNED_OPERATOR_NEW Quat< T > bodyOrientation
Utility functions for manipulating spatial quantities.
MX f(const MX &x, const MX &u)