首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >生成在特定点具有相同切线的3个智能体/机器人的轨迹- MATLAB

生成在特定点具有相同切线的3个智能体/机器人的轨迹- MATLAB
EN

Stack Overflow用户
提问于 2017-02-28 22:08:00
回答 2查看 124关注 0票数 0

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

我想要的东西如下图所示:

我需要通过MATLAB和/或SIMULINK来完成。

非常感谢你的帮助。

EN

回答 2

Stack Overflow用户

发布于 2017-02-28 23:47:04

我不知道这是否足够满足我的需要,但我可能找到了一些东西。

我所做的是将一个多项式拟合到一些点,并限制多项式在某一点的导数等于0。

我使用了以下函数:http://www.mathworks.com/matlabcentral/fileexchange/54207-polyfix-x-y-n-xfix-yfix-xder-dydx-

这很简单,但它为我节省了一些工作。

并且,如果您尝试执行以下操作:

代码语言:javascript
复制
% 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行:

代码语言:javascript
复制
  p = polyfix(x1,y1,degreePoly,p1(1),p1(2),[1],[0]);
  p = polyfix(x2,y2,degreePoly,p2(1),p2(1),[1],[0]);

并取消对这些行的注释:

代码语言:javascript
复制
  % p = [-0.0767    0.8290   -1.4277    1.6755];
  % p = [0.4984   -2.7132    3.9312    1.2836];

你会得到这样的结果:

现在我将使用这个多项式作为我的机器人在一段时间内的位置(x,y),我想我应该完成了。多项式的x也是时间,这样我确信机器人会同时到达0导数的点。

你认为如何?这有意义吗?再次感谢。

票数 0
EN

Stack Overflow用户

发布于 2017-03-01 13:59:32

若要始终具有相同的切线,曲线(或轨迹)需要始终并行( be )。为一个对象生成轨迹,并使其他对象保持固定的距离,并跟随主轨迹。

在图像中,如果我们花时间在三个点旁边,轨迹将不会与物体在不同方向上移动的轨迹相同(或平行)。所以我猜你必须一直保持并行

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42510907

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档