Main Content

このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。

dubinsConnection

Dubins パス接続タイプ

説明

dubinsConnection オブジェクトは、姿勢間を接続する dubinsPathSegment パス セグメントを計算するための情報を保持します。Dubins パス セグメントは、2 つの姿勢を 3 つの運動のシーケンスとして接続します。運動オプションは、以下のとおりです。

  • 直進

  • 最大ステアリングで左折

  • 最大ステアリングで右折

Dubins パス セグメントでは、前進方向の運動のみが許可されます。

この接続オブジェクトを使用して、最小回転半径やパス タイプのオプションなど、ロボット運動モデルのパラメーターを定義します。この接続タイプを使用して姿勢間のパス セグメントを生成するには、関数 connect を呼び出します。

作成

説明

dubConnObj = dubinsConnection は、既定のプロパティ値を使用してオブジェクトを作成します。

dubConnObj = dubinsConnection(Name,Value) は、名前と値のペアを使用してプロパティ値を指定します。複数のプロパティを設定するには、名前と値のペアを複数指定します。

プロパティ

すべて展開する

ビークルの最小回転半径。正のスカラー (メートル単位) として指定します。最小回転半径は、ビークルが一方向に最大ステアリングで旋回できる最小の円の半径です。

データ型: double

無効にする Dubins パス タイプ。3 要素の文字ベクトルの cell 配列または string スカラーのベクトルとして指定します。cell 配列は、ビークル運動モデルで禁止される運動の 3 つのシーケンスを定義します。

運動タイプ説明
"S"直進
"L"

ビークルの最大ステアリング角度で左折

"R"

ビークルの最大ステアリング角度で右折

使用可能なすべてのパス タイプを確認するには、AllPathTypes プロパティを参照してください。

Dubins 接続の場合、使用可能なパス タイプは {"LSL"} {"LSR"} {"RSL"} {"RSR"} {"RLR"} {"LRL"} です。

例: ["LSL","LSR"]

データ型: string | cell

この プロパティ は読み取り専用です。

使用可能なすべてのパス タイプ。文字ベクトルの cell 配列として返されます。このプロパティはすべてのタイプをリストします。特定のタイプを無効にするには、DisabledPathTypes でこのリストからタイプを指定します。

Dubins 接続の場合、使用可能なパス タイプは {'LSL'} {'LSR'} {'RSL'} {'RSR'} {'RLR'} {'LRL'} です。

データ型: cell

オブジェクト関数

connectConnect poses for given connection type

すべて折りたたむ

dubinsConnection オブジェクトを作成します。

dubConnObj = dubinsConnection;

開始姿勢とゴール姿勢を [x y theta] ベクトルとして定義します。

startPose = [0 0 0];
goalPose = [1 1 pi];

姿勢を接続する有効なパス セグメントを計算します。

[pathSegObj, pathCosts] = connect(dubConnObj,startPose,goalPose);

生成されたパスを表示します。

show(pathSegObj{1})

Figure contains an axes object. The axes object contains 12 objects of type line, scatter. These objects represent Path, Heading, Start Position, Goal Position.

dubinsConnection オブジェクトを作成します。

dubConnObj = dubinsConnection;

開始姿勢とゴール姿勢を [x y theta] ベクトルとして定義します。

startPose = [0 0 0];
goalPose = [1 1 pi];

姿勢を接続する有効なパス セグメントを計算します。

pathSegObj = connect(dubConnObj,startPose,goalPose);

生成されたパスを表示します。旋回の方向に注目してください。

show(pathSegObj{1})

Figure contains an axes object. The axes object contains 12 objects of type line, scatter. These objects represent Path, Heading, Start Position, Goal Position.

pathSegObj{1}.MotionTypes
ans = 1x3 cell
    {'R'}    {'L'}    {'R'}

新しい接続オブジェクトでは、この特定の運動シーケンスを無効にします。ロボットが操縦しやすい場合は、MinTurningRadius を小さくします。姿勢を再度接続すると、異なるパスが得られます。

dubConnObj = dubinsConnection('DisabledPathTypes',{'RLR'});
dubConnObj.MinTurningRadius = 0.5;

[pathSegObj, pathCosts] = connect(dubConnObj,startPose,goalPose);
pathSegObj{1}.MotionTypes
ans = 1x3 cell
    {'L'}    {'S'}    {'L'}

show(pathSegObj{1})

Figure contains an axes object. The axes object contains 10 objects of type line, scatter. These objects represent Path, Heading, Start Position, Goal Position.

参照

[1] Shkel, Andrei M., and Vladimir Lumelsky. "Classification of the Dubins set." Robotics and Autonomous Systems. Vol. 34, No. 4, 2001, pp. 179–202.

拡張機能

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

バージョン履歴

R2019b で導入