CONTROLE DE SISTEMAS ROBÓTICOS COOPERATIVOS...espaço de trabalho, minimiza o consumo de energia, entre outras vantagens. Para a implementação de sistemas robóticos cooperativos,
Post on 21-Oct-2020
0 Views
Preview:
Transcript
Departamento de Engenharia Elétrica
CONTROLE DE SISTEMAS ROBÓTICOS COOPERATIVOS
Aluno: Gustavo Bertagna Peixoto Barbosa
Orientador: Antonio Candea Leite
Introdução
Na área de robótica existem tarefas que são impossíveis de serem executadas por
um sistema robótico simples. Alguns exemplos são: manipulação de cargas muito pesadas
e manipulação de objetos flexíveis. Com isso, quando é implementado um sistema
robótico cooperativo [1], essas tarefas se tornam fáceis de serem executadas. Esses
sistemas consistem em dois robôs manipuladores que atuam de forma conjunta e síncrona
para a realização de uma determinada tarefa. Esse sistema robótico, é constituído por uma
cadeia cinemática fechada, onde todas as juntas são ativas (é possível atuar em todas elas)
e é considerado que há contato continuo do efetuador com o objeto manipulado. Em geral,
esses sistemas são redundantes, ou seja, possuem mais graus de liberdade do que é
necessário para a realização de uma determinada tarefa. Esse acréscimo de graus de
liberdade, acrescenta maior destreza, evita situações de singularidade, evita obstáculos do
espaço de trabalho, minimiza o consumo de energia, entre outras vantagens.
Para a implementação de sistemas robóticos cooperativos, foram estudadas algumas
metodologias de modelagem e controle clássicas desenvolvidas para robôs manipuladores
simples e avaliou-se como elas podem ser aplicadas para robôs cooperativos, capazes de
executar tarefas de manipulação bi-manual de objetos [1]. Para isso, utilizaram-se os
conceitos de cinemática direta e cinemática diferencial, para obter respectivamente a pose
e a velocidade do objeto manipulado em relação à base do robô, bem como as matrizes
Jacobianas de cada manipulador para realizar o controle do sistema robótico completo
[2]. A estratégia de controle cooperativo que foi investigada é baseada em um algoritmo
de controle cinemático com restrições de velocidade e na separação do espaço das juntas
em juntas ativas (ou atuadas) e passivas (não atuadas) [3]. Além disso, utilizou-se o
ambiente de programação Matlab/Simulink para realizar simulações numéricas do algoritmo de controle cinemático de posição e orientação de 2 (dois) robôs manipuladores
de 3-DoF (degrees of freedom) movendo um objeto. A verificação e validação da solução
proposta para um robô manipulador simples foi realizada em um robô PhantomX Pincher
de 4-DoF, para tarefas de rastreamento de trajetórias, utilizando o Matlab e o ROS (Robot
Operating System) como ambiente de programação.
Metodologia
Para realizar a manipulação de um objeto utilizando um sistema robótico
cooperativo, utilizou-se alguns conceitos de robótica, como cinemática direta, cinemática
diferencial e controle cinemático. O primeiro conceito, o de cinemática direta, serve para
encontrar a posição do efetuador (ferramenta) em relação a um referencial que será
chamado de base, em função dos ângulos de cada junta. Para isso, usa-se a convenção de
Denavit- Hartenberg, que cria uma transformação homogênea entre as coordenadas do
efetuador do robô e a sua base [2]. Será feito o cálculo de cinemática direta de um sistema
robótico nas sessões posteriores com dois manipuladores 3-DoF (degrees of freendom).
Depois do cálculo da cinemática direta, será utilizado o segundo conceito dito
acima, que é o da cinemática diferencial. Esse conceito, serve para achar a
correspondência das velocidades dos efetuador em relação as velocidades das juntas.
Essa correspondência é feita por meio de uma matriz chamada de Jacobiana. Essa matriz,
é possível ser calculada de duas formas, como será visto nas outras sessões. Essas
maneiras, são chamadas de geométrica e analítica. O jacobiano também serve para
Departamento de Engenharia Elétrica
calcular a manipulabilidade do robô. Esse conceito, serve para dizer se um robô está em
uma região de singularidade ou não. Caso ele esteja, o robô se torna não controlável.
Por último, tem-se o conceito de controle cinemático. Dessa maneira, é projetado
um sinal de controle de posição e orientação em função das velocidades das juntas de
ambos os robôs . Nessa abordagem, será assumido que os robôs possuem alta taxa de
redução nas engrenagens das juntas, e que as tarefas podem ser executadas com
velocdades baixas e acelerações lentas. Com isso, é possível desprezar os efeitos
dinâmicos do robô durante a execução da tarefa. Dessa maneira, também é assumido que
existe uma malha interna de controle de velocidade que possui alto ganho. Desse jeito, é
possível projetar um sinal de controle que seja aproximadamente igual as velocidades das
juntas.
Após calcular todas as equações necessárias, será feito uma simulação do controle
cinemático [3]. Para realizar essa simulação, foram utilizados os ambientes de
programação Matlab/Simulink. Esse algoritmo simula o controle cinemático de dois
robôs manipuladores planares 3-DoF (degrees of freedom) movendo um objeto. O
programa é divido em diversas funções, que são a inicialização dos parâmetros dos
manipuladores, o cálculo da cinemática direta, o cálculo de cinemática diferencial e o
controle cinemático, que é feito por meio do Simulink. Após rodar o algoritmo de
controle, são mostrados gráficos que dizem se os robôs estão conseguindo manipular o
objeto de forma cooperativa seguindo uma trajetória especificada. Dessa maneira, serão
explicadas cada parte mencionada acima, detalhadamente, para um maior entendimento
delas.
Após a simulação, foi verificado a validação da solução proposta para um robô
manipulador simples, que é o PhantomX Pincher de 4-DoF. Utilizou-se esse robô para
fazer o rastreamento de uma trajetória. Dessa maneira, como ambiente de programação,
utilizou-se novamente o Matlab/Simulink, aliado com ROS (Robot Operating System).
Com isso, os conceitos de robótica listados acima: cinemática direta, cinemática
diferencial e de controle cinemático foram ampliados para manipuladores de 4-DoF. Após
a realização do controle, foram feitas análises de gráficos gerados pelo Matlab. Dessa
maneira, foi possível verificar o desempenho e a eficácia da estratégia de controle.
Hardware
Como dito acima, foi utilizado um robô PhantomX Pincher. Esse robô possui 5-
DoF, contudo, um grau de liberdade está na ferramenta, então para uma abordagem
cinemática ele possui 4-DoF. É possível verificar uma imagem desse robô a seguir:
Figura 1 – PhantomX Pincher AX-12 com eixos na base e no efetuador
Departamento de Engenharia Elétrica
As características mecânicas do PhantomX Pincher podem ser vistas na tabela a
seguir:
Peso 550 g
Alcance Vertical 350 mm
Alcance Horizontal 310 mm
Capacidade de carga para 150 mm 100 g
Capacidade de carga para 200 mm 70 g
Capacidade de carga para 250 mm 40 g
Os atuadores contidos no robô são servomotores do modelo AX-12A da
Dynamixel. Eles são mecanismo poderosos e rápidos que possuem 300 graus de
movimento. Esses motores possuem um microcontrolador embutido que faz o controle
de posição angular. Eles também possuem somente 3 fios para conexão, que faz com que
reduza bastante a fiação do robô. As principais características desses motores são:
Tensão de operação 12 V
Torque de travamento 15,3 Kg.cm
Velocidade sem carga 59 RPM
Peso 55 g
Dimensões 32 x 50 x 40 mm
Resolução 0,29º
Taxa de redução 1/254
Ângulo de operação 300º Corrente Máxima 900 mA
Corrente de Standby 50 mA
Temperatura de Operação Interna -5ºC a 70º C
Protocolo de Operação TTL Half Duplex Async Serial
Velocidade de comunicação 7343bps ~ 1Mbps
No kit que contém o PhantomX Pincher, também se tem um microcontrolador
ArbotiX, que é similar a um microcontrolador Arduino ATMEGA644P de 16 MHz. Ele
pode ser programado em uma linguagem “wiring” e em um ambiente de programação
que roda no Windows, Linux e no MacOS. Para se comunicar ao controlador utiliza-se
uma interface USB que aparece como uma porta serial para o computador conectado. O
ArbotiX possui 64k de memória ROM e uma memória RAM de 4k. Essas placas são
alimentadas por uma tensão de 12 VDC.
ROS (Robot Operating System)
O ROS é um sistema operativo para robôs como é descrito pelo seu nome. Ele
possui um framework muito flexível e possui diversas ferramentas, bibliotecas e
convenções que facilitam as tarefas na programação de um robô. Esse sistema é baseado
em Linux Ubuntu, onde pode ser programado em C, C++ e em Python. Ele é importante
para robôs que possuem diversos módulos como câmeras, sensores, atuadores que
precisam se comunicar entre si. Dessa maneira, por meio do ROS, é possível ter uma
arquitetura de processamento de dados em paralelo para controlar o robô. Um exemplo
dessa aplicação, é caso o computador embarcado ao robô precise fazer cálculos pesados
de processamento de imagem mas não tem configuração suficiente para isso. Dessa
Departamento de Engenharia Elétrica
maneira, é possível criar um nó no ROS em um computador mais poderoso que se
comunicará através do protocolo TCP/IP com o robô.
Em uma rede com máquinas que estão rodando o ROS, sempre existirá uma
máquina chamada de mestre. Essa máquina deverá sempre estar rodando o comando
ROSCORE que irá inicializar todos os serviços necessários para que os nós do ROS
comuniquem entre si. Um nó no ROS é basicamente um executável, portanto é possível
ter um nó executando em qualquer máquina da rede. A comunicação entre nós, é feito
através do protocolo TCP/IP. Cada nó, pode publicar e subscrever em tópicos. Em outras
palavras, um nó pode tanto escrever valores nessa variável ou ler os valores dessa
variável. Dessa forma, é que diversos nós podem se comunicar um com o outro.
Os tópicos podem ser publicados ou subscritos pelos nós. A ação de publicar, é
similar a ação de escrita em uma variável e a ação de subscrever é similar a ação de leitura
de uma variável. Além dos conceitos de tópicos e de nós, também há o conceito de
mensagem no ROS. As mensagens são os próprios dados lidos e escritos pelos nós nos
tópicos. Ao publicar ou subscrever em um tópico, é preciso especificar qual tipo de
mensagem será utilizado, ou seja, é preciso especificar qual é o tipo de dados que serão
escritos ou lidos.
Cinemática Direta
O objetivo da cinemática direta, é calcular a posição e a orientação do centro de
massa do objeto em função das variáveis das juntas. Já que inicialmente, é feito uma
simulação com manipuladores planares 3-DoF, é possível utilizar conceitos básicos de
geometria e álgebra para o cálculo da cinemática direta. Contudo, já que para
manipuladores mais complexos, como o PhantomX Pincher, é muito difícil utilizar esses
conceitos, também será usado a convenção de Denavit- Hartenberg para fazer o cálculo
da cinemática direta. Antes de fazer o cálculo da cinemática direta, serão estabelecidas
algumas equações de restrição, que são [1]:
𝑝𝑐 = 𝑝01 + 𝑝1𝑐⏟ 𝑅𝑜𝑏ô 1
= 𝑝02 + 𝑝2𝑐⏟ 𝑅𝑜𝑏ô 2
(1)
𝜑𝑐 = 𝜑01 +𝜑1𝑐⏟ 𝑅𝑜𝑏ô 1
= 𝜑02 +𝜑2𝑐⏟ 𝑅𝑜𝑏ô 2
(2)
Sendo:
𝑝0𝑖 є 𝑅3: Vetor posição do efetuador no sistema de coordenadas do efetuador do i-
ésimo manipulador 𝐸�̅� em relação ao sistema de coordenadas da base 𝐸0̅̅ ̅.
𝑝𝑖𝑐 є 𝑅3: Vetor posição do objeto manipulado nas coordenadas 𝐸𝑐̅̅ ̅ em relação as
coordenadas do efetuador do i-ésimo manipulador 𝐸�̅�.
𝜑0𝑖 є 𝑅3: Orientação do efetuador no sistema de coordenadas do efetuador do i-
ésimo manipulador 𝐸�̅� em relação ao sistema de coordenadas da base 𝐸0̅̅ ̅.
𝜑𝑖𝑐 є 𝑅3: Orientação do objeto manipulado nas coordenadas 𝐸𝑐̅̅ ̅ em relação as
coordenadas do efetuador do i-ésimo manipulador 𝐸�̅�.
É possível ver uma ilustração de um sistema robótico cooperativo com dois
manipuladores planares com 3-DoF a seguir:
Departamento de Engenharia Elétrica
Figura 2 – Sistema robótico cooperativo com robôs planares com 3DoF
Dessa maneira, tem-se que:
𝑥𝑗𝑖: Coordenada x do sistema de coordenadas do eixo da i-ésima junta do j-ésimo
manipulador robótico.
𝑦𝑗𝑖:Coordenada y do sistema de coordenadas do eixo da i-ésima junta do j-ésimo
manipulador robótico.
𝜃𝑗𝑖:Ângulo da i-ésima junta do j-ésimo manipulador robótico.
𝑙𝑗𝑖:Comprimento do i-ésimo elo do j-ésimo manipulador robótico.
𝐸0:Sistema de coordenadas da base.
𝐸𝑐 :Sistema de coordenadas do objeto manipulado.
𝑣𝑖+: Velocidade do i-ésimo efetuador em relação as velocidades das juntas.
𝑣𝑖−: Velocidade dos pontos de contato do objeto com o i-ésimo efetuador.
Agora, será calculada a posição do centro de massa do objeto manipulado que está
no sistema de coordenadas 𝐸𝑐 em relação ao sistemas de coordenadas da base 𝐸0. Primeiramente, serão utilizados conceitos de geometria e álgebra para a realização deste
cálculo. Primeiramente, será feita a cinemática direta para o manipulador robótico 1 e
esse conceito poderá ser estendido para o manipulador robótico 2, de acordo com as
equações (1) e (2). Dessa maneira, começa-se definindo um vetor posição entre a base e
a primeira junta:
𝑝𝑏⃗⃗⃗⃗ = −𝑙0𝑥0⃗⃗⃗⃗ (3)
Sendo l0 a distância entre a base e o manipulador robótico. Depois calcula-se o
vetor posição da segunda junta em relação a base. Com isso, tem-se que:
Departamento de Engenharia Elétrica
𝑝01⃗⃗⃗⃗ ⃗⃗ = 𝑝𝑏⃗⃗⃗⃗ + 𝑙11𝑅01𝑥 ⃗⃗⃗ (4) Onde:
𝑅𝑖−1𝑖 : É a matriz de rotação no eixo z da junta i em relação a junta i-1. Lembrando que a matriz do rotação no eixo z é dada pela matriz:
[𝑐𝑜𝑠𝜃 −𝑠𝑒𝑛𝜃 0𝑠𝑒𝑛𝜃 𝑐𝑜𝑠𝜃 00 0 1
] (5)
Depois, calcula-se o vetor posição da terceira junta em relação ao eixo de
coordenadas da base. Dessa maneira, tem-se que:
𝑝02⃗⃗⃗⃗ ⃗⃗ = 𝑝01⃗⃗⃗⃗ ⃗⃗ + 𝑙12𝑅02𝑥 = 𝑝01⃗⃗⃗⃗ ⃗⃗ + 𝑙12𝑅12𝑅01𝑥 (6) Lembrando que:
𝑅𝑖𝑗 = 𝑅𝑖𝑖+1 ∗ 𝑅𝑖+1𝑗 (7)
Após calcular o vetor posição acima, é possível calcular o vetor da posição do
efetuador em relação elação ao eixo de coordenadas da base. Com isso, tem-se que:
𝑝03⃗⃗⃗⃗ ⃗⃗ = 𝑝02⃗⃗⃗⃗ ⃗⃗ + 𝑙13𝑅03𝑥 = 𝑝02⃗⃗⃗⃗ ⃗⃗ + 𝑙13𝑅23𝑅12𝑅01𝑥 (8)
Dessa forma, finalmente é possível calcular o vetor posição do centro de massa do
objeto manipulado em relação ao eixo de coordenadas da base. Esse vetor é dado pela
seguinte equação:
𝑝0𝑐1⃗⃗ ⃗⃗ ⃗⃗ ⃗⃗ = 𝑝03⃗⃗⃗⃗ ⃗⃗ + 𝑙𝑐2𝑅0𝑐1𝑥 = 𝑝03⃗⃗⃗⃗ ⃗⃗ +
𝑙𝑐2𝑅3𝑐1𝑅23𝑅12𝑅01𝑥 (9)
Para o cálculo do vetor posição do centro de base em relação ao eixo de coordenadas
da base para o segundo manipulador robótico, utiliza-se as mesmas equações acima.
Contudo, há uma mudança no sentido do vetor posição da junta da primeira junta. Esse
vetor fica da seguinte forma:
𝑝𝑏2⃗⃗ ⃗⃗⃗⃗ = 𝑙0𝑥0⃗⃗⃗⃗ (10)
Essa mudança é devido ao vetor posição estar no mesmo sentido do eixo 𝑥 do sistemas de coordenadas da base. Dessa maneira, tem-se as seguintes equações:
𝑝04⃗⃗⃗⃗ ⃗⃗ = 𝑝𝑏2⃗⃗ ⃗⃗⃗⃗ + 𝑙21𝑅04𝑥 (11)
𝑝05⃗⃗⃗⃗ ⃗⃗ = 𝑝04⃗⃗⃗⃗ ⃗⃗ + 𝑙22𝑅05𝑥 = 𝑝04⃗⃗⃗⃗ ⃗⃗ + 𝑙22𝑅45𝑅04𝑥 (12)
𝑝06⃗⃗⃗⃗ ⃗⃗ = 𝑝05⃗⃗⃗⃗ ⃗⃗ + 𝑙23𝑅06𝑥 = 𝑝05⃗⃗⃗⃗ ⃗⃗ + 𝑙23𝑅56𝑅45𝑅04𝑥 (13)
𝑝0𝑐2⃗⃗ ⃗⃗ ⃗⃗ ⃗⃗ = 𝑝06⃗⃗⃗⃗ ⃗⃗ + 𝑙𝑐2𝑅0𝑐2𝑥 = 𝑝06⃗⃗⃗⃗ ⃗⃗ +
𝑙𝑐2𝑅6𝑐1𝑅56𝑅45𝑅04𝑥 (14)
Departamento de Engenharia Elétrica
A orientação do centro de massa do objeto para os manipuladores robóticos, pode
ser obtida da seguinte forma:
𝜃𝑐1 = 𝜃11 + 𝜃12 + 𝜃13 + 𝜃14 (15)
𝜃𝑐2 = 𝜃21 + 𝜃22 + 𝜃23 + 𝜃24 (16)
Sendo os ângulos 𝜃14 e 𝜃24 , as orientações dos efetuadores dos manipuladores 1 e 2 respectivamente. Com isso, o vetor posição do centro de massa do objeto em relação as
coordenadas da base, será dada pela posição absoluta. Essa posição é dada por:
𝑝𝑎 =
[ 𝑝0𝑐1_𝑥 + 𝑝0𝑐2_𝑥
2𝑝0𝑐1_𝑦 + 𝑝0𝑐2_𝑦
2𝜃𝑐1 + 𝜃𝑐2
2 ]
(17)
Além de utilizar conceitos de álgebra e geometria, também é possível calcular a
cinemática direta utilizando a convenção de Denavit-Hartenberg [2]. Esse método criará
uma transformação homogênea de coordenadas entre o efetuador e a base dos
manipuladores robóticos. A convenção de Denavit-Hartenberg utiliza quatro parâmetros
para computar a matriz de transformação homogênea entre o sistema de coordenadas de
uma junta e o sistema de coordenadas da junta anterior. Esses parâmetros são: distância
entre as juntas no eixo 𝑥 (a), distância entre as juntas no eixo 𝑧 (d), ângulos de rotação das juntas em torno do eixo 𝑥 (α), e ângulos de rotação das juntas em torno do eixo 𝑧 (θ). Dessa maneira, é possível obter a transformação homogênea das coordenadas do
efetuador em relação a base do robô manipulador, multiplicando as matrizes de
transformação homogênea de todas as juntas. Essa matriz de rotação homogênea 𝑇, é composta pela matriz de rotação 𝑅 e pelo vetor de posição 𝑝 que descrevem respectivamente a orientação e a posição do efetuador com respeito a base do robô.
Quando a orientação do efetuador é descrita por um vetor de rotação 𝑞 de 3 dimensões, ao invés de da matriz de rotação 𝑅, essa representação é denominada de mapeamento de cinemática direta. Com isso, de acordo com Denavit-Hartenberg é possível achar uma
transformação geométrica por meio das quatro operações elementares, que são:
Rotação 𝜃𝑖em torno do eixo da junta (𝑧𝑖−1) Translação ao longo do eixo do elo (𝑥𝑖) do seu próprio comprimento (𝑎𝑖) Translação ao longo do eixo da junta (𝑧𝑖) do afastamento entre juntas (𝑑𝑖) Rotação 𝛼𝑖 do eixo da junta (𝑧𝑖) em torno do eixo longitudinal (𝑥𝑖) do elo
Dessa maneira, tem-se que a parte rotacional pode ser decomposta em 2 rotações
elementares ao redor do sistema de coordenadas correntes:
𝑅𝑖−1,𝑖 = 𝑅𝑧(𝜃𝑖)𝑅𝑥(𝛼𝑖) (18)
𝑅𝑖−1,𝑖 = [𝑐𝑜𝑠𝜃𝑖 −𝑠𝑒𝑛𝜃𝑖 0𝑠𝑒𝑛𝜃𝑖 𝑐𝑜𝑠𝜃𝑖 00 0 1
] [1 −0 00 𝑐𝑜𝑠𝛼𝑖 −𝑠𝑒𝑛𝛼𝑖0 𝑠𝑒𝑛𝛼𝑖 𝑐𝑜𝑠𝛼𝑖
] (19)
Departamento de Engenharia Elétrica
𝑅𝑖−1,𝑖 = [𝑐𝑜𝑠𝜃𝑖 −𝑠𝑒𝑛𝜃𝑖𝑐𝑜𝑠𝛼𝑖 𝑠𝑒𝑛𝜃𝑖𝑠𝑒𝑛𝛼𝑖𝑠𝑒𝑛𝜃𝑖 𝑐𝑜𝑠𝜃𝑖𝑐𝑜𝑠𝛼𝑖 −𝑐𝑜𝑠𝜃𝑖𝑠𝑒𝑛𝛼𝑖0 𝑠𝑒𝑛𝛼𝑖 𝑐𝑜𝑠𝛼𝑖
] (20)
Por outro lado, a parte translacional é dada por :
�⃗� 𝑖−1,𝑖 = 𝑑𝑖𝑧 𝑖−1 + 𝑎𝑖𝑥 𝑖 (21)
(�⃗� 𝑖−1,𝑖)𝑖−1 = 𝑑𝑖(𝑧 𝑖−1)𝑖−1 + 𝑎𝑖𝑅𝑖−1,𝑖(𝑥 𝑖)𝑖 (22)
(�⃗� 𝑖−1,𝑖)𝑖−1 = 𝑑𝑖 [001] + 𝑎𝑖𝑅𝑖−1,𝑖 [
100] (23)
(�⃗� 𝑖−1,𝑖)𝑖−1 = [𝑎𝑖𝑐𝑜𝑠𝜃𝑖𝑎𝑖𝑠𝑒𝑛𝜃𝑖𝑑𝑖
] (24)
Dessa forma, a transformação homogênea é dada por:
𝑇𝑖−1,𝑖 = [
𝑐𝑜𝑠𝜃𝑖𝑠𝑒𝑛𝜃𝑖00
−𝑠𝑒𝑛𝜃𝑖𝑐𝑜𝑠𝛼𝑖𝑐𝑜𝑠𝜃𝑖𝑐𝑜𝑠𝛼𝑖𝑠𝑒𝑛𝛼𝑖0
𝑠𝑒𝑛𝜃𝑖𝑠𝑒𝑛𝛼𝑖−𝑐𝑜𝑠𝜃𝑖𝑠𝑒𝑛𝛼𝑖
𝑐𝑜𝑠𝛼𝑖0
𝑎𝑖𝑐𝑜𝑠𝜃𝑖𝑎𝑖𝑠𝑒𝑛𝜃𝑖𝑑𝑖1
] (25)
A seguir, segue uma foto de um manipulador planar 3-DoF com os eixos escolhidos
de acordo com a convenção de Denavit- Hartenberg:
Figura 3 – Robô planar com os eixos escolhidos seguindo a convenção de
Denavit- Hartenberg.
Departamento de Engenharia Elétrica
Dessa forma, todos os eixos de revolução são paralelos. Com isso, a escolha mais
simples para todos os eixos 𝑥 𝑖, é na direção dos elos, sendo a direção 𝑥 0 escolhida de
forma arbitrária. É possível ver que todos os sistemas de coordenadas �⃗� 𝑖 estão no plano
do sistema de coordenadas da base �⃗� 0. Desse jeito, todos os parâmetros 𝑑𝑖 são nulos e os ângulos entre os eixos 𝑥 𝑖 fornecem indiretamente os parâmetros 𝜃𝑖 . Dessa forma, temos otod os parâmetros de Denavit- Hartenberg especificados na tabela abaixo [2]:
Elos 𝑎𝑖 𝛼𝑖 𝑑𝑖 𝜃𝑖 1 𝑎1 0 0 𝜃1 2 𝑎2 0 0 𝜃2 3 𝑎2 0 0 𝜃3
Com isso, pode-se substituir os parâmetros acima, com os valores que estão na
figura 1 para os dois manipuladores robóticos:
𝑇123 = [
𝑐𝑜𝑠𝜃123𝑠𝑒𝑛𝜃12300
−𝑠𝑒𝑛𝜃123𝑐𝑜𝑠𝜃12300
0 010
𝑎1𝑐𝑜𝑠𝜃1 + 𝑎2𝑐𝑜𝑠𝜃12 + 𝑎3𝑐𝑜𝑠𝜃123𝑎1𝑠𝑖𝑛𝜃1 + 𝑎2𝑠𝑖𝑛𝜃12 + 𝑎3𝑠𝑖𝑛𝜃123
01
] (26)
Sendo para o manipulador 1:
𝜃𝑖 = 𝜃1𝑖 𝑖 = 1,2,3 (27)
𝑎𝑖 = 𝑙1𝑖 𝑖 = 1,2,3 (28)
𝜃𝑖𝑗..𝑘 = 𝜃1𝑖 + 𝜃1𝑗+. . 𝜃1𝑘 (28)
Para o manipulador 2:
𝜃𝑖 = 𝜃2𝑖 𝑖 = 1,2,3 (29)
𝑎𝑖 = 𝑙2𝑖 𝑖 = 1,2,3 (30)
𝜃𝑖𝑗..𝑘 = 𝜃2𝑖 + 𝜃2𝑗+. . 𝜃2𝑘 (31)
Com isso, tem-se:
𝑇1231 : Transformação homogênea do efetuador em relação a base do primeiro
manipulador robótico
𝑇1232 : Transformação homogênea do efetuador em relação a base do segundo
manipulador robótico
Depois de achada a matriz 𝑇123 para ambos os manipuladores, acha-se a transformação de coordenadas do efetuador em relação ao sistemas de coordenadas da
Departamento de Engenharia Elétrica
base. Supondo que tenha-se um vetor 𝑝 que representa o vetor com as coordenadas do efetuador em relação ao eixo de coordenadas da junta anterior. Para representar esse vetor
no sistema de coordenadas da base, basta fazer:
Para o primeiro manipulador:
𝑝03 = 𝑇1231 𝑝23 (32)
Para o segundo manipulador:
𝑝06 = 𝑇1232 𝑝56 (33)
Contudo, o que se tem é as coordenadas do efetuador em relação a base, e o que se
quer é a posição do centro de massa do objeto manipulado em relação a base. Para isso,
pode-se utilizar as equações (12) e (7), ou supor que a distância entre o centro de massa
do objeto e o efetuador é um elo. Com isso, achar os parâmetros de Denavit-Hartenberg
deste novo elo e recalcular a matriz de transformação homogênea.
Cinemática Diferencial
Depois de obter a posição do objeto manipulado em relação as coordenadas da base
dos manipuladores, acha-se a velocidade do objeto. Para isso, utiliza-se a cinemática
diferencial para obter, primeiro, a velocidade do efetuadores. Desta forma, é preciso obter
o Jacobiano dos manipuladores robóticos. É possível obter a matriz Jacobiana por meio
de duas abordagens, que são por meio de uma abordagem geométrica ou analítica. Na
abordagem analítica, o Jacobiano é obtida por meio da derivada temporal da cinemática
direta. Nesse trabalho, será utilizada a abordagem geométrica, que depende da geometria
das juntas, para obter o Jacobiano. Já que todas as juntas dos manipuladores são de
rotação, Os Jacobianos dos manipuladores são [1]:
𝐽1 = [𝑧 0𝑥(𝑝 03)0 𝑧 0𝑥(𝑝 13)0 𝑧 0𝑥(𝑝 23)0
𝑧 0 𝑧 0 𝑧 0] (34)
Sendo:
(𝑝 23)0 = 𝑙13𝑅03 (35)
(𝑝 13)0 = (𝑝 23)0 + 𝑙12𝑅02 (36)
(𝑝 03)0 = (𝑝 13)0 + 𝑙11𝑅01 (37)
Jacobiano do segundo manipulador
𝐽2 = [𝑧 0𝑥(𝑝 06)0 𝑧 0𝑥(𝑝 46)0 𝑧 0𝑥(𝑝 56)0
𝑧 0 𝑧 0 𝑧 0] (38)
Sendo:
(𝑝 56)0 = 𝑙23𝑅06 (38)
Departamento de Engenharia Elétrica
(𝑝 46)0 = (𝑝 56)0 + 𝑙22𝑅05 (39)
(𝑝 06)0 = (𝑝 46)0 + 𝑙21𝑅04 (40)
Dessa forma, as velocidades dos efetuadores podem ser escritas como:
𝑣1+ = 𝐽1𝜃 ̇ (41)
𝑣2+ = 𝐽2�̇� (42)
Juntando as duas equações em uma só, fica-se com:
[𝑣1+𝑣2+
] = [ 𝐽1 00 𝐽2
]⏟
𝐽
�̇� (43)
Agora, depois te obter a velocidade do efetuador, é preciso obter a velocidade do
objeto manipulado. Para isso, primeiro calcula-se a matriz de transformação adjunta dos
manipuladores. Essa matriz relaciona a velocidade do eixo de coordenadas do objeto
manipulado �̅�𝑐 com a velocidade do eixo de coordenadas do efetuador �̅�𝐸 . Essa matriz adjunta é dada por:
𝐴𝑖 = [𝐼 −𝑝𝑖𝑐𝑥0 𝐼
] (44)
Sendo −𝑝𝑖𝑐𝑥 os produtos vetoriais entre a posição do centro de massa do objeto e os vetores que representam os eixos de coordenadas x,y,z. Dessa maneira , tem-se que
para os manipuladores 1 e 2:
𝑝𝑖𝑐𝑥1 =
[
0 0 0
0 0 −𝑙𝑐
2
0𝑙𝑐
20 ]
(45)
𝑝𝑖𝑐𝑥1 =
[
0 0 0
0 0𝑙𝑐
2
0 −𝑙𝑐
20 ]
(46)
Com isso, as matrizes de transformação adjunta para ambos manipuladores
robóticos são:
𝐴1 = [𝐼 −𝑝𝑖𝑐𝑥
1
0 𝐼] (47)
𝐴2 = [𝐼 −𝑝𝑖𝑐𝑥
2
0 𝐼] (48)
Departamento de Engenharia Elétrica
A matriz de transformação adjunta total é dada por:
𝐴 = [𝐴1𝐴2] (49)
Após obter as matrizes Jacobianas e matrizes de transformação adjunta para ambos
os manipuladores, é possível obter agora o Jacobiano de restrição 𝐽𝑐 e o Jacobiano dos manipuladores 𝐽𝑚. Eles são dados por:
𝐽𝑐 = �̃�[𝐽 𝐻𝑇] (50)
𝐽𝑚 = 𝐴ϯ[𝐽 𝐻𝑇] (51)
Aonde:
�̃�: É a matriz anaquiladora, tal que �̃�𝐴 = 0
𝐴ϯ: É matriz pseudo-inversa da matriz 𝐴, tal que 𝐴ϯ𝐴 = 𝐼
𝐻𝑇 : Suas coluna representam as direções para movimentos livres nos pontos de contato do objeto e o efetuador. Será escolhida uma matriz com dimensão 12𝑥2
Para isso, forma escolhidas as seguintes matrizes:
�̃� = [𝐴2−𝐴1
] (52)
𝐻𝑇 =
[ 0 0⋮ ⋮1⋮0
0⋮1]
(53)
𝐴ϯ é calculada por meio da equação da pseudo-inversa.
Depois de calcular esses Jacobianos, tem-se as seguintes equações em função das
juntas passivas e ativas [1]:
𝐽𝑐 [�̇�𝑎�̇�𝑝] = 0 (54)
𝐽𝑚 [�̇�𝑎�̇�𝑝] = 𝑣𝑐 (55)
Aonde:
𝑣𝑐: Velocidade do sistemas de coordenadas do objeto manipulado.
Departamento de Engenharia Elétrica
�̇�𝑎:Derivada temporal das juntas ativas.
�̇�𝑝:Derivada temporal das juntas passivas.
Fazendo algumas manipulações algébricas, é possível achar a velocidade do eixo
de coordenadas do objeto em função da derivada das juntas ativas. Dessa maneira, fica-
se com a seguinte equação:
𝐽�̇̅�𝑎 = 𝑣𝑐 (56)
Sendo:
𝐽 ̅ = 𝐽𝑚𝑎 − 𝐽𝑚𝑝𝐽𝑐𝑝−1𝐽𝑐𝑎 (57)
Aonde:
𝐽𝑚𝑎: Jacobiano do manipulador associado as juntas ativas.
𝐽𝑚𝑝: Jacobiano do manipulador associado as juntas passivas.
𝐽𝑐𝑎: Jacobiano de restrição associado as juntas ativas.
𝐽𝑐𝑝: Jacobiano de restrição associado as juntas passivas.
Controle Cinemático
Depois de calcular os Jacobianos dos manipuladores, é possível projetar uma lei de
controle para os dois robôs baseada na separação do espaço das juntas em juntas ativas
(atuadas) e passivas (não atuadas). Também é considerado nessa lei de controle, as
restrições de velocidade na estrutura cinemática do robô. Dessa maneira, é possível
utilizar um ganho para modificar a postura dos manipuladores robóticos. Nessa
abordagem, o controle tem o objetivo de alterar a postura original do objeto manipulado
𝑥𝑐 = [𝑝𝑐 𝛷𝑐] para uma postura desejada variante no tempo 𝑥𝑐𝑑(𝑡) = [𝑝𝑐𝑑 (𝑡) 𝛷𝑐(𝑡)]. Com isso, o controle faz com que [1]:
𝑥𝑐 → 𝑥𝑐𝑑(𝑡) (58)
𝑒𝑐 = 𝑥𝑐𝑑(𝑡) − 𝑥𝑐 → 0 (59)
Onde 𝑒𝑐 é o erro de postura do objeto.
O esquema do controle projetado deve comandar a velocidade do objeto para chegar
na postura desejada. Dessa maneira, para comandar essa velocidade, atua-se nas
velocidades das juntas. É possível obter a relação dessas duas velocidades por meio da
equação obtida acima. Com isso, utiliza-se uma lei de controle proporcional com
feedfoward que pode ser expressa pela seguinte equação:
Departamento de Engenharia Elétrica
𝑢 = �̇�𝑎 = 𝐽(̅𝜃𝑎)𝑃ϯ [𝐾(𝑥𝑐𝑑(𝑡) − 𝑥𝑐 ) + �̇�𝑐] (60)
Onde:
𝐾: É um ganho positivo definido de controle.
𝐽�̅�ϯ: É a partição de 𝐽 ̅referente as juntas ativas 𝜃𝑎.
Simulação e discussão:
Após calcular a cinemática direta, a cinemática diferencial e projetar uma lei de
controle cinemático, foram implementadas as equações encontradas acima em um
ambiente de programação Matlab/Simulink para simular o sistema robótico cooperativo.
Esse programa simula o controle de dois robôs que manipulam um objeto. Dessa maneira,
é fornecida uma trajetória para os manipuladores seguirem e é verificado se o robô
consegue segui-la com o objeto. São dados alguns parâmetros para os manipuladores
robóticos afim de realizar uma simulação próxima a realidade. O primeiro desses
parâmetros a ser discutido, são os comprimentos dos elos dos robôs. Desse jeito, foram
estipulados os seguintes tamanhos para os elos:
𝑙1 = 𝑙4 = 0.39 ∗ 103 𝑚𝑚 𝑙2 = 𝑙5 = 0.33 ∗ 103 𝑚𝑚 𝑙3 = 𝑙6 = 0.21 ∗ 103 𝑚𝑚
Sendo os elos l1,l2 e l3 pertencentes ao primeiro manipulador e os elos l4, l5 e l6
pertencentes ao segundo manipulador. Também são definidas as distâncias dos robôs em
relação a um referencial, que será chamado de base. Essas distâncias são:
𝑙0 = −0.38 ∗ 103 𝑚𝑚 𝑙𝑏 = 0.38 ∗ 103𝑚𝑚
Dessa maneira, l0 é a distância da base até o primeiro manipulador. Esse vetor
possui um valor negativo, pois o seu sentido, é oposto ao sentido do eixo fixado na base.
Com o mesmo raciocínio, lb é a distância da base até o segundo manipulador.
Após definir os comprimentos dos elos, são declarados os ganhos para realização
do controle cinemático. Os ganhos são dados por:
𝐾𝑝 = 20 𝐾𝑜 = 5
Sendo Kp o ganho de posição e Ko o ganho de orientação.
Depois disso, serão definidos os ângulos iniciais das juntas passivas e das juntas
ativas. Esses ângulos são:
Departamento de Engenharia Elétrica
𝜃𝑎 =
[
13𝜋
18𝑟𝑎𝑑
−𝜋
2𝑟𝑎𝑑
−5𝜋
18𝑟𝑎𝑑
5𝜋
18𝑟𝑎𝑑
𝜋
2𝑟𝑎𝑑
5𝜋
18𝑟𝑎𝑑 ]
As juntas passivas foram inicializadas como um vetor nulo. Dessa maneira é
possível definir esse vetor da seguinte forma:
𝜃𝑝 = [0 𝑟𝑎𝑑0 𝑟𝑎𝑑
]
Com isso, é formado um vetor composto pelos dois vetores acima. Esse vetor é da
seguinte maneira:
𝜃 = [𝜃𝑎𝜃𝑝]
Depois da inicialização dos parâmetros, o algoritmo de controle foi executado para
verificar se o sistema robótico cooperativo consegue manipular o objeto seguindo uma
trajetória especificada. Dada a trajetória os resultados obtidos foram:
Figura 4 – Ângulos das juntas dos robôs em função do tempo
Departamento de Engenharia Elétrica
Figura 5 – Velocidades das juntas ativas dos robôs em função do tempo
Figura 6 – Velocidades das juntas passivas dos robôs em função do tempo e sinal
de controle cartesiano.
Departamento de Engenharia Elétrica
Figura 7– Posição do objeto e erro de posição e de orientação ao longo do tempo
É possível verificar que com a abordagem de controle cinemático utilizada, os
manipuladores robóticos conseguiram seguir a trajetória especificada após algumas
amostragens na simulação. Também é possível verificar que o erro de postura tende a
zero ao longo do tempo. Com isso, conclui-se, por meio da simulação, que essa
abordagem de controle, para manipuladores simples, consegue ser estendida para
sistemas robóticos cooperativos e fazer com que eles consigam manipular um objeto
seguindo uma trajetória especificada. Outro resultado que garante a eficácia dessa
abordagem de controle, é que os sinais encontrados são limitados, como esperado, visto
que isso mostra que o algoritmo de controle faz com o que o sistema seja estável
Após as simulações numéricas computacionais, utilizou-se o PhantomX Pincher 4-
DoF para a implementação prática dos conceitos estudados. Dessa maneira, utilizou-se
os conhecimentos de cinemática direta, cinemática diferencial e de controle cinemático
aliados ao conhecimento de ROS para fazer o manipulador robótico seguir uma trajetória.
Dessa forma, utilizou-se o conceito de subscrever em tópicos para fazer a leitura dos
sensores e o conceito de publicar em um tópico para mandar o sinal de entrada para os
atuadores. Com isso, através dos resultados práticos, foi possível verificar a validade e a
eficácia da estratégia de controle cinemático proposta.
Conclusões
Nesse trabalho estudou-se metodologias de controle clássicas que foram
desenvolvidas para manipuladores robóticos simples e as estendeu para sistemas
robóticos cooperativos capazes de executar manipulação bi-manual de objetos. Foi
discutido na maior parte do trabalho a implementação desses conceitos em dois
manipuladores robóticos planares 3-DoF, devido a praticidade desses manipuladores.
Com isso, foi projetada uma lei de controle baseada nas restrições cinemáticas de
velocidades na estrutura cinemática dos robôs. Contudo, a solução analisada é válida para
qualquer par de manipuladores robóticos, basta adaptar as equações encontradas na
Departamento de Engenharia Elétrica
cinemática diferencial, utilizando o conceito de Denavit-Hartenberg para o robô desejado
e em seguida calcular as equações de cinemática diferencial também.
Com isso, por meio da utilização do PhantomX Pincher e do ambiente de
programação Matlab/Simulink aliado com o ROS, foi possível verificar a implementação
dos conceitos estudados na prática. Dessa maneira, em trabalhos futuros será feita a
implementação prática da solução estudada, que é o controle cinemático em um sistema
de manipuladores robóticos cooperativos. Assim, serão utilizados dois robôs PhantomX
Pincher para a validação dessa solução.
Referências
1 - Caccavale F. and Uchiyama M., “Cooperative Manipulation”, Springer
Handbook of Robotics, Ed. Siciliano, B. and Khatib, O., Pags. 989-1006, 2008.
2 - Siciliano, B., Sciavicco L., Villani, L. and Oriollo, G., “Robotics:
Modelling, Planning and Control ”,Springer-Verlag London Ltd., 2009.
3 - Freitas, G. M., Leite, A. C. and Lizarralde, F.,“Kinematic Control of
Constrained Robotic System ”, SBA Revista Controle & Automação, Vol. 22,
No. 6, Pags. 559-572, 2011
top related