【【自动驾驶】车辆运动学模型】

【自动驾驶】车辆运动学模型

在这里插入图片描述

1. 引言

在自动驾驶技术的发展过程中,对车辆运动的理解和建模至关重要。车辆运动学模型用于描述车辆的运动特性,尤其是在低速条件下,通过控制输入来预测车辆的未来状态。本文将详细介绍几种常见的车辆运动学模型,并提供Python和C++的代码实现。

好的,我们将详细推导并更新其他模型中的侧滑角 β \beta β。以下是每个模型的详细推导和代码实现。

2. 以车辆重心为中心的单车模型

2.1 模型介绍

在自动驾驶领域,通常采用单车模型来简化实际车辆的复杂性。此模型将车辆视为具有两个转动轴的刚体,即前轮和后轮,每个轴上的左右轮合并为一个轮子来考虑。模型的关键参数包括:
在这里插入图片描述

  • 车辆重心:点C,代表车辆的质量中心。
  • 前后轮距离 l f l_f lf l r l_r lr 分别从前轮中心到重心的距离和从后轮中心到重心的距离。
  • 轴距 L = l f + l r L = l_f + l_r L=lf+lr
  • 速度 V V V,表示车辆重心的速度。
  • 滑移角 β \beta β,车辆速度矢量与车辆纵向轴之间的夹角。
  • 航向角 ψ \psi ψ,车身与X轴的夹角。
  • 转向角 δ f \delta_f δf δ r \delta_r δr,分别表示前轮和后轮的转向角。对于大多数车辆, δ r \delta_r δr 可以设置为0。

2.2 滑移角 β \beta β 的推导

  1. 几何关系
    • 假设车辆的重心位于点C,前轮中心位于点F,后轮中心位于点R。
    • 前轮的转向角 δ f \delta_f δf 导致前轮的行驶方向与车辆纵向轴之间有一个夹角。
    • 后轮的转向角 δ r \delta_r δr 导致后轮的行驶方向与车辆纵向轴之间有一个夹角。

2.2 航向角 ψ \psi ψ推导过程:

  • 如上图所示,在三角形 O C A O C A OCA中,根据正弦定理,有:
    s i n ( δ f − β ) l f = s i n ( π 2 − δ f ) R (1) \frac{sin(\delta_f - \beta)}{l_f} = \frac{sin(\frac{\pi}{2} - \delta_f)}{R} \tag{1} lfsin(δfβ)=Rsin(2πδf)(1)
  • 在三角形 O B C OBC OBC中,根据正弦定理,有:
    s i n ( β − δ r ) l r = s i n ( π 2 + δ r ) R (2) \frac{sin(\beta - \delta_r)}{l_r} = \frac{sin(\frac{\pi}{2}+ \delta_r)}{R} \tag{2} lrsin(βδr)=Rsin(2π+δr)(2)
  • 化简:
    s i n ( δ f ) c o s ( β ) − s i n ( β ) c o s ( δ f ) l f = c o s ( δ f ) R (3) \frac{sin(\delta_f)cos(\beta) - sin(\beta)cos(\delta_f)}{l_f} = \frac{cos(\delta_f)}{R} \tag{3} lfsin(δf)cos(β)sin(β)cos(δf)=Rcos(δf)(3)
    s i n ( β ) c o s ( δ r ) − s i n ( δ r ) c o s ( β ) l r = c o s ( δ r ) R (4) \frac{sin(\beta)cos(\delta_r) - sin(\delta_r)cos(\beta)}{l_r} = \frac{cos(\delta_r)}{R} \tag{4} lrsin(β)cos(δr)sin(δr)cos(β)=Rcos(δr)(4)
    等式(3)两边同乘以 l f c o s ( δ f ) \frac{l_f}{cos(\delta_f)} cos(δf)lf:
    s i n ( δ f ) c o s ( β ) − s i n ( β ) c o s ( δ f ) = l f c o s ( δ f ) R (5) sin(\delta_f)cos(\beta) - sin(\beta)cos(\delta_f) = \frac{l_fcos(\delta_f)}{R} \tag{5} sin(δf)cos(β)sin(β)cos(δf)=Rlfcos(δf)(5)
    同理等式(4)两边同乘以 l r l_r lr:
    s i n ( β ) c o s ( δ r ) − s i n ( δ r ) c o s ( β ) = l r c o s ( δ r ) R (6) sin(\beta)cos(\delta_r) - sin(\delta_r)cos(\beta) = \frac{l_rcos(\delta_r)}{R} \tag{6} sin(β)cos(δr)sin(δr)cos(β)=Rlrcos(δr)(6)
    (5)(6)两式相加:
    c o s ( β ) ( s i n ( δ f ) − s i n ( δ r ) ) = l r + l f R (7) cos(\beta)(sin(\delta_f)-sin(\delta_r)) = \frac{l_r +l_f}{R} \tag{7} cos(β)(sin(δf)sin(δr))=Rlr+lf(7)
    根据条件假设,低速环境下,车辆行驶路径的转弯半径变化缓慢,此时我们可以假设车辆偏航角的变化率 ψ ˙ \dot{\psi} ψ˙
    可近似等于车辆的角速度 ω \omega ω。根据车辆角速度 ω = V R \omega = \frac{V}{R} ω=RV得:
    ψ ˙ = ω = V R (8) \dot{\psi} = \omega = \frac{V}{R} \tag{8} ψ˙=ω=RV(8)
    将(8)带入(7)中,消除 R R R得:
    ψ ˙ = V c o s ( β ) l r + l f ( t a n ( δ f ) − t a n ( δ r ) ) (9) \dot{\psi}= \frac{Vcos(\beta)}{l_r +l_f}(tan(\delta_f)-tan(\delta_r)) \tag{9} ψ˙=lr+lfVcos(β)(tan(δf)tan(δr))(9)

2.3 滑移角 β \beta β

  • 滑移角 β \beta β 定义为车辆速度矢量与车辆纵向轴之间的夹角。
  • 当车辆转弯时,前轮和后轮的速度矢量会有所不同,导致车辆重心的速度矢量与车辆纵向轴之间有一个夹角。
    等式(5)两边同乘以 l r l_r lr:
    l r ( t a n ( δ f ) c o s ( β ) − s i n ( β ) − l f l r R ​ (10) l_r(tan(\delta_f)cos(\beta)-sin(\beta) - \frac{l_f l_r}{R} \tag{10}​ lr(tan(δf)cos(β)sin(β)Rlflr(10)
    同理等式(6)两边同乘以 l f l_f lf:
    l f ( s i n ( β ) − t a n ( δ r ) c o s ( β ) ) = l f l r R (11) l_f(sin(\beta) - tan(\delta_r)cos(\beta)) = \frac{l_f l_r}{R} \tag{11} lf(sin(β)tan(δr)cos(β))=Rlflr(11)
    (10)(11)两式相等:
    c o s ( β ) ( l r t a n ( δ f ) + l f t a n ( δ r ) ) = s i n ( β ) ( l r + l f ) (12) cos(\beta)(l_r tan(\delta_f) + l_f tan(\delta_r)) =sin(\beta)(l_r +l_f) \tag{12} cos(β)(lrtan(δf)+lftan(δr))=sin(β)(lr+lf)(12)
    合并 t a n ( β ) tan(\beta) tan(β):
    t a n ( β ) = l r t a n ( δ f ) + l f t a n ( δ r ) l r + l f (13) tan(\beta) = \frac{l_r tan(\delta_f) + l_f tan(\delta_r)}{l_r +l_f} \tag{13} tan(β)=lr+lflrtan(δf)+lftan(δr)(13)

车辆运动学模型
{ x ˙ = V cos ⁡ ( ψ + β ) y ˙ = V sin ⁡ ( ψ + β ) ψ ˙ = V c o s ( β ) l r + l f ( t a n ( δ f ) − t a n ( δ r ) ) (14) \left\{ \begin{array}{l} \dot{x} = V \cos (\psi + \beta) \\ \dot{y} = V \sin (\psi + \beta) \\ \dot{\psi} = \frac{Vcos(\beta)}{l_r +l_f}(tan(\delta_f)-tan(\delta_r)) \end{array} \right. \tag{14} x˙=Vcos(ψ+β)y˙=Vsin(ψ+β)ψ˙=lr+lfVcos(β)(tan(δf)tan(δr))(14)
其中
β = a r c t a n ( l r t a n ( δ f ) + l f t a n ( δ r ) l r + l f ) (15) \beta = arctan(\frac{l_r tan(\delta_f) + l_f tan(\delta_r)}{l_r +l_f} \tag{15}) β=arctan(lr+lflrtan(δf)+lftan(δr))(15)

2.3 Python代码实现

import mathclass KinematicModel_1:def __init__(self, x, y, psi, v, l_r, l_f, dt):self.x = xself.y = yself.psi = psiself.v = vself.l_f = l_fself.l_r = l_rself.dt = dtdef update_state(self, a, delta_f, delta_r=0):# 计算滑移角 βbeta = math.atan2(self.l_r * math.sin(delta_f) + self.l_f * math.sin(delta_r),self.l_r * math.cos(delta_f) + self.l_f * math.cos(delta_r))# 更新状态self.x += self.v * math.cos(self.psi + beta) * self.dtself.y += self.v * math.sin(self.psi + beta) * self.dtself.psi += (self.v / (self.l_f + self.l_r)) * (math.tan(delta_f) - math.tan(delta_r)) * math.cos(beta) * self.dtself.v += a * self.dtdef get_state(self):return self.x, self.y, self.psi, self.v

2.4 C++代码实现

#include <cmath>
#include <iostream>class KinematicModel_1 {
public:KinematicModel_1(double x, double y, double psi, double v, double l_r, double l_f, double dt) :x(x), y(y), psi(psi), v(v), l_f(l_f), l_r(l_r), dt(dt) {}void update_state(double a, double delta_f, double delta_r = 0) {// 计算滑移角 βdouble beta = atan2(l_r * sin(delta_f) + l_f * sin(delta_r),l_r  + l_f );// 更新状态x += v * cos(psi + beta) * dt;y += v * sin(psi + beta) * dt;psi += (v / (l_f + l_r)) * (tan(delta_f) - tan(delta_r)) * cos(beta) * dt;v += a * dt;}void get_state() const {std::cout << "x: " << x << ", y: " << y << ", psi: " << psi << ", v: " << v << std::endl;}private:double x, y, psi, v, l_f, l_r, dt;
};

3. 前轮驱动的单车模型

3.1 模型介绍

当仅考虑前轮转向时,模型可以简化为:
在这里插入图片描述
车辆运动学模型
{ x ˙ = V cos ⁡ ( ψ + β ) y ˙ = V sin ⁡ ( ψ + β ) ψ ˙ = V sin ⁡ β l r (16) \left\{ \begin{array}{l} \dot{x} = V \cos (\psi + \beta) \\ \dot{y} = V \sin (\psi + \beta) \\ \dot{\psi} = \frac{V \sin \beta}{l_r} \end{array} \right. \tag{16} x˙=Vcos(ψ+β)y˙=Vsin(ψ+β)ψ˙=lrVsinβ(16)

其中 δ r = 0 \delta_r = 0 δr=0,滑移角 β \beta β 可以表示为:
β = arctan ⁡ ( l r l f + l r tan ⁡ ( δ f ) ) (17) \beta = \arctan \left( \frac{l_r}{l_f + l_r} \tan(\delta_f) \right) \tag{17} β=arctan(lf+lrlrtan(δf))(17)

3.3 Python代码实现

class KinematicModel_2:def __init__(self, x, y, psi, v, l_r, l_f, dt):self.x = xself.y = yself.psi = psiself.v = vself.l_f = l_fself.l_r = l_rself.dt = dtdef update_state(self, a, delta_f):# 计算滑移角 βbeta = math.atan((self.l_r / (self.l_f + self.l_r)) * math.tan(delta_f))# 更新状态self.x += self.v * math.cos(self.psi + beta) * self.dtself.y += self.v * math.sin(self.psi + beta) * self.dtself.psi += (self.v * math.sin(beta) / self.l_r) * self.dtself.v += a * self.dtdef get_state(self):return self.x, self.y, self.psi, self.v

3.4 C++代码实现

class KinematicModel_2 {
public:KinematicModel_2(double x, double y, double psi, double v, double l_r, double l_f, double dt) :x(x), y(y), psi(psi), v(v), l_f(l_f), l_r(l_r), dt(dt) {}void update_state(double a, double delta_f) {// 计算滑移角 βdouble beta = atan((l_r / (l_f + l_r)) * tan(delta_f));// 更新状态x += v * cos(psi + beta) * dt;y += v * sin(psi + beta) * dt;psi += (v * sin(beta) / l_r) * dt;v += a * dt;}void get_state() const {std::cout << "x: " << x << ", y: " << y << ", psi: " << psi << ", v: " << v << std::endl;}private:double x, y, psi, v, l_f, l_r, dt;
};

4. 以后轴中心为车辆中心的单车模型

4.1 模型介绍

当以车辆后轴中心为参考点时,模型可以进一步简化。假设后轮没有转向角( δ r = 0 \delta_r = 0 δr=0),模型可以表示为:
在这里插入图片描述

{ x ˙ = V cos ⁡ ( ψ ) y ˙ = V sin ⁡ ( ψ ) ψ ˙ = V L tan ⁡ δ f (18) \left\{ \begin{array}{l} \dot{x} = V \cos (\psi) \\ \dot{y} = V \sin (\psi) \\ \dot{\psi} = \frac{V}{L} \tan \delta_f \end{array} \right. \tag{18} x˙=Vcos(ψ)y˙=Vsin(ψ)ψ˙=LVtanδf(18)

其中, L L L 是轴距, δ f \delta_f δf 是前轮转向角。

  • 在这种模型中,滑移角 β \beta β 可以近似为0,因为重心位于后轴中心,且后轮没有转向角。
  • 因此,滑移角 β \beta β 可以表示为:
    β ≈ 0 \beta \approx 0 β0

4.3 Python代码实现

class KinematicModel_3:def __init__(self, x, y, psi, v, L, dt):self.x = xself.y = yself.psi = psiself.v = vself.L = Lself.dt = dtdef update_state(self, a, delta_f):# 更新状态self.x += self.v * math.cos(self.psi) * self.dtself.y += self.v * math.sin(self.psi) * self.dtself.psi += (self.v / self.L) * math.tan(delta_f) * self.dtself.v += a * self.dtdef get_state(self):return self.x, self.y, self.psi, self.v

4.4 C++代码实现

class KinematicModel_3 {
public:KinematicModel_3(double x, double y, double psi, double v, double L, double dt) :x(x), y(y), psi(psi), v(v), L(L), dt(dt) {}void update_state(double a, double delta_f) {// 更新状态x += v * cos(psi) * dt;y += v * sin(psi) * dt;psi += (v / L) * tan(delta_f) * dt;v += a * dt;}void get_state() const {std::cout << "x: " << x << ", y: " << y << ", psi: " << psi << ", v: " << v << std::endl;}private:double x, y, psi, v, L, dt;
};

5. 阿克曼转向几何

5.1 模型介绍

阿克曼转向几何(Ackerman Turning Geometry)是一种为了解决交通工具转弯时,内外转向轮路径指向的圆心不同的几何学。在单车模型中,将转向时左、右前轮偏角假设为同一角度 δ f \delta_f δf,虽然通常两个角度大致相等,但实际并不是,通常情况下,内侧轮胎转角更大。
在这里插入图片描述

  • 外轮转角 δ o = L R + l w 2 \delta_o = \frac{L}{R + \frac{l_w}{2}} δo=R+2lwL
  • 内轮转角 δ i = L R − l w 2 \delta_i = \frac{L}{R - \frac{l_w}{2}} δi=R2lwL

其中, l w l_w lw 为轮距, R R R 为轨迹半径。

5.2 滑移角 β \beta β 的推导

  1. 几何关系

    • 车辆转弯时,内外轮的轨迹半径不同。
    • 外轮的轨迹半径为 R + l w 2 R + \frac{l_w}{2} R+2lw
    • 内轮的轨迹半径为 R − l w 2 R - \frac{l_w}{2} R2lw
  2. 转向角计算

    • 外轮转角 δ o \delta_o δo 可以表示为:
      δ o = L R + l w 2 (19) \delta_o = \frac{L}{R + \frac{l_w}{2}} \tag{19} δo=R+2lwL(19)
    • 内轮转角 δ i \delta_i δi 可以表示为:
      δ i = L R − l w 2 (20) \delta_i = \frac{L}{R - \frac{l_w}{2}} \tag{20} δi=R2lwL(20)
  3. 滑移角 β \beta β 的计算

    • 在阿克曼转向几何中,滑移角 β \beta β 主要取决于车辆的几何参数和转向角。
    • 通常情况下,滑移角 β \beta β 可以近似为0,因为阿克曼转向几何设计使得内外轮的转向角能够很好地匹配车辆的转弯半径。

5.3 Python代码实现

class AckermannSteering:def __init__(self, L, l_w, R):self.L = Lself.l_w = l_wself.R = Rdef calculate_steering_angles(self, delta_f):delta_o = self.L / (self.R + self.l_w / 2)delta_i = self.L / (self.R - self.l_w / 2)return delta_o, delta_i

5.4 C++代码实现

#include <cmath>
#include <iostream>class AckermannSteering {
public:AckermannSteering(double L, double l_w, double R) : L(L), l_w(l_w), R(R) {}std::pair<double, double> calculate_steering_angles(double delta_f) {double delta_o = L / (R + l_w / 2);double delta_i = L / (R - l_w / 2);return {delta_o, delta_i};}private:double L, l_w, R;
};

6. 总结

本文详细介绍了车辆运动学模型的基本概念,并提供了Python和C++的实现代码。通过这些模型,我们可以更好地理解车辆在不同控制输入下的运动行为,这对于开发自动驾驶系统的控制策略至关重要。希望本文能够为自动驾驶领域的研究者和开发者提供有价值的参考。

参考资料

  • 【自动驾驶】车辆运动学模型 - CSDN博客

以上就是《【自动驾驶】车辆运动学模型》的全部内容,希望能够帮助到你。如果你有任何疑问或者建议,欢迎留言交流!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/57701.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【功能安全】 独立于环境的安全要素SEooC

目录 01 SEooC定义 02 SEooC开发步骤 03 SEooC开发示例 04 SEooC问答 01 SEooC定义 缩写: SEooC:Safety Element out of Context独立于环境的安全要素 SEooC出处:GB/T34590.10—2022,第9章节 SEooC与相关项什么关系? SEooC可以是系统、系统组合、子系统、软件组件、…

EXCELL中如何两条线画入一张图中,标记坐标轴标题?

1&#xff0c;打开excel&#xff0c;左击选中两列&#xff0c; 2&#xff0c;菜单栏>“插入”>”二维折线图”选中一个 3&#xff0c;选中出现的两条线中的一条右击>最下一行&#xff0c;“设置数据系列格式” 4&#xff0c;右测“系列选项中”>点击“次坐标轴” 5…

龙蟠科技业绩压力显著:资产负债率持续攀升,产能利用率也不乐观

《港湾商业观察》施子夫 黄懿 去年十月至今两度递表后&#xff0c;10月17日&#xff0c;江苏龙蟠科技股份有限公司(以下简称&#xff0c;龙蟠科技&#xff1b;603906.SH&#xff0c;02465.HK)通过港交所主板上市聆讯。 很快&#xff0c;龙蟠科技发布公告称&#xff0c;公司全…

低代码开发详解与行业应用指南

低代码开发简化软件开发&#xff0c;助力企业数字化转型。ZohoCreator应用于零售、制造、教育、IT、医疗、房地产等行业&#xff0c;提升效率、降低成本。灵活定价&#xff0c;支持免费试用&#xff0c;助力企业快速实现数字化。 一、低代码开发是什么&#xff1f; 低代码开发…

栈(数据结构)——C语言

1 概念与结构 栈&#xff1a;⼀种特殊的线性表&#xff0c;其只允许在固定的⼀端进⾏插⼊和删除元素操作。进⾏数据插⼊和删除操作 的⼀端称为栈顶&#xff0c;另⼀端称为栈底。栈中的数据元素遵守后进先出LIFO&#xff08;Last In First Out&#xff09;的原则。 压栈&#…

如何动态改变本地的ip

在当今数字化时代&#xff0c;网络连接已成为我们日常生活和工作中不可或缺的一部分。无论是出于隐私保护、突破地域限制&#xff0c;还是为了测试和优化网络应用&#xff0c;动态改变本地IP地址的需求日益增多。本文将详细介绍如何安全、有效地实现这一目标&#xff0c;旨在帮…

Linux巡检利器xsos的安装和使用

一、 一般项目基本完成的时候&#xff0c;后期运维工作的重点就是及时的&#xff0c;合理的频率巡检了&#xff0c;巡检的目的主要是及时发现各种各样的问题 那么&#xff0c;自己编写shell脚本是大部分人的第一选择&#xff0c;这里有个比较麻烦的地方&#xff0c;shell脚本…

Aatrox-Bert-VITS2部署指南

一、模型介绍 【AI 剑魔 ①】在线语音合成&#xff08;Bert-Vits2&#xff09;&#xff0c;将输入文字转化成暗裔剑魔亚托克斯音色的音频输出。 作者&#xff1a;Xz 乔希 https://space.bilibili.com/5859321 声音归属&#xff1a;Riot Games《英雄联盟》暗裔剑魔亚托克斯 …

分布式IO模拟量模块:多领域应用的高效能解决方案

分布式IO模拟量模块是分布式IO系统中的重要组件&#xff0c;用于实现现场设备或过程的模拟量信号的采集、监视和控制。该模块通常与现场总线耦合器配合使用&#xff0c;能够接收来自现场设备的模拟量信号&#xff08;如电流、电压等&#xff09;&#xff0c;并将其转换为数字信…

YOLOv11在目标检测中的应用及其与PaddleDetection的对比

近年来&#xff0c;目标检测模型在诸如自动驾驶、安全监控等应用中发挥了关键作用。众多模型中&#xff0c;YOLO&#xff08;You Only Look Once&#xff09; 系列凭借其在速度和精度之间的良好平衡脱颖而出。YOLOv11 作为该系列的最新版本之一&#xff0c;凭借其多项创新&…

FPGA秋招必看基础 | FPGA设计流程

关注&#x1f446; 望森FPGA &#x1f446; 查看更多FPGA资讯 这是望森的第 30 期分享 作者 | 望森 来源 | 望森FPGA 目录 摘要 1 明确需求、设计系统架构 2 RTL 输入 3 功能仿真&#xff08;Behavioral Simulation&#xff09; 4 综合&#xff08;Synthesis&#xff09;…

Qgis 开发初级 《符号化》

本章主要简介Qgis 的矢量图层的符号化。Qgis的符号化具体作用于每个图层&#xff0c;图层通过具体的方法设置符号化样式。 1、QgsFeatureRenderer Qgs的符号化类主要是QgsFeatureRenderer&#xff0c;这是一个抽象类&#xff0c;它派生出了许多类&#xff0c;如下所示。常用的…

self-supervised learning(BERT和GPT)

1芝麻街与NLP模型 我們接下來要講的主題呢叫做Self-Supervised Learning&#xff0c;在講self-supervised learning之前呢&#xff0c;就不能不介紹一下芝麻街&#xff0c;為什麼呢因為不知道為什麼self-supervised learning的模型都是以芝麻街的人物命名。 因為Bert是一個非常…

使用Bert+BiLSTM+CRF训练 NER任务

使用的数据集在这里E-Commercial NER Dataset / 电商NER数据集_数据集-阿里云天池 针对面向电商的命名实体识别研究&#xff0c;我们通过爬取搜集了淘宝商品文本的标题&#xff0c;并标注了4大类&#xff0c;9小类的实体类别。具体类型及实体数量如下 针对面向电商的命名实体…

iptables防火墙总结

iptables防火墙总结 四表五链 P 默认策略&#xff0c;-p 协议 出口防火墙&#xff0c;默认配置&#xff0c;使用Forword&#xff0c;采用-P 例题&#xff1a;设置iptables防火墙默认不允许任何数据包进入&#xff0c;相应命令是&#xff1a; Iptables -t filter -P FORWORD -j…

【数据结构】五分钟自测主干知识(十一)

上回&#xff08;半年前&#xff09;我们讲了二叉树&#xff0c;如果我们要找到二叉树某序遍历下的前驱和后继&#xff0c;我们需要对其作动态遍历求得&#xff0c;比较费时&#xff1b;或者给每个结点增加两个指针域prior和next&#xff0c;但比较费空间。 有没有既能省时间&…

【K8S系列】Kubernetes Service 基础知识 详细介绍

在 Kubernetes 中&#xff0c;Service 是一种抽象的资源&#xff0c;用于定义一组 Pod 的访问策略。它为这些 Pod 提供了一个稳定的访问入口&#xff0c;解决了 Pod 可能频繁变化的问题。本文将详细介绍 Kubernetes Service 的类型、功能、使用场景、DNS 和负载均衡等方面。 1.…

Openlayers高级交互(2/20):清除所有图层的有效方法

Openlayers项目中,经常会放置很多的图层,在业务操作的时候,会做出删除所有图层的行为。这里面给出了一个详细的方法,能够有效的解决 清除所有图层的问题。 效果图 专栏名称内容介绍Openlayers基础实战 (72篇)专栏提供73篇文章,为小白群体提供基础知识及示例演示,能解决…

[软件工程]—桥接(Brige)模式与伪码推导

桥接&#xff08;Brige&#xff09;模式与伪码推导 1.基本概念 1.1 动机 由于某些类型的固有的实现逻辑&#xff0c;使它们具有两个变化的维度&#xff0c;乃至多个维度的变化。如何应对这种“多维度的变化”&#xff1f;如何利用面向对象技术是的类型可以轻松的沿着两个乃至…

022_matrix_dancing_in_Matlab中求解一个超简单的矩阵问题

矩阵体操 首先&#xff0c;可以复习一下向量、矩阵和索引的基础知识。 向量约定矩阵约定矩阵索引 一般而言&#xff0c;我们利用进行计算大概就是以下的步骤&#xff1a; #mermaid-svg-UovF0Uldf5XxntJi {font-family:"trebuchet ms",verdana,arial,sans-serif;fo…