· KLDP.org · KLDP.net · KLDP Wiki · KLDP BBS ·
Docbook Sgml/Lego

Lego Mindstorm with Linux Mini-HOWTO

Lego Mindstorm with Linux Mini-HOWTO

Luis Villa

박치성

어쩌면 레고(Lego)사의 마인드스톰 로보틱스 인벤션 시스템(Mindstorm Robotics Invention System(RIS))이야말로 가장 저렴하게, 무리없이 로봇을 제작할 수 있는 키트일 지도 모릅니다. 하지만, 그 표준 소프트웨어가(그다지 놀랄 일도 아니지만..) MS Windows에 기반하고 있습니다. 실망할 필요는 없습니다- Linux에서도 마인드스톰을 사용할 수 있게끔 여러 도구(option)들이 Linux 유저들을 위해 마련되어 있습니다. 이 Mini-HOWTO는 그 도구들에 대해 아주 간단히 소개하고, 그 이상의 정보를 얻을 수 있는 방법까지 제공하려 합니다.

고친 과정
고침 1.1October 29th, 2000

차례
1. 소개(Introduction)
1.1. 고마운 사람들(Acknowledgements)
1.2. 포기 각서(Disclaimer)
1.3. 저작권(Copyright)
2. The Mindstorms Architecture
2.1. 기본 하드웨어(The Basic Hardware)
2.2. 표준 RCX 프로그래밍(Standard RCX Programming)
2.3. Linux 도구들을 사용하기에 적합한 곳(Where the Linux Tools Fit In)
2.4. Linux 호스트를 위한 하드웨어 사양(Hardware Requirements for the Linux Host)
2.5. 사이버마스터와 스카우트(The CyberMaster and Scout)
2.6. 마인드스톰 비전 커맨드(Mindstorms Vision Command)
2.7. MS Windows CD에 대해 알아두어야 할 것(Important Note about the MS Windows CD)
3. LegOS
3.1. 홈페이지(Homepage)
3.2. 제작자(Author)
3.3. 유형(Type)
3.4. 언어(Language)
3.5. 플랫폼(Platforms)
3.6. 설명(Description)
4. Lego::RCX.pm
4.1. 홈페이지(Homepage)
4.2. 제작자(Author)
4.3. 유형(Type)
4.4. 언어(Language)
4.5. 플랫폼(Platforms)
4.6. 설명(Description)
5. Not Quite C (NQC)
5.1. 홈페이지(Homepage)
5.2. 제작자(Author)
5.3. 유형(Type)
5.4. 언어(Language)
5.5. 플랫폼(Platforms)
5.6. 설명(Description)
6. pbForth
6.1. 홈페이지(Homepage)
6.2. 제작자(Author)
6.3. 유형(Type)
6.4. 언어(Language)
6.5. 플랫폼(Platforms)
6.6. 설명(Description)
7. TinyVM와 leJOS
7.1. 홈페이지(Homepages)
7.2. 제작자(Author)
7.3. 유형(Type)
7.4. 언어(Language)
7.5. 플랫폼(Platforms)
7.6. 설명(Description)
8. Remote Java APIs
8.1. 홈페이지(Homepages)
8.2. 유형(Type)
8.3. 언어(Language)
8.4. 플랫폼(Platforms)
8.5. 설명(Description)
9. TCL RCX
9.1. 홈페이지(Homepage)
9.2. 제작자(Authors)
9.3. 유형(Type)
9.4. 언어(Language)
9.5. 플랫폼(Platforms)
9.6. 설명(Description)
10. Pylnp
10.1. 홈페이지(Homepage)
10.2. 제작자(Author)
10.3. 유형(Type)
10.4. 언어(Language)
10.5. 플랫폼(Platforms)
10.6. 설명(Description)
11. 다른 Linux 도구들
11.1. LeoCAD
11.2. POVRAY
12. 다른 정보를 얻을 수 있는 곳들(Other sources of information)
12.1. LUGNET
12.2. The Official Mindstorms Site
12.3. The Hardware Sites
12.4. Historic Lego Bots and Construction Guide

1. 소개(Introduction)

혹시 멋진 레고 마인드스톰 키트를 보았다면, 커다랗게 "Windows용(requires Windows)"이라 쓰인 스티커가 옆에 붙은 것에 실망했을 지 모르지만, 그럴 필요 없습니다: 아직 희망이 있습니다. GNU/Linux에서 RCX 프로그래밍을 할 수 있게끔 해 주는 소프트웨어가 있는데다, 원하는 언어로 프로그래밍하는 것까지 가능합니다: C, Perl, Java와 Forth까지 사용할 수 있습니다. 하지만 이 문서에 그 모든 것을 설명하지는 않았습니다: 다만, 저는 마인드스톰 키트의 구입을 생각하고 있는 Linux 유저나, 이미 마인드스톰을 가지고 Linux에서 굴려볼 생각 또는 그 비싼 장난감을 계속 가지고 놀 수 있느냐는 고민에 빠진 사람들에게 그 출발점의 역할을 할 수 있게끔, 요점만 짚어주고 다양한 Linux 도구들에 대한 정보를 제공하려 합니다.

꼭 알아두어야 할 것은 저도 온라인 마인드스톰 공동체의 흐름을 좇으려 무척이나 노력하지만, 박식하지 못하다는 것입니다: 이 문서가 불완전하다는 것도 충분히 가능합니다. 혹시 당신이 Linux에서 작동하는 다른 마인드스톰의 도구들을 알고 있다면, 이 문서와 추가하여 GNU/Linux 컴퓨터에서 사용하고자 마인드스톰을 구입하려는 다른 사람들과 공유할 수 있도록 luge@users.sourceforge.net로 알려주기 바랍니다.


1.1. 고마운 사람들(Acknowledgements)

우리 모두가 사용할 수 있도록 애당초 프로그램을 제작하고 이 문서의 초기판을 살펴 준, 아래에 언급된 프로그램 제작자들에게 감사하고 싶습니다.

게다가, "Extreme Mindstorms"란 책을 함께 써 보지 않겠냐고 제안했던 Dave Baum에게 감사하고 싶습니다. 그 일을 통해 저는 이 HOWTO를 쓴 시간까지 포함해서 어쩌면 가지지 못했을 마인드스톰과의 많은 시간을 가질 수 있었습니다. 혹시 당신이 RCX의 "파워 프로그래밍(power programming)"에 도전하고 싶다면, 이 책을 강력히 추천하고 싶습니다. 물론 시중에는 다른 좋은 책들(주로 O'Reilly의 것들)도 있겠지만, 이 책은 정말 최신의 정보를 담고 있으며 더 중요한 것은 이 책 안의 거의 모든 코드가 (제가 아는 한) 리눅스에서 잘 작동한다는 것입니다. 당돌한 선전인 것 같지만, 그래도 자랑하고 싶네요. :) 이 책은 여기에서 구입할 수 있습니다.

또한, Steve Baker와 Matthew Miller를 비롯한 Lugnet의 많은 이들이 이 문서의 초기판에 고마운 조언들을 주었습니다. 그들의 생각들이 이 문서 곳곳에 나타나 있으며, 덕분에 좋은 밑바탕이 될 수 있었습니다. :)

마지막으로, 직접적인 관련이 있다고 생각지는 않지만, 전에 Duke 대학에 있다 지금은 AT&T에 있는 Michael Littman이 지난 여름 내가 레고를 가지고 놀 수 있게끔 자금을 지원해 주었습니다. 그가 준 기회가 없었다면 온라인 마인드스톰 공동체에 참여하지 못했을 뿐만 아니라, 지금만큼 그것에 대한 지식도 얻지 못했을 것입니다.


1.2. 포기 각서(Disclaimer)

레고사(http://www.lego.com/)는 그들의 상표에 대해 무척이나 보수적입니다. 이 문서는 레고사에 허락을 득하지도 않았고 그들과 관련된 것도 아닐 뿐더러, 저 또한 작가로서 그들과 어떤 관계를 맺고자 하지도 않았습니다. 그들의 상표를 합법적으로 사용하기 위한 그들의 정책을 더 알아보고 싶다면 http://www.lego.com/info/fair.asp를, 특히 "How LEGO(r) Enthusiasts May Refer to LEGO Products on The Internet."란 제목의 부분(중간 아래에 있는..)을 확인하기 바랍니다. 저 역시 이 문서의 모든 곳에서 그 지침들을 충실히 따르려고 했습니다. 그럼에도 불구하고 혹시 그에 위반되는 것을 발견한다면 고칠 수 있도록 알려주기 바랍니다.


1.3. 저작권(Copyright)

이 문서는 LDP 저작권을 따라 배포됩니다. 그 저작권에 대한 내용은 여기에서 볼 수 있습니다.


2. The Mindstorms Architecture

2.1. 기본 하드웨어(The Basic Hardware)

노파심에서 말하지만, 레고 마인드스톰 키트는 레고사에서 200달러 정도에 팔리고 있습니다. 일단 구입했다면, CPU와 LCD, 여러 연결선이 붙어있는 큰 블럭(RCX로 알려진..)과 모터 2개, 그리고 바깥 세상과 대화할 수 있게끔 해 주는 광 센서와 터치 센서 몇 개까지, 많은 레고 부품들을 가지고 있는 셈이 됩니다.

현재 RCX 키트는 1.5버전까지 나와있으며, 2001년 봄에 2.0버전으로 대체될 것입니다. 그 때가 얼마 남지 않았지만, 이 문서에서 제가 "RCX"라 하는 것은 "RCX 1.x버전"을 의미합니다. 1.0버전과 1.5버전의 차이는 거의 없으나, 1.5버전과 2.0버전은 아직 정확히 알려진 것은 없지만 눈에 띄게 차이가 날 것 같습니다.

혹시 보다 자세하게 하드웨어를 알아보고 싶다면(생각해 보세요: RCX를 완전히 분해해 그 작동원리를 알고 싶어하는 사람들이 세세하게 신경써야 할 것들을..) 다음 2개의 사이트를 방문하기 바랍니다: Russell Nelson's Lego Mindstorms InternalsKekoa Proudfoot's RCX Internals. 이 두 사이트가 없었다면, 아래에 있는 소프트웨어 대부분도 없었을 것입니다.


2.2. 표준 RCX 프로그래밍(Standard RCX Programming)

다양한 Linux 도구들을 이해하기 위한 핵심은 우선 MS Windows에서 어떻게 마인드스톰 키트가 작동하는지를 알아야 한다는 것입니다. 요약하자면, 레고는 당신(더 정확히는 12-14세의..)에게 building-block metaphor를 이용, 그림 그리듯이 코드를 작성할 수 있게 해 주는 MS Windows 소프트웨어를 제공합니다. 이렇게 일단 프로그램이 작성되면 소프트웨어는 그 프로그램을 바이트-코드(byte-code)로 컴파일합니다. 이 바이트-코드가 로봇에 적재되어 그 곳에 있는 RCX 펌웨어(firmware)에 의해 처리되고, 그 명령어에 기반하여 기계를 제어합니다. 게다가 바이트-코드의 분석을 통해, RCX 펌웨어는 OS처럼 많은 기능들을 하게 됩니다: 하드웨어의 제어나, 쓰레딩(threading), 특히나 로봇과의 의사소통에 사용되는 IR 포트(port)도 제어합니다. 또한 IR 포트나 특별한 원격제어로부터 특정 명령어(숙달된 프로그램이 아닌..)를 받아, 그에 따라 로봇을 움직이는 능력도 가집니다.

표준 펌웨어는 현재 1.0버전입니다. (1.5버전의 RIS를 구입했다 하더라도..) 그것에는 제법 심각한 제한이 있습니다- 예를 들자면, 각각의 변수들이 RAM이 아닌 레지스터에 저장되기 때문에, 32개의 변수밖에 가질 수 없습니다. 하지만, 그것으로도 꽤 흥미있는 것들을 해 볼 수 있고, 2.0버전(현재 레고에서 그 베타버전을 구할 수 있습니다.)에서는 이런 제한들을 눈에 띄게 줄이고, 1.x대의 하드웨어와도 호환되게끔 할 것입니다.


2.3. Linux 도구들을 사용하기에 적합한 곳(Where the Linux Tools Fit In)

다양한 Linux 마인드스톰 프로그램들이 이전 섹션에서 언급했던 일련의 소프트웨어를 여러 부분에서 대체할 수 있습니다. 몇몇은 OS와 유사한 시스템이나 언어 번역기(interpreter)를 지니고 있어 기본 펌웨어를 완벽하게 대체할 수 있습니다. 표준 레고 바이트-코드에 대응하는 바이트-코드를 생성하여, 표준 펌웨어로 번역(interpret)하는 것들도 있습니다. 마지막으로, 로봇 자체에는 동작을 위해 어떤 도구들도 주지 않으면서, 호스트 PC에서 로봇을 제어할 수 있게끔 단순한 원격제어 코드를 생성하는 것들도 있습니다. 이들은 또한 표준 레고 펌웨어를 사용합니다.


2.4. Linux 호스트를 위한 하드웨어 사양(Hardware Requirements for the Linux Host)

대부분의 도구들이 명령어 입력 기반이기 때문에, 하드웨어 요구사항은 극히 적습니다- 어떤 Linux 시스템에서도 돌릴 수 있습니다.

하나 예외가 있다면 시리얼 포트(serial port)인데, 몇몇 새로 나온 "legacy free" 머신에는 없을 수도 있겠지만 대부분이 가지고 있을 것입니다. RCX에의 모든 의사소통은 시리얼 포트로 연결되는 IR 타워(tower)를 통해 이루어 집니다. 결국, 시리얼 포트를 가지고 있지 않다면, 어댑터를 사지 않는 이상 RCX를 사용할 수 없습니다. 뿐만 아니라 어떤 환경에서는 IRQ나 시리얼 포트의 충돌이 문제가 될 수도 있습니다. 모뎀이 /dev/ttyS0를 사용한다면 그런 일이 일어날 수 있습니다. 이럴 때에 3가지의 해결방법이 있습니다: 먼저, IR 타워를 두번째 시리얼 포트에 연결해 보기 바랍니다. 대부분 이것으로 가능합니다. 혹시 해결되지 않았다면, 모뎀과 RCX를 동시에 사용하지 말기 바랍니다. 그것도 소용없다면, 커널 컴파일 옵션에서 ("extended dumb serial driver options" 아래에 있는..) "support for sharing serial interrupts." 부분을 확인하기 바랍니다. 확실히 선택했다면 다시 컴파일하세요.

Mac은 표준 시리얼 포트를 가지고 있지 않기 때문에, LinuxPPC 유저들은 어댑터를 구해야 하고, 이 도구들을 사용하기 위해 약간 수정을 해 줘야 합니다. NQC의 제작자이자 Mac 유저인 Dave Baum이 이에 대한 방법을 썼습니다.


2.5. 사이버마스터와 스카우트(The CyberMaster and Scout)

RIS에 그치지 않고, 레고사는 또 다른 2개의 로봇 제작 시스템을 만들었습니다- 사이버마스터(CyberMaster, 유럽에서만 판매)와 스카우트(Scout)입니다. 불행하게도, 저는 여기 나오는 도구들 중 하나(NQC, 5절에 언급될..)만이 이들과 작동한다고 알고 있습니다. 즉, 스카우트의 구입을 생각하고 있다면, 재정적으로 몹시 어렵지 않은 이상 RCX와 함께 구입하기 바랍니다- 조금 더 투자하면 가치를 느낄 것입니다.


2.6. 마인드스톰 비전 커맨드(Mindstorms Vision Command)

비전 커맨드(Vision Command) 키트는 USB 카메라로 뭔가 재미있는 것들을 해 보기 위한 마인드스톰 제품군의 새로운 확장팩입니다. 불행하게도, 아직 Linux에서 USB 카메라(특히, USB Quickcam)의 지원이 불안정하기 때문에, 이도 아직 Linux에서 지원되지 않습니다. 혹시 당신이 직접 도전하고 싶다면, 비슷한 Quickcam의 드라이버가 있는 이 페이지를 방문하기 바랍니다.


2.7. MS Windows CD에 대해 알아두어야 할 것(Important Note about the MS Windows CD)

아래에서 언급된 대부분의 프로그램이 공식적인 레고 펌웨어를 사용하기 때문에, 아마 MS Windows CD가 필요할 것입니다. 그렇다고 매번 MS Windows로 부팅할 필요는 없습니다- 시간을 보장해 줍니다 :) 하지만, (혹시 그 중에서 NQC나 RCX.pm을 사용한다면..), 배터리가 나갔을 때 펌웨어를 얻기 위해 CD를 마운트(mount)해야될 수도 있습니다. 이런 과정이 번거롭게 느껴진다면, CD에서 firm0309.lgo를 찾아 Linux 파티션의 안전한 곳에 복사해 두기 바랍니다.


3. LegOS


3.3. 유형(Type)

펌웨어의 대체(Firmware replacement).


3.5. 플랫폼(Platforms)

x86 GNU/Linux에서 개발되었고 PPC Linux에서 테스트되었습니다. 또한 MS Windows에서도 Cygwin과 DJGPP로 포팅되었습니다. Solaris와 Irix에도 포팅을 시도했지만 모든 도구들이 작동되지는 않았습니다.


3.6. 설명(Description)

LegOS는 POSIX를 따르는 RIS의 선점형 멀티태스킹(pre-emptive multitasking) OS입니다. 표준 C 또는 C++로 작성되어 gcc(크로스-컴파일러(cross-compiler)로 만들어진..)를 사용하는 PC에서 컴파일된 프로그램이 그들이 실행될 RCX에 적재됩니다. 일반적으로, C 또는 C++(그리고 당연하겠지만, RAM 32K ;)로 작성하는 모든 것들을 legOS에서도 작성할 수 있습니다. random(), 부동 소수점 에뮬레이션(floating point emulation), POSIX 세마포어(semaphores)를 이용한 쓰레딩(threading), 여러 개의 프로그램을 저장할 수 있는 능력까지, 재미있는 특징들이 있습니다. 또한 Linux와 MS Windows PC들로부터 데이터를 보내고 받는 기능도 포함되어 있습니다. 이런 능력(legOS는 RCX의 것을 대체할 수 있는 소프트웨어 시스템 중 가장 강력한 것으로 자리매김하고 있습니다.)을 부담없는 가격으로 가질 수 있습니다: gcc를 사용하기 때문에, legOS는 어쩌면 여러 Linux 변종들(?)의 설치를 위한 가장 복잡한 시스템일 지도, 가장 많이 도구들을 다운받아야 하는 것일 지도 모릅니다.


4. Lego::RCX.pm


4.2. 제작자(Author)

John C. Quillan


4.3. 유형(Type)

원격 제어 라이브러리(Remote control library).


4.5. 플랫폼(Platforms)

GNU/Linux, MS Windows, Solaris.


4.6. 설명(Description)

Lego::RCX.pm은 IR 타워를 통해 RCX를 원격 제어하는 데 쓰이는 기본적인 perl 라이브러리입니다. IR 타워를 대신해서 표준 펌웨어가 번역(interpret)하고 작동할 수 있게끔 하는 명령어를 전송합니다. 혹시 이미 perl을 가지고 있다면(그렇지 않은 경우가 있나요?) 이는 당신의 로봇을 매우 빠르고 간단하게 제어할 수 있는 방법이 될 것입니다. 인스톨(installation)도 필요없습니다: 단지 정확한 라이브러리 디렉토리에 파일을 복사하고, perl 스크립트 처음에 "use RCX.pm"이란 문구만 추가시키면 됩니다. 아직 확실하지만 않지만, 이것은 CGI 스크립트로 로봇과의 인터페이스를 설계하는데 있어 어처구니없을 정도로 쉬운 방법을 제시해 줄 것입니다.


5. Not Quite C (NQC)


5.3. 유형(Type)

자연(?) 바이트-코드 컴파일러(Native byte-code compiler).


5.4. 언어(Language)

Not Quite C라 불리는 (물론) C와 비슷한 언어. 코딩 경험이 거의 없는 사람이라도 쉽게 배울 수 있을 겁니다.


5.5. 플랫폼(Platforms)

GNU/Linux, MS Windows, Macintosh.


5.6. 설명(Description)

NQC는 C와 유사한 구문으로 작성된 프로그램을 표준 레고 펌웨어가 이해할 수 있는 바이트-코드로 컴파일(PC에서..)하는 바이트-코드 컴파일러입니다. 이러한 접근은 장단점을 가지고 있습니다: 예를 들어, 표준 펌웨어는 32개의 변수만을 다룰 수 있고 따라서 NQC도 비슷하게 제한됩니다. 하지만, 이런 제한에서도 놀라운 것들을 해 볼 수 있습니다. 설치는 무척 간단하고 모든 프로젝트는 문서화가 잘 되어 있습니다. 이야말로 아마 프로그래밍 시스템에서의 가장 알려진 대안이며, 그래서 NQC를 사용해 보고자 한다면 당신을 도와줄 의사와 준비가 되어 있는 사람들도 많이 있습니다.

이미 언급했듯이, NQC는 Linux에서 사이버마스터(Cybermaster)와 스카우트(Scout)를 지원하기 위한 유일한 선택(지금 당장으로서는..)입니다. 게다가, 그 베타버전은 2.0버전의 펌웨어와 작동하는데, 그것은 새 펌웨어의 부가적인 기능들을 지원하기 위해 처음 대안(alternative) 프로그래밍 시스템으로 만든 것입니다.


6. pbForth


6.3. 유형(Type)

펌웨어의 대체(Firmware replacement).


6.4. 언어(Language)

Forth라 불리는, 임베디드(embedded) 시스템에서 일반적으로 사용되는 스크립트와 유사한 언어.


6.5. 플랫폼(Platforms)

GNU/Linux, MS Windows.


6.6. 설명(Description)

pbForth는 원래 표준 펌웨어를 대체하는 완벽한 Forth 번역기(interpreter)입니다. 일단 로봇에 있다면, 로봇에 적재한 Forth 스크립트를 번역(interprets)해서 돌립니다. 변수의 갯수에 제한이 없으며, 상호대화형 디버깅(interactive debugging)같은 기능을 제공하는 라이브러리도 많이 있습니다. 설치에 관해서도 더 이상 쉬울 수가 없습니다: 당신이 할 일은 바이너리(binary)를 다운받아, 코드를 작성하고 적재하는 것 뿐입니다. PC에는 다른 어떤 도구나 컴파일러, 인터프리터(interpreters)가 필요없습니다. 즉, 스크립트를 적재하고 PC와 상호대화(interaction)하기 위해 쉽게 이용할 수 있는 크로스-플랫폽(cross-platform) TCL GUI인 것입니다.


7. TinyVM와 leJOS


7.3. 유형(Type)

펌웨어의 대체(Firmware replacement).


7.5. 플랫폼(Platforms)

GNU/Linux, Win32


7.6. 설명(Description)

이름에서 알 수 있듯이, TinyVM은 표준 펌웨어를 대체하기 위해 RCX에 적재되는 정말 작은 Java Virtual Machine입니다. Java 프로그램이 작성되고 나면 PC에서 바이트-컴파일(byte-compile)되어 RCX에 적재됩니다. TinyVM 프로그램은 표준 Java 라이브러리, 센서와 모터 조정을 위한 라이브러리, 그 외 마인드스톰에서 제공하는 등등의 것들까지 사용할 수 있습니다. TinyVM은 이미 제 기능을 하는 java 컴파일러를 필요로 합니다.

leJOS는 같은 제작자에 의한 비슷한 프로젝트(사실, 흡사한 코드입니다.)입니다. 훨씬 진보된 성과(현재 약 5K 사이즈가 늘었습니다.)일 뿐 아니라 부동 소수점(floating point)이나 문자열 상수(String constants)의 지원까지, 가치있는 부가기능들도 있습니다. 다른 계획 중인 특징으로 찌꺼기 모음(?, garbage collection)과 복수 프로그램 적재(multiple program loading) 등이 있습니다.


8. Remote Java APIs


8.2. 유형(Type)

원격 제어 라이브러리(Remote Control Libraries).


8.5. 설명(Description)

이 라이브러리들은 (이론적으로) 표준 펌웨어를 사용하여 RCX를 원격 제어할 수 있게끔 신호를 보내는 크로스-플랫폼(cross-platform) Java 라이브러리입니다. Linux에서는 물론 실제 개발에서도 테스트해 보지 않았지만, 그것들은 누군가에게는 유용한 소스가 될 것이며, 그런 이유로 여기 포함시켰습니다.


9. TCL RCX


9.2. 제작자(Authors)

Laurent Demailly and Peter Pletcher


9.3. 유형(Type)

자연(?) 바이트-코드 컴파일러(Native byte-code compiler)와 원격 제어 라이브러리(remote control library).


9.5. 플랫폼(Platforms)

GNU/Linux, Win32


9.6. 설명(Description)

TCL RCX 컴파일러는 2가지의 기능을 합니다: TCL 스크립트를 RCX 바이트-코드로 컴파일할 수도 있고, 스크립트나 대화형(interactive) TCL 쉘(shell)을 통하여 로봇을 원격 제어할 수 있게끔도 합니다. 혹시 당신이 TCL을 사용하고자 한다면, 이것이 최선의 해결책이 될 것입니다. 2가지 버전이 있습니다: Laurent의 것이(demailly.com에 있는..) 2가지 중 원본으로 보입니다. 하지만 둘 다 1998년 이후로는 업데이트가 이루어지지 않고 있습니다.


10. Pylnp


10.3. 유형(Type)

원격 제어 라이브러리(Remote control library).


10.6. 설명(Description)

Pylnp은 Python을 사용할 뿐만 아니라 표준 펌웨어 대신 legOS와 함께 작동한다는 점에서, 특이한 원격 조정 라이브러리입니다. 이로 인해, 다른 원격 조정 라이브러리들과 달리 최적화(customizability)시킬 수 있는 능력을 가집니다. 왜냐하면, 로봇의 leoOS에 포함되어 있는 함수들을 호출하여 사용할 수 있기 때문입니다. 물론 이러한 기능을 위해, legOS을 배우고, 이 막강한 기능을 제대로 써 볼 수 있는 C 프로그램을 작성해야 하는 것 정도는 감수해야 합니다.


11. 다른 Linux 도구들

이 프로그램들은 마인드스톰과 직접적으로 관련된 것은 아니지만, Linux/Lego 팬들의 관심을 끌만한 것들입니다.


11.1. LeoCAD

LeoCAD는 (이름에서 알 수 있듯이) 레고 모델들을 설계(constructing)하고 렌더링(renderging)하기 위한 CAD 프로그램입니다. GTK 포트(port)를 이용할 수 있으며, http://leocad.gerf.org/linux.htm에서 구할 수 있습니다. 제작자가 모든 기능을 갖추고 있지 않다고 말하고 있지만, 누군가에게는 재미있는 프로젝트 꺼리가 될 것입니다.


11.2. POVRAY

레고 블럭세트는 유명한 POVRAY 3-D 렌더링(rendering) 프로그램과 함께 사용될 목적으로 제작되었었습니다. http://www.kawo1.rwth-aachen.de/~witte/projekte/lego/lego.html에서 그 블럭들을 볼 수 있으며 http://www.povray.org에서 POVRAY를 볼 수 있습니다.


12. 다른 정보를 얻을 수 있는 곳들(Other sources of information)

이 글을 읽을 때 쯤이면, 웹에는 마인드스톰을 더 탐구할 수 있도록 하는 곳이 많이 생겼을 것입니다. 이들 대부분이 Linux를 겨냥한 것은 아니지만, 이들 중 대부분이 아마 적지 않은 Linux 유저들을 보유하고 있는 토론회장(discussion forums)을 가지고 있을 것입니다. 바라건대, 저는 당신이 그 이상 탐구하도록 충분히 격려해왔던 것입니다. 즐기세요!


12.1. LUGNET

레고 사용자그룹 NETwork 사이트(http://www.lugnet.com/)는 오랫동안 온라인 상의 레고 세계에서 그 중심에 있어 왔습니다. 많은 사람들이 있는 커다란 뉴스그룹도 있습니다. 특히, robotics forum은 매우 식견있는 독자와 필자들이 모인 열성적인 곳입니다. 게다가, 위의 몇몇 도구들은 robotics/rcx/에 있는 그들의 뉴스그룹에도 있습니다.


12.2. The Official Mindstorms Site

공식 마인드스톰 사이트(http://www.legomindstorms.com/)는 멋진 아이디어로 가득한 곳인데, 심지어 공공 배포(public distribution)용 NQC 소스도 받아줍니다. 하지만, Linux에 관한 한 많은 걸 기대하지는 말기 바랍니다.


12.3. The Hardware Sites

제가 이미 언급했듯이, 가슴 아파할 이유가 없습니다. 이곳에는 레고 엔지니어가 아닌 사람들도 사용할 수 있는 RCX 하드웨어에 대해 가장 포괄적이면서도 세세한 것들까지 적어놓았습니다. 오리지널 사이트는 http://www.crynwr.com/lego-robotics/이고 또 하나로 http://graphics.stanford.edu/~kekoa/rcx가 있습니다.


12.4. Historic Lego Bots and Construction Guide

알다시피, RIS는 MIT의 작업에서 일부 영감을 얻었습니다. MIT의 유명한 "Lego class" 창시자는 클래스에의 링크(거기서 이루어지는 몇몇 재미난 일들)뿐만 아니라, 로봇을 만들어 놀라운 프로그램들 모두를 실행하기 위해 여태껏 당신이 배웠던 실질적인 방법들에 대해서 많은 의견들이 있는 그의 Robot Builder's Guide에도 링크된 홈페이지를 가지고 있습니다.




sponsored by andamiro
sponsored by cdnetworks
sponsored by HP

Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2003-08-10 11:52:29
Processing time 0.0223 sec