Робот промоутер — Oscar. Голова



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

    Чтобы голова действительно “ожила”, мы обозначили следующие требования:

    • Голова должна иметь две степени свободы: наклон и поворот
    • Должен присутствовать трекинг собеседника головой
    • Глаза робота должны реагировать на собеседника

    Конструктивно голову разбили на две части:

    • Шея
    • Глаза

    Дизайн головы


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

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



    Шея


    Голова робота снабжена двумя степенями свободы: наклон и поворот головы. Основу конструкции шеи составляют профили и ребра, которые мы уже применяли в манипуляторе.

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

    Глаза


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



    Его мы и взяли за основу. И все было хорошо, пока мы не начали пытаться совместить механику глаз, имеющийся дизайн головы и механику шеи. В конце концов пришлось разработать собственный «велосипед». Получилась такая конструкция глаз:




    Глаза работают на базе arduino_nano. Для управления серв взяли стандартную библиотеку. Запитываются сервы от отдельного источника питания, arduino не способна выдавать достаточный ток. Сперва были незначительные проблемы с “дребезгом”, который портил всю эстетику. Потом нашли причину — некачественный стабилизатор питания, заменив на другой аналогичный — проблема ушла. И вот еще что, хобби сервы не любят длинных проводов, поэтому мы убрали лишнюю длину между сервомашинками и контроллером. Движение глазами реализовано путем задания угла поворота сервы.

    В качестве теста будем использовать второе лицо нашего государства — Дмитрия Анатольевича Медведева. Вдруг за усердный труд на голову “свалится” грант на развитие проекта.



    Как это работает?


    Работает все это достаточно просто, т.к. голова и глаза должны реагировать на человека, то и источник информации у них будет идентичный – видео камера расположенная в голове робота. Используется камера от Raspberry. Кстати, тут мы допустили небольшой недочет — взяли камеру с небольшим углом обзора. В ходе тестирований стало понятно, что надо ставить широкоугольную камер — тогда мимику глаз можно сделать более живой, т.к. можно будет отводить глаза на больший угол.

    В качестве обработчика изображения используется Raspberry Pi 3. Хочется сказать, что “малинка” справляется с этой задачей уверенно, но правда на небольшом разрешении, при этом давая ощутимую нагрузку на все 4 ядра.

    Детектирование лиц осуществляется классическим инструментом — каскадом Хаара. При этом частота детектирования лица составляет 9 — 12 FPS.

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



    Собраной головой мы остались довольны. А как считаете вы? Что еще можно добавить или сделать?

    Что дальше?


    Сейчас мы завершаем сборку второго манипулятора, после чего переключимся на изготовление платформы с туловищем. И все это надо будет обличить в достойный корпус. Будем надеяться, что в следующей статье мы представим наше детище в полной красе.

    Вы держитесь здесь, вам всего доброго, хорошего настроения и здоровья!
    TOD 32,29
    Компания
    Поделиться публикацией
    AdBlock похитил этот баннер, но баннеры не зубы — отрастут

    Подробнее
    Реклама
    Похожие публикации
    Комментарии 26
    • +1

      Отличная работа! Почему-то всегда казалось что камеры правильнее устанавливать непосредственно в глаза :)

      • 0
        На самом деле все зависит от поставленных задач.
        В большинстве случаев, когда речь заходит о антропоморфных роботах, то люди пытаюсь проводить параллель с устройством человеческого организма… некоторые даже ЭВМ пытаются разместить в голове)) встречал такой проект на просторах инета.
        В нашем случае камера — это импровизированный нос… не хотелось делать дырку во лбу — похоже на меткий выстрел снайпера)
        • 0

          Главное вовремя остановить фантазию! ;) Камеру кажется можно замаскировать полупрозрачной пленкой...

          • 0
            Про пленку думали, но т.к. у нас лицо белого цвета, то черный объектив камеры все равно был бы виден, Поэтому отказались от этого варианта и оставили ярко выраженную черную точку) Думаю маскировка пленкой уместна при черном или темном фоне.
    • 0
      Смотрится очень хорошо!
      • 0

        Крутотенюшка!

        • 0
          А можете рассказать подробнее — как управляли сервами (программный ШИМ?) и как запитывали их (сервы)? А то я делал давно подобный проект, здорово намучился как раз с этим.
          • +1
            Добавил описание в статью.
          • 0
            А рот у него будет? Хотя бы небольшая световая полоска.

            p.s. В боевом варианте в глаза можно лазеры встроить… :) Система наведения у вас уже есть.
            • 0
              По задумке старались сделать так что бы верхний изгиб подбородка напоминал улыбку. Дабы из бежать светодиодов и прочего. Как-то так это должно было выглядить:

              Чуть позже доработаем форму подбородок — сделаем его немного тоньше, а изгиб более ярко выраженным.
            • +3
              Я бы вместо рта встроил светодиодные матрицы. На них можно показывать различную мимику.
              Вот тут человек подобное делал, только для глаз

              Взято отсюда: http://www.getchip.net/posts/115-sd-card-showing-device/

              PS На али есть очень маленькие светодиодные матрицы красного цвета
              • 0
                Вижу отсутствие дрожания рамки захвата изображения, поздравлю.
                Это весит больше чем представленная механика.
                Почти все используют стандартную библиотеку, без попытки разобраться как она работает.

                У вас задача — управлять шариком в двух плоскостях. С этой функцией хорошо справляется линейный электродвигатель. В вашем варианте — шарообразный линейный двигатель. Это то-же шаговый двигатель — только вывернутый мехом на изнанку. Подобным направлением плотно занимается http://www.differentr.ru/.
                • 0
                  Спасибо за похвалу касательно детектирования лица.
                  Что такое линейный привод/актуатор — знаю, а вот про «шарообразный линейный двигатель» не слышал. Попробовал погуглить и ничего не нашел. Можете дать ссылку или картинку показать?
                  • 0
                    Что такое линейный привод/актуатор — это отдельно двигатель + отдельно механика.
                    Линейный электродвигатель — это отдельно плоский статор + отдельно плоский ротор. Поезд на магнитной подвеске имеет схожую технологию.
                    Но случае с шариком трудно будет разместить в нём полый магнит, да ещё и на уникальное сочетание полюсов. А вот намотать обмотку — легко.
                    Вам просто нужно отпечатать шарик глаза с готовыми микроканалами для обмоток на поверхности, и уже потом в ручном или машинкой — намотать туда провод. После аккуратно замазать лишнюю пустоту эпоксидкой, и отполировать. Шлейф, наверное придётся оставить пустое окно для него.
                    Есть вариант с короткозамкнутым витком (не нужны шлейфы) — но управление получается сложным для старта.

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

                    В идеале — камера должна быть в глазе.
                    • 0
                      Технология интересная, но простой ее не назовешь. По сути предлагаете сделать перекрестную намотку как на картинке, где красная полоска — одна степень, синя — другая? Если с намоткой все понятно, то как должен выглядеть магнит внутри сферы? или я что-то путаю?

                      image
                      • 0
                        Магнит у вас получится в случае свободного доступа к высокоточному чпу станку по металлу. Выточить полый шарик из магнитной стали — это достаточно сложно и очень, очень дорого.
                        Дешевле намотать обмотки на пластик.
                        Наверное имеет смысл поставить что-то уровня 3dmax, и потренироваться.
                        Обмотка секционная, но не перехлёст. Там получается большой сдвиг, весь диапазон на одну полосу разместить не получится. Но их можно размещать в шахматном порядке, с разным шагом.
                      • 0
                        Из пушки по воробьям.
                        Не спорю, идея хорошая, но в реализации, мягко говоря, сложновата. Не нужны здесь такие точность и быстродействие.
                  • 0
                    просто глаза смотрелись лучше, чем голова+шея, вот чего-то явно (и хорошо заметно) не хватает. вы не пробовали посадить живого человека на аналогичный тест и понаблюдать? там должна быть совсем нехитрая мелочь, типа где-то задержаться, а где-то ускориться
                    • 0
                      P.S. понаблюдал сам.

                      получается так — живой человек поворачивает голову и головой же в основном отслеживает. НО. человек не истукан, поэтому его поза постоянно меняется, в т.ч. и поворот головы, и вот тогда работают глаза. вообще, это очень интересно выходит — не мешало бы поштудировать на тему body language.
                      • 0
                        Предложение интересное — «Робот владеющий невербальной техникой общения», если рассматривать мимику и жесты в целом. Тут думаю хорошо бы подошла нейросеть. Или уже есть решения на данную тему?
                        • 0
                          не совсем так, или даже совсем не так. эмоции — это как раз то, что не связано (напрямую) с интеллектом, но создают характер, индивидуальность. «щенок глуп, но очень мил!». а эмоции очень даже транслируются посредством движения. посмотрите внимательно на роботов в «Звездных войнах», тот же C-3PO. вам просто надо час-два посидеть и пообщаться с аниматором, который «оживляет» персонажи. не надо никаких нейронных сетей — несколько базовых движений и их комбинации, хорошо еще генератор энтропии прикрутить, чтобы перемешивать их случайным образом.
                      • 0
                        Хорошо, но моргает медленно, словно засыпает
                        • 0
                          Тут да… на веки поставили серву которая не шибко быстрая, другой под рукой не оказалось)
                        • 0
                          Интересно узнать, почему сервы плохо работают с длинными проводами, и какая максимальная безопасная длинна?
                          • 0
                            Основная проблема заключается в помехах которые могут создавать другие электронные устройства. Если просто подключить серву к ардуино и пошевелить ею, то может и с 1 метром провода будет нормально работать, а вот когда будет подключено несколько серв от одного источника питания и находиться рядом, тот тут будет твориться бесовщина)

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

                          Самое читаемое
                          Интересные публикации