CS 현장 세션

CG_GUI_19

배경

2020년 여름 동안, 저는 콜로라도 광산대학교(Colorado School of Mines)의 학부 컴퓨터과학 과정의 일부로 CSCI370 또는 “고급 소프트웨어 공학"을 수강했습니다. CSCI370은 학생들이 회사의 소프트웨어 관련 솔루션을 설계, 구현 및 문서화하도록 만드는 과목입니다. 이 수업은 학생들이 수업에서 배운 지식을 실제 컴퓨터과학 문제에 적용할 수 있게 합니다. 수업에 대해 더 알고 싶다면 여기에서 확인할 수 있습니다.

수업에서는 어떤 프로젝트/회사를 대상으로 작업할지 직접 결정할 수 있습니다. 수업은 각 프로젝트와 회사를 자세히 설명한 PDF들을 제공했습니다. 결국 저는 루나 아웃포스트라는 회사에서 게시한 향상된 달 항법을 위한 실시간 바퀴 미끄러짐 감지 및 오류 보정이라는 프로젝트에 참여하기로 결정했습니다. 이름이 길기 때문에, 프로젝트의 별명을 “바퀴 미끄러짐 감지"로 부르겠습니다.

문제

루나 아웃포스트는 자율 달 탐사 로버를 만들기 위해 노력하는 스타트업입니다. 달에는 바퀴 미끄러짐을 많이 유발하는 것으로 알려진 많은 달 먼지가 있습니다. 이는 바퀴 미끄러짐이 자율 시스템이 실제 위치를 추적하지 못하게 할 수 있기 때문에 이상적이지 않습니다. 지구에서는 이러한 문제를 GPS 데이터를 사용하여 바퀴 미끄러짐으로 인한 오프셋을 보정함으로써 해결합니다. 그러나 GPS의 문제는 지구 주위를 지속적으로 공전하며 고유 신호를 전송하는 30+개의 항법 위성이 있어야만 작동한다는 점입니다. 하지만 달에는 현재 그러한 GPS가 없습니다. 이를 알기에, GPS 이외의 다른 방법을 사용하여 바퀴 미끄러짐을 감지해야 합니다. 프로젝트의 문제에 대한 더 자세한 보고서는 여기에서 볼 수 있습니다.

팀원

이 프로젝트는 단순한 프로젝트가 아니었기 때문에 팀으로 수행해야 했습니다. 팀은 콜로라도 광산대학교의 다섯 명의 학생으로 구성되었습니다:

  • 메흐멧 일마즈
  • 케인 브루스
  • 브레이든 오칼라한
  • 리암 뎀프시
  • 케빈 그랜트

이 프로젝트에는 ROS, C++, Python, Linux, Raspberry Pi 및 Arduino에 대한 지식이 필요했습니다. 우리 대부분은 이러한 기술 중 하나 이상에 대한 경험이 있었지만, 저는 2020년 봄 학기 동안 인간 중심 로보틱스(CSC470) 수업에서 ROS를 사용했기 때문에 ROS 경험이 있는 유일한 사람이었습니다. 이 때문에 초반에 저는 모두가 ROS와 그 개발 방법에 익숙해지도록 도왔습니다.

도전 과제

이 프로젝트에서는 많은 도전 과제가 있었습니다. 그러나 우리가 직면한 가장 큰 도전은 실제 로봇에 접근할 수 없었다는 점이었습니다. 이는 COVID-19로 인해 모든 것이 원격으로 전환되고 루나 아웃포스트의 실험실/건물에서 작업하는 것이 불가능해졌기 때문입니다. 이로 인해 우리는 시뮬레이션을 사용해야 했습니다.

또한, 우리는 WVU 내비게이션 연구실의 일부 학술 연구를 검토하여 루나 아웃포스트의 사용 사례에 맞게 바퀴 미끄러짐 문제를 어떻게 해결할 수 있는지에 대한 아이디어를 얻었습니다. 학부 2~3학년 수준인 우리에게 이는 예상보다 더 어려운 작업이었습니다.

우리가 직면한 또 다른 도전은 이 프로젝트에 할당된 시간이었습니다. CSCI370은 한 달짜리 수업입니다. 하지만 문제 자체는 수십 년 동안 많은 기업과 학계가 해결/완성하려고 노력해 온 거대한 문제입니다. 따라서 한 달은 이 문제를 해결하기에는 턱없이 부족합니다. 그러나 이러한 모든 어려움에도 불구하고 우리는 굴하지 않고 끝까지 진행하여 결과물을 전달했습니다.

결론

이 글에서 저는 우리 솔루션에 대한 보다 상세한 설명을 제공하고 우리가 발견한 것과 최종 결과를 제대로 설명하고 싶었을 것입니다. 하지만 안타깝게도 저와 제 팀원들은 모두 이 프로젝트와 관련된 기밀 정보를 공유하는 것을 금지하는 비밀유지계약(NDA)에 서명했습니다. 위에 제공한 모든 정보는 공개된 정보이며 인터넷에서 접근할 수 있는 내용들입니다.

이 프로젝트를 진행하면서 우리는 ROS를 사용하는 방법과 ROS 및 Gazebo를 사용하여 시뮬레이션을 만드는 방법을 정말로 배웠습니다. 또한 바퀴 미끄러짐 감지 연구 분야에 대해 더 잘 이해하게 되었습니다. 우리는 또한 WVU 내비게이션 연구실의 일부 학자/연구자들을 만나는 영광을 누렸습니다.

이 모든 것을 알게 된 후, 이 프로젝트는 제가 팀에서 리더십 위치를 맡고 동료들이 ROS를 더 잘 이해할 수 있도록 교육자 역할을 하는 기회를 제공했으며, ROS, Gazebo 및 Python에 대한 경험을 더 많이 쌓게 해주었다고 말할 수 있습니다. 또한 이 프로젝트를 통해 제가 이 작업을 하기 전에는 알지 못했던 바퀴 미끄러짐 문제를 접하게 되었습니다. 전반적으로, 특히 COVID-19 기간 동안 바쁜 일정 속에서도 우리에게 이 프로젝트를 맡길 시간을 내주신 루나 아웃포스트에 감사드립니다. 또한 이 프로젝트에 정말 열심히 임한 훌륭한 팀원들과 함께할 수 있어 감사하게 생각합니다.