
Matlab
gophae
这个作者很懒,什么都没留下…
展开
-
polynomial plot
In this section, we provide a function that supports generate a quintic polynomial.xs = 3;vxs = 0.3;axs = 0;xe = 0;vxe = 0;axe = 0;T = 8;[a0, a1, a2, a3, a4,a5] = quintic_polynomial(xs, vxs, axs, xe, vxe, axe,T);figurefor t = 0:0.1:T d = a0原创 2020-05-19 14:04:24 · 388 阅读 · 0 评论 -
对于原始轨迹的噪声过滤方法和曲率计算方法
对于地图采样获得的轨迹,通过cross entropy的方式,进行噪声过滤。曲率计算采用三点式计算圆半径获得。clcclear allload('D:\ccs\test.mat')% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%use your own recorded map info%%%...原创 2020-03-04 20:41:56 · 2221 阅读 · 0 评论 -
LQR轨迹跟踪算法Python/Matlab算法实现_代码(2)
本文根据LQR轨迹跟踪算法Python/Matlab算法实现_LQRmatrix推导(2)使用代码实现,进行仿真:clcclear allKp = 1.0 ; dt =0.1 ;% [s]L = 2.9 ;% [m] wheel base of vehicleQ = eye(3);% Q(1,1) = 10;% Q(2,2) =20;% Q(3,3) = 5;% Q(4,4)...原创 2020-03-04 20:30:39 · 4171 阅读 · 17 评论 -
Matlab解析LQR与MPC的关系
mathworks社区中的这个资料还是值得一说的。openExample('mpc/mpccustomqp')我们从几个角度来解析两者关系,简单的说就是MPC是带了约束的LQR.下面我们从代码的角度解析这个问题:1, 定义被控系统:A = [1.1 2; 0 0.95];B = [0; 0.0787];C = [-1 1];D = 0;Ts = 1;sys = ss(A,B,...原创 2020-02-27 22:49:05 · 8023 阅读 · 3 评论 -
离散点曲率拟合
有噪声的离散点,计算曲率。首先用滤波法降噪,然后用三点法计算半径clcclear allload('D:\ccs\DaischTest\TraceC10.mat') spacelimit = 1; start =2; finish =1;x= PosLat(start : spacelimit:length(PosLat)-finish);y = PosLon(star...原创 2020-02-13 15:41:39 · 2563 阅读 · 1 评论 -
两种贝塞尔曲线选点方法的对比
%% clc clear all p0 = [ 0, 0]; p1 = [7,0]; p2= [14,0]; p3 = [21,4]; p4 = [27,4]; p5 = [35,4]; %生成五阶贝塞尔曲线的笛卡尔坐标系点位 i =1; for u =0: 0.01:1 p(i,:)= (1-u)^5*p0 + 5*(1-u)^4*u*p1 + 10*(1-u)^3...原创 2020-02-06 13:03:00 · 1039 阅读 · 0 评论 -
Matlab中的continue、break和return语句
Continue:经常用在for和while语句中,continue一旦被执行,就会终止当前循环,进行下一次循环。eg, 在for 循环中:clcclear allclose alli = 1;COND = 1;for i = 1:20 if mod(i,2)==0 continue else fprintf('the arr...原创 2020-01-06 16:54:01 · 82041 阅读 · 4 评论 -
在Frenet坐标系下的动态障碍物避障
本文介绍如何实现基于Frenet坐标系的动态障碍物避障。其中包括:cubic spline generationFrenet transformation to gloval coordnatessampling-based search methodBezier curvecost function formalizationlazy collision checkingpure...原创 2020-01-03 15:14:53 · 8512 阅读 · 40 评论 -
LQR轨迹跟踪算法Python/Matlab算法实现
Python:"""Path tracking simulation with LQR steering control and PID speed control.author Atsushi Sakai (@Atsushi_twi)"""import syssys.path.append("H:\Project\TrajectoryPlanningModelDesign\Codes...原创 2019-11-22 14:07:43 · 10366 阅读 · 6 评论 -
Bezier(贝塞尔)曲线(五阶)的轨迹规划在自动驾驶中的应用(六)
本文介绍贝塞尔五阶曲线最为curve smoother的使用,分析关于时间的一阶和二阶导数的连续性,以及曲率的连续性,并给出一个smoother的实例进行效果展示。clc clear all p0 = [ 0, 0]; p1 = [4 4*sqrt(3)]; p2= [5.5 5.5*sqrt(3)]; p3 = [8.5 5.5*sqrt(3)]; p4 = [ 10 4*sqr...原创 2019-11-20 14:02:56 · 5149 阅读 · 0 评论 -
自动驾驶:蛇形曲线跟踪(Stanley Model)
检测对生成出的期望轨迹的跟踪效果,期望轨迹为连续变道的蛇形轨迹:clcclear all load('D:\ccs\DaischTest\CurveCurve.mat')% load('D:\ccs\DaischTest\TraceC10.mat') spacelimit = 1; start =10; finish =1;x= PosLat(start : spacel...原创 2019-11-20 13:58:48 · 3509 阅读 · 0 评论 -
自动驾驶实测:贝塞尔曲线静态障碍物避障
clcclear all% load('D:\ccs\DaischTest\CurveCurve.mat')load('D:\ccs\DaischTest\TraceC10.mat') spacelimit = 1; start =10; finish =1;x= PosLat(start : spacelimit:length(PosLat)-finish);y = P...原创 2019-11-20 13:54:40 · 2553 阅读 · 0 评论 -
自动驾驶计算本车离期望轨迹距离的方法
推荐使用点到直线距离进行计算:首先找到离本车最近点,在取改点的前后点最为直线的端点,计算直线到本车的质点的距离:function [dist] = FindDistance (p1, p2, currentP) % find the distance between the current points to the curve lineA = p1(2)- p2(2);B = p2...原创 2019-11-20 13:48:28 · 851 阅读 · 0 评论 -
正北坐标系和车辆坐标系下的heading转换
正北坐标系由组合导航给出,以正北为0,顺时针为正。本车的heading与期望heading 之间的夹角,delta_heading 计算方法如下:function [delta_heading] = CalHeading(heading_desire, heading_current)index_store = 0;index_current = 0;index_store = floo...原创 2019-11-20 13:46:42 · 2449 阅读 · 0 评论 -
自动驾驶使用贝塞尔曲线进行静态障碍物避障测试
首先规划出reference line, 探测到障碍物后,进行贝塞尔曲线轨迹规划,绕开障碍物,给出新的reference line, 然后根据pure pursuit模型进行软件在环测试,pure pursuit部分参考之前的博文。clcclear allk = 0.1; % look forward gainLfc = 0.1; % look-ahead distanceglob...原创 2019-11-20 13:43:03 · 2273 阅读 · 0 评论 -
自动驾驶路径轨迹规划(三阶曲线spline)
对于给定的一连串waypoints我们需要对其进行平滑线处理,这里介绍一种三阶spline的平滑方法:call function:clcclear all% x = [-4 -2 0 2 4 6 10];% y = [1.2 0.6 0 1.5 3.8 5 3];x = [0,10,50,100,120];y = [0,50,100,150,200]; figure...原创 2019-11-20 13:38:28 · 3759 阅读 · 5 评论 -
Matlab如何实现建立ROS节点并进行实时通讯
首先我们需要两台机子,一台ubuntu系统,这里我们选用Xavier,另一台是我们的电脑,转配最新的Matlab2019b.Ubuntu中安装ROS Melodic.对于Matlab的配置,需要做如下操作:初始化matlab ros:setenv('ROS_MASTER_URI','http://192.168.1.101:11311') setenv('ROS_IP','192.168...原创 2019-11-19 18:42:31 · 3001 阅读 · 5 评论 -
Bezier(贝塞尔)曲线(五阶)的轨迹规划在自动驾驶中的应用(五)
提供动态轨迹的Bezier轨迹,计算cost minimization 后取cost最小值clc clear all p0 = [ 0, 0];% p1 = [7.5,7.5*4/30];% p2= [15,0];% p3 = [15,4];% p4 = [22.5,22.5*4/30];% p5 = [30,4];for i = 1:10 j =10;...原创 2019-11-19 11:46:24 · 3319 阅读 · 1 评论 -
Bezier(贝塞尔)曲线(三阶)的轨迹规划在自动驾驶中的应用(四)
提供动态轨迹的Bezier轨迹,计算cost minimization 后取cost最小值clc clear all p0 = [ 0, 0]; for i = 1:10 j =10; p3(i*j-9, 1 ) = 19+i; p3(i*j-8, 1 ) = 19+i; p3(i*j-7, 1 ) = 19+i; p3(i*j-6, 1 ) = ...原创 2019-11-19 11:39:02 · 2227 阅读 · 0 评论 -
Bezier(贝塞尔)曲线的轨迹规划在自动驾驶中的应用(三)
存储函数: BezierGenerationfunction p= BezierGeneration (xs,ys,xe,ye,Latoff) % x_start, and x_end means s and e% this function as you can see here, we generate a Bezier Curve in Frenet% Coordinate.% ...原创 2019-11-19 11:35:48 · 1914 阅读 · 0 评论 -
Matlab画图颜色设置
注意:MATLAB中调色板色彩强度[0,1],0代表最暗,1代表最亮。 常用颜色的RGB值 -------------------------------------------- 颜色 R G B &...原创 2019-11-18 11:17:39 · 12881 阅读 · 0 评论 -
全局路径规划A star的Matlab实现
本文接上文,最后展示A* 算法的Matlab实现。相关代码函数如下:声明: 课程代码部分来自我上过的课,HKUST ELEC 5660 Roboticsmain 函数, 主函数,用于执行主程序:在本函数中,我们设定了搜索路径的起点终点,调用两个可视化函数 obstacle_map, 和visualize_map, 第一个函数生成随机障碍物,另一个讲障碍物和计算出来的path进行可视化。cl...原创 2019-11-14 09:09:43 · 3218 阅读 · 3 评论 -
三次样条曲线拟合及Matlab/Python实现
对于形如y = a + bx + c * x^2 + d * x^3 的三次spline曲线拟合的数学原理,我就不多说了。我接了一个图给大家看看:数值计算的伪代码如下:书名是:numerical_methods_for_engineers_for_engineers_chapra_canale_6th_editionspline interpolation 在18.6章,想了解如...原创 2019-10-29 20:45:05 · 14108 阅读 · 9 评论 -
Stanley轨迹跟踪算法Python/Matlab算法实现
本文针对Python/Matlab实现Stanley进行介绍:Stanley 的数学几何原理来自:https://blog.youkuaiyun.com/gophae/article/details/100012763Python代码来自:https://github.com/gameinskysky/PythonRobotics/blob/master/PathTracking/stanley_co...原创 2019-10-27 11:40:07 · 9584 阅读 · 5 评论 -
Pure Pursuit纯跟踪算法Python/Matlab算法实现
本文的python源代码来自:https://github.com/gameinskysky/PythonRobotics/blob/master/PathTracking/pure_pursuit/pure_pursuit.py我们对纯跟踪算法进行一次仿真,python 我已经改过,如下:import numpy as npimport mathimport matplotlib.py...原创 2019-10-26 21:05:57 · 11585 阅读 · 22 评论 -
ROS MATLAB 启动
>> setenv('ROS_MASTER_URI','http://192.168.43.20:11311')>> setenv('ROS_IP','192.168.43.3')>> rosinit('192.168.43.20')原创 2019-10-25 15:33:13 · 548 阅读 · 1 评论 -
LQR 离散与连续问题
matlab的dare 函数在解决解离散的里卡多方程的问题:数学原理就不多解释了,但是需要注意的是,care, dare, 一个是解决连续方程,一个是解决离散方程,区别和lqr, 和lqrd是一样的。】举个例子:有这样一个连续系统,需要计算最优的LQR 的 增益 K :Matlab 代码仿真如下:%%clcclear allformat shortA = [0 -1;0 0 ...原创 2019-10-25 15:31:33 · 4801 阅读 · 7 评论 -
ROS 与 Matlab/Simulink联合仿真测试(1)
Matlab 提供了很多实例, 我们通过以下这个实例来解释以下在线仿真的方式:open_system(‘robotROSConnectToRobotExample’);在MATLAB中打开这个实例:打开是这个样子的,为了更好地演示如何来做在线仿真,我们把上面的部分拿出去,放在另一个新的simulink里面。上面的部分就是在模拟发送机器人的控制命令,通过publish模块发出。下面的部分则...原创 2019-10-23 12:04:22 · 3482 阅读 · 0 评论 -
动态调节PID参数
本文根据https://blog.youkuaiyun.com/AdamShan/article/details/78458325中提到的的动态调节PID参数的方法使用Matlab simulink进行了一次仿真,值得申明的是这个方法不是上述博文作者的原创,有知道原创出处的朋友评论一下,我好感谢。下面看simulink模型:整个结构很简单:这里我随便设置了一个二阶延迟系统中间部分就是PID这...原创 2019-10-09 20:36:26 · 5314 阅读 · 0 评论 -
线性二次型最优控制器LQR设计原理以及matlab实现
这次我们分以下几部分来讲解LQR及其应用:线性二次型最优控制器概述连续系统线性二次型最优控制离散系统线性二次型最优控制线性二次型Gauss最优控制应用经典控制理论设计控制系统,能够解决很多简单、确定系统的实际设计问题。但是对于诸多新型而复杂的控制系统,例如多输入多输出系统与阶次较高的系统,往往得不到满意的结果。这时就需要有在状态空间模型下建立的最优控制策略。最优控制是现代控制理论的核心...原创 2019-10-03 11:33:51 · 30297 阅读 · 16 评论