Closed SwiftGust closed 4 years ago
The reason is, we restrict the y axis of the local map to be within the range of [-10, 10]. Your wall seems to be outside the range so obstacle will not be mapped in the local map. So you can try setting the range of y. I do think the Planner can avoid it if the map is correct, although the reference path is so poor.
Also, I think I need to clarify that Topo Planner is not designed to be used in such a way. If you read the related paper, a global reference path is required and the task of the Topo Planner is to plan locally to avoid obstacles around the reference path. If the reference path is too ridiculous (as is the one you give, which differs so much from the real feasible path), the planner may fail to replan.
In other word, Topo Planner is designed to follow a predefined reference path safely. For example, in some inspection tasks like in a big warehouse, it may require the drone to go along a reference path predefined by the warehouse manager, and the drone monitors/inspects somethings. The Topo Planner gets the global path as INPUT and plans trajectories avoiding unexpected obstacles (such as AGV and human in warehouse). The 'click-and-go' demo, wherein the reference path is simply a straight line, may be misleading somehow. I will refine the document and explain it more clearly later.
@ZbyLGsc Hi, thank you for quick response. To summarize your response, the problem is giving a single global waypoint for reference path generation. To vehicle to avoid large-scale object, Topo planner needs some waypoints to it to avoid obstacle.
For instance having two global waypoints to avoid thin wall then Topo Planner would be able to avoid obstacle like picture below
If so, It would be good to have some logic for automatic generation of mid-waypoint but for me, it seems difficult without human intervention.
For the mapping issue, I missed local map size of y is +- 10 m, then the first problem is solved. However, path twist and program crash still persist. I think the program crash issue may need to be addressed.
Thank you for clarification.
@SwiftGust Yes, given the KNOWN global map, it will be better to find a more informative global path, such as using A / RRT. However, I would emphasize again that this is not the task of Topo Planner.
For the path twisting, I have found it before but the bug seems very difficult to identify. I would fix it once I know the reason.
First of all, Fast planner's kino & topo both algorithms are works exceptionally.
However, I found topo planner cannot plan through the flat wall-shaped object, I think the planner wouldn't have much problem finding a bypass path through wall. I don't know problem maybe a simple issue behind or limitation of local map strategy.
crash log
To Reproduce
I made wall object with tiny modification on polar object generation code in map_generator package as follow
original
https://github.com/HKUST-Aerial-Robotics/Fast-Planner/blob/d1dd6e7ee856819d8993c7a9f8d78fcdadb2dfe7/uav_simulator/map_generator/src/random_forest_sensing.cpp#L96
modifed for wall object
For reproduction, use launch files attached. topo-wall.zip