Salve,
sono uno studente di ingegneria dell'Automazione dell'università degli studi di Firenze. Ho realizzato un robot mobile tramite ruote in modalità differential drive e lo sto programmando attraverso la generazione di codice da scicoslab. Ho caricato sulla scheda flex il seguente sistema a blocchi scicos:
Problema con blocco encoder Motion board e porta seriale UD
Moderator: paolo.gai
Problema con blocco encoder Motion board e blocco UDP
Chiedo scusa per l'invio prematuro messaggio. Lo schema a blocchi è il seguente:

Questo schema retroazionato serve per far inseguire al robot una traiettoria rettilinea (creata dal blocco T_rect ) e una volta caricato sulla scheda sembra funzionare. Il problema è che quando vado a visualizzare i valori di X,Y e theta dalla porta ethernet, tramite lo schema:
i valori ottenuti sono nulli. La cosa strana è che senza retroazione i dati sono visualizzati correttamente, ho fatto una prova con lo schema:

e in questo modo i dati arrivano. Qualcuno ha già avuto problemi di questo tipo?

Questo schema retroazionato serve per far inseguire al robot una traiettoria rettilinea (creata dal blocco T_rect ) e una volta caricato sulla scheda sembra funzionare. Il problema è che quando vado a visualizzare i valori di X,Y e theta dalla porta ethernet, tramite lo schema:

i valori ottenuti sono nulli. La cosa strana è che senza retroazione i dati sono visualizzati correttamente, ho fatto una prova con lo schema:

e in questo modo i dati arrivano. Qualcuno ha già avuto problemi di questo tipo?
Re: Problema con blocco encoder Motion board e porta seriale
Prova a verificare se i dati escono veramente dal sistema. Infatti, se c'e' un problema di qualche tipo nel codice generato di fatto il sistema non spedirà pacchetti, che risultareanno sempre 0 lato host.
Per testare l'arrivo dei pacchetti puoi usare dei software tipo http://www.wireshark.org/
La cosa potrebbe anche accadere per las eguente causa: se i calcoli da effettuare sono eccessivi, il sistema non riuscirà a terminare i calcoli prima del prossimo tempo di campionamento. L'effetto è che la CPU sarà utilizzata al 100% dal task di controllo, senza lasciare spazio al task a bassa priorità che si occupa di spedire i dati tramite UDP.
In quel caso, probabilmente basta aumentare il periodo di campionamento (ovvero abbassare la frequenza del controllo).
Ciao,
PJ
Per testare l'arrivo dei pacchetti puoi usare dei software tipo http://www.wireshark.org/
La cosa potrebbe anche accadere per las eguente causa: se i calcoli da effettuare sono eccessivi, il sistema non riuscirà a terminare i calcoli prima del prossimo tempo di campionamento. L'effetto è che la CPU sarà utilizzata al 100% dal task di controllo, senza lasciare spazio al task a bassa priorità che si occupa di spedire i dati tramite UDP.
In quel caso, probabilmente basta aumentare il periodo di campionamento (ovvero abbassare la frequenza del controllo).
Ciao,
PJ
Re: Problema con blocco encoder Motion board e porta seriale
ok farò subito queste prove grazie ancora vi farò sapere.
Hal
Hal