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

Warning about TF to MSG

asked 2013-06-17 10:03:11 -0500

Jia gravatar image

updated 2013-06-17 10:44:26 -0500

When I run viso2 mono_odometer I get warnings like

TF to MSG: Quaternion Not Properly Normalized.

I find no translation happens when I move the camera tf are all zeros. Is that because of this warning, which prevent the node to publish tf to odom itself?

edit retag flag offensive close merge delete


Please at least copy and paste the warnings so we can help you. Also specific instructions about how to reproduce your problem would be helpful.

tfoote gravatar image tfoote  ( 2013-06-17 10:22:42 -0500 )edit

sry, I did paste the warning but it didn't show. Now it should be fine.

Jia gravatar image Jia  ( 2013-06-17 10:45:16 -0500 )edit

Hi Jia! Can you show the last pose messages before that warning?

Miquel Massot gravatar image Miquel Massot  ( 2013-06-30 22:12:42 -0500 )edit

Hi Jia, did you find an answer for this issue? I am having the same problem, even though my system does not present any of the direct limitations of viso2_ros (ie, it is moving forward, contains a ground plane, etc). Thanks for any hints!

pvfloripa gravatar image pvfloripa  ( 2013-07-04 18:57:30 -0500 )edit

3 Answers

Sort by ยป oldest newest most voted

answered 2013-09-24 10:32:29 -0500

chenling34401 gravatar image

With a deep investigation into the source code of viso2, my colleague and I finally solved this issue by calling a service called resetPose. So basically, as soon as the node mono_odometer has been brought up, open a new terminal and type "rosservice call /mono_odometer/reset_pose". For more information, please refer to the reset_pose service callback function which is in odometer_pose.h file. Hope this answer will help those who have the same issue as stated above.

edit flag offensive delete link more

answered 2013-06-17 11:05:47 -0500

tfoote gravatar image

A quaternion must have the sum of the squares of all 4 values add up to 1. Make sure you are setting a valid quaternion.

edit flag offensive delete link more

answered 2013-07-29 19:11:45 -0500

Hi, I am having the same issue. I found that libviso2 is giving the apparently correct delta_transform (in odometer_base.h). However, the output of

tf::Transform delta_base_transform = current_base_to_sensor_ * delta_transform * current_base_to_sensor_.inverse();

is zero, even though the right side of the equation seems valid. Am I not initializing something properly?


edit flag offensive delete link more

Question Tools

1 follower


Asked: 2013-06-17 10:03:11 -0500

Seen: 9,441 times

Last updated: Sep 24 '13