-
Notifications
You must be signed in to change notification settings - Fork 1.8k
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
Slow control loop with dwa_local_planner (fix for #679) #688
Conversation
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(), |
There was a problem hiding this comment.
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.
There was a problem hiding this comment.
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; | ||
} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
why is this removed?
There was a problem hiding this comment.
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); |
e31b898
to
ac70953
Compare
Any update on this? |
ac70953
to
b7b1f66
Compare
b7b1f66
to
ac00e7f
Compare
ac00e7f
to
247999a
Compare
Targets a dead release (kinetic). If this is still of interest, please open a PR to noetic-devel branch |
Fix for #679