Автопилот Arduplane - открытое ПО

Rom111

Ага, про спутники всё понятно. Не много не привычна 4-х бальная шкала, но это мелочи. А вот интересно почему так высота в OSD скакала?

alexeykozin
Rom111:

Ага, про спутники всё понятно. Не много не привычна 4-х бальная шкала, но это мелочи. А вот интересно почему так высота в OSD скакала?

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

четырехбальная шкала повзаимстована из билиотек ардупилот мега,
думаю надо сделать пятый бал на идеальный HDOP, где нить <1

lio

на счет предполетной подготовки и сброса Хом позишин
а почему бы не сделать махание к примеру рудером на земле до появления валидных данных
пилот видит что самаль виляет хвостом - значит не все так … ждем
успокоился - жмем ресет иначе просто не даем работать газом !
типа некая защита от дурака 😃

а для сима - таже версия прошивок только заточенной под сим 😃
как сделано в мегапилоте 😃

alexeykozin
Rom111:

Где, кстати это делается, в прошивке ardupilota?

в 2.7 это модуль CGS Remzibi
void print_control_mode(void)

Serial.print(“$M,”);
Serial.print(“130,”); // Колонка для начала текста
Serial.print(“11,”); // Ряд для начала текста
Serial.print(“169,”); // dec address of First Character - это я не понял к чему, взаимстовано из ориг. версии
Serial.print(“00,”); // dec address of Last Character

2 lio
мой мотив против этого - что будет как со мной и другими форумянами которые начали пробовать пилот до того как полностью перевели и заучили английский мануал…

“почему когда я включаю “авто” самолет загибает элероны и руль высоты” ведь если я это сделаю в полете он упадет. (если я не ошибаюсь такое гдето было если при включении/ресете ардупилота переключатель режима не мануал и газ не убран - типа к взлету неготов)

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

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

Rom111

Про тонкости сброса точки Home не знал, но проблем с этим не возникало, т.е при включении с пульта RTL самолёт четко летел домой. На сброс OSD перед вылетом нажимал, после чего возникала надпись HOME SAVED и возникали нули в расстоянии, скорости и высоте, только потом, во время полета, высота скакала как бешеная. Запишу видео, поговорим на эту тему поконкретнее, ок?
На счет виляния хвостом. Думаю, элегантнее было бы повесить на свободный выход ardupilota какую-нибудь простенькую пищалку.

e-serg
smalltim:

Что-то как-то у вас всё сложно.
Вот как у меня:

Вычисления всё float. Double - пустая трата времени и ресурсов. Впрочем, в gcc, по-моему, double = float.

Почему то был уверен что у вас целочисленная математика.
ведь используя только 8-битные константы уже можно курс с точностью ~0.5град вычислять.

lio
alexeykozin:

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

при старте и ресете - иму выдает в порт свою версию в обычном тексте
а уже потом начинает гнать бинарник
можна ее парсить

Думаю, элегантнее было бы повесить на свободный выход ardupilota какую-нибудь простенькую пищалку.

вполне можна думаю повесить пищалку на колодку системного разьема меги328 и пиликать заранее условленную мелодию 😃

alexeykozin

иму выдает версию только в случае если настроена для тестирования
#if PRINT_BINARY != 1 //Print either Ascii or binary messages

Serial.print(“!!!VER:”);
Serial.print(SOFTWARE_VER); //output the software version

но в принципе это не беда, можно в новую иму добавить параметр и в вывод данных жпс а они в немеге не чаще 5гц, а можно вообще добавить собственное сообщение с новым ID и слать в нем допустим отдельно версию, барометр, воздушную скорость

в принципе узнать что версия с удлиненным выводом массива при передаче
данных жпс несложно, у нее число байт на 2 больше, но это как то “неспортивно”

alexeykozin

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

Rom111
alexeykozin:

можно попробовать сконфигурить футы из утилиты конфигурации осд

т.е. высоту будет в футах отображать? Я всё лето летал с одной OSD без ardupilota проблем с высотой никогда не было. С данными полученными непосредственно с GPS OSD работает отлично. Может дело в прошивке самой OSD для ardupilota у меня сейчас залита ARDUMV1_73.HEX

alexeykozin
Rom111:

Может дело в прошивке самой OSD для ardupilota у меня сейчас залита ARDUMV1_73.HEX

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

кстати думал что симулятор и осд через один компорт не смогут работать, фигня работают у них разные метки строк и ненужные строки оба ardupilotsim и osd просто игнорируют, единственное в окне терминала ardupilotsim поток $ - команд

Rom111
alexeykozin:

остальное он считает из жпс координат

Вот это система мне совершенно не понятна. Зачем OSD самой заниматься расчетами если все данные по высоте и курсу есть в ardupilote? Или нет?

blade
Rom111:

Зачем OSD самой заниматься расчетами

Тут как раз-всё понятно: во первых, ОСД- самостоятельное устройство и главная его задача- посчитать и вывести в виде стрелочки- направление “домой”. Ну, и в виде бесплатного приложения- всяки разны напряжения, скорости, высоты, координаты и т.д.
Во вторых- Ремзиби и Ару пилот: от разных родителей, просто они их совместимыми сделали, чтобы расширить применение 😃
Но ОСД- не открытый проект: исходники там недоступны 😦

Отлично

Подскажите, проект еще реботает? А то нигде не могу найти в продаже. Даже на сайте diydrones нет в наличии.
Если уже все закрылось, есть подобные открытые проекты например для ардуины и датчиков allinone?
Спасибо

alexeykozin

вот ардупилот в терре есть, только сначала заказ сделайте через инет магазин а то накрутка будет www.terraelectronica.ru/catalog_item.php?ID=1115&C…

простите не посмотрел что вы из питера, возможно и в СПБ где нить есть вналичии

а имушку можно сделать даже самому если душа к паяльнику лежит

Отлично

Rom111, спасибо. Кто такой Алексей?

alexeykozin, у них тоже нет в наличии.

Я правильно понимаю, что заливание прошивки в плату производится через ардуино ide при подключении либо шилда с датчиками к юсб, либо основной платы через ftdi кабель?
И что значит Arduino Mega compatible на основной плате? Она както втыкается в обычную мегу? И зачем?)

alexeykozin
Отлично:

Rom111, спасибо. Кто такой Алексей?

alexeykozin, у них тоже нет в наличии.

Я правильно понимаю, что заливание прошивки в плату производится через ардуино ide при подключении либо шилда с датчиками к юсб, либо основной платы через ftdi кабель?

И что значит Arduino Mega compatible на основной плате? Она както втыкается в обычную мегу? И зачем?)

есть ардупилот (маленький)
есть ардупилот мега (большой)

и тот и другой вполне летабельны
мега покруче и софт у него понавороченнее, но и стоит подороже

у маленького стоковая прошивка только под самоль, у меги и под самоль и под несколько видов коптеров
в терраэлектронике маленький в наличии, если пишут склад - то это значит в офисе будет четко через два дня

и ардупилот мега и “ардупилот мини” и плата сенсоров от “мини” могут прошиваться через ардуино IDE
у меги дополнительно есть навороченная утилита через которую можно шить и конфигурить из гуи, безо всякой ардуино IDE

все платы можно шить через сериальный uart адаптер, на любой микрухе или даже использовать какую нить фридуину без чипа (если на панельке), у меги на плате сенсоров есть собственный usb - uart

alexeykozin

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

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

я задал точки порядка 30-50 метров полагая что от уровня home который будет определен перед запуском модели по жпс

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

Rom111

А на какой прошивке? Я пробовал 2.7.1 проблем с высотой не было. У меня верхнеплан поворачивает отлично. Высоту точки ставил 100м автопилот удерживает высоту относительно точки старта. Если поставить галку Over Terrain, то будет пытаться определить высоту земной поверхности по Google maps и плюсовать 100м. Про опции в первой строке даже не задумывался. У меня так: OPTIONS:164,True,False,Meters,14