30 double translationSensorStdDev,
double rotationSensorStdDev,
31 double translationVelocitySensorStdDev,
double rotationVelocitySensorStdDev)
33 pose.head(2) = initialPosition;
34 pose(2) = initialRotation;
35 Eigen::Vector4d motionNoiseCov;
36 motionNoiseCov << translationVelocitySensorStdDev* translationVelocitySensorStdDev, translationVelocitySensorStdDev* translationVelocitySensorStdDev,
37 rotationVelocitySensorStdDev* rotationVelocitySensorStdDev, rotationVelocitySensorStdDev* rotationVelocitySensorStdDev;
42 Eigen::Vector4d measurementNoiseCov;
43 measurementNoiseCov << translationSensorStdDev* translationSensorStdDev, translationSensorStdDev* translationSensorStdDev,
44 rotationSensorStdDev* rotationSensorStdDev, rotationSensorStdDev* rotationSensorStdDev;
45 Gaussian measurementNoise(Eigen::Vector4d::Zero(), measurementNoiseCov.asDiagonal());
52 state.
setCovariance(Eigen::Vector4d(translationSensorStdDev * translationSensorStdDev * 10,
53 translationSensorStdDev * translationSensorStdDev * 10,
54 rotationSensorStdDev * rotationSensorStdDev * 10,
55 rotationSensorStdDev * rotationSensorStdDev * 10).asDiagonal());
60 Eigen::Matrix2d rotation = Eigen::Rotation2Dd(
pose(2)).matrix();
61 Eigen::Vector2d globalV0 = rotation * Eigen::Vector2d(velX, velY);
62 Eigen::Vector4d currentVelocity;
63 currentVelocity << globalV0(0), globalV0(1), -velTheta* sin(
pose(2)), velTheta* cos(
pose(2));
66 auto posDelta = currentVelocity * deltaT.toSecondsDouble();
71 Gaussian adjustedMotionNoise(Eigen::Vector4d::Zero(), adjustedMotionNoiseCov);
86 Eigen::Vector4d pose2d =
transformPose(Eigen::Vector3d(x, y, alpha));
101 return pose.head<2>();
111 Eigen::Matrix3d result;
130 Eigen::Vector4d pose2d;
143 ori = Eigen::AngleAxisd(
angle, Eigen::Vector3d::UnitZ());
144 Eigen::Vector3d result;