-
Notifications
You must be signed in to change notification settings - Fork 1.8k
Description
Feature request
Hey, I would like to propose a new parameter for RPP. The parameter would enable/disable collision detection by RPP.
Feature description
In our application, we are using RPP controller together with its obstacle detection. This obstacle detection was our main too, but we were limited by its implementation. For example, the detection distance is limited to carrot distance and there is no threshold for number of points that must be detected inside the footprint of the robot.
I am aware that this is completely wanted because in general there is no need for RPP obstacles detection to be more robust as the planner server is able to create a collision-free path. However, we are using our fixed paths so we heavily rely on obstacle detection on controller level.
Problem 1
Since the nav2_collision_monitor is implemented, we started using this more robust module to detect obstacles and recently found out that the obstacle detection by RPP is redundant. However, it is not possible to disable the RPP obstacle detection completely.
Problem 2
Moreover, when we somehow get points inside the robot (it is caused by lidars and wrong reflection of lidar's rays from some surfaces) the RPP detects these points as an obstacle. It is obviously correct behavior but unwanted in our case.
Unfortunately, I am not able to solve this problem in RPP collision detection. I tried to set parameter max_allowed_time_to_collision_up_to_carrot to minimum but the the obstacle is always detected inside the robot at least once.
My solution, that works perfectly and that I suggest here in this issue, is to add a parameter to enable/disable obstacle detection by RPP.
Maybe I missed something in collision detection by RPP that could solve these problems more effectively.
If so, please let me know.
Implementation considerations
Here is the commit in my forked repository of navigation2 that implements this parameter: fantalukas@f6ce77f