
自动驾驶
文章平均质量分 83
gophae
这个作者很懒,什么都没留下…
展开
-
Hybrid A*论文解析(5)
本文解析论文Enhanced path smoothing based on conjugate gradient descent for firefighting robots in petrochemical complexes,文中依然在解决混合A* 加上梯度方法轨迹平滑的问题,但是对于CMU的方案中的轨迹优化部分,做出了很多改进建议。这里着重说一下这部分,A* 部分基本沿用了CMU方案,也就没什么要说的了。对于曲线的前提条件是:1,曲线的曲率要小于0.2,也就是曲率半径要比5m大。2,曲线要原创 2020-11-12 22:34:29 · 5261 阅读 · 3 评论 -
无人车制胜关键:Apollo决策系统全面剖析
2019年3月26日,AI前线社群邀请到了百度美研资深软件工程师 Yifei Jiang ,带来 《Apollo 决策技术分享(决策系统的设计和无人驾驶的实现)》 的内容分享。大家好!感谢大家来参与这次Apollo决策技术的分享,我是来自Apollo美研团队的工程师Yifei。在这次的分享中,我们会介绍Apollo是如何设计和实现无人驾驶的决策系统,包括以下5个部分:参考路径交规决策路径决策速度决策决策场景决策模块相当于无人驾驶系统的大脑,保障无人车的行车安全,同时也要理解和遵守交通规则原创 2020-10-23 13:20:12 · 5195 阅读 · 0 评论 -
Hybrid A*论文解析(4)
本文解析Autonomous driving in semi-structured environments: Mapping and planning,这篇文章其实是Hybrid A*论文解析(1)中的作者的文章的加强版,这个是上一篇文章基础上两年后作者发布的混合A*泊车方案。这里解析的内容就以两者的区别进行解析。1,variable resolution search通过叠加障碍物距离和voronoi边距两项值来判定向前拓展的弧长。这个方案的好处在于首先在宽阔区域能够拓展更远的距离,而在狭窄通道上拓原创 2020-07-26 20:33:55 · 3139 阅读 · 2 评论 -
Hybrid A*论文解析(3)
本文解析论文Autonomous Parking using Optimization-Based Collision Avoidance。文章来自uc berkley,这个方案也是非常主流的混合A*泊车方案中的一种,百度也借鉴了这个方案来设计自己的在U型弯和停车场泊车中的功能。文中的方案也是已经开源到了作者GitHub,但这个是julia写的,感觉只有我数学系的老师金炳义才会用Julia,我港科数学系不是盖的好吧, 给数学系丢脸了。Julia这个我是真的没接触过,好在可以直接去读apollo的c++源码如原创 2020-07-17 19:20:46 · 3503 阅读 · 0 评论 -
Hybrid A*论文解析(2)
本文解析Application of Hybrid A* to an Autonomous Mobile Robot for Path Planning in Unstructured Outdoor Environments文章是mathworks的混合A* planner唯二的参考文献之一。另一篇是上一个论文解析Hybrid A*论文解析(1)。而这篇文章里面提供的一系列工程中对混合A*的优化,由于没时间进行实现并不清楚方案是否有用,毕竟这里面提到的优化方案都是我没见过的非常规方案,等实现后更新本文。原创 2020-07-14 22:03:34 · 2143 阅读 · 1 评论 -
Hybrid A*论文解析(1)
本文是对Practical Search Techniques in Path Planning for Autonomous Driving的解析。本文使用混合A方案结合共轭梯度法解决停车场泊车,U形弯掉头等场景的车辆规划问题。基本思路上:首先使用混合A规划出用车车辆泊车的带有前进后退的粗路径(我们以停车场泊车为例进行讲解)。这样的粗路径仅仅是局部最优的。第二部,在这个基础上,使用共轭梯度法进行收敛,大概率下可以获得全局最优解。最后这个路径对于车辆也不是最优的,因为任然有可能存在方向突变,然后再用一次原创 2020-07-14 18:51:15 · 6645 阅读 · 1 评论 -
自动泊车算法中混合A*粗路径的MATLAB实现
这里使用Matlab的navigation toolbox实现简单的混合A*粗路径。Load the cost values of cells in the vehicle costmap of a parking lot.load parkingLotCostVal.matCreate a binaryOccupancyMap with cost values.map = binaryOccupancyMap(costVal);Create a stateValidator object原创 2020-07-10 15:01:17 · 7233 阅读 · 2 评论 -
DWA泊车算法的实现
本文接DWA动态窗口法的原理及应用提供了基于DWA算法的仿真实现。但是DWA的弊端时很明显的,他对heading的实现是一个软约束,并不能够很好的在终点达到期望的heading.这个问题在对终点heading很敏感的泊车功能中是非常大的。通过修改泊车点的期望heading以及修改对应cost function中的weight,读者可以进行研究。% -------------------------------------------------------------------------%% Fi原创 2020-07-02 15:45:35 · 2401 阅读 · 0 评论 -
LQR轨迹跟踪算法Python/Matlab算法实现_LQRmatrix推导(2)
本文提供了另一种LQR状态空间矩阵的推导方式:原创 2020-02-27 16:14:33 · 3181 阅读 · 0 评论 -
LQR轨迹跟踪算法Python/Matlab算法实现2
这里对上一篇LQR轨迹跟踪算法Python/Matlab算法实现进行勘误:clcclear allKp = 1.0 ; dt = 0.1 ;% [s]L = 2.9 ;% [m] wheel base of vehicleQ = eye(4);% Q(1,1) = 10;% Q(2,2) =20;% Q(3,3) = 5;% Q(4,4) = 10;%%%%%%%%%% ...原创 2020-02-19 20:59:43 · 4879 阅读 · 8 评论 -
在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 评论 -
自动驾驶中的滞后碰撞检测(lazy-collision-checking)
本文我介绍一下我发明的在自动驾驶中使用的滞后碰撞检测法。滞后碰撞检测的基本原理可以参考我的论文:Dynamic Motion Planning Framework for Autonomous Driving in Urban Environments核心思想就是把碰撞检测脱离开来,不再放在cost function里面,通常来说,很多人都会将碰撞检测作为cost function 中的一项,...原创 2019-12-31 16:57:37 · 2353 阅读 · 4 评论 -
On-Line Trajectory Generation in Robotic Systems/OTG 在线轨迹规划算法
OTG 在线轨迹规划算法原创 2019-12-24 16:52:04 · 1934 阅读 · 0 评论 -
自动驾驶使用贝塞尔曲线进行动态障碍物避障测试
本文介绍如果使用以state lattice planner为基础的曲线生成和动态障碍物规避的方法。我们的曲线将position profile 和 velocity profile进行了分离。位置的优化用曲线生成和cost function minimization的方法,纵向的速度规划采用ACC控制器。 主要采用我的论文:Optimization of Adaptive Cruise Con...原创 2019-12-23 11:39:10 · 8596 阅读 · 8 评论 -
LQR轨迹跟踪算法Python/Matlab算法实现_LQRmatrix推导
对于文章 LQR轨迹跟踪算法Python/Matlab算法实现中的LQR推导的问题,我简单写了一下手稿,不高兴做成公式了:原创 2019-12-09 15:15:31 · 5128 阅读 · 15 评论 -
全局路径规划:图搜索算法介绍6(A star)Matlab算法实现
本文接:全局路径规划:图搜索算法介绍2(A star)https://blog.youkuaiyun.com/gophae/article/details/103061702% Used for Motion Planning for Mobile Robots% Thanks to HKUST ELEC 5660 % This is YunchengJIANG from HKUSTclose al...原创 2019-12-04 23:51:55 · 2346 阅读 · 6 评论 -
全局路径规划:图搜索算法介绍5(概率路图probalistic road map)
to be updated原创 2019-11-25 00:13:26 · 2108 阅读 · 0 评论 -
全局路径规划:图搜索算法介绍4(RRT/RRT*)
本节介绍RRT/RRT*的算法:RRT的基本原理是:我们首先初始化我们的起点,接下来随机撒点,选出一个x_rand, 在x_near 和 x_rand之间选择一个x_new, 再在原有的已经存在的x中找到离这个点最近的点将这两个点连接起来,同时这个最近的点也会作为x_new的父节点。RRT算法的伪代码如下:对照着图,再看一次:首先我们随机生成一个点,x_rand然后再tree上面...原创 2019-11-25 00:00:48 · 18808 阅读 · 16 评论 -
全局路径规划:图搜索算法介绍3(A stars tie breaker)
本节介绍A算法中的打破路径对称性的几种方法,在工程实践中有一定的参考意义。根据上图,我们举一个简单的例子,可以看到,同样的A算法,我们在采用了不用的h启发函数后,搜索的效率是不同的,第二个A*中,我们对h进行了一定的放大,发现搜索区域缩减了很多,搜索效率提高。值得注意的是,虽然我们的启发函数已经不符合我们之前讲的要求:h<=h*, 但是,工程中,由于障碍物的存在,这个真实的h是远大于h...原创 2019-11-23 18:24:23 · 2791 阅读 · 0 评论 -
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 评论 -
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 评论 -
全局路径规划:图搜索算法介绍1(BFS/DFS)
对于全局路径规划的设计,我们先要了解什么是图搜索,在此之前,要先知道什么是图:可以看到,图有很多种,有无向图,有向图,节点之间还可以有不同的weight, 用于表述从节点与节点直接迁移的代价。而图搜索算法则是把我们的搜索对象抽象成state space gragh 来处理。基本的理论无外乎用树的理论对图进行搜索,当找到终点后在回溯这一分支,最后获得从起点到终点的路径,而可以优化的地方就是...原创 2019-11-14 09:36:41 · 5031 阅读 · 2 评论 -
全局路径规划A star的Matlab实现
本文接上文,最后展示A* 算法的Matlab实现。相关代码函数如下:声明: 课程代码部分来自我上过的课,HKUST ELEC 5660 Roboticsmain 函数, 主函数,用于执行主程序:在本函数中,我们设定了搜索路径的起点终点,调用两个可视化函数 obstacle_map, 和visualize_map, 第一个函数生成随机障碍物,另一个讲障碍物和计算出来的path进行可视化。cl...原创 2019-11-14 09:09:43 · 3218 阅读 · 3 评论 -
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 评论 -
ROS 与 Matlab/Simulink联合仿真测试(1)
Matlab 提供了很多实例, 我们通过以下这个实例来解释以下在线仿真的方式:open_system(‘robotROSConnectToRobotExample’);在MATLAB中打开这个实例:打开是这个样子的,为了更好地演示如何来做在线仿真,我们把上面的部分拿出去,放在另一个新的simulink里面。上面的部分就是在模拟发送机器人的控制命令,通过publish模块发出。下面的部分则...原创 2019-10-23 12:04:22 · 3482 阅读 · 0 评论 -
如何远程访问Jetson Xavier/TX2
我们可以通过远程访问程序,在Windows端对Xavier ubuntu ros 系统进行调试首先要下载软件MobaXterm https://mobaxterm.mobatek.net/ 任意版本都可以。然后将电脑连接到和被控机器同样的网络下。然后打开Moba, 选择tool- network scanning我已经对机器固定了网段,搜索出我自己 mikepiao然后选择sessio...原创 2019-10-17 10:42:21 · 2161 阅读 · 0 评论 -
非线性回归的数学理论与方法(非线性最小二乘法)
本文介绍如何进行一般的非线性回归非线性回归的原理和线性回归是一样的:虽然有些非线性问题可以通过取对数或其他操作转化为线性问题,但是比如我们遇到了一个一一般性的非线性回归问题:我们就没办法很好的进行线性化,但是还是可以通过非线性回归的一般方法进行求解:首先做泰勒级数展开:这里,j是最初的猜想,initial guess, j+1是预测,delta_a = = a_j+1 - a_j, ...原创 2019-10-12 13:06:15 · 3830 阅读 · 2 评论 -
离散点求导的数学理论与方法
本文介绍如何对离散点进行求导。对于一个点的值(函数上)我们可以通过泰勒级数展开,对其进行近似:解出来一阶导数:主要,我们就是靠这个式子来计算多阶的导数,如果把二阶以后的项去掉,那么一阶导数就是:二阶导数就是:为了提高精度,我们可以留下更多的项数:比如留下二阶项:简化后:、总结一下:向前微分公式:(forward)向后微分公式:(backward)中间微分:(ce...原创 2019-10-12 12:49:58 · 30397 阅读 · 11 评论 -
Bezier(贝塞尔)曲线的轨迹规划在自动驾驶中的应用(二)
根据(一)中的理论前提,我们通过matlab进行一次仿真验证:clc clear all p0 = [ 0, 0]; p1 = [10,0.5]; p2= [20,3.5]; p3 = [30,4]; %设置控制点 i =1; for u =0: 0.01:1 p(i,:)= (1-u)^3*p0 + 3*(1-u)^2*u*p1 + 3*(1-u)*u^2*p2 + u^...原创 2019-10-12 12:38:59 · 3708 阅读 · 1 评论 -
Bezier(贝塞尔)曲线的轨迹规划在自动驾驶中的应用(一)
本文主要根据Path Generation and Tracking Based on a Bézier Curve for a Steering Rate Controller of Autonomous Vehicles文章,给出使用贝塞尔曲线进行自动驾驶规划模块的轨迹规划。对应的车辆横向动力学和运动学的内容见博文:自动驾驶横向运动学分析和非线性问题处理方法https://blog.csd...原创 2019-10-12 09:53:36 · 6471 阅读 · 2 评论