- 博客(860)
- 资源 (1)
- 收藏
- 关注
原创 PyTorch全栈征服计划(一):奠基之章 —— PyTorch不止于模型:从张量到真实世界的“第一性原理”
想象一下,在没有统一货币的古代,一个用布匹换粮食的商人,需要经过复杂的折算,效率低下且充满摩擦。CPU上的NumPy数组是一种货币,GPU上的CUDA内存是另一种,新兴的NPU(神经网络处理单元)上的内存又是一种。对于开发者来说,你只和“张量”这一种货币打交道,PyTorch的底层负责处理所有复杂的“汇率转换”和“清算系统”。从此,所有基于这个张量的计算,都会被记录在一个动态的计算图中。(矩阵乘法)时,你不是在写一个简单的循环,你是在指挥一支由数千个核心组成的“计算军团”,协同作战。
2025-11-18 11:04:52
1502
原创 计算机视觉任务及其常见模型详解
通过本文,我们详细介绍了计算机视觉的主要任务及其常见模型。每种任务都有其特定的应用场景和常见的实现模型。这些任务可以根据不同的标准进行分类,例如任务的复杂度、数据类型、应用场景或数据来源。希望本文能帮助你更好地理解和应用这些技术。
2025-08-17 17:20:45
727
原创 操作系统的启动过程介绍
操作系统的启动过程、引导加载程序和系统初始化是计算机启动的关键步骤。这些步骤确保了计算机硬件和软件的正确配置以及操作系统的顺利运行。理解这些过程对于计算机科学教育和计算机系统的设计和维护都具有重要意义。
2024-03-18 09:39:13
2389
原创 揭秘 AGV “定海神针”:为什么你还在用昂贵的激光雷达,而高手已经用一张纸搞定亚毫米级定位?
说到二维码,很多人第一反应是微信收款码。大错特错!如果你把那种复杂的黑癔回字码贴在地上给机器人看,你的摄像头会累死,CPU 会烧坏。工业界的标准,已经进化到了AprilTag。最后,我想说一句稍微有点哲学的话。在科技圈,大家都在追求高大上。都在谈论 ChatGPT,谈论大模型,谈论百万像素的激光雷达。但真正的工程智慧,往往隐藏在简单、可靠、低成本的方案里。一张二维码,一张纸,一个算法。它不说话,但它就在那里。它给每一个迷路的机器人,提供了一个确定的“锚”。对于 AGV 来说,它是灯塔。
2026-02-11 14:22:33
26
原创 揭秘 OpenTCS 核心:一张图看懂死锁终结者 ReservationEntry 与 ReservationPool 的史诗级协作
和,一文一武,一微观一宏观。它们用最朴素的数据结构,解决了工业界最复杂的并发控制难题。当你下次看到几百台机器在工厂里井然有序地流动,请记得:这背后,不仅仅是传感器和电机,更是这两行代码在以每秒几千次的频率,精密地计算着每一次“握手”与“放手”。这就是软件定义硬件的力量。
2026-02-11 13:59:19
136
原创 【内核解构】OpenTCS 订单拆解引擎:从 TransportOrder 到 DriveOrder 的“降维打击”
这 5000 字洋洋洒洒,其实就讲了一件事:OpenTCS 是如何把用户随意、混乱的业务请求,通过严格的校验、拆分、封装,转化为规范、可控的系统指令的。就是一台精密的**“粉碎机”**。大单子(业务意图)喂进去,粉碎成一个个整齐划一的DriveOrder(原子任务)。每一个原子任务都有名字、有属性、有状态、有合法的目标。有了这台粉碎机,Kernel 的调度器才敢放心地分配任务,Router 才敢放心地计算路径,Adapter 才敢放心地驱动车辆。这就是架构的力量。
2026-02-07 13:08:00
45
原创 OpenTCS 的核心迷思:DriveOrder(意图)与 Route(路径)的本质博弈
咱们先看一段你肯定会遇到的经典日志。当你在 Plant Overview 里看着小车跑,打开调试窗口,经常会看到这样的信息刷屏:初学者(甚至包括一些老手)第一反应是:“哦,这车有 3 个订单要跑,先去 0060,再去 0061,最后去 0021。大错特错!如果按照这个理解去写代码,你的逻辑绝对会崩。因为上面的日志只告诉了你“它现在打算怎么走”,却没告诉你“它这一路上要干几件事”。这就好比你打开地图导航,它告诉你“当前路线:前方直行 -> 右转 -> 到达目的地”。难道这一路上你就只是“开车”吗?
2026-02-07 11:44:37
33
原创 OpenTCS 虚拟车辆的双子星:一文读懂 Adapter 与 Model 的黄金搭档
是**“桥梁”**。它懂 Kernel 的官话,懂车辆的方言,它负责传递信息,维护连接。是**“引擎”**。它负责理解运动,计算轨迹,模拟物理世界。这两个类,一静一动,一外一内,配合得天衣无缝。咱们以后写代码,就要以这两个类为模板。把 Adapter 做得稳如泰山,网络断了能重连,数据乱了能重发。把 Model 做得精准高效,无论是模拟的还是真实的,都能准确反馈车辆的每一个动作。这就叫专业。OpenTCS 能在这个领域称雄,靠的不是花哨的 UI,而是这一层层扎实、清晰、可复用的代码设计。
2026-02-06 15:39:52
38
原创 五处神来之笔:如何用 5 个关键设计点打造工业级 AGV 通信中间件
offerFirst保证了业务逻辑的正确性。保证了控制的实时性。独立心跳线程保证了链路的健壮性。抛弃保证了状态感知的真实性。poll超时机制保证了系统资源的利用率。它们每一个都像是一个精密仪器的齿轮,缺一不可。写代码不仅仅是实现功能,更是与故障博弈与资源博弈与人性博弈。我们之所以能做到世界一流 AGV 系统,不是因为我们用了什么惊天动地的 AI 算法,而是因为我们在这些不起眼的角落里,比别人想得多了一步,比别人多写了一行代码,比别人多守了一道防线。
2026-02-06 11:33:12
440
原创 为什么你的 AGV 总是“神秘掉线”?揭秘工业现场的静默连接杀手与心跳保命术
故事要从三年前的一个项目说起。那是某汽车总装车间的物流上线项目,几十台 AGV 昼夜不停地跑。有一天凌晨 3 点,运维电话打来了:“系统乱了,五台车趴窝了。应用层日志:没有任何报错,没有异常,没有重连记录。网络状态:Socket 连接显示(已建立),一切看起来都很完美。车辆状态:五台车的状态栏都亮着绿灯,代表“通信正常”。但是,我发了一条测试指令,结果如泥牛入海,毫无反应。这是什么鬼?这就是著名的“僵尸连接”
2026-02-06 11:18:35
30
原创 OpenTCS 血液解析:TransportOrder 运输订单全链路深度指南
是 OpenTCS 架构中连接“业务意图”与“物理动作”的桥梁。核心属性:让我们描述清楚“做什么、谁做、何时做完”。状态机:让我们精确掌握订单的生命周期,实现闭环控制。:让我们能在 Java/Python/Spring Boot 层面自如地操控这些订单。主要应用:对接上层 MES,实现复杂的物流调度。
2026-02-05 13:22:00
29
原创 OpenTCS 核心实体解构:Vehicle 类深度指南与实战开发
在咱们之前的文章里,聊过架构,聊过 Kernel。现在,让我们把显微镜对准Vehicle这个类。为什么它这么重要?因为你的调度算法再牛,最终都要落实到具体的某一台车上;你的路径规划再准,也必须知道车现在在哪里、还有多少电、能不能倒车。在 OpenTCS 中,Vehicle类位于包下。它不仅仅是一堆 Java 字段的集合,它是一张状态机的容器。它承载了物理设备(AGV)与逻辑系统之间的所有交互信息。理解Vehicle类,是你写出高质量**Vehicle Adapter(车辆适配器)**的第一步。
2026-02-05 12:08:56
29
原创 打造世界一流 AGV 帝国的基石:OpenTCS 全景深度剖析与架构实战
OpenTCS 绝不是一个简单的 Demo,它是一座金矿。业务目标上,它追求的是开放、标准、高效。核心功能上,它解决了导航、调度、避障这三大难题。整体架构上,它的微内核设计允许我们无限扩展,这是公司最需要的灵活性。数据实体上,它的图论模型严谨且通用。业务流程上,它实现了从订单到执行的全闭环控制。
2026-02-05 11:29:56
46
原创 Spring 之外的选择:Google Guice 轻量级依赖注入深度实战与横评
在 Java 的世界里,谈及依赖注入(DI),Spring 无疑是那个横亘在天地间的巨人。它构建了一个庞大的生态帝国,涵盖了从数据库访问到安全控制的一切。对于绝大多数企业级应用来说,Spring 是“标准答案”。但是,咱们的代码既运行在算力充裕的服务器上,也可能运行在资源紧张的 AGV 车载控制器甚至嵌入式网关上。在这些场景下,Spring 容器的启动耗时、内存占用以及那层层叠叠的代理机制,有时候会显得不够“极致”。这时候,(读作 “Juice”)就像是一把灵活的匕首。
2026-02-04 13:45:42
28
原创 还在为 Spring Boot 启动慢头疼?Javalin 赋能 Java 轻量级开发!
咱们在这个圈子里摸爬滚打十几年,见证了 Java 从 Servlet 时代的混乱,到 Spring 时代的统一,再到 Spring Boot 的辉煌。不可否认,Spring Boot 是一把“重剑”,它通过“约定大于配置”让我们在构建企业级复杂业务时如鱼得水。但是,当你真正深入到底层系统开发,尤其是咱们现在正在死磕的AGV 机器人调度系统或者边缘计算网关时,你是否也曾感到一丝不便?为了写一个简单的 REST 接口下发指令给机器人,我们需要启动一个沉重的容器;
2026-02-04 13:22:28
590
原创 揭秘工业控制与互联网开发的鸿沟:当 Java 遇到电梯通讯协议,除了 Socket 还有什么?
把 PDF 里的表格变成 Java 代码。// 报文头尾// 命令字// 查询// 呼梯// 保持开门// 关门// 取消// 响应命令字 (请求值 + 0x80)// 默认配置这篇长文我们从协议差异聊到了二进制位操作,从 TCP 粘包聊到了状态机设计。这种协议和普通接口最大的不同,不仅仅是格式(HEX vs JSON),更是思维方式普通接口:假设网络是完美的,服务器是强大的,逻辑是线性的。工控协议。
2026-01-22 14:22:13
48
原创 别再死磕 Selenium 了!为什么 Playwright 才是 AI 时代 Web 自动化的唯一真神?
技术选型就像打仗选兵器。Selenium 是一把老式步枪,虽然还能杀敌,但后坐力大(不稳定)、瞄准难(API 复杂)、上弹慢(执行效率低)。Playwright 是一把现代化的激光突击步枪。它精准、快速、智能,而且自带夜视仪(调试工具)和智能瞄准镜(Auto-waiting)。对于我这样追求效率、并且正在探索 AI Agent 领域的全栈工程师来说,Playwright 是目前唯一的真神。如果你还在犹豫,不妨今晚回家卸载掉 Selenium,花半小时写一个 Playwright 的 Demo。
2026-01-22 09:14:51
187
原创 揭秘 Flink:全栈工程师必读的流计算“内功心法”——从核心原理到 AGV 实战避坑指南
写到这里,我相信你对 Flink 的认知已经从“会写 Demo”上升到了“懂架构”的层面。
2026-01-12 14:04:36
55
原创 Windows 本地搭建 Flink 集成 Spring Boot:打通 AGV 实时监控的“任督二脉”
在工业物联网和 AGV(自动导引车)的创业赛道上,数据就是生命线。传统的数据处理架构往往是“T+1”模式的:今天产生的日志,等到第二天凌晨才能跑出报表。这在电商卖货场景或许还能忍受,但在 AGV 机器人实时调度、电池预警、避障系统中,一秒钟的延迟都可能导致机器人撞毁或生产线停摆。我们需要的是“流式计算”——数据产生的瞬间,就被计算、被分析、被报警。Apache Flink,正是目前流式计算领域的“王者”。
2026-01-12 13:02:34
73
原创 Windows 环境搭建 Kafka + Spring Boot 日志采集实战:从零到一的万字避坑指南
在微服务架构横行的今天,我们的系统往往拆分成了无数个独立的服务。想象一下,当生产环境出现一个诡异的 Bug,报警电话响起,你迷迷糊糊爬起来打开电脑,面对几十台服务器,你是选择一台台 SSH 登录去grep日志?还是对着几百个分散的日志文件欲哭无泪?分布式系统最大的痛点之一就是日志的离散化。为了解决这个问题,ELK(Elasticsearch, Logstash, Kibana)栈成为了行业标准。而在 ELK 架构的“上游”,通常需要一个高吞吐、高可用的消息队列来做日志的“缓冲区”。这时候,Kafka。
2026-01-12 11:14:00
203
原创 ESP-IDF、ESP32家族全解析:从ESP8266到ESP32-S/P/H/C系列,一篇讲透物联网硬件选型
想象一下,你买手机时,会选“功能机”(只能打电话)还是“智能机”(能刷视频、玩游戏)? 今天,我们就用“手机型号”的类比,手把手拆解ESP8266、ESP32、ESP-IDF及ESP32各系列的区别 ,告诉你如何选型! ESP8266是乐鑫2014年推出的Wi-Fi芯片,就像十年前的“功能机”——只能连Wi-Fi,性能较弱,但成本低(几块钱一片),适合简单场景。 ESP32是ESP8266的升级版,2016年推出,就像现在的“智能机”——性能更强,功能更丰
2026-01-10 15:02:07
116
原创 MD5、BCrypt、RSA加密:从“密码存储”到“数据传输”,一文搞懂三种加密的区别
加密的本质是“把明文(比如密码)变成密文(乱码),只有特定的人能还原”。有的加密是“单向 street”(只能进,不能出)——比如MD5;有的加密是“双向 street”(能进能出,但需要“钥匙”)——比如RSA;有的加密是“给单向 street加锁”(破解更难)——比如BCrypt。MD5(Message-Digest Algorithm 5)是一种单向哈希算法。
2026-01-08 13:52:00
74
原创 前端开发中最让人崩溃的bug之一:页面占满屏幕,左侧菜单消失!Vue Router路由配置避坑指南(附4500字超详细排查过程)
父组件必须是 Layout:需要显示左侧菜单的页面,必须将component设为Layout,子组件嵌套在children中。组件路径要正确:确保别名配置正确,组件文件存在且路径大小写一致。Layout 组件要完整:包含左侧菜单、顶部导航等公共布局的组件,必须正确引入和渲染。meta 配置要小心会导致菜单不显示,需谨慎使用。
2026-01-08 13:45:16
576
原创 AGV进阶:电机驱动(L298N、TB6612FNG),让小车“动如脱兔,停如磐石”
你是否曾想过,AGV小车如何实现前进、后退、左转、右转?如何精准控制速度,避免碰撞?如何快速停止,定位准确?你的AGV在仓库中自主行驶,电机驱动芯片控制左右轮的速度,实现差速转向电机驱动芯片根据PWM信号调整转速,让AGV平稳加速或减速当AGV需要停止时,驱动芯片的刹车功能让小车“立定”,避免滑行这些功能,都离不开电机驱动芯片。L298N和TB6612FNG,结合你的ESP32技术栈,让你能够轻松实现AGV的电机控制。
2026-01-06 19:45:07
73
原创 AGV进阶通信:Wi-Fi、蓝牙、MQTT,让智能小车“耳聪目明”
你是否曾想过,你的AGV小车如何与上位机“对话”?如何将传感器数据(如距离、姿态、电量)实时传输到服务器?如何接收远程控制指令(如“前进10cm”“左转30°”)?你的AGV在仓库中自主行驶,传感器数据通过Wi-Fi上传到云端,服务器根据数据调整路径你用手机APP通过蓝牙调试AGV,发送临时指令AGV通过MQTT订阅控制指令,实现毫秒级的响应这些功能,都离不开通信技术。Wi-Fi、蓝牙(BLE)、MQTT,结合你的Python/Java技术栈,让你能够轻松实现AGV的远程控制和数据传输。
2026-01-06 14:42:17
72
原创 VL53L0X:激光测距的“千里眼“,让你的设备拥有精准感知能力
你是否曾想过,让你的设备能够像人类一样"看清"世界?像蝙蝠一样利用声波导航,像激光测距仪一样精确测量距离?你的AGV小车能够精确测量与货架的距离,实现精准停靠你的无人机能够避免碰撞,安全飞行你的智能手机能够实现3D人脸识别,解锁设备你的工业机器人能够精确测量零件位置,实现自动化装配VL53L0X。它是ST公司推出的一款革命性的飞行时间(ToF)测距传感器,被誉为"激光测距的瑞士军刀"。
2026-01-05 21:09:19
55
原创 ESP32传感器全攻略:IMU、超声波、红外,让你的智能设备“耳聪目明“
你是否曾想过,让你的智能设备能够"感知"世界?就像人类有眼睛、耳朵和皮肤一样,ESP32也需要传感器来感知周围的环境。你的AGV小车能够自动避开障碍物你的无人机能够稳定飞行,不会翻倒你的智能家居设备能够根据你的位置自动调节灯光这些神奇的功能,都离不开传感器。IMU(惯性测量单元)、超声波传感器、红外传感器,让你能够轻松实现各种智能应用。IMU,全称Inertial Measurement Unit,中文译为"惯性测量单元"。它就像电子设备的"平衡感",能够感知设备的姿态、加速度和角速度。
2026-01-05 11:07:57
273
原创 GPIO、ADC、PWM、UART、SPI、I2C:从零开始读懂嵌入式开发六大神器
你是否曾站在电子商店的货架前,看着那些闪烁的LED灯、精密的传感器、复杂的电路板,却不知道它们是如何工作的?你是否曾想制作自己的智能设备,却因为不懂这些基本概念而望而却步?今天,我将带你揭开GPIO、ADC、PWM、UART、SPI、I2C这六大嵌入式开发神器的神秘面纱。它们就像电子世界的"六脉神剑",掌握它们,你就能轻松驾驭从简单LED闪烁到复杂智能设备的各种项目。GPIO,全称General Purpose Input/Output,中文译为"通用输入输出"。
2026-01-05 10:51:08
258
原创 颠覆传统的实时定位利器:Google Cartographer 从入门到精通的终极指南
在我们迈向“世界一流AGV”的征途中,如果你问我:“现在市面上最成熟、最稳定、最开源、且能驾驭从2D到3D的SLAM算法是谁?。在Cartographer诞生之前,SLAM界有点像“战国时代”。你有你的Gmapping,我有我的Hector,他玩他的Rviz。这些算法要么对算力要求高,要么在长走廊里容易“跟丢”(Kidnapped problem),要么地图太丑没法用。2016年,Google开源了Cartographer。就像他们当年推出Android一样,这一举动直接定义了工业级SLAM的标准。
2026-01-03 11:23:34
431
原创 SLAM:赋予机器人“灵魂”的上帝之眼——从入门到未来的硬核洞见
在我们要打造“ AGV”的宏大征途中,如果说电机和电池是机器人的肌肉与心脏,PID算法是它的小脑反射,那么SLAM(同步定位与地图构建),就是它的灵魂之眼和大脑皮层。试想一下,把你扔到一个完全陌生的漆黑迷宫里,没有灯光,没有指南针,你的眼睛被蒙住。你能做什么?你只能靠手摸着墙走,数着自己走了多少步。但只要稍微绊一下,或者地滑了一下,你就彻底不知道自己在哪里了。这就是没有SLAM的机器人。它只知道轮子转了多少圈,却不知道墙壁是不是歪的,不知道刚才那个拐角是不是走过。,这项技术让机器人在完全未知的环境。
2026-01-03 11:06:14
66
原创 告别 Arduino!机器人控制器的终极对决:ESP32 vs STM32,谁才是你的最佳拍档?
作为一名在嵌入式和机器人领域摸爬滚打多年的全栈工程师,我看过太多项目倒在“控制器选择”这个起跑线上。“买个 Arduino 吧,简单!确实,Arduino 是伟大的教育工具,它让电子学变得触手可及。但是,兄弟们,一旦你的项目需要联网、需要多任务、需要精准控制、需要量产算力不足:想跑个简单的 PID 控制还行,一旦要同时处理传感器融合、路径规划,CPU 就干瞪眼。联网困难:需要外挂 Wi-Fi 模块,还要自己写通信协议,开发效率极低。多任务鸡肋:没有真正的操作系统,多任务靠简单的millis()
2025-12-31 23:17:40
290
原创 告别“调PID调到头秃”!一篇看懂AGV控制核心:PWM、H桥与编码器全解
作为一名摸爬滚打多年的全栈工程师,我曾无数次被初学者问到一个灵魂问题:“为什么我给电机通电了,它转得像拖拉机,而且根本停不下来,最后还撞墙了?其实,这就像是你开着一辆油门只有“全开”和“全关”两个档位的车,还没有刹车和方向盘。想让这辆车精准地停在红绿灯前,或者以 5km/h 的速度跟车,简直是天方夜谭。PWM(脉宽调制)、H桥驱动、编码器。这三个家伙,一个管“油门”,一个管“变速箱与刹车”,一个管“高精度转速表”。它们三者缺一不可,协同工作,才能让你的钢铁猛兽变成一个听话的“乖宝宝”。
2025-12-31 22:38:11
51
原创 别再只懂写 “Hello World“ 了!这 5 个神级 JS 框架,让你的网页也能像好莱坞大片一样酷炫
其实,HTML 和 CSS 就像是盖房子的砖头和水泥,能搭出漂亮的毛坯房。但如果你想让你的网页动起来,实现复杂的交互、酷炫的动画,甚至把 Photoshop 搬到浏览器里,你就必须掌握一把神兵利器——HTML5 Canvas。 但是!原生的 Canvas API 就像让你用汇编语言写代码一样,门槛高、代码长、劝退了无数英雄汉。 别怕! 今天我要给你们揭秘 5 个封装好的 Canvas JavaScript 框架。它们就像是给你的画笔装上了“自动驾驶”,让你不用懂底层图形学
2025-12-23 20:54:12
191
原创 从零到一:用Konva.js绘制门窗,5分钟掌握前端动态图形绘制
通过本文的实战案例,我们掌握了Konva.js的基本使用方法,包括舞台、层、图形和组的创建,以及拖拽、缩放和点击等交互功能。门窗绘制不仅是一个简单的图形案例,更是前端图形绘制的入门练习,帮助你理解Konva的核心概念和开发流程。
2025-12-23 09:27:04
72
原创 AI“橡皮擦”:用Stable Diffusion一键抹去岁月痕迹,鱼尾纹、法令纹、口角囊袋的终极解决方案
今天,就让我们一同揭开这个“AI橡皮擦”的神秘面纱,看看它究竟是如何工作的,以及它将如何引爆医美、内容创作和数字人产业的下一个浪潮。它不再需要人类的手动涂抹,而是通过深度学习,让机器“理解”图像的内在结构和内容,从而智能地填补缺失的部分。一张布满皱纹的脸,在它的“眼中”,不再是无法挽回的痕迹,而是一个可以通过算法“推断”和“生成”来复原的挑战。这股浪潮,正在重塑我们对“完美”和“永恒”的定义。从一张旧照片的划痕,到一个破损的数字资产,图像修复模型正在赋予每一个像素“自我修复”和“重获新生”的能力。
2025-12-11 22:15:19
85
原创 数字修复师的崛起:图像修复模型如何让残缺的像素重获新生?
现在,再想象一下,你拥有一个超级聪明的AI,它能够从这片“噪声”开始,一步一步地“去噪”,让图像的细节和结构慢慢浮现出来,最终还原成一张清晰的图片。一张布满划痕的图片,在它的“眼中”,不再是无法挽回的废品,而是一个可以通过算法“推断”和“生成”来复原的挑战。今天,就让我们一同揭开图像修复模型的神秘面纱,看看它究竟是如何工作的,以及它将如何引爆内容创作、历史保护和数字资产管理的下一个浪潮。从一张旧照片的划痕,到一个破损的数字资产,图像修复模型正在赋予每一个像素“自我修复”和“重获新生”的能力。
2025-12-11 22:07:17
118
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅