ERROR: "guess_frame_id" is set, but guess cannot be computed between frames "odom" -> "base_link". Aborting odometry update...

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

ERROR: "guess_frame_id" is set, but guess cannot be computed between frames "odom" -> "base_link". Aborting odometry update...

Masoumeh
This post was updated on .
Hi matteu,
after that i run a bag file, and then rtabmap, it shows me the following error:

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

I have activeted the icp_odometry, and I have the following setting in rtabmap.launch file:

 
    <arg if="$(arg icp_odometry)" name="icp_odometry" value="true" />
    <arg if="$(arg icp_odometry)" name="odom_guess_frame_id" value="odom" />
    <arg if="$(arg icp_odometry)" name="vo_frame_id" value="icp_odom" />
    <arg unless="$(arg slam2d)"   name="wait_imu_to_init" value="true" />
    <arg if="$(arg lidar3d)"      name="odom_args" value="--Icp/CorrespondenceRatio 0.01"/>



 <arg name="frame_id"                default="base_link"/>     
  <arg name="odom_frame_id"           default="icp_odom"/>     
  <arg name="odom_frame_id_init"      default=""/>   
  <arg name="map_frame_id"            default="map"/

How can i resolve this error?
Reply | Threaded
Open this post in threaded view
|

Re: ERROR: "guess_frame_id" is set, but guess cannot be computed between frames "odom" -> "base_link". Aborting odometry update...

Masoumeh
Dear Mattieu,
in the main launch file you have set:
param name="guess_frame_id"    type="string" value="$(arg odom_guess_frame_id)"

and when i activate icp_odometry, guess_fame_id is activated as well, because:
(pay attention to the second line in the following part)
 
    <arg if="$(arg icp_odometry)" name="icp_odometry" value="true" />
    <arg if="$(arg icp_odometry)" name="odom_guess_frame_id" value="odom" />
    <arg if="$(arg icp_odometry)" name="vo_frame_id" value="icp_odom" />
    <arg unless="$(arg slam2d)"   name="wait_imu_to_init" value="true" />
    <arg if="$(arg lidar3d)"      name="odom_args" value="--Icp/CorrespondenceRatio 0.01"/>

so there is no way to not to use guess_frame_id!
what should i do to remove the error:
"guess_frame_id" is set, but guess cannot be computed between frames "odom" -> "base_link". Aborting odometry update...
Reply | Threaded
Open this post in threaded view
|

Re: ERROR: "guess_frame_id" is set, but guess cannot be computed between frames "odom" -> "base_link". Aborting odometry update...

Masoumeh
Dear AMttieu,
Would you please help me to solve this problem?

Thanks a lot
Reply | Threaded
Open this post in threaded view
|

Re: ERROR: "guess_frame_id" is set, but guess cannot be computed between frames "odom" -> "base_link". Aborting odometry update...

Masoumeh
In reply to this post by Masoumeh
hi everyone,

I get stuck in this stage, i would be grateful, if anybody can support.

Thanks a lot
Reply | Threaded
Open this post in threaded view
|

Re: ERROR: "guess_frame_id" is set, but guess cannot be computed between frames "odom" -> "base_link". Aborting odometry update...

matlabbe
Administrator
Which node is publishing /odom->/base_link? if there is no node publishing it, remove odom_guess_frame_id.
Reply | Threaded
Open this post in threaded view
|

Re: ERROR: "guess_frame_id" is set, but guess cannot be computed between frames "odom" -> "base_link". Aborting odometry update...

Masoumeh
hi,

odom --> base_link is publishing by robot-localization pkg which is stored in the robot side.

as i activate the icp-odometry, guess frame-id is also activated as well, because of the setting which you have defined:

param name="guess_frame_id"    type="string" value="$(arg odom_guess_frame_id)"

 <arg if="$(arg icp_odometry)" name="icp_odometry" value="true" />         
    <arg if="$(arg icp_odometry)" name="odom_guess_frame_id" value="odom" />      (HERE I MEAN!)
    <arg if="$(arg icp_odometry)" name="vo_frame_id" value="icp_odom" />
    <arg unless="$(arg slam2d)"   name="wait_imu_to_init" value="true" />
    <arg if="$(arg lidar3d)"      name="odom_args" value="--Icp/CorrespondenceRatio 0.01"/>

thanks
Reply | Threaded
Open this post in threaded view
|

Re: ERROR: "guess_frame_id" is set, but guess cannot be computed between frames "odom" -> "base_link". Aborting odometry update...

matlabbe
Administrator
Hi,

as i activate the icp-odometry, guess frame-id is also activated as well, because of the setting which you have defined
well I think this was for a specific example. In your case, if robot_localization is depending on icp_odometry to publish its odometry, and icp_odometry is waiting for robot_localization output, this is a deadlock.
Reply | Threaded
Open this post in threaded view
|

Re: ERROR: "guess_frame_id" is set, but guess cannot be computed between frames "odom" -> "base_link". Aborting odometry update...

Masoumeh
sorry,
I did not get what you mean!

i have activated icp-odometery in order to reduce the drift in the map, and also i have defined  "odom_frame: icp_odom" in robot_localizzation pkg, :
ekf_params.yaml

would you please tell me what is the solution?
thanks