• Nenhum resultado encontrado

Experimentos do desenvolvimento do sistema de controle

No documento ORIGINAL ASSINADA (páginas 74-79)

Algoritmo 7 Algoritmo TD(λ) implementado

3.3 SIMULADOR

4.1.1 Experimentos do desenvolvimento do sistema de controle

4 EXPERIMENTOS REALIZADOS

Este capítulo está dividido em duas seções: experimentos realizados no robô real; e re- sultados dos experimentos do aprendizado por reforço para otimização dos valores dos parâme- tros do caminhar de um robô humanoide. A primeira seção apresenta experimentos relacionado com o desenvolvimento do andar do robô e aprendizado por reforço aplicado no robô real. A segunda seção apresenta experimentos que demonstram a otimização dos valores dos parâme- tros do andar usando aprendizado por reforço utilizando o algoritmo proposto neste trabalho implementado no simulador.

4.1 EXPERIMENTOS REALIZADOS NO ROBÔ REAL

Esta seção apresenta os experimentos realizados com o robô real. A seção está dividido em duas subseções: experimentos do desenvolvimento do sistema de controle; e experimentos com aprendizado por reforço. A primeira subseção é composta por experimentos relacionados ao andar do robô, a segunda subseção apresenta um experimento com aprendizado por reforço aplicado no robô real.

movimentos, porém, essa técnica demandou muito tempo de desenvolvimento, e os resultados obtidos não foram satisfatórios, se comparados com outros robôs (DARwIn-OP) que utilizam outras técnicas para o caminhar, porque o robô andava muito devagar.

Para agilizar a gravação dos movimentos, foi necessário implementar a cinemática in- versa do robô. Para realizar esse cálculo, observa-se as pernas como dois manipuladores, rea- lizando o cálculo de apenas um manipulador, nesse caso, cada perna possuem 6 graus de liber- dade. Observando no livro de Craig (2005), quanto maior o número de graus de liberdade, mais complexo fica o cálculo da cinemática inversa. Buscando na literatura científica, encontra-se o trabalho de Williams (2012) que descreve toda a cinemática direta do DARwIn-OP, e apenas al- guns cálculos da cinemática inversa, já o artigo de Ali et al. (2010) demonstra toda a cinemática inversa em um robô humanoide que possua as mesmas posições das juntas do robô descrito no artigo.

No entanto, para facilitar a programação, foi realizada uma simplificação calculando a cinemática de forma parcial, separando o plano sagital do plano frontal, então, calculou-se o plano sagital das pernas em apenas 3 graus de liberdade (quadril, joelho e calcanhar), e o inclinar lateral (plano frontal) com 2 graus de liberdade (quadril e calcanhar). Seguem abaixo as equações 21, 22 e 23 da cinemática inversa para os 3 graus de liberdade.

θ1 =

tan−1(xy)−cos−1

x2+y2+L21L22 2∗L1

x2+y2)

π2 x≥0,

tan−1(xy)−cos−1

x2+y2+L21L22 2∗L1

x2+y2)

+ π2 caso contrário

(21)

θ2 =cos−1

x2+y2L21L22 2∗L1L2

(22)

θ3 =−θ1θ2δthetaπ

180 (23)

Onde:

a) L1eL2são os comprimentos dos elos em metros;

b) xé quanto avançar ou recuar em metros o pé na direção paralela ao chão;

c) yé a altura em metros para levantar o pé na direção perpendicular ao chão;

d) θ1é o ângulo em radianos da junta do quadril;

e) θ2é o ângulo em radianos da junta do joelho;

f) θ3é o ângulo em radianos da junta do calcanhar;

g) δtheta é o ângulopitchdo calcanhar em graus.

Figura 33 – Movimento do andar do robô Newton.

Fonte: Autor.

Para que o movimento seja realizado em trajetórias lineares, há a necessidade de contro- lar a velocidade angular sendo proporcional ao ângulo percorrido, com isso, o maior ângulo a ser percorrido possui 100% da velocidade desejada, e os outros dois ângulos possuem velocida- des menores de acordo com a proporção a ser percorrida, para que todos terminem a trajetória ao mesmo tempo, assim executarão trajetórias lineares.

Implementando essa cinemática no código do robô, foi possível programar os pontos com mais facilidade, porém, ainda assim o caminhar do robô se manteve lento. O robô B1 apresentou uma velocidade de 2cm/s. Na tabela 3, mostrada no capítulo 3, subseção 3.2.2, pode-se ver a velocidade do robô Newton que era 70 cm/min sem a cinemática inversa, e na Figura 33 pode-se ver o movimento do caminhar.

O andar descrito nessa subseção 4.1.1.1 foi utilizado na RoboCup e no LARC de 2014, mesmo não sendo um andar eficiente, a equipe RoboFEI obteve bons resultados nessas compe- tições, conforme descrito no capítulo 1, seção 1.3.

4.1.1.2 Experimentos com o robô utilizando o gerador de andar desenvolvido para o robô DARwIn-OP

Nesse experimento, utilizou-se o código fonte de geração de marcha do robô Jimmy (INTEL, 2015c) desenvolvido pela Intel. Esse código é baseado na geração de marcha do robô DARwIn-OP. Utilizou-se o código fonte do robô Jimmy, porque ele apresentou uma funciona- lidade melhor que o código do Darwin, porém no código do Jimmy a maioria das bibliotecas e arquivos fontes são os mesmos do robô DARwIn-OP, há apenas pequenas alterações no código fonte.

Nesse experimento, o andar foi implementado em malha aberta no robô B1, isso porque inicialmente não foi fechada a malha de controle utilizando o giroscópio como realimentação.

No entanto, os primeiros resultados obtidos foram bastante satisfatórios se comparando com os experimentos anteriores.

Depois de implementado esse código no robô, primeiramente houve a necessidade de ajustar os parâmetros do arquivo config.ini, que foi descrito no capítulo 3, na subseção 3.1.

Com isso, o caminhar do robô demonstrou-se mais estável, como pode-se ver na Figura 34, e a velocidade aumentou significavelmente de 2cm/s para 10cm/s, como pode ser visto na tabela 4, mostrada no capítulo 3, subseção 3.2.2.

Figura 34 – Movimento do andar do robô B1.

Fonte: Autor.

O DARwIn-OP utiliza dados do sensor giroscópio para se recuperar de possíveis osci- lações fora do padrão da marcha. No apéndice A, na seção 5.2, pode-se ver os testes realizados no robô, através de gráficos que demonstram o comportamento temporal dos servos reagindo a perturbações externas.

Na Figura 31, disposta na subseção 3.2.2, foi apresentado o modelo de malha fechada aplicada no andar do robô (essa malha de controle não entra em funcionamento quando o robô está parado), desenvolvida para estabilizar o andar do robô. Os parâmetros do andar são ini- cializados somente quando se executa o processo de controle, através da leitura do arquivo config.ini, mantendo os mesmos parâmetros enquanto o processo estiver em execução.

No documento ORIGINAL ASSINADA (páginas 74-79)

Documentos relacionados