[myLV.net 집필진 강좌 – Goodmaner]
이번 강좌에서는 LabVIEW와 LEGO Mindstorms EV3를 이용한 로봇 프로그램 만들기에 대한 네번째 시간으로 로봇 프로그램 운영을 위한 소프트웨어 및 하드웨어 구조 설계에 대해서 소개해 드리겠습니다.
적외선 센서와 컬러 센서를 이용하여 장애물을 감지하면서 이동하는 Driving Robot을 고려해 보겠습니다. 블루투스나 적외선 리모컨 또는 USB 케이블을 통하여 EV3를 제어할 수 있지만 여기에서는 Stand alone으로 구현한 이미지를 실행하여 동작하도록 운영하려고 합니다. 이를 구현하기 위하여 아래와 같은 상태 머신으로 로봇을 운영할 수 있습니다.
최초 프로그램을 실행하면 "Forward" 상태로 천이합니다. 이 상태에서는 로봇의 두 다리에 해당하는 모터를 구동하여 앞으로 전진하도록 하며, 이와 함께 적외선 센서와 컬러 센서를 통하여 장애물을 감지합니다. 만약 장애물이 없으면 "Forward" 상태를 계속 유지하며, 장애물을 감지하면 "Stop" 상태로 천이합니다. "Stop" 상태에서는 모터를 정지하고, "Detect Obj" 상태로 천이합니다. "Detect Obj" 상태에서는 로봇을 뒤로 이동시킨 후 센서들을 통하여 취득한 정보를 이용하여 왼쪽 또는 오른쪽으로 회전할지, 또는 270도 회전할지를 판단합니다. 즉, 왼쪽 컬러센서를 통하여 검은색을 감지하면 오른쪽으로 90도 회전하고, 오른쪽 컬러센서를 통하여 검은색을 감지하면 왼쪽으로 90도 회전합니다. 만약 적외선 센서를 통하여 장애물을 감지하면 270도 회전합니다. 이처럼 "Turn Around", "Turn Right", "Turn Left" 상태 중 하나로 천이한 이후에 장애물이 있는지 판단하여 장애물이 없으면 "Forward" 상태로 천이하고, 장애물이 있으면 "Stop" 상태로 천이합니다.
이와 같은 상태 머신을 LabVIEW SW로 구현하기 위해서는 표준 상태머신 구조를 이용하면 됩니다. 관련 구조에 대해서는 아래 링크에 올려놓은 강좌 글을 참고하시면 좋을 것 같습니다.
아래 그림은 각 상태 별 코드 구현 내용입니다.
아래 그림은 EV3 Programmable Brick에 모터 및 센서들을 연결한 상태 정보를 표시하고 있습니다.
다음은 Driving Robot 로봇 운영을 위한 HW 구조 설계에 대해서 살펴보겠습니다. 아래 링크된 레고 마인드스톰 사이트에서 로봇 운영을 위한 HW 조립 설명서를 다운로드 받을 수 있습니다. 이를 참고하여 기본 로봇 프레임을 구성하고, 컬러 센서와 적외선 센서를 적절한 위치에 배치시킨 후 위에서 언급한 포트에 센서 및 모터들을 연결시켜주면 됩니다.
https://www.lego.com/en-us/mindstorms/build-a-robot
지금까지 LabVIEW와 LEGO MINDSTORMS EV3로 로봇 프로그램 운영을 위한 SW 및 HW 구조 설계에 대해서 살펴보았습니다. 다음 강좌에서는 로봇 프로그램 동작을 확인하는 방법에 대해서 자세히 살펴보겠습니다.