Main Content

Pure Pursuit

線形速度と角速度の制御コマンド

R2019b 以降

  • Pure Pursuit block

ライブラリ:
Robotics System Toolbox / Mobile Robot Algorithms
Navigation Toolbox / Control Algorithms

説明

Pure Pursuit ブロックは、一連のウェイポイントおよび差動駆動型ビークルの現在の姿勢を使用して、パス追従のための線形速度と角速度のコマンドを計算します。このブロックは、更新された姿勢を使い、目的とする一連のウェイポイントに沿ったパスにビークルが従うよう速度コマンドを更新します。[最大角速度] パラメーターと [目的の線形速度] パラメーターを使用して、ビークルのパフォーマンスに基づいて速度を更新します。

前方注視距離端子およびパラメーターは、ビークルにおける瞬時の局所的ゴールである、パス上の前方注視点を計算します。角速度コマンドはこの点に基づいて計算されます。前方注視距離を変更すると、アルゴリズムのパフォーマンスに大きく影響します。前方注視距離を大きくすると、ビークルの軌跡は滑らかになりますが、ビークルがパスに沿って近道をする可能性があります。前方注視距離が小さすぎると、パスを追跡する際に振動が発生し、動作が不安定になる可能性があります。単純追跡アルゴリズムの詳細については、単純追跡コントローラーを参照してください。

端子

入力

すべて展開する

現在のビークルの姿勢。x-y 位置と向きの角度 theta に対応する [x y theta] ベクトルとして指定します。正の角度は、正の x 軸から反時計回りに測定されます。

ウェイポイント。[x y] ペアを n 行 2 列の配列として指定します。n はウェイポイントの数です。ウェイポイントを生成するには、mobileRobotPRM (Robotics System Toolbox) のようなパス プランナーを使用するか、Simulink® で配列として指定します。

目的の線形速度。メートル/秒単位のスカラーとして指定します。コントローラーは、ビークルが定数線形速度で走行し、計算された角速度は線形速度に依存しないと仮定します。

依存関係

この端子を有効にするには、[入力端子から目的の線形速度を指定] パラメーターを選択します。

前方注視距離。スカラー (メートル/秒単位) として指定します。前方注視距離によって、コントローラーの応答が変わります。前方注視距離の大きいビークルは滑らかなパスを形成しますが、コーナーでの曲がりが大きくなります。前方注視距離の小さいビークルはパスに厳密に追従して急旋回しますが、パスに沿って振動します。前方注視距離の効果の詳細については、単純追跡コントローラーを参照してください。

依存関係

この端子を有効にするには、[入力端子から前方注視距離を指定] パラメーターを選択します。

出力

すべて展開する

線形速度。スカラー (メートル/秒単位) として返されます。

データ型: double

角速度。スカラー (ラジアン/秒単位) として返されます。

データ型: double

ビークルのターゲットの方向。スカラー (ラジアン単位) として返されます。ビークルの前進方向は 0 ラジアンと見なされ、正の角度は反時計回りに測定されます。この出力は、Vector Field Histogram ブロックの TargetDir 端子への入力として使用できます。

依存関係

この端子を有効にするには、[Target Direction 出力端子を表示] パラメーターを選択します。

パラメーター

すべて展開する

Desired Linear Velocity 入力端子で目的の線形速度の入力を有効にするには、このパラメーターを選択します。

[目的の線形速度 (m/s)] パラメーターを使用して目的の線形速度を指定するには、このパラメーターをクリアします。

目的の線形速度。メートル/秒単位のスカラーとして指定します。コントローラーは、ビークルが定数線形速度で走行し、計算された角速度は線形速度に依存しないと仮定します。

依存関係

このパラメーターを有効にするには、[入力端子から目的の線形速度を指定] パラメーターをクリアします。

最大角速度。ラジアン/秒単位のスカラーとして指定します。コントローラーは、指定された値で絶対角速度出力を飽和します。

Lookahead Distance 入力端子で前方注視距離の入力を有効にするには、このパラメーターを選択します。

[前方注視距離 (m)] パラメーターを使用して目的の線形速度を指定するには、このパラメーターをクリアします。

前方注視距離。スカラー (メートル単位) として指定します。前方注視距離によって、コントローラーの応答が変わります。前方注視距離の大きいビークルは滑らかなパスを形成しますが、コーナーでの曲がりが大きくなります。前方注視距離の小さいビークルはパスに厳密に追従して急旋回しますが、パスに沿って振動します。前方注視距離の効果の詳細については、単純追跡コントローラーを参照してください。

依存関係

このパラメーターを有効にするには、[入力端子から前方注視距離を指定] パラメーターをクリアします。

Target Direction 出力端子を有効にするには、このパラメーターを選択します。この端子は、前進方向からの角度 (ラジアン単位、正の角度を反時計回りに測定) として、ターゲットの方向を指定します。

  • インタープリター型実行 — MATLAB® インタープリターを使用してモデルをシミュレートします。このオプションでは起動時間が短縮されますが、シミュレーション速度は [コード生成] より遅くなります。このモードでは、ブロックのソース コードをデバッグできます。

  • コード生成 — 生成される C コードを使用してモデルをシミュレートします。シミュレーションをはじめて実行すると、Simulink によってブロック用の C コードが生成されます。モデルが変更されない限り、この C コードは後続のシミュレーションで再利用されます。このオプションでは起動時間が長くなりますが、後続のシミュレーションの速度は [インタープリター型実行] に匹敵します。

調整可能: No

拡張機能

C/C++ コード生成
Simulink® Coder™ を使用して C および C++ コードを生成します。

バージョン履歴

R2019b で導入

すべて展開する