This demo shows how to use MathWorks products to solve a path-planning problem.
The objective is to find the optimal path (path of least time) through a randomly generated vector field of wind values.
A Live Script shows how to set up both time-independent and time-dependent versions of the optimization problem.
An app created with App Designer shows an interactive way to do this analysis. The path may be defined by dragging control points with the mouse and the parameters (path distance and time) are updated on-the-fly.
Another Live Script shows how to use MATLAB Coder to generate C/C++ code for the optimization step and compares its run time to that of using MATLAB code.
The scripts and GUIDE app used in the “Finding Optimal Path Using Optimization Toolbox” video by Teja Muppirala are in the R2015b folder.
Mary Fenelon (2021). Finding an Optimal Path (https://www.mathworks.com/matlabcentral/fileexchange/36321-finding-an-optimal-path), MATLAB Central File Exchange. Retrieved .
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!Create scripts with code, output, and formatted text in a single executable document.
Very Intuitive to tailor to our specific scenarios
Hi I was wondering how to view the figure
To solve the issue that c4mm11 describes you need to edit the code and remove instances of the nonzero function operating on graphics arrays. Something along the lines of: 'handles.h_ctrlpts(isprop(handles.h_ctrlpts,'Color'))' in place of 'nonzeros(handles.h_ctrlpts)' and similar such instances worked for me.
Hi. I'm getting the following error when I run PathOptimizationDemo.m. Using R2016a.
Undefined function 'nonzeros' for input arguments of type 'matlab.graphics.Graphics'.
Error in PathOptimizationDemo>makeInteractiveLine (line 207)
set(nonzeros(h_ctrlpts),'buttondownfcn',{@ButtonDownOnLine,h_ctrlpts,handles});
Error in PathOptimizationDemo>pushbutton_NewField_Callback (line 157)
makeInteractiveLine(handles);
Error in PathOptimizationDemo>PathOptimizationDemo_OpeningFcn (line 72)
pushbutton_NewField_Callback(hObject, eventdata, handles)
Error in gui_mainfcn (line 220)
feval(gui_State.gui_OpeningFcn, gui_hFigure, [], guidata(gui_hFigure), varargin{:});
Error in PathOptimizationDemo (line 48)
gui_mainfcn(gui_State, varargin{:});