誕生!顔を追尾してくれる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君」、夢は無限に広がりますね!

今は認識系の知識が不足しているため、その分野を勉強しつつ、もっと賢い子に育ててみたいなぁ、と思っています。

ということで、また次回をお楽しみに。