수업 1: 상대 운동
이전에는 다양한 모양을 그리기 위해 6축 팔을 특정 좌표로 이동했습니다. 이번 수업에서는 6축 팔을 움직여 정사각형을 그리는 또 다른 방법을 알아봅니다. 절대적 움직임과 상대적 움직임의 개념을 소개한 후, 두 가지 종류의 움직임을 결합하여 6축 팔을 코딩할 수 있습니다.
이 수업에서는 다음을 배우게 됩니다.
- 절대적 운동과 상대적 운동의 차이.
- 6축 암을 의도한 대로 움직이기 위해 프로젝트에서 절대적 이동이나 상대적 이동을 적용해야 하는 경우는 언제인가요?
- 프로젝트에서 증가 위치 블록을 사용하여 상대적 이동을 코딩하는 방법.
이 수업을 마치면 절대적 움직임과 상대적 움직임을 조합하여 사각형을 그리는 6축 팔을 코딩할 수 있게 됩니다.

절대 운동을 이용한 정사각형 그리기
이전 단원에서는 각 지점의 좌표를 찾아 정사각형을 그린 다음, 6축 팔을 해당 위치로 이동했습니다. 이 과정을 검토하여 6축 암이 사용하는 움직임의 종류에 주목해 보겠습니다.
정사각형 ABCD의 좌표를 문서화합니다.
공학 노트에 해당 사각형에 대한 알려진 정보를 기록하세요.
- 각 변의 길이는 75mm입니다.
- A점은 (100, 100, 0)입니다.
- B점은 (175, 100, 0)입니다.
- C점은 (175, 175, 0)입니다.
- D점은 (100, 175, 0)입니다.

이 영상의 단계에 따라 새로운 블록 프로젝트를 열어보세요.
도구 모음에서 파일 옵션을 선택하여 파일 메뉴를 열고, 새 블록 프로젝트를 선택합니다. EXP Brain 또는 6축 Arm 옵션이 있는 팝업 창이 나타납니다. 6축 암선택하세요. 그러면 새로운 프로젝트가 열립니다.
여기에 표시된 프로젝트를 VEX코드로 다시 만들어 보세요.

프로젝트의 블록을 살펴보세요. 이 프로젝트가 실행되면 6축 암이 어떤 역할을 할 것이라고 생각하시나요?
엔지니어링 노트에 예측 내용을 기록하세요. 6축 암이 어떻게 움직이는지 말로 설명하고, 화이트보드에 그려질 내용을 스케치해 보세요.

6축 암이 VEX코드에 연결되어 있는지 확인하세요. 프로젝트를 실행하고 6축 암의 동작을 관찰합니다.

6축 암의 움직임이 완료되면 프로젝트를 중지합니다.
6축 암이 예상한 대로 그려졌나요? 왜 그럴까? 아니면 왜 그렇지 않을까?

이 프로젝트에서는 6축 암이 절대 이동 사용하여 정사각형을 그립니다. 즉, 6축 암이 사각형의 각 면을 그리기 위해 특정 좌표로 이동한다는 의미입니다. 6축 암이 이전에 어디에 위치했든 동일한 좌표에 도달하게 됩니다. 이 방법은 때때로 유용할 수 있지만, 우리가 만들고 있는 도형의 모든 점에 대한 정확한 좌표가 필요합니다. 프로젝트에서 변의 길이에 대한 정보를 사용하여 정사각형을 그리는 또 다른 방법이 있습니다.
상대적 이동을 이용한 정사각형 그리기
정사각형의 변의 길이를 이해하면 6축 팔이 각 변을 정확하게 그리기 위해 현재 위치에서 에서얼마나 이동해야 하는지 알아내는 데 도움이 됩니다. 사각형의 네 모서리를 모두 정확히 지정하는 대신, 시작점을 기준으로 팔 만큼 이동시켜 모양을 완성할 수 있습니다.
상대 운동이란 무엇인가?
상대 이동 6축 암을 현재 위치를 기준으로 새로운 위치로 이동합니다. 시작점과 정사각형의 변의 길이가 주어지면, 6축 팔을 시작 위치를 기준으로 x축과 y축을 따라에서움직일 수 있습니다. 75mm 정사각형을 사용하여 이를 분석해 보겠습니다.
우리는 시작 좌표에 도달하기 위해 절대적인 이동으로 시작할 것입니다. 여기에서 각 면을 상대적인 이동을 통해 그릴 수 있습니다. 
프로젝트를 편집하여 이것이 실제로 어떻게 적용되는지 살펴보겠습니다.
사각형을 그리는 데 사용된 이동 블록을 제거하여 위치 로 이동합니다.
여기 영상에서는 앞서 실행한 프로젝트의 맨 아래 5개 블록이 삭제되는 모습을 보여줍니다. 남은 블록은 두 개의 주석과 Set end effector 블록입니다.
각 사각형의 면을 그리기 위해 6축 팔의 움직임을 설명하는 5개의 개의 댓글 블록을 프로젝트에 추가하세요. 프로젝트에 다음 주석을 입력하세요.
- 절대 이동으로 A 지점으로 이동
- 상대적 이동으로 AB면을 그립니다.
- 상대적 움직임으로 BC 측면을 그립니다.
- 상대적 이동으로 측면 CD 그리기
- 상대적 이동으로 DA 측면 그리기
이런 식으로 코멘트를 추가하면 체계적으로 정리하는 데 도움이 되고, 작업을 완료하는 데 필요한 단계를 순서대로 보여주는 데도 도움이 됩니다.

상대적 움직임을 이용한 AB면 그리기
"절대 이동으로 A 지점으로 이동"이라는 주석 아래에 이동 위치 블록을 추가합니다. 매개변수에 시작 좌표(점 A)를 입력합니다.
- A점(100, 100, 0)
이 프로젝트는 이전 프로젝트와 마찬가지로 절대적인 움직임으로 시작됩니다.

상대적인 이동으로 AB면을 그리려면 증가 위치블록을 사용합니다. 
증가 위치 블록은 6축 암을 x, y, z축을 따라 특정 거리만큼 이동합니다. 이것은 상대적인 이동으로 6축 팔을 움직이는 데 사용할 블록입니다. 증가 위치블록은 6축 암을 현재 위치를 기준으로 일정 거리만큼 이동합니다.
"상대적 이동으로 AB면을 그립니다"라는 주석 아래에증가 위치 블록을 추가합니다.

증가 위치 블록에는 x, y, z축에 대한 매개변수가 있다는 점에 유의하세요. 이는축이 각 축을 따라이동할, 또는 각 축에서 6축 암의 상대적 이동과 관련이 있습니다. 이러한 매개변수는 6축 팔이 절대 이동을 사용했을 때 위치 이동 블록에 있었던 것처럼 좌표 값인아닌입니다.
정사각형의 한 변을 그리는 데 필요한 매개변수를 결정하려면 두 가지 정보가 필요합니다.
- 현재 위치를 기준으로 6축 암을 이동할 거리
- 6축 암이 이동할 축
정사각형의 AB면을 그리려면 6축 팔이 현재 위치를 기준으로 이동하는 거리는 변의 길이 또는 75mm입니다. A지점에서 B지점으로 이동하려면 6축 암이 x축을 따라 양의 방향으로 이동합니다. y축이나 z축을 따라 움직이지 않습니다.
증가 위치 블록에서 x 매개변수를 75로 설정합니다. y와 z 매개변수는 0으로 유지됩니다.
이렇게 하면 6축 암이 x축을 따라서 양의 방향으로만 75mm 이동합니다.

지금의 프로젝트를 살펴보세요. 이것이 실행되면 6축 암이 어떤 동작을 할 것이라고 생각하시나요?
엔지니어링 노트에 예측 내용을 기록하세요. 6축 팔이 그릴 것 같은 그림을 그려보세요.

6축 암이 VEX코드에 연결되어 있는지 확인하세요. 프로젝트를 실행하고 6축 암의 동작을 관찰합니다.

6축 암이 더 이상 움직이지 않으면 프로젝트를 중지합니다.
6축 암이 예상대로 움직였나요? 왜 그럴까? 아니면 왜 그렇지 않을까?

상대적 움직임을 이용한 BC 면 그리기
우리는 배운 것을 적용하여 정사각형의 첫 번째 변, 즉 BC 변을 그릴 수 있습니다.
"상대적 이동으로 BC 측면을 그립니다"라는 주석 아래에증가 위치 블록을 추가합니다.

증가 위치블록의 매개변수를 결정합니다.
BC 측면을 그리려면 6축 암이 75mm 움직여야 합니다. 현재 위치를 기준으로 이동 방향을 살펴보면 6축 팔이 y축을 따라 이동해야 한다는 것을 알 수 있습니다. 6축 암은 x축이나 z축을 따라 움직이면 안 됩니다.

증가 위치블록의 y 매개변수를 75로 설정합니다.
이렇게 하면 6축 암이 y축을 따라 75mm 이동합니다. x축과 z축의 매개변수가 0이므로 6축 암은 x축이나 z축에서 움직이지 않습니다.

프로젝트가 실행될 때 6축 암이 어떻게 움직일지 예측해 보세요. 엔지니어링 노트에 예측 내용을 기록하세요.
6축 팔이 무엇을 그릴지 스케치해 보세요.

프로젝트를 실행하고 6축 암의 동작을 관찰합니다.

6축 암의 움직임이 완료되면 프로젝트를 중지합니다.
6축 암이 예상한 대로 그려졌나요? 왜 그럴까? 아니면 왜 그렇지 않을까?

상대적 움직임을 이용한 측면 CD 그리기
이제 정사각형의 처음 두 면을 그렸으므로 프로젝트를 계속 진행하여 CD 면을 그릴 수 있습니다.
"상대적 이동으로 측면 CD 그리기"라는 주석 아래에증가 위치 블록을 추가합니다.

증가 위치블록에 대한 매개변수를 결정합니다.
측면 CD를 그리려면 측면 길이는 여전히 75mm입니다. 6축 팔의 현재 위치를 기준으로 해당 움직임의 방향을 살펴보면, 움직임이 다시 x축을 따라 이루어진다는 것을 알 수 있습니다.
6축 암은 사각형의 이쪽에서 y축이나 z축으로 움직이면 안 됩니다.

증가 위치블록의 x 매개변수를 75로 설정합니다.

프로젝트가 실행될 때 6축 암이 어떻게 움직일지 예측해 보세요. 엔지니어링 노트에 예측 내용을 기록하고, 그려질 내용의 스케치도 꼭 포함하세요.

프로젝트를 실행하고 6축 암의 동작을 관찰합니다.
예상한 대로 결과가 나왔나요? 왜 그럴까? 아니면 왜 그렇지 않을까?

6축 암은 의도한 대로 측면 CD를그리는 것이 아니라그렸습니다.
왜 그런 일이 일어났는지 살펴보겠습니다. 변의 길이는 변하지 않았으므로 그려진 선의 길이는 정확합니다. 하지만 그 움직임의방향그렇지 않습니다.
증가 위치블록에 매개변수를 양수 또는 음수로 입력하여 양수 또는 음수 방향으로 이동하는 것을 설명할 수 있습니다.
AB면과 BC면의 경우, 6축 암은 x축과 y축을 따라 양의 방향으로 움직이므로 양수를 사용했습니다. 하지만 측면 CD를 그리려면 6축 암이에서방향으로 움직여야 하므로 매개변수에 음수 값을 사용해야 합니다.
증가 위치 블록의 x 매개변수를 -75로 설정합니다.
이렇게 하면 6축 암이 x축을 따라에서방향으로 75mm 이동합니다. 6축 암은 측면 CD를 그리기 위해 해당 축을 따라 움직이지 않으므로 y축과 z축 값을 변경할 필요가 없습니다.

프로젝트를 다시 실행하고 6축 암의 동작을 관찰합니다.
측면 CD가 의도한 대로 그려졌나요? 왜 그럴까? 아니면 왜 그렇지 않을까?

상대 이동을 통한 측면 DA 그리기
이제 정사각형의 세 변을 그렸으므로, 배운 내용을 적용하여 마지막 면을 그릴 수 있습니다.
"상대적 이동으로 측면 DA 그리기"라는 주석 아래에증가 위치 블록을 추가합니다.

증가 위치 블록에 대한 매개변수를 결정합니다.
DA 측면을 그리기 위해 6축 암은 다시 75mm만큼 움직입니다. 현재 위치를 기준으로 그 이동 방향을 살펴보면, 6축 암은 다시 y축을 따라 이동해야 합니다. DA 측면을 그리려면 x축이나 z축을 따라 이동할 필요가 없습니다.

증가 위치 블록의 y 매개변수를 75로 설정합니다. x 및 z 매개변수는 0으로 유지되어야 합니다.

프로젝트가 실행될 때 6축 암이 어떻게 움직이고 무엇을 그릴지 예측합니다. 엔지니어링 노트에 예측 내용을 기록하세요.

프로젝트를 실행하고 6축 암의 동작을 관찰합니다.
예상대로 움직이나요? 의도한 대로 정사각형의 마지막 면이 그려지나요? 왜 그럴까? 아니면 왜 그렇지 않을까?

의도한 대로 DA 측면을 그리려면 6축 팔을 y축을 따라에서방향으로 움직여야 합니다. 하지만 y 매개변수를 75mm로 설정하여 6축 암이 y축을 따라에서방향으로 움직여야 함을 나타냅니다.

마지막 증가 위치블록의 y 매개변수를 -75로 설정합니다. 6축 암이 의도한 대로 측면 DA를 그리기 위해 이러한 축을 따라 움직일 필요가 없으므로 x 및 z 매개변수는 0으로 유지되어야 합니다.
6축 암은 이제 y축을 따라 음의 방향으로 움직여 정사각형을 완성해야 합니다.

프로젝트를 실행하고 6축 암의 움직임을 관찰합니다.
의도한 대로 사각형이 그려지나요? 왜 그럴까? 아니면 왜 그렇지 않을까?

프로젝트의 이름을 바꾸고 저장하세요.

상대적 이동을 사용하는 이유는 무엇입니까?
6축 암의 동작은 절대 이동과 상대 이동을 모두 사용해 75mm 정사각형을 그리는 것과 동일하지만, 상대 이동을 사용하면 유연성과 편의성이 더 뛰어납니다. 예를 들어, 다른 위치에 75mm 정사각형을 그리려면 어떻게 해야 할까요? 절대 이동을 사용하면 4개 지점의 새로운 좌표를 찾고 6축 암에 코드를 입력하여 이를 연결합니다. 하지만 상대적 이동을 사용하면 시작 좌표만 알면 되고 나머지는 동일하게 유지됩니다.
절대 이동은 시작 위치와 관계없이 항상 동일한 좌표로 이동합니다. 이 기능은 프로젝트를 시작하기 위해 6축 암을 특정 위치로 옮겨야 할 때나 이전 좌표에 관계없이 해당 위치에 도달할 수 있도록 해야 할 때 유용합니다. 아래 영상은 화이트보드 부착물의 세 개의 다른 위치에서 마커를 시작하는 모습을 보여줍니다. 모든 마커는 절대 이동으로 움직이기 때문에 위치 (75, 75, 0)으로 이동합니다.
상대 이동은 현재 위치를 기준으로 새로운 위치로 이동합니다. 이 기능은 사각형을 그릴 때처럼 알려진 위치를 기준으로 6축 암을 이동해야 하거나 특정 패턴으로 이동해야 할 때 유용합니다. 아래 영상은 화이트보드에 부착된 마커가 위와 같은 세 위치에서 시작하는 모습을 보여줍니다. 모든 마커는 동시에 대각선으로 이동합니다. 왜냐하면 x 값이 75만큼 증가하고 y 값이 동시에 75만큼 증가했기 때문입니다. 마커의 끝 위치는 모두 다르며 x 및 y 값이 증가함에 따라 시작 위치와 직접적으로 관련됩니다.
이 수업의 두 프로젝트는 모두 동일한 정보를 사용했지만, 코드에서 사용하는 방식은 달랐습니다. 우리의 프로젝트를 더 자세히 살펴보겠습니다. 왼쪽의 이미지는 우리의 Absolute Movement 프로젝트에서 나온 것입니다. 75mm의 측면 길이는 A지점에서 B지점으로 이동하는 데 필요한 x좌표의 변화에 해당합니다.
오른쪽 이미지는 우리의 상대적 이동 프로젝트에서 가져온 것입니다. 여기서 75mm의 측면 길이는 6축 암이 x축을 따라 움직이는 거리에 해당합니다. 
상대적 이동을 사용하면 프로젝트에 유연성을 더할 수 있으므로 다양한 목적에 맞게 코드를 조정하고 적용하기가 더 쉬워집니다.
활동
이제 절대 이동과 상대 이동을 모두 사용하여 6축 팔을 움직이도록 코딩했으므로 이러한 기술을 연습할 차례입니다. 이 활동에서는 6축 팔을 코딩하여 화이트보드에 세 개의 정사각형을 그리도록 프로젝트를 편집합니다. 
설정: 엔지니어링 노트북에 다음 정보를 기록하세요.
- 각 사각형의 시작 좌표는 다음과 같습니다.
- 정사각형 ABCD (100, 150, 0)
- 제곱 EFGH (-5, 153, 0)
- 정사각형 IJKL (155, 57, 0)
- 세 정사각형의 모든 변의 길이는 50mm입니다.
- 각 사각형은 서로 닿을 수 없습니다.
활동:이 수업에서 배운 프로젝트를 바탕으로 6축 팔을 코딩하여 두 개의 추가 정사각형을 그려보세요.
- 엔지니어링 노트북에 프로젝트 계획을 기록하세요. 그룹 구성원 모두가 첫 번째, 두 번째, 세 번째로 어느 사각형을 그릴지, 그리고 그림을 완성하기 위해 어떤 종류의 움직임을 사용할지에 대해 합의했는지 확인하세요.
- 이 수업에서 배운 내용을 토대로 엔지니어링 노트북에 있는 계획을 따르세요.
- 프로젝트를 실행하여 테스트해 보세요. 6축 암이 VEX코드에 연결되어 있는지 확인하세요. 귀하의 프로젝트는 의도한 대로 세 개의 사각형을 모두 그렸습니까? 왜 그럴까? 아니면 왜 그렇지 않을까?
- 세 개의 사각형을 모두 성공적으로 그릴 때까지 프로젝트를 반복하세요. 작업이 끝나면 프로젝트 이름을 지정하고 저장합니다.
이해도 확인
다음 수업을 시작하기 전에 엔지니어링 노트북에서 아래 문서의 질문에 답하여 이 수업의 개념을 이해했는지 확인하세요.
이해도 확인 질문 > (Google Doc / .docx / .pdf)
다음 > 선택하여 2과로 넘어가세요.