Ask Your Question
0

Warning about TF to MSG

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

Jia gravatar image

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

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

Comments

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

tfoote gravatar imagetfoote ( 2013-06-17 10:22:42 -0600 )edit

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

Jia gravatar imageJia ( 2013-06-17 10:45:16 -0600 )edit

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

Miquel Massot gravatar imageMiquel Massot ( 2013-06-30 22:12:42 -0600 )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 imagepvfloripa ( 2013-07-04 18:57:30 -0600 )edit

3 Answers

Sort by ยป oldest newest most voted
0

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

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
0

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

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?

Thanks!

edit flag offensive delete link more
0

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

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

Your Answer

Please start posting anonymously - your entry will be published after you log in or create a new account.

Add Answer

Question Tools

Stats

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

Seen: 5,784 times

Last updated: Sep 24 '13