En Scratch: el ejercicio del almacén

Amazon Warehouse

En el pasado CJP 13-14 propusimos un ejercicio que gustó mucho, y que creo es muy interesante comentar por aquí. Su recepción fue muy positiva, y no sólo nos ocupó una sesión entera si no que también pudimos mejorarlo en días posteriores.

Todo empezó con la imagen que tenéis arriba (vía Amusing Planet) y una pregunta: ¿Qué creéis que es eso? Evidentemente todos tenían una percepción bastante cercana a la realidad. Se trata de uno de los almacenes que Amazon tiene en Estados Unidos, repletos de cajas y pedidos a punto de realizarse. La idea del proyecto a realizar con Scratch va un poco más allá, claro.

Los almacenes de Amazon, así como el de muchas otras compañías, están divididos en varias secciones. A grandes rasgos podemos diferenciar una zona de almacenaje puro, donde se encuentran todos los productos formando el stock que vemos en la web, y que en la fotografía parece intuirse al fondo-derecha de la imagen. También existe una superficie donde se van colocando los paquetes de los pedidos realizados, preparándolos para que la agencia de transportes los gestione hasta el domicilio del comprador.

Quizá el aspecto más interesante de Amazon – o al menos lo que más gusta a los chavales – es que una parte de la línea del almacén está automatizada con robots, elementos que muchas veces los vemos como ciencia-ficción pero que en la realidad son bastante habituales en el mundo cotidiano. En Forbes hablan de ello, indicando la intención de la compañía de utilizar 10.000 robots en sus almacenes a finales de año.

Así pues, recopilemos nuestros datos de partida y los elementos de los que disponemos:

  1. Un catálogo de productos en nuestros almacenes (stock)
  2. Un robot que mueve esos productos desde un origen hasta un destino final (línea de salida para el transportista)
  3. Un pedido (compuesto por uno o varios elementos)

Y uno de los resultados (posiblemente el peor: el mío) es el siguiente:

Uso:

  • WASD para el movimiento del robot, que debe acercarse a un elemento, tocarlo y enviarlo a la zona de salida marcada como finish.
  • Una vez hayas gestionado todos los items, presiona «f» para finalizar y mostrar los productos del pedido.

Enlace al proyecto en scratch.mit.edu

Como veis todos los elementos del proyecto son artesanales, en el sentido en que están dibujados directamente en Scratch para así buscar la creatividad y el toque diferenciador que cada uno tiene.

Posibilidades de mejora del proyecto

Este proyecto es uno de los que mayor margen de mejora tiene de entre los que hemos propuesto en los dos cursos de CJP realizados. Tan solo hay que pensar en cómo puede funcionar el propio almacén de Amazon para buscar nuevas posibilidades, y de esta forma podríamos buscar las siguientes posibilidades:

  • Asociar un precio a cada producto, y realizar una «factura» al finalizar el pedido con el precio total. También podemos añadir impuestos asociados (IVA, los cuales también podrían variar según la categoría de producto) y subtotales
  • Mantener varias unidades de stock de cada ítem, y no solo una. No nos referimos a stock infinito, si no limitado a un cierto número de unidades.
  • El robot se mueve con el teclado, pero sería ideal que lo hiciese automáticamente: click en un producto y el robot se mueve solo, coge el producto, lo deposita en la línea de salida y vuelve a su posición inicial. Podemos enredar un poco más el asunto si utilizamos una entrada de texto, haciendo que el usuario introduzca el nombre del producto para que el robot lo gestione.
  • Y mucho más…

Un proyecto que parte de una idea muy sencilla pero aplica conceptos muy interesantes y novedosos, y que además tiene un margen de mejora y evolución enorme. Seguramente durante el próximo CJP 14-15 volvamos sobre él para aplicar algún añadido más.