8 de agosto de 2011
Recentemente, uma grande quantidade de perspectivas vieram disponível para humanos e robôs sistemas interativos. Neste artigo destacamos a integração de um novo dispositivo robótico com software de código aberto que pode rapidamente tornar uma biblioteca possível de funcionalidades interactivas. Em seguida, esboçar uma aplicação clínica para uma aplicação de reabilitação neurológica.
O objetivo geral deste procedimento é integrar um robô a uma biblioteca de ambiente virtual e, em seguida, utilizar o robô para terapia de acidente vascular cerebral. Isso é realizado primeiramente criando uma classe encapsuladora para estender a biblioteca de háptica e depois integrando a classe encapsuladora à biblioteca de háptica. O próximo passo é criar uma classe encapsuladora para estender a biblioteca de gráficos e, em seguida, integrar essa classe encapsuladora à biblioteca de gráficos, uma vez que as classes encapsuladoras estejam concluídas.
A interface da API H 3D é usada para configurar uma máquina de estados finitos para testar pacientes com AVC. O robô integrado é então utilizado para ajudar na reabilitação de pacientes com AVC. A principal vantagem dessa técnica é que você não precisa mais escrever uma aplicação de software diferente para cada robô.
Além disso, essas aplicações podem ser executadas por cientistas em todo o mundo, independentemente do robô utilizado em seu laboratório. Este método pode ajudar a responder perguntas fundamentais nas áreas de reabilitação, robótica e controle motor, como, por exemplo, até que ponto nosso sistema nervoso pode se beneficiar do aumento de erros. Este método pode fornecer insights sobre os déficits decorrentes de acidente vascular cerebral, bem como aprofundar nossa compreensão do funcionamento saudável.
Em geral, pacientes com AVC novos na reabilitação com robótica precisam superar certos obstáculos, como aprender a segurar o manípulo. Tivemos pela primeira vez a ideia deste método quando percebemos a necessidade de um robô com uma área de operação ampla em compensação da gravidade. Também queríamos minimizar a reescrita de software para que estudantes de pós-graduação futuros pudessem se beneficiar do trabalho dos que os antecederam, sem precisar refazer o mesmo trabalho.
Este vídeo fornece instruções para integrar um robô de manipulação de braço inteiro (WHAM) com o código aberto disponível em www.hthreedpi.org. Para integrar um novo robô à biblioteca de háptica, o primeiro passo é escrever uma classe wrapper para o HAP, o mecanismo de renderização háptica, que é usado para controlar o movimento do robô WHAM. Comece criando um arquivo CPP e um arquivo de cabeçalho.
Os nomes de arquivo usados para este exemplo são happy, wham, cpp e happy wham h. Coloque o arquivo happy wham cpp no diretório de origem. Happy barra origem, depois coloque happy.
Bata h no diretório do arquivo de cabeçalho. Barra feliz incluir barra feliz. No topo do arquivo feliz wham h, inclua os arquivos de cabeçalho principais do robô.
Observe que o extern C é necessário para resolver o mangling do compilador, pois a biblioteca incluída é escrita em C e a API H 3D é escrita em C mais mais. No happy wham h, crie a classe para o robô e inclua nela as quatro funções: liberação do dispositivo háptico, dispositivo háptico, atualização dos valores do dispositivo e envio da saída. Certifique-se de que a classe herde publicamente da classe happy haptics device.
Em seguida, crie uma proteção de cabeçalho para a classe. Depois, crie os atributos estáticos de saída do dispositivo e de registro do dispositivo háptico dentro da classe happy WHAM. Em seguida, crie as funções-membro estáticas para callbacks específicas ao seu robô.
Para um robô WHAM, a função de retorno é utilizada no dispositivo háptico e na função de inicialização. Agora que os protótipos estão definidos no arquivo de cabeçalho, abra o happy wham.cpp e inclua os arquivos de cabeçalho e o namespace apropriados. Em seguida, defina o construtor e o destrutor em happy_wam.cpp.
Em seguida, registre o dispositivo no Happy Wam cpp. Agora defina as quatro funções herdadas e os retornos de chamada no happy Wam cpp. A função update device values informa ao computador a posição do braço do robô e a quantidade de força que está sendo gerada pelo robô no ambiente.
Após criar a classe Happy Wrapper, o próximo passo é integrar um wrap à biblioteca Happy. O WAM depende de algumas bibliotecas das quais a API H 3D não depende em sua forma original. Portanto, essas bibliotecas precisam ser adicionadas ao happy.
Vá para o diretório H 3D 2.1 barra happy barra build e edite o arquivo C make lists texto. Adicione as bibliotecas dependentes após a linha que diz Definir bibliotecas opcionais. Abra um console de comando e navegue até H 3D 2.1 barra happy barra build e digite na ordem: make ponto pseudo make e pseudo make install para concluir a integração do novo robô com o código aberto H 3D.
Escreva uma segunda classe de encapsulamento para o grafo de cena. API chamada H 3D API. Este exemplo utiliza uma classe de encapsulamento denominada wam device.
Navegue até o diretório de origem, H 3D AP I barra source, e crie o dispositivo WAM, arquivo CPP e wam device.Cpp. Adicione a fonte padrão para todos os dispositivos H 3D PI. Em seguida, coloque Wam device H no diretório do arquivo de cabeçalho.
O dispositivo Wam H deve conter o arquivo de cabeçalho padrão para todos os dispositivos H 3D API. Agora que a classe wrapper foi criada, reconstrua a biblioteca H 3D PI editando o texto C make lists no diretório H three DPI barra invertida build. Finalmente, no diretório H 3D PI barra invertida build.
Reconstrua a biblioteca da API H 3D usando os comandos, CMake dot pseudo make e pseudo make install. As novas classes encapsuladoras agora estão prontas para uso com um robô. Uma vez que as classes encapsuladoras apropriadas sejam instaladas, cria-se uma máquina de estados finita para controlar o protocolo experimental da tarefa de alcance direcionado utilizada com o robô Barrett WHAM. Os estados da máquina de estados são início do ensaio, lançamento, contato com o alvo e fim do ensaio.
O início do estado de tentativa começa com a alocação de um alvo. As posições dos alvos podem ser definidas aleatoriamente para cada tentativa ou podem ser definidas a partir de um arquivo. O estado de início da tentativa termina e o estado de lançamento começa.
Uma vez que a mão do sujeito tenha iniciado o movimento em direção ao alvo acima do limite de velocidade, tipicamente 0,06 metros por segundo, o estado de lançamento termina e começa o estado de contato com o alvo, quando o cursor do paciente toca o alvo. Após o contato, o alvo desaparece e o estado de contato com o alvo termina, iniciando-se então o estado de fim da tentativa.
O estado de fim do ensaio sinaliza ao software de coleta de dados para marcar o arquivo de dados com um delimitador indicando o fim do ensaio. A menos que o ensaio final tenha sido concluído, o término do estado de fim do ensaio ativa o estado de início do ensaio e um novo alvo é alocado. Esta seção demonstra um robô diferente chamado phantom, utilizado na reabilitação de pacientes com AVC.
Substituindo o código da classe de envoltório do fantasma nas bibliotecas apropriadas, o novo robô pode ser integrado ao ambiente virtual, sendo utilizado aqui um sistema gráfico háptico tridimensional denominado máquina de operações robóticas e ópticas em realidade virtual ou ROOM. Este sistema combina uma renderização estéreo projetada com rastreamento de cabeça em um display sobreposto com espelho semiprateado a um sistema robótico capaz de registrar a posição do punho e gerar um vetor de força. Um projetor digital de qualidade cinematográfica exibe imagens que abrangem um display de cinco pés de largura, resultando em um ângulo de visão de 110 graus.
Emissores de infravermelho sincronizam imagens separadas para os olhos esquerdo e direito por meio de óculos obturadores de LCD. O movimento da cabeça é rastreado com os elementos magnéticos do sistema Ascension Flock of Birds, de modo que a exibição visual seja renderizada com a perspectiva correta centrada na cabeça. Uma luva com tendão externo e um suporte para o punho auxilia no alinhamento neutro do punho e da mão.
O centro do cabo do robô é posicionado no antebraço, posterior à articulação rádiocarpiana. Isso permite que as forças atuem no punho, mas permite movimento livre na mão. O peso do braço do paciente é reduzido utilizando uma órtese balanceada pela gravidade, exoesqueleto robótico Wilmington movido a mola.
O terapeuta sentado ao lado do paciente utiliza um dispositivo de rastreamento para mover um cursor pela tela. À frente, o paciente recebe a instrução de usar o manípulo robótico para perseguir o cursor. A ampliação de erros é fornecida tanto visualmente quanto por meio de forças geradas pelo robô.
Quando o cursor do paciente se desvia do cursor do terapeuta, um erro instantâneo, vetor E, é estabelecido como a diferença de posição entre o cursor do terapeuta e a mão do paciente. O erro é ampliado visualmente por um fator de 1,5 E como parte da ampliação do erro. Além disso, uma força de ampliação do erro de 100 E é aplicada ao braço do paciente, programada para saturar em um máximo de quatro newtons.
Por razões de segurança, a ampliação de erros magnifica os erros percebidos pelo paciente, o que melhora o processo de reaprendizagem. O protocolo de tratamento exige que o paciente pratique vários movimentos específicos, incluindo alcance para frente e para o lado com acoplamento ombro-cotovelo e alcance diagonal através do corpo. Para a próxima demonstração, o código da classe superior é trocado e o robô Barrett WHAM é utilizado.
O objetivo desta próxima tarefa é que sujeitos saudáveis ou pacientes pós-AVC capturem um projétil virtual dentro da esfera verde semitransparente. Se as mãos do paciente saírem da esfera, ela fica vermelha e o braço do paciente recebe um feedback de aumento de erro proveniente do robô. Quando o paciente consegue capturar com sucesso o projétil dentro do espaço definido, a esfera permanece verde.
Esta figura mostra o erro mediano de alcance. Cada ponto representa o erro mediano medido em um bloco de dois minutos de movimentos funcionais estereotipados. Embora os pacientes demonstrem progresso ao longo do período de duas semanas, nem sempre houve melhora a cada dia.
Esta figura mostra o benefício resultante da ampliação do erro na redução seletiva da variabilidade de movimento a movimento. Os gráficos superiores mostram os dados do grupo controle e os gráficos inferiores mostram os dados do grupo tratado. Cada cor representa um sujeito diferente.
As duas linhas horizontais exibem a localização dos limites para a tarefa. O objetivo do sujeito era interceptar o projétil virtual dentro desses limites. A posição de um ponto indica onde um determinado sujeito chegou mais perto do contato.
No projétil, os histogramas azuis semitransparentes sobrepostos aos dados brutos exibem a distribuição de movimento do grupo. Ao longo do eixo anterior, os pacientes com acidente vascular cerebral realizaram 600 tentativas da tarefa de captura, sendo as 200 tentativas iniciais sem feedback de aumento de erro, e nas 200 tentativas finais, nenhum feedback de aumento de erro foi fornecido entre as tentativas 201 e 400. O robô forneceu feedback de aumento de erro ao paciente, resultando em uma melhoria significativa na capacidade do paciente de capturar o alvo dentro dos limites especificados.
Após seguir este procedimento, os métodos tradicionais de reabilitação ainda podem ser realizados, mas com o robô podemos quantificar a posição da mão do paciente em todos os momentos ao longo de muitas tentativas repetidas. Essa técnica abriu caminho para novas pesquisas na área da engenharia neural, onde podemos explorar movimentos de alcance simulados dentro de uma região com múltiplas soluções possíveis. Após assistir a este vídeo, você deverá compreender como estender a biblioteca de API H 3D para um robô de reabilitação de escolha e aplicar diversas interfaces hápticas gráficas para a avaliação e tratamento de pacientes com AVC.
Trabalhar com robôs pode ser potencialmente perigoso, portanto, deve-se ter cuidado ao escolher um robô destinado a interações com humanos. Escolhemos o Barrett WHAM para nosso projeto mais recente porque é mais potente e reversível. Reversível significa que pode oferecer quase nenhuma resistência, se programado para isso, e ainda assim é uma das opções mais seguras disponíveis para a interação entre humanos e máquinas.
É um computador separado que monitora o computador principal e pode desativar o sistema se algo sair errado, e a frenagem dinâmica garante que o sistema atue como um amortecedor sempre que estiver inativo. Embora muitos robôs tenham desempenhos diferentes, muitas de suas funções se sobrepõem. Assim, a portabilidade de nossas técnicas entre robôs pode fomentar novas colaborações entre laboratórios.
O que é claro é que tratamentos de treinamento como os demonstrados neste estudo fornecem evidências encorajadoras para a restauração da função em pacientes, além de aprimorar o treinamento em esportes, teleoperação, execução musical, técnicas cirúrgicas e qualquer outra tarefa que exija prática repetitiva.
Este artigo discute a integração de um dispositivo robótico com software de código aberto para aplicações em neuroreabilitação, especificamente voltadas para a terapia pós-AVC. A abordagem permite que uma biblioteca de funcionalidades interativas seja utilizada em um ambiente virtual.
Este trabalho aborda um gargalo fundamental na neurociência translacional e na engenharia de reabilitação: a falta de interoperabilidade de software entre plataformas robóticas. Ao permitir que uma única base de código interfache com diversos dispositivos hápticos, a abordagem reduz a sobrecarga de desenvolvimento e apoia a avaliação pré-clínica reprodutível de intervenções no aprendizado motor. Essa capacidade aumenta a confiança preditiva na validação inicial de alvos terapêuticos para terapias de neuroreabilitação, padronizando leituras comportamentais entre laboratórios.
O método se insere na continuidade entre descoberta e pré-clínica ao transformar sistemas robóticos em ferramentas padronizadas de fenotipagem para modulação de circuitos motores, com aplicabilidade direta na identificação de compostos promissores no desenvolvimento de fármacos para neuroreabilitação.