CUSTOMELECTRONICS.RU
Информационно-учебный блог о разработке электроники
Эл. почта: info@customelectronics.ru

Модель марсохода MSL Curiosity

Мы давно мечтали сделать радиоуправляемого бота с камерой и манипулятором и решение сделать его похожим на марсоход было очень логичным.

Curiosity

Марсианская научная лаборатория уже почти три года работает на Марсе. И этой действительно впечатляющая миссия! Это огромный аппарат, напичканный удивительными приборами! Буквально все, что с ним связано поражает воображение! Особенно приятно, что при его запуске использовался Российский двигатель РД-180, а поиском воды занимается отечественный прибор ДАН.
Достижения людей, построивших это чудо, стали для нас основным источником вдохновения. Мы не старались сделать его точную копию. Для нас главным было то, чтобы модель была узнаваема, функциональна и популяризировала миссию Curiosity.

Модель MSL Curiosity

Модель MSL Curiosity

Краткое описание

Ниже приведены основные технические характеристики модели:

  1. Управление через Bluetooth
  2. Передача изображения через WiFi, 5 FPS в формате QCIF
  3. Двухосевой подвес для камеры
  4. Манипулятор с тремя степенями свободы
  5. Шестиколесное шасси. Все колеса ведущие
  6. Питание от LiPo аккумулятора, 3S, 3000mAh
  7. Отдельный джойстик для управления
  8. Два источника освещения

Корпус

При постройке мы уделили очень много внимания в первую очередь именно корпусу модели.
Еще раз повторимся, что мы просто смотрели на фотографии марсохода и рисовали так, чтобы электроника и механика встала на свои места. Большая часть модели изготовлена на 3D-принтере. Основная часть корпуса изготовлена из оргстекла. Исторически сложилось, что крышка "головы" сделана из стеклотекстолита.
Все 3D-модели мы рисуем в SketchUp. Только чертежи колес подготовлены в SolidWorks. Файлы для резки оргстекла сделаны в NanoCad. Перед тем, как начинать изготовление марсохода мы сделали его виртуальную модель. Все файлы проекта корпуса выложены и доступны для скачивания на thingiverse.com.

Модель модели MSL

Модель модели MSL

Электроника

Для создания модели использован достаточно стандартный набор элементов. Вот основные из них

  1. Плата LinkIt One
  2. Две платы EduBoard
  3. Четыре сервопривода Hitec HS-485
  4. Один сервопривод MG-90S с металлическим редуктором
  5. Шесть редукторных двигателей постоянного тока, 77 об/мин
  6. WiFi-роутер TP-LINK TL-MR3020
  7. WEB-камера Logitec C210 (больше не производят)
  8. Три стабилизатора напряжения 5В, 3А
  9. Два LiPo-аккумулятора Turnigy, 3S, 3000mAh
  10. Два самодельных драйвера двигателей

Структурная схема подключения всех этих элементов приведена ниже. Красными линиями мы обозначали питающие напряжения, а синими — сигналы.

Структурная схема модели MSL Curiosity

Структурная схема модели MSL Curiosity

Пульт управления подключается к ПК через USB. Компьютер, в свою очередь, подключен к LinkIt One через Bluetooth и транслирует команды оператора. LinkIt One пересчитывает эти команды в сигналы управления двигателями и светодиодами, которыми она управляет самостоятельно через драйверы и транзисторы.
К сожалению, сама по себе LinkIt One может управлять только двумя сервоприводами. Поэтому мы через UART подключили к ней нашу плату EduBoard, которая принимает команды и управляет всеми пятью сервоприводами. Получился своеобразный контроллер сервоприводов.
Роутер в этой схеме стоит практически отдельно. На него подается только питание и он начинает передавать картинку с камеры.
Питается ровер от аккумулятора. Напрямую аккумулятор питает только драйверы двигателей. Для остальных модулей схемы 5ти-вольтовое питание формируется тремя стабилизаторами. Отдельно для роутера, логики и сервоприводов. Вся электроника, кроме рутера с камерой, спрятана внутри тела модели марсохода:

Внутренности модели

Внутренности модели

Пульт

Концепция модели такова, что оператор сидит за компьютером, видит картинку с камеры и управляет ровером. Изначально мы пытались сделать приложение с интерфейсом для управления, но потом отказались от этого в пользу отдельного пульта. Его корпус тоже напечатан на 3D-принтере.

Пульт управления моделью марсохода

Пульт управления моделью марсохода

Сделан он также на основе EduBoard на микроконтроллере Atmega8. К плате мы подключили два джойстика, два переменных резистора, две кнопки и два тумблера.
Левый джойстик отвечает за движение марсохода. Правый джойстик за поворот головы. Двумя переменными резисторами управляются плечо и локоть манипулятора. Кнопками сжимается/разжимается клешня, а два тумблера управляют двумя источниками света.
Работает джойстик довольно просто. Контроллер опрашивает органы управления, нормирует команды и отправляет данные в COM-порт, помечая начало пакета. Если будет интерес, то мы оформим самодельный джойстик как отдельный проект, который смогут повторить все желающие.

Программное обеспечение

В проекте используется сразу четыре программы!
Первая, написанная на C, исполняется на пульте. О ней мы уже писали.
Вторая программа для ПК. Она написана на Python. Изначально планировалось, что компьютер будет принимать команды, пересчитывать их и отправлять роверу в обработанном виде. В итоге всеми расчетами занимается LinkIt One и скрипт на Python’е только перанаправляет байты, принятые от пульта, Bluetooth-устройству.
LinkIt One программируется на C++. Она принимает пакеты с ПК (которые доходят ровно в том же виде, какими их формирует пульт), сама управляет двигателями и подсветкой, а также пересчитывает углы сервоприводов и отправляет их в контроллер сервоприводов. Кстати, команды для двигателей прогоняются через пропорциональный регулятор, чтобы обеспечить плавность управления.
Четвертая программа, написанная на С, управляет сервоприводами. Она принимает команды из UART и, по описанному ранее алгоритму, формирует управляющие импульсы для сервоприводов.

Передача видео

На роутер установлена прошивка OpenWrt. При включении роутер создает точку доступа. К ней необходимо подключиться через SSH и выполнить команду для запуска трансляции видеопотока с камеры, подключенный к USB-порту.
На моей прошивке самое оптимальное качество получается при частоте следования кадров 5 раз в секунду в формате QCIF (176х144). Это довольно мало, но для езды по квартире достаточно. Можно, кончено, повысить частоту или разрешение, но тогда начинают проскакивать битые кадры.
Вот так выглядит картинка с роутера без сжатия:

Видео с роутера

Видео с роутера

Марсоход в работе

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

Старое видео для thingiverse:

Одно из первых видео на котором еще не работают сервоприводы:

Заключение

Работа над этим проектом велась очень долго. Это была задача на которой мы испробовали множество технологий. В первую очередь мы строили модель для обучения. Позже мы обязательно подробно опишем процесс постройки модели и проблемы, с которыми мы при этом столкнулись.
И еще несколько фотографий:

Модель MSL Curiosity

Модель MSL Curiosity

Модель MSL Curiosity

Модель MSL Curiosity

Модель MSL Curiosity

Модель MSL Curiosity

Мы будем очень рады, если вы поддержите наш ресурс и посетите магазин наших товаров shop.customelectronics.ru.

Метки: , , , , , Просмотров: 12621