La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Guida allutilizzo di Player e Stage Dott.ssa Mariacarla Staffa Dipartimento di Informatica e Sistemistica University of Naples Federico II Naples, Italy.

Presentazioni simili


Presentazione sul tema: "Guida allutilizzo di Player e Stage Dott.ssa Mariacarla Staffa Dipartimento di Informatica e Sistemistica University of Naples Federico II Naples, Italy."— Transcript della presentazione:

1

2 Guida allutilizzo di Player e Stage Dott.ssa Mariacarla Staffa Dipartimento di Informatica e Sistemistica University of Naples Federico II Naples, Italy

3 Sommario Mariacarla Staffa Il Progetto Player/Stage Il Progetto Player/Stage Player/Stage/Gazebo Player/Stage/Gazebo Il modello Client/Server Il modello Client/Server Scaricare Player/Stage Scaricare Player/Stage Installazione Player/Stage Installazione Player/Stage Creazione del file di Configurazione Creazione del file di Configurazione Creazione del file.world Creazione del file.world Scrittura del Codice Client e Scrittura del Codice Client e compilazione compilazione Introduzione Setting Testing

4 IntroduzioneSettingTesting Il Progetto Player/Stage Player/Stage/Gazebo Il modello Client/Server Mariacarla Staffa Player/Stage è un framework open source per la robotica scritto in C/C++ e sviluppato principalmente dallo Stanford AI Lab, dallUSC Robotics Research Lab e dal Simon Fraser Autonomy Lab con il contributo della comunità open source. Il suo obiettivo è quello di sostenere la ricerca nellambito di sistemi robotici e/o sistemi di sensori. Player è probabilmente il server di controllo per robot maggiormente utilizzato nel mondo e si sta diffondendo sempre piu anche lutilizzo delle sue interfacce di simulazione Stage (2D) e Gazebo (3D). E possibile scaricarlo gratuitamente e consultare la documentazione dal/sul sito ufficiale di Player/Stage:

5 Mariacarla Staffa IntroduzioneSettingTesting Il Progetto Player/Stage Player/Stage/Gazebo Il modello Client/Server Player: fornisce uninterfaccia estremamente semplice verso i sensori e gli attuatori del robot. Stage: è in grado di simulare un ambiente bidimensionale (bitmap) in cui si muovono e agiscono popolazioni di robot, con i loro particolari sensori e attuatori. Gazebo: è una interfaccia grafica di simulazione simile a Stage, ma in 3d.

6 Mariacarla Staffa IntroduzioneSettingTesting Il Progetto Player/Stage Player/Stage/Gazebo Il modello Client/Server Sensori Attuatori Sistema di Controllo Server Sistema Robotico Client

7 Mariacarla Staffa IntroduzioneSettingTesting Il Progetto Player/Stage Player/Stage/Gazebo Il modello Client/Server Sistema di Controllo Player Client Library C/C++ C# Java Tcl Python Lisp Player Server

8 Mariacarla Staffa IntroduzioneSettingTesting Il Progetto Player/Stage Player/Stage/Gazebo Il modello Client/Server Player Client Library C/C++ C# Java Tcl Python Lisp

9 Mariacarla Staffa IntroduzioneSettingTesting Scaricare Player/Stage Installazione Player/Stage Prima di procedere allinstallazione occorre preparare il sistema in modo da non avere spiacevoli errori in fase di compilazione (devono cioè essere installati alcuni pacchetti e alcune librerie utilizzare: Synaptic ) Per i dettagli consultare guida allinstallazione che sarà fornita col materiale del corso. Si consiglia comunque di considerare come punto di riferimento: il sito: e la relativa mailing list: n.b.: E necessario avere i diritti di amministratore per poter procedere con linstallazione Il download di Player /Stage e Gazebo può essere eseguito dal sito:

10 Mariacarla Staffa IntroduzioneSettingTesting Scaricare Player/Stage Installazione Player/Stage Una volta eseguite le operazioni preliminari è possibile installare i pacchetti relativi rispettivamente a Player Stage e Gazebo, attraverso la seguente sequenza di comandi: 1.Decomprimere il file scaricato eseguendo da terminale: $sudo tar xjvf player-.tar.bz2 2.Spostarsi nella directory sorgente di Player: $cd player- 3.Configurare attraverso il comando $sudo./configure 4.Compilare attraverso il comando $sudo make 5.Installare Player attraverso il comando $sudo make install

11 Mariacarla Staffa IntroduzioneSettingTesting Creazione del file di Configurazione Creazione del file.world Scrittura del Codice Client e compilazione Per far invocare un server player bisogna: 1.aprire un terminale 2.posizionarsi nella cartella contenente il file di configurazione 3.e digitare il comando: $ player [options] Dove il è un file di testo che descrive linsieme dei dispositivi che si vogliono istanziare. Testing

12 Mariacarla Staffa IntroduzioneSettingTesting Creazione del file di Configurazione Creazione del file.world Scrittura del Codice Client e compilazione Per esempio, se si vuole creare un interfaccia per un sistema robotico caratterizzato da una piattaforma Pioneer-ActivMedia e un laser range finder-SICKLMS200, la struttura del file di configurazione sarà la seguente: Questo file istruisce il server a creare due dispositivi: Un driver Pioneer P2OS, che supporta linterfaccia position.P2OSposition Un driver SickLMS200 che supporta uninterfaccia laser.SickLMS200laser Il programma Client può connettersi così a questi dispositivi, leggere i dati, inviare comandi e così via.

13 Mariacarla Staffa IntroduzioneSettingTesting Creazione del file di Configurazione Creazione del file.world Scrittura del Codice Client e compilazione driver Interfaccia + dispositivo

14 Mariacarla Staffa IntroduzioneSettingTesting Creazione del file di Configurazione Creazione del file.world Scrittura del Codice Client e compilazione Player Server Player Client (user program) Environment description ? simulazione reale

15 Mariacarla Staffa IntroduzioneSettingTesting Creazione del file di Configurazione Creazione del file.world Scrittura del Codice Client e compilazione Insieme di modelli Caratteristiche generali dellambiente predefiniti: predefiniti: Blobfinder, bumper, gripper, position, laser, Ptz, ranger, speech, ecc. creati dallutente: creati dallutente: attraverso un modello di base chiamato Model La parola chiave define viene utilizzata per creare un nuovo modello a partire da uno già esistente Position size velocity color visibility etc.

16 Mariacarla Staffa IntroduzioneSettingTesting Creazione del file di Configurazione Creazione del file.world Scrittura del Codice Client e compilazione include "pioneer.inc include "map.inc size [20 20] resolution 0.01 gui_interval 10 window( size [ ] size [ ] center [ ] center [ ] scale #size of each bitmap pixel in metres scale #size of each bitmap pixel in metres) map ( bitmap "lab.png" bitmap "lab.png" size [20 20] size [20 20] name "lab" name "lab" )... include "pioneer.inc include "map.inc size [20 20] resolution 0.01 gui_interval 10 window( size [ ] size [ ] center [ ] center [ ] scale #size of each bitmap pixel in metres scale #size of each bitmap pixel in metres) map ( bitmap "lab.png" bitmap "lab.png" size [20 20] size [20 20] name "lab" name "lab" )... Inclusione della libreria che contiene le definizioni relative al robot pioneer Inclusione della libreria che contiene le direttive per utilizzare immagini esterne come sfondo Grandezza del mondo in metri Risoluzione del modello Velocità di aggiornamento dello schermo di simulazione in ms Configurazione della finestra di interfaccia Definizione della mappa che funge da sfondo

17 Mariacarla Staffa IntroduzioneSettingTesting Creazione del file di Configurazione Creazione del file.world Scrittura del Codice Client e compilazione define pioneerblob pioneer2dx ( ptz( blobfinder( ptz( blobfinder( channel_count 2 channel_count 2 channels ["red" "green"]) ) channels ["red" "green"]) )) pioneerblob ( color "blue" color "blue" name "Robot" name "Robot" pose [-4 7 0] pose [-4 7 0]) define puck model ( size [ ] size [ ] blob_return 1 blob_return 1 obstacle_return 1 obstacle_return 1) puck( pose [ ] color "red" ) puck( pose [ ] color "green" ) define pioneerblob pioneer2dx ( ptz( blobfinder( ptz( blobfinder( channel_count 2 channel_count 2 channels ["red" "green"]) ) channels ["red" "green"]) )) pioneerblob ( color "blue" color "blue" name "Robot" name "Robot" pose [-4 7 0] pose [-4 7 0]) define puck model ( size [ ] size [ ] blob_return 1 blob_return 1 obstacle_return 1 obstacle_return 1) puck( pose [ ] color "red" ) puck( pose [ ] color "green" ) Estenzione del modello di base definito dal device pioneer2dx conuna camera blobfinder, che riconosce due colori Definizione del robot: (possibili campi della struttura: name - color - size - pose - ecc.) name - color - size - pose - ecc.) Definizione di un modello di oggetto chiamato puck: (possibili campi della struttura: name - shape - color - size - pose - obstacle return - gripper return - ecc.) Istanziazione di due puck di colori diversi e in diverse posizioni

18 $ player $ player Mariacarla Staffa IntroduzioneSettingTesting Creazione del file di Configurazione Creazione del file.world Scrittura del Codice Client e compilazione Attivare/disattivare la simulazione help Visualizzare componenti statiche (griglie di riferimento, mappa, oggetti) e dinamiche (trace del robot velocità, posizione, ecc.) Salvare lambiente, resettarlo o acquisire screenshot dello stesso a diversi intervalli di tempo Settare preferenza di simulazione (velocità, passi di simulazione,ecc.)

19 #include #include #include "playerc.h" #include "playerc.h" int main(int argc, const char **argv){ playerc_client_t *client; playerc_client_t *client; playerc_position_t *position; playerc_position_t *position; #include #include #include "playerc.h" #include "playerc.h" int main(int argc, const char **argv){ playerc_client_t *client; playerc_client_t *client; playerc_position_t *position; playerc_position_t *position; Mariacarla Staffa IntroduzioneSettingTesting Creazione del file di Configurazione Creazione del file.world Scrittura del Codice Client e compilazione Include la libreria player.h contenente i prototipi delle funzione e i tipi di player Player Client (user program) Player Server simulazione reale Definisce un particolare proxy per il programma client Definisce un dispositivo di tipo position

20 Mariacarla Staffa IntroduzioneSettingTesting Creazione del file di Configurazione Creazione del file.world Scrittura del Codice Client e compilazione 1) Creazione del client e connessione: La funzione create crea un nuovo Client proxy e restituisce un puntatore che può essere usato nelle future chiamate di funzione (localhost può essere rimpiazzato con lhostname di rete del robot). La funzione connect notifica al server player che un nuovo Client desidera ricevere dati. Si procede secondo la seguente sequenza di passi: client = playerc_client_create(NULL, "localhost", 6665); playerc_client_connect(client); playerc_client_connect(client);

21 Mariacarla Staffa IntroduzioneSettingTesting Creazione del file di Configurazione Creazione del file.world Scrittura del Codice Client e compilazione 2) Creazione e connessione del dispositivo proxy: La funzione create crea un nuovo dispositivo proxy e restituisce un puntatore attraverso il quale il proxy può essere richiamato in altre funzioni. La funzione subscribe notifica al server player che un nuovo Client sta utilizzando il dispositivo position, e che il client si aspetta di poter sia inviare comandi che ricevere dati (PLAYER_MODE_ALL). position = playerc_position_create(client, 0); playerc_position_subscribe(position, PLAYER_ALL_MODE); position = playerc_position_create(client, 0); playerc_position_subscribe(position, PLAYER_ALL_MODE); 3) Configurazione del dispositivo e invio dei comandi: La funzione enable invia una richiesta di configurazione al server, cambiando lo stato del motore del robot da off a on, consentendo in tal modo al robot di muoversi. La funzione setspeed invia una nuova velocità al motore. playerc_position_enable(position, 1); playerc_position_set_speed(position, 0, 0, 0.1); playerc_position_enable(position, 1); playerc_position_set_speed(position, 0, 0, 0.1);

22 Mariacarla Staffa 4) Lettura dei dati dal dispositivo: La funzione di lettura read legge blocchi di dati provenienti da uno dei dispositivi sottoscritti o dal server stesso (che invia regolarmente dei messaggi di sincronizzazione a tutti i suoi client). Questa funzione, in particolare, legge i dati in entrata e aggiorna automaticamente gli elementi nellappropriato dispositivo proxy. La funzione inoltre restituisce un puntatore al proxy aggiornato, così che il programma utente può, se desidera, attivare gli eventi appropriati a seconda dei dati ricevuti. playerc_client_read(client); printf("position : %f %f %f\n", position->px,... ); playerc_client_read(client); IntroduzioneSettingTesting Creazione del file di Configurazione Creazione del file.world Scrittura del Codice Client e compilazione

23 Mariacarla Staffa 5) Distruzione del proxy: La funzione di unsubscribe comunica al server Player che il client non utilizzerà più quel dispositivo. La funzione destroy, allora, libera la memoria associata a quel dispositivo proxy e invalida quindi il puntatore al device che da quel momento in poi non può più essere utilizzato. 6) Disconnessione e distruzione del client proxy: La funzione disconnect dice al server che il client è in fase di arresto e la funzione destroy libera la memoria associata al client. playerc_position_unsubscribe(position);playerc_position_destroy(position);playerc_position_unsubscribe(position);playerc_position_destroy(position); playerc_client_disconnect(client);playerc_client_destroy(client);playerc_client_disconnect(client);playerc_client_destroy(client); IntroduzioneSettingTesting Creazione del file di Configurazione Creazione del file.world Scrittura del Codice Client e compilazione

24 Mariacarla Staffa IntroduzioneSettingTesting Creazione del file di Configurazione Creazione del file.world Scrittura del Codice Client e compilazione Player Client User Program $ gcc -o nomeclient `pkg-config --cflags playerc` nomeclient.c `pkgconfig --libs playerc` $./nomeclient

25 Mariacarla Staffa Riferimenti manuale utente per linstallazione di Player e Stage


Scaricare ppt "Guida allutilizzo di Player e Stage Dott.ssa Mariacarla Staffa Dipartimento di Informatica e Sistemistica University of Naples Federico II Naples, Italy."

Presentazioni simili


Annunci Google