User Tools

Site Tools


neurali:openrave

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
neurali:openrave [2015/02/10 17:15] – [Dipendenze] profproneurali:openrave [2020/06/08 22:20] (current) – external edit 127.0.0.1
Line 1: Line 1:
 +====== OpenRAVE ======
 +
 +===== Dipendenze =====
 +
 +**NOTA**: in data 2015-02-01 il pacchetto ufficiale ubuntu openrave06-sp = single precision
 +è disponibile solo per Ubuntu 12.04 (precise).....
 +
 +  * ogre-1.8-tool
 +  * cmake
 +  * libsoqt4-dev
 +  * libboost-python-dev python python-dev python-numpy ipython
 +  * Bullet physics  (sorgenti da compilare!)
 +
 +
 +===== 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)
 +
 +[[neurali: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 
 +  - plotting in GUI 3d
 +
 +
 +===== 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.