"guess_frame_id" is set, but guess cannot be computed between frames "odom" -> "base_link"

classic Classic list List threaded Threaded
12 messages Options
Reply | Threaded
Open this post in threaded view
|

"guess_frame_id" is set, but guess cannot be computed between frames "odom" -> "base_link"

Masoumeh
This post was updated on .
hi mattieu,

I have an error after launching rtabmap in the mapping mode:
new_error.png

[ WARN] [1623172849.360722748]: odometry: Could not get transform from odom to base_link (stamp=1623172849.122937) after 0.200000 seconds ("wait_for_transform_duration"=0.200000)! Error="Lookup would require extrapolation into the future.  Requested time 1623172849.122937202 but the latest data is at time 1623172849.021940947, when looking up transform from frame [base_link] to frame [odom]. canTransform returned after 0.201579 timeout was 0.2."
[ERROR] [1623172849.360840693]: "guess_frame_id" is set, but guess cannot be computed between frames "odom" -> "base_link". Aborting odometry update...
how can i fix it? it shows a lot of times.

i have  the following error as well:
[ERROR] [1623059725.792736052]: /rtabmap/icp_odometry is already receiving scans on "/scan", but also just received a cloud on "/velodyne_points". Both subscribers cannot be used at the same time! Disabling cloud subscriber.

how can i fix it?
error_.png


thanks
Reply | Threaded
Open this post in threaded view
|

Re: "guess_frame_id" is set, but guess cannot be computed between frames "odom" -> "base_link"

Masoumeh
This post was updated on .
Dear mattieu

the above error, which i mentioned is for the time that i have the following setting:
<arg name="navigation"   default="true"/>
  <arg name="localization" default="false"/>
  <arg name="icp_odometry" default="true"/>
  <arg name="rtabmapviz"   default="false"/>
  <arg name="camera"       default="false"/>
  <arg name="lidar2d"      default="false"/>
  <arg name="lidar3d"      default="true"/>
  <arg name="lidar3d_ray_tracing" default="true"/>
  <arg name="slam2d"       default="true"/>

here i have attached the tf frame as well.
framess.pdf

the average rate have too much difference.
is the problem because of this? how much they should be?


but when i put the parmeter like this:
<arg name="navigation"   default="true"/>
  <arg name="localization" default="false"/>
  <arg name="icp_odometry" default="false"/>
  <arg name="rtabmapviz"   default="false"/>
  <arg name="camera"       default="false"/>
  <arg name="lidar2d"      default="false"/>
  <arg name="lidar3d"      default="true"/>
  <arg name="lidar3d_ray_tracing" default="true"/>
  <arg name="slam2d"       default="true"/>

I receive the following error:
[ WARN] [1623234196.764057009]: /rtabmap/rtabmap: Did not receive data since 5 seconds! Make sure the input topics are published ("$ rostopic hz my_topic") and the timestamps in their header are set. If topics are coming from different computers, make sure the clocks of the computers are synchronized ("ntpdate"). If topics are not published at the same rate, you could increase "queue_size" parameter (current=10).
/rtabmap/rtabmap subscribed to (approx sync):
   /odometry/filtered \
   /velodyne_points


the tf frame of this situation is:   frames.pdf

the only difference of these two condition is ICP_odometry, that in the first one i have considered and in the second one, i did not use that.

what do you think? is there any way to fix this issue?
thanks a lot
Reply | Threaded
Open this post in threaded view
|

Re: "guess_frame_id" is set, but guess cannot be computed between frames "odom" -> "base_link"

Masoumeh
hi everyone,

would you please help me to resolve this issue? I want to use ICP_odometry, but it takes an error :  "guess_frame_id" is set, but guess cannot be computed between frames "odom" -> "base_link". Aborting odometry update...

I would be grateful if anybody can support
thanks
Reply | Threaded
Open this post in threaded view
|

Re: "guess_frame_id" is set, but guess cannot be computed between frames "odom" -> "base_link"

Mikor
Hello,

check if your tf tree is connected if not then try to pass a tf between them something like rosrun tf2_ros 0 0 0 0 0 0 1 odom odom_guess_frame

I hope this do the trick.
Reply | Threaded
Open this post in threaded view
|

Re: "guess_frame_id" is set, but guess cannot be computed between frames "odom" -> "base_link"

Masoumeh
This post was updated on .
Dear Mikor,

thanks for your replying,
one question: I don't have any camera, so is it ok to use icp-odometry? yes?
because icp_odometry deals with aligning point clouds. but it seems icp_odometry works when we have camera!!! YES?!

and regarding the frame, i should say that i have the tf tree:  framess.pdf
however, i have this error:
[ERROR] [1623172849.360840693]: "guess_frame_id" is set, but guess cannot be computed between frames "odom" -> "base_link". Aborting odometry update...

thanks
Reply | Threaded
Open this post in threaded view
|

Re: "guess_frame_id" is set, but guess cannot be computed between frames "odom" -> "base_link"

Masoumeh
hi

what is the correct setting for odom_frame_id and guess_frame_id. i have set as these:
rtabmap_minerobot_realtime.launch
mainrtabmap.launch

would you please tell me in which part i should do modifiction? I got confused about the rigt setting for odom_frame_id and guess_frame_id

thanks
Reply | Threaded
Open this post in threaded view
|

Re: "guess_frame_id" is set, but guess cannot be computed between frames "odom" -> "base_link"

matlabbe
Administrator
Don't set guess_frame_id if you don't have external odometry. icp_odometry can work without camera.

cheers,
Mathieu
Reply | Threaded
Open this post in threaded view
|

Re: "guess_frame_id" is set, but guess cannot be computed between frames "odom" -> "base_link"

Masoumeh
what are the external odometry?

if i do not set guess-frame-id, i have error and icp-odometry cannot be added to the tf-tree.

Reply | Threaded
Open this post in threaded view
|

Re: "guess_frame_id" is set, but guess cannot be computed between frames "odom" -> "base_link"

matlabbe
Administrator
What is the error?
Reply | Threaded
Open this post in threaded view
|

Re: "guess_frame_id" is set, but guess cannot be computed between frames "odom" -> "base_link"

Masoumeh
This post was updated on .
when i put the defult value of icp_odometry as TRUE, then i had the following error:
new_error.png

I have another error, that i donot know how can i stop one of them, as i understood, icp-odometry use scan topic, but i donot know why sometime /velodyne-point, is given as input for icp-odometry:
[ERROR] [1623059725.792736052]: /rtabmap/icp_odometry is already receiving scans on "/scan", but also just received a cloud on "/velodyne_points". Both subscribers cannot be used at the same time! Disabling cloud subscriber.

kind Regards
Reply | Threaded
Open this post in threaded view
|

Re: "guess_frame_id" is set, but guess cannot be computed between frames "odom" -> "base_link"

matlabbe
Administrator
Hi,

I cannot reproduce the error when using this launch file: https://github.com/introlab/rtabmap_ros/blob/master/launch/demo/demo_husky.launch

Your tf tree seems ok.

For the scan error, there was indeed an issue with how rtabmap.launch is used in your launch. I fixed this in this launch file, you may do the same for your launch.

Also note there is this warning with that simulation:
[ WARN] [1626278859.153693877, 1346.960000000]: Odometry: Detected not valid consecutive stamps (previous=1346.940000s new=1346.940000s). New stamp should be always greater than previous stamp. This new data is ignored.
The velodyne_points is indeed published two times with same timestamp, not sure where the bug is coming from.

cheers,
Mathieu
Reply | Threaded
Open this post in threaded view
|

Re: "guess_frame_id" is set, but guess cannot be computed between frames "odom" -> "base_link"

Masoumeh
dear mattieu,

if i want to use guess, what should i do?
 how can i resolve this error?

May i sent the bag file with the related launch files?
thanks