Pregunta:
¿Qué bloque de movimiento usar con Gyro?
banno
2015-12-16 01:24:06 UTC
view on stackexchange narkive permalink

Nos gustaría hacer una serie de bloques de accionamiento Gyro. Como regla general, ¿cuáles serían los beneficios y desventajas de usar el tanque de movimiento y mover bloques de dirección?

Mi diseño básico es leer el giróscopo y calcular el error en la dirección deseada y multiplicar el error por un ganancia. Esta ganancia sería la dirección del bloque de dirección de movimiento. Para mover tanque, restamos el error de un motor y sumamos el error al otro motor.

Otra opción sería cambiar solo la potencia del motor en un lado para la dirección del tanque.

Mi plan es probar los tres tipos, pero me gustaría escuchar comentarios de aquellos de ustedes con más experiencia.

No es el parámetro de dirección Move Steering Block porque cambia el centro de rotación del robot. Probablemente desee que el robot gire desde el centro del robot, por lo que está aislando la dirección en la que se dirige el robot de la ubicación del robot.No la configuración de potencia del bloque Tank Move porque el robot se detendrá a niveles de potencia cercanos a cero, por lo que el robot no querrá llegar a la dirección deseada. El Gyro funciona, pero su uso no siempre es obvio. Primero deberá resolver los problemas de reinicio y deriva.
Gracias por el comentario. El reinicio y la deriva están bajo control. Basado en lo que está diciendo que no haga, se eliminan mis opciones anteriores. ¿Qué camino recomendarías? Para el movimiento del tanque, pase en un nivel de potencia base típicamente del 40%, luego agregue el error a un motor y reste el error del otro.
Gire, rápido hasta cerrar y luego más lento con alguna compensación para manejar la rotación excesiva. El motor, la dirección o el tanque pueden funcionar. "Cerrar" depende del robot.
One responder:
jlar310
2017-03-03 19:45:49 UTC
view on stackexchange narkive permalink

Aquí hay algunos problemas con los giroscopios con los que aún debes lidiar.

  1. Retraso. La lectura del giróscopo va por detrás del movimiento real. Si, por ejemplo, está girando y esperando una lectura de 90 grados antes de detener el movimiento, estará más allá de los 90 grados después de detenerse, a menos que se esté moviendo muy lentamente.
  2. Precisión. El giroscopio solo lee en incrementos de 1 grado y tampoco es muy preciso (repetible).
  3. "Compensación". A medida que su algoritmo giroscópico procesa, la corrección de dirección restaurará el rumbo, pero es posible que ya no esté en la misma ruta lineal. Digamos que su robot tiene un sesgo hacia la izquierda. A medida que se desvía del rumbo hacia la izquierda y el algoritmo giroscópico se corrige de nuevo a la derecha, es posible que vuelva al rumbo correcto, pero su camino ahora está ligeramente a la izquierda de donde comenzó. Harás zig-zag así hasta el final.

Si puedes lidiar con esos problemas, tu idea de algoritmo es sólida. Pero puede encontrar que Move Steer y Move Tank son más precisos. Realmente depende de la situación.

He escrito bloques que usan el giroscopio para establecer el rumbo del movimiento, pero no para los giros en el lugar. Los giros en el lugar se vuelven muy difíciles por el problema del retraso, a menos que esté dispuesto a hacer todos los giros a la misma velocidad y use un valor de compensación simple para compensar (es decir, detener los motores a 86 grados, generalmente se detiene a 90).

Con mi bloque "Move Gyro", ni siquiera necesito ejecutar un movimiento de giro explícito, puedo decir "mover 10 pulgadas con rumbo 0 grados, luego 10 pulgadas con rumbo 90 grados, el El algoritmo gyro hace el giro automáticamente (y bastante rápido) a medida que avanza. Estará cerca, pero el resultado no será exactamente de 10 pulgadas en ambas direcciones.

EDIT

Después de volver a leer su pregunta, es posible que esté un poco fuera de lugar o simplemente no tenga claro lo que está preguntando. El uso de Move-Steer o Move-Tank depende de lo que esté tratando de hacer .

Para girar sin conducir hacia adelante, puede utilizar Move-Tank o Move-Steer hasta alcanzar el ángulo de giro deseado. Move-Tank debe pivotar principalmente en su lugar alrededor del punto medio entre las ruedas motrices. Un giro Move-Steer sin conducir hacia adelante requeriría una entrada de giro máxima que debería mantener una rueda sin motor. Esto se llama giro de pivote y probablemente se ejecute mejor operando los 2 motores de forma independiente. Apague un motor y aplique el freno, luego encienda el otro motor hasta que realice el giro deseado. Probablemente pueda hacer esto con la misma precisión sin el giróscopo. En un giro de pivote, una rueda se mueve a lo largo de un arco. La longitud de este arco para un ángulo de giro dado se puede calcular en función de la distancia entre las ruedas motrices (trayectoria de las ruedas) y la circunferencia de las ruedas. Por lo tanto, bloquee un motor, conduzca el otro motor la distancia necesaria para viajar a lo largo del arco. Si no le gusta la geometría, publique una nueva pregunta para las matemáticas sobre eso.

Para avanzar a lo largo de un rumbo de giro, la idea de su algoritmo es buena, excepto por mi punto en el punto 3 anterior. Pero si su robot rastrea bien, ese desplazamiento debería ser menor.



Esta pregunta y respuesta fue traducida automáticamente del idioma inglés.El contenido original está disponible en stackexchange, a quien agradecemos la licencia cc by-sa 3.0 bajo la que se distribuye.
Loading...