Delta机器人正逆解C#源码详解:从几何法到牛顿迭代的工程落地
简介这是一份Delta机器人运动学算法的C#实现源码包面向自动化、机器人方向开发者与并联机器人学习者解决正向运动学与逆向运动学从理论到可运行代码的转化问题。压缩包共41个文件包含C#源代码、Visual Studio工程与解决方案配置、可执行文件及调试符号等整体仅900KB小巧完整便于直接打开运行和阅读。已有3917人浏览学习适合对照课程或项目快速上手。包内界面模块与运动学核心类演示了将三轴驱动角度映射为XYZ坐标的正向求解以及基于迭代与数值方法反算关节角的逆向求解过程同时配有可视化交互界面与清晰类库结构可直观观察计算结果辅助理解雅可比矩阵、坐标变换等难点。通过阅读和调试这份代码开发者既能掌握并联机器人运动学编程思路也能获得一个可扩展的Windows窗体示例用于后续控制算法或视觉定位功能开发。1. 并联机构里的快枪手这份C#正逆解源码到底能做什么delta机器人在食品分拣、电子装配线上能跑到每分钟上百次抓放靠的是并联机构天生的低惯量优势。但它的运动学求解和常见串联臂完全是两条路逆解可以用几何法一步闭式算出三个主动臂转角正解却要面对非线性方程组迭代求解收敛和初值都得自己伺候。这份C#源码把正逆解算法和可编译的工程文件打包在一起解决了并联机器人运动学算法里最容易被卡住的落地问题。适合刚接触delta构型、正苦于从末端坐标换算轴角的开发者也适合要做仿真联动或封装运动学库的集成工程师。2. 建模先导几何参数与坐标约定一步错步步错2.1 Delta为什么是三个自由度平行四边形闭环的功劳delta机器人的机械本体由静平台、动平台、三组主动臂和从动臂构成。主动臂由电机直接驱动从动臂一端通过球铰连在主动臂末端、另一端连到动平台。关键在于每一组从动臂本身是一个平行四边形结构——两对等长杆件始终互相平行这就把动平台的旋转自由度全部约束掉了。从机构自由度角度算三组主动臂各自提供一个旋转驱动从动臂平行四边形闭环给出约束最终动平台只剩下沿x、y、z三个方向的平动自由度。这正是delta能在高速分拣场景立足的根本原因电机装在静平台上运动部分只有轻量化的臂杆惯量比串联臂小一个量级。写运动学代码之前如果不理解这个几何闭环很容易把动平台当成可以任意旋转的刚体去建模。后面正逆解的全部推导都建立在「动平台姿态恒定」这一前提上这个前提错了解出来全无意义。2.2 四个关键参数从图纸到代码的映射运动学代码里所有的计算最终只依赖四个几何参数。参数标定错误是delta项目里最隐蔽的翻车点通常不是算法问题而是图纸上的尺寸标注和代码里的符号对不上。参数符号说明典型参考值静平台半径R静平台球铰中心到平台中心的距离120 mm动平台半径r动平台球铰中心到平台中心的距离40 mm主动臂长度L1主动臂回转中心到输出端球铰的距离200 mm从动臂长度L2从动臂两端球铰之间的直线距离450 mm注意R和r都是「铰点中心」到「平台中心」的距离不是平台外边缘半径。有些图纸标注的是安装法兰外径直接拿来用会导致逆解范围比实际小一大圈末端根本走不到工作空间边界。三个分支的布置角度φ_i在代码里一般取0°、120°、240°从静平台正x方向开始逆时针分布。这个约定要和你的机械装配方向严格一致否则解算出来的角度即使数学上正确真机上也对不上号。2.3 坐标系与角度参考水平面为零位向上为正坐标系的约定直接影响代码的可读性和排错效率。我一般把静平台中心设为原点Z轴竖直向上俯视时x轴指向第一个主动臂铰点。末端坐标(x, y, z)表示动平台中心在该坐标系下的位置。主动臂转角θ_i的参考系也必须在写代码前定死按「与水平面的夹角」来定义水平放置为0向上抬起为正。有些资料用主动臂与竖直方向的夹角推导出来的公式两侧会差一个π/2的相位角度范围看起来也对但一旦拼接控制指令就会乱套。角度正方向的约定还和电机零位有关。如果真机的电机零位在水平位置并且正方向是向上抬那么代码里的θ_i就可以直接映射到电机指令。反过来如果零位在竖直向上位置就得在算法输出上做一次偏移换算。这个换算要在封装层处理不要改核心运动学函数。3. 逆解实现从末端坐标到三轴转角的几何法3.1 不要把问题简化成平面三角形切向偏移w的存在delta逆解的教科书思路是给定末端位置对每个分支把主动臂末端和动平台铰点用从动臂长度约束起来。很多人一下子想到在三角形里用余弦定理但这里藏着一个陷阱——动平台铰点不一定落在主动臂所在的垂直平面内。每个主动臂只能在过自身铰点、沿φ_i方向的垂直平面内转动。而动平台铰点的位置是末端坐标再加上动平台半径r在这三个方向上的分量。由于静平台半径R和动平台半径r不相等动平台铰点相对静平台铰点存在一个切向偏移这个偏移量不会为零。正确做法是把动平台铰点相对静平台铰点的偏移量分解成三部分沿φ_i方向的水平分量b、垂直φ_i方向的切向分量w、竖直分量c。其中w只进入距离约束公式不参与角度求解。忽略w会导致逆解在x-y平面离原点越远时误差越大末端轨迹会出现系统性偏差。距离约束方程展开为 (L1·cosθ_i - b)² (L1·sinθ_i - c)² w² L2²整理后得到 b·cosθ_i c·sinθ_i (L1² - L2² b² c² w²) / (2·L1)令右侧为k用辅助角公式即可闭式解出θ_i。3.2 C#逆解代码逐行拆解下面这段代码直接对应上面的推导输入末端坐标输出三个主动臂转角弧度制/// 逆解末端坐标 - 三个主动臂转角 /// 参数endPos 末端中心位置joints 输出弧度 /// 返回值false 表示超出可达空间 public bool InverseCalculate(Vector3 endPos, out double[] joints) { joints new double[3]; for (int i 0; i 3; i) { double phi i * 2.0 * Math.PI / 3.0; // 分支布置角0/120/240度 double sinP Math.Sin(phi), cosP Math.Cos(phi); // 静平台铰点A double Ax baseRadius * cosP; double Ay baseRadius * sinP; // 动平台铰点B投影到静平台平面 double Bx endPos.x toolRadius * cosP; double By endPos.y toolRadius * sinP; double Bz endPos.z; // 以A为原点的相对坐标 double dx Bx - Ax; double dy By - Ay; // 沿主动臂平面的水平偏移 b切向偏移 w竖直偏移 c double b dx * cosP dy * sinP; double w -dx * sinP dy * cosP; double c Bz; // 距离约束b*cosθ c*sinθ k double k (upperArmLen * upperArmLen - lowerArmLen * lowerArmLen b * b c * c w * w) / (2.0 * upperArmLen); double rho Math.Sqrt(b * b c * c); if (Math.Abs(k) rho 1e-9) // 超出从动臂可达范围 return false; double gamma Math.Atan2(b, c); double alpha Math.Asin(k / rho); double theta1 alpha - gamma; // 肘高解 double theta2 Math.PI - alpha - gamma; // 肘低解 // 选落在机械限位内的解 if (theta1 minAngle theta1 maxAngle) joints[i] theta1; else if (theta2 minAngle theta2 maxAngle) joints[i] theta2; else return false; } return true; }逻辑说明先算出每个分支静铰点与动铰点的相对位置再把相对位置分解到主动臂平面内。b和c参与角度计算w只进入距离约束这是和二维简化版最核心的差异。求解sin方程得到两个候选角对应主动臂的两种姿态。参数说明baseRadius、toolRadius、upperArmLen、lowerArmLen分别对应表里的R、r、L1、L2建议启动时从配置文件读取。minAngle和maxAngle是机械限位典型取值范围在-30°到90°之间具体看结构设计。3.3 两个候选解的取舍肘高还是肘低同一个末端位置在几何上对应两组主动臂角度一组是主动臂往上抬的「肘高」姿态一组是往下垂的「肘低」姿态。机械结构限位下通常只有其中一组是可用的。工程上我的做法是同时计算两个解按机械限位过滤。如果两个解都落在限位范围内优先选转角变化量更小的那个——也就是与上一控制周期角度差更小的解。这个策略能避免运动过程中角度跳变导致的轨迹抖动。// 连续运动时优先选靠近上一步的解 if (Math.Abs(theta1 - lastJoints[i]) Math.Abs(theta2 - lastJoints[i])) joints[i] theta1; else joints[i] theta2;注意首次上电时lastJoints没有有效的历史值可以用当前位置的主导姿态解初始化也可以直接把肘高解作为默认。我习惯让用户在配置界面显式指定初装姿态避免上电瞬间的轨迹突变。4. 正解实现没有闭式解就交给牛顿迭代4.1 正解难点在哪为什么不能反推正解是已知三个主动臂转角θ_i求末端位置(x, y, z)。如果直接把逆解的方程组反推得到的是一组关于x、y、z的三元二次方程组没有简单的代数消元路径。想要闭式解需要引入额外变换和中间变量推导复杂度高且容易出现数值稳定性问题。实际工程里绝大多数delta控制器的正解都走数值迭代路线最主流的就是牛顿-拉夫森法。代价是每周期多几十次浮点运算但对现代MCU和工控机的算力来说完全可以忽略。数值法只要初值选得合理、收敛阈值设得紧精度可以做到微米级比很多闭式近似解更可靠。4.2 残差函数与雅可比矩阵推导给定θ_i主动臂末端C_i的坐标可以直接算出Cx R·cosφ_i L1·cosθ_i·cosφ_i Cy R·sinφ_i L1·cosθ_i·sinφ_i Cz L1·sinθ_i设动平台铰点B_i的坐标是末端位置(x,y,z)的函数Bx x r·cosφ_i By y r·sinφ_i Bz z从动臂长度约束给出残差方程 F_i(x,y,z) (Bx-Cx)² (By-Cy)² (Bz-Cz)² - L2²对三个分支各建一个方程组成三元非线性方程组。由于B_i对x、y、z的偏导很简单雅可比矩阵可以直接写出∂F_i/∂x 2·(Bx - Cx) ∂F_i/∂y 2·(By - Cy) ∂F_i/∂z 2·(Bz - Cz)每个元素都不涉及复杂链式法则这比串联臂的雅可比推导轻松得多是delta正解用牛顿迭代最舒服的地方。4.3 C#正解代码高斯消元与迭代收敛控制迭代流程是给一个初值计算残差向量和雅可比矩阵解线性方程组修正位置增量重复直到残差小于阈值。这里给出C#实现的核心片段/// 正解三个主动臂转角 - 末端坐标 /// 参数joints 三个主动臂弧度值pos 传入初值传出收敛结果 /// 返回值本次迭代是否收敛 public bool ForwardCalculate(double[] joints, ref Vector3 pos) { double x pos.x, y pos.y, z pos.z; for (int iter 0; iter 80; iter) { double[] F new double[3]; double[,] J new double[3, 3]; for (int i 0; i 3; i) { double phi i * 2.0 * Math.PI / 3.0; double cosP Math.Cos(phi), sinP Math.Sin(phi); // 主动臂末端C点坐标 double cx baseRadius * cosP upperArmLen * Math.Cos(joints[i]) * cosP; double cy baseRadius * sinP upperArmLen * Math.Cos(joints[i]) * sinP; double cz upperArmLen * Math.Sin(joints[i]); // 动平台铰点B点坐标未知量x,y,z的函数 double bx x toolRadius * cosP; double by y toolRadius * sinP; double bz z; // 残差当前估计位置的杆长差 F[i] (bx - cx) * (bx - cx) (by - cy) * (by - cy) (bz - cz) * (bz - cz) - lowerArmLen * lowerArmLen; // 雅可比矩阵解析偏导 J[i, 0] 2.0 * (bx - cx); J[i, 1] 2.0 * (by - cy); J[i, 2] 2.0 * (bz - cz); } // 残差平方和小于阈值判定收敛 double err Math.Sqrt(F[0] * F[0] F[1] * F[1] F[2] * F[2]); if (err 1e-8) return true; // 解线性方程组 J * delta -F高斯消元 double[] delta GaussSolve3x3(J, -F[0], -F[1], -F[2]); x delta[0]; y delta[1]; z delta[2]; // 数值发散保护 if (double.IsNaN(x) || double.IsNaN(y) || double.IsNaN(z)) return false; } return false; // 超过迭代次数 }逻辑说明迭代过程中每次都用解析雅可比而不是数值差分一方面是精度高另一方面计算量小得多。残差阈值设1e-8是从动臂杆长的平方误差对应末端定位精度在微米量级。80次迭代上限是防止异常输入导致死循环。参数说明GaussSolve3x3是一个3x3线性方程组求解函数标准高斯消元实现即可。注意传入的右端项是-F因为牛顿迭代的更新量是负的残差方向。首次调用时pos要有一个初值后面每周期调用可以直接把上一时刻的末端坐标传给pos作初值。5. 避坑实测参数标定、符号方向与迭代初值的四座山5.1 现象逆解结果跳变、角度不连续连续走一条圆弧轨迹时某个轴的角度输出突然跳到另一个数值末端轨迹在中途抽动一下。最初怀疑是电机的编码器读数抖动但抓数据发现角度跳变在算法输出层就出现了。原因acos或者asin进入时参数超出定义域代码里没有做钳制处理。项目里大概率是末端坐标恰好走到工作空间边界附近浮点误差让k/ρ的值略微越过±1。直接对超界参数调acos返回NaN后续所有计算全部错位。解决在反三角函数之前统一做一次钳制Math.Max(-1, Math.Min(1, k/rho))同时逆解入口处保留工作空间边界检查两处防护叠加。从那以后只要不是机械硬限位逆解输出永远是连续值。5.2 现象正解迭代发散或收敛到错误位置正解传入真实轴角返回的末端坐标和实测位置差了十几毫米或者干脆返回失败。单独调试雅可比矩阵的数值没问题但应用到实际数据就不对。原因初值离真实位置太远。数值迭代只在初值附近一个邻域内收敛delta工作空间比较大如果初值给原点而真实位置在空间角落迭代路径会撞上奇异边界而发散。解决把上一周期的末端坐标作为初值传给正解每周期天然在真实位置附近。首次上电时先通过三点标定测出一个粗略位置作为初值。如果应用场景允许可以把正逆解配合起来——逆解算出的角度反推再拿来验证正解初值合理性。5.3 现象仿真模型和电机实际转向相反在仿真里一切正常一上真机发现动平台往反方向飞出去检查角度数值没有符号问题俯仰方向却是镜像的。原因电机零位方向约定和算法里的角度正方向对不上。算法里定义竖直向上为正真机电机如果默认零位在水平但正方向是向下转映射层直接把θ传给电机指令运动方向必然相反。解决在控制层加一个角度符号映射开关用最简单的方式验证——手动把末端抬到最高点用正解算当前末端位置再去测一个最低点对比两点坐标的z分量符号确认映射方向一致。常见做法是提供jointSign参数测试时翻转符号比对结果。5.4 现象末端坐标在奇异位形附近误差突然增大多轴高速联动时发现末端位置反馈在特定区域出现周期性抖动运动方向刚好经过工作空间边缘的奇异位形。原因delta在工作空间边界附近存在力传递奇异雅可比矩阵接近降秩正解迭代收敛变慢、逆解角度解两组几乎重合。数值误差在这种区域被结构放大任何算法都绕不开这个物理事实。解决除了保证标定尺寸准确外路径规划阶段就要提前限制不进奇异区。代码层面给逆解加一个边界缓冲区末端坐标离理论边界近于10mm时返回一个warning由上层规划器决定是否继续执行。这是血泪教训换来的最好把这个warning日志保留下来做轨迹质量分析。6. 收尾技巧一致性验证与雅可比速度映射6.1 正逆解互验的15分钟源码下载下来之后先别急着接电机做一个离线互验。随机生成一组工作空间内的末端坐标用逆解算角度再用正解把角度转回末端坐标对比两个坐标的偏差。全程不需要硬件半小时内能确认算法实现没有低级错误。// 随机抽1000个点做正逆解互验 Vector3 randomPoint new Vector3( Random.Range(-80f, 80f), Random.Range(-80f, 80f), Random.Range(-450f, -150f)); // 中心以下为工作区 InverseCalculate(randomPoint, out double[] joints); ForwardCalculate(joints, ref randomPointBack);我一般把最大位置误差控制在0.01mm级别才认为这一版代码没写歪。实际机器上的误差来源几乎全在机械加工和装配精度算法本身不会带来可见偏差。6.2 在逆解基础上算雅可比做速度前馈正解部分的雅可比矩阵随手就能得到拿它做速度映射非常方便。末端速度向量和三个轴角速度之间的关系为V J·ω也就是雅可比矩阵左乘角速度向量即为末端速度。已知末端期望速度时用线性方程组求出轴角速度可以作为前馈量叠加到伺服轴的速度环上。// 求轴角速度J * omega V double[] omega GaussSolve3x3(J, vx, vy, vz);实现时把上一节的雅可比矩阵计算封装成独立函数正解和速度解算共用一套代码避免两处维护、符号不一致的问题。这些功能做完之后整个delta运动学库才算真正能上台架。从那以后我每次新接手项目都强制走一遍离线互验、边界检查和方向确认三个步骤再上真机调试。希望帮到你。本文还有配套的精品资源点击获取

相关新闻

K8s中Nacos集群生产级部署与避坑指南

K8s中Nacos集群生产级部署与避坑指南

简介:本资源是一套专为 Kubernetes 环境设计的 Nacos 高可用集群极简部署方案,面向容器化初学者与 DevOps 实践者,解决传统 Nacos 在 K8s 中配置繁杂、状态管理困难、服务暴露不直观等痛点。压缩包共6个文件,含5个结构清晰的 YAML…

2026/10/12 2:39:29 阅读更多 →
MySQL期末大作业实战:从安装配置到事务锁与答辩演示全流程

MySQL期末大作业实战:从安装配置到事务锁与答辩演示全流程

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

2026/10/12 2:39:29 阅读更多 →
高效读规格书:显示驱动工程师从盲写到按规格写代码

高效读规格书:显示驱动工程师从盲写到按规格写代码

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

2026/10/12 2:38:28 阅读更多 →

最新新闻

语言、意境与维度—— 从二维数学看东西方语言的认知分野

语言、意境与维度—— 从二维数学看东西方语言的认知分野

引言:一个翻译中的千古难题“大漠孤烟直,长河落日圆。”这两句诗,无论谁来翻译,都只能无限逼近,而无法真正抵达。英文译本可以告诉你:沙漠里有一道烟直直升起,长河尽头有一轮圆圆的落日。意思似…

2026/10/12 3:33:06 阅读更多 →
CodeIgniter 4 版本解读:4.0.4 的破坏性变更、新命令与增强项全解析

CodeIgniter 4 版本解读:4.0.4 的破坏性变更、新命令与增强项全解析

后端Web框架 【免费下载链接】CodeIgniter4 Open Source PHP Framework (originally from EllisLab) 项目地址: https://gitcode.com/gh_mirrors/co/CodeIgniter4 点击查看 免费下载 本文基于仓库内 v4.0.4 发布记录(2020 年 7 月 15 日发布&#xff09…

2026/10/12 3:33:06 阅读更多 →
STM32hal库开发-GPIO

STM32hal库开发-GPIO

1.下载cubeide网址:STM32CubeIDE | 软件 - 意法半导体 2.下载cubemx网址:STM32CubeMX | 软件 - 意法半导体 3.点灯 1.切换为高电平的函数:HAL_GPIO_WritePin(GPIOX,GPIO_Pin,PinState); 4.GPIO模式:浮空输入,上拉输…

2026/10/12 3:33:06 阅读更多 →
semantic-router 的 decision 选择算法:让决策模型为每条请求挑选最合适的模型

semantic-router 的 decision 选择算法:让决策模型为每条请求挑选最合适的模型

后端API网关模型推理服务AI Agent 【免费下载链接】semantic-router An open, programmable decision layer for models and compute. 项目地址: https://gitcode.com/gh_mirrors/sem/semantic-router 点击查看 免费下载 导读 decision 是 vLLM semantic-router 路…

2026/10/12 3:33:06 阅读更多 →
Android学生成绩管理系统开发:数据库设计、接口与避坑指南

Android学生成绩管理系统开发:数据库设计、接口与避坑指南

简介:基于Android的学生成绩管理系统是一套面向移动开发初学者的完整项目资源,覆盖SQLite数据库操作、Java业务逻辑与原生UI设计三大核心模块。系统实现了学生信息及成绩的增删改查、条件查询、排序以及基础异常处理,并针对本地存储和异步加载…

2026/10/12 3:33:06 阅读更多 →
Disconf 安装部署指南:disconf-client 快速集成与 disconf-web 全流程上线实战

Disconf 安装部署指南:disconf-client 快速集成与 disconf-web 全流程上线实战

配置中心后端微服务 【免费下载链接】disconf Distributed Configuration Management Platform(分布式配置管理平台) 项目地址: https://gitcode.com/gh_mirrors/di/disconf 点击查看 免费下载 导读 Disconf(Distributed Configuration Management Pla…

2026/10/12 3:32:05 阅读更多 →

日新闻

复古胶片颗粒感噪点合成器:Canvas ImageData 像素高斯杂色注入算法

复古胶片颗粒感噪点合成器:Canvas ImageData 像素高斯杂色注入算法

在数码相机、高清显示屏与现代矢量图形技术高度发达的今天,画面可以做到绝对的锐利、平滑与无瑕。然而,当一张秋日手账插画或拍立得照片过于“平整无瑕”时,往往会散发出一种冰冷生硬的“数码塑料感(Digital Plasticity&#xff0…

2026/10/12 0:00:59 阅读更多 →
活字印刷古籍线装排版:Canvas 竖排文字与栏线自适应算法

活字印刷古籍线装排版:Canvas 竖排文字与栏线自适应算法

在现代网页与移动端设计中,横排(Horizontal Layout)早已经成为了绝对的主流。然而,当我们翻开泛黄的线装古籍、宋版木刻诗集,或是欣赏一张茶道雅集的手写便签时,那种**自上而下纵向书写、自右向左逐列铺展&…

2026/10/12 0:00:59 阅读更多 →
周日晚间的“精神松绑减震器”:无压力情绪倾倒箱与温和轻声陪伴

周日晚间的“精神松绑减震器”:无压力情绪倾倒箱与温和轻声陪伴

每到周日的晚上八点到十点,很多人心里都会悄悄亮起一盏警示灯。 在心理学上,这种现象有一个专门的称谓——“周日夜晚焦虑症(Sunday Scaries)”。明天又是周一,闹钟又要重新在七点响彻卧房;脑海里仿佛有一个…

2026/10/12 0:00:59 阅读更多 →

周新闻

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

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

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

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

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

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

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

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

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

2026/10/12 0:16:43 阅读更多 →

月新闻

我发现了一个新思路:用 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/11 10:45:37 阅读更多 →
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/11 14:36:53 阅读更多 →
黑夜航拍船只数据集训练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/11 14:36:54 阅读更多 →