Simulador: RHINO en el museo
Las prácticas de esta semana son demostrativas: se ejecutan en Webots para ver los algoritmos de la clase funcionando en un robot de verdad, en el lugar donde se hicieron famosos. El robot es RHINO, el guía del Deutsches Museum Bonn (1997), y el museo se reconstruyó a partir de la planta que publicaron sus autores.

Requisitos
Sección titulada «Requisitos»-
Python 3 con
numpyyscipy. Si hizo las prácticas de la semana 13, ya los tiene:Ventana de terminal pip install numpy scipyWebots usa el comando
pythondel sistema: debe ser el mismo Python donde instaló estas librerías (Tools → Preferences → Python command). -
El proyecto del simulador: rhino-webots.zip. Descomprímalo en cualquier carpeta.
El museo
Sección titulada «El museo»La Fig. 4 de Burgard et al. (1998) muestra la creencia de RHINO sobre un mapa del museo: los obstáculos en negro y la probabilidad de cada celda en gris. Las celdas grises son la grilla de Markov del robot, de 15 cm de lado. Con esa escala se midió todo el mapa: la sala mide 21.3 × 19.9 m.
| Fig. 4 del artículo | Mapa del simulador (líneas cada 5 m) |
|---|---|
![]() | ![]() |
Cada obstáculo de la figura se volvió un objeto de formas básicas, con texturas tomadas de las fotos del museo:
| En la figura | En el simulador |
|---|---|
| Muros gruesos | Paredes blancas de 3 m |
| Círculos de 70 cm | Columnas blancas |
| Círculos grandes | Esculturas de cobre sobre una base de madera |
| Círculos pequeños | Postes de información de acero |
| Rectángulos de 30 × 62 cm | Atriles de acero |
| Bloques grandes | Máquinas con tableros de instrumentos |
| El resto | Vitrinas: pedestal de madera con vidrio encima |
Todo lo que ve el Lidar coincide con el mapa del artículo.
El RHINO original era un RWI B21: un cilindro de 52 cm de diámetro con dos láseres, 24 sonares y cámaras. El del simulador es una versión simplificada:
- Tracción diferencial, con ruedas de 8 cm de radio separadas 40 cm. Como en la semana 12, las ruedas reales son un poco distintas a lo que cree el programa, y la odometría se desvía.
- Un Lidar de 360° con 720 rayos (uno cada 0.5°) y alcance de 10 m, en la ventana del anillo rojo.
- Una pantalla (Display) donde cada controlador dibuja el mapa, la creencia y las poses. Aparece en una esquina de la vista 3D: arrástrela o cámbiele el tamaño con el mouse.
La ventana del robot
Sección titulada «La ventana del robot»Lo mismo que muestra la pantalla se puede ver más grande en el navegador: haga doble clic sobre RHINO en la vista 3D (o clic derecho → Show Robot Window). Se abre una página con:
- el mapa del museo y lo que calcula el programa (creencia, partículas, elipses, caminos), dibujados en vectores: se ven nítidos a cualquier tamaño;
- las líneas de texto del programa (tiempo, errores, incertidumbre);
- botones que hacen lo mismo que las teclas, así que no hace falta hacer clic en la vista 3D: Recorrido automático (T), Detener (Espacio), y según el mundo Secuestrar (S) o Marcas sí / no (M). Con la página activa, también funcionan esas teclas;
- las coordenadas en metros del punto bajo el mouse.
La página necesita internet la primera vez (carga una librería de Webots) y se actualiza unas 5 veces por segundo mientras la simulación corre.
Los mundos
Sección titulada «Los mundos»Abra cada mundo con File → Open World y ejecútelo con ▶:
| Mundo | Práctica | Qué hace |
|---|---|---|
worlds/museo.wbt | — | Manejar a RHINO y ver lo que mide el Lidar |
worlds/markov.wbt | 1. Markov | Localización de Markov en una grilla, como RHINO |
worlds/particulas.wbt | 1. Markov | Localización con partículas |
worlds/kalman.wbt | 2. Kalman | Filtro de Kalman extendido con columnas y postes |
worlds/slam.wbt | 3. SLAM | RHINO arma el mapa mientras se localiza |
En todos los mundos RHINO arranca en recorrido automático: da vueltas de 32 m alrededor de la exhibición central. Las teclas funcionan después de hacer clic en la vista 3D:
| Tecla | Acción |
|---|---|
| T | Encender o apagar el recorrido automático |
| Flechas | Manejar a RHINO (apagan el recorrido automático) |
| Espacio | Detener |
El recorrido automático usa la pose real de RHINO para manejar, como si un guía lo llevara de la mano. Así cada algoritmo se puede ver trabajar aunque se equivoque. Los algoritmos solo usan los encoders y el Lidar.
Los programas de RHINO están en controllers/ (uno por mundo), y las funciones comunes (motores, odometría, Lidar, mapa y dibujo) en python/rhino.py. Los parámetros de cada algoritmo están al inicio de su controlador: cámbielos, guarde y reinicie la simulación con Ctrl+Shift+T.
Personas en el museo
Sección titulada «Personas en el museo»En el museo real, la gente tapaba los láseres de RHINO. Webots trae un PROTO de persona (Pedestrian) que camina por una trayectoria. Al final de cada mundo hay un ejemplo comentado para agregar personas: el Lidar las ve como obstáculos que no están en el mapa.
Problemas frecuentes
Sección titulada «Problemas frecuentes»ModuleNotFoundError: No module named 'scipy': Webots está usando otro Python. Revise Tools → Preferences → Python command.- No veo la pantalla con el mapa: en el menú Overlays → Display Devices, active la pantalla
mapade RHINO, o abra la ventana del robot. - La ventana del robot dice “Esperando la simulación…”: la simulación está en pausa o el programa se detuvo. Ejecútela con ▶ y revise la consola de Webots.
- La simulación va lenta: es normal en la práctica de Markov (actualiza más de un millón de estados en cada paso). Reduzca el tamaño de la ventana 3D o desactive las sombras en Tools → Preferences → OpenGL.

