August 8th, 2011
최근, 잠재 고객의 광대한 금액은 인간 - 로봇 상호 작용 시스템을 사용할왔다. 본 논문에서 우리는 신속하게 상호 작용 기능을 가능한 라이브러리를 만들 수 있습니다 오픈 소스 소프트웨어와 함께 새로운 로봇 장치의 통합을 설명합니다. 우리는 다음 neurorehabilitation 어플 리케이션을위한 임상 응용 프로그램을 설명합니다.
이 절차의 전반적인 목표는 로봇을 가상 환경 라이브러리에 통합한 다음 로봇을 뇌졸중 치료에 사용하는 것입니다. 이 작업은 먼저 래퍼 클래스를 만들어 햅틱 라이브러리를 확장한 다음 wrap 클래스를 햅틱 라이브러리에 통합하여 수행됩니다. 다음 단계는 랩 클래스를 만들어 그래픽 라이브러리를 확장한 다음 랩 클래스가 완료되면 이 랩 클래스를 그래픽 라이브러리에 통합하는 것입니다.
H 3D API 인터페이스는 뇌졸중 환자 검사를 위한 유한 상태 기계를 설정하는 데 사용됩니다. 그런 다음 통합 로봇을 사용하여 뇌졸중 환자의 재활을 돕습니다. 이 기술의 가장 큰 장점은 더 이상 모든 로봇에 대해 다른 소프트웨어 응용 프로그램을 작성할 필요가 없다는 것입니다.
또한 이러한 애플리케이션은 실험실에서 사용하는 로봇에 관계없이 전 세계의 과학자들이 실행할 수 있습니다. 이 방법은 재활, 로봇 공학 및 운동 제어 분야의 주요 질문, 예를 들어 우리의 신경계가 오류 증가로 인해 어느 정도까지 이익을 얻을 수 있는지와 같은 질문에 답하는 데 도움이 될 수 있습니다. 이 방법은 뇌졸중 손상에 대한 통찰력을 제공할 뿐만 아니라 건강한 기능에 대한 이해를 높일 수 있습니다.
일반적으로 재활을 처음 접하는 뇌졸중 환자, 로봇 공학은 손잡이를 잡는 법을 배우는 것과 같은 특정 장애물을 극복해야 합니다. 이 방법에 대한 아이디어는 중력 보상에 큰 작업 공간을 가진 로봇이 필요하다는 것을 깨달았을 때 처음 떠올랐습니다. 우리는 또한 미래의 대학원생들이 동일한 작업을 다시 수행하지 않고도 이전 대학원생들로부터 혜택을 받을 수 있도록 소프트웨어 재작성을 최소화하고 싶었습니다.
이 비디오는 전체 팔 조작 또는 왐 로봇을 www.hthreedpi.org 에서 사용할 수 있는 오픈 소스 코드와 통합하기 위한 지침을 제공합니다. 새로운 로봇을 햅틱 라이브러리에 통합하기 위한 첫 번째 단계는 WHAM 로봇의 움직임을 제어하는 데 사용되는 햅틱 렌더링 엔진인 HAP에 대한 래퍼 클래스를 작성하는 것입니다. CPP 및 헤더 파일을 만들어 시작합니다.
이 예제에 사용된 파일 이름은 happy, wham, cpp 및 happy wham h입니다. hapi wham cpp 파일을 소스 디렉토리에 배치합니다. 행복한 슬래시 소스, 다음 행복한 장소.
Wham h를 헤더 파일 디렉토리에 넣습니다. 해피 슬래시에는 슬래시 해피가 포함됩니다. 해피 왐 h의 맨 위에는 로봇의 기본 헤더 파일이 포함됩니다.
포함 된 라이브러리는 C로 작성되고 H 3D API는 c 플러스 플러스로 작성되기 때문에 컴파일러 맹글링을 해결하려면 extern C가 필요합니다. 햅틱 장치 해제, 햅틱 장치, 장치 값 업데이트 및 출력 보내기. 클래스가 happy haptics 장치 클래스에서 공개적으로 상속되는지 확인합니다.
다음으로, 클래스에 대한 헤더 가드를 만듭니다. 그런 다음 hapi WHAM 클래스 아래에 정적 장치 출력 및 정적 햅틱 장치 등록 특성을 만듭니다. 그런 다음 로봇에 특정한 콜백에 대한 정적 멤버 함수를 만듭니다.
WHAM 로봇의 경우 콜백 함수는 bull에서 사용되며 햅틱 장치 int 기능입니다. 이제 프로토타입이 헤더 파일에 설정되었으므로 happy wham dot cpp를 열고 적절한 헤더 파일과 네임스페이스를 포함합니다. 다음으로 Happy Wam cpp에서 생성자와 구조체를 정의합니다.
그런 다음 Happy Wam cpp에 장치를 등록합니다. 이제 happy Wam cpp에서 4 개의 상속 된 함수와 콜백을 정의하십시오. 장치 값 업데이트 기능은 로봇 팔의 위치와 로봇이 환경에 얼마나 많은 힘을 생성하는지 컴퓨터에 알려줍니다.
Happy Wrapper 클래스를 만든 후 다음 단계는 Happy 라이브러리에 랩을 빌드하는 것입니다. WAM은 H 3D API가 원시 형식으로 의존하지 않는 일부 라이브러리에 의존합니다. 따라서 이러한 라이브러리는 happy에 추가되어야 합니다.
H 3D 2.1 슬래시 해피 슬래시 빌드 디렉토리로 이동하여 C make 목록 텍스트를 편집합니다. Set optional libs라는 줄 뒤에 종속 라이브러리를 추가합니다. 명령 콘솔을 열고 H 3D 2.1 슬래시 해피 슬래시 빌드로 이동하여 순서대로 입력하고 새 로봇과 H 3D 오픈 소스 코드의 통합을 완료하려면 make dot pseudo make 및 pseudo make install을 참조하십시오.
장면 그래프에 대한 두 번째 래핑 클래스를 작성합니다. H 3D API라고 하는 API입니다. 이 예제에서는 wam device라는 랩 클래스를 사용합니다.
소스 디렉토리, H 3D AP I 슬래시 소스로 이동하여 WAM 디바이스, CPP 파일 및 wam device.Cpp를 만듭니다. 모든 H 3D PI 디바이스에 대한 표준 소스를 추가합니다. 그런 다음 Wam 디바이스 H를 헤더 파일 디렉토리에 배치합니다.
Wam 디바이스 H에는 모든 H 3D API 디바이스에 대한 표준 헤더 파일이 포함되어야 합니다. 이제 래퍼 클래스가 생성되었으므로 H 3D PI 라이브러리에서 C make lists 텍스트를 편집하여 H 3D PI 라이브러리를 다시 빌드합니다. 마지막으로 디렉토리에서 H 3D PI 슬래시 빌드.
CMake dot pseudo make 및 pseudo make install 명령을 사용하여 H 3D API 라이브러리를 다시 빌드합니다.이제 새 래퍼 클래스를 로봇에서 사용할 준비가 되었습니다. 적절한 래퍼 클래스가 설치되면 Barrett WHAM 로봇과 함께 사용되는 목표 도달 작업에 대한 실험 프로토콜을 제어하기 위해 유한 상태 기계가 생성됩니다. 상태 머신의 상태는 시험 시작 시작, 대상 접촉 및 시험 종료입니다.
시행 상태의 시작은 대상의 할당으로 시작됩니다. 대상 위치는 각 평가판에 대해 무작위로 설정되거나 파일에서 설정될 수 있습니다. 평가판 시작 상태가 종료되고 시작 상태가 시작됩니다.
일단 피험자의 손이 속도 임계값(일반적으로 초당 0.06미터)을 초과하여 목표물을 향해 발사되면. 시작 상태가 끝나고 환자의 커서가 대상에 닿을 때 대상 접촉 상태가 시작됩니다. 접촉이 이루어지면 대상이 사라지고 대상 접촉 상태가 종료되고 시험 종료 상태가 시작됩니다.
시험이 종료된 상태는 데이터 수집 소프트웨어에 시험이 끝났음을 나타내는 구분 기호로 데이터 파일을 표시하도록 신호를 보냅니다. 최종 시행이 완료되지 않은 경우 시행 종료 상태가 종료되면 시행 상태가 시작되고 새 대상이 할당됩니다. 이 섹션에서는 뇌졸중 환자의 재활에 사용되는 팬텀이라는 다른 로봇을 보여줍니다.
팬텀의 랩 클래스 코드를 적절한 라이브러리로 대체함으로써 새로운 로봇을 가상 환경, 가상 현실 로봇이라고 하는 3차원 햅틱 그래픽 시스템 및 광학 작동 기계 또는 룸에 통합할 수 있습니다. 이 시스템은 세미 실버 미러 오버레이 디스플레이에 투사된 스테레오 헤드 추적 렌더링을 손목 위치를 기록하고 힘 벡터를 생성할 수 있는 로봇 시스템과 결합합니다. 영화 품질의 디지털 프로젝터는 5피트 너비의 디스플레이에 걸쳐 있는 이미지를 표시하여 110도의 광시야각을 제공합니다.
적외선 방출기는 LCD 셔터 안경을 통해 별도의 왼쪽 및 오른쪽 눈 이미지를 동기화합니다. 머리 움직임은 조류 무리의 상승 자기 요소로 추적되므로 시각적 디스플레이가 적절한 머리 중심 관점으로 렌더링됩니다. 손목 부목이 있는 엑소 힘줄 장갑은 손목과 손의 중립 정렬을 돕습니다.
로봇 핸들의 중심은 방사선 수근 관절 뒤쪽의 팔뚝에 위치합니다. 이렇게 하면 손목에서 힘이 작용할 수 있지만 손에서는 자유롭게 움직일 수 있습니다. 환자의 팔 무게는 스프링으로 구동되는 Wilmington 로봇 외골격 중력 균형 보조기를 사용하여 줄입니다.
환자 옆에 앉은 치료사는 추적 장치를 사용하여 디스플레이 주위로 커서를 움직입니다. 그 앞에서 환자는 로봇 핸들을 사용하여 커서를 쫓으라는 지시를 받습니다. 오류 증강은 시각적으로나 로봇에 의해 생성된 힘에 의해 제공됩니다.
환자의 커서가 치료사의 커서에서 벗어나 순간 오류가 발생하면 벡터 E는 치료사 커서와 환자의 손 사이의 위치 차이로 설정됩니다. 오류는 오류 증가의 일부로 1.5E의 계수로 시각적으로 확대됩니다. 또한 100E의 오류 증가력이 환자의 팔에 가해지며 이는 최대 4뉴턴에서 포화되도록 프로그래밍됩니다.
안전상의 이유로 오류 증가는 환자가 인식하는 오류를 확대하여 재학습 프로세스를 향상시킵니다. 치료 프로토콜은 환자가 앞뒤로 뻗기, 어깨 팔꿈치 결합, 몸을 가로지르는 대각선 뻗기를 포함하여 몇 가지 특정 동작을 연습할 것을 요구합니다. 다음 데모에서는 상위 클래스 코드를 교체하고 Barrett WHAM 로봇을 사용합니다.
이 다음 작업의 목표는 건강한 피험자 또는 뇌졸중 환자가 반투명한 녹색 구체 내에서 가상 발사체를 잡는 것입니다. 환자의 손이 구 밖으로 벗어나면 구가 빨간색으로 변하고 환자의 팔이 로봇으로부터 오류 증강 피드백을 받습니다. 환자가 정의된 공간 내에서 발사체를 성공적으로 잡으면 구가 녹색으로 유지됩니다.
이 그림은 중앙값 도달 오류를 보여줍니다. 각 점은 2분 동안 정형화된 기능적 움직임에 대해 측정된 중앙값 오차를 나타냅니다. 환자들은 2주 동안 진전을 보였지만 매일 항상 호전되는 것은 아니었습니다.
이 그림은 움직임의 변동성을 선택적으로 줄이는 데 있어 오류 증가의 이점을 보여줍니다. 위쪽 그림은 통제 그룹의 데이터를 보여주고 아래쪽 그림은 치료 그룹의 데이터를 보여줍니다. 각 색상은 다른 주제를 나타냅니다.
두 개의 수평선은 작업에 대한 경계의 위치를 표시합니다. 피험자의 목표는 이 경계 내에서 가상 발사체를 잡는 것이었습니다. 점의 위치는 주어진 피험자가 가장 가까이 접촉한 위치를 보여줍니다.
발사체에서 원시 데이터 표시 위에 오버레이된 파란색 반투명 히스토그램은 그룹의 이동 분포를 표시합니다. 뇌졸중 환자는 초기 200건의 임상시험에서 뇌졸중 환자를 600건의 포획 과제 시행 시연을 수행했으며, 마지막 200건의 임상시험에서는 201건부터 400건까지의 임상시험에 대해 오류 증강 피드백을 제공하지 않았다. 이 로봇은 환자에게 오류 증강 피드백을 제공하여 지정된 경계 내에서 표적을 잡을 수 있는 환자의 능력을 크게 향상시켰습니다.
이 절차를 따랐을 때에도 전통적인 재활 방법을 계속 수행할 수 있지만, 로봇을 사용하면 여러 번의 반복된 시도를 통해 환자의 손이 어디에 있는지 항상 정량화할 수 있습니다. 이 기술은 신경 공학 분야의 새로운 연구를 위한 길을 열었으며, 여기서 우리는 가능한 많은 솔루션이 있도록 한 영역 내에서 시뮬레이션된 도달을 탐색할 수 있습니다. 이 비디오를 시청한 후에는 선택한 재활 로봇을 위해 H 3D API 라이브러리로 확장하고 뇌졸중 환자의 평가 및 치료를 위해 다양한 햅틱 그래픽 인터페이스를 적용하는 방법을 이해하게 될 것입니다.
따라서 로봇과 함께 작업하는 것은 잠재적으로 위험할 수 있으므로 이러한 인간 상호 작용이 있는 로봇을 선택할 때 신중하게 고려해야 합니다. 우리는 더 최근 프로젝트를 위해 Barrett WHAM을 선택했는데, 그 이유는 더 강력하고 뒤로 돌릴 수 있기 때문입니다. 뒤로 돌릴 수 있다는 것은 프로그래밍하면 거의 저항이 없는 것처럼 느껴질 수 있지만 인간 기계 상호 작용에 사용할 수 있는 가장 안전한 옵션 중 하나라는 것을 의미합니다.
별도의 감시 컴퓨터로, 주 컴퓨터를 모니터링하고 문제가 발생하면 시스템을 비활성화할 수 있으며, 동적 제동은 시스템이 비활성화될 때마다 시스템이 댐퍼가 되도록 합니다. 많은 로봇이 다르게 작동하지만 많은 기능이 중복됩니다. 따라서 우리의 기술 이식성은 실험실 간의 새로운 공유를 촉진할 수 있습니다.
분명한 것은 이 연구에서 입증된 것과 같은 훈련 치료가 환자의 기능을 회복시키는 데 고무적인 증거를 제공할 뿐만 아니라 스포츠 훈련, 원격 조작 조종, 음악 공연, 수술 기술 및 반복적인 연습이 필요한 기타 작업을 향상시키는
데 도움이 된다는 것입니다.이 기사는 뇌혈관 사고 치료에 특화된 신경재활 애플리케이션을 위한 로봇 장치와 오픈 소스 소프트웨어의 통합에 대해 논의합니다. 이 접근법은 가상 환경에서 상호작용 기능의 라이브러리를 활용할 수 있게 합니다.