主要内容

Planificación完全不同之路

Este ejemplo muestra cómo计算器una ruta libre de obstáculos entre ubicaciones en undeterminado mapa utizando el planificador de rutas PRM (hoja de rutas probabilísticas)。在自由空间里,在自由空间里,在自由空间里,在自由空间里,在自由空间里,在自由空间里,在自由空间里,在自由空间里,在自由空间里,在自由空间里,在自由空间里,在自由空间里,在自由空间里,在自由空间conectándolos entre sí。Una vez construcda la hoja de ruta, puede hacer Una consulta para encontrar Una ruta desde Una determinada ubicación初级的hasta Una determinada ubicación最后的en el mapa。

我知道你的意思了,我的意思了cuadrícula de ocupación我的意思了。实现了自由空间的思想世界,PRM利用了representación de cuadrícula de ocupación自由空间的二进制计算。Además, PRM没有tiene en cuenta la dimensión del robot al calculus una ruta libre de obstáculos en un mapa。Por tanto, debe inflar el mapa en la dimensión机器人para permitir el cálculo de una ruta libre de obstáculos que tenga en cuenta el tamaño机器人y garantice la prevención colisiones para机器人real。定义a la ubicación最初的最后的en el mapa para que el planificador de rutas PRM entre una ruta libre de obstáculos。

重要的mapas de ejemplo para planificar una ruta

负载exampleMaps.mat

Los mapas importados son:simpleMapcomplexMapyternaryMap

*地图*
名称大小字节类属性complexMap 41x52 2132 logical emptyMap 26x27 702 logical simpleMap 26x27 702 logical ternaryMap 501x501 2008008 double

利用这些数据simpleMapY识识的una representación de cuadrícula de ocupación实用的东西binaryOccupancyMap.Defina la resolución en 2 celdas por metro para este mapa。

map = binaryoccuancymap (simpleMap,2);

Muestre el mapa utilzando la función显示我的客体binaryOccupancyMap

显示(图)

图中包含一个轴对象。标题为Binary Occupancy Grid的axis对象包含一个image类型的对象。

定义机器人和宇宙的维度

Para asegurarse de que el robot no choque con ningún obstáculo, debe inflar el mapa en la dimensión del robot antes de enviarlo al planificador de rutas PRM。

Aquí, podemos asumir que la dimensión del robot es un círculo con un radio de 0,2 metro。A continuación, puede inflar el mapa en esta dimensión por medio de la función膨胀

robotRadius = 0.2;

Como se ha señalado anormente, PRM no tiene en cuenta la dimensión del robot y, por tanto, enviar un mapa inflado a PRM tiene en cuenta la dimensión del robot。Cree una copia del mapa antes de usar la función膨胀Para conservar el mapa original。

mapinflation = copy(map);充气(mapInflated robotRadius);

膨胀的梦

显示(mapInflated)

图中包含一个轴对象。标题为Binary Occupancy Grid的axis对象包含一个image类型的对象。

解释PRM y定义los parámetros

Ahora debe definir un planificador de rutas。Cree un异议mobileRobotPRMY defina los atributos relacionados。

prm = mobileRobotPRM;

通货膨胀目标报告

人口、难民和移民事务局。Map = mapInflated;

定义el número de nodos de PRM que se utilizará durante la construcción de PRM。PRM解释这条路的效用número这条路的指示在我们的命运中。Según la dimensión y a la complejidad del mapa de entra de entra, este es uno de atributos principales que hay que adaptar para obtener una solución entre dos puntos del mapa。Un número大的创世之路和密集之路的概率和安全之路。在路上,在路上más在路上,在路上cálculo在路上,在路上solución。

人口、难民和移民事务局。NumNodes = 50;

定义一个距离máxima许可,entre, dos, nodos, conectados, en, mapa。PRM conecta todos los nodos separados por esta distcia (o lower) en el mapa。Este es otro de atributos que se deben ajustar cuando los mapas de entrada son grand o complicados。远处的地方conexión大的月亮,连在一起的地方,在一起的地方,在一起的月亮más fácilmente,在月亮的地方también时间的地方cálculo德拉creación德拉的地方。

人口、难民和移民事务局。ConnectionDistance = 5;

你能理解我的意思吗

定义la ubicación初始y最终en el mapa que utilizará el planificador de rutas。

startLocation = [2 1];endLocation = [12 10];

街舞之路之路ubicación最初的最后的实用之路funciónfindpath.La solución es un conjunto de waypoints de La ubicación inicial a La final。Tenga en cuenta que路径será diferente debido al carácter probabilístico del algorithm PRM。

path = findpath(prm, startLocation, endLocation)
路径=7×22.0000 1.0000 1.9569 1.0546 1.8369 2.3856 3.2389 6.6106 7.8260 8.1330 11.4632 10.5857 12.0000 10.0000

Muestre la solución de PRM。

显示(人口、难民和移民事务局)

图中包含一个轴对象。标题为“概率路线图”的坐标轴对象包含图像、直线、散点类型的4个对象。

Usar PRM para un mapa big complex

利用这些数据complexMap, que representan UN plano de planta grand y complicado, y construcya una representación de cuadrícula de ocupación conconuna determinada binaria resolución (1 celda por metro)

map = binaryoccuancymap (complexMap,1);

Muestre el mapa。

显示(图)

图中包含一个轴对象。标题为Binary Occupancy Grid的axis对象包含一个image类型的对象。

在机器人上的一个维度

复制在地图上的位置tamaño机器人和evadir obstáculos

mapinflation = copy(map);充气(mapInflated robotRadius);

膨胀的梦。

显示(mapInflated)

图中包含一个轴对象。标题为Binary Occupancy Grid的axis对象包含一个image类型的对象。

反社会客体PRM存在论新地图和los parámetros定义

Actualice el objeto PRM con el mapa que acaba de inflar定义otros atributos。

人口、难民和移民事务局。Map = mapInflated;

绝对的安慰NumNodesyConnectionDistance

人口、难民和移民事务局。NumNodes = 20;人口、难民和移民事务局。ConnectionDistance = 15;

Muestre la gráfica de PRM。

显示(人口、难民和移民事务局)

图中包含一个轴对象。标题为“概率路线图”的坐标轴对象包含图像、直线、散点类型的3个对象。

你能理解我的意思吗

定义la ubicación初始的y最终的en el mapa para encontrar una ruta libre de obstáculos。

startLocation = [3 3];endLocation = [45 35];

Busque una solución entre la ubicación inicial y la final。完全的地图,可能的不存在的一个可确定的规则número de nodos (devuelve una ruta vacía)。

path = findpath(prm, startLocation, endLocation);

科莫está这是一个大问题,quizás必要的联合国市长número de nodos。罪恶禁运,一个不可能的决定的结果cuántos nodos serán足够。Ajuste el número de nodos para asegurarse de que exista una ruta facfactible entre la ubicación inicial y la final。

isempty(路径)%未找到可行路径,增加节点数人口、难民和移民事务局。NumNodes = prm。NumNodes + 10;使用|update|功能重新创建变更后的PRM路线图%属性更新(人口、难民和移民事务局);使用更新后的PRM搜索可行路径path = findpath(prm, startLocation, endLocation);结束

Muestre la ruta。

路径
路径=12×23.0000 3.0000 4.2287 4.2628 7.7686 5.6520 6.8570 8.2389 19.5613 8.4030 33.1838 8.7614 31.3248 16.3874 41.3317 17.5090 48.3017 25.8527 49.4926 36.8804

Muestre la solución de PRM。

显示(人口、难民和移民事务局)

图中包含一个轴对象。标题为“概率路线图”的坐标轴对象包含图像、直线、散点类型的4个对象。