2011년 8월 8일
최근, 잠재 고객의 광대한 금액은 인간 - 로봇 상호 작용 시스템을 사용할왔다. 본 논문에서 우리는 신속하게 상호 작용 기능을 가능한 라이브러리를 만들 수 있습니다 오픈 소스 소프트웨어와 함께 새로운 로봇 장치의 통합을 설명합니다. 우리는 다음 neurorehabilitation 어플 리케이션을위한 임상 응용 프로그램을 설명합니다.
본 절차의 전반적인 목표는 로봇을 가상 환경 라이브러리에 통합한 후, 해당 로봇을 뇌졸중 치료에 활용하는 것입니다. 이는 먼저 햅틱 라이브러리를 확장하는 래퍼 클래스를 생성하고, 이 래퍼 클래스를 햅틱 라이브러리에 통합함으로써 달성됩니다. 다음 단계는 그래픽 라이브러리를 확장하는 래퍼 클래스를 생성하는 것이며, 래퍼 클래스 작성이 완료되면 이 클래스를 그래픽 라이브러리에 통합합니다.
H 3D API 인터페이스는 뇌졸중 환자 테스트를 위한 유한 상태 머신(finite state machine)을 설정하는 데 사용됩니다. 이후 통합된 로봇을 사용하여 뇌졸중 환자의 재활을 돕습니다. 이 기술의 주요 장점은 더 이상 모든 로봇에 대해 서로 다른 소프트웨어 애플리케이션을 작성할 필요가 없다는 점입니다.
또한, 이러한 애플리케이션은 전 세계의 과학자들이 실험실에서 사용하는 로봇의 종류와 관계없이 실행할 수 있습니다. 이 방법은 우리 신경계가 오차 증강(error augmentation)으로부터 어느 정도의 이득을 얻을 수 있는지와 같이 재활, 로보틱스 및 운동 제어 분야의 핵심 질문들에 답하는 데 도움이 될 수 있습니다. 또한, 이 방법은 뇌졸중 장애에 대한 통찰력을 제공할 뿐만 아니라 건강한 신체 기능에 대한 이해를 넓힐 수 있습니다.
일반적으로 재활 치료를 처음 시작하는 뇌졸중 환자들은 핸들을 잡는 법을 익히는 것과 같은 특정한 장애물을 극복해야 합니다. 저희는 중력 보정 상태에서 넓은 작업 영역을 갖춘 로봇이 필요하다는 점을 깨달았을 때 처음으로 이 방법의 아이디어를 얻었습니다. 또한, 향후 대학원생들이 동일한 작업을 반복하지 않고 이전 연구자들의 성과를 활용할 수 있도록 소프트웨어 재작성 작업을 최소화하고자 했습니다.
이 영상에서는 www.hthreedpi.org에서 제공하는 오픈 소스 코드를 사용하여 WHAM(whole arm manipulation) 로봇을 통합하는 방법을 설명합니다. 햅틱 라이브러리에 새로운 로봇을 통합하려면, 먼저 WHAM 로봇의 움직임을 제어하는 데 사용되는 햅틱 렌더링 엔진인 HAP을 위한 래퍼 클래스를 작성해야 합니다. 먼저 CPP 파일과 헤더 파일을 생성하십시오.
이 예제에서 사용된 파일 이름은 happy, wham, cpp 및 happy wham h입니다. happy wham cpp 파일을 소스 디렉토리인 Happy/source에 넣은 다음, happy를 배치하십시오.
wham.h 파일을 헤더 파일 디렉토리에 저장합니다. 경로-happy/include/happy입니다. happy wham.h 상단에 로봇의 메인 헤더 파일들을 포함시킵니다.
포함된 라이브러리는 C로 작성되었고 H 3D API는 C++로 작성되었으므로, 컴파일러 매글링(mangling)을 해결하기 위해 extern C가 필요하다는 점에 유의하십시오. happy wham h에서 로봇을 위한 클래스를 생성하고 haptics device release, haptics device, update device values, send output의 네 가지 함수를 포함하십시오. 해당 클래스가 happy haptics device 클래스를 공개적으로 상속받도록 해야 합니다.
다음으로, 클래스에 대한 헤더 가드(header guard)를 생성하십시오. 그런 다음 happy WHAM 클래스 아래에 정적 장치 출력(static device output)과 정적 햅틱 장치 등록(static haptics device registration) 속성을 생성하십시오. 이어서 해당 로봇에 특화된 콜백을 위한 정적 멤버 함수들을 생성하십시오.
WHAM 로봇의 경우, 콜백 함수는 bull 및 haptics 장치 init 함수에서 사용됩니다. 헤더 파일에 프로토타입이 설정되었으므로, happy wham dot cpp 파일을 열고 적절한 헤더 파일과 네임스페이스를 포함시키십시오. 다음으로, Happy Wam cpp에서 생성자와 소멸자를 정의하십시오.
그 다음 Happy Wam cpp에서 장치를 등록하십시오. 이제 Happy Wam cpp에서 네 가지 상속 함수와 콜백을 정의합니다. 장치 값 업데이트 함수는 로봇 팔의 위치와 로봇이 환경에 가하는 힘의 크기를 컴퓨터에 전달합니다.
Happy Wrapper 클래스를 생성한 후, 다음 단계는 Happy 라이브러리에 wrap을 구축하는 것입니다. WAM은 H 3D API의 기본 형태에서는 의존하지 않는 일부 라이브러리에 의존합니다. 따라서 이러한 라이브러리들을 happy에 추가해야 합니다.
H 3D 2.1/happy/build 디렉토리로 이동하여 CMakeLists.txt 파일을 수정하십시오. Set optional libs라고 적힌 줄 다음에 종속 라이브러리들을 추가하십시오. 명령 콘솔을 열고 H 3D 2.1/happy/build 경로로 이동한 다음, 순서대로 cmake, make, sudo make install을 입력하여 H 3D 오픈 소스 코드에 새로운 로봇의 통합을 완료하십시오.
씬 그래프를 위한 두 번째 랩 클래스를 작성합니다. API는 H 3D API라고 불립니다. 이 예제에서는 wam device라는 랩 클래스를 사용합니다.
소스 디렉터리인 H 3D AP I/source로 이동하여 WAM 장치 CPP 파일인 wam device.Cpp를 생성하십시오. 모든 H 3D PI 장치에 적용되는 표준 소스를 추가하십시오. 다음으로 Wam device H를 헤더 파일 디렉터리에 배치하십시오.
Wam device H는 모든 H 3D API 장치를 위한 표준 헤더 파일을 포함해야 합니다. 래퍼 클래스가 생성되었으므로, H three DPI slash build 디렉터리에 있는 C make lists 텍스트를 편집하여 H 3D PI 라이브러리를 다시 빌드하십시오. 마지막으로 H 3D PI slash build 디렉터리에서 작업을 수행합니다.
CMake, pseudo make 및 pseudo make install 명령을 사용하여 H 3D API 라이브러리를 다시 빌드합니다. 이제 새로운 래퍼 클래스를 로봇에 사용할 준비가 되었습니다. 적절한 래퍼 클래스가 설치되면, Barrett WHAM 로봇을 사용한 표적 도달 과제(targeted reaching task)의 실험 프로토콜을 제어하기 위한 유한 상태 머신(finite state machine)이 생성됩니다. 상태 머신의 상태는 시행 시작, 런칭, 표적 접촉 및 시행 종료로 구성됩니다.
시행 시작 상태는 타겟 할당과 함께 시작됩니다. 타겟 위치는 각 시행마다 무작위로 설정하거나 파일에서 설정할 수 있습니다. 시행 시작 상태가 종료되면 발사 상태가 시작됩니다.
피험자의 손이 일반적으로 0.06 meters per second인 속도 임계값 이상으로 타겟을 향해 이동하면 발사 상태가 됩니다. 환자의 커서가 타겟에 닿으면 발사 상태가 종료되고 타겟 접촉 상태가 시작됩니다. 접촉이 이루어지면 타겟이 사라지며, 타겟 접촉 상태가 종료되고 시도 종료 상태가 시작됩니다.
시행 종료 상태가 되면 데이터 수집 소프트웨어에 알림이 전달되어 데이터 파일에 시행 종료 구분 기호를 표시합니다. 마지막 시행이 완료되지 않은 경우, 시행 종료 상태가 끝나면 시행 시작 상태가 활성화되고 새로운 타겟이 할당됩니다. 이 섹션에서는 뇌졸중 환자의 재활에 사용되는 phantom이라는 다른 로봇을 시연합니다.
팬텀의 wrap 클래스 코드를 적절한 라이브러리에 대입함으로써, 새로운 로봇을 가상 환경에 통합할 수 있으며, 여기서는 가상 현실 로봇 및 광학 수술 장치 또는 룸(virtual reality Robotic and optical operations machine or room)이라고 불리는 3차원 햅틱 그래픽 시스템이 사용됩니다. 이 시스템은 세미 실버 미러 오버레이 디스플레이 상의 투영 스테레오 헤드 트래킹 렌더링과 손목 위치를 기록하고 힘 벡터를 생성할 수 있는 로봇 시스템을 결합한 것입니다. 시네마급 디지털 프로젝터가 5피트 너비의 디스플레이에 이미지를 표시하여 110도의 넓은 시야각을 제공합니다.
적외선 방출기는 LCD 셔터 안경을 통해 좌우 눈의 개별 이미지를 동기화합니다. 머리 움직임은 ascension flock of birds 자기 소자를 통해 추적되어, 시각적 디스플레이가 적절하게 머리 중심의 관점으로 렌더링됩니다. 손목 부목이 포함된 exo tendon glove는 손목과 손의 정렬을 중립 상태로 유지하도록 돕습니다.
로봇 핸들의 중심을 요수근 관절 뒤쪽의 전완부에 배치합니다. 이를 통해 로봇의 힘이 손목에 작용하게 하되, 손의 자유로운 움직임은 허용합니다. 스프링 구동 방식의 Wilmington 로봇 외골격 중력 균형 보조기를 사용하여 환자의 팔 무게를 줄여줍니다.
환자 옆에 앉은 치료사는 추적 장치를 사용하여 디스플레이 상의 커서를 이동시킵니다. 환자는 로봇 핸들을 사용하여 커서를 따라가도록 안내받습니다. 오차 증강은 시각적 방식과 로봇에 의해 생성되는 힘을 통해 모두 제공됩니다.
환자의 커서가 치료사의 커서에서 벗어나 즉각적인 오차가 발생하면, 치료사 커서와 환자의 손 사이의 위치 차이로 벡터 E가 설정됩니다. 오차 증강의 일환으로, 이 오차는 1.5 E의 배수로 시각적으로 확대됩니다. 또한, 환자의 팔에 100 E의 오차 증강력이 가해지며, 이는 최대 4 Newtons에서 포화되도록 프로그래밍되었습니다.
안전을 위해, 오차 증폭(error augmentation)은 환자가 인지하는 오차를 확대하여 재학습 과정을 강화합니다. 치료 프로토콜에 따라 환자는 전방 및 측방으로 팔을 뻗는 어깨-팔꿈치 결합 동작과 몸을 가로질러 대각선으로 뻗는 동작을 포함하여 몇 가지 특정 동작을 연습합니다. 다음 시연에서는 상위 클래스 코드를 교체하고 Barrett WHAM 로봇을 사용합니다.
다음 과제의 목표는 건강한 피험자 또는 뇌졸중 환자가 반투명한 녹색 구체 내부에서 가상 투사체를 잡는 것입니다. 환자의 손이 구체 밖으로 벗어나면 구체는 빨간색으로 변하며, 환자의 팔에는 로봇으로부터 오류 증폭 피드백이 전달됩니다. 환자가 정의된 공간 내에서 투사체를 성공적으로 잡으면 구체는 녹색 상태를 유지합니다.
이 그림은 도달 오차의 중앙값을 보여줍니다. 각 점은 전형적인 기능적 움직임의 2분 단위 블록에 대해 측정된 중앙값 오차를 나타냅니다. 환자들은 2주 동안 진전을 보였으나, 매일 항상 개선이 있었던 것은 아니었습니다.
이 그림은 선택적으로 움직임 간 변동성을 줄이는 데 있어 오류 증강(error augmentation)이 가져오는 결과적인 이점을 보여줍니다. 상단 그래프는 대조군의 데이터를 나타내며, 하단 그래프는 실험군의 데이터를 나타냅니다. 각 색상은 서로 다른 피험자를 의미합니다.
두 개의 수평선은 과제의 경계 위치를 나타냅니다. 피험자의 목표는 이 경계 내에서 가상 투사체를 잡는 것이었습니다. 점의 위치는 해당 피험자가 접촉에 가장 가까이 다가간 지점을 보여줍니다.
투사체에서, 원시 데이터 위에 겹쳐진 파란색 반투명 히스토그램은 그룹의 이동 분포를 나타냅니다. 전방 축을 따라, 뇌졸중 환자들은 초기 200회 시행 동안 캐칭 과제(catching task)를 600회 수행하였으며, 201회부터 400회 시행까지는 오차 증강 피드백(error augmentation Feedback)이 제공되지 않았습니다. 로봇이 환자에게 오차 증강 피드백을 제공한 결과, 환자가 지정된 경계 내에서 표적을 잡는 능력이 유의미하게 향상되었습니다.
이 절차를 따른 후에도 기존의 재활 방법을 여전히 수행할 수 있지만, 로봇을 이용하면 반복적인 시도 동안 환자의 손 위치를 항상 정량화할 수 있습니다. 이 기술은 신경 공학 분야의 새로운 연구를 위한 길을 열어주었으며, 이를 통해 다양한 가능한 해결책이 존재하는 특정 영역 내에서 시뮬레이션된 도달 동작을 탐구할 수 있습니다. 이 영상을 시청한 후에는 선택한 재활 로봇을 위해 H 3D API 라이브러리를 확장하는 방법과 뇌졸중 환자의 평가 및 치료를 위한 다양한 햅틱 그래픽 인터페이스를 적용하는 방법을 이해하게 될 것입니다.
로봇과 함께 작업하는 것은 잠재적으로 위험할 수 있으므로, 이러한 인간-로봇 상호작용이 포함된 로봇을 선택할 때는 신중한 고려가 필요합니다. 저희는 가장 최근 프로젝트에서 더 강력하고 백드라이브(back drivable)가 가능한 Barrett WHAM을 선택했습니다. 백드라이브가 가능하다는 것은 프로그래밍을 통해 거의 저항이 느껴지지 않게 만들 수 있다는 의미이며, 그럼에도 불구하고 이 로봇은 인간-기계 상호작용을 위해 사용 가능한 가장 안전한 옵션 중 하나입니다.
별도의 워치독 컴퓨터가 메인 컴퓨터를 모니터링하며, 문제가 발생할 경우 시스템을 비활성화할 수 있습니다. 또한 동적 제동 장치를 통해 시스템이 비활성 상태일 때 항상 댐퍼 역할을 하도록 보장합니다. 많은 로봇이 서로 다르게 작동하지만, 그 기능 중 상당 부분은 중첩됩니다. 따라서 로봇 간의 기술 이식 가능성은 연구실 간의 새로운 공유를 촉진할 수 있습니다.
본 연구에서 입증된 것과 같은 훈련 처치가 환자의 기능 회복뿐만 아니라 스포츠 훈련, 원격 조작 음악 연주 시범, 외과적 수술 기법 및 반복적인 연습이 필요한 기타 모든 과업의 훈련을 강화하는 데 고무적인 증거를 제공한다는 점은 분명합니다.
본 논문은 뇌졸중 치료를 구체적인 목표로 하여, 신경 재활 응용 분야를 위한 로봇 장치와 오픈 소스 소프트웨어의 통합에 대해 다룹니다. 이러한 접근 방식을 통해 가상 환경에서 상호작용 기능 라이브러리를 활용할 수 있습니다.
본 연구는 중개 신경과학 및 재활 공학의 주요 병목 지점인 로봇 플랫폼 간 소프트웨어 상호 운용성 부족 문제를 다룹니다. 단일 코드베이스가 다양한 햅틱 장치와 인터페이스할 수 있도록 함으로써, 이 접근 방식은 개발 오버헤드를 줄이고 운동 학습 중재의 재현 가능한 전임상 평가를 지원합니다. 이러한 기능은 실험실 간의 행동 판독값을 표준화함으로써 신경 재활 치료의 초기 단계 표적 검증에 대한 예측 신뢰도를 높여줍니다.
이 방법은 로봇 시스템을 운동 회로 조절을 위한 표준화된 표현형 분석 도구로 변환함으로써 발견 단계부터 전임상 단계까지의 연속 과정에 부합하며, 신경 재활 약물 개발의 리드 물질 식별에 직접적으로 적용 가능합니다.