从阿波罗导航系统学嵌入式实时控制与容错设计
1. 从“阿波罗”这个名字说起一个被低估的导航与控制问题第一次看到“Apollo-11”这个标题很多人脑子里蹦出来的可能是那段著名的登月历史。但如果你是一个做系统架构、嵌入式开发或者自动化控制的人你大概率会和我一样条件反射地想到另一个东西一个在极端资源约束下把导航、制导与控制做到极致的实时系统。这个标题背后真正值得挖掘的不是历史故事而是一套在算力只有今天手机百万分之一的情况下依然能完成高精度姿态解算和轨迹修正的工程方法论。我之所以对这个话题感兴趣是因为在过去几年里我参与过几个关于惯性导航、实时控制回路和容错计算的项目。每次遇到资源紧张、传感器噪声大、实时性要求苛刻的场景我都会回头去看当年那套系统的设计思路。它解决的核心问题非常具体如何在计算资源极度受限、传感器精度有限、通信带宽几乎可以忽略的条件下让一个高速运动的载体知道自己在哪里、要去哪里、怎么去。这个问题放到今天依然困扰着做无人机飞控、机器人定位、车载组合导航的工程师。这篇文章适合谁看如果你是做嵌入式实时系统、导航算法、容错架构的开发者或者你正在设计一个对可靠性和实时性要求极高的控制系统那接下来的内容应该能给你不少启发。我不会只讲历史而是把重点放在可迁移的工程方法上任务调度怎么切、内存怎么管、传感器数据怎么融合、故障怎么兜底。这些经验放到今天的项目里依然管用。2. 任务调度与优先级设计为什么“慢一点”反而更可靠2.1 执行周期与任务优先级的硬约束当年那套系统的核心计算机有一个非常鲜明的特点它的中断频率和任务执行周期是严格绑定的。最关键的导航任务被放在最高优先级每2秒执行一次姿态控制任务频率更高但计算量被压缩到极致而一些非关键的后台任务比如遥测数据打包只能在空闲周期里“见缝插针”。这种设计思路在今天看来依然非常先进因为它把实时性和确定性放在了吞吐量之前。我见过很多现代项目一上来就追求高采样率、高刷新率结果CPU负载常年飘在80%以上一旦某个任务超时整个系统就开始抖动。当年那套系统的做法是反过来的先确定最坏情况下的执行时间再倒推任务周期。比如姿态控制回路它的周期不是随便定的而是根据载体动力学特性和执行机构响应速度算出来的。如果周期太短计算来不及周期太长控制精度不够。最终选定的那个值是在两者之间反复权衡的结果。提示在设计实时任务时不要先问“我能跑多快”而要先问“我最慢必须多快”。这个顺序搞反了后面全是坑。2.2 优先级反转与资源争用的规避策略那个年代没有现在这么复杂的RTOS任务调度基本靠固定优先级中断嵌套来实现。但固定优先级有一个经典问题优先级反转。低优先级任务占着共享资源不放高优先级任务只能干等。当年那套系统的解法非常直接关键资源要么不共享要么在最高优先级任务里独占访问。比如导航用的传感器数据在采集阶段就由最高优先级中断服务程序直接写入固定缓冲区其他任务只能读不能写。这样就从根本上避免了写冲突。我在一个机器人项目里复现过类似思路。当时用的是双核MCU一个核专门跑电机控制另一个核跑路径规划和通信。两个核之间通过共享内存交换数据但共享内存的访问权限被严格划分控制核只读规划结果规划核只读控制状态。任何一方都不能直接修改对方的数据区只能通过一个无锁环形缓冲区传递消息。这个设计让系统在满负荷运行时最坏中断延迟依然稳定在微秒级。2.3 周期任务的“时间预算”分配方法当年那套系统有一个很值得借鉴的做法每个任务都有明确的“时间预算”。比如导航任务分配到的CPU时间片是固定的如果提前算完剩余时间不能挪用给其他任务而是直接进入等待。这种看似“浪费”的做法实际上保证了任务执行的确定性。因为如果允许任务超时占用其他任务的时间整个系统的时序就会变得不可预测。我在做飞控的时候一开始也犯过“能跑就行”的错误。姿态解算任务算得快就让它多跑几次结果电机控制任务的周期被挤得忽长忽短飞行器姿态开始振荡。后来改成固定时间片强制等待虽然CPU利用率降下来了但飞行稳定性立刻上了一个台阶。这个经验让我明白在实时系统里确定性比效率重要得多。3. 内存与存储的极限管理每一字节都要有交代3.1 核心内存的物理约束与逻辑分区那套系统的内存小到令人发指大概只有几十KB级别。但就是在这么小的空间里它要同时存放导航程序、控制程序、传感器校准数据、星历表和任务队列。怎么做到的答案是极致的分区管理。程序代码和常量数据被固化在只读存储器里运行时数据放在可读写内存中两者严格分离。可读写内存又被划分为多个固定大小的块每个块对应一个特定任务任务之间不能越界访问。这种设计思路在今天依然有参考价值。我见过不少嵌入式项目所有变量都堆在一个全局数组里谁想用就声明一个最后内存碎片化严重跑几天就崩。正确的做法是按任务划分内存池每个任务从自己的池子里分配和释放池子大小根据最坏情况下的需求来定。这样即使某个任务出现内存泄漏也不会影响其他任务。3.2 数据结构的“紧凑化”技巧当年那套系统里有一个非常经典的设计导航数据用定点数表示而不是浮点数。原因很简单浮点运算在那个年代要么靠软件模拟慢要么靠专用协处理器贵。定点数虽然精度有限但运算速度快、内存占用小。工程师们根据任务需求精心选择了每个变量的标度因子让精度刚好够用又不浪费位数。我在做传感器融合的时候也用过类似的方法。加速度计和陀螺仪的输出是16位整数如果直接转成浮点数做卡尔曼滤波运算量会大很多。后来改成定点数运算查表法把三角函数和开方运算都做成查找表整个融合算法的执行时间缩短了将近一半。当然定点数有溢出风险所以每个中间结果都要做饱和处理这个细节在文档里往往不会写但实际调试时非常关键。3.3 程序覆盖与任务切换的存储策略那套系统还有一个很聪明的做法程序覆盖。因为内存太小不可能把所有代码都同时加载到可读写内存里。所以它把一些不常用的功能模块放在只读存储器里需要的时候才“覆盖”到可读写内存的特定区域执行。执行完了这块区域又被下一个模块覆盖。这种技术在今天看来有点像虚拟内存的雏形但实现方式更原始也更可控。我在一个低功耗数据采集项目里用过类似的思路。MCU的RAM只有几KB但需要支持多种通信协议。我的做法是把每种协议的解析代码编译成独立的二进制块存放在外部Flash里。需要哪种协议就把对应的代码块搬到RAM里执行。虽然切换有开销但换来了内存占用的大幅降低。这个方案的关键在于覆盖区的地址必须固定否则跳转逻辑会变得非常复杂。4. 传感器融合与状态估计在噪声中找真相4.1 惯性测量单元的数据预处理那套系统用的惯性测量单元精度和今天的MEMS传感器没法比但它的数据预处理流程非常值得学习。原始陀螺仪和加速度计的输出带有明显的噪声和零偏直接拿去做积分几分钟后姿态就飘得没边了。工程师们的做法是先做温度补偿再做零偏估计最后才进入导航解算。温度补偿靠的是地面标定得到的多项式系数零偏估计则利用载体静止时的观测值进行在线修正。我在做无人机飞控时发现很多开源飞控的传感器预处理做得比较粗糙尤其是温度补偿往往只用一个线性系数。实际上陀螺仪的零偏随温度变化是非线性的尤其是在低温启动阶段。后来我改成分段线性插值把标定数据分成多个温度区间每个区间用不同的斜率。虽然标定过程麻烦了一点但姿态漂移明显减小。4.2 卡尔曼滤波的简化实现与数值稳定性那套系统里用到了卡尔曼滤波但它的实现方式和教科书上的标准形式有很大区别。因为计算资源有限工程师们对滤波方程做了大量简化比如把状态转移矩阵做成稀疏矩阵只保留非零元素参与运算把协方差矩阵强制对称化防止数值误差累积导致滤波发散。这些技巧在今天看来依然非常实用。我在一个组合导航项目里曾经因为协方差矩阵不对称导致滤波发散姿态角突然跳变。后来每次更新完协方差矩阵都强制做一次对称化处理取矩阵和它的转置的平均值。这个操作只增加很少的计算量但数值稳定性提升非常明显。另外过程噪声和观测噪声的标定也非常关键标小了滤波收敛慢标大了滤波结果抖动。我的经验是先用离线数据做一遍最小二乘拟合得到一个粗略值再根据在线表现微调。4.3 多源信息的交叉验证与故障隔离那套系统有一个非常超前的设计它不依赖单一传感器源。除了惯性测量单元还有光学瞄准镜、雷达高度计和地面测控数据。这些信息在导航解算中互相验证一旦某个传感器的输出和预期不符系统会自动降低它的权重甚至完全隔离。这种故障隔离机制是保证任务成功的关键。我在做自动驾驶定位模块时也采用了类似的策略。GPS、轮速计、IMU和视觉里程计四个源同时输入。每个源都有一个置信度评分根据历史一致性和当前观测质量动态调整。如果某个源的评分低于阈值就把它从融合方程里剔除。这个机制在过隧道、城市峡谷等场景下非常有效避免了单一传感器失效导致的定位跳变。5. 容错架构与故障恢复把“万一”变成“一万”5.1 冗余设计的层次与切换逻辑那套系统的容错设计是分层次的。最底层是硬件冗余比如关键电路有备份中间层是软件冗余比如关键计算用两种不同的算法实现结果互相校验最上层是任务级冗余比如导航任务可以由地面指令接管。这种多层次设计的好处是不同级别的故障由不同的机制处理不会因为一个小问题就触发全局切换。我在设计工业控制器时借鉴了这个思路。电源用双路冗余MCU用双核锁步关键输出通道用三取二表决。但冗余不是越多越好因为切换逻辑本身也可能出错。我的经验是切换条件要尽量简单、可验证。比如电源切换只看电压比较器的输出不要引入复杂的健康评估算法。越简单的逻辑越不容易在关键时刻掉链子。5.2 看门狗与任务超时处理的实际配置那套系统里有一个非常经典的看门狗设计不是简单的一个定时器而是多个任务互相监视。每个关键任务在完成一个周期后会把自己的“心跳”写入一个共享寄存器。看门狗任务定期检查这些寄存器如果某个任务的心跳超过预定时间没有更新就触发报警或重启。这种分布式看门狗比单一硬件看门狗更可靠因为它能定位到具体是哪个任务出了问题。我在一个远程数据采集终端里用过类似方案。主循环里有一个任务状态表每个任务对应一个计数器。任务正常执行时计数器递增看门狗任务检查所有计数器是否在增长。如果某个计数器连续多个周期不变就判定该任务卡死触发分级恢复先尝试重启该任务如果重启失败再重启整个系统。这个机制在无人值守场景下非常管用避免了因为一个偶发错误导致设备彻底失联。5.3 地面干预与自主决策的边界划分那套系统最让人佩服的一点是它知道什么时候该自己决定什么时候该听地面的。在正常飞行阶段导航和控制完全自主一旦出现异常系统会先尝试自主恢复如果恢复失败才请求地面干预。这种自主优先、人工兜底的策略既保证了实时性又保留了最终的安全屏障。我在做无人机自动飞行时也遵循这个原则。失控保护逻辑分三级第一级是自动悬停等待操作手恢复信号第二级是自动返航如果悬停超时且GPS信号良好第三级是自动降落如果返航路径上有障碍或电量不足。每一级都有明确的触发条件和超时时间操作手可以随时接管但系统不会因为等待指令而无限期悬停。这个边界划分需要在设计阶段就反复推敲不能等到出了问题再补。6. 从历史系统到现代工程的迁移清单6.1 哪些设计可以直接复用那套系统里有很多设计放到今天依然可以直接复用。比如固定优先级时间片的任务调度在资源紧张的MCU上依然是最可靠的选择定点数运算查表法在低功耗传感器节点上依然能大幅降低功耗分布式看门狗在无人值守设备上依然是防止死机的最有效手段。这些方法的共同点是不依赖特定硬件只依赖对问题本质的理解。我在最近的一个项目中把导航任务的时间预算方法用在了电机控制上。每个控制周期分配固定的计算时间超时就直接输出上一次的有效值而不是继续等待。这个简单的策略让电机在负载突变时依然保持稳定避免了因为计算延迟导致的失步。6.2 哪些做法需要根据现代硬件调整当然有些做法需要根据现代硬件调整。比如程序覆盖在今天看来完全没必要因为Flash和RAM都足够大定点数运算在带FPU的MCU上反而比浮点数更麻烦手工内存分区在带MMU的处理器上可以用更优雅的方式实现。但核心思想没有过时资源永远有限确定性永远比效率重要容错永远需要多层次设计。我在从8位机迁移到32位机的时候一开始觉得终于可以“随便写”了结果代码越写越臃肿实时性反而下降。后来重新引入任务时间预算和内存池的概念把资源管起来系统才恢复稳定。这个教训让我明白硬件升级不能替代架构设计。6.3 一个可落地的检查清单如果你正在设计一个对实时性和可靠性要求较高的系统可以对照下面这个清单自查检查项关键问题常见错误任务调度最坏执行时间是否确定只测平均时间不测最坏情况内存管理每个任务是否有独立内存池全局堆随意分配碎片化严重传感器融合是否有交叉验证和故障隔离单一传感器失效导致全局崩溃容错设计切换逻辑是否简单可验证冗余层次过多切换条件复杂看门狗是否分布式监视单一硬件看门狗无法定位故障自主决策自主与人工的边界是否清晰等待指令导致错过最佳恢复时机这个清单不是万能的但至少能帮你避开最常见的几个坑。我在实际项目中每次设计评审都会拿这个清单过一遍往往能发现一些被忽略的细节。7. 我在复现这套思路时踩过的坑7.1 过度追求“确定性”导致的响应迟钝有一段时间我痴迷于把任务周期做得极其规整每个任务都严格按时间片执行不允许任何“插队”。结果系统确实稳定了但响应变得很迟钝。比如一个紧急制动信号因为要等当前时间片结束才能处理延迟了好几个毫秒。后来我意识到确定性不等于僵化。关键是要区分硬实时任务和软实时任务硬实时任务必须严格保证周期软实时任务可以允许一定的抖动。把两者混在一起要么牺牲稳定性要么牺牲响应速度。7.2 定点数标度因子选错导致的精度损失在用定点数做姿态解算时我一开始把标度因子设得太小想着“精度越高越好”。结果中间结果频繁溢出不得不加饱和处理反而引入了非线性误差。后来重新计算了动态范围根据传感器实际输出和载体运动特性选了一个刚好覆盖最大值的标度因子。精度虽然降了一点但整个解算过程变得非常干净没有溢出也没有饱和。这个经验告诉我定点数的标度因子不是越大越好而是要匹配实际物理量的范围。7.3 看门狗喂狗逻辑写错导致的反复重启有一次我在看门狗任务里写了一个“所有任务心跳都正常才喂狗”的逻辑。结果某个非关键任务因为偶发错误卡住了看门狗直接触发全局重启把正常任务也一起复位了。后来改成分级处理非关键任务卡住只报警不重启关键任务卡住才触发重启。这个改动让系统的可用性大幅提升。看门狗的目的是防止系统彻底死机而不是追求零错误。这个度一定要把握好。7.4 传感器故障隔离阈值设得太敏感在做多源融合时我把故障隔离的阈值设得很紧想着“宁可错杀不可放过”。结果在载体剧烈机动时加速度计的输出和模型预测偏差较大被误判为故障直接踢出了融合方程。姿态估计立刻变差反而影响了控制。后来把阈值放宽并引入持续时间判断只有偏差持续超过阈值一定时间才判定为故障。这个改动让系统在机动时依然能保持稳定。故障隔离的难点不在于检测异常而在于区分“异常”和“正常但超出模型预测”。8. 如果今天重新设计我会怎么做如果今天让我重新设计一套类似的导航控制系统我会保留那套系统的核心架构思想但在实现层面做几个关键调整。任务调度依然用固定优先级但会引入时间触发调度让所有任务的执行时刻在编译期就确定下来进一步减少运行时的不确定性。内存管理依然用分区池但会加上静态分析工具在编译阶段就检查每个任务的内存使用是否超限。传感器融合依然用卡尔曼滤波但会采用平方根滤波或UD分解提高数值稳定性减少对浮点精度的依赖。容错设计依然分层次但会增加在线健康评估不仅看传感器输出是否异常还要看它的统计特性是否发生变化。比如陀螺仪的噪声方差突然增大即使输出值看起来正常也可能意味着传感器正在退化。这种预测性维护的思路在今天的工业系统里越来越重要。最后我会把地面干预接口做得更简洁、更可靠。那套系统的地面指令非常精简每条指令都有明确的格式和校验。今天很多系统把地面站做得花里胡哨但关键时刻一条指令都发不上去。我的原则是地面接口的复杂度要和通信链路的可靠性匹配。链路越差接口越要简单。这套东西说到底核心就一句话在资源受限的条件下确定性、可验证性和容错能力比单纯的性能指标重要得多。这个道理放在五十年前的那套系统上成立放在今天的嵌入式项目上依然成立。

相关新闻

视频物体分割技术全解析:从原理到实践的完整指南

视频物体分割技术全解析:从原理到实践的完整指南

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

2026/10/15 19:47:43 阅读更多 →
阿里云直播点播系统架构与高可用实践指南

阿里云直播点播系统架构与高可用实践指南

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

2026/10/15 19:47:43 阅读更多 →
FPN特征金字塔详解:多尺度目标检测的核心架构

FPN特征金字塔详解:多尺度目标检测的核心架构

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

2026/10/15 19:47:43 阅读更多 →

最新新闻

Path of Building 实操:PoB 离线构建规划器与伤害计算完整上手

Path of Building 实操:PoB 离线构建规划器与伤害计算完整上手

Path of Building 实操:PoB 离线构建规划器与伤害计算完整上手 【免费下载链接】PathOfBuilding Offline build planner for Path of Exile. 项目地址: https://gitcode.com/GitHub_Trending/pa/PathOfBuilding 规划一个 PoE 角色,往往卡在装备迭…

2026/10/15 20:27:02 阅读更多 →
耦合电容选型实战:隔直通交、转折频率与材质权衡

耦合电容选型实战:隔直通交、转折频率与材质权衡

1. 耦合电容的核心任务:隔直通交背后的真实电路需求1.1 为什么放大器不能简单粗暴地直接级联先说一个很多人第一次画多级放大电路时都会踩的场景:前级用共射极放大,集电极静态电位算出来大概是8V左右,后级打算用另一个共射级&…

2026/10/15 20:27:02 阅读更多 →
论文数据分析总被批不严谨,科迅捷AI帮你按五个层次自查

论文数据分析总被批不严谨,科迅捷AI帮你按五个层次自查

研究生论文的数据分析,导师批起来最常见的评语是不严谨。不严谨不是指算错,而是指没说清楚怎么分析、为什么这么分析。数据分析可以按五个层次自查,每一层都有明确的检查点。 第一层,数据质量。原始数据有没有缺失值?…

2026/10/15 20:27:02 阅读更多 →
ESP8266让3D打印机无线化:串口透传、远程控制与自动断电实战

ESP8266让3D打印机无线化:串口透传、远程控制与自动断电实战

3D 打印机用 USB 线连电脑,或者反复拔插 SD 卡,几乎是每个玩打印的人都要经历的事。尤其打一个十几小时的大件,人不可能一直守在机器旁边,夜里想瞄一眼温度、看它有没有翘边、会不会堵头,都没办法。给打印机加一块 ESP…

2026/10/15 20:27:02 阅读更多 →
MySQL核心知识全解析:从InnoDB索引到主从复制与性能优化

MySQL核心知识全解析:从InnoDB索引到主从复制与性能优化

1. 为什么到现在还在用MySQL——它不是最酷的,但它是扛事的先说结论:MySQL不是数据库里性能最强的,也不是功能最丰富的,但在绝大多数业务场景下,它依然是那个“最不操心的选择”。我见过不少团队,早期为了追…

2026/10/15 20:27:02 阅读更多 →
JMeter 5.6.2压力测试实战:从线程组到报告解读

JMeter 5.6.2压力测试实战:从线程组到报告解读

简介:Apache JMeter 5.6.2 是由 Apache 组织维护的开源纯 Java 压力测试工具,具备跨平台特性,可运行于 Windows、Linux、macOS。其用途在于模拟大量用户并发访问,评估 Web 应用、数据库、FTP 服务器等静态与动态资源的高并发稳定性…

2026/10/15 20:26:01 阅读更多 →

日新闻

Docker Compose 容器化部署 ChirpStack LoRaWAN 网络服务器实战

Docker Compose 容器化部署 ChirpStack LoRaWAN 网络服务器实战

1. 为什么选择容器化方式部署 LoRa 网络服务LoRa 物联网项目落地时,网络服务器是整个链路的核心枢纽。它负责接收网关上报的数据包、完成去重与解密、再把有效载荷分发给上层应用。早期大家习惯把网络服务器直接装在物理机上,依赖一堆系统库和特定版本的…

2026/10/15 0:00:46 阅读更多 →
共享LLM服务下的跨模型自动扩缩容:Kubernetes实战与避坑指南

共享LLM服务下的跨模型自动扩缩容:Kubernetes实战与避坑指南

1. 共享推理服务里,扩缩容到底难在哪做过大模型推理服务部署的人,大概都经历过这样的场景:一个团队共用一套推理集群,A 业务跑的是 7B 的小模型,B 业务跑的是 72B 的大模型,C 业务白天流量高、晚上几乎归零…

2026/10/15 0:00:46 阅读更多 →
Systemd 启动阶段根文件系统只读之谜:fstab 与 remount-fs 服务深度解析

Systemd 启动阶段根文件系统只读之谜:fstab 与 remount-fs 服务深度解析

1. 引子:一次内核恐慌引发的追查先从一个真实场景说起。某次我给一台老旧的嵌入式设备折腾系统裁减,为了把启动时间压进两秒以内,我手贱地把一串自认为“没用”的 systemd 服务给 disable 了,其中就包括systemd-remount-fs.servic…

2026/10/15 0:00:46 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/15 16:18:54 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/15 19:41:51 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/15 13:48:15 阅读更多 →

月新闻

我发现了一个新思路:用 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/15 0:14:36 阅读更多 →
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/14 22:45:47 阅读更多 →
黑夜航拍船只数据集训练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/15 9:49:14 阅读更多 →