• A
  • A
  • A
  • АБВ
  • АБВ
  • АБВ
  • А
  • А
  • А
  • А
  • А
Обычная версия сайта

Учебные проекты

2023-2024

CartPole

CartPole — это простейший робот для тестирования алгоритмов управления. Есть каретка, движущаяся вдоль горизонтальной направляющей, к ней крепится свободно подвешенный маятник в виде стержня. Управляя ускорением каретки, необходимо перевести и удерживать маятник в верхнем неустойчивом положении равновесия. Мы собрали уже 3-ю версию CartPole, в качестве контроллера используем ESP32 с прошивкой на С++, а в качестве прототипы имеем еще и радиальную версию. Все управление написано на Python3,  в данный момент мы умеем поднимать палочку на основе идей оптимального управления, а еще есть удачный подход обучить RL-модель (ddpg), в написанном нами симуляторе. Хочется активно развивать проект, в планах использовать проект для проведения соревнования на фестивале робототехники.

 

Учебные проекты

1. Обучение RL модели. Для выполнения проекта у вас должен быть опыт в обучении моделей в TF или pytorch. Сначала мы изучим основы reinforcement learning с прицелом на использование моделей на реальном роботе. Затем познакомимся с алгоритмом DDPG (deep deterministic gradient policy), обучим модель в симуляторе, а потом будет самая интересная и сложная часть – заставить все это работать на реальном устройстве. Проект предусматривает, как обучение моделей и написание кода для их инфереса, так и развитие симулятора.

2. Нахождение оптимальной траектории. У нас есть работающий алгоритм на основе идей оптимального управления и нескольких регуляторов (получить примерное представление о методах можно тут). Однако у алгоритма есть существенный недостаток, траектория медленно рассчитывается, поэтому мы можем стартовать только из положения покоя палочки. Хочется, понять можно ли мы ускорить/улучшить наш алгоритм, чтобы начать управление системой с произвольного состояния. Проект потребует от вас знание основе дифференциальных уравнений и механики, а также погрузив в теорию численной оптимизации.

Truck

Мы собрали модель машинки длиной около 70 см, у нее задний электропривод, модель аккермана, а из сенсоров 2D лидар и камера глубины RS D455 с IMU. Для отладки мы используем физический симулятор на основе Gazebo 11. В планах активно заниматься экспериментами с планированием траектории и активно вложиться в построении карт и локализации. Параллельно мы готовим платформу второго поколения и симулятор для обучения RL-моделей. Проект базируется на ROS2 Iron и полностью написан на С++. Для комфортной работы, вы должны уверенно себя чувствовать в терминале linux.

 

Учебные проекты

1. Нода управления шасси. В данный момент мы имеем быстрый прототип ноды на Python3, который управляет двумя платами (odrive + teensy 4.0) cо стороны брейна (jetson xavier nx). Использовать Python3 на роботе крайне сомнительная затея с точки зрения перфа и гарантий, поэтомы мы хотим привести этот кусок кода на С++, приведя все в порядок. В рамках проекта вы познакомитесь с программированием на низком уровне, нашим hardware, ну и подтянете плюсы, реализовав протокол управления через serial + usb интерфейсы.

2. Агрегатор карты препятствий. Мы используем два сенсора для распознавания препятствий, это камера глубины RS D455 и 2D лидар. В данный момент мы запоминаем только последние облака точек и помечаем их, как препятствия в карте занятости, а хочется здесь уметь агрегировать информация сквозь время. В качестве вдохновения можно использовать эту статью. Отдельным плюсом будет научиться отделять подвижные точки от статических. В рамках проекты вы точно подтянете плюсы и поработаете с Байесовскими методами.

3. Построение 2D карты помещений. Для нормальной работы роботу, чтобы строить долгосрочные маршруты и ориентироваться в больших пространствах, нужна предзаписанная карта. Для этих целей мы хотим сделать 2D лидарную карту облаков  нескольких помещений, а потом руками оцифровать ее в виде geojson-в на полигоны доступные для навигации. В рамках этого проекта мы предлагаем вам познакомиться с алгоритмом ICP и методами оптимизации на графах, чтобы решить эту задачу, придется много читать статей, писать на С++ и делать красивых визуализаций.

4. Моментальная локализация. Для  работы машинки необходимо в высокой точностью и частотой понимать моментальное движение робота и уметь аккуратно его интегрировать, чтобы понять, где робот оказался. В нашем проекте для этих целей доступны следующие источники данных: скорость ведущих колес (к сожалению руление передних пока недоступно), IMU (гироскоп + акселерометр), ну и собственно 2D-лидар. Хочется аккуратно объединить все эти данные через правильно настроенный ekf-фильтр, убрав ненужные шумы сенсоров. Дополнительно еще необходимо оценивать точность предложенного подхода, проведя моделирование в симуляторе. Если удастся получить GT и для реального проезда, это будет огромным плюсом.

5. Стереозрение для роботов. Внутри нашей группы мы хотим активно растить экспертизу в стереозрении и активно применять его для построения плотных карт глубины в ближней зоне робота. У нас сейчас доступны два крутых сенсора, это RS D455 и Zed 2. Мы хотим, чтобы студент на практике проверил текущие SOTA подходы вычисления глубины, которые способны работать онлайн с частотой не менее 10 Hz (как классические методы, так и основанные на ML).

6. Инструмент визуализацииДля online/offline визуализации и отладки мы активно используем Foxglove Studio. Это отличный инструмент, но он требует некоторых доработок под нужды наших проектов. В качестве основных технологий внутри используются React, three.js.  В рамках проекта хотим предложить вам следующие задачи:

  - Перенести генерацию маркеров с робота на фронт, используя идею конвертации сырых сообщений.

  - Добавить захват нужных нам контролов, а именно клавиатуры и DualShock 4 для управления роботами.

  - Доработка существующих панелей (визуализация моделей робота, стриминг видео, кнопки сброса и т.д.)


 

Нашли опечатку?
Выделите её, нажмите Ctrl+Enter и отправьте нам уведомление. Спасибо за участие!
Сервис предназначен только для отправки сообщений об орфографических и пунктуационных ошибках.