Function fuse_models::common::processDifferentialPoseWithTwistCovariance
Defined in File sensor_proc.hpp
Function Documentation
Extracts relative 2D pose data from a PoseWithCovarianceStamped and adds that data to a fuse Transaction.
This method computes the delta between two poses and creates the required fuse variables and constraints, and then adds them to the given
transaction. Only 2D data is used. The pose delta is calculated aspose_relative = pose_absolute1^-1 * pose_absolute2
Additionally, the twist covariance of the last message is used to compute the relative pose covariance using the time difference between the pose_absolute2 and pose_absolute1 time stamps. This assumes the pose measurements are dependent. A small minimum relative covariance is added to avoid getting a zero or ill-conditioned covariance. This could happen if the twist covariance is very small, e.g. when the twist is zero.
- Parameters:
source – [in] - The name of the sensor or motion model that generated this constraint
device_id – [in] - The UUID of the machine
pose1 – [in] - The first (and temporally earlier) PoseWithCovarianceStamped message
pose2 – [in] - The second (and temporally later) PoseWithCovarianceStamped message
twist – [in] - The second (and temporally later) TwistWithCovarianceStamped message
minimum_pose_relative_covariance – [in] - The minimum pose relative covariance that is always added to the resulting pose relative covariance
twist_covariance_offset – [in] - The twist covariance offset that was added to the twist covariance and must be substracted from it before computing the pose relative covariance from it
loss – [in] - The loss function for the 2D pose constraint generated
validate – [in] - Whether to validate the measurements or not. If the validation fails no constraint is added
transaction – [out] - The generated variables and constraints are added to this transaction
- Returns:
true if any constraints were added, false otherwise