基于几何图形法的障碍物机器人环境搭建的总结

1    绘制集合障碍物图的方法(很多种)

%-----------------------------------------方法一:contourf(曲线因为求max,存在缺省不连续问题)------------------------

[x,y] = meshgrid(linspace(-4,4));

v1_1 = cat(6,x-2-y,0.5-y,-x+2-y,y-x-1,y-2.5,y+x-5);%全部化成<=0的不等式

v1_1 = max(v1_1,[],6);
contourf(x,y,-v1_1,[0,0]);
colormap(display_color);

%----------------------------------------方法二:曲线相交(迭代时间较长,因为solve)

syms x y;

[x1_1,y1_1] = solve(x-2-y == 0,0.5-y == 0,x,y);
[x1_2,y1_2] = solve(0.5-y == 0,-x+2-y == 0,x,y);
[x1_3,y1_3] = solve(-x+2-y == 0,y-x-1 == 0,x,y);
[x1_4,y1_4] = solve(y-x-1 == 0,y-2.5 == 0,x,y);
[x1_5,y1_5] = solve(y-2.5 == 0,y+x-5 == 0,x,y);
[x1_6,y1_6] = solve(x-2-y == 0,y+x-5 == 0,x,y);

plot(x1_1,y1_1,x1_2,y1_2,x1_3,y1_3,x1_4,y1_4,x1_5,y1_5,x1_6,y1_6);

X1_1 = [x1_1,x1_2,x1_3,x1_4,x1_5,x1_6,x1_1];
Y1_1 = [y1_1,y1_2,y1_3,y1_4,y1_5,y1_6,y1_1];
h = fill(X1_1,Y1_1,'c');
hold on;


2    对于matlab中的cell的使用
 >>a = cell(1,5)
 a =
  1×5 cell array

    []    []    []    []    []

>>a(:) = {[0]}
a =
  1×5 cell array

    [0]    [0]    [0]    [0]    [0]

>> a(1) = {[5]}
a =
  1×5 cell array

    [5]    [0]    [0]    [0]    [0]

3    对于zeros的使用,a = zeros[m,n];        m*n维的0阵

猜你喜欢

转载自blog.csdn.net/SimileciWH/article/details/80250562