Estoy intentando mover un robot con una brújula. Usamos la brújula para hacer que el robot se mueva en línea recta, usa 2 ruedas y se mueven un poco diferente. Así que establecemos un valor entre 0 y 359 como dirección, y luego verificamos la dirección actual, calculamos el error y lo solucionamos. Como error = current_direction - dirección real.Brújula: de 359 a 0 grados
El problema es que si, por ejemplo, nuestra dirección init es de 90 grados y nuestro robot está en 45, el error será 45 y lo arreglará. Si es 0, el error será 90 y lo arreglará. El problema es que si se mueve un poco más que 0 y va, por ejemplo, a 359, el error será -269, así que en lugar de mover 90 en una dirección, se moverá -269 en la otra.
Uso el signo del error para decidir qué rueda mover para fijar la dirección. alguna idea de cómo solucionarlo?
Una vez tuve un robot que podía confundirse tanto que tuvimos que cambie esos 'if's a' while's: D –
@Jakub Hampl: ¿Lo llamó Dizzybot? : D – Piskvor