Italian - Italy

Java robot - Software opensource per rover radiocomandati

Scritto da Administrator.

Valutazione attuale: / 2
ScarsoOttimo 

Stupendo progetto opensource, nato per il controllo remoto di un robot rover.
Sembra davvero un'ottimo prodotto strapieno di funzioni e completamente configurabile, scritto in java quindi funzionante su praticamente qualsiasi macchina. Gestisce telecamere, sensori, addirittura schede di potenza per motori, insomma è quasi tutto pronto!! Supporta nativamente diverse interfacce commerciali ma è davvero cheap perchè è completamente configurabile e quindi adattabile anche ad elettroniche autocostruite.

L'autore sembra parecchio in gamba, il rover costruito sembra fatto davvero bene e dispone perfino di una piattaforma autostabilizzante tramite giroscopi. Notate tra le altre cose lo shotgun radiocontrollato! :D

Per ora non l'ho ancora provato, la documentazione è ancora poca e non mi è riuscito neppure di installarlo, appena testato vi darò i pareri in merito.


Qui il link a source forge: http://sourceforge.net/projects/javarobot/

Qui tutte le features:

 

Software Generico e file di configurazione - Il sw è stato fin dall'inizio pensato per essere totalmente generico per ogni tipo di robot. Ogni funzionalità è configurabile tramite un banale file di  esto suddiviso in sezioni, parametri e valori.

Robot Virtuale - Il software, sia server che client, può funzionare anche senza essere collegato direttamente al robot per il quale è presente un pannello di simulazione per ogni pezzo hardware. In questo modo è possibile, ad esempio, configurare o sviluppare ulteriormente il software pur non avendo il robot a disposizione.

Webcam - E' possibile usare una semplicissima webcam per trasmettere la vista ai clients di controllo. E' compatibile con qualunque webcam e il target frame rate è configurabile a piacere. Tuttavia questa elastica funzionalità è CPU intensive e pertanto si consiglia di limitare il frame rate a 10/s tramite file di configurazione. Per ottenere frame rate superiori è sufficente installare una ip-camera e configurare il routing sul dispositivo principale wifi (o Bridge Connection per Windows XP)

Heartbeat - Un heartbeat sul robot controlla costantemente con pochi bytes la presenza di almeno un client di controllo. Dopo un certo periodo di assenza di un client di controllo il robot assume automaticamente una posizione di stallo. E' configurabile sia l'heartbeat interval (default 4 secondi), sia la posizione di stallo.

Accelerometro e piano stabile - Sul robot è montato un accelerometro con preconfigurato un algoritmo basico per mantenere orizzontale un piano pilotando automaticamente 4 servi. Il baricentro si può reimpostare a runtime da client di controllo che dispone in tempo reale di un pannello grafico rappresentante i tre assi, il baricentro attuale, il baricentro target e il discostamento massimo. Il tutto è configurabile o disattivabile da file di configurazione.

 Sensori - Sul robot sono presenti un sensore di luce, temperatura, voltaggio e diversi sensori di ampere che possono essere aggiunti a piacere. I dati sono disponibili in tempo reale ai client di controllo. E' configurabile una soglia di allarme per il voltaggio. I massimi e minimi raggiunti da voltaggio e ampere sono sempre visibili. Da file di configurazione si possono aggiungere a piacere amperometri a voltmetri con la disponibilità del calcolo watt in tempo reale.

 Nel robot è presente un sintetizzatore vocale(Inglese). Una notifica vocale viene emessa per indicare l’inizio di esecuzione del software sul robot e alla connessione di ogni client amministrativo.

 Relay Board - Sul robot è presente una Relay Board per accendere/spegnere qualunque dispositivo già presente o extra (luci, ...). Un ulteriore risparmio di corrente è stato ottenuto collegando ai relay anche la IP-Camera; questi dispositivi sono spenti di default.

 Relay Board per risparmio corrente - Tramite file di configurazione è possibile associare un relay ad uno o più servi in modo da poter togliere automaticamente corrente ai servi quando non è richiesto alcun movimento per evitare inutili consumi di corrente necessari ad alimentare l’elettronica del servo e le bobine del motore. E’ possibile specificare lo stato del relay in quiete (aperto/chiuso) e il ritardo in millisecondi (default 1000) dopo l’ultimo comando inviato al servo. Questa feature è stata discussa nel thread Relay Board per risparmiare corrente


BOX CONSOLE AMMINISTRATIVA

Caratteristiche generali - E’ possibile trasmettere i comandi più frequentemente utilizzati direttamente tramite vari controllers reali (ad esempio bottoni e sliders) al client amministrativo che poi ritrasmetterà al robot. Tutte le associazione tra canali fisici(sensori, digital inputs, digital outputs) della scheda Phidget all’interno della console e i canali dei servi sono impostabili da file di configurazione.


Sliders motori - Due Sliders per pilotare rispettivamente il gruppo motori destro e sinistro

Pulsante stop motori - Un pulsante per arrestare rapidamente il robot indipendentemente dalla posizione delle sliders dei controlli motori. Non appena si agisce sulle slider di controllo motori il mezzo riprenderà immediatamente velocità.

Interruttore arresto permanente motori - Un interruttore per arrestare il robot indipendentemente dalla posizione delle sliders dei controlli motori e disabilitare permanentemente l’uso delle slider. Il relativo led si spegnerà e anche variando di posizione le sliders di controllo motori nessun comando verrà inviato al robot. E’ importante notare che allo startup di ogni client amministrativo dotato di console le sliders di controllo motori sono disabilitate ed è necessario agire manualmente sull’interruttore di arresto permanente motori anche se già in posizione di marcia; con questo comportamento si cerca di evitare l’invio involontario di comandi di marcia al robot.

CONNETTIVITA'

Protocolli – Tutte le comunicazioni sono di tipo wifi, esattamente come quello di casa o di molti luoghi pubblici. I protocolli di comunicazione usati rientrano tra i classici TCP o UDP(usato solo per la trasmissione del video proveniente dalla webcam). E' quindi possibile controllare il robot da internet. Rilevante è la funzionalità che permette al client di tentare di ristabilire automaticamente e in modo trasparente la connessione al robot in caso di caduta. Sul client di controllo sono presenti indicatori di stato della connessione per i canali di entrata, uscita e trasmissione webcam.

Connessioni illimitate - Numero illimitato di connessioni client amministrative di controllo. Ad esempio da un pc si può controllare il movimento, da un altro pc si può controllare la videocamera o altre funzionalità.

Push & Pull - La comunicazione in entrambi i sensi, tra robot e client di controllo, avviene sia in tecnologia “Push” che in tecnologia “Pull”. Che cosa si intende per “Push” e “Pull”? Speghiamolo direttamente con esempio reale. Sul robot è presente un voltmetro e il client richiede di aggiornare la visualizzazione del suo valore ogni 5 secondi, in 5 secondi il valore del voltaggio può variare diverse volte, anche con dei picchi rilevanti che non vengono visualizzati, ma a noi basta dare un’occhiatina di tanto in tanto e riteniamo i valori visualizzati ogni 5 secondi una valida media del voltaggio; questo è il “Pull”, è una tecnologia molto semplice, in altri casi si chiama anche “watch dog”. Il “Push” viene invece usato, ad esempio, per visualizzare lo stato dei relay sul robot; il robot notifica ogni cambiamento di stato di un relay a tutti i client di controllo connessi, direttamente di sua iniziativa, per avere la certezza che i client possano visualizzare anche i più rapidi cambiamenti di stato che potrebbero venire invece persi durante la pausa di un “Pull”.

 

SERVI

Servi virtuali - . E' possibile configurare dei servi virtuali composti da 2 servi reali che agiscono in direzioni diverse o uniformi. E’ il caso, ad esempio, delle 4 ruote sterzanti che generalmente necessitano di due servi sincronizzati che agiscono in senso opposto. Oppure si possono configurare due servi al fine di ottenere lo stesso movimento sincronizzato rispettando i limiti di range specificatamente assegnati ad ogni singolo servo, ciò che non si pò ottenere con un normale cavo “Y”. In cascata si possono quindi creare servi virtuali composti da servi virtuali rendendo illimitato il numero di combinazioni.

Funzioni comuni - I servi sono ampiamente configurabili. Dal file di configurazione per ogni servo si può facilmente specificare il range (es.: 10-240), il reset (es.: 127), i tasti mappati sui client di controllo, l'incremento per ogni step di avanzamento e la velocità di avanzamento (si, la velocità!)
- Per ottimizzare al massimo il risparmio di corrente nell’uso dei servi si veda la sezione relativa alla Relay Board.
- Per l’input diretto dei servi si veda la sezione relativa alla Box Console Amministrativa


Componenti hw supportati

 

Hardware correlato

Aggiungi commento


Codice di sicurezza
Aggiorna