Simulador de aprendizado quadrúpede

10

Atualmente, estou construindo um robô com quatro pernas ( quadrúpede ), 3 DOF (graus de liberdade) e foi sugerido aqui que eu uso um simulador para fazer o aprendizado em um computador e depois carregar os algoritmos no robô. Estou usando um Arduino Uno para o robô e qual software eu poderia usar para simular o aprendizado e depois poder fazer o upload para a placa do Arduino?

Jordânia
fonte
Você vai usar um robô existente ou projetá-lo e construí-lo você mesmo?
DaemonMaker
11
Eu construí o robô já a partir do zero :)
Jordan

Respostas:

3

Gazebo é uma boa ferramenta para o que você quer fazer. Como você está usando um robô personalizado, precisará criar um modelo para o simulador usar. Eles conseguiram tornar as coisas muito fáceis, mas para um quadraped eu posso imaginar que vai demorar um pouco.

O Gazebo também é bom porque funciona bem com o ROS, o que significa que, se você criar, poderá criar um programa para controlar seu robô e enviar os comandos para o robô simulado via integração ou para o robô real via rosserial . Lembre-se de que, se você não tiver usado nenhuma dessas ferramentas, levará algum tempo para desenvolver sua solução.

DaemonMaker
fonte
11
Eu dei uma olhada em algumas das etapas para instalar isso e parece um processo longo, não estou familiarizado com a maioria e estou usando um mac, que não parece ter muito suporte. +1 para uma solução plausível, mas eu posso ter que continuar procurando
Jordan
Uma alternativa seria criar seu próprio simulador com algo como o OpenGL. A complexidade de fazer isso depende da cinemática do seu robô e se você simulará a dinâmica.
DaemonMaker
2

Isso não abrangeria a simulação do robô, mas a Biblioteca de aprendizado de máquina OpenCV pode ser útil para avaliar algoritmos de aprendizado e parâmetros de treinamento para fazer o download no robô.

Inclui uma implementação de rede neural, que pode ser de particular interesse para esse problema.

O OpenCv também é uma biblioteca padrão e provavelmente se integra bem a algum outro simulador para o próprio robô.

SelvagemCrustáceo
fonte
Isso realmente funcionaria? A biblioteca OpenCV ML pode caber em um Arduino?
DaemonMaker
11
Bem, não, mas você pode usá-lo para treinar os parâmetros para um algoritmo de aprendizado em um Arduino.
WildCrustacean
Isso é muito complicado para mim, estou no ensino médio e esperava uma alternativa muito mais fácil e amigável. Talvez um programa que me permite projetar um robô virtual semelhante ao meu próprio e, em seguida, exibe as posições para cada perna que eu posso simplesmente copiar e colar (essencialmente) no código do meu projeto
Jordan
Nesse caso, talvez dê uma olhada também nesta pergunta: robotics.stackexchange.com/questions/697/… A robótica é complicada, porém, e a robótica com aprendizado de máquina não é exceção. Se você é sério sobre robótica no futuro, não seria uma má idéia aprender algo como OpenCV
WildCrustacean
11
Além disso, não pense que algo é muito difícil de complicar só porque você está no ensino médio. Existem muitos lugares (incluindo este site) onde você pode encontrar ajuda se ficar preso.
WildCrustacean
2

O simulador V-REP de código aberto recentemente pode atender às suas necessidades. Achei mais acessível que o Gazebo e pode ser executado no Windows, OSX e Linux. Seus tutoriais são bastante diretos. Existem várias maneiras diferentes de interagir com ele programaticamente (inclusive com o ROS). Parece que há até um tutorial para criar um hexapod , que você provavelmente poderia usar como ponto de partida se eles ainda não tiverem um exemplo quadrúpede disponível. Infelizmente, acredito que o simulador esteja vinculado diretamente à renderização da interface do usuário, o que acredito não ser necessariamente o caso do Gazebo.

Portanto, seu programa teria que usar uma das muitas maneiras de interagir com o V-REP e, em seguida, alimentar o desempenho de uma marcha específica, determinada a partir de algum sensor no V-REP, em um algoritmo de aprendizado de máquina (talvez algo do OpenCV como @WildCrustacean mencionado). Você precisaria então sugerir uma tradução da descrição da marcha usada pelo robô simulado para algo usado para comandar motores reais no seu Arduino.

Por outro lado, você pode criar seu próprio simulador usando um mecanismo de física existente, renderizando-o com uma biblioteca de gráficos. Bullet e OGRE, respectivamente, podem ser usados ​​para esse fim, se você gosta de C ++. Existem muitos outros para outras linguagens de programação.

Eu também analisaria como os pesquisadores que trabalham na geração da marcha fazem suas simulações. Pode haver um projeto de código aberto existente dedicado a ele.

Robz
fonte