본문으로 바로가기

목표를 향해 나아가라

특정 위치에 배치된 히어로봇이 트라이볼을 골대에 성공적으로 넣을 수 있도록 의 발사 방향 찾는 알고리즘을 만드세요. [Drive for] 및 [Turn to heading] 블록, GPS 센서, 암 모터 및 흡입 모터를 사용하여 히어로 봇이 강조 표시된 세 개의 트라이볼을 각각 집어 들고 (600, 600) 위치로 이동한 다음, 원하는 방향으로 회전하여 트라이볼을 레드 얼라이언스 골대에 발사하도록 코딩하십시오. 가장 빠른 기록이 승리입니다!

  • VRC 가상 기술 - 오버 언더 플레이그라운드를 선택하세요.
  • 경기 전 체크리스트를 사용하여 로봇의 시작 위치, 시작 방향 및 로봇 사전 부하 " " 선택하십시오.
  • 로봇을 특정 위치로 이동시키는 알고리즘을 만드세요.
  • 특정 위치에 있는 트라이볼을 집어 올릴 수 있도록 로봇을 해당 위치로 이동시키는 알고리즘을 개발하세요.
  • 트라이볼을 골대에 넣기 위한 최적의 발사 방향을 찾는 알고리즘을 만드세요.
  • 로봇이 경기장에서 트라이볼을 집어 올리기 위해 팔 모터를 회전시켜 팔을 완전히 내리도록 코딩하세요.
  • 히어로 봇이 (0,1500)에 위치한 강조 표시된 트라이볼을 집어 레드 얼라이언스 골대에 넣도록 코딩하세요. 
    • 알고리즘을 사용하여 로봇을 (0, 1500)에 위치한 강조 표시된 트라이볼을 집어 올리는 위치로 이동시키세요.
    • 로봇이 트라이볼을 집어 올리기 위해 흡입 모터를 회전시키도록 코딩하세요.
    • 알고리즘을 사용하여 로봇을 좌표 (600, 600)으로 이동시키세요.
    • 알고리즘을 사용하여 히어로 봇이 트라이볼을 골대에 넣을 수 있는 최적의 발사 방향을 찾으세요. 로봇을 발사 방향으로 돌리십시오.
    • 로봇이 흡입 모터를 회전시켜 트라이볼을 레드 얼라이언스 골대에 쏘도록 코딩하세요.
  • 히어로봇이 (1600, 1600)에 위치한 강조 표시된 트라이볼을 집어 들고 레드 얼라이언스 골대에 넣도록 코딩하세요.
  • 히어로 봇이 (-125, 1075)에 위치한 강조 표시된 트라이볼을 집어 레드 얼라이언스 골대에 넣도록 코딩하세요. 
  • 타이머 값을 출력 콘솔에 출력하려면 [print] 블록을 사용하십시오.

유용한 팁

  • 트라이볼이 최적의 발사 방향을 찾을 수 있도록 예상 궤적을 계획하세요.
    • 트라이볼이 골대의 기둥, 골대의 돌기, 또는 골대 안의 다른 트라이볼과 충돌하지 않도록 트라이볼의 궤적을 계획하십시오.
    • 목표 지점의 계획된 궤적 상에서 목표 지점을 선택하고 해당 목표 지점의 X, Y 좌표를 확인합니다.
    • 로봇의 좌표(x1,y1), 목표 지점의 좌표(x2,y2) 및 atan 함수를 사용하여 발사 방향을 찾습니다.
      • 이 두 점을 연결하는 선분의 ​​각도 θ를 계산하세요. 

        두 수학식을 나타낸 그림. 첫 번째 표현식은 'theta는 atan((y2 - y1) / (x2 - x1))' 과 같습니다. 두 번째 표현은 '- pi / 2가 θ보다 작고, θ는 pi / 2' 보다 작다는 것입니다.

        위에서 내려다본 수학적 도표는 로봇이 좌표 (X1, Y1)에 위치하고 있으며, 선이 좌표 (X2, Y2)를 향하고 있음을 보여줍니다. 거리는 변수 d로, 각도는 변수 theta로 표시됩니다. 두 점 사이의 수평 거리는 'x2 - x1'로, 수직 거리는 'y2 - y1' 으로 표현됩니다.

    • 각도 세타(θ)를 로봇 진행 방향으로 변환합니다.

      수학 표현식에 대한 의사 코드 예시 (시작 방향: 북쪽):

      X1이 X2와 같으면:
      	Y2 > Y1이면:
      		헤딩 = 0,
      	그렇지 않으면:
      		헤딩 = 180
      그렇지 않으면:
      	X2 > 이면:
      		헤딩 = 90 - atan((Y2 - Y1) / (X2 - X1)),
      	그렇지 않으면:
      		헤딩 = 270 - atan((Y2 - Y1) / (X2 - X1))

      위에서 내려다본 그림은 원 안에 로봇이 있고, 원 안에는'도와 360도를 나타내는 레이블이 표시되어 있습니다.

    • 연산자 범주에서 함수 블록을 사용하고 atan 함수를 선택하여 각도 θ를 계산합니다.

      'atan을 읽는 빈 VEXcode 함수 블록(공백'.

      • 일치하는 Python 명령:

        math.atan() / math.pi * 180

VRC 오버 언더 플레이그라운드에서 GPS 센서 사용에 대한 자세한 내용은 여기 클릭 .