물리엔진을 활용해 로봇을 제어해 보자 - 밀당게임 수업과정(안)
페이지 정보
본문
더 사실화 된 움직임의 구현, 물리엔진
왜 수학과 과학을 배워야 하는지 동기부여
컴퓨터 사이언스가 발달하면서 우리의 진짜 세상을 컴퓨터상의 가상세계로 옮겨 진짜와 똑같이 만들려는 시도가 매우 활발하다. 이러한 문화적 변화는 자라나는 학생들의 생활 속에서 다양한 경험과 학습을 통해 익숙해지고 결국에는 그들의 세상을 구성하는 문화적, 세계관적 요소가 될 것이다.
우리 어릴 적 애니메이션이나 OO맨이 나오는 많은 영화들에서 미니어처로 만들어진 건물이 무너지는 모습을 보면서 어설프다고 느꼈을 것이다. 그리고 그러한 어설픔이 왠지 불편하게 느껴지고 극에 대한 몰입을 방해하고 재미없게 만들고 영화에 대해 부정적으로 평하는 이유가 되었다.
그 이유는 작은 미니어처가 뚝 부러지는 것과 실제 거대한 건물이 무너지는 것이 물리적으로 매우 다르다는 데 있다. 실제 건물이 무너지는 것은 수십미터 또는 수백미터의 공간을 낙하해야 하고 이는 중력가속도의 영향으로 가속도 운동을 하기 때문이며 우리는 이러한 현상에 익숙해져 있다. 그런데 미니어처의 낙하거리는 수십cm 밖에 되지 않으니 우리가 가속도운동을 확인하기 전에 낙하운동이 끝나 버린다. 마음속 기대감은 수백미터의 가속도운동인데 실제로는 거의 등속으로 순식간에 끝나버리니 어색하고 그 어색함이 불편함으로 연결되어 재미가 없어지는 것이다.
그러한 문제를 해결한 것은 놀랍게도 수학과 과학이었다. 수많은 수학자와 물리학자가 함께 가상의 세계 속에서 어떠한 대상이 실제 자연과 똑같이 움직이도록 하기 위한 시뮬레이션을 개발하면서 ‘물리엔진’을 만들어 냈다. 현재의 기술로는 나이아가라폭포와 비슷한 규모의 거대폭포의 모든 물방울들의 움직임을 거의 실제와 비슷하게 만들어 내는 경지에 도달했다고 한다. 물방울이 공기와 충돌해 모양이 바뀌는 것과 다른 물방울과 충돌해 합쳐지고 그래서 중력과 공기저항이 달라져 형태에 또다른 변화가 오는 것까지… 거기에 중력과 공기저항의 합력으로 복잡한 형태의 가속도운동으로 시작했다가 결국 종단속도에 도달하는 것까지 재현해 냈다는 뜻이다.
사람들이 그저 재미있게, 어색하지 않게 즐기기 위해서 물리엔진을 사용하고 이를 통해 사람들이 만든 그 무언가가 가치가 생겨 더 많은 수익을 내는 복합적인 과정에 대한 이해는 학생들이 왜 물리와 수학을 열심히 공부해야 하는지에 대한 좋은 동기부여가 될 것이다.
로봇을 이용해 간단한 물리엔진 구현해 보기
로봇을 이용해 학생들이 자기가 알고 있는 수학공식을 활용해 간단한 물리엔진을 구현해 볼 수 있다. 물론 정확하고 완벽한 것은 아니지만 단순한 개념정도는 쉽게 경험해 볼 수 있는 활동이다.
▪ 밀당게임
밀당게임의 원리는 간단하다 로봇의 앞쪽에 초음파센서를 달아서 로봇 앞에서 물체가 가까워 오면 로봇이 후진하고 물체가 멀어지면 로봇이 전진하게 한다. 핵심은 물체와의 일정한 거리를 유지하는 것으로 ‘물리엔진’의 개념으로 이야기하자면 보다 자연스럽게 행동하기 위해 고려해야 할 요소는 1)일정한 거리를 유지하는 것과 2)가까워지거나 멀어지는 스피드에 비례해서 로봇의 스피드가 결정되어야 한다는 것이다.
준비물은 아래와 같다.
• 레고 마인드스톰 EV3 교육용 로봇
• 레고 마인드스톰 EV3 전용 SW
• 30cm 자
▪ 로봇제어를 위한 공식
(1) 정비례
로봇을 구동하는 모터의 파워(파워는 스피드와 비례)가 초음파센서와 물체와의 거리에 비례하는 경우이다. 즉,
인 경우이다. 로봇 프로그래밍은 아래와 같다.
파워 = 물체와의 거리 - 30cm
제일 쉽고 방정식도 초등학교 6학년에서 중학교 1학년 정도의 수준이므로 누구나 금방 이해하고 적용할 수 있다. 다만 이 프로그램의 한계는 물체와의 거리가 가까워서 30cm 이하일 때 로봇의 최고 파워는 30이라는 것이다. (이 실험에 사용된 로봇은 레고 마인드스톰 에듀케이션 EV3라는 제품으로 모터의 파워는 최대 100이다)
당연히 움직임이 자연스럽지도 않고, 학생들이 실제로 구현해 보고는 불편하게 생각한다. 머릿속으로 상상했던 것과 다르게 움직이기 때문이다.
(2) 비례
정비례는 아니지만 물체와의 거리차이에 3정도를 곱해서 로봇의 반응속도를 늘려보자 공식은 아래와 같다.
파워 = (물체와의 거리- 30cm) × 3
이 공식을 프로그램으로 구현하면 다음과 같다.
이 공식을 적용하면 로봇의 반응속도는 빨라지지만 거리가 30cm근처에서 로봇의 스피드가 생각보다 명쾌하게 상상한대로 나오지는 않는다. 뭔가 더 그럴듯한 동작을 만들어 내는 공식이 없을까?
(3) 세제곱비례
자유낙하 공식은 제곱비례의 속성을 가진다. 하지만 밀당게임에서는 거리가 가까우면 뒤로 가야 하고 멀면 앞으로 가야하는 즉, 로봇의 스피드에 (-)값이 발생한다. 그래서 세제곱 비례를 사용하면 비슷한 효과를 내면서 후진도 가능하다. 수학공식은 아래와 같다.
프로그램으로 구현하면 다음과 같다.
파워 = (물체와의 거리- 30cm) × 3
위와 같이 프로그래밍해서 동작을 시키면 보다 그럴듯하다. 하지만 실제 사람이나 동물의 움직임과 비교하면 어떨까? 정말 그런지 검증하는 기회는 독자들에게 맡긴다. MBL의 비디오 동작분석하는 프로그램을 활용해서 밀당과 관련된 동작을 분석해 보면 가장 자연과 유사한 수학 함수를 찾을 수 있을 것이라고 생각한다.
이 수업의 목표는 수학공식이나 물리엔진을 활용해서 자연스러운 움직임을 로봇에게 구현시키는 활동의 가치를 인식하는 것이다. 위의 공식을 함수의 그래프로 그려보고 그 그래프의 실제 동작이 어떻게 눈으로 보여지는지 비교해 보면 수학과 물리공식을 이용한 물리엔진이 어떻게 작동하는지 학생들이 쉽게 이해할 수 있을 것이다. 게다가 학생들은 앞으로 경험하게 될 모든 물리엔진에 관심을 가지게 될 것이고 실제로 스스로 구현하려면 수학과 물리공부를 열심히 해서 자기가 필요하면 언제든지 관련지식을 활용할 수 있어야 한다는 생각을 갖게 될 것이다.
밀당게임 수업과정(안)
수업 개요 (1)
주제 소개 로봇에 부착되어 있는 초음파센서를 사용하면 물체와의 거 리에 따라 로봇을 제어할 수 있다. 장애물을 원거리에서 감지 해 피해다니거나 물체와의 거리를 표시하는 등의 기능을 로봇 에 부여할 수 있다. 이러한 기술이 우리 주변에 널리 사용되는데 가장 대표적인 것은 자동차가 후진할 때 후방에 물체나 벽과의 거리를 감지하 여 경고해주는 기능이 있으며 대형 건물의 주차장 천장에 설치 되어 있는‘주차가능 표시등’또한 좋은 사례로 꼽을 수 있다. 이번 수업에서는 초음파센서의 거리측정 기능을 로봇제어 에 활용해 물체와의 거리에 따라 가까우면 멀어지고 멀어지면 다시 가까워지려고 하는 동작을 하도록 해보자. 남녀 사이에 ‘밀당’을 한다고 하는 개념을 로봇과 사람사이에도 적용해 볼 수 있다.
(2)주내용 개요
(3)주수업 설계
(4)주지도상 유의점 •상황제시방향 - 일정한 거리를 유지하기 위한 행동을 생각하게 한다.
수업 과정안
글 | 남이준 이사(FEST 창의공학교육협회)
남이준 이사는 안산동산고등학교 물리교사로 근무하면서 로봇을 활용한 과학교육에 쏟은 바 있다. 현재 FEST 창의공학교육협회에서 대외협력 이사를 맡고 있으며, 서울교대 및 동양미래대학교 등에 출강하고 있다.