#include <PrismaticJointFilter.h>
Public Member Functions | |
PrismaticJointFilterPtr | clone () const |
virtual void | correctState () |
virtual void | estimateMeasurementHistoryLikelihood () |
virtual void | estimateUnnormalizedModelProbability () |
virtual JointFilterType | getJointFilterType () const |
virtual std::string | getJointFilterTypeStr () const |
virtual std::vector< visualization_msgs::Marker > | getJointMarkersInRRBFrame () const |
virtual geometry_msgs::TwistWithCovariance | getPredictedSRBDeltaPoseWithCovInSensorFrame () |
Generate a prediction about the change in pose of the second rigid body (SRB) and its covariance using the frame of sensor (SF) as observation and ref frame based on the predicted measurement and the predicted next pose of the reference rigid body (RRB) in the sensor frame (SF) More... | |
virtual geometry_msgs::TwistWithCovariance | getPredictedSRBPoseWithCovInSensorFrame () |
We use the kinematic structure to predict the next pose-twist of the second rigid body of the joint (with covariance based on the model uncertainty) in sensor frame (the frame where we track the RBs). This values will be passed to the MultiRBTracker. More... | |
virtual geometry_msgs::TwistWithCovariance | getPredictedSRBVelocityWithCovInSensorFrame () |
Generate a prediction about the velocity of the second rigid body (SRB) and its covariance using the frame of sensor (SF) as observation and ref frame based on the predicted measurement and the predicted next pose of the reference rigid body (RRB) in the sensor frame (SF) More... | |
virtual void | initialize () |
virtual void | predictMeasurement () |
virtual void | predictState (double time_interval_ns) |
First step when updating the filter. The next state is predicted from current state and system model. More... | |
EIGEN_MAKE_ALIGNED_OPERATOR_NEW | PrismaticJointFilter () |
PrismaticJointFilter (const PrismaticJointFilter &prismatic_joint) | |
virtual void | setCovarianceDeltaMeasurementLinear (double delta_meas) |
virtual | ~PrismaticJointFilter () |
Public Member Functions inherited from omip::JointFilter | |
JointFilterPtr | clone () const |
Creates a new Joint object with the same values as this one and passes its reference. More... | |
virtual double | getCovarianceOrientationPhiPhiInRRBFrame () const |
virtual double | getCovarianceOrientationPhiThetaInRRBFrame () const |
virtual double | getCovarianceOrientationThetaThetaInRRBFrame () const |
virtual JointCombinedFilterId | getJointId () const |
Get the unique Id that identifies this joint. More... | |
virtual Eigen::Vector3d | getJointOrientationRPYInRRBFrame () const |
virtual Eigen::Vector3d | getJointOrientationUnitaryVector () const |
virtual Eigen::Vector3d | getJointPositionInRRBFrame () const |
virtual double | getJointState () const |
Return the joint state. Useful for plotting and testing purposes (monitoring action) More... | |
virtual double | getJointVelocity () const |
Return the joint velocity. Useful for plotting and testing purposes (monitoring action) More... | |
virtual double | getLikelihoodOfLastMeasurements () const |
Return the estimated error of the last joint parameters by testing them against the full observed trajectory. More... | |
virtual double | getLoopPeriodNS () const |
virtual double | getModelPriorProbability () const |
Get the prior probability of this type of model/joint. We could use this in the feature if the robot is in environments where is more probable to encounter joints of certain type. More... | |
virtual double | getNormalizingTerm () |
virtual int | getNumSamplesForLikelihoodEstimation () const |
virtual double | getOrientationPhiInRRBFrame () const |
virtual double | getOrientationThetaInRRBFrame () const |
virtual Eigen::Twistd | getPredictedMeasurement () const |
Get the predicted pose-twist of the second rigid body (SRB) using the frame of the reference rigid body (RRBF) as observation and ref frame. More... | |
virtual double | getProbabilityOfJointFilter () const |
Return the normalized joint filter probability as p(Model|Data) = p(Data|Model) x p(Model) / p(Data) where SUM_all_models( p(Model|Data) ) = 1. More... | |
virtual double | getUnnormalizedProbabilityOfJointFilter () const |
Return the unnormalized joint filter probability as p(Data|Model) x p(Model) More... | |
JointFilter () | |
Constructor. More... | |
JointFilter (const JointFilter &joint) | |
Copy constructor. More... | |
virtual void | setCovarianceAdditiveSystemNoiseJointState (double sigma_sys_noise_pv) |
virtual void | setCovarianceAdditiveSystemNoiseJointVelocity (double sigma_sys_noise_pvd) |
virtual void | setCovarianceAdditiveSystemNoisePhi (double sigma_sys_noise_phi) |
virtual void | setCovarianceAdditiveSystemNoisePx (double sigma_sys_noise_px) |
virtual void | setCovarianceAdditiveSystemNoisePy (double sigma_sys_noise_py) |
virtual void | setCovarianceAdditiveSystemNoisePz (double sigma_sys_noise_pz) |
virtual void | setCovarianceAdditiveSystemNoiseTheta (double sigma_sys_noise_theta) |
virtual void | setCovarianceMeasurementNoise (double sigma_meas_noise) |
virtual void | setCovariancePrior (double prior_cov_vel) |
virtual void | setInitialMeasurement (const joint_measurement_t &initial_measurement, const Eigen::Twistd &rrb_pose_at_srb_birth_in_sf, const Eigen::Twistd &srb_pose_at_srb_birth_in_sf) |
virtual void | setJointId (JointCombinedFilterId joint_id) |
virtual void | setLikelihoodOfLastMeasurements (double likelihood) |
Set the estimated error of the last joint parameters (only useful for the disconnected joint because we do not estimate the likelihood internally) More... | |
virtual void | setLoopPeriodNS (double loop_period_ns) |
virtual void | setMeasurement (joint_measurement_t acquired_measurement, const double &measurement_timestamp_ns) |
Set the latest acquired measurement. More... | |
virtual void | setModelPriorProbability (double model_prior_probability) |
Set the prior probability of this type of model/joint. We could use this in the feature if the robot is in environments where is more probable to encounter joints of certain type. More... | |
virtual void | setNormalizingTerm (double normalizing_term) |
Set the normalizing term from the combined filter as the sum of all unnormalized probabilities. More... | |
virtual void | setNumSamplesForLikelihoodEstimation (int likelihood_sample_num) |
virtual | ~JointFilter () |
Destructor. More... | |
Protected Member Functions | |
void | _initializeEKF () |
void | _initializeMeasurementModel () |
void | _initializeSystemModel () |
virtual PrismaticJointFilter * | doClone () const |
Protected Member Functions inherited from omip::JointFilter | |
void | _initVariables (JointCombinedFilterId joint_id) |
Initialize all variables of the filter. More... | |
Definition at line 54 of file PrismaticJointFilter.h.
PrismaticJointFilter::PrismaticJointFilter | ( | ) |
Constructor
EKF internal state:
x(1) = PrismJointOrientation_phi x(2) = PrismJointOrientation_theta PrismJointOrientation is represented in spherical coords NOTE: I try to keep theta between 0 and pi and phi between 0 and two pi x(4) = PrismJointVariable x(5) = PrismJointVariable_d
EKF measurement:
m(1) = TwistLinearPart_x m(2) = TwistLinearPart_y m(3) = TwistLinearPart_z m(4) = TwistAngularPart_x m(5) = TwistAngularPart_y m(6) = TwistAngularPart_z
Definition at line 43 of file PrismaticJointFilter.cpp.
|
virtual |
Destructor
Definition at line 190 of file PrismaticJointFilter.cpp.
PrismaticJointFilter::PrismaticJointFilter | ( | const PrismaticJointFilter & | prismatic_joint | ) |
Copy constructor
Definition at line 219 of file PrismaticJointFilter.cpp.
|
protected |
Definition at line 157 of file PrismaticJointFilter.cpp.
|
protected |
Definition at line 126 of file PrismaticJointFilter.cpp.
|
protected |
Definition at line 99 of file PrismaticJointFilter.cpp.
|
inline |
Creates a new Joint object with the same values as this one and passes its reference
Definition at line 76 of file PrismaticJointFilter.h.
|
virtual |
Use the observed pose as measurement for the EKF -> Update joint parameters
Reimplemented from omip::JointFilter.
Definition at line 332 of file PrismaticJointFilter.cpp.
|
inlineprotectedvirtual |
Implements omip::JointFilter.
Definition at line 175 of file PrismaticJointFilter.h.
|
virtual |
Measure the error of the last joint parameters by testing them against samples of the full observed trajectory of the second RB relative to the reference RB
Reimplemented from omip::JointFilter.
Definition at line 409 of file PrismaticJointFilter.cpp.
|
virtual |
Reimplemented from omip::JointFilter.
Definition at line 494 of file PrismaticJointFilter.cpp.
|
virtual |
Return the joint type as one of the possible JointFilterTypes
Implements omip::JointFilter.
Definition at line 791 of file PrismaticJointFilter.cpp.
|
virtual |
Return the joint type as an string
Implements omip::JointFilter.
Definition at line 796 of file PrismaticJointFilter.cpp.
|
virtual |
Return rviz markers that show the type and parameters of the estimated joint
Implements omip::JointFilter.
Definition at line 569 of file PrismaticJointFilter.cpp.
|
virtual |
Generate a prediction about the change in pose of the second rigid body (SRB) and its covariance using the frame of sensor (SF) as observation and ref frame based on the predicted measurement and the predicted next pose of the reference rigid body (RRB) in the sensor frame (SF)
Implements omip::JointFilter.
Definition at line 255 of file PrismaticJointFilter.cpp.
|
virtual |
We use the kinematic structure to predict the next pose-twist of the second rigid body of the joint (with covariance based on the model uncertainty) in sensor frame (the frame where we track the RBs). This values will be passed to the MultiRBTracker.
Implements omip::JointFilter.
Definition at line 499 of file PrismaticJointFilter.cpp.
|
virtual |
Generate a prediction about the velocity of the second rigid body (SRB) and its covariance using the frame of sensor (SF) as observation and ref frame based on the predicted measurement and the predicted next pose of the reference rigid body (RRB) in the sensor frame (SF)
Implements omip::JointFilter.
Definition at line 283 of file PrismaticJointFilter.cpp.
|
virtual |
Reimplemented from omip::JointFilter.
Definition at line 60 of file PrismaticJointFilter.cpp.
|
virtual |
Generate a hypothesis about the pose of the second rigid body based on the pose of the reference rigid body and the internal state (joint parameters and latent variable)
Reimplemented from omip::JointFilter.
Definition at line 311 of file PrismaticJointFilter.cpp.
|
virtual |
First step when updating the filter. The next state is predicted from current state and system model.
Reimplemented from omip::JointFilter.
Definition at line 230 of file PrismaticJointFilter.cpp.
|
virtual |
Definition at line 55 of file PrismaticJointFilter.cpp.
|
protected |
Definition at line 169 of file PrismaticJointFilter.h.
|
protected |
Definition at line 167 of file PrismaticJointFilter.h.
|
protected |
Definition at line 166 of file PrismaticJointFilter.h.
|
protected |
A Prismatic Joint constrains 5 of the 6 dofs of the relative motion between RBs Prismatic Joints have only joint orientation as motion parameters The latent variable is the distance of the translation of the second RB wrt to the reference RB
Definition at line 161 of file PrismaticJointFilter.h.
|
protected |
Definition at line 164 of file PrismaticJointFilter.h.
|
protected |
Definition at line 163 of file PrismaticJointFilter.h.