What path planning algorithms are typically used for holonomic drivetrains that can avoid collisions while also starting with non zero velocities. I am working on a project where I am planning to have a robot avoid common household objects, drive around them, but do so in a way that it can be on the fly may result in the robot having a non zero starting velocity. I have looked into A* and that could work when using cubic or quintic splines as that could account for the current velocity, but when accounting for more sophisticated object avoidance using something like rrt, I am unsure as to how that would work with a non zero starting velocity. Thank you!
1 Answer
One suitable method might be real-time RRT* (RT-RRT*). It's designed to solve exactly the problem you have - plan and update paths that can change as the path is traversed. One word of warning - the update procedure requires the current node traversal to complete before switching to the newly updated path. In other words, while moving from node $v_{1}$ to $v_{2}$, the algorithm cannot avoid dynamic obstacles that suddenly show up between these two points. In practice this likely shouldn't be a big problem as long as your nodes are close enough together and you are using an efficient implementation of RT-RRT*
If you decide to implement this method yourself, this hierarchical navigable small worlds (HNSW) library provides a very efficient method for performing approximate nearest neighbor searches. Given that this is one of the more difficult tasks in RRT-based algorithms to handle efficiently (especially as tree sizes grow), this should help out quite a bit.