【问题标题】:Plot footprint instead of coordinates绘制足迹而不是坐标
【发布时间】:2017-08-08 01:44:43
【问题描述】:

我正在使用 MATLAB 打印我的仿真结果。结果涉及无人机的轨迹和无人机必须访问的航路点。无人机应该配备一个摄像头,其范围视图为 10x10。现在,该图将无人机的轨迹显示为一条访问航路点的线。是否可以显示相机的足迹,而不是实际轨迹?我希望它绘制矩形相机的视图以显示该区域的详尽覆盖范围。可以选择将点绘制为正方形、十字形或圆形,但是否可以设置这些点的边界?

提前谢谢你

【问题讨论】:

    标签: matlab plot


    【解决方案1】:

    使用标记大小来指示范围视图的问题在于,您的航点的数据单位与标记大小之间没有直接关系。换句话说,标记大小的值10 并不一定意味着方形标记的一侧将是 10 个数据单位长(由轴的缩放和限制定义)。

    另一种方法是在补丁与无人机轨迹对齐的每个航点处绘制正方形 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;
    

    这是一个示例图:

    【讨论】:

    • 非常感谢。我刚做了,效果很好。谢谢!
    【解决方案2】:

    作为第一次尝试,您可以将标记形状指定为正方形并设置恒定的标记大小,例如

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

    这里的xy 是向量,包含无人机坐标。字母's'设置标记形状为正方形,大小设置为10。

    实际上,无人机轨迹是在 3D 空间中定义的,其中不同的离地高度对应于不同的足迹大小和形状。考虑到这一点需要更多的努力。

    这还假设点的间距足够近,否则标记之间会有空白区域。

    【讨论】:

    • 非常感谢您的回答。你的通知是正确的。不过联合仿真的时候无人机的高度是差不多的,但是你说的还是以后工作要考虑的!
    猜你喜欢
    • 2022-12-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-23
    • 1970-01-01
    • 2019-03-31
    • 1970-01-01
    相关资源
    最近更新 更多