희희
프로젝트 개요
기술개발 과제
국문 : Ohmnilabs의 telebot을 활용한 VR을 사용한 전시회 관람 로봇
영문 : A robot for watching a exhibition via VR using Ohmnilabs' telebot
과제 팀명
희희
지도교수
김성환 교수님
개발기간
2018년 3월 ~ 2018년 6월 (총 4개월)
구성원 소개
서울시립대학교 수학과 2013540003 권형구(팀장)
서울시립대학교 컴퓨터과학부 2014920029 위세라
서울시립대학교 컴퓨터과학부 2014920053 조영서
서론
개발 과제의 개요
개발 과제 요약
하루가 다르게 변해가는 세상을 살아가는 바쁜 현대인들은 시간적 또는 공간적인 제약으로 인해 관람하고자하는 전시회 또는 박람회에 참석하지 못하는 경우가 많습니다. 이러한 시공간적인 제약을 최소화 시킬 수 있는 방안을 모색하던 중에 전시회 박람 로봇을 제작하게 되었습니다. 사용자는 로봇을 원하는 장소에 보낸 후에 웹 사이트를 이용해서 ‘지도 제작’을 로봇에게 요청합니다. 로봇은 웹 서버로부터 요청을 받은 후 실시간으로 현장을 촬영하기 시작합니다. 사용자는 자신의 컴퓨터를 이용해서 현장의 상황과 지도 제작 과정을 확인할 수 있습니다. 또한 서버로부터 받은 위치 정보를 기반으로 로봇은 스스로 장애물을 피해 이동합니다. 로봇이 지도 제작을 완료한 후 사용자는 VR기기를 통해서 촬영된 지도를 확인할 수 있습니다.
개발 과제의 배경
- 교통이 좋지 않거나 시간이 없어 국내외에서 열리는 전시회 또는 박람회에 참가하지 못하는 경우가 있다.
- 어떤 전시회는 참석하지 않으면 정보의 격차를 발생시켜 개인이나 단체에 손실을 불러올 수 있다.
- 특히 국내라고 하더라도 교통 오지에 거주하는 경우 전시회가 열리는 큰 도시로 이동하는 데 막대한 비용이 발생하기 때문에 손실을 감수해야만 하는 경우도 있다.
- 전시회 관람 로봇을 활용하면 여러 사람들이 먼 곳에서도 전시회를 즐기고 배울 수 있다.
- 국내외 어느 곳이든 체험할 수 있어 환경의 제약을 벗어날 수 있게 해준다.
개발 과제의 목표 및 내용
◇ SLAM 기법을 이용하여 로봇이 스스로 지도를 만들고 자신의 위치를 특정할 수 있게 한다. - 라즈베리파이와 카메라 파이를 이용해 360도 주변 모습을 캡쳐한다. - 라즈베리파이에서UV4L 모듈을 사용해 실시간 영상 스트리밍 서버를 구축한다. - 컴퓨터에서 SLAM연산을 수행하여 지도를 제작하고 로봇의 위치정보를 다시 로봇에게 전송해준다. ◇ VR기기를 이용해 로봇을 움직이며 전시회를 관람한다. - HMD를 이용해 로봇이 전송해주는 이미지를 관람한다. - 키보드 혹은 HMD의 조종 방식을 통해 로봇을 움직인다. - 바뀐 위치를 제작된 지도에 업데이트한다. - 위와 같은 방식을 반복하며 전시회를 관람한다.
관련 기술의 현황
관련 기술의 현황 및 분석(State of art)
*전 세계적인 기술현황 ◇ SLAM - 2016년 10월, 구글에서 2D 지도 뿐만 아니라 3D지도 또한 제작할 수 있는 '카토그래퍼'라는 SLAM기술을 오픈소스로 공개하였다. - 최근 ‘ㅅ’사의 로봇청소기는 SLAM 알고리즘을 이용해 그동안 청소하지 못했던 위치에 대한 인식 및 측정, 청소 등을 수행하고 청소에 대한 경과 및 결과를 사용자에게 알려주는 기능을 탑재하여 출시되었다. - 자동차 산업에서도 네비게이션, 자율 주행 등 SLAM 알고리즘을 접목시켜 진행되는 프로젝트가 꾸준히 늘어나고 있다. - github 등 오픈소스 커뮤니티에 다양한 SLAM Project들이 올라있다. ◇ 영상 stitching - 스마트폰의 파노라마 촬영 기능에 이용되고 있다. - 미스티카VR 등 저렴한 가격으로 쉽게 Stitching 기술을 사용할 수 있는 소프트웨어들이 공개되어있다.
*특허조사 및 특허 전략 분석 ◇ 천정의 반복 무늬와 화소이동벡터를 이용한 로봇의 위치 및 방향 계산 - 2012년 5월 등록되었다. - 천정에 반복되는 무늬가 있는 경우 각 지점으로부터의 거리를 계산하여 로봇의 위치와 방향을 계산하는 방법이다.-
◇ 특징점을 이용한 영역 구분 방법 및 장치와 이를 이용한 이동 청소 로봇 - 2007년 12월 등록되었다. - 삼성전자주식회사에서 출원한 특허로 특징점을 이용한 영역 구분 방법 및 장치와 이를 이용한 이동 청소 로봇. - 특징점을 이용한 영역 구분 방법은 장애물과의 거리를 감지하여 얻은 다수의 격자점을 이용하여 그리드 맵을 생성하는 단계, 그리드 맵으로부터 특징점을 추출하는 단계, 특징점 중에서 영역구분요소의 거리범위에 포함되는 후보 특징점 쌍을 추출하는 단계, 후보 특징점 쌍 중에서 영역구분요소의 요건을 만족하는 최종 특징점 쌍을 추출하는 단계, 최종 특징점 쌍을 이어 임계선을 생성하는 단계 및 임계선과 그리드 맵을 이은 폐곡선으로 만들어진 영역들 사이의 크기 관계에 따라 최종영역을 생성하는 단계를 포함한다.-
◇ 단일 카메라를 이용한 입력 비디오영상에서 3차원 공간정보추출 시스템 - 2008년 8월에 출원되었다. - 본 발명은 단일 카메라로 입력되는 비디오(동영상)에서 3차원 공간정보를 추출하는 알고리즘으로서, 상세하게는 입력영상을 확장 칼만 필터(Extended Kalman Filter) 알고리즘을 이용하여 특징점(Feature Point)를 인식하고, 그 인식된 특징점의 3차원 공간상의 위치를 추적하는 소프트웨어 및 알고리즘에 관한 것이다.
*기술 로드맵
시장상황에 대한 분석
- 경쟁제품 조사 비교
◇ FOVE HUG Project - HMD착용자가 더 현실감을 느낄 수 있도록 눈 위치에 해당하는 2개의 렌즈를 부착했으나 로봇은 거의 정지된 상태에서 바라보게 설계되어있다. 또 해당 위치에 대한 지도를 제공해주지는 않는다. 로봇의 시야전환에 따라 HMD착용자의 시야가 전환되므로 VR영상에 다소 지연이 있을 것으로 생각된다.
- 마케팅 전략 제시
강점(Strength) | 약점(Weakness) | |
---|---|---|
1 | 1. 웹 기반 기술로 인터넷에 연결할 수만 있으면 공간에 제약을 받지 않음
2. SLAM기술의 적용으로 공간 독립적으로 운영할 수 있음 |
1. 소수의 Pi camera에 stitching 기술을 적용시켜 영상의 선명도가 낮음
2. 평면 영상 전송으로 인한 입체감 저하 |
기회(Opportunity) | SO 전략 | WO 전략 |
1. 비슷한 기능을 수행하는 로봇이나 상품의 부재
2. 전시회에 참석할 시간, 환경적 여건이 없어서 참석하지 못하는 사례가 많아 높은 수요가 예상됨 |
- 전시회의 홍보와 함께 로봇의 운영을 알림으로써 VR 관람객 확보
- 누구나 어디서든 손쉽게 사용 가능하다는 점을 강조 |
- 카메라 교체나 VR 영상 송출방식의 간단한 변경 등으로 성능을 향상시킬 수 있음을 강조
- 높은 수요량에 비해 낮은 공급량을 강조하여 홍보 |
위협(Threat) | ST 전략 | WT 전략 |
1. 전시회 측의 로봇 운영 거부 가능성
2. 관람객 등으로 인한 로봇의 파손이나 충돌, 사고 가능성 |
- SLAM 기술로 전시회 벽면 등과 충돌할 가능성이 적음을 강조
- 로봇의 전시회 관람만 별도로 허용되는 시간을 만드는 등의 노력을 통해 관람객과의 충돌 가능성을 낮춤 |
- 기기 부품의 변경으로 간단히 성능을 향상시킬 수 있음을 강조
- 입체 영상을 전송하도록 하여 로봇 조작 중 충돌 가능성을 낮춤 |
개발과제의 기대효과
기술적 기대효과
◇VR기술의 향상 - VR관객의 증대로 영상 송 수신 기술이 보다 중요하게 다뤄질 것이다. 또 VR기술로 사회적 불평등을 해소하려는 움직임이 늘어날 것이며 그에 따라 현재보다 다양한 방향으로 VR기술이 발전할 것이다. ◇Stitching 기술의 향상 - 영상의 품질을 결정하는 것이 Stitching 기술이 됨에 따라 보다 선명하고 이질감 없는 영상을 제공하기 위해 관련 디스플레이 성능이나 기술이 향상될 것이다.
경제적, 사회적 기대 및 파급효과
사회적 파급효과 - 보다 많은 사람들이 전시회를 경험할 수 있을 것이다. - 전시회가 자주 열리는 도시에 가지 않아도 전시회를 경험할 수 있게 됨으로써 도시와 농촌간의 문화적 격차를 해소할 수 있을 것이다. - 환경의 제약을 받지 않고 사람들이 참여하게 되어 전시회의 가치가 보다 정확히 평가될 수 있다. - 신체적 장애, 정신 질환 등의 이유로 외출을 꺼려하는 사람들에게도 전시회 관람 기회를 동등하게 제공함으로써 문화적 격차를 줄일 수 있을 것이다.
경제적 파급효과 - 이촌향도 현상을 일부 해소할 수 있다. - 전시회에 참여할 수 있는 방법이 다양해짐으로 전시회 운영비를 더 많이 얻을 수 있을 것이며 향후 전시회에 긍정적인 영향을 끼칠 것이다. - 시공간적 제약을 받지않고 다양한 전시회를 관람하는 것이 가능해지기 때문에 교통비는 절감할 수 있을 것이다. - 학교나 기타 단체에서 체험학습으로 전시회장을 직접 가는 것 대신에 VR기기로 간접체험하는 형태의 관람이 보편화 되면서 VR기기 구매율이 증가할 것이다.
기술개발 일정 및 추진체계
개발 일정
단계별 세부개발 내용 | 담당자 | 개발기간 (월단위) | 비고 | |||
---|---|---|---|---|---|---|
3 | 4 | 5 | 6 | |||
개념 설계 및 주제 선정 | 권형구 | |||||
라즈베리 파이와 파이카메라의 설치와 실시간 영상 스트리밍 | 위세라 | |||||
SLAM기법을 이용한 지도 제작과 위치 특정 | 조영서 | |||||
camera calibration을 통한 SLAM정확도 향상 | 전원 | |||||
테스트 및 상용화 | 전원 |
구성원 및 추진체계
권형구 - 주제 선정 및 개념설계를 한다. 라즈베리 파이와 파이카메라를 로봇에 설치하며 촬영된 영상을 실시간으로 전송할 수 있게 한다. 위세라 - 실시간 영상으로 SLAM 연산을 수행하여 전시회장의 지도를 제작하고 로봇의 위치를 특정 지을 수 있게 한다. 조영서 - 파이 카메라에 camera calibration을 하여 내부 요인들을 구한다. 이를 SLAM에 적용하여 initializaion 시간을 단축시키고 정확도를 향상시킨다.
설계
설계사양
제품의 요구사항
번호 | 요구사항 | D | 대 |
2 | 사용자가 웹 사이트를 통해서 로봇에게 지도 제작 명령을 내릴 수 있다. | D | 대 |
3 | 로봇이 장애물을 피해 스스로 주행할 수 있다. | D | 중 |
4 | 로봇이 지도를 제작할 수 있다. | D | 대 |
5 | 사용자가 지도 제작 과정을 실시간으로 확인할 수 있다. | D | 중 |
6 | 사용자가 VR 기기를 사용하여 로봇이 만든 지도를 볼 수 있다. | W | 소 |
목적계통도
평가 내용
1. 로봇이 실시간으로 촬영을 할 수 있는가? 2. 로봇이 장애물을 피해서 스스로 주행할 수 있는가? 3. 로봇이 지도를 제작할 수 있는가? 4. 사용자가 지도 제작 과정을 실시간으로 확인이 가능한가? 5. 사용자가 VR 기기를 사용하여 로봇이 만든 지도를 볼 수 있는가?
개념설계안
SLAM - 전송된 이미지들에서 특징점들을 추출하여 기록, 이를 비교하며 지도를 제작하고 이를 바탕으로 로봇 또는 드론 등의 위치를 파악해내는 기술이다. 입력 값으로 이미지 파일을, 출력 값으로 예상되는 개체의 위치를 갖는다. Web Server - 사용자로부터 이동명령을 입력 받아 Ohmnilabs telebot에게 명령을 전달, 로봇을 움직이고 Raspberry Pi로부터 사진을 전송 받는다. 전송 받은 이미지를 SLAM을 통해 연산하여 로봇의 위치를 계산한다. 여러 기계들이 서로 연결되는 hub역할을 한다. - SLAM은 ORB SLAM2 라이브러리를 사용하고, HTTP 프로토콜을 사용하여 실시간 영상 스트리밍 서버에 접속하고 로봇을 조종할 때도 웹 페이지를 이용한다. Web Client Page - 실시간으로 사용자에게 입력을 받아서 동작을 수행하는 테스트 페이지와 사용자가 동작을 명령하는 조작 페이지, OhmniLabs에서 제공해준 API를 이용하여 로봇에게 명령을 요청하는 명령 페이지로 구성되어있다. - 조작 페이지에서 서버에 명령을 요청하면 서버에서는 명령 queue에 명령을 저장해둔다. 명령 페이지에서는 서버에 연속적으로 요청을 보내고 서버는 만일 명령 queue에 들어온 명령이 있다면 사용자가 요청한 명령을 명령 페이지에 전송해주고 없다면 null 값을 보내준다. 명령 페이지에서는 요청받은 명령에 따라서 미리 작성해 놓은 함수를 실행한다. Raspberry Pi & Pi Camera - Ohmnilabs에서 카메라 관련 API를 제공해주지 않는 관계로 로봇에 라즈베리파이와 파이카메라를 부착해서 사진 및 영상 촬영을 수행한다. - SLAM 연산을 실시간으로 수행하기 위해서 라즈베리파이를 이용해 실시간 영상 스트리밍 서버를 구축한다. - Raspberry Pi 3 model B를 사용했다. Ohmnilabs telebot - PVT Black 모델을 사용하며 웹 페이지를 열어서 로봇 동작을 수행할 수 있는 전용 어플리케이션과 브라우저를 갖고 있다. 전, 후, 시계방향 회전, 반시계방향 회전, 음성 출력, 화면 각도 조정 등의 기능을 수행할 수 있으며 이동 속도, 회전 속도 등 또한 조정할 수 있다.
상세설계 내용
조립도
조립 순서
1. Raspberry Pi와 Pi Camera를 연결 2. PVT Black의 상단에 Pi Camera가 전방을 향하도록 Raspberry Pi 부착 3. PVT Black 및 Raspberry Pi 네트워크 연결
부품도
PVT Black과 Raspberry Pi 접합부
Ohmni Telebot에 Raspberry Pi와 파노라마 렌즈, Camera Pi를 부착하기 위한 접합부이다.
(설명은 부품도1의 색상을 기준으로 함)
(가로 * 세로 * 높이 , 각 mm 단위)
1. 적색부분 - 92 * 59 * 3
2. 녹색부분 - 95 * 59 * 37
3. 귤색부분 - 58 * 29 * 52
4. 자색부분 - 36 * 36 * 13
소프트웨어 설계
◇ ORB SLAM2
- Monocular, Stereo, RGB-D 카메라를 위한 SLAM 시스템을 제공하는 라이브러리로 Map reuse, Loop closing 및 Relocalization 기능을 포함하고 있다.
- 실내에서부터 산업 환경에서 비행하는 무인 비행기 및 도시 주변에서 운전하는 자동차에 이르기까지 다양한 환경에서 표준 CPU로 실시간으로 작동한다.
- ORB-SLAM2의 3가지 주요 병렬 스레드 1. Tracking - Local map에 대한 특징점 매치를 발견하고 Motion-only BA(Bundle adjustment)를 적용하여 reprojection error를 최소화함으로써 매 frame마다 카메라를 localization한다. - 위치 인식은 루프를 닫거나 공격적인 동작으로 인해 tracking failure가 발생하고 난 후, 카메라를 relocalization 하기 위한 SLAM 시스템의 핵심 모듈이다. - Tracking failure가 발생했을 경우나 이미 매핑된 장면에서 재 초기화를 할 경우, 루프를 감지했을 경우, relocalization을 하기 위한 DBoW2기반의 위치 인식 모듈을 내장했다. 2. Local mapping - Local map 을 관리하고 최적화한다. Local BA를 수행한다. 3. Loop closing - 센서가 mapping된 영역으로 돌아왔을 때 감지하여 탐색에서 누적된 오류를 수정한다. - 큰 loop를 검출하고 pose-graph 최적화를 수행함으로써 누적된 drift를 정정한다. - pose-graph 최적화를 수행한 후, 네번째 스레드를 시작하여 최적의 구조 및 동작 솔루션을 계산한다.
A. Monocular, Close Stereo, Far Stereo Keypoints
- Keypoints 특징 기반 방법인 ORB-SLAM2는 입력을 사전처리하기 위하여 위의 그림과 같이 주요 key point 위치에서 특징점을 추출한다. 1) Stereo camera - 3개의 좌표 x_S=(u_L,v_L,u_R), 왼쪽 이미지의 좌표 (u_L,v_L)및 오른쪽 이미지의 u_R로 정의된다. - 두 이미지에서 ORB를 추출하고 모든 왼쪽 ORB에 대해 오른쪽 이미지에서 일치 항목을 검색한다. 이는 정류된 스테레오 이미지라고 가정할 때 매우 효율적으로 수행될 수 있다. 그런 다음 왼쪽 ORB의 좌표와 오른쪽 일치 항목의 수평 좌표로 스테레오 keypoint를 생성한다. 2) RGB-D camera - RGB 이미지에서 ORB 특징점을 추출한다. - 좌표 (u_L,v_L)를 갖는 각 특징점에 대해 깊이 값 d를 가상 오른쪽 좌표로 변환한다. - Ur = U_L - (f_x b)/d, (f_x 는 수평 초점 거리, b는 structured light projector와 적외선 카메라 사이의 기준선) - 깊이 센서의 불확실성은 가상 오른쪽 좌표의 불확실성으로 표현된다. 3) Monocular camera - Key point는 왼쪽 이미지의 두 좌표 x_m=(u_L,v_L) 로 정의되며 Stereo 일치를 찾을 수 없거나 RGB-D의 경우에 유효하지 않은 깊이 값을 갖는 모든 ORB에 해당한다. 이러한 점은 여러 보기에서 삼각형으로만 표시되며 눈금 정보는 제공하지 않지만 회전 및 평행 이동 추정에 기여한다.
B. System Bootstrapping - Stereo 또는 RGB-D 카메라를 사용하는 주된 이점 중 하나는 한 프레임의 깊이 정보를 가짐으로써 Monocular의 경우처럼 모션 초기화의 특정 구조가 필요 없다는 것이다. - 시스템을 시작할 때 첫번째 프레임으로 키 프레임을 만들고, pose를 원점으로 설정하고 모든 Stereo 키 포인트로부터 초기 맵을 만든다.
C. Bundle Adjustment with Monocular and Stereo Constraints 1) Motion-only BA - Tracking스레드에서 카메라 pose를 최적화한다. - 모든 점들의 집합이 i∈χ 일 때, Motion-only BA는 카메라 좌표계 R SO(3) 와 매치된 3D 점 점 x^i∈R^3 (Monocular x_m^i∈R^2 , Stereo x_s^i∈R^3)과 키포인트 x_((.))^i사이의 reprojection error를 최소화하는 위치 t∈R^3을 최적화한다.
- 여기서 ρ 는 강력한 Huber 비용 함수이고 ∑는 키 포인트의 스케일과 관련된 공분산 행렬이다. 투영 함수 π_((.)), monocular π_m, 정류된 Stereo π_s 는 다음과 같이 정의된다.
- (f_x, f_y) : 초점 거리 - (c_x, c_y) : 주요한 점 - b : 기준선
2) Local BA - Local mapping 스레드에서 키 프레임들의 local window와 포인트를 최적화한다. - Local BA는 일련의 가시적인 키 프레임 K_L과 해당 키 프레임에 표시된 모든 점을 최적화한다. - K_L이 아닌 다른 모든 키 프레임 K_F는 P_L에서 점을 관찰하면 비용 함수에 기여하지만 최적화에서는 고정되어 있다. 키 프레임 k에서 P_L과 키 포인트의 점 사이의 일치 집합으로 X_k를 정의하면 최적화 문제는 다음과 같다.
3) Full BA - Loop closure 후 모든 키 프레임과 포인트를 최적화한다. - Full BA는 gauge freedom를 제거하기 위해 고정된 원점 키 프레임을 제외하고 지도의 모든 키 프레임과 점이 최적화 된 로컬 BA의 특정 사례이다.
D. Loop Closing and Full BA - Loop closing은 두 단계로 수행된다. 1. Loop를 감지하고, 유효성을 검사한다. 2. Pose-graph를 최적화하여 Loop를 수정한다. - scale drift가 발생할 수 있는 Monocular의 ORB SLAM과 달리, Stereo/Depth 정보는 스케일을 관찰 가능하게 만들고, 기하학적 검증 및 pose-graph 최적화는 더 이상 scale drift를 처리할 필요가 없으며 유사성 대신 강체 변형을 기반으로 한다. - ORB-SLAM2에서는 최적의 솔루션을 얻기 위해 pose-graph 이후 Full BA 최적화를 통합 했다. 이 최적화는 매우 많은 비용이 소요될 수 있으므로 별도의 스레드에서 동작 시켜 시스템이 계속 지도를 만들고 loop를 감지할 수 있게 해야한다. 하지만 이것은 현재 지도의 bundle adjustment 값과 합치는데 어려움을 가진다. - 최적화를 진행하는 동안, 새로운 loop가 감지되면, 최적화를 중지하고 loop close를 진행한다. - Full BA가 끝나면, 업데이트된 하위 키 프레임들과 full BA에 의해 최적화된 점들을 병합해야한다. 이때 키 프레임은 업데이트되지 않은 키 프레임과 최적화가 실행되는 동안 삽입된 지점을 병합해야한다. - 이는 업데이트된 키 프레임의 수정 (즉, 최적화되지 않은 포즈에서 최적화 된 포즈로의 변형)을 스패닝 트리를 통해 업데이트되지 않은 키 프레임에 전파함으로써 수행한다. - 업데이트되지 않은 점은 참조 키 프레임에 적용된 보정에 따라 변형된다.
E. Keyframe Insertion - ORB-SLAM2는 Monocular ORB-SLAM에 도입된 정책에 따라 키 프레임을 자주 삽입하고 나중에 중복된 키 프레임을 제거한다.
- 가까운 stereo 포인트와 먼 stereo 포인트를 구별하면 키 프레임 삽입을 위한 새로운 조건을 도입할 수 있다. 그림에서와 같이 장면의 큰 부분이 stereo 센서에서 멀어지는 까다로운 환경에서 중요할 수 있다. 변환을 정확하게 추정하기 위해 가까운 지점을 충분히 가질 필요가 있다. - 추적된 닫기 점의 수가 T_τ 이하로 떨어지고 프레임이 최소한 T_∁의 가까운 입체 점을 만들 수 있으면 시스템에서 새 키 프레임을 삽입한다. T_τ=100,T_∁=70 이 잘 작동한다.
F. Localization Mode - 환경에 중대한 변화가 없는 한 잘 매핑 된 영역에서 lightweight long-term localization 에 유용할 수 있는 모드이다.. - Local mapping 및 loop closing 스레드가 비활성화되고 필요에 따라 relocalization을 사용하여 카메라가 tracking에 의해 지속적으로 localize된다. - Tracking은 시각적인 주행 거리 일치 및 맵 지점 일치를 활용한다. 1. 시각적 인 주행 거리 일치는 현재 프레임의 ORB와 스테레오 / 깊이 정보의 이전 프레임에서 만들어진 3D 점 사이의 일치이다. 이러한 일치는 매핑 되지 않은 영역에 대해 localization을 강력하게 하지만 drift를 누적 할 수 있다. 2. 맵 포인트 매치는 기존 맵에 drift가 없는 localization을 보장한다.
◇ UV4L
UV4L은 원래 실제 또는 가상 비디오 입출력 장치용 Video4Linux2 호환, 크로스 플랫폼, 사용자 공간 드라이버의 모듈 식 모음으로 고안되었다. 원래의 의도를 그대로 유지하면서 UV4L은 수년 동안 진화해 왔으며, 현재 선택적으로 IoT 장치 용으로 만들어진 일반 용도의 스트리밍 서버 플러그인을 포함하고 있다. 또한, 다수의 표준 및 현대식 내장형 웹 응용 프로그램을 사용할 수 있는 사용자 지정 웹 응용 프로그램을 제공한다. 암호화, 양방향 데이터 채널, 오디오 및 비디오 스트리밍 또는 웹을 통한 회의와 같은 실시간 커뮤니케이션을 위한 서비스 UV4L은 또한 자체 사용자 정의 응용 프로그램을 구현하려는 개발자에게 RESTful API를 제공한다.
-주요 특징들 ●HTTP / HTTPS 프로토콜 모두 지원한다. ●표준 HTML5에서 스트리밍 및 재생하는 동안 기록된다. ●RESTful API를 통해 제어 가능하다. ●동시에 실행되는 디바이스인 만큼, 많은 Streaming Servers가 공존할 수 있는 “per-device”를 제공한다. ●주어진 파일시스템 경로에서 모든 사용자 정의 웹 페이지를 제공할 수 있다. ●Video4linux2을 이용한 스트리밍을 이용하면서, 모든 디바이스의 설정을 concurrent하게 할 수 있는 Control Panel 웹페이지를 포함한다. ●MJPEG,JPEG(HTTP/HTTPS) 또는 WebRTC( audio, video, data) 같은 실시간 스트리밍을 위용한 많은 포맷들이 가능하다. ●다수의 클라이언트를 매우 효율적으로 지원한다. ●서버가 디바이스를 이용하면서 다른 어플리케이션을 중지시키지 않는다. ●HTTP/HTTPS 를 통해 모든 비디오 포맷의 RAW data streams를 가져오는 (브라우저 없이) “headless mode” 를 사용할 수 있다. ●'user’, ‘admin’, ‘config’ 그리고 ‘www’ 사용자 인증을 지원한다.
-Streaming Server : Real-time HTTP/HTTPS Streaming Server with the native uv4l-server module UV4L 서버 모듈은 HTTP/HTTPS 프로토콜을 통해 어느 브라우저에서나 동시에 액세스 할 수 있는 카메라 별 스트리밍 서버를 가능하게 하는 UV4L용 플러그인이다. 무엇보다도, 비디오 스트림을 다양한 방식으로 볼 수 있는 웹 인터페이스와 모든 Video4Linux로 스트리밍하는 동안 카메라 설정을 완벽하게 제어할 수 있는 제어 페이지를 제공한다. 보안 HTTPS 프로토콜 외에도 일반 및 관리자(admin) 사용자 모두에 대한 기본 인증도 지원된다. 아래에 있는 모든 URL은 단순히 하기 위해 insecure HTTP protocol 기반이지만, SSL이 활성화되어 있으면 스트리밍 서버가 보안 HTTPS 프로토콜도 지원한다. 기본적으로 서버의 홈페이지는 다음 주소를 통해 접근 가능하다. http://raspberrypi_ip_address:8080 비디오 스트림을 보기 위해 반드시 브라우저가 필요한 것은 아니다. 비디오를 표시하는 대체 응용 프로그램으로 VLC를 사용하기도 한다. VLC 내에서 HTTP / HTTPS 를 통해 거의 모든 종류의 스트림 형식을 볼 수 있고 코드 변환 및 기록이 가능하다.
-RESTful API UV4L에 의해 지원되는 RESTful API이다. 이 API는 Streaming Server module이 설치되어 있다면 사용 가능하다. UV4L의 각 인스턴스는 하나의 오디오-비디오 입력장치와 연결되어 있으므로, 두 개 이상의 장치를 제어하려는 경우 두 개 이상의 전용장치가 필요하며 각 장치에는 각 configurations가 필요하다. (예 : 다른 포트 수신) 클라이언트는 Streaming Server에 대해 구성된 프로토콜에 따라 HTTP 또는 HTTPS를 통해 이 인터페이스를 이용할 수 있다. 또한 Streaming server는 개발자가 /restapi-panel 경로 아래의 웹페이지에서 이 API에서 지원하는 모든 요청을 테스트할 수 있는 패널을 제공한다.
요청은 JSON 포맷이어야 한다. 만약 Streaming Server에서 HTTP(S) authentication을 사용한다면,각 요청은 적절한 승인 헤더를 포함하고 있어야 한다. 이 요청들을 통해 상호 작용할 수 있는 다양한 리소스가 있다. 각 자원의 아래 목록의 endpoint로 식별된다. ● /api/videodev/settings ● /api/webrtc/settings ● /api/janus/client/settings ● /api/janus/client/events
결과 및 평가
완료 작품의 소개
프로토타입 사진 혹은 작동 장면
내용
포스터
관련사업비 내역서
내용
완료작품의 평가
내용
향후계획
내용
특허 출원 내용
내용