ReedShepp与Dubins path的matlab实现

数学理论 同时被 2 个专栏收录
27 篇文章 1 订阅
3 篇文章 1 订阅

RS和Dubins path网上都有很多解析,想了解深入的直接看原文是最好的:
RS 曲线原文
我在git上也找到了实现RS曲线的源码,已经放在我自己的仓库里了,有兴趣可以拉源码看看,毕竟dubins用的还真不多,所以没去找:本人git
这里用matlab自带的RS and Dubins connection 来展示一下这两种曲线的实现。真正在用的时候没有必要去做源码实现,大概了解清楚原理即可,毕竟无论你用什么语言,py, cpp, m, julia都有这两种曲线的库。直接调用即可。

- RS曲线

//Connect Poses Using ReedsShepp Connection Path
//Create a reedsSheppConnection object.
reedsConnObj = reedsSheppConnection;

//Define start and goal poses as [x y theta] vectors.
startPose = [0 0 0];
goalPose = [1 1 pi];

//Calculate a valid path segment to connect the poses.
[pathSegObj,pathCosts] = connect(reedsConnObj,startPose,goalPose);

//Show the generated path.
show(pathSegObj{1})
xlim('auto')
ylim('auto')

在这里插入图片描述

length = pathSegObj{1}.Length;
poses = interpolate(pathSegObj{1},0:0.1:length)

在这里插入图片描述

//add direction information to the poses matrix
MotionLength = pathSegObj{1}.MotionLengths;
Interpolate = pathSegObj{1}.interpolate;
MotionDirections = pathSegObj{1}.MotionDirections;

j = 1;
for i = 1: size(poses,1)
    poses(i,4) = MotionDirections(j);
    if poses(i,1)==Interpolate(j+1,1) && poses(i,2)==Interpolate(j+1,2)
        j = j + 1;
    end
end
poses

在这里插入图片描述

for i = 1: size(poses,1)
    if poses(i,4) == 1
        color  = '-b';
    else
        color = '-r';
    end
     quiver(poses(i,1),poses(i,2),cos(poses(i,3)),sin(poses(i,3)),0.3,color)
     hold on
end
   
Copyright 2019 The MathWorks, Inc.

在这里插入图片描述

- Dubins Path

dubConnObj = dubinsConnection;
startPose = [0 0 0];
goalPose = [1 1 pi];
[pathSegObj,pathCosts] = connect(dubConnObj,startPose,goalPose);
show(pathSegObj{1})

在这里插入图片描述

length = pathSegObj{1}.Length;
poses = interpolate(pathSegObj{1},0:0.2:length)
quiver(poses(:,1),poses(:,2),cos(poses(:,3)),sin(poses(:,3)),0.5)

在这里插入图片描述

  • 2
    点赞
  • 1
    评论
  • 10
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

相关推荐
©️2020 CSDN 皮肤主题: Age of Ai 设计师:meimeiellie 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值