18
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

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,

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

  • 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