controle cinemÁtico de robÔs cooperativos · obtido pela composição dos movimentos elementares...
TRANSCRIPT
Departamento de Engenharia Elétrica
CONTROLE CINEMÁTICO DE ROBÔS COOPERATIVOS
Aluno: Marcelo Wizenberg
Orientador: Antonio Candea Leite
Introdução
Na maioria das áreas de atuação da robótica, autonomia e versatilidade são
características fundamentais para que robôs operem em ambientes complexos, pouco
estruturados, e algumas vezes hostis e distantes. Na teleoperação remota de sistemas
robóticos, os robôs manipuladores estão tipicamente localizados em um ambiente de difícil
acesso como, por exemplo, uma plataforma de petróleo offshore, uma estrutura submarina
tipo “árvore-de-natal” ou mesmo o espaço exterior. O operador controla os robôs que estão
localizados no ambiente remoto, em geral denominados robôs “escravos”, utilizando uma ou
mais interfaces hápticas – dispositivos do tipo joystick, com realimentação de força – que
permitem ao operador perceber as forças de interação com o ambiente. Este dispositivo
háptico é comumente denominado robô “mestre” pois determina os movimentos a serem
seguidos pelos robôs “escravos”. As realimentações de força, visão e áudio fornecem ao
operador uma sensação de “telepresença”, possibilitando a execução de comandos de controle
de maneira intuitiva, segura e eficiente. Sistemas robóticos cooperativos, compostos por dois
ou mais robôs manipuladores, possuem diversas vantagens quando comparados a um sistema
robótico convencional composto por um simples robô manipulador. Primeiramente, robôs
cooperativos podem ser configurados em uma formação similar a postura humana, permitindo
que o operador solucione uma grande variedade de tarefas de interação complexas. Então,
adicionando-se garras ou mãos robóticas na extremidade de cada robô é possível melhorar
ainda mais as suas características de versatilidade e destreza para a execução bem-sucedida de
tarefas de preensão e manipulação de objetos. Além disso, dois ou mais robôs cooperando
como uma equipe são capazes de executar diversas tarefas distintas que não poderiam ser
executadas por um único robô. Dentre alguns exemplos destacam-se (i) operações de elevação
e transporte de objetos de grande dimensão; (ii) operações de flexão e torção de objetos onde
um robô “mestre” é utilizado para monitorar ou supervisionar um ou mais robôs “escravos”
durante a operação; (iii) operações que envolvem a manipulação bi-manual cooperativa de
cargas e objetos [1].
Objetivos
Neste projeto de pesquisa avalia-se os potenciais benefícios da utilização de sistemas
robóticos tele-operados para executar tarefas em ambientes remotos e pouco estruturados. Em
particular, estuda-se como as metodologias de controle clássicas de controle cinemático,
desenvolvidas para robôs manipuladores simples, podem ser estendidas para a teleoperação
remota de robôs cooperativos, capazes de executar tarefas de manipulação bi-manual de
objetos. O objetivo desse projeto de pesquisa, a longo prazo, é contribuir para o
desenvolvimento do estado-da-arte em estratégias de controle avançadas para teleoperação
remota de robôs cooperativos, que sejam robustas a atrasos de comunicação e incertezas
paramétricas, para que esta nova solução possa se tornar no futuro uma tecnologia eficiente e
aplicável para diversas áreas de atuação da robótica (e.g., industrial, offshore, espacial,
agrícola e médica).
Departamento de Engenharia Elétrica
Metodologia
Neste trabalho, utilizou-se o conceito e a fundamentação teórica de teleoperação remota
de sistemas robóticos para considerar o problema de manipulação bi-manual de objetos por
robôs cooperativos. Em geral, sistemas robóticos tele-operados utilizam dispositivos hápticos
e metodologias de controle cinemático para interagir com o ambiente e manipular cargas e
objetos. As arquiteturas de teleoperação remota clássicas (e.g., direta, bilateral) serão
estudadas juntamente com os métodos de controle de robôs cooperativos como, por exemplo,
as abordagens (i) mestre-escravo [1] e (ii) formação de múltiplos agentes [2].
Primeiramente, será estudado o controle de sistemas robóticos com restrições
cinemáticas utilizando o paradigma de juntas ativas e passivas. Em seguida, será realizada
simulações numéricas com 2 (dois) robôs manipuladores, de 4-DoF (Degrees of Freedom)
cada, com o objetivo de executarem tarefas de manipulação bi-manual cooperativa de um
objeto. Nessa abordagem, sistemas robóticos cooperativos serão modelados matematicamente
e serão discutidos os conceitos de cinemática direta, cinemática diferencial, singularidades
cinemáticas e controle cinemático [3].
Após o desenvolvimento do projeto de controle e a implementação da simulação com
robôs cooperativos de 4-DoF, será realizado um estudo para estender o algoritmo proposto
para robôs manipuladores com mais graus de liberdade (ou redundantes). Isso implicará em
um melhor desempenho para o sistema de controle de posição e orientação do objeto, uma vez
que um robô com graus de liberdade extra possui maior destreza e pode evitar de maneira
segura e eficiente as configurações singulares. A verificação e validação da solução obtida
serão realizadas através de simulações numéricas em Matlab/Simulink e testes experimentais
com um robô industrial Baxter® (Rethink Robotics, Inc.) do tipo dual-arm com 14-DoF
conectado a um dispositivo háptico Phantom Omni (Sensable) ambos localizados no
Laboratório de Robótica do CENPES/Petrobras.
Modelagem e Projeto de Controle
Neste capítulo, serão apresentados alguns conceitos básicos relacionados à robótica,
tais como a modelagem de um robô manipulador, cinemática, controle cinemático. Além
disso, serão discutidos alguns princípios de cooperação robótica, onde faz-se o uso de mais de
um robô para determinada tarefa.
A. Modelagem de um Braço Robótico
Um manipulador robótico pode ser esquematicamente representado por uma série de
corpos rígidos, os elos, em cadeia e conectados por meio de juntas, prismáticas ou de
revolução. Cada junta proporciona um grau de mobilidade ao robô. No início desta cadeia é
estabelecida a origem, tipicamente a referência inercial escolhida para o sistema e, ao seu
final, é montado o efetuador (ou ferramenta). O movimento resultante de toda a estrutura é
obtido pela composição dos movimentos elementares de cada elo com respeito ao elo anterior.
De forma a possibilitar a manipulação de um objeto no espaço de trabalho pelo efetuador,
torna-se necessária a descrição de sua posição e orientação.
Departamento de Engenharia Elétrica
Figura 1: Representação de um robô através de juntas e elos.
Através dos parâmetros de Denavit-Harternberg (D-H), é possível modelar o braço
robótico. Nesta convenção, 4 (quatro) parâmetros permitem obter o conjunto de equações que
descreve a cinemática de uma junta com relação a junta seguinte e vice-versa:
i. Ângulo de rotação da junta, φ;
ii. Ângulo de torção da junta, α;
iii. Comprimento do elo, a;
iv. Deslocamento da junta, d;
Para um robô manipulador com N juntas numerados de 1 a N, há N+1 elos conectando 2
(duas) juntas, numerados de 0 a N. O elo 0 é a base do manipulador e o elo N tem o nome de
efetuador. A junta j conecta o elo j-1 ao elo j, e assim a junta j é responsável por mover o elo
j. Um elo pode ser especificado por 2 parâmetros: seu comprimento e seu ângulo de torção.
As juntas também podem ser caracterizadas por 2 parâmetros: seu deslocamento e seu ângulo
de rotação. A figura a seguir ilustra esta notação:
Figura 2: Representação dos parâmetros Denavit-Hartenberg [4]
Departamento de Engenharia Elétrica
A transformação do quadro de coordenados de um elo {j-1} para o quadro do elo
seguinte {j} pode ser calculado através de elementos rotacionais e translacionais da seguinte
maneira:
, no qual pode ser expandido para:
Como esperado, o cálculo da função da cinemática direta é recursiva e é obtida de
uma maneira sistemática pelo simples produto da contribuição de cada grau de mobilidade.
Este procedimento pode ser aplicado em qualquer cadeia cinemática aberta, e pode ser
facilmente reescrito em uma operação formal.
O espaço de trabalho de um robô manipulador é definido como o conjunto de todas as
configurações na qual pode ser alcançado por alguma escolha dos ângulos de junta. O espaço
de trabalho é utilizado para planejar uma tarefa para o manipulador executar.
Para controlar um robô, geralmente se faz uso de modelos matemáticos e alguma
forma de inteligência para atuar no modelo. O modelo matemático de um robô pode ser
obtido através de leis da física que governam o movimento. Com relação a inteligência, isto
requer o uso de capacidade sensorial para atuar e reagir a variáveis que foram medidas. Essas
ações e reações do robô são o que resultam no design do controlador.
B. Cinemática
Cinemática (do grego κινημα, movimento) é o ramo da física que se ocupa da
descrição dos movimentos dos corpos, sem se preocupar com a análise de suas causas
(dinâmica) [1]. O movimento é um conceito relativo, já que um objeto pode estar em repouso
em relação a um primeiro referencial, mas em movimento em relação a um segundo
referencial. Um robô pode ser considerado como um corpo rígido, isto é, todas as partes do
robô mantêm sempre as mesmas distâncias relativas às outras partes independentemente da
nova posição e orientação do robô. A posição de um corpo rígido em qualquer instante de
tempo pode ser determinada indicando a posição de um ponto do corpo, a orientação de um
eixo fixo em relação ao corpo e um ângulo de rotação em volta a esse eixo.
A maioria dos manipuladores modernos consiste de um conjunto de elos rígidos
conectados juntamente a uma série de juntas. Motores são acoplados às juntas para que o
movimento do mecanismo seja controlado a fim de realizar determinada tarefa. Uma
ferramenta, geralmente uma garra, é acoplada ao fim do robô para interagir com o ambiente.
Geralmente, deseja-se controlar a pose do efetuador de um robô e sua trajetória para
determinado instante de tempo. A pose do efetuador pode ser entendida pela descrição de sua
posição e orientação com relação a determinado referencial. Uma importante característica de
trajetória a ser seguida tem a ver com suavidade, isto é, a posição e orientação devem variar
suavemente com o decorrer do tempo. Isto quer dizer as primeiras derivadas temporais são
contínuas.
Departamento de Engenharia Elétrica
Cinemática Direta
O problema da cinemática direta está em calcular a posição e orientação da
extremidade final da cadeia cinemática (efetuador) com respeito a um sistema de coordenadas
de referência, tipicamente posicionado na base da estrutura mecânica, a partir do
conhecimento das variáveis de juntas (ângulos ou deslocamentos).
No nosso caso, restringiremos o estudo da cinemática direta para manipuladores de
cadeia aberta (serial), onde cada par de elos é conectado por uma junta de revolução. As
cadeias cinemáticas abertas correspondem a estruturas em que há apenas uma sequência de
elos conectando suas extremidades, enquanto cadeias fechadas correspondem a estruturas em
que uma sequência de elos forma um laço.
A solução da cinemática direta é única e pode ser obtida tanto na forma analítica
quanto na forma numérica através de um processo sistemático. A pose do efetuador de um
manipulador tem 6 (seis) graus de liberdade, onde 3 (três) para translação e 3 (três) para
rotação.
Com base nestas definições, a cinemática direta pode ser expressa através da seguinte
equação:
, onde a pose do efetuador é uma função das variáveis de junta. A pose pode ser calculada,
assim, através do produto da matriz de transformação de cada elo para um manipulador com
N-DoF:
Cinemática Inversa
O problema da cinemática inversa consiste em determinar as variáveis de juntas que
resultam em uma determinada posição e orientação do efetuador. A cinemática inversa é um
problema muito mais difícil de ser resolvido do que a cinemática direta. Isso se deve pelo fato
da cinemática inversa ser altamente não linear. Descobrir o inverso da velocidade e aceleração
são problemas lineares, e mais simples de serem resolvidos assim que o problema de
descobrir a posição inversa já foi solucionado. O maior problema da cinemática inversa são
as múltiplas soluções para determinada posição e orientação do efetuador, pois o sistema deve
ser capaz de escolher somente uma. O critério para que se possa tomar uma decisão pode
variar, mas a mais comumente utilizada é a solução mais próxima.
A cinemática inversa pode ser expressa através da seguinte equação:
Em geral essa função não apresenta soluções únicas e para determinada classe de
robôs manipuladores, não existem soluções de forma fechada, necessitando-se assim realizar
uma análise numérica.
Muitos pesquisadores preferem métodos numéricos para resolver o problema da
cinemática indireta por evitar a dificuldade de encontrar soluções analíticas. Normalmente, a
abordagem analítica é apropriada para aplicações em tempo real, porque todas soluções
podem ser encontradas e é computacionalmente mais rápida quando comparada com
abordagens numéricas.
Cada manipulador deve ser estudado previamente para que se possa entender seu
espaço de trabalho. Para um manipulador om menos de seis graus de liberdade, pode não ser
possível obter determinada posição e orientação no espaço tridimensional.
Departamento de Engenharia Elétrica
Cinemática Diferencial
Nas seções anteriores, as equações de cinemática direta e inversa estabeleceram as
relações entre as coordenadas de juntas e a posição e orientação do efetuador. A cinemática
diferencial estabelece a relação entre a variação temporal da postura do efetuador em função
da variação temporal das variáveis das juntas. Isto é, deseja-se descrever a relação entre as
velocidades linear e angular do efetuador e as velocidades das juntas. Este mapeamento é
realizado através da matriz Jacobiana, a qual é dependente da configuração do manipulador. O
Jacobiano do manipulador é uma das relações mais importantes para a análise e controle do
movimento de um robô manipulador, pois permite:
i. Planejamento e execução de trajetórias suaves;
ii. Determinação de singularidades;
iii. Cálculo das equações dinâmicas de movimento;
iv. Transformação de forças e torques do efetuador para as juntas.
Configuração Singular
Para qualquer robô, redundante ou não, é possível descobrir algumas configurações,
chamadas de configuração singular, no qual o número de graus de liberdade do efetuador é
inferior à dimensão na qual ele está operando. Configurações singulares podem ocorrer
quando:
i. Dois eixos de juntas prismáticas se tornam paralelos;
ii. Dois eixos de juntas de revolução se tornam idênticos.
Em configurações singulares, o efetuador perde um ou mais grau de liberdade, já que
equações cinemáticas se tornam linearmente independentes. Posições singulares devem ser
evitadas, pois as velocidades requeridas para mover o efetuador se tornam, teoricamente,
infinitas. É importante ressaltar também que a inversão da matriz Jacobiana pode representar
um grande inconveniente não apenas em uma configuração singular, mas também na
vizinhança de uma singularidade, onde a matriz se torna mal condicionada, resultando em
grandes valores de velocidades de juntas.
Configurações singulares podem ser determinadas através da matriz Jacobiana. A matriz
Jacobiana, J, relaciona o deslocamento infinitesimal do efetuador com as variáveis
infinitesimais das juntas. A dimensão da matriz J é m x n, onde m é o número de graus de
liberdade do efetuador, e n é o número de juntas. A matriz Jacobiana J também determina a
relação entre a velocidade do efetuador e a velocidade das juntas.
Configurações onde o Jacobiano não tem posto completo, correspondem às
singularidades do robô, que podem ser classificadas em dois tipos:
i. Singularidade do espaço de fronteira: Aqueles que ocorrem quando o
manipulador está esticado, ou dobrado sobre si mesmo;
ii. Singularidade do espaço interior (ou internas): Aqueles que ocorrem quando
dois ou mais eixos de alinham
Se o manipulador tem menos de seis graus de liberdade, a configuração singular
corresponde a configuração na qual o número de graus de liberdade decai. Isso é caracterizado
pelo manipulador Jacobiano caindo de posto, isto é, duas ou mais colunas da matriz Jacobiana
J se tornam linearmente dependentes.
Departamento de Engenharia Elétrica
A manipulabilidade de um robô pode ser descrita como sua habilidade de mover-se
livremente em todas direções dentro do espaço de trabalho. A manipulabilidade pode ser
classificada em:
i. A habilidade de alcançar certas posições ou conjunto de posições;
ii. A habilidade de mudar de posição ou orientação para determinada
configuração.
Um método eficiente de se obter o Jacobiano para matrizes não quadradas, é calcular o
Jacobiano pseudo-inverso. O cálculo desta matriz depende do seu número de linhas e colunas,
e pode ser determinado da seguinte maneira para o caso em que o Jacobiano apresenta posto
completo:
i. Para o caso underconstrained (se tem mais colunas do que linhas, isto é, m <
n):
ii. Para o caso overconstrained (se há mais linhas do que colunas, isto é, n < m):
iii. Para números iguais de linhas e colunas (m = n):
C. Controle Cinemático
O sistema de controle de qualquer robô é realizado por meio de um sistema de
software e hardware. Esse sistema processa os sinais de entrada e converte estes sinais em
uma ação ao qual foi programado. Neste trabalho serão apresentados o controle ponto-a-
ponto, onde o robô é capaz de se deslocar de um ponto para qualquer outro ponto de seu
volume de trabalho, sendo a trajetória e velocidade não controladas ao longo desse
movimento; trajetória continua, onde a trajetória é total ou parcialmente contínua; trajetória
controlada, onde geometrias diferentes são usadas para gerar trajetórias, como por exemplo
linhas, círculos, curvas.
Consideraremos que a dinâmica do manipulador pode ser desprezada. Esta hipótese é
aceitável para manipuladores que apresentam:
i. Elevados fatores de redução nas engrenagens (gear ratio);
ii. Quando baixas velocidades as utilizadas durante a realização de tarefas;
iii. Existe uma malha de controle de velocidades de alto desempenho para cada
junta.
O principal objetivo do controle no espaço da junta é projeta um controlador com
realimentação, de tal forma que as coordenadas na junta sigam o movimento desejado tão
próximo possível.
Departamento de Engenharia Elétrica
Simulação numérica e experimentos
Este capítulo tem como foco o desenvolvimento do modelo matemático do robô semi-
humanóide Baxter®, baseado em uma completa modelagem cinemática representado por
equações que expressam restrições ou que limitam a possibilidade de movimento dos corpos
que constituem o sistema.
A modelagem cinemática de um robô manipulador é o estudo da posição e da
velocidade do seu efetuador e dos seus elos. Quando se menciona posição, está se referindo
tanto à posição propriamente dita, como à orientação, e quando se fala em velocidade,
considera-se tanto a velocidade linear como angular.
O software Matlab foi escolhido para realizar a simulação devido ao seu poder computacional
com relação a matrizes e devido a toolboxes existentes na área de robótica. Robotics toolbox,
criado por Peter Corke, será utilizado por conter funções pré-escritas e descrições da estrutura
do robô pré-determinadas [4]. Assim, Matlab R2017a será utilizado nessa simulação,
juntamente com a toolbox Robotics versão 9.10.
A. Estrutura dos braços do robô
Baxter®, da Rethink Robotics™[5], foi o robô escolhido para a realização deste
trabalho pelos seguintes motivos:
i. Baxter® é seguro, contento sensores construídos internamente, para aplicações
acadêmicas e industriais;
ii. Câmeras no robô podem ser usadas para controlar seus movimentos;
iii. A tela de LCD pode ser usada para mostrar imagens (e.g.: objeto detectado;
interação com o usuário);
iv. É um robô que vem sendo bastante estudado recentemente, com diversas
pesquisas e experimentos;
v. Possível integração com o robô localizado no laboratório da Petrobras na
UFRJ.
O Baxter® é um robô semi-humanóide com dois braços, cada um contendo 7 juntas
rotacionais com 7-DoF e com uma alcançabilidade máxima de 1210 mm. Isto significa que os
braços do Baxter® podem chegar a qualquer posição e/ou orientação dentro de seu espaço de
trabalho. O robô conta ainda com um torso fixo em um pedestal móvel e uma cabeça
contendo um painel interativo de LCD.
Departamento de Engenharia Elétrica
Figura 3: Diagrama do robô Baxter®. As Juntas 1, 2, 3 representam o ombro; 4, 5
representam o cotovelo; e 6, 7 o punho. [6]
Seus braços podem ser considerados como robôs redundantes, onde cada braço conta
com 7 juntas rotacionais e 8 elos. Cada braço pode cooperar juntamente para realizar tarefas
específicas, como a manipulação de um objeto, ou separadamente, aumentando assim, sua
versatilidade. Os parâmetros D-H de cada braço podem ser modelados da seguinte maneira,
segundo [5]:
B. Ambiente de simulação
Utilizando-se o software Matlab com a toolbox de robótica, pode-se validar o controle
cinemática do robô em questão. O cálculo do espaço de trabalho dos braços do Baxter® é
importante para decidir quando um objeto pode ser manipulado. Este objeto deve estar dentro
do espaço alcançável pelos braços do robô. O espaço de trabalho é determinado de acordo
com os comprimentos dos elos, tipos de juntas e ângulos limites de cada junta. De acordo com
a fabricante, Rethink Robotics, temos as seguintes figuras representando o espaço de trabalho
do robô:
Departamento de Engenharia Elétrica
Figura 4: Espaço de trabalho dos braços do Baxter®, visão superior.
Figura 5: Espaço de trabalho dos braços do Baxter®, visão lateral.
Departamento de Engenharia Elétrica
C. Experimento
Através dos conceitos teóricos, brevemente detalhados neste relatório, uma simulação
de trajetória a ser seguida no espaço tridimensional foi realizada. O objetivo desta simulação é
simular os braços robóticos do Baxter®, e comparar sua posição com a posição desejada.
Outros parâmetros de extrema importância também serão analisados, como por exemplo,
ângulos de cada junta rotacional, velocidade das juntas, manipulabilidade, erro de posição.
A seguir, encontram-se os gráficos resultados da simulação de um braço robótico,
utilizando-se uma circunferência de raio 0,1m no plano XZ; um controlador proporcional com
ganho igual a 20; velocidade angular de π/20 rad/s; tempo de simulação de 20 segundos; e
utilizando-se a pseudo-inversa do Jacobiano como sinal de entrada.
Figura 6: Repesentação do robô Baxter® utilizando-se toolbox Robotics por Peter
Corke. Braços esquerdo e direito com ângulos de junta iguais a zero.
Figura 7: Trajetória real em azul; trajetória desejada em preto.
Departamento de Engenharia Elétrica
Figura 8: Manipulabilidade do robô.
Figura 9: Velocidade de cada junta.
Figura 10: Ângulo de cada junta.
Departamento de Engenharia Elétrica
Figura 11: Erro de posição em cada coordenada no espaço tridimensional.
Conclusões
Os resultados de simulações numéricas, realizadas em Matlab/Simulink com um robô
industrial Baxter®, comprovam o desempenho e a viabilidade da metodologia de controle
proposta. O controle cinemático de posição para o efetuador do robô apresentou resultados
satisfatórios para tarefas de rastreamento de trajetória. As estratégias de controle cinemático
foram implementadas de acordo com um algoritmo de cinemática inversa baseado no
Jacobiano inverso. Para avaliar o efeito das singularidades cinemáticas no desempenho do
sistema de controle utilizou-se o método DLS inverso. Os resultados obtidos (teóricos e
simulados) estão de acordo com as hipóteses adotadas pela abordagem de controle cinemático
para robôs manipuladores.
Sugestões para Trabalhos futuros
Os próximos tópicos a serem abordados por este projeto de iniciação científica se dão
pelo acréscimo do controle de orientação ao controle de posição. Além disso, servo-visão e
controle de força podem ser incrementados ao controlador para que haja um controle mais
robusto dos braços robóticos. Com a realização do controle de força, será possível integrar as
simulações realizadas com o sistema háptico.
Cooperação entre os 2 (dois) braços robóticos do Baxter® também devem ser
explorados profundamente. Sendo necessário fazer uma simulação de cooperação entre os
dois braços para a realização de uma tarefa, como por exemplo, a manipulação de um objeto.
Referências
1 – Niemeyer, G., Preusche, C., and Hirzinger, G., “Telerobotics”, Springer Handbook of
Robotics, Ed. Siciliano, B. and Khatib, O., pp. 747-757, 2008.
2 – Bai, H. and Wen J. T., “Cooperative Load Transport: A Formation-Control
Perspective”, IEEE Transactions on Robotics, Vol. 26, No. 4, pp. 742-750, August, 2010.
3 – Freitas, G. M., Leite, A. C., and Lizarralde, F., “Kinematic Control of Constrained
Robotic Systems”, SBA – Control & Automation Magazine, Vol. 22, No. 6, pp. 559-572,
Nov./Dec., 2011.
4 – P.I. Corke, “Robotics, Vision & Control”, Springer 2017, ISBN 978-3-319-54413-7.
Departamento de Engenharia Elétrica
5 – Zhangfeng J., Chenguang Y., and Hongbin M., “Kinematic modeling and experimental
verification of Baxter robot”. In Proceedings of the 33rd Chinese Control Conference
Nanjing, China, 28-30 Jul, 2014, pages 8518–8523. IEEE, 2014.
6 – Smith, A. M. C. “Biomimetic Manipulator Control Design for Bimanual Tasks in the
Natural Environment.”. England, 2016. Thesis (Philosophy specialization) – School of
Computing, Electronics and Mathematics, Plymouth University.