2017-02-28 11 views
0

3つのロボット/エージェントの移動をシミュレートしたいが、ある制約を持つ3つの異なる軌道を生成したい。すべての軌道は同じ接線を持つ必要があります。私はMATLABおよび/またはSIMULINKを通してそれを実行する必要があり enter image description here特定の点で同じ接線を持つ3つのエージェント/ロボットの軌道を生成する - MATLAB

は、私は次の写真のような何かをしたいです。

ありがとうございました。

答えて

0

これで十分かどうかわかりませんが、私は何が必要なのか分かりませんが、おそらく何かを考え出しました。

私がやったことは、私は次の関数を使用いくつかのポイントに多項式をフィットすることであり、0

に等しくなるように、ある時点で多項式の微分を制約:それはある http://www.mathworks.com/matlabcentral/fileexchange/54207-polyfix-x-y-n-xfix-yfix-xder-dydx-

をかなり簡単でしたが、それは私にいくつかの仕事を助けました。

そして、あなたは次のことをしようとした場合:

% point you want your functions to pass 
p1 = [1 1]; 
p2 = [1 3]; 
% First function 
x1 = linspace(0,4); 
y1 = linspace(0,4); 
p = polyfix(x1,y1,degreePoly,p1(1),p1(2),[1],[0]); 
% p = [-0.0767 0.8290 -1.4277 1.6755]; 
figure 
plot(x1,polyval(p,x1)) 
xlim([0 3]) 
ylim([0 3]) 
grid on 
hold on 

% Second function 
x2 = linspace(0,4); 
y2 = linspace(0,4); 
p = polyfix(x2,y2,degreePoly,[1],[3],[1],[0]) 
% p = [0.4984 -2.7132 3.9312 1.2836]; 
plot(x2,polyval(p,x2)) 
xlim([0 3]) 
ylim([0 3]) 
grid on 

あなたはポリフィックス機能を持っていない、あなたはそれをダウンロードしたくない場合は、ポリフィックスの行をコメント同じコードを試すことができます。

p = polyfix(x1,y1,degreePoly,p1(1),p1(2),[1],[0]); 
    p = polyfix(x2,y2,degreePoly,p2(1),p2(1),[1],[0]); 

そしてアンコメント行:

% p = [-0.0767 0.8290 -1.4277 1.6755]; 
    % p = [0.4984 -2.7132 3.9312 1.2836]; 

あなたがこれを取得します:

enter image description here

今、私は私のロボットの時間をかけて位置(x、y)として、この多項式を使用し、私は私が行うべきであると考えます。多項式のxも時間になります。このようにして、ロボットは同時に0微分点に到着すると確信しています。

あなたはどう思いますか?それは理にかなっていますか? もう一度ありがとうございます。に同じ接線すべての時間、曲線(又はを軌道)ニーズを有すること

0

は常に平行です。 1つのオブジェクトに対して軌道を生成し、他のオブジェクトを一定の距離を隔てて保持し、マスター軌道に従います。

画像では、3つの点の隣に時間がかかると、異なる方向に移動するオブジェクトとして軌跡が同じではありません(または平行)。だから私はあなたが常に維持すると思う常に平行

+0

こんにちは返信いただきありがとうございますが、私は接線を常に同じにしたくありません。私は接線を特定の点でのみ同じにしたい。 – kalmanIsAGameChanger

+0

あなたのオブジェクトの位置が一定の間隔で更新されている場合(*はステップ*と言います)、方向が90度変化する場合はスローオブジェクトの必要な(N)ステップがスレーブオブジェクトの(t-N)番目のインターバル発行変更コマンドになります。時間が何であっても、その時、パスを平行にすることが重要です。 – SACn

関連する問題