誕生!顔を追尾してくれるPLEN君
PLEN君を改造し、MAixDockとカメラを内蔵することで、顔を追いかけてくれる子に育ててみました。
その動画がこちら。
今回のメインボードに使用しているMAixシリーズは、Sipeed社から出ている開発ボードで、認識系の分野で最近熱い奴です。
気になる方は、こちらの記事にまとめていますので、ご覧になってみてください。
今回は、PLEN君をどう育てたかについて、紹介してみたいと思います。
PLEN君とは
こちらの「PLEN Project」様にて開発された、小さなかわいいロボットです。
現在はPLEN2がメインで開発されており、なんとこの子、色んなデータが公開されている、オープンソースなロボットなんです!
つまり、3Dプリンタを持っていれば筐体を自分で印刷できるし、中の基板配線やソースコードも公開されています。なんて凄いんだ…。
今回は、筐体を3Dプリンタで印刷し、サーボは家にあったものを使用、制御基板はMAixDockを使って、自前で制作してみました。
育ったPLEN君
制御基板
前述のとおり、MAixDockをメインボードとし、それらにサーボ制御基板やスイッチのついた周辺基板を独自に制作しました。
右側がMAixDock、左側が周辺基板です。プレン君の背中に入るよう、ボックス型の立体的な基板となっています。
合体させると、こんな感じ。
PLEN君の背中に入れ込むと、こんな感じ。
中央を開けているのは、カメラ用フレキをMAixDockから表面へ通すためです。
また、写真では見えにくいですが、左側面に6軸センサMPU6500を入れ込んでいます。
背面から見ると、こんな感じ。
一応、廃熱を考慮して、背中からヒートシンクを覗けるような配置にしてみました。
また、ファームを書き換えられるよう、USBコネクタも挿せるような配置にしています。
さらに、側面には電源スイッチやモード切替用のタクトスイッチを配置しています。
最終的に背面にLCDを取り付けたので、廃熱構造があまり生きてないのがたまにキズ…。
でも、いい感じに収まりました。
頭の構造
今回は、検知した顔を追尾するため、サーボを2つ追加しています。
これにより、顔のピッチ・ヨー軸方向への動きを実現しており、追尾してくれてる感がわかりやすいようにしました。
また、頭の中にサーボのスペースを設けるため、目のLEDをチップ型のものに変更しました。
取り付け微調整を繰り返すうち、素材がボコボコして少しグロい感じに…。
なんせ、LEDの配置には結構苦労したのです。
というのも、LEDの向きや位置がちょっとずれるだけで、目の輝度の分布が変わって、すごく不自然な感じになるんです
なるべく自然な目になるよう、地味な微調整を繰り返しました。
うーん、カワイイ!(親心)
目の素材も、光が自然に拡散するよう、シリコンをポンチで丸くくりぬいたものをはめ込んでいます。
カメラの追加
元々MAixDockにはカメラが搭載されていますが、フレキが短いため前面まで届きません。
なので、こんな感じのフレキの長いカメラモジュールを別途購入し、取り付けました。
前面に通して、サーボにホットボンドで取り付けています。
結果、前面のおなか部分には、バッテリーとカメラが入り込む感じになっています。
まだスペースには余裕があるので、将来的にはマイクモジュールも引っ張ってきて、音声認識なんかもできたらいいなぁ、なんて思っています。
おわりに
今回の顔追尾は、認識系を生かしたほんの一例にすぎません。
MAixシリーズの潜在能力は高く、音声認識や物体認識の可能性も秘めています。
これを使って、例えばおしゃべりできるPLEN君や、ボールを追いかけるPLEN君、カンペを見せるとその通り動いてくれるPLEN君なども夢ではありません。
「認識技術 + PLEN君」、夢は無限に広がりますね!
今は認識系の知識が不足しているため、その分野を勉強しつつ、もっと賢い子に育ててみたいなぁ、と思っています。
ということで、また次回をお楽しみに。