Torobo Armによる唐揚げピッキング 第2回

こんにちは、トロボです。
今年も残すところあとわずかとなりましたが、いかがお過ごしでしょうか?

本記事では、前回に引き続きましてTorobo Armによる唐揚げピッキングデモをご紹介します。前回と同じものになりますが、まずは以下の動画をご覧ください。取り出そうとしている唐揚げ(ターゲット)の周辺には複数の唐揚げがランダムに存在していますが、ターゲット以外に触れることなく取り出しができている様子がお分かりいただけると思います。

もしグリッパの爪先と周囲の唐揚げが衝突してしまったら、本物の唐揚げであればつぶれたり衣がはがれてしまったりして売り物にならなくなります。現場で稼働するロボットシステムとしてはスピードを追求しなければなりませんが、それ以前に丁寧にピッキングをすることが前提条件なのです。

この動画のようにターゲットだけを正確に掴んで取り出すためには、3次元カメラで得られるデータに基づいて、どこにグリッパ爪先を差し込めばよいのか判断する必要があります。そのためにはランダムに積まれた唐揚げの状態を把握する技術が重要になります。そこで第2回となる今回のテーマは、唐揚げの「認識」です。

ひとくちに認識と言っても、ピッキングという目的を達成するための手段としては様々なアプローチが考えられますが、今回は唐揚げ一つ一つを切り分けて認識するセグメンテーションという方法を採用しました。実際の検出結果では、唐揚げごとに輪郭情報として取得しています。下図のとおり、唐揚げ一つ一つの形状を捉えられていることが分かります。精度の低い検出結果が含まれることもありますので、検出時に一緒に得られる信頼度の数値によって把持候補にするかどうかを判断しています。

セグメンテーションにはディープラーニングの1種であるMask R-CNN[1]を利用しています。Mask R-CNNは、画像中のどこに、どの物体が存在しているかを画素単位で検出することができる手法です。画素単位で検出結果が得られるので、唐揚げの輪郭を正確に捉えることが可能になります。

Mask R-CNNの概要を大まかに説明すると、認識対象物が存在しうる領域(下図のRoIAlignに該当)を抽出するニューラルネットワークと、抽出した領域ごとにそこに写りこんでいる対象物が何なのか(下図のclassに該当)、どのピクセルが対象物なのか(下図の一番右の画像に該当)を推定するニューラルネットワークから成り立っています。余談ですが、Mask R-CNNは2020年12月26日現在で引用数9390件となっており、世界中に広く認知された手法であると言えます。

Mask R-CNNのフレームワーク(文献[1]より引用)

さて、唐揚げ一つ一つを切り分けることができましたが、それだけではピッキングすることはできません。唐揚げに対してどの位置・どの向きで把持するべきかを決めなければなりません。今回はシンプルに、唐揚げの重心位置を基準に、唐揚げを楕円形とみなしてその短辺を把持位置とします。下図における2つの赤い点が算出された把持位置を示します。

このようにターゲットの形状に基づいて把持位置を決めた場合、その把持位置にグリッパを持っていったときにターゲット以外の物体と衝突しないことが保証されません。そこで把持を実行する前に、衝突するかどうかの事前チェック(干渉チェック)を行います。干渉チェックでは3次元的な判定が必要になりますので、入力データとしてはデプス画像を用います。デプス画像は、その画像に写る物体の奥行きによって色合いを変化させて表現したもので、高さ情報、すなわち3次元の情報を含んでいるので干渉チェックに使うことができます。

把持可能と判定された青色の把持位置を見てみると、そこにはグリッパを差し込む隙間が空いており、干渉すると判定された赤色の把持位置を見てみると、隣接した別の唐揚げがある位置だったりしてぶつかってしまいそうなことが分かります。この青色の把持位置だけをターゲットとすることで、ぶつからずにピッキングができるようになります。なお今回の干渉チェックは独自でS/Wを作成したものですが、従来研究も多数あります。例えば文献[2]などが参考になります。

今回は唐揚げの認識についてご説明しました。第3回は年明け1/15頃にアップ予定です。内容は見てのお楽しみ。。。

今年も大変お世話になりました。
それではみなさま、よいお年をお迎えください。

[1] He, K., Gkioxari, G., Dollár, P., & Girshick, R. (2017). Mask r-cnn. In Proceedings of the IEEE international conference on computer vision (pp. 2961-2969).
[2] Domae, Y., Okuda, H., Taguchi, Y., Sumi, K., & Hirai, T. (2014, May). Fast graspability evaluation on single depth maps for bin picking with general grippers. In 2014 IEEE International Conference on Robotics and Automation (ICRA) (pp. 1997-2004). IEEE.

Torobo Armによる唐揚げピッキング 第1回

こんにちは、トロボです。大変お久しぶりです。

本記事ではTorobo Armによる唐揚げピッキングデモをご紹介します。以前のブログで不定形物ピッキングについてお話ししましたが、今回は少し違った技術アプローチになっています。

まずは以下の動画をご覧ください。アームが動きを止めることなくスムーズにピッキング動作を実行できていることが分かります。

この唐揚げピッキングシステムの概要について、本記事を含めて3回にわたってお送りします。今回はシステムについてご説明したいと思います。

構成としてはシンプルで、ロボットアームはTorobo Armを用い、Ubuntu環境でROSによってTorobo Armと3次元カメラを連携させています。3次元カメラはロボットの手先につけるのではなく、唐揚げの入った箱の直上に固定設置しています。手先にカメラをつけた場合、自在にセンシング位置を変更できるメリットがある反面、センシングの際にロボットアームを完全に停止させなければならないデメリットもあります。今回はなるべく素早いピッキングを実現するために、固定設置の運用でデモシステムを構築しました。手元がセンサ配線で込み合わないので、よりスマートに見えますね!

デモで使用しているのは本物の唐揚げではなく、樹脂で作られた食品サンプルです。一つ一つ実物から型を取り、職人さんが着色していますので、遠目からは本物と区別がつかないほど。実際の唐揚げに近づけるため、掴むと柔らかく変形するつくりになっています。

ちなみに食品工場の現場では人が両手で作業してタクトタイム(1回のタスク実行に要する時間のこと)が2秒、片腕あたり4秒で作業をしなければならないと言われています(注:筆者がヒアリングした特定の現場における大まかな目安)。唐揚げピッキングであれば、一つの唐揚げをピッキングして指定の場所に置く動作を4秒でこなす必要があるということになります。

今回のデモではタクトタイム4秒とまではいきませんが、動作シーケンスを高速化するような工夫をいくつか組み込んでいます。その一つが、前述した固定設置タイプの利点を生かした最適なタイミングでのセンシングです。手先カメラの場合は、把持する前にセンシングしてターゲットを認識、そこからようやく把持動作に移るためタイムラグが生じます。一方で、固定設置の場合は下記の図のようなタイミングでセンシングを行います。

アームが動いている最中にセンシングしているのがお分かりいただけるでしょうか?センシングして得られたデータ(カラー画像やデプス画像)は即座に認識処理モジュールに送られ、唐揚げの認識が行われます。もちろん認識処理を実行している間もアームの動作が並行して行われますので、把持したターゲットを搬送し終えてアームが戻ってきたときには、次のターゲットの把持位置まで計算完了しています。したがってアームの動きを止めることなく、即座に次のピッキング動作に移ることができる、というわけです。

さて、今回はTorobo Armと固定設置した3次元カメラを使った唐揚げピッキングデモにおける、動作シーケンスを高速化するちょっとしたテクニックをご紹介しました。本デモは、サイエンスライター森山和道氏が講師を務めたWebセミナー「飲食・食品業界におけるロボット活用の現状と展望」(2020/12/8開催)においてもご紹介いただいています。

第2回は唐揚げの認識処理についてご紹介しようと思います。
それではまた。