Special Issue : General Design for I-ACE
손가락 Pointing에 의한 물체의 3차원 위치정보 인식 및 인식된 물체 추적 로봇 시스템
곽동기
a, 황순철
a, 옥서원
a, 임정세
a, 김동환
a*3D Object Location Identification Using Finger Pointing and a Robot System for Tracking an Identified Object
Dong-Gi Gwak
a, Soon-Chul Hwang
a, Seo-Won Ok
a, Jung-Sae Yim
a, Dong Hwan Kim
a*a Department of Mechanical System Design Engineering, Seoul Nat’l Univ. of Science and Technology, 232, Gongreung-ro, Nowon-gu, Seoul 01811, Korea
ARTICLE INFO ABSTRACT
Article history: In this work, a robot aimed at grapping and delivering an object by using a simple finger-pointing command from a hand- or arm-handicapped person is introduced.
In this robot system, a Leap Motion sensor is utilized to obtain the finger-motion data of the user. In addition, a Kinect sensor is also used to measure the 3D (Three Dimensional)-position information of the desired object. Once the object is pointed at through the finger pointing of the handicapped user, the exact 3D information of the object is determined using an image processing technique and a coordinate transformation between the Leap Motion and Kinect sensors. It was found that the information obtained is transmitted to the robot controller, and that the robot eventually grabs the target and delivers it to the handicapped person successfully.
Received 14 September 2015 Revised 18 November 2015 Accepted 25 November 2015
Keywords:
3D location identification Object identification and tracking Kinect and Leap Motion sensor fusion Finger-pointing
* Corresponding author. Tel.: +82-2-970-6362 Fax: +82-2-974-8270
E-mail address: [email protected] (Dong Hwan Kim).
1. 서 론
현재 몸이 불편한 장애자 및 노인의 부양의 책임이 커지는 시대 에 살고 있으며 교통사고, 질병, 노화 등의 여러 가지 이유로 장애 인의 수 증가가 큰 사회적 이슈로 부가되고 있다. 이러한 사회적 문제 해결책으로 다양한 서비스 제품들이 개발되었으며 그 중 하 나로 실버 휴먼 캐어 로봇산업이 신산업으로 발전하고 있다. 하체 가 불편한 사람은 다른 곳으로 이동이 자유롭지 못하기 때문에 전동 휠체어와 같은 서비스 제품들이 개발되어 있다. 휠체어의 경 우 하체가 불편한 사람은 스스로 탑승, 하차가 어려운 점이 있다.
복잡한 일은 직접 움직여야 하지만 간단한 일까지 일일이 이동하 여 수행하는데 많은 불편함이 있을 것이다. 만약 로봇이 이러한
욕구를 대신 해소시켜 준다면 하체가 불편한 사람들에게 큰 도움 이 될 것이다.
본 연구에서 제안하는 로봇 시스템은 하체가 불편하여 움직일 수 없는 사람들이 상체만큼은 자유롭다는 점에서 착안하였고 웨어러블 과 같이 전자기기를 신체에 장착하는 거부감마저도 없앨 수 있는 방 법을 구상하였다. 즉, 사용자는 한자리에 앉아 있고 불편한 장비를 신체에 부착하지 않으면서, 단순 손동작만으로 로봇에게 명령을 전달 하여 사용자를 대신하여 간단한 임무를 수행 하는 로봇시스템이다.
로봇의 외형은 비호감을 주지 않기 위해 머리가 원통모형의 반 구형식으로 프레임을 갖추었고 이동 동작을 부드럽게 하기 위한 메카니즘을 적용하였다. 사용자가 로봇에게 명령은 전달하는 방 식은 손짓을 이용하여 이를 로봇이 읽어 들이는 시스템을 구축하
(a)
(b)
Fig. 1 (a) Developed robot, (b) dynamic positioning system applied for four wheel moving mechanism
Fig. 2 Robot’s gripper mechanism for gripping an object 였다.
사용자의 손동작 인식은 Leap Motion IR(infrared)[1,2] sensor 를 활용하였고 위치 인식과 같은 공간 인식은 IR sensor가 장착된 Kinect를 사용하였다[3,4]. 즉, 사용자는 Leap Motion sensor 위에 손가락으로 물체를 지시하거나 손짓으로 명령을 수행하고 손가락 이 가리키는 물체는 Kinect 공간과[5] 연동하여 대상물체까지 로봇 이 이동 및 명령을 수행하도록 하였다[6-8]. 또 사용자가 볼 수 있는 공간인식과 손가락이 가리키는 위치 등은 모니터를 사용하였다[9]. 본 연구는 기본 버튼 및 터치스크린의 조작 로봇 및 조이스틱으 로 상용화 된 방식과 다르게 사용자 편의를 위하여 신체에 어떠한 물리적 접촉 없이 공간상에서 사용자 손동작만으로 로봇을 명령하 여 소통하는 방안을 지향하였다.
조이스틱 방식은 이동 및 회전과 같은 단순한 제어에 적합하지만 공간상에서 어떠한 물체의 위치를 정확하게 인식시키거나 물체의 위치까지 이동하여 잡는 행위를 하는 등 사용자가 로봇의 복잡한 움직임을 일일이 조이스틱으로 제어하기에 불편하다. 반면 로봇이 사람의 직관적인 손 움직임을 읽을 수 있다면 사용자가 명령을 내리 는데 상당히 수월해진다. 예를 들면 손으로 물체를 직접 가리킨다거 나 물건을 잡는 행위를 했을 때 로봇이 이를 알아차리고 인식한다면, 사용자는 로봇조작법 매뉴얼을 학습하는 부담을 덜고 사람과 소통 하듯이 로봇을 다루게 되어 전달이 빠르고 편리한 장점이 있다. 적어 도 조이스틱의 경우에는 버튼위치를 찾는 과정이 줄어들 것이다.
본 연구에서는 로봇은 사용자의 손짓에 의해 원하는 물체 위치까 지 이동하고 로봇에 집게 팔까지 장착하여 사용자가 선택한 물체를 파지하여 들거나 물체 위치를 다른 위치까지 이동시키는 과정까지 의 성능을 검증하였다.
2. 시스템 구성
2.1 기구부 특성
본 연구에서 제작한 로봇의 주요 기능은 사용자가 화면에서 지정하 는 물체를 손가락으로 지시하면 로봇이 물건을 들고 사용자에게 가져 오는 시스템이다. 팔과 이동 메카니즘에서 적용되는 각 운동에 적합한 모터는 정적 해석 기반에서 안전계수 2를 적용하여 선정하였다.
로봇의 이동 방법은 모든 바퀴를 동일한 방향으로 동기화하도록 원리를 적용하였다. 로봇 조향, 이동의 구동원은 총 2개의 모터를 사용하였으며 모터 한 개는 바퀴 구동을 하고, 다른 한 개는 방향 회전 역할을 한다.
Fig. 1(a)는 본 연구에서 개발했던 로봇의 전체 모습이다. Fig.
1(b)는 drill ship이나 거대한 선박에서 dynamic positioning system에 쓰이는 메카니즘의 일부가 적용된 방식을 나타낸다.
Dynamic positioning system의 이동 기구 장점은 방향 전환과 전
진 후진의 기구적 요소가 독립되어 있어 부드러운 움직임의 자유도 가 가능하다. 하지만 Drill ship 메카니즘은 물 속에서 프로펠러가 구동되기 방식으로 방향이나 움직임이 서로 독립적이어도 큰 영향 이 없으나, 지상 바퀴 구동에서는 서로 종속되지 않으면 원하는 방 향으로 움직일 수가 없기 때문에 본 기구는 종속 설계 하였다.
Fig. 2는 로봇이 물체를 파지하기 위한 로봇 손 구조이다. 긴 물 체를 잡기 위해 가로 방향의 손목 자유도를 추가하여 roll과 pitch 회전이 가능한 2자유도로 구성하였다. 물체가 파지되는 접촉면은 고무를 부착하여 마찰력을 최대한 증가시켰다.
2.2 제어 시스템 구성
Fig. 3은 전체 제어 시스템 구성을 나타낸다. 최상 위 제어기 PC 는 Kinect sensor와 Leap Motion sensor의 데이터를 받아 처리하 고, 처리된 정보를 바탕으로 로봇에게 명령한다. Kinect sensor는
Fig. 3 Hardware system structure with PC, DSP, Leap Motion, and Kinect
Fig. 4 Robot operation system tests in inner space
Fig. 5 Actual spatial coordinates
(a)
(b)
Fig. 6 (a) The relationship between horizontal angle of view and image by Kinect, (b) Kinect bepth image
로봇의 영상데이터를 PC로 전달하고, Leap Motion sensor는 사 용자의 손가락의 정보 데이터를 PC로 전달한다. 로봇은 MCU(마 이컴제어기)가 장착되어 PC와 무선통신으로 데이터를 주고받으 며, monitor는 사용자와의 인터페이스를 위해 실시간으로 영상과 로봇의 상태를 사용자에게 보여준다.
Fig. 4는 로봇을 실제로 구동하는 전체 시스템이다. PC 앞에 놓 여진 Leap Motion sensor로 로봇에 명령하고, PC 뒤쪽에 Kinect sensor가 놓여 전방을 탐지한다. Kinect sensor의 카메라가 바라 보는 공간이 로봇의 동작 범위가 되고 초기에는 로봇이 대기하고 있다가 사용자의 명령을 받으면 그에 따라 행동을 취한다.
2.3 좌표정의와 좌표동기화
본 연구의 핵심은 Leap Motion sensor로 얻어진 사용자의 손가 락 정보를 기반으로 Kinect sensor로 측정된 실제 공간의 물체 좌 표를 사용하여 대상 물체의 3차원 정보를 실시간으로 취득하는 것 이며 실제공간좌표 (X, Y, Z), Kienct sensor에서 측정된 좌표
, Leap Motion sensor로 측정된 사용자 손가락 좌표
로 총 3가지 좌표를 활용한다.
2.3.1 실제 공간 좌표
Fig. 5는 실제 공간에서 물체와 중심 좌표를 나타내며,
는 Object의 위치를 나타낸다.
2.3.2 Kinect 물체 좌표 측정
Fig. 6(a)는 Kinect sensor로 측정된 공간 좌표와 Object의 좌표 를 나타낸다. 측정된 좌표축은 로 나타내고 Object의
Fig. 7 Leap Motion sensor coordinates system 좌표는 이다. Kinect IR sensor의 경우 데이터를 영상으로도 표현이 가능하다. Fig. 6(b)는 Kinect sensor 로 직사각형 형태의 물체를 촬영하여 얻어진 영상이며 직사각형 물체의 Pixel의 한 점을 이라 한다면 이 위치의 pixel 좌표 와 심도 정보를 활용하여 나머지 두 개의 축 을 얻을 수 있다. 식 (1), (2)는 Kinect sensor의 수평 시야각 57°, 수직 시야각 43°, 수평 및 수직 방향의 전체 pixel을 각각
≤ ≤ , ≤ ≤ 라고 한다면 특정 pixel 위치
로 측정된 물체 좌표 을 얻는 과정이다.
tan
(1)
tan
(2)
(3)
본 연구에서는 실험을 통해 Kinect sensor에서 측정된
좌표와 실제 좌표의 물체 위치가 큰 오차가 없음 을 확인하였다.
2.3.3 Leap Motion 손가락 좌표 측정
Fig. 7은 Leap Motion sensor에 설정된 좌표를 나타낸다. Leap Motion sensor는 sensor로부터 떨어진 사용자의 손가락 위치 좌 표를 취득할 수 있다. Leap Motion sensor 3차원 축 좌표는
로 나타내며, 본 연구에서 sensor 감지 범위가 무한할 수 없어 식 (4)와 같이 제한하였고, 사용자의 의지를 표현 할 손에서 오직 검지 손가락만 읽도록 소프트웨어 처리했다. Fig.
7은 Leap Motion sensor로 얻어진 사용자의 검지 손가락의 좌표
을 나타낸다.
≤ ≤
≤ ≤ (4)
≤ ≤
Leap Motion sensor의 손가락 데이터와 Kinect sensor의 Pixel 데이터를 동기화 처리하면 식 (5)와 같이 표현되고 사용자 손가락 과 영상과 동기화된 좌표 를 얻는다.
(5)
여기서 식 (5)의 의 값을 식 (1)과 (2)의 의 값에 대입하면 사용자 손가락이 Kinect sensor로 측정된 공간의 물체를 Pointing 하는 최종 좌표 를 얻으며, 식 (6)으로 표현 할 수 있다.
tan
tan
(6)
2.3.4 Leap Motion 손가락 좌표와 측정 물체 값 비교 알고리즘 식 (6)은 (xk, yk)축의 2차원 정보만 처리하였고 남은 한 개의 축 zk는 평면 모니터 상에서 일반적으로 표현이 불가능하다. 본 연구에서는 zko와 zfko의 차이를 사용자가 쉽게 인식할 수 있도록 영역에 따른 위치를 색으로 처리하였다. 즉, 사용자 손가락 Kinect sensor측정 위치 좌표 zfko를 얻는 과정에서 Leap Motion sensor 와 Kinect sensor의 측정 한계를 고려한 일정한 비례상수를 곱한 값, 여유 값와 Kinect sensor로 측정된 물체의 좌표 zko 등 총 3가지 경우가 발생한다. Fig. 8(a), (b), (c)와 식 (7), (8), (9)는 각각의 경우에 따른 표현을 수식과 그림으로 나타낸 것이다.
z축만을 고려할 때, 손가락이 물체보다 지나쳤을 경우 붉은색, 물체의 일정 범위 내에 있을 때 파란색, 물체위치에 손가락이 도달 하지 않을 때 녹색으로 표현된다. 는 Kinect sensor와 Leap Motion sensor 각각의 z축으로 최대 측정 가능 제원에 따른 비례 상수이다. 는 사용자가 물체를 Pointing 하고 물체 선택 의지를 판단하는 과정에서 손 떨림이 발생하므로 이를 방지하기 위한 여유 를 나타내는 공간상수이다.
(7)
(8)
(9)
2.4 Robot 물체 파지
사용자 의도의 물체를 로봇이 파지하는 과정은 5단계로 구성되
(a)
(b)
(c)
Fig. 8 Point color changes depending on the position of user finger in the image: (a) Pointing farther than object, (b) pointing on select range, (c) pointing closer than object
어 있다. Fig. 9는 pointing된 물체를 로봇이 잡는 과정을 보여주고 있다.
로봇과 물체와의 거리, 각도계산은 Atan2와 피타고라스 정리를 이용하여 계산한다. Kinect sensor로 측정된 로봇의 좌표가
이고 물체의 좌표가 일 때의 회전각()과 물체 와 로봇 사이의 거리(D)는 식 (10), (11)로 계산된다.
(10)
(11)
로봇은 실제 D보다 적은 값으로 이동하여 물체 주변으로 이동하 고, 로봇 정면에 부착된 PSD 적외선거리 sensor를 통해 회전을 하면서 물체와 로봇의 방향을 팔과 바퀴의 방향이 평행이 되도록 조절한다. 그리고 전진 후진의 방향을 팔 길이에 맞게 조절하여 물 체를 파지하도록 제어하였다.
Fig. 9는 로봇이 물체 접근하여 파지하는 단계와 과정을 사진으 로 나타낸다.
Fig. 9 Process of gripping the object
(a)
(b)
Fig. 10 Object placement and visual information windows for finger pointing
Fig. 11 Object locations for measurement tests
3. 실험 결과
실제 Kinect IR sensor로 측정된 데이터를 모니터에 출력하고 영상에서 나타난 물체의 픽셀에서 선택하여 계산된 좌표와 실제 공간상에서 위치한 물체의 좌표가 어느 정도 정확한 지 비교 실험 을 수행하였다.
Fig. 10(a)의 위 화면은 Kinect sensor의 RGB영상, 아래 화면 은 각 Pixel 마다 Kinect sensor에서 가까울수록 밝은 흰색 명암을 8 bit로 표현한 영상이다. Fig. 10(b)는 Kinect sensor의 영상 범위 내의 로봇 구동을 표현한 개략도이다. Kinect sensor에 바로 앞에 로봇이 대기하고 있고 Kinect sensor로 바라본 영상에 Leap Motion sensor을 이용해 영상에 있는 물체를 가리키게 되면 로봇 이 움직이는 시스템이다. 본 연구에서는 로봇의 이동좌표와 관련되 어 (xk, zk) 축의 데이터만을 실험하였다.
Fig. 11은 실험에서 측정했던 Kinect sensor에서 떨어진 거리의 물체 위치를 간략하게 표현한 것이다. Fig. 12는 실제 거리 (900 mm, 0, 2,700 mm), (0, 0, 2,700 mm), (900 mm, 0, 2,700 mm), (900 mm, 0, 1,800 mm), (0, 0, 1,800 mm), (900 mm, 0, 1,800 mm), (-450 mm, 0, 900 mm), (0, 0, 900 mm), (450 mm, 0, 90 0mm)에 물체를 두고 측정하였을 시, 측정값이 각각 (885 mm, 0, 2,680.1 mm), (-19.41 mm, 0, 2,701.1 mm), (885.1 mm, 0, 2,680.21 mm), (881.43 mm, 0, 1,789.9 mm), (-23.4 mm, 0, 1,800.2 mm), (871.54 mm, 1,790.3 mm), (-432.18 mm, 0, 907.2 mm), (-6.52 mm, 902.63 mm), (448.44 mm, 0, 897.4 mm)이 측정되었다. Table 1은 Fig. 12의 실험점들을 표로 정리한 것이다.
Kinect sensor로 측정된 값과 실제 물체와의 오차는 최대 20mm 로 측정되었다. 이 오차들에 발생하는 몇 가지 원인을 알아보았다.
첫째, 주변 빛의 영향이다. 실험 장소는 형광등, 햇빛이 드는 곳 으로 Kinect의 IR sensor에 영향을 주게 된다.
둘째, sensor의 오차이다. Kinect sensor의 경우 적외선 sensor 처럼 깊이 값을 측정하기 때문에 매번 일정하지 않고 어느 정도의 오차가 발생한다.
본 연구에서는 최대 20 mm의 오차에도 불구하고 로봇 크기에 비해 오차 값이 작아 로봇이 사용자가 원하는 목표 위치로 이동 하는데 큰 문제가 되지 않았다. 하지만 만약 반복적인 이동에서 로 봇의 실시간 위치 인식이 없다면 오차가 누적될 가능성이 있다.
Fig. 12 Results of measurement by Kinect for different object locations
Table 1 Actual distances and measured distances through ex- periments
Actual distance Measured distance
X (mm) Z (mm) X (mm) Z (mm)
900 2700 888.2 2743
0 2700 -19.41 2701.1
900 2700 885.1 2680.21
900 1800 881.43 1789.9
0 1800 -23.4 1800.2
900 1800 871.54 1790.3
-450 900 -432.18 907.2
0 900 -6.52 902.63
450 900 448.44 897.4
4. 결 론
본 연구는 사지가 불편한 환자나 장애인을 돕기 위한 로봇을 개 발하였다. 주요 기능은 로봇이 사람의 손동작을 인식하고 다양한 동작을 구현하는데 초점을 두었다. 사용자의 손 움직임에 대한 정 확한 데이터 인식, 물체를 Pointing 알고리즘, 사용자가 의도하는 명령을 로봇에게 전달 등이 본 연구의 주요 내용이었고, 그 중에서 물체 위치 인식은 Kinect sensor와 Leap Motion sensor의 동기화 를 통해 Kinect sensor가 바라보는 공간을 축소하여 Leap Motion sensor의 인식 범위와 일치하도록 스케일 조정하여 가상의 좌표계 를 생성 하는 것이 핵심 아이디어이다. Leap Motion sensor의 측 정 데이터나 사람의 손은 공간에서 한 지점에 정지하고 싶어도 미
세한 떨림이 있다. 본 연구에서는 Kinect sensor의 물체의 깊이 값에서 거리 여분을 두어 사용자 의도와 벗어나지 않도록 이를 보 완하였다.
로봇의 위치 정보를 수집하는 과정에서 초기 사용자가 직접 Kinect sensor영상을 보고 로봇의 위치를 알려주어야 하는 절차가 있다. 사람이 관여하기 때문에 초기에 오차가 크기 않아 문제가 되 지 않았지만 로봇이 장거리를 이동하면서 초기 지정했던 위치에서 부터 누적 오차가 생기면서 나중에 목표 지점까지 도달하지 못하였 다. 사용자와의 호환성을 고려하면 영상처리, RFID 등 다양한 기 법을 통해 로봇 스스로 자신의 위치를 보정하고 누적 오차를 해결 하는 제어 알고리즘 도입이 필요하다.
후 기
이 연구는 서울과학기술대학교 교내 연구비 지원으로 수행되었 습니다.
References
[1] Leap Motion Inc., viewed 13 Sep. 2014, <https://www.leapmotion.
com>.
[2] Spiegelmock, M., 2013, Leap Motion Development Essentials, Packt Publishing, UK.
[3] Microsoft Inc., viewed 13 Jun. 2014, < https://www.microsoft.com >.
[4] Webb, J., Ashley J., 2012, Beginning Kinect Programming with the Microsoft Kinect SDK, Apress : Springer-Verlag, New York.
[5] Kim, S., Woo, W., 2006, 3D Reconstruction of an Indoor Scene Using Depth and Color Images, J. of the HCI Soc. of Korea, 1:1 53-61.
[6] Weichert, F., Bachmann, D., Rudak B., Fisseler, D., 2013, Analysis of the Accuracy and Robustness of the Leap Motion Controller, Sensors, 13 6380-6393.
[7] Cheung, K. M., 2003, Visual Hull Construction, Alignment and Refinement for Human Kinematic Modeling Motion Tracking and Rendering, A Thesis for a Doctorate, Carnegie Mellon University, United States.
[8] Wikipedia, viewd 11 Mar. 2014, Dynamic Positioning System,
<https://en.wikipedia.org>.
[9] Park, J., Shin, Y., Jang, G., Baeg, M., 2011, A Study on Mapping of 3D Spatial Information for Modeling of Indoor Space, The Korean Soc.
Geo-Spatial Info. Sys., 2011:10, 84-89.