robot_localization error in odometry with high pitch and tf wrong time

asked 2021-11-16 14:29:38 -0500

Nachum gravatar image

updated 2021-11-17 01:58:13 -0500

Hi

I have a robot that can move only on a plane (x-y body) but at a very steep plane. when I'm using robot localization package and I have very high pitch ( >70 deg) I get a velocity on Z body which gives a big error on position.

1) How can I use 3d localization but prevent z body axes velocity?

2) The tf of ekf_localization_node is coming at time zero, how can that be fixed?

thanks

image description

edit retag flag offensive close merge delete

Comments

Hi Nachum, I do not understand what you mean by "a robot that can move only on a plane (x-y body) but at a very steep plane.". Can you explain it a bit further? Perhaps upload a photo?

janindu gravatar image janindu  ( 2021-11-17 01:47:40 -0500 )edit

let's assume a car, it only moves forward but I don't want to use 2d mode because it drives up a very steep angle so my height changes dramatically

Nachum gravatar image Nachum  ( 2021-11-17 05:52:00 -0500 )edit

Hi @Nachum, I read this paper that I think deals with a similar challenge in the agricultural environment, the paper proposes the use of VineSLAM that not only uses localization but uses topological information.

osilva gravatar image osilva  ( 2021-11-17 12:22:34 -0500 )edit

You can configure take the Z velocity in body frame = 0 as a measurement. Have you tried that? http://docs.ros.org/en/noetic/api/rob...

As for the second question, are all tfs shown on the image published by nodes running on the same computer?

janindu gravatar image janindu  ( 2021-11-17 18:22:35 -0500 )edit

@janindu I tried it but i have an altitude measurement which I assume causes that velocity. all the nodes are on the same computer

Nachum gravatar image Nachum  ( 2021-11-21 13:58:56 -0500 )edit