캡스톤디자인산학연계팀과제최종보고서 과제명다중의단일포인트라이다를사용한 3D 스캐닝구현 과제기간 2017 년 11 월 1 일 ~2017 년 12 월 31 일과제비 297,000 원 팀명 ARS 과제유형 일반 현장실습연계 지도교수소속임베디드시스템공학과성명이영섭 구분성명학년학번소속학과 팀장이선웅 4 201201724 임베디드시스템공학과 참여학생 서유진 3 201201709 임베디드시스템공학과 팀원 참여기업기업명카네비컴담당자 성명 김종욱 연락처 010-3261-6816 본보고서를공학교육혁신센터캡스톤디자인산학연계팀과제최종보고서로제출합니다. 붙임 : 최종결과보고서 1 부 2017 년 11 월 30 일 대표학생 : 이선웅 ( 인 ) 인천대학교공학교육혁신센터장귀하
캡스톤디자인산학연계팀과제최종결과보고서 Ⅰ. 과제개발의목적및필요성 1. 목적및필요성 최근자율주행차기술의발전과함께라이다 (LiDAR, Light Detection And Ranging) 에대한관심도증가하고있다. 라이다는일반적으로높은에너지밀도와짧은주기를가지는펄스신호를생성할수있는레이저의장점을활용하여레이저가물체에반사되어돌아오는시간으로물체까지거리, 방향, 물질및농도등을감지할수있는기술이다. 라이다는대표적으로고해상도의지도를만들거나공간의지형지물을점으로스캐닝하는등주변지리정보구현에사용될수있다. 라이다의이러한기능은항공기, 위성등과같은분야에서응용되어사용되고있다. 또한 SLAM(Simultaneous Localization And Mapping) 구현의핵심장치로서, 로봇, 자율주행차, 화성탐사로버등과같은무인차량에사용되고있다. 이이외에 3D 영상카메라의핵심기술로활용되면서그활용성과중요성이점차증가되고있다. 이처럼라이다는다양한분야의정적또는동적인환경에서유용하게사용될수있다. 하지만, 이는아직고가에속하기때문에다양한분야에적용하기에는한계가있다. 따라서본논문에서는저가의단일포인트라이다 3개를스텝모터와결합한뒤, 이를회전시켜 3-Layer의스캐닝데이터를얻어낼수있도록구현하였다. 이와같은구현은기존의 3D 스캐닝멀티채널라이다의가격과비교할때크게저렴하고, 빠른회전속도로높은샘플링레이트의스캐닝을요구하지않는분야에서효과적으로활용될수있다. 2. 활용성및기대효과 라이다는한점을탐지하는빛을다양한방향으로발산하면서, 2 차원, 3 차원공간을표현할수있 다. 따라서특정물체나공간을입체적으로인지하거나, 실시간지도를표현하는등공간인식분야에 서다양하게사용될수있다. 2차원이상의공간을인식하는라이다는비교적고가의장치로일반적인사용에제한을가지고있다. 그러나저가의단일포인트라이다를모터와결합하여과제와같이임의의용도에맞게설계할수있고, 점재구성기술과합하여고급형라이다와일정수준이상으로유사한결과를경제적인가격으로생성해낼수있다. 이렇게설계된라이다모듈은 2차원이상의공간인식기술을유용하게사용할수있지만가격때문에사용할수없었던분야에서다양하게활용될수있을것으로기대한다.
Ⅱ. 과제내용및제작과정 1. 과제내용 1-1. 시스템구성 라이다와모터, 측정된데이터의보드간통신과제어방향을 ( 그림 1) 에서볼수있다. 여기서주연산장치는 Odroid Xu4 보드로센서데이터의전처리과정및알고리즘연산이실행된다. 단일포인트라이다 3개는 Arduino Mega 2560의 PWM핀과연결되어거리값을받아오며스텝모터는동일 Arduino에모터쉴드를추가하여 PWM값으로속도를제어한다. ( 그림 1) 시스템전체개념도 라이다에서측정된데이터는, Linux 기반의 OS 인 ROS 를사용하여메시지형식으로 Arduino 에서 Odroid 로전송된다. 센서측정부에서단일포인트라이다 3 개는 ( 그림 2) 와같이수직으로한축에 위치하며라이다가위치하고있는높이는실험을통해설정했다. ( 그림 2) 라이다모듈의측정부 이렇게설정한 3 개의라이다들은스텝모터와결합하여같은축에서회전하며, 3-layer 라이다와 같은역할을할수있다.
1-2. 개발환경 1-2-1. ROS(Robot Operating System) 본과제에서우리팀은 Linux 기반의 ROS를사용하고있다. ROS는 ( 그림 3) 과같이구성된노드들간의통신을 message단위로하며, 기기내의노드간통신뿐만아니라, 다른기기의노드들과도 message를통해통신이가능한구조로되어있다. 이를사용하여, 앞서아두이노를통해수신받은 raw data들을 ROS의 message로 publish하여 ROS 상에서구동되는모든노드들이자유롭게라이다 raw data로접근할수있도록한다. ( 그림 3) ROS 노드구조 또한오드로이드에설치된 ROS에서구현한노드들을통해가공된데이터는앞선방법과마찬가지로 ROS의 message로 publish하고아두이노에서 subscribe하여수신할수있도록설정한다. 따라서서로다른기기인오드로이드와아두이노간의통신을보다간편하고더정확하게보낼수있는방식을적용시켰다. 1-2-2. CAN(Controller Area Network) CAN 통신 (Controller Area Network) 은차량내에서호스트컴퓨터없이마이크로콘트롤러나장치들이서로통신하기위해설계된표준통신규격이다. 차량의기본정보들을 CAN 통신의메시지기반프로토콜을통해수신받아 data parsing 과정을거쳐실제사용할수있는값으로받아온다. ( 그림 4) 은과제에사용된 PCAN-USB라는 Adapter를통해 CAN 데이터를수신할수있는프로그램이다. 여기서 PCAN-USB Adapter를통해받아온 CAN데이터는 8bit의 binary 값이므로데이터수신뒤정해진프로토콜에맞게 parsing하는작업이필요하다.
( 그림 4) PCAN-USB 를통한차량 CAN 데이터수신 1-3. 시스템구현및실험 1-3-1. 단일포인트라이다 본실험에서사용한단일포인트라이다는 Sparkfun사의저가형 LIDAR-Lite v3 모델로서, 최대 40[m], 500[Hz] 로단일포인트까지거리를측정한다. 이측정데이터는 ( 그림5) 과같이 [cm] 단위의단순한거리값만을가지고있는데, 포인트로 2차원평면을스캔하기위해서는거리값뿐만아니라위상값이동시에필요하다. ( 그림 5) 3 개의단일포인트라이다데이터측정
1 3-2. 스텝모터와극좌표생성 2 차원평면을포인트로나타내기위한방법으로스텝모터를사용하였는데, 스텝모터는 1 상 0.9 도로회전하고, 따라서 90 도는 100 개로샘플링된다. 이러한스텝모터의특징을바탕으로상변화 마다위상정보에라이다의거리정보를더하여 ( 거리, 위상 ) 의극좌표를구성한다. 1-3-3. 좌표변환및평면좌표생성 극좌표계로라이다의출력값들을재구성한다음, 데이터를보다간결하게사용하기위해라이다를원점으로한직교좌표계로의변환이필요하다. 라이다의측정거리가 r이고각도가 p이면 (r, p) 로표현가능하며, 이좌표를회전변환을하여라이다모듈을원점으로하고단위가 m인 (x, y) 로직교좌표계로의변환이가능하다. ( 그림 6) 는중앙선좌측으로는라이다의거리값과스텝모터의위상값을합쳐재구성한극좌표값이다. 그리고우측으로는좌표변환을통해얻은직교좌표값이다. ( 그림 6) 측정데이터의극좌표와직교좌표 1-3-4. 다중레이어라이다교정 여러개의라이다에서의출력값을 1-Layer 좌표계로표현할경우, 각라이다포인트에높이값이포함되어있지않은평면좌표들로인해가독성이떨어지는좌표들을확인할수있었다. 이경우라이다 3개가수직으로위치하므로, 기준라이다로부터각라이다까지의높이값인좌표까지더해 (x, y, z) 의좌표를완성한다. 따라서각각 3개의평면데이터를한평면에맞춰조합함으로써, 라이다모듈을원점으로하는 3-layer 평면을구현해낼수있다.
1-4. 라이다모듈을사용한응용기술모방구현 앞서구현한 3-layer 라이다모듈을기반으로실제차량에적용되어있는기술들을모방구현해보고자하였다. 대표적인기술중에라이다를통한 Localization 기술중하나로 SLAM(Simultaneous Localization and Mapping) 이있다. 이기술을실제로구현해보기위해우리는차량과 PC간 CAN 통신을통해차량의속도값, odometer 값을받아오는것이필요했다. 따라서사전에과제를위해구입한 PCAN-USB를통해차량의 CAN을받아오는데는성공했으나, 보안상의문제로차량 CAN 프로토콜을얻어오지못해다른기술을구현해보기로하였다. 간단하게구현할수있는응용기술로는라이다를이용한장애물탐지였으며, 간단한알고리즘을개발하여본실험에서구현한라이다모듈에적용해보았다. 라이다모듈을통해변환된직교좌표의이전 3개점들의 2계도함수값을기준으로하여, 다음점위치의예측값을구하고, 예측값은실제측정된점의값과비교된다. 이때실제측정값이과거 3 개점과비교해일정오차범위를넘어꺾인점이라고판단되면, 해당점을서로다른물체의경계, 즉엣지로판단한다. 이렇게엣지로구분되어진점들의그룹은평균값을취하여한객체를대표하는대푯값으로나타낸다. 측정데이터로부터객체를불리한후로는, 해당객체의움직임의여부를판단할수있다. 1회전측정의각개체위치를프레임으로인식하여저장하고, 다음 1회전측정에서추출된객체위치와비교하여, 상대적으로접근한개체로판단한다. ( 그림 7) 라이다모듈 data 로부터엣지검출
2. 제작과정 가. 제작일정 추진일정표 일련번호 주요내용 추진일정 11 월 12 월 1 월 1 제품설계및물리적구현 3 주 2 센서사용환경및통신환경구축 3 주 3 센서데이터처리 / 가공소프트웨어개발 4 주 4 제품실험환경구축 4 주 기간 ( 주 ) 5 라이다모듈을사용한응용기술모방구현 4 주 나. 상세도면및과제사진 ( 설계도, 부품도, 제작과정으로자세히기술 ) ( 그림 8) 초창기라이다모듈 ( 그림 9) 라이다모듈 3D 모델링및개선된모듈
Ⅲ. 결론 1. 과제개발성과 본과제에서구현한 3-layer 라이다모듈과시중에서많이쓰이는 1-layer 라이다 Rplidar A2 제품을비교하여실험하였다. 실험방법으로는라이다후방 90 내에서라이다가어떻게스캔되는가를바탕으로두비교군을평가하였다. ( 그림 6) 은 1-layer 라이다 (Rplidar A2) 로후방을스캔한포인트들이며, 라이다에여러물체들로추측되는점들이보이는화면이다. 이때, 1-layer 라이다의특성상스캔한높이와같은물체들만인식되어정확성이떨어진다는단점을보였다. ( 그림 6) 1-layer 라이다후방스캔 ( 그림 7) 은본논문에서제안한3-layer 라이다모듈로후방을스캔한포인트들이며, 그때후방물체들이인식되는화면이다. 이실험결과는 1-layer로스캔했을때와달리다양한높이에서의데이터를얻을수있어 1-layer라이다가검출하지못한물체도스캔한것을확인할수있었다. 또한, 물체의형상을더뚜렷하게확인할수있는장점도보였다. ( 그림 7) 3-layer 라이다모듈후방스캔
2. 문제점및개선방안 ( 작품에대한것뿐만아니라, 과제수행의전반적인내용에대하여기술 ) 2-1. 문제점 1) 라이다모듈데이터 rate 문제 라이다데이터를받아오는코드와스텝모터를구동시키는코드를전력문제상각기다른아두이노에서구현하였다. 여기서발생하는문제점은극좌표를만들기위해서는두데이터를타이밍에맞게재정립해주는과정이필요했다. 하지만, 두아두이노간 I2C 통신으로타이밍을맞추는작업을진행시, 기존라이다의데이터 rate에못미치는속도가나오게되어예상했던 sampling rate보다한참낮은속도로극좌표값을얻어내야만했다. 2) 구현한장애물검출알고리즘의정확도 1-layer 라이다와본과제에서구현한 3-layer 라이다모듈의비교를위해작성한전방장애물검출알고리즘의 70% 미만의정확도를보여신뢰성이매우떨어지는효과가있었다. 이는위에서언급한데이터갱신속도도영향을받기도했지만, 2차미분값을사용함에따라오차가누적되어신뢰도를확보하지못했다고생각한다. 2-2. 개선방향 1) Critical section 설정하여타이밍맞추는작업진행 라이다데이터및스텝모터데이터값을아두이노끼리연결하여타이밍을맞추는것이아닌, 각각은최대속도로동작하게하며, ROS 상에서타이밍을맞추는노드를작성하여갱신속도를 비약적으로높일수있을것이라생각된다. 2) 장애물검출알고리즘대신 SLAM 구현시도 기존에진행하려고했던 SLAM 구현이 CAN 프로토콜때문에무산되었다면, 우리팀만의소형 robot 을만들어실내에서의 localization 을구현해볼예정이며, 따라서추가구매물품으로는소형 robot, 추가센서들 ( 가속도센서, 자이로센서등 ) 이필요하다고생각된다.
* 부록 ( 지원재료 / 시작품사진, 경진대회참여등여러컷및아이디어붐 캡쳐사진첨부 ) ( 그림 8) PCAN-USB