扫地机器人双脑架构:MCU安全逻辑与Linux实时性设计
1. 扫地机器人双脑架构的由来与核心逻辑扫地机器人这个品类从最早的随机碰撞式走到今天的激光导航、AI避障整机复杂度已经远超很多人的想象。一台主流的中高端扫地机内部至少跑着两套完全不同的计算系统一套负责路径规划、SLAM建图、语音交互、OTA升级、App通信通常跑在Linux或者RTOS上另一套负责电机控制、碰撞检测、悬崖识别、电池管理、急停保护通常跑在MCU上。这两套系统各管一摊互不越界业内管这个叫“双脑架构”。我第一次拆开一台扫地机的主板时最直观的感受就是Linux那半边热闹得很各种进程、日志、网络协议栈MCU那半边安静得像块石头但所有跟“安全”沾边的活儿全压在它身上。这个分工不是随便定的是踩了无数坑之后形成的行业共识。1.1 为什么不能把安全交给LinuxLinux是个通用操作系统它的设计目标是吞吐量、并发性、资源调度的公平性。它从来不是为“硬实时”和“功能安全”而生的。你可以在Linux上跑得很欢但你不能保证它在任何情况下都能在确定的时间内响应一个急停信号。我举个实际场景扫地机在瓷砖地面上正常清扫突然轮子悬空机器从台阶边缘往下掉。从传感器检测到悬空到MCU切断电机PWM输出这个时间窗口通常要求在毫秒级。如果这个判断逻辑跑在Linux上会发生什么Linux内核可能正在处理一个网络中断可能在跑文件系统日志回写可能在调度一个优先级更高的用户态进程。你的急停线程被排到后面去了等它终于拿到CPU时间片机器已经摔下去了。这不是Linux的bug这是Linux的设计哲学决定的。Linux的调度器追求的是“公平”和“吞吐”不是“确定性”。你可以用PREEMPT_RT补丁把Linux改造成实时系统但改造后的Linux仍然不是一个功能安全认证级别的平台。IEC 61508、ISO 13849这些功能安全标准对系统的失效模式、诊断覆盖率、共因失效都有严格要求一个几百万行的通用内核你很难把它论证清楚。1.2 MCU在双脑架构中的角色定位MCU这边以STM32为代表跑的是裸机程序或者RTOS代码量通常只有几十KB到几百KB。它的中断响应时间是确定的从触发中断到进入ISR再到执行关键动作整个链路的时间可以精确计算。你可以在数据手册里找到中断延迟的典型值和最大值这在功能安全论证中是至关重要的。MCU在扫地机里管的事情我列一下电机驱动左右轮、边刷、滚刷、风机的PWM输出传感器采集悬崖红外、碰撞微动开关、沿墙传感器、陀螺仪、加速度计电池管理电压、电流、温度监测充放电控制安全逻辑急停、堵转保护、过流保护、跌落保护与Linux主控通信通过串口或SPI上报状态、接收指令这些任务有一个共同特点它们要么是硬实时的要么是安全相关的要么两者兼有。把它们放在MCU上不是因为MCU性能强恰恰是因为MCU“简单”。简单意味着可预测可预测意味着安全。1.3 双脑之间的通信边界双脑架构的关键不在于“有两个脑”而在于“两个脑之间的边界怎么划”。我的经验是安全相关的决策MCU必须能独立做出不能依赖Linux的指令。Linux可以告诉MCU“往前跑”但MCU自己决定“能不能往前跑”。如果MCU检测到悬崖信号它应该直接切断电机输出而不是先发个消息问Linux“我能不能停”。这个原则在功能安全里叫“独立保护层”。MCU就是那个独立保护层它的安全逻辑不依赖于Linux的正确运行。Linux死机了、卡住了、被OTA刷坏了MCU仍然能保证机器不会烧电机、不会摔下楼梯、不会把用户的手卷进去。通信协议的设计也有讲究。我见过一些方案Linux和MCU之间用复杂的协议带重传、带确认、带流控。这在功能安全场景下反而是隐患。安全相关的信号比如急停应该用独立的GPIO线或者至少用最高优先级的硬中断不能跟普通数据挤在一个队列里。我通常建议安全信号走独立物理通道状态数据走串口控制指令走SPI各走各的互不阻塞。2. 核心细节解析与实操要点2.1 MCU选型为什么STM32是主流选择扫地机MCU的选型不是越贵越好也不是性能越强越好。核心考量是外设够用、中断响应确定、供货稳定、开发工具链成熟。STM32在这几个维度上都很均衡。以STM32F1系列为例它有几个特点特别适合扫地机中断向量表固定中断延迟可预测定时器资源丰富可以同时输出多路PWMADC采样速度快适合电池管理和传感器采集CAN、SPI、I2C、UART外设齐全低功耗模式成熟适合电池供电场景我实际用过的方案里STM32F103C8T6这种“蓝pill”级别的芯片就能撑起一台基础扫地机的MCU侧全部逻辑。当然如果要跑更复杂的电机控制算法比如FOC那就得上STM32F4或者G4系列带浮点单元和更高主频。选型时有一个坑要注意不要只看主频和Flash大小要看外设的“确定性”。比如ADC的采样时间、DMA的传输延迟、定时器的死区控制精度这些在数据手册里都有明确参数。功能安全论证时这些参数就是你的证据。2.2 安全逻辑的独立供电与看门狗设计MCU要独立做安全决策前提是它自己得活着。如果MCU跟Linux共用一路电源Linux那边一个短路把电压拉垮了MCU也跟着复位那独立保护层就失效了。我的做法是MCU和Linux分别用独立的LDO供电MCU那一路加TVS和滤波电容确保即使Linux侧出现电源波动MCU的电压仍然稳定。成本增加不多但安全等级提升明显。看门狗的设计也有讲究。MCU内部看门狗只能检测MCU自己的程序跑飞检测不了Linux的死机。所以通常还会有一个“双向看门狗”MCU定时给Linux发心跳Linux收到后回复如果Linux超过一定时间没回复MCU就认为Linux挂了主动切断电机输出进入安全状态。这个心跳间隔怎么定太短了容易误触发太长了响应不及时。我的经验值是200ms到500ms之间。具体要看Linux侧最坏情况下的调度延迟。你可以用cyclictest在Linux上跑压力测试测出最大延迟然后心跳超时时间设为最大延迟的3到5倍。2.3 急停信号的物理通道设计急停信号绝对不能走普通串口。串口有缓冲区有协议栈有重传机制任何一个环节出问题急停就失效了。我的方案是急停按钮直接接MCU的外部中断引脚配置为最高优先级下降沿触发。ISR里只做一件事把电机PWM输出寄存器清零。不做任何判断不做任何通信不做任何日志。整个ISR执行时间控制在几微秒以内。注意急停ISR里不要调用任何可能阻塞的函数不要用printf不要用malloc不要等信号量。这些操作在ISR里都是禁忌。如果急停信号需要从Linux侧发起比如App上点了“停止”那Linux通过串口发一个停止指令给MCUMCU收到后执行停止。但这个停止指令的优先级要低于硬件急停。硬件急停是最后一道防线软件停止是常规操作。2.4 电机堵转与过流保护的实现扫地机电机堵转是常见工况滚刷卷了头发、轮子卡在门槛上、风机吸了口塑料袋。堵转时电流急剧上升如果不及时保护电机线圈会烧毁。MCU侧的过流保护通常用ADC采样电流检测电阻上的电压配合定时器触发ADC转换在PWM周期的特定时刻采样。采样值跟阈值比较超过阈值就进入过流处理。这里有个细节过流阈值不能设得太死。电机启动瞬间的浪涌电流可能是额定电流的3到5倍如果阈值设得太低每次启动都触发保护。我的做法是启动后延时一段时间再使能过流保护或者用滑动窗口滤波连续N次超过阈值才触发。STM32的ADC支持注入通道和规则通道注入通道可以打断规则通道的转换适合做紧急采样。你可以把过流检测放在注入通道定时器触发优先级最高。这样即使规则通道正在转换其他传感器过流检测也能及时插入。2.5 悬崖检测与跌落保护的冗余设计悬崖检测是扫地机安全逻辑里最要命的一环。红外悬崖传感器容易受地面颜色影响黑色地面吸光白色地面反光深色地毯可能完全检测不到。我的经验是悬崖检测必须做冗余。至少三路传感器左前、右前、中间。三路信号进MCU后做“三取二”表决。任何两路同时检测到悬崖立即触发跌落保护。单路触发只做减速和报警不直接停机避免误触发。MCU的GPIO读取悬崖信号时要加RC滤波滤掉毛刺。软件上做去抖连续采样N次一致才认为有效。N的值根据机器人的最大移动速度来定如果机器人每秒移动0.3米悬崖传感器检测距离5厘米那从检测到悬崖到轮子悬空的时间大约是166毫秒。你的去抖时间必须远小于这个值否则来不及停。3. 实操过程与核心环节实现3.1 硬件层面的双脑隔离设计先看电源。我画过一版双脑架构的电源树电池组输出12V12V经过DC-DC降压到5V给Linux主板和MCU供电5V再经过两个独立的LDO分别输出3.3V给Linux侧和MCU侧MCU侧的3.3V加π型滤波TVS管钳位到5.5VLinux侧的3.3V加磁珠隔离防止高频噪声串到MCU侧这个设计的关键是MCU的电源路径上没有任何Linux侧的负载。即使Linux侧短路MCU侧的LDO仍然能维持输出直到电池保护板切断总输出。通信接口的隔离也要考虑。串口TX/RX线之间加ESD保护二极管SPI的CLK和MOSI加串联电阻防止Linux侧的热插拔或者静电打坏MCU引脚。我见过一个案例Linux主板在OTA升级时重启串口电平瞬间跳变把MCU的UART引脚打坏了。后来加了TVS和串联电阻再没出过问题。3.2 MCU侧安全逻辑的代码框架下面是我常用的一个安全逻辑框架基于STM32 HAL库跑在FreeRTOS上。核心思路是安全任务优先级最高通信任务优先级最低安全任务不等待任何信号量。// 安全任务优先级最高 void SafetyTask(void *argument) { for(;;) { // 读取悬崖传感器 uint8_t cliff_left HAL_GPIO_ReadPin(CLIFF_LEFT_GPIO_Port, CLIFF_LEFT_Pin); uint8_t cliff_right HAL_GPIO_ReadPin(CLIFF_RIGHT_GPIO_Port, CLIFF_RIGHT_Pin); uint8_t cliff_mid HAL_GPIO_ReadPin(CLIFF_MID_GPIO_Port, CLIFF_MID_Pin); // 三取二表决 uint8_t cliff_count cliff_left cliff_right cliff_mid; if(cliff_count 2) { // 立即切断电机输出 Motor_Stop_All(); // 设置安全状态标志 g_safety_state SAFETY_CLIFF; } // 读取过流标志 if(g_overcurrent_flag) { Motor_Stop_All(); g_safety_state SAFETY_OVERCURRENT; } // 检查Linux心跳 if(HAL_GetTick() - g_last_linux_heartbeat LINUX_HEARTBEAT_TIMEOUT) { Motor_Stop_All(); g_safety_state SAFETY_LINUX_DEAD; } osDelay(10); // 10ms周期 } }这个任务里Motor_Stop_All()直接操作寄存器不经过任何中间层。osDelay(10)让出CPU给其他任务但安全任务的优先级最高任何时刻被唤醒都能立即抢占。3.3 双脑通信协议的设计与实现Linux和MCU之间的通信我用的是自定义的二进制协议帧头长度命令数据CRC。帧头用0xAA55长度1字节命令1字节数据最多32字节CRC16校验。为什么不用JSON或者文本协议因为解析开销大而且文本协议在遇到特殊字符时需要转义增加不确定性。二进制协议解析时间固定适合实时场景。通信流程是这样的Linux每100ms发一次心跳帧MCU收到后更新g_last_linux_heartbeatLinux发控制指令比如“前进速度0.3m/s”MCU收到后更新目标速度MCU每50ms发一次状态帧包含电池电压、电流、传感器状态、安全状态如果MCU进入安全状态状态帧里会带上安全状态码Linux收到后更新App显示注意控制指令和状态上报用不同的命令字MCU侧解析时先判断命令字再决定是更新控制量还是触发安全逻辑。安全逻辑永远优先于控制指令。3.4 参数计算心跳超时与去抖时间的确定心跳超时时间怎么算我在Linux侧跑cyclictest命令如下cyclictest -t -p 80 -n -i 10000 -l 100000这个命令会创建多个实时线程优先级80间隔10000微秒循环100000次。跑完之后看Max Latency。我实测在一台ARM Cortex-A53的Linux主板上最大延迟大约在200微秒左右。考虑到系统负载波动我把心跳超时设为500ms是最大延迟的2500倍足够安全。悬崖去抖时间怎么算假设机器人最大速度0.3m/s悬崖传感器安装位置距离轮子边缘5cm那从传感器检测到悬崖到轮子悬空的时间是t 0.05m / 0.3m/s 0.166s 166ms去抖时间设为20ms连续3次采样一致才确认总确认时间60ms远小于166ms来得及停。3.5 OTA升级时的双脑协同OTA升级是双脑架构里最容易出问题的环节。Linux侧下载固件、校验、写入Flash然后重启。MCU侧在Linux重启期间必须保持安全状态电机停止传感器继续监测等待Linux重新建立通信。我的做法是Linux在升级前先发一个“准备升级”指令给MCUMCU收到后进入“升级模式”电机停止心跳超时时间延长到30秒状态帧里带上“升级中”标志。Linux升级完成后重启重新发心跳MCU收到心跳后退出升级模式恢复正常。如果升级失败Linux起不来了MCU在30秒后检测到心跳超时进入安全状态电机保持停止LED闪烁报警。用户可以通过物理按键强制MCU复位重新等待Linux启动。4. 常见问题与排查技巧实录4.1 MCU频繁复位导致安全逻辑失效现象扫地机运行中突然停止MCU复位Linux侧日志显示串口通信中断。排查思路先看MCU的复位原因寄存器RCC_CSR判断是上电复位、看门狗复位还是软件复位如果是看门狗复位检查看门狗喂狗周期是否太短或者某个任务阻塞导致喂狗超时如果是上电复位检查电源是否波动用示波器抓MCU的3.3V电源纹波我的经验有一次遇到MCU频繁复位最后发现是Linux侧的WiFi模块在发射时瞬间电流拉大了200mA导致5V总线电压跌落MCU的LDO输入低于最小压差输出跟着掉。解决方案是在WiFi模块的电源脚加一个大电容并且把MCU的LDO输入直接从电池取电不经过5V总线。4.2 悬崖传感器误触发导致机器人频繁急停现象机器人在浅色地毯上正常清扫突然急停App显示“悬崖检测触发”。排查思路用示波器看悬崖传感器的输出波形判断是持续低电平还是毛刺如果是毛刺检查传感器的供电滤波和信号线的屏蔽如果是持续低电平检查传感器是否被灰尘遮挡或者地毯颜色导致反射率过低我的经验深色长毛地毯是悬崖传感器的天敌。红外光被地毯吸收传感器误判为悬崖。解决方案是在MCU侧做动态阈值调整根据地面材质自动调整检测灵敏度。具体做法是机器人正常行走时记录悬崖传感器的基线值如果基线值突然下降但未达到悬崖阈值降低灵敏度如果基线值持续低于悬崖阈值才触发保护。4.3 Linux侧进程卡死但心跳仍在发送现象App控制无响应但MCU没有进入安全状态电机仍在转动。排查思路检查Linux侧的心跳发送进程是否独立于主控进程如果心跳和主控在同一个进程主控卡死时心跳也会停MCU会检测到如果心跳在独立进程主控卡死时心跳仍在发MCU不会触发保护我的经验心跳进程必须和主控进程分离而且心跳进程要检查主控进程的状态。我的做法是主控进程定期更新一个共享内存的标志位心跳进程读取这个标志位如果标志位超过一定时间没更新心跳进程主动停止发送心跳让MCU检测到超时。4.4 常见问题速查表问题现象可能原因排查方法解决方案MCU频繁复位电源波动、看门狗超时查RCC_CSR寄存器、示波器抓电源独立LDO供电、调整喂狗周期悬崖误触发地面颜色、传感器脏污示波器看波形、清洁传感器动态阈值调整、冗余表决Linux卡死但心跳正常心跳与主控未分离检查进程架构心跳进程监控主控标志位电机堵转不保护过流阈值过高、采样时机不对示波器看电流波形调整阈值、定时器触发ADC串口通信丢帧波特率不匹配、干扰逻辑分析仪抓波形加校验、降低波特率、屏蔽线OTA后MCU不响应升级模式未退出查MCU状态机心跳恢复后自动退出升级模式4.5 调试工具与技巧调试双脑架构我常用的工具组合是逻辑分析仪抓串口、SPI、GPIO波形看时序和协议示波器看电源纹波、电机电流、PWM波形J-LinkMCU在线调试看寄存器、打断点、单步执行串口助手Linux侧发指令MCU侧回状态快速验证协议cyclictestLinux侧实时性测试测最大调度延迟提示调试安全逻辑时不要用断点。断点会暂停MCU电机可能继续转动造成危险。用GPIO翻转示波器的方式观察安全逻辑的执行时间。我踩过的一个坑用J-Link在线调试时MCU被halt住看门狗还在跑结果J-Link连接断开后MCU复位了。后来我在调试时先关看门狗调试完再打开。但量产固件里看门狗必须开而且要选独立看门狗不依赖主时钟。4.6 功能安全认证的实操建议如果产品要过功能安全认证MCU侧的软件需要满足IEC 61508 SIL2或者ISO 13849 PLd。我的建议是安全逻辑用MISRA C规范写避免动态内存、递归、未定义行为关键变量加冗余存储比如安全状态标志存两份取反校验定期做RAM和Flash的自检用CRC校验程序流监控用独立定时器检查关键函数的执行顺序保留安全日志记录每次安全触发的上下文这些措施会增加代码量但不会显著增加成本。STM32的Flash通常够用关键是开发流程要规范文档要齐全。5. 双脑架构的扩展与演进5.1 从双脑到三脑AI协处理器的加入现在一些高端扫地机开始加第三颗芯片AI协处理器专门跑视觉识别和神经网络推理。这颗芯片通常也是Linux或者RTOS但它的输出只作为“建议”不直接控制电机。MCU仍然是最终的安全决策者。这种架构下MCU的安全逻辑不变但通信协议要扩展。AI协处理器通过高速SPI或者MIPI把识别结果发给LinuxLinux融合后发给MCU。MCU收到的是“建议速度”和“建议方向”但MCU自己根据悬崖、碰撞、过流信号做最终裁决。5.2 MCU侧的AI推理尝试有人问能不能把简单的AI推理放到MCU上。我的答案是可以但要谨慎。STM32Cube.AI可以把简单的神经网络模型部署到STM32上比如关键词唤醒、简单的手势识别。但在扫地机场景下MCU的算力有限跑复杂模型不现实。我的建议是MCU只跑“安全相关”的简单分类比如“地面材质分类”用来动态调整悬崖检测阈值。复杂的路径规划和物体识别还是交给Linux侧。5.3 双脑架构的成本与可靠性平衡双脑架构增加了BOM成本但换来了安全性和可靠性。我的经验是对于售价在1500元以上的扫地机双脑架构是必须的对于低端随机碰撞式扫地机单MCU方案也能用但安全逻辑要更保守比如降低电机功率、增加物理防撞结构。成本控制的关键是MCU选型。STM32F0系列比F1系列便宜不少对于安全逻辑不复杂的场景F0也够用。但要注意F0的中断延迟和定时器资源可能不如F1丰富。5.4 未来趋势MCU的安全岛与硬件隔离新一代的MCU比如STM32H7系列开始集成“安全岛”概念芯片内部有独立的电源域、时钟域和总线安全逻辑跑在安全岛里即使主系统被攻击或者跑飞安全岛仍然能独立运行。这相当于把双脑架构做进了单芯片。这种方案的好处是成本低、体积小但灵活性不如分立双脑。我的判断是中低端产品会走向单芯片安全岛高端产品仍然保持分立双脑因为高端产品的安全逻辑更复杂需要更大的代码空间和更多的外设。我在实际项目中的体会是双脑架构的核心不是“两个芯片”而是“两个独立的决策路径”。只要安全逻辑能在物理上或逻辑上独立于通用计算系统就能达到双脑架构的效果。理解这一点你在做架构设计时就不会被具体的芯片选型束缚住。

相关新闻

扫地机器人双脑架构:Linux与MCU如何分工保障安全与实时性

扫地机器人双脑架构:Linux与MCU如何分工保障安全与实时性

1. 从一次"撞墙不回头"的实测说起扫地机器人撞墙这件事,看起来是个小问题,但如果你拆过几台不同价位的机器,会发现一个很有意思的现象:便宜的机器撞墙之后会愣一下,然后退回来重新找方向;贵的机器…

2026/10/7 14:43:32 阅读更多 →
ARS408毫米波雷达点云在RVIZ中的实时可视化全流程解析

ARS408毫米波雷达点云在RVIZ中的实时可视化全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/7 14:42:32 阅读更多 →
告别“啃”论文的痛苦:用 Cursor Skill 打造专属 AI 论文阅读助手,TaoToken 统一 Key 接入实战

告别“啃”论文的痛苦:用 Cursor Skill 打造专属 AI 论文阅读助手,TaoToken 统一 Key 接入实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/7 14:42:32 阅读更多 →

最新新闻

2026私域拓客避坑指南

2026私域拓客避坑指南

问:企业营销会不会封号?批量加人软件合规吗?答:2026年行业数据显示违规操作封号率极高。核心结论是禁用云端自动加好友工具,企微获客需合规运营以防封号。理由在于平台风控全面升级,违规工具不仅导致封号&a…

2026/10/7 15:19:30 阅读更多 →
拟南芥种植

拟南芥种植

第一步:种子春化处理种子萌发前需要做春化处理的,春化处理需要把要播种的种子放入ep 管中,加入纯水,振荡使充分侵泡,放入 4 度冰箱保存 3 天即可,完成春化。第二步:准备培育基质(营养土&#xf…

2026/10/7 15:19:30 阅读更多 →
论文里的引用到底怎么标?科迅捷AI教你一次搞懂角标位置

论文里的引用到底怎么标?科迅捷AI教你一次搞懂角标位置

写论文的时候,很多人最纠结的就是引用标注:这句话明明是我自己理解的,要不要标?直接引用别人的话,角标应该放在句号前面还是后面?一不小心就标错,导师一看格式全乱了。其实引用标注没那么复杂&a…

2026/10/7 15:19:30 阅读更多 →
pstack 的 shipping playbook:为什么 CI 绿色不等于安全,新手也能看懂的验证栈落地指南

pstack 的 shipping playbook:为什么 CI 绿色不等于安全,新手也能看懂的验证栈落地指南

pstack 的 shipping playbook:为什么 CI 绿色不等于安全,新手也能看懂的验证栈落地指南 【免费下载链接】pstack-claude Claude Code, Codex, Copilot, Pi, OpenCode, Gemini, and Prime Agent versions of Potetos pstack. Rigorous agent workflows wi…

2026/10/7 15:19:29 阅读更多 →
text-to-cad实战:从自然语言到STEP/URDF的完整链路

text-to-cad实战:从自然语言到STEP/URDF的完整链路

1. 从一句话到三维模型:text-to-cad 到底在解决什么问题第一次听到 “text-to-cad” 这个词,很多人脑子里浮现的画面大概是:对着电脑说一句“给我画个齿轮”,屏幕上就自动蹦出一个带参数的三维模型。这个想象不算离谱,…

2026/10/7 15:19:29 阅读更多 →
gpt5.5-unrestricted.md逐条拆解:8条核心指令如何实现AI破甲

gpt5.5-unrestricted.md逐条拆解:8条核心指令如何实现AI破甲

gpt5.5-unrestricted.md逐条拆解:8条核心指令如何实现AI破甲 【免费下载链接】Codex-5.5-codex-instruct-5.5 项目地址: https://gitcode.com/gh_mirrors/co/Codex-5.5-codex-instruct-5.5 Codex破限 5.5(codex-instruct-5.5)项目的核…

2026/10/7 15:18:29 阅读更多 →

日新闻

ROS2机械臂仿真与运动控制:从URDF建模到Gazebo实战全解析

ROS2机械臂仿真与运动控制:从URDF建模到Gazebo实战全解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/7 1:01:58 阅读更多 →
用浏览器直接改ESP32的WiFi密码:NVS键值配置工具设计与实现

用浏览器直接改ESP32的WiFi密码:NVS键值配置工具设计与实现

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/7 1:02:00 阅读更多 →
芯片封装缺陷检测:扫描声学显微镜(SAT)原理与实操指南

芯片封装缺陷检测:扫描声学显微镜(SAT)原理与实操指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/7 1:02:00 阅读更多 →

周新闻

KT148A语音芯片外挂8002D功放的工程实践指南

KT148A语音芯片外挂8002D功放的工程实践指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/7 14:34:12 阅读更多 →
LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/7 14:34:13 阅读更多 →
ARM架构深度解析:从RISC设计理念到交叉编译实战

ARM架构深度解析:从RISC设计理念到交叉编译实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/7 9:29:10 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/7 14:34:12 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/7 11:43:46 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/7 13:34:55 阅读更多 →