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

Niccer's profile - activity

2014-07-02 07:36:47 -0500 received badge  Notable Question (source)
2014-02-24 02:30:39 -0500 received badge  Popular Question (source)
2014-02-22 06:06:36 -0500 asked a question arm_kinematics in hydro

Hi,

does anyone still use the arm_kinematics package in hydro? Looks like some updates are needed, since the message location and types changed a little.

Thanks to moveit, there is no real need any more for this package, but it would be nice to run old code in hydro.

Cheers!

2014-01-23 20:14:01 -0500 received badge  Nice Answer (source)
2013-12-17 04:30:10 -0500 commented answer Hydro move_base/tf2 extrapolation error into the future errror

Maybe it helps to dump all the frames that are in your tf instance? There is the getFrames() method - not sure if it prints the timestamps though.

2013-12-12 06:23:39 -0500 received badge  Teacher (source)
2013-12-12 04:32:25 -0500 answered a question Hydro move_base/tf2 extrapolation error into the future errror

Well, the code requests transformPose with time t_b of the latest base pose. If you publish at different places of your node, time t_g of global would e.g. have a slightly earlier timestamp - and tf must fail. Same thing if one of the other tf-messages has not been received yet. Unless you enable extrapolation, this is how tf(2) should behave. In amcl - which would typically publish the map->odom or world->local transform - they timestamp the transform with 0.2s in the future. Maybe that's also a solution for you?

2013-12-10 03:56:27 -0500 commented answer Hydro move_base/tf2 extrapolation error into the future errror

What's your transformation chain, and what node publishes the individual frames?

2013-12-06 01:16:22 -0500 commented answer Hydro move_base/tf2 extrapolation error into the future errror

Have you actually verified it fails really at tf.lookupTransform? Because in this line, you are not requesting a lookup 40ms before now(), as the error message says. What is your tf chain from local to global?

2013-12-05 04:45:03 -0500 commented question "Unable to lookup transform, cache is empty" error while running navigation stack

Similar thread: http://answers.ros.org/question/106996/hydro-move_basetf2-extrapolation-error-into-the-future-errror/ . I posted my "solution" there. Could you check your transformation timings?

2013-12-05 04:41:53 -0500 received badge  Editor (source)
2013-12-05 04:41:35 -0500 answered a question Hydro move_base/tf2 extrapolation error into the future errror

Hi,

there are many questions here about that error in different scenarios. I am using slam_karto and groovy, but the code in goal_functions.cpp has not changed much.

I also found that the exception is thrown in navigation/base_local_planner/src/goal_functions.cpp:transformGlobalPlan() - yet for me, tf.lookupTransform (line 110) is ok, but tf.transformPose (line 116) fails. My tf-tree is /map -> /odom -> /base_footprint. /odom is published with an average delay of 90ms, while /base_footprint has a delay of 35ms. Debugging the code shows that tf.transformPose is requested to transform the pose to /map at now()-35ms. That fails, since the /odom transformation is older, and tf apparently does not extrapolate so far into the future.

My solution was to change the tf.transformPose call, such that it takes the most recent time: tf.transformPose(plan_pose.header.frame_id, ros::Time(0), global_pose, global_pose.frame_id_, robot_pose);

While this works, I wonder how things should behave in the original code. Are delays between the different frames not accepted? Or does the extrapolation usually work, for whatever reason? Maybe someone who runs move_base successfully can comment on that.

@robotiqsguy: Could you verify where exactly the exception is triggered in your case? Also, what delays do you see for your frames, if you run rosrun tf tf_monitor?

Best Regards!