Hoy en día existen diversos robots para cumplir tareas específicas. En el área de restaurantes existen los robots meseros autónomos. Éstos robots permiten servir mesas y encontrar su camino por el restaurant.

Entre los ejemplos disponibles esta el Segway ServeBot S1(“Restaurant Service Robot - Segway Robotics,” 2024) y el Bellabot (“Smart Delivery Robot-Pudu Robotics,” n.d.).

segway
Figure 1. Robot ServeBot S1
bellabot
Figure 2. Bellabot

Estos robots son de alta tecnología y cuentan con sensores e inteligencia artificial muy sofisticada. Lo que los hace tener un precio prohibitivo para la mayoría de los restaurantes.

Pilotos OriHime

En Japón existe el concepto de "Avatar Robot Café". Donde un restaurant/café es atentido por avatares robots. Es decir, robots controlados por humanos remotamente. Estos robots no cuentan con IA debido a que se busca integrar a personas con dificultades motoras u otros problemas que les impide integrarse a la sociedad en trabajos tradicionales.

Entre los avatares robots se puede encontrar meseros y baristas.

dawn orihime
Figure 3. Avatares Robot
dawn avatar
Figure 4. Robot OriHime
dawn barista
Figure 5. Robot Barista

Son controlados remotamente con una aplicación de tablet smartphone.

dawn control
Figure 6. Interfaz de Piloto

Estos robots están ubicados en el Dawn Cafe

dawn cafe
Figure 7. Avatar Robot Cafe DAWN ver.β

El “Avatar Robot Café DAWN ver.β” es un café experimental permanente operado por OryLab Inc., donde personas que tienen dificultades para salir de casa por diversas razones operan de forma remota nuestros robots avatar OriHime y OriHime-D desde sus hogares y hospitales para brindar servicios. ("Avatar Robot Café" n.d.)

Restaurantes y Robots en Chile

En Chile se han utilizado robots animatrónicos como el conocido restaurante "África" de Viña del Mar (SoyChile, 2019).

africa
Figure 8. Animatronicos del Restaurante África

Jorge Fernández, gerente de El Japonés de Viña del Mar, calcula que desde que tienen al “Michi-robot” haciendo las veces de mesero la afluencia del público al local ha aumentado en un 20 por ciento. ¿La razón? La curiosidad de ver en acción al Bella-bot -o “Michi”, como le llaman en el restaurante-, que lleva pedidos a la mesa como un garzón más. (Transformadores, 2023).

Descripción del Proyecto

Como se puede apreciar, Chile está preparado para adoptar la inclusión de robots en el área de servicios, especialmente en robots meseros. Sin embargo los altos precios de adquisición impiden que más restaurantes adopten estas tecnologías.

Para lograr disminuir la brecha tecnológica y aumentar la inclusión de personas con dificultades de trabajar presencialmente, se debe crear una alternativa de bajo costo e identidad local.

Para esto se creará un "Avatar Robot" controlado remotamente via internet que pueda ser usado para atender comandas y servir como garzón en restaurantes.

Materiales

Este robot utilizará materiales reciclados o fáciles de adquirir a un costo moderado.

Marco

Para el marco principal se debe considerar una estructura liviana que permita un movimiento para todas las direcciones, cuente con un lugar para dejar los platos y sea higiénica y estéticamente apropiado.

Queda a discreción la selección del marco inicial. Acá se presentará unas opciones posibles.

Nombre Fotografía Descripción

Estante de Almacenamiento con Ruedas Giratorias y Cestas Metalicas

estante

Carrito Organizador Con Cesta Metal y Ruedas Bloqueables 3 Niveles

Organizador de frutas metal 3 canastos Cromado

frutero

La Frutera con 3 canastos y 3 ruedas en la parte inferior.

Carro de compras colores 32 L

carro

Carro de compras colores 32 L

La recomendación es que permita al menos 3 niveles. Ya que se necesita espacio para:

  1. La batería y circuitería. Ubicados en el nivel inferior.

  2. La bandeja principal para almacenar los platos a servir.

  3. Una bandeja superior para almacenar la cámara y un robot o pantalla opcional para expresar emociones por parte del piloto operador.

El carro será controlado por una ESP32 que recibirá comandos por USB desde la Raspberry PI.

Batería

La batería puede ser un PowerBank o una batería de motocicleta con un adaptador para USB. Es importante recalcar que el amperaje mínimo necesario es 3 amperes. Menor a ese amperaje servirá para cargar un smartphone, más no para alimentar una Raspberry PI.

Opción Imagen Descripción

PowerBank de 30K mAh

powerbank

Batería portátil USB capacidad de 30000 mAh.

Tres puertos USB con USB-A y USB-C. Carga rápida del dispositivo con puerto USB-C PD 3.0 de máximo 20 W o USB-A con salida QC3/0 de máximo 18 W.

Batería 12v + Adaptador USB

] image::esp32/animatronic/adaptador-usb-bateria-moto.avif[

Batería de motocicleta combinada con un adaptador USB de alta potencia (QC3.0). Es una opción válida para alimentar el robot.

Ventajas:

  • Se tiene mayor voltaje para velocidad más rápida.

Desventaja:

  • Puede ser más pesado y requerir equipamiento especial para recargar la batería.

Disponible en:

Smartphone

El Smartphone es necesario para proveer internet a la Raspberry PI y también actuar como cámara principal para la comunicación remota (utilizando una video llamada).

Se recomienda un smartphone Android. Cualquiera que pueda hacer uso de redes 3G y sea relativamente moderno (entre 5 a 10 años de antigüedad) servirá como principal puente de comunicación.

Se podría omitir este elemento si el restaurante cuenta con Wifi y añadir una cámara web a la Raspberry PI, pero requeriría de mayores configuraciones en el router del local y asegurar estabilidad de señal.

Para la elaboración de la comunicación via video se utilizará los servicios de Jitsi Meet. El cual proporciona una solución de bajo costo y de código libre para ser utilizada.

Raspberry PI 3

Raspberry PI 3 cuenta con un procesador Broadcom Quad-Core ARM Cortex-A53 a 1.2GHz combinados con 1GB de RAM LPDDR2.

raspberrypi3
Figure 9. Raspberry Pi 3 Model B

Será el computador principal conectado con Nerves, lo que permitirá enviar señales tanto al Emote Robot como al Carro utilizando USB, además de proporcionar un servidor web accesible mediante internet conectándose al Smartphone.

El modelo de Raspberry Pi es a elección, simplemente debe ser compatible con Nerves (https://hexdocs.pm/nerves/supported-targets.html) Un modelo alternativo compatible es el Raspberry Pi Zero 2W.

rpiz2w
Figure 10. Raspberry Pi Zero 2 W

Emote Robot

Para proporcionar una forma de mostrar emociones remotamente se puede utilizar un personaje de lego animatrónico. Esto es totalmente opcional, pero agrega personalidad y empatía al robot. También puede ser utilizada una smart tablet con un personaje animado y controlado remotamente.

lego
Figure 11. Personaje Lego Creator 3 en 1

El robot será controlado por una ESP32 que recibirá comandos por USB desde la Raspberry PI.

Table 1. Lista de posibles componentes

Componente

Descripción

1 Raspberry PI

Una versión compatible con Nerves y que permita conexión USB (UART) a la ESP32

2 ESP32 Devkit

Un ESP32 para controlar el carro y un ESP32 para controlar el robot

4 Motor DC

Cuatro motores DC de alto torque para movilidad del carro hasta 25 Kg.

L298N

Permite controlar al los motores DC.

Android Smartphone

Un Smartphone que actue como Hotspot y permita usar Jitsi Meet

Baterías

La batería necesaria para alimentar tanto a la Raspberry, ESP32 y Smartphone

NoIP

Servicio de DNS dinámico para acceder al servidor de la Raspberry PI

mesero

Búho Animatrónico

Este proyecto grupal tiene como propósito la programación de una figura animatrónica con actuadores (servos), que es controlada a través de un microcontrolador ESP32 y un programa en C++. La figura elegida fue un búho, cuyas alas, cabeza y patas tienen movimiento mediante servomotores.

https://www.tiendalego.cl/products/criaturas-fantasticas-del-bosque-31125
Figure 12. Lego Búho (#31125)
Table 2. Tabla de Componentes
Componente Cantidad Descripción

ESP32-WROOM

1

Microcontrolador principal

Servomotor SG90

4

Uno por ala, uno en la cabeza, uno en las patas

Fuente de alimentación

1

USB 5V (desde computadora o batería externa)

Cables Dupont

Varios

Para Conexiones

Bloques tipo LEGO

Varios

Para ensamblar la estructura del búho

Protoboard / PCB

1

Para conexiones eléctricas (opcional)

Acotaciones

  • Se recomienda usar piezas tipo LEGO para facilitar el ajuste de los servos y permitir cambios de diseño de manera sencilla.

  • Se cuidó el peso en el diseño para no sobrecargar los servos, especialmente en las alas.

  • La alimentación por USB 5V es suficiente para los servos, pero se debe evitar hacer movimientos simultáneos prolongados para no sobrecargar la corriente disponible.

  • La estructura fue validada para estabilidad durante los movimientos.

  • El código debe incorporar retardos adecuados y límites de movimiento para evitar daños mecánicos.

Código fuente del Búho
#include <ESP32Servo.h>

int pos = 0;
Servo izquierdo;
Servo derecho;
Servo cabeza;
Servo poto;

int led = 16;
bool inicializar = true;

void setup() {
  Serial.begin(115200);
  // Pines válidos para ESP32, cambia si usas otros
  izquierdo.attach(13, 500, 2500);
  derecho.attach(14, 500, 2500);
  cabeza.attach(15, 500, 2500);
  poto.attach(18, 500, 2500);
  pinMode(led, OUTPUT);
}

void startPosition() {
  digitalWrite(led, HIGH);
  derecho.write(180);
  izquierdo.write(0);
  cabeza.write(180);
  poto.write(0);
  delay(500);
  digitalWrite(led, LOW);
}

void saludar(int velocidad) {
  digitalWrite(led, HIGH);
  for (pos = 90; pos <= 180; pos += 1) {
    izquierdo.write(pos);
    derecho.write(180 - pos);
    poto.write(90-pos);
    delay(velocidad);
  }

  for (pos = 180; pos >= 90; pos -= 1) {
    izquierdo.write(pos);
    derecho.write(180 - pos);
    poto.write(pos-40);
    delay(velocidad);
  }

  digitalWrite(led, LOW);
}

void feliz(int velocidad) {
  digitalWrite(led, HIGH);

  for (pos = 90; pos <= 180; pos += 1) {
    izquierdo.write(pos);
    derecho.write(180 - pos);
    cabeza.write(pos);
    delay(velocidad);
  }

  for (pos = 180; pos >= 90; pos -= 1) {
    izquierdo.write(pos);
    derecho.write(180 - pos);
    delay(velocidad);
  }

  digitalWrite(led, LOW);
}

void enojar(int velocidad) {
  digitalWrite(led, HIGH);
  for (pos =120; pos <= 180; pos += 1) {
    cabeza.write(pos);
    delay(velocidad);
  }
  digitalWrite(led, LOW);
}

// Lectura de los comandos por serial USB
void leerComandoSerial() {
  if (Serial.available() <= 0) {
    return;
  }

  String comando = Serial.readStringUntil('\n');

  // Elimina espacios y saltos de línea
  comando.trim();

  if (comando == "saludar") {
    cabeza.write(160);
    delay(15);
    saludar(10);
    saludar(10);
    saludar(10);
    startPosition();
  } else if (comando == "enojar") {
    startPosition();
    enojar(10);
    enojar(10);
    enojar(10);
    startPosition();
  } else if (comando == "resetear") {
    startPosition();
  } else if (comando == "feliz") {
    feliz(5);
    feliz(5);
    feliz(5);
    startPosition();
  } else {
    Serial.println("Comando no reconocido.");
  }
}

void loop() {
  leerComandoSerial();
}
animatronico esquema
Figure 13. Esquemático del Animatrónico
animatronico conexion
Figure 14. Guía de Conexiones
Video de Ejemplo de Funcionamiento