- 博客(1158)
- 资源 (1)
- 收藏
- 关注
原创 售货柜实战:IPC 拉流 → 抽帧 → YOLO 识别完整流水线
这篇文章介绍了一个完整的售货柜视觉识别流水线的实现方案。主要内容包括: 整体架构设计:采用流水线方式将RTSP拉流、硬件解码、图像预处理和YOLO推理四个模块串联起来。 模块实现细节: StreamReader模块负责RTSP拉流和硬件解码,使用FFmpeg SDK实现,支持TCP传输和超时重连机制。 FrameProcessor模块处理图像预处理,包括裁剪、缩放和格式转换(YUV转RGB)。 关键技术点: 采用硬件解码(RKMPP)降低CPU负载 使用SwsContext实现高效的图像格式转换和缩放 多线
2026-07-08 23:31:56
510
原创 音视频基础(一):一个视频从像素到播放,中间经历了什么?
音视频压缩原理:从像素到播放的全过程 一张1920×1080的RGB图片原始大小约6MB,30fps视频每分钟数据量高达10.5GB。为减少体积,视频处理采用YUV色彩空间(4:2:0色度抽样可减半数据),音频通过采样率(如CD音质44.1kHz)和编码(如AAC)压缩。存储时,编码后的音视频流被打包到MP4等容器格式中。播放时经历解封装、解码、色彩转换等反向流程。整个过程利用人眼/耳特性进行智能压缩,使2小时电影仅需2GB,实现高效存储传输。 (共149字)
2026-07-01 00:23:19
358
原创 智慧农业技术栈全景:一个人搞定传感器 + 算法 + 云端 + 小程序
智慧农业全栈技术方案:从传感器到小程序的完整实现 本文详细拆解了一个全栈程序员如何独立构建智慧农业系统的技术架构。系统分为五层: 感知层:使用ESP32+低成本传感器(单棚成本250-350元),避开易损传感器陷阱 边缘层:ESP32直连云端或通过RK3588网关实现本地AI推理和断网缓存 平台层:TDengine时序数据库+EMQX MQTT代理+Spring Boot业务中台,部署仅需几条命令 应用层:Vue3管理后台+UniApp小程序,农户可通过微信扫码直接控制设备 关键技术点: 传感器选型建议(如
2026-06-30 21:00:41
624
原创 我用 Spring Boot 撸了一个 Claude Code 平替,本地 AI 编程 Agent,现已开源
撸了一个 Claude Code 平替,本地 AI 编程 Agent,现已开源
2026-06-22 19:06:28
571
原创 YOLO+ByteTrack 纯轨迹驱动方案:无快照盲区场景下的无人售货柜结算落地指南
本文提出了一种针对无快照无人售货柜场景的商品跟踪与结算方案。针对摄像头存在盲区、无法获取完整快照的问题,采用YOLO+ByteTrack技术实现纯轨迹驱动的结算系统。方案通过检测框分级、卡尔曼滤波预测、两阶段匹配和轨迹状态管理等优化,确保商品ID全程稳定和轨迹连续。系统定义货道陈列区和取货过渡区,基于商品轨迹状态流转实现精准的动作判定,无需依赖前后快照比对。配套提供了完整的代码实现、参数配置和调优指南,经商用验证可达到99.9%的结算准确率。该方案有效解决了盲区遮挡、商品移出视野等核心痛点,为无快照场景提供
2026-03-30 17:44:11
1496
原创 【无人售货柜・RK+YOLO】篇 9:新手必看!RK3576+YOLO 商品识别 10 大踩坑实录,看完少走半年弯路
从最开始的原理扫盲、模型选型,到数据集制作、训练优化,再到 RKNN 转换、安卓端部署,再到结算逻辑闭环、多目标跟踪补全,最后到全流程踩坑避坑、量产级优化,我把自己三年来踩坑总结的、商用项目验证过的所有干货,全部分享给了你。
2026-03-25 16:46:04
868
原创 【RK3576 安卓 JNI/NDK 系列 01】概念扫盲 + RK3576 安卓开发架构全解析
彻底搞懂了 JNI 和 NDK 的核心概念与区别:JNI 是 Java 和 C/C++ 的交互规则,NDK 是安卓的 C/C++ 开发工具包。明确了在 RK3576 安卓开发中,JNI/NDK 的核心价值:硬件控制、官方库调用、性能优化、开源库移植,全靠它。建立了 RK3576 安卓开发的完整架构认知,搞懂了从 APP 到硬件的完整流转链路,知道了 JNI 在其中的核心桥梁作用。
2026-03-18 17:55:02
930
原创 第 8 篇 RK 平台安卓驱动实战 1:GPIO 输入输出驱动,从内核到 App 全流程打通
从嵌入式开发最经典的「LED 亮灭 + 按键读取」入手,手把手带你完成GPIO 输入输出驱动开发,并且彻底打通「设备树配置→内核驱动→HAL 硬件抽象层→JNI 接口→安卓 App」的完整全链路。学完这篇,你就能用安卓 App 的按钮,直接控制开发板上的 LED 亮灭,实时读取按键的状态,真正实现从软件到硬件的完整闭环。
2026-03-16 11:19:22
979
原创 无人售货机端到端闭环体验-从扫码到上货的五步旅程
本文以虚拟用户“小王”扫码购可乐为线索,完整演绎URM Ultra系统“端到端闭环”流程:从扫码识别、免密扣款、库存下降触发补货,到无人车与机械臂自动派单执行,最终完成补货闭环。全程无需人工干预,展现设备端零依赖、状态机流转、任务调度与Agent自主执行的协同机制,生动诠释“无人零售”的自动化内核。
2026-10-10 11:24:47
552
原创 状态机贯穿全局-订单-车辆-机械臂-补货状态设计
本文深入解析URM Ultra系统中的状态机设计,揭示订单、设备、任务等核心对象的状态流转逻辑。通过12个状态枚举与迁移图,阐明“状态有限、迁移有规”的核心原则:订单支付不可逆、设备忙碌不派新活、任务失败自动故障上报。状态机不仅是代码约束,更是保障系统一致性与安全性的底层机制,让复杂业务流程清晰可控。
2026-10-10 11:23:22
147
原创 设备端Python零依赖-仿真Agent的设计哲学
本文阐述URM Ultra设备端仿真Agent的设计哲学:以零依赖为核心,仅使用Python标准库,实现无人车与机械臂Agent的轻量级运行。通过“心跳、领任务、上报”三要素构建核心交互逻辑,配置与代码分离,依托urllib实现HTTP通信,确保在任意纯净Python环境一键启动。该设计极大降低入门门槛,赋能教学与演示,彰显“极简即智慧”的工程理念。
2026-10-09 10:18:05
149
原创 HTTP模拟MQTT-设备接入层的轻量取舍
本文阐述了在URM Ultra项目中,为快速验证业务闭环,采用HTTP模拟MQTT实现设备接入层的轻量取舍。通过“心跳+领任务+上报”统一模式,三类设备(售货机、无人车、机械臂)共用接口语义,以HTTP轮询替代MQTT推送,降低起步成本,保留真实状态机与可演进性。未来可无缝切换至真MQTT,仅需替换传输层,业务逻辑不变,实现“先跑起来,再换好轮子”的务实架构设计。
2026-10-09 10:17:27
150
原创 接口抽象与Mock-视觉识别和支付的解耦
本文阐述了URM Ultra系统中通过接口抽象与Mock实现完成视觉识别与支付模块的解耦设计。核心思想是:定义统一接口,用Mock实现模拟真实服务(如随机返回商品识别结果、内存记录支付状态),结合Spring的@ConditionalOnProperty注解,仅通过配置切换真实或模拟实现,业务代码无需修改。该方案使系统可快速验证流程、灵活对接第三方服务,真正实现“换供应商不改代码”的高灵活性与可维护性。
2026-10-09 10:15:48
249
原创 接口隔离方案三类API隔离-admin-app-device接口设计
前面两篇,我们把地基(选型)和燃料(数据库)都讲透了。这回上车——聊聊 URM Ultra 这台"车"对外暴露的。如果这三类接口混在一起,那代码就是一锅粥:权限分不清、路径撞车、文档看花眼。本项目用的最朴素也最有效的一招——。今天咱把这招拆干净。
2026-10-09 10:14:35
166
原创 H2与MySQL双数据源-演示与生产的切换艺术
本文详解URM Ultra项目中H2与MySQL双数据源的切换机制:通过H2内存库实现“零依赖演示”,利用MODE=MySQL兼容模式确保语法一致,结合ddl-auto=update自动建表及DataInitializer注入演示数据,实现开箱即用;上线时仅需替换application.yml配置并执行SQL脚本,即可无缝切换至MySQL,兼顾开发便捷性与生产稳定性。
2026-10-08 10:28:23
407
原创 为什么是SpringBoot3加JPA加单体按域分包
本文解析了URM Ultra项目为何选择Spring Boot 3 + JPA + 单体按域分包的技术组合。基于“可二次开发”的Demo定位,选型聚焦于易上手、快启动、好维护:Spring Boot 3带来Java 17支持与性能提升;JPA实现免SQL开发,加速原型落地;单体架构配合按域分包,既保证结构清晰、调试便捷,又为未来微服务演进预留接口。全栈同源设计降低学习成本,强调“先跑起来再优化”的工程哲学,避免过度设计,真正服务于开发者体验。
2026-10-08 10:27:38
327
原创 无人售货机之机械臂分拣上货-仓库里最后十米的执行者
本文聚焦无人零售系统中“机械臂分拣上货”环节,定位其为仓库到终端的“最后十米执行者”。机械臂承担分拣(SORT)、补货备货(REPLENISH)、精准上货(LOAD)三类任务,与无人车协同联动,通过统一refNo实现跨设备任务编排。系统采用与车辆同构的状态机设计,但机械臂默认自动抢单,体现“固定工位、即空即干”的调度逻辑。核心亮点在于一次补货派发触发车臂联动,形成高效闭环;同时强调库存回写应由设备端完成,遵循“以设备上报为准”的工程原则,保障系统可靠性。
2026-10-02 11:11:23
300
原创 无人售货机搭配无人车补货配送-前置仓与任务的枢纽
无人车作为URM Ultra补货链路的枢纽,连接前置仓、售货机与收货点,承担补货(REPLENISH)与配送(DELIVERY)双重任务。依托“一车、一任务、一仓”三核心模型,通过状态机实现从空闲到执行再到归位的闭环管理。车辆基于心跳上线,任务由调度系统派发或抢单获取,执行中实时上报进度。前置仓作为近场库存节点,支撑即时补货与高效配送,实现“车-仓-柜”协同运转,构建智能无人物流中枢。
2026-10-02 11:08:47
328
原创 双门两路锁四摄-售货机硬件形态的软件建模
本文以“双门两路锁四摄4G”售货机为例,阐述URM Ultra方案中硬件形态的软件建模方法。通过Device实体将设备编号、型号、门数、锁数、摄像头数、网络类型、固件版本等硬件事实转化为数据库字段,实现从物理设备到软件模型的精准映射。强调每个字段在运维、控制、识别、排障中的实际作用,如doorCount决定开锁粒度,cameraCount支撑视觉识别,firmwareVersion支持灰度升级。结合心跳机制实现设备在线状态可视化,并通过货道(DeviceProduct)绑定商品与库存,驱动低库存预警与自动补
2026-10-02 11:04:47
205
原创 从需求文档到方案-无人售货机纯视觉与免密支付
本文从一份简短的无人售货机需求文档出发,解析如何将其转化为可落地的软件方案。通过“纯视觉识别”“免密支付”“安卓工控硬件”等关键需求,逐步抽象出VisionService与WechatPayScoreService接口,实现解耦与Mock替代。结合设备建模、订单扣款链路设计,完整跑通“识别→下单→扣款→扣库存”闭环。强调:以事实为输入,以接口为桥梁,用Mock简化验证,聚焦核心逻辑,是构建可演进架构的实战范例。
2026-10-02 11:02:30
223
原创 一个Demo如何讲清无人零售三端闭环-超级无人售货机全景解读
URM Ultra 是一套可二次开发的无人零售闭环Demo,整合售货机、无人车、机械臂三端,通过Spring Boot后台统一调度,实现“销售→消耗→补货→上货”自循环。系统以微信小程序为消费入口,采用纯视觉识别与免密支付,结合设备端(Python仿真)与后台API分层通信,用单体架构降低入门门槛,聚焦核心业务闭环。五步端到端流程清晰展现从上架到自动补货的完整链路,兼顾演示友好性与生产可扩展性,是理解无人零售三端协同的理想范本。
2026-10-02 10:59:12
269
原创 自研扫地机器人从会扫到好用
本文探讨扫地机器人从“能扫”到“好用”的最后一公里挑战,聚焦覆盖规划、精准回充、禁区管理与产品化落地。通过拆解OOMWOO项目架构,揭示自主覆盖需结合区域分解与弓字形路径,回充依赖Nav2与红外信标协同,禁区逻辑贯穿地图、导航与执行层,而真正体验差异在于机械设计与应用生态。强调:好用的机器人,不只靠算法,更在细节的工程闭环与模块化设计。
2026-10-01 23:28:52
149
原创 如何拥有一台你自己的扫地机器人:三条路线与一张攒机路线图
本文为扫地机器人DIY指南,提供三条进阶路线:1)刷机改造商业机(低成本无云控制);2)替换真机+ROS2开发(算法练兵);3)从零攒机(完全掌控)。附详细路线图与开源资源清单,涵盖硬件选型、双脑架构、仿真验证及安全审查。建议按“仿真→刷机→攒机”递进学习,复用社区成果高效入门。
2026-10-01 23:26:29
158
原创 扫地机器人心跳链路:一套软件栈如何向MCU证明我还活着
OOMWOO通过一套精巧的心跳链路设计,解决移动机器人“软件死而机器动”的致命风险。核心是构建一条聚合的健康通道:关键组件从工作路径自发心跳,监视器基于“名单先行”与“工作证据”判断健康,最终以可靠且瞬时的mcu_heartbeat控制电机。采用volatile QoS确保旧心跳不可重放,结合arming窗口与硬看门狗,实现“默认停机、持续证明”的安全闭环。这套设计将可靠性从被动异常处理转向主动自证,为嵌入式系统提供可复用的“分层健康证明”范式。
2026-10-01 23:24:38
168
原创 从点云到地图:一台扫地机器人的SLAM与Nav2导航全链路
本文详解扫地机器人从点云到地图的全链路智能实现:基于2D LiDAR与IMU融合,通过slam_toolbox构建全局栅格地图,利用回环优化解决定位漂移;再由Nav2导航栈完成点到点路径规划、局部避障与覆盖清扫任务,结合碰撞条应对激光盲区;全程依托ROS2生态与Gazebo仿真验证,实现“仿真即真机”的开发闭环。
2026-10-01 23:22:10
99
原创 扫地机器人双脑架构:为什么安全永远不能交给Linux
OOMWOO 机器人采用双脑架构:STM32 MCU 负责电机、传感器与安全控制,独立于 Linux 的 CPU。MCU 实现硬安全——碰撞/悬崖直停、堵转限流、看门狗复位,反应毫秒级且不依赖上层系统。通过自定义串口协议通信,确保安全逻辑不可被业务代码污染。单脑方案易因调度抖动、升级中断或依赖传染导致失控。双脑设计以“简单即可靠”为核心,将安全焊死在最底层,为开源机器人提供可信赖的安全范本。
2026-10-01 23:19:19
177
原创 开源扫地机器人全栈拆解:一台会扫地的机器,装着一整套机器人工程课程
开源扫地机器人项目OOMWOO以全栈开放设计,将移动机器人系统拆解为可学习的工程范本。基于树莓派+STM32双脑架构,融合ROS2、SLAM导航与仿真优先理念,实现感知、决策、执行全流程透明化。项目强调接口契约、安全审查与资源受限下的架构优化,提供从仿真到真机的完整开发路径,堪称“一堂免费的机器人工程课”。
2026-10-01 23:15:45
307
原创 frp 内网穿透实战:从原理配置到远程办公与 Web 发布
在互联网世界里,一台设备要被别人主动访问,需要有一个公网 IP。IPv4 地址早就枯竭了,运营商分给家庭宽带的往往是内网 IP(你拨号拿到的其实是 100.64.x.x 这种运营商大内网地址);即便有公网 IP,很多家庭/企业路由器默认还挡着一层防火墙,外网照样进不来;就算你做了端口映射,遇到没有公网 IP 的宽带,一切白搭。你的设备能"出去"(主动访问外网),但外网"进不来"(无法主动访问你)。内网穿透(也叫 NAT 穿透)解决的就是上面这个问题。最朴素的思路是:找一台有公网 IP 的服务器。
2026-09-30 15:25:48
207
原创 ZeroTier 虚拟局域网实战
ZeroTier 是一款开源的 **P2P 虚拟局域网(Virtual LAN)工具**,或者说它是**软件定义广域网(SD-WAN)**的轻量实现。它做的事可以概括为一句话:
2026-09-30 15:10:28
428
原创 远程桌面连接工具开发真实公网端到端实测:20fps与1.16Mbps与0丢帧
前面把架构、加密、采集、注入、打包、侦察都讲完了。这一篇是"验收"——。工程上最宝贵的不是"跑通了",而是"跑通之后敢不敢把真实数据摊开给人看"。这篇就干这件事。
2026-09-30 15:07:16
69
原创 远程桌面连接工具开发Phase0侦察:写代码之前先确认这条路能不能走通
做远控项目最容易犯的一个错,是,写了三个月,最后发现公司电脑压根不让跑未签名 exe,或者公司防火墙把 443 以外的端口全堵死、直连根本出不去——前面所有工作全部白费。。这篇就讲这套侦察哲学,以及我们实跑出来的结论。
2026-09-30 15:06:45
201
原创 远程桌面连接工具开发开机自启与卸载:不装服务不要管理员权限
本文阐述了在不需管理员权限、不装服务、不改注册表的前提下,实现被控端开机自启与干净卸载的方案。核心是利用用户启动文件夹放置快捷方式,确保无需提权即可自启,且卸载时仅需删除目录与快捷方式,彻底无残留。安装脚本前置检查配置、警告高风险功能,并提示急停热键;卸载支持状态查询、取消自启与进程终止。配合便携部署与日志记录,兼顾安全性与易用性,适用于“在家查看公司电脑”等轻量场景,避免复杂权限与系统污染。
2026-09-30 15:05:50
119
原创 PyInstaller打包踩坑:dxcam扩展cv2假报错与自检的价值
PyInstaller打包dxcam项目时,因_numpy_kernels.pyd动态扩展未被静态分析捕获,导致运行时报错ModuleNotFoundError: No module named 'cv2',实为静默回落至cv2后端所致。根因在于动态加载模块未被--collect-all dxcam覆盖。解决方案:使用--collect-all + --hidden-import组合,并通过--selftest自检确保依赖完整。同时,区分Agent(onedir)与Viewer(onefile)部署形态,避
2026-09-30 15:05:08
138
原创 远程桌面工具开发长期常驻的资源回收:线程句柄与内存实测
本文通过5轮强制断开重连的长期运行测试,验证了远程控制工具在常驻场景下的资源回收能力。实测数据显示:线程从4个稳定回落至1个,句柄仅残留4个且不随轮次增长,内存使用基本持平。关键在于同时采样“运行中”与“结束后”状态,避免因仅在空闲时采样而误判。源码层面通过join、close、cancel等机制确保每轮会话彻底清理,杜绝僵尸线程、句柄泄漏与内存累积。结论:资源回收完全,可放心开机自启、长期运行。
2026-09-30 15:03:01
219
原创 远程桌面连接工具开发剪贴板双向同步:回环防护与监听线程不能死
剪贴板双向同步是远程办公的核心体验,实现关键在于解决回环问题与监听线程稳定性。通过“写入时标记已见”并使用同一锁保护读写操作,防止无限循环;控制端采用“先记后写”顺序避免Qt在Windows下的信号误触发;监听线程以_safe_read兜底异常,确保永不崩溃;启动时以当前内容为基线,避免误传旧数据;0.6秒轮询间隔平衡响应与性能。纯文本、100万字符上限设计兼顾效率与安全,不依赖键鼠注入,独立运行,真正实现无缝跨设备粘贴。
2026-09-30 15:02:04
98
原创 远程桌面工具采集线程与发送协程:Outbox邮箱与背压设计
被控端通过独立线程完成屏幕采集与编码,利用Outbox邮箱实现阻塞操作与异步发送的解耦。Outbox采用线程锁与call_soon_threadsafe确保跨线程安全,队列满时丢弃最旧帧以保最新画面状态,并通过背压机制避免积压。静止时休眠2ms降低CPU占用,异常不中断线程,断线时强制释放按键并启用指数退避重连,保障远程桌面稳定流畅。
2026-09-30 15:00:49
218
原创 远程桌面工具开发画面还原与数据所有权:一次复制解决撕裂与错帧
本文详解远程画面还原的核心机制:控制端以 (H, W, 3) 画布为基础,通过关键帧整屏重置与普通帧按块增量贴图实现画面同步。关键在于使用块坐标 (ty, tx, ax, ay) 并乘以 tile_size 转换为像素位置,确保精准贴图。为防撕裂与错帧,必须对画布进行内存复制后再传递给界面线程,保障渲染数据一致性。同时引入越界保护、自愈机制(包损坏或尺寸变化时请求关键帧)及归一化坐标处理,确保在缩放、降采样等复杂场景下操作准确。最终实现高效、稳定、无错帧的远程桌面体验。
2026-09-29 22:18:03
6
原创 远程桌面工具开发Qt与asyncio共存
本文详解远程控制端如何通过Qt主线程与asyncio后台线程协同工作:界面与网络分离,以Bridge类实现五类信号跨线程通信。利用Qt的队列连接机制确保绘制安全,通过lambda适配回调参数避免类型错误,并采用零拷贝技术共享画布内存,提升性能。针对打包后日志丢失问题,引入文件日志与异常捕获机制,保障调试可追溯性。
2026-09-29 22:17:20
64
原创 远程桌面工具开发演练模式与开发纪律:在被控机上开发远控的安全做法
在被控机上开发远控面临键鼠被夺的高风险。本文提出“演练模式+分阶段纪律”解决方案:通过dry_run仅记录输入结构而不执行,实现零风险测试;所有单元测试均在该模式下运行,确保逻辑正确;验证分层推进——从只读画面到无害动作,最后才真实注入,且急停必先验证;配合环境变量临时开启与目标限定,实现安全可控开发。这套纪律将风险前置管控,兼顾效率与安全,是远控开发的核心工程实践。
2026-09-29 22:16:48
64
商用APP后台系统完整代码
2020-07-14
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅