Автономный квадрокоптер 280мм для съемки с воздуха

в 13:21, , рубрики: 3DR, 3drobotics, diy или сделай сам, xiaomi, дрон, квадрокоптер, коптер, мультикоптеры, робототехника, съёмка с воздуха

Автономный квадрокоптер 280мм для съемки с воздуха - 1
Привет всем! Хочу рассказать о создании небольшого коптера, который может летать самостоятельно, без посредственного управления через радиоаппаратуру, и при этом осуществлять съемку. Идея зародилась перед очередным путешествием в Азию. Хотелось с собой взять коптер и поснимать с него, но при этом тащить минимум электроники и комплектующих, а также, чтобы сам коптер занимал совсем немного места.

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

Конструкция рамы и электроника.

Сразу пришла мысль, что можно собрать дрона на базе рамы для FPV Racer'а. Как раз такая была и лежала пока без дела, потому что из-за снега зимой FPV не особо хотелось летать:)
Автономный квадрокоптер 280мм для съемки с воздуха - 2
Рама вырезана из карбона с небольшими переделками относительно данной рамы. Изменения заключаются в крепежных отверстиях под моторы и форме демпфирующей платформы под камеру Xaiom Yi, вместо Mobius'а. Винты выбраны 6045, так как из характеристик мотора видно, что они наиболее эффективны. Время полета с аккумулятором 3s 2200 мАч составляет 10-11 минут.
Автономный квадрокоптер 280мм для съемки с воздуха - 3

Регуляторы двигателей установлены DYS SN20A. Они недорогие и достаточно надежные, тем более для неспешного автоматического управления.
image

Главный элемент электроники — полетный контролер или автопилот — выбран 3DR APM 2.5. На самом деле он уже устарел, но оказался под рукой. Конечно, если есть возможность, лучше использовать Pixhawk. Прошивка ArduCopter для APM не поддерживается с версии 3.2.1, хотя содержит в себе всё необходимое, чтобы справляться поставленными задачами.
Для повышения качества управления полетного контроллера нужна виброизоляция с рамой (чтобы уменьшить шум на акселерометр и гироскоп), поэтому автопилот установлен на демпфирующую платформу. В моем случае она напечатана на 3d принтере, но можно рассмотреть и другие конструкции. Для измерения высоты используется встроенный в автопилот барометр, а для определения углового положения задействованы акселерометр, гироскоп и магнитометр. Магнитометр лучше использовать внешний, чтобы уменьшить отрицательное воздействие от металлических деталей и силовой электроники на магнитное поле.

Теперь рассмотрим важную часть для автономного полета — это модуль GPS, на котором также присутствует магнитометр. Модуль необходим для позиционирования в горизонтальной плоскости, чтобы осуществлять полеты по заданному маршруту. Модуль вынесен на 12см вверх, чтобы повысить точность измерений магнитометра, вдобавок прием GPS сигналов лучше, если верхняя полусфера антенны, которая тоже находится на модуле, полностью открыта. Я использовал Ublox Neo-M8N. На модуле пришлось выкрутить один из трех железных винтов на корпусе (на фото слева), так как он находился около чипа магнитометра.
Автономный квадрокоптер 280мм для съемки с воздуха - 5

Чтобы отправлять команды с земли и принимать телеметрию с коптера необходима радиосвязь. Хорошим выбором являются модемы SiK Telemetry Radio. На коптере установлена версия на 900 МГц. В условиях города такой связи хватает на 500-700 метров без прямой видимости. Благодаря модемам можно отправлять составленную полетную миссию на коптер (об этом ниже), давать команду на взлет или на возвращение домой (если видно, что что-то пошло не так), менять параметры автопилота и многое другое. Также с дрона на землю можно получать информацию о местоположении, высоте, заряде батареи и т. п. Вообщем-то дальность связи не так важна, так как при полетах на большие расстояния коптер передвигается самостоятельно по заранее записанной в нем миссии. Прерывание связи плохо тем, что дрон нельзя в любой момент вернуть домой, а также не понятно, в какой точке на карте искать его в случае падения.

Для подключения модема к смартфону понадобится USB OTG кабель. Удобнее всего использовать модель с двумя угловыми microUSB. Я изготовил его самостоятельно, но можно купить кабель от 3DR. Модем закрепляется на телефон с помощью липучки.
Автономный квадрокоптер 280мм для съемки с воздуха - 6

Еще на коптере присутствует модуль питания, который преобразует напряжение батареи (3s, 11.1 В) в напряжение питания управляющей электроники (5 В). Плата питания оснащена датчиком тока и напряжения, чтобы следить за зарядом батареи.
Автономный квадрокоптер 280мм для съемки с воздуха - 7

Так как перед автономным полетом коптер необходимо настроить (коэффициенты ПИД-регуляторов и другие параметры автопилота), на первоначальном этапе на дрон был установлен радиоприемник для управления с аппаратуры. Это позволяет вручную управлять коптером для отладки стабильности полета и в случае непредвиденных ситуаций приземлить его.

Для съемки используется камера Xiaomi Yi, так как является наиболее оптимальной по цене и качеству. Она установлена на раму через резиновые демпферы, чтобы уменьшить влияние вибраций на качество видео.
Автономный квадрокоптер 280мм для съемки с воздуха - 8

Настройка полетного контроллера и первые полеты.

Так как коптеры, собранные самостоятельно, состоят из уникального набора винто-моторной группы, регуляторов скорости, рамы, аккумулятора и дополнительной нагрузки, а также они могут быть предназначены для различных целей, необходима настройка полетного контроллера определенным образом. Наиболее функциональной оболочкой для конфигурации ArduCopter является MissionPlanner для Windows.

Начнем с ПИД-регуляторов. Стабильный и устойчивый полет обеспечивает подбор коэффициентов составляющих регулятора. Подробнее можно почитать на официальном сайте ArduCopter. Наиболее важными являются контуры управления по крену и тангажу. Проще всего выполнить настройку при помощи пульта, меняя коэффициенты и наблюдая за изменениями в полете. В режиме Stabilize необходимо добиться максимально отзывчивого управления по крену, тангажу и рыску без осцилляций.

Затем переходим к Alt Hold — режиму удержания высоты, при котором задействован барометр. Стоит обратить внимание на параметр INAV_TC_Z. Он был поднят до 6, чтобы избежать потери высоты при начале движения из точки зависания.

Когда с удержанием высоты все в порядке, остается проверить режим полета по GPS — Loiter. Перед началом испытаний необходимо откалибровать компас (магнитометер). Наиболее точно это можно сделать на улице, вдали от металлических конструкций. Калибровка устраняет локальные (находящиеся на коптере) искажения магнитного поля. Затем можно проверить, как дрон ведет себя при полете с GPS позиционированием. Не стоит забывать о количестве спутников и параметре HDOP, если они ниже установленных по умолчанию, то о стабильном полете можно забыть. Запуски допустимо производить на расстоянии от высоких зданий и деревьев, которые могут перекрывать GPS сигналы. Также отрицательное влияние на компас производят железные объекты, которые могут внести искажения в показания и привести к некорректному поведению в полете. Параметры ПИД-регуляторов Loiter можно оставить по умолчанию.

Главной цель — автономный полет. Его представляет режим Auto, и связанные с ним RTL, Guided и Follow Me. Если первые три режима, описанные выше, правильно настроены, то с режимом Auto не должно возникнуть никаких проблем. Говоря о параметрах автоматических режимов, можно обратить внимание на RTL_ALT (высота при возвращении на точку старта), WPNAV_RADIUS (радиус с которым коптер будет срезать углы маршрута), WPNAV_LOIT_SPEED, WPNAV_SPEED_DN, WPNAV_SPEED_UP (горизонтальная и вертикальная скорости), WP_YAW_BEHAVIOR (задает, куда будет «смотреть» коптер при движении по маршруту).

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

Параметры АП

ACRO_BAL_PITCH,1.00000000
ACRO_BAL_ROLL,1.00000000
ACRO_EXPO,0.30000001
ACRO_RP_P,4.50000000
ACRO_TRAINER,2
ACRO_YAW_P,4.50000000
AHRS_COMP_BETA,0.10000000
AHRS_GPS_GAIN,1.00000000
AHRS_GPS_MINSATS,6
AHRS_GPS_USE,1
AHRS_ORIENTATION,0
AHRS_RP_P,0.10000000
AHRS_TRIM_X,0.00480902
AHRS_TRIM_Y,0.00000000
AHRS_TRIM_Z,0.00000000
AHRS_WIND_MAX,0
AHRS_YAW_P,0.10000000
ANGLE_MAX,4500
ARMING_CHECK,1
ATC_ACCEL_RP_MAX,0.00000000
ATC_ACCEL_Y_MAX,0.00000000
ATC_RATE_FF_ENAB,0
ATC_RATE_RP_MAX,18000.00000000
ATC_RATE_Y_MAX,9000.00000000
ATC_SLEW_YAW,1000.00000000
BAROGLTCH_ACCEL,1500.00000000
BAROGLTCH_DIST,500.00000000
BAROGLTCH_ENABLE,1
BATT_AMP_OFFSET,0.00000000
BATT_AMP_PERVOLT,18.00000000
BATT_CAPACITY,1400
BATT_CURR_PIN,12
BATT_MONITOR,4
BATT_VOLT2_MULT,1.00000000
BATT_VOLT2_PIN,-1
BATT_VOLT_MULT,10.01000023
BATT_VOLT_PIN,13
CAM_DURATION,10
CAM_SERVO_OFF,1100
CAM_SERVO_ON,1300
CAM_TRIGG_DIST,0.00000000
CAM_TRIGG_TYPE,0
CH7_OPT,4
CH8_OPT,0
CIRCLE_RADIUS,1000.00000000
CIRCLE_RATE,20.00000000
COMPASS_AUTODEC,1
COMPASS_DEC,0.00000000
COMPASS_EXTERNAL,0
COMPASS_LEARN,0
COMPASS_MOTCT,0
COMPASS_MOT_X,0.00000000
COMPASS_MOT_Y,0.00000000
COMPASS_MOT_Z,0.00000000
COMPASS_OFS_X,-40.00000000
COMPASS_OFS_Y,-4.00000000
COMPASS_OFS_Z,-27.00000000
COMPASS_ORIENT,8
COMPASS_USE,1
DCM_CHECK_THRESH,0.80000001
EKF_CHECK_THRESH,0.80000001
ESC,0
FENCE_ACTION,1
FENCE_ALT_MAX,100.00000000
FENCE_ENABLE,0
FENCE_MARGIN,2.00000000
FENCE_RADIUS,300.00000000
FENCE_TYPE,3
FLOW_ENABLE,0
FLTMODE1,0
FLTMODE2,0
FLTMODE3,0
FLTMODE4,2
FLTMODE5,0
FLTMODE6,5
FRAME,1
FS_BATT_ENABLE,0
FS_BATT_MAH,0.00000000
FS_BATT_VOLTAGE,10.50000000
FS_GCS_ENABLE,1
FS_GPS_ENABLE,1
FS_THR_ENABLE,0
FS_THR_VALUE,975
GND_ABS_PRESS,99934.92968750
GND_ALT_OFFSET,0
GND_TEMP,20.61724091
GPSGLITCH_ACCEL,1000.00000000
GPSGLITCH_ENABLE,1
GPSGLITCH_RADIUS,200.00000000
GPS_HDOP_GOOD,230
GPS_NAVFILTER,8
GPS_TYPE,1
HLD_LAT_P,1.00000000
INAV_TC_XY,2.50000000
INAV_TC_Z,6.00000000
INS_ACCOFFS_X,0.18518060
INS_ACCOFFS_Y,0.37016189
INS_ACCOFFS_Z,1.30617762
INS_ACCSCAL_X,0.99584502
INS_ACCSCAL_Y,0.99087548
INS_ACCSCAL_Z,0.97209746
INS_GYROFFS_X,-0.01991687
INS_GYROFFS_Y,-0.02309356
INS_GYROFFS_Z,0.01115302
INS_MPU6K_FILTER,0
INS_PRODUCT_ID,0
LAND_REPOSITION,1
LAND_SPEED,50
LOG_BITMASK,894
LOITER_LAT_D,0.00000000
LOITER_LAT_I,0.50000000
LOITER_LAT_IMAX,4
LOITER_LAT_P,1.00000000
LOITER_LON_D,0.00000000
LOITER_LON_I,0.50000000
LOITER_LON_IMAX,1000
LOITER_LON_P,1.00000000
MAG_ENABLE,1
MIS_RESTART,0
MIS_TOTAL,6
MNT_ANGMAX_PAN,4500
MNT_ANGMAX_ROL,4500
MNT_ANGMAX_TIL,4500
MNT_ANGMIN_PAN,-4500
MNT_ANGMIN_ROL,-4500
MNT_ANGMIN_TIL,-4500
MNT_CONTROL_X,0.00000000
MNT_CONTROL_Y,0.00000000
MNT_CONTROL_Z,0.00000000
MNT_JSTICK_SPD,0
MNT_MODE,3
MNT_NEUTRAL_X,0.00000000
MNT_NEUTRAL_Y,0.00000000
MNT_NEUTRAL_Z,0.00000000
MNT_RC_IN_PAN,0
MNT_RC_IN_ROLL,0
MNT_RC_IN_TILT,0
MNT_RETRACT_X,0.00000000
MNT_RETRACT_Y,0.00000000
MNT_RETRACT_Z,0.00000000
MNT_STAB_PAN,0
MNT_STAB_ROLL,0
MNT_STAB_TILT,0
MOT_SPIN_ARMED,70
MOT_TCRV_ENABLE,1
MOT_TCRV_MAXPCT,93
MOT_TCRV_MIDPCT,52
OF_PIT_D,0.12000000
OF_PIT_I,0.50000000
OF_PIT_IMAX,100
OF_PIT_P,2.50000000
OF_RLL_D,0.12000000
OF_RLL_I,0.50000000
OF_RLL_IMAX,100
OF_RLL_P,2.50000000
PHLD_BRAKE_ANGLE,3000
PHLD_BRAKE_RATE,8
PILOT_ACCEL_Z,250
PILOT_VELZ_MAX,250
POSCON_THR_HOVER,193.00000000
RATE_PIT_D,0.00350000
RATE_PIT_I,0.06800000
RATE_PIT_IMAX,1500
RATE_PIT_P,0.06800000
RATE_RLL_D,0.00200000
RATE_RLL_I,0.04200000
RATE_RLL_IMAX,1500
RATE_RLL_P,0.04200000
RATE_YAW_D,0.00000000
RATE_YAW_I,0.02000000
RATE_YAW_IMAX,8
RATE_YAW_P,0.15000001
RC10_DZ,0
RC10_FUNCTION,0
RC10_MAX,1900
RC10_MIN,1100
RC10_REV,1
RC10_TRIM,1500
RC11_DZ,0
RC11_FUNCTION,0
RC11_MAX,1900
RC11_MIN,1100
RC11_REV,1
RC11_TRIM,1500
RC1_DZ,30
RC1_MAX,2020
RC1_MIN,962
RC1_REV,1
RC1_TRIM,1499
RC2_DZ,30
RC2_MAX,2022
RC2_MIN,962
RC2_REV,1
RC2_TRIM,1493
RC3_DZ,30
RC3_MAX,2021
RC3_MIN,958
RC3_REV,1
RC3_TRIM,963
RC4_DZ,40
RC4_MAX,2020
RC4_MIN,962
RC4_REV,1
RC4_TRIM,1493
RC5_DZ,0
RC5_FUNCTION,0
RC5_MAX,2020
RC5_MIN,962
RC5_REV,1
RC5_TRIM,963
RC6_DZ,0
RC6_FUNCTION,0
RC6_MAX,2020
RC6_MIN,959
RC6_REV,1
RC6_TRIM,963
RC7_DZ,0
RC7_FUNCTION,0
RC7_MAX,1500
RC7_MIN,1500
RC7_REV,1
RC7_TRIM,1500
RC8_DZ,0
RC8_FUNCTION,0
RC8_MAX,1501
RC8_MIN,1500
RC8_REV,1
RC8_TRIM,1500
RCMAP_PITCH,2
RCMAP_ROLL,1
RCMAP_THROTTLE,3
RCMAP_YAW,4
RC_FEEL_RP,100
RC_SPEED,490
RELAY_PIN,13
RELAY_PIN2,-1
RNGFND_FUNCTION,0
RNGFND_GAIN,0.80000001
RNGFND_MAX_CM,700
RNGFND_MIN_CM,20
RNGFND_OFFSET,0.00000000
RNGFND_PIN,-1
RNGFND_RMETRIC,1
RNGFND_SCALING,3.00000000
RNGFND_SETTLE_MS,0
RNGFND_STOP_PIN,-1
RNGFND_TYPE,0
RSSI_PIN,-1
RSSI_RANGE,5.00000000
RTL_ALT,0
RTL_ALT_FINAL,-1
RTL_LOIT_TIME,3000
SCHED_DEBUG,0
SERIAL0_BAUD,115
SERIAL1_BAUD,57
SIMPLE,0
SR0_EXTRA1,10
SR0_EXTRA2,10
SR0_EXTRA3,2
SR0_EXT_STAT,2
SR0_PARAMS,10
SR0_POSITION,3
SR0_RAW_CTRL,2
SR0_RAW_SENS,2
SR0_RC_CHAN,2
SR1_EXTRA1,0
SR1_EXTRA2,0
SR1_EXTRA3,0
SR1_EXT_STAT,0
SR1_PARAMS,0
SR1_POSITION,0
SR1_RAW_CTRL,0
SR1_RAW_SENS,0
SR1_RC_CHAN,0
STB_PIT_P,6.59999990
STB_RLL_P,6.59999990
STB_YAW_P,4.50000000
SUPER_SIMPLE,0
SYSID_MYGCS,255
SYSID_SW_MREV,120
SYSID_SW_TYPE,10
SYSID_THISMAV,1
TELEM_DELAY,0
THR_ACCEL_D,0.00000000
THR_ACCEL_I,1.29999995
THR_ACCEL_IMAX,5
THR_ACCEL_P,0.64999998
THR_ALT_P,1.00000000
THR_DZ,100
THR_MAX,1000
THR_MID,420
THR_MIN,130
THR_RATE_P,6.00000000
TRIM_THROTTLE,193
TUNE,0
TUNE_HIGH,1000
TUNE_LOW,0
WPNAV_ACCEL,100.00000000
WPNAV_ACCEL_Z,100.00000000
WPNAV_LOIT_JERK,1000.00000000
WPNAV_LOIT_SPEED,850.00000000
WPNAV_RADIUS,1000.00000000
WPNAV_SPEED,850.00000000
WPNAV_SPEED_DN,200.00000000
WPNAV_SPEED_UP,300.00000000
WP_YAW_BEHAVIOR,1

Автономный полет.

Вначале о приложении, с помощью которого задается маршрут на карте. Это Tower. Вместе с ним придется установить 3DR Services, чтобы подключить модем к Android. Приложение достаточно стабильное и функциональное, можно использовать оффлайн карты или просто прогружать заранее Google Maps. О всех возможностях и навыках использования данного приложения легко узнать из следующего видео.

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

Первое, на что стоит обратить внимание — это высота полета, задаваемая вручную. Часто сложно со стороны определить высоту, на которой должен пройти коптер, чтобы ничего не задеть. Стоит потренироваться в определении высоты «на глаз». Но все равно это не спасает при полетах на большие расстояния, когда обзор перекрывают ближе стоящие объекты.

Второе — всегда нужно помнить об условиях работы GPS и магнитометра, описанных выше. В связи с этим необходимо тщательно выбирать стартовую площадку. Чтобы проверить компас, можно посмотреть, совпадают ли повороты коптера на земле на 90 или 180 градусов, с показаниями угла курса в Tower. Ошибка не должна превышать 15 градусов.

Третье — безопасность. Взлеты и посадки лучше производить вдали от людей и животных, а также не осуществлять полеты в запрещенных зонах.

Опыт использования аппарата и заключение.

Автономный квадрокоптер 280мм для съемки с воздуха - 9

Воплощение идеи небольшого коптера, летающего самостоятельно по маршруту, можно принять состоявшейся. Минимум необходимых вещей, включая пять аккумуляторов и зарядное устройство, занимают совсем немного места в багаже. За 10 минут полета коптер способен улететь на 1.5-2 км и вернуться. Нужно признать достаточную надежность аппарата — никаких сбоев ни разу не произошло. При этом испытания проходили в СПб, когда температура держалась около нуля градусов, а основные полеты были в жару 30-35 градусов. Кстати, можно увидеть видео первых полетов 1, 2, 3 и 4. В общей сложности было отснято около 2х часов видео и совершено 40 вылетов в различных местах.

Конечно, случались и ошибки. Два раза в путешествии коптер врезался в препятствия. Это полностью связано с некорректной установкой высоты полета, так как в первом случае была гористая местность, а во втором не хватило буквально десяти сантиметров. Три раза при посадке наблюдались, так называемые “toiletbowls”, потому что рядом находились большие металлические здания. При этом посадки были не очень удачные, но без поломок. Возможность использования Follow Me режима я не сильно оценил, его стоит дорабатывать. В этом режиме полет неуверенный.

Еще выделю основной недостаток такого коптера — это отсутствие гиростабилизированного подвеса и, как следствие, дерганное видео. Но к сожалению, без потери продолжительности полета, в заданный размер не уместить подвес для Xiaomi Yi.

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

Автор: tuuzdu

Источник

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js