Contenido principal

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.

Automatizar el control de vehículos inteligentes usando gráficos de Stateflow

Este ejemplo muestra cómo modelar un escenario de conducción con vehículos inteligentes controlados por la misma lógica de decisión. Cada vehículo determina cuándo acelerar, reducir la velocidad o cambiar de carril basándose en la lógica definida por un gráfico de Stateflow® independiente. Dado que las condiciones de conducción (posición relativa y velocidad de los vehículos cercanos) varían de un vehículo a otro, objetos de gráfico independientes de MATLAB® controlan cada uno de los vehículos en una autopista.

Abrir un escenario de conducción

Para iniciar el ejemplo, ejecute el script sf_driver_demo.m. El script muestra una animación 3D de una autopista larga y varios vehículos. La vista se centra en un solo vehículo y sus alrededores. A medida que este vehículo se desplaza por la autopista, el gráfico de Stateflow sf_driver independiente muestra la lógica de decisión que determina sus acciones.

Cuando se parte de una posición aleatoria, cada vehículo intenta desplazarse a una velocidad objetivo. Dado que las velocidades objetivo se eligen de forma aleatoria, los vehículos pueden obstaculizarse entre sí. En esta situación, el vehículo intentará cambiar de carril y reanudar su velocidad objetivo.

El archivo de clase HighwayScenario define un objeto drivingScenario (Automated Driving Toolbox) que representa el entorno 3D que contiene la autopista y los vehículos que circulan por ella. Para controlar el movimiento de los vehículos, el objeto drivingScenario crea un arreglo de objetos de gráfico de Stateflow. Cada objeto del gráfico controla un vehículo diferente en la simulación.

Ejecutar la lógica de decisión para vehículos

El gráfico de Stateflow sf_driver consta de dos estados de nivel superior, LaneKeep y LaneChange.

Cuando el estado LaneKeep está activo, el vehículo correspondiente permanece en su carril de circulación. En este estado, hay dos posibles subestados:

  • Cruise está activo cuando la zona situada justo delante del vehículo está vacía y el vehículo puede circular a su velocidad objetivo.

  • Follow se convierte en activo cuando la zona situada justo delante del vehículo está ocupada y su velocidad objetivo es superior a la velocidad del vehículo que tiene delante. En este caso, el vehículo se ve obligado a reducir la velocidad e intentar cambiar de carril.

Cuando el estado LaneChange está activo, el vehículo correspondiente intenta cambiar de carril. En este estado, hay dos posibles subestados:

  • Continue está activo cuando la zona situada junto al vehículo está vacía y el vehículo puede cambiar de carril de forma segura.

  • Abort se convierte en activo cuando la zona situada junto al vehículo está ocupada. En este caso, el vehículo se ve obligado a permanecer en su carril.

Las transiciones entre los estados LaneKeep y LaneChange están restringidas por el valor de isLaneChanging. En el estado LaneKeep, el gráfico establece estos datos locales en true cuando el subestado Follow está activo y hay suficiente espacio al lado del vehículo para cambiar de carril. En el estado LaneChange, el gráfico establece estos datos locales en false cuando el vehículo ha terminado de cambiar de carril.

Consulte también

(Automated Driving Toolbox)

Temas