2019年01月14日
普通「ロボット」というと、硬い部品で構成され、モーターで関節を動かすような機械を想像すると思います。それの対となる概念として、ソフトロボットがあります。 従来のかたいロボットと、ソフトロボットを対比しながら、私がMITで行った研究について紹介します。
現在流通しているロボットのほとんどはこの「かたいロボット」に属していて、精密に制御するための理論が確立されています。
しかし、安全性に難点があります。
こんなロボットアームがぶつかってきたら痛いですよね。(痛いで済めば良いのですが…)
ロボットの周りに、何がどこにあるのか完全に分かっていれば、それにぶつからない軌道を計算することができます。 そのため、工場で働く高速なロボットアームのほとんどは、柵の中に設置され、「人間の動き」というような不確定要素を取り除いています。 周りの環境に応じて行動を変える、というよりは、明確に定義された環境の中で同じ動きを何度も繰り返す、オートマタのような存在です。
最近は、人間と一緒に作業できるようなロボットも増えてきました。デンマークのユニバーサルロボット社のURシリーズはその代表例です。
障害物にぶつかった時に自動的に停止する機能がついていたり、指を挟む危険性がある設計を避けていたり、「人と同じ空間で作業すること」を前提に作られています。
このようなロボットはCollaborative Robot(協働ロボット)、略してCobotと呼ばれることもあります。
ロボットが普及していくためには、「安全性」が重要になってくると考えられます。 このように、かたいロボットでもセンサーと制御を組み合わせて「柔らかさ」を実現し、安全性をあげることは可能です。
ソフトロボットは、そもそもロボット自体を柔らかい素材で作ることで、もっとシンプルに安全なロボットを作ることを目指しています。 例えば、多少雑に扱われても、素材が柔らかいので周りも傷つかないし、ロボット本体も壊れにくいということです。 感覚的な話になりますが、かたいロボットを身の回りに持ってくることを危なく感じても、全体がゴムでできたようなロボットならば受け入れてくれるのではないでしょうか。 ロボットの環境がはっきりと分からなくても、ぶつかりつつもタスクを遂行する、そのような信頼性を持ったロボットが作られていくと考えています。 ひょっとするとソフトロボットは、従来のロボットよりも広い範囲で受け入れられるかもしれません。
有名なソフトロボットの一つとして、次のような空圧駆動の歩くロボットがあります。
多くの人に「キモい」「悪夢に出てきそうだ」と感じさせたこの物体は、ひょこひょこ歩いて、体を変形させつつ狭い隙間を通ったりします。 普通のロボットとは違う、異様な感じですね。 外部から空気を送る必要があるのが難点ですが、その後これを改良して自律的に動けるようにしたロボットが作られています。
他にもソフトなロボットハンドで様々な形状の物体を掴んだり、柔らかい素材で魚型ロボットを作る研究など、様々な試みがあります。
ソフトロボットは、従来のロボットに比べてなされた研究が圧倒的に少ないため、どう制御すべきかはまだ十分に確立した理論がありません。 私はMITのDistributed Robotics Laboratoryで、空圧駆動のソフトロボットアームを製造して、動的に制御する(Dynamic control)研究に参加していました。
柔らかい物体は、動かした時の振る舞いを予測すること(≒運動方程式を立てること)が困難です。 さらに、目標の姿勢を取らせることも難しいという面があります。 静的、つまり一つの静止した姿勢をとるように、ロボットを制御することは比較的簡単です。 今の姿勢と目標の姿勢との差分を計算し、その差を埋める方向に空気を送り、目標の姿勢を取るまで繰り返します。(PID制御と言います) しかし、これだけだと速く動かそうとすると、目標の位置とずれたり、不安定に振動したりしてしまいます。 動力学的特性を理解した上で制御をしてやれば、目標にぴったり合わせて動いてくれます。これがDynamic controlです。 問題は、柔らかいロボットの動力学的特性を計算するのが困難ということです。 この研究の中心となるアイデアは、「ソフトロボットと同じように振る舞う、従来型のリンク機構を持ったロボットのモデルをプログラム内で用意し、そのモデルの動力学を計算し、ソフトロボットの動力学に戻す」というものです。 もっと知りたい方は、ぜひもとの論文をお読みください。
こちらの動画は、平面上で動くアームに対してその制御を実装したものです。(記事冒頭のGIFもこちらの動画から製作しています) ソフトロボットに対して、動的フィードバック制御をした初めての研究です。
ブンブン動いているだけに見えますが、こちらの動きのグラフを見ると、しっかりと目標軌道について行っていることが分かると思います。
私が研究室に加わった頃はこの動画の研究は終了していて、次の研究段階に移っていました。
上の動画は平面上でしか動けませんが、3次元空間であらゆる方向に動けるように、拡張しているところでした。
研究を主導しているポスドクのDr.Robert Katzschmannと一緒に、シリコンを使ってロボットを製造して、C++言語で制御プログラムを初期段階から書いていました。(平面版のアームではMATLABでプログラムを書いていましたが、3次元にすると処理が遅すぎたので、実行速度が速いC++に移行する必要がありました)
これが完全に実現すると、ソフトロボットを従来のロボットと同じような動的制御で動かせることになり、ソフトロボットにとっては大きな一歩になります。
9月にラボに加わったのですが、Robertは10月半ばに民間企業に就職され、この研究を直接担当しているのは私だけになってしまいました。 その後も週一くらいのペースでラボに「遊びに」来てくれたので、分からないことは相談しつつ、この動的制御を実装することができました。
2D版のソフトロボットのハードウェアとソフトウェアを3Dに変更するというと、プログラム内の変数をちょっと増やせば済みそうな気がしてしまいます。しかし実際のところ”Devil is in the details”(パッと見て簡単そうでも、実際にやろうとすると細かいけど難しい問題が多く発生する)とのことわざ通り、解決しないといけないことがたくさんありました。ロボットの姿勢を表すための新しいパラメターの取り方を考えたり、動力学をより精度良く計算するために工夫をしたり。解決策が思い浮かばない問題についてRobertに相談すると、「私も解決法は知らない。まだ切り開かれていない新しい分野だから」と、一緒に議論しながら、問題を少しずつ明らかにしていきました。分からない領域に対して試行錯誤しながら、解決策になりそうなアイデアを思いついた時は嬉しかったし、それを実装して実際にロボットが動いた時は興奮しました。
3次元空間内で動くソフトロボットアームのdynamic controlに成功しましたが、まだまだ改善点は多いです。 それらを一つ一つ解決していけゆくことで、従来のロボットとは違う使い方がいろいろと見えてくるのではないかと想像をふくらませています。
私が一つの応用例として考えているのが、スプーンなどを持って食事介助してくれるソフトロボットです。 自力で食べ物を口に運べなくなった方は、介護士が食事介助をして一口一口食べさせてあげますが、これには当然かなりの時間がかかります。 被介護者は介助してくれる人に遠慮して、食事を十分楽しめないこともあると思います。 施設の場合、スタッフ不足の中、食事に多くの時間を割かれることの負担も大きいでしょう。 ここにロボットを導入できる可能性があり、ソフトロボットはそれにぴったりだと思っています。
尚、食事介助には様々な注意点があり、食べられるだけの分量をすくったり、誤嚥などを防いだり、体勢を整えたり、一筋縄で行くものではありません。 これだけで多くの研究が必要でしょう。 しかし、それを実現するとしたら、ハードウェアプラットフォームとしてはソフトロボットは最適なのではないでしょうか。
かたいロボットが顔のすぐ近くで動くのは、いくら上手に制御しても危険は残るし、精神的な抵抗も大きいと思います。 そこで柔らかいロボットがスプーンを口に運んでくれれば、威圧感も少ないし、万一顔に当たっても怪我することはありません。
また、このようなロボットを活用することで、生活の自由度が上がると思います。 例えば、被介護者が自分でボタンを押したらソフトロボットが食事を口に運んでくれる。 完全に自力ではできないことも、ロボットと二人三脚ならば簡単にできるかもしれません。 そういった、自介助ロボットとでもいうべき存在になるかもしれません。
このように、ロボットの可能性がどんどん広がることを、ソフトロボットには期待しています。
□