HighRov

Набор HighROV для сборки телеуправляемого подводного аппарата

Перед использованием

Предосторожности и рекомендации

Посторонние частицы могут прилипать к внутренней стороне крышек (вокруг резинового уплотнения) при открытии или закрытии крышек в местах с большим количеством песка, пыли и др. Результатом этого может стать нарушение водонепроницаемых свойств при закрытии крышек с прилипшими посторонними частицами.

В случае если на внутреннюю сторону крышки или разъёма попадут инородные частицы, удалите их сухой безворсовой тканью. Рекомендуется дополнительно обработать резинки силиконовой смазкой.

Если на изделии или внутренней стороне крышки остается жидкость, например, капли воды, сотрите её мягкой сухой тканью. Не открывайте и не закрывайте крышки вблизи воды, под водой, мокрыми руками, или, когда само устройство влажное. Это может привестипопаданию воды внутрь. Избегайте сильных ударов или вибраций, не роняйте изделие и его части, не стучите по нему. Не подвергайте изделие воздействию сильного давления (погружение на глубину свыше 15 м).

Требования к условиям эксплуатации

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

Это не гарантирует отсутствие повреждений, неисправностей или водонепроницаемость при любых условиях.

Водонепроницаемость не гарантируется, если изделие подвергнется ударному воздействию в результате удара, падения и т. д. Если изделие было подвержено ударному воздействию, следует обратиться за его проверкой (за дополнительную плату) в компанию ООО «Центр робототехники», чтобы убедиться в сохранении его водонепроницаемости.

Если на изделие попадет моющее средство, мыло, брызги из горячего источника, добавка для ванн, масло для загара, солнцезащитное средство, химические вещества и т. д., немедленно вытрите изделие.

Функция водонепроницаемости изделия действует только в отношении пресной и морской воды.

На любые неисправности, вызванные неправильным использованием или несоблюдением правил эксплуатации изделия покупателем, гарантия распространяться не будет.

Не оставляйте изделие на длительное время в местах с очень низкой температурой (например, на лыжных курортах или на большой высоте) или в местах, где температура может превысить 40 °C (например, под яркими солнечными лучами внутри автомобиля, рядом с нагревательными приборами, на катере или пляже и т. д.), водонепроницаемость изделия может ухудшиться.

Эксплуатация устройства под водой

Используйте изделие под водой на глубине до 15 м при температуре воды от +4 °C до +40 °C.

Не используйте изделие на глубине свыше 15 м.

Не используйте изделие в горячей воде с температурой выше 40 °C (в ванной или горячем источнике).

Не открывайте и не закрывайте крышки под водой.

Не подвергайте изделие ударам под водой (характеристика водонепроницаемости может не сохраниться, и в изделие попадет вода).

Общие сведения

Перед работой с набором HighROV необходимо ознакомиться с руководством по эксплуатации, особое внимание, уделяя правилам безопасности.

Сборка и запуски подводного аппарата пользователями в возрасте до 18 лет допускается только под наблюдением взрослых. При сборке, ответственный взрослый (преподаватель, наставник и т.п.) должен непосредственно обеспечивать: безопасное состояние приборов, инструментов, рабочих мест и оборудования.

Запуск подводного аппарата в водоемах как природного, так и искусственного происхождения (бассейнах) должны производится с соблюдением правил поведения и мер безопасности на воде. Возможность запусков подводного аппарата в конкретном месте должна быть согласована с правилами использования рекреационных зон отдыха, правилами эксплуатации бассейнов, либо с другими правилами согласно назначению водного объекта или сооружения.

Назначение и область применения

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

Состав конструктора

Наименование элемента Кол-во
. Пульт управления 1
. Джойстик 1
. Устройство видеозахвата 1
. Модуль бортовой электроники 1
. Датчик глубины 1
. Пенетратор кабель-троса 1
. Пенетратор 14
. Заглушка пенетратора 6
. Движитель подводный ROV 6
. Камера подводная поворотная 2
. Манипулятор подводный 1
. Материал для изготовления рамы 3
. Материал для изготовления плавучести 2
. Комплект для изготовления кабель-троса 1
. Комплект для герметизации пенетраторов 1
. Комплект крепежа 1
. Смазка силиконовая 1
. Открытое ПО пульта оператора 1
. Открытое ПО блока бортовой электроники 1

Технические характеристики

Пульт управления

  • Внешние размеры влагозащитного кейса (Д х Ш х В), мм: 280 х 246 х 156
  • Внутренние размеры влагозащитного кейса (Д х Ш х В), мм: 260 х 200 х 143
  • Входное напряжение источника питания, В: 220 (при 50 Гц)
  • Выходное напряжение источника питания, В: 12 (постоянный ток)
  • Мощность источника питания, Вт: 200
  • Ток предохранителя на блоке питания, А: 30
  • Пластина из алюкобонда для закрепления разъёмов и клавиш выключения: есть
  • Пластина из алюкобонда для закрепления источника питания, контроллера и маршрутизатора: есть
  • Амперметр-вольтметр: 100 В (50 А)
  • Клавиши выключения питания, шт.: 2
  • Герметичный разъём для подключения кабеля питания-управления: есть
  • Разъём для подключения беспроводного адаптера джойстика: есть
  • Кабель питания 220 В, С13: есть
  • Разъём RCA для подключения внешнего монитора, шт.: 2
  • Количество конвертеров Video Balun, шт.: 2
  • Wi-Fi маршрутизатор, шт.: 1

Джойстик

  • Способ подключения: проводной
  • Интерфейс: USB
  • Длина кабеля, м: 1,2
  • Количество осей, шт.: 4
  • Тип датчика поворота: резистивный

Устройство видеозахвата

  • Тип подключения: USB
  • Максимальное разрешение: 720х576
  • Разъёмы: USB 2.0, аудио, видео композитный, S-Video
  • Предназначение: оцифровка аналоговых видеосигналов

Модуль бортовой электроники

  • Материал корпуса модуля бортовой электроники: анодированный алюминий
  • Габаритные размеры корпуса модуля бортовой электроники (Д х Ш х В), мм: 185 х 110 х 110
  • Количество отверстий в первой крышке под ввод кабелей, шт.: 8
  • Количество отверстий второй крышке под ввод кабелей, шт.: 4
  • Плата с контактными площадками для крышки, шт.: 1
  • Плата управления моторами: Custom Shield HighROV
  • Контроллер модуля бортовой электроники: Arduino Mega 2560
  • Плата связи: Arduino Ethernet Shield W5100
  • Video Balun, шт.: 2
  • Разъем RJ-45, шт.: 2
  • 9-осевой датчик положения, шт.: 2
  • Уплотнительных колец резиновых 88х2,5 мм, шт.: 2

Пенетратор кабель-троса

  • Длина, мм: 40
  • Диаметр отверстия для установки, мм: 20
  • Длина резьбовой части, мм: 15
  • Наименьший диаметр внутреннего отверстия, мм: 10,5
  • Внутренний диаметр под заливку герметиком, мм: 20
  • Комплект: гайка М18 - 1 шт, уплотнительное кольцо 19х2,5 мм - 1 шт.

Пенетратор

  • Длина, мм: 37
  • Диаметр отверстия для установки, мм: 10
  • Длина резьбовой части, мм: 25
  • Наименьший диаметр внутреннего отверстия, мм: 6,6
  • Внутренний диаметр под заливку герметиком, мм: 12
  • Масса, кг: 0,07
  • Комплект: гайка - 1 шт, уплотнительные кольца - 2 шт.

Заглушка пенетратора

  • Длина, мм: 37
  • Диаметр отверстия для установки, мм: 10
  • Длина резьбовой части, мм: 25
  • Внутреннее отверстие: отсутствует
  • Масса, кг: 0,076
  • Комплект: гайка - 1 шт, уплотнительные кольца - 2 шт.

Движитель подводный ROV

  • Вес на воздухе, кг: 0,206
  • Габаритные размеры (Д х Ш х В), м: 0,100х0,083х0,072
  • Гребной винт (диаметр), мм: 64
  • Тяга в прямом направлении, кгс: 1,5 (при 16 В)
  • Тяга при реверсе, кгс: 1,3 (при 16 В)
  • Диапазон напряжений питания, В: от 12 до 24
  • Максимальный ток потребления, А: 16 А (при 24 В)
  • Защита от короткого замыкания в двигателе: Нет
  • Интерфейс связи: PWM

Камера подводная поворотная

  • Вес на воздухе, кг: 0,275
  • Габаритные размеры (Диаметр х Длина), мм: 60х90
  • Возможность поворота: есть
  • Угол поворота, градусы: 160
  • Угол обзора камеры, градусы: 72
  • Разрешение: 976 x 494
  • Светочувствительность, Люкс: 0,01
  • Интерфейс видео: analog
  • Размер матрицы, дюйм: 1/3
  • Затвор: фиксированный
  • Максимальная частота кадров в сек.: 30
  • Формат вывода изображения: PAL
  • Интерфейс сервопривода: PWM

Манипулятор подводный

  • Длина, мм: 0,5
  • Рабочая глубина, м: 100 м
  • Количество степеней свободы: 2
  • Напряжение питания, В: 18

Материал для изготовления рамы

  • Наименование: полиэтилен листовой
  • Толщина, мм: 10
  • Плотность, кг/м3: 940
  • Размеры (длина х ширина), м: 0,66 х 0,46

Материал для изготовления плавучести

  • Наименование: экструдированный пенополистирол
  • Плотность, кг/м3: 35
  • Размеры (длина х ширина х толщина), мм: 660 х 460 х 30

Комплект для изготовления кабель-троса

  • Кабель медный многожильный в силиконовой оболочке чёрного цвета сечением 3,3 кв.мм, м: 20
  • Кабель медный многожильный в силиконовой оболочке красного цвета сечением 3,3 кв.мм, м: 20
  • Кабель витая пара CAT 5e диаметром 6 мм, м: 20
  • Сетка-оплётка змеиная кожа диаметром 10 мм, м: 20
  • Вилка Weipu WY24-11, шт.: 1

Комплект для герметизации пенетратора

Эпоксидный двухкомпонентный состав (A - чёрная смола и B - коричневый амин-отвердитель)

Компонент A:

  • Цвет: чёрный
  • Тип: вязкая жидкость
  • Плотность: 1600 кг/м^3
  • Вязкость: 2000 мПа*с
  • Объём, мл.: 200

Компонент B:

  • Цвет: коричневый
  • Тип: жидкость
  • Плотность: 1100 кг/м^3
  • Вязкость: 50 мПа*с
  • Объём, мл.: 40

Комплект крепежа

  • Винт с полукруглой головкой М5х16, шт.: 20
  • Гайка-барашек М5, шт.: 10
  • Гайка М5, шт.: 10
  • Винт потайной М3х6, шт.: 8
  • Винт с полукруглой головкой М3х8, шт.: 10
  • Винт с полукруглой головкой М3х10, шт.: 10
  • Винт с полукруглой головкой М3х12, шт.: 30
  • Винт с полукруглой головкой М3х16, шт.: 50
  • Винт с полукруглой головкой М3х20, шт.: 50
  • Винт с полукруглой головкой М3х25, шт.: 30
  • Винт полиэтиленовый с полукруглой головкой М6х45, шт.: 12
  • Гайка полиэтиленовая М6, шт., 12
  • Шайба плоская увеличенная М6, шт.: 8
  • Гайка М3, шт.: 50
  • Свинцовые грузики, шт.: 8

Смазка силиконовая

  • Предназначена для нанесения на резиновые уплотнительные кольца
  • Водостойкость при 3 градусах Цельсия, ч: 24
  • Масса в упаковке, г.: 5
  • Препятствует образованию коррозии в месте контакта
  • Диапазон рабочих температур: от -40 до +250 градусов Цельсия

Программное обеспечение доступно по ссылкам на GitHub:

https://github.com/murproject/HighROV_router_instruction,

https://github.com/murproject/HighROV_firmware, https://github.com/murproject/RovUI

Шаблоны раскройки материалов для рамы и плавучести доступны по ссылке на GitHub:

https://github.com/murproject/HighROV_CuttingPatterns

Внимание! Для управления ТНПА необходим персональный компьютер (ноутбук) с wi-fi сетевой картой и USB портами, который не входит в комплект поставки.

Указания по сборке набора

Инструкция по заливке пенетраторов

  1. Снимите оплётку с кабеля. Необходимо обеспечить достаточный запас кабеля для дальнейшей пайки электроники после заливки пенетраторов.
  1. Ошкурьте край оплётки кабеля (примерно на 15 мм) и обезжирьте
  1. Обезжирьте внутреннюю часть пенетратора
  1. Обратите внимание с какой стороны необходимо будет заливать герметик в пенетратор. Вставьте кабель в пенетратор так, чтобы цветные провода торчали из узкой части пенетратора. Зашкуренная часть кабеля должна находится в широкой части пенетратора.

Закупорьте узкую часть пенетратора термоклеем для предотвращения вытекания герметика до его затвердения

  1. Смешайте компоненты А и B в пропорции 5:1 по массе и тщательно перемешайте в течение 5 минут. Время работы при 25 градусах Цельсия: 30 минут. Далее с помощью шприца залейте герметик в пенетратор. При температуре 25 градусов Цельсия время затвердевания герметика составляет от 10 до 24 часов, поэтому на протяжении этого периода времени необходимо оставить пенетратор широкой стороной вверх.

Внимание! Чем холоднее герметик, тем дольше происходит его отвердевание. При работе в помещении, температура в котором ниже +20 °C, рекомендуется подогреть компонент A до +40-50 °C для лучшего схватывания.

Монтаж электроники

Внимание! Все действия с проводами выполняются после заливки герметиком пенетраторов и его полного застывания!

Блок электроники содержит 2 платы: основную плату и плату полезной нагрузки.

Основная плата HighROV

Основная плата состоит из следующих разъемов и микросхем:

  1. Разъем для видео из кабель-троса
  2. Разъем для LAN из кабель-троса
  3. Разъем питания из кабель-троса
  4. Разъемы для подключения моторов
  5. Разъем для подключения платы с полезной нагрузкой
  1. Arduino Nano 33 IOT
  2. LAN драйвер для микроконтроллера (на базе W5500)
  3. PWM драйвер для микроконтроллера (на базе PCA9685)
  4. Драйвер коллекторных моторов манипулятора (на базе A4950)
  5. DC-DC преобразователь 12В-5В
  6. Изолированный DC-DC преобразователь 12В-12В

Плата полезной нагрузки HighROV

Плата полезной нагрузки состоит из следующих разъемов:

  1. Разъем для подключения датчика давления
  2. Разъем для подключения манипулятора
  3. Разъем для подключения камеры
  4. Разъем для подключения камеры
  5. Разъем для подключения шлейфа для соединения с основной платой

Предлагаемая последовательность электромонтажа

  1. Припаяйте силовой кабель от кабель-троса к разъему XT30

    1. Красный – VIN
    2. Черный – GND
  1. Обожмите или припаяйте провода LAN от кабель-троса к разъему JST 1,25mm 4pin.

    Для обжимки разъемов JST 1,25mm 4pin рекомендуем использовать паяльник с тонким жалом или кримпер IWISS SN-28B

    1. Бело-оранжевый – RX-
    2. Оранжевый – RX+
    3. Бело-зеленый – TX-
    4. Зеленый – TX+

    Разметка (RX-, RX+, TX-, TX+) нанесена на плате.

  2. Обожмите или припаяйте провода Video от кабель-троса к разъему JST 1,25mm 4pin.

    1. Бело-синий – AV1
    2. Синий – GND_AV
    3. Бело-коричневый – AV2
    4. Коричневый – GND_AV
Обжатые провода LAN b Video
  1. Припаяйте провода движителей к разъемам MR30

    1. Желтый – PWM
    2. Красный – + (12V)
    3. Черный – - (GND)

    Разметка (PWM, 12V, GND) нанесена на плате.

  1. Прикрепите основную плату к шасси
Основная плата со вставленными разъемами
  1. Закрепите плату полезной нагрузки на заднюю крышку блока электроники (там, где 8 отверстий М10 для пенетраторов)
  2. Обожмите или припаяйте провода двухстепенного манипулятора к разъему JST XH 2,54mm 4pin по схеме:

    1. Красный – M2A
    2. Черный – M2B
    3. Белый – M1A
    4. Синий – M1B

    Разметка (M2A, M2B, M1A, M1B) нанесена на плате.

  3. Обожмите или припаяйте провода двух поворотных камер к разъему JST XH 2,54mm 6pin по схеме:

    1. Экран провода – GND_AV
    2. Белый – AV
    3. Синий – 12V_AV
    4. Зеленый – PWM
    5. Красный – 5V
    6. Черный – GND

    Разметка (GND_AV, AV, 12V_AV, PWM, 5V, GND) нанесена на плате.

  4. Подключите датчик глубины (давления) к плате полезной нагрузки.

    1. Красный - 5В
    2. Зелёный - SCL (3.3В логика)
    3. Белый - SDA (3.3В логика)
    4. Чёрный – GND

    Разметка (5В, SCL, SDA, GND) нанесена на плате.

  5. Соедините шлейфом основную плату и плату разъемов. При соединении шлейфом обозначения (числа) на одной плате ДОЛЖНЫ совпадать с обозначениями другой плате.
  6. Припаяйте к ответной части кабеля ТНПА разъем для подключения аппарата к пульту управления.
Схема разъема
  1. Не паяется
  2. Черный силовой провод (GND)
  3. Красный силовой провод (12В)
  4. AV2(Бело-коричневый)
  5. AV_GND (Синий)
  6. AV1(Бело-синий)
  7. RX+ (Бело-оранжевый)
  8. RX-(Оранжевый)
  9. TX+(Бело-зеленый)
  10. AV_GND (Коричневый)
  11. TX-(Зеленый)

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

Firmware

Исходный код ROV firmware доступен в репозитории по ссылке:

https://github.com/murproject/rov_firmware

1. Общее описание ПО

Программное обеспечение “ROV firmware” призвано обеспечить легкий и плавный вход в программирование телеуправляемых необитаемых подводных аппаратов на базе конструкторов HighROV.

ПО содержит минимальную поддержку модулей, используемых в HighROV.

2. Общее описание модели исполнения (workflow)

Вся работа аппарата инкапсулирована в классе Rov. Этот класс организует приёма-передачу сообщениями с RovGUI. Считывает показания с датчиков, управляет моторами, и полезной нагрузкой.

Обобщенный алгоритм работы ПО:

  • Прием сообщения от RovGUI, распаковка сообщения в соответствующую структуру, описанную в “RovDataTypes.h”.
  • Обновление сенсоров
  • Обновление телеметрии аппарата
  • Управление тяговыми движителями, расчет регуляторов из последней информации от RovGUIи обновленной телеметрии аппарата.
  • Обновление телеметрии движителей
  • Управление полезной нагрузкой исходя из последней информации, принятой от RovGUI.
  • Обновление телеметрии полезной нагрузки.
  • Отправка телеметрии в RovGUI.

3. Диаграмма классов UML

3.1 Общая схема UML

3.2 Схемы подсистем

3.2.1 Схема Робота

3.2.2 Схема SensorsContainer

3.2.3 Схема Thruster Control System

4. Описание классов

4.1 Класс Rov

4.1.1 Описание

Класс Rov инкапсулирует себе всю работу ТНПА, содержит в себе все подсистемы и управляет ими.

Подсистемы:

  1. Подсистема управления движителями
  2. Подсистема управления сенсорами
  3. Подсистема управления сенсорами
  4. Подсистема управления соединением с RovUI
  5. Подсистема хранения данных

4.1.2 Основные функции

  • void init() – функция вызывающая инициализацию всех подсистем.
  • void run() – функция вызывающая работу всех подсистем. Класс зависит от всех вышеперечисленных подсистем.
4.2 Класс UdpConnection

4.2.1 Описание

Класс инкапсулирует всю коммуникацию с RovUI. Парсинг приём и отправка сообщений, сохранение в систему хранения данных.

4.2.2 Основные функции

  • void init() – функция инициализации подсистемы.
  • bool existRecvMsg() – функция проверяющая на наличие нового сообщения.
  • bool recvControlFromPayload(RovControl&out) – функция принимающая новое сообщение и распаковывает его в структуру RovControl.
  • void sendRovTelemetry(RovTelimetry&telemetry) – функция отправляет в RovUI данные хранящееся в объекте RovTelimetry.
4.3 Класс ThrusterControlSystem

4.3.1 Описание

Класс инкапсулирует в себе работу движителей. Управляет моторами расчетом регуляторов исходя из переданной из RovUI данных, так же, сохраняет некоторую обратную связь в систему хранения данных.

4.3.2 Основные функции

  • void init() – функция инициализации системы, и всех моторов, например, инициализация Servo для моторов и т.д.
  • void update(const RovDataStore&store_) – функция обновления тяги на моторах, в ней происходит расчет регуляторов для автоматических режимов.
  • void commit(RovDataStore&store_) – функция сохранения обратной связи на систему хранения телеметрии, для отправки в RovUI.
4.4 Класс PayloadSystem

4.4.1 Описание

Класс инкапсулирует в себе работу со всей полезной нагрузкой аппарата, управления манипулятором, поворотной камерой и т.д. Хранит все зарегистрированные в себе PayloadTool и управляет ими. Все объекты полезной нагрузки должны быть унаследованы от класса PayloadTool для обеспечения полиморфного поведения объектов. Управления объектами происходит вызовом метода обновления (записи в устройство), и сохранения (записи из устройства).

4.4.2 Основные функции

  • void init() – инициализация подсистемы и всех зарегистрированных устройств полезной нагрузки.
  • void update(const RovDataStore&store_) – обновление (запись) во все зарегистрированные устройства полезной нагрузки.
  • void commit(RovDataStore&store_) – сохранение (чтение) из всех зарегистрированных устройств полезной нагрузки в систему хранения данных.
4.5 Класс SensorContainer

4.5.1 Описание

Класс инкапсулирует в себе работу подключенных сенсоров (навигационно- пилотажный, датчики тока, датчик давления). Хранит в себе все зарегистрированные в конструкторе Sensor и управляет ими. Все объекты сенсоров должны быть унаследованы от класса Sensor, для обеспечения полиморфного поведения объектов. Управление объектами происходит вызовом метода обновления (обновление данных на всех датчиках) и сохранения их в систему хранения данных.

4.5.2 Основные функции

  • void init() – функция инициализации системы, и всех датчиков.
  • void sensorsUpdate() – функция обновления датчиков.
  • void dataCommit(RovTelimetry&tel_) – функция сохранения данных из датчиков.
4.6 Класс Sensor

4.6.1 Описание

Класс является интерфейсом всех классов, инкапсулирующих работу внешних датчиков, которые управляются, в сущности, SensorContainer.

4.6.2 Основные функции

  • virtual void init() = 0 – интерфейс функции инициализации датчика. В реализации функции, необходимо корректно инициализировать датчик.
  • virtual void update() = 0 – интерфейс функции обновления датчика. В реализации функции, необходимо корректно обновлять данные датчика.
  • virtual void commit(RovTelimetry&tel_) = 0 – интерфейс функции сохранения данных датчика. В реализации функции, необходимо корректно сохранить данные датчика в телеметрию аппарата.

Примеры реализации интерфейсов, проиллюстрированы в коде классов IMUSensor, DepthSensor, AmmetrSensor, VoltmeterSensor.

4.7 Класс PayloadTool

4.7.1 Описание

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

4.7.2 Основные функции

  • virtual voidinit() = 0 – интерфейс функции инициализации устройства. В реализации функции, необходимо корректно инициализировать устройство.
  • virtual void update(const RovDataStore&store_) = 0 – интерфейс функции обновления устройства. В реализации функции, необходимо корректно обновить устройство исходя из управляемых значений.
  • virtual void commit(RovDataStore&store_) = 0 – интерфейс функции сохранения данных устройства. В реализации функции, необходимо корректно сохранить обратную связь устройства.

Примеры реализации интерфейсов, проиллюстрированы в коде классов RotaryCamera, ManipulatorTool.

5. Файл RovMagics.h

Файл содержит константы для конфигурации gpio для всех устройств ввода- вывода. Содержит специфичные константы необходимые для работы объектов. В файле содержатся, количество вертикальных и горизонтальных моторов, количество датчиков и устройств полезной нагрузки, необходимых для корректного выделения памяти для объектов.

6. Зависимости

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

  1. Servo
  2. Ethernet
  3. Wire
  4. SPI

ROV UI (User Interface)

Исходный код пульта оператора HighROV доступен в репозитории по ссылке:

https://github.com/murproject/RovUI

Ниже приведено описание программного обеспечения. Данное программное обеспечение позиционируется как отправная точка для написания своего ПО пульта оператора HighROV. Данное ПО зависит от:

  • Qt 5.6+ (core gui network multimedia multimediawidgets).
  • C++ 11
  • SFML 2.4.1 (в репозитории находятся собранные бинарники для Windows MinGW 5.3).

Внимание! Работоспособность пульта оператора проверялась только под Windows 10!

Основные элементы интерфейса

Пульт оператора состоит из следующих элементов:

  • Меню, с помощью которого вы можете начать/остановить захват изображений с камеры, настроить оси и кнопки джойстика, включить или отключить боковые виджеты.
  • Центральный виджет, на котором выводится изображения с камеры и осуществляется выбор источника картинки.
  • Пять боковых виджетов: виджет телеметрии, виджет с информационными сообщениями (на него переопределен вывод с qDebug, qInfo, qWarning), виджет ограничения тяги на движители, виджет управления регуляторами и виджет логирования.

Подключение

Пульт автоматически получает UDP датаграммы на порт 3010 и отправляет пакет с командами управления на 192.168.1.5:3020 (RovUdpConnection). С форматом пакетов Вы можете ознакомиться в файле RovDataTypes.hpp.

Элементы управления

  • Меню

В меню расположено три подменю: Камера, Настройки и Вид. Меню камера используется для запуска и остановки захвата изображений с камеры.

В меню вид Вы можете настроить параметры отображения виджетов. В меню настройки вы можете вызвать диалоговые окна для переназначения осей джойстика и подачи отладочной тяги на движители.

  • Виджет телеметрии

Данный виджет служит для отображения телеметрии, получаемой с ROV. Виджет с информационной консолью

Данный виджет предназначен для вывода информационных сообщений. На него переопределен вывод с qDebug, qInfo, qWarning.

  • Виджет ограничения тяги

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

  • Виджет регуляторов

Данный виджет предназначен для управления (включения/выключения регуляторов).

  • Виджет логирования

Данный виджет предназначен для сохранения данных телеметрии, получаемой с аппарата, и последующим сохранением в CSV файл. Для начала логирования необходимо нажать на кнопку "Начать запись". Для остановки "Остановить запись", для сохранения "Сохранить лог".

Сборка элементов конструкции

  1. Крышка блока электроники должна быть вставлена в герметичный корпус через резиновые кольца и зафиксирована винтами.
  2. Вырезать из листового полиэтилена раму, предусмотреть на раме места для закрепления блока электроники, движителей, камер, манипулятора.
  1. Вырезать из листа экструдированного полистирола элементы плавучести.

Варианты раскроя рамы и плавучести можно найти в репозитории https://github.com/murproject/HighROV_CuttingPatterns, либо можно создать свой оригинальный дизайн телеуправляемого необитаемого подводного аппарата.

  1. Собрать раму, закрепить на раме модуль бортовой электроникидвижители, камеру и манипулятор. Прикрепить к раме элементы плавучести.
  2. Присоединить кабель к пульту управления.
Аппарат, собранный по чертежам из репозитория

Особенности применения

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

Вскрывать герметичные корпуса можно только при отсутствии влаги на любых частях аппарата. Необходимо также проверять изоляцию кабеля, по которому подаётся питание устройству, т.к. нарушение изоляции может являться причиной выхода устройства из строя.

Не подвергайте устройство ударному воздействию, т.к. это может нарушить герметичность модулей электроники и привести к выходу устройства из строя.

Балластировка

Для корректной работы движительно-рулевой системы необходимо выполнить мероприятия по балластировке и обеспечению остойчивости (достижению около нулевой плавучести и около нулевого крена и дифферента).

В комплект поставки входят поплавки, которые рекомендуется разместить в верхней части аппарата и закрепить пластиковыми крепёжными винтами М6.

Необходимо добиться того, чтобы аппарат держался на поверхности воды, при этом если его слегка толкнуть рукой вглубь воды, то он должен медленно начать опускаться под воду, затем медленно начать подниматься. Желательно добиться такой плавучести, чтобы аппарат при отключении питания медленно всплыл на поверхность, а не ушёл на дно.

Используя металлические болты и, работая с размещением поплавков, движителей, камеры, захвата и модуля бортовой электроники, необходимо устранить как крен, так и дифферент аппарата (отклонение по бокам и по направлению нос/задняя часть). Если балластировка и обеспечение остойчивости выполнены хорошо, то аппарат в выключенном состоянии слегка будет показываться из-под воды верхними плоскостями поплавков.

Следует соблюдать меры предосторожности при работе с движителями: запрещается трогать руками лопасти гребных винтов движителей при подключенном питании. Лопасти изготавливаются из ABS пластика и имеют заострённые края и могут вращаться со скоростью до 3000 оборотов в минуту, что может привести к травмам. Запрещается также продевать кабель через лопасти движителей, либо вставлять какие-либо предметы в движители.

Проверка работоспособности

Проверка до сборки

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

Проверка на воздухе

  1. Убедиться, что при пайке не произошло короткого замыкания.
  2. Подключить кабель к разъёму на пульте управления.
  3. Включить кабель с вилкой С13 в пульт управления и в сеть 220 В, 50Гц.
  4. Включить питание на пульт управления клавишей. На мониторе должно появится изображение с камеры.
  5. Включить джойстик. При нажатии на рычаги джойстика должны работать движители, манипулятор и сервоприводы поворотных камер.
  6. Выключить питание.

Проверка в воде

  1. Убедится, что вводы кабелей в блок электроники загерметизированы и что крышка вставлена с использованием резиновых уплотнительных колец, а также что посторонние предметы, пыль и грязь не попали в место соединения крышки с корпусом модуля бортовой электроники.
  2. Подключить кабель к разъёму на пульте управления.
  3. Подключить джойстик
  4. Опустить аппарат в воду.
  5. Провести балластировку аппарата. После балластировки вытереть руки насухо!
  6. Включить кабель с вилкой С13 в пульт управления и в сеть 220 В, 50 Гц.
  7. Включить питание на пульте управления клавишей. На мониторе должно появится изображение с камеры.
  8. Включить джойстик. При нажатии на рычаги джойстика аппарат должен перемещаться в воде, манипулятор должен работать, камера должна поворачиваться внутри герметичного корпуса.
  9. Отключить питание и выдернуть кабель из розетки 220 В.
  10. Достать аппарат из воды, дать возможность воде стечь, протереть аппарат сухими салфетками. Если аппарат использовался в морской воде, то необходимо его помыть в пресной воде, затем вытереть насухо.

Хранение

Хранить при температуре от -5 до +45°C.

Эксплуатировать при температуре от 0 до + 40°C

Гарантийные обязательства

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

В случае возникновения гарантийных обязательств покупатель за свой счёт отправляет весь комплект в адрес ООО “Центр робототехники” (Россия, г. Владивосток, ул. Комсомольская, 1, оф. 404). Диагностика и ремонт выполняются в течение 40 рабочих дней. В случае обнаружения нарушений условий эксплуатации происходит письменное уведомление покупателя о невозможности выполнения гарантийного ремонта или замены.