无人驾驶技术系统
文章平均质量分 90
本专栏针对无人驾驶中的轨迹跟踪控制、轨迹生成与优化、路径规划、以及机器学习在无人驾驶领域的应用等技术进行详细介绍。
windSeS
消失一段时间。
展开
-
避障算法 - VO、RVO 以及 ORCA (RVO2)[转载]
然而在 RVO 中,A 把自己的速度只改变 1/2,也就是说,我们假设 A 和 B 想要错开,总共需要错开 10cm,VO 算法中 A 和 B 都会各自错开 10cm,而在 RVO 算法中 A 只错开一半,也就是 5cm,同时 A 假设 B 会错开另外一半,B 也是这么想的,因此两者不谋而合,第二帧的时候,两个人各自错开了一半,并且发现此时转回最佳速度依然是会碰撞的(因为每个人只转了一半嘛),因此有效避免了上述抖动的现象。说真的想破脑瓜也想不出个所以然,但是用几何来表现还是很清晰的。转载 2022-08-19 17:21:41 · 6832 阅读 · 2 评论 -
Frenet坐标系与Cartesian坐标系互转(三):应用示例
已知一个U-turn道路中心线的参数化曲线如下所示:{x(s)=−1.205e−05s5+0.0004733s4−0.0008037s3−0.09783s2−0.002081s+5y(s)=−5.383e−19s5+0.000294s4−0.009237s3+0.009687s2+0.9875s+0.0007563\left\{\begin{matrix}x(s)=&-1.205e-05 s^5 + 0.0004733 s^4 - 0.0008037 s^3 - 0.09783 s^2 - 0.0原创 2022-05-19 21:15:20 · 4216 阅读 · 22 评论 -
Frenet坐标系与Cartesian坐标系互转(二):Python代码函数实现
1D [x,y]→[s,d][x, y]\rightarrow[s, d][x,y]→[s,d]import numpy as npfrom math import *def cartesian_to_frenet1D(rs, rx, ry, rtheta, x, y): s_condition = np.zeros(1) d_condition = np.zeros(1) dx = x - rx dy = y - ry cos_theta_原创 2022-05-19 21:08:26 · 4790 阅读 · 12 评论 -
Frenet坐标系与Cartesian坐标系互转(一):公式推导
Frenet坐标系在无人驾驶领域被普遍使用,特别是在城市、高速等道路交通环境下无人驾驶的路径规划系统中。Frenet坐标系使用道路的中心线作为Base frame,使用参考线的切线向量和法线向量建立坐标系。相比笛卡尔坐标系,Frenet坐标系简化了路径规划问题。网上关于Frenet坐标系的博客或资料很多,此处不再赘述。本文先给出简单的转换公式推导过程,然后给出三对Frenet坐标系与Cartesian坐标系互转的python代码与使用示例方便自己查阅使用。详细推导参见博客Apollo项目坐标系研究。not.原创 2020-09-23 20:35:13 · 42547 阅读 · 54 评论 -
移动机器人轮式里程计
移动机器人灵魂三问:我在哪? 我要去哪里? 怎么去?其中,第一问对应机器人定位问题。定位问题可阐述为:移动机器人根据自身状态、传感器信息实时确定自己在世界(全局或局部)中的位置与姿态。 阿克曼转向的无人驾驶汽车的定位方案主要有:轮式里程计、视觉里程计、激光里程计、惯性导航模块(IMU+GPS)以及多传感器融合。轮式里程计是一种最简单,获取成本最低的方法。与其它定位方案一样,轮式里程计也需要传感器感知外部信息,只不过,轮式里程计采用的电机转速测量模块是一种成本非常低廉的传感器。本文对搭建智能小车系统过程.原创 2020-06-13 18:57:46 · 16556 阅读 · 21 评论 -
无人车系统(十一):轨迹跟踪模型预测控制(MPC)原理与python实现【40行代码】
前面介绍的PID,pure pursuit方法,Stanley方法都只是利用当前的系统误差来设计控制器。人们对这些控制器的设计过程中都利用了构建模型对无人车未来状态的估计(或者说明利用模型估计未来的运动趋势)。每个控制周期只选择一个目标路点作为跟踪对象,因此,我们也可以说明以上控制器只利用了模型进行向前一步预测。那么如果在更远的未来,参考轨迹变化不是那么平缓,并且有很多弯度小(急)的部分,那么只......原创 2019-12-20 15:49:08 · 46239 阅读 · 47 评论 -
无人车系统(十):c++与python非线性规(优)划(化)工具
系统的真实模型都是非线性,在实际模型构建或使用过程中,我们会对模型进行线性化。例如,我们根据已有的模型求解最优控制问题:让机器人根据当前的状态输出最优的动作,从而使成本函数取最小值。常见的优化库都需要我们求目标函数与约速函数的导数、雅可比矩阵以及海森矩阵。如果模型简单,姑且可以手动求解,模型一旦复杂些(例如大型的非线性模型,约束函数为微分方程or差分方程形式),非常容易出错。虽然也有一些库能够用......原创 2019-12-20 11:44:14 · 11464 阅读 · 17 评论 -
无人车系统(九):基于ROS与Gazebo的无人驾驶仿真环境——car_demo
在car_demo|无人车仿真环境全教程介绍了在系统:Ubuntu 14.04 indigo中安装配置car_demo。由于当时的电脑中的ubuntu与ros版本较低,我按照原教程的配置方法,安装Docker,nvidia-docker2,还有rocker。最终实现的是,让car_demo在独立的docker环境下运行,利用ROS的多机通信的机制配置(如何配置请参见car_demo|无人车仿真环......原创 2019-12-14 11:09:15 · 8729 阅读 · 17 评论 -
无人车系统(八):Udacity ‘s无人驾驶仿真环境(python与c++数据接口)
上一篇博客里介绍Udacity’s无人驾驶仿真环境的社区时,同时也说明了,Udacity‘s simulator是基于Unity 3D,针对每个任务专门构建的封闭式环境(里面场景已经固定)。想要利用这些封闭的仿真环境,首要的一个问题就是:怎么与之进行数据交换(通信)。因此,本篇将进一步介绍Udacity 's无人驾驶仿真环境的python与c++数据接口代码。系统:ubuntu 18.04 ......原创 2019-12-19 11:45:55 · 6937 阅读 · 30 评论 -
无人车系统(七):Udacity ‘s无人驾驶仿真环境(社区介绍)
本篇介绍一个无人驾驶仿真环境 ——Udacity。1. Udacity优达学城(Udacity)由Google无人车之父(也是《Probabilistic Robotics》一书的作者)Sebastian Thrun创立的一个“云端大学”,它让每个人都 有机会学习人工智能、数据科学、自动驾驶、自然语言处理、计算机视觉、AI量化投资、区块链、云计算等 。看看无人驾驶工程课程设置情况:都......原创 2019-12-14 10:21:39 · 6838 阅读 · 10 评论 -
无人车系统(六):轨迹跟踪Stanley方法
前面介绍的Pure Pursuit方法利用无人车的横向跟踪误差来设计控制器。在无人车轨迹跟踪任务中,除了横向跟踪误差外,是否还有其他信息有助于提高控制器的稳定性与有效性。本篇介绍的Stanely方法就结合横向跟踪误差eye_yey与航向角偏差eθe_{\theta}eθ来设计控制器。值得注意的是,Stanley计算横向跟踪误差与pure pursuit方法是有区别的,Pure pursuit......原创 2019-12-12 23:33:25 · 14194 阅读 · 5 评论 -
无人车系统(五):轨迹跟踪Pure Pursuit方法
今天介绍一种基于几何追踪的无人车轨迹跟踪方法——Pure Pursuit(纯跟踪)方法。1. 阿克曼转向几何模型在无人车系统(一):运动学模型及其线性化一文中,里面介绍无人车的运动学模型为阿克曼转向几何模型,并最终可简化为如下图所示的单车模型。精确描述单车模型中几何关系的核心公式如下:δ=arctan(LR)(1)\delta=arctan(\frac{L}{R}) \tag{1}δ......原创 2019-12-12 18:18:51 · 14385 阅读 · 15 评论 -
无人车系统(四):轨迹跟踪PID控制
本篇介绍如何利用PID控制实现无人车轨迹跟踪。1. 横向跟踪误差横向跟踪误差(cross track error, 简称CTE)为前轴中心点(rx,ry)(r_x, r_y)(rx,ry)到最近路径点(px,py)(p_x, p_y)(px,py)的距离,具体如下图所示。以上图为基础进行简略分析,如果参考轨迹点在无人车的左边θe∈[0,π]\theta_{e}\in [0, \......原创 2019-12-11 23:36:26 · 54761 阅读 · 52 评论 -
无人车系统(三):用python写一个简单的无人车仿真环境
仿真环境对于机器人研究来说太过重要,一个好的仿真环境能够逼真的模拟真实的场景、拥有高保真的物理引擎,能够比较真实的反映算法的性能。但是有时,我们有一个Idea,想马上实现,从而快速的验证这个idea的可行性,那么一款小巧、简洁的仿真环境可能更加合适。在得到验证有那么点意思后,再利用较真实的仿真环境验证,进一步,再放在实际环境中进行测试。一般来说,简单仿真环境——高保真仿真环境——真实环境,同一算...原创 2019-12-11 12:21:09 · 8386 阅读 · 12 评论 -
无人车系统(二):横向动力学模型
运动学模型只是在几何意义上描述了无人车的运动。实际情况中,无人车的运动受外界的因素(如:侧滑)影响较大。在高速动行时,这些外界扰动变得更加明显。为了构建更加精准的无人车模型,有必要考虑汽车的动力学特性。本篇主要介绍无人车动力学模型的建立过程阿克曼转向模型的动力学分析无人车动学习模型表征的是受力与速度、加速度以及横摆角之间的关系,如下图所示。{Fyfcosδ−Fxfsinδ+Fyr=...原创 2019-12-10 22:58:42 · 7072 阅读 · 3 评论 -
无人车系统(一):运动学模型及其线性化
相对无人机与机械臂来说,无人车系统的运动学模型非常简洁。尽管简洁,无人车的运动学模型也是非线性的。应用于具体控制算法时,有必要对模型进行变形或线性化...原创 2019-12-10 12:21:49 · 20843 阅读 · 10 评论