Contenido principal

Esta página se ha traducido mediante traducción automática. Haga clic aquí para ver la última versión en inglés.

insertRay

Insertar rayo de observación con escaneo láser.

Descripción

insertRay(map,pose,scan,maxrange) inserta una o más observaciones del sensor de escaneo LiDAR en la cuadrícula de ocupación, map, utilizando el objeto de entrada lidarScan, scan, para obtener los puntos finales del rayo. Las ubicaciones de los puntos finales se actualizan con un valor ocupado. Si los rangos son superiores a maxrange, los puntos finales del rayo se consideran espacio libre. Todos los demás puntos a lo largo del rayo se consideran libres de obstáculos.

ejemplo

insertRay(map,pose,ranges,angles,maxrange) especifica las lecturas de rango como vectores definidos por las entradas ranges y angles.

insertRay(map,startpt,endpoints) inserta observaciones entre los segmentos de línea desde el punto de inicio hasta los puntos finales. Los puntos finales se actualizan como espacio ocupado y otros puntos a lo largo de los segmentos de línea se actualizan como espacio libre.

Ejemplos

contraer todo

Cree un mapa de cuadrícula de ocupación binaria vacío.

map = binaryOccupancyMap(10,10,20);

Introduzca la pose del vehículo, los alcances, los ángulos y el alcance máximo del escaneo láser.

pose = [5,5,0];
ranges = 3*ones(100,1);
angles = linspace(-pi/2,pi/2,100);
maxrange = 20;

Crea un objeto lidarScan con los rangos y ángulos especificados.

scan = lidarScan(ranges,angles);

Inserte los datos del escaneo láser en el mapa de ocupación.

insertRay(map,pose,scan,maxrange);

Muestre el mapa para ver los resultados de insertar el escaneo láser.

show(map)

Figure contains an axes object. The axes object with title Binary Occupancy Grid, xlabel X [meters], ylabel Y [meters] contains an object of type image.

Verifique la ocupación del lugar directamente frente al vehículo.

getOccupancy(map,[8 5])
ans = logical
   1

Argumentos de entrada

contraer todo

Representación de mapa, especificada como un objeto binaryOccupancyMap. Este objeto representa el entorno del robot. El objeto contiene una cuadrícula de matriz con valores binarios que indican los obstáculos como true (1) y las ubicaciones libres como false (0).

Posición y orientación del sensor, especificada como un vector [x y theta]. La posición del sensor es una posición x y y con orientación angular theta (en radianes) medida desde el eje x.

Lecturas de escaneo Lidar, especificadas como un objeto lidarScan.

Valores de rango de datos de escaneo, especificados como un vector de elementos medidos en metros. Estos valores de rango son distancias desde un sensor en un angles determinado. El vector debe tener la misma longitud que el vector angles correspondiente.

Valores de ángulo de datos de escaneo, especificados como un vector de elementos medidos en radianes. Estos valores de ángulos corresponden al ranges dado. El vector debe tener la misma longitud que el vector ranges correspondiente.

Alcance máximo del sensor de distancia láser, especificado como escalar en metros. Los valores de rango mayores o iguales a maxrange se consideran libres a lo largo de toda la longitud del rayo, hasta maxrange.

Punto de inicio de los rayos, especificado como un vector de dos elementos, [x y], en el marco de coordenadas del mundo. Todos los rayos son segmentos de recta que se originan en este punto.

Puntos finales de los rayos, especificados como una matriz n por 2 de pares [x y] en el marco de coordenadas mundial, donde n es la longitud de ranges o angles. Todos los rayos son segmentos de línea que se originan en startpt.

Capacidades ampliadas

expandir todo

Generación de código C/C++
Genere código C y C++ mediante MATLAB® Coder™.

Historial de versiones

Introducido en R2019b