For each experiment a turtlebot was used running a code base that modified it to act like a car system. In each experiment the turtlebot was lined up behind an obstacle and then the path was generated and the turtlebot executed the path.
Two experiments were performed to gauge the effectiveness of the of the obstacle avoidance algorithm: The first was motion by only steering X-Y inputs and the second was only steering X-Theta inputs.
The following is an overview of the code structure:
Link to Github:
After optimizing the planned path the real world path was executed and resulted in some expected and unexpected results. Namely, an expectation was that the system would lose energy due to losses in friction and inefficiencies of the hardware this could one day be solved with a closed loop controller. The second more interesting phenomenon was drift in some states. While it was expected that a little drift may occur, rampant drift in the steering angle caused a massive skewing of the motion and angle of the car.
Again the predicted path was optimized and then executed on the turtlebot for x and theta motion. In this case a much more expected outcome occurred. There was little drift in the states and the only detractor causing deviation from the predicted path was losses due to friction and inefficiencies of the hardware.
There is a lot to takeaway from the implementation and results of the optimization based obstacle avoidance planner. The main takeaways from the results and the videos are rather clear:
While these are serious detractors for the argument to use this path planner the advantages clear in terms of model fluidity (application to more complex systems) it really results in a situation where this planner while useful in a variety of different systems will not excel over a planner specifically designed for that system.
Looking toward the future a lot of work can be done to mitigate computational inefficiencies and time constraints of the planner by re-working the code base, the addition of a closed loop controller would eliminate drift and losses due to friction and perhaps the most interesting future work to be done is creating more intricate paths using steering with sinusoids that may prove more efficient that the basic paths generated for this project.