Полевая сессия по CS

CG_GUI_19

Предыстория

Летом 2020 года я проходил курс CSCI370 или “Продвинутое программное обеспечение” в рамках своей программы бакалавриата по информатике в Колорадском горном университете. CSCI370 - это курс, который заставляет студентов разрабатывать, реализовывать и документировать программные решения для компании. Он позволяет студентам применять свои знания, полученные в ходе обучения, к реальным проблемам информатики. Вы можете узнать больше о курсе здесь.

На курсе вы можете решить, над каким проектом/компанией вы будете работать. Курс предоставил PDF-файлы с подробностями о каждом проекте и компании. В конечном итоге я решил работать над проектом, размещенным компанией Lunar Outpost, под названием Обнаружение проскальзывания колес в реальном времени и коррекция ошибок для улучшенной навигации на Луне. Поскольку название длинное, давайте дадим проекту псевдоним “Обнаружение проскальзывания колес”.

Проблема

Lunar Outpost - это стартап, который пытается создать автономные луноходы. На Луне много лунного пыли, известной тем, что вызывает проскальзывание колес. Это не идеально, потому что проскальзывание колес может привести к тому, что автономные системы потеряют след своего реального местоположения. На Земле эта проблема решается с помощью данных GPS для коррекции любых смещений, вызванных проскальзыванием колес. Но проблема с GPS заключается в том, что он работает только при наличии 30+ навигационных спутников, постоянно вращающихся вокруг Земли на орбите и передающих уникальные сигналы, которые позволяют компьютерам вычислять свое местоположение. Но на Луне в настоящее время нет ничего подобного GPS. Учитывая это, необходимо использовать другой метод, кроме GPS, для обнаружения проскальзывания колес. Более подробный отчет о проблеме проекта можно просмотреть здесь.

Товарищи по команде

Этот проект не был простым, поэтому его нужно было выполнять в команде. Команда состояла из пяти студентов Колорадского горного университета:

  • Мехмет Йылмаз
  • Кейн Брус
  • Брейдон О’Каллаган
  • Лиам Дэмпси
  • Кевин Грант

Проект требовал от нас знаний в области ROS, C++, Python, Linux, Raspberry Pi и Arduino. Большинство из нас имели опыт работы с одной или несколькими из этих технологий, но я был единственным, кто имел опыт работы с ROS, так как использовал ROS на своем курсе “Человекоцентрированная робототехника” (CSC470) в весеннем семестре 2020 года. Из-за этого я с самого начала помогал всем освоить ROS и как разрабатывать для него.

Проблемы

В этом проекте было много проблем. Но самой большой проблемой, с которой мы столкнулись, было отсутствие доступа к реальному роботу для тестирования. Это было связано с тем, что COVID сделал все удаленным и помешал нам работать в лаборатории/зданиях Lunar Outpost. Из-за этого нам пришлось использовать симуляции.

Кроме того, мы изучили некоторые академические исследования из Лаборатории навигации WVU, чтобы получить представление о том, как проблема проскальзывания колес может быть решена для случая использования Lunar Outpost. Что для нас, как для студентов второго и третьего курсов, оказалось сложнее, чем мы ожидали.

Еще одной проблемой, с которой мы столкнулись, было количество времени, которое у нас было для работы над этим проектом. CSCI370 - это курс на один месяц. Но сама проблема является огромной, и многие компании и академики пытались решить/усовершенствовать ее на протяжении десятилетий. Поэтому одного месяца явно недостаточно, чтобы решить эту проблему. Но, несмотря на все эти трудности, мы справились и убедились, что выполнили задачу.

Заключение

В этом посте я бы хотел дать более подробное объяснение наших решений. А также предоставить надлежащее заключение, объясняющее, что мы обнаружили и какие были окончательные результаты. Но, к сожалению, я и мои товарищи по команде подписали Соглашение о неразглашении (NDA), которое запрещает нам делиться чем-либо конфиденциальным об этом проекте. Вся информация, которую я предоставил выше, является публичной и доступна в интернете.

В ходе этого проекта мы действительно научились использовать ROS и создавать симуляции с использованием ROS и Gazebo. Мы также лучше поняли исследовательскую область обнаружения проскальзывания колес. Нам также выпала честь встретиться с некоторыми академиками/исследователями из Лаборатории навигации WVU.

Учитывая все это, я должен сказать, что этот проект позволил мне занять лидерскую позицию в команде, выступить в роли наставника, чтобы помочь своим сверстникам лучше понять ROS, и предоставил мне больше опыта в ROS, Gazebo и Python. Он также познакомил меня с проблемой проскальзывания колес, о которой я не знал до работы над этим проектом. В целом, я благодарен, что Lunar Outpost выделил время из своего напряженного графика, особенно во время COVID, чтобы позволить нам работать над этим проектом. Я также благодарен, что у меня были замечательные товарищи по команде, которые очень усердно работали над этим проектом.