ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange
Ask Your Question

Is there something like TransformWithCovarianceStamped?

asked 2015-09-01 16:07:40 -0600

ruffsl gravatar image

I'm using a tf::StampedTransform message to add some odometric measurements to a factor graph, and I'd like to initialize the noise model for the measurement using the covariance from the ROS package thats publishing the TF.

I had thought there was a transform message that included covariance, but perhaps I was thinking of PoseWithCovarianceStamped, as I do not see an equivalent TransformWithCovarianceStamped among the geometry message types. I guess what I'm asking is in general, how one might one refactor this to incorporate covariance information, is there perhaps a pose listener lookup? I'm using a tf_listener to look up the transform between two times, but now I also need to look up the connivance for it as well.


I'm using a tf listener to grab the relative pose between time stamps like so: tf_pose_plugin.cpp#L38

And svo for visual radiometry is publishing the tf like so: visualizer.cpp#L208
but svo also publishes PoseWithCovarianceStamped here: visualizer.cpp#L196

edit retag flag offensive close merge delete

2 Answers

Sort by ยป oldest newest most voted

answered 2015-09-01 17:44:13 -0600

tfoote gravatar image

Dealing with uncertainty in tf is definitely a problem. There are issues with representation of uncertainty to start with. Followed by how to chain uncertainty, as well as how to interpolate uncertainty.

You can probably write a method for interpolating your PoseWitthCovarianceStamped however I recommend keeping everything in the same coordinate frame otherwise you will also need to solve the covariance chaining problem.

The other reason covariance is not in the standard tf streams is that is a lot of information compared to just the core data.

edit flag offensive delete link more

answered 2019-12-05 00:29:57 -0600

Rufus gravatar image

updated 2019-12-05 01:20:03 -0600

UbiquityRobotic's fiducial_slam provides an implementation of TransformWithVariance. Not sure how accurate it is though

Additionally, MRPT has the pose_cov_ops which allows "adding" PoseWithCovariance

edit flag offensive delete link more


Perhaps you can update your answer with links to the packages?

jayess gravatar image jayess  ( 2019-12-05 20:04:32 -0600 )edit

@jayess It's already linked if you hover over the package names

Rufus gravatar image Rufus  ( 2019-12-06 01:45:35 -0600 )edit

You're right, it's not obvious though because of the inline syntax highlighting.

jayess gravatar image jayess  ( 2019-12-07 12:21:14 -0600 )edit

Question Tools


Asked: 2015-09-01 16:07:40 -0600

Seen: 614 times

Last updated: Dec 05 '19