我想要模拟3个机器人/智能体在空间中的运动,我想生成3个不同的轨迹,它们有一个约束:在某个时间T,所有的轨迹必须具有相同的切线。
我想要的东西如下图所示:

我需要通过MATLAB和/或SIMULINK来完成。
非常感谢你的帮助。
发布于 2017-02-28 23:47:04
我不知道这是否足够满足我的需要,但我可能找到了一些东西。
我所做的是将一个多项式拟合到一些点,并限制多项式在某一点的导数等于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如果您没有polyfix函数,并且不想下载它,那么可以尝试使用相同的代码来注释polyfix行:
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];你会得到这样的结果:

现在我将使用这个多项式作为我的机器人在一段时间内的位置(x,y),我想我应该完成了。多项式的x也是时间,这样我确信机器人会同时到达0导数的点。
你认为如何?这有意义吗?再次感谢。
发布于 2017-03-01 13:59:32
若要始终具有相同的切线,曲线(或轨迹)需要始终并行( be )。为一个对象生成轨迹,并使其他对象保持固定的距离,并跟随主轨迹。
在图像中,如果我们花时间在三个点旁边,轨迹将不会与物体在不同方向上移动的轨迹相同(或平行)。所以我猜你必须一直保持并行
https://stackoverflow.com/questions/42510907
复制相似问题