Sessione CS sul campo
Contesto
Durante l’estate del 2020, ho seguito CSCI370 o “Ingegneria del Software Avanzata” come parte del mio corso di laurea in Informatica alla Colorado School of Mines. CSCI370 è un corso che fa progettare, implementare e documentare soluzioni software per un’azienda. Permette agli studenti di applicare le conoscenze del corso a problemi di informatica del mondo reale. Puoi saperne di più sul corso qui.
Nel corso, puoi decidere quale progetto/azienda seguire. Il corso forniva PDF che descrivevano ogni progetto e azienda. Alla fine ho deciso di lavorare su un progetto proposto da un’azienda chiamata Lunar Outpost intitolato Real Time Wheel Slip Detection and Error Corrections for Enhanced Lunar Navigation. Dato che il nome è lungo, diamo al progetto un alias: “Rilevamento dello slittamento delle ruote”.
Problema
Lunar Outpost è una startup che cerca di creare rover lunari autonomi. Sulla Luna, c’è molta polvere lunare nota per causare molto slittamento delle ruote. Questo non è ideale perché lo slittamento delle ruote può far perdere ai sistemi autonomi il tracciamento della loro posizione reale nel mondo. Sulla Terra, questo viene risolto usando i dati del GPS per correggere qualsiasi offset causato dallo slittamento delle ruote. Ma il problema del GPS è che funziona solo avendo 30+ satelliti di navigazione che orbitano costantemente intorno alla Terra e trasmettono segnali unici che permettono ai computer di calcolare la loro posizione. Ma sulla Luna, attualmente non esiste qualcosa di simile al GPS. Sapendo questo, un altro metodo diverso dal GPS deve essere usato per rilevare lo slittamento delle ruote. Un rapporto più dettagliato sul problema del progetto può essere visualizzato qui.
Compagni di squadra
Questo progetto non era semplice, quindi doveva essere svolto in team. Il team era composto da cinque studenti della Colorado School of Mines:
- Mehmet Yilmaz
- Kane Bruce
- Braedon O’Callaghan
- Liam Dempsey
- Kevin Grant
Il progetto richiedeva conoscenze di ROS, C++, Python, Linux, Raspberry Pi e Arduino. La maggior parte di noi aveva esperienza in una o più di queste tecnologie, ma ero l’unico con esperienza in ROS dato che avevo usato ROS nel mio corso Robotica Centrata sull’Umano (CSC470) durante il semestre primaverile 2020. Per questo, fin da subito, ho aiutato tutti a mettersi al passo con ROS e con lo sviluppo per esso.
Sfide
In questo progetto ci sono state molte sfide. Ma la sfida più grande che abbiamo affrontato è stata non avere accesso a un robot reale per i test. Questo è stato dovuto al COVID che ha reso tutto remoto e ci ha impedito di lavorare nei laboratori/edifici di Lunar Outpost. Per questo abbiamo dovuto usare simulazioni.
Inoltre, abbiamo esaminato alcune ricerche accademiche dal Laboratorio di Navigazione della WVU per avere un’idea di come il problema dello slittamento delle ruote potesse essere risolto per il caso d’uso di Lunar Outpost. Il che, per noi, come studenti universitari del secondo e terzo anno, è stato più difficile di quanto ci aspettassimo.
Un’altra sfida che abbiamo affrontato è stata la quantità di tempo a nostra disposizione per lavorare su questo progetto. CSCI370 è un corso di un mese. Ma il problema stesso è un problema enorme che molte aziende e accademici stanno cercando di risolvere/perfezionare da decenni. Quindi un mese è ben lungi dall’essere tempo sufficiente per risolvere questo problema. Ma, nonostante tutte queste sfide, abbiamo insistito e ci siamo assicurati di consegnare.
Conclusione
In questo post, mi sarebbe piaciuto fornire una spiegazione più dettagliata delle nostre soluzioni, oltre a fornire una vera conclusione che spiegasse cosa abbiamo scoperto e i risultati finali. Ma purtroppo io e i miei compagni abbiamo tutti firmato un Accordo di Non Divulgazione (NDA) che ci impedisce di condividere qualsiasi cosa riservata su questo progetto. Tutte le informazioni fornite sopra sono pubbliche e possono essere trovate su internet.
Durante questo progetto, abbiamo realmente imparato a usare ROS e a creare simulazioni usando ROS e Gazebo. Abbiamo anche acquisito una migliore comprensione nel campo di ricerca del rilevamento dello slittamento delle ruote. Abbiamo inoltre avuto l’onore di incontrare alcuni accademici/ricercatori del Laboratorio di Navigazione della WVU.
Sapendo tutto ciò, devo dire che questo progetto mi ha permesso di assumere una posizione di leadership nel team, di servire come educatore per aiutare i miei colleghi a comprendere meglio ROS e di acquisire maggiore esperienza in ROS, Gazebo e Python. Mi ha anche esposto al problema dello slittamento delle ruote, un problema di cui non ero a conoscenza prima di lavorare a questo progetto. Nel complesso, sono grato che Lunar Outpost abbia trovato il tempo nel loro fitto programma, specialmente durante il COVID, per permetterci di lavorare su questo progetto. Sono anche grato di aver avuto dei compagni di squadra straordinari che hanno lavorato molto duramente su questo progetto.