collapse

* Posts Recentes

Loja a EVITAR por dropes
[Ontem às 19:35]


Por que nunca se deve confiar no que diz o cliente por dropes
[Ontem às 19:23]


Projecto LED fundem por pouco funcionamento? por filjoa
[24 de Novembro de 2021, 10:45]


Um recurso muito completo com implementações de algoritmos. por blabla
[23 de Novembro de 2021, 12:04]


Como resolver "uhmmm" 50Hz Colunas de PC por dropes
[22 de Novembro de 2021, 14:12]


Software TV sala espera + Publicidades por m90mine
[19 de Novembro de 2021, 14:32]


Stenography - Using programming to save ancient writing method por blabla
[18 de Novembro de 2021, 13:55]


Identificador Via Verde por almamater
[15 de Novembro de 2021, 16:20]


Meu novo robô por josecarlos
[13 de Novembro de 2021, 12:12]


Move Semantics in C++ and Rust por blabla
[11 de Novembro de 2021, 20:45]

Autor Tópico: Injured robots learn to limp  (Lida 19421 vezes)

0 Membros e 1 Visitante estão a ver este tópico.

Offline senso

  • Global Moderator
  • Mini Robot
  • *****
  • Mensagens: 9.719
  • Helpdesk do sitio
Re: Injured robots learn to limp
« Responder #15 em: 03 de Junho de 2015, 18:01 »
Pffffffffffffffffffffffffffffffffff.
Fazia isso com um arduino  8)
Avr fanboy

Offline dropes

  • Mini Robot
  • *
  • Mensagens: 2.026
Re: Injured robots learn to limp
« Responder #16 em: 03 de Junho de 2015, 19:01 »
Segundo os autores:
"it chose this walking styles from thousands of walking styles programmed into it"

O que vou dizer é real e creio que se aplica a essa frase:

Um senhor vai num autocarro que entretanto pára para deixar entrar e sair passageiros
Como é a paragem do senhor, ele desce as escadas do autocarro, tropeça e espalha-se ao comprido
Ficam todos a olhar para ele com um olhar do tipo "coitadinho do senhor"
Ele levanta-se e diz em voz alta "Cada um sai como quer"

Moral da história, cada robot escolhe a forma como quer andar   ;D


Offline nvoltex

  • Mini Robot
  • *
  • Mensagens: 211
Re: Injured robots learn to limp
« Responder #17 em: 03 de Junho de 2015, 19:03 »
Um dos autores responde a esta questão na secção dos comentários:

"That is not correct (I am one of the authors). From our FAQ:  The robot is not simply picking a working gait from a small library of options. The map (or library) has over 13,000 behaviors. Yet the robot finds one that works after trying around 8 of them. Clearly, it is not testing them all. It is able to do this because the robot, like a scientist, carefully chooses which experiments to conduct to find an answer as quickly as possible (here, the answer the robot seeks is how to keep functioning despite its damage).The map of behaviors is not hand-designed: it is learned by the robot. The robot uses a computer simulation of itself to create this map ahead of time. These maps can be quite large. In our experiments with the six-legged robot, the map contained over 13,000 gaits. While generating that map is computationally intensive, it only has to be done once per robot design before the robots are deployed. Importantly, this map does not represent all possible behaviors the robot can make. The space of all possible behaviors that is searched to find these 13,000 high-performing behaviors is unimaginably vast. In fact, it contains 10^47 possible behaviors, which is about how many water molecules on the planet Earth! That would be too many for our robot scientist to search through once damaged. Instead, we search through this vast space ahead of time to find 13,000 high-performing gaits (via a new algorithm we invented called "MAP-Elites"). In short, whereas previous algorithms searched for needles in fields of haystacks, we gather the needles ahead of time, so we are searching through a pile of needles to find the right one."

Offline dropes

  • Mini Robot
  • *
  • Mensagens: 2.026
Re: Injured robots learn to limp
« Responder #18 em: 03 de Junho de 2015, 19:13 »
Pffffffffffffffffffffffffffffffffff.
Fazia isso com um arduino  8)

"13.000 behaviors" acho que não te safavas com um arduino...
O mais estúpido disto tudo é que ele não necessita de ter 13.000 comportamentos diferentes,
só tem 6 patas, logo só existem 6^2 (36) variantes quanto à falha das patas para associar a uma forma de deslocação diferente.

Offline metRo_

  • Administrator
  • Mini Robot
  • *****
  • Mensagens: 3.753
Re: Injured robots learn to limp
« Responder #19 em: 03 de Junho de 2015, 19:24 »
Pffffffffffffffffffffffffffffffffff.
Fazia isso com um arduino  8)

"13.000 behaviors" acho que não te safavas com um arduino...
O mais estúpido disto tudo é que ele não necessita de ter 13.000 comportamentos diferentes,
só tem 6 patas, logo só existem 6^2 (36) variantes quanto à falha das patas para associar a uma forma de deslocação diferente.

Consegues com um arduino sim, essas variantes nao fazem muito sentido pois para cada pata tens varias distancias e velocidades.

Offline senso

  • Global Moderator
  • Mini Robot
  • *****
  • Mensagens: 9.719
  • Helpdesk do sitio
Re: Injured robots learn to limp
« Responder #20 em: 03 de Junho de 2015, 19:28 »
São sequências de movimentos, os servos são dinamixel(pelo menos parecem) logo falam todos serial, ligados sem série(Redundant department of redundancy lol), tecnicamente uma máquina de estados bem pensada e usas 2-3 bytes para cada movimento de todos os servos, bit-packing, quiçá RLE e enfia-se tudo na EEPROM.
Avr fanboy

Offline dropes

  • Mini Robot
  • *
  • Mensagens: 2.026
Re: Injured robots learn to limp
« Responder #21 em: 03 de Junho de 2015, 20:58 »
Referi que não daria num arduino, programado normalmente, de acordo com as especificações descritas pelo @nvoltex retiradas de um comentário do youtube.
Desconheço a plataforma usada, mas dá a entender que aquilo tem um abuso de processamento.

Acredito que a rotina para mexer um bicho daqueles não tenha nada que se diga, é tudo à base de sequências e velocidade de cada uma delas, essas são as variáveis que devem ser alteradas caso alguma das 6 patas falhe.

Daí se conseguir colocar num array múltiplo de 36, os valores respectivos.
Este múltiplo corresponde à sequência do ciclo das temporização de cada servo assim como a velocidade.
Devo ter tropeçado por aqui algures mas é +- isso...

Por isso sim, um arduino daria se o código for escrito decentemente.