www.gusucode.com > robotics 案例源码程序 matlab代码 > robotics/TuneTheConnectionDistanceExample.m
%% Tune the Connection Distance % Use the |ConnectionDistance| property on the |PRM| object to tune the % algorithm. |ConnectionDistance| is an upper threshold for points that are % connected in the roadmap. Each node is connected to all nodes within this % connection distance that do not have obstacles between them. By lowering % the connection distance, you can limit the number of connections to reduce % the computation time and simplify the map. However, a lowered distance % limits the number of available paths from which to find a complete % obstacle-free path. When working with simple maps, you can use a higher % connection distance with a small number of nodes to increase efficiency. % For complex maps with lots of obstacles, a higher number of nodes with a % lowered connection distance increases the chance of finding a solution. %% % Load a map file and create an occupancy grid. filePath = fullfile(fileparts(which('PathPlanningExample')),'data','exampleMaps.mat'); load(filePath) map = robotics.OccupancyGrid(simpleMap,2); %% % Create a roadmap with 100 nodes and calculate the path. The default % |ConnectionDistance| is set to inf. Save the random number generation % settings using the rng function. The saved settings enable you to reproduce % the same points and see the effect of changing |ConnectionDistance|. rngState = rng; prm = robotics.PRM(map,100); startLocation = [2 1]; endLocation = [12 10]; path = findpath(prm,startLocation,endLocation); show(prm) %% % Reload the random number generation settings to have PRM use the same nodes. % Lower |ConnectionDistance| to 2 m. Show the calculated path. rng(rngState); prm.ConnectionDistance = 2; path = findpath(prm,startLocation,endLocation); show(prm)