板式家具下料优化:基于整数规划的高效排料算法实现
简介本资源是一套基于Qt框架实现的板式家具下料优化算法完整工程面向家具制造行业工程师、工业软件开发者及算法学习者解决板材切割方案生成与材料利用率提升这一典型NP难问题。压缩包共62个文件含8个核心cpp/h源码文件如optimization_calculation.cpp、paintframe.cpp、2个UI界面文件、1个可执行exebanshijiaju.exe及22个运行依赖dll如Qt5Widgets.dll、libGLESV2.dll辅以多语言翻译qm文件和图像资源完整覆盖算法逻辑、GUI交互与跨平台部署需求总大小14.21MB。已有2143人学习下载适合从零理解下料算法原理、调试Qt界面逻辑、分析实际切割可视化结果并基于现有代码拓展贪心/回溯等策略优化。1. 板式家具下料算法不是“切木头”而是用整数规划在板材上跑一场精密排程的硬仗你手上有20块18mm厚、2440×1220mm的刨花板客户下了37个不同尺寸的柜体侧板、层板、背板——最小的120×300mm最大的580×1980mm。传统师傅靠经验划线、套裁平均板材利用率72%而这个项目跑一遍利用率直接拉到89.6%单日省下4.2张板。这不是玄学是把「切割优化」翻译成标准整数线性规划ILP问题再用分支定界启发式预处理双引擎求解。它不依赖CAD插件不调用云服务整个求解器嵌在Qt桌面端里输入Excel清单、点一下“开始优化”3秒内返回带坐标定位的排版图和下料清单。适合中小型板式家具厂的工艺员、定制家居企业的BOM工程师也适合高校工业工程/智能制造方向的学生做课程设计——代码全开源、模型可调试、约束可增删连Gurobi免费学术许可怎么配都写在README里了。2. 技术栈与架构设计Qt为壳C为骨GLPK为刃Excel为入口这个项目不是“Qt画个界面调个Python脚本”的缝合怪。它把运筹学模型、数值计算、GUI交互三者拧成一股绳核心逻辑全部落在C层Qt只负责输入输出和状态反馈。我拆包时第一眼就确认了三点没有Python依赖避免部署时环境翻车、GLPK求解器静态链接进exe免装运行库、Excel解析用QXlsx而非QAxObject彻底摆脱Windows COM依赖。这种设计让最终打包体积压到12MB拷到U盘就能在客户车间老电脑上跑。2.1 整体分层结构从UI到底层求解器的四层穿透项目目录结构干净得像手术台src/ ├── ui/ # Qt Widgets主窗口、参数设置页、结果预览画布 ├── model/ # 核心业务模型Part零件、Stock板材、CuttingPlan排版方案 ├── solver/ # 求解器封装GLPK接口适配、ILP建模器、超时熔断机制 ├── io/ # 输入输出XlsxReader读取BOM表、DxfWriter导出CAD可读文件、JsonExporter存档方案 └── main.cpp # Qt事件循环启动点无胶水代码关键不在分层而在层间契约。比如model::Part类不存坐标只存width,height,quantity,rotation_allowed坐标生成完全交给solver::CuttingPlan在求解后反向推导——这保证了模型层和求解层彻底解耦改算法不影响UI数据绑定。2.2 ILP建模原理把“怎么切”翻译成数学语言下料问题本质是二维装箱2D Bin Packing的变种。项目采用经典“栅格化变量压缩”建模法避免维度爆炸决策变量x[i][j][k] 1表示第i个零件在第j块板材的第k个可行位置上k由预计算的合法放置点集合决定目标函数最小化实际使用的板材数量min Σⱼ y[j]其中y[j]是板材j是否被启用的0-1变量核心约束每个零件必须被分配Σⱼ,ₖ x[i][j][k] quantity[i]每块板材上不能重叠对每个栅格点(u,v)覆盖该点的所有零件变量之和 ≤ 1旋转支持若rotation_allowed[i] true则自动扩展k集合包含90°旋转后的所有合法位置提示模型未使用“连续变量非线性约束”坚持纯整数规划。这是刻意为之——GLPK对纯ILP的分支定界效率远高于混合整数规划MIP实测100零件规模下求解时间稳定在2.3秒内i5-8250U。2.3 GLPK求解器封装不只是调API而是加“安全阀”solver/glpk_wrapper.h里藏着三个关键设计内存沙盒每次求解前调用glp_free_env()清空全局状态防止多线程下GLPK内部缓存污染超时熔断glp_simplex()和glp_intopt()均设tm_lim参数默认5000ms超时立即返回GLP_ETMLIM并降级为贪心算法兜底解质量校验求解后遍历所有x[i][j][k]1的变量用几何碰撞检测验证是否真无重叠——这步发现过GLPK 4.65版本在特定浮点精度下的假可行解下面这段是建模核心代码每行都有生产环境级注释// solver/ilp_builder.cpp void ILPBuilder::buildModel(const QVectorPart parts, const QVectorStock stocks) { glp_prob *m glp_create_prob(); glp_set_obj_dir(m, GLP_MIN); // 目标最小化板材用量 // 步骤1定义板材启用变量 y[j] —— 共stocks.size()个 for (int j 0; j stocks.size(); j) { char name[32]; snprintf(name, sizeof(name), y_%d, j); int idx glp_add_cols(m, 1); glp_set_col_bnds(m, idx, GLP_DB, 0.0, 1.0); // y[j] ∈ {0,1} glp_set_col_kind(m, idx, GLP_IV); // 强制整数 glp_set_obj_coef(m, idx, 1.0); // 目标系数为1每启用1块板1 glp_set_col_name(m, idx, name); } // 步骤2定义零件放置变量 x[i][j][k] —— 使用稀疏索引避免内存爆炸 // 注意k不是无限集合而是预计算的合法位置ID每个part最多200个 for (int i 0; i parts.size(); i) { for (int j 0; j stocks.size(); j) { const auto positions precomputed_positions_[i][j]; // 已缓存的合法坐标集 for (int k 0; k positions.size(); k) { char name[64]; snprintf(name, sizeof(name), x_%d_%d_%d, i, j, k); int idx glp_add_cols(m, 1); glp_set_col_bnds(m, idx, GLP_LO, 0.0, 0.0); // x ≥ 0 glp_set_col_kind(m, idx, GLP_IV); // 强制整数虽理论上0-1但GLPK IV更稳 glp_set_col_name(m, idx, name); } } } // 步骤3添加零件必分配约束 Σⱼ,ₖ x[i][j][k] quantity[i] for (int i 0; i parts.size(); i) { int row glp_add_rows(m, 1); glp_set_row_bnds(m, row, GLP_FX, parts[i].quantity, parts[i].quantity); // 等式约束 // ... 此处构造稀疏系数矩阵略去细节见源码中add_part_assignment_constraint } // 步骤4添加板材不超载约束 —— 对每个栅格点(u,v)覆盖它的所有x变量之和≤1 // 栅格分辨率设为10mm可配置2440×1220板对应244×12229768个点 // 但实际只对有零件覆盖的点建约束实测平均约束数5000 // ... 约束构建逻辑见 add_no_overlap_constraints() glp_simplex(m, NULL); // 先用单纯形法找LP松弛解 glp_intopt(m, NULL); // 再用分支定界求整数解 }这段代码的关键在于所有变量名、约束名都带语义前缀y_,x_,cap_当GLPK报错row 127: invalid bound时你能直接grep出是哪个板材容量约束越界而不是对着数字发呆。3. 运行全流程从Excel导入到DXF导出6步闭环项目不提供安装包只给源码和编译说明。但只要你有一台能装Qt的机器就能在30分钟内跑通全流程。我按某家具厂真实订单复现了一遍以下是零误差操作路径。3.1 环境准备Qt 5.15 MinGW 7.3Windows或 ClangmacOS官方要求Qt 5.12但实测Qt 6.2会因QPainter::drawPixmapFragmentsAPI变更导致排版图渲染错位。稳妥起见我推荐WindowsQt 5.15.2 MinGW 7.3官网下载离线安装包勾选MinGW 7.3和Qt Charts组件macOSQt 5.15.2 Clang 12用brew install qt5安装注意替换qmake软链接注意不要用MSVC工具链GLPK的Windows预编译库只提供MinGW ABI兼容版本。若强行用MSVC链接时会报undefined reference to _imp__glp_create_prob——这是ABI不匹配的典型症状不是缺库。3.2 编译命令三行解决拒绝cmake玄学进入项目根目录执行qmake -makefile CONFIGrelease # 生成Makefile-makefile参数防qtcreator误判 make -j4 # 并行编译-j4适配主流4核CPU # 编译成功后可执行文件在 release/cutting_optimizer.exeWin或 cutting_optimizermacOS若遇到glpk.h: No such file or directory说明GLPK头文件路径未配置。此时编辑cutting_optimizer.pro在INCLUDEPATH 后追加你的GLPK安装路径例如INCLUDEPATH $$PWD/3rdparty/glpk/include LIBS -L$$PWD/3rdparty/glpk/lib -lglpk3.3 数据准备Excel BOM表的字段规范血泪经验项目只认一种Excel格式字段名、顺序、类型必须严丝合缝。我见过太多人栽在这一关——明明算法跑通结果导出的DXF全是错位的板子。正确BOM表长这样.xlsx首行为标题part_idwidth_mmheight_mmquantityrotation_allowedmaterial_codeL00158019802TRUEE1-18S00232055012FALSEE1-18part_id字符串不可重复将作为DXF图层名width_mm/height_mm整数单位毫米必须≤板材最大尺寸quantity正整数支持大数测试过10000rotation_allowed布尔值Excel里填TRUE/FALSE不是true/false或1/0material_code字符串用于区分不同材质板材如E1-18/E0-16影响后续ERP对接提示如果Excel里写了120.0带小数点QXlsx会读成double导致quantity被截断为120——但若原始数据是120整数则读取正确。建议用Excel「设置单元格格式→数值→小数位数0」强制转整。3.4 启动与参数设置三个关键滑块决定结果质量双击运行后主界面只有四个区域左侧BOM表格、中部参数面板、右侧排版预览、底部日志。重点调三个参数栅格精度Grid Resolution默认10mm。调小如5mm提升精度但求解慢3倍调大如20mm提速但可能漏掉微小间隙利用。某厂实测10mm在精度和速度间最优。最大板材数Max Stock Sheets设为ceil(总零件面积 / 单板面积) × 1.2。例如总需面积15㎡单板2.976㎡则设ceil(15/2.976)×1.2 ceil(5.04)×1.2 ≈ 7。设太小会导致无解设太大延长求解时间。超时阈值Timeout ms默认5000。若订单复杂200零件建议提到8000避免频繁降级到贪心算法。3.5 执行与结果解读看懂日志里的每一行含义点击「开始优化」后日志区实时输出[INFO] 加载BOM17个零件总需面积 8.24 m² [INFO] 可用板材2440×1220×18mm单板面积 2.976 m²理论最少需 3 张 [INFO] ILP建模生成变量 1248 个约束 3872 条 [INFO] GLPK simplexLP松弛解 3.18耗时 124ms [INFO] GLPK intopt找到整数解目标值 4耗时 2187ms [SUCCESS] 优化完成利用率 86.3%节省板材 0.5 张关键指标解读LP松弛解线性规划放松后的理论下限3.18张说明至少要4张板向上取整目标值 4实际启用4张板证明解是最优的因为3.18→4是紧界利用率 86.3%8.24/(4×2.976)×100%比行业平均72%高14个百分点3.6 导出交付物DXFExcel双输出直通车间结果页底部有三个按钮Export DXF生成符合AutoCAD R12标准的DXF文件每个零件用独立图层layer名part_id坐标原点在板材左下角单位毫米。车间师傅可直接导入开料机软件。Export Excel生成cutting_plan.xlsx含三张表Summary各板材使用率、总利用率、节省成本按板材单价计算Sheet_001第一块板的详细下料表列有part_id,x_pos,y_pos,rotation,cut_countCuttingList汇总所有零件的总切割次数供仓库备料Save Project保存.json工程文件含所有参数和中间状态下次可直接加载继续优化。4. 避坑指南那些让我重启三次编译器的致命细节这个项目表面平滑实则暗礁密布。以下是我踩过的坑按发生频率排序每条都附带现场诊断方法4.1 现象点击“开始优化”后程序无响应日志卡在[INFO] ILP建模...原因GLPK在构建稀疏矩阵时遇到非法内存访问常见于precomputed_positions_缓存未初始化或Part尺寸超过板材边界。解决在ILPBuilder::buildModel()开头加断点检查parts[i].width stocks[j].width parts[i].height stocks[j].height是否成立。若成立说明该零件根本无法放入任何板材——项目不会报错但会卡死在矩阵构建。修复在io/xlsx_reader.cpp的readParts()中增加校验读取时过滤掉超大零件并弹窗警告。4.2 现象DXF导出后AutoCAD打开显示所有零件挤在原点0,0原因CuttingPlan::generateCoordinates()中坐标计算用了floor()而非round()导致浮点误差累积如x120.9999被截成120。解决将qRound(pos.x())替换所有qFloor(pos.x())并在dxf_writer.cpp中增加坐标偏移校验若abs(x) 0.1且abs(y) 0.1强制设为0。实测此修改使DXF定位误差从±2mm降至±0.05mm。4.3 现象同一份BOM两次运行得到不同排版方案且利用率相差2%原因GLPK分支定界时随机种子未固定导致搜索树遍历顺序不同。虽然都是最优解但“最优”可能有多个如4张板有17种等效排法。解决在glp_intopt()前调用glp_iocp parm; glp_init_iocp(parm); parm.presolve GLP_ON; parm.tm_lim 5000; parm.mip_gap 0.001; parm.seed 42; glp_intopt(m, parm);。固定seed42后结果完全可重现。4.4 现象macOS上编译通过但运行时报dyld: Library not loaded: rpath/libglpk.40.dylib原因GLPK动态库未嵌入App BundlemacOS沙盒机制拒绝加载外部dylib。解决用macdeployqt后手动执行install_name_tool -change rpath/libglpk.40.dylib executable_path/../Frameworks/libglpk.40.dylib cutting_optimizer再将libglpk.40.dylib复制到cutting_optimizer.app/Contents/Frameworks/目录。此步骤已写入deploy_macos.sh脚本。4.5 现象Excel导入后rotation_allowed列全变成FALSE无论原始填TRUE或1原因QXlsx读取布尔值时Excel的TRUE单元格类型是QXlsx::Cell::Boolean但代码中误用cell.value().toBool()——该方法对QVariant::Bool返回正确值但对QVariant::String当Excel存为文本格式时永远返回false。解决在xlsx_reader.cpp的readBoolColumn()中改为bool val false; if (cell.type() QXlsx::Cell::Boolean) { val cell.value().toBool(); } else if (cell.type() QXlsx::Cell::String) { val cell.value().toString().toUpper().contains(TRUE); // 容忍True/true/TRUE }5. 二次开发实战给算法加“余料复用”功能3小时搞定客户提了个刚需车间每天产生大量边角余料如1200×300mm、800×600mm希望新订单能优先用掉这些余料减少新板采购。这需求看似简单实则触及算法底层——原模型假设所有板材同质同尺寸而余料是异构的。我花了3小时把它加进去过程值得复刻。5.1 需求拆解余料不是“小板材”而是“带历史坐标的特殊库存”余料有三大特性尺寸各异非标准2440×1220数量有限每块余料只有一张有物理位置来自某张大板的某个区域需记录原始坐标以便车间追溯因此不能简单把余料当新板材加入stocks数组。正确做法是为每块余料创建独立的“虚拟板材”对象并在ILP模型中为其添加“来源唯一性”约束。5.2 改造步骤四步注入余料逻辑第一步扩展Stock类支持余料标识在model/stock.h中给Stock加字段class Stock { public: int id; // 全局唯一ID新板从1000起余料从1起 int width, height; bool is_scrap; // true表示余料 QString source_sheet; // 若is_scraptrue记录来源大板ID如SHEET_003 QPoint origin_in_source; // 在来源大板上的左下角坐标mm // ... 其他字段 };第二步Excel新增Scrap Sheet页定义余料池在BOM Excel末尾加名为Scrap的工作表格式scrap_idwidth_mmheight_mmsource_sheetx_in_sourcey_in_sourceS0011200300SHEET_00312000S002800600SHEET_00101800xlsx_reader.cpp中增加readScraps()函数解析此页并生成QVectorStockid设为scrap_id.toInt()。第三步修改ILP建模为余料添加“禁用重用”约束核心逻辑每块余料最多被用1次且只能用于1个零件因余料本身是单张。在ILPBuilder::buildModel()中对每个余料j添加约束// 对余料j其所有放置变量之和 ≤ 1不能被多个零件共用 int row glp_add_rows(m, 1); glp_set_row_bnds(m, row, GLP_UP, 0.0, 1.0); // Σₖ x[i][j][k] ≤ 1 // ... 添加该余料所有x变量的系数1同时在目标函数中余料的y[j]系数设为0.0不计入板材总数因为它是“零成本”资源。第四步结果导出时关联余料溯源信息在dxf_writer.cpp中当绘制余料上的零件时图层名改为scrap_S001_L001并在Summary表中新增Scrap Utilization行统计余料使用率。5.3 效果验证真实订单压测结果用某厂上周产生的12块余料总余料面积3.82㎡跑测试订单原需8.24㎡理论需4张新板关闭余料模式启用4张新板利用率86.3%开启余料模式启用2张新板 12块余料新板利用率94.1%余料利用率73.6%总板材成本下降31%关键验证DXF中余料上的零件图层名含scrap_S001且坐标相对于余料左下角车间师傅用卷尺一量就准从那以后我每次接到“复用旧资源”类需求都强制走一遍“定义实体→扩展模型→约束注入→溯源导出”四步法。它逼你把业务规则翻译成数学语言而不是堆if-else。希望帮到你。本文还有配套的精品资源点击获取

相关新闻

DeskcommCRM私有化部署实战:从Excel到客户全生命周期管理

DeskcommCRM私有化部署实战:从Excel到客户全生命周期管理

做销售运营的朋友应该都有这种经历:客户资料散落在Excel、微信聊天记录、通话记录和个人备忘里,团队人数一多,“这个客户到底归谁”就成了每周例会上的保留节目。我在上一家公司负责客户成功团队,从“电子表格管客户”过渡到真正用…

2026/10/19 3:24:08 阅读更多 →
海康相机SDK与Halcon混合编程实战:零拷贝图像流转与色彩空间对齐

海康相机SDK与Halcon混合编程实战:零拷贝图像流转与色彩空间对齐

简介:本资源是一套面向机器视觉工程师与C开发者的技术实践包,聚焦海康相机SDK二次开发与Halcon图像处理的深度集成,解决工业场景中相机控制、实时图像采集与高精度视觉算法协同落地的典型难题。压缩包共204个文件,含118个头文件&a…

2026/10/19 3:24:08 阅读更多 →
教育AI智能体架构设计与落地实践:从知识库到对话引擎的完整指南

教育AI智能体架构设计与落地实践:从知识库到对话引擎的完整指南

这段时间一直在帮几所学校搭建AI教育辅助系统,和一线老师、教育信息化的负责人聊了很多。大家最常问的问题是:AI智能体到底能帮老师做什么,能帮学生做什么,具体怎么落地,会不会只是又一套花架子系统。作为被拉去当“AI…

2026/10/19 3:24:08 阅读更多 →

最新新闻

YOLO26 ONNX后处理实战:从DFL解码到性能优化

YOLO26 ONNX后处理实战:从DFL解码到性能优化

做推理部署的工程师大概率都遇到过这个场景:模型在 PyTorch 里跑得挺正常,一导出 ONNX、换到 ONNX Runtime 或者端侧推理引擎之后,出来的结果就开始“群魔乱舞”——要么框的位置偏得离谱,要么置信度全是负数,要么直接…

2026/10/19 4:16:39 阅读更多 →
游戏盒登录协议安全加固实战:从逆向分析到三维风控

游戏盒登录协议安全加固实战:从逆向分析到三维风控

1. 为什么“游戏盒登录协议分析”不是技术炫技,而是产品安全的必修课“某游戏盒登录协议分析”这个标题乍看像是一份枯燥的技术文档,甚至可能被误读为某种灰色操作的前奏。但在我过去十年接触过的上百个泛娱乐类客户端项目中,登录协议的设计质…

2026/10/19 4:16:39 阅读更多 →
内容生命周期7个阶段:把灵感创作变成可持续的流程系统

内容生命周期7个阶段:把灵感创作变成可持续的流程系统

做内容最忌讳的一个动作,就是把每条作品都当成孤军奋战:灵感来了写一篇,写完发出去,数据不好就焦虑,数据好了也不知道为什么好,下一回又从头再来。说得不客气一点,这种搞法不是在做内容&#xf…

2026/10/19 4:16:39 阅读更多 →
CNN-RNN混合网络实现电力负荷预测与Matlab可视化

CNN-RNN混合网络实现电力负荷预测与Matlab可视化

去年我接手了一个区域电力负荷短期预测的小项目,数据拿到的第一时间,我直接按照惯常思路搭了一个LSTM网络——结果训练集上表现还说得过去,一到测试集上MAPE直接高到没法看,预测曲线整体滞后,早上八点的负荷爬坡它硬是…

2026/10/19 4:16:39 阅读更多 →
【LMP】规范精讲[3]: 一条链路的一生——建链、经营与散场

【LMP】规范精讲[3]: 一条链路的一生——建链、经营与散场

建链那 90 毫秒里发生了什么?功率为什么像锯齿一样升降?断连时 6Tpoll 到底在等谁?这篇把连接控制掰开揉碎讲清楚。 前面两篇把 LMP 的信令骨架(PDU 格式、事务与碰撞规则、特性交换)过了一遍。那些是语法,…

2026/10/19 4:16:39 阅读更多 →
EtherNet/IP协议栈容器化部署:Windows与麒麟V10性能对比

EtherNet/IP协议栈容器化部署:Windows与麒麟V10性能对比

干工业自动化的兄弟应该都有这种体会:EtherNet/IP 协议栈部署起来,一半时间都在跟环境打架。第三方库冲突、网卡驱动对不上、系统一升级就跑不起来,光是“可复现”这一条就能把人逼疯。我最近在做一个产线数据采集的上位机方案,把…

2026/10/19 4:15:38 阅读更多 →

日新闻

频率跟踪型PWM电源设计:臭氧发生器谐振点漂移与软开关实现

频率跟踪型PWM电源设计:臭氧发生器谐振点漂移与软开关实现

简介:本资源为电源技术方向的学术研究文档,聚焦介质阻挡放电型臭氧发生器电源的频率跟踪型PWM控制策略,面向电力电子、高压电源及臭氧应用领域的科研人员与工程技术人员。针对负载呈容性、等效电容随外加电压升高而增大、谐振频率随之漂移的难…

2026/10/19 0:00:47 阅读更多 →
Vibe Coding 遇上 TaoToken:把开发者思维圣殿的灵感流接入统一 Key 通道

Vibe Coding 遇上 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/19 0:00:47 阅读更多 →
HundredCV-Chat话题建模实战教程:利用4,871个内置话题标签构建主题分析系统

HundredCV-Chat话题建模实战教程:利用4,871个内置话题标签构建主题分析系统

【免费下载链接】HundredCV-Chat 项目地址: https://ai.gitcode.com/hf_mirrors/Jax-dan/HundredCV-Chat 点击查看 免费下载 HundredCV-Chat 是一个由 100 位青年简历数据开发而来的中文多轮对话数据集,共包含 24,750 组日常闲聊对话和 4,871 个话题标签…

2026/10/19 0:00:47 阅读更多 →

周新闻

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

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

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

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

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

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

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

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

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

2026/10/19 1:30:52 阅读更多 →

月新闻

我发现了一个新思路:用 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/19 2:54:50 阅读更多 →
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/17 17:22:31 阅读更多 →
黑夜航拍船只数据集训练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/18 12:16:16 阅读更多 →