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.

insertPointCloud

Inserte puntos 3D o observaciones de nubes de puntos en el mapa

Descripción

insertPointCloud(map3D,pose,points,maxrange) inserta una o más observaciones de sensor en el points dado en el mapa de ocupación, map3D. Los puntos ocupados se actualizan con una observación de 0,7. Todos los demás puntos entre el sensor pose y points se tratan como libres de obstáculos y se actualizan con una observación de 0,4. Los puntos fuera de maxrange no se actualizan. Los valores NaN se ignoran.

ejemplo

insertPointCloud(map3D,pose,ptcloud,maxrange) inserta un objeto ptcloud en el mapa.

Ejemplos

contraer todo

El objeto occupancyMap3D almacena obstáculos en el espacio tridimensional, utilizando observaciones de sensores para mapear un entorno. Cree un mapa y agregue puntos desde una nube de puntos para identificar obstáculos. Luego infle los obstáculos en el mapa para garantizar un espacio operativo seguro alrededor de los obstáculos.

Cree un objeto occupancyMap3D con una resolución de mapa de 10 celdas/metro.

map3D = occupancyMap3D(10);

Defina un conjunto de puntos 3-D como una observación desde una pose [x y z qw qx qy qz]. Esta pose es para el sensor que observa estos puntos y está centrado en el origen. Defina dos conjuntos de puntos para insertar múltiples observaciones.

pose = [ 0 0 0 1 0 0 0];

points = repmat((0:0.25:2)', 1, 3);
points2 = [(0:0.25:2)' (2:-0.25:0)' (0:0.25:2)'];
maxRange = 5;

Inserte el primer conjunto de puntos usando insertPointCloud. La función utiliza la pose del sensor y los puntos dados para insertar observaciones en el mapa. Los colores mostrados se correlacionan con la altura del punto sólo con fines ilustrativos.

insertPointCloud(map3D,pose,points,maxRange)
show(map3D)

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

Inserte el segundo conjunto de puntos. El rayo entre la posición del sensor (origen) y estos puntos se superpone a los puntos de la inserción anterior. Por tanto, el espacio libre entre el sensor y los nuevos puntos se actualiza y marca como espacio libre.

insertPointCloud(map3D,pose,points2,maxRange)
show(map3D)

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

Infle el mapa para agregar una zona de amortiguamiento para una operación segura alrededor de obstáculos. Defina el radio del vehículo y la distancia de seguridad y utilice la suma de estos valores para definir el radio de inflación para el mapa.

vehicleRadius = 0.2;
safetyRadius = 0.3;
inflationRadius = vehicleRadius + safetyRadius;
inflate(map3D, inflationRadius);

show(map3D)

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

Argumentos de entrada

contraer todo

Mapa de ocupación tridimensional, especificado como un objeto occupancyMap3D .

Puntos de nube de puntos en coordenadas del sensor, especificados como una matriz n-por 3 de puntos [x y z] , donde n es el número de puntos en la nube de puntos.

Lectura de nube de puntos, especificada como un objeto pointCloud .

Nota

El uso de objetos pointCloud requiere Computer Vision Toolbox™.

Posición y orientación del vehículo, especificada como un vector [x y z qw qx qy qz] . La pose del vehículo es un vector de posición xyz con un vector de orientación de cuaternión especificado como [qw qx qy qz].

Alcance máximo del sensor de nube de puntos, especificado como escalar. Los puntos fuera de este rango se ignoran.

Capacidades ampliadas

Historial de versiones

Introducido en R2019b

Consulte también

Clases

Funciones