Semana 10 - Grasping com dois dedos
Durante a semana passada, foi concluída a construção do polegar da LEAP Hand. Assim, o foco desta semana centrou-se na programação da mão para realizar grasping com dois dedos, permitindo, pela primeira vez, segurar objetos sem qualquer auxílio externo.
Teste de grasping com um dedo
No post da semana 8, abordou-se o desenvolvimento do nó grasping_node
, responsável por detetar a interseção de objetos e ajustar a corrente para evitar que sejam esmagados. No entanto, não foram apresentados testes experimentais que comprovassem esse comportamento. Para colmatar essa lacuna, as figuras abaixo mostram os gráficos de posição, velocidade e corrente para duas condições distintas: primeiro sem obstáculo e depois com obstáculo. Definiu-se uma corrente máxima de 200 mA quando não há obstáculo, permitindo que o dedo se mova livremente com a velocidade desejada, e uma corrente máxima de 100 mA para quando o dedo deteta um obstáculo, garantindo uma interação mais segura e controlada.
Gráficos de posição, velocidade e corrente obtidos
Posições
Velocidades
Correntes
Conclusões
A análise dos gráficos apresentados revela a ocorrência de picos de corrente superiores a 100 mA enquanto o dedo se movimenta livremente, sem encontrar obstáculos. No entanto, a certo momento, observa-se que a corrente se estabiliza nos 100 mA, indicando que o dedo detetou a interseção com um objeto e ajustou automaticamente a corrente limite para evitar exercer força excessiva sobre ele. Após a libertação do objeto, registam-se novamente picos de corrente superiores a 100 mA, permitindo que o dedo retome o seu movimento sem restrições.
Teste de grasping com dois dedos
Após as alterações implementadas no código, foram realizados testes de grasping de objetos utilizando dois dedos. No vídeo seguinte, demonstra-se que a manipulação com dois dedos permite segurar um objeto de forma estável, sem que este caia. No entanto, ainda não é possível apresentar os gráficos de posição, velocidade e corrente, uma vez que o código de análise desses dados ainda não foi adaptado para múltiplos dedos.
Código desenvolvido durante a semana
Durante esta semana, foram desenvolvidas e implementadas várias melhorias no código, nomeadamente:
- Desenvolvimento do nó
thumb_manager
, responsável por receber as informações de posição, velocidade e corrente dos motores associados ao polegar, além de enviar os comandos de corrente limite para omanager_node
, permitindo o controlo do torque exercido durante o grasping de objetos; - Modificação do nó
manager_node
para detetar automaticamente quais os dedos ativos; - Atualização dos nós
middle_manager
ethumb_manager
para publicarem no tópicoset_currents
, de forma a transmitirem as correntes desejadas. - Alteração do nó
manager_node
para subscrever o tópicoset_currents
e enviar as correntes definidas para os motores do dedo correspondente. - Alteração do nó
set_positions
, para permitir o controlo do polegar e a realização de comandos globais para a mão, como hand close e hand open.
Esquema do código desenvolvido
