Sensor de orientación
Introducción
Robobo puede conocer su orientación gracias a los sensores de la IMU del smartphone, giroscopio, brújula y magnetómetro.
Nota importante: no todos los modelos de Smartphone incorporan IMU.
1. Clase Orientation
Representa la orientación del smartphone.
Atributos:
-
-
-
- yaw (float): Rotación en grados alrededor del eje Z. Los valores están en el rango de -180 a 180. El ángulo de giro yaw se consigue girando la base con los motores de las ruedas y el motor PAN.
- pitch (float): Rotación en grados alrededor del eje Y. Los valores están en el rango de -180 a 180. El ángulo de giro pitch se consigue usando el motor TILT o moviendo el robot por una superficie inclinada frontalmente.
- roll (float): Rotación en grados alrededor del eje X. Los valores están en el rango de -180 a 180. El ángulo de giro roll no lo puede conseguir Robobo directamente, pero cambiará si la superficie en la que se mueve tiene una inclinación lateral.
-
-
2. Método readOrientationSensor
| readOrientationSensor() |
|
Lee la orientación en la que se encuentra el robot.
Devuelve: Advertencia: Este sensor puede no estar disponible para todos los dispositivos. |
Ejemplo de Uso
El siguiente programa hace que Robobo se mueva en línea recta de forma indefinida, y diga si sube o si baja en caso de encontrarse con una inclinación en su camino. Para ello, se analiza si el ángulo pitch está por encima de un umbral negativo o positivo:
from robobopy.Robobo import Robobo
rob = Robobo('localhost')
rob.connect()
rob.moveWheels(20,20)
rob.resetWheelEncoders()
while True:
if rob.readOrientationSensor().pitch < -20:
rob.sayText('Subiendo')
else:
if rob.readOrientationSensor().pitch > 20:
rob.sayText('Bajando')
rob.wait(1)