Smart Box

미로찾기 라인트레이서 로봇 – 1편 프로젝트 소개 본문

Project/미로찾기 라인트레이서 로봇

미로찾기 라인트레이서 로봇 – 1편 프로젝트 소개

프매씨 2015. 8. 6. 16:46

 

라인트레이서 로봇, 언제까지 직접 프로그래밍 할 것인가! 이제 인공지능을 가지고 따라가보자!

 

안녕하세요, 프매씨 입니다. 오늘은 "미로찾기 라인트레이서 로봇"이라는 재미있는 프로젝트를 소개해드릴려고 합니다. 고등학교 1학년때 로봇과학 동아리에 입부하면서 처음으로 라인트레이서 로봇을 만나면서 관심을 가지게 되었고, 현재 고등학년 3학년인 지금까지 오게 되었네요. 지금 보면 정말 빠른 세월이였습니다 +_+. 이 프로젝트를 소개해는 포스팅에서는 간단하게 설명해드리며 적을려고 합니다.

 

 

본 포스팅은 '프매씨의 프로젝트(http://pemassi.modoo.at)'에서 찾아볼 수 있습니다.

 

 

『무엇을 하는 프로젝트 인가요?』

 

'미로찾기 라인트레이서 로봇'은 로봇이 미로를 탐색하여 도착점(턴지점)까지 간 후, 다시 시작점으로 돌아오면서 최단거리로 돌아오는 알고리즘(인공지능)을 만드는 프로젝트 입니다.

 

컴퓨터 프로그램에서 흔히 알고리즘을 배우는 과정 중 하나인 '미로찾기' 알고리즘과 비슷하다고 보시면 됩니다. 이 것을 라인트레이서 로봇으로 만드는 것이죠!

 

누가 생각하면 쉬운 프로젝트가 될 것이고, 다른 누군가 생각하면 어려운 프로젝트가 될 것 입니다. 다만, 이 프로젝트를 보시고 많은 분들이 로봇이나 프로그래밍에 관심을 가지시고 꿈을 키우셨으면 합니다.

 

『"미로찾기 라인트레이서 로봇" 프로젝트 왜 시작했나요?』

[라인트레이서 로봇]

 

"미로찾기 라인트레이서 로봇"이라는 프로젝트를 진행하게 된 이유는…

컴퓨터에서 C언어로 만들어 봤던 '미로찾기' 프로그램을 로봇에 적용해보고자 시작하게 되었습니다.

 

또 다른 이유를 찾자면 '로봇올림피아드' 대회를 나가면서 사람이 항상 붙어서 프로그래밍을 해야했지만, 역시, '로봇'하면 알아서 작동하는 인공지능형 로봇이죠.

 

위 2가지 이유로 시작하게된 것 같습니다.

 

 

 

『그럼 프로젝트를 시작해보자! 먼저 맵을…』

[STEAM CUP(스팀컵)에서 제시된 라인트레이서 맵]

 

앞으로 만들 프로그램은 START지점에서 TURN지점까지 맵을 탐색하고, TURN 지점에서 다시 FINISH 지점까지 오면서 최단거리로 도착하는 것 입니다. '미로찾기 라인트레이서 로봇'에 사용될 프로그램을 만들기 위해서는 먼저 미로의 환경을 알아야겠죠. 다음과 같은 조건을 가진 맵(미로)을 사용해보려고 합니다.

 

 

"라인트레이서 맵(미로)의 조건"

1. 시작점과 도착점은 같아야 한다.

2. 턴 지점에는 반드시 턴 지점이라는 것을 인식할 수 있는 물체가 있어야 한다.

3. 교차로는 반드시 4개 이하여야 한다.

3-1. 대각선 교차로는 있으면 안된다.

4. 최단거리는 반드시 하나여야 한다.

 

 

그럼 조건들을 간단히 살펴보죠!

 

첫번째 조건은 미로찾기 알고리즘을 만들기 위해서 가장 기초적인 바탕이 됩니다. 전체 맵을 탐색 후 어느지점으로 도착하는 최단거리를 계산할지 생각하는 조건이 되죠.

 

두번째 조건은 우리가 미로에서 도착점을 알아낼 수 있듯이, 로봇에게도 판단할 수 있는 조건을 제시하는 것 입니다.

저는 도착점에 다음과 같은 물체를 돌려고 합니다.

[5x15x17 직육면체]

 

앞으로 프로젝트에서는 위 직육면체를 인식하면 프로그램에서는 '턴 지점'이라고 생각할 것 입니다.

 

세번째 조건은 고등학생인 제가 최대한 할 수 있는 범위를 정해둔 것 입니다. 교차로가 4개이상이거나 대각선이 있는 경우 생각해야하는 경우의 수나 물리적으로 힘든 부분이 생깁니다. 이 부분을 배제하기 위해 정하게 되었습니다.

 

마지막으로 네번째 조건은 최단거리가 여러개면 안되겠죠. 당연한 이야기 입니다 J

 

『이번엔 사용할 로봇을 살펴보자!』

[Atmega128을 사용하고 있는 '제규어' 제어보드]

 

그러면 이번엔 라인트레이서 맵에서 따라다닐 로봇의 환경을 살펴보죠.

 

글쓴이는 앞으로 사용할 제어보드는 'Atmega128'를 사용하고 있는 '제규어'라는 메인보드를 사용할 것 입니다. 그리고 로봇의 전면과 후면에 적외선 센서를 사용할 것 이며, 턴 지점에 있는 벽을 인식하기 위해 'PSD센서'를 사용할려고 합니다. 모터는 100RPM으로 적당한 속도를 가진 모터를 사용할려고 합니다.

 

제어보드는 C언어나 여러 다양한 언어를 통해 자유로운 프로그래밍이 가능하면 됩니다. 또, 벽을 인식하기 위해서 사용될 센서는 PSD 이외에도 터치센서나 초음파센서도 사용가능합니다. 다만, 가장 중요한 조건은 정밀하게 라인트레이서 가능해야 합니다. 미로를 찾는 동안 로봇이 흔들려서 선을 잘못인식 하여 문제가 생길 수 있기 때문입니다.

 

 

『다음 화에서는?』

 

미로찾기 프로젝트 1화에서는 간단한 프로젝트 소개와 사용할 맵, 로봇에 대해 살펴보았습니다. 다음 화에서는 "맵을 어떻게 탐색할 것인가"에 대해 적어보려고 합니다. 감사합니다.

 

 

본 포스팅은 원문을 수정하지 않고 가져가는 것 이외에는 허용하지 않으며,

'프매씨의 프로젝트(http://pemassi.modoo.at)'에서 이어서 볼 수 있습니다.

Comments