
昨年、私は
roborukを作成し 、Linux用の
「ドライバー」を作成し、さまざまなオブジェクトを保持する方法を教えました。 そして、どういうわけか私は彼女を忘れていました。 しかし、昨日、彼らは私に
跳躍運動を提供し、新しいアイデアを思いつきました-手の動きを使用してロボットアームを制御する方法を学びます。
管理する必要があるもの
ロボルキには:
- ベース-時計回りと反時計回りに回転できます。
- 肩-上下に移動します。
- 肘-上下に移動します。
- 手首-上下に移動します。
- 爪-開閉します。
これらすべてのために、「ドライバー」は単純なAPIを提供します。
from roboarm import Arm arm = Arm() arm.base.rotate_clock(3) arm.elbow.up(1) arm.grips.open(2)
最初の実装

リープモーションは、
手 、
指 、およびその方向を検出できます。
そのため、指に動きを付けることにしました。
ロボルキの一部 | 私の手 | 指の数 | 軸 |
---|
ベース | そうだね | 4または5 | X |
肩 | 左 | 4または5 | Y |
肘 | そうだね | 2または3 | Y |
手首 | どれでも | 1 | Y |
爪 | 左 | 2または3 | X |
それから何も来ませんでした。 リープモーションは、手に1〜2本の指があったときに正しく決定されましたが、それ以上の場合は1〜5のランダムな値です。
2番目の実装
リープモーションは、特定の境界の手の座標を提供します。Xには約-200〜200、Yには0〜400があります。この領域を10の等しい部分に分割し、それらにアクションをアタッチしました。
時計仕掛け | 肩上げ | 肘を上げる | 手首を上げる | 開いた爪 |
反時計仕掛けベース | 肩下 | 肘を下ろす | 手首を下げる | 爪を閉じる |
この
実装は動作していることが判明しました=)
どうした
ロボットが箱を持ち上げようとしている結果のビデオ:
手の動きがよく見えるビデオ:
参照資料
Roboruk owiロボットアーム。跳躍運動。「ドライバー。」実装のソースコード。