【二维路径规划】基于人工势场求解机器人路径规划问题附matlab代码

✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可私信。

🍎个人主页:Matlab科研工作室

🍊个人信条:格物致知。

更多Matlab仿真内容点击👇

智能优化算法       神经网络预测       雷达通信       无线传感器        电力系统

信号处理              图像处理               路径规划       元胞自动机        无人机 

⛄ 内容介绍

​移动机器人的路径规划是移动机器人研究领域中的一个热点问题。

编辑

编辑

编辑

编辑

⛄ 部分代码

function [route, plan_succeeded] = GradientPlanner(potential_field, start_coordinate, dest_coordinate, max_iteration)

[gx, gy] = gradient (-potential_field);

Size = size(potential_field);

[x, y] = meshgrid (1:Size(1), 1:Size(2));

%% 

figure;

skip = 5;

xidx = 1:skip:Size(2);

yidx = 1:skip:Size(1);

%q = quiver(x(yidx,xidx), y(yidx,xidx), gx(yidx,xidx), gy(yidx,xidx),1.2);

q = quiver(x(yidx,xidx), y(yidx,xidx), gx(yidx,xidx), gy(yidx,xidx),'k');

q.LineWidth = 1;

%% 梯度下降导航

route = [start_coordinate(1),start_coordinate(2)];

currunt_coordinate = start_coordinate;

plan_succeeded = 0;

for i = 2:max_iteration+1  %%max_iteration最大迭代次数

    if((currunt_coordinate(1)-dest_coordinate(1))^2 + (currunt_coordinate(2)-dest_coordinate(2))^2 > 1) 

        a = [gx(currunt_coordinate(2),currunt_coordinate(1));gy(currunt_coordinate(2),currunt_coordinate(1))];%没有到达终点

      

   

        step = a/norm(a);

        if(route((i-1),1)+step(1) >= 1 && route((i-1),1)+step(1) <= Size(1)...

           && route((i-1),2)+step(2) >= 1 && route((i-1),2)+step(2) <= Size(2))

            route(i,1) = route((i-1),1)+step(1);

            route(i,2) = route((i-1),2)+step(2);

        else

            plan_succeeded = 0;

            break;

        end

        currunt_coordinate = [round(route(i,1)),round(route(i,2))];

    else

        plan_succeeded = 1;

        break;

    end

end

hold on;

plot(start_coordinate(1), start_coordinate(2), 'g.', 'MarkerSize', 30)

plot(dest_coordinate(1), dest_coordinate(2), 'b.', 'MarkerSize', 30);

plot (route(:,1), route(:,2), 'r','LineWidth', 2);

title('梯度下降导航');

end

⛄ 运行结果

⛄ 参考文献

[1]李欣, 朱大奇. 基于人工势场法的自治水下机器人路径规划[J]. 上海海事大学学报, 2010, 31(2):5.

⛳️ 代码获取关注我

❤️部分理论引用网络文献,若有侵权联系博主删除

❤️ 关注我领取海量matlab电子书和数学建模资料

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

matlab科研助手

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值