Paso 6: Resumen de código
Para la evitación del obstáculo el eyeRobot utiliza un método donde objetos cerca del robot ejerzan una fuerza virtual en el robot alejándose del objeto. En otras palabras, objetos empujar el robot de sí mismos. En mi implementación, la virtual fuerza ejercida por un objeto es inversamente proporcional a la distancia al cuadrado, por lo que la fuerza de la presión aumenta a medida que el objeto se acerca y crea una curva de respuesta no lineal:
PushForce = ResponseMagnitudeConstant/distancia2
Los empujes de cada sensor se suman; sensores en el lado izquierdo empujar bien y viceversa, para conseguir un vector para el recorrido del robot. Velocidades de la rueda entonces se cambian por lo que el robot gira hacia este vector. Para asegurar los objetos muertos frente al robot no exhiben una "no respuesta" (porque las fuerzas en ambos lados equilibrio), objetos en el frente muerto empuje el robot hacia el lado más abierto. Cuando el robot haya pasado el objeto entonces utiliza codificadores de Roomba para corregir para el cambio y en el vector original.