gmapping地图重置实战:从杀进程到根治坐标系漂移与旧图残留
用 gmapping 建图时最让人头疼的场景之一就是地图突然扭曲或者机器人被长时间卡住之后坐标系漂移整张地图边缘像融化了的冰淇淋。很多人第一反应是搜索“重置 gmapping”然后照着常见做法敲rosnode kill /slam_gmapping再重新启动结果要么地图还在原地继续更新要么 RViz 里残留的旧地图和新地图叠在一起看起来比没处理之前更乱。我一开始也踩过这个坑后来才慢慢摸清gmapping 的重置并不只是一个进程的启停它牵扯到粒子滤波器的内部状态、话题连接情况、TF 树发布顺序甚至启动文件里respawn和required这两个属性的影响。这篇文章把我在实际操作中验证过的方法整理出来附上一张重置后排查问题的清单给正在调试机器人导航和 2D SLAM 的朋友一份可以直接抄作业的操作方案。1. 为什么说 gmapping 的重置不是简单杀进程1.1 粒子滤波器和 /map 话题的临时性gmapping 的核心是一个粒子滤波器。节点启动后会在内存里保存一组粒子每个粒子都代表一条可能的机器人轨迹并且附带一张局部栅格地图。每当收到一帧激光数据和对应的 TF节点就更新粒子权重最后根据权重最高的粒子把当前地图渲染出来发布到/map话题上。也就是说地图不是磁盘上现成的文件而是内存中的动态状态。杀掉节点这部分内存就被操作系统回收地图也随之消失。听起来“重置”好像成功了但新一轮启动时gmapping 会以当前时刻的里程计原点、当前的话题连接和当前的传感器数据重新开始这个起点并不一定等于上次建图刚开始时的位置。所以新图和旧图对不上往往不是因为 gmapping 没重置而是世界坐标系里的基准变了。还有一点容易被忽略/map话题不是像/scan那样的持续数据流。gmapping 默认按map_update_interval定时发布地图内容往往滞后于最新观测。如果你在关闭 gmapping 后还有一个map_server在持续发布同一话题订阅方看到的很可能还是旧地图。此时你以为服务重启正确实际上数据源早就串线了。这也解释了为什么有人在执行完“杀进程、重新 launch”之后RViz 里出现的依然是一张老图。1.2 旧地图残留的三种来源我遇到过的“重置后旧图还在”基本都能归结成三类第一个来源是map_server。有些 launch 文件把map_server和 SLAM 节点放在一起地图文件被自动加载gmapping 启动后虽然占据着/map发布权但一旦 gmapping 短暂离线map_server会立刻顶上。你需要用rostopic info /map查看发布者列表而不是只盯 RViz 画面。第二个来源是 RViz 的地图显示缓存。RViz 的 Map 显示会保留最后一次收到的地图消息即使节点被杀死只要你不清理显示它就一直把旧图挂在画面上。比较坑的是新节点启动后的前几秒可能因为传感器数据不足还没有发布新地图这时候视线里全是旧图非常容易误判。第三个来源在业务代码里。很多导航程序在收到地图后会存一份本地副本或者直接用自定义代价地图。gmapping 节点重置了导航程序内部缓冲区还是旧数据。这类问题排查起来最慢但根子上和 gmapping 本身无关把整个导航栈重启一遍通常能解决。1.3 粒子滤波器发散时会看到什么gmapping 建图过程中如果长时间被卡住、里程计严重打滑粒子权重可能会出现退化表现为地图上出现大量“鬼影”、墙体重叠或者/slam_gmapping/entropy这个主题的数值持续居高不下。这个 entropy 主题在很多 demo 里没人关注但它是个很好的健康指标。粒子滤波器收敛时熵相对稳定如果地图已经乱到认不出来熵往往会剧烈震荡。当你发现 entropy 一直下不来最理智的选择就不是局部调参而是直接重置地图重新走一遍建图流程。这个经验在复杂的室内环境里尤其重要因为有些墙和柱子外观相似粒子滤波器一旦锁定错的方向后续再怎么增加扫描都可能救不回来。2. 重置前必须做的地图留存与依赖检查2.1 用 map_saver 把当前地图留个底重置的目的是重新建图但有些场景下你需要先保住当前这张图比如调了半天的参数、地图里的障碍物轮廓已经很有参考价值。这时建议先保存一份地图rosrun map_server map_saver -f /tmp/gmapping_before_reset这条命令会订阅/map生成.pgm和.yaml两个文件。需要注意两点第一如果 gmapping 被放在某个命名空间里比如节点名是/robot/slam_gmapping那它发布的地图话题通常是/robot/map此时需要显式指定rosrun map_server map_saver _map_topic:/robot/map -f /tmp/gmapping_before_reset第二先让机器人动几下再保存。map_saver保存的是当前话题里最新的一帧地图而 gmapping 默认可能几秒才更新一次。如果你原地不动保存到的可能是上一轮更新留下的地图边界和最新激光对不上。我自己的习惯是保存前遥控机器人旋转一圈确认地图里最近的墙面、桌腿都更新后再执行。2.2 确认哪些节点在依赖 gmapping 输出单独杀掉 gmapping 之前先想清楚谁在消费它的输出。最常见的组合是slam_gmapping、map_server、move_base三个节点在同一个 launch 里同时启动。如果你只杀 gmappingmove_base拿不到新的map或map_metadata它内部维护的代价地图就会一直停留在旧状态。极端情况下机器人明明已经走到新地图里的空区域导航层仍认为前方有墙从而产生急停、绕路甚至倒退。所以你最好在重置前决定一件事是想只重置建图链路还是连同导航一起重置。只重置建图链路的话要确认move_base和 AMCL 的输入源是否允许短时间内缺失地图数据。多数订阅者在话题断开后会自动重连不会崩掉但如果你自己写的算法没有做话题等待处理就可能出现空指针或异常状态。还要检查 launch 文件里是否写了requiredtruenode pkgslam_gmapping typeslam_gmapping nameslam_gmapping outputscreen requiredtrue一旦这个属性存在gmapping 进程退出整个 roslaunch 会直接把所有节点都带崩。所以想让 gmapping 单独重启就别加requiredtrue。如果你维护的是实车上的整合 launch最稳妥的方式是把 gmapping 拆成独立 launch或者用下面第 3 章说的respawn方案。2.3 检查 TF 树和话题名避免重置后接错线重置之前顺手看一眼 TF 树能省掉很多事后排查时间。用这个命令rosrun tf view_frames它会生成一个frames.pdf里面画出了当前所有坐标系变换。gmapping 正常工作时你至少能看到map - odom - base_link - laser这样一条完整链路。如果少了odom到base_link说明里程计节点没有正确发布如果少了激光坐标系到base_link说明雷达的外参 TF 没配置。这些在重置后都是大坑因为新节点启动时会立刻去请求这些变换拿不到就直接罢工。话题名也值得提前确认。大多数机器人激光话题叫/scan但也有人用/laser_scan或/front_scan。启动文件里的scan_topic参数写错了gmapping 虽然不会报错退出但建图结果是空的。重置前打开一个终端执行rostopic list | grep -i scan把实际话题名和你 launch 里的配置对比一下再进入下一步。3. 真正能清空地图状态的两种重启流程3.1 方法ACtrlC 整个 launch 后重新拉起最直接的做法适合桌面调试和 rosbag 离线测试。运行roslaunch my_robot gmapping.launch的终端里按 CtrlC等终端提示进程全部退出后重新执行同一句命令。这样做的效果是彻底断掉所有旧进程和旧话题连接gmapping 重启后内部粒子滤波器从零开始/map话题也会在第一次地图更新后重新发布。具体操作顺序我来理一下在 launch 终端按 CtrlC等待所有子进程退出看到roslaunch exiting或类似提示。用rostopic echo /map --once验证话题已经消失。如果命令一直卡住不返回说明还有别的进程在发布。回到 RViz把 Map 显示清掉或者直接重启 RViz。这一步是为了避免旧地图残影干扰判断。重新运行roslaunch。启动后注意观察有没有红色报错尤其是 Transform 错误和 topic 连接失败。遥控机器人走一小段确认/map话题开始持续更新。这个方法逻辑清晰唯一麻烦是它会把 launch 里的其他节点一起停掉。如果在实车上联调底盘驱动、IMU、传感器节点重启一次可能要花不少时间所以更适合在开发环境使用。3.2 方法B配合 respawn 实现热重置更好的方案是把 gmapping 设计成“被杀后自动重启”这样重置动作就变成了一个rosnode kill命令。启动文件里这样写launch node pkgslam_gmapping typeslam_gmapping nameslam_gmapping outputscreen respawntrue respawn_delay2.0 param namebase_frame valuebase_link/ param nameodom_frame valueodom/ param namemap_frame valuemap/ param namescan_topic value/scan/ param namemap_update_interval value5.0/ param namemaxUrange value5.0/ param namemaxRange value8.0/ param nameparticles value30/ param namelinearUpdate value0.5/ param nameangularUpdate value0.5/ /node /launch关键属性是respawntrue。ROS 的 roslaunch 会监听节点状态发现slam_gmapping进程死亡后等待respawn_delay指定的时间再从零启动一次。因为新进程不继承旧进程的内存粒子滤波器和栅格地图自然重置。所以你想重置地图只需要执行rosnode kill /slam_gmapping执行后大约 2 秒节点会重新在线地图回到空白状态。这个方法实测很稳尤其适合多次调整场景、反复对比建图效果的调试阶段。它不影响雷达和底盘驱动机器人还能保持当前位姿gmapping 会从当前位置重新构建地图。代价是 gmapping 无法被彻底关闭想停止建图只能连整个 launch 一起停。如果测试流程需要先关闭 SLAM、再独立启动其他算法这个方案就不合适。此时应该选方法 A或者干脆把 gmapping 单独放在一个专门的重启 launch 文件里。还有个小提醒如果同一个 launch 里存在多个带respawn的节点会有几十毫秒的窗口期让/map话题处于无发布者状态。标准订阅端会自动处理但自己写的程序一旦缺少等待逻辑就要做好防御。3.3 两种方法怎么选我的经验是分场景只在桌面上跑 rosbag 回放、验证算法参数用方法 A。回放环境干净重启所有节点成本低还能顺便观察其他节点启动顺序是否正常。在实车上调试或者 nodelet 众多、底盘驱动启动慢用方法 B。这样重置不影响运动控制链路机器人还能保持当前位姿。多机器人协同建图时如果每个机器人都有独立 namespace方法 B 更顺手。rosnode kill /robot1/slam_gmapping只重置一号机器人其他机器人的地图完全不受影响。3.4 把重置流程做成脚本调试频率高的时候我建议把“保存旧图”和“重置节点”放到同一个 shell 脚本里。核心就这几行rosrun map_server map_saver -f /tmp/gmapping_backup || true rosnode kill /slam_gmapping || true sleep 3 rostopic echo /map --once我会特意保留|| true这样即使某个节点不在线脚本也不会因为报错停在半路。配合respawntrue的 launch整个重置流程不到十秒。脚本可以加一个时间戳参数每次备份文件名都不同方便后面对比前后两次建图效果。4. 配合 rqt_reconfigure 与 RViz 的辅助手段4.1 用 rqt_reconfigure 调整刷新参数但别指望它清空地图我在刚接触 gmapping 时也天真地找过 dynamic_reconfigure 里有没有 Reset 按钮。结论是没有。slam_gmapping 提供的可调参数主要是粒子数、更新频率、激光范围、里程计噪声模型这些它们只会影响后续地图更新的行为不会把现有粒子轨迹抹掉。不过有一个参数在重置后调试时非常有用map_update_interval。它的默认值通常设置在 2 到 5 秒之间。如果你重置后发现地图老半天不更新可以临时把它调小rosrun dynamic_reconfigure dynparam set /slam_gmapping map_update_interval 0.5这样做之后地图刷新会被压缩到半秒一次能很快看到新节点在当前位置重建出的轮廓便于判断雷达、TF、话题连接是否都正常。确认没问题后再调回 5.0rosrun dynamic_reconfigure dynparam set /slam_gmapping map_update_interval 5.0要注意这个操作不会重置粒子滤波器。如果地图已经被扭曲的信息污染半秒刷新一次只会把更清晰的新观测叠在老问题上。你要的是一张不受历史轨迹影响的干净地图还是得走第 3 章的重启流程。4.2 RViz 中的 Reset 和地图显示缓存重置之后RViz 的老问题很容易让人误判。比如你刚执行完rosnode kill /slam_gmappingRViz 里还挂着之前的/map图层新节点还没发布消息画面上看起来就像“地图没被重置”。其实地图数据早就被销毁了只是显示层没有清空。最稳妥的做法是先把 Map 显示项删除等新节点启动、/map话题重新出现后再新建一个 Map 显示。如果只是临时清理可以点击 RViz 工具栏里的 Reset 按钮但它只清空显示缓存和路径不会影响节点内部状态。你可以把它理解为“擦掉黑板再买一盒新粉笔但黑板前的老师还是原来那位”。另外重置后要把 Fixed Frame 设成map否则 RViz 选取odom或base_link作为参考系时看到的地图可能会持续移动或偏移。这个问题和 gmapping 本身无关但出现频率极高值得单独记一笔。4.3 调整粒子数和里程计噪声模型重置后如果需要快速验证particles参数也值得关注。particles默认通常是 30调高到 50 会显著提升地图稳定度但 CPU 开销也会上升。在建图环境比较空旷、特征较少时粒子数太多反而会拖慢更新。我的做法是先用较小粒子数跑一遍确认整个链路没问题时再提高避免把大量计算浪费在错误的路线上。里程计噪声模型参数srr、srt、str、stt对建图结果的影响更直接。这些数值描述机器人运动模型里平移误差和旋转误差之间的比例关系底盘特性不同最优值差异很大。重置之后如果你发现地图转角处出现明显错层优先检查这几个参数而不是反复重启。调整时可以用rosrun rqt_reconfigure rqt_reconfigure打开图形界面一边推机器人一边看地图变化效率比每次改 launch 再重启高很多。5. 重置之后地图仍不更新的排查清单5.1 问题现象与对应原因表格现象常见原因检查方式/map有数据但几乎是空白激光话题名或坐标帧配置错误gmapping 没收到有效 scanrostopic echo /scan确认 TF 中 laser 到 base_link 的变换地图长时间没有变化linearUpdate/angularUpdate阈值未触发机器人移动量不够手动推车或遥控转圈用dynparam调低阈值重置后又出现旧地图有map_server在同一个/map话题上发布旧数据rostopic info /map查看发布者列表关掉冲突节点地图出现重影或墙线错位里程计 TF 或 odom 原点与上次不一致底盘驱动被重置rosrun tf view_frames检查 TF 树把机器人放回参考点启动时报节点名冲突旧 gmapping 进程未完全杀死或 launch 重复加载rosnode list查看执行rosnode cleanup原地转圈时地图更新直线走不更新linearUpdate和temporalUpdate参数失衡调低linearUpdate比如 0.15.2 从零开始验证的步骤顺序如果你刚执行完重置又怀疑哪里没接对按下面的顺序走一遍比胡乱改参数高效得多确认节点在线rosnode list | grep slam_gmapping只允许出现一个。确认激光数据在流动rostopic hz /scan频率应该稳定在雷达配置值附近多数环境是 10Hz 左右。确认地图话题存在rostopic echo /map --once能返回一帧数据说明节点至少已经发布过一次地图。确认 TF 完整用rqt_tf_tree或rosrun tf view_frames看map - odom - base_link - laser这条链路有没有断裂。让机器人动起来。手动推车或遥控器发指令围绕直径至少 1 米的圈观察/map_metadata的更新时间戳是否推进。如果地图还是不更新打开 gmapping 的控制台日志检查有没有激光数据被丢掉的警告。常见情况是 scan 帧时间戳和当前 TF 时间差太大或者某个坐标变换暂时缺失这些都会让地图更新流程卡住。5.3 一次真实调试里的启发有一次我在室内环境做建图联调重置之后地图始终只有一小圈机器人一旦走出某个范围新区域就是一片空白。反复重启了几次都没解决。后来发现问题的根源不在 gmapping而在我把maxUrange设成了 2 米雷达最远明明能看到 8 米滤掉长距离点以后gmapping 把远处走廊通道都当成未知区域自然画不出完整结构。这个经历给我的教训是重置流程本身不复杂但重置之后一定要按传感器数据链路重新确认参数尤其是maxRange和maxUrange。短距离测试看不出问题一进大房间就露馅。5.4 别忘了“里程计原点”这种隐藏变量最后特别想提一个很容易被忽略的坑odom 原点。gmapping 发布map - odom变换时会把当前里程计读数当作新地图的起点。如果你重置 gmapping 时没有同时重置底盘里程计机器人又不在最初的原点上那新地图的坐标就会和旧地图错开一大截。这种错开不是画面上那种细微漂移而是整个地图相对 RViz 网格明显平移。处理办法很简单重置前把机器人手动放回已知位置或者同时重启底盘驱动和里程计节点确保新会话从同一参考点开始。这串检查基本能覆盖 90% 的重置后问题剩下的就是传感器本身的数据质量比如雷达反光、阳光干扰、遮挡过密这类物理层面的因素。最后再分享一个我的习惯把重置写成一个短脚本放到 workspace 的 scripts 目录里每次重置前先保存地图再杀节点最后验证地图话题重新出现。脚本不复杂但能让你在联调现场手忙脚乱时不至于点错命令。建图本身就是个反复试错的过程能自动化、能快速回滚的操作早做早省心。

相关新闻

Fragment Mono:源自 Helvetica 谱系的等宽编程字体,在 Fontsource 中的分发与使用

Fragment Mono:源自 Helvetica 谱系的等宽编程字体,在 Fontsource 中的分发与使用

前端CLI开发工具 【免费下载链接】fontsource Self-host Open Source fonts in neatly bundled NPM packages. 项目地址: https://gitcode.com/gh_mirrors/fo/fontsource 点击查看 免费下载 Fragment Mono 是一款以 Helvetica 为基因、面向代码阅读场景设计的等宽&…

2026/10/17 5:58:32 阅读更多 →
PCIe 6.0主机卡与Gen6 E3.S转接卡实战:链路协商与fio性能测试解析

PCIe 6.0主机卡与Gen6 E3.S转接卡实战:链路协商与fio性能测试解析

刚拿到这套PCIe 6.0主机卡和Gen6 E3.S转接卡的时候,我第一反应就是把测试平台的PCIe插槽清出来,赶紧接上看看能不能一次点亮。PCIe 6.0从标准落地到现在,真正能跑通、能稳定出数据的组合其实还不多,而E3.S这种新的企业级盘形态&am…

2026/10/17 5:58:32 阅读更多 →
如何用 DashPlayer:生成字幕、查词、切章节

如何用 DashPlayer:生成字幕、查词、切章节

如何用 DashPlayer:生成字幕、查词、切章节 【免费下载链接】DashPlayer 为英语学习者量身打造的视频播放器,助你通过观看视频、沉浸真实语境,轻松提升英语水平。#美剧 #播放器 #听力 项目地址: https://gitcode.com/GitHub_Trending/da/Da…

2026/10/17 5:58:32 阅读更多 →

最新新闻

Maven依赖冲突排查与治理:从NoSuchMethodError到依赖树分析

Maven依赖冲突排查与治理:从NoSuchMethodError到依赖树分析

1. 从一次诡异的线上报错聊起:依赖冲突到底是怎么把事情搞砸的先说个真实案例。某天下午,我负责的一个服务突然在压测阶段抛出一堆NoSuchMethodError,看堆栈却完全摸不着头脑——报错指向的类明明存在于依赖里,而且代码在本地跑得…

2026/10/17 7:04:03 阅读更多 →
C语言单链表核心操作详解:从入门到避免段错误

C语言单链表核心操作详解:从入门到避免段错误

学完C语言的结构体和指针之后,绝大多数人碰到的下一道坎就是单链表。这玩意儿上课听的时候觉得挺简单,不就是比数组多了个指针嘛,真到自己写就翻车:要么编译跑着跑着段错误,要么链表打印出来缺头少尾。作为一个被链表折…

2026/10/17 7:04:03 阅读更多 →
永磁同步电机参数辨识实战:离线辨识流程与工程疑难点解析

永磁同步电机参数辨识实战:离线辨识流程与工程疑难点解析

一台陌生电机摆在面前,能让一个做驱动控制的人瞬间头疼的,永远不是那个铭牌上简简单单的额定功率和额定电流,而是矢量控制算法里必须要填、却一个都没写的那些电气参数。定子电阻是多少,d轴电感到底是0.3毫亨还是0.8毫亨&#xff…

2026/10/17 7:04:03 阅读更多 →
MySQL binlog实时同步到Kafka:基于Canal的完整实操指南

MySQL binlog实时同步到Kafka:基于Canal的完整实操指南

接手这个需求挺偶然的:系统里有一张核心业务表,每次更新之后,下游的统计、检索、缓存都需要尽快知道。最开始用的是定时任务每30秒扫一次,结果业务量一上来,延迟和数据库压力都让人头大。后来决定换成“监听数据库binl…

2026/10/17 7:04:03 阅读更多 →
深入理解 Git Merge:从 fast-forward 到冲突处理的完整实战指南

深入理解 Git Merge:从 fast-forward 到冲突处理的完整实战指南

git merge 大概是 Git 里最容易被低估的命令。很多人每天在敲git merge dev、git merge master,但对它背后发生了什么、什么时候会走 fast-forward、三个点提交为什么决定冲突结果、合并错了怎么安全回滚,其实没真正捋清楚。等哪天真遇到一次复杂冲突&am…

2026/10/17 7:04:03 阅读更多 →
HeavyLoad整机压力测试:用极限负载验证电脑稳定性

HeavyLoad整机压力测试:用极限负载验证电脑稳定性

简介:这是一个针对工控机与家用PC的压力测试资源包,内含HeavyLoad便携版及相关组件,面向需要快速评估系统稳定性、排查硬件瓶颈的技术人员与普通用户。无需复杂安装,解压即用,尤其适合临时测试环境。压缩包共13个文件&…

2026/10/17 7:03:03 阅读更多 →

日新闻

DeepSeek选型与部署:V3/R1、Ollama、API全攻略

DeepSeek选型与部署:V3/R1、Ollama、API全攻略

简介:《DeepSeek使用方法.pdf》是一份面向DeepSeek入门及进阶用户的完整使用指南,重点围绕V3与R1两款模型的能力差异与适用场景展开,帮助读者根据任务类型与成本选择合适的模型。资源共1个PDF文件,压缩包大小约311KB,篇…

2026/10/17 0:00:25 阅读更多 →
200+Deepseek润色指令拆解:从底层原理到场景落地的完整指南

200+Deepseek润色指令拆解:从底层原理到场景落地的完整指南

简介:这是一份聚焦DeepSeek提示词优化的《200Deepseek润色指令》PDF文档,共收录两百余条可直接套用的润色指令,涵盖语法修正、风格统一、逻辑梳理、表达精炼等维度,并针对商务写作、学术论文、广告文案等场景给出差异化建议。文档…

2026/10/17 0:00:25 阅读更多 →
OpenCV轮廓法物体计数系统:轻量、可控、可落地的工业级实现

OpenCV轮廓法物体计数系统:轻量、可控、可落地的工业级实现

简介:本资源是一份基于OpenCV的本科课程设计完整报告,面向计算机视觉初学者、图像处理学习者及高校通信/信息类专业学生,解决物体智能计数与检测结果结构化记录的实际问题。项目覆盖图像预处理、轮廓检测、边界框绘制、轨迹栏交互式参数调节、…

2026/10/17 0:00:25 阅读更多 →

周新闻

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

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

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

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

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

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

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

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

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

2026/10/16 15:04:24 阅读更多 →

月新闻

我发现了一个新思路:用 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/16 21:54:38 阅读更多 →
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/16 3:49:43 阅读更多 →
黑夜航拍船只数据集训练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/16 14:23:36 阅读更多 →