ASAM OpenDRIVE V1.7协议超详解(一)
文章目录
- 前言
- 一、仿真场景的构成
- 二、openDRIVE框架
- 三、g_additionalData
- 四、openDRIVE-header
- 五、openDRIVE-road
- 1、Road总拓扑结构
- 2、Road-link介绍
- 1)link的拓扑结构
- 2)link链接示例
- 3)link前继后继
- 4)道路link规则
- 3、road-type介绍
- 1)type的拓扑结构
- 4、road-elevation介绍
- 1) elevation类型
- 2)Elevation拓扑图
- 3)标高/超高计算
- 4)横向轮廓计算
- 5、road-surface介绍
- 1)surface的拓扑结构
- 6、road-lane介绍
- 1)lane的拓扑结构
- 2)车道分组
- 3)车道部分
- 4)车道偏移
- 5)车道链接
- 6)车道属性
- A、车道属性-拓扑结构
- B、车道属性-车道宽度
- C、车道属性-车道高度
- 7)车道类型
- 8)车道限速
- 8)车道标记
前言
本文内容引用ASAM官方OpenDrive V1.7介绍
ASAM是“Automotive Software and Systems Modeling”的缩写,是一个汽车行业标准化组织,旨在制定和维护与汽车软件和系统相关的标准。OpenDRIVE是一种用于虚拟仿真场景的开放标准,旨在描述道路网络和场景的详细信息,是仿真场景中的静态组成部分,以支持自动驾驶和驾驶辅助系统的开发和测试。
点击下载OpenDRIVE官方文档及案例
一、仿真场景的构成
ASAM OpenDRIVE定义了静态路网格式(.xodr),ASAM OpenCRG,可以为路网添加路面描述(.crg)。 ASAM OpenDRIVE和ASAM OpenCRG仅包含静态内容。要添加动态内容,需要ASAM OpenSCENARIO(.xosc)。 结合所有三个标准文件,就可以组成标准的仿真场景。

二、openDRIVE框架
1、ASAM OpenDRIVE框架组成主要为header、road、controller、junction、junctionGroup、station,主要由6个element组成,6个Element及其子Element可选择性关联g_additionalData(附加数据)。

2、openDRIVE中的坐标系

三、g_additionalData
1、g_additionalData附加数据做为可选的选项,Element可以自定义是否关联g_additionalData节点;g_additionalData节点用于向OpenDRIVE道路网络描述中添加自定义信息或额外的数据,其拓扑结构如下图所示;

2、g_additionalData中的include,允许将外部文件包含在ASAM OpenDRIVE文件中, 比如对外部的文件的引用可以放在include元素中。
3、g_additionalData中的userdata可以用于在OpenDRIVE道路网络描述中添加任意自定义信息,以满足特定需求或添加额外的详细信息。通常,userdata的内容是用户根据其特定应用场景定义的。
4、g_additionalData中的dataQuality,原始数据或集成在ASAM OpenDRIVE中的外部来源的数据可能具有不同的质量。 可以在ASAM OpenDRIVE中描述外部数据的质量和准确性。dataQuality的error可以描述外部数据(如GPS数据)的绝对误差和相对误差范围(以 [m] 为单位)。dataQuality的rawData描述一些基本元数据包含有关ASAM OpenDRIVE中包含的原始数据的信息,内容比较多,详细格式请看我上传的资源文档。
XML片段
<OpenDRIVE><road><lanes><laneSection><left><lane><g_additionalData><!-- 附加数据 --><key>myKey</key><value>myValue</value></g_additionalData></lane></left></laneSection></lanes></road>
</OpenDRIVE>
四、openDRIVE-header
1、OpenDRIVE中的header一般定义:版本信息、描述信息、创建者信息、日期时间戳、坐标信息等等,其拓扑结构如下图所示;

XML片段
<?xml version="1.0" encoding="UTF-8"?>
<OpenDRIVE><header><revMajor>1</revMajor><revMinor>4</revMinor><name>Example Road</name><version>1.0</version><date>2023-11-12</date><north>0.0</north><south>0.0</south><east>0.0</east><west>0.0</west><!-- 其他头部信息 --></header><!-- 其他道路信息 -->
</OpenDRIVE>
五、openDRIVE-road
1、Road总拓扑结构

2、Road-link介绍
road节点中的link主要是用于描述两个不同的道路部分之间的过渡和连接关系;
1)link的拓扑结构

XML片段
<OpenDRIVE><!-- 头部信息 --><road name="Road 1" id="1" length="100.0"><!-- 道路属性 --><link><predecessor elementType="road" elementId="2" elementDir="-1" elementS="0.0" contactPoint="end"/><successor elementType="road" elementId="3" elementDir="1" elementS="0.0" contactPoint="start"/></link><!-- 其他道路元素 --></road><!-- 其他道路信息 --></OpenDRIVE>
2)link链接示例
显示了禁止、允许和推荐的道路连接场景。 重要的是,要连接的道路的车道和参考线与其前继或后继道路有直接的联系。 应避免重叠或跳跃,但如果参考线连接正确,则不禁止重叠或跳跃。

3)link前继后继
link的元素predecessor(前继)和successor(后继)表示的时道路之间的相对关闭,如road1之前没有道路,因此没有前继;road1之后有road2说明road1有后继road2;

4)道路link规则
下述这种链接方式也是被允许的


3、road-type介绍
1)type的拓扑结构

<OpenDRIVE><!-- 头部信息 --><road name="Road 1" id="1" length="100.0"><planView><!-- 道路几何形状信息 --></planView><lanes><!-- 道路车道信息 --></lanes><objects><!-- 道路对象信息 --></objects><roadType s="0.0"><type type="urban"><name>Urban Road</name><priority>2</priority><speed max="50.0" unit="km/h"/><country>China</country></type></roadType><!-- 其他道路元素 --></road><!-- 其他道路信息 --></OpenDRIVE>
4、road-elevation介绍
1) elevation类型
A、Road Elevation(标高)指的是沿道路参考线的海拔,即s方向的海拔;
B、Su[er Elevation(超高)指的是道路侧向剖面,垂直于道路参考线,且与地面存在夹角(类似于车辆的roll侧倾角),即t方向的海拔。
C、Road Shape(形状)一些横向道路形状过于复杂,无法仅用超高来描述。 形状以更详细的方式描述参考线上给定点处道路横截面的海拔。 这意味着,在一个 s 坐标处可能存在多个具有不同 t 值的形状定义,从而描述道路的弯曲形状。

2)Elevation拓扑图

XML片段
<road name="Road 1" id="1" length="100.0"><road-elevationprofile><elevation s="0.0" a="0.0" b="0.0" c="0.0" d="0.0"/><elevation s="50.0" a="0.0" b="0.0" c="0.0" d="0.0"/></road-elevationprofile><road-lateralprofile><superelevation s="0.0" a="0.0" b="0.0" c="0.0" d="0.0"/><crossfall s="0.0" a="0.0" b="0.0" c="0.0" d="0.0"/></road-lateralprofile><road-shape><shape s="0.0" x="0.0" y="0.0"/><shape s="50.0" x="10.0" y="5.0"/></road-shape>
</road>
3)标高/超高计算
道路标高、超高使用以下三阶多项式函数计算:elev(ds) = a + b*ds + c*ds² + d*ds³
| 参数名 | 描述 |
|---|---|
| elev | 指定位置的标高/超高 |
| a, b, c, d | 多项式系数 |
| ds | 是新标高/超高元素的起点与给定位置之间沿参考线的距离 |
道路标高/超高的绝对位置计算:s = sstart + ds
| 参数名 | 描述 |
|---|---|
| s | 是参考线坐标系中的绝对位置 |
| sstart | 是元素在参考线坐标系中的起始位置 |
4)横向轮廓计算
在下图中显示了如何计算两个横向剖面之间的高度信息。sR1的侧剖面有5个多项式定义,而sR2的侧剖面有3个多项式定义。要计算两个侧面轮廓之间的点,下图所示的公式在这两个轮廓之间进行线性插值。

横向轮廓的形状使用以下多项式函数计算:hShape (ds)= a + b*dt + c*dt² + d*dt³
| 参数名 | 描述 |
|---|---|
| hShape | 是给定位置上参考平面上方的高度 |
| a, b, c, d | 是系数 |
| dt | 是形状元素的起点与给定位置之间垂直于参考线的距离 |
形状值的绝对位置计算如下:t = tstart + dt
| 参数名 | 描述 |
|---|---|
| t | 是参考线坐标系中的绝对位置 |
| a, b, c, d | 是元素在参考线坐标系中的起始位置 |
| tstart | 是元素在参考线坐标系中的起始位置 |
5、road-surface介绍
1)surface的拓扑结构

XML片段
<road name="Road 1" id="1" length="100.0"><road-surface><friction s="0.0" coefficient="0.8"/><color s="0.0" r="255" g="255" b="255"/></road-surface>
</road>
因为suface涉及CRG相关内容,后续再另开分支讲述清楚吧。
6、road-lane介绍
1)lane的拓扑结构

XML片段
<road name="Road 1" id="1" length="100.0"><road-lane><laneSection s="0.0"><lane id="1" type="driving"><width sOffset="0.0" a="3.5"/><road-mark sOffset="0.0" type="solid" color="standard"/><speed sOffset="0.0" max="60.0" unit="km/h"/><access restriction="no"/><height sOffset="0.0" inner="3.8" outer="4.0"/><rule priority="1" yield="true"/><material surface="asphalt" friction="0.8"/><visibility sOffset="0.0" forward="100.0" back="50.0"/><border left="true" right="true"/><predecessor id="2" contactPoint="end"/><successor id="4" contactPoint="start"/><link elementId="laneLink1"/><userData><property name="laneType" value="driving"/></userData></lane><lane id="2" type="driving"><!-- 其他元素和属性 --></lane></laneSection></road-lane>
</road>
2)车道分组
A、车道部分内的车道分为左侧、中间和右侧车道。左侧车道ID为正数,右侧车道ID为负数,中间车道线(道路参考线)为0。

3)车道部分
A、车道可以分为多个车道部分。 每个车道段包含固定数量的车道。 每当车道数量发生变化时,都需要一个新的车道段,另外车道段沿着车道参考线升序排列,即(st坐标中的s方向)

B、为了简化复杂道路的车道部分的使用,可以仅使用Lane section中的 @singleSide属性为道路的一侧定义车道部分。

C、Lane section属性,singleSide字段表示车道是否只存在于道路的一侧。它是一个布尔值,用于指示车道是否仅存在于道路的一个侧面。如果singleSide为true,则表示车道只存在于道路的一侧,通常用于描述单行道或特定交通情况下的车道布局。如果singleSide为false,则表示车道存在于道路的两侧,通常用于描述双行道或多车道道路的车道布局。
| 参数名 | 描述 |
|---|---|
| s | 起始位置的 S 坐标 |
| singleSide | 车道截面元素仅对一侧(左侧、中心或右侧)有效,具体取决于子元素。 |

4)车道偏移
A、车道偏移可用于将中心车道移离道路参考线。 这样可以更轻松地对道路上车道的局部横向移动进行建模,例如左转车道。车道偏移(road offset)和形状定义(road shape)的组合可能会导致不一致,具体取决于用于车道偏移的插值。 由于线性插值用于沿参考线的道路形状,因此线性插值也应用于偏移定义;下图描述中心车道远离道路参考线的偏移量。


B、给定点的偏移量使用以下三阶多项式函数计算:offset (ds) = a + b*ds + c*ds² + d*ds³
| 参数名 | 描述 |
|---|---|
| offset | 是给定位置的横向偏移量 |
| a, b, c, d | 多项式系数 |
| ds | 是新车道偏移元素的起点与给定位置之间沿道路参考线的距离 |
偏移值的绝对位置:s = sstart + ds
| 参数名 | 描述 |
|---|---|
| s | 是参考线坐标系中的绝对位置 |
| sstart | 是元素在参考线坐标系中的起始位置 |
C、每次多项式函数更改时,都需要一个新的通道偏移元素,下面是XML示例。
<lanes><laneOffset s="25.0" a="0.0" b="0.0" c="3.9e-03" d="-5.2e-05"/><laneOffset s="75.0" a="3.25" b="0.0" c="0.0" d="0.0"/>…
</lanes>

5)车道链接
A、车道链接有两个元素,predecessor(前继)和successor(后继), 车道可以与同一条或另一条道路上的车道相连;


它们之间的前后继链接关系如下图所示:


6)车道属性
A、车道属性-拓扑结构
车道属性描述车道的用途和形状。 车道属性是按车道路段定义的,但可能会在该路段内更改。 如果未为车道部分专门定义属性,则应用程序可以应用默认属性;车道属性拓扑结构如下图所示。

B、车道属性-车道宽度
a、给定点的宽度使用以下三阶多项式函数计算:Width (ds) = a + b*ds + c*ds² + d*ds³
| 参数名 | 描述 |
|---|---|
| width | 是给定位置的宽度 |
| a, b, c, d | 多项式系数 |
| ds | 是新车道宽度元素的起点与给定位置之间沿道路参考线的距离 |
ds每个元素从零开始。 宽度值的绝对位置计算如下::s = ssection + offsetstart + ds
| 参数名 | 描述 |
|---|---|
| s | 是参考线坐标系中的绝对位置 |
| sSection | 是前一个车道段元素在航迹坐标系中的起始位置 |
| offsetStart | 是元素相对于前一个车道部分的偏移量 |
b、从不同偏移位置开始的正 s 方向上车道宽度的变化


C、车道属性-车道高度
a、车道高度应沿 h 坐标定义。 车道高度可用于抬高独立于道路标高的车道。 车道高度用于实现小比例尺的标高,例如抬高人行道,如图下图所示。 车道高度指定为 z 方向上与道路的偏移量(包括标高、超高、形状)。

b、XML片段
<lane id="-2" type="sidewalk" level="false"><link><successor id="-3"/></link><width sOffset="0.0" a="2.0" b="0.0" c="0.0" d="0.0"/><height sOffset="0.0" inner="0.12" outer="0.12"/>
</lane>

7)车道类型
A、车道类型分类
| 类型 | 描述 |
|---|---|
| shoulder | 描述道路边缘的软边框。 |
| border | 描述道路边缘的硬边框。与可行驶车道具有相同的高度。 |
| driving | 描述一条“正常”的可行驶道路,不属于其他类型之一。 |
| stop | 用于紧急停车的高速公路硬路肩。 |
| none | 描述道路最外侧的空间,没有实际内容,其唯一目的是在驾驶员离开道路时注册ASAM OpenDRIVE的存在。 |
| restricted | 描述不应该有车辆行驶的车道。该车道与可行驶车道具有相同的高度。通常使用线条分隔车道,经常包含虚线。 |
| parking | 描述带有停车位的车道。 |
| median | 描述位于相反行驶方向的行驶车道之间的车道。通常用于在大型道路上分隔交通。 |
| biking | 描述为自行车保留的车道。 |
| sidewalk | 描述供行人行走的车道。 |
| curb | 描述路缘石。路缘石的高度与相邻的可行驶车道不同。 |
| exit | 描述用于与主干道平行的部分的车道。主要用于减速车道。 |
| entry | 描述用于与主干道平行的部分的车道。主要用于加速车道。 |
| onramp | 从乡村或城市道路通向高速公路的匝道。 |
| offRamp | 从高速公路通向乡村或城市道路的匝道。 |
| connectingRamp | 连接两条高速公路的匝道,例如高速公路交汇处。 |
—高速公路的车道类型

—乡村道路的车道类型

—城市道路的车道类型
—高速公路出口和入口的车道类型

8)车道限速
可以定义车道上允许的最大速度。车道限速优先于道路限速。


8)车道标记
A、拓扑结构图

XML片段
<road><!-- 路段信息 --><lanes><!-- 车道信息 --><laneSection><!-- 车道段信息 --><left><!-- 左侧车道信息 --><lane><!-- 车道信息 --><roadMark><!-- 车道标线 --><sOffset>0.0</sOffset><width>0.1</width><type>solid</type><color>white</color><!-- 其他属性 --></roadMark></lane><!-- 其他左侧车道 --></left><center><!-- 中心车道信息 --><!-- 中心车道的车道标线 --></center><right><!-- 右侧车道信息 --><!-- 右侧车道的车道标线 --></right></laneSection><!-- 其他车道段 --></lanes><!-- 其他道路元素 --></road>
以上,就是从ASAM中整理下来的一些关于openDrive的一些内容,因为内容比较多。可能会分几篇来写,也有一些内容描述的不是很详细,请大家见谅哈,后续有空再补充。
相关文章:
ASAM OpenDRIVE V1.7协议超详解(一)
文章目录 前言一、仿真场景的构成二、openDRIVE框架三、g_additionalData四、openDRIVE-header五、openDRIVE-road1、Road总拓扑结构2、Road-link介绍1)link的拓扑结构2)link链接示例3)link前继后继4)道路link规则 3、road-type介…...
springboot的配置信息的设置和读取(application.properties/application.yml)
springboot提供了两种配置信息的文件格式,application.properties和application.yml,基于直接明了,使用方便和高效的前提下下面的配置均采用yml格式配置, 注意 yml采用缩减方式来排列键后面紧跟冒号,然后空格&#x…...
Deepsort项目详解
一、目标追踪整体代码 代码目录如下图所示: 、 追踪相关代码: 检测相关代码和权重 调用 检测 和 追踪的代码: 首先代码分为三个部分: 目标追踪的相关代码和权重目标检测相关代码和权重,这里用的是yolov5.5目标检…...
C语言证明一个偶数总能表示为两个素数之和。输入一个偶数并将其分解为两个素数
完整代码: // 一个偶数总能表示为两个素数之和。输入一个偶数并将其分解为两个素数#include<stdio.h>//判断一个数n是否为素数 int isPrimeNumber(int n){//1不是素数if (n1){return 0;}for (int i 2; i <(n/2); i){//当有n能被整除时,不是素…...
Python 的 datetime 模块
目录 简介 一、date类 (一)date 类属性 (二)date 类方法 (三)实例属性 (四)实例的方法 二、time类 (一)time 类属性 (二)tim…...
Termius for Mac:掌控您的云端世界,安全高效的SSH客户端
你是否曾经在Mac上苦苦寻找一个好用的SSH客户端,让你能够远程连接到Linux服务器,轻松管理你的云端世界?现在,我们向你介绍一款强大而高效的SSH客户端——Termius。 Termius是一款专为Mac用户设计的SSH客户端,它提供了…...
Ubuntu 下监控并自动重启网卡
很多时候网站服务器挂掉也可能是因为网卡挂掉了,如果你网站不能访问时 SSH 也无效了一般都是这个问题。这时可以通过一个定时脚本监控网络并进行自动重启。 1 创建脚本 auto_restart_network.sh 4 5 6 7 8 9 #!/bin/bash ping www.baidu.com -c 1 >/dev/null i…...
377. 组合总和 Ⅳ
给你一个由 不同 整数组成的数组 nums ,和一个目标整数 target 。请你从 nums 中找出并返回总和为 target 的元素组合的个数。 题目数据保证答案符合 32 位整数范围。 示例 1: 输入:nums [1,2,3], target 4 输出:7 解释&#…...
【OpenCV】计算视频的光流并跟踪物体calcOpticalFlowPyrLK
一、介绍 计算光流可以使用OpenCV的calcOpticalFlowPyrLK方法,cv2.calcOpticalFlowPyrLK是OpenCV库中的一个函数,用于计算稀疏光流。它实现的是Lucas-Kanade方法,这是一种常用的光流计算方法。 光流是图像中物体运动的近似表示&#…...
C语言进阶
数组 在基础篇说过,数组实际上是构造类型之一,是连续存放的。 一维数组 定义 定义格式:[存储类型] 数据类型 数组名标识符[下标]; 下面分模块来介绍一下数组的定义部分的内容。 1、初始化和元素引用: 可以看到数组是连续存储…...
Linux之gdb
gdb就是一个Linux的调试工具,类似与vs里面的调试 可执行程序也有格式,不是简单的二进制堆砌...
100天精通风控建模(原理+Python实现)——第3天:风控建模中如何处理缺失值?
风控模型已在各大银行和公司都实际运用于业务,用于营销和风险控制等。 之前已经阐述了100天精通风控建模(原理+Python实现)——第1天:什么是风控建模? 100天精通风控建模(原理+Python实现)——第2天:风控建模有什么目的? 接下来看下100天精通风控建模(原理…...
Leetcode—680.验证回文串II【简单】
2023每日刷题(二十七) Leetcode—680.验证回文串II 实现代码 class Solution { public:bool judgeFunc(string s, int left, int right) {while(left < right) {if(s[left] ! s[right]) {return false;}left;right--;}return true;}bool validPalin…...
Redis五种数据类型及命令操作(二)
🎈个人公众号:🎈 :✨✨✨ 可为编程✨ 🍟🍟 🔑个人信条:🔑 知足知不足 有为有不为 为与不为皆为可为🌵 🍉本篇简介:🍉 本篇记录Redis五种数据类型及命令操作,如…...
低代码信创开发核心技术(三):MDA模型驱动架构及元数据系统设计
前言 写最后一篇文章的时候,我本人其实犹豫了半年,在想是否发布出这篇文章,因为可能会动了很多人的利益。所以这篇文章既是整个低代码信创开发的高度总结,也是最为精华的一部分,它点明了低代码中最为核心的技术。虽然…...
HslCommunication模拟西门子读写数据
导入HslCommunication C#端代码(上位机) 这里要注意的是上位机IP用的当前电脑的IP。 using HslCommunication; using HslCommunication.Profinet.Siemens; using System; using System.Collections.Generic; using System.ComponentModel; using Syste…...
多测师肖sir_高级金牌讲师_ui自动化po框架版本02
ui自动化po框架版本02 一、 pages下的BasePage.py模块 此模块是封装所有用例的基类 比如说:所有用例要用到的元素定位,以及输入框输入,点击,下拉等等公共方法import unittest #导入unittest 框架 from time import *# 调试代码…...
线性判别分析(Linear Discriminant Analysis,LDA)
Linear Discriminant Analysis(LDA) 输入: 原始数据$D((x_1,y_1),(x_2,y_2),...,(x_m,y_m)$ 、 类别标签$Y[y_1,y_2,...,y_n]$、 降维到的维度d输出: 投影矩阵W、投影后的样本$Z$、算法步骤: 1.计算类内散度…...
git的分支及标签使用及情景演示
目录 一. 环境讲述 二.分支 1.1 命令 1.2情景演练 三、标签 3.1 命令 3.2 情景演示 编辑 一. 环境讲述 当软件从开发到正式环境部署的过程中,不同环境的作用如下: 开发环境:用于开发人员进行软件开发、测试和调试。在这个环境中…...
深度解析找不到msvcp120.dll相关问题以及解决方法
在计算机使用过程中,我们经常会遇到一些错误提示,其中之一就是“msvcp120.dll丢失”。这个错误通常会导致某些应用程序无法正常运行,给用户带来很大的困扰。那么,如何解决msvcp120.dll丢失的问题呢?本文将为大家介绍…...
Python爬虫实战:研究MechanicalSoup库相关技术
一、MechanicalSoup 库概述 1.1 库简介 MechanicalSoup 是一个 Python 库,专为自动化交互网站而设计。它结合了 requests 的 HTTP 请求能力和 BeautifulSoup 的 HTML 解析能力,提供了直观的 API,让我们可以像人类用户一样浏览网页、填写表单和提交请求。 1.2 主要功能特点…...
Linux 文件类型,目录与路径,文件与目录管理
文件类型 后面的字符表示文件类型标志 普通文件:-(纯文本文件,二进制文件,数据格式文件) 如文本文件、图片、程序文件等。 目录文件:d(directory) 用来存放其他文件或子目录。 设备…...
如何在看板中体现优先级变化
在看板中有效体现优先级变化的关键措施包括:采用颜色或标签标识优先级、设置任务排序规则、使用独立的优先级列或泳道、结合自动化规则同步优先级变化、建立定期的优先级审查流程。其中,设置任务排序规则尤其重要,因为它让看板视觉上直观地体…...
UDP(Echoserver)
网络命令 Ping 命令 检测网络是否连通 使用方法: ping -c 次数 网址ping -c 3 www.baidu.comnetstat 命令 netstat 是一个用来查看网络状态的重要工具. 语法:netstat [选项] 功能:查看网络状态 常用选项: n 拒绝显示别名&#…...
对WWDC 2025 Keynote 内容的预测
借助我们以往对苹果公司发展路径的深入研究经验,以及大语言模型的分析能力,我们系统梳理了多年来苹果 WWDC 主题演讲的规律。在 WWDC 2025 即将揭幕之际,我们让 ChatGPT 对今年的 Keynote 内容进行了一个初步预测,聊作存档。等到明…...
【服务器压力测试】本地PC电脑作为服务器运行时出现卡顿和资源紧张(Windows/Linux)
要让本地PC电脑作为服务器运行时出现卡顿和资源紧张的情况,可以通过以下几种方式模拟或触发: 1. 增加CPU负载 运行大量计算密集型任务,例如: 使用多线程循环执行复杂计算(如数学运算、加密解密等)。运行图…...
mysql已经安装,但是通过rpm -q 没有找mysql相关的已安装包
文章目录 现象:mysql已经安装,但是通过rpm -q 没有找mysql相关的已安装包遇到 rpm 命令找不到已经安装的 MySQL 包时,可能是因为以下几个原因:1.MySQL 不是通过 RPM 包安装的2.RPM 数据库损坏3.使用了不同的包名或路径4.使用其他包…...
Device Mapper 机制
Device Mapper 机制详解 Device Mapper(简称 DM)是 Linux 内核中的一套通用块设备映射框架,为 LVM、加密磁盘、RAID 等提供底层支持。本文将详细介绍 Device Mapper 的原理、实现、内核配置、常用工具、操作测试流程,并配以详细的…...
在Ubuntu24上采用Wine打开SourceInsight
1. 安装wine sudo apt install wine 2. 安装32位库支持,SourceInsight是32位程序 sudo dpkg --add-architecture i386 sudo apt update sudo apt install wine32:i386 3. 验证安装 wine --version 4. 安装必要的字体和库(解决显示问题) sudo apt install fonts-wqy…...
LangChain知识库管理后端接口:数据库操作详解—— 构建本地知识库系统的基础《二》
这段 Python 代码是一个完整的 知识库数据库操作模块,用于对本地知识库系统中的知识库进行增删改查(CRUD)操作。它基于 SQLAlchemy ORM 框架 和一个自定义的装饰器 with_session 实现数据库会话管理。 📘 一、整体功能概述 该模块…...
