当前位置: 首页 > news >正文

自动驾驶:路径规划概述

自动驾驶:路径规划概述

  • 全局路径规划
    • Dijkstra算法
    • A*算法
    • RRT(随机快速探索树)算法
    • PRM(概率路线图)算法
  • 局部路径规划
    • DWA(动态窗口法)算法
    • TEB(时间弹性带)算法
    • Lattice Planner算法
    • EM Planner算法

本博客从一些常见的全局路径规划算法和局部路径规划算法出发,介绍了它们的工作原理和优缺点。

全局路径规划

以全局地图,起始点和终点为输入,全局轨迹为输出,规划出一条无碰撞、路径最短且较为平滑的路径。

Dijkstra算法

Dijkstra算法是一种用于图中最短路径搜索的经典算法,由荷兰计算机科学家Edsger W. Dijkstra于1956年提出。它被广泛应用于网络路由、地图导航、运输规划等领域。Dijkstra算法通过找到从一个起始节点到所有其他节点的最短路径来解决问题。

原理

  1. 初始化:选择一个起始节点,将起始节点的距离设置为0,将所有其他节点的距离设置为无穷大。
  2. 选取最近节点:从未处理的节点中选择距离起始节点最近的节点。初始时,这个节点就是起始节点。
  3. 更新距离:对于选中的节点,计算从起始节点经过它到达其邻居节点的距离。如果通过选中节点到达邻居节点的距离小于邻居节点当前的距离,更新邻居节点的距离为新计算的距离。
  4. 标记为已处理:将选中的节点标记为已处理,表示已找到从起始节点到达它的最短路径。
  5. 重复步骤2至4:重复选取最近节点、更新距离和标记为已处理的过程,直到所有节点都被处理或者目标节点被处理。
  6. 路径回溯:一旦目标节点被处理,可以从目标节点回溯到起始节点,构建最短路径。

优点

  • 确保最优解: Dijkstra算法保证找到的路径是从起始节点到目标节点的最短路径,前提是所有边的权重必须为非负数。
  • 适用于单源最短路径问题: Dijkstra算法通常用于解决单源最短路径问题,即从一个起始节点到所有其他节点的最短路径。
  • 易于理解和实现: 算法逻辑相对简单,易于理解和实现。

缺点

  • 无法处理负权重边: Dijkstra算法不能处理带有负权重边的图,因为它的工作原理基于不断减小节点的距离,负权重边可能导致无限循环。
  • 不适用于大规模图: 在大规模图中,Dijkstra算法的计算复杂度较高,可能不适用于实时应用。

A*算法

A算法(A-star算法)是一种启发式搜索算法,用于在图或图类问题中找到从起点到目标点的最短路径。这个算法结合了Dijkstra算法的最短路径性质和启发式搜索的优势,被广泛应用于路径规划、游戏AI、机器人导航和地图路线规划等领域。

原理

  1. 初始化:选择一个起始节点,将起始节点的代价设置为0,并将其放入一个待探索节点列表中。同时,为每个节点记录一个估计到目标节点的代价,通常使用启发式函数(heuristic function)来估计。
  2. 选择节点:从待探索节点列表中选择一个节点,通常是具有最小总代价(实际代价加上估计代价)的节点。初始时,起始节点是唯一的候选。
  3. 扩展节点:对于选中的节点,遍历它的邻居节点。计算从起始节点经过当前节点到达邻居节点的实际代价,并加上从邻居节点到目标节点的估计代价。如果这个总代价比邻居节点当前的总代价小,更新邻居节点的总代价,并将当前节点设置为邻居节点的父节点。
  4. 标记节点:将选中的节点标记为已探索,从待探索节点列表中移除。
  5. 重复步骤2至4:重复选择、扩展和标记节点的过程,直到找到目标节点或者待探索节点列表为空。
  6. 路径回溯:一旦找到目标节点,可以从目标节点回溯到起始节点,构建最短路径。

优点

  • (有条件)确保最优解: A*算法保证找到的路径是从起始节点到目标节点的最短路径,前提是启发式函数满足一定条件(被称为“一致性”或“单调性”)。
  • 高效性: A*算法通常比纯粹的Dijkstra算法更快,因为它有能力通过启发式函数引导搜索,减少不必要的节点扩展。
  • 适用性广泛: A*算法适用于各种问题,包括路径规划、游戏AI、机器人导航和地图路线规划等。

缺点

  • 启发式函数选择: A*算法的性能高度依赖于所选择的启发式函数。选择不合适的启发式函数可能导致算法不准确或不高效。

  • 存储需求: A*算法需要存储和管理待探索节点列表,对于大规模问题可能需要较多的内存。

RRT(随机快速探索树)算法

RRT(Randomized Rapidly-Exploring Tree)是一种用于路径规划的随机采样算法,最初由Steven M. LaValle于1998年提出。RRT旨在解决机器人或其他自主体的运动规划问题,使它们能够在未知或复杂的环境中找到有效路径。

原理

  1. 初始化:从起始点开始,创建一棵树,该树仅包含起始点。
  2. 随机采样:在地图空间中随机生成一个点,这个点通常是随机的,但也可以考虑环境的先验知识。
  3. 连接到树:找到离采样点最近的树上的节点,然后从这个节点向采样点生成一条边。这个边的生成通常遵循一些规则,例如最大距离限制,以确保树的扩展不会太快。
  4. 重复:重复步骤2和3,直到生成树的一部分接近目标区域。在每一步,RRT都在树上添加一个新节点和一条新边,以逐步扩展搜索空间。
  5. 连接到目标:一旦树的一部分靠近目标点,就可以在树上找到一条路径,从起始点连接到目标点。
  6. 路径优化(可选):可以对生成的路径进行优化,以提高路径的平滑性和效率。

优点

  • 适应高维度环境: RRT适用于高维度状态空间,因此对于具有大量自由度的机器人或问题来说非常有用。
  • 多样化的路径: 由于随机性质,RRT能够生成多样化的路径,有助于克服局部最小值问题。
  • 实时规划: RRT的增量性质使其适用于实时路径规划,可以在机器人运动时重新规划路径。

缺点

  • 不能确保最优路径: RRT不一定总是找到全局最优路径,它更关注于搜索过程的快速探索和多样性。
  • 收敛速度不确定: RRT的收敛速度依赖于随机采样和树的生长规则,因此在某些情况下可能需要较长时间才能找到合适的路径。
  • 有限的环境模型: RRT假设了机器人可以自由移动,不考虑动力学约束,因此在某些情况下可能不适用。

PRM(概率路线图)算法

PRM(Probabilistic Roadmap)是一种用于路径规划的概率算法,特别适用于高维度和复杂的环境。PRM算法通过在地图上随机生成一组采样点,然后连接这些点来构建一个图,从而生成路径。PRM算法在机器人导航、运动规划和自主机器人领域得到广泛应用。以下是PRM算法的基本工作原理:

原理

  1. 采样:随机在地图上生成一组采样点,这些点通常是机器人可以合法到达的位置。采样点的数量和分布可以根据问题的复杂性和需求进行调整。
  2. 连接采样点:对于每个采样点,检查其附近是否有其他采样点,如果有,则将它们连接起来,形成边。连接两个采样点的边通常表示机器人可以在这两个点之间移动的路径。
  3. 检查可通行性:对于连接的边,进行可通行性检查,以确保路径不会与障碍物相交。如果某条边不满足可通行性要求,将其删除。
  4. 路径搜索:使用标准路径搜索算法(如Dijkstra或A*)在生成的图上查找最短路径。起始点和目标点通常与最近的采样点连接,从而确保路径在图中。
  5. 路径优化(可选):可以对生成的路径进行优化,以提高路径的平滑性和效率。

优点

  • 适应高维度环境: PRM算法适用于高维度状态空间,对于具有大量自由度的机器人或问题非常有用。
  • 支持多个运动约束: PRM算法可以轻松地集成多个运动约束,例如最小转弯半径、最大速度、最大加速度等,以满足不同机器人的运动要求。
  • 全局路径规划: PRM算法可以用于全局路径规划,确保找到连接起始点和目标点的路径。
  • 预先规划多个路径: 通过生成一组采样点,PRM算法可以预先规划多个路径,以备不时之需。

缺点

  • 构建路线图需要时间: 构建PRM的路线图可能需要大量计算时间,特别是在高维度环境中。
  • 路径搜索复杂度: 路径搜索阶段的计算复杂度取决于图的大小和形状,可能在某些情况下较高。
  • 不一定最优: PRM算法不一定总是找到全局最优路径,它的性能取决于采样点的分布和数量。

局部路径规划

以局部地图,周围环境信息作为输入,局部轨迹为输出,规划出一条无碰撞满足运动学或动力学约束的轨迹,常用于避免碰撞、满足舒适性等要求和实时根据周围环境进行路径的调整。

DWA(动态窗口法)算法

DWA(Dynamic Window Approach)算法是一种用于移动机器人路径规划和避障的实时控制方法。它通常用于机器人在动态环境中避免碰撞和实时规划路径。DWA算法是一种模型预测控制方法,它通过在机器人的状态空间中生成一系列可能的运动轨迹,然后评估每个轨迹的性能来选择最佳行动。

原理

  1. 状态空间建模:将机器人的状态空间表示为位姿(位置和方向)和速度(线速度和角速度)的组合。这个状态空间描述了机器人在环境中的位置和运动状态。
  2. 生成运动轨迹:在状态空间中生成一系列可能的运动轨迹,通常通过在速度空间(线速度和角速度)中采样来实现。这些轨迹代表了机器人可能的运动选择。
  3. 评估轨迹:对于每个生成的轨迹,评估它们的性能。性能评估通常包括两个方面:运动轨迹能否到达目标位置(目标导向性),以及轨迹是否避开了障碍物(避障性)。这些评估指标通常基于预测模型和环境感知。
  4. 选择最佳行动:选择性能最佳的轨迹作为机器人的下一步行动。通常,最佳轨迹被定义为在目标导向性和避障性之间取得平衡的轨迹。
  5. 控制机器人:执行选择的行动,控制机器人进行移动。机器人执行当前轨迹上的运动命令,然后重新进行路径规划以进行下一步移动。
  6. 实时更新:重复上述步骤以实现实时路径规划和避障,不断更新机器人的运动。

优点

  • 实时性: DWA算法适用于实时运动规划,能够在机器人移动时快速生成适应环境变化的轨迹。
  • 适应性: 由于DWA算法的实时性,它能够适应动态环境中的障碍物移动和变化。
  • 避障能力: DWA算法通过避免评估避障性能来避免碰撞,使机器人能够在复杂环境中导航。

缺点

  • 局部搜索: DWA算法通常是局部搜索方法,因此不一定总是找到全局最优路径。
  • 性能依赖于参数: DWA算法的性能高度依赖于参数的选择,特别是与性能评估相关的参数。这需要进行调试和优化。

TEB(时间弹性带)算法

TEB(Time-Elastic Band)算法是一种用于机器人运动规划和轨迹优化的方法,特别适用于移动机器人在动态环境中的路径规划。TEB算法旨在解决机器人在复杂和动态环境中的路径规划问题,以确保机器人能够安全、高效地移动。

原理

  1. 初始化:
    确定机器人的初始状态,包括位置和速度。
    设置时间分辨率(时间步长)和速度分辨率(速度步长)等参数。
    建立一个时间-空间轨迹,包含初始状态。

  2. 目标设定:
    确定机器人的目标位置。

  3. 路径生成:
    在时间-空间轨迹中,逐个时间步骤生成可能的位置-速度对(位姿和速度)。
    考虑机器人的动力学模型,以确保生成的轨迹在物理上合理。
    考虑速度分辨率,生成多个不同速度的轨迹分支。

  4. 避障检测:
    对于每个生成的轨迹,检查轨迹上的每个时间步骤是否与障碍物相交。
    如果某个时间步骤与障碍物相交,将该轨迹标记为不合法。

  5. 性能评估:
    对于合法的轨迹,评估它们的性能。
    性能评估通常包括目标导向性(轨迹是否接近目标位置)、避障性(轨迹是否避开障碍物)以及平滑性等。

  6. 轨迹选择:
    根据性能评估选择最佳的轨迹或轨迹分支作为机器人的下一步行动。
    最佳轨迹通常是在目标导向性和避障性之间取得平衡的轨迹。

  7. 控制机器人:
    执行选择的轨迹上的运动命令,将机器人移动到下一个状态。

  8. 实时更新:
    在机器人移动过程中,不断更新轨迹和重新规划,以适应环境的动态变化。

  9. 达到目标:
    当机器人接近目标位置并满足终止条件时,算法结束。

优点

  • 动态适应性: TEB算法具有动态调整轨迹的能力,可以在实时感知到的环境信息下进行路径的重新规划。这使得它适用于处理动态障碍物和环境变化的情况。
  • 轨迹平滑性: TEB算法倾向于生成平滑的轨迹,有助于提高机器人的运动舒适性和稳定性。
  • 速度控制: TEB算法允许对机器人的速度进行动态调整,以适应环境中的障碍物密度和机器人的运动能力。
  • 支持多个运动约束: TEB算法可以轻松地集成多个运动约束,例如最小转弯半径、最大速度、最大加速度等,以满足不同机器人的运动要求。

缺点

  • 计算复杂度: TEB算法的计算复杂度相对较高,特别是在高维度状态空间中,可能导致实时性方面的挑战。
  • 对参数敏感: TEB算法依赖于许多参数,如时间分辨率、空间分辨率等。选择适当的参数对算法的性能至关重要,但可能需要一些调试。

Lattice Planner算法

Lattice Planner是一种基于采样的路径规划算法,适用于高维度状态空间和具有复杂运动约束的机器人。它将机器人的状态空间建模为一个高维度格点图,通过采样生成候选轨迹、利用各项指标评估来寻找最佳路径。

原理

  1. 状态空间建模: 将机器人的状态空间表示为高维度格点图。
  2. 生成候选轨迹: 在状态空间中生成一组候选轨迹,每个轨迹代表机器人可能的运动路径。
  3. 碰撞检测: 对每个候选轨迹进行碰撞检测,确保轨迹不与障碍物相交。
  4. 性能评估: 对合法的轨迹进行性能评估,考虑目标导向性、避障性、平滑性和舒适性等指标。
  5. 选择最优轨迹: 确定从起始状态到目标状态的最优路径。
  6. 轨迹优化: 可选地对生成的路径进行优化。

优点

  • 适应高维度状态空间和复杂运动约束。
  • 支持多个运动约束。

缺点

  • 计算复杂度较高。
  • 参数选择对性能影响较大。

EM Planner算法

EM Planner是一种采用期望最大化(Expectation-Maximization, EM)方法的路径规划算法,用于解决机器人在未知环境中的路径规划问题。它通过估计未知环境的概率分布来规划路径。

环境建模: 使用传感器数据构建环境的概率地图,其中包括障碍物的位置和不确定性。
EM算法: 使用EM算法来估计未知环境的概率分布,包括障碍物的分布和不确定性。
路径规划: 基于估计的环境概率分布,使用路径规划算法来规划路径。
轨迹执行: 执行规划的路径,同时不断更新环境模型和路径以适应新的传感器数据。

优点

  • 适用于未知环境和不确定的环境,能够估计环境的概率分布。

缺点

  • 较高的计算复杂度。

相关文章:

自动驾驶:路径规划概述

自动驾驶:路径规划概述 全局路径规划Dijkstra算法A*算法RRT(随机快速探索树)算法PRM(概率路线图)算法 局部路径规划DWA(动态窗口法)算法TEB(时间弹性带)算法Lattice Plan…...

vlc将本地文件推流成ts实时流

推流 打开vlc ,打开 媒体----打开网络串流 选择文件选项卡,打开本地文件 点击添加,选择本地的mp3文件 选择串流 点击下拉框,选择udp,点击右边的【添加】按钮 输入媒体流输出地址,点击【下一个】 选择正确的…...

C# 自定义控件库之Lable组合控件

1、创建类库 2、在类库中添加用户控件(Window窗体) 3、控件视图 4、后台代码 namespace UILib {public partial class DeviceInfoV : UserControl{public DeviceInfoV(){InitializeComponent();ParameterInitialize();}#region 初始化private void Par…...

解密防关联指纹浏览器:联盟营销领域的秘密武器

联盟营销在今天的数字化时代越来越受欢迎。然而,联盟营销也面临着一些挑战,其中之一就是账号关联问题。本文将介绍如何利用防关联指纹浏览器来提升联盟营销的效果和安全性。 一、什么是防关联指纹浏览器? 防关联指纹浏览器是一种工具&#…...

asp.net core mvc Razor +dapper 增删改查,分页(保姆教程)

说明:本demo使用sqlserver数据库,dapper orm框架 完成一张学生信息表的增删改查,前端部分使用的是Razor视图, Linq分页 HtmlHelper。(代码随便写的,具体可以自己优化) //实现效果如下&#xff0…...

网络安全——自学(黑客)方法

如果你想自学网络安全,首先你必须了解什么是网络安全!,什么是黑客!! 1.无论网络、Web、移动、桌面、云等哪个领域,都有攻与防两面性,例如 Web 安全技术,既有 Web 渗透2.也有 Web 防…...

秋招算法岗,面试复盘

面试锦囊之面经分享系列,持续更新中 欢迎后台回复『面试』加入讨论组交流噢 楼主秋招主要投算法岗(偏NLP方向)和数据岗方向,下面分享我的一些面试经历。 一、科大讯飞(NLP) 简要介绍自己Python里面哈希表…...

AI类APP能做什么

AI类APP可以实现多种功能,涵盖了各种领域和用途。以下是一些常见的AI类APP示例以及它们主要实现的功能,希望对大家有所帮助。北京木奇移动技术有限公司,专业的软件外包开发公司,欢迎交流合作。 1.语音助手(Voice Assis…...

计算机毕业设计 基于SSM的垃圾分类管理系统(以医疗垃圾为例)的设计与实现 Java实战项目 附源码+文档+视频讲解

博主介绍:✌从事软件开发10年之余,专注于Java技术领域、Python人工智能及数据挖掘、小程序项目开发和Android项目开发等。CSDN、掘金、华为云、InfoQ、阿里云等平台优质作者✌ 🍅文末获取源码联系🍅 👇🏻 精…...

友思特案例|友思特 Ensenso 3D相机:汽车工业自动化的革命性力量

01 内容摘要 在竞争激烈的汽车行业,自动化生产至关重要。友思特 Ensenso 3D相机为汽车制造商提供了可靠的工具和技术支持,助力多个关键环节。它在汽车座位泡棉切割中提高精确度,降低浪费,提高生产效率;在汽车压铸零部…...

【5G PHY】物理层逻辑和物理天线的映射

博主未授权任何人或组织机构转载博主任何原创文章,感谢各位对原创的支持! 博主链接 本人就职于国际知名终端厂商,负责modem芯片研发。 在5G早期负责终端数据业务层、核心网相关的开发工作,目前牵头6G算力网络技术标准研究。 博客…...

MySQL如何优雅处理批量新增和更新?ON DUPLICATE KEY UPDATE用它!

场景:一张用户表user,此时我需要批量新增用户,如果用户已经存在了,则更新该条记录;如果用户不存在,则插入一条数据。 痛点:常规做法新增更新各写一个接口。而且是批量操作,比较繁琐&…...

网络安全(加密, Hashing, 证书, SSL/TLS等)学习小结

网上看到的一些关于网络安全的学习资料小结。 对称加密: 通信双方共享同一个密钥。发送方用它来加密,接收方用它来解密。 非对称加密: 有公钥和私钥。 现在的做法一般是用非对称加密生成?钥(公钥还是私钥?)用于传输?&#xff0…...

缓冲技术在嵌入式中的应用

引言 在嵌入式中,不可避免地会遇到数据的收发。 其实,数据的收发有很多情况。 总体上,分为数据的收和发: 其中,数据发送是一个主动的行为,我们对要发送数据的数量特点等都是知道的,比如我们通过…...

vscode交叉编译cmake工程,toolchains设置

在 Visual Studio Code 中编译 CMake 项目时,使用自定义工具链(toolchains)可以很有用,特别是当你需要交叉编译或使用不同的编译器时。以下是在 Visual Studio Code 中使用自定义工具链的一般步骤,以aarch64的嵌入式为…...

MATLAB算法实战应用案例精讲-【优化算法】季节优化算法(SOA)(附MATLAB代码实现)

前言 世界上许多地方一年有四个季节:春、夏、秋、冬。每个季节的天气都不一样。随着天气的变化,生物,尤其是树木会改变它们的行为来适应天气。森林中的每一个个体都被称为一棵树。在满足终止条件之前,森林中的树木通过类似于自然界树木生命周期的四种操作:更新、竞争、播种…...

DevOps持续集成与交付

概述 Jenkins是一个支持容器化部署的、使用Java运行环境的开源软件,使用Jenkins平台可以定制化不同的流程与任务、以自动化的机制支持DevOps领域中的CI与CD,在软件开发与运维的流程中自动化地执行软件工程项目的编译、构建、打包、测试、发布以及部署&a…...

lambda的使用案例(1)

lambda的使用案例 1、分组转换为map Map<String, List<IdaasUserInfoVO>> map userWithOrgVOS1.stream().collect(Collectors.groupingBy(IdaasUserInfoVO::getOrgId));2、map循环 map.forEach(this::saveOrUpdateUser); private void saveOrUpdateUser(String …...

nodejs+vue装修公司CRM系统设计elementui

第3章 系统分析 5 3.1 需求分析 5 3.2 系统可行性分析 5 3.2.1技术可行性&#xff1a;技术背景 5 3.2.2经济可行性 6 3.2.3操作可行性&#xff1a; 6 3.3 项目设计目标与原则 6 3.4系统流程分析 7 3.4.1操作流程 7 3.4.2添加信息流程 8 3.4.3删除信息流程 9 第4章 系统设计 11 …...

开源博客项目Blog .NET Core源码学习(3:数据库操作方式)

开源博客项目Blog采用SqlSugar模块连接并操作数据库&#xff0c;本文学习并记录项目中使用SqlSugar的方式和方法。   首先&#xff0c;数据库连接信息放在了App.Hosting项目的appsettings.json中DbConfig节&#xff0c;支持在DbConfig节配置多个数据库连接信息&#xff0c;以…...

QT--Opencv下报错Mat/imwrite/imread找不到文件

像file not found这类错误 原因是编程系统找不到所指库文件&#xff0c;以此为例&#xff0c;排查自己的每个位置是否有误 1. .pro文件 添加opencv动态库 INCLUDEPATH /usr/include \/usr/include/opencv4 \/usr/include/opencv4/opencv2LIBS /usr/lib/aarch64-linux-gnu…...

风光储一体化能源中心 | 数字孪生智慧能源

自“双碳”目标提出以来&#xff0c;我国能源产业不断朝着清洁低碳化、绿色化的方向发展。其中&#xff0c;风能、太阳能等可再生能源在促进全球能源可持续发展、共建清洁美丽世界中被寄予厚望。风能、太阳能具有波动性、间歇性、随机性等特点&#xff0c;主要通过转化为电能再…...

JavaScript数组分组

数组分组: 含义: 数据按照某个特性归类 1. reducefn(cur, index)作为对象的key,值为按照fn筛选出来的数据 // 利用reduce分组 function group(arr, fn) {// 不是数组if (!Array.isArray(arr)) {return arr}// 不是函数if (typeof fn ! function) {throw new TypeError(fn…...

IEEE PDF eXpress系统报错:TimesNewRoman PS-BoldMT, ItalicMT, PSM

问题&#xff1a; IEEE PDF eXpress系统报错&#xff1a;Errors: Font TimesNewRomanPS-BoldMT, TimesNewRomanPS-ItalicMT, TimesNewRomanPSMT is not embedded (137x on pages 2-6) 答案&#xff1a; 主要原因是PDF的字体嵌入问题&#xff0c;可以看到下图中没有报错中的字体…...

【MATLAB源码-第40期】基于matlab的D*(Dstar)算法栅格路径规划仿真。

1、算法描述 D*算法路径规划 D*算法&#xff08;Dynamic A*&#xff09;是A*算法的一种变种&#xff0c;主要用于在地图中的障碍物信息发生变化时重新计算路径&#xff0c;而不需要从头开始。该算法适用于那些只有部分信息已知的环境中。 工作原理&#xff1a; 1. D*算法首先…...

Pikachu-xxe (xml外部实体注入漏洞)过关笔记

Pikachu-xxe过关笔记 有回显探测是否有回显file:///协议查看本地系统文件php://协议查看php源代码&#xff08;无法查看当前网页代码&#xff0c;只能看别的&#xff09;http://协议爆破开放端口&#xff08;两者的加载时间不同&#xff09; 无回显第一步第二步第三步 运行结果…...

Unity实现设计模式——责任链模式

Unity实现设计模式——责任链模式 责任链模式定义&#xff1a;将请求的发送和接收解耦&#xff0c;让多个接收对象都有机会处理这个请求。将这些接收对象串成一条链&#xff0c;并沿着这条链传递这个请求&#xff0c;直到链上的某个接收对象能够处理它为止。 在职责链模式中&…...

Java中String转换为double类型

这次的java作业是写一个数字转换的小项目&#xff0c;其中从输入框中获取的是String类型&#xff0c;但是要进行数字操作&#xff0c;此时要用到很多操作String类型数据的方法了。 从javafx输入框中获取到String类型后&#xff0c;首先是要判断是否能转换为数字或者小数形式&a…...

不同埋深地下管线的地质雷达响应特征分析

不同埋深地下管线的地质雷达响应特征分析 前言 以混凝土管线为例&#xff0c;建立了不同埋深&#xff08;70cm、100cm、130cm&#xff09;地下管线的二维模型&#xff0c;进行二维地质雷达正演模拟&#xff0c;分析不同材质管线的地质雷达响应特征。 文章目录 不同埋深地下管…...

重新认识mysql

title: “重新认识mysql” createTime: 2022-03-06T15:52:4108:00 updateTime: 2022-03-06T15:52:4108:00 draft: false author: “ggball” tags: [“mysql”] categories: [“db”] description: “” 文章目录 title: "重新认识mysql" createTime: 2022-03-06T15:…...

网站的目录怎样做的/关键词优化公司哪家强

旋转图像前言一、旋转图像二、逻辑分析逻辑整理总结参考文献前言 旋转图像&#xff0c;即旋转矩阵&#xff0c;通过不断将覆盖值记录&#xff0c;从而达到不覆盖的目的。 核心问题对应核心方案。 一、旋转图像 二、逻辑分析逻辑整理 package everyday;// 旋转图像。 public …...

网站源代码上传都需要怎么做/搜外滴滴友链

华为OD机试题 最近更新的博客华为 OD 机试 300 题大纲解压缩算法题目描述输入描述输出描述说明示例一输入输出说明示例二输入输出说明代码编写思路Python 代码实现最近更新的博客 华为od 2023 | 什么是华为od,od 薪资待遇,od机试题清单...

0基础做下载网站/郑州网站建设方案

正向代理和反向代理的区别&#xff1f; 正向代理和反向代理的本质都是代为收发请求和响应。 正向代理是一个位于客户端和目标服务器之间的代理服务器。为了从原始服务器取得内容&#xff0c;客户端向代理服务器发送一个请求&#xff0c;并且指定目标服务器&#xff0c;之后代理…...

做网站建设业务员好吗/怎么弄一个自己的网址

Presto优化之数据存储 1. 合理设置分区 与Hive类似&#xff0c;Presto会根据元数据信息读取分区数据&#xff0c;合理的分区能减少Presto数据读取量&#xff0c;提升查询性能。 2. 使用列式存储 Presto对ORC文件读取做了特定优化&#xff0c;因此在Hive中创建Presto使用的表时…...

群晖ds1817做网站/谷歌浏览器 安卓下载2023版官网

在Megaupload被关闭&#xff0c;资产扣押和关键成员被逮捕之后&#xff0c;为避免同样的命运&#xff0c;另一些文件共享网站开始采取行动调整其服务。Filesonic已经关闭了文件共享功能。Filesonic的声明称&#xff0c;用户只能上传和下载个人使用文件。在移除文件共享功能前&a…...

wordpress 页面内分页/谷歌chrome

目录 进程概念 进程的特征 进程状态 进程控制块 进程概念 是程序的一次执行过程&#xff0c;是系统进行资源分配和处理机调度的一个独立单位。 是一个运行中程序的描述&#xff0c;通过描述信息中的内存指针可以找到内存中运行的程序代码及数据&#xff0c;并且通过上下文…...