Skip to content
Ricardo Moran edited this page Sep 14, 2021 · 21 revisions

Índice

Documentación sobre la clase RobotRL

La clase RobotRL viene incluida dentro del ambiente de Sumo en el archivo RobotRL.py y nos facilita el control del robot dentro de la simulación.

IMPORTANTE: Esta clase no debe ser modificada, de lo contrario el controlador no funcionará correctamente durante la competencia. Si se desea extender esta clase con nueva funcionalidad recomendamos desarrollar otra clase y hacer que ésta herede de RobotRL.

Creación de un objeto robot

# Crear un objeto RobotRL y asignarlo a la variable "robot"
robot = RobotRL()

Métodos

Velocidad de las ruedas

Las velocidades se definen con un valor entre -100 (máxima velocidad para atrás) y 100 (máxima velocidad para adelante)

# Establecer la velocidad de las dos ruedas
velRI = 50 # Velocidad de rueda izquierda
velRD = 50 # Velocidad de rueda derecha
robot.setVel(velRI, velRD)

# Establecer la velocidad de la rueda izquierda
robot.setVI(75)

# Establecer la velocidad de la rueda derecha
robot.setVD(-75)

# Obtener la velocidad actual de la rueda izquierda
velRI = robot.getVI()

# Obtener la velocidad actual de la rueda derecha
velRD = robot.getVD()

Espera

# Esperar un tiempo determinado (se mantiene el estado actual del robot durante el tiempo especificado)
segundos = 5
robot.esperar(segundos)

# Obtener el tiempo presente del robot
t = robot.tiempoActual()

Sensores

# Obtener el valor de brillo del piso. Valor entre 0 (más oscuro) y 100 (más brillante)
brillo_piso = robot.getColorPiso()
        
# Obtener el color del piso en los tres canales RGB
rojo, verde, azul = robot.getColorPisoRGB()

# Obtener la distancia detectada por el sensor de distancia izquierdo.
# Valor entre 0 y 100 (si no hay nada delante, devuelve 100)
di = robot.getDI()

# Obtener la distancia detectada por el sensor de distancia derecho.
# Valor entre 0 y 100 (si no hay nada delante, devuelve 100)
dd = robot.getDD()

# Chequear si el bumper izquierdo está presionado.
# Devuelve True si está presionado, False si no lo está.
bi = robot.getBI()

# Chequear si el bumper derecho está presionado.
# Devuelve True si está presionado, False si no lo está.
bd = robot.getBD()

Otros

# Finalizar el ciclo de ejecución de este paso y devolver el control al simulador
# (ya definí lo que quería con el robot, le paso el control al simulador)
robot.step()

Personalización del robot

Para personalizar el robot se usará la página web https://virtual.roboliga.ar/personalizador/. Allí se encontrarán una herramienta que les permitirá modificar la posición y rotación de los sensores de distancia y de color.

Luego de realizar las modificaciones deberán exportar los resultados en un archivo .json que podrán cargar en el simulador haciendo click en el botón Robot base.

Clone this wiki locally