본문 바로가기

Robot arm control using a skeleton depth(Kinect).

  • 여정현
  • 인천대학교
  • 작품구분일반형
  • 공개여부공개
  • 카테고리전자, 전기, 기계
  • 등록일2016-06-28
  • 팀원(공동개발자)팀장= 문현준, 팀원= 이석빈
  • 출품 경진대회2016년 애로기술 캡스톤디자인 경진대회

상세설명

1. 수행배경

               

    로봇 개발은 산업계 전반을 걸쳐 의료 분야까지 확대됐고, 재활 치료 분야에서도 다양한 연구와 발전을 이뤄왔다. 재활로봇 연구는 1990년대 초반 미국을 중심으로 재활 보조와 재활치료를 위한 것으로 나뉘어 활발히 진행됐다. 재활보조 로봇은 환자의 이동성, 물체 조작성, 인지능력 등을 도와 일상생활이 가능하도록 하는 로봇시스템을 통칭한다. 무장애 휠체어, 로봇 팔을 장찬한 휠체어 등이 여기에 속한다. 재활치료 로봇은 정량화된 입출력 측정을 바탕으로 현재의 임상척도로는 측정할 수 없는 부분을 측정하고, 정밀한 치료를 수행해 재활치료의 효과를 극대화시키는 것을 말한다. 가정의 로봇청소기, 제조업의 산업용 로봇에서 벗어나 서비스업 기업에서도 로봇 기술이 도입되는 이유는 요류 발생율이 낮고, 단순 반복 업무의 자동화로 비용이 절감 될 수 있기 때문이다. 세계 로봇 시장은 산업용 로봇이 대부분을 차지하고 있으나, 군사용, 산업용, 개인용 로봇이 늘어나고 있는 추세이다. 제조업 환경 전반에 생긴 변화와 그로인한 경영의 어려움을 겪고 있는 제조업체들은 이를 해결하고자 생산자동화 도입을 고려하고 있다. 이에 따라 생산자동화의 핵심인 산업용 로봇의 성장률은 매년 빠르게 증가하고 있으며, 앞으로도 그 중요성은 커질 것으로 에측된다.

  • 로봇 기술 도입시 기대효과로는 사람이 직접 하기 어려운 작은 부품을 다루는 섬세한 작업 뿐만 아니라, 부품을 조립하는 생산 과정에서 소형 로봇은 정확한 회전력으로 나사를 잡고 장착하여 죌 수 있으며, 고도의 정밀성을 요구하는 다양한 제조 작업에서도 일정한 품질의 제품 생산을 기대할 수 있다. 최근 로봇은 다루기가 쉬워서 나이, 경력등에 상관없이 손쉽게 프로그래밍이 가능하다는 장점이 있다.

  • 2. 수행기간
  • 작품 제작내용

    추진일정

    비 고

    6월초

    6월중

    6월말

    계획 및 자료 수집

    O

     

     

     

    로봇 디자인 설계

    O

     

     

     

    알고리즘 및 프로그램 개발

     

    O

     

     

    전원부 회로 설계

     

    O

    O

     

    테스트 및 제출

     

     

    O

     

  • 상세설명...

3. 개발작품 설명

  • 본 과제는 키넥트와 아두이노, LabVIEW를 연동한 로봇 팔 제어시스템이다.

    키넥트(Kinect)는 콘트롤러 없이 이용자의 신체를 이용하여 엔터테이먼트를 경험 할 수 있는 주변기기이다. 200961E3에서 처음 프로젝트 나탈(Project Natal)”이란 이름으로 발표했으며, E32010에서 공식 명칭인 키넥트를 발표했다. 키넥트는 센서를 통해 사용자의 동작을 인식하고, 마이크 모듈로 음성을 인식한다.

  • 키넥트 센서는 저가의 깊이 카메라로서, 실시간으로 깊이 정보뿐만 아니라 RGB영상과 관절 추적 정보를 제공한다. 키넥트 센서로부터 제공되는 테이터의 사용은 제스처 인식을 위해 필요한 사람/신체부위 검출 및 포즈 추정의 수고를 덜어주고 인간-컴퓨터 상호작용 응용 개발을 쉽게 만든다. 키넥트는 RGB영상뿐만 아니라 특정한 적외선 점 패턴을 물체에 투영하여 점 패턴의 특성을 분석하여 깊이 정보를 획득하고 스켈레톤 트랙킹을 제공한다. 키넥트 카메라는 깊이 영상 생성을 위해 물체에 반사되어 돌아오는 적외선의 패턴을 수광센서로 검출한다. 하지만 발광장치와 수광센서 간의 거리 차이로 인한 사각 지대 발생, 매끄러운 물체 표면으로 인하여 적외선의 난반사가 적에 일어나 수광센서로 레이저가 돌아오지 못하는 경우에 적외선 패턴을 감지할 수 없기 때문에 검출되지 않은 위치에 대한 값은 깊이 영상에서 홀(Hole)의 형태로 나타난다. 또한 깊이 정보의 불연속점과 적외선 송출부가 수직일 경우에는 객체 경계 주변에 홀이 발생한다. 따라서 각각의 깊이 영상을 동영상으로 연속 재생 할 경우 경계 주변의 흔들림 현상을 확인할 수 있으며 가상 시점 영상을 생성하기 위해서는 이러한 흔들림 현상을 반드시 제거해야 한다. 키넥트 에서는 인간의 골격을 총 20개의 부분으로 나눠서 인지한다. 그걸 하나의 집합처럼 묶어서 처리하는 것이다. 그래서 X,Y,Z 이렇게 3축으로 나눠지는데 센서 인지범위에 따라 각 골격과 센서간의 거리가 결정된다.

 

각 관절에 대한 정보를 세 가지 상태로 나눠서 받을 수 있다. 관절을 따라가거나 따라가지 않거나, 적외선 방식으로 따라가는 방식이 있다. 그런데 사실 샘플을 적용해보면 적외선 방식은 사람의 위치를 정확히 인지하는 반면에 Track방식으로는 가끔 사람의 위치에 따라서 잘못된 정보를 줄 때가 있다. SDK내에서는 이런 현상을 Jitter라고 하며 이 현상을 막기 위해서 Transform Smooth Parameters를 쓴다.

 

 

 

이것은 또한 관절간의 연결을 조금 더 부드럽게 도와주기도 한다. 그리고 호를 그리는 방식과 직선을 그리는 방식을 구분할 때도 위의 Transform Smooth Parameters를 사용하는 편이 좋다.

 

아두이노(Arduino) UNO

 

통신 및 로봇 팔의 제어의 구축을 위해 아두이노 플랫폼을 사용하는 방식을 채택했다. 이는 마이크로 컨트롤러 및 전자의 사용이 편리하고 많은 지식을 가질 필요가 없도록 설계되어 개발 환경에 주로 사용된다.

*모듈의 주요 기능

-작동 전압 5V

-입력 전압 7~12V

-입력 전압(한계) 6~20V

-디지털 입력 / 출력 (14)

-아날로그 입력 (6)

-32킬로바이트 플래시 메모리 (ATMEGA328)

-2킬로바이트 SRAM (ATMEGA328)

-EPROM1킬로바이트 (ATMEGA328)

-16MHz 일 클럭 속도

-USB를 통해 PC와 연결

 

 

LabVIEWLaboratory Virtual instrument Engineering Workbench의 약자로써 제어, 계측분야에서 사용하기 쉽고 편리하며 직관적인 그래픽 아이콘 및 플로우차트를 연상케하는 와이어를 사용하여 다양한 모양의 입&출력 아이콘을 제공하여 GUI(Graphic User Interface)를 구현하기 용이하다.

 

 

제작과정 첫 번째로는 3D설계 프로그램은 SolidWorks를 통하여 로봇팔의 각 부분들을 설계한다. 그 후 3D 프린터를 통하여 각 설계한 부분들을 출력하여 하드웨어로 구성한다.

 

 

제작과정 두 번째로는 제어 계측 프로그램인 LabVIEW를 통하여 키넥트와 아두이노를 연결하고 LabVIEW코딩을 통해 서로 연결된 부분들에 대한 제어 코딩을 실시한다.

 

 

 

3D프린터로 출력을 하기 위해 STl파일로 저장 한 후에 Gcode로 변환시키는 작업을 수행한다. 출력 후 각각 파트별로 물성치를 계산해서 이에 맞는 스펙을 가진 서보모터를 장착한다. 그 뒤 로봇팔을 구동시키기위한 프로그램을 설계하는데 LabVIEW를 이용해 키넥트와 아두이노를 제어한다. 키넥트는 거리센서와 렌즈로 사람의 관절정보를 획득하고, 그 정보를 묶어서 아두이노로 보내면 아두이노가 로봇팔을 구동시키는 방식이다. 따라서 사람의 움직임에 따라 로봇팔도 함께 움직이는 시스템이다. 그림 23LabVIEW의 블록다이어그램 모습인데 x축은 가장 아래부분, y축은 가장 윗부분 z축은 앞 뒤 부분으로 잡고, 아두이노 핀번호는 3번이 가장 아래, 5번은 어깨축, 6번은 가장 앞 부분으로 지정했다. 밑에 COM4는 아두이노의 포트번호를 뜻하는 것이고 오른쪽 분홍색으로 아두이노라고 적힌 부분은 지금 쓰는 아두이노의 스펙을 따서 서브 VI로 만든 노드이다. 사람 모양의 그림은 키넥트가 받는 사람의 머리, , 골반, 다리와 같은 정보를 지정해주는 노드이다. 그리고 블록 다이어그램 화면에서 3갈래로 나눠지는 것은 이것은 각각의 x, y, z축을 따로 계신해내는 과정이다. x축에 보이는 주황색 테두리 안에있는 140.6844106464 라는 숫자와 그 뒤에 90은 로봇기구학 책에 나오는 공식을 토대로 산출해낸 x축의 상수값이다. 그 뒤에 0175는 서보모터의 각도를 뜻한다. 소보모터가 0~180까지 각도로 움직일 수 있는데, 175까지로 지정한 이유는 MAX Value까지 지정을 해 놓으니 모터에 무리가 가는걸 방지하기 위함이다. 이런 형태로 아두이노와 LabVIEW 키넥트는 서로 연동하여 사람의 움직임에 따라 로봇팔을 제어할 수 있다.

 

 

 

4. 활용방안

  • 로봇 기술 도입시 기대효과로는 사람이 직접 하기 어려운 작은 부품을 다루는 섬세한 작업 뿐만 아니라, 부품을 조립하는 생산 과정에서 소형 로봇은 정확한 회전력으로 나사를 잡고 장착하여 죌 수 있으며, 고도의 정밀성을 요구하는 다양한 제조 작업에서도 일정한 품질의 제품 생산을 기대할 수 있다. 최근 로봇은 다루기가 쉬워서 나이, 경력등에 상관없이 손쉽게 프로그래밍이 가능하다는 장점이 있다.

소개 영상

소개 슬라이드

정보가 없습니다.

기타자료

댓글