OpenClaw在Ubuntu 20.04上的容器化部署实战与避坑指南

1. 写在最前面:为什么我决定写这篇部署笔记

先交代一下背景。我是在一台配置不算太高的 Ubuntu 20.04 服务器上折腾 OpenClaw(就是我们常说的"龙虾")的,前前后后花了两三天才把整个环境跑稳。过程中踩的坑确实不少,网上各种教程也翻了,但很多都默认读者已经具备一定的部署经验,把关键步骤一笔带过,结果就是照着一路走下来,卡在某个奇怪的地方半天出不来。

所以这篇不是那种简单搬运命令的教程,而是把我实际部署过程中踩过的坑、绕过的弯、最后验证通过的方案,一条条整理出来。无论你是第一次接触这种模块化项目部署,还是已经有点基础但卡在某个环节,应该都能在这里找到对应的答案。

先说清楚 OpenClaw 大概是干什么的:它是一个功能模块整合度比较高的项目,部署形态类似于"主程序 + 多个辅助服务"的组合,依赖 Docker 容器、Python 运行环境,还需要拉取若干外部镜像。正因为它涉及的面比较广,部署时的坑也就格外多——网络、版本、配置、资源规划,任何一个环节出问题,都会导致整个项目跑不起来。

我这篇笔记会从零开始,按实际部署顺序来写。你可以把它当成一份操作手册,也可以当成一份避坑指南。不少细节是我被坑过之后才总结出来的,希望你能少走这些弯路。

2. 部署前必须想清楚的三件事

很多人在部署之前没有想清楚,上来就照着教程敲命令,结果中途发现环境不对、资源不够、网络不通,再回头补救非常麻烦。我建议你在动手前,先把下面三件事确认好。

2.1 项目定位:它是一个多组件协作的系统

OpenClaw 和普通的单文件脚本项目不一样,它更像一个"小系统":核心程序、依赖服务、外部组件各自承担不同职责,部署时需要同时把它们拉起来并保证网络互通。这也是为什么部署过程比想象中复杂——你面对的从来不是一个入口,而是一组相互关联的服务。

理解这一点非常重要,因为后续所有排错思路都要建立在这个基础上:当某个功能异常时,你要能判断问题出在哪个组件,而不是盲目重装整个项目。我在部署初期就犯过这个错误——某个功能连不上外部服务,我以为是核心程序的问题,反复重装了三次,最后发现是辅助组件根本没启动成功。

2.2 部署环境:Ubuntu 20.04 的适配性

OpenClaw 本身是多平台兼容的,但 Ubuntu 20.04 是很多服务器用户的主力系统,适配性相对成熟,网上可参考的案例也最多。如果你的系统是其他版本,比如 Ubuntu 22.04 或 Debian 系,步骤大体类似,但个别依赖版本和软件源配置会有差异,需要灵活调整。

我建议不要在一台刚重装完、什么都没有的系统上直接开始部署。先确认系统基础工具是否齐全,比如curl、wget、git这些常用命令是否可用。缺什么先补什么,避免部署到一半才发现环境缺基础组件,不得不中断去装。

2.3 容器化:为什么绕不过 Docker

OpenClaw 的部署方案目前以 Docker 容器化为主流,核心原因有两个:

第一,依赖隔离。项目涉及的组件和依赖非常多,如果直接装在宿主机上,很容易和系统自带的库版本产生冲突。容器把每个组件封装成独立环境,互不干扰,部署和迁移都方便。

第二,一致性。在 A 机器上能跑的环境,到 B 机器上通常也能跑,因为镜像已经把运行时、依赖、配置都打包好了。对部署者来说,这能省掉大量"环境差异导致的问题"。

如果你对 Docker 还不太熟悉,也不用太担心。只要能安装、启动、拉取镜像、运行容器,看基础日志,就足够完成 OpenClaw 的部署了。

提示:Docker 安装方式有多种,不同方式对后续使用有一定影响。我推荐使用官方安装脚本或 Docker 官方仓库方式安装,方便后续用apt统一管理升级。尽量不要用系统自带但版本陈旧的软件包,否则可能出现兼容性问题。

3. 基础环境准备:Ubuntu 20.04 初始化避坑记录

这一步看似是走流程,实际上藏着不少隐藏坑。我把准备好一个可用系统的过程拆开来写,都是实操验证过的。

3.1 系统更新与基础工具安装:这里有一个镜像源问题

拿到一台干净的 Ubuntu 20.04 服务器后,第一件事当然是更新系统。大多数教程会直接让你跑sudo apt update && sudo apt upgrade,但如果你是在国内网络环境下操作,很可能发现更新非常慢,甚至超时失败。这就是软件源的问题:默认的 Ubuntu 官方源在部分地区访问速度不太理想。

解决办法是切换镜像源。具体来说,把/etc/apt/sources.list里的 Ubuntu 官方源地址,替换为国内可用的镜像源地址。这一步可以显著加快apt update和后续软件安装的速度。做完替换后,再执行sudo apt update,你会明显感受到速度差异。

接下来安装基础工具。我建议至少装上这几个:curl、wget、git、vim(或者你习惯的编辑器),以及python3-venv。前三个是部署过程中频繁使用的网络和版本管理工具,后面那个python3-venv更是关键——后续创建 Python 虚拟环境时,如果缺少这个包,python3 -m venv会直接报错。

注意:如果你所在网络访问外网本身就有额外限制,可能需要先解决网络连通性问题,再继续后续步骤。这一步没搞定,后面所有涉及拉取远程资源的行为都会出问题。

3.2 Docker 安装:安装完成后立刻验证

Docker 的安装本身不算复杂,但装完之后有一个高频问题:当前用户执行docker命令时报权限错误。原因是 Docker 守护进程默认以 root 权限运行,普通用户想要通过 Docker CLI 与其通信,要么每条命令加sudo,要么把用户加入docker用户组。

我的建议是用后一种方式,省去每次敲sudo的麻烦。执行类似sudo usermod -aG docker $USER的命令,然后重新登录或刷新用户组,之后执行docker version确认能正常输出客户端和服务端信息。

另一个容易忽略的问题是docker-compose的安装。OpenClaw 的部署方案大多会用到docker-compose来编排多个容器服务。如果系统提示没有这个命令,需要单独安装。安装后执行docker-compose --version验证。

3.3 磁盘与内存的硬性规划

部署 OpenClaw 之前,一定要给磁盘和内存留足余量。镜像拉下来之后所占的空间,加上运行时的缓存和数据,积累起来不小。我最初只给系统盘留了十几个 G,结果部署到一半磁盘报警,不得不中途清理、扩容,非常折腾。

内存方面,如果你的机器只有 2GB 或者更少,运行起来可能会非常吃力,甚至直接卡死。我建议至少留足 4GB 以上可用内存,如果要同时跑多个组件,8GB 会更从容。可以提前用free -h看一下当前内存情况,做到心中有数。

4. 依赖环境:Python、Node 与基础库的版本陷阱

如果说系统准备是地基,依赖环境就是承重墙。这里最容易出的问题就是版本不匹配——单独看每个组件都没问题,组合在一起就是跑不起来。

4.1 我最终采用的依赖版本清单

经过多轮排查和验证,以下版本组合在我这边运行稳定,可以作为一个参考基线:

组件版本说明
Python3.8.10(系统自带)未使用 pyenv,直接使用系统 Python
pip21.0+需确保 pip 可用,必要时先升级
Node.js14.x LTS用于部分前端相关工具链
Docker Engine20.10.x通过官方脚本安装
docker-compose1.29.x 或 v2 版本两种都验证可用
Git2.25.x(系统自带)直接使用

这个清单的关键在于:不要盲目追求最新版本。很多部署教程默认你的 Python 是最新版、Node 是最新版,但 OpenClaw 的某些依赖组件可能还没有适配,结果就是安装过程报一堆兼容性错误。锁定一个经过验证的版本组合,是降低部署复杂度的最有效手段。

4.2 两个我实际踩过的版本坑

第一个坑是 Python 虚拟环境。系统自带 Python 3.8 本身没问题,但如果直接全局安装依赖,很容易和系统包管理器的包产生冲突。典型表现是:某个库通过 pip 装好了,但 Python 导入时却报找不到;或者反过来,系统包更新后把 pip 装的库覆盖了。我建议创建虚拟环境来隔离,避免污染系统环境。用python3 -m venv创建虚拟环境是最直接的方法,注意需要先安装python3-venv系统包。

第二个坑是 OpenClaw 管理脚本的启动方式。在某些版本组合下,直接通过特定命令启动脚本会报错,报错信息往往指向 Node 相关模块缺失。我当时排查了很久,最后发现是 Node 版本过低导致某个前端构建工具无法运行。升级到 Node.js 14.x LTS 后,问题解决。如果你的启动过程中遇到类似报错,优先检查 Node 版本,而不是急着重装整个环境。

注意:依赖安装时建议使用虚拟环境,并根据 OpenClaw 仓库的文档说明安装对应依赖。不同版本分支的依赖要求可能有差异,以项目仓库的 README 或 requirements 文件为准。

5. 镜像构建与依赖下载:一个隐藏的 Docker 镜像源坑位

OpenClaw 部署有一个其他项目不太常见的坑,我也是排查了很久才定位到:项目涉及的依赖可能托管在 GitHub Container Registry(ghcr.io),而不是 Docker Hub。

5.1 为什么拉取 ghcr.io 镜像会卡住

GitHub Container Registry 和 Docker Hub 是两套不同的镜像仓库服务。很多部署教程只配置了 Docker Hub 的镜像加速,却没有覆盖 ghcr.io 的访问。于是出现一个很迷惑的现象:基础镜像拉得飞快,但轮到 OpenClaw 的某个核心镜像时,进度条就一直卡着不动,或者反复重试。

这个问题的本质是网络访问策略差异。ghcr.io 的访问路径和 Docker Hub 不完全一样,简单的 Docker 镜像加速配置不一定能覆盖到它。有些教程会让你手动docker pull ghcr.io/...来验证连通性,如果卡住,基本可以确定是这个环节出了问题。

5.2 我的解决思路与一个替代方案

解决思路有两个方向。一是改善网络路径,让 Docker 守护进程能够稳定访问 ghcr.io;二是在离线或受限环境下,提前把需要的镜像文件在另一个网络正常的机器上拉好,通过docker save导出再docker load导入到目标机器。第二种方案我认为特别适合没有公网环境的场景,或者网络波动剧烈的场景。

具体操作流程大概是:在一台能正常访问 ghcr.io 的机器上,执行docker pull拿到镜像,然后docker save打成 tar 包,把 tar 包拷贝到目标机器,再docker load导入。这样绕开了部署机与 ghcr.io 之间的网络瓶颈。不过要注意镜像迁移时的版本一致性,确保导出的镜像标签和部署配置里引用的标签完全一致。

提示:如果你在部署时发现docker pull ghcr.io/...长时间无响应,不要一直等下去。先检查基础网络连通性,再考虑镜像源或代理配置,最后才考虑离线迁移方案。排查顺序比盲目尝试重要得多。

6. 网络配置与代理问题:部署卡住的 80% 原因都在这里

根据我的实战经验,OpenClaw 部署失败的案例中,网络问题占了绝大多数。表现形式非常多样:拉镜像超时、依赖下载失败、容器启动后无法访问外部服务、API 请求超时……如果你在部署中遇到这些情况,先别急着怀疑代码,大概率是网络环节出了岔子。

6.1 直连、代理与镜像源的三角关系

OpenClaw 作为一个涉及多个外部服务的项目,部署时对网络的要求比普通项目高。它可能需要拉取镜像、下载依赖包、访问外部 API,甚至在某些功能场景下与第三方服务通信。这里有一个常见的误解:以为只要配置了 Docker 镜像加速,所有网络问题就都解决了。实际上,容器运行时的网络访问、宿主机代理设置、镜像拉取通道是三层不同的问题,需要分别排查。

我见过的最典型场景是:镜像能拉下来,但容器启动后,OpenClaw 内部尝试访问外部服务时超时。这是因为容器内的网络请求走的是宿主机的网络栈,如果宿主机有代理需求但没配置好,或者代理规则没有覆盖容器流量,就会出现这种"镜像可以、运行不行"的诡异状态。排查时可以用容器内执行网络测试命令,把问题定位到具体环节。

6.2 一个有效的验证思路

如果你怀疑是网络问题导致部署卡住,我的建议是逐层验证:先验证宿主机能否访问目标域名,再验证容器内能否访问目标域名,最后验证具体端口是否可达。三步走下来,基本能把问题锁定在宿主机网络、容器网络或防火墙三层中间的一层。这一步看似基础,但能省下大量盲目重试的时间。

关于代理配置,我的原则是:如果用不到就不要配,配置了反而可能引入新的不确定因素。只有当你的网络环境明确需要代理才能访问外部资源时,才需要考虑代理配置,而且配置后要做完整验证。对于大多数家庭网络或办公室网络,直连配合国内镜像源通常是更省心的组合。

7. 从单体到容器:OpenClaw 部署架构的最终选择

部署模块化项目时,我一开始习惯把所有组件塞进一个容器里,觉得这样管理简单。实际跑下来发现这个方案对 OpenClaw 并不友好,因为涉及的组件比较多,单体容器会导致日志混杂、依赖冲突、重启互相影响等问题。后来我切换到多容器协作的部署方式,才算是真正稳定下来。

7.1 多容器协作 vs 单体容器

用多容器部署,最大的好处是职责清晰:每个容器只跑一件事,日志分开看,出问题单独重启。比如独立的数据库容器只管数据存储,核心应用容器只管业务逻辑,辅助组件容器各自独立。这样排查问题时,直接看对应容器的日志就行,不用在一大堆混合输出里捞关键信息。

当然,多容器部署也引入了新的复杂度:容器之间的网络通信、数据卷共享、启动顺序控制。docker-compose 这个工具就是为解决这些问题而生的,它可以把多个容器的启动配置写在一个文件里,一条命令完成编排。OpenClaw 相关的部署配置文件里,通常已经定义好了各服务的依赖关系,直接基于它修改即可。

7.2 数据持久化:删除容器不等于删除数据

这是多容器部署里最容易忽略的一点。如果你把数据存在容器内部,一旦容器被删除或重建,数据就没了。对于 OpenClaw 这类涉及账号配置、历史记录、日志数据的项目,数据丢失的代价很高。正确做法是把数据目录挂载到宿主机上的指定路径,通过数据卷或 bind mount 实现持久化。这样即使容器重建,数据依然还在。

我建议你在部署前就把数据目录规划好,不要等跑起来之后再改。中途变更数据挂载通常意味着要迁移数据,操作麻烦且容易出错。deployment 配置文件里的 volumes 字段,就是用来定义容器目录与宿主机目录映射关系的核心位置,值得花时间逐行理解。

提示:启动顺序也很重要。依赖数据库的服务如果先于数据库启动,往往会报连接错误。docker-compose 中的 depends_on 字段可以控制启动顺序,但它只控制启动顺序,不保证数据库完全就绪。稳妥的做法是让应用服务具备重试机制,或者在启动脚本里等待依赖服务就绪。

8. 启动流程详解:从控制台输出到功能验证

一切准备就绪后,真正激动人心的时刻就是启动。但启动不等于部署完成,我看到太多人把"容器起来了"当成"部署成功",结果后续功能根本没法用。这里分享一套我自己的验证流程。

8.1 启动命令与日志观察要点

启动的命令以实际安装方式为准,可能是脚本命令,也可能是 docker-compose 命令。不管哪种方式,关键是观察启动日志,而不是看一眼进程在就跑路。OpenClaw 启动过程中会输出大量日志,重点关注几个信号:依赖模块是否加载成功、数据库连接是否正常、服务端口是否成功监听、有没有 fatal error 或 exception。

如果启动过程中日志出现了红色报错,先冷静分析,不要急着重启。很多报错是依赖服务还没就绪导致的瞬时错误,等所有服务起来后自动恢复。我的习惯是:看到报错后,先等 30 秒到 1 分钟,再看日志是否继续报错。如果持续报错,再按之前说的排查思路逐层定位。

8.2 功能验证清单

启动成功后,我建议按顺序验证核心功能:

  1. 检查服务端口是否能正常访问,确认 Web 界面或 API 服务已响应。
  2. 尝试触发一个核心业务流程,确认功能链路是通的。
  3. 检查日志里是否有运行时的错误堆积。
  4. 重启一次服务,确认配置持久化和数据卷挂载正常。
  5. 检查资源占用情况,确认内存和 CPU 处于合理范围。

这一套验证流程跑完,才算真正完成了部署。不要嫌麻烦,部署阶段多花十分钟验证,能避免之后使用过程中反复出问题。

9. 配置调整与佛系更新:部署完成后的运维心得

部署完成绝不意味着万事大吉。OpenClaw 这类项目迭代速度较快,配置项也经常变化,如何在后续使用中保持稳定,我有几点心得。

9.1 配置项调整的最小改动原则

OpenClaw 的配置项涉及运行参数、依赖服务地址、数据路径等多个维度。我强烈建议遵循"最小改动原则":每次只改一个配置项,改完立即验证,确认没问题再改下一个。千万不要一次性改七八个配置项,然后出了问题不知道是哪一项导致的。这个原则听起来简单,真到实操时很多人控制不住,尤其是赶进度时总想一次到位。

另外,配置文件的备份非常重要。每次改动配置前,把当前正常工作的配置备份一份。这样即使改坏了,也能快速回滚。我用的是最简单的办法:复制一份带日期的备份文件,不依赖任何版本管理工具,但效果很好。

9.2 安全更新:为什么我建议先看公告再行动

OpenClaw 后续的版本更新可能包含安全修复和自己需要的新功能。我相信你和最初的我一样,看到更新提示就忍不住想第一时间升级。但我要说一个真实教训:有段时间我无脑追新版本,结果某次升级后,之前稳定运行的环境出现了兼容性问题,折腾了一整天才回滚到旧版本。

所以我现在对更新的态度是:先看项目仓库的 releases 说明或更新公告,确认更新内容,再评估自己是否需要。如果只是无关痛痒的小改动,或者当前版本运行稳定,完全可以保持现状。如果你确实需要新功能,也不要直接在生产环境更新,先在测试环境验证,确认没问题再正式应用。

9.3 日志与备份的日常习惯

最后说两个日常运维的好习惯,都是我踩过坑之后才养成的。第一,定期查看 OpenClaw 的运行日志,不用每天看,但至少每周浏览一次,关注异常堆积和资源占用趋势。第二,做好数据和配置的双重备份。数据备份负责业务数据,配置备份负责部署状态。两者分开备份,恢复时才能快速定位。

提示:如果你后续考虑把 OpenClaw 的功能集成到其他平台,或者在更复杂的网络环境中运行,建议提前了解项目的扩展接口和配置文档。保持对官方文档的关注,比在网上找零散教程更可靠。

10. 最后想说的

回看整个部署过程,OpenClaw 的复杂度其实并不在于某个单一环节,而是所有环节叠加在一起时,问题会互相干扰,排查难度成倍上升。我最初部署时,光是网络问题就花了两天,期间无数次怀疑是代码问题,最后定位到是镜像源与代理配置的交叉影响。这个经历让我深刻体会到:部署项目时,先搭好稳定环境,再追求其他,能省下大量时间。

如果你在 Ubuntu 20.04 上部署 OpenClaw 时卡在某一步,我的建议是:不要病急乱投医,先按网络、配置、依赖的顺序逐层排查。每一次部署失败的经验都很有价值,因为它们能让你对项目的运行机制理解得更透彻。

希望这篇教程能帮你少踩一些我踩过的坑。如果你在部署中发现了更好的方法,也欢迎后续在社区里分享出来。部署类项目的快乐,就在于把一个复杂系统从零搭起来,看着它稳定运行的那一刻。

相关新闻

WiSparse实战:用权重感知的激活稀疏化加速LLM推理

WiSparse实战:用权重感知的激活稀疏化加速LLM推理

做LLM推理优化的朋友这两年基本都盯着一件事:内存带宽。尤其是decode阶段,每一个token都要把整个模型的权重和不断增长的KV cache读一遍,算力利用率经常连10%都不到。稀疏化一直被看作解药之一,但过去大家总觉得大模型里的SiLU/GE…

2026/10/20 14:59:32 阅读更多 →
分类任务实战指南:从数据准备到模型部署全流程解析

分类任务实战指南:从数据准备到模型部署全流程解析

分类任务是机器学习里最基础也最绕不开的一类问题。不管是图像识别、文本情感分析,还是用户流失预警、企业客户分群,绝大多数团队的第一个模型都是从分类任务开始的。这篇内容以我实际做过的一个模拟项目为主线,围绕分类任务从问题定义、数据…

2026/10/20 14:59:32 阅读更多 →
Emmet实用教程:用缩写快速生成HTML与CSS代码,提升前端开发效率

Emmet实用教程:用缩写快速生成HTML与CSS代码,提升前端开发效率

如果你写过几周HTML和CSS,就一定体会过那种“明明只是堆标签,却堆到手酸”的感觉。一个稍微像样的页面,少说几十个嵌套的div,每个都要手写闭合标签;CSS里一条margin: 0 auto;能打十几次;改一下结构层次还得…

2026/10/20 14:59:32 阅读更多 →

最新新闻

EBS采购订单审批API集成实战:工作流、中间件与存储过程设计

EBS采购订单审批API集成实战:工作流、中间件与存储过程设计

做EBS集成的同学对采购订单审批肯定不陌生。标准功能里,审批人每天登录EBS工作台,从一堆待办通知里逐个点开、审批、写意见,流程虽然完整,但一旦公司上了OA、企业微信、钉钉或者供应商协同平台,业务方就会立刻找你&…

2026/10/20 18:47:50 阅读更多 →
计算机视觉论文速递:动态计算、自监督数据质量与多模态对齐新进展

计算机视觉论文速递:动态计算、自监督数据质量与多模态对齐新进展

1. 为什么我要做一期计算机视觉方向的论文速递做研究的人都有一个共同的痛点:每天新挂出来的论文实在太多了,光是计算机视觉这个方向,几个主流预印本平台一天就能更新上百篇。你不可能每篇都点开看,但你又怕错过真正重要的东西。我…

2026/10/20 18:47:50 阅读更多 →
6502硬件调试监控系统:基于AVR的实时总线采样与指令追踪

6502硬件调试监控系统:基于AVR的实时总线采样与指令追踪

简介:本资源是一套面向嵌入式系统开发者与计算机体系结构学习者的硬件监控实践方案,聚焦Ben Eater 6502 8位计算机的底层运行状态观测与调试。它基于AVR单片机(Teensy 2.0)构建实时监控系统,通过捕获6502的地址总线、数…

2026/10/20 18:47:50 阅读更多 →
PX4位置环与速度环详解:从代码到调参排错全攻略

PX4位置环与速度环详解:从代码到调参排错全攻略

有段时间我一直在折腾一台中型四轴,拿到手之后最明显的问题是:飞控切到位置模式,往前推杆让它飞出去,到达目标点之后机头会轻轻点一下,机身前后晃两三次才稳住。这个现象不致命,却很影响手感,也…

2026/10/20 18:47:50 阅读更多 →
工业计量三维检测软件:软硬协同与自主可控如何重塑产线质检

工业计量三维检测软件:软硬协同与自主可控如何重塑产线质检

这两年国产三维检测软件的声量确实大了。作为常年在检测室跟点云、公差、检测报告打交道的人,我最大的感受倒不是某个软件又多了几个功能图标,而是过去那种"扫描归扫描、分析归分析"的割裂状态正在被打破。以前测一个复杂曲面零件,…

2026/10/20 18:47:50 阅读更多 →
Base64编码原理与实战:解决JS图片上传乱码、截断、兼容性问题

Base64编码原理与实战:解决JS图片上传乱码、截断、兼容性问题

1. 为什么Base64不是“加密”,而是“编码”——从一张图片上传失败说起上周帮某高校实验室调试一个图像处理Demo,前端同学发来截图:用户上传一张2MB的PNG图,点击提交后控制台报错Failed to execute btoa on Window: The string to…

2026/10/20 18:46:50 阅读更多 →

日新闻

CLRC663芯片Pin-to-Pin替代实战:从评估到量产全记录

CLRC663芯片Pin-to-Pin替代实战:从评估到量产全记录

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

2026/10/20 1:01:30 阅读更多 →
ESP32舵机控制指南:原理、多路驱动与避坑实战

ESP32舵机控制指南:原理、多路驱动与避坑实战

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

2026/10/20 1:01:30 阅读更多 →
位移法实现一阶低通滤波:单片机ADC采样降噪实战

位移法实现一阶低通滤波:单片机ADC采样降噪实战

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

2026/10/20 1:01:30 阅读更多 →

周新闻

基于GMM的语音识别系统原理与MATLAB实现详解

基于GMM的语音识别系统原理与MATLAB实现详解

说到基于高斯混合模型(GMM)的语音识别系统,很多人第一反应就是一堆数学公式,觉得门槛很高。但如果你真的在MATLAB里把它落地跑通,会发现核心其实就是三件事:把声音变成特征向量,用GMM给每个类别…

2026/10/20 10:02:13 阅读更多 →
数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理这四个字听起来挺唬人,但落到具体操作上,无非就是让计算机按你的想法“摆弄”像素。我在一个模拟项目X里用了一套特别经典的基础处理流程:对图像做反白、改调色板、彩色转灰度,最后把像素数据导出成txt文件。单看每一…

2026/10/19 17:32:41 阅读更多 →
机器人大脑技术盘点:具身智能的感知、决策与数据闭环

机器人大脑技术盘点:具身智能的感知、决策与数据闭环

如果你的信息流最近也天天刷到“机器人大脑”这个词,你会发现一个很有意思的现象:每个人说的“大脑”根本不是同一个东西。有人指的是大语言模型,有人指的是运动控制系统,还有人指的是能理解物理世界的端到端模型。在2026年这个时…

2026/10/20 2:50:50 阅读更多 →

月新闻

我发现了一个新思路:用 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/20 10:02:08 阅读更多 →
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/20 9:50:17 阅读更多 →
黑夜航拍船只数据集训练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/20 9:50:45 阅读更多 →