What is the mean of "transform_tolerance" param?

asked 2019-07-21 02:01:51 -0500

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).

"~<name>/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?

edit retag flag offensive close merge delete