Main Content

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.

Desde R2019b

Descripción

ejemplo

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 la entrada lidarScan objeto, scan, para obtener puntos finales de rayos. Las ubicaciones de los puntos finales se actualizan con un valor ocupado. Si los rangos están por encima de 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.

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

insertRay(map,startpt,endpoints) inserta observaciones entre los segmentos de línea desde el punto inicial 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;

Cree 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 del mapa, especificada como un objeto binaryOccupancyMap . Este objeto representa el entorno del robot. El objeto contiene una cuadrícula matricial con valores binarios que indican obstáculos como true (1) y ubicaciones libres como false (0).

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

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 dado. 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 ángulo 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. Valores de rango mayores o iguales a maxrange se consideran libres en 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 mundiales. Todos los rayos son segmentos de recta que se originan en este punto.

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

Capacidades ampliadas

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

Historial de versiones

Introducido en R2019b