哪家网站推广做的好/互动营销成功案例

哪家网站推广做的好,互动营销成功案例,如何做自己微网站,新疆生产建设兵团12师网站文章目录 一 摘要 二 资源 三 内容 一 摘要 自主探索是无人机 (UAV) 各种应用的基本问题。最近,基于 LiDAR 的探索因其能够生成大规模环境的高精度点云地图而受到广泛关注。虽然点云本身就为导航提供了信息,但许多现有的勘探方…

文章目录

一 摘要

二 资源

三 内容


一 摘要

        自主探索是无人机 (UAV) 各种应用的基本问题。最近,基于 LiDAR 的探索因其能够生成大规模环境的高精度点云地图而受到广泛关注。虽然点云本身就为导航提供了信息,但许多现有的勘探方法仍然依赖于额外的(通常是昂贵的)环境表示。这种依赖源于两个主要原因:需要边界检测或信息增益计算,这通常取决于内存密集型占用网格地图,以及直接在点云上进行路径规划的高计算复杂性,主要是由于昂贵的碰撞检查。为了解决这些限制,我们提出了 EPIC,这是一个基于 LiDAR 的轻量级无人机探索框架,可直接利用点云数据来探索大规模环境。EPIC 引入了一种直接源自点云质量的新型观测地图,无需全局占用网格图,同时保留了全面的探索功能。我们还提出了一种直接在点云上运行的增量拓扑图构建方法,可以在大规模环境中进行实时路径规划。利用这些组件,我们构建了一个分层规划框架,该框架可生成敏捷且节能的轨迹,与大多数现有方法相比,显著降低了内存消耗和计算时间。广泛的模拟和实际实验表明,与最先进的方法相比,EPIC 实现了更快的探索,同时显著降低了内存消耗

二 资源

 文章:EPIC: A Lightweight LiDAR-Based UAV Exploration Framework for Large-Scale Scenarios

代码:GitHub - SYSU-STAR/EPIC

日期2024

三 内容

1)摘要

        自主探索是无人机 (UAV) 各种应用的基本问题。最近,基于 LiDAR 的探索因其能够生成大规模环境的高精度点云地图而受到广泛关注。虽然点云本身就为导航提供了信息,但许多现有的勘探方法仍然依赖于额外的(通常是昂贵的)环境表示。这种依赖源于两个主要原因:需要边界检测或信息增益计算,这通常取决于内存密集型占用网格地图,以及直接在点云上进行路径规划的高计算复杂性,主要是由于昂贵的碰撞检查。为了解决这些限制,我们提出了 EPIC,这是一个基于 LiDAR 的轻量级无人机探索框架,可直接利用点云数据来探索大规模环境。EPIC 引入了一种直接源自点云质量的新型观测地图,无需全局占用网格图,同时保留了全面的探索功能。我们还提出了一种直接在点云上运行的增量拓扑图构建方法,可以在大规模环境中进行实时路径规划。利用这些组件,我们构建了一个分层规划框架,该框架可生成敏捷且节能的轨迹,与大多数现有方法相比,显著降低了内存消耗和计算时间。广泛的模拟和实际实验表明,与最先进的方法相比,EPIC 实现了更快的探索,同时显著降低了内存消耗

2)创新点

一种直接利用点云数据进行大规模探索的新型框架,无需额外的昂贵环境表示,同时确保高效和全的勘探。

直接来自点云的观测图,有效指导勘探。

增量构建的拓扑图,支持直接在点云上进行实时路径规划,有助于在大规模环境中进行高效探索。

广泛的仿真和实际测试验证了所提出的方法,在内存消耗、探索效率和计算速度方面表现出卓越的性能。

3)算法结构

        这篇文章中解决的问题是使用自主飞行器 (UAV) ∈ R 3 探索大规模、未知、有界的 3D 空间来生成密集的点云地图。

        提出的探索框架由基于观察地图环境表示和实时分层规划框架组成。在收到新的 LiDAR 点云扫描后,记录表面观测质量的观测地图会逐渐更新。基于观测地图检测前沿 并对其进行聚类。为了实现范围环境中的高效路径规划,在点云上逐步构建拓扑图 G。视点是根据拓扑可达性战略性选择的。随后,计算从当前位置开始并穿过所有视点的全局引导路径。基于全局路径,生成搞笑、敏捷的局部轨迹,引导无人机按顺序 (V-C) 访问这些。如果不存在边界,则认为探索已完成。

A 基于观测地图探索环境表达

        在本节中,我们提出了一种新的基于观测的无人机探索环境表示方法,该方法包括两个关键组成部分:观测地图Mobs 和前沿集群列表Lclusters。前者记录表面观测的质量,该质量由 LiDAR 的观察距离和视图方向决定。根据质量评估,观察到的表面被标记为观察良好或观察不佳。前沿定义为观察良好的表面和观察不佳的表面之间的边界,被聚类并存储在 前沿集群列表中。当收到新的点云帧时,Mobs 和 Lclusters 都会以增量方式更新。

a1 观测地图构建

        为了方便对地表观测质量的高效查询,避免过多的内存消耗,我们采用了空间哈希映射来存储地表观测的质量。将其定义为观测地图 Mobs,内部的每个元素都是表示小表面斑块的体素,并根据观测质量标记为观察良好或观察不佳。与内存密集型占用网格地图不同,这种选择性存储确保只关注地表周围的区域,从而减少内存消耗,同时保留足够的信息进行边界检测。

        每个表面面片的观测质量由距离约束和视方向约束决定。考虑一个以 ps 为中心的表面贴片,并且 LiDAR 位于 pl ,如果满足以下条件,则认为满足距离约束

        如上图(a) 所示,鉴于随着 LiDAR 光束变得更加垂直于表面贴片,观察质量会提高,对于 2D 情况,视向质量与 |90◦ − θ|呈负相关。假设 l2 ≥ l1,θ 可以通过以下方式计算:

其中 δ 表示两个相邻 LiDAR 光束之间的恒定角度间隔,该值由 LiDAR 的机械配置决定。根据方程,|90◦ − θ|和 L1/L2 呈负相关。因此,我们可以使用 l1/l2 来评估视图方向的质量。我们认为当 l1/l2 超过阈值 T 时,视图方向约束得到满足。

        对于 3D 情况,如上图(b) 所示,LiDAR 的感应区域由许多小的金字塔形体积组成。考虑一个以 pi 为中心的表面patch,落在金字塔形的体积 fi 内。如果组成 fi 的四条光线都满足上述条件,则我们认为满足视图方向约束。当收到新的点云帧时,与点云相交的生物体素将被识别并附加到更新队列 Q 中。我们随后迭代队列。对于每个未标记或之前标记为观察不佳的体素,如果它同时满足距离和方向约束,我们会将其分类更新为观察良好。否则,我们会将其标记为观察不佳

a2 前沿检测聚类

        为了实现实时前沿边界更新,我们提出了一种增量前沿检测和聚类方法。我们首先迭代所有在 Q 中标记为观察不佳的体素,如果体素有一个标记为观察良好的相邻体素,则将其分类更新为 frontier。请注意,frontier 集合是 poorly集合的子集。

在迭代过程中,同时计算从 frontier 变为 well-observed 的体素以及从 Poorly-observed 过渡到 frontier 的体素的轴对齐边界框 (AABB) Bupdate。除了更新 Mob 之外,当前帧中新生成的 frontier 也会被附加到一个集合的 Fcurrent 中。

        对于点云数据的第一帧,我们基于欧几里得距离和表面法线对 Fcurrent 应用聚类方法。考虑两个边界体素 fi , fj 分别具有中心位置 pi 、 pj 和法线向量 ni 、 nj 。如果满足以下条件,我们将这两个体素视为相邻体素:

        聚类过程首先从 Fcurrent 中选择第一个元素。从体素开始,我们采用 Breadth First Search (BFS) 算法来扩展集群,识别并合满足指定距离和法线相似性标准的相邻体素。如果 BFS 自然完成或集群的 AABB 大小超过预定义的阈值,则扩展将终止。在此过程中,添加到集群的体素会同时从 Fcurrent 中删除。集群扩展结束后,该过程将使用更新的 Fcurrent 的第一个元素重新初始化。迭代将继续,直到 Fcurrent 为空。之后,每个集群的 AABB、前沿体素及其相应的法线向量都存储在 Lclusters 中以供进一步处理。

        对于点云的第二帧或后续帧,我们首先识别所有与 Bupdate 相交的集群,将它们从 Lclusters 中删除,并将它们的边界体素添加到 Fcurrent 中。然后,我们在 Fcurrent 上执行新的聚类过程,并根据聚类结果更新 Lclusters。

B 分层探索规划

        分层探索规划模块由三个关键组件组成:增量构建的拓扑图 G、全局引导路径规划器和局部轨迹规划器。

        为了在大规模环境中实现高效的路径搜索,我们提出了一种直接在点云上构建的增量拓扑图。利用拓扑图 G,Global Planner 计算引导路径。随后,当地规划者根据这些引导路径生成安全、平稳和可行的轨迹,然后无人机可以有效地覆盖边境。

b1 增量拓扑图构建

        拓扑图广泛用于大规模环境探索,以实现更快的路径搜索。但是,大多数现有方法都基于内存密集型的全局占用网格图构建拓扑图。为了解决这个问题,我们提出了一种直接在点云上运行的增量拓扑图构建方法。在我们的方法中,拓扑图表示为 G = (V, E),其中 V 表示独立自由空间中的代表性顶点,E 表示显示这些自由空间之间连通性的边。E 中的每条边都与无碰撞路径相关联。

        我们将整个探索空间分解为长方体区域 R,这些区域由空间哈希映射管理。拓扑图 G 的顶点 V 存储在其相应的区域内。在收到新的区域中心无碰撞球体区域子区域代表顶点障碍物观测面 (a) (b) (c) (d) 点云帧后,与激光雷达当前观测区域相交的区域被添加到更新列表 Lregion 中。此外,对于在整个探索过程中首次添加到 Lregion 的区域,其相应的顶点集将初始化为 ∅。

区域中拓扑图顶点更新过程的图示。(a) 和 (b):使用无碰撞球体的自由空间覆盖。(c):基于连通性的聚类球体。(d):选择代表性顶点。

        1) 顶点更新:对于 Lregion 中的每个区域 ri,我们使用多个无碰撞球体来覆盖其自由空间。如图(a) 和图(b) 所示,初始无碰撞球体以 ri 为中心,其半径由到点云图中最近点的距离决定。如果此球体完全包含该区域,则 ri 的覆盖操作结束。否则,该过程将根据球体的半径继续。如果半径超过预定义的安全距离,则该区域将由对应于球体内切立方体的六个面的平面细分为更小的子区域。否则,球体将被丢弃,然后该区域被三个正交平面通过球体的中心分成八个子区域,平行于 xy、yz 和 zx 平面

        对于每个子区域,以递归方式重复球体生成和区域细分的过程,直到它完全被无碰撞的球体覆盖或其大小小于安全半径。随后,我们采用联合查找算法,根据它们的连通性对这些球体进行聚类,如图(c) 所示。如果两个球体的交集大小大于安全半径,则这两个球体被视为同一群集的一部分。

        对于每个生成的群集,将选择一个代表性顶点。顶点的位置设置为簇内最靠近区域中心的球体中心,如图(d) 所示。此外,我们在进程开始之前将存储在 Lregion 中的所有顶点记录为 Vpre,并在 Lregion 更新后记录为 Vnew。这两个集合都保留用于后续算法步骤。

        2) Edge Updating:边集 E 初始化为 ∅。随着 G 顶点的更新,连接它们的边将从通过 A* 搜索算法获得的路径派生。如上图所示,基于 Vpre 和 Vnew,我们将顶点分为三个不同的集合:

其中 Vremove 表示 Vpre 中存在但在 Vnew 中不存在的顶点,Vremain 表示在 Vpre 和 Vnew 之间保持不变的顶点,Vinsert 表示出现在 Vnew 中但不在 Vpre 中的新顶点。

        首先,我们遍历 Vremove,从 G 中消除所有相关的边。接下来,对于 Vremain 中的顶点,我们检查与连接到它们的边对应的所有无碰撞路径。对于每个路径,我们验证它在更新的点云地图中是否保持无碰撞。如果路径不再无冲突,我们将其相应的顶点对添加到队列 Qedge 中,并从 G 中删除关联的边。然后,对于每个 v ∈ Vinsert,我们在 v 和相邻区域中的节点之间构造顶点对,并将这些对添加到 Qedge。

        随后,对 Qedge 中的每个顶点对执行 A* 搜索算法。如果找到无碰撞路径,则将相应的边添加到 G 中,并存储无碰撞路径。此外,为了加速搜索过程并避免冗余边缘,我们将 A* 算法的搜索范围限制在一个小区域。此区域定义为轴对齐边界框 (AABB),它紧紧地包围了起点和目标点,并带有等于一个区域大小的附加填充。最后,我们更新 vodom,即代表无人机当前位置的顶点,调整其位置,删除以前的边缘,并建立新的连接。

b2 全局路径规划

        该模块旨在确定 Lclusters 中前沿集群的有效访问序列,然后为本地轨迹规划器生成引导路径。

        鉴于全局最优访问序列通常优先考虑附近的集群,而不是远处的集群,并且考虑到飞行过程中的高频重新规划,在下一个重新规划周期之前只执行一小部分引导路径。所以,远程集群排序的影响会减小。因此,我们最初使用粗略距离估计对 Lclusters 中的所有前沿集群进行排名,从而产生粗略的初步访问序列。然后,我们对该序列的前 K 个元素进行更精细的调整,相应地生成全局引导路径。这种两阶段策略将计算资源集中在近端集群上,有效地平衡了路径最优性和计算效率,使其特别适合大规模场景下的实时探索。

        1) 前沿集群排序:在探索过程中,不断生成前沿,每个前沿都可以在生成时通过无人机位置的直线路径到达,因为它们当时从无人机上可以看到。受这一观察结果的启发,我们引入了一个回溯距离指标来确定 Frontier 集群的优先级。对于以 ci 为中心的集群,让 pi 表示无人机在集群产生时的位置回溯距离可以定义

        回溯距离 di 通过追溯其历史路径来量化无人机到达 ci 的总距离。通过维护无人机在每个集群生成时的飞行距离及其总飞行距离的记录,我们可以计算 O(1) 时间复杂度的 di。这种高效的计算使我们能够在 Lclusters 中快速对集群进行排名,从而产生一个粗略的全局访问序列。

        2) 引导路径规划:对于序列中的前 K 个集群,我们根据后续3中描述的方法为每个集群生成一个视点,并将这些视点作为顶点连接到图 G。然后,我们对 G 执行 A* 搜索以计算视点对之间的距离。随后,我们将其表述为非对称旅行推销员问题 (ATSP) 并解决它。该解决方案产生从当前车辆位置开始并穿越所有选定视点的最短路径,作为我们的全局引导路径。

        3) 视点生成:对于前沿集群 Cf,候选视点集合是在以集群中心为中心的圆柱坐标系中均匀采样得到,如下图(a) 所示。然后,我们计算从每个候选视点到点云地图中最近点的距离。距离低于安全阈值的视点将被消除。其余候选视点每个对应于一个无碰撞球体。然后,我们根据它们相关球体的连通性将它们聚类到几个视点集群 Ccv 中。这个过程如下图(b) 所示,其中候选视点被分为两个视点集群。

        对于 Ccv 中的每个集群,其中的所有元素都可以相互访问。所以我们选择一个代表元素,并将其作为顶点 vrepresent 添加到 G 中,以检查它是否可以从 vodom 到达。如果是这样,则集群中的所有元素都被视为可访问。在此评估之后,将从 G 中删除 vrepresent 及其关联的边缘,以确保图形在未来的规划周期中保持高效和清晰。然后,我们从 Cf 的可访问候选项中选择覆盖率得分最高的视点。视点的覆盖率分数定义为 Cf 中可以很好地观察到的边界数量。如果到视点的距离小于 D,将边界体素连接到视点 lvf 的线畅通无阻,并且 lvf 与边界的法线向量之间的角度低于阈值,则认为边界体素观察良好。对于每个可到达的视点,候选偏航角在 360 度上均匀采样,对于每个采样的偏航角,评估 LiDAR 视场 (FOV) 内观察到的边界数量。选择最大化观察良好边界数量的偏航角,此计数将记录为相应视点的覆盖分数。然后,选择得分最高的视点并将其连接到拓扑图。

b3 局部轨迹生成

        获得全局引导路径后,我们直接在点云地图上生成平滑的局部轨迹。采用分段多项式 MINCO 分别表示位置轨迹 p(t) = [x(t), y(t), z(t)]T 和偏航轨迹 ψ(t)。为了构建安全惩罚,我们使用 FIRI 沿引导路径生成多面体安全飞行走廊。为了主动观察未知空间,偏航被限制在查看未来的航路点。此外,我们对最大速度、倾斜角度、推力和本体速施加约束,以确保动力学的可行性。还纳入了最低时间惩罚以实现敏捷飞行。利用 MINCO 的特性,我们通过联合时空优化生成高效且敏捷的本地轨迹。

4)实验

A 实验设置

a1 对比方法 FUEL, ERRT, and M3 using the MARSIM simulator

a2 大场景a cave [224×330×41]m3 , a garage [192×156×4]m3 , and a campus [160×128×40]m3

a3 测试方法每种方法每个场景执行四次,最大速度为 4.0m/s,地图分辨率为 0.4m(M3 除外),时间限制为 1500 秒。

B 实验结果

        从上图可是在以垂直落差、狭窄隧道和死胡同为特征的洞穴场景中,以及以不同的建筑高度和广阔的开放区域为特色的校园场景中,我们的方法是唯一实现完整探索的方法。随着勘探区域的扩大,路径搜索的计算负担增加,FUEL 超时,ERRT 因信息获取不足而提前终止,M3 由于其粗略的前沿更新策略而提前结束勘探。在车库场景中,一个更结构化的环境,我们的方法和 FUEL 都完成了探索,尽管 FUEL 需要两倍的时间。ERRT 和 M3 实现了相对较高的表面覆盖率,但没有完成任务

        如上所示每种方法都表现出不同的权衡: M3 和 ERRT 都采用贪婪策略来实现稳定的响应时间,但牺牲了全局规划最优性。请注意,尽管 M3 在大多数场景中实现了最低的平均计算时间,但由于表示过于简化,它无法完成探索。另一方面,FUEL 优先考虑全局规划最优性,导致高计算负担(在校园场景中高达 16.72 秒)。我们的算法平衡了这些方法,具有有竞争力的计算时间(平均 0.05 − 0.09 秒),实现了完整的探索和近乎最优的路径规划(甚至比车库场景中的 FUEL 还要短)。这导致更高的平均速度(平均 2.5 − 3.1m/s)和更快的整体探索。

        如上所示我们的环境表示方法在所有测试场景中实现了最低的内存开销。

        此外,进行了各种真实世界的实验以进一步验证我们的方法。我们利用了一个基于 LiDAR 的四旋翼平台,配备了 Intel NUC 机载计算机、NxtPx4 自动驾驶仪 [22] 和安装在 40◦ 俯仰角的 Livox MID360 LiDAR。FAST-LIO2 [23] 的修改版本被改编用于定位和映射。为确保安全,最高速度限制为 3.5m/s。首先,我们探索了一个大型校园建筑场景。勘探覆盖了 [77 × 74 × 3]m3 的区域,耗时 181 秒,穿越了 530.4m。图 1 显示了示例点云图和飞行轨迹。其次,为了在自然环境中验证我们的方法,我们在 [50 × 84 × 3] m3 杂乱的森林场景中进行了勘探测试,耗时 152.6 秒,穿越 328.5 米。点云地图和轨迹如图 9 所示。最后,我们在 [77 × 24 × 3] m3 室内走廊场景中测试了我们的方法,飞行时间为 94.7 秒,飞行长度为 194.8m。补充视频中提供了更详细的实验结果和所有场景的可视化

5)结论

        在这封信中,我们介绍了 EPIC,这是一种基于轻量级 LiDAR 的无人机探索框架,适用于大规模环境。它使用直接源自点云的基于观测的环境表示,消除了内存密集型全局占用网格地图,同时保留了足够的信息以进行全面探索。我们还开发了一种直接在点云上运行的增量拓扑图构建方法,从而实现高效的路径规划。利用这些组件,我们构建了一个分层规划框架,与现有方法相比,显著降低了内存消耗和计算时间。

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

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

相关文章

JAVA序列化与反序列化URLDNS链CC1链

1、序列化的实现 java序列化的是对象属性的,只有实现了Serializable或者Externalizable接口的类的对象才能被序列化为字节序列。(不是则会抛出异常),静态成员变量是属于类的,所以静态成员变量是不能被序列化的&#x…

Android7 Input(一)Android Input服务初始化

本系列博客主要描述Android 7.1系统中输入管理服务InputManagerService的源码分析。 概述 本文主要描述了InputManagerService服务的初始化和启动,在Android7系统上InputManagerService服务的框架如下所示: 注:箭头的方向,并不能真实代表数…

用于 RGB-D 显著目标检测的点感知交互和 CNN 诱导的细化网络(问题)

摘要 问题一:但在对自模态和跨模态的全局长距离依赖关系进行建模方面仍显不足。什么意思? 自模态(Intra-modal)全局依赖:在同一模态内,长距离像素之间的信息交互对于理解全局背景很重要,但 CN…

html5基于Canvas的经典打砖块游戏开发实践

基于Canvas的经典打砖块游戏开发实践 这里写目录标题 基于Canvas的经典打砖块游戏开发实践项目介绍技术栈核心功能实现1. 游戏初始化2. 游戏对象设计3. 碰撞检测系统4. 动画系统5. 用户界面设计 性能优化1. 渲染优化2. 内存管理 项目亮点技术难点突破项目总结 项目介绍 在这个…

MySQL外键约束下的索引删除难题:从报错到完美解决的实战指南

🚨 MySQL外键约束下的索引删除难题:从报错到完美解决的实战指南 🔥 问题背景:一个看似简单的删除操作引发的连环坑 场景复现:某日接到需求,需删除 invite_codes 表中的冗余索引 FKnqn27fyjlgio5y60eieohi0…

Rust嵌入式开发环境搭建指南(基于Stm32+Vscode)

Rust嵌入式开发环境搭建指南(基于Stm32+Vscode) 部分目录如下所示: 目录 简介Rust开发环境安装STM32开发工具链安装VSCode环境配置VSCode插件安装调试器配置项目创建与配置常见问题与解决方案简介 本文档旨在指导开发者如何搭建基于Rust语言的STM32嵌入式开发环境。相比传…

动态规划合集——动态规划基本原理

动态规划合集——动态规划基本原理 动态规划原理1258:【例9.2】数字金字塔 动态规划原理深度优先搜索记忆化搜索动态规划(顺推)动态规划原理题解分析 滚动数组优化动态规划(逆推) 动态规划原理 从数塔问题出发理解动态…

如何让节卡机器人精准对点?

如何让节卡机器人精准对点? JAKA Zu 软件主界面主要由功能栏、开关栏、菜单栏构成。 菜单栏:控制柜管理,机器人管理与软件管理组成。主要功能为对控制柜关机、APP 设置、机器人本体设 置、控制柜设置、连接机器人和机器人显示等功能。 开关…

实时视频分析的破局之道:蓝耘 MaaS 如何与海螺 AI 视频实现高效协同

一、蓝耘 MaaS 平台:AI 模型全生命周期管理的智能引擎 蓝耘 MaaS(Model-as-a-Service)平台是由蓝耘科技推出的 AI 模型全生命周期管理平台,专注于为企业和开发者提供从模型训练、推理到部署的一站式解决方案。依托云原生架构、高…

设计模式(行为型)-策略模式

目录 定义 类图 角色 角色详解 Strategy(抽象策略类)​ Context(环境类 / 上下文类)​ ConcreteStrategy(具体策略类)​ 优缺点 优点​ 缺点​ 使用场景 类行为差异场景​ 动态算法选…

【算法day14】三数之和

三数之和 https://leetcode.cn/problems/3sum/description/ 给你一个整数数组 nums ,判断是否存在三元组 [nums[i], nums[j], nums[k]] 满足 i ! j、i ! k 且 j ! k ,同时还满足 nums[i] nums[j] nums[k] 0 。请你返回所有和为 0 且不重复的三元组。…

10、STL中的unordered_map使用方法

一、了解 1、unordered_map(哈希) unordered_map是借用哈希表实现的关联容器。 访问键值对O(1),最坏情况O(n),例如哈希冲突严重时。【n是一个哈希桶的元素数量】 unordered_map特性 键值对存储&#xff…

C++ 头文件说明

如果一个程序足够大,代码功能很多,可以想象,不可能把代码写在一个cpp文件里。我们需要模块化,这样的好处很多,方便分工合作,可读性提高,调用也方便。 这个要怎么做呢? 很简单直接当…

【Linux系统】Linux进程终止的N种方式

Linux系列 文章目录 Linux系列前言一、进程终止的概念二、进程终止的场景三、进程终止的实现3.1 程序退出码3.2 运行完毕结果正常3.3 运行完毕结果异常3.4 程序异常退出 总结 前言 进程终止是操作系统中,进程的一个重要阶段,他标志着进程生命周期的结束…

【工具类】Java的 LocalDate 获取本月第一天和最后一天

博主介绍:✌全网粉丝22W,CSDN博客专家、Java领域优质创作者,掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域✌ 技术范围:SpringBoot、SpringCloud、Vue、SSM、HTML、Nodejs、Python、MySQL、PostgreSQL、大数据、物…

嵌入式开发之STM32学习笔记day06

基于STM32F103C8T6的开发实践——从入门到精通01 1. 引言 STM32系列微控制器是STMicroelectronics推出的一款高性能、低功耗的32位微控制器,广泛应用于嵌入式系统中。STM32F103C8T6是其中非常受欢迎的一款,凭借其强大的性能、丰富的外设接口和低廉的价格…

AutoHub场景演示|带您领略智能自动化操作的全新体验

AutoHub是一款由OpenCSG推出的基于前沿大型语言模型(LLM)的浏览器自动化工具,旨在通过智能对话交互和自动化技术,帮助用户更高效地浏览网页和完成任务。它不仅能够自动化繁琐的网页操作,还能够为用户提供精准的信息检索…

深入解析 Linux 声卡驱动:从架构到实战

在嵌入式 Linux 设备中,音频功能的实现离不开 Linux 声卡驱动。而 ALSA (Advanced Linux Sound Architecture) 作为 Linux 内核的音频框架,提供了一整套 API 和驱动模型,帮助开发者快速集成音频功能。本篇文章以 WM8960 音频编解码器&#xf…

虚拟地址空间(下)进程地址空间(上)

一.关于页表组成 1.权限(rwx) 作用:如1.让代码区变成只读的 2.写时拷贝的实现:子进程创建时其页表指向的父进程代码和数据权限都是只读的,子进程试图修改,触发错误,系统开始写时拷贝。 来源:…

iwebsec-SQL数字型注入

1.判断是否存在漏洞 添加and 11发现正常显示,添加and 12无回显条目,则存在sql注入漏洞 2.因为有回显,尝试union联合注入,使用order by判断出有3个字段 3.使用union联合注入查看回显位,发现3三个字段均有回显&#xff…