show
Descripción
muestra el estado inicial de todos los cuerpos del ego y los obstáculos en la lista de cápsulas especificada y devuelve el identificador de ejes de la gráfica.ax
= show(capsuleListObj
)
especifica opciones usando name-value pair arguments. Por ejemplo, ax
= show(capsuleListObj
,Name,Value
)'FastUpdate',true
permite actualizaciones rápidas de un gráfico existente.
Ejemplos
Construya rutas del cuerpo del ego y compruebe si hay colisiones con obstáculos
Construya una ruta del cuerpo del ego y mantenga estados de obstáculos utilizando el objeto dynamicCapsuleList
. Visualice los estados de todos los objetos del entorno en diferentes marcas de tiempo. Valide la ruta del cuerpo del ego comprobando colisiones con obstáculos en el entorno.
Cree el objeto dynamicCapsuleList
. Extraiga la cantidad máxima de pasos para usar como cantidad de marcas de tiempo para las rutas de sus objetos.
obsList = dynamicCapsuleList; numSteps = obsList.MaxNumSteps;
Añadir cuerpo del ego
Defina un cuerpo del ego especificando la identificación, la geometría y el estado juntos en una estructura. La geometría de la cápsula tiene una longitud de 3 my un radio de 1 m. Especifique el estado como una ruta lineal desde x = 0 ma x = 100 m.
egoID1 = 1; geom = struct("Length",3,"Radius",1,"FixedTransform",eye(3)); states = linspace(0,1,obsList.MaxNumSteps)'.*[100 0 0]; egoCapsule1 = struct('ID',egoID1,'States',states,'Geometry',geom); addEgo(obsList,egoCapsule1); show(obsList,"TimeStep",[1:numSteps]); ylim([-20 20])
Agregar obstáculos
Especifique estados para dos obstáculos que están separados del cuerpo del ego por 5 m en direcciones opuestas en el eje y. Supongamos que los obstáculos tienen la misma geometría geom
que el cuerpo del ego.
obsState1 = states + [0 5 0]; obsState2 = states + [0 -5 0]; obsCapsule1 = struct('ID',1,'States',obsState1,'Geometry',geom); obsCapsule2 = struct('ID',2,'States',obsState2,'Geometry',geom); addObstacle(obsList,obsCapsule1); addObstacle(obsList,obsCapsule2); show(obsList,"TimeStep",[1:numSteps]); ylim([-20 20])
Actualizar obstáculos
Modifique las ubicaciones de los obstáculos y las dimensiones geométricas con el tiempo. Utilice la estructura generada previamente, modifique los campos y actualice los obstáculos usando las funciones de objeto updateObstacleGeometry
y updateObstaclePose
. Reduce el radio del primer obstáculo a 0,5 m y cambia la ruta para moverlo hacia el cuerpo del ego.
obsCapsule1.Geometry.Radius = 0.5; obsCapsule1.States = ... [linspace(0,100,numSteps)' ... % x linspace(5,-4,numSteps)' ... % y zeros(numSteps,1)]; % theta updateObstacleGeometry(obsList,1,obsCapsule1); updateObstaclePose(obsList,1,obsCapsule1);
Comprobar si existen colisiones
Visualiza los nuevos rutas. Muestra dónde ocurren las colisiones entre el cuerpo del ego y un obstáculo, que la pantalla resalta en rojo. Tenga en cuenta que las colisiones entre los obstáculos no se controlan.
show(obsList,"TimeStep",[1:numSteps],"ShowCollisions",1); ylim([-20 20]) xlabel("X (m)") ylabel("Y (m)")
Verifique las colisiones mediante programación utilizando la función de objeto checkCollision
. La función devuelve un vector de valores lógicos que indica el estado de cada paso de tiempo. El vector se transpone con fines de visualización.
collisions = checkCollision(obsList)'
collisions = 1x31 logical array
0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0
Para validar rutas con una gran cantidad de pasos, use la función any
en el vector de valores de colisión.
if any(collisions) disp("Collision detected.") end
Collision detected.
Actualizar ruta del ego
Especifica una ruta nueva para el cuerpo del ego. Visualice las rutas nuevamente, mostrando colisiones.
egoCapsule1.States = ... [linspace(0,100,numSteps)' ... % x 3*sin(linspace(0,2*pi,numSteps))' ... % y zeros(numSteps,1)]; % theta updateEgoPose(obsList,1,egoCapsule1); show(obsList,"TimeStep",[1:numSteps],"ShowCollisions",1); ylim([-20 20])
Argumentos de entrada
capsuleListObj
— Lista de cápsulas dinámicas
dynamicCapsuleList
objeto | dynamicCapsuleList3D
objeto
Lista de cápsulas dinámicas, especificada como un objeto dynamicCapsuleList
o dynamicCapsuleList3D
.
Argumentos de par nombre-valor
Especifique pares de argumentos opcionales como Name1=Value1,...,NameN=ValueN
, donde Name
es el nombre del argumento y Value
es el valor correspondiente. Los argumentos nombre-valor deben aparecer después de los otros argumentos, pero el orden de los pares no importa.
Antes de R2021a, utilice comas para separar cada nombre y valor, y encierre Name
entre comillas.
Ejemplo: 'FastUpdate',true
habilita la opción de actualizaciones rápidas en un gráfico existente.
Parent
— Ejes principales para trazar
gca
(predeterminado) | Axes
manejar
Ejes principales para trazar, especificados como el par separado por comas que consta de 'Parent'
y un identificador Axes Properties .
FastUpdate
— Realizar una actualización rápida de la gráfica existente
false
o 0
(predeterminado) | true
o 1
Realice una actualización rápida de un gráfico existente, especificado como el par separado por comas que consta de 'FastUpdate'
y un 0
lógico (false
) o 1
(true
). Debe utilizar la función de objeto show
para mostrar inicialmente su lista de cápsulas antes de poder especificarla con este argumento.
Tipos de datos: logical
TimeStep
— Pasos de tiempo para mostrar
1
(predeterminado) | vector numérico
Pasos de tiempo para mostrar, especificados como el par separado por comas que consta de 'TimeStep'
y un vector numérico de valores en el rango [1, N], donde N es el valor de la propiedad MaxNumSteps
del objeto especificado en el argumento capsuleListObj
. Cada paso de tiempo corresponde a una fila de la matriz de estados para cada cuerpo del ego y obstáculo.
ShowCollisions
— Verifique y resalte colisiones en la pantalla
false
o 0
(predeterminado) | true
o 1
Compruebe y resalte colisiones en la pantalla, especificadas como el par separado por comas que consta de 'ShowCollisions'
y un 0
lógico (false
) o 1
(true
).
Tipos de datos: logical
EgoIDs
— ID de ego para mostrar
vector de números enteros positivos
ID de ego para mostrar, especificados como el par separado por comas que consta de 'EgoIDs'
y un vector de enteros positivos. Por defecto, la función de objeto muestra todos los cuerpos del ego.
ObstacleIDs
— ID de obstáculos para mostrar
vector de números enteros positivos
ID de obstáculos que se mostrarán, especificados como el par separado por comas que consta de 'ObstacleIDs'
y un vector de enteros positivos. De forma predeterminada, la función muestra todos los obstáculos.
Argumentos de salida
ax
— Ejes principales del gráfico de lista de cápsulas dinámicas
Axes
manejar
Ejes principales del gráfico de la lista de cápsulas dinámicas, devueltos como un identificador Axes Properties.
Capacidades ampliadas
Generación de código C/C++
Genere código C y C++ mediante MATLAB® Coder™.
Historial de versiones
Introducido en R2020b
Consulte también
Objetos
Funciones
Comando de MATLAB
Ha hecho clic en un enlace que corresponde a este comando de MATLAB:
Ejecute el comando introduciéndolo en la ventana de comandos de MATLAB. Los navegadores web no admiten comandos de MATLAB.
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)