7 #define PRISM_PDF_DIM 6 8 #define PRISM_CONDITIONAL_VAR_DIM 4 9 #define PRISM_NUM_CONDITIONAL_ARGS 2 25 ColumnVector state = ConditionalArgumentGet(0);
27 double phi = state(1);
28 double theta = state(2);
32 expected_pose(1) = pv *
cos(phi) *
sin(theta);
33 expected_pose(2) = pv * sin(phi) * sin(theta);
34 expected_pose(3) = pv *
cos(theta);
35 expected_pose(4) = 0.;
36 expected_pose(5) = 0.;
37 expected_pose(6) = 0.;
39 return expected_pose + this->AdditiveNoiseMuGet();
46 double phi = ConditionalArgumentGet(0)(1);
47 double theta = ConditionalArgumentGet(0)(2);
48 double pv = ConditionalArgumentGet(0)(3);
52 dfx(2, 1) = pv*sin(theta)*
cos(phi);
53 dfx(1, 2) = pv*cos(theta)*cos(phi);
54 dfx(2, 2) = pv*cos(theta)*sin(phi);
55 dfx(3, 2) = -pv*sin(theta);
56 dfx(1, 3) = sin(theta)*cos(phi);
57 dfx(2, 3) = sin(theta)*sin(phi);
58 dfx(3, 3) = cos(theta);
64 "The derivative is not implemented for the " << i <<
"th conditional argument");
#define ROS_ERROR_STREAM_NAMED(name, args)
virtual MatrixWrapper::ColumnVector ExpectedValueGet() const
Get the expected value E[x] of the pdf Get low order statistic (Expected Value) of this AnalyticPdf...
virtual ~NonLinearPrismaticMeasurementPdf()
Destructor.
#define PRISM_NUM_CONDITIONAL_ARGS
virtual MatrixWrapper::Matrix dfGet(unsigned int i) const
Returns derivative from function to n-th conditional variable.
NonLinearPrismaticMeasurementPdf(const Gaussian &additiveNoise)
Constructor.
#define PRISM_CONDITIONAL_VAR_DIM
INLINE Rall1d< T, V, S > cos(const Rall1d< T, V, S > &arg)
MatrixWrapper::Matrix dfx
INLINE Rall1d< T, V, S > sin(const Rall1d< T, V, S > &arg)