CORSO SISTEMI DI GOVERNO DEI ROBOT Lezione n.7 Un simulatore

Slides:



Advertisements
Presentazioni simili
Gestione di un Sistema di Talk multiutente
Advertisements

INFORMATICA Altre Istruzioni di I/O
PROGETTO EDUCAZIONE SENTIMENTALE A.S
Linguaggio R Raffaele Miele Dipartimento di Matematica e Statistica Università degli Studi di Napoli Federico II
ESERCITAZIONE R 12,19 marzo 2012 Mario Mastrangelo
Come si crea un Sito Web a cura del Prof. Sampognaro Giuseppe
Corso di Fondamenti di Informatica
Università degli Studi di Napoli "Federico II" - a.a. 2002/2003 Le TD nei processi di apprendimento: strategie di apprendimento collaborativo supportate.
© 2007 SEI-Società Editrice Internazionale, Apogeo Unità A1 Introduzione a Java.
Code::Blocks Ambiente di sviluppo.
I linguaggi di programmazione
INTERNET : ARPA sviluppa ARPANET (rete di computer per scopi militari)
06/01/2014 M.C. De Vivo Laboratorio informatico Banche dati off line Tatoo Banche dati off line Richiamare il programma cliccando.
Ogni PC, per iniziare a lavorare, ha bisogno di un sistema operativo. Infatti questo è il primo programma che viene eseguito e che permette all'utente.
CONOSCIAMO IL WINDOWS '95.
Dipartimento di Matematica
Connessione con MySQL.
E.Mumolo, DEEI Player Stage E.Mumolo, DEEI
SINCRONIZZAZIONE E TRASFERIMENTO VIA WEB DI IMMAGINI E DATI MULTIMEDIALI CON INFORMAZIONI GEOGRAFICHE E RAPPRESENTAZIONI CARTOGRAFICHE Laureando: Mitja.
GLUT & OpenGL Ing. Tommaso Coviello Politecnico di Bari
Dr. Giovanni Stracquadanio
CD ROM Library. Descrizione generale del sistema La soluzione di CD ROM Library sviluppata permette la condivisione di rete di CD ROM (qualunque numero)
Ordine dei Dottori Commercialisti e degli Esperti Contabili di Ivrea, Pinerolo, Torino1 effettuate le operazioni di generazione dell'Ambiente di sicurezza.
Argomenti dalla linea dei comandi Gli argomenti possono essere passati a qualsiasi funzione di un programma, compresa la main(), direttamente dalla linea.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE File Marco D. Santambrogio – Ver. aggiornata al 15 Maggio 2013.
Laboratorio di Linguaggi note sull'uso dell' IDE DevC++ Marco Tarini Università dellInsubria Facoltà di Scienze Matematiche, Fisiche e Naturali di Varese.
1 Corso di Informatica (Programmazione) Lezione 6 (31 ottobre 2008) Introduzione a Java: primo programma, installazione dellambiente di sviluppo, compilazione.
Introduzione al linguaggio Java
OPEN OFFICE e IMPRESS Masucci Antonia Maria.
Installazione pacchetti sotto Linux. Linux: Installare le applicazioni Adesso che abbiamo configurato Linux vogliamo imparare a installare qualche programma.
Posta elettronica ( ) chiocciola" comunemente letta at Identificativo dellutente Identificativo del computer centrale sul quale risiede.
CORSO DI INFORMATICA LAUREA TRIENNALE-COMUNICAZIONE & DAMS
Corso di Informatica A.A
INTRODUZIONE AD OMNET++
INFORMATICA Altre Istruzioni di I/O. © Piero Demichelis 2 Funzioni di I/O Per la lettura e la scrittura da videoterminale il C prevede numerose istruzioni.
UNIVERSITÀ DEGLI STUDI DI MODENA E REGGIO EMILIA Facoltà di Scienze Matematiche, Fisiche e Naturali Corso di Laurea in Scienze dellInformazione Applicazione.
ASP Lezione 1 Concetti di base. Introduzione ad ASP ASP (che è la sigla di Active Server Pages) è un ambiente di programmazione per le pagine web. La.
Come ragiona il computer
C# LE BASI 2007 Prima lezione - Introduzione.
Linux Riunione Referenti-CCL 2-Luglio Utilizzo di Linux Principale (unica) piattaforma di calcolo per HEP Grid Supportato dalle maggiori industrie.
Il compilatore Dev-C++
La gestione automatica delle forniture telematiche
Modulo 7 – reti informatiche u.d. 3 (syllabus – )
Inserire il CDROM CygWin nel lettore, aprite la directory cyg e lanciare in esecuzione (con un doppio click del pulsante sinistro del mouse sulla relativa.
Guida IIS 6 A cura di Nicola Del Re.
Centro di Assistenza Multicanale (C.A.M.) di Cagliari
Microsoft Access Nozioni di Base.
Creazione progetto in C++/DEV
Il Sistema Operativo (1)
Corso di Informatica A.A Corso di Informatica Laurea Triennale - Comunicazione&Dams Dott.ssa Maria Vittoria Avolio Laurea.
Backup and Migrate, Captcha ReCaptcha e Spamicide Docente: Simone Zambenedetti. Moduli per la Sicurezza.
1 Applet ed HTML Fondamenti di Informatica Corso D.
Amministrazione della rete: web server Apache
Lezione 1 Approccio al sistema operativo : la distribuzione Knoppix Live Cd Knoppix 3.6 Interfacce a caratteri e grafica: console e windows manager File.
Corso di Programmazione Grafica e Laboratorio Daniele Marini
ASP – Active Server Pages Introduzione Pagine Web Statiche & Dinamiche(ASP)
Ai.Net. Potenzialità Velocizzazione dei tempi di acquisizione e consegna dell’ordine; possibilità di essere informati su eventuali ritardi di produzione.
PHP - PHP: Hypertext Preprocessor. Introduzione PHP (acronimo ricorsivo per "PHP: Hypertext Preprocessor") è un linguaggio di scripting general-purpose.
FTP File Transfer Protocol
LABVIEW Sommario Che cosa è uno strumento virtuale (VI) creato con LABVIEW Parti di un VI: pannello frontale diagramma a blocchi Confronto tra il principio.
Fabrizio Felici LAMP workshop GROsseto Linux Users Group.
Indice argomenti Installazione e configurazione
TW Asp - Active Server Pages Nicola Gessa. TW Nicola Gessa Introduzione n Con l’acronimo ASP (Active Server Pages) si identifica NON un linguaggio di.
Progetto di Ingegneria del Web Anno Accademico 2007/2008 Stefano Pigiani Bruno Ricci Marco Ruzzon.
Sistemi di elaborazione dell’informazione Modulo 4 -Tecniche di programmazione distribuita Unità didattica 1 -Socket library Ernesto Damiani Lezione 1.
Sistemi operativi di rete Ing. A. Stile – Ing. L. Marchesano – 1/18.
Internetworking V anno.
Eprogram informatica V anno.
I Sistemi Operativi. Che cosa sono? Il sistema operativo è un software di base che fa funzionare il computer. I Sistemi operativi più importanti sono:
LA GESTIONE TELEMATICA DEI CERTIFICATI DI ORIGINE presentazione WebCO IBSsas.
Transcript della presentazione:

CORSO SISTEMI DI GOVERNO DEI ROBOT Lezione n.7 Un simulatore lezione tenuta dalla d.ssa Mariacarla Staffa prof. Ernesto Burattini

Guida all’utilizzo di Player e Stage Dott.ssa Mariacarla Staffa Dipartimento di Informatica e Sistemistica University of Naples “Federico II” Naples, Italy mariacarla.staffa@unina.it

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

Mariacarla Staffa mariacarla.staffa@unina.it Introduzione Introduzione Setting Testing Il Progetto Player/Stage Player/Stage/Gazebo Il modello Client/Server Player/Stage è un framework open source per la robotica scritto in C/C++ e sviluppato principalmente dallo Stanford AI Lab, dall’USC Robotics Research Lab e dal Simon Fraser Autonomy Lab con il contributo della comunità open source. Il suo obiettivo è quello di sostenere la ricerca nell’ambito 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 l’utilizzo 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: http://playerstage.sourceforge.net/ Mariacarla Staffa mariacarla.staffa@unina.it

Mariacarla Staffa mariacarla.staffa@unina.it Introduzione Setting Testing Il Progetto Player/Stage Player/Stage/Gazebo Il modello Client/Server Player: fornisce un’interfaccia 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. Mariacarla Staffa mariacarla.staffa@unina.it

Mariacarla Staffa mariacarla.staffa@unina.it Introduzione Setting Testing Il Progetto Player/Stage Player/Stage/Gazebo Il modello Client/Server Sistema Robotico Sensori Server Client Sistema di Controllo Attuatori Mariacarla Staffa mariacarla.staffa@unina.it

Mariacarla Staffa mariacarla.staffa@unina.it Introduzione Setting Testing Il Progetto Player/Stage Player/Stage/Gazebo Il modello Client/Server Player Server Player Client Library C/C++ C# Java Tcl Python Lisp Sistema di Controllo Mariacarla Staffa mariacarla.staffa@unina.it

Mariacarla Staffa mariacarla.staffa@unina.it Introduzione Setting Testing Il Progetto Player/Stage Player/Stage/Gazebo Il modello Client/Server Player Client Library C/C++ C# Java Tcl Python Lisp Mariacarla Staffa mariacarla.staffa@unina.it

Si consiglia comunque di considerare come punto di riferimento: Introduzione Setting Testing Scaricare Player/Stage Installazione Player/Stage Setting Il download di Player /Stage e Gazebo può essere eseguito dal sito: http://sourceforge.net/project/showfiles.php?group_id=42445 Prima di procedere all’installazione 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 all’installazione che sarà fornita col materiale del corso. Si consiglia comunque di considerare come punto di riferimento: il sito: http://playerstage.sourceforge.net/ e la relativa mailing list: http://sourceforge.net/mail/?group_id=42445 n.b.: E’ necessario avere i diritti di amministratore per poter procedere con l’installazione Mariacarla Staffa mariacarla.staffa@unina.it

Installazione Player/Stage Introduzione Setting Testing 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: Decomprimere il file scaricato eseguendo da terminale: $sudo tar xjvf player-<version>.tar.bz2 Spostarsi nella directory sorgente di Player: $cd player-<version> Configurare attraverso il comando $sudo ./configure Compilare attraverso il comando $sudo make Installare Player attraverso il comando $sudo make install Mariacarla Staffa mariacarla.staffa@unina.it

Mariacarla Staffa mariacarla.staffa@unina.it Introduzione Setting Testing Creazione del file di Configurazione Creazione del file .world Scrittura del Codice Client e compilazione Testing Per far invocare un server player bisogna: aprire un terminale posizionarsi nella cartella contenente il file di configurazione e digitare il comando: $ player [options] <configfile>   Dove il <configfile> è un file di testo che descrive l’insieme dei dispositivi che si vogliono istanziare. Mariacarla Staffa mariacarla.staffa@unina.it

Mariacarla Staffa mariacarla.staffa@unina.it Introduzione Setting Testing 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 l’interfaccia position. Un driver SickLMS200 che supporta un’interfaccia laser. Il programma Client può connettersi così a questi dispositivi, leggere i dati, inviare comandi e così via. Mariacarla Staffa mariacarla.staffa@unina.it

Mariacarla Staffa mariacarla.staffa@unina.it Introduzione Setting Testing Creazione del file di Configurazione Creazione del file .world Scrittura del Codice Client e compilazione Interfaccia + driver dispositivo Mariacarla Staffa mariacarla.staffa@unina.it 13

Creazione del file .world Introduzione Setting Testing Creazione del file di Configurazione Creazione del file .world Scrittura del Codice Client e compilazione Player Server <.cfg> Player Client (user program) reale <.cfg> <.world> simulazione Environment description ? Mariacarla Staffa mariacarla.staffa@unina.it

Creazione del file .world Introduzione Setting Testing Creazione del file di Configurazione Creazione del file .world Scrittura del Codice Client e compilazione <.world> Caratteristiche generali dell’ambiente Insieme di “modelli” Position size velocity color visibility etc. predefiniti: Blobfinder, bumper , gripper, position, laser, Ptz, ranger, speech, ecc. creati dall’utente: attraverso un modello di base chiamato “Model” La parola chiave “define” viene utilizzata per creare un nuovo modello a partire da uno già esistente” Mariacarla Staffa mariacarla.staffa@unina.it

Creazione del file .world Introduzione Setting Testing Creazione del file di Configurazione Creazione del file .world Scrittura del Codice Client e compilazione Inclusione della libreria che contiene le definizioni relative al robot pioneer Inclusione della libreria che contiene le direttive per utilizzare immagini esterne come sfondo include "pioneer.inc“ include "map.inc“ size [20 20] resolution 0.01 gui_interval 10 window( size [ 800.000 800.000 ] center [ 0.0 0.0] scale 0.028 #size of each bitmap pixel in metres ) map ( bitmap "lab.png" name "lab" ) . . . 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 Mariacarla Staffa mariacarla.staffa@unina.it

Creazione del file .world Introduzione Setting Testing Creazione del file di Configurazione Creazione del file .world Scrittura del Codice Client e compilazione . . . define pioneerblob pioneer2dx ( ptz( blobfinder( channel_count 2 channels ["red" "green"]) ) ) pioneerblob ( color "blue" name "Robot" pose [-4 7 0] define puck model ( size [ 0.40 0.40] blob_return 1 obstacle_return 1 puck( pose [-8 -2 0 ] color "red" ) puck( pose [-7 -7.5 0 ] 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.) 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 Mariacarla Staffa mariacarla.staffa@unina.it

Creazione del file .world Introduzione Setting Testing Creazione del file di Configurazione Creazione del file .world Scrittura del Codice Client e compilazione Visualizzare componenti statiche (griglie di riferimento, mappa, oggetti) e dinamiche (trace del robot velocità, posizione, ecc.) Attivare/disattivare la simulazione help Settare preferenza di simulazione (velocità, passi di simulazione,ecc.) $ player <.cfg> <.cfg> <.world> Salvare l’ambiente, resettarlo o acquisire screenshot dello stesso a diversi intervalli di tempo Mariacarla Staffa mariacarla.staffa@unina.it

Scrittura del Codice Client e compilazione Introduzione Setting Testing Creazione del file di Configurazione Creazione del file .world Scrittura del Codice Client e compilazione Player Server <.cfg> <.world> simulazione reale Player Client (user program) Include la libreria “player.h” contenente i prototipi delle funzione e i tipi di player #include <stdio.h> #include "playerc.h"  int main(int argc, const char **argv){ playerc_client_t *client; playerc_position_t *position; . . . Definisce un particolare proxy per il programma client Definisce un dispositivo di tipo position Mariacarla Staffa mariacarla.staffa@unina.it

Mariacarla Staffa mariacarla.staffa@unina.it Introduzione Setting Testing Creazione del file di Configurazione Creazione del file .world Scrittura del Codice Client e compilazione Si procede secondo la seguente sequenza di passi:  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 l’hostname di rete del robot). La funzione connect notifica al server player che un nuovo Client desidera ricevere dati. client = playerc_client_create(NULL, "localhost", 6665); playerc_client_connect(client); Mariacarla Staffa mariacarla.staffa@unina.it

Mariacarla Staffa mariacarla.staffa@unina.it Introduzione Setting Testing 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);   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); Mariacarla Staffa mariacarla.staffa@unina.it

Mariacarla Staffa mariacarla.staffa@unina.it Introduzione Setting Testing Creazione del file di Configurazione Creazione del file .world Scrittura del Codice Client e compilazione 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 nell’appropriato 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, ... ); Mariacarla Staffa mariacarla.staffa@unina.it

Mariacarla Staffa mariacarla.staffa@unina.it Introduzione Setting Testing Creazione del file di Configurazione Creazione del file .world Scrittura del Codice Client e compilazione 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_client_disconnect(client); playerc_client_destroy(client); Mariacarla Staffa mariacarla.staffa@unina.it

Mariacarla Staffa mariacarla.staffa@unina.it Introduzione Setting Testing Creazione del file di Configurazione Creazione del file .world Scrittura del Codice Client e compilazione $ gcc -o nomeclient `pkg-config --cflags playerc` nomeclient.c `pkgconfig --libs playerc` $ ./nomeclient Player Client User Program Mariacarla Staffa mariacarla.staffa@unina.it

Mariacarla Staffa mariacarla.staffa@unina.it Riferimenti http://playerstage.sourceforge.net/ http://sourceforge.net/mail/?group_id=42445 http://www.activrobots.com/ manuale utente per l’installazione di Player e Stage Mariacarla Staffa mariacarla.staffa@unina.it