rst-tu-dortmund / teb_local_planner

An optimal trajectory planner considering distinctive topologies for mobile robots based on Timed-Elastic-Bands (ROS Package)
http://wiki.ros.org/teb_local_planner
BSD 3-Clause "New" or "Revised" License
1.04k stars 547 forks source link

the meaning of "map_bottom_left" and "map_top_right " in "calculateHSignature" function #93

Closed chenxianbo closed 5 years ago

chenxianbo commented 6 years ago

void calculateHSignature(BidirIter path_start, BidirIter path_end, Fun fun_cplx_point, const ObstContainer* obstacles) { ..... if (std::abs(delta) < 3.0) { } else { map_bottom_left = start - normal; map_top_right = start + delta + normal; } ........ }

I couldn't understand the meaning of "map_bottom_left.x = start.x + deta.y, map_bottom_left.y = start.y - deta.x", especially "map_top_right.x = start.x - deta.y + deta.x, map_top_right.y = start.y + deta.x + deta.y",

croesmann commented 5 years ago

In order to compute the HSignature, we need to define some analytic function on which we can compute the complex path integral, see [1] and [2]. The actual values are not important, however, we need an appropriate scaling in order to distinguish different H Signatures from each other. [2] suggests using a region similar to the size of the planning area. Here, I use a rectangle (rotate by the goal-heading) as the planning (and sampling) area for exploring distinctive trajectories.

[1] C. Rösmann, F. Hoffmann and T. Bertram: Integrated online trajectory planning and optimization in distinctive topologies, Robotics and Autonomous Systems, Vol. 88, 2017, pp. 142–153. [2] S. Bhattacharya, V. Kumar, and M. Likhachev: Search-based path planning with homotopy class constraints, AAAI Conference on Artificial Intelligence, 2010, pp. 1230-1237.