辺りに散らかったネジを拾うことだけに特化したロボット「Screwpicker」を作りました。アームの先に付けたカメラでネジを見つけ、電磁石で拾って決まった場所に集めます(図1)。カメラで撮った画像から、自作の画像認識ソフトで分析してネジを見つけるのが特徴です。実際に動いている様子がYouTubeで見られます。

図1●技術賞の「Screwpicker」(ネジを拾うロボット)
図1●技術賞の「Screwpicker」(ネジを拾うロボット)
[画像のクリックで拡大表示]

 アームを動かすのに採用した本格的なサーボモーター「Dynamixel AX-12A」は、PWMではなく、シリアル通信で制御します。1線式で送信(Tx)と受信(Rx)を同じ線でやり取りする方式なので、Raspberry Piとつなぐために特別な回路を作りました(図2)。

図2●自作の回路を経由してシリアル通信でサーボモーターを制御する
図2●自作の回路を経由してシリアル通信でサーボモーターを制御する
[画像のクリックで拡大表示]

 サーボはなるべく動きがスムーズになるように工夫しました。目標に近づくと、正弦波(sin)と同じような形で速度を落としていきます。加速するときも同様です。ネジを拾って決まった場所に置いたときにも、本当に拾えて置けたのかを画像でもう一度確認します。この動作をネジがなくなるまで続けます。

 画像認識は、2値画像にしてオブジェクトを認識するシンプルな仕組みで済むので、自分で作ってみたいと思って開発しました。「エッジ検出」→「二値化」→「ピクセル隣結でオブジェクト検出」→「ラベリング」という手順でネジを見つけます。

 画像認識をしている様子をYouTubeで示しています。検出したネジのX、Y座標を基に、サーボの動作を決めます。

 私は日本に来る前、スイスの工場で6年間働き、生産ラインでロボットアームを見続けてあこがれていました。機械が製品をつかんで、どこかに置いたりするのを夢中になって見続けていました。日本に来てから、自分の身近にロボットがないのが悲しくて作りました。