Управление роборукой при помощи leap motion



    В прошлом году я собрал роборуку, написал для неё «драйвер» для linux, научил держать разные предметы. И как-то забыл про неё. Но вчера мне доставили leap motion и придумалась новая идея — научиться управлять роборукой по средством движений своих рук.

    Чем нужно управлять


    У роборуки есть:
    • база — может крутиться по и против часовой стрелки;
    • плечо — двигаться вверх и вниз;
    • локоть — двигаться вверх и вниз;
    • запястье — двигаться вверх и вниз;
    • клешни — открываться и закрываться.

    Для всего этого «драйвер» предоставляет простое api:
    from roboarm import Arm
    
    arm = Arm()
    arm.base.rotate_clock(3)
    arm.elbow.up(1)
    arm.grips.open(2)
    


    Первая реализация




    Leap motion умеет определять руки, пальцы и их направление.
    Поэтому я решил привязать движения к пальцам:
    Часть роборуки Моя рука Количество пальцев Ось
    База Правая 4 или 5 X
    Плечо Левая 4 или 5 Y
    Локоть Правая 2 или 3 Y
    Запястье Любая 1 Y
    Клешни Левая 2 или 3 X
    Ничего не вышло. Leap motion правильно определял, когда на руке 1-2 пальца, но когда больше — случайное значение от 1 до 5.

    Вторая реализация



    Leap motion отдаёт координаты рук в определённых границах, у меня примерно от -200 до 200 по X и от 0 до 400 по Y. Эту область я разбил на десять равных частей и привязал к ним действия:
    Основа по часовой Плечо вверх Локоть вверх Запястье вверх Открыть клешни
    Основа против часовой Плечо вниз Локоть вниз Запястье ввниз Закрыть клешни
    Эта реализация оказалась рабочей =)

    Что получилось


    Видео с результатом, где роборука пытается поднять коробочку:



    Видео, где движения руки видно лучше:



    Ссылки


    Роборука owi robotic arm.
    Leap motion.
    «Драйвер».
    Исходный код реализации.
    Поделиться публикацией
    Похожие публикации
    Ой, у вас баннер убежал!

    Ну. И что?
    Реклама
    Комментарии 16
      +1
      Клевые игрушки! Надо тоже начинать себе такие покупать и учиться с ними играть.
        +2
        Очень интересно. Жаль не видно, какие движения вы выполняете руками большую часть времени. Было бы более информативно.
          0
          Добавил видео где их видно лучше.
            +2
            image
              0
              Если перейти по ссылке, пишет что видео ещё обрабатывается, но смотреть можно. Попробую перезалить.
          0
          Гммм… Я этой лапкой интересовался в МастерКите, но сказали, что только с пульта управляется кнопками — я и решил пока не брать… Как ты к ней управление-то подрубил???
          0
          А вы эту руку с USB PC интерфейсом покупали (и почём, если не секрет) или сами интерфейс сделали? Я это к тому, что у меня валяется STM32 платка, которую, вероятно, возможно для управления приспособить.
            0
            Покупал, на али за $5 вроде. Сейчас нашёл похожее только на амазоне и сильно дороже.
            0
            Тут должна быть классическая картинка на эту тему.
              +2
              Которую сильно заминусуют.
              0
              А можете мультиметром интерфейс USB to OWI прозвонить и запостить сюда карту, пожалуйста?

              А то у меня и рука эта есть и левых USB кабелей много, а выводы я на те же контакты сам запаяю.
                0
                Мультиметр есть. Но надо подробнее как составить карту =)
                  0
                  Сфотографируйте оба разъёма рядом и пронумеруйте контакты. Номер 1 с одной стороны будет номер 1 с другой, 2 с одной = 2 с другой и т.д.
                  ОWI разъём, я так понимаю, вместо пульта вставляется?
                +1
                Тони Старк это ты?
                  +1
                  Интригующе.
                  Вопрос 1: во сколько это удовольствие обошлось?
                  Вопрос 2: для С библиотеки есть?

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

                  Самое читаемое