Sessão de Campo de CS
Contexto
Durante o verão de 2020, eu fiz CSCI370 ou “Engenharia de Software Avançada” como parte do meu programa de graduação em CS na Colorado School of Mines. CSCI370 é um curso que faz os alunos projetarem, implementarem e documentarem soluções relacionadas a software para uma empresa. Ele permite que os alunos apliquem o conhecimento adquirido em sala de aula a problemas reais de ciência da computação. Você pode saber mais sobre o curso aqui.
No curso, você pode decidir em qual projeto/empresa irá trabalhar. O curso forneceu PDFs detalhando cada projeto e empresa. No final, decidi trabalhar em um projeto postado por uma empresa chamada Lunar Outpost chamado Detecção de Deslizamento de Roda em Tempo Real e Correções de Erro para Navegação Lunar Aprimorada. Como o nome é longo, vamos dar ao projeto um apelido de “Detecção de Deslizamento de Roda”.
Problema
A Lunar Outpost é uma startup que tenta criar rovers lunares autônomos. Na lua, há muita poeira lunar que é conhecida por causar muito deslizamento de roda. Isso não é ideal porque o deslizamento de roda pode fazer com que sistemas autônomos percam o controle de sua localização no mundo real. Na Terra, isso é resolvido usando dados de GPS para corrigir qualquer desvio causado pelo deslizamento de roda. Mas o problema com o GPS é que ele só funciona com 30+ satélites de navegação que estão constantemente orbitando a Terra e transmitindo sinais únicos que permitem que os computadores calculem sua posição. Mas na lua, atualmente não existe nada como um GPS. Sabendo disso, outro método além do GPS deve ser usado para detectar o deslizamento de roda. Um relatório mais detalhado sobre o problema do projeto pode ser visualizado aqui.
Colegas de Equipe
Este projeto não foi um projeto simples, então teve que ser feito em equipe. A equipe consistia em cinco colegas da Colorado School of Mines:
- Mehmet Yilmaz
- Kane Bruce
- Braedon O’Callaghan
- Liam Dempsey
- Kevin Grant
O projeto exigiu que soubéssemos um pouco de ROS, C++, Python, Linux, Raspberry Pi e Arduino. A maioria de nós tinha experiência em uma ou mais dessas tecnologias, mas eu era o único com experiência em ROS, já que usei ROS na minha aula de Robótica Centrada no Humano (CSC470) durante o semestre da primavera de 2020. Devido a isso, logo no início, ajudei a colocar todos a par sobre ROS e como desenvolver para ele.
Desafios
Neste projeto, houve muitos desafios. Mas o maior desafio que enfrentamos foi não ter acesso a um robô do mundo real para testes. Isso se deveu à COVID que tornou tudo remoto e nos impediu de trabalhar no laboratório/edifícios da Lunar Outpost. Devido a isso, tivemos que usar simulações.
Além disso, passamos por algumas pesquisas acadêmicas do WVU Navigation Lab para ter uma ideia de como o problema do deslizamento de roda poderia ser resolvido para o caso de uso da Lunar Outpost. O que, para nós, como alunos de graduação do segundo e terceiro ano, foi mais difícil do que esperávamos.
Outro desafio que enfrentamos foi a quantidade de tempo que tínhamos para trabalhar neste projeto. CSCI370 é uma aula de um mês. Mas o problema em si é um problema massivo que muitas empresas e acadêmicos têm tentado resolver/aprimorar por décadas. Portanto, um mês está longe de ser tempo suficiente para resolver essa questão. Mas, apesar de todos esses desafios, perseveramos e nos certificamos de entregar.
Conclusão
Neste post, eu adoraria dar uma explicação mais detalhada de nossas soluções. Assim como fornecer uma conclusão adequada explicando o que descobrimos e os resultados finais. Mas, infelizmente, eu e meus colegas assinamos um Acordo de Não Divulgação (NDA) que nos impede de compartilhar qualquer informação confidencial sobre este projeto. Todas as informações que forneci acima são públicas e podem ser acessadas na internet.
Durante este projeto, realmente aprendemos a usar ROS e criar simulações usando ROS e Gazebo. Também ganhamos uma melhor compreensão no campo de pesquisa de detecção de deslizamento de roda. Também tivemos a honra de nos encontrar com alguns acadêmicos/pesquisadores do WVU Navigation Lab.
Sabendo de tudo isso, devo dizer que este projeto me permitiu assumir uma posição de liderança na equipe, servir como educador para ajudar meus colegas a entender melhor o ROS e me proporcionou mais experiência em ROS, Gazebo e Python. Também me expôs ao problema do deslizamento de roda, um problema que eu não conhecia até trabalhar neste projeto. No geral, sou grato que a Lunar Outpost tenha tirado um tempo de sua agenda lotada, especialmente durante a COVID, para nos permitir trabalhar neste projeto. Também sou grato por ter tido colegas de equipe incríveis que trabalharam muito duro neste projeto.