본문 바로가기
아두이노

손 제스처 제어: 물리적 및 디지털의 움직임(원격 조작)

by 모빌리티키즈 2023. 10. 18.
728x90

손 제스처 제어란 손의 움직임과 제스처를 사용하여 물리적 또는 디지털 물체를 조작할 수 있는 능력을 말합니다. 키보드나 마우스와 같은 기존 입력 장치 없이도 장치, 기계 또는 가상 환경과 상호 작용할 수 있습니다. 손 제스처 제어는 텔레오퍼레이션을 포함한 다양한 분야에 적용할 수 있으며, 이를 통해 사용자는 물리적 또는 디지털 시스템을 원격으로 제어할 수 있습니다.

텔레오퍼레이션을 통한 물리적 물체의 이동의 맥락에서 손 제스처 제어는 로봇 팔, 드론 또는 기타 원격 제어 장치를 조작하는 데 사용할 수 있습니다. 센서나 카메라를 통해 손의 움직임을 포착하고 해석하여, 시스템은 해당 제스처를 원격 장치의 움직임을 제어하는 해당 명령으로 변환합니다. 예를 들어, 사용자는 로봇 팔을 사용하여 원격으로 물체를 잡기 위해 손으로 잡는 동작을 할 수 있습니다.

손 제스처 제어는 가상 현실(VR) 또는 증강 현실(AR)과 같은 디지털 환경의 텔레오퍼레이션에도 응용됩니다. 이러한 시나리오에서 사용자는 손의 움직임과 제스처를 추적하는 센서가 장착된 특수 장갑을 착용합니다. 캡처된 데이터는 디지털 환경 내의 가상 개체에 매핑되어 사용자는 자연스럽고 직관적으로 상호 작용할 수 있습니다. 예를 들어, VR 게임에서 플레이어는 손 제스처를 사용하여 가상 개체를 집거나 특정 작업을 수행할 수 있습니다.

컴퓨터 비전과 머신 러닝의 발전은 손 제스처 인식 시스템의 정확도와 강건성을 향상시키는 데 크게 기여했습니다. 딥 러닝 알고리즘과 같은 기술은 복잡한 손 움직임을 보다 정확하게 감지하고 해석할 수 있습니다.

그러나 손 제스처 제어가 직관적인 상호 작용과 원격 제어에 대한 흥미로운 가능성을 제공하지만 여전히 해결해야 할 과제가 있다는 점을 주목할 가치가 있습니다. 여기에는 텔레오퍼레이션 시스템의 지연과 사용자의 제스처와 원격 장치에서 수행되는 의도된 작업 간의 신뢰할 수 있는 통신을 보장하는 문제 등이 포함됩니다.

전반적으로 손 제스처 제어는 텔레오퍼레이션 목적으로 물리적 및 디지털 영역 모두에서 유망한 응용 분야를 가지고 있습니다. 기술이 계속 발전함에 따라 이 분야에서 더 많은 발전이 이루어져 인간과 기계의 보다 원활한 통합으로 이어질 것으로 기대할 수 있습니다.

 

 

이 튜토리얼은 원격 조작에 대한 나의 경험을 보여줍니다. 특히, 팬 및 틸트 서보, 손 움직임, 마이크로 컨트롤러 및 창의적인 코딩에 대한 나의 경험. LEAP Motion은 손 움직임의 입력을 처리할 수 있지만 단일 제스처에서 여러 출력 기능은 어떻게 보이며 모션 캡처는 이러한 노력을 어떻게 수행할 수 있습니까?

이 Instructable에서는 이 솔루션을 달성하기 위해 여러 개발 환경에서 작업하는 것이 어떤 것인지와 함께 해당 질문에 답할 수 있는 잠재적인 사용 사례를 보여 줍니다. 워크플로는 최종 목표만큼이나 중요합니다.

내가 사용한 재료 :

- 프로세싱  Arduino IDE에 대한 액세스

- Adafruit 9-DOF 절대 방향 BNO055 센서

 

Adafruit 9-DOF Absolute Orientation IMU Fusion Breakout - BNO055

If you've ever ordered and wire up a 9-DOF sensor, chances are you've also realized the challenge of turning the sensor data from an accelerometer, gyroscope and magnetometer into ...

www.adafruit.com

"이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다."

- Arduino UNO 보드 2개

- 브레드 보드 2개

- 점퍼

- 팬 및 틸트 서보

- LEAP 모션 장치

이 지원 파일을 사용하여 이 Instructable을 따르십시오. IDE에서 호출될 때 실행할 때 오류가 발생하지 않도록 파일을 문서로 추출합니다. 이 Instructable은 Arduino 및 처리에 대한 기본적인 이해가 있다고 가정합니다.

1단계: 서보 설정

필요한 자료를 확보한 후 처리 및 Arduino용 LEAP Motion SDK 및 IDE를 다운로드하십시오. 점퍼를 사용하여 위의 회로도에 따라 Arduino를 배선합니다. Fritzing은 프로젝트에 필요한 모든 배선을 도울 수 있는 훌륭한 오픈 소스 웹사이트입니다. 어떤 디지털 핀아웃(2-13)이 노란색 서보 점퍼를 수신하는지에 따라 Standard Firmata Arduino Sketch의 해당 핀아웃을 명시적으로 호출해야 합니다.

.

2단계: 오리엔테이션 장치 설정

프로젝트의 이 부분에 대해서는 Adafruit BNO055 절대 방향 센서 학습 페이지를 참조하겠습니다. 케빈 타운센드 (Kevin Townsend)의 링크입니다.

저는 남성-여성 점퍼를 사용하여 센서를 서보에 부착했기 때문에 센서가 브레드보드에서 확장됩니다., 브레드보드에 센서를 고정하는 것과는 대조적입니다.

 

3단계: Arduino IDE 준비

1) 첫 번째 Arduino IDE는 Standard Firmata.ino라고합니다. 이 스케치는 마이크로 컨트롤러(Arduino)의 데이터를 호스트 컴퓨터(PC 또는 Mac)에 연결하는 역할을 합니다. 이 통신은 LEAP 모션 처리 스케치의 데이터(및 LEAP 모션의 데이터)가 팬 및 틸트 서보로 변환되어 손 동작과 함께 두 서보를 이동하기 때문에 필요합니다. 먼저 StandardFirmata.ino 파일을 실행합니다.

다운로드한 지원 파일에서 StandardFirmata.ino는 라이브러리 아래의 Arduino 폴더에서 찾을 수 있습니다. Arduino 보드의 핀아웃은 IDE에서 호출되는 핀아웃과 일치해야 합니다(2개 및 3개).

직렬 포트는 서보를 처리하는 Arduino와 올바르게 동기화되어야 합니다. "포트" 옵션은 IDE의 "도구" 드롭다운 메뉴에 있습니다. Arduino가 연결되면 COM1 또는 COM 2 또는 이와 유사한 레이블이 지정되어야 합니다. 이 문제가 발생하면 장치 관리자로 이동하여 Arduino를 찾아 마우스 오른쪽 버튼으로 클릭하고 적절한 COM 직렬 포트가 표시되도록 속성을 변경하십시오. 다른 문제가 있는 경우 이 가이드를 참조하세요.

2) 두 번째 Arduino .ino 파일인 bunny.ino는 Adafruit_BNO055 폴더 아래의 지원 파일에서 찾을 수 있습니다. 다음으로 bunny.ino 파일을 실행합니다.

Arduino가 적절한 전원 공급을 받고 있는지 확인하고 다음 단계로 넘어갈 때 플러그를 꽂아 두십시오.

4단계: 스케치 처리 설정

 
 
 

위에서 설명한 대로 Arduino 스케치를 순서대로 실행합니다(Standard Firmata.ino가 먼저, Bunny.ino가 먼저). 오류가 나타나지 않고 올바른 직렬 포트가 설정되면 다음 단계로 이동합니다.

Processing을 다운로드한 상태에서 이러한 라이브러리를 찾아 아직 설치하지 않은 경우 설치합니다(Processing의 "Sketch" 아래에 이러한 라이브러리를 가져올 수 있는 드롭다운 메뉴가 있음).

필요한 라이브러리(위의 다운로드에도 포함됨):

 아두이노

- 도약 모션 P5

- 사이토 OBJLoader

1) '소개' 단계에서 다운로드한 LEAP Motion 스케치를 사용합니다. 이 스케치는 이전 단계의 StandardFirmata.ino를 사용하여 실행됩니다. "예제"의 Arduino 라이브러리 아래 Processing 폴더에 있습니다. leap_motion_gesture.pde StandardFirmata.ino를 사용하면 Leap Motion 장치와 서보가 서로 통신할 수 있습니다. 이전 단계에서 언급했듯이 LEAP Motion에서 캡처된 데이터는 Arduino 및 서보에 대한 입력 정보 역할을 합니다.

2) Arduino 콘텐츠의 Adafruit_BNO2 폴더 아래 "예제"에 있는 cuberotate055.pde 파일은 센서의 방향을 3D 공간에 표시합니다. 이 스케치는 bunny.ino 파일이 이전 단계에서 이미 실행 중일 때 실행됩니다. 이 스케치가 실행되면 이전 단계에서 bunny.ino에 연결된 COM 포트가 스케치의 GUI 내에서 일치해야 합니다.

이를 통해 센서의 데이터가 화면에서 모델을 조작할 수 있습니다. 그림과 같이 센서가 서보에 부착되어 있고 LEAP Motion이 서보를 조작하기 때문에 한 번의 손 제스처로 여러 기능을 출력하는 작동하는 원격 조작 대화형 조각이 있습니다.

디자이너 배경에서 처리 및 프로그래밍에 접근하는 것은 두려울 수 있지만 창의적인 노력을 확장할 수 있는 도구 세트입니다.

5단계: 반사

 

저는 이 프로젝트가 포괄적이고 강렬하다는 것을 알고 있습니다. 처음에는 "만약에"로 시작한 것이 결국 몇 가지 사이드 프로젝트로 성장했습니다. 마지막으로, 이러한 사이드 프로젝트의 조합이 더 큰 개념으로 바뀌었습니다.

내 통찰력에 따르면 이 경로를 따라 가면 프로젝트를 더 작은 트랜치로 나누고 완료할 때마다 이러한 승리를 사용하여 관심을 불러일으키고 더 큰 프로젝트에 들어갈 때 복합화하는 것이 좋습니다. 이를 염두에 두고 Arduino IDE의 COM 포트와 장치 관리자가 정의되어 있는지 확인하고 어떤 Arduino가 어떤 처리 스케치와 쌍을 이루는지 기억하십시오.

대체로 두 개의 처리 스케치와 두 개의 Arduino IDE가 있습니다. 파일은 스케치에서 호출될 때 모든 것이 원활하게 실행되도록 올바른 자산 디렉토리에 있어야 합니다.

전반적으로, 나는 이 프로젝트를 만드는 것이 즐거웠다. 이것은 다소 세심한 과정이기 때문에 약간의 어려움이 있었지만 작동합니다. 이 글을 읽는 여러분 모두와 마찬가지로 저도 여전히 배우고 있습니다.

부담없이 질문해 주시면 최선을 다해 답변해 드리겠습니다. 또한 성공 및/또는 비평을 게시하십시오.

5단계: 반사

 

저는 이 프로젝트가 포괄적이고 강렬하다는 것을 알고 있습니다. 처음에는 "만약에"로 시작한 것이 결국 몇 가지 사이드 프로젝트로 성장했습니다. 마지막으로, 이러한 사이드 프로젝트의 조합이 더 큰 개념으로 바뀌었습니다.

내 통찰력에 따르면 이 경로를 따라 가면 프로젝트를 더 작은 트랜치로 나누고 완료할 때마다 이러한 승리를 사용하여 관심을 불러일으키고 더 큰 프로젝트에 들어갈 때 복합화하는 것이 좋습니다. 이를 염두에 두고 Arduino IDE의 COM 포트와 장치 관리자가 정의되어 있는지 확인하고 어떤 Arduino가 어떤 처리 스케치와 쌍을 이루는지 기억하십시오.

대체로 두 개의 처리 스케치와 두 개의 Arduino IDE가 있습니다. 파일은 스케치에서 호출될 때 모든 것이 원활하게 실행되도록 올바른 자산 디렉토리에 있어야 합니다.

전반적으로, 나는 이 프로젝트를 만드는 것이 즐거웠다. 이것은 다소 세심한 과정이기 때문에 약간의 어려움이 있었지만 작동합니다. 이 글을 읽는 여러분 모두와 마찬가지로 저도 여전히 배우고 있습니다.

부담없이 질문해 주시면 최선을 다해 답변해 드리겠습니다. 또한 성공 및/또는 비평을 게시하십시오.

6단계: John Deere 사용 사례

마지막으로, Mindsumo에서 "연결된 로봇 건설 장비"에 대한 John Deere의 탐구에 대한 나의 우승 솔루션을 확인하도록 초대합니다. 문제는 솔루션이 로봇이라는 가정 하에 굴삭기/굴착기 장비의 새로운 용도를 제안하는 것이었습니다.

제 솔루션에서는 모션 캡처가 이 Instructable에 설명된 기술과 프로세스를 사용하여 백호와 굴삭기 시스템 모두에 동시에 명령을 내릴 수 있는 방법을 설명했습니다. 특히:

 

모션 캡처를 활용하면 필요한 인간 모션 입력으로 백호와 굴삭기 시스템의 워크플로를 동시에 출력할 수 있습니다. 예를 들어 LEAP Motion은 손의 움직임을 감지하는 모션 캡처 장치입니다. 손 위치에 따라 정밀도와 기능 측면에서 두 시스템의 프로세스를 아웃소싱할 수 있습니다. 또한 LEAP Motion 시스템은 여러 시스템에서 동시에 작동하여 단일 상호 작용의 비용으로 출력을 높일 수 있습니다. 이는 단일 상호 작용의 입력을 통해 여러 백호 및 굴삭기 시스템이 동시에 작동할 수 있음을 의미합니다.
자세한 내용은 이 링크를 방문하여 LEAP Motion 시스템과 내 솔루션에 대해 알아보십시오. 내 프로젝트는 단일 팬 및 틸트 시스템으로 제한되어 있지만 한 손 제스처로 작동하기 위해 여러 시스템으로 확장할 수 있다고 믿습니다!

 

 

728x90