Skip to main content

레슨 3: 보고된 센서 피드백을 사용하여 목표에 디스크 배치

2과에서는 VR 로봇이 디스크에서 떨어지기 위해 시작 지점으로 후진 주행했습니다. 이를 위해 사용자는 VR 로봇이 이동해야 하는 정확한 거리를 계산해야 했습니다. 항상 가능한 것은 아닙니다. 대신 VR 로봇은 보고된 센서 값을 사용하여 일관된 정밀도로 디스크를 집어 올리고 떨어뜨릴 수 있습니다. 

3과에서는 보고된 센서 피드백을 사용하여 VR 로봇이 목표로 돌아갈 때 주행을 멈춰야 하는 위치를 결정합니다. 이번 수업의 앞부분에서 <Eye Sensor near object> 블록을 사용했을 때는 목표 지점에서 각 디스크까지의 거리를 알 필요가 없습니다.

디스크 이동 놀이터의 VR 로봇에 첫 번째 파란색 디스크가 전자석에 부착되어 있습니다.

VR 로봇은 거리 센서에서 수집한 데이터를 사용하여 운전을 멈출 위치를 결정하고 파란색 목표를 향해 다시 운전합니다. VR 로봇이 파란색 골 안에 멈추면 VR 로봇은 파란색 디스크를 떨어뜨립니다.

  • Unit8Lesson3 프로젝트 작업을 계속하세요.
  • 거리 센서는 VR 로봇의 앞쪽에서 가장 가까운 물체까지의 거리를 측정합니다. 이러한 이유로 VR 로봇은 파란색 목표를 향해 다시 주행하기 전에 180도 회전해야 합니다.
  • VR 로봇은 놀이터 뒷벽에 있는 거리 센서를 사용하여 디스크를 떨어뜨릴 위치를 결정합니다. 이러한 이유로 VR 로봇은 파란색 목표를 향해 다시 주행하기 전에 180도 회전해야 합니다.
  • [방향 전환] 블록을 사용하면 VR 로봇이 올바른 방향으로 회전하도록 할 수 있습니다.

    VEXcode VR 도구 상자에서 제목 블록으로 전환합니다. 블록에는 '90도 방향으로 회전하세요'라고 적혀 있습니다.

스위치 블록 사용 

이것은 스위치[방향 전환] 블록입니다. 괄호 안의 숫자 값을 변경하면 회전 정도를 수정할 수 있습니다. 숫자는 측정 단위(DEGREES) 앞에 쉼표로 구분하여 써야 합니다. 

VEXcode VR 방향 전환 블록에서 drivetrain dot turn_to_heading(90, DEGREES)을 읽는 Python 명령어를 사용합니다.

귀하의 정보를 위해

[방향 전환] 블록은 자이로 센서를 이용해 VR 로봇을 특정 방향으로 전환합니다. VR 로봇의 회전 방향(좌우)은 자이로 센서의 현재 방향에 따라 결정됩니다. [방향 전환] 블록은 VR 로봇의 위치와 관계없이 VR 로봇을 특정 방향으로 안내하는 데 사용됩니다. 디스크를 집어 올리거나 떨어뜨릴 때 VR 로봇이 진로에서 벗어날 수 있습니다. [방향 전환] 블록을 사용하면 VR 로봇이 이전 방향에 대한 상대적인 위치가 아닌 절대 위치로 회전하게 됩니다.

VR 로봇의 방위 위치를 나타낸 다이어그램입니다. 중앙에 VR 로봇을 위에서 내려다보는 원이 있고, 로봇의 앞면이 0도 방향을 향해 위를 향하고 있습니다. 시계 방향으로, 이후의 90도 방향은 90도, 180도, 270도로 표시됩니다.
  • 세 번째 주석 아래에 [제목으로 이동] 블록을 추가합니다.

    이전 페이지와 동일한 VEXcode VR 프로젝트이며, 세 번째 댓글 아래에 제목 블록을 추가했습니다. 이 프로젝트는 이제 시작 시 첫 번째 파란색 디스크까지 주행하고, 아래쪽 눈이 물체에 가까워질 때까지 반복하고, 앞으로 주행한 다음 주행을 중지합니다. 다음은 블록을 강화하기 위해 전자석에 에너지를 공급하여 첫 번째 파란색 디스크를 집어 올리는 것에 대한 설명입니다. 세 번째 코멘트는 블루 골을 향해 달려가고, 그 다음에는 90도 방향으로 블록을 향하는 것으로 되어 있습니다.
  • [방향 전환] 블록을 180도로 설정합니다.

    동일한 VEXcode VR 프로젝트에서 방향 전환 블록의 매개변수가 180도로 변경되었습니다. 이제 이 프로젝트의 세 번째 댓글 섹션에는 "푸른 목표를 향해 나아가세요, 180도 방향으로 회전하세요"라는 글이 있습니다.
  • 이제 VR 로봇이 시작 위치를 향했으므로, VR 로봇은 파란색 골대를 향해 다시 달려가야 합니다. [제목으로 이동] 블록 아래에 [반복] 블록을 추가합니다.

    동일한 VEXcode VR 프로젝트에 방향 전환 블록 뒤에 반복 블록을 추가했습니다. 반복 블록의 매개변수가 비어 있습니다.
  • VR 로봇은 파란색 골로 돌아가기 위해 거리 센서의 데이터를 사용하여 VR 로봇이 파란색 골 안에 있는지 확인합니다. 이전 수업에서 설명한 대로, Disk Mover Playground 의 각 격자 사각형의 크기는 200밀리미터(mm) x 200밀리미터(mm)입니다.

    Disk Mover Playground의 왼쪽 하단 모서리를 위에서 아래로 확대해서 본 모습이며, Playground의 격자 사각형 크기는 높이 200mm, 너비 200mm로 표시되어 있습니다.
  • 이러한 측정값을 사용하면 파란색 골대의 중심이 놀이터 벽으로부터 약 200밀리미터(mm) 떨어져 있음을 알 수 있습니다.

    디스크 무버 놀이터의 왼쪽 하단에 있는 파란색 골대를 위에서 아래로 확대해서 본 모습. 벽에서 골대 중앙까지의 대략적인 치수는 200mm로 표시되어 있습니다.
  • 거리 센서가 VR 로봇과 놀이터 벽 사이의 거리가 200밀리미터(mm) 미만이라고 보고하면 VR 로봇은 운전을 중지해야 합니다. [반복] 블록에 다음 블록을 추가합니다.

    반복할 때까지 블록의 매개변수에 중첩 전면 거리(mm)가 있는 연산자 블록이 있는 동일한 VEXcode VR 프로젝트입니다. 이제 프로젝트의 세 번째 댓글 섹션에는 "푸른 목표 지점까지 주행하세요; 180도 방향으로 회전하세요; 전방 거리(mm)가 50 미만이 될 때까지 반복하세요"라고 적혀 있습니다.
  • <Less than> 블록의 매개변수를 200으로 변경합니다.

    동일한 프로젝트에서, 'less than' 블록의 매개변수를 200으로 변경했습니다. 이제 반복 블록에 '전면 거리(mm)가 200 미만이 될 때까지 반복'이라고 표시됩니다.
  • 이 [반복] 블록에 [드라이브] 블록을 추가합니다. 이렇게 하면 VR 로봇이 거리 센서가 200밀리미터(mm) 미만의 거리를 보고할 때까지 전진하도록 지시합니다.

    반복할 때까지 블록의 C 내부에 드라이브 블록을 추가하는 동일한 프로젝트입니다. 이 프로젝트의 세 번째 댓글 섹션은 이제 "블루 골까지 주행하세요; 180도 방향으로 회전하세요; 앞 거리(mm)가 200 미만이 될 때까지 반복하세요; 전진하세요"로 읽힙니다.
  • VR 로봇이 파란색 목표 지점(벽으로부터 200mm)에 도달하면 VR 로봇은 주행을 멈춰야 합니다. [반복] 블록 아래에 [운전 중지] 블록을 추가합니다.

    반복까지 블록 뒤에 운전 정지 블록을 추가한 동일한 프로젝트입니다. 세 번째 댓글 섹션은 이제 "푸른 골까지 주행하세요; 앞쪽 거리(mm)가 200 미만이 될 때까지 반복하세요; 앞으로 주행하세요; 그런 다음 주행을 중지하세요."로 읽힙니다.
  • 이제 VR 로봇이 파란색 골에 멈췄으므로 디스크를 떨어뜨릴 수 있습니다. 네 번째 주석 아래에 [전자석 활성화] 블록을 추가하고 블록을 '드롭'으로 설정합니다.

    네 번째 주석 뒤에 매개변수를 drop으로 설정하고 Energize Electromagnet 블록을 사용한 동일한 프로젝트가 추가되었습니다. 네 번째 댓글 섹션에는 이제 "파란색 골에 파란색 디스크를 떨어뜨리고, 자석에 에너지를 공급하여 떨어뜨리세요"라고 적혀 있습니다.
  • VR 로봇은 디스크에 부딪히거나 넘어지는 것을 피하기 위해 짧은 거리를 후진으로 주행해야 합니다. 디스크와 충돌하면 VR 로봇이 진로에서 벗어날 가능성이 있습니다. 다음 블록을 추가하여 VR 로봇이 100밀리미터(mm) 후진 주행하고 다시 0도 방향으로 회전하도록 지시합니다.

    동일한 프로젝트에 드라이브 블록과 턴 투 헤딩 블록을 스택 맨 아래에 추가했습니다. 이제 네 번째 코멘트는 다음과 같습니다. 파란색 골에 파란색 디스크를 떨어뜨립니다. 자석에 전원을 공급하여 떨어뜨립니다. 100mm 후진하여 방위 0도로 돌립니다.
  • 아직 열려 있지 않으면 Disk Mover Playground 을 열고 프로젝트를 실행합니다.
  • VR 로봇은 전진하여 첫 번째 디스크를 집어 올린 다음 180도 방향으로 방향을 돌려 파란색 목표를 향합니다. 그러면 VR 로봇은 거리 센서에서 얻은 값을 사용하여 언제 운전을 멈추고 파란색 디스크를 버릴지 결정합니다.

    파란색 골에 파란색 디스크를 놓고, VR 로봇이 파란색 골 가장자리에 있는 놀이터의 나머지 디스크를 바라보는 모습을 가까이서 본 모습입니다.
  • 이 프로젝트의 두 번째 [반복] 블록이 어떻게 기능하는지 주목하세요.
    • VR 로봇의 거리 센서가 놀이터 벽과의 거리가 200밀리미터(mm) 이내라고 감지하면 프로젝트는 [반복] 블록 아래에 있는 스택의 다음 블록으로 이동합니다.
    • 이 프로젝트에서는 VR 로봇이 운전을 멈추고 전자석을 파란색 골에 떨어뜨린다는 의미입니다.

이 강의의 나머지 부분을 계속하려면 다음 버튼을 선택하세요.