#include <RBFilter.h>
Public Types | |
enum | PredictionHypothesis { BASED_ON_VELOCITY = 0, BASED_ON_BRAKING_EVENT = 1, BASED_ON_KINEMATICS = 2 } |
typedef std::vector< Eigen::Matrix4d > | Trajectory |
Public Member Functions | |
virtual void | addPredictedFeatureLocation (const Feature::Location &predicted_location_velocity, const Feature::Location &predicted_location_brake, const Feature::Id feature_id) |
virtual void | addSupportingFeature (Feature::Id supporting_feat_id) |
RBFilter::Ptr | clone () const |
virtual void | correctState () |
virtual void | doNotUsePredictionFromHigherLevel () |
virtual void | estimateBestPredictionAndSupportingFeatures () |
FeatureCloudPCLwc::Ptr | getFeaturesAtBirth () |
virtual FeaturesDataBase::Ptr | getFeaturesDatabase () const |
FeatureCloudPCLwc::Ptr | getFeaturesPredicted () |
virtual RB_id_t | getId () const |
virtual Feature::Location | getIntialLocationOfCentroid () const |
virtual void | GetLocationOfFeatureAtBirthOfRB (Feature::Ptr feature, bool contemporary_last_feat_loc_and_last_pose_in_trajectory, Feature::Location &location_at_birth) const |
Get the location of the feature at the frame when the RB was detected first. If the feature is "younger" we use the previous motion of the RB to estimate what would have been the location of the feature at the initial frame. More... | |
virtual int | getNumberSupportingFeatures () const |
virtual Eigen::Matrix4d | getPose () const |
virtual Eigen::Matrix< double, 6, 6 > | getPoseCovariance () const |
virtual geometry_msgs::TwistWithCovariancePtr | getPoseECWithCovariance () const |
virtual geometry_msgs::PoseWithCovariancePtr | getPoseWithCovariance () const |
virtual FeatureCloudPCLwc | getPredictedMeasurement (PredictionHypothesis hypothesis=BASED_ON_VELOCITY) |
virtual std::vector< Feature::Id > | getSupportingFeatures () const |
virtual std::vector< Eigen::Matrix4d > | getTrajectory () const |
virtual Eigen::Twistd | getVelocity () const |
virtual Eigen::Matrix< double, 6, 6 > | getVelocityCovariance () const |
virtual geometry_msgs::TwistWithCovariancePtr | getVelocityWithCovariance () const |
virtual void | Init () |
virtual void | integrateShapeBasedPose (const geometry_msgs::TwistWithCovariance twist_refinement, double pose_time_elapsed_ns) |
virtual void | PredictFeatureLocation (Feature::Ptr feature, const Eigen::Matrix4d &predicted_pose, bool contemporary_last_feat_loc_and_last_pose_in_trajectory, Feature::Location &predicted_location, bool publish_locations=false) const |
virtual void | predictMeasurement () |
Second step when updating the filter. The next measurement is predicted from the predicted next state. More... | |
virtual void | predictState (double time_interval_ns=-1.) |
RBFilter () | |
RBFilter (double loop_period_ns, const std::vector< Eigen::Matrix4d > &trajectory, const Eigen::Twistd &initial_velocity, FeaturesDataBase::Ptr feats_database, double estimation_error_threshold) | |
RBFilter (const RBFilter &rbm) | |
void | resetFeaturesAtBirth () |
void | resetFeaturesPredicted () |
virtual void | setCovarianceSystemAccelerationRx (double v) |
virtual void | setCovarianceSystemAccelerationRy (double v) |
virtual void | setCovarianceSystemAccelerationRz (double v) |
virtual void | setCovarianceSystemAccelerationTx (double v) |
virtual void | setCovarianceSystemAccelerationTy (double v) |
virtual void | setCovarianceSystemAccelerationTz (double v) |
virtual void | setEstimationThreshold (double v) |
virtual void | setFeaturesDatabase (FeaturesDataBase::Ptr feats_database) |
virtual void | setMeasurementDepthFactor (double v) |
virtual void | setMinCovarianceMeasurementX (double v) |
virtual void | setMinCovarianceMeasurementY (double v) |
virtual void | setMinCovarianceMeasurementZ (double v) |
virtual void | setMinNumberOfSupportingFeaturesToCorrectPredictedState (int v) |
virtual void | setMotionConstraint (int motion_constraint) |
Set a constraint for the motion of the RB Right now this is only used by the StaticEnvironmentFilter. More... | |
virtual void | setNumberOfTrackedFeatures (int v) |
virtual void | setPredictedState (omip_msgs::RigidBodyPoseAndVelMsg hypothesis) |
virtual void | setPriorCovariancePose (double v) |
virtual void | setPriorCovarianceVelocity (double v) |
virtual | ~RBFilter () |
Public Attributes | |
EIGEN_MAKE_ALIGNED_OPERATOR_NEW typedef boost::shared_ptr< RBFilter > | Ptr |
Protected Member Functions | |
virtual void | _initializeAuxiliarMatrices () |
virtual RBFilter * | doClone () const |
Static Protected Attributes | |
static RB_id_t | _rb_id_generator = 1 |
Class RBFilter Represents one moving rigid body Tracks the pose of this rigid body (state) Estimates the Features that move coherently with the pose and velocity of this rigid body and uses them to update the state
Definition at line 98 of file RBFilter.h.
typedef std::vector<Eigen::Matrix4d> omip::RBFilter::Trajectory |
Definition at line 108 of file RBFilter.h.
Enumerator | |
---|---|
BASED_ON_VELOCITY | |
BASED_ON_BRAKING_EVENT | |
BASED_ON_KINEMATICS |
Definition at line 110 of file RBFilter.h.
RBFilter::RBFilter | ( | ) |
Default constructor
Definition at line 30 of file RBFilter.cpp.
RBFilter::RBFilter | ( | double | loop_period_ns, |
const std::vector< Eigen::Matrix4d > & | trajectory, | ||
const Eigen::Twistd & | initial_velocity, | ||
FeaturesDataBase::Ptr | feats_database, | ||
double | estimation_error_threshold | ||
) |
Constructor
first_transform | - Twist of the initial pose of the body in SF |
initial_velocity | - Twist of the initial velocity of the body in SF |
feats_database | - Shared pointer to the database of Features |
estimation_error_threshold | - Maximum error allowed between predicted and measured Feature location to consider that it still supports this RBM |
Definition at line 45 of file RBFilter.cpp.
|
virtual |
Destructor
Definition at line 87 of file RBFilter.cpp.
RBFilter::RBFilter | ( | const RBFilter & | rbm | ) |
Copy constructor
rbm | - Object constant reference to be copied |
Definition at line 70 of file RBFilter.cpp.
|
protectedvirtual |
NOTE: The system model predicts the next state based on the previous step We maintain in parallel two system models:
Definition at line 781 of file RBFilter.cpp.
|
virtual |
predicted_location_velocity | |
predicted_location_brake | |
feature_id |
Definition at line 550 of file RBFilter.cpp.
|
virtual |
Add the ID of a feature to the list of supporting features of this RB
supporting_feat_id | - ID of the Feature that now supports this RB |
Reimplemented in omip::StaticEnvironmentFilter.
Definition at line 490 of file RBFilter.cpp.
|
inline |
Clones this RBFilter
Definition at line 153 of file RBFilter.h.
|
virtual |
Correct the predicted pose of the RB using the Features that support this RB
Reimplemented in omip::StaticEnvironmentFilter.
Definition at line 191 of file RBFilter.cpp.
|
inlineprotectedvirtual |
Definition at line 539 of file RBFilter.h.
|
inlinevirtual |
Definition at line 409 of file RBFilter.h.
|
virtual |
Estimate the Features that support this RB (Features that move with the motion of this RB) There are two options: to test all Features or to test the previously supporting Features only (second option implemented)
Definition at line 373 of file RBFilter.cpp.
|
inline |
Definition at line 414 of file RBFilter.h.
|
virtual |
Get the Feature data base used by this RB
Definition at line 776 of file RBFilter.cpp.
|
inline |
Definition at line 419 of file RBFilter.h.
|
virtual |
|
inlinevirtual |
Definition at line 404 of file RBFilter.h.
|
virtual |
Get the location of the feature at the frame when the RB was detected first. If the feature is "younger" we use the previous motion of the RB to estimate what would have been the location of the feature at the initial frame.
feature | - Feature whose intial location we want to know |
contemporary_last_feat_loc_and_last_pose_in_trajectory | - True if the last location and the last entry of the _trajectory vector are of the same time step This is the case only at the end of the loop, after the correction step (when we predict the next feature location. |
location_at_birth | - Location of the Feature at the first frame that the body was tracked |
Definition at line 616 of file RBFilter.cpp.
|
virtual |
Get the number of the current Features support this RB
Definition at line 771 of file RBFilter.cpp.
|
virtual |
Get the current believed pose in homogeneous matrix representation
Definition at line 665 of file RBFilter.cpp.
|
virtual |
Get the covariance of the current believed pose
hypothesis | - hypothesis from which we want to get the covariance of the believed pose: velocity-update or brake-event update |
Definition at line 670 of file RBFilter.cpp.
|
virtual |
Get the current believed pose in exponential coordinates and its covariance (6x6) as a shared pointer to a TwistWithCovariance ROS message
Definition at line 704 of file RBFilter.cpp.
|
virtual |
Get the current believed pose and its covariance (6x6) as a shared pointer to a PoseWithCovariance ROS message
Definition at line 685 of file RBFilter.cpp.
|
virtual |
Get a point cloud with the predicted next 3D locations of the supporting Features of this RB supposing the RB moves with the tracked velocity Implements the feedback to lower inference levels (FeatureTracker)
Definition at line 748 of file RBFilter.cpp.
|
virtual |
Get the IDs of the current Features support this RB
Definition at line 766 of file RBFilter.cpp.
|
virtual |
Get the temporal series of poses of this RB
Definition at line 743 of file RBFilter.cpp.
|
virtual |
Get the current believed velocity in exponential coordinates
hypothesis | - hypothesis from which we want to get the believed velocity: velocity-update or brake-event update (the later with be zero) |
Definition at line 675 of file RBFilter.cpp.
|
virtual |
Get the covariance of the current believed velocity
hypothesis | - hypothesis from which we want to get the covariance of the believed velocity: velocity-update or brake-event update |
Definition at line 680 of file RBFilter.cpp.
|
virtual |
Get the current believed velocity and its covariance (6x6) as a shared pointer to a TwistWithCovariance ROS message
hypothesis | - hypothesis from which we want to get the believed twist: velocity-update or brake-event update |
Definition at line 724 of file RBFilter.cpp.
|
virtual |
Reimplemented in omip::StaticEnvironmentFilter.
Definition at line 65 of file RBFilter.cpp.
|
virtual |
Definition at line 523 of file RBFilter.cpp.
|
virtual |
Predict the location of a Feature for one of the two possible event hypotheses
feature | - Feature whose location we want to predict using this RB |
predicted_pose | - Predicted pose as twist |
contemporary_last_feat_loc_and_last_pose_in_trajectory | - True if the last location and the last entry of the _trajectory vector are of the same time step This is the case only at the end of the loop, after the correction step (when we predict the next feature location. |
Definition at line 574 of file RBFilter.cpp.
|
virtual |
Second step when updating the filter. The next measurement is predicted from the predicted next state.
Definition at line 142 of file RBFilter.cpp.
|
virtual |
Predict the next pose of the RB based on the current pose and the current velocity
Reimplemented in omip::StaticEnvironmentFilter.
Definition at line 91 of file RBFilter.cpp.
|
inline |
Definition at line 424 of file RBFilter.h.
|
inline |
Definition at line 429 of file RBFilter.h.
|
inlinevirtual |
Definition at line 374 of file RBFilter.h.
|
inlinevirtual |
Definition at line 379 of file RBFilter.h.
|
inlinevirtual |
Definition at line 384 of file RBFilter.h.
|
inlinevirtual |
Definition at line 359 of file RBFilter.h.
|
inlinevirtual |
Definition at line 364 of file RBFilter.h.
|
inlinevirtual |
Definition at line 369 of file RBFilter.h.
|
inlinevirtual |
Definition at line 399 of file RBFilter.h.
|
virtual |
Set the Feature data base to be used by this RB
feats_database | - Shared pointer to the Feature data base |
Definition at line 569 of file RBFilter.cpp.
|
inlinevirtual |
Definition at line 354 of file RBFilter.h.
|
inlinevirtual |
Definition at line 339 of file RBFilter.h.
|
inlinevirtual |
Definition at line 344 of file RBFilter.h.
|
inlinevirtual |
Definition at line 349 of file RBFilter.h.
|
inlinevirtual |
Definition at line 394 of file RBFilter.h.
|
inlinevirtual |
Set a constraint for the motion of the RB Right now this is only used by the StaticEnvironmentFilter.
motion_constraint | Value of the motion constraint. The meaning of each value is in motion_estimation.h |
Reimplemented in omip::StaticEnvironmentFilter.
Definition at line 327 of file RBFilter.h.
|
inlinevirtual |
Definition at line 389 of file RBFilter.h.
|
virtual |
Add a new prediction of the next pose and velocity of this rigid body, computed by the higher level (JointTracker) Implements the feedback from higher inference levels (JointTracker)
twist_hyp | - Prediction of the next rigid body pose and velocity (with covariance) |
Definition at line 495 of file RBFilter.cpp.
|
inlinevirtual |
Definition at line 329 of file RBFilter.h.
|
inlinevirtual |
Definition at line 334 of file RBFilter.h.
|
protected |
Definition at line 465 of file RBFilter.h.
|
protected |
Definition at line 464 of file RBFilter.h.
|
protected |
Definition at line 466 of file RBFilter.h.
|
protected |
Definition at line 461 of file RBFilter.h.
|
protected |
Definition at line 462 of file RBFilter.h.
|
protected |
Definition at line 463 of file RBFilter.h.
|
protected |
Definition at line 472 of file RBFilter.h.
|
protected |
Definition at line 451 of file RBFilter.h.
|
protected |
Definition at line 522 of file RBFilter.h.
|
protected |
Definition at line 498 of file RBFilter.h.
|
protected |
Definition at line 521 of file RBFilter.h.
|
protected |
Definition at line 469 of file RBFilter.h.
|
protected |
Definition at line 476 of file RBFilter.h.
|
protected |
Definition at line 491 of file RBFilter.h.
|
protected |
Definition at line 537 of file RBFilter.h.
|
protected |
Definition at line 536 of file RBFilter.h.
|
protected |
Definition at line 460 of file RBFilter.h.
|
protected |
Definition at line 457 of file RBFilter.h.
|
protected |
Definition at line 458 of file RBFilter.h.
|
protected |
Definition at line 459 of file RBFilter.h.
|
protected |
Definition at line 545 of file RBFilter.h.
|
protected |
Definition at line 544 of file RBFilter.h.
|
protected |
Definition at line 479 of file RBFilter.h.
|
protected |
Definition at line 480 of file RBFilter.h.
|
protected |
Definition at line 503 of file RBFilter.h.
|
protected |
Definition at line 528 of file RBFilter.h.
|
protected |
Definition at line 534 of file RBFilter.h.
|
protected |
Definition at line 531 of file RBFilter.h.
|
protected |
Definition at line 532 of file RBFilter.h.
|
protected |
Definition at line 530 of file RBFilter.h.
|
protected |
Definition at line 525 of file RBFilter.h.
|
protected |
Definition at line 526 of file RBFilter.h.
|
protected |
Definition at line 524 of file RBFilter.h.
|
protected |
Definition at line 485 of file RBFilter.h.
|
protected |
Definition at line 502 of file RBFilter.h.
|
protected |
Definition at line 507 of file RBFilter.h.
|
protected |
Definition at line 508 of file RBFilter.h.
|
protected |
Definition at line 506 of file RBFilter.h.
|
protected |
Definition at line 486 of file RBFilter.h.
|
protected |
Definition at line 504 of file RBFilter.h.
|
protected |
Definition at line 501 of file RBFilter.h.
|
protected |
Definition at line 488 of file RBFilter.h.
|
protected |
Definition at line 511 of file RBFilter.h.
|
protected |
Definition at line 515 of file RBFilter.h.
|
protected |
Definition at line 516 of file RBFilter.h.
|
protected |
Definition at line 514 of file RBFilter.h.
|
protected |
Definition at line 489 of file RBFilter.h.
|
protected |
Definition at line 512 of file RBFilter.h.
|
protected |
Definition at line 510 of file RBFilter.h.
|
protected |
Definition at line 455 of file RBFilter.h.
|
protected |
Definition at line 456 of file RBFilter.h.
|
protected |
Definition at line 470 of file RBFilter.h.
|
staticprotected |
Definition at line 474 of file RBFilter.h.
|
protected |
Definition at line 453 of file RBFilter.h.
|
protected |
Definition at line 495 of file RBFilter.h.
|
protected |
Definition at line 496 of file RBFilter.h.
|
protected |
Definition at line 493 of file RBFilter.h.
|
protected |
Definition at line 519 of file RBFilter.h.
|
protected |
Definition at line 518 of file RBFilter.h.
|
protected |
Definition at line 482 of file RBFilter.h.
|
protected |
Definition at line 483 of file RBFilter.h.
EIGEN_MAKE_ALIGNED_OPERATOR_NEW typedef boost::shared_ptr<RBFilter> omip::RBFilter::Ptr |
Definition at line 105 of file RBFilter.h.