Como eu modelo um robô?

8

As respostas que recebi à pergunta sobre o treinamento de uma linha após o robô usando técnicas de aprendizado por reforço me levaram a pensar em como treinar um robô. Eu acredito que existem essencialmente duas maneiras -

  1. Treine o robô físico.
  2. Modele o robô e simule o treinamento.
  3. Perdi alguma coisa?

A abordagem 2 é definitivamente a melhor abordagem. No entanto, a priori o conhecimento do movimento (resposta), um determinado sinal PWM (estímulo) causaria quando o robô estivesse em um determinado estado. O movimento causado por um sinal PWM pode depender da ( 1 ) tensão atual da bateria, ( 2 ) da massa do robô e ( 3 ) da velocidade atual (perdi alguma coisa?).

Como faço para modelar esse robô? E como faço para modelá-lo rapidamente? Se eu trocar a bateria ou adicionar algumas placas e outros periféricos e alterar a massa do robô, teria que remodelar e treinar novamente o robô. Posso fazer isso fornecendo alguns PWMs de estímulo aleatório e medindo a resposta?

adicionado: Minha pergunta relacionada no dsp.SE

Atualização: Uma edição sugerida por Ian, digna de ser mencionada no título - " Como faço para treinar um robô para que, se sua dinâmica mudar, ele não precise de um novo treinamento completo? " um que estou perguntando aqui. Estou bem com a re-formação por enquanto.

Lorde Loh.
fonte
Há muitas ótimas perguntas aqui. De fato, pode ser melhor dividir isso em várias perguntas.
DaemonMaker
Como você sugere que eu faça isso sem perder o plano de fundo? Eu já dividi uma parte da minha pergunta em dsp.SE
Lord Loh.
Você basicamente tem duas perguntas aqui. O primeiro, como modelar um robô? O segundo é: como eu treino um robô, dado um modelo e um algoritmo de aprendizado? Parece-me que estas podem ser duas perguntas separadas.
DaemonMaker
Você está certo. A pergunta que aparece como treinar um robô tinha o objetivo de ser retórica. Eu acho que vou tentar editá-lo.
Senhor Loh.
Nesse caso, esperarei para ver suas edições antes de tentar responder sua pergunta.
DaemonMaker

Respostas:

4

A meu ver, existem duas questões principais aqui. A primeira é: como eu modelo um robô? Isso é freqüentemente feito com uma formulação no espaço de estados das equações de movimento . As equações exatas dependem da construção física do seu robô. Sim, para modelá-los com entrada PWM, é necessário determinar a função de transferência dos valores PWM que você fornece para a saída de seus atuadores. Então você conecta essa função para o sinal de controle em seu modelo. Novamente, a derivação dessa função é específica do robô. A tensão atual da bateria e a massa do robô provavelmente seriam úteis, mas não sei sobre a velocidade.

A segunda pergunta é, dado um modelo matemático do meu robô, qual é a melhor maneira de treinar um algoritmo de aprendizado por reforço (RL) para controlá-lo? Em suma, não existe um melhor caminho. Treinar diretamente no robô tende a ser demorado, pois leva mais tempo para executar as tentativas. Entretanto, as simulações podem resultar em políticas menos precisas, pois a física da simulação é necessariamente simplificada. Outra abordagem é treinar o aluno em simulação para obter uma aproximação razoável e, em seguida, transferir a política resultante para o robô para aperfeiçoamento. Obviamente, isso falhará se o modelo não for suficientemente preciso. Também requer desenvolvimento extra.

Por fim, você pergunta "Posso [remodelar e treinar novamente o robô] fornecendo alguns PWMs de estímulo aleatório e medindo a resposta?" No caso da RL, não há razão para pensar que a nova política ótima seja semelhante à política ótima anterior e, como tal, não há muitas razões para pensar que alguns controles aleatórios fornecerão informações suficientes para alterar a política adequadamente. É claro que a reciclagem só precisa ocorrer se as alterações feitas no seu robô afetarem a formulação do modelo de espaço de estados e / ou o modelo de ação que você usa. Por exemplo, se seu modelo de ação é em termos de ações de alto nível ("go-left", "go-right", "go-forward"), alterar a dinâmica exige a alteração de como você implementa esses movimentos, mas a política ainda deve ser mantida. .

DaemonMaker
fonte
0

Para modelar, a cinemática Denavit–Hartenberg parametersé comumente usada. o curso Introdução à robótica da Stanford University está disponível no YouTube

Johan Larsson
fonte