Main Content

La traducción de esta página aún no se ha actualizado a la versión más reciente. Haga clic aquí para ver la última versión en inglés.

lidarScan

Crear un objeto para almacenar el escaneo LiDAR 2D

Desde R2019b

Descripción

Un objeto lidarScan contiene los datos de un solo escaneo LiDAR (detección y distancia por luz) 2D. El escaneo LiDAR es un escaneo láser de un plano 2D con distancias (Ranges) medidas desde el sensor hasta los obstáculos del entorno en ángulos específicos (Angles). Utilice este objeto de escaneo láser como entrada a otros algoritmos de robótica como matchScans (Navigation Toolbox), controllerVFH (Navigation Toolbox) o monteCarloLocalization (Navigation Toolbox).

Creación

Descripción

ejemplo

scan = lidarScan(ranges,angles) crea un objeto lidarScan a partir de ranges y angles, que representan los datos recopilados de un sensor LiDAR. Las entradas de ranges y angles son vectores de la misma longitud y se establecen directamente en las propiedades Ranges y Angles.

scan = lidarScan(cart) crea un objeto lidarScan mediante las coordenadas cartesianas de entrada como una matriz n por 2. La propiedad Cartesian se establece directamente desde esta entrada.

scan = lidarScan(scanMsg) crea un objeto lidarScan a partir de un objeto de mensaje LaserScan (ROS Toolbox) ROS.

Propiedades

expandir todo

Lecturas de alcance de LiDAR, especificadas como un vector en metros. Este vector tiene la misma longitud que Angles y los elementos del vector se miden en metros.

Tipos de datos: single | double

Ángulo de las lecturas de alcance de LiDAR, especificadas como un vector. Este vector tiene la misma longitud que Ranges y los elementos del vector se miden en radianes. Los ángulos se miden en sentido contrario a las agujas del reloj alrededor del eje positivo z.

Tipos de datos: single | double

Coordenadas cartesianas de las lecturas de LiDAR, devueltas como una matriz [x y]. En el marco de coordenadas de LiDAR, la x positiva es hacia adelante y la y positiva es hacia la izquierda.

Tipos de datos: single | double

Número de lecturas de LiDAR, devuelto como un escalar. Este escalar también es igual a la longitud de los vectores Ranges y Angles o al número de filas de Cartesian.

Tipos de datos: double

Funciones del objeto

plotDisplay laser or lidar scan readings
removeInvalidDataRemove invalid range and angle data
transformScanTransform laser scan based on relative pose

Ejemplos

contraer todo

Especifique los datos de LiDAR como vectores de alcances y ángulos. Estos valores incluyen lecturas fuera del alcance de los sensores.

x = linspace(-2,2);
ranges = abs((1.5).*x.^2 + 5);
ranges(45:55) = 3.5;
angles = linspace(-pi/2,pi/2,numel(ranges));

Cree un escaneo LiDAR especificando los alcances y los ángulos. Represente todos los puntos del escaneo LiDAR.

scan = lidarScan(ranges,angles);
plot(scan)

Figure contains an axes object. The axes object with title LiDAR Scan, xlabel X, ylabel Y contains a line object which displays its values using only markers.

Elimine los puntos no válidos en función de un alcance mínimo y máximo especificado.

minRange = 0.1;
maxRange = 7;
scan2 = removeInvalidData(scan,'RangeLimits',[minRange maxRange]);
hold on
plot(scan2)
legend('All Points','Valid Points')

Figure contains an axes object. The axes object with title LiDAR Scan, xlabel X, ylabel Y contains 2 objects of type line. One or more of the lines displays its values using only markers These objects represent All Points, Valid Points.

Cree un objeto lidarScan. Especifique los alcances y los ángulos como vectores.

refRanges = 5*ones(1,300);
refAngles = linspace(-pi/2,pi/2,300);
refScan = lidarScan(refRanges,refAngles);

Traslade el escaneo láser con un desplazamiento de [x y] de (0.5,0.2).

transformedScan = transformScan(refScan,[0.5 0.2 0]);

Gire el escaneo láser 20 grados.

rotateScan = transformScan(refScan,[0,0,deg2rad(20)]);

Capacidades ampliadas

Historial de versiones

Introducido en R2019b

Consulte también