0
$\begingroup$

Rosanswers logo

Hello, I'm following the guide from costmap_2d for studying.

On section 5 (TF), there is the sentences.

"In order to insert data from sensor sources into the costmap, the costmap_2d::Costmap2DROS object makes extensive use of tf. Specifically, it assumes that all transforms between the coordinate frames specified by the global_frame parameter, the robot_base_frame parameter, and sensor sources are connected and up-to-date. The transform_tolerance parameter sets the maximum amount of latency allowed between these transforms. If the tf tree is not updated at this expected rate, the navigation stack stops the robot."

and, on section 8.1.4 (Parameters).

"~/transform_tolerance (double, default: 0.2)"
"Specifies the delay in transform (tf) data that is tolerable in seconds. This parameter serves as a safeguard to losing a link in the tf tree while still allowing an amount of latency the user is comfortable with to exist in the system. For example, a transform being 0.2 seconds out-of-date may be tolerable, but a transform being 8 seconds out of date is not. If the tf transform between the coordinate frames specified by the global_frame and robot_base_frame parameters is transform_tolerance seconds older than ros::Time::now(), then the navigation stack will stop the robot."

After reading, I didn't understand what that mean.

TFs are just values for transformation information. And, those are from each topics which have a their coordinate. So, their frequency are different with each other by their's sensors timing. On this, why we need a tolerable value? When we need the tolerable param for navigation stack?

Is there any good information to help understanding for newbie?


Originally posted by harderthan on ROS Answers with karma: 98 on 2019-07-21

Post score: 0

$\endgroup$

1 Answer 1

0
$\begingroup$

Rosanswers logo

Because sensor's data has latency. If the latency is too large, the information you get from sensor will not immediate enough. For example, if sensor message's frequency is 1hz, and your robot's velocity is 0.5 m/s. It means that when costmap receives a data comes from the sensor, it's a second ago. And your robot moves 0.5 meter away from that point. The information provided by costmap will not be immediate enough, it may let your global/local planner make a wrong decision.


Originally posted by Josper with karma: 73 on 2020-02-06

This answer was ACCEPTED on the original site

Post score: 1

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.