分布式刚度编织,让可穿戴触觉更出色 ——Haptiknit
大家好!今天来了解一项非常有趣的科技成果 ——“Haptiknit:用于可穿戴触觉的分布式刚度编织”——《Haptiknit: Distributed stiffness knitting for wearable haptics》发表于《SCIENCE ROBOTICS》。在现代科技发展中,可穿戴触觉设备越来越受到关注,但传统的设备存在不少问题,比如刚性执行器和笨重电源系统影响可穿戴性,软材料又难以很好地分配刚度实现有效触觉反馈。而 Haptiknit 技术的出现,为这些问题带来了创新性的解决方案。
*本文只做阅读笔记分享*
一、引言
在当今科技领域,可穿戴触觉设备的发展备受关注。然而,传统设备存在诸多局限,如依赖刚性执行器和笨重电源系统,影响可穿戴性;软材料虽舒适但力传递和触觉反馈需更好的刚度分配。本研究的“Haptiknit”技术旨在解决这些问题,通过分布式刚度编织结合软气动执行器,为可穿戴触觉带来新的突破。
二、分布式刚度编织:原理与方法
(一)刚度控制的两种方式
1、改变编织拓扑结构
通过改变编织物的拓扑结构,如结的类型和图案,可显著影响织物刚度。例如,我们对由相同纱线(Yeoman540Denier80/20尼龙/Lycra)制成的三种不同拓扑结构的软织物进行单轴测试。织物A是单层½-gaugerib,织物B是双层针织½-gauge单针织物(正面)和¼-gauge单针织物(背面),织物C是三层间隔织物且中间层有褶皱。测试结果显示,它们的刚度变化可达8.43倍,并且都呈现典型的超弹性行为。从显微镜图像中也能清晰看到拓扑结构的差异。
2、添加热融合剂
在编织过程中选择性添加热融合剂(热塑性纤维,如HMS-Griltech390DenierGrilonK85),并在热定型后处理步骤中熔化,可产生全局硬化效果。我们测试了三种不同含量的热融合剂在织物中的情况,分别是织物D(占总织物重量的28.3%)、织物F(44.4%)和织物G(54.2%)。结果表明,随着热融合剂浓度增加,织物刚度最大可增加4.9倍,从最软的织物A到最硬的织物G,刚度差异近400倍。从显微镜图像中可以看到,随着热融合剂含量增加,更多硬化树脂气泡出现,材料呈现出越来越强的塑性行为。
考虑到舒适性,我们在袖套中选择了织物D,其刚度足以满足负载传递需求,且在热定型前后,织物从典型的超弹性响应转变为塑料响应,刚度因子为19.6。
(二)Haptiknit材料与性能
1、编织层设计
Haptiknit触觉袖套是一个精心设计的多层结构。它由两层主要编织层组成,每层又细分为三个子层,总共六个纺织子层。通过巧妙控制编织拓扑结构和材料,实现了刚度变化超过两个数量级。
低刚度区域(织物A、B、C)有不同功能。织物A区域与执行器充气区域接触,会随气动压力膨胀和收缩;织物B区域在执行器两侧,方便软管从执行器到供气系统的布线;织物C区域是狭窄的横向弹性织物,位于每个执行器之间,使整个系统能弯曲、扭转并适应不同用户的身体形状。
高刚度区域(织物D)的设计目的是保持高刚度材料的周向连续性,将作动力集中到可变形区域,同时约束袖套在身体上的组装。我们选择织物D而不是织物E和F,是因为它在目标力传递和用户舒适性之间达到了较好的平衡。
2、执行器选择与集成
我们采用3D打印的软执行器,为了确定最佳的材料类型和执行器厚度,对不同材料(Elastic50A和Flexible80A)和厚度(1.0、1.5、2.0mm)的执行器进行力响应测试。在测试中,考虑力而不是位移,因为位移会因用户皮肤弹性不同而变化。
测试结果表明,所有执行器在最大压力为230kPa时至少能达到35N的力。最终我们选择了Elastic50A材料、2mm壁厚的执行器。在标准系统压力(175kPa)下,它可实现最大24N的力。而且,我们对最终执行器配置进行了循环测试,在100个循环内,执行器保持了稳定的性能。
同时,我们还测量了执行器的频率响应和带宽,结果显示带宽为14.5Hz,这意味着作动力可以在高于人类自主运动带宽(约10Hz)的频率下变化,能产生自然的触觉感觉。
3、气动系统
我们开发了一种定制的便携式气动系统AirPort1.0,为执行器提供动力。这个系统是基于Shtarbanov等人的FlowIO设计改进而来。它重440g,具有双稳态供气功能,每个端口可以在由正压泵提供的充气通道和由真空泵连接的放气通道之间独立切换,从而每个端口有四种可能的状态:充气、保压、放气(用真空)和环境压力。
与其他便携式气动系统相比,AirPort1.0具有优势。例如,与ProgrammableAir系统相比,它有更多的输出端口;与Kim等人的设备相比,虽然压力范围小,但它有八个端口且能产生真空,重量也只有其六分之一,并且可以舒适地佩戴在上臂长时间使用。
三、用户研究:设计与结果
(一)实验设计
进行了一项有32名参与者的用户研究,包括三个部分,分别针对情感和判别触摸,同时还有实验后的评估。参与者通过大学邮件列表招募,涵盖不同年龄和性别,且都提供了知情同意,研究方案也获得了斯坦福大学机构审查委员会的批准。参与者在实验中佩戴袖套在右前臂,执行器位于背侧,实验过程中参与者肘部支撑,前臂和袖套在空中自由放置,并用盒子遮挡,同时佩戴主动降噪耳机播放白噪声,实验者通过自定义图形用户界面控制作动模式。在实验前,我们对袖套输出进行了校准,确定每个参与者能感觉到执行器压痕的最小压力以及开始感觉不舒服的压力。
(二)实验结果
1、执行器定位准确性
在执行器定位测试中,我们将每个执行器按校准后的最大压力充气三次,每次充气后让参与者猜测是哪个执行器被充气,执行器位置用1-8编号。
结果显示,整个实验的总体准确率为69%,远远高于随机猜测的12.5%。正确的执行器始终是最有可能被选中的,得分第二高的执行器位置通常是直接相邻且在同一行。而且,对于前臂内侧(执行器5-8)和外侧(执行器1-4)的判断准确率高达98%,其中内侧执行器的预测准确率为76%,外侧为63%。与振动刺激相比,这种基于准静态位移的触觉方法在判别触摸方面更成功,例如在类似的前臂执行器定位研究中,振动刺激的准确率通常在35%-55%之间,而我们的方法准确率更高。
2、抚摸模式感知
为了模拟抚摸感觉,我们按顺序充气执行器5-8,改变充气持续时间和延迟(延迟定义为下一个执行器开始充气相对于当前执行器充气持续时间的百分比)。
参与者对九种抚摸模式的连续性和愉悦度进行评价。连续性方面,当延迟固定时,随着充气持续时间增加,连续性降低;当充气持续时间固定时,随着延迟增加,连续性降低。
愉悦度方面,所有抚摸模式的平均评分都大于等于零,即没有抚摸模式被一致评为不愉快。其中,充气持续时间最短且延迟最大的模式被认为是最愉悦的,而一般来说,增加充气持续时间会降低愉悦度;对于短充气持续时间(200ms),增加延迟会提高愉悦度,但对于长充气持续时间则相反。
3、社交触摸手势识别
我们测试了参与者对六种常见社交触摸手势(注意力、感激、幸福、平静、爱和悲伤)的识别,这些手势是之前由Salvato等人研究并映射到我们使用的二乘四执行器布局上的。
结果显示,总体分类准确率为36%,是随机猜测率的2.2倍。其中,注意力和幸福手势的正确识别率超过随机猜测的三倍,主要混淆发生在这两个手势之间;感激和悲伤手势的正确识别率超过1.6倍随机猜测率,且分别是各自场景下的首选。平静和爱手势的混淆程度较高,接近随机猜测水平,导致参与者会选择其他手势替代,如注意力替代平静,感激替代爱作为首选。
参与者还对每个手势的感知效价、唤醒和真实性进行了评价。幸福手势的平均效价评分最高为6.25,悲伤最低为4.66;幸福的平均唤醒评分最高为7.31,远高于其他手势;感激的平均真实性评分最高为6.88,幸福最低为3.41。
4、实验后评估
实验后,参与者对自己在定位和手势识别任务中的表现进行了自我评估,同时对袖套的穿戴便利性、舒适性和美观性进行了评价(评价采用Likert量表,从0-10分)。
结果显示,参与者在定位和手势识别任务中的自我评估结果与实际准确率相符。在袖套评价方面,穿戴便利性、舒适性和美观性的中位数分别为9、8和7。其中,美观性评分的均值变化与参与者之前使用人机交互设备的经验有关,无经验者中位数为6,有限或中等经验者为7,丰富经验者为8.5。参与者反馈表明,选择的低刚度区域和袖套的闭合机制等关键设计特征使得袖套易于穿戴、舒适且美观,尤其对于有过测试触觉设备经验的参与者。
四、研究讨论与结论
(一)讨论
1、分布式刚度的优势
通过拓扑结构和材料变化实现的分布式刚度范围与现有研究有可比性。我们的软材料刚度范围(0.122-1.03N/mm)与Singal等人的研究结果类似,而我们的硬材料刚度范围(9.78-48.1N/mm)比我们和Singal等人的最硬无增强织物高出两个数量级。
在执行器表征中发现,用织物B(有效刚度0.603N/mm)约束气动执行器对负载传递和变形影响可忽略不计,而织物D(有效刚度9.78N/mm)会产生“阻塞力”响应。这表明控制执行器的负载传递需要大约一个数量级的刚度不对称。多层编织结构能够通过一次制造和单一后处理步骤实现所需的不对称响应,相比通过组装不同刚度材料的方法,大大简化了制造过程,还为适应更复杂身体部位或不同应用提供了可能。
2、Haptiknit袖套原型的可行性
用户研究结果支持了在可穿戴触觉设备中使用软气动执行器和分布式刚度编织技术的可行性。与振动或音圈电机产生的触觉感觉不同,我们的方法产生的触觉感觉同样或更令人愉悦,能提供连续运动的感觉,并且在传达精细信息方面更成功。这为诸如远程操作、感官重映射、导航和团队成员之间的训练运动或交流等应用提供了可能。
除了提供触觉刺激外,袖套和AirPort1.0的其他特点也值得关注。我们的气动系统能控制八个执行器,力传递范围达40N,且是电池供电、无束缚,可单独佩戴在上臂。参与者反馈表明,结合分布式刚度编织、软执行器和魔术贴带的设计舒适且易于使用,与之前的触觉袖套相比,可以长时间佩戴而不影响参与者的灵活性和移动性。
3、用户研究结果的意义
从用户研究的各个部分结果来看,我们的方法在判别触摸和传达社交触摸线索方面具有优势。在执行器定位测试中,准确率高于振动刺激方法;在社交触摸手势识别中,虽然总体准确率低于某些已有研究,但部分手势识别效果较好,且我们的方法能通过不同的作动模式传达不同的情感。同时,抚摸模式的评价结果也表明我们的方法能产生可接受的触觉体验。
(二)结论
本研究展示了分布式刚度编织与软气动执行器相结合在设计可穿戴触觉设备方面的巨大潜力,提供了一种提高舒适性和可穿戴性的原创方法。Haptiknit袖套原型验证了该技术在情感和判别触摸方面的可行性,参与者对舒适性和易用性的积极反馈凸显了其长期佩戴的实用性。该研究为可穿戴触觉设备的设计和实现引入了创新框架,为增强人机交互应用铺平了道路。
五、一起来做做题吧
1、触觉在日常任务和社交互动中都非常重要,以下哪项不是可穿戴触觉设备的应用场景?
A. 为盲人提供导航指引
B. 增强虚拟现实游戏的沉浸感
C. 作为医疗手术的主要操作工具
D. 帮助人们在打字时获得更好的反馈
2、在分布式刚度编织中,通过改变编织拓扑结构控制织物刚度,以下哪种织物拓扑结构刚度最大?
A. 单层 ½ - gauge rib
B. 双层针织 ½ - gauge 单针织物(正面)和 ¼ - gauge 单针织物(背面)
C. 三层间隔织物且中间层有褶皱
D. 无法确定
3、在添加热融合剂控制织物刚度的实验中,哪种织物使用的热融合剂占总织物重量的比例最高?
A. 织物 D
B. 织物 F
C. 织物 G
D. 织物 E
4、Haptiknit 触觉袖套的编织层设计中,以下关于低刚度区域织物功能描述错误的是?
A. 织物 A 区域与执行器充气区域接触,会随气动压力膨胀和收缩
B. 织物 B 区域在执行器两侧,方便软管从执行器到供气系统的布线
C. 织物 C 区域是狭窄的横向弹性织物,用于约束袖套在身体上的组装
D. 低刚度区域采用弹性纱线编织
5、对于 3D 打印的软执行器,最终选择的材料和壁厚是?
A. Elastic 50A,1.0mm
B. Flexible 80A,1.5mm
C. Elastic 50A,2.0mm
D. Flexible 80A,2.0mm
6、在用户研究的执行器定位测试中,参与者预测执行器位置的平均准确率是多少?
A. 12.5%
B. 35% - 55%
C. 69%
D. 80%
7、在抚摸模式感知测试中,当充气持续时间固定时,抚摸模式的连续性会随着延迟如何变化?
A. 先增加后降低
B. 不变
C. 增加
D. 降低
8、在社交触摸手势识别测试中,哪种手势的正确识别率超过随机猜测的三倍?
A. 平静和爱
B. 感激和悲伤
C. 注意力和幸福
D. 所有手势
9、与现有研究相比,Haptiknit 技术在分布式刚度方面的优势不包括以下哪项?
A. 多层编织结构通过一次制造和单一后处理步骤实现不对称响应,简化制造过程
B. 刚度范围与现有研究相比有极大差异,无法兼容其他应用
C. 可以为设计适应更复杂身体部位或不同应用提供可能
D. 能够更好地控制执行器的负载传递
参考文献:
Cosima du Pasquier et al. Haptiknit: Distributed stiffness knitting for wearable haptics. Sci. Robot.9, eado3887(2024).
相关文章:
分布式刚度编织,让可穿戴触觉更出色 ——Haptiknit
大家好!今天来了解一项非常有趣的科技成果 ——“Haptiknit:用于可穿戴触觉的分布式刚度编织”——《Haptiknit: Distributed stiffness knitting for wearable haptics》发表于《SCIENCE ROBOTICS》。在现代科技发展中,可穿戴触觉设备越来越…...
Elasticsearch:什么是查询语言?
查询语言定义 查询语言包括数据库查询语言 (database query language - DQL),是一种用于查询和从数据库检索信息的专用计算机语言。它充当用户和数据库之间的接口,使用户能够管理来自数据库管理系统 (database management system - DBMS) 的数据。 最广…...
PyQt介绍
**PyQt 和 PySide (Qt for Python) 简介** **PyQt** 和 **PySide** 是 Python 中用于开发图形用户界面 (GUI) 应用程序的两个主要框架,它们都是基于 Qt 库的绑定。Qt 是一个跨平台的应用程序开发框架,广泛用于创建图形用户界面、应用程序开发以及嵌入式…...
Oracle 数据库函数的用法(一)
Oracle数据库提供了大量的内置函数,可以用于完成各种操作,如字符串操作,数学计算,日期时间处理,条件判断,序列生成,聚合统计等。以下是一些常用的Oracle数据库函数: 一、oracle 使用…...
labelme标签批量转换数据集json_to_dataset
文章目录 labelme标签批量转换数据集json_to_dataset转换原理单张图片转换多张图片批量转换bat脚本循环法 标注图片提取标注图片转单通道 labelme标签批量转换数据集json_to_dataset 转自labelme批量制作数据集教程。 转换原理 在安装了labelme的虚拟环境中有一个labelme_js…...
《QT 5.14.1 搭建 opencv 环境全攻略》
《QT 5.14.1 搭建 opencv 环境全攻略》 一、引言二、准备工作(一)软件下载(二)系统环境确认 三、安装 QT 5.14.1(一)安装包下载与运行(二)环境变量配置 四、OpenCV 安装与配置&#…...
Sentry日志管理thinkphp8 tp8 sentry9 sentry8 php8.x配置步骤, tp8自定义异常处理类使用方法
tp8的默认使用的就是composer来管理第三方包, 所以直接使用 composer 来安装 sentry9 即可. 同时tp8和tp5的配置方式不太一样, 这里我们直接使用自定义异常类来处理Sentry的异常. 1. 安装 sentry9 包 # 安装 sentry9 包 composer require "tekintian/sentry9-php" …...
MySQL 基础:开启数据库之旅
MySQL 基础:开启数据库之旅 在当今数字化的时代,数据扮演着至关重要的角色,而数据库管理系统则是存储、管理和操作这些数据的强大工具。MySQL 作为一款广受欢迎的开源关系型数据库管理系统,被广泛应用于各类网站、应用程序以及企业…...
OpenTK 中帧缓存的深度解析与应用实践
摘要: 本文深入探讨了 OpenTK 中帧缓存的使用。首先介绍了帧缓存的基本概念与在图形渲染管线中的关键地位,包括其与颜色缓存、深度缓存、模板缓存等各类缓存的关联。接着详细阐述了帧缓存对象(FBO)的创建、绑定与解绑等操作,深入分析了纹理附件、渲染缓冲区附件在 FBO 中的…...
stm32制作CAN适配器5--WinUsb上位机编写
上次我们要stm32制作了一个基于winusb有canfd适配器,今天我们来制作一个上位机程序来进行报文收发。 上位机还是用以前写好的,只是更改下dll文件。 项目链接器,输入,附加依赖项中增加winusb.lib winusb初始化:#incl…...
【时间之外】IT人求职和创业应知【71】-专利费
目录 2025 ICT产业趋势年会召开,2024年度ICT十大新闻重磅揭晓 海纳致远数字科技申请定制化插件驱动的数据分析专利 阿波罗智联取得语音数据的处理方法、装置、设备和存储介质专利 心勿贪,贵知足。 感谢所有打开这个页面的朋友。人生不如意࿰…...
springboot vue 会员营销系统
springboot vue 会员营销系统介绍 演示地址: 开源版本:http://8.146.211.120:8083/ 完整版本:http://8.146.211.120:8086/ 移动端 http://8.146.211.120:8087/ 简介 欢迎使用springboot vue会员营销系统。本项目包含会员储值卡、套餐卡、计…...
Kafka快速扫描
Architecture 系统间解耦,异步通信,削峰填谷 Topic 消息主题,用于存储消息 Partition 分区,通过扩大分区,可以提高存储量 Broker 部署Kafka服务的设备 Leader kafka主分区 Follwer kafka从分区 高性能之道:…...
scala基础学习(数据类型)-字符串
文章目录 scala中的字符串引号单引号双引号三引号 常用内置函数length 获取字符串长度charAt 字符串元素访问substring 获取字串indexOf 获取字串位置replace 字符串替换toLowerCase,toUpperCase 字符串大小写转换trim 去除首位空白符split 字符串切割以及查看startsWith,endsW…...
网络架构与IP技术:4K/IP演播室制作的关键支撑
随着科技的不断发展,广播电视行业也在不断迭代更新,其中4K/IP演播室技术的应用成了一个引人注目的焦点。4K超高清技术和IP网络技术的结合,不仅提升了节目制作的画质和效果,还为节目制作带来了更高的效率和灵活性。那么4K超高清技术…...
如何优雅的关闭GoWeb服务器
以下内容均为Let’s Go Further内容节选以及作者本人理解。 这里创建了一个后台进程用于捕获关闭信号,在后台进程中,主要内容为: 创建一个缓冲通道 quit使用signal.Notify函数监听并捕获关机信号SIGINT,SIGTERM,在捕获关机信号后…...
Python爬虫(5) --爬取网页视频
文章目录 爬虫爬取视频指定url发送请求UA伪装请求页面 获取想要的数据解析定位定位音视频位置 存放视频完整代码实现总结 爬虫 Python 爬虫是一种自动化工具,用于从互联网上抓取网页数据并提取有用的信息。Python 因其简洁的语法和丰富的库支持(如 requ…...
simulink离散传递函数得到差分方程并用C语言实现
一. 创建连续时间的传递函数 G ( s ) s 2 217 s s 2 384 s 8989 G(s) \frac{s^2217s}{s^2384s8989} G(s)s2384s8989s2217s 二. 离散连续时间的传递函数G(s) 2.1 在matlab中用c2d函数双线性变换法离散G(s), 下面是matlab脚本代码 % 创建连续时间传递函数 …...
第十七届山东省职业院校技能大赛 中职组“网络安全”赛项任务书正式赛题
第十七届山东省职业院校技能大赛 中职组“网络安全”赛项任务书-A 目录 一、竞赛阶段 二、竞赛任务书内容 (一)拓扑图 (二)模块A 基础设施设置与安全加固(200分) (三)B模块安全事件响应/网络安全数据取证/…...
Redis内存碎片详解
什么是内存碎片? 你可以将内存碎片简单地理解为那些不可用的空闲内存。 举个例子:操作系统为你分配了 32 字节的连续内存空间,而你存储数据实际只需要使用 24 字节内存空间,那这多余出来的 8 字节内存空间如果后续没办法再被分配存储其他数…...
Python球球大作战
系列文章 序号直达链接表白系列1Python制作一个无法拒绝的表白界面2Python满屏飘字表白代码3Python无限弹窗满屏表白代码4Python李峋同款可写字版跳动的爱心5Python流星雨代码6Python漂浮爱心代码7Python爱心光波代码8Python普通的玫瑰花代码9Python炫酷的玫瑰花代码10Python多…...
机器学习(Machine Learning)的安全问题
最近看论文,看到了”对抗样本“的一些内容,然后又研究了一下其背后的东西,发现还有”机器学习的安全“这一问题,然后找了几篇博客看了一下,发现了篇2019年的比较有意思的文章,这里整理一下,方编…...
ROS1安装教程
一、环境准备 操作系统:Ubuntu 20.04 LTS 注:为保证系统干净,本文使用Docker进行 演示,如已安装相应的Ubuntu系统请忽略。 Docker安装Ubuntu系统步骤如下: # 拉取镜像 docker pull ubuntu:20.04# 创建容器 docker ru…...
大腾智能CAD:国产云原生三维设计新选择
在快速发展的工业设计领域,CAD软件已成为不可或缺的核心工具。它通过强大的建模、分析、优化等功能,不仅显著提升了设计效率与精度,还促进了设计思维的创新与拓展,为产品从概念构想到实体制造的全过程提供了强有力的技术支持。然而…...
Docker 入门:如何使用 Docker 容器化 AI 项目(一)
引言 在人工智能(AI)项目的开发和部署过程中,环境配置和依赖管理往往是开发者遇到的挑战之一。开发者通常需要在不同的机器上运行同样的代码,确保每个人使用的环境一致,才能避免 “在我的机器上可以运行”的尴尬问题。…...
【04-数据库面试】
如何创建一个新的数据库 数据库是现代信息技术中不可或缺的一部分,它为存储、检索和管理数据提供了强大的工具。无论是企业还是个人,都可能需要创建自己的数据库以满足特定的需求。本文将详细介绍创建一个新数据库的步骤,包括规划、选择数据…...
单元测试使用记录
什么是单元测试 简单来说就是对一个类中的方法进行测试,对输出的结果检查判断是否符合预期结果 但是在多年的工作中,从来没有哪个项目中真正系统的用到了单元测试,因此对它还是很陌生的,也就造成更加不会在项目中区使用它。 如何…...
《深入浅出 Servlet:Java Web 开发的基石》(二)
ServletConfig(熟练) ServletConfig对象对应web.xml文件中的<servlet>元素。例如你想获取当前Servlet在web.xml文件中的配置名,那么可以使用servletConfig.getServletName()方法获取! 你不能自己去创建ServletConfig对象,Servlet的in…...
Pytorch | 从零构建MobileNet对CIFAR10进行分类
Pytorch | 从零构建MobileNet对CIFAR10进行分类 CIFAR10数据集MobileNet设计理念网络结构技术优势应用领域 MobileNet结构代码详解结构代码代码详解DepthwiseSeparableConv 类初始化方法前向传播 forward 方法 MobileNet 类初始化方法前向传播 forward 方法 训练过程和测试结果…...
冯诺依曼架构与哈佛架构的对比与应用
冯诺依曼架构(Von Neumann Architecture),也称为 冯诺依曼模型,是由著名数学家和计算机科学家约翰冯诺依曼(John von Neumann)在1945年提出的。冯诺依曼架构为现代计算机奠定了基础,几乎所有现代…...
【Java基础面试题032】Java中的字节码是什么?
回答重点 Java字节码是Java编译器将Java源代码编译后生成的 位于Java源代码与JVM执行的执行的机器码之间。 Java字节码由JVM解释或即时编译(JIT)为机器码执行 扩展知识 Java字节码的关键点 1)字节码结构: Java字节码是与平…...
K8s ConfigMap的基础功能介绍
在 Kubernetes 中,ConfigMap 是一种用于管理配置信息的资源对象,它允许你将 配置信息与代码解耦,方便管理和更新应用配置,而无需重新构建镜像或重启服务。 ConfigMap 的功能 存储配置信息: 可以以 键值对 的形式存储配…...
stm32制作CAN适配器4--WinUsb的使用
前面使用STM32G474芯片的USB模块做了一个CANFD程序,当时用的是HID模式,在实际使用时发现HID模块的通讯速率太慢了,只能1ms传输一帧,就会造成有些掉帧现象。 现在就把HID模块改为在Window下同样免驱的WinUsb来实现CANFD数据的传输。…...
深入理解 Java 中的 ArrayList 和 List:泛型与动态数组
深入理解 Java 中的 ArrayList 和 List:泛型与动态数组 在 Java 编程中,ArrayList 和 List 是最常用的集合类之一。它们帮助我们管理动态数据,支持按索引访问、增加、删除元素等操作。尤其在使用泛型时,理解它们之间的关系及应用…...
[react 3种方法] 获取ant组件ref用ts如何定义?
获取ant的轮播图组件, 我用ts如何定义? Strongly Type useRef with ElementRef | Total TypeScript import React, { ElementRef } from react; const lunboRef useRef<ElementRef<typeof Carousel>>(null); <Carousel autoplay ref{lunboRef}> 这样就…...
VS Code Copilot 与 Cursor 对比
选手简介 VS Code Copilot:算是“老牌”编程助手了,虽然Copilot在别的编辑器上也有扩展,不过体验最好的还是VS Code,毕竟都是微软家的所以功能集成更好一些;主要提供的是Complete和Chat能力,也就是代码补全…...
华为IPD流程6大阶段370个流程活动详解_第一阶段:概念阶段 — 81个活动
华为IPD流程涵盖了产品从概念到上市的完整过程,各阶段活动明确且相互衔接。在概念启动阶段,产品经理和项目经理分析可行性,PAC评审后成立PDT。概念阶段则包括产品描述、市场定位、投资期望等内容的确定,同时组建PDT核心组并准备项目环境。团队培训涵盖团队建设、流程、业务…...
Vue3组件封装技巧与心得
摘要: 日常开发中,用Vue组件进行业务拆分,代码解耦是一个很好的选择; 今天就来分享一下我在使用Vue3进行组件封装的一些技巧和心得,希望能够帮助到大家; 1. 组件特性: 在Vue中组件是一个独立的…...
15.初识接口1 C#
这是一个用于实验接口的代码 适合初认识接口的人 【CSDN开头介绍】(文心一言AI生成) 在C#编程世界中,接口(Interface)扮演着至关重要的角色,它定义了一组方法,但不提供这些方法的实现。它要求所…...
渗透测试-前端加密分析之RSA加密登录(密钥来源本地)
本文是高级前端加解密与验签实战的第5篇文章,本系列文章实验靶场为Yakit里自带的Vulinbox靶场,本文讲述的是绕过前端RSA加密来爆破登录。 分析 generateKey函数用来生成随机的RSA公私钥 加密的格式如下: {"username":"admin…...
题海拾贝:力扣 86.分隔链表
Hello大家好!很高兴我们又见面啦!给生活添点passion,开始今天的编程之路! 我的博客:<但凡. 我的专栏:《编程之路》、《数据结构与算法之美》、《题海拾贝》 欢迎点赞,关注! 1、题…...
《Mycat核心技术》第06章:Mycat问题处理总结
作者:冰河 星球:http://m6z.cn/6aeFbs 博客:https://binghe.gitcode.host 文章汇总:https://binghe.gitcode.host/md/all/all.html 星球项目地址:https://binghe.gitcode.host/md/zsxq/introduce.html 沉淀,…...
前端实现图片压缩
前端实现图片压缩的主要方法有: 使用 HTML5 的 API 利用 canvas 将图片绘制到画布上,然后通过 toDataURL 方法获取压缩后的图片数据。 使用第三方库 借助 compressorjs、browser-image-compression 等开源库,快速实现高质量的图片压缩功能。…...
Python OCR 文字识别
一.引言 文字识别,也称为光学字符识别(Optical Character Recognition, OCR),是一种将不同形式的文档(如扫描的纸质文档、PDF文件或数字相机拍摄的图片)中的文字转换成可编辑和可搜索的数据的技术。随着技…...
怿星科技联合赛力斯举办workshop活动,进一步推动双方合作
12月18日,由怿星科技与赛力斯汽车联合举办的workshop活动在赛力斯五云湖总部展开,双方嘉宾围绕智能汽车发展趋势、行业前沿技术、汽车电子网络与功能测试等核心议题展开了深度对话与交流,并现场参观演示了多套前沿产品。怿星科技CEO潘凯、汽车…...
Vue.js前端框架教程1:Vue应用启动和Vue组件
文章目录 Vue 应用Vue 应用的主要组成部分:启动 Vue 应用:Vue组件基础组件组件注册父子组件组件插槽(Slots)动态组件和 `keep-alive`Vue 应用 Vue 应用由几个主要部分组成,每个部分都有其特定的角色和职责。以下是 Vue 应用的主要组成部分以及如何启动一个 Vue 应用的介绍…...
LabVIEW深海气密采水器测控系统
LabVIEW的深海气密采水器测控系统通过高性价比的硬件选择与自主开发的软件,实现了高精度的温度、盐度和深度测量,并在实际海上试验中得到了有效验证。 项目背景 深海气密采水器是进行海底科学研究的关键工具,用LabVIEW开发了一套测控系统&am…...
SpringBoot 启动类 SpringApplication 二 run方法
配置 在Program arguments配置2个参数:--server.port8081 --spring.profiles.activedev。 run方法 run方法执行结束代表SpringBoot启动完成,即完成加载bean。 // ConfigurableApplicationContext 是IOC容器 public ConfigurableApplicationContext ru…...
【java基础系列】实现一个简单的猜数字小游戏
主要是用的java中的键盘录入和随机数两个api,实现这种人机交互的小游戏,可以用来锻炼基础算法思维 实现效果 实现代码 package com.gaofeng.day10;import java.util.Random; import java.util.Scanner;/*** author gaofeng* date 2024-12-22 - 9:21*/ …...
Liveweb视频融合共享平台在果园农场等项目中的视频监控系统搭建方案
一、背景介绍 在我国的大江南北遍布着各种各样的果园,针对这些地处偏僻的果园及农场等环境,较为传统的安全防范方式是建立围墙,但是仅靠围墙仍然无法阻挡不法分子的有意入侵和破坏,因此为了及时发现和处理一些难以察觉的问题&…...