"Applicazione di un laser range scanner a un robot mobile", 2010
"Applicazione di un laser range scanner a un robot mobile", 2010
"Applicazione di un laser range scanner a un robot mobile", 2010
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
packet.doubleToBuf(0);<br />
client.requestOnce("ratioDrive", &packet);<br />
“Interactive map”: viene aperta <strong>un</strong>a nuova pagina web in cui è raffigurata la mappa del<br />
laboratorio con evidenziati i vari Goals. Cliccando su <strong>un</strong>o <strong>di</strong> questi ultimi, il <strong>robot</strong> si<br />
posizionerà su <strong>di</strong> esso. Questo grazie all’invocazione <strong>di</strong> <strong>un</strong>a CGI che, a sua volta, invoca il<br />
programma client relativo a quel goal, come descritto precedentemente.<br />
“Stop the <strong>robot</strong>”: il <strong>robot</strong> si ferma. Questo avviene grazie all’invocazione da parte della<br />
relativa CGI (“stop.cgi”) <strong>di</strong> <strong>un</strong> programma client che contiene la riga <strong>di</strong> co<strong>di</strong>ce<br />
“client.requestOnce("stop");”, comando che permette al server <strong>di</strong> bloccare le ruote. Segue<br />
poi l’uccisione <strong>di</strong> eventuali altri programmi client attivi, me<strong>di</strong>ante il comando “killall -9”<br />
seguito dal nome del programma. Nell’appen<strong>di</strong>ce 8 è riportata la CGI relativa a questa<br />
modalità<br />
“Park the <strong>robot</strong>”: il <strong>robot</strong> si posiziona prima sul goal “0”, compie <strong>un</strong>a rotazione <strong>di</strong> 180 gra<strong>di</strong><br />
e poi rientra in stazione in retromarcia. Questo sempre grazie all’invocazione da parte della<br />
relativa CGI (“parkRobot.cgi”) del programma client per il goal “0” e del successivo<br />
programma per far compiere al <strong>robot</strong> <strong>un</strong>a rotazione <strong>di</strong> 180 gra<strong>di</strong> e per far rientrare il <strong>robot</strong><br />
in retromarcia.<br />
“Emergency stop”: il <strong>robot</strong> interrompe qual<strong>un</strong>que attività. Vengono <strong>di</strong>sattivati tutti i<br />
programmi in esecuzione, sia client, sia server, sempre me<strong>di</strong>ante il comando “killall -9”.<br />
Durante l’invocazione <strong>di</strong> tutte le CGI, quin<strong>di</strong>, la struttura ricorrente dei programmi invocati vede<br />
sempre <strong>un</strong> programma server (“arnlServer”) che ha il compito fondamentale <strong>di</strong> tenere registrati i<br />
dati <strong>di</strong> localizzazione (dove si trova il <strong>robot</strong> all’interno della stanza) e <strong>di</strong> inviare i coman<strong>di</strong> meccanici<br />
alle ruote motrici del <strong>robot</strong> me<strong>di</strong>ante la porta USB, e <strong>un</strong> programma client che ha invece il compito<br />
37