2017-08-07 3 views
2

私はシミュレーション結果を印刷するのにMATLABを使用しています。結果は、UAVが訪れなければならないUAVの軌道と中間地点に関係しています。 UAVにはカメラが搭載されていて、その範囲は10x10です。今、図はUAVの軌道をウェイポイントを訪れる線として示しています。実際の軌跡ではなく、カメラのフットプリントを表示することは可能ですか?私は、領域の網羅的なカバレッジを示すために長方形カメラの視点をプロットすることを望みます。ポイントを四角形、十字形、またはシークルとしてプロットするオプションがありますが、それらの境界を設定することは可能ですか?座標の代わりにフットプリントをプロットする

は、例えば、あなたが正方形でマーカーの形を指定し、一定のマーカーサイズを設定することができます最初の試みとして予め

答えて

4

マーカサイズを使用してレンジビューを表示する際の問題は、ウェイポイントのデータユニットとマーカサイズの間に直接の関係がないことです。言い換えれば、マーカサイズの値が10であるということは、必ずしも四角いマーカの辺が(軸のスケーリングとリミットによって定義される)10データ単位になることを意味するものではありません。

代わりに、パッチがUAVの軌道と位置合わせされているそれぞれの中間地点にプロットすることがあります。patchesここでは、これを行うことができます方法は次のとおりです。

% Generate some sample data: 
N = 20;      % Number of waypoints 
x = cumsum(5.*rand(1, N)); % X coordinates of UAV 
y = cumsum(5.*rand(1, N)); % Y coordinates of UAV 

% Compute vectors parallel and perpendicular to the trajectory at each point: 
v = [diff(x); diff(y); zeros(1, N-1)];   % Vectors (1 per column) 
v = bsxfun(@rdivide, v, sqrt(sum(v.^2, 1))); % Normalize each column to a unit vector 
v = v(:, [1 1:end]);       % Replicate a vector for starting point 
vCross = cross(v, [zeros(2, N); ones(1, N)]); % Perpendicular vector 

% Generate patch coordinates: 
R = 10; % Range view 
xPatch = [x+(R/2).*(v(1, :)+vCross(1, :)); ... 
      x+(R/2).*(v(1, :)-vCross(1, :)); ... 
      x-(R/2).*(v(1, :)+vCross(1, :)); ... 
      x-(R/2).*(v(1, :)-vCross(1, :))]; 
yPatch = [y+(R/2).*(v(2, :)+vCross(2, :)); ... 
      y+(R/2).*(v(2, :)-vCross(2, :)); ... 
      y-(R/2).*(v(2, :)+vCross(2, :)); ... 
      y-(R/2).*(v(2, :)-vCross(2, :))]; 

% Plot the patches and trajectory: 
patch(xPatch, yPatch, [0 0.3 0], 'FaceAlpha', 0.25, 'EdgeColor', 'none'); 
hold on; 
plot(x, y, '-', 'Color', [0.8 0 0], 'Marker', '.', 'MarkerSize', 12); 
axis equal; 

そしてここでは、サンプルプロットです:

enter image description here

+0

ありがとうございました。私はちょうどやった、それは完全に動作します。ありがとうございました! – GeorgiosZervakis

1

にありがとう

plot(x,y,'s','markersize',10) 
ここ

xy UAV座標を保持し、ベクターです。文字 's'はの正方形のとし、サイズは10に設定されています。

実際にUAVの軌道は3次元空間で定義されています。これを考慮に入れるにはもう少し努力が必要です。

また、ポイント間の距離が十分に離れていると仮定すると、マーカ間に空白領域が存在することが想定されます。

+0

は、あなたの答えをありがとうございました。 通知が正しいです。しかし、UAVの高度は協調​​シミュレーションではほぼ同じですが、あなたの言うことは将来の作業のために考慮する必要があります! – GeorgiosZervakis

関連する問題