让研究生给你讲讲GPS越野车模运动控制
简 介: 针对参加大学生智能汽车竞赛同学询问GPS如何导航车模运行的问题,让研究生给出参赛队伍写一个简要说明文档。显然他没有能够把信息传递对象(参赛同学)搞明白,直接就按照学术论文格式进行阐述,显然这对于他来说是很方便,但对于听他讲思路的同学会带来一定的困难。这显示了学术交流与课程讲解在方法、任务、目标方面的差异。按照研究生的解释恐怕会把参赛同学们的热情给消磨殆尽了。
关键词
: GPS,智能车竞赛,研究生
§01 GPS导航
1.1 问题提出
卓老师,如何使用GPS导航,使得小车跑起来? 现在我一点思路都没有。
▲ 图2.1.1 GPS 控制车模运行
1.2 问题回答
关于你的问题,昨天我让一位研究生同学起草一个简单的描述文档,向一位没有任何思路的低年级同学讲清楚如何通过GPS对车模进行导航。结果呢? 他给我发送了如下的说明。 说实在的,如果你能够看明白,估计早就有了控制思路。
1.2.1 研究生给出的讲解
(1)问题描述
假设车模比赛路径由一组二维空间的点组成,表示为 P ∈ N × R 2 P \in N \times R^2 P∈N×R2 。路径点 x ⃗ d \vec x_d xd 和 x ⃗ d + 1 \vec x_{d + 1} xd+1 是路径中第𝑖和第 i + 1 i + 1 i+1 个航路点,它们连接成为航段 P ⃗ i \vec P_i Pi 。矢量 t ⃗ \vec t t 表示从航路点 x ⃗ d \vec x_d xd 指向 x ⃗ d + 1 \vec x_{d + 1} xd+1 的单位矢量; v d v_d vd 为航段 P ⃗ l \vec P_l Pl 上的期望速度; x ⃗ \vec x x 为无人车当前时刻位置(矢量); v ⃗ \vec v v 为无人车当前时刻速度(矢量)。
▲ 图2.1 车模运行模型
(2)问题求解
基于以上对问题的描述,车模跟踪控制器设计如下。
经分析可以得到如下关系式:
-
无人车当前位置与航段 P ⃗ i \vec P_i Pi 的侧向偏差: e ⃗ c t = [ ( x ⃗ − x ⃗ d ) ⋅ t ⃗ ] ⋅ t ⃗ − ( x ⃗ − x ⃗ d ) \vec e_{ct} = \left[ {\left( {\vec x - \vec x_d } \right) \cdot \vec t} \right] \cdot \vec t - \left( {\vec x - \vec x_d } \right) ect=[(x−xd)⋅t]⋅t−(x−xd)
-
无人车当前位置与航段 P ⃗ i \vec P_i Pi 的侧向偏差变化率, v ⃗ \vec v v 为当前速度,则有: e ⃗ c t ′ = ( v ⃗ ⋅ t ⃗ ) ⋅ t ⃗ − v ^ \vec e'_{ct} = \left( {\vec v \cdot \vec t} \right) \cdot \vec t - \hat v ect′=(v⋅t)⋅t−v^
-
无人车当前速度与航段 P ⃗ i \vec P_i Pi 上期望速度的偏差,则有: e ⃗ a t ′ = ( v d − v ⃗ ⋅ t ⃗ ) ⋅ t ⃗ \vec e'_{at} = \left( {v_d - \vec v \cdot \vec t} \right) \cdot \vec t eat′=(vd−v⋅t)⋅t
基于上述误差信号,可以建立航路跟踪控制器算法,分别代表无人车与雁行路方向和垂直航路方向的期望速度。
u ⃗ a t = K a t p × e ⃗ a t ′ + K a t i × ∫ 0 t e ⃗ a t d t \vec u_{at} = K_{atp} \times \vec e'_{at} + K_{ati} \times \int_0^t {\vec e_{at} dt} uat=Katp×eat′+Kati×∫0teatdt u ⃗ c t = K c t p e ⃗ c t + K c t d e ⃗ c t ′ + K c t i ∫ 0 t e ⃗ c t ( t ) d t \vec u_{ct} = K_{ctp} \vec e_{ct} + K_{ctd} \vec e'_{ct} + K_{cti} \int_0^t {\vec e_{ct} \left( t \right)dt} uct=Kctpect+Kctdect′+Kcti∫0tect(t)dt
所以无人车的控制率为 u ⃗ = u ⃗ a t + u ⃗ c t \vec u = \vec u_{at} + \vec u_{ct} u=uat+uct 。将其写成幅值相角形式,即 u ⃗ = u v ∠ ψ \vec u = u_v \angle \psi u=uv∠ψ ,其中 u v u_v uv 和 u ψ u_\psi uψ 分别代表了无人车的期望速度和期望航向,分别用电机和舵机的PID控制实现即可。
若判断无人车是否从航段 P ⃗ → P ⃗ l + 1 \vec P \to \vec P_{l + 1} P→Pl+1 ,可通过判断无人车是否越过航路点 x ⃗ d + 1 \vec x_{d + 1} xd+1 位置的法向矢量来实现。即 ( x ⃗ − x ⃗ d + 1 ) ⋅ t ⃗ > 0 \left( {\vec x - \vec x_{d + 1} } \right) \cdot \vec t > 0 (x−xd+1)⋅t>0 时,可以认为无人车越过航路点 x ⃗ d + 1 \vec x_{d + 1} xd+1 。一旦完成航段 P ⃗ l \vec P_l Pl ,控制器中的积分器要重置,以避免新航段上侧向、纵向误差积分被上一个航段干扰。当然,如果两个相邻航段的转角比较小(即航路曲度小),积分器也可以不重置。
也别怪这位研究生同学,他是按照研究论文的学术节奏来写的说明资料。不应该给咱们智能车竞赛入门同学看的。
1.2.2 建议学习思路
建议你按照以下方式对你关心的GPS导航问题找到思路。
(1)第一步:读懂规则要求
根据 第十七届全国大学智能汽车竞赛竞速比赛规则 对于室外极速越野组要求能够了解。
(2)第二步:知道GPS能够得到什么信息?
根据测试双频GNSS定位导航模块知道GPS中可以得到什么信息。
(3)第三步:了解车模导航一般原理
可以观看生动有趣 自动驾驶汽车的简单控制原理【PID控制】 视频了解车模导航最基本过程和方法。然后自己考虑一下,如何从GPS所给定的信息中获得控制所需要的路径偏差信息。
▲ 图2.2.2 GPS 控制车模沿着草地上的圆环运行
(4)第四步:动手实践
通过观察 第17届 极速越野组 逐飞演示车模 任务演示 视频中的演示,自己可以先动手按照初步的想法在自己的车模中实现一下,先可以慢慢的跑起来。
通过初步测试之后,然后再继续往深入思考,除了GPS之外,如何利用车载上的IMU(惯性测量单元)所提供的角速度、加速度对车模进行更加细致的控制,进一步提高车模运行速度和稳定性。
完事开头难,加油吧。
▲ 图2.2.3 GPS控制车模在操场上运行
※ 总 结 ※
针对参加大学生智能汽车竞赛同学询问GPS如何导航车模运行的问题,让研究生给出参赛队伍写一个简要说明文档。显然他没有能够把信息传递对象(参赛同学)搞明白,直接就按照学术论文格式进行阐述,显然这对于他来说是很方便,但对于听他讲思路的同学会带来一定的困难。
这显示了学术交流与课程讲解在方法、任务、目标方面的差异。按照研究生的解释恐怕会把参赛同学们的热情给消磨殆尽了。
■ 相关文献链接:
● 相关图表链接:
文章来源: zhuoqing.blog.csdn.net,作者:卓晴,版权归原作者所有,如需转载,请联系作者。
原文链接:zhuoqing.blog.csdn.net/article/details/123753524
- 点赞
- 收藏
- 关注作者
评论(0)