Saltar al contenido principal

Navegación GPS

Crea un algoritmo para guiar al Hero Bot a una posición específica en el campo. Utilice los bloques [Conducir para] y [Girar hacia la dirección], el sensor GPS, el motor del brazo y el motor de admisión para conducir al Hero Bot a la posición ubicada en (1380,-1380) para recoger la Triball resaltada en rojo. Luego, conduce el robot a la posición ubicada en (600,-300) y anota el Triball en la portería de la Alianza Roja.

  • Seleccione el área de juegos VRC Virtual Skills - Over Under.
  • Utilice la lista de verificación previa al partido para seleccionar Ubicación de inicio “H”, SDirección de inicio “Norte”, y Precarga del robot “No” para el robot.
  • Crea un algoritmo para guiar al robot hasta una posición específica.
  • Programa el robot para que haga girar el motor del brazo y lo baje completamente para recoger una pelota Triball en el campo.
  • Utilice el algoritmo para dirigir el robot a las coordenadas (1380, -1380) y girarlo hacia una dirección de 135 grados.
  • Programa el robot para que haga girar el motor de admisión y recoja la bola tricolor verde resaltada en rojo.
  • Utilice el algoritmo para dirigir el robot a las coordenadas (600, -300) y girarlo a una dirección de 90 grados.
  • Programa el robot para que haga girar el motor de admisión y lance la Triball hacia la meta de la Alianza Roja. 

Consejos útiles

  • Utilice el sensor GPS para identificar las coordenadas X e Y del Hero Bot en el campo. Para obtener más información sobre el uso del sensor GPS en el parque infantil VRC Over Under, haga clic aquí
  • Utilice los bloques Reporter de la categoría Sensing para obtener valores de posición del sensor GPS.

    Bloque de posición GPS VEXcode que lee la posición GPS 'X en mm'.

    Bloque de posición GPS VEXcode que lee la posición GPS 'Y en mm'.

    • Comando Python correspondiente:

      gps.x_position(MM)
      gps.y_position(MM)
  • Utilice los bloques set de la categoría Variables para declarar dos variables que almacenen las coordenadas X e Y originales del Hero Bot.

    Pila de bloques de variables VEXcode Set. El primer bloque lee 'establecer X1 a la posición GPS X en mm'. El segundo bloque lee 'establece Y1 a la posición GPS Y en mm'.

    • Comando Python correspondiente:

      X1 = gps.x_position(MM)
      Y1 = gps.y_position(MM)
  • Para obtener ayuda sobre cómo declarar una variable y almacenar datos en el proyecto, seleccione el botón "TUTORIALES" en VEXcode VR y elija el tutorial Almacenamiento de datos.

    Icono de tutoriales de la barra de herramientas VEXcode VR.

    Icono del tutorial de almacenamiento de datos de VEXcode VR.

  • Para obtener más información sobre las reglas de nombres para variables en VEXcode VR, este artículo.
  • Utilice las coordenadas del robot (x1,y1), las coordenadas de la posición objetivo (x2,y2) y la función atan para encontrar la dirección de avance.
    • Calcula el ángulo theta θ de la línea que conecta estos dos puntos.

      Diagrama de dos expresiones matemáticas. La primera expresión dice 'theta es igual a atan((y2 - y1) / (x2 - x1))'. La segunda expresión dice que 'menos pi / 2 es menor que theta, que es menor que pi / 2'.

      El diagrama matemático de arriba hacia abajo muestra al robot en la coordenada (X1, Y1) y una línea que apunta hacia la coordenada (X2, Y2). La distancia se representa con la variable d, y el ángulo con la variable theta. La distancia horizontal entre los puntos se representa como 'x2 - x1', y la distancia vertical se representa como 'y2 - y1'.

    • Convierta el ángulo theta θ para controlar el rumbo.

      Ejemplo de pseudocódigo para la expresión matemática (Dirección inicial: Norte):

      Si X1 es igual a X2:
      	Si Y2 > Y1:
      		Encabezado = 0
      	En caso contrario:
      		Encabezado = 180
      En caso contrario:
      	Si X2 > X1:
      		Encabezado = 90 - atan((Y2 - Y1) / (X2 - X1))
      	En caso contrario:
      		Encabezado = 270 - atan((Y2 - Y1) / (X2 - X1))
    • El diagrama de arriba hacia abajo muestra el robot dentro de un círculo que tiene etiquetas que marcan el círculo'a 360 grados.
  • Utilice el bloque función de la categoría Operadores y seleccione la función atan para calcular el ángulo theta θ.

    Bloque de función VEXcode vacío que lee 'atan de un espacio en blanco'.

    • Comando Python correspondiente:

      math.atan() / math.pi * 180
  • Utilice las coordenadas del robot (x1,y1), las coordenadas de la posición objetivo (x2,y2) y el teorema de Pitágoras para calcular la distancia de desplazamiento.

    La expresión matemática se lee 'd = sqrt((X2 - X1) ^ 2 + (Y2 - Y1) ^ 2)'

    El mismo diagrama de arriba hacia abajo que antes, que muestra la diferencia entre dos coordenadas. El robot se encuentra en la coordenada (X1, Y1) y una línea apunta hacia la coordenada (X2, Y2). La distancia se representa con la variable d, y el ángulo con la variable theta. La distancia horizontal entre los puntos se representa como 'x2 - x1', y la distancia vertical se representa como 'y2 - y1'.

  • Utilice el bloque de función de la categoría Operadores y seleccione la función sqrt para calcular la distancia recorrida.

    Bloque de función VEXcode vacío que lee 'raíz cuadrada de un espacio en blanco'.

    • Comando Python correspondiente:

      math.sqrt()