码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 基于RRT算法的最优动力学路径规划(Matlab代码实现)


        目录

    💥1 概述

    📚2 运行结果

    🎉3 参考文献

    👨‍💻4 Matlab代码


    💥1 概述

    RRT是Steven M. LaValle和James J. Kuffner Jr.提出的一种通过随机构建Space Filling Tree实现对非凸高维空间快速搜索的算法。该算法可以很容易的处理包含障碍物和差分运动约束的场景,因而广泛的被应用在各种机器人的运动规划场景中。

    RRT 的一个弱点是难以在有狭窄通道的环境找到路径。因为狭窄通道面积小,被碰到的概率低,找到路径需要的时间要看运气了。下图展示的例子是 RRT 应对一个人为制作的很短的狭窄通道,有时RRT很快就找到了出路,有时则一直被困在障碍物里面。 

    📚2 运行结果

     

     

     

    🎉3 参考文献

    [1]樵永锋,王瀚鑫,周淑文,杨贵军.改进RRT算法的无人驾驶车辆路径规划研究[J/OL].机械设计与制造:1-8[2022-12-06].DOI:10.19356/j.cnki.1001-3997.20221103.046.

    👨‍💻4 Matlab代码

    主函数部分代码:


    clc
    clear all
    close all
    clf


    %% ----------- Simulation Setup -----------%

    simulation = Simulation;
    setSim(simulation, 0.2, 0, 200, 0.5);


    %% ----------- Environment Setup ------------%

    environment = Environment;
    setBound(environment,[0 200 0 200]);
    dispField(environment);

    %% ----------- Vehicle Setup ------------%

    vehicle = Vehicle;
    setTalos(vehicle);
    setInitialVehicleState(vehicle,[50 50 0.25*pi 0],[0 0 0 0],[0 0 0 0]);
    dispVehicle(vehicle);

    %% ------------ Look Ahead Point Setup --------------%

    control = Control;
    setLookAheadDistance(control,vehicle);
    setControlTalos(control);

    %% --------------- PID Setup ---------------%

    setPID(control,0.2,0.04,0);

    %% --------------- Algorithm Proceeding ---------------%
    % 
    % evaluateSim(simulation, environment, vehicle, control)


    %% ------------ RRT Test -------------%
    rrtPlanner = RRTPlanner;
    setRRT(rrtPlanner,vehicle) 
    TreeExpansion(rrtPlanner,environment,vehicle, control,simulation) 


    %% --------------- Result Plotting ----------------%

    % PlotVehicleTrajectory(vehicle);


    dt = simulation.deltaT;
    Speed = vehicle.hisSpeed;
    Vel = vehicle.hisVel(:,1:2);
    for i=1:length(vehicle.hisSpeed); VelCar(i) = norm(Vel(i,:));end
    VelCmd = control.hisRefVel;

    Time=0:dt:(length(vehicle.hisSpeed)-1)*dt;

    figure(2)
    plot(Time,VelCmd,Time,Speed);
    legend('VelCmd','Speed');xlabel('Time (sec)');ylabel('Speed (m/s)');


    % figure(3)
    % plot(Time,Speed,Time,VelCar);
    % legend('Speed','VelCar');xlabel('Time (sec)');ylabel('Speed (m/s)');


    % figure(3);plot(vehicle.hisPos(:,1),vehicle.hisPos(:,2),'r');axis([-100 100 -100 100])
    % figure(2);plot(Time,Vel,Time,VelCmd);legend('Vel','VelCmd');xlabel('Time (sec)');ylabel('Speed (m/s)');
    % figure(3);plot(Time,Vel,Time,Speed);legend('Vel','Speed');xlabel('Time (sec)');ylabel('Speed (m/s)');

  • 相关阅读:
    因合约代码Bug,约2.2亿元11539枚以太币被永久锁定
    【夜读】自我管理的8个小习惯,养成受用一生
    牛客多校2 - Link with Level Editor I(DP优化)
    大数据必学Java基础(九十):通过反射获取运行时类的完整结构
    【Jmeter】性能测试脚本开发——性能测试环境准备、Jmeter脚本编写和执行
    golang http客户端常用API:GET POST HEAD及自定义http客户端代码示例
    【编程题】【Scratch三级】2020.06 海底寻宝
    sql调优
    视觉slam十四讲学习笔记(四)相机与图像
    Linux.系统(CPU,磁盘,网络,内存,进程,文件句柄)检查
  • 原文地址:https://blog.csdn.net/weixin_66436111/article/details/128211379
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号