Main Content

Esta página es para la versión anterior. La página correspondiente en inglés ha sido eliminada en la versión actual.

Ejecutar tareas para un robot de almacén

En este ejemplo se muestra cómo ejecutar una ruta libre de obstáculos para un robot móvil entre tres ubicaciones en un mapa determinado. Se espera que el robot visite los tres lugares de un almacén: una estación de carga, una estación de carga y un lugar de descarga. La secuencia en la que se visitan estas ubicaciones es dictada por un programador. El programador le da a cada robot una postura de objetivo a la que navegar. El robot planea un camino y utiliza un controlador Pure Pursuit para seguir los waypoints basados en la pose actual del robot. El bloque modela la cinemática simplificada, que toma las velocidades lineales y angulares del controlador Pure Pursuit.Differential Drive Kinematic Model Este ejemplo se basa en el ejemplo.Planificar ruta para un robot de accionamiento diferencial en Simulink

Mapa de almacén

Un almacén típico de una instalación de clasificación o distribución tiene paquetes que se entregarán desde las estaciones de trabajo a las áreas de almacenamiento. El almacén puede tener áreas fuera de límite como oficinas e inventario en curso que bloquea pasillos o pasarelas. Los robots tienen la tarea de recoger los paquetes terminados a medida que llegan a la estación de clasificación y se les dice una ubicación para almacenarlos. El almacén también tiene una estación de carga para recargar los robots después de un cierto tiempo.

Este plano de planta de almacén de ejemplo se puede traducir en un mapa de ocupación binaria, que indica todas las regiones seguras de la instalación de almacén.

Cargue el archivo de mapa de ejemplo. es una matriz de valores lógicos que indica espacio libre en el almacén.logicalMap Haz una de esta matriz.binaryOccupancyMap

load warehouseMaps.mat logicalMap map = binaryOccupancyMap(logicalMap); show(map)

Asigne las ubicaciones de la estación de carga, la estación de clasificación (carga) y la ubicación de descarga cerca de los estantes del almacén.xy

chargingStn = [5,5]; loadingStn = [52,15]; unloadingStn = [15,42]; 

Mostrar las distintas ubicaciones en el mapa

hold on;  text(chargingStn(1), chargingStn(2), 1, 'Charging'); plotTransforms([chargingStn, 0], [1 0 0 0])  text(loadingStn(1), loadingStn(2), 1, 'Sorting Station'); plotTransforms([loadingStn, 0], [1 0 0 0])  text(unloadingStn(1), unloadingStn(2), 1, 'Unloading Station'); plotTransforms([unloadingStn, 0], [1 0 0 0])  hold off;

Descripción general del modelo

Se proporciona un modelo de ® Simulink que modela todos los aspectos del sistema para programar, planificar, controlar y modelar el comportamiento del robot.

Abra el modelo Simulink.

open_system('warehouseTasksRobotSimulationModel.slx')

Modelo de planificación, control y planta

El modelo utiliza un modelo de planificación, control y centro similar al ejemplo.Planificar ruta para un robot de accionamiento diferencial en Simulink El planificador toma las ubicaciones de inicio y objetivo del programador y planifica un camino libre de obstáculos entre ellos basado en el mapa dado. El controlador utiliza un controlador Pure Pursuit para generar los controles de velocidad lineal y angular del robot para navegar por la ruta. Estos controles se dan al modelo de planta que modela el comportamiento de un robot de accionamiento diferencial.

Programador de robots

El bloque Scheduler asigna ubicaciones de inicio y objetivo al robot. La pose actual del robot se utiliza como ubicación inicial y la ubicación final está determinada por una secuencia de tareas especificadas dentro del programador. El ejemplo ilustra la siguiente secuencia de tareas para el robot:

  1. Comienza desde la ubicación de carga y va a la ubicación de carga.

  2. Se detiene como estación de carga para cargar el paquete y planifica una ruta de acceso a la ubicación de descarga.

  3. Navega a la estación de descarga para descargar el paquete. Replanifica un camino a la estación de carga.

  4. Se detiene en la estación de carga.

Simular el robot

Ejecute la simulación para ver al robot ejecutar las tareas.

simulation = sim('warehouseTasksRobotSimulationModel.slx');
 

Visualizar trayectorias de robots

Se proporciona una herramienta de visualización personalizada para imitar un sistema de cámara distribuida y obtener vistas más detalladas de la trayectoria del robot en ciertas ubicaciones del mapa. Abra el bloque y utilice el menú desplegable para seleccionar diferentes perspectivas.Visualization HelperPreset Views La visualización de la visualización no tiene ningún efecto en la simulación del robot.Sample time

Ver también

© Copyright 2019 The Mathworks, Inc.