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.