資料
ダウンロード
Technology > 2本の腕で、持つ・手分けする ― LEIVOR 多腕の協調動作(開発中)

2本の腕で、持つ・手分けする ― LEIVOR 多腕の協調動作(開発中)

ロボットの腕が2本あれば、2本を同時に動かすこと自体はそれほど難しくありません。難しいのは、2本の腕が 一緒に仕事をする ことです。同じ物を持ったまま腕どうしの位置関係を崩さずに動かす、片手が支えている間にもう片手が作業して、終わったら合流する、といった動きです。

現在開発中の LEIVOR の新機能「多腕の協調動作」をご紹介します。協調動作は多くの研究がある分野です。LEIVOR では研究で使われる考え方をそのまま設計の骨格にし、シミュレーター上の双腕ロボット AIDAL で、性格の違う2つの作業を動かしました。

  • 両手で一緒に持つ ― 2本の腕でタオルの手前の辺を持ち上げ、向こうの辺へ重ねて折る
  • 左右で手分けする ― 左右で部品を治具に置き、左手で支えている間に右手がねじを締める

どちらも、LEIVOR の画面上で教示して作った動作です。

デモ映像

※ ダイジェスト(約20秒・早送り):前半は両手でタオルを持ち上げて折る動作、後半は左右で部品を置き、片手で支えてもう片手でねじを締める組み立て動作

協調動作の4つの層

双腕・多腕ロボットの協調は、研究ではおおむね次の4つの層に分けて考えられています。

層 決めること
1. タスク どの腕が、何を、いつやるか
2. 協調 腕どうしの拘束(同じ物を持ったままの位置関係)
3. 動作計画 全部の腕がぶつからずに動ける道
4. 制御 持っている物にかかる力(内力・張力)の制御

LEIVOR ではこの層に沿って作り、今回は 1〜3 の層 を実装しました。4 の力の制御は研究要素が大きく、これからの取り組みです。

協調を4種類に分け、時間ごとに切り替える

協調のしかたは、腕どうしの結びつきの強さで分類されます。LEIVOR では次の4種類を扱います。

種類 動き 例
非協調 それぞれの腕が教示したとおりに動く 左右で別々の動作
疎結合 腕は別々に動き、要所で動き出しをそろえる 左手が支え、右手がねじを締め終えたら合流
一緒に持つ(密結合・対称) 両手の中心を動かし、全部の腕が同じ物を持ったまま動く タオルの2隅を持って運ぶ
片方に従う(密結合・主従) 主の腕は教示したとおり、他の腕は主の手先との位置関係を保つ 片手で導き、もう片手が添える

タオルは「一緒に持つ」、組み立ては「疎結合」の代表例です。そして、1つの動作の中で、時間ごとに協調のしかたを切り替えられます。「つかむまでは疎結合、持っている間は一緒に持つ、離したら非協調」という流れを、1本の動作として表せます。

タイムラインを「腕ごとの行」に

どちらの作業も、土台は同じタイムラインです。LEIVOR のタイムラインは腕ごとの行に分かれます。

  • キーごとに「動かす腕」 を持ちます。指定しなければ全部の腕で、これまでの動作とまったく同じ扱いです。
  • 複数の腕にまたがるキーは同期点 です。全部の腕がそろってから動き出し、そろって着きます。先に着いた腕は相手を待ちます。
  • 協調区間 として、キーの範囲に「一緒に持つ」などの印を付けます。タイムライン上では帯として見えます。

タイムラインの左腕・右腕の行と、協調区間「一緒に持つ」の帯

両手で一緒に持つ:タオルを折る

しくみ

「一緒に持つ」は、次の3段で動かします。

  1. 把持関係を求める ― 区間の始まりの姿勢から、両手の中心と各手先の位置関係を求めます。
  2. 物体の座標を補間する ― 両手の中心を「持っている物の座標」とみなし、キーの間をなめらかに動かします。
  3. 全部の腕の IK を同時に解く ― 同じ時刻で全部の腕の逆運動学を解き、関節の指令にします。

両手の間隔は「広がり(%)」として、区間の中で変えられます。区間全体は 再生前にすべて計算 し、途中で届かない・関節が急に大きく動く・手先の誤差が大きい、といった場合は 腕を動かす前に理由を示して止めます。持っている物を途中で引っ張ってしまわないためです。

動作の作り方

新しい画面は作らず、今ある画面に欄を足しました。IK・JOG の「動かす腕」で複数の腕にチェックすると、「基準」と「広がり(%)」が出ます。

LEIVOR の画面。IK タブで左腕・右腕にチェックしたところ

タオルを運ぶ動作は、次の5つの手順で教示できます。

  1. 左右の腕をタオルの角へ合わせ、グリッパーを閉じて、両腕のキーを追加
  2. 基準を「手先の中心」にして持ち上げ、キーを追加
  3. 中心を向こうへ動かして下げ、キーを追加
  4. タイムラインでキー1〜3を選び、協調区間「一緒に持つ」を追加
  5. グリッパーを開くキーを足して、再生

つかむ姿勢さえ作れば、あとは 両手の中心を1つの物として動かすだけ です。両腕の姿勢を毎回別々に合わせる必要はありません。

結果

つかむ 持ち上げる 重ねる 離す
つかむ 持ち上げる 重ねる 離す
  • 50×28 cm の布で、手前の辺が向こうの辺の 4 mm 手前 まで重なりました
  • 再生中、腕どうしは一番近いところでも 29 cm 離れていました

左右で手分けする:ねじを締める

しくみ

組み立てでは、左右の腕がそれぞれ自分の手順で動き、決めたところで合流します。

腕 流れ
右腕 部品へ動く → PLC 出力でねじを締める → 締め終わりの入力を待つ
左腕 部品を支えたまま、右腕を待つ
両腕 そろったところで合流して、次の工程へ

これを表すために、次のしくみを足しました。

  • PLC 出力や入力待ちを、腕ごとに置ける ― その腕が着いたのを確かめてから出力し、その腕だけが入力を待ちます。ほかの腕は止まらずに進みます。
  • 「並行」ブロック ― タスクの中で、枝ごとに担当の腕を決めて、別々のスキルを同時に動かします。全部の枝が終わったら次へ進みます。
  • 左右の反転 ― 左腕で教示したスキルを、本体の対称面で鏡に映して右腕でも使えます。
  • 学習した方策や AI エージェントにも担当の腕を指定 できます。

並行ブロックの設定画面。枝ごとに担当の腕を割り当てる

結果

シミュレーターには治具、左右で別の部品、ドライバーとねじを置き、PLC は Modbus で模擬しています。LEIVOR の PLC ノードとそのままやりとりできます。左右で部品を置き、片手で部品を支え、もう片手でドライバーを持って、PLC の合図でねじを締め、締め終わりの入力を待って次へ進むまでを、最後まで再生できました。

片手で部品を支え、もう片手でねじを締めているところ

腕どうしがぶつからないように

2つの作業に共通して、腕どうしの干渉は動かす前と、動いている間の両方で見ています。

  • 動かす前 ― 腕どうしの距離を計算し、近づきすぎる動作は再生しません。
  • 動いている間 ― 組み立てのように入力待ちがあると、各腕がいつ動くかは実行してみないと決まりません。そのため距離を見張り、近づきすぎたら全部の腕を止めます。
  • 遅れの見張り ― 協調区間で1本でも指令から遅れたら、全部の腕を止めます。
  • 経路計画では他の腕を障害物に ― 片腕を経路計画で動かすときは、止まっている他の腕を障害物として扱います。

布と組み立てを扱うシミュレーター

タオルのような柔らかい物を試すため、MuJoCo の布モデルを使って AIDAL のシミュレーターを用意し、組み立て用の治具や部品、PLC の模擬も加えました。LEIVOR からは実機と同じ通信の口でつながるため、LEIVOR 側は実機でもシミュレーターでも同じ経路で動きます。

これからの課題

  • 力覚 ― 今は関節の位置だけで動かしています。硬い物を両手で持つと、わずかな位置のずれがそのまま物への力になるため、力を感じて内力・張力を制御することが必要です。組み立てで「片手で支える」ときに、ねじの反力を受け止めることも同様です。
  • 学習と教示の同時動作 ― 片腕を学習した方策、もう片腕を教示した動作で同時に動かす形は、まだこれからです。
  • 3本以上の腕 ― 複数台の産業用ロボットの腕を協調させる形です。腕ごとに関節の情報が別々になるため、今回の双腕とは実装を大きく変えて取り組みます。

まとめ

  • 研究で使われる 4層(タスク・協調・動作計画・制御) に沿って、多腕の協調動作を設計
  • 協調4種類・腕ごとのタイムライン・協調区間・腕ごとの PLC/入力待ち・並行ブロック・干渉チェック を実装し、1つの動作の中で協調のしかたを切り替え可能に
  • LEIVOR の画面上で教示した動作で、シミュレーター上の AIDAL が 両手でタオルを折る ことと、左右で手分けしてねじを締める ことを確認
  • 次は力覚、学習と教示の同時動作、3本以上の腕に取り組みます

製品の詳細は LEIVOR 製品ページ をご覧ください。

この技術や導入について、お気軽にご相談ください。

お問い合わせ・ご相談はこちら

関連製品

一覧に戻る

Contact

自社のロボット、現場、データにどう使えるか。まずは相談から

既存ロボットへの知性付与、ローカルAI導入、移動AI、ヒューマノイド制御、行動ログの記録まで。製品選定とPoCの組み立てを、Forcesteed Robotics が支援します。