Новый автопилот?

HardRock

Есть идея написать новый автопилот, концептуально отличающийся от ныне существующих.

Не буду долго расписывать что не нравится в “пиксхавках и прочих омнибасах”, напишу только ключевые отличия планируемого АП:

  1. Переход с микроконтроллеров на Linux, т.е. непосредственно сам АП - это приложение, работающее на “нормальных” процессорах в “нормальной” операционной системе и на разных архитектурах - x86 / ARM / MIPS.
    На это есть ряд причин, например относительная неограниченность вычислительных ресурсов.
  2. Модульная архитектура, основанная на принципах потоковой обработки данных. Проще говоря, этот АП должен обеспечивать легкость добавления новых функций произвольной направленности: как новых датчиков / исполнителей, так и алгоритмов обработки входных данных и принятия решений. Например велик соблазн сделать инерциальную навигацию и попробовать использовать алгоритмы машинного обучения.
  3. В качестве сенсоров и плат интерфейсов на начальном этапе использовать модули (beakout board) датчиков для DIY, которых огромное количество продается на алиэкпрессе. Датчики подключаются к интерфейсной плате (в частном случае к ардуине), которая по USB подключается к плате где крутится автопилот (например, это может быть малина). Получается условно неограниченное масштабирование. Захотел новых сенсоров, например мерить напряжение на каждой банке - купил ADC плату для ардуины, прописал датчики в конфиге и все. Нужно больше сервоприводов - купил PWM контроллер для ардуины… Не хватает пинов - купил USB хаб, подключил новую интерфейсную плату и т.д.

На данный момент идея в статусе проработки архитектуры и “что как делать”.
Есть необходимая кодовая база для реализации модульной архитектуры.

Сочинять алгоритмы и прочее с нуля не нужно, предлагается опираться на открытые проекты, в первую очередь на iNAV.

Собственно ищу заинтересованных в участии. Необходимо знание C/C++ и опыт разработки под Linux. Приветствуется опыт в встраиваемых системах, а так же в электронике / схемотехнике или хотя бы владение паяльником и знакомство с ардуиной.
В идеале хочется собрать людей из Москвы чтобы можно было лично встречаться, обсуждать, облетывать.

AlexOff

Могу предложить помощь в сборке, распайке, монтаже, производство корпусов, решение задач по конструктивной части.! Москва - Королев

svpcom

Вы только что придумали PX4 😃
Он изначально модульный и работает в том числе на linux’е

lelik
svpcom:

Вы только что придумали PX4 😃
Он изначально модульный и работает в том числе на linux’е

Да и ardupilot вполне себе под linux работает, и тоже вполне себе модульный, хоть и коряво. И плат на ARM достаточно, как интегрированных, так и разных шляп с IMU/датчиками/коммуникацией. Есть только один вопрос - нафига это надо ?

Lazy
lelik:

Да и ardupilot вполне себе под linux работает

Вспоминается АП - гибрид аппаратки с Малиной. 😃

Но кто сейчас занимается изучением готового, если вдруг потный вал вдохновения?

lelik
Lazy:

Вспоминается АП - гибрид аппаратки с Малиной/ 😃

Их там как говна за баней, стоит только HCL к PX4/ardupilot почитать.

Lazy
lelik:

почитать

Что сделать? 😃

HardRock

Скорее придумал не PX4, а Navio2 😃

Вообще идея лежит на поверхности и появление такого проекта - вопрос времени.

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

Суть НЕ в том чтобы сочинить автопилот заново, а в том чтобы взять самое лучшее из существующих и представить в новом формате. Т.е. ни чего революционного проект не принесет, только эволюционные изменения 😃

Тот же АРМ - это по сути первопроходец в теме хоббийных или околохоббийных автопилотов, он создавался под микроконтроллеры и имеет соответствующую архитектуру - цикл обработки где последовательно вызываются шаги. Все что делается для микроконтроллеров имеет одинаковую архитектуру, если не используется RTOS, как в PX4. Но и RTOS дает определенные ограничения.

Предлагается полностью уйти от микроконтроллеров, т.е. считаем что данный АП будет работать только как приложении (сервис) в Linux с прицелом на многоядерные процессоры.
Все драйвера, алгоритмы и прочие модули должны быть представлены в виде “черных ящиков” из которых на уровне конфигурации строится конкретный автопилот. Каждый такой черный ящик работает независимо. Мы знаем что ему подавать на вход и что ожидаем получить на выходе и можем запустить / отлаживать именно этот блок или цепочку блоков без сборки все системы управления.

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

lelik

Кроме NAVIO2 есть еще пяток аналогичных шилдов, половина из которых открыта, берите и экспериментируйте. Вернетесь к выделенной железке с АП и companion computer

Lazy

Я честно ХЗ чего вам в жизни не хватает. Летаю уже долгие годы на Папарацце и понять не могу чего ей может не хватать…

alexeykozin
lelik:

Вернетесь к выделенной железке с АП и companion computer

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

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

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

HardRock

Папарацци - интересный АП. Не использовал, только смотрел. Но это снова АП для МК.
А что хочется? Хочется например три гироскопа, два GPS, резервный канал управления/телеметрии по 3G, резервирование датчиков и управления, посадку по давлению аэродрома с коррекцией по камере. Ну это условно что можно хотеть для счастья 😃 А там где всё это не нужно - использовать только то что нужно, не меняя АП.

lelik:

Вернетесь к выделенной железке с АП и companion computer

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

svpcom

Все уже придумано: dev.px4.io/en/ros/offboard_control.html
Подключаете ROS или пишете свою логику для работы с mavlink.
Отдельный контроллер автопилота дает hard realtime для цикла управления и возможность пережить сбой в высокоуровневой логике (например у вас случится kernel panic из-за кривого wifi драйвера)

lelik
HardRock:

Хочется например три гироскопа, два GPS, резервный канал управления/телеметрии по 3G, резервирование датчиков и управления, посадку по давлению аэродрома

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

Lazy
HardRock:

А что хочется

Начало любой работы - изучение существующих решений. Когда изучите - поймёте, что уже всё, совсем всё…
“Всё украдено до нас” (ц)

HardRock

Украдено, да не так. Есть идея перекрасть более изящно 😃

lelik

Ждем управления через 3G, не забудьте позвать на тесты

HardRock

В управление по 3G (управление в реальном времени) я не верю и как-то объяснял в теме на форуме почему это работать не будет, а вот выставление полетных точек и получение телеметрии - вполне.

alexeykozin
lelik:

Ждем управления через 3G, не забудьте позвать на тесты

тоже придумано/украдено ключевое слово “виртурилка”