Path planning algorithm better than RRT* and Artificial Potential Field

Robotics Asked by Nikthebrick on December 21, 2020

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


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.

2 Answers

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.

Answered by FourierFlux on December 21, 2020

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.

Answered by Ben on December 21, 2020

Add your own answers!

Related Questions

What does the normalized image coordinates imply?

0  Asked on October 3, 2021 by lzx071021


Rapid code pick and place

1  Asked on October 3, 2021 by ramil-aliyev


How can I get the equations of motion used in webots?

1  Asked on October 3, 2021 by q-than-a


Handling Inverse Kinematics error on a UR Robot

1  Asked on October 3, 2021 by user24261


ROS2 and TypeError when publishing custom message to Topic

1  Asked on October 3, 2021 by anthares


BLDC Stuttering when attached to Arduino Nano

1  Asked on October 3, 2021 by moazzam-salman


Determining required torque for DC motor

0  Asked on October 3, 2021 by timetraveller


Ask a Question

Get help from others!

© 2022 All rights reserved. Sites we Love: PCI Database, MenuIva, UKBizDB, Menu Kuliner, Sharing RPP, SolveDir