본문으로 바로가기

새로운 높이

전체 볼륨 가상 스킬 필드에 빨간색 점의 위치를 ​​원점(0, 0)으로 하고 히어로 봇 센터의 초기 위치를 좌표(0, 36)에 배치하는 좌표계를 생성합니다. [드라이브 포], [턴 투 헤딩], [스핀 투 포지션], [스핀 포] 블록을 사용하여 히어로 봇이 강조 표시된 네 개의 보라색 블록을 각각 집어 골 III에 넣도록 코딩하세요. 로봇을 특정 위치로 이동시켜 블록을 떨어뜨리고 목표 지점의 채우기 레벨이 되도록 하는 알고리즘을 만드세요.

  • VIQRC 가상 스킬 - 전체 볼륨 플레이그라운드를 선택하세요.
  • 히어로 봇이 강조 표시된 보라색 블록을 집어들어 세 번째 골에 넣도록 코딩하세요. 
    • 로봇을 특정 거리만큼 이동시키고 로봇의 X, Y 좌표를 추적하는 알고리즘을 만드세요. 알고리즘을 사용하여 로봇을 강조 표시된 보라색 블록으로 이동시키세요.
    • 로봇이 블록을 집어 올리도록 코딩하세요.
    • 로봇을 특정 위치로 이동시키는 알고리즘을 만드세요. 알고리즘을 사용하여 로봇을 좌표 (-70, 1270)로 이동시키고 로봇의 방향을 -45도로 회전시키십시오.
    • 로봇이 블록을 떨어뜨리도록 코딩하세요.
  • 히어로 봇이 두 번째로 강조 표시된 보라색 블록을 집어 첫 번째 보라색 블록을 넣었던 위치 및 방향과 동일한 위치에 골 III에 넣도록 코딩하세요. 
  • 히어로 봇이 세 번째로 강조 표시된 보라색 블록을 집어 첫 번째 보라색 블록을 넣었던 위치 및 방향과 동일한 위치에 골 III에 넣도록 코딩하세요. 
  • 히어로 봇이 강조 표시된 네 번째 보라색 블록을 집어들어 첫 번째 보라색 블록을 넣었던 위치 및 방향과 동일한 위치에 골 III에 넣도록 코딩하세요. 

유용한 팁

  • 로봇의 좌표(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 > 이면 x1은
      		방향은 90도 - θ, 그렇지
      	:
      		방향은 270도 - θ
    • 각도 세타(θ)를 구동 방향(헤딩)으로 변환합니다.  위에서 내려다본 그림으로, '로봇 방향,' 로봇을 나타내는 라벨이 붙어 있으며, 로봇 주위에 원이 그려져 있고 원의 360도를 표시하는 라벨이 있습니다.
  • 로봇의 좌표(x1,y1), 목표 위치의 좌표(x2,y2) 및 피타고라스 정리를 이용하여 이동 거리를 구하십시오. 수학식은 'd = sqrt((X2 - X1) ^ 2 + (Y2 - Y1) ^ 2)' 이전과 마찬가지로 두 좌표 간의 차이를 보여주는 위에서 내려다본 그림입니다. 로봇은 좌표 (X1, Y1)에 있고, 선은 좌표 (X2, Y2)를 향하고 있습니다. 거리는 변수 d로, 각도는 변수 theta로 표시됩니다. 두 점 사이의 수평 거리는 'x2 - x1'로, 수직 거리는 'y2 - y1' 으로 표현됩니다.

 

  • 연산자 범주의 함수 블록을 사용하여 atan 함수를 표현하고 각도 θ를 계산하세요. VEXcode 함수 블록은 연산자 블록을 모두 포함하며, 이 블록들은 모두 합쳐서 ((Y2 - Y1) / (X2 - X1))' 의 atan '읽습니다.
    • 일치하는 Python 명령: 

      math.atan((Y2 - Y1) / (X2 - X1)) / math.pi * 180
  • 연산자 범주의 함수 블록을 사용하여 피타고라스 정리를 표현하고 주행 거리를 계산하세요. VEXcode 함수 블록과 연산자 블록을 모두 포함하는 변수 블록을 설정합니다. 이 블록을 모두 합치면 '됩니다. driveDistance를 ((X2 - X1) * (X2 - X1) + (Y2 - Y1) * (Y2 - Y1))의'.
    • 일치하는 Python 명령: 

      주행거리 = math.sqrt((X2 - X1) * (X2 - X1) + (Y2 - Y1) * (Y2 - Y1))