• 无人车驾驶地面避障(Matlab代码实现)


     👨‍🎓个人主页:研学社的博客 

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

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

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

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

    目录

    💥1 概述

    📚2 运行结果

    🎉3 参考文献

    🌈4 Matlab代码实现


    💥1 概述

    无人车又称人工智能无人驾驶汽车,其主要是利用人工智能技术,在车内没有驾驶员的情况下,自动控制车辆行驶方向、速度和姿态,使汽车能够安全顺利到达目标点,从而实现无人自动驾驶。无人车概念最早是在20世纪七十年代由美国人提出,由于当时人工智能技术还不够成熟,在后来较长一段时间内没有取得实质性的进展。当前常用的路径规划方法主要为基于遗传算法的避障路径规划,以及基于栅格法的避障路径规划,这两种方法存在一个共性问题,即规划的无人车避障路径拐点较多,路径平滑性较低,无法满足无人车避障路径规划的实际需求。
     

    📚2 运行结果

    部分代码:

    clear all;
    close all;

    x = 0:0.2:0.2*(31-1);
    y = 0:0.2:0.2*(100-1);

    % goal point

    % threat obstacle

    for iter = 1 : 31
        for iter_j = 1 : 99
            cost(iter,iter_j) = (0.5*cos(x(iter))+0.6)*exp(-(y(iter_j)/y(iter_j+1)));
        end
    end

    figure(2)
    surf(y(1:99),x,cost);
    % shading interp;
    xlabel('distance (meter)')
    ylabel('\theta (rad)')
    zlabel('cost')

    % agent

    for iter = 1 : 31
        for iter_j = 1 : 99
            cost(iter,iter_j) = 0.3*(0.5*cos(x(iter))+0.6)*exp(-(y(iter_j)));
        end
    end

    figure(3)
    surf(y(1:99),x,cost);
    % shading interp;
    xlabel('distance (meter)')
    ylabel('\theta (rad)')
    zlabel('cost')

    % swarm


    for iter = 1 : 31
        for iter_j = 1 : 99
            cost_goal(iter,iter_j) = 1-exp(-(y(iter_j))/y(iter_j+1));
        end
    end

    x = 0:0.2:0.2*(31-1);
    y = 0:0.2:0.2*(100-1);

    figure(4)
    surf(y(1:99),x,cost_goal);
    % shading interp;
    xlabel('distance (meter)')
    ylabel('\theta (radian)')
    zlabel('cost')
     

    clear all;
    close all;

    x = 0:0.2:0.2*(31-1);
    y = 0:0.2:0.2*(100-1);

    % goal point

    % threat obstacle

    for iter = 1 : 31
        for iter_j = 1 : 99
            cost(iter,iter_j) = (0.5*cos(x(iter))+0.6)*exp(-(y(iter_j)/y(iter_j+1)));
        end
    end

    figure(2)
    surf(y(1:99),x,cost);
    % shading interp;
    xlabel('distance (meter)')
    ylabel('\theta (rad)')
    zlabel('cost')

    % agent

    for iter = 1 : 31
        for iter_j = 1 : 99
            cost(iter,iter_j) = 0.3*(0.5*cos(x(iter))+0.6)*exp(-(y(iter_j)));
        end
    end

    figure(3)
    surf(y(1:99),x,cost);
    % shading interp;
    xlabel('distance (meter)')
    ylabel('\theta (rad)')
    zlabel('cost')

    % swarm


    for iter = 1 : 31
        for iter_j = 1 : 99
            cost_goal(iter,iter_j) = 1-exp(-(y(iter_j))/y(iter_j+1));
        end
    end

    x = 0:0.2:0.2*(31-1);
    y = 0:0.2:0.2*(100-1);

    figure(4)
    surf(y(1:99),x,cost_goal);
    % shading interp;
    xlabel('distance (meter)')
    ylabel('\theta (radian)')
    zlabel('cost')
     

     

    🎉3 参考文献

    部分理论来源于网络,如有侵权请联系删除。

    [1]蒋正荣,沈奔豪.基于动态人工势场法的无人车避障路径规划方法[J].自动化应用,2022(07):1-3+7.DOI:10.19769/j.zdhy.2022.07.001.

    [2]方朋朋,杨家富,施杨洋,于凌宇.基于梯度下降法和改进人工势场法的无人车避障方法[J].制造业自动化,2018,40(11):81-84.

    🌈4 Matlab代码实现

  • 相关阅读:
    C++中的注释作用
    React组件进阶--render-props,render props模式的使用步骤,children代替render属性,传递props
    寒假训练——第二周(DFS)
    Pytorch API
    如何在多版本C#工程上添加程序集
    4年测试在岗,薪资却被春招来的年轻人超过了,结果真的不会陪你演戏~
    Ubuntu磁盘扩展容量
    Azure 机器学习 - 使用受保护工作区时的网络流量流
    提取coco格式json信息生成图片mask
    如何自动生成一本epub电子书
  • 原文地址:https://blog.csdn.net/weixin_46039719/article/details/127954816