Проект «Sweetie Bot». Поиск программистов. Стенд «Электроброни» на РБК.

+429
в блоге Электроброни
Всем привет, с вами снова проект по воплощению IRL пони в виде робота!


Для начала немного расскажу про текущий прогресс:
Доделали анимацию глаз.

Очередной раз засветились на EqD.

Свитибот заговорил. Удалось добиться такого же голосового эффекта как у Свитибота из Friendship Is Witchcraft.
За сам голос спасибо MrFremen .

Наш конструкторский отдел добился хорошего прогресса по конструкции третьего прототипа:


Еще скрин и анимация


Много изменений произошло и в программной части. К нам присоединился disRecord , который поделился опытом создания систем работающих в режиме реального времени, с использованием The Orocos Real-Time Toolkit и PREEMPT_RT патча для ядра линукс.
Было решено полностью переработать архитектуру системы управления. На данный момент мы уже согласовали новую структуру ядра САУ и наметили приблизительный план по её воплощению.
Но работы тут еще предстоит много, в связи с чем, продолжаем искать программистов для дальнейшей работы над проектом.
Расскажу поподробней с чем нужно работать.

ROS (Robot Operating System) — открытая среда/фреймворк для создания роботов на базе ОС Linux.


На данный момент, проект ROS, который недавно отпраздновал своё восьмилетие, является самой популярной в мире платформой для создания систем управления роботов.
Cтек технологий ROS использовали 18 из 23 команд участвующих в DARPA Robotics Challenge 2015 году.

Основной функционал предоставляемый ROS это транспорт на базе сообщений, вызовов сервисов и параметров, которые необходимы для создания компонентно-ориентированных систем. Все рассчеты производятся над кинодинамической моделью робота, которая экспортируется из САПР'а, и которая содержит в себе расположение осей, массы, тензоры инерций каждого звена кинематической цепи.
ROS имеет интеграцию с Gazebo — средством визуализации, моделирования и физической симуляции, при помощи различных физических движков.


OROCOS (Open Robot Control Software project) — открытое программное обеспечение для управления роботами. Совместно с ROS позволяет создавать гибкие системы управления с предсказуемым временем выполнения цикла управления.


Платформа: Ubuntu 14.04.4 LTS (можно и другие дистры, но с trusty меньше всего проблем).
Язык: C++
Желательно: технический английский, git.

Анонс стенда «Электроброни» на РБК.

Мы собираемся делать стенд на предстоящем РБК. Но пока думаем над программой. Свити конечно притащим, но не роботами едиными.
Хотелось бы замутить именно технарский стенд, со всякими электронными интересностями. Предлагается сделать что-то вроде стенда-выставки, куда каждый может принести и показать свой проект связанный с электроникой или просто чего-нибудь техническое. Но нужны идеи для конкурсов/мастерклассов. Помощь в организации стенда также была бы очень кстати. Предлагаю обсудить это в комментариях. Что бы вы хотели на нем видеть?

57 комментариев

mutronics
+8
Прекраснейшая работа!
Радует твой успех, но вот как ты будешь делать оболочку её тела, со всем тем количеством деталей механизма?
Gauss-Destronger-Gunner
0
На 3д принтере напечатаем. Об этом рассказывали в прошлых постах.
mutronics
0
Хм, а переразмера деталей не будет? Как вижу, голова выглядит маленькой, а детали большие.
Gauss-Destronger-Gunner
0
Нормально все выглядит. В третьем прототипе пропорции будут слегка другими.
mutronics
0
Пока что не особо пропорционально. Ожидаю нового прототипа!
Gauss-Destronger-Gunner
0
Кстати про принтер. Если актуально, могу попробовать помочь с печатью деталей на fdm. Область построения куб 120мм, москва, абс/пла.
Shiron
+1
Новый механизм выглядит впечатляюще! Уважуха конструкторам!
brass-cheetah
0
Может имеет смысл пов в РБК блог перетащить?
Dozorniy
0
Ну тут все же большая часть инфы не по теме. Возможно стоило анонс в отдельный пост вытащить. Ну да ладно, если не найду никого в помощь то позже еще один запилю.
mutronics
0
yaaaaaay
MrFremen
0
А мможешь ееголос показать?
RN3AOC
0
чтоах
MrFremen
0
(Чертовы опечатки, чертов телефон!..)
Можешь показать голос, который ты ей сделал?
RN3AOC
0
в смысле оригинал?
MrFremen
0
Агась)
Oreo
0
могу, но не понимаю зачем?
MrFremen
0
не-не, не оригинал, а твой вариант Ботиного голоса.
Ну, интересно потому что. Вот зачем) Мне вообще интересно слушать озвучку.
RN3AOC
0
Пока только это записали yadi.sk/d/PxWtYrVQskPm9
mutronics
+1
Забавно! Спасибо.
RN3AOC
0
А Орео вот отчего интересуется — у него тоже есть своя Свити: soundcloud.com/user-429584850/sb-daria/s-8hxcM ;)
RN3AOC
0
Хм. Вообще Свтити, она же певица. Песни как оригинальный контент очень нужны. Только пока еще мало что готово в софтвэрной части. Но в ближайшем будущем очень пригодилось бы.
mutronics
+1
ну если текст напишешь, то я ток за песню записать ;D
MrFremen
+1
Тексты могу только исходные писать. Для песни не пойдет.
mutronics
+1
Мне притащить свою балалайку — не вопрос
Krys
+1
Крутота то какая! Глаза- зеркало души, а тут так приятно реализовано.
Centaur
+1
Да, мне тоже нравится. За реализацию спасибо FoxyShadow .
Планируем еще сделать открывающийся рот и вращающиеся уши. Должно забавно смотреться.
mutronics
+4
Как тот робот-ГладОС, только на 20% круче.
koghs
0
ЭТО ПРОСТО ОХУМТЕЛЬНО
rainbow_dash111
0
Вижу, канонiчное укорачивание туловища применили и тут. Робот хотя бы устойчив с таким тельцем?
VIM
0
И тут?
Вполне устойчива. Может стоять и на трех ногах и на двух диагональных.
И не вижу никакого укорачивания, вполне поняшное тело. Дело вкуса конечно.
mutronics
0
И тут?
Основное поприще для укорачивания — это, конечно, фанарт.

Вполне устойчива. Может стоять и на трех ногах и на двух диагональных
Лады.

И не вижу никакого укорачивания, вполне поняшное тело. Дело вкуса конечно.
Сейчас придёт GL_DOS и покажет если не пони IRL, то пони G1. ;)
VIM
+1
на первых секундах показалось что веки в плане времени немног различны друг от друга.
Всецело плюсую и желаю успехов в разработке.
Sky_Dash
+2
Да, глаза пока плохо синхонизированы, но ими некогда заниматься сейчас. Пока и так сойдет.
mutronics
0
Еще один забракованный вариант конструкции задней ноги.

Шея
mutronics
+4
Ага, с шеей все-таки обошлись без зубчатого сектора длиной как шея у жирафа)
RN3AOC
+1
Да, решили переделать эту часть.
mutronics
0
Напоминает Голову 790 из LEXX

Clopodile
+4
Именно оттуда и взята идея глаз экранов
mutronics
+4
Попробуем привлечь рязанских радиков.
Rimus
0
Круто!
А прототипу слабо устоять на двух копытах?
VOYAGER
0
Добавьте в чертёж пулемёт, покажите военным, попросите грант.
Должно сработать.
Kayoteyy
+4
Самое смешное, что нифига не шутка. ;)
RN3AOC
0
А лучше ракеты. Например, «Калибр» сейчас модный. А размеры пони масштабировать в размере 1 к 1000. Табуны огромных разноцветных роботов-лошадок, стреляющими ракетами с радиусом поражения в полторы тысячи километров. Дааа…
Rimus
0
глядишь потом такая штука получится)
2Stark2
+1
Ничёси! Вот так попонастроили, прикольненько так)
Pony4tonado
0
И еще огого чего понастроим!
mutronics
+1
Это хорошо)
Pony4tonado
0
Притащи что-нибудь на РБК.
mutronics
0
Ниет, только не РБК! Да и в любом случае мне тащить то особо нечего.
Pony4tonado
0
Вы лучшие ребята! Так держать!
sivik
0
А заброшу-ка я этот пост в ленту!
Pony4tonado
+2
Крутой проект!

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

Сделайте 3 режима управления взглядом:

1) Режим «следование». Прежде всего, следует знать, что настоящие глаза не умеют плавно перемещать взгляд в рандомную точку. Плавное перемещение взгляда возможно только тогда, когда взгляд «зацеплен» за движущийся объект.
Если робот может следить за движущимися объектами, это должен быть единственный случай, когда взгляд перемещается плавно.
Если робот не умеет следить за движущимися объектами, то не делайте этот режим.

2) Режим «сканирование». Когда мы смотрим на один объект, наш взгляд не фокусируется на одной точке. Мы рассматриваем разные точки, принадлежащие этому объекту. Взгляд при этом резко, почти мгновенно перемещается от одной точки к другой. Легко сделать, рандомно выбирая точку на объекте, меняя её периодически с коротким случайным интервалом.
При отсутствии возможности распознавания/слежения за объектом легко сделать фейковое сканирование, случайным образом выбирая точку взгляда в пределах от настоящей точки взгляда до заданного от неё, например, радиуса отклонения.

3) Режим «смена цели» — самый важный! От реализации именно этого режима зависит большая часть впечатления того, что глаза похожи на настоящие.
Однако, он же и самый простой!
Каждый раз, когда нужно посмотреть на другую цель, глаза закрываются. А когда они открываются, взгляд направлен на нужную точку. Вот и всё.

Дополнительно на подумать: сужающиеся зрачки и прикрывающиеся веки — эффект рассеянного взгляда.

Если всё это реализовать, будет круто. Но прошу обратить внимание хотя бы на пункт 3.

И да, ещё раз: крутой проект :-)
NeatSketch
+2
Ну газа еще не полностью реализованы. Вернее есть только базовый уровень — программа, которая их отображает и позволяет менять его параметры — раскрытие зрачка, положение радужки и т.д. Само управление мы пока только попробовали кое что. Еще планируется программа, которая бы ими управляла где и реализовать приблизительно такую схему работы как ты описал.

Только у меня есть несколько замечаний.

Во первых, режим «смена цели» должен работать не только через моргание. Если смотреть на анимацию то там приблизительно 50%/50% моргание/быстрое перемещение без моргания.

Еще я предлагаю не использовать слово «плавно» для описания движения радужки, тут скорее подойдет «скорость». Потому-что это два совсем разных параметра: можно перемещаться быстро но плавно, или медленно но резко-скачкообразно (я сейчас не про движение радужки, а вообще).

Всё верно, глаз редко перемещается медленно, обычно это довольно быстрые/резкие скачки, Медленно он перемещается только когда нужно проследить за медленно движущимся предметом.

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

Если робот не умеет следить за движущимися объектами, то не делайте этот режим.

Пока слежения нет, но сделать автоматическое слежение за яркими предметами будет не сложно.
Спойлер
В планах есть, но не в ближайших.

Дополнительно на подумать: сужающиеся зрачки и прикрывающиеся веки — эффект рассеянного взгляда.
Буквально вчера FoxyShadow доделал управляемые веки.

Кстати, а не хочешь заняться реализацией такого алгоритма?
mutronics
+1
Во первых, режим «смена цели» должен работать не только через моргание. Если смотреть на анимацию то там приблизительно 50%/50% моргание/быстрое перемещение без моргания.

Да, забыл упомянуть об этом. При «смене цели» моргания не происходит в некоторых случаях — как правило, когда новая цель находится близко в поле зрения от старой.
Однако, мои эксперименты показывают, что даже если реализовать по-простому, когда глаза моргают всегда при смене цели, то это выглядит намного более правдоподобно, чем если они никогда не моргают при смене цели, либо моргают лишь от случая к случаю.

Еще я предлагаю не использовать слово «плавно» для описания движения радужки, тут скорее подойдет «скорость». Потому-что это два совсем разных параметра: можно перемещаться быстро но плавно, или медленно но резко-скачкообразно (я сейчас не про движение радужки, а вообще).

Соглашусь. Главное, что мысль донёс.

Кстати, а не хочешь заняться реализацией такого алгоритма?

Если получится быстро разобраться, то можно попробовать.
NeatSketch
0
Приятно хотя бы видеть свой ник в списке поддержавших на РБК, жаль не смог приехать, в этот раз я отпуск на сенятбрь планировал рбк вроде в сентябре же, а тут не вышло. В общем я все пропустил, в следующем году не факт что приеду, но постораюсь. А пока буду Свитти Бота финансить
OSENSEI
+1
В следующем году РБК не будет :( Будет Дерпфест, но еще не факт что мы бота туда потащим.
Пиши если вдруг будешь в МСК.
mutronics
0
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.
Скрыто Показать