2012年10月28日日曜日

ハンドジェスチャによるラジコン操縦システムの開発

無駄に格調高いタイトルだけど、ただこれまでのプログラムを全混ぜしただけ

まずラジコンの話↓

先週どうにかxbeeが使えるようになったのでラジコンでも作ってみた(有給2日取って)。


同僚「ラジコン作ったんだって?」
筆者「おう!テンション上って動画まで撮ってきたぜ!!」
同僚「マジかよ見せて」
筆者「もちろん!」




同僚「え・・・ああ、なんか微妙だな・・・」
筆者「そうか、まあこんなもんだよ実際・・・(´・ω・)」

しょうがないよね。単三電池4本でArduinoとxbeeとDCモータ2つ動かしてるからね(´・ω・)

〜材料〜 
タミヤのキット(これ)の下半分
Arduino uno
xbee ZBのやつ
モータドライバ(TA7291P)✕2
ブレッドボード
電池ボックス、単三✕4
100均の使い捨てお弁当箱
ジャンプワイヤ✕多分14本くらい

〜操作インターフェース(上の動画はこれで操作してた)〜







2本のスライダで前後と左右(回転)を制御する極めて洗練された(必要な機能まで削ぎ落した)インターフェース。
・一旦止まらないと曲がれない酷い仕様。
・PWMで速度は無駄に細かく(最大1024段階)調整できる。

上半分はテスト用のGUIなので今回の話とは無関係

ラジコンの話 〜おわり〜


過去に作ったopencvのプログラム(過去記事)にラジコン操作プログラムをぶち込んで、
特定の指の状態のとき上のインターフェースのスライダの値を変化するようにしてみた。

手の形:動作
パー:前進
親指曲げたパー:後退
グー:停止
チョキ:左回転(回転は人差し指基準に左右の指を立てるイメージ)
指でっぽう:右回転

でやってみた結果、当然ながら成功。ラジコンの動きは上の動画と同じで、手の認識は過去記事と同じ。気分は超能力者 (´д`)ノシ   ミ凸

これでとりあえず、カメラ→PCで画像処理、判断→無線→Arduino→モータの流れが実装出来た。

しばらくはコードの最適化、高速化(一部をboost.pythonでC++にしただけでフレームレートが5fps増えた) でもやりながら、機械学習やら制御やらを勉強する予定。

〜おわり〜

0 件のコメント:

コメントを投稿