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

tf id frame odom_combined and base_footprint does not exist error

asked 2011-07-01 11:51:59 -0500

Aidan1488 gravatar image

updated 2011-07-06 03:31:31 -0500

Hi, how are you doing guys? Hope you are doing great.

I'm writing this message because I'm having problems with the pr2_controller tutorial: "Using the base controller with odometry and transform information", even though that the first time I ran it it worked fine. Let me explain everything I've done to see if anybody can find what is wrong.

The first time I ran it it gave me this error:

drive_base_tutorial$ bin/odometry_base terminate called after throwing an instance of 'tf::LookupException' what(): Frame id /base_footprint does not exist! When trying to transform between /odom_combined and /base_footprint. Aborted

After looking a little on the internet (I after realized that this was explained on the tutorial too) I found a girl with the exact same problem and somebody told her to use:

bin/odometry_base cmd_vel:=base_controller/command

I did it and it worked. I tried to use the same instruction on the same terminal to move the robot again, but the terminal froze. I dismissed this incident believing that I couldn't use the same instruction on the same terminal two times. I closed the terminal, ended the simulation, turned off the computer and went to lunch. I came back and tried to run it again and now everything is screwed. I try to run the simulation again and I keep getting:

drive_base_tutorial$  bin/odometry_base cmd_vel:=base_controller/command terminate called after throwing an instance of 'tf::LookupException'  what():  Frame id /base_footprint does not exist! When trying to transform between /odom_combined and /base_footprint. Aborted

or even

drive_base_tutorial$  bin/odometry_base cmd_vel:=base_controller/command terminate called after throwing an instance of 'tf::LookupException' what():  Frame id /odom_combined does not exist! When trying to transform between /odom_combined and /base_footprint. Aborted

I've checked

rosrun tf tf_monitor base_footprint odom_combined

and it just keeps drawing points without telling me nothing. I've also tried:

rosrun tf tf_echo base_footprint odom_combined

and again it tells me that one of the frames do not exist. I erased the package drive_base_tutorial and did everything from the beginning and nothing. My questions are: What is this frame odom_combined? I know that base_footprint is created on the pr2 URDF, but I can't find this odom_combined anywhere. Is it in any controller of the pr2? which one?.

Can't I change it for other existing frame? on the turtlesim/tf tutorials they use a "world" frame. Is there a world frame for gazebo? if there is, how is it called? I've tried changing odom_combined for world but this frame doesn't exist either.

I've found tutorials that teaches you how to add a new frame, but is a new child frame, can I create a world frame from scratch? how?

Please help me. Also consider that I'm very new to programming so please have patience. Sorry it was such a long history, but I do really want to understand what is going on.

Thanks for you time, patience and for any help you can give me.

By ... (more)

edit retag flag offensive close merge delete

3 Answers

Sort by ยป oldest newest most voted
0

answered 2011-09-02 12:44:29 -0500

kwc gravatar image

No activity > 1 month, closing

edit flag offensive delete link more
3

answered 2011-07-06 04:26:36 -0500

fergs gravatar image

/odom_combined comes from the robot_pose_ekf, is that running?

If you do "rosrun tf view_frames" does it show that the tf graph is in fact a proper tree? Are transforms coming at a regular rate? (information about rates will be in the frames.pdf created by view_frames)

edit flag offensive delete link more

Comments

If I run view_frames I can see the base_link frame (which is parent of base_footprint) but no mention of odom_combined :s that I forgot to mention, is the main reason of my question... I can't find the dumb thing anywhere...:(
Aidan1488 gravatar image Aidan1488  ( 2011-07-06 08:26:25 -0500 )edit
When you run 'rosnode list', do you see the robot_pose_ekf somewhere? The robot_pose_ekf is publishing the odom_combined frame to tf.
Wim gravatar image Wim  ( 2011-07-06 09:13:31 -0500 )edit
Yes robot_pose_ekf is running. If I use the command bin/odometry_base many times it eventually works. The failure must be the rate differences between frames then. Still I'll like to know how to create a world frame in gazebo since I'm creating my own robot URDF. Is odom_combined a world frame?
Aidan1488 gravatar image Aidan1488  ( 2011-07-07 00:47:50 -0500 )edit
0

answered 2014-02-17 14:08:06 -0500

longlongago gravatar image

updated 2014-02-17 14:17:35 -0500

You can try "export ROBOT=sim" before running "bin/odometry_base cmd_vel:=base_controller/command", and set the timeout duration to something longer (e.g., 1000.0 instead of 5.0): //wait for the listener to get the first message listener_.waitForTransform("base_footprint", "odom_combined", ros::Time(0), ros::Duration(10000.0));

edit flag offensive delete link more

Question Tools

Stats

Asked: 2011-07-01 11:51:59 -0500

Seen: 3,947 times

Last updated: Feb 17 '14