FPV управление в VR.
Как дела?
Сейчас занимаюсь реализацией управления через VR-шлем. Здесь я описал вопросы настройки видео-стрима с передатчика (робота) к приемнику (шлем). И текущий статус.
✅ libcamera (библиотека для RPi4 камеры) + Gstreamer (библиотека для работы с видео)
Сначала протестировал передачу по UDP не кодированных jpeg со стороны робота, т.е с RPi4. Чтобы убедиться что стрим доходит до VR шлема в локальной сети.
Но не сжатые изображения сильно ограничены по разрешению и fps. В пакет влезали кадры не больше 640х360. Жить можно, но маловато. Для увеличение нужно кодировать видео поток.
✅ кодируем h264, и декодируем. Сложно было настроить процесс именно декодирования. До этого вообще не был знаком с тем что там происходит. Этот процесс в сотни раза понижает размер передаваемого видеопотока в сети, что позволяет поднять разрешение видео-стрима. Для начала в Unity редакторе на windows через скрипты C#. Тестирование через редактор Unity, чтобы четко отслеживать что именно падает и не работает. Шаг за шагом...
Декодировать напрямую через Gstreamer на GPU в Windows получилось быстро, а понять как это реализовать в Unity оказалось сложно. Прошел весь путь от не получения изображения совсем, до перевернутых, сдвинутых кадров с неправильными цветами. По итогу получилось правильно все декодировать. 1280х720 с 20 fps передаются хорошо, столько достаточно, больше даже не пробовал. Но эта реализация все еще завязана на вызов библиотеки Gstreamer для Windows.
🔘
Только VR шлем это — Android. А теперь надо реализовать это все на его библиотеках. Нужно научиться декодировать на VR шлеме. Вариант подключить библиотеку Gstreamer для Android, либо реализовать работу с MediaCodec на java. У шлема аппаратный декодер, поэтому по хорошему задействовать его, но не обязательно. CPU тоже можно нагружать, так как все равно ему больше ничего делать не надо будет.
🔘
Еще нужно реализовать управляющий канал связи, но как будто это должно быть легко.
PS. Может кто-то подобным уже занимался и может поделиться кодом для грамотного декодирования на Android шлеме?
Как дела?
Сейчас занимаюсь реализацией управления через VR-шлем. Здесь я описал вопросы настройки видео-стрима с передатчика (робота) к приемнику (шлем). И текущий статус.
📕
Либо у тебя дорогое железо, что можно не разбираться и ставить высокоуровневые библиотеки, либо ты вникаешь что там происходит с байтами — Конфуций.
✅ libcamera (библиотека для RPi4 камеры) + Gstreamer (библиотека для работы с видео)
Сначала протестировал передачу по UDP не кодированных jpeg со стороны робота, т.е с RPi4. Чтобы убедиться что стрим доходит до VR шлема в локальной сети.
Но не сжатые изображения сильно ограничены по разрешению и fps. В пакет влезали кадры не больше 640х360. Жить можно, но маловато. Для увеличение нужно кодировать видео поток.
✅ кодируем h264, и декодируем. Сложно было настроить процесс именно декодирования. До этого вообще не был знаком с тем что там происходит. Этот процесс в сотни раза понижает размер передаваемого видеопотока в сети, что позволяет поднять разрешение видео-стрима. Для начала в Unity редакторе на windows через скрипты C#. Тестирование через редактор Unity, чтобы четко отслеживать что именно падает и не работает. Шаг за шагом...
Декодировать напрямую через Gstreamer на GPU в Windows получилось быстро, а понять как это реализовать в Unity оказалось сложно. Прошел весь путь от не получения изображения совсем, до перевернутых, сдвинутых кадров с неправильными цветами. По итогу получилось правильно все декодировать. 1280х720 с 20 fps передаются хорошо, столько достаточно, больше даже не пробовал. Но эта реализация все еще завязана на вызов библиотеки Gstreamer для Windows.
🔘
Только VR шлем это — Android. А теперь надо реализовать это все на его библиотеках. Нужно научиться декодировать на VR шлеме. Вариант подключить библиотеку Gstreamer для Android, либо реализовать работу с MediaCodec на java. У шлема аппаратный декодер, поэтому по хорошему задействовать его, но не обязательно. CPU тоже можно нагружать, так как все равно ему больше ничего делать не надо будет.
🔘
Еще нужно реализовать управляющий канал связи, но как будто это должно быть легко.
PS. Может кто-то подобным уже занимался и может поделиться кодом для грамотного декодирования на Android шлеме?
✍1🔥1 1
Sмарт-Пауза
Кратко о сложности поднимать WebRTC на Raspberi Pi: GROK: Всё. Точка. Ты прошёл через 70+ сообщений, Janus, ICE-баги, карантины, неправильные конфиги, Китайский файрвол — и теперь у тебя самый современный, стабильный и низколатентный стрим в мире. Поздравляю!…
Ах да. WebRTC так и не был реализован.
Сложно очень сложно 🫡
Не стоит оно того.
Сложно очень сложно 🫡
Не стоит оно того.
✍1👨💻1
Sмарт-Пауза
Ах да. WebRTC так и не был реализован. Сложно очень сложно 🫡 Не стоит оно того.
Оказалось очень сложным написать плагин на .java для декодирования и рендера текстур через MediaCodec (API декодера для Android).
На столько сложным, что разобраться как поднять WebRTC уже было легкотней.
MediaMTX - оказалось решением.
было два пути:
🤤 Поднять его по официальному гайду из первой страницы поиска - 1 час (как поднимать камеры на RPi с Ubuntu)
🧠 Поднять его через все известные LLM боты - 6 дней по 6 часов. Стать сведущим в этом и с багажом знаний выполнить первый пункт.
P.S. Боты▫️Gemini ▫️GROK▫️ChatGPT▫️DeepSeek
беспомощны в разработке архитектуру. Инженеры, которые выстраивают системы могут спать спокойно.
P.P.S. WebRTC поднят, очень удобно, хотя это open-source. Дальше пробую принять его в текстуры.
На столько сложным, что разобраться как поднять WebRTC уже было легкотней.
MediaMTX - оказалось решением.
было два пути:
🤤 Поднять его по официальному гайду из первой страницы поиска - 1 час (как поднимать камеры на RPi с Ubuntu)
🧠 Поднять его через все известные LLM боты - 6 дней по 6 часов. Стать сведущим в этом и с багажом знаний выполнить первый пункт.
P.S. Боты
беспомощны в разработке архитектуру. Инженеры, которые выстраивают системы могут спать спокойно.
P.P.S. WebRTC поднят, очень удобно, хотя это open-source. Дальше пробую принять его в текстуры.
🦄3❤2✍2😁1
🛜 Роутер для робота
Приобрел взрослый роутер для выстраивания сетей на улице. Питается от повербанка.
Идея в том что VR-шлем с аккумом, робот тоже. Значит можно использовать на улице. Робот большой, в квартире ему мало пространства.
Грузоподъемности хватает взять на себя допом внешний повербанк и роутер. Вес все равно не влияет на дальность хода хе-хе 🚂
#устройства #гаджеты
Приобрел взрослый роутер для выстраивания сетей на улице. Питается от повербанка.
Идея в том что VR-шлем с аккумом, робот тоже. Значит можно использовать на улице. Робот большой, в квартире ему мало пространства.
Грузоподъемности хватает взять на себя допом внешний повербанк и роутер. Вес все равно не влияет на дальность хода хе-хе 🚂
#устройства #гаджеты
✍3⚡2🤯2 2
Для VR готов
🌏
Что сделано:
➖ изменено место и способ крепления камеры;
➖ добавлены крепления для переноса роутера и повербанков;
➖ автозапуск всей системы управления на роботе при подаче питания;
➖ сделал приложение в Unity с возможностью корректировки управления прямо в нем.
Теперь машина полностью автономна, вообще им можно и через Интернет управлять, если модем в роутер подключить.
Осталось собрать через SideQuest приложение для шлема, чтобы оно на нем сохранилось и затем запишу уже покатушки его на улице.
#робот #робоплатформа #ros2 #печать #VR
🌏
Что сделано:
➖ изменено место и способ крепления камеры;
➖ добавлены крепления для переноса роутера и повербанков;
➖ автозапуск всей системы управления на роботе при подаче питания;
➖ сделал приложение в Unity с возможностью корректировки управления прямо в нем.
Теперь машина полностью автономна, вообще им можно и через Интернет управлять, если модем в роутер подключить.
Осталось собрать через SideQuest приложение для шлема, чтобы оно на нем сохранилось и затем запишу уже покатушки его на улице.
#робот #робоплатформа #ros2 #печать #VR
⚡4✍3
This media is not supported in your browser
VIEW IN TELEGRAM
Отличное предположение.
Именно так он и выглядит с другого ракурса.
Именно так он и выглядит с другого ракурса.
😁5🔥2
Сейчас бы флешки на 1 Тб за 400 рублей продавать.
Логотип Kingston. Что там вообще происходит...магазины внутри Китая не позволяют себе такой пали. Нельзя такое продавать у себя, но можно лепить любые логотипы для продажи за границей 🧞♂️
Люди в комментах доходчиво рассказывают о их работоспособности. Но таких комментариев единицы.
#out
Логотип Kingston. Что там вообще происходит...магазины внутри Китая не позволяют себе такой пали. Нельзя такое продавать у себя, но можно лепить любые логотипы для продажи за границей 🧞♂️
Люди в комментах доходчиво рассказывают о их работоспособности. Но таких комментариев единицы.
#out
😁5
📫
Ревизии телеги
v1, v2, v3, v4
📌Основные модификации касались всегда пассивного колеса, но и заодно разные косяки исправлялись по мере эксплуатации. Прочность рессор повышалась.
Текущая версия v4 уже доведена до ума. Ее и готовлю к публикации. У первой версии, например, резьбы на правой стороне были правосторонние , а на левой стороне левосторонние. С первого взгляда все логично.
А еще там не было оси вращения пассивного колеса.
Ревизии телеги
v1, v2, v3, v4
📌Основные модификации касались всегда пассивного колеса, но и заодно разные косяки исправлялись по мере эксплуатации. Прочность рессор повышалась.
Текущая версия v4 уже доведена до ума. Ее и готовлю к публикации. У первой версии, например, резьбы на правой стороне были правосторонние , а на левой стороне левосторонние. С первого взгляда все логично.
А еще там не было оси вращения пассивного колеса.
1🔥3👨💻3✍1🤯1 1
⭐️ Приветик! KAFEICHE v1
Зафиксировал проект робо-платформы в Интернетах
📍printable.com : https://www.printables.com/model/1551558-kafeiche-robot
Теперь все доступно для сборки с инструкциями и подробностями.
Пока инструкция еще не достаточна чтобы совсем новички собирали по фидбеку посмотрю, если кто-то реально собирать будет, то расширю инструкцию до уровня собираем "робота для самых маленьких" 🫶
Еще в планах залить на MakerWorld. Может еще куда.
Если будет спрос на перевод, то на русском тоже могу куда-то документы залить.
Зафиксировал проект робо-платформы в Интернетах
📍printable.com : https://www.printables.com/model/1551558-kafeiche-robot
Теперь все доступно для сборки с инструкциями и подробностями.
Пока инструкция еще не достаточна чтобы совсем новички собирали по фидбеку посмотрю, если кто-то реально собирать будет, то расширю инструкцию до уровня собираем "робота для самых маленьких" 🫶
Еще в планах залить на MakerWorld. Может еще куда.
Если будет спрос на перевод, то на русском тоже могу куда-то документы залить.
Printables.com
KAFEICHE Experimental Robot Platform by Sosiskovich | Download free STL model | Printables.com
🔥8🍾2✍1 1