[论文梳理] 足式机器人规划控制流程 - 接触碰撞的控制 - 模型误差 - 自动驾驶车的安全合规(4个课堂讨论问题)
目录
问题 1:足式机器人运动规划 & 控制的典型流程 (pipline)
1.1 问题
1.2 目标
1.3 典型流程(Pipeline)
1.3.1 环境感知(Perception)
1.3.2 高层规划(High-Level Planning)
1.3.3 足迹规划(Footstep Planning)
1.3.4 身体轨迹生成(Body Trajectory Generation / Trajectory Optimization)
补充论文
1.3.5 全身控制(Whole-Body Control, WBC)
1.3.6 反馈闭环
问题 2:接触事件建模 & 混合系统控制
2.1 问题
2.2 背景
2.3 接触建模方法
2.4 混合系统控制方法
问题 3:处理模型误差
3.1 问题
3.2 背景
3.3 处理方法
问题 4:自动驾驶汽车的安全交互 & 驾驶模式差异
4.1 问题
4.2 意外交互中的安全 & 合规
4.3 普通驾驶 vs. 赛车 的区别
- 港科广 马老师 的机器人学 课堂讨论 (seminar) 记录
- 问题驱动的学习,有助于进一步提出有价值的问题
- 梳理机器人运动规划和控制领域的主流问题和技术
- 以问题为框架,梳理论文更高效
问题 1:足式机器人运动规划 & 控制的典型流程 (pipline)
1.1 问题
足式机器人 因其在复杂地形中的高机动性而备受关注。那么,足式机器人的 运动规划与控制 的 典型流程(pipeline)是怎样的?
1.2 目标
- 使足式机器人在复杂环境中稳定、高效地移动
1.3 典型流程(Pipeline)

1.3.1 环境感知(Perception)
- 使用传感器(激光雷达 LiDAR、摄像头 Camera、惯性测量单元 IMU、关节编码器、足底力传感器等)获取环境信息(地形、障碍物)和机器人自身状态(位置、姿态、速度、接触状态)
- 生成环境地图(如点云图、栅格图、高程图)和估计机器人状态(State Estimation)。状态估计通常融合 IMU、运动学和接触信息

1.3.2 高层规划(High-Level Planning)
- 根据任务目标(如“到达 A 点”)和环境地图,规划出一条全局路径(通常是机器人身体中心 质心 (CoM) [质量中心] 的路径),避开大的障碍物。常用算法如图搜索(A*, RRT*)
- 最新的接入LLM的高层规划导航方法有:
![]()
AAAI-2024 | 视觉语言导航-NavGPT: [2305.16986] NavGPT: Explicit Reasoning in Vision-and-Language Navigation with Large Language Models (arxiv.org)
1.3.3 足迹规划(Footstep Planning)
- 根据高层规划的路径和局部地形信息,规划出一系列离散的足底落点位置和时间。
- 需要考虑:运动学可达性(腿长限制)、运动稳定性(如基于 ZMP - Zero Moment Point、Capture Point 的判据)、地形适应性(寻找平坦、稳固的落脚点)、避免碰撞等

1.3.4 身体轨迹生成(Body Trajectory Generation / Trajectory Optimization)
- 根据规划好的足迹,生成机器人身体(CoM)和摆动腿(Swing Leg)的连续运动轨迹
- 通常是一个优化问题,目标是平滑、节能、稳定,同时满足动力学约束(如 ZMP 约束)、运动学约束和足迹约束

补充论文
- 其它的轨迹生成的工作(不是全身轨迹,只是手臂轨迹生成)
![]()
ICL伦敦帝国理工-2023年的工作: [2309.07550] Naturalistic Robot Arm Trajectory Generation via Representation Learning (arxiv.org)
- 最新的接入LLM的端到端视觉-语言-动作模型有:(直接从感知 -> 动作轨迹生成)
![]()
Google 2023年的 RT-2 的端到端训练:在机器人和公开数据上共同微调了一个预训练的视觉-语言模型(VLM)。得到的模型接收机器人摄像头图像,语言指令,当前动作,并直接预测机器人执行的动作 ![]()
类似于LLaVA用transformer做next token prediction;输入:视觉token+文本token+先前动作token;输出:动作token (做下一步的规划控制)
1.3.5 全身控制(Whole-Body Control, WBC)
- 这是最底层的控制。根据期望的身体轨迹、足部轨迹和接触状态,计算需要施加到每个关节的力矩(Torque)
- 通常也表述为一个优化问题(如二次规划 QP),目标是精确跟踪期望运动,同时满足多个任务和约束:
- 任务(优先级可能不同): 保持身体姿态、跟踪 CoM 轨迹、跟踪摆动腿轨迹、维持接触力等。
- 约束: 关节角度/速度/力矩限制、摩擦力约束(Friction Cone)、接触运动学约束(着地脚速度为零)
- 常用方法包括基于任务空间/操作空间(Task/Operational Space)的控制、基于逆动力学的控制等。

1.3.6 反馈闭环
- 整个流程是闭环的。感知到的实际状态会反馈给规划和控制层,用于纠正偏差
- 例如,如果实际落脚点与计划不符,或身体姿态发生倾斜,控制器会实时调整

问题 2:接触事件建模 & 混合系统控制
2.1 问题
接触事件 会导致系统状态发生不连续的跳变(例如速度突变)。我们如何有效地在 系统动力学 中为这种接触进行 建模?对于这类具有 非光滑动力学 特性的 混合系统(hybrid systems),我们又该如何进行 控制?
2.2 背景
- 接触(如机器人脚落地、物体碰撞)是许多物理系统中常见的现象。它会导致速度、加速度等状态量瞬间改变,使得系统的动力学模型在接触点变得不连续、非光滑。这类系统既包含连续变化的动态(如空中飞行),又包含离散的事件(接触瞬间),因此被称为“混合系统”
2.3 接触建模方法
- 刚体碰撞模型(Impact Maps): 这是最经典的方法之一。假设碰撞时间无限短,利用冲量-动量定理来计算碰撞后的速度。通常会引入“恢复系数”(Coefficient of Restitution, e)来描述碰撞的能量损失程度(e=1 为完全弹性碰撞, e=0 为完全非弹性碰撞)。对于多点接触或复杂几何体,需要考虑接触点的位置、法线方向以及摩擦(如库仑摩擦模型)
- 连续接触力模型(Penalty Methods / Regularization): 这种方法避免了不连续性。它将接触力模拟为非常“硬”的弹簧和阻尼器。当物体相互穿透时,会产生一个非常大的排斥力将它们推开。优点是模型是连续的,易于仿真和控制设计;缺点是需要选择合适的刚度和阻尼系数,可能导致数值计算上的“刚性问题”(stiffness),并且物理真实性可能不如碰撞模型
- 互补约束(Complementarity Constraints): 这是目前在机器人学和仿真中非常流行且物理意义明确的方法。它将接触条件(如:不穿透距离 d≥0、接触力 fn≥0、两者不能同时大于零 d⋅fn=0)以及摩擦力(如最大静摩擦力约束)表示为一组数学上的互补约束(通常是线性互补问题 LCP 或非线性互补问题 NCP)。这种方法能够精确地描述“接触/分离”的逻辑切换
- 事件驱动方法(Event-Driven): 精确地检测接触事件发生的时间点,然后在事件点切换动力学模型或应用冲击模型。这在仿真中很常用,但在实时控制中可能较难实现
2.4 混合系统控制方法
- 分段控制/切换系统理论(Switched Systems): 为系统的每种模态(接触/非接触)分别设计控制器,并设计切换逻辑来保证稳定性。挑战在于处理切换瞬间的状态跳变和保证切换过程的稳定性
- 模型预测控制(MPC): MPC 天然适合处理约束。可以将互补约束或接触力约束直接纳入优化问题中,预测未来一段时间的系统行为并计算最优控制输入。对于混合系统,需要使用混合整数规划(Mixed-Integer Programming)或专门处理互补约束的优化算法
- 能量/耗散理论(Passivity-Based Control): 利用系统的能量特性来设计控制器,特别是在处理接触时的能量交换和耗散
- 力/阻抗控制(Force/Impedance Control): 不直接控制位置,而是控制机器人与环境交互时的力或表现出的机械阻抗(力与位移/速度的关系)。这对于处理接触时的不确定性和保证柔顺性非常有效。
- 基于学习的控制: 利用强化学习等方法让系统自主学习如何在接触中稳定运动
问题 3:处理模型误差
3.1 问题
模型 总归是 近似 的。我们如何处理模型中存在的 误差?
3.2 背景
- 任何数学模型都是对现实世界的简化和近似。误差来源包括:参数不确定(质量、摩擦系数未知)、未建模的动态(如柔性、驱动器延迟)、传感器噪声、环境干扰等
3.3 处理方法
- 鲁棒控制(Robust Control): 设计控制器时就考虑模型不确定性的存在范围,目标是即使在最坏的模型误差情况下,系统依然能保持稳定并满足一定的性能指标。常用方法包括 H-infinity 控制、滑模控制(Sliding Mode Control)等。滑模控制对匹配不确定性(matching uncertainty)尤其鲁棒
- 自适应控制(Adaptive Control): 控制器能够在线估计模型参数或不确定性的大小,并根据估计结果调整自身的控制律,以适应模型变化
- 迭代学习控制(Iterative Learning Control, ILC): 适用于重复性任务。通过每次试验的误差来修正下一次试验的控制输入,逐步提高性能,对模型精度要求不高
- 基于观测器的控制: 设计状态观测器(如卡尔曼滤波器、扩展卡尔曼滤波器、无迹卡尔曼滤波器、粒子滤波器等)来估计系统内部状态和干扰,并将估计值用于反馈控制,以补偿模型误差和噪声的影响
- 数据驱动/学习方法:
- 系统辨识(System Identification): 在控制设计前,通过实验数据更精确地估计模型参数或建立数据驱动模型
- 残差建模(Residual Modeling): 用机器学习模型(如高斯过程、神经网络)来学习“标称模型”(nominal model)与实际系统之间的差异(残差),并将这个学习到的残差加入到控制设计中
- 强化学习(Reinforcement Learning): 直接从与环境的交互中学习最优控制策略,可以不依赖精确的模型
- 增加反馈增益: 在一定范围内,提高反馈控制器的增益可以增强系统抑制干扰和克服模型误差的能力,但过高的增益可能导致系统不稳定或放大噪声
问题 4:自动驾驶汽车的安全交互 & 驾驶模式差异
4.1 问题
自动驾驶汽车 有时需要进行 激进驾驶(aggressive driving)并与其它车辆进行复杂的 交互。在这种 意外交互 发生时,我们如何保证车辆行为的 安全 和 合规(compliant)?此外,普通驾驶 和 赛车(car racing)之间有什么 区别?
4.2 意外交互中的安全 & 合规
- 环境感知与预测: 精确感知周围车辆、行人、障碍物的位置、速度和意图。利用运动模型、交互模型甚至机器学习模型预测它们未来的行为轨迹
- 风险评估: 实时评估潜在的碰撞风险(如 Time-to-Collision, TTC)和其他危险情况
- 决策规划:
- 规则遵从: 严格遵守交通规则(如保持车道、安全距离、让行规则)。形式化方法(如 RSS - Responsibility-Sensitive Safety)可以提供可验证的安全保证
- 防御性驾驶策略: 预留足够的安全裕度,对其他道路使用者的不确定行为保持警惕,选择风险最低的策略
- 应急处理(Contingency Planning): 预先设计好应对突发危险情况(如前方急刹、鬼探头)的紧急避险策略(紧急制动、紧急变道),并能在极短时间内触发执行
- 运动控制: 精确、平稳地执行规划出的轨迹,同时具备快速响应能力以执行紧急操作
- 冗余与容错: 在传感器、计算单元、执行器等关键部件上采用冗余设计,确保单一故障不会导致灾难性后果
- V2X 通信(Vehicle-to-Everything): 与其他车辆、基础设施通信,提前获取危险警告或意图信息,有助于协同决策,但不能完全依赖
4.3 普通驾驶 vs. 赛车 的区别
- 目标(Objective):
- 普通驾驶:安全、舒适、高效(节能、省时)、遵守交通规则是首要目标
- 赛车:唯一目标是最小化单圈时间。在规则允许范围内,将车辆性能发挥到极限
- 运行环境(Environment):
- 普通驾驶:开放道路,环境复杂多变,充满不确定性(其他车辆、行人、信号灯、天气等)。需要遵守统一的交通法规
- 赛车:封闭赛道,环境相对可控,对手是专业的赛车手(行为更激进但也相对可预测),有特定的比赛规则
- 车辆极限(Vehicle Limits):
- 普通驾驶:通常在车辆的远低于极限的范围内运行,追求平稳和舒适
- 赛车:持续在车辆的物理极限(轮胎抓地力、发动机功率、刹车性能)边缘驾驶
- 驾驶策略(Strategy):
- 普通驾驶:保持车道、平稳加减速、保持安全距离
- 赛车:寻找最优“赛车线”(Racing Line),最大化利用赛道宽度,进行极限刹车、最大加速度出弯,容忍甚至利用轮胎的小幅滑移(Slip Angle)
- 风险容忍度(Risk Tolerance):
- 普通驾驶:极低,以避免任何事故为目标
- 赛车:较高,为了追求速度,可以接受一定的失控风险(如打滑、冲出赛道)
- 控制算法侧重:
- 普通驾驶:侧重安全性(碰撞避免)、平顺性、规则遵守、能耗优化
- 赛车:侧重极限性能下的轨迹跟踪、状态估计(如轮胎滑移率)、最优控制(如最小时间 MPC)
相关文章:
[论文梳理] 足式机器人规划控制流程 - 接触碰撞的控制 - 模型误差 - 自动驾驶车的安全合规(4个课堂讨论问题)
目录 问题 1:足式机器人运动规划 & 控制的典型流程 (pipline) 1.1 问题 1.2 目标 1.3 典型流程(Pipeline) 1.3.1 环境感知(Perception) 1.3.2 高层规划(High-Level Planning) 1.3.3 …...
初中级前端面试全攻略:自我介绍模板、项目讲解套路与常见问答
为了给面试官留下专业而亲切的第一印象,自我介绍要突出与岗位相关的技能和项目经验,同时以自己擅长的领域开放式结尾。通常可以按照以下思路组织自我介绍内容:首先简单介绍个人信息和工作年限,然后列出精通的前端技术栈…...
Android开发中svg转xml工具使用
要使用 svg2vector-cli 工具通过命令行将 SVG 文件转换为 Android 可用的 XML 矢量图标文件,可以单个文件转换或者整个文件夹批量转换,以下是详细的步骤和说明: 1. 准备工作 1.1 下载工具 首先需要下载 svg2vector-cli-1.0.0.jar 或更高版本…...
爬虫技术入门:基本原理、数据抓取与动态页面处理
引言 在当今数据驱动的时代,网络爬虫技术已成为获取和分析互联网数据的重要手段。无论是搜索引擎的网页收录、竞品数据分析,还是学术研究的语料收集,爬虫技术都发挥着关键作用。本文将深入浅出地讲解爬虫的基本原理,分析它能获取…...
AI预测3D新模型百十个定位预测+胆码预测+去和尾2025年4月27日第65弹
从今天开始,咱们还是暂时基于旧的模型进行预测,好了,废话不多说,按照老办法,重点8-9码定位,配合三胆下1或下2,杀1-2个和尾,再杀6-8个和值,可以做到100-300注左右。 (1)定…...
服务器数据备份,服务器怎么备份数据呢?
企业数据量呈指数级增长,服务器数据备份已成为保障业务连续性、抵御勒索攻击与合规审查的核心技术环节。当前,服务器数据备份方案需兼顾数据完整性、恢复时效性、存储经济性三大核心诉求,其实现路径可根据技术架构、数据规模及容灾等级划分为…...
语音识别质量的跟踪
背景 这个项目是用来生成结构化的电子病历的。数据的来源是医生的录音。中间有一大堆的处理,语音识别,关键字匹配,结构化处理,病历编辑......。最多的时候给上百家医院服务。 语音识别质量的跟踪 一、0225医院的训练后的情况分…...
【数据挖掘】时间序列预测-时间序列的平稳性
时间序列的平稳性 (1)平稳性定义(2)平稳性处理方法2.1 差分法2.2 季节调整(Seasonal Adjustment)2.3 趋势移除(Detrending)2.4 对数转换(Logarithmic Transformation&…...
成都蒲江石象湖旅游攻略之石象湖郁金香最佳观赏时间
石象湖坐落于成都蒲江,拥有绝美的郁金香花海,吸引了很多的游客。如果大家想要观赏比较诱惑人的郁金香,那自然就应该知道正确的观赏时间。 心想郁金香合适的时间是每年的3月份到3月底。石象湖会还会举办盛大的郁金香节,在花园内有数…...
大模型、知识图谱和强化学习三者的结合,可以形成哪些研究方向?
大模型(Large Language Models, LLMs)、知识图谱(Knowledge Graph, KG)与强化学习(Reinforcement Learning, RL)作为人工智能领域的三大核心技术,其融合正推动着认知智能迈向新高度。本文结合2023-2025年的最新研究成果,系统梳理三者结合的七大科研方向及其技术路径。 …...
Linux文件操作
在C语言中,我们已经学习了文件相关的知识,那么在Linux中我们为什么还要再来学习文件呢?这是因为C语言中和Linux中,"文件"是2个不同的概念。所以我们要来学习Linux中对文件的操作。 在学习之前,我们先来回顾一…...
PostSwigger Web 安全学习:CSRF漏洞3
CSRF 漏洞学习网站:What is CSRF (Cross-site request forgery)? Tutorial & Examples | Web Security Academy CSRF Token 基本原理 CSRF Token 是服务端生成的唯一、随机且不可预测的字符串,用于验证客户端合法校验。 作用:防止攻击…...
【Node.js 】在Windows 下搭建适配 DPlayer 的轻量(简陋)级弹幕后端服务
一、引言 DPlayer官网:DPlayer 官方弹幕后端服务:DPlayer-node MoePlayer/DPlayer-node:使用 Docker for DPlayer Node.js 后端(https://github.com/DIYgod/DPlayer) 本来想直接使用官网提供的DPlayer-node直接搭建…...
淘宝tb.cn短链接生成
淘宝短链接简介 1. 一键在线生成淘宝短链接tb.cn,m.tb.cn等 2. 支持淘宝优惠券短链接等淘宝系的所有网址 3. 生成的淘宝短链接是官方的,安全稳定有保证 4.适合多种场景下使用,如:网站推广,短信推广 量大提供api接口࿰…...
在web应用后端接入内容审核——以腾讯云音频审核为例(Go语言示例)
腾讯云对象存储数据万象(Cloud Infinite,CI)为用户提供图片、视频、语音、文本等文件的内容安全智能审核服务,帮助用户有效识别涉黄、违法违规和广告审核,规避运营风险。本文以音频审核为例给出go语言示例代码与相应结…...
优化无头浏览器流量:使用Puppeteer进行高效数据抓取的成本降低策略
概述 使用 Puppeteer 进行数据抓取时,流量消耗是一个重要考虑因素。特别是在使用代理服务时,流量成本可能显著增加。为了优化流量使用,我们可以采用以下策略: 资源拦截:通过拦截不必要的资源请求来减少流量消耗。请求…...
【C语言】fprintf与perror对比,两种报错提示的方法
它们的主要区别在于 信息来源 和 自动包含的系统错误详情。 1. fprintf(stderr, "自定义错误信息\n"); 功能: 这是标准库中的一个通用格式化输出函数。你可以用它向任何文件流(包括 stdout 标准输出, stderr 标准错误, 或任何用 fopen 打开的文件&#x…...
C语言复习笔记--内存函数
在复习完字符函数和字符串函数之后,今天让我们复习一下内存函数吧.这一块的东西不太多,并且与之前的字符串函数有一些地方很相似,所以这里应该会比较轻松. memcpy使用和模拟实现 老规矩,先看函数原型 void * memcpy ( void * destination, const void * source, size_t num );…...
前端面试高频算法
前端面试高频算法 1 排序算法;1.1 如何分析一个排序算法1.1.1 执行效率3.1.2 内存消耗1.1.3 稳定性 1.2 冒泡排序(Bubble Sort)1.3 插入排序(Insertion Sort)1.4 选择排序(Selection Sort)1.5 归…...
云原生--核心组件-容器篇-4-认识Dockerfile文件(镜像创建的基础文件和指令介绍)
1、Dockerfile的定义与作用 定义: Dockerfile是一个文本文件,包含一系列Docker指令,用于自动化构建Docker镜像。Docker 在构建镜像时会按照Dockerfile中的指令逐步执行,每一行指令都会生成一个新的镜像层(layer&#x…...
13.组合模式:思考与解读
原文地址:组合模式:思考与解读 更多内容请关注:7.深入思考与解读设计模式 引言 在软件开发中,是否曾经遇到过这样一种情况:你有一个对象,它本身很简单,但是它包含了其他类似的对象。随着系统变得越来越复…...
Pycharm(十七)生成器
一、生成器介绍 1.1 概述 生成器指的是Generator对象,它不再像以往一样,一次性生成所有的数据,而是用一个,再生成一个,基于用户写的规则(条件)来生成数据,如果条件不成立ÿ…...
盛元广通实验材料管理系统-实验室管理系统-LIMS
一、引言 在当下科学研究及各类实验日益频繁的背景下,实验材料管理成为实验室高效运作的核心环节。从“人工低效”到“智能自动化”,盛元广通可覆盖实验材料的采购、存储、使用、追踪等全流程,从功能适配性、技术性能、成本效益、供应商服务…...
检查 NetCDF Fortran的版本
执行 nf-config --all命令后,它会输出一堆信息,大致像这样: This netCDF-Fortran version: 4.6.0 netCDF-Fortran installation dir: /usr/local/netcdf4 Fortran compiler: gfortran Fortran compiler flags: -g -O2 Fortran preprocesso…...
MySQL 存储引擎与服务体系深度解析
一、存储引擎核心概念 基本定义 存储引擎:MySQL服务的核心组件,负责数据的存储、检索和管理版本演进: MySQL 5.0/5.1 默认使用MyISAM引擎MySQL 5.5/5.6+ 默认采用InnoDB引擎关键特性 不同存储引擎采用不同的数据存储结构和处理机制直接影响表的CRUD操作性能和数据安全特性作…...
乐企数电发票分布式发票号码生成重复的问题修复思路分享
文章目录 1.前言2.解决思路2.1错误姿势2.2歪打正着2.3正确姿势 3.总结 1.前言 由于之前接了乐企数电开票,服务上线之后,使用的公司少没有啥问题,后面切换了两家日开票量大的公司上线之后,就发现发票号码生成重复了,后面…...
多级缓存架构设计与实践经验
多级缓存架构设计与实践经验 在互联网大厂Java求职者的面试中,经常会被问到关于多级缓存的架构设计和实践经验。本文通过一个故事场景来展示这些问题的实际解决方案。 第一轮提问 面试官:马架构,欢迎来到我们公司的面试现场。请问您对多级…...
LCD1602液晶显示屏详解(STM32)
目录 一、介绍 二、传感器原理 1.原理图编辑 2.接口说明 三、程序设计 main文件 lcd1602.h文件 lcd1602.c文件 四、实验效果 五、资料获取 项目分享 一、介绍 LCD1602A字符型液晶显示模块是专门用于显示字母、数字元、符号等的点阵型液晶显示模块。分4位和8位数据…...
Golang | 集合求交
文章目录 bitmap求交集2个有序链表多个有序链表跳表 bitmap求交集 2个有序链表 多个有序链表 为什么非最大的所有都要往后移动呢?因为现在已经知道交集即使有,也最小都是这个目前最大的了,其他不是最大的不可能是交集,所有除了最大…...
手机充电进入“秒充“时代:泡面刚下锅,电量已满格
现代人的生活节奏越来越快,手机充电技术也在飞速发展。从最初的"充电一整晚"到如今的"秒充"时代,充电效率的提升正在悄然改变着我们的生活习惯。最新数据显示,目前最快的手机充电技术仅需4分30秒就能充满一部手机的电量&…...
网站字体文件过大 导致字体从默认变成指定字体的时间过长
1.选择字体中只用到的字符集较小的包 只用到了数字,所以使用了 xx-sans.ttf的版本(86kb) 2.转换ttf格式为woff2 转换后26kb 3.使用字体 // 定义字体 font-face {font-family: "myFont";src: url(/assets/fonts/myFont.woff2) format(woff2);font-weigh…...
WPF常用技巧汇总 - Part 2
WPF常用技巧汇总-CSDN博客 主要用于记录工作中发现的一些问题和常见的解决方法。 目录 WPF常用技巧汇总-CSDN博客 1. DataGrid Tooltip - Multiple 2. DataGrid Tooltip - Cell值和ToolTip值一样 3. DataGrid Tooltip - Cell值和ToolTip值不一样 4. DataGrid - Ctrl A /…...
C++中析构函数
析构函数 析构函数(Destructor)是类的一种特殊成员函数,用于在对象的生命周期结束时执行清理操作,他的主要作用是释放对象占用资源,例如动态分配的内存,文件句柄或网络连接等。 特点 名称与类名称相同 单…...
树莓派超全系列教程文档--(44)如何在树莓派上编译树莓派内核
如何在树莓派上编译树莓派内核 构建内核下载内核源代码 本地构建内核构建配置使用 LOCALVERSION 自定义内核版本构建安装内核 文章来源: http://raspberry.dns8844.cn/documentation 原文网址 构建内核 操作系统预装的默认编译器和链接器被配置为构建在该操作系统…...
flask返回文件的同时返回其他参数
参考:flask实现上传文件与下载文件_flask 文件上传和下载-CSDN博客 在 Flask 中,返回文件的同时附加额外参数(如处理时间)可以通过 自定义 HTTP 响应头 或 返回 JSON 数据与文件结合 的方式实现。以下是具体方法和示例: 方法 1:通过 HTTP 响应头 附加参数(推荐) 将参…...
C++23 std::move_only_function:一种仅可移动的可调用包装器 (P0288R9)
文章目录 一、定义与基本概念1.1 定义1.2 基本概念 二、特点2.1 仅可移动性2.2 支持多种限定符2.3 无target_type和target访问器2.4 强前置条件 三、使用场景3.1 处理不可复制的可调用对象3.2 性能优化3.3 资源管理 四、与其他可调用包装器的对比4.1 与std::function的对比4.2 …...
Zookeeper实现分布式锁实战应用
Zookeeper实现分布式锁实战应用示例 1. 分布式锁概述 在分布式系统中,当多个进程或服务需要互斥地访问共享资源时,就需要分布式锁来协调。Zookeeper因其强一致性和临时节点特性,非常适合实现分布式锁。 2. Zookeeper实现分布式锁的核心原理…...
使用 Playwright 构建高效爬虫:原理、实战与最佳实践
随着网站前端技术日益复杂,传统的基于请求解析(如 requests、BeautifulSoup)的爬虫在处理 JavaScript 渲染的网站时变得力不从心。Playwright,作为微软推出的一款强大的自动化浏览器控制框架,不仅适用于自动化测试,也成为了处理现代网站爬取任务的利器。 本篇文章将带你…...
ComfyUI for Windwos与 Stable Diffusion WebUI 模型共享修复
#工作记录 虽然在安装ComfyUI for Windwos时已经配置过extra_model_paths.yaml 文件,但升级ComfyUI for Windwos到最新版本后发现原先的模型配置失效了,排查后发现,原来是 extra_model_paths.yaml 文件在新版本中被移动到了C盘目录下&#x…...
【RabbitMQ消息队列】详解(一)
初识RabbitMQ RabbitMQ 是一个开源的消息代理软件,也被称为消息队列中间件,它遵循 AMQP(高级消息队列协议),并且支持多种其他消息协议。 核心概念 生产者(Producer):创建消息并将其…...
【MySQL数据库入门到精通-08 约束】
文章目录 4、约束4.1 概述4.2 约束演示1. 根据需求,完成表的创建2. SQL数据库3. 结果 4.3 外键约束4.3.1 介绍1. 根据需求,完成表的创建2. SQL数据库3. 结果4.3.2 外键约束建立1. 语法2. SQL语句3. 现象4.3.3 外键删除更新行为1. 知识点2.SQL3.结果 4、约…...
C++笔记-模板进阶和继承(上)
一.模板进阶 1.1非模板类型参数 那之前学过的stack举例,在这之前我们如果要用N,就要用宏来定义,但是宏毕竟有局限性: 如果我要用到两个stack,一个要求10个空间,另一个要求100空间呢? 这时候…...
云计算赋能质检LIMS的价值 质检LIMS系统在云计算企业的创新应用
在云计算技术高速发展的背景下,实验室信息化管理正经历深刻变革。质检LIMS(实验室信息管理系统)作为实验室数字化转型的核心工具,通过与云计算深度融合,为企业提供了高弹性、高安全性的解决方案。本文将探讨质检LIMS在…...
2025系统架构师---数据抽象(Data Abstraction)与面向对象架构风格
引言 在软件系统复杂度与规模不断攀升的今天,如何设计出可扩展、易维护且能快速响应需求变化的架构,是每一位系统架构师面临的挑战。数据抽象(Data Abstraction)与面向对象架构风格(Object-Oriented Architectu…...
[python] 基于WatchDog库实现文件系统监控
Watchdog库是Python中一个用于监控文件系统变化的第三方库。它能够实时监测文件或目录的创建、修改、删除等操作,并在这些事件发生时触发相应的处理逻辑,因此也被称为文件看门狗。 Watchdog库的官方仓库见:watchdog,Watchdog库的官…...
缺省处理、容错处理
布尔判定 假:false 0 null undefined NaN 可选符.?和?? let obj {name: jim,data: {money: 0,age: 18,fn(a){return a}} }1、如果左侧的值为null或者undefined,则使用右侧值。需要使用"??" obj?.data?.a…...
Taro on Harmony :助力业务高效开发纯血鸿蒙应用
背景 纯血鸿蒙逐渐成为全球第三大操作系统,业界也掀起了适配鸿蒙原生的浪潮,用户迁移趋势明显,京东作为国民应用,为鸿蒙用户提供完整的购物体验至关重要。   去年 9 月,京东 AP…...
Java基础——排序算法
排序算法不管是考试、面试、还是日常开发中都是一个特别高频的点。下面对八种排序算法做简单的介绍。 1. 冒泡排序(Bubble Sort) 原理:相邻元素比较,每一轮将最大元素“冒泡”到末尾。 示例数组:[5, 3, 8, 1, 2] pub…...
【操作系统原理07】输入/输出系统
文章目录 零.大纲一.I/O设备的概念和分类0.大纲1.什么是I/O设备2.I/O分类 二.I/O控制器0.大纲1.I/O设备的电子部件(I/O控制器)2.IO控制器组成3.内存映像I/O VS 寄存器独立编址 三.I/O控制方式0.大纲与总结1.程序直接控制方式(1) 操…...
IM云端搜索全面升级,独家能力拓展更多“社交连接”玩法
在这个数字时代,网络让信息传递前所未有的便捷,但同时,海量数据堆积也让内容检索变得像大海捞针。尤其是在我们日常工作生活中最常用的即时通信软件中,信息的快速查找和精准定位正变得越来越重要。 但传统的本地搜索功能受限于设…...