工业级实时控制核心技术解析(C++调度算法深度剖析)

第一章:工业级实时控制的核心挑战

在现代智能制造与自动化系统中,工业级实时控制要求系统能够在严格的时间约束下完成关键任务。任何延迟或抖动都可能导致设备失控、生产中断甚至安全事故。因此,确保控制系统具备高确定性与低延迟响应能力成为设计中的首要目标。

硬实时与软实时的区别

实时系统通常分为硬实时和软实时两类。硬实时系统要求任务必须在截止时间内完成,否则将导致严重后果;而软实时系统允许偶尔超时,仅影响服务质量。例如,在机器人关节控制中,位置反馈必须在毫秒级内处理完毕,这属于硬实时范畴。

常见性能瓶颈

  • CPU调度延迟:通用操作系统默认调度策略无法保证关键线程优先执行
  • 内存访问抖动:缓存未命中或内存分配延迟影响执行一致性
  • 外设I/O延迟:传统驱动架构引入不可预测的中断处理时间

优化策略示例:Linux实时补丁配置

为提升实时性能,常采用PREEMPT-RT补丁增强Linux内核。以下是启用抢占式内核的关键步骤:
# 下载并应用实时补丁
wget https://www.kernel.org/pub/linux/kernel/projects/rt/5.15/patch-5.15.60-rt47.patch
patch -p1 < patch-5.15.60-rt47.patch

# 配置内核选项
make menuconfig
# 启用选项:Kernel Features ---> Preemption Model (Fully Preemptible Kernel)
上述操作使内核可被高优先级任务随时中断,显著降低调度延迟。

实时性能指标对比

系统类型平均延迟(μs)最大抖动(μs)适用场景
标准Linux501000+数据采集
PREEMPT-RT Linux1580运动控制
专用RTOS520安全关断系统
graph TD A[传感器输入] --> B{是否超时?} B -- 是 --> C[触发异常处理] B -- 否 --> D[执行控制算法] D --> E[输出执行指令] E --> F[下一周期]

第二章:C++实时调度算法理论基础

2.1 实时系统分类与任务模型构建

实时系统根据时间约束的严格程度可分为硬实时、软实时和准实时系统。硬实时系统要求任务必须在截止时间内完成,否则会导致灾难性后果,如航空航天控制系统;软实时系统允许偶尔超时,如视频流播放;准实时则介于两者之间。
任务模型类型
常见的任务模型包括周期性任务、非周期性任务和偶发任务。周期性任务以固定间隔触发,适用于传感器数据采集等场景。
任务类型触发方式典型应用
周期性定时触发电机控制
偶发事件驱动紧急报警
周期性任务调度示例

// 定义周期性任务结构
typedef struct {
    void (*task_func)(); // 任务函数指针
    int period_ms;       // 执行周期(毫秒)
    int deadline_ms;     // 截止时间
} periodic_task_t;
该结构体封装了任务执行逻辑与时间参数,period_ms定义调度周期,deadline_ms用于实时性验证,是构建可调度性分析的基础。

2.2 周期性任务调度的经典理论(Rate-Monotonic, EDF)

在实时系统中,周期性任务的调度策略直接影响系统的可预测性与响应能力。两种经典算法——速率单调调度(Rate-Monotonic, RM)和最早截止时间优先(Earliest Deadline First, EDF)——构成了该领域的理论基石。
速率单调调度(RM)
RM是一种静态优先级调度算法,优先级与任务周期成反比:周期越短,优先级越高。该策略在单处理器上对周期性任务具有最优的可调度性,其利用率上限为 $ n(2^{1/n} - 1) $,其中 $ n $ 为任务数。
最早截止时间优先(EDF)
EDF采用动态优先级机制,总是执行截止时间最近的任务。其理论利用率可达100%,但对时钟精度和任务模型依赖较高。
算法优先级类型最大利用率适用场景
RM静态$ n(2^{1/n} - 1) $硬实时、周期固定
EDF动态100%软/硬实时、截止时间敏感

// 简化的RM调度优先级分配
struct Task {
    int period;
    int priority;
};

void assign_rm_priority(struct Task tasks[], int n) {
    for (int i = 0; i < n; i++) {
        tasks[i].priority = MAX_PERIOD / tasks[i].period; // 周期越短,优先级越高
    }
}
上述代码通过将任务周期的倒数映射为优先级,体现了RM的核心思想:高频任务获得更高执行权限。

2.3 C++中时间语义的精确建模与实现

在高性能系统中,时间语义的精确表达至关重要。C++11引入的``库为时间点、时长和时钟提供了类型安全的抽象。
核心组件与类型设计
`std::chrono::time_point`用于表示绝对时间,结合`std::chrono::steady_clock`可避免系统时钟调整带来的不确定性。

#include <chrono>
auto start = std::chrono::steady_clock::now();
// 执行操作
auto end = std::chrono::steady_clock::now();
auto duration = std::chrono::duration_cast<std::chrono::microseconds>(end - start);
上述代码通过`steady_clock`获取单调递增的时间点,`duration_cast`将差值转换为微秒级精度,适用于性能分析等场景。
高精度时间建模策略
  • 使用`nanoseconds`作为内部时间单位以统一计量
  • 避免依赖`system_clock`处理跨时区逻辑
  • 通过`duration`的算术运算实现时间偏移与累积

2.4 调度可判定性分析与响应时间计算

在实时系统中,调度可判定性分析用于判断任务集是否能在截止时间内被成功调度。常用方法包括速率单调分析(RMA)和最早截止时间优先(EDF)的可调度性测试。
响应时间计算公式
对于周期性任务 τᵢ,其最坏响应时间 Rᵢ 可通过迭代求解:

R_i = C_i + \sum_{j \in hp(i)} \left\lceil \frac{R_i}{T_j} \right\rceil C_j
其中,Cᵢ 为任务执行时间,Tⱼ 为高优先级任务 τⱼ 的周期,hp(i) 表示优先级高于 τᵢ 的任务集合。
可判定性判定流程
  • 按周期升序分配优先级(RMA策略)
  • 对每个任务迭代计算响应时间
  • 验证 Rᵢ ≤ Dᵢ(截止时间约束)
任务C (ms)T (ms)R (ms)D (ms)
τ₁2525
τ₂310510

2.5 中断延迟与上下文切换的量化评估

在实时系统中,中断延迟和上下文切换时间直接影响任务响应性能。精确测量这些指标对系统调优至关重要。
中断延迟构成
中断延迟包含硬件传播延迟、中断服务程序(ISR)入口延迟及调度器响应时间。典型嵌入式系统中,该值应控制在微秒级。
上下文切换开销测量
通过高精度计时器(如TSC)记录任务切换前后的时间戳:

__asm__ volatile("rdtsc" : "=a"(start_low), "=d"(start_high));
// 触发上下文切换
schedule();
__asm__ volatile("rdtsc" : "=a"(end_low), "=d"(end_high));
上述代码利用x86的rdtsc指令读取时间戳计数器,差值可换算为纳秒级切换耗时。两次读取需序列化以避免乱序执行影响精度。
典型测量结果对比
系统类型平均中断延迟(μs)上下文切换时间(μs)
Linux通用内核15–502–5
PREEMPT_RT补丁内核5–101–3
FreeRTOS2–40.5–2

第三章:基于C++的调度器设计与实现

3.1 高精度定时器与任务触发机制集成

在实时系统中,精确的时间控制是保障任务按时执行的核心。高精度定时器结合任务触发机制,能够实现微秒级的任务调度响应。
定时器与任务绑定模型
通过将定时器中断与任务队列关联,可在预定时间点自动激活对应任务。Linux 的 `timerfd` 与 epoll 结合使用是一种典型实现方式:

int fd = timerfd_create(CLOCK_MONOTONIC, 0);
struct itimerspec spec;
spec.it_value = (struct timespec){.tv_sec = 1, .tv_nsec = 0};
spec.it_interval = (struct timespec){.tv_sec = 0, .tv_nsec = 500000000}; // 500ms
timerfd_settime(fd, 0, &spec, NULL);
// 在 epoll 循环中监听 fd 可触发任务
上述代码设置了一个每 500 毫秒触发一次的周期性定时器。当定时器到期时,`epoll` 检测到可读事件,随即调用注册的任务处理函数,实现精准的任务调度。
性能对比
机制精度延迟抖动
普通 sleep毫秒级高
timerfd + epoll微秒级低

3.2 可配置优先级队列的模板化设计

在高并发任务调度系统中,优先级队列的灵活性直接影响整体性能。通过C++模板机制,可实现类型安全且高度复用的优先级队列结构。
泛型优先级队列定义
template<typename T, typename Comparator = std::less<T>>
class PriorityQueue {
private:
    std::vector<T> heap;
    Comparator comp;
public:
    void push(const T& item);
    void pop();
    const T& top() const;
};
上述代码利用模板参数`T`支持任意数据类型,`Comparator`允许外部注入排序逻辑,如自定义优先级比较规则。例如,使用`std::greater`可构建最小堆。
应用场景对比
场景数据类型比较器
任务调度TaskPriorityCompare
网络包处理PacketTimestampCompare

3.3 线程绑定与CPU亲和性的工业级封装

在高并发系统中,线程与CPU核心的高效绑定可显著降低上下文切换开销。通过CPU亲和性(CPU Affinity)机制,可将线程固定到特定核心,提升缓存局部性。
核心绑定策略设计
工业级封装通常采用位掩码控制线程绑定目标。Linux提供sched_setaffinity系统调用实现精细控制。

#define _GNU_SOURCE
#include <sched.h>

void bind_thread_to_core(int core_id) {
    cpu_set_t cpuset;
    CPU_ZERO(&cpuset);
    CPU_SET(core_id, &cpuset);
    pthread_setaffinity_np(pthread_self(), sizeof(cpuset), &cpuset);
}
上述代码将当前线程绑定至指定核心。参数core_id为逻辑CPU编号,CPU_SET宏设置对应位,系统调用生效后调度器仅在该核心调度此线程。
封装接口与策略表
为支持动态配置,常使用策略表管理绑定模式:
策略类型描述适用场景
ROUND_ROBIN轮询分配核心通用负载均衡
FIXED_MASTER主线程独占核心0低延迟主控线程
PACKED紧凑绑定前N核NUMA优化场景

第四章:典型工业机器人控制场景实战

4.1 多轴伺服同步控制中的硬实时保障

在多轴伺服系统中,硬实时性是确保各轴运动严格同步的核心要求。控制器必须在确定性时间内完成位置环、速度环和电流环的闭环计算。
实时操作系统调度机制
采用实时操作系统(RTOS)如RT-Preempt Linux或VxWorks,通过优先级抢占调度保证控制任务按时执行。关键控制线程被赋予最高优先级,避免被低优先级任务阻塞。
同步通信协议
使用EtherCAT等工业以太网协议实现微秒级同步。其分布式时钟机制可校准从站间时钟偏差:

// EtherCAT主站同步配置示例
ec_sync_info_t syncs[] = {
    {0, EC_DIR_OUTPUT},        // 输出同步
    {1, EC_DIR_INPUT},         // 输入同步
    {2, EC_DIR_OUTPUT | EC_DIR_INPUT, 2, sync_channels}
};
上述代码定义了同步通道,确保所有伺服驱动器在同一时钟周期内更新I/O数据,从而实现纳秒级同步精度。

4.2 急停响应与安全链路的低延迟处理

在工业自动化系统中,急停响应的可靠性直接关系到人身与设备安全。为确保安全链路的低延迟处理,通常采用硬接线与软件逻辑双重保护机制。
安全信号的优先级调度
实时操作系统(RTOS)通过中断驱动方式捕获急停信号,确保毫秒级响应。关键任务被赋予最高优先级,避免被低优先级任务阻塞。

// 急停中断服务例程示例
void EXTI15_10_IRQHandler(void) {
    if (EXTI_GetITStatus(EMERGENCY_STOP_PIN)) {
        Safety_Chain_DisablePower();  // 切断动力电源
        SetSystemState(SAFE_SHUTDOWN); // 进入安全状态
        EXTI_ClearITPendingBit(EMERGENCY_STOP_PIN);
    }
}
该代码注册GPIO中断,一旦检测到急停按钮触发,立即执行电源切断和状态切换,响应延迟低于5ms。
冗余通信路径设计
为提升链路可靠性,采用双通道CAN总线与安全继电器构成冗余架构:
通道类型平均延迟故障切换时间
CAN Bus A3.2ms1.8ms
CAN Bus B3.5ms

4.3 视觉引导抓取中的混合关键性任务协调

在视觉引导抓取系统中,多个关键任务如目标识别、姿态估计与机械臂控制需协同运行。为实现高效协调,常采用异步任务调度机制。
数据同步机制
通过共享内存与消息队列实现视觉模块与执行模块的数据同步。以下为基于ROS的订阅回调示例:

void imageCallback(const sensor_msgs::ImageConstPtr& msg) {
    cv_bridge::CvImagePtr cv_ptr;
    cv_ptr = cv_bridge::toCvCopy(msg, "bgr8");
    latest_image = cv_ptr->image; // 更新最新图像
}
该回调确保图像流持续更新,供后续检测模型调用。参数 msg 为ROS图像消息,cv_bridge 实现ROS与OpenCV格式转换。
任务优先级划分
  • 高优先级:碰撞检测、急停响应
  • 中优先级:抓取姿态计算
  • 低优先级:环境语义分割
该分层结构保障系统在复杂场景下的实时性与安全性。

4.4 基于Linux+PREEMPT_RT的部署调优实践

在实时性要求严苛的工业控制与嵌入式场景中,标准Linux内核难以满足微秒级响应需求。通过集成PREEMPT_RT补丁,将原本不可抢占的内核态代码转化为可抢占状态,显著降低调度延迟。
内核配置优化关键项
  • CONFIG_PREEMPT_RT:启用完整实时补丁功能
  • CONFIG_HZ_1000:提升系统时钟频率至1000Hz
  • CONFIG_NO_HZ_FULL:关闭非必要CPU的周期性tick
实时线程优先级设置示例

struct sched_param param;
param.sched_priority = 80; // 设置高优先级
if (sched_setscheduler(0, SCHED_FIFO, ¶m) == -1) {
    perror("sched_setscheduler failed");
}
该代码片段将当前线程调度策略设为SCHED_FIFO,并赋予较高静态优先级,确保其在就绪队列中优先执行,避免被低优先级任务阻塞。

第五章:未来演进方向与生态融合展望

服务网格与云原生的深度集成
随着微服务架构的普及,服务网格(Service Mesh)正逐步成为云原生生态的核心组件。Istio 和 Linkerd 已在生产环境中验证其流量管理、安全通信和可观测性能力。例如,某金融企业在 Kubernetes 集群中部署 Istio,通过以下配置实现 mTLS 加密通信:
apiVersion: security.istio.io/v1beta1
kind: PeerAuthentication
metadata:
  name: default
spec:
  mtls:
    mode: STRICT
该配置确保所有服务间通信默认启用双向 TLS,显著提升系统安全性。
边缘计算与分布式 AI 的协同演进
在智能制造场景中,边缘节点需实时处理传感器数据并执行推理任务。某汽车制造厂采用 KubeEdge 构建边缘集群,将训练好的模型通过 Helm Chart 部署至车间网关设备。典型部署流程包括:
  • 使用 EdgeMesh 实现跨区域服务发现
  • 通过 CRD 定义边缘应用生命周期策略
  • 集成 Prometheus + Grafana 实现边缘资源监控
开源生态与企业级平台的融合趋势
CNCF 技术雷达显示,Argo CD、Keda 和 OpenTelemetry 的采纳率年增长超过 60%。企业正在构建基于 GitOps 的统一控制平面。下表展示某运营商多云管理平台的技术栈整合方案:
功能域开源项目企业定制模块
持续交付Argo CD多租户权限网关
弹性伸缩Keda成本优化预测引擎

架构示意图:边缘节点通过 Service API 向中心控制面注册,事件驱动管道触发 Serverless 函数进行异常检测。

SpringBoot+Vue+Mysql社区医院信息平台(源码+文档) SpringBoot+Vue+Mysql学生宿舍信息管理系统 WEB端软件项目(源码+文档) 项目包含:①完整源码(后端+管理后台+用户前台);②数据库脚本文件;③万字论文文档;④开题报告;⑤答辩PPT;⑥项目运行视频教程。 项目架构: B/S 架构、MVC 分层设计 技术栈: Java、MySQL、SpringBoot、MyBatis-Plus、Token 权限校验、管理后台 Vue+ElementUI+ECharts、用户前台 Layui+jQuery、Maven 构建。 一、角色设计 学生用户: 注册登录、浏览宿舍信息、查询宿舍安排、在线报修、缴费查询、失物招领、桶装水预订、评论交流、收藏等。 商家用户: 注册登录、桶装水品牌与商品信息维护、预订订单查看与处理。 维修人员: 注册登录、查看待处理报修、接单维修、填写报修处理结果与进度反馈。 管理员: 学生管理、班级管理、宿舍信息管理、宿舍安排管理、报修处理管理、缴费信息管理、卫生检查与文明宿舍管理、失物招领管理、桶装水与商家管理、维修人员管理、公告资讯与轮播图管理等。 二、前台功能模块(学生端) 1. 首页展示:轮播图、宿舍公告、最新动态推荐、常用服务快速入口 2. 宿舍信息模块:宿舍列表、楼栋与房间条件筛选、宿舍详情查看、我的宿舍安排查询 3. 在线报修模块:在线提交宿舍设施报修申请、上传故障描述、查看报修进度与维修处理结果 4. 缴费模块:水电等缴费记录查询、缴费状态查看 5. 卫生检查与文明宿舍:宿舍卫生检查结果公示、文明宿舍展示 6. 失物招领模块:失物信息发布、招领信息发布、详情查看、评论互动 7. 桶装水预订:桶装水品牌与商品浏览、在线预订、我的预订记录查询 8. 假期留宿:假期留校申请提交、申请记录查询 9. 评论与收藏:信息评论、查看他人评论、评论回复互动、收藏感兴趣的内容 10. 个人中心... 立即下载

相关推荐

YOLOv8作物病害检测实战源码

这是一套基于YOLOv8n的农田病虫害目标检测系统,对叶片照片做目标检测,识别健康叶片、褐斑病、白粉病、锈病四类,并给出对应防治建议。全流程纯CPU可跑,配套交付完整Python源码、9章实战教程(md/html/pdf三种格式)、100张自造样本及YOLO标签、训练曲线与混淆矩阵截图、Tkinter界面和答辩PPT。 系统围绕五项功能展开:同一套推理逻辑覆盖图像、视频、摄像头三种来源;图形界面选文件即检测,画面叠彩色框标注病名与置信度,右侧面板同步给出症状与防治措施;检测记录自动写入CSV,统计页一键生成四类病害占比饼图;训练结束自动产出损失与精度曲线;内置防治建议文案库,检测命中即回填面板。 选型用YOLOv8n nano档,参数量约320万、权重约6.2MB,CPU单帧几十毫秒,小样本训练5到8分钟完成。数据由data_gen.py程序化绘制100张叶片图,固定随机种子,重跑分布一致,不依赖公开数据集。依赖全部锁版本,教程第7章整理了19条真实报错及排查方法,第8章给出换模型档、换PlantVillage数据集的迁移路径。 适合做计算机视觉方向课程设计或毕业设计的学生,也适合智慧农业方向想了解检测模型如何落进业务面板的学习者。不需要GPU,不需要系统学过目标检测,教程第3章会按需补齐原理。 使用时先pip install -r requirements.txt装好依赖,download_data.py下载预训练权重,data_gen.py生成样本后train.py训练,完成后用main.py infer批量检测或main.py gui启动界面。

如何用C++实现硬实时调度?工业机器人控制中的时间确定性保障方案

掌握C++在工业机器人控制中的实时调度算法,实现硬实时响应与时间确定性保障。适用于高精度运动控制场景,采用优先级调度与时间片轮转结合方法,确保任务按时执行。低延迟、高可靠性,助力工业自动化系统稳定运行,值得收藏。

GatherTide的博客 694

数据挖掘实战:决策树 + 聚类 + 关联规则,零 Key 离线可跑(Python 源码)

数据挖掘实战包。用 Python 标准库实现 CART 风格决策树、K-Means 聚类与 Apriori 关联规则,在虚构「星河便利店」会员表和购物篮上跑通分类、分群与购物篮分析,并给出准确率、轮廓系数、支持度/置信度/提升度。零第三方依赖、零 API Key 即可离线跑通。含 4 个样例、离线冒烟、中文 README(含「使用方法」)。均为作者原创可运行源码。MIT。作者 blog.youkuaiyun.com/mtl1994

别再用RTOS凑合了!纯C语言打造硬实时控制系统的秘密路径

掌握纯C语言实现硬实时控制的方法,摆脱RTOS性能瓶颈。适用于工业控制中对实时响应要求严苛的场景,通过底层优化与中断驱动设计提升系统可靠性与响应速度。无需操作系统依赖,资源占用更低,稳定性更强。值得收藏

FuncInk的博客 623

科技中介服务机构在技术供需对接中如何实现服务流程的自动化与标准化?.docx

科技中介服务机构在技术供需对接中如何实现服务流程的自动化与标准化?

产业园区如何高效对接企业技术需求与高校科研成果?.docx

科易网基于AI模型+行业大数据,在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,推出科技创新领域的AI+工具与数智化解决方案,推动科技创新与产业创新智能化发展。

EagleEye惊艳表现:单帧处理耗时18.7ms(P99),满足硬实时工业控制要求

本文介绍了如何在星图GPU平台上自动化部署EagleEye: DAMO-YOLO TinyNAS镜像,实现高效的工业视觉检测。该系统单帧处理耗时仅18.7ms(P99),满足硬实时工业控制要求,典型应用于生产线上的产品质量检测,显著提升自动化检测效率和精度。

weixin_42510201的博客 375

国央企创新负责人如何快速掌握本地科技资源分布与匹配情况?.docx

科易网基于AI模型+行业大数据,在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,推出科技创新领域的AI+工具与数智化解决方案,推动科技创新与产业创新智能化发展。

实时操作系统的“硬实时”和“软实时”到底是什么意思?以及如何区分?

在搞一些嵌入式操作系统的时候,经常会接触到硬实时 和 软实时 这两个词,怎么个硬法, 怎么就软了, 一般人对于这两个很难区分。《嵌入式实时操作系统RT-Thread设计与实现》一书中讲到了软实时与硬实时的概念,现摘录在此,供大家学习。实时系统主要关注 时间的正确性和功能的正确性。软实时与硬实时的区别可以用下图来表示:...

闲人的专栏 1万+

国央企创新负责人如何实现科技成果的精准识别与高效筛选?.docx

科易网基于AI模型+行业大数据,在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,推出科技创新领域的AI+工具与数智化解决方案,推动科技创新与产业创新智能化发展。

高校技术转移办公室人员如何系统化管理科技成果信息?.docx

科易网基于AI模型+行业大数据,在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,推出科技创新领域的AI+工具与数智化解决方案,推动科技创新与产业创新智能化发展。

嵌入式与C++工程师核心技能解析:从ARM、Linux到项目实战

在计算机系统开发领域,理解底层硬件架构与操作系统原理是构建可靠软件的基础。以广泛应用的ARM体系结构为例,其Cortex-M与Cortex-A系列分别针对实时控制与复杂应用场景,决定了裸机、RTOS或Linux等不同开发环境的选择。掌握Linux系统编程,特别是进程管理、文件I/O及网络通信等核心机制,是实现软硬件高效协同的关键技术价值。这些基础能力直接支撑了嵌入式设备与高性能服务器等核心应用场景的工程实现。本文聚焦于嵌入式与C++开发岗位的实际需求,系统梳理了从ARM平台、Linux驱动到现代C++特性等

weixin_30765505的博客 415

认知网络分析实战:用Python复现课堂对话研究(含LSA代码)

本文通过Python实战,详细演示了如何运用认知网络分析(ENA)和滞后序列分析(LSA)两种方法,对课堂对话数据进行深度挖掘。文章提供了从数据清洗、行为编码到网络构建、序列统计及可视化的完整代码流程,帮助教育研究者和数据分析师量化分析对话中的认知结构与动态互动模式,从而获得超越文本表面的研究洞见。

weixin_28559803的博客 155

智能影记(Memoria)终期实训成果总结:核心系统架构设计与高保真原型落地

本文介绍了《智能影记(Memoria)》项目的设计与实现,针对个人数字影像管理中存在的隐私泄露、素材混乱和创作门槛高等痛点,提出了一套端云协同的智能解决方案。项目采用Clean Architecture分层设计,构建了包含无感净洗、时空聚类、多模态语义索引等核心功能的系统架构,并通过Figma高保真原型与Flutter实现了优雅的UI交互。特别设计了兼顾隐私保护的端侧优先技术路线,支持自然语言搜图、AI故事创写等高级功能,最终打造了一款安全、易用的智能影像管理工具,有效解决了数字囤积与创作焦虑问题。

MoreSome_9256的博客 520

python语言下使用opencv接口cv2.VideoCapture()接口调用海康机器人工业相机

文章目录 目录 文章目录 前言 一、opencv接口介绍 二、调用海康机器人工业相机 1.使用海康机器人工业相机的前提 2.调用海康机器人工业相机进行显示 3.调用海康机器人工业相机进行存图 4.调用海康机器人工业相机存视频 5.调用海康机器人工业相机进行简单图像处理 总结 前言 提示:这里可以添加本文要记录的大概内容: 例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。 提示:以下是本篇文章正文内容,下.

qq_39570716的博客 1万+

【Konva】解决图形加入group后无法获取到绝对坐标,以及group内绘制新图形坐标偏移的问题

解决konva绘图开发时“图形加入group后坐标不会变动,无法获取到绝对坐标”的问题

近10年前端开发工作经验,为你分享日常经验所得 1499

面试问答—软实时和硬实时操作系统的区别

在一个分时操作系统中,计算机资源会被平均地分配给系统内所有的工作。在分时系统中,各项任务需要花多长时间来完成,这一点并不重要;而在一个实时操作系统之中,最关注的是每个任务在多长时间内可以完成.简单地说,实时和分时操作系统最大的不同在于 时限(deadline)这个概念。   从上述区别中可以看出,在实时操作系统中,系统必须在特定的时间内完成指定的应用,具有较强的刚性,而分时操作系统则注重将系统资

xgbing 5731

深度学习笔记(3)——kernel(内核)与filter(滤波器)

本文仅仅简单介绍了kernel和filter的概念,介绍了确定filter和kernel个数的方法。

cs111211的博客 7137

什么是实时性,什么是硬实时?什么是软实时?

什么是实时性,什么是硬实时?什么是软实时? 所谓时效性是指同一件事物在不同的时间具有很大的性质上的差异,我们管这个差异性叫时效性。时效性影响着决策的生效时间,时效性决定了决策在特定时间内是否有效。在嵌入式领域中,我们不仅强调速度的快,还要求有时间上的准确性 嵌入式实时系统中采用的操作系统我们称为嵌入式实时操作系统,它既是嵌入式操作 系统,又是实时操作系统。作为一种嵌入式操作系统,它具有嵌入式软件共有的可裁剪、低资源占用、低功耗等特点;而作为一种实时操作系统,它与通用操作系统(如Windows、Unix、L

qq_45563836的博客 1万+

AUTOSAR从入门到精通-【应用篇】基于AUTOSAR架构的混合动力电池 ECU 软件开发

由于严峻的环境污染和能源短缺问题,各国都在致力于发展新能源车,以达到节能排放的目的。在此背景下,12V启停系统由于成本较低廉、匹配方便,得到广泛应用。但是12V系统作为启停系统后存在许多问题,比如节能和减排效果有限,并且轻度混合动力系统的功率需求通常在10~15KW,在此电压条件下运行时,电池的电流会达到1000A,因此该方案行不通。高压混合动力系统(>110V)的节油效果好,但是成本很高,并且需要大功率的电机。48V混合动力系统比高压混合动力系统成本。

getusushu的博客 1488

YOLOv8 WIOU

本文介绍了如何在YOLOv8中实现WIOU(Weighted Intersection over Union)的修改方法。主要修改了ultralytics/utils/metrics.py文件中的bbox_iou函数,新增了WIoU_Scale类,支持单调性FM v2、非单调性FM v3两种模式,并提供了动态调整的动量参数。修改后的函数支持多种IoU变体(GIoU、DIoU、CIoU等),通过数学公式实现了更精确的边界框回归损失计算,特别针对小目标检测场景进行了优化。该实现使用了PyTorch框架,包含完整

FJN110的博客 2049

实时性之硬实时与软实时

什么是实时性? 实时性指时钟信号能够准确的定时,各处的时钟能够达到一致。 什么是硬实时? 硬实时系统有一个刚性的、不可改变的时间限制,它不允许任何超出时限的错误。超时错误会带来损害甚至导致系统失败、或者导致系统不能实现它的预期目标。 什么是软实时? 软实时系统是一个柔性灵活的,它可以容忍偶然的超时错误。失败造成的后果并不严重,例如在网络中仅仅是轻微地降低了系统的吞吐量。 区别? 硬实时与软实时之间最关键的差别在于,软实时只能提供统计意义上的实时。例如,有的应用要求系统在95%的情况下都会确保在规定的时间内完

quan_bao的博客 3243

【重识云原生】第四章云网络4.9.5.1节下一代智能网卡——DPU综述

随着数据中心的高速发展,通信能力和计算能力成为数据中心基础设施的相辅相成的两个重要发展方向。若数据中心仅关注计算能力的提升,通信基础设施的提升跟不上,那么数据中心的整体系统性能依然受限,无法发挥出真正的潜力。DPU的提出背景就是应对这些数据量和复杂性的指数级增长。未来,需要将计算移至接近数据的位置,这是目前业界所公认的以数据为中心的体系结构下的创新。综上,DPU对数据中心来说,是通过更明细的分工来实现效率的提升、实现总体系统的成本最优化。...

junbaozi的专栏 1725

硬实时与软实时

硬实时与软实时之间最关键的差别在于,软实时只能提供统计意义上的实时。例如,有的应用要求系统在95%的情况下都会确保在规定的时间内完成某个动作,而不一定要求100%。 实时就是在规定的时间内必须正确地完成操作,完成操作的时间有操作系统的因素,也有用户软件的因素。 非实时操作系统指操作系统无法保证哪怕是最高优先级任务开始执行的最后时限。 只有“非屏蔽中断+执行时间确定的ISR”才可以称为硬实时系

redxu的专栏 4610

SolidWorks速成教程P4-4【装配体 | 第四节】——装配体内修改模型&编辑配合方法&配合报错的解决方法

截止目前已介绍完 SolidWorks装配体的常用功能,但基础薄弱的小伙伴或许对装配体的各类功能还不够熟悉。所以这节将进一步加强装配体的学习,同时介绍新手容易犯的错误。总结出三点,一是装配体内修改模型,二是编辑配合,三是配合报错的解决方法。

嵌入式阿齐Archie 5552

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

实时操纵系统 硬实时和软实时

http://blog.sina.com.cn/s/blog_640531380100wbcu.html 嵌入式实时系统中采用的操作系统我们称为嵌入式实时操作系统,它既是嵌入式操作 系统,又是实时操作系统。作为一种嵌入式操作系统,它具有嵌入式软件共有的可裁剪、低资源占用、低功耗等特点;而作为一种实时操作系统(本文对实时操作系 统特性的讨论仅限于强实时操作系统,下面提到的实时操作系统也均指强实时操

cc_lq的专栏 1475

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

上一篇: 【C++高性能网络编程终极指南】:深入掌握io_uring与kqueue底层机制
下一篇: 为什么顶级团队都在用IAsyncEnumerable?:解密C#异步流在生产环境中的核心价值
VarFun
博客等级 码龄1年 151粉丝 1977原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值