引力ポテンシャル:
$$U_{att}= \tfrac{1}{2}k_{att}\cdot d_{goal}^2$$斥力ポテンシャル($d_{obs}< d_0$ のとき):
$$U_{rep}= \tfrac{1}{2}k_{rep}\left(\frac{1}{d_{obs}}- \frac{1}{d_0}\right)^2$$合力:$\mathbf{F}= -\nabla(U_{att}+ \sum U_{rep})$
引力・斥力ポテンシャルの合成場でロボット(点質量)の経路をリアルタイム計算。ポテンシャルカラーマップ、局所極小検出、簡易RRT比較機能付き。
引力ポテンシャル:
$$U_{att}= \tfrac{1}{2}k_{att}\cdot d_{goal}^2$$斥力ポテンシャル($d_{obs}< d_0$ のとき):
$$U_{rep}= \tfrac{1}{2}k_{rep}\left(\frac{1}{d_{obs}}- \frac{1}{d_0}\right)^2$$合力:$\mathbf{F}= -\nabla(U_{att}+ \sum U_{rep})$
自律搬送ロボット(AGV/AMR):工場や倉庫で、人や他のロボット、棚を障害物と見立てて、荷物の搬送経路をリアルタイムで計画します。計算が軽いため、機体に搭載されたコンピュータでも素早く経路を更新できる利点があります。
ドローンの自動航行:建物や電線などの固定障害物を避けながら、指定地点へ飛行する経路を生成します。風などの外力が働いている環境では、それを仮想的な斥力場としてモデルに加える拡張も可能です。
ロボットアームの動作計画:作業空間内で、アーム自身の関節や把持物が環境や他の機械に衝突しないように、滑らかな軌道を計画するために応用されます。
スペースデブリ回避軌道の初期設計:宇宙機の軌道計画において、デブリを斥力源とするポテンシャル場を定義し、安全な経路の候補を素早く絞り込むために使われます。最終的には精密な軌道力学モデルで検証されます。
まず、「係数を大きくすれば必ず性能が上がる」と思いがちですが、それは危険です。例えば、斥力係数$k_{rep}$を極端に大きくすると、障害物周辺の斥力の「丘」が急峻になりすぎて、ロボットが振動したり、細い通路を通れなくなったりします。逆に引力係数$k_{att}$が強すぎると、障害物のすぐ脇を強引に通り、衝突リスクが高まります。バランスが命で、例えば倉庫内の広い通路なら$k_{att}=1.0, k_{rep}=0.5$程度から始め、狭い通路では斥力の影響半径$d_0$を小さく調整するといった状況に応じたチューニングが必要です。
次に、「計算が軽いからリアルタイム更新は簡単」という誤解。確かに1ステップの計算は軽いですが、ロボットが局所極小に捕まると、同じ場所で計算を続ける「無限ループ」状態に陥ります。実装時は、最大ステップ数の設定や、動かなくなったらランダムな小さな擾乱を加えるなどの安全装置が必須です。
最後に、このシミュレーターの「点質量」モデルは大きな理想化です。実機は大きさと形状を持ちます。例えば幅60cmの搬送ロボットを計画するなら、障害物の半径にロボットの半径を加えた「膨張障害物」で考える必要があります。シミュレーター上で障害物を大きく設定して試すと、この考え方が体感できますよ。