Автопилот SmartAP - Smart Autopilot

aviaks

Последние шесть месяцев мы работали над созданием автопилота для мультикоптера (позже будет адаптировано и под самолет, но пока приоритетом является коптер). Мы назвали ее SmartAP - Smart Autopilot.

Работа началась в октябре 2011 года. Во-первых, была приобретена оценочная плата микроконтроллера, мы выбрали STM32F103 на ARM Cortex M3. Для начала использовались breakout платы датчиков и создавалась предварительная версия программного обеспечения.

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

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

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

Вот некоторые основные характеристики:
Размер платы 60x40мм (4 слоя), вес 14 грамм
Процессор 72МГц STM32 ARM Cortex M3
6 ШИМ входов, 6 ШИМ выходов
Инерциальная измерительная система (3-х осевой MEMS гироскоп и акселерометр)
3-х осевой магнитометр
Датчик давления для измерения высоты
UART порт для подключения беспроводной телеметрии (например XBee)
MicroSD слот для записи полетных данных на карту
GPS-порт
Порт для подключения сонара
Порт для подключения датчика дифференциального давления

Вот несколько фотографий, вид сверху и снизу соответственно:


Если у вас есть какие-либо вопросы - я буду рад ответить на них.

Кирилл

baychi
aviaks:

мы выбрали STM32F103

А еще точнее STM32F103RBT6 - то есть то же, что и у всех похожих: 128 кБ FLASH, 20 кб ОЗУ.

aviaks:

Инерциальная измерительная система (3-х осевой MEMS гироскоп и акселерометр)

Которые пока не не впаяны или не полностью впаяны. Какие MEMS планируются?
MPU6000/6050?

aviaks:

3-х осевой магнитометр

Какой?

aviaks:

Если у вас есть какие-либо вопросы - я буду рад ответить на них.

Основные вопросы по математике, естественнно.

  1. Открытый ли проект? И если да, в какой степени? А если нет, будет ли предалагаться на продажу?
  2. Какой алгоритм IMU планируется?
  3. Планируется ли встроенный OSD? Или хотя-бы внешний?
  4. Не вижу серьезного питания. Одна LDO-шка на всё?
  5. Зачем Вам RTC?
aviaks
baychi:

А еще точнее STM32F103RBT6 - то есть то же, что и у всех похожих: 128 кБ FLASH, 20 кб ОЗУ.

Да, первоначально отладочная плата была под RB, но на самой плате автопилота используется уже RC, все почти то же самое, но памяти 256kB.

baychi:

Которые пока не не впаяны или не полностью впаяны. Какие MEMS планируются?
MPU6000/6050?

Да, будет установлен MPU-6050. Именно он пока еще в пути к нам.

baychi:

Какой?

Магнитометр - HMC5883

baychi:

Основные вопросы по математике, естественнно.

  1. Открытый ли проект? И если да, в какой степени? А если нет, будет ли предалагаться на продажу?
  2. Какой алгоритм IMU планируется?
  3. Планируется ли встроенный OSD? Или хотя-бы внешний?
  4. Не вижу серьезного питания. Одна LDO-шка на всё?
  5. Зачем Вам RTC?

[/QUOTE]

  1. На данный момент, этот вопрос пока остается открытым. На данный момент хочется подготовить все к полету и провести тесты.
    Конечно, если будет спрос и желающие приобрести, то вполне реально будет наладить продажу.
  2. Алгоритм IMU - DMP (Data Motion Processing), MPU-6050 производит вычисления (кватернионов или углов Эйлера) в своем внутреннем процессоре и отдает уже готовые данные наряду с сырыми данными (значения АЦП от гироскопов и акселерометров).
  3. Пока планируется внешний, но в следующей версии платы скорее всего уже будет интегрирован на основную плату.
  4. Одна LDO на 400mA, которое из 5 делает 3.3 вольта, это на питание процессора и датчиков (imu, барометр, магнитометр), всего получится не более 150-200mA. Телеметрия, сонар, датчик скорости, gps питаются от 5 вольт без LDO, напрямую либо с BEC либо с USB.
  5. Пока секрет 😃
baychi
aviaks:

Одна LDO на 400mA, которое из 5 делает 3.3 вольта, это на питание процессора и датчиков (imu, барометр, магнитометр)

Хорошо ли это: питать цифру и аналог от одного источника? Не даром на MPU6050 питание разнесено…

aviaks:

Магнитометр - HMC5883

Магнитометр MPU6050 учтет. А как быть с GPS? Оставите вне алгоритма?

aviaks
baychi:

Хорошо ли это: питать цифру и аналог от одного источника? Не даром на MPU6050 питание разнесено…

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

baychi:

Магнитометр MPU6050 учтет. А как быть с GPS? Оставите вне алгоритма?

Пока вопрос с учетом GPS остается нерешенным, но определенно он будет учитываться.

blade
aviaks:

Размер платы 60x40мм (4 слоя), вес 14 грамм

baychi:

Хорошо ли это: питать цифру и аналог от одного источника?

Не вдаваясь в подробности программные (которые и неизвестны и не испытаны в полете) сразу можно отметить несколько очевидных ошибок проектирования: четырехслойная плата (очевидно, для минимизации размеров, а зачем? Самолет нуждающийся в автопилоте- не бывает меньше 1,5 метров в размахе- из -за чего скупиться на место?) сразу вызывает несколько сомнений…
1 в цене- гораздо дороже обычной двухсторонней
2 в надежности: устройство работающее в условия вибрации, влажности и т.д. экстриме- не должно иметь ( а точнее-должно не иметь) много переходов и недоступных для ремонта (поскольку находятся в теле платы) дорожек
3 сложность монтажа (и- практическая невозможность без повреждения платы) демонтажа элементов (или ремонт изделию-требоваться не будет?)
4 применение линейного стабилизатора- вносит очень большую ненадежность в схему, создает ненужный источник тепла, тем более DC-DC сейчас абсолютно доступны и весьма миниатюрны.
5 разводка “земли” совместно цифры и аналога и общее питание- вообще ни в какие ворота не лезет:раздельная земля- это аксиома, совместная- гарантированная головная боль
6 делать плату ОСД общую с ИМУ- не будет ни ОСД ни ИМУ, поскольку телевидение не терпит ни “грязной” земли ни грязного питания, экран гарантированно будет в неустранимых"мурашках".
Какие чудеса начнутся в ИМУ от соседства с огромными синхроимпульсами ТВ сигнала- можно только гадать.
7 Внешние разъёмы в виде гребенок- гарантированное “втыкание чуть-чуть не туда” (спросите у Смаллтима:сколько палёных покупателями плат ему пришлось заменить “по гарантии”) с выгоранием всего подряд и- в случае коммерческих продаж, валом претензий.
Надо ставить гнезда с ключами, причем, на все цепи- разные, для “защиты от дурака” www.tdmegalit.ru/catalog/…/15912.php
Ну, вот как то примерно так…
ЗЫ:молодость и задор авторов конечно, многое объясняет. Но по граблям то ходить- зачем?

Drinker
aviaks:

мы работали

Мы - это кто?
sky-drones.com на плате, сайта нет.
Прототип летал? Если нет, то вообще жесть.
В чем изюминка проекта?

serj

Поздравляю! Автопилоты по весне растут как грибы 😃 Сделано красиво.
Железо готово, на очереди софт…

Четырехслойка- очень хорошо, особенно для начинающих. Силовая часть через эту плату не идет.

По линейному стабилизатору blade правильно сказал- он на пределе. Если линейник и ставить, то не в таком корпусе. Вы же не на 24 Мгц работать будете?
А с 4 банками вообще беда будет.

RTC - вероятно, для маркировки записи файлов в логгере, пока gps нет. Но тогда надо ионистор или батарейку…

ЗЫ:Может и мне АПС3.3 выложить? 😃

blade
serj:

ЗЫ:Может и мне АПС3.3 выложить?

Ну, если это не набор намерений, как обсуждаемое изделие 😃, то отчего же не выложить? А если с видео полетов- вообще бы был класс 😃

serj:

Железо готово, на очереди софт…

Да это пока не железо 😦
Как вот его включат, да как глюки устранят- тогда, может быть…
Но, судя по всему, до реального устройства- ещё долго.

serj:

Четырехслойка- очень хорошо, особенно для начинающих.

А чего хорошего- то?
Я всегда макетные версии- вообще на DIP корпусах и как можно просторнее делаю, чтобы в руки можно было взять, осциллографом потыкать, дорожки порезать- перекинуть.
И уж когда схемотехника отлажена- тогда начинаю “зажимать”.
Да и трассировки без ошибок с первого раза-не бывает.
ЗЫ: даю прогноз: первое, что у них отгорит- будет стабилизатор питания: в таком корпусе его реально можно грузить не более, чем 150 мА 😦

baychi
blade:

А чего хорошего- то?

При правильной разводке (один слой экранирующий, другой земля, в 2-х разводка), 4-х слойка дает занчительную ЭМС устойчивсть, а так-же уменьшаются шумы всяких аналоговых узлов. А разница в цене при таких размера - 1-2 $ - смешно даже для 1-го апреля. 😃

blade:

всегда макетные версии- вообще на DIP корпусах и как можно просторнее делаю

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

blade:

И уж когда схемотехника отлажена- тогда начинаю “зажимать”.

На сложных (аналоговых/силовых и т.п. ) платах - да. А тут отлаживать практически нечего. Все чипы включаются согласно даташитов. 😃

blade:

ЗЫ: даю прогноз: первое, что у них отгорит- будет стабилизатор питания: в таком корпусе его реально можно грузить не более, чем 150 мА

Да, со стабилизатором перебор минимализма. Особенно когда запись на SD начнется. 😃

blade
baychi:

Да, со стабилизатором перебор минимализма

Исходя из своего обширного опыта проектирования и производства, могу с вероятностью 98% сказать, что проблем там будет в достатке: чудес в электронике- не бывает 😦

baychi:

Все чипы включаются согласно даташитов.

Вы не поверите, сколько ошибок в даташитах мне за свою жизнь пришлось встречать 😃

baychi
serj:

А с 4 банками вообще беда будет.

Так входное питание там 5 В - по любому!
И это кстати тонкий момент. Низковольтное (ниже 6-7 В) питание используют почти все приемники РУ и у многих с этим проблеммы, учитыва возможность подключения серв непоследственно к плате. Я не вижу там серьезных танталов. 😦
Из АП такое-же решение использует Фишка - почему и появилось требование к BECу на 5-8 А в последних версиях руководства…

Но учитывая что изначально проект идет без OSD, смысла заводить высоко напряжение (+12 В для камеры) нет, равно как и необходимости в импульсном преобразователе.
А вот 2-3 LDO-шки вместо одной было бы грамотно: Одна на проц, другая - на аналоговые части, 3-я - для внешних датчиков (GPS/внешние баро и т.п.).
Кстати любопытно что разработчики +5 на GPS выводят - значит нестандартный модуль будет…

aviaks
blade:

Не вдаваясь в подробности программные (которые и неизвестны и не испытаны в полете) сразу можно отметить несколько очевидных ошибок проектирования: четырехслойная плата (очевидно, для минимизации размеров, а зачем? Самолет нуждающийся в автопилоте- не бывает меньше 1,5 метров в размахе- из -за чего скупиться на место?) сразу вызывает несколько сомнений…
1 в цене- гораздо дороже обычной двухсторонней
2 в надежности: устройство работающее в условия вибрации, влажности и т.д. экстриме- не должно иметь ( а точнее-должно не иметь) много переходов и недоступных для ремонта (поскольку находятся в теле платы) дорожек
3 сложность монтажа (и- практическая невозможность без повреждения платы) демонтажа элементов (или ремонт изделию-требоваться не будет?)
4 применение линейного стабилизатора- вносит очень большую ненадежность в схему, создает ненужный источник тепла, тем более DC-DC сейчас абсолютно доступны и весьма миниатюрны.
5 разводка “земли” совместно цифры и аналога и общее питание- вообще ни в какие ворота не лезет:раздельная земля- это аксиома, совместная- гарантированная головная боль
6 делать плату ОСД общую с ИМУ- не будет ни ОСД ни ИМУ, поскольку телевидение не терпит ни “грязной” земли ни грязного питания, экран гарантированно будет в неустранимых"мурашках".
Какие чудеса начнутся в ИМУ от соседства с огромными синхроимпульсами ТВ сигнала- можно только гадать.
7 Внешние разъёмы в виде гребенок- гарантированное “втыкание чуть-чуть не туда” (спросите у Смаллтима:сколько палёных покупателями плат ему пришлось заменить “по гарантии”) с выгоранием всего подряд и- в случае коммерческих продаж, валом претензий.
Надо ставить гнезда с ключами, причем, на все цепи- разные, для “защиты от дурака” www.tdmegalit.ru/catalog/…/15912.php
Ну, вот как то примерно так…
ЗЫ:молодость и задор авторов конечно, многое объясняет. Но по граблям то ходить- зачем?

Ну а зачем собственно делать размер больше, когда его можно сделать и поменьше!? Размах может и 1.5 метра, но вот пространства в фюзеляже всегда не хватает.

  1. По цене четырехслойная отличается от двухслойной не более чем на 30%. В итоге эта разница около 100 рублей на одну плату.
  2. А внутри нет дорожек как таковых, там полигоны с землей и питанием, дорожки только на внешних слоях.
  3. Монтаж планируется автоматизированный, проблемы с монтажом при уменьшении размеров - это всегда так, а как иначе…
  4. Возможно… Но мне показалось, что наоборот.
  5. Что ж, потестируем - увидем.
  6. OSD планируется в следующей версии, в данной версии железа работа с видео не предполагается.
  7. Поскольку пока это в некотором виде тестовый вариант платы, то на этих вещах я не заморачивался. А так согласен, лишняя защита “от дурака” в виде разных типов разъемов не помешает. Хотя, я считаю, человек, который использует такие вещи не должен совершать ошибок типа “воткнул не туда”.
Drinker:

Мы - это кто?
sky-drones.com на плате, сайта нет.
Прототип летал? Если нет, то вообще жесть.
В чем изюминка проекта?

Мы - это я и мой друг.
sky-drones.com - пока зарезервирован только домен, сайт планируется создать в ближайшее время.
В моем первом сообщении же написано, что пока только сделано железо и дописывается софт, идет подготовка к первым полетам.
Например, в инерциальной системе, которая сама производит вычисления. Будет реализовано множество режимов полета - от стабилизации до автоматического полета по точкам. Планируется реализовать возможность навигации без gps, только по инерциальной системе.

serj:

Поздравляю! Автопилоты по весне растут как грибы 😃 Сделано красиво.
Железо готово, на очереди софт…

Спасибо, да сейчас мы плотно занимаемся софтом.

serj:

Четырехслойка- очень хорошо, особенно для начинающих. Силовая часть через эту плату не идет.

Да, все верно. Силовая часть на плату не заведена.

serj:

По линейному стабилизатору blade правильно сказал- он на пределе. Если линейник и ставить, то не в таком корпусе. Вы же не на 24 Мгц работать будете?
А с 4 банками вообще беда будет.

Он удовлетворяет всем необходимы требованиям по мощностям, к тому же от него питаются только те вещи, которые работают на 3.3v, а их не так много и потребление у них небольшое. На питание от 4-х банок я не рассчитывал, питание должно быть от BEC регулятора, который 5v.

serj:

RTC - вероятно, для маркировки записи файлов в логгере, пока gps нет. Но тогда надо ионистор или батарейку…

Не угадали 😃

serj:

ЗЫ:Может и мне АПС3.3 выложить? 😃

Давайте, интересно посмотреть.

baychi
aviaks:

Планируется реализовать возможность навигации без gps, только по инерциальной системе.

На дешевых гироскопах общего назначения? Без термостатирования?
ИМХО, нереально это.

aviaks
blade:

Да это пока не железо 😦
Как вот его включат, да как глюки устранят- тогда, может быть…
Но, судя по всему, до реального устройства- ещё долго.

Сейчас проверяем работу всех систем, которые присутствуют, пока багов не обнаружено.

blade:

А чего хорошего- то?
Я всегда макетные версии- вообще на DIP корпусах и как можно просторнее делаю, чтобы в руки можно было взять, осциллографом потыкать, дорожки порезать- перекинуть.
И уж когда схемотехника отлажена- тогда начинаю “зажимать”.
Да и трассировки без ошибок с первого раза-не бывает.
ЗЫ: даю прогноз: первое, что у них отгорит- будет стабилизатор питания: в таком корпусе его реально можно грузить не более, чем 150 мА 😦

Макетная версия-то у нас есть, как же без нее, но не ставить же ее на летающий аппарат.

baychi:

На дешевых гироскопах общего назначения? Без термостатирования?
ИМХО, нереально это.

На MPU-6050 от Invensense. Вот и самим интересно попробовать.

baychi
aviaks:

На MPU-6050 от Invensense

Зачем пробывать. Сделайте мат модель, с учетом порога чувствительности 0.04 град/сек (на диапазоне 1000 градусов).
Добавьте сюда нелинейсть шкалы и температурную зависимость.
И прикиньте какой будет ошибка интегрирования через 10-15 мин? А через час? 😃

PS: Эти MEMSы не для того создавались, чтоб любой радикал мог из них балистическую ракету сделать. 😃

Панкратов_Сергей

А почему свое местоположение топикстартер шифрует ?
При этом у многих возникают мысли , и явно не положительные отностительно шифрующегося.