OpenRAVE
Dipendenze
NOTA: in data 2015-02-01 il pacchetto ufficiale ubuntu openrave06-sp = single precision
è disponibile solo per Ubuntu 12.04 (precise)…..
Struttura
è composto da 4 strati:
core
possono essere eseguite più istanze di core contemporaneamente
non è necessario riavviare i core
ogni core carica i propri plugin e i propri planner
text comand line (per controllare simulazione, riavviabile)
gui viewer
interfaccia (tramite plugin)
openrave tutorial
Interfacce
Sono disponibili i seguenti tipi di interfacce (tramite plugin)
(motion/manipulator) planner: definisce condizioni iniziali
controller: fornisce funzionalità per traiettorie e query stato robot
sensore: fornisce dati in formato standard
robot: è l'interfaccia per usare robot tramite client
invers kinetic solver: restituisce la soluzione da usare come input verso un planner
motore di fisica: astrazione verso una generica libreria di fisica
Funzioni
comunicazione con plugin
ricevere valori dalla scena (oggetti o robot)
inviare valori alla scena
interrogare per collisioni
aggiungere o eliminare plugin/oggetti dalla scena
-
IKFast
utilizza soluzioni in forma chiusa, mille volte più rapide delle soluzioni numeriche
si fornisce posizione finale desiderata (x,y,z), si ottengono i movimenti necessari per raggiungere tale posizione
se il numero delle giunture (join) del robot è elevato, i Gradi di libertà del movimento (DOF) (le incognite) sono troppe rispetto alle equazioni disponibili quindi bisogna fornire dei vingoli aggiuntivi
i bracci del robot non si devono intersecare mai!
rileva casi degeneri con infinite soluzioni, e soluzioni non valide
IKFast genera codice C++ compilabile
- La sottoclasse Robot.Manipulator, serve a definire le giunture del robot
- Database generator: gli elementi di cinematica sono precompilati e disponibili nelle tabelle di un database
LAPAC
liblapacke-dev
Linear Algebra Package : utile per risolvere sistemi di equazioni lineari, invertire matrici, ecc.