News Download Tutorial FAQ Reference Buy

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

내성적인 로봇
주인을 기다리는 로봇과 같이 놀아보면 앞으로만 갈 수 있으니 좀 단순하다는 생각이 든다. 이제, 두 번째 소개할 로봇은 내성적인 성격의 로봇이다. 여러분이 창조할 로봇은 다음과 같은 특성을 갖는다.

주인님이 주위에 없으면 가만히 기다립니다. 아주 온순하고 착한 햄스터 로봇입니다. 이때 주인님이 멀리서 나타나 손짓합니다. 로봇은 잠에서 깨어난 듯 움찔하면서 반응합니다. 갑자기 주인님이 가버립니다. 바쁜 일이 있나 봅니다. 로봇도 움직임을 멈추고 다시 기다립니다. 잠시 후 다시 주인님이 정면으로 가까이 와서 손짓합니다. 로봇은 기뻐서 힘차게 주인님을 향해 달려갑니다. 주인님이 돌아서서 뛰어갑니다. 로봇도 오랜만에 주인님을 뒤따라 달리기를 합니다. 하지만 주인님이 옆에서 나타나면 수줍은 듯이 고개를 돌려 피합니다. 제 성격이 너무 내성적인가 봐요. 수줍은 성격이지만 가끔 주인님이 앞을 가로막고 부르면 기뻐서 주인님의 품속으로 뛰어들기도 합니다. 아직 어린 로봇이라 주인님이 너무 빨리 뛰면 못 따라갑니다. 주인님을 놓치면 그냥 가만히 기다립니다.

다음 그림과 같이 로봇의 왼쪽 근접 센서(lFront)는 왼쪽 모터(lMotor)의 속도를 직접 결정한다. 동시에 오른쪽 근접 센서(rFront)는 오른쪽 모터(rMotor)의 속도를 결정한다. '+' 기호는 센서의 값이 증가하면 모터의 회전 수도 따라서 증가한다는 의미이다.

이제 다음 그림과 같이 스크래치를 사용하여 내성적인 로봇을 만들어 보자.

주인을 기다리는 로봇과 마찬가지로 거리가 가까우면 바퀴의 속도를 빠르게 한다. 왼쪽 근접 센서의 값은 왼쪽 바퀴의 속도를 결정하고, 오른쪽 근접 센서의 값은 오른쪽 바퀴의 속도를 결정한다. 프로그램을 실행하고 햄스터 로봇의 행동을 살펴보자.

정확히 정면에 손을 가져가면 주인을 기다리는 로봇과 차이점이 없다. 이번에는 다음 그림과 같이 오른쪽으로 손을 가져가 보자. 수줍은 듯이 고개를 반대로 돌린다. 왼쪽으로 손을 가져가도 마찬가지이다. 앞을 갑자기 가로 막으면 손 안으로 뛰어들기도 한다. 손을 점점 멀리하면 계속 따라온다. 하지만 방향이 조금 틀어지면 다른 쪽을 보면서 정지하므로 손 바닥을 U자 형태로 해서 따라오게 하는 것이 좋다.

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