dm_control Software e Compiti per il Controllo Continuo

dm_control è un software per il controllo continuo.

Panoramica

È disponibile qui un notebook colab pubblico con un tutorial per il software dm_control.

Infrastruttura
  • Un wrapper Python di MuJoCo generato automaticamente fornisce pieno accesso al motore sottostante.
  • PyMJCF è un Document Object Model, in cui una gerarchia di oggetti di entità Python corrisponde agli elementi del modello MuJoCo.
  • Composer è l’engine “game” di alto livello che semplifica la composizione di entità in scene e la definizione di osservazioni, ricompense, terminazioni e logica di gioco generale.
  • Il framework Locomotion introduce diverse entità astratte di Composer come Arena e Walker, facilitando compiti simili alla locomozione.
Ambienti
  • Control Suite, inclusi un nuovo quadrupede e un ambiente per cani.
  • Diversi compiti di locomozione, inclusa la pallamano.
  • Compiti di manipolazione robotica a braccio singolo utilizzando mattoncini da unire.

Destaqcati

Indicizzazione nominata

Sfruttando il supporto di MuJoCo per i nomi di tutti gli elementi del modello, consentiamo alle stringhe di indicizzare e suddividere gli array. Quindi invece di scrivere:

“fingertip_height = physics.data.geom_xpos[7, 2]”

…usando un’indicizzazione numerica oscura e fragile, puoi scrivere:

“fingertip_height = physics.named.data.geom_xpos[‘fingertip’, ‘z’]”

che porta a un codice molto più robusto e leggibile.

PyMJCF

La libreria PyMJCF crea una gerarchia di oggetti Python con corrispondenza 1:1 con un modello MuJoCo. Introduce il metodo attach(), che consente di allegare modelli l’uno all’altro. Ad esempio, nel nostro tutorial creiamo creature pluripede procedurali attaccando le gambe ai corpi e le creature alla scena.

Composer

Composer è il framework “game engine” che definisce un determinato ordine di chiamate di funzioni in runtime e astrae le affordances di reward, termination e observation. Queste astrazioni ci hanno permesso di creare sottomoduli utili:

composer.Observable: un wrapper di osservazione astratta che può aggiungere rumore, ritardi, buffering e filtraggio a qualsiasi sensore.

composer.Variation: un set di strumenti per randomizzare le quantità di simulazione, consentendo la robustificazione degli agenti e la simulazione-realismo tramite variazione del modello.

Diagramma che mostra il ciclo di vita dei callback di Composer. I rettangoli arrotondati rappresentano i callback che i task e le entità possono implementare. I rettangoli blu rappresentano le operazioni predefinite di Composer.

Locomozione

Il framework Locomotion ha introdotto le astrazioni:

Walker: un’entità controllabile con metodi comuni correlati alla locomozione, come la proiezione di vettori in un frame egocentrico.

Arena: una scena randomizzata autoscaglizzante, in cui il walker può essere posizionato e assegnato un compito da svolgere.

Ad esempio, utilizzando solo 4 chiamate di funzione, possiamo istanziare un walker umanoide, un’arena WallsCorridor e combinarli in un compito RunThroughCorridor.

Nuovi domini di Control Suite

Quadrupede
  • Un dominio quadrupede generico con un corpo passivamente stabile.
  • Diversi compiti di pura locomozione (ad es. camminare, correre).
  • Un compito di fuga che richiede la navigazione su terreno accidentato.
  • Un compito di recupero che richiede il dribbling della palla.
Cane
  • Un modello elaborato basato su uno scheletro commissionato da leo3Dmodels.
  • Un compito impegnativo di recupero della palla che richiede una presa precisa con la bocca.
Mostra

Un montaggio veloce di compiti basati su dm_control da DeepMind: