From Friday, April 19th (11:00 PM CDT) through Saturday, April 20th (2:00 PM CDT), 2024, ni.com will undergo system upgrades that may result in temporary service interruption.

We appreciate your patience as we improve our online experience.

[Archive] 강좌게시판

cancel
Showing results for 
Search instead for 
Did you mean: 

[myLV.net 집필진 강좌] LabVIEW와 LEGO Mindstorms EV3를 이용한 로봇 프로그램 만들기 - 준비하기

[myLV.net 집필진 강좌 – Goodmaner] 

 

이번 강좌에서는 LabVIEW와 LEGO Mindstorms EV3를 이용한 로봇 프로그램에 대한 첫번째 시간으로 LEGO Mindstorms EV3 H/W Platform 및 LabVIEW S/W Add-On Toolkit인 LEGO Mindostorms Toolkit에 대해서 소개해 드리겠습니다.

LEGO Mindstorms은 1998년에 1세대 버전으로 RCX, 2006년에 2세대 버전으로 NXT, 2013년에 3세대 버전으로 EV3가 출시되었습니다. 우선 관심있게 다루고자 하는 EV3에 대해서 자세히 살펴보겠습니다.
아래 내용들은 EV3에 대한 상세 내용들입니다.

 

.LGEO Mindstorms 제품군의 3세대 Robot Kit
.2세대 NXT 2.0 Kit의 후속 제품
.EV”는 Mindstorms 제품 라인의 “진화"를 의미
.3”은 컴퓨터 모듈의 3세대를 의미 (첫번째는 RCX, 두번째는 NXT)
.2013년 1월 4일에 공식 발표, 2013년 9월 1일에 매장에서 출시
.교육용 버전은 2013년 8월 1일에 출시
.다양한 대회 (First LEGO League, Word Robot Olympiad)
.NXT 2.0에서 EV3으로의 가장 큰 변화는 Programmable Brick의 기술적 진보
.NXT의 Main Processor는 ARM7 Micro Controller였고, EV3은 Linux를 실행하는 보다 강력한 ARM9 CPU 사용
.USB 커넥터와 MicroSD 슬롯(최대 32GB)은 EV3의 새로운 기능
.EV3 Home(31313) 구성 : 1 EV3 programmable brick, 2 Large Motors, 1 Medium Motor, 1 Touch Sensor, 1 Color Sensor, 1 Infrared Sensor, 1 Remote Control, cables, USB cable, 585 Technic elements
.Education EV3 Core Set(45544) 구성 : 1 EV3 programmable brick, 2 Large Motors, 1 Medium Motor, 2 Touch Sensors, 1 Color Sensor, 1 Gyroscopic Sensor, 1 Ultrasonic Sensor, cables, USB cable, 1 Rechargeable battery, 547 Technic elements

 

위에서 언급한 것처럼 EV3는 Home과 Education 두가지 Set로 판매되며 가격대는 각각 40만원과 70만원대입니다. 즉, Education의 경우에는 Home Set보다 Gyroscopic Sensor, Ultrasonic Sensor, Rechargeable battery가 추가로 제공되기 때문에 가격이 더 비쌉니다. 개인적으로는 Rechageable battery는 반드시 필요하다고 보는데, Home Set의 경우에는 제공되지 않기 때문에 EV3 programmable brick을 운영하려면 1.5V 건전지 6개가 필요합니다. 

아래 표는 각 세대 별로 출시된 Mindstorms 간 비교 자료입니다.

1.png

 

위의 그림에서 보는 바와 같이 세대가 진화되면서 물리적인 성능이 향상됨을 확인할 수 있습니다. 가장 최근에 출시된 EV3의 경우 Main Processor로 ARM9 core를 사용하며 동작 주파수는 300MHz이고, 기본 메모리에 추가로 microSD 32GB를 실장할 수 있으며, USB Host port, WiFi, Bluetooth 등과의 connectivity를 제공합니다. 특히 EV3 programmable brick에 binary image를 다운로드할 때 Bluetooth를 사용하면 매우 편리합니다.

다음은 최근에 많이 사용 중에 있는 NXT와 EV3에 대해서 상세 비교한 내용입니다.

2.png

 

위에서 보는 바와 같이 가장 큰 변화는 Processor 성능이 향상된 점이라고 볼 수 있습니다. 외관 상으로도 약간의 차이는 있지만 센서와 모터를 연결하는 포트의 위치는 동일합니다. 개인적으로는 NXT처럼 EV3도 외형이 곡면으로 구성되면 좀 더 세련되지 않았을까 싶습니다.

EV3 programmable brick에 연결할 수 있는 센서들과 모터 종류 및 스팩들은 아래 표와 같습니다.

3.png

 

위에서 보는 바와 같이 연결 가능한 센서들로는 Touch, Color, Ultrasound, Gyroscope, Infrared가 있으며, IR 원격제어 센서가 추가로 제공됩니다. 연결 가능한 모터는 Large 모터와 Medium 모터 두 종류가 있습니다. 로봇을 운영하는 경우, 일반적으로 로봇 다리 제어용으로 Large 모터를 사용하고, 로봇 팔 제어용으로 Medium 모터를 사용합니다.

아래 그림은 지금까지 설명드린 EV3 programmable brick에 연결할 수 있는 센서들과 모터들의 외형 및 물리적인 연결 포트를 나타내고 있습니다. 그림에서 보는 바와 같이 EV3 programmable brick의 아래쪽에 다양한 센서들을 연결할 수 있으며, 위쪽은 모터를 연결할 수 있습니다. 만약 센서를 모터 연결 포트에 연결시킬 경우 센서가 손상될 수 있기 때문에 각별한 주의가 필요합니다.

4.png

 

아래 그림은 EV3 programmable brick의 외형을 나타내고 있습니다. 앞에서 설명드렸듯이 모터와 센서 연결하는 포트가 구분되어 있으며, USB와 microSD 연결 포트의 위치도 표시되어 있습니다.센서 포트로 4개가 존재하며 숫자 1 ~ 4로 표시되어 있습니다. 모터 포트도 4개가 존재하며 A ~ D로 표시되어 있습니다. 뿐만 아니라 PC와 연결하기 위한 포트가 모터 포트와 같은 곳에 위치해 있습니다.

5.png

 

지금까지 LEGO Mindstorms EV3 H/W Platform에 대해서 자세히 살펴보았습니다. 다음은 LabVIEW에서 LEGO Mindstorms H/W Platform을 사용할 수 있도록 해주는 제공해주는 Add-In Toolkit에 대해서 살펴보겠습니다. 아래 그림에서처럼 LabVIEW에서는 NI LabVIEW Module for LEGO MINDSTORMS이라고 하는 Toolkit을 제공하고 있습니다. 

6.png

 

위에서 언급된 것처럼 다양한 기능들에 대한 API를 제공하고 있어서 편리하게 LEGO Mindstorms 하드웨어를 원하는 형태로 제어가 가능합니다. 참고로 유사한 개념으로 LabVIEW Robotics Module이라는 Toolkit이 있는데, 관심 있으신 분들은 참고하시면 좋을 것 같습니다. 즉, NI에서도 LEGO Mindstorms과 유사하게 로봇용 H/W Platform을 제공하며, 관련 Toolkit과 함께 사용할 수 있습니다.

7.png

 

지금까지 설명드린 내용을 바탕으로 로봇 운영 프로그램을 아래와 같이 구현해 보았습니다. 로봇 형태는 아래와 같으며, 조립 방법은 LEGO Mindstorms 홈페이지에서 다운받을 수 있습니다. 

8.png

 

 

로봇을 운영하는 프로그램의 UI는 아래와 같습니다. 카메라 이미지를 표시하는 부분이 있는데, 실제 로봇에 카메라를 장착하면 로봇이 바라보는 위치의 이미지를 실시간으로 표시할 수 있습니다. 그리고 로봇의 다리를 제어하기 위한 UI가 제공되며 제어 상태를 실시간으로 확인하는 표시 창이 제공됩니다.

9.png

 

 

아래 그림은 메인 프로그램의 소스코드로 3개의 while loop로 구성되어서 하나는 UDP 통신을 통한 모터 제어값을 취득하고, 다른 하나는 취득된 모터 제어 값을 이용하여 실제로 모터를 구동하고, 마지막 하나는 카메라로부터 실시간으로 이미지를 취득합니다. 관련 코드에서 관심있게 봐야 할 부분은 모터 제어할 때 사용하는 API(MotorOn.vi)로 관련 API는 Toolkit을 설치하면 사용할 수 있습니다.

10.png

 

11.png

 

 

지금까지 LEGO Mindstorms H/W Platform과 NI LabVIEW Module for LEGO MINDSTORMS Toolkit에 대해서 자세히 살펴보았습니다. 
다음 강좌에서는 로봇 프로젝트 생성 및 운영 방법에 대해서 살펴보겠습니다.

 

Contributors