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

lelik
HardRock:

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

Вот и я вчера весь вечер пытался понять, что же в виртурилке вызвало такие восторги. Ну, TI, ну DaVinci - скорее всего, H.264 кодек там хорош. Все остальное - linux vulgaris плюс набор костылей на node.js для привлечения неискушенных покупателей, дабы голое железо не продавать.

По поводу управления аппаратами по интернету - это чисто для поржать, сделать можно, но практического применения не имеет, особенно в случае мобильного подключения обеих сторон.

Lazy:

Ясно. Вопросов к этому телу больше нет никаких.

Вов, мне линуксовый companion board вдвое большей производительности и впятеро меньшей площади в Москве обходится в $18. Да, без камерного разъема и хардверного H.264, но мне это и не надо, у меня все камера жмет.

Lazy
lelik:

у меня все камера жмет

Вот тока ДаВинчи делает это качественней. Как они это реализовали - вопрос отдельный, сейчас мы это не обсуждаем. 😃

lelik
Lazy:

Вот тока ДаВинчи делает это качественней

Чтобы злобно не оффтопить: это как раз вопрос железной архитектуры, моноблок или несколько специализированных железок. Не нравится TI - выкинул и поставил HiSilicon, оставив все остальное нетронутым. Не хватает CPU - поменял компаньена, а камеру, линк и АП оставил. А так - меняй все сразу, см. Parrot, например, там все, кроме питания, на одной плате.

alexeykozin
Ed1975:

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

я попробую связаться с автором.

Realizator

Всем привет!
Спасибо Алексею что кинул ссылочку на обсуждение.
Виртурилку мы делали в те времена, когда Малина еще на рынке не появилась. А когда появилась, она была без камеры - камера вышла на годик позже. Годного и готового на рынке ничего не нашли, сделали своё, так виртурилка и родилась.
Делалась она в 2011 году, на проце 2007-го года. На руках сейчас есть совсем небольшое количество плат. Периодически их покупают (в основном те, кто на ней уже делал проекты).
Если коротко - Малина победила. Дешевле, мощнее, лучше камера.
Наш последний проект по управлению через инет (пример того что было) был уже гибридным. Часть машинок было на виртурилке с модулем захвата аналогового видео, а другая часть на малине. Весь наш код давно на малину портирован.

Наша новая железка, звать StereoPi, ориентирована на другие штуки - у нее Raspberry Pi Compute Module внутри и поддержка работы с двумя камерами сразу. По сути это виртурилка 2.0 получилась. Стереозрение, 360 градусов, компьютерное зрение и так далее. Примеры использования там по ссылке.
В планах сделать несколько радиомодельных проектов на ней. В основном это объезд препятствий (так как по двум камерам можно строить карту глубин окружающего пространства).

lelik:

Расскажите мне про 3G между Китаем и Москвой

Честно говоря, там в Китае был модуль 4G. Задержка итоговая была порядка 500 мс. Замерялась по разнице между подачей управляющего сигнала и начала смещения на видео. Понятно, что с ней можно только краулером рулить, и то осторожно. Это был просто пруф-оф-концепт. 😃

lelik:

Вот и я вчера весь вечер пытался понять, что же в виртурилке вызвало такие восторги.

Да просто в те годы не было вообще никаких нормальных альтернатив, со сжатием h264 и такого размера. Нужно было курочить роутер, добавлять ардуину, цеплять вебкамеру (малины еще не было, помните?). Аналоговые камеры было не прицепить (а они тогда, да и сейчас, рулят по многим параметрам). Получался эдакий масштабный колхоз с ацкими задержками видео. Ну вот вместо него мы и сделали одну маленькую платку. Она была отличным инструментом в свое время.

HardRock
lelik:

Не нравится TI - выкинул и поставил HiSilicon

Кстати, хочу попробовать считать АП на камере с HI3516 / HI3518. Там порядка 400МГц, должно хватить, особенно учитывая что связь с железом будет по USB и UART 115200 для начала.
Раньше делал упаковку видео h264 в текстовый (JSON + Base64) протокол с шифрование AES-256-CBC (не аппаратным) и отправкой по сети. На FullHD 25к/с процессора вполне хватало. Видео при этом забиралось из штатного софта камеры, т.е. была ощутимая дополнительная нагрузка.
Также делал захват непосредственно с аппаратного кодека MJPEG в FullHD 30к/с с отправкой по сети. Тут 100Mбит сети не хватало, процессор условно не напрягался.
Поэтому есть предположение что для обсчета автопилота его тоже будет достаточно. Плюс интересно попробовать сетап, когда ставится камера, ардуина с переферией (датчики, pwm драйвер) и свисток для Wi-Fi броадкаста.

На самом деле уже начал пилить проект, пока окружение доделать нужно.

Realizator:

Аналоговые камеры было не прицепить (а они тогда, да и сейчас, рулят по многим параметрам)

Их тогда цепляли и цепляют сейчас через изикап и его клоны:
www.aliexpress.com/item/…/32857871479.html

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

Realizator
HardRock:

Их тогда цепляли и цепляют сейчас через изикап и его клоны:

Да, те кто это пробовал знают что это головная боль 😃

HardRock:

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

Именно так.

alexeykozin
Realizator:

Да, те кто это пробовал знают что это головная боль 😃

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

lelik
Realizator:

Виртурилку мы делали в те времена, когда Малина еще на рынке не появилась.

Респект вам и уважуха за это безо всяких шуток.

Realizator:

Честно говоря, там в Китае был модуль 4G.

Пофиг что было в Китае, все задержки все равно были в магистрали.

HardRock:

Плюс интересно попробовать сетап, когда ставится камера, ардуина с переферией (датчики, pwm драйвер) и свисток для Wi-Fi броадкаста.

Идете след в след по моим граблям. В конечном итоге приходите к необходимости развести свой шилд с IMU, PWM, ADC и прочим калом, паяете макет, разводите плату, считаете деньги и понимаете, что проще, дешевле и предсказуемее купить в городе кетае какой-такой АП на stm32F4xx за 5 копеек, на котором все это уже есть и который поддерживается вашим любимым стеком, прицепить к нему компанион и занаться чем-то более прикладным. У меня получилось как-то так:

Lazy
lelik:

У меня получилось как-то так:

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

lelik
HardRock:

Кстати, хочу попробовать считать АП на камере с HI3516 / HI3518.

600MHz камень ardupilot в его линуксовой реинкарнации не тянет, загрузка CPU под 90%. Да и не стоит дивчинка вые…ки. Есть более бредовая идея. Берем IP-камеру на Hi3516 и засовываем ей внутрь wifi-broadcast. Не один в один, конечно, но близко. USB-порт на них (некоторых) есть, UART есть, внутри линух…

HardRock

Так понимаю, это плата с датчиками и PWM.

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

Например на вашей плате насчитал 6 PWM. Там STM32?
Самолёт который хочу оснастить автопилотом имеет:
2 элерона
2 закрылка
1 руль высоты
1 руль направления
1 шасси (все приводы параллельно)
1 управление камерой PAN
1 управление камерой TITL
В перспективе ещё 2 канала сброса нагрузки
Итого: 11 каналов.

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

И это простой ФПВ самолет для фана, без подвесов.

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

lelik:

600MHz камень ardupilot в его линуксовой реинкарнации не тянет, загрузка CPU под 90%. Да и не стоит дивчинка вые…ки. Есть более бредовая идея. Берем IP-камеру на Hi3516 и засовываем ей внутрь wifi-broadcast. Не один в один, конечно, но близко. USB-порт на них (некоторых) есть, UART есть, внутри линух…

Именно про эту бредовую идею и писал выше 😃
Платы от таких камер у меня валяются разные. Софт под них раньше писал. Есть даже чисто CPU борда, но их к сожалению не продают на Али, по крайней мере отдельно, так что на камеру с матрицей лучше закладываться )

А то что ардупилот тормозит на 600 - совсем не значит что 600 это мало.

И это совсем не значит что он все это время занимается вычислениями.

Есть нюансы связанные с планировщиком.

lelik
HardRock:

Так понимаю, это плата с датчиками и PWM.

Снизу - АП, сверху - компаньон. АП совместим с ардупилотом, может работать отдельно, управляться штатным наземным софтом, у меня не болит голова о нем совершенно и мне глубоко плевать, что у него внутри. В компаньоне - линух, между ним и АП предусмотрена двусторонняя связь, туда-сюда ходит мавлинк и в рамках протокола я могу творить все, что мне вздумается. Если мне надо будет больше выходов - выкину мелкий АП и возьму полный пикс со всеми его 14ю сервовыходами и ничего больше менять не буду, все будет работать также. Это в том случае, если мне лень будет делать демультиплексор SBus из какой-нибудь меги. Основной же плюс моей конструкции - она уже в воздухе была и обратно прилетела.

P.S. вы еще газ забыли.
P.P.S. посадка в автомате на шасси… какой наив!

HardRock:

Есть нюансы связанные с планировщиком.

Не надо мне рассказывать сказки. Я с общение с линухом начал с ядра 1.1 и формата бинарников a.out и понять, чем занят единственный активный процесс могу.

HardRock

Да, газ забыл, а их ещё несколько может быть)))

HardRock

Кстати, компаньон что из себя представляет?

lelik
HardRock:

Кстати, компаньон что из себя представляет?

MIPS 600MHz, 128M RAM, кучка UARTов, двухпортовый USB-хаб ну и по мелочи.

HardRock
lelik:

Не надо мне рассказывать сказки. Я с общение с линухом начал с ядра 1.1 и формата бинарников a.out и понять, чем занят единственный активный процесс могу.

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

lelik
HardRock:

Выходит код очень не оптимизированный.

Еще раз. Существует решение, которое меня в настоящее время полностью устраивает, вопрос с АП для меня пока закрыт. Если у вас есть время и желание - пишите, никто запретить не может, у меня ни того, ни другого нет.

По поводу 3516 - вы же хотели в нее АП запихать, не? Про идею вживления туда wfbc я еще осенью писал.

HardRock

Это просто рассуждение на тему производительности и оптимизации.

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

lelik
HardRock:

Не видел этого обсуждения.

А что и с кем обсуждать? Я написал в ветке про wfbc, что у меня есть а) несколько камер на 3516 и b) идея затолкать туда софт от bortek. Народ сказал: “Вау! Расскажи, что получится”. Я прицепил к камере UART, увидел там u-boot, потом - login prompt и отложил в дальний ящик стола. Для меня это - работа (труд за деньги), и пока она работается без этого совершенно нетрадиционного секса.

HardRock

Ага, полистал ветку, нашел те сообщения.
Там в общем случае пароль на рута стоит, который может меняться в зависимости от китайца, но в убуте в более свежих версиях (где-то после 14-года) обычно есть нормальная поддержка сети и TFTP или USB , поэтому вопрос легко решается.
Я эти камеры / регистраторы активно ковырял когда они только появились. В 13 году выступал на конференции по взлому систем видеонаблюдения 😃
Самая жесть была с регистраторами на HI3520D первых серий. Там вместо SPI флешек стояли параллельные в TSOP48, а в убуте не было ни сети ни USB, SDK тогда тоже не было, мне потом его знакомый из Китая на флешке привез. Так вот приходилось по несколько раз в день сдувать эту память если что-то ломал в процессе загрузки или в ядре (подбирал в билдруте конфигурацию чтобы можно было заменить окружение для существующего ядра и получить возможность писать свой софт и добавлять модули ядра. В прошивке все было в статике и жёстко порезано)

Чем занимаетесь если не секрет? (можно в личку)