Vova
ROB-46186Команда РОБОКИТ, физтех лицей, Долгопрудный.
Робот построен на базе японского набора KONDO c использованием смарт-камеры OPENMV в голове.
Параметры робота:
- Высота 45 cm
- Вес 1.9 kg
- Напряжение батареи 12 V
- 23 DOF (степень свободы): 13 servomotors KRS-2552 ICS +10 servomotors KRS-2672 ICS
- Main controller: OpenMV H7 with 32-Bit Arm Cortex-M7 operating at 400MHz with 1Mb SRAM
- Контроллер движений: Kondo RCB-4HV
- Язык программирования: Micropython.
- Сенсоры: OV7725 640x480 camera, 6D digital IMU (3 акселерометра и 3 гироскопа inertial measurement unit) BNO055 (Bosh), 2D analogue Gyro (падение вперед и вбок), 3D analogue Accelerometer (Засекать на какой угол повернулся. Робот стоит или робот лежит и на каком боку) – в рюкзаке. Используется чтобы была дополнительная устойчивость.
Из набора KONDO kit были выбраны следующие компоненты:
- сервомоторы,
- сервоконтроллеры,
- general mechanical bipedal frame (двуногая схема),
- аналогове гироскопы,
- аналоговые акселерометрыs.
Следующие компоненты из стандартного набора были модифицированы:
- стопа,
- пластиковые рычаги заменены на алюминиевые
- провода от батареи к контроллеру заменены на более мощные
- (Изменена двуногую структуру чтобы сделать робота способным на шпагат
Следующие компоненты были созданы или добавлены для робота:
- Smart Camera OpenMV
- Digital IMU
- Голова работа ( 3D printed)
- Сервомоторы для головы
Наши внесенные изменения, а также добавление тяжелой головы привело к тому, что те движения, которые были в комплекте, нам от них пришлось отказаться. В том числе генератор ходьбы. По этой причине нам пришлось создать новые программы и новый генератор движений.
Описание искусственного интеллекта
Робот = механика + датчики + ПО, позволяющее динамически реагировать на внешнее окружение.
Контроллер сервомоторов сделан для нижнего уровня (Для сервомоторов). Верхний уровень – из одного вычислительного модуля в другой. Логика верхнего уровня openMV, нижнего Kondo.
Базовые 5 типов движения “Soccer_HomePosition” (Стартовая позиция), “Get Up (stomach)(Подняться с живота)”, “Get Up (Face Up)(Со спины)”, “Soccer Kick Forward” (Удар по мячу), “PenaltyDefence” (Выпрыгивание в шпагат при защите ворот) и определение вертикального/горизонтального состояния были написаны на HeartToHeart4 software разработанным KONDO.
Ходьба во всех направлениях, Удар по мячу бли написаны на OpenMV cam с подвязкой на KONDO controller через UART
Большая часть ПО написана на микропитоне.
Микропитон достаточно медленный. Язык С быстрее. Модуль по обработке видеоинформации, написанный на С, прошивается на openMV. Эта работы была сделана инженером на аутсорсе.
Все AI разработки бли создан и протестированы на симуляции Coppelia EDU. Это существенно ускорило разработку.
Общая логика программы
OpenMV:
- Камера инициализируется и ожидает нажатия кнопок. После нажатия конпки IMU записываетекущее направление для дальнейшей атаки
- Осмотр местности. Робот двигает голову в 15 позах и делает 5 снимковв каждой позе. Каждая фотография обрабатываетсся для детектирования: мяча, ворота, линий разметки, края поля,отметки пенальти, препятствий.Вся информация используется для того, чтобы локализовать робота, мяч и препятствия. Глобальные координатывсех локализованных объектов используется для динамического изменения движений
- Движения робота зависят от его роли в игре. Есть следующие роли нападающего и вратаря: forward, goalkeeper, penaltyGoalkeeper, penalty_Shooter, obstacle_runner, etc.
Для каждой роли есть отдельный код, запускающийсяв главном циклею
Для каждого основного цикла объединяются последовательности следующих действий:
- seek_Ball_In_Pose (Поиск мяча)
- turn_To_Course( direction_To_Guest) (Повернуть на противника)
- far_distance_ball_approach (Дальний подход к мячу)
- near_distance_ball_approach_and_kick (Ближний подход к мячу и удар)
- return to initial position. (Возврат в изначальную позицию)
- Как только фиксируется ситуация падения робота, существующая задача отменяется и запускается наблюдение за окружающей обстановкой.
- Возврат в исходное положение становится возможным благодаря тому, что робот постоянно осуществляет самолокализацию и вычисляет свою глобальную координату следующими методами:
- Машинное зрение стоек ворот
- Машинное зрение линий поля
- Машинное зрение пенальти
- Машинное зрение границы зеленого поля
- Получение углов эйлераиз IMU
- Одометрия
KONDO controller :
- контроллер получает команду из внешнего источника и распределяет команды по отдельным сервоприводам
- контроллер поддерживает пакетные команды, когда несколько сервоприводов могут двигаться одновременно.
- Минимальный временной шаг для пакетных команд сервопривода составляет 10 мс.
- контроллер поддерживает слоты движения. Серия движений может быть сохранена в слоте движения для последующего воспроизведения.
- Стабилизация походки осуществляется с помощью аналоговых гироскопических датчиков с петлей, пропорциональной шагам.
- Аналоговые акселерометры используются для определения вертикального/горизонтального положения робота. В случае обнаружения горизонтального положения “Get Up (stomach)”, “Get Up (Face Up)” движения запускаются в зависимости от обнаруженной позиции.
- Датчик IMU размещается вместе с камерой. Это дает преимущество в точности измерения расстояния робота от стоек ворот. Точность IMU выше, чем точность сервопривода панорамирования. Это дает возможность измерять расстояние путем получения углов эйлера для 2х измеренных yaw (угол рысканья) угла. Вычисление расстояния по двум измеренным углам рыскания и фиксированному расстоянию между стойками дает более точные данные о расстоянии, чем прямая триангуляция.
Уникальность наших роботов в их ПО и подходе для его развития (Использование симуляций для теста стратегий, дополнительное ПО для настроек робота и создание движений)
Их предназначение побеждать.
files
Add at 02.07.2024