Ir para o conteúdo principal

Navegação GPS

Crie um algoritmo para guiar o Robot Herói até uma posição específica no campo. Utiliza os blocos [Conduzir para] e [Virar para a direção], o Sensor GPS, o Motor do Braço e o Motor de Admissão para conduzir o Hero Bot até à posição localizada em (1380,-1380) para apanhares a Tribola destacada a vermelho. De seguida, conduz o robô para a posição localizada em (600, -300) e marca o Triball no Gol da Aliança Vermelha.

  • Selecione a opção VRC Virtual Skills - Over Under Playground.
  • Utilize a lista de verificação pré-jogo para selecionar Local de partida “H”, SDireção de partida “Norte”e Pré-carga do robô “Não” para o robô.
  • Crie um algoritmo para guiar o robô até uma posição específica.
  • Programe o robô para rodar o motor do braço até que o braço esteja totalmente baixado para apanhar uma Triball no campo.
  • Utilize o algoritmo para navegar o robô até às coordenadas (1380, -1380) e rode o robô para a direção 135 graus.
  • Programa o robô para rodar o motor de entrada e apanhar a Tribola Verde destacada a vermelho.
  • Utilize o algoritmo para navegar o robô até às coordenadas (600, -300) e rode o robô para a direção 90 graus.
  • Programa o robô para rodar o Motor de Admissão e lançar a Tribola em direção ao Gol da Aliança Vermelha. 

Dicas úteis

  • Utilize o sensor GPS para identificar as coordenadas X e Y do robô herói no campo. Para mais informações sobre como utilizar o sensor GPS no VRC Over Under Playground, clique aqui
  • Utilize os blocos "Reporter" da categoria "Sensing" para obter os valores de posição do sensor GPS.

    Bloco de posição GPS VEXcode que lê 'posição GPS X em mm'.

    Bloco de posição GPS VEXcode que lê 'posição GPS Y em mm'.

    • Comando Python correspondente:

      posição_x_gps(MM)
      posição_y_gps(MM)
  • Utilize os blocos set da categoria Variáveis ​​para declarar duas variáveis ​​que irão armazenar as coordenadas X e Y originais do Hero Bot.

    Pilha de blocos de variáveis ​​Conjunto VEXcode. O primeiro bloco lê 'definir X1 para a posição GPS X em mm'. O segundo bloco lê 'definir Y1 para a posição GPS Y em mm'.

    • Comando Python correspondente:

      X1 = gps.x_position(MM)
      Y1 = gps.y_position(MM)
  • Para obter ajuda com a declaração de uma variável e o armazenamento de dados no projeto, selecione o botão “TUTORIAIS” em VEXcode VR e escolha o tutorial Armazenamento de Dados.

    Ícone de tutoriais da barra de ferramentas VEXcode VR.

    Ícone do tutorial de armazenamento de dados VEXcode VR.

  • Para mais informações sobre as regras de nomenclatura para variáveis ​​no VEXcode VR, este artigo.
  • Utilize as coordenadas do robô (x1, y1), as coordenadas da posição alvo (x2, y2) e a função arctan para encontrar a direção de deslocamento.
    • Calcule o ângulo theta θ da recta que liga estes dois pontos.

      Diagrama de duas expressões matemáticas. A primeira expressão lê-se 'theta é igual a atan((y2 - y1) / (x2 - x1))'. A segunda expressão diz 'menos pi / 2 é menor que theta, que é menor que pi / 2'.

      O diagrama matemático de cima para baixo mostra o robô na coordenada (X1, Y1) e uma linha que aponta para a coordenada (X2, Y2). A distância é representada pela variável d, e o ângulo é representado pela variável theta. A distância horizontal entre os pontos é representada como 'x2 - x1', e a distância vertical é representada como 'y2 - y1'.

    • Converta o ângulo theta θ para determinar a direção.

      Exemplo de pseudocódigo para a expressão matemática (Direção inicial: Norte):

      se X1 igual a X2:
      	se Y2 > Y1:
      		direcção = 0
      	senão:
      		direcção = 180
      senão:
      	se X2 > X1:
      		direcção = 90 - atan((Y2 - Y1) / (X2 - X1))
      	senão:
      		direcção = 270 - atan((Y2 - Y1) / (X2 - X1))
    • O diagrama de cima para baixo mostra o robô dentro de um círculo com etiquetas a marcar o círculo'a 360 graus.
  • Utilize o bloco de função da categoria Operadores e seleccione a função atan para calcular o ângulo theta θ

    Bloco de função VEXcode vazio que lê 'atan de' em branco.

    • Comando Python correspondente:

      math.atan() / math.pi * 180
  • Utilize as coordenadas do robô (x1, y1), as coordenadas da posição alvo (x2, y2) e o Teorema de Pitágoras para encontrar a distância percorrida.

    A expressão matemática é dada por 'd = sqrt((X2 - X1) ^ 2 + (Y2 - Y1) ^ 2)'

    O mesmo diagrama de cima para baixo de antes, mostrando a diferença entre duas coordenadas. O robô está na coordenada (X1, Y1) e uma linha está a apontar para a coordenada (X2, Y2). A distância é representada pela variável d, e o ângulo é representado pela variável theta. A distância horizontal entre os pontos é representada como 'x2 - x1', e a distância vertical é representada como 'y2 - y1'.

  • Utilize o bloco de função da categoria Operadores e seleccione a função sqrt para calcular a distância percorrida.

    Bloco de função VEXcode vazio que lê 'raiz quadrada de' em branco.

    • Comando Python correspondente:

      math.sqrt()