News Download Tutorial FAQ Reference Buy

스크래치 : 브레이튼버그의 로봇 #2

주인을 기다리는 로봇
브레이튼버그가 생각한 첫 번째 로봇은 주인을 기다리는 로봇이다. 아래 그림과 같이 하나의 센서, 그리고 그 센서와 직접 연결된 모터로 이루어진 아주 간단한 구조의 로봇이다. 로봇의 왼쪽 근접 센서(lFront)의 값이 양쪽 모터의 속도를 결정한다. '+' 표시는 센서의 값이 증가하면 모터의 회전 수도 따라서 증가한다는 의미이다.

주인을 기다리는 로봇을 프로그래밍하기 전에 우선 이 로봇의 행동을 자세히 관찰한 다른 사람의 이야기를 들어 보자.

주인님이 주위에 없으면 가만히 기다립니다. 아주 온순하고 착한 햄스터 로봇입니다. 이때 주인님이 멀리서 나타나 손짓합니다. 로봇은 잠에서 깨어난 듯 움찔하면서 반응합니다. 갑자기 주인님이 가버립니다. 바쁜 일이 있나 봅니다. 로봇도 움직임을 멈추고 다시 기다립니다. 잠시 후 다시 주인님이 가까이 와서 손짓합니다. 로봇은 기뻐서 힘차게 주인님을 향해 달려갑니다. 너무 힘차게 뛰는 바람에 주인님과 부딪치지만 주인님은 너그럽게 껴안아 줍니다. 주인님이 돌아서서 뛰어갑니다. 로봇도 오랜만에 주인님을 뒤따라 달리기를 합니다. 아직 어린 로봇이라 주인님이 너무 빨리 뛰면 못 따라 갑니다. 주인님을 놓치면 그냥 가만히 기다립니다.

이렇게 복잡한 행동을 하는 로봇을 어떻게 프로그래밍할 수 있을지 걱정되지만 의외로 간단히 만들 수 있다. 다음 그림과 같이 스크래치를 사용하여 주인을 기다리는 로봇을 만들어 보자.

왼쪽 근접 센서와 손까지의 거리에 따라 양쪽 바퀴의 속도를 결정한다. 햄스터 로봇의 근접 센서는 반사되는 빛이 적으면, 즉 물체가 멀리 있거나 주위에 아무 것도 없으면 값이 작아지고, 물체가 가까이 있으면 반사되는 빛이 많아져서 값이 커진다. 즉, 물체가 가까이 있으면 더욱 빨리 움직이게 되는 것이다.

프로그램을 실행하면, 처음에는 아무런 움직임도 일어나지 않는다. 이제 이 로봇을 진짜 햄스터라고 생각하고 앞 문장을 기억하면서 다음 그림과 같이 로봇의 왼쪽 근접 센서 앞에 손을 가져가 보자. 어떻게 반응하는가? 잠깐 가로막거나 오랫동안 앞을 가려 본다. 멀리서 점점 가까이 가거나, 따라오면 재빨리 멀리 가는 등 여러 가지 방법으로 로봇에게 생명력을 부여해 보자. 다른 사람이 관찰한 내용과 로봇의 행동이 유사한지 다른지 본인 스스로 확인해 보자.

근접 센서의 값이 아주 작은 경우에도 미세하나마 바퀴가 움찔움찔 움직이는 것을 없애고자 한다면 다음 그림과 같이 근접 센서의 값이 아주 작은 경우에는 정지하도록 조건문을 줄 수도 있다.

외부의 자극에 대한 방향성 있는 행동 특성을 주성이라고 하는데, 거의 모든 종류의 생명체에서 찾아볼 수 있다. 나방이 등불에 끌리는 행동(주광성), 추우면 따뜻한 장소를 찾는 행동(주열성)은 매우 보편적이다. 자극원으로 가까이 다가가는 행동을 양의 주성이라 하고, 반대로 자극원을 멀리하는 행동을 음의 주성이라 한다.
목차
Hardware
  1. Hamster robot
  2. USB dongle
Preparation for Class
  1. Software installation   Windows · MacOS · Linux
  2. Robot to PC connection
  3. Software execution   Windows · MacOS · Linux
Basic
  1. Standing and singing
  2. My precious ass
  3. Moving an object with the accelerometer
Advanced
  1. Moving an object with the accelerometer
  2. Line follower with one sensor
Previous Lectures
  1. Ordering in sequence
  2. Repeat
  3. Debugging
  4. Repeat until hand found
  5. Move a robot
  6. Use sensors
  7. Use the default board
  8. Braitenberg's robot
Copyright Robot Software Education Institute. All rights reserved.
Please contact prof. Kwang-Hyun Park (akaii@kw.ac.kr) if you have any problem.