Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Slow control loop with dwa_local_planner (fix for #679) #688

Closed

Conversation

pavloblindnology
Copy link
Contributor

Fix for #679

@mikeferguson
Copy link
Contributor

CI didn't trigger initially -- now running

tf.waitForTransform(global_frame, ros::Time::now(),
plan_pose.header.frame_id, plan_pose.header.stamp,
plan_pose.header.frame_id, ros::Duration(0.5));
tf.lookupTransform(global_frame, ros::Time(),
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I wonder if would be desirable to keep this as ros::Time() which will get the latest available transform (rather than a possibly outdated one). Although, it might also be that having all transforms done at the same time is better for consistency.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We cannot just replace ros::Time::now() with ros::Time() in line

tf.waitForTransform(global_frame, ros::Time::now(),

as transform in line
tf.transformPose(plan_pose.header.frame_id, global_pose, robot_pose);

will use possibly later timestamp of current robot pose, issuing TF error 'extrapolation into the future', mentioned here #196

if ( ! costmap_ros_->getRobotPose(current_pose_)) {
ROS_ERROR("Could not get robot pose");
return false;
}
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

why is this removed?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It's explained in line 157 of my dwa_planner_ros.cpp.
If we update robot pose after setting time in planner_util we can get a more recent time stamp of robot pose, which will cause TF 'extrapolation into the future` error in line

tf.transformPose(plan_pose.header.frame_id, global_pose, robot_pose);

@pavloblindnology
Copy link
Contributor Author

Any update on this?

@mikeferguson
Copy link
Contributor

Targets a dead release (kinetic). If this is still of interest, please open a PR to noetic-devel branch

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
kinetic PRs for kinetic-devel planners
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants