- PVSM.RU - https://www.pvsm.ru -

В прошлом году я собрал роборуку [1], написал для неё «драйвер» [2] для linux, научил держать разные предметы. И как-то забыл про неё. Но вчера мне доставили leap motion [3] и придумалась новая идея — научиться управлять роборукой по средством движений своих рук.
У роборуки есть:
Для всего этого «драйвер» предоставляет простое api:
from roboarm import Arm
arm = Arm()
arm.base.rotate_clock(3)
arm.elbow.up(1)
arm.grips.open(2)

Leap motion умеет определять руки [4], пальцы [5] и их направление.
Поэтому я решил привязать движения к пальцам:
| Часть роборуки | Моя рука | Количество пальцев | Ось |
|---|---|---|---|
| База | Правая | 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. Эту область я разбил на десять равных частей и привязал к ним действия:
| Основа по часовой | Плечо вверх | Локоть вверх | Запястье вверх | Открыть клешни |
| Основа против часовой | Плечо вниз | Локоть вниз | Запястье ввниз | Закрыть клешни |
Эта реализация [6] оказалась рабочей =)
Видео с результатом, где роборука пытается поднять коробочку:
Роборука owi robotic arm. [1]
Leap motion. [3]
«Драйвер». [2]
Исходный код реализации. [6]
Автор: nvbn
Источник [7]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/python/56341
Ссылки в тексте:
[1] роборуку: http://www.owirobots.com/store/index.php?l=product_detail&p=110
[2] «драйвер»: https://github.com/nvbn/roboarm/
[3] leap motion: https://www.leapmotion.com/
[4] руки: https://developer.leapmotion.com/documentation/python/api/Leap.Hand.html
[5] пальцы: https://developer.leapmotion.com/documentation/python/api/Leap.Finger.html
[6] реализация: https://github.com/nvbn/roboarm/blob/master/examples/leap.py
[7] Источник: http://habrahabr.ru/post/214613/
Нажмите здесь для печати.