0
$\begingroup$

Hello robotics stack exchange community, hope my message finds you well during these challenging times. I need an opinion regarding path planning algorithms.

Goal

I am looking for a path planning algorithm that is able to produce smooth paths that are shorter and more predictable than RRT and RRT*. It shouldn't get stuck in local minima like Artificial Potential Field.

What I tried

I have set up a Linux 16 system with ROS Kinetic Kame and Python. I implemented Artificial Potential Field Path Planning, RRT and RRT* and ran those on a robot in a small arena. The arena was a square and I placed different objects inside of it that needed to be avoided. See the picture below for an example of how my arena configuration looks like. enter image description here

Artificial Field Path Planning creates nice, smooth curves and a robot executes smooth movements to follow it. My problem with them is local minima where my robot gets stuck.

RRT produced jagged paths, but the nice thing about it was that it always found a path (albeit it was always a different one). I implemented RRT* to get smoother paths, but they're quite "branchy" looking (still better than RRT though).

I have also looked into other algorithm such as A* and MEA, but rather than trying to implement them straight away, I wanted to ask for your opinion.

$\endgroup$
0
$\begingroup$

My understanding is that most people don't use the raw RRT solution directly. First they smooth it. A google search will yield many papers on this. For example: Improved Path-Finding Algorithm for Robot Soccers by Rahib H. Abiyev, Nurullah Akkaya, Ersin Aytac, Irfan Günsel, and Ahmet Çağman.

The smoothed trajectory will necessarily be different than the RRT path and will therefore have a possibility of collision. So you will have to check for that and possibly adjust the smoothing parameters iteratively.

You can also use a more modern motion planner. CHOMP is a popular one. Original paper: CHOMP: Covariant Hamiltonian Optimization for Motion Planning by Matt Zucker, Nathan Ratliff, Anca D. Dragan, Mihail Pivtoraiko, Matthew Klingensmith, Christopher M. Dellin, J. Andrew Bagnell, Siddhartha S. Srinivasa.

Another idea is to use a completely different approach. TrajOpt is an optimization based approach and produces smooth trajectories without a secondary smoothing step. Paper here: Motion Planning with Sequential ConvexOptimization and Convex Collision Checking by John Schulman, Yan Duan, Jonathan Ho, Alex Lee, Ibrahim Awwal, Henry Bradlow, Jia Pan, Sachin Patil, Ken Goldberg, Pieter Abbeel.

| improve this answer | |
$\endgroup$
0
$\begingroup$

You can apply rrt using a selection of smooth movements, basically you discritize the possible actions making sure you always connect paths in a way which is smooth. It increases the dimensionality of your problem by quite a bit though, so idk.

| improve this answer | |
$\endgroup$
  • $\begingroup$ Thank you for your input. I assume you are talking about using motion primitives or things like RRT Star Dubins? I have tried both, in any case. Although I didn't articulate it in the question as such, I was looking for an algorithm such as A*. I was looking for an algorithm that produces the same paths given that it starts from the same point -> i have done some research in the meantime and that's how I came to the conclusion that I needed something like A* Nonetheless, I upvoted your comment (sadly it won't display since i've got less than 15 rep :( ) $\endgroup$ – Nikthebrick Apr 18 at 2:28

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.