【基于全局路径生成最优路径】基于D* Lite和横向避障算法无人驾驶地面车辆的路径规划(Matlab代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥

🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。

⛳️座右铭:行百里者,半于九十。

📋📋📋本文目录如下:🎁🎁🎁

目录

💥1 概述

📚2 运行结果

🎉3 参考文献

🌈4 Matlab代码、文章


💥1 概述

文献来源:

摘要:本文研究了无人驾驶地面车辆的路径规划,基于全局路径生成最优路径。提出的算法使用了D* Lite和横向避障算法。该算法用于全局地图和障碍物搜索。通过自主车辆的速度提出了安全避障路径规划思路。根据速度进行安全障碍物避让。当前的自动驾驶车辆在驾驶研究中是安全可靠的。本文中,自动驾驶车辆作为一种逃避横向避障D* Lite算法的方式被使用。根据车辆速度进行光学横向避障控制,以便生成路径。该研究是UGV驾驶研究中的一部分,旨在探索并避开无限路径上的未知障碍物。

关键词:D* Lite  无人驾驶车辆  路径规划  全局路径  横向避让

📚2 运行结果

....... 

部分代码:

%% parameters for Adaptive waypoints repair method
n_Oper= 3; % number of moving directions
win_size=3*win; % the window size before probabilities are updated
n_win=2;  % none of the strategies improved the solutions in the m previous W windows, reinitialise
n_Ants=SwarmSize; % number of new solutions
Experience_Oper=ones(1, n_Oper);

ConvergenceData = ones(1, MaximumFEs+1)*10^5;    % best fitness found

TrialIndex=1;
current_eval=1; %%% fitness function evaluations counter
%previous_eval=0;
iter=0;

%% Start initialization in the archive (PopSize, Dimension)
xant=InitPos';
fitx=SingleCostFunction(xant', TModelInfor, AgentIndex);

%% Sort the population based on fitx
[fitx, indecies ] = sort( fitx );
xant = xant( indecies, : );
ConvergenceData(1)=fitx(1);

%StandardDeviation=zeros(PopSize, Dimension);
NewAnt= zeros(n_Ants, Dimension);

NoImprove=0;
SolutionWeights=1/(q*SwarmSize*sqrt(2*pi))*exp(-0.5*(((1:SwarmSize)-1)/(q*SwarmSize)).^2);
Probability=SolutionWeights./sum(SolutionWeights);

t=SwarmSize:-1:1;                                                    
Pci=0.5+0.4*(exp(10*(t-1)/(SwarmSize-1))-1)/(exp(10)-1);

while current_eval<MaximumFEs
    if flag_agent==1
        xant(SwarmSize/2+1:end,:)=xmin'+rand(SwarmSize/2, Dimension).*(xmax'-xmin');

        pp=repair1(xant(SwarmSize/2+1:end,:)',TModelInfor,AgentIndex, pRepair, flag_uniform);
        xant(SwarmSize/2+1:end,:)=pp';
        fitx=SingleCostFunction(xant', TModelInfor,AgentIndex);
        [fitx, indecies ] = sort( fitx );
        xant = xant( indecies, : );
        eval_agent(AgentIndex)=current_eval+1;
        current_eval=current_eval+n_Ants;

        ConvergenceData(current_eval-n_Ants+1:current_eval)=fitx(1); 

        flag_agent=0;
    else
        iter=iter+1;

%% ---------------------Update individuals------------------------------
        if mod(iter,win_size)==1
            Prob_Oper=Experience_Oper/(sum(Experience_Oper)+realmin);
            Experience_Oper=ones(1, n_Oper);
        end

        % generate new population
        % Prob_Oper
        flag_moving=RouletteWheelSelection(Prob_Oper);
        flag_uniform=[0 flag_moving];
        old_fitx=fitx(1);
        ttemp=rand(SwarmSize,Dimension);
        flag=(ttemp>Pci')*1;

        for i=1:n_Ants

            [NewAnt(i,:), Nfitx(i)]= NewSolConst(TModelInfor, xant, SwarmSize,Dimension, Probability, flag,zeta, AgentIndex, pRepair, flag_uniform);

        end
%% ---------------------Evaluation----------------------------------------      

        allSwarm=[xant; NewAnt];
        allFitnessValue= [fitx Nfitx];

        % sort
        [allFitnessValue, SortIndex]=sort(allFitnessValue);
        allSwarm=allSwarm(SortIndex,:);

        current_eval=current_eval+n_Ants;
        ConvergenceData(current_eval-n_Ants+1:current_eval)=allFitnessValue(1); 

        % record the number without impovement
        if fitx(1)<=allFitnessValue(1)

🎉3 参考文献

文章中一些内容引自网络,会注明出处或引用为参考文献,难免有未尽之处,如有不妥,请随时联系删除。

[1] Jo S W , Park S M , Kim J H .Unmanned ground vehicle for driving based global path is lateral avoidance path planning[J].IEEE, 2014.DOI:10.1109/ICCAS.2014.6987823.

🌈4 Matlab代码、文章

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值