MTP:
MOTION TRACKING
PLATFORM
BlockRoad – Hackathon 2021
L’idea
La nostra idea è quella di risolvere un problema che si presenta durante l’osservazione al
microscopio di campioni che abbiano elevata mobilità. Osservare uno di questi campioni
mantenendo l’oggetto di interesse nel campo visivo e focale, specialmente se l’oggetto è in grado
di muoversi rapidamente, può essere complicato. Noi proponiamo un sistema di tracciamento
che acquisisce immagini in tempo reale da una videocamera e permette di selezionare un’area e
di mantenere quell’area al centro del campo visivo tramite l’uso di 3 motori stepper.
La nostra proposta
Proponiamo un sistema che, tramite
Python, elabora immagini in
ingresso.
Un Arduino si occuperà di gestire i
motori.
◦ Il sistema quindi si compone di:
◦ Un Arduino
◦ Tre motori passo passo con relativi driver
◦ Una piattaforma di movimento XY (inclusi
sensori di fine corsa)
◦ Un PC
◦ Una videocamera
Inizializzazione del codice Python
Ricerca porte
Arduino e
connessione
Verifica della
connessione
seriale
Scelta tra i
possibili sistemi di
tracciamento
Inizializzazione del
sistema di
tracciamento
Ricerca e selezione
della videocamera
Inizializzazione
dell’interfaccia
grafica
La logica di Python
◦ Il codice richiede inizialmente di selezionare una ROI, una volta fatto viene creato un tracker
che, usando uno degli algoritmi di tracking disponibili, permette di seguire i movimenti di
quest’area.
◦ Il software calcola la posizione attuale dell’oggetto di interesse e, qualora non fosse al centro
del campo visivo della webcam, manda i comandi ad Arduino per muovere la piattaforma di
conseguenza.
Il codice Arduino
◦ Arduino riceve una stringa di dati da python tramite connessione seriale, scompone la stringa
nei vari elementi di interesse, salva il valore di questi elementi nelle variabili e, in base ai valori
ottenuti esegue varie operazioni.
Codice Arduino
Comunicazione
seriale con
Python
getDataFromPC
parseData
strtok
atoi
Controllo dei
motori
pin di accensione
pin di direzione
pin di velocità
Conclusioni
◦ Crediamo che il sistema che abbiamo realizzato sia in grado di seguire con successo il
movimento di un oggetto e che possa essere facilmente integrato ad esempio in ambito
microscopico.

BlackBoard Team - Motion Tracking Platform

  • 1.
  • 2.
    L’idea La nostra ideaè quella di risolvere un problema che si presenta durante l’osservazione al microscopio di campioni che abbiano elevata mobilità. Osservare uno di questi campioni mantenendo l’oggetto di interesse nel campo visivo e focale, specialmente se l’oggetto è in grado di muoversi rapidamente, può essere complicato. Noi proponiamo un sistema di tracciamento che acquisisce immagini in tempo reale da una videocamera e permette di selezionare un’area e di mantenere quell’area al centro del campo visivo tramite l’uso di 3 motori stepper.
  • 3.
    La nostra proposta Proponiamoun sistema che, tramite Python, elabora immagini in ingresso. Un Arduino si occuperà di gestire i motori.
  • 4.
    ◦ Il sistemaquindi si compone di: ◦ Un Arduino ◦ Tre motori passo passo con relativi driver ◦ Una piattaforma di movimento XY (inclusi sensori di fine corsa) ◦ Un PC ◦ Una videocamera
  • 5.
    Inizializzazione del codicePython Ricerca porte Arduino e connessione Verifica della connessione seriale Scelta tra i possibili sistemi di tracciamento Inizializzazione del sistema di tracciamento Ricerca e selezione della videocamera Inizializzazione dell’interfaccia grafica
  • 6.
    La logica diPython ◦ Il codice richiede inizialmente di selezionare una ROI, una volta fatto viene creato un tracker che, usando uno degli algoritmi di tracking disponibili, permette di seguire i movimenti di quest’area. ◦ Il software calcola la posizione attuale dell’oggetto di interesse e, qualora non fosse al centro del campo visivo della webcam, manda i comandi ad Arduino per muovere la piattaforma di conseguenza.
  • 7.
    Il codice Arduino ◦Arduino riceve una stringa di dati da python tramite connessione seriale, scompone la stringa nei vari elementi di interesse, salva il valore di questi elementi nelle variabili e, in base ai valori ottenuti esegue varie operazioni.
  • 8.
    Codice Arduino Comunicazione seriale con Python getDataFromPC parseData strtok atoi Controllodei motori pin di accensione pin di direzione pin di velocità
  • 9.
    Conclusioni ◦ Crediamo cheil sistema che abbiamo realizzato sia in grado di seguire con successo il movimento di un oggetto e che possa essere facilmente integrato ad esempio in ambito microscopico.