Smart Motion

「Smart Motion」アドインは、ロボットが衝突することなくある地点から別の地点へ移動するための安全なパスを自動的に作成するモーションプランナーです。衝突回避アルゴリズムを採用しており、衝突のない解を迅速に見つけることができます。

Smart Motion - 画像 1

注: Smart Motion アドインがインストールされ、有効化されていることをご確認ください。

ユーティリティ➔ 「Smart Motion」の順に選択し、「衝突のないパスを生成」をクリックすると、Smart Motionメニューが表示されます。

Smart Motion - 画像 2

メニューを開く別の方法として、ツールバーの最初の(一番左の)「Smart Motion」アイコンをクリックする方法があります。

Smart Motion - 画像 3

Smart Motion - 画像 4

また、ツールバーの「衝突チェック」ドロップダウンメニューからもアクセスできます。

Smart Motion - 画像 5

Smart Motion の設定

Smart Motionプランナーを効果的に使用するためには、RoboDKプロジェクトが適切に設定されていることを確認してください。

プロジェクトには、以下の要素を含める必要があります。

1.ロボット:ロボットアーム 1台。この例では、Comau Smart5 NJ 130-2.6 ロボットを使用します。

Smart Motion - 画像 6

2.ツール:1つ以上の工具(TCP)。スポット溶接の例では、OBARAスポット溶接ガンを使用します。

注:工具「OBARAスポット溶接ガン」は、その開閉機構を実演できるため、ファイル拡張子が.tool ではなく.robot となっています。

Smart Motion - 画像 7

3.オブジェクト:衝突回避機能を利用するには、ワークスペース内に少なくとも1つのオブジェクト(障害物)が存在する必要があります。この例では、カスタム製の「Car Frame」に加え、「Car Frame Rack」および「Car Frame Rail」を使用しています。

Smart Motion - 画像 8

4.ターゲット:生成されるパスの開始位置と終了位置は、ターゲットを使用して定義する必要があります。したがって、ステーション内には少なくとも2つのターゲットが存在する必要があります。この例では、前部と後部にアプローチ/リトラクト用ターゲットが配置されており、さらにスポット溶接を行う車体フレーム内部にもいくつかのターゲットが配置されています。

Smart Motion - 画像 9

Smart Motion アドインの使用

Smart Motion を使用して安全なパスを作成するには、ロボットが移動する必要のあるターゲットを選択し、「パスの生成」をクリックしてください。アドインが自動的に計算を行います。

Smart Motion アドインのデモには、以下のスポット溶接の例を使用します。「Comau を使用したスポット溶接」。この例には、前述した 4 つのコンポーネントが含まれています。

また、このプロジェクトには、PRMプラグインを使用して作成されたスクリプト形式の衝突回避パスも含まれています。Smart Motionアドインのデモを行うため、PRMプラグインによって自動的に作成された以下のプログラムを削除します:

AppFrontPg

AppRearPg

HomePg

HomeToAppFront

AppRearToHome

AppFrontToAppRear

AppRearToAppFront

Main

Smart Motion - 画像 10

一般的な手順

このアドインを使用するには、以下の手順に従ってください。

1.ターゲットセレクターを開きます。「Smart Motion」メニューの「ターゲットの選択」ボタンをクリックして、選択ウィンドウを開きます。これらのターゲットによって、生成したいパスが定義されます。

Smart Motion - 画像 11

Smart Motion - 画像 12

2.ポイントの選択と順序の指定:左側の「利用可能なターゲット」セクションから使用したいポイントを選択し、「>>」ボタンをクリックして、右側の「選択されたターゲット」セクションに移動させます。右側で(ドラッグ&ドロップを使用して)順序を変更し、ロボットが最初に移動する場所を決定できます。ターゲットの選択が完了したら、「OK」ボタンで選択内容を確認してください。

Smart Motion - 画像 13

3.パスの品質を選択する:「パスの品質」スライダーを動かしてください。簡単なチェックには「粗」を使用し、ロボットが狭いスペースを安全にチェックできるようにするには「細」側にスライダーを動かしてください。

注:精細なパスは生成に時間がかかりますが、衝突のないパスが保証されます。ステーション内に、粗いパスを作成した際に検出されにくい細いオブジェクトが含まれている場合は、この設定をお勧めします。

Smart Motion - 画像 14

4.パスを生成します:パスを生成」ボタンをクリックしてください。工具は、リスト内のすべての点間のペアについて、安全な移動経路を生成します。

Smart Motion - 画像 15Smart Motion - 画像 16

Smart Motion - 画像 17

また、ステーションツリーで複数のターゲットを(必要な順序で)選択し、ツールバーの「選択したアイテムをリンク」アイコン(Smart Motionの2番目、または右端のアイコン)をクリックすることで、「アイテムのリンク」を行うこともできます。

ターゲットセレクタのチェックボックス

ターゲットセレクターメニューから移動パスを設定する際、利用可能なポイントのリストが「選択されたターゲット」リストに移動されます。これらの選択項目のいくつかには、「アプローチ」というラベルの付いたチェックボックスがあり、オン/オフを切り替えることができます。

これらのチェックボックスは、パス計画ソルバーに対するスマートなヒントとして機能します。

チェックなし(標準停止)の場合:ロボットはそのターゲットを厳密な目的地として扱います。ポイントAからポイントBまでの完全なパスを計画し、その後、ポイントBからポイントCまでのまったく新しいパスを計画します。ロボットは、次のステップを考える前に、ポイントBに正確に到着することに全力を尽くします。

チェックされている場合(通過または接近ポイント):「チェック」をオンにすると、このポイントが単なる一時的な「足掛かり」または実際の目的地への入り口であることをソルバーに伝えます。移動を個別の固定された区間(AからB、次にBからC)に分割する代わりに、ソルバーは一連の移動全体(A➔ B➔ C)を、単一の滑らかなシーケンスとして評価します。

アプローチターゲットを指定すると、「プログラムの簡略化」工具によるパスの最適化方法が根本的に変わります:

滑らかなコーナリング:ソルバーは、ロボットが接近点で完全に停止する必要がないことを認識しているため、動作を滑らかにブレンドします。ロボットは接近点に向かって移動し、「ぎくしゃく」したり、急に停止したりすることなく、優雅に最終目的地へと振り向きます。

積極的な最適化:簡略化工具が複数ポイントのパスを処理する際、各中間ターゲットごとに計算を停止するのではなく、シーケンス全体を先読みすることで、不要で冗長な動きをより効果的にトリミングできます。その結果、コード行数が減り、ロボットの速度が一定に保たれ、全体的な生産時間が短縮されます。

Smart Motionの追加オプション

Smart Motion アドインには、要件に応じてソリューションを微調整するための追加オプションも備わっています。これらのオプションを使用することで、最終結果や生成されるパスに影響を与えるいくつかのパラメータをカスタマイズすることができます。

工具の回転制限

メニューの「ツールの TCP 回転を +/- 許容」オプションを使用することで、TCP の回転を制限することができます。このオプションが有効になっている場合、X 軸および Y 軸の回転はロックされ、Z 軸の回転は選択された値(例:+/- 45°)に制限されます。

この機能は「Constrained Space」とは逆の働きをし、ソルバーにデカルト座標系での動作を強制することで、工具の向きを制限します。X軸およびY軸の回転をロックし、Z軸の回転を特定の角度範囲(設定値のプラスまたはマイナス)に制限することができます。このフィールドの値を「0」に設定すると、X軸およびY軸の回転に加え、Z軸の回転もロックされます。 3軸すべて(X、Y、Z)の回転をロック解除したままにするには、このオプションに「-1」という値を設定してください。

制約空間での作業

「制約空間」が有効になっている場合、ロボットは狭い開口部を通過したり、物で溢れた環境内で作業したりしようとします。この設定により、カルテシアン空間ではなく関節空間でのアルゴリズムの使用が強制され、テストされた構成が実際に使用される構成となることが保証されます。これは、カルテシアン座標でのポーズが複数の潜在的な関節構成を招き、パス生成時に問題を引き起こす可能性があるロボットの形態において極めて重要です。関節空間を強制することで、システムは特定されたパスが一意であり、衝突がないことを保証します。

注:パスが非常にきつい場合、この設定により初期計算時間がわずかに長くなる可能性があります。

衝突マップの開く方法

また、Smart Motionのメニューにある「Collision Map」ボタンをクリックすることで、RoboDKの「Collision Map Settings」を開くこともできます。適切に設定された衝突マップにより、アドインは衝突行列を参照して、衝突のないパスを維持する軌道を確実に計算します。

Smart Motion - 画像 18

注:パスを生成する前に、このオプションを使用して、ロボットが回避すべきオブジェクトを定義してください。

生成されたプログラムの簡略化

選択したプログラムを簡略化」オプションを使用すると、衝突を回避しつつ、プログラム内の命令数を削減することができます。つまり、すでに作成されたプログラムを簡略化し、パス上のターゲット数を減らしつつ、パスが衝突しない状態を維持します。

これは、以下の点で役立ちます:

1.プログラムサイズの縮小:パスを分析し、不要なターゲットを削除します。これは、メモリ容量が限られており、一定行数以上のコードを保存できない旧式のロボットコントローラにとって極めて重要です。

2.より滑らかな動作:冗長なポイントを削除することで、ロボットの「カクつき」を防ぎます。同じ狭い領域に対して過度な数のコマンドが送信されると、コントローラが急激に動いたり速度が低下したりすることがありますが、パスを簡略化することで、ロボットはより一定で滑らかな速度を維持できるようになります。

3.実行速度の向上:プログラムが簡素化されると、ロボットコントローラが処理すべきポイント数が減るため、サイクルタイムが短縮されることが多く、プログラムされた速度の維持に集中できるようになります。

4.「乱雑な」パスの整理:動作を記録したり、高密度なCADパスをインポートしたりして作成されたプログラムには、何百もの不要なポイントが含まれている場合があります。この工具は、新しい短縮されたパスがすべての衝突を回避することを保証しつつ、そのデータを「整理」します。

5.構成の安全性を維持:Smart Motionの他の機能と同様、この簡略化プロセスもロボットの構成を尊重します。これにより、ポイントが削除される際にも、ロボットが誤って構成を切り替え(肘の反転など)、衝突を引き起こすような動作を行わないことが保証されます。

プログラム間の動作作成

Smart Motionはターゲットのリンクに限定されず、独立した個別のプログラム間を橋渡しすることも可能です。この機能は、手動操作なしに、ピックアップシーケンスから加工パスへ移行するといった複雑な操作を連携させる際に非常に役立ちます。

この機能を使用するには、「ターゲットセレクター」インターフェース内で個別のプログラム項目を選択し、最初のプログラムの終了状態から2番目のプログラムの開始状態への安全な遷移パスを計算します。

Smart Motion - 画像 19

このアドインは、最初のプログラムの最後の動作と、続くプログラムの最初の動作を特定することで2つのプログラムをリンクし、両者の間に接続パスを効果的に生成します。

Smart Motion 対 衝突回避モーションプランナー

RoboDK では、「Smart Motion」と「Collision-Free Motion Planner(PRM)」の両方が、ロボットが障害物にぶつかることなく移動できるよう設計されています。ただし、その実現には異なる数学的アプローチとワークフローが採用されています。

コリジョンフリー・モーションプランナーのモーションプランニング機能は、「確率的ロードマップ(PRM)」と呼ばれるモーションプランニングアルゴリズムを使用し、ロボットの作業領域内で自動的に衝突のないパスを作成します。

ターゲットの接続方法

これら2つのモーションプランナーの最大の違いは、ロボットが動作する前に必要な準備作業の量にあります。

PRMプランナーは、恒久的な道路網を構築するような仕組みの工具です。まず「構築フェーズ」を実行し、数分かけてランダムにポイントを配置し、それらを巨大なロードマップとして結びつけようと試みます。マップが仕上げられれば、「道路」はすでに構築されているため、パスの検索は瞬時に行われます。しかし、ステーション内のテーブルやボックス、その他のオブジェクトを1つでも移動させると、マップ全体が使い物にならなくなり、一から再構築する必要があります。

Smart Motionは、これよりもはるかに柔軟に動作するように設計されています。時間のかかるマップ構築のステップはありません。ロボットが現在どこにいるか、どこへ移動する必要があるかを正確に把握し、障害物を回避する安全な「トンネル」を見つけ出します。これはワンステップのプロセスです。ポイント(ターゲット)を選択し、「生成」をクリックするだけで、ロボットが移動します。作業セル内でオブジェクトを移動させた場合でも、新しいマップを待つことなく、もう一度「パス生成」をクリックするだけで済みます。

注:この点において、Smart Motionはワークフローを中断させずに進められるため、より効率的です。ステーションのレイアウトにわずかな変更を加えるたびに、15分間作業を中断して「再マッピング」を行う必要がありません。

計算時間

モーションプランニングにおける「速度」とは、単にロボットの移動速度だけでなく、プランナーが計算に要する時間の長さにも関係します。

PRMプランナーの「クエリフェーズ」(マップ上のパス検索)は非常に高速ですが、その一方で「構築フェーズ」が非常に長くなります。ステーションが常に静的な状態であれば問題ありませんが、頻繁に変更が行われる場合は時間がかかってしまいます。

Smart Motionは、単一の「AからBへ」という問題を驚くほど高速に解決するアルゴリズムを採用しています。パスの両端から同時に探索を開始し、中央で合流します。これにより、一般的なタスクのほとんどにおいて、「思考時間」はほとんど気にならないほど短くなります。

狭い空間でのナビゲーション

あらゆるモーションプランナーにおいて、衝突の検出と回避が焦点となります。したがって、生成される安全なパスの精度は非常に重要な要素となります。

PRMプランナーは、マッピング段階で配置したランダムなポイントに依存しています。もしランダムなポイントが狭い空間の内側に配置されていない場合、たとえ十分なスペースがあっても、ロボットは通行不能であると判断してしまいます。サンプル数を増やし、サンプルあたりのエッジ数を増やすことで、よりきめ細かいロードマップが生成されます。生成には時間がかかりますが、より正確な解が得られます。

Smart Motionには、このような扱いにくい箇所に対応するための「Constrained Space」オプションが用意されています。これを有効にすると、ソルバーはデカルト座標系ではなく関節座標系で動作するよう強制されます。これにより、ポーズが検証される際、システムが一意の関節構成を特定できるようになり、単一のデカルト座標系ポーズに対して複数の解が存在するという問題を防止します。要するに、これによりプランナーがロボットの位置と構成を記憶しやすくなり、見つかったパスが確実に維持されるようになります。

滑らかさと安全性

どちらのモーションプランナーでも、ロボットが周囲の状況をどの程度「考慮」するかを制御することができます。

PRMプランナーを使用してより滑らかで安全なパスを得るには、「サンプル数」と「サンプルあたりのエッジ数」を適宜増やす必要があります。これによりマップの精度は向上しますが、待機時間が長くなります。

Smart Motionでは、以下の制限を持つシンプルな「パス品質」スライダーを使用します:

1.「粗(Coarse)」:広々とした空間で、即座に回答を得るために使用します。

2.「Fine」:これは複雑な作業に使用されます。ロボットに「ごく小さなステップ」を踏みながら移動させ、衝突をチェックし、全体的に滑らかなパスを生成するようにします。