四旋翼PID控制论文复现:Simulink建模、参数整定与避坑指南

前阵子遇到一位同学,把他卡了三周的Simulink仿真发给我看:四旋翼无人机PID控制,高度一直往下掉,油门推到顶还是拉不住。我一眼就看出问题不在PID参数,而是他把论文里简化的电机一阶惯性环节直接省了,整个内环的控制带宽和相位裕度全变了。类似的翻车,我在复现四旋翼PID相关期刊论文时见过太多次。这篇就想把我自己走通的全流程摊开讲讲:拿到一篇论文之后怎么读才能少走弯路,Simulink里怎么把动力学模型搭得既够用又不出错,控制律怎么从论文符号翻译成模块和参数,以及怎样判断"波形对上"到底是真复现还是巧合。适合正在复现相关论文的研究生、做课设的本科生,以及准备把手动调参经验固化下来的工程师。

1. 复现前的信息审计:这篇论文到底把什么给了你,又把什么藏了起来

1.1 先做一份"信息账单",别急着新建模型

很多人复现四旋翼控制的期刊论文,习惯拿到文章就直接打开Simulink,照着文字里的公式一顿搭。结果搭到一半发现少了转动惯量、少了电机时间常数、少了控制周期,然后开始脑补。脑补不是不行,但至少要分清哪些是你补的、哪些是论文给的——否则后面仿真波形对不上,你连该怀疑谁都不知道。

我现在的习惯是动工前先做一张表格,把论文里的信息拆成三类:给全的、给一半的、完全没给的。给全的是模型方程、控制结构、控制器形式;给一半的通常是参数表,比如只给了转动惯量和质量,但没给电机时间常数;完全没给的通常是实验条件、初始状态、控制器离散周期这些"看似不重要但其实很要命"的东西。

这张表做下来,你基本就能判断这篇论文到底能不能复现。有的论文连基础的转动惯量都没有,只给了一张响应曲线,这种想靠猜参数硬凑出一个漂亮波形,几乎不可能。遇到这种情况,要么换一篇信息完整的论文,要么明确告诉自己:这次复现只能验证"控制结构+趋势一致性",而不是精确复现曲线。

1.2 坐标系和单位:最隐蔽的第一大坑

四旋翼论文里最常见的不一致,不是公式推导错误,而是坐标系约定完全不同。有的用北东地(NED),有的用东北天(ENU);有的欧拉角旋转顺序是ZYX,有的用ZXY甚至其他组合。这些东西写在论文里通常就一句话,但它直接影响你Simulink模型里旋转矩阵的乘法和欧拉角速率的转换,一旦选错,控制量符号反了、姿态角发散都是正常现象。

我的建议是,不要相信任何一篇论文的"默认"。复现前先问三个问题:重力加速度方向是正还是负?偏航角为零时机头朝哪个方向?欧拉角转机体角速度用的矩阵长什么样?哪怕论文里没写,你也要从它的仿真曲线反推:比如悬停时滚转角扰动的响应方向,能不能对上你模型里的定义。

单位问题同样要命。转动惯量用国际单位还好,但电机转速有人用rad/s,有人用RPM;推力系数和力矩系数有的把空气密度折进去了,有的没有;角度有的全程用度,控制律里突然又换成弧度。我见过最折腾的一次,是论文里PID输出的限幅写的是"30度",但是内环误差是弧度制,结果控制量被限到一个完全没意义的小值,整个姿态响应像面条一样软。

所以我在模型最外层统一单位:角度一律弧度,转速一律rad/s,力一律牛顿,力矩一律牛米。然后在Simulink里加单位注释或者在常量模块命名里直接体现,比如g_mps2、Ixx_kgm2。这一行注释能在后期省掉你几天的排查时间。

1.3 控制频率和离散化方式:图里藏着秘密

期刊论文很少直接写"控制器运行频率",但你可以从响应曲线里估出来。四旋翼姿态响应的典型时间尺度是0.2到1秒,如果论文里的响应曲线很平滑、没有明显台阶感,说明控制器频率至少是50Hz以上;如果曲线有分段直线或者台阶,说明控制周期可能在20ms甚至更慢。

这个参数对Simulink复现影响很大。你如果用连续PID去复现一个实际是离散控制的论文,仿真的结果是"理想化"的,往往比论文还漂亮;反过来,你用了离散PID但频率设得比论文低,就会出现额外的相位延迟,波形变得比论文差很多,然后你开始怀疑参数不对。

我的做法是:除非论文明确用了连续控制器并做了连续仿真,否则一律按固定步长离散仿真。控制器用离散PID,采样周期先按20ms试,如果响应太接近论文曲线就保持;如果差别太大,再按10ms、5ms往下试。这样虽然不能百分百还原论文,但至少你的复现链路里多了一个可解释的变量,而不是所有差异都堆给参数。

2. Simulink里的机体模型:刚体动力学和电机的等效简化,搭错了全盘皆输

2.1 刚体模型的核心方程,但别被论文符号吓住

四旋翼的完整气动模型非常复杂,涉及旋翼入流、挥舞动力学、机身阻力等等。但复现PID控制论文时,绝大多数情况下用刚体模型就够了。因为PID论文讨论的是控制器在理想或近似模型下的性能,如果你把气动摩擦、旋翼挥舞全塞进去,反而会发现自己调参调得怀疑人生,而且没法判断论文的结论到底对不对。

刚体模型的核心方程其实就两组。平移动力学:

  • m * v_dot = R * T_vec + m * g_vec

其中T_vec是机体坐标系下四个旋翼产生的总推力,R是从机体坐标系到惯性坐标系的旋转矩阵,g_vec是惯性系下的重力加速度。旋转动力学:

  • I * omega_dot = M_vec - omega_cross * (I * omega_cross)

这里I是转动惯量对角矩阵,omega_cross是机体角速度的叉乘矩阵,M_vec是三个轴的力矩。这两组方程加一个欧拉角运动学关系,就是你能搭出来的最小可信模型。论文里那些复杂的耦合项、陀螺力矩项,有一部分在实际飞行中能感觉到,但在仿真里对PID调参影响不算大,可以后期再加。

2.2 电机模型:最容易被"顺手简化"的部分

我开头提到的那个同学,就是把电机模型直接当成1:1增益,油门一给推力立刻到位。这在低速仿真里误差不大,但一旦PID带宽接近电机响应带宽,问题就来了:电机跟不上控制指令,内环出现相位滞后,PID为了补偿滞后又会加大增益,最后系统振荡。

实际的四旋翼电机-旋翼组合,从转速指令到推力响应通常可以等效成一个一阶惯性环节:

  • tau_dot = (tau_cmd - tau) / tm

其中tm是电机时间常数,常见的小型穿越机在0.05到0.15秒之间,大一点的四旋翼会更慢。论文如果没给,我会先按0.1秒设置,然后做敏感性分析:把tm从0.05改到0.15,看PID参数还压不压得住。如果压不住,说明论文要么用了更高带宽的电机,要么控制器增益本身就在临界范围。

在Simulink里,我习惯把四个电机各自建一个一阶惯性环节,输出限幅在0到最大推力之间。注意限幅这个细节,很多复现失败都是因为不加限幅,PID输出一个巨大的力矩命令,仿真里的姿态立刻爆炸,但论文里的控制器输出是受限的。加限幅才是真实系统,不加限幅是在测数学模型的发散点。

2.3 仿真模型搭好之后,先做三个量纲测试

模型搭完先别接控制器,先做三个最简单的测试。第一是悬停测试:给四个电机一个固定推力,大小等于总重力除以四(或者根据混控矩阵计算),看位置三个通道是不是稳定在初始值附近,姿态角不漂移。如果不漂移,说明力和重力的符号、量纲是对的。

第二是开环阶跃测试:把一个电机的推力加大1%或者2%,看机体是不是朝对应方向倾斜和加速。如果方向反了,说明电机编号顺序或者旋转矩阵转置有问题。第三是角速度耦合测试:给定一个纯滚转力矩,看是否产生明显的偏航角速度。四旋翼的滚转和偏航之间存在反扭矩耦合,如果一点耦合都没有,说明你的反扭矩项根本没接上,这会影响偏航通道的PID整定。

这三个测试做完,模型基本可信了。切忌一上来就接PID然后猛调参数,因为模型错误和控制器错误的症状非常相似,都是发散、振荡、漂移,到时候你根本分不清该修哪一边。

3. 控制律的"论文到模块"翻译:内环外环结构、误差定义和符号约定

3.1 典型双环PID结构:为什么不是六个通道各自独立

大多数四旋翼PID控制论文用的是双环级联结构:外环是位置环,输入是期望位置,输出是期望滚转角和俯仰角(以及期望的推力或总油门);内环是姿态环,输入是期望姿态角,输出是三个轴的力矩。偏航通道通常单独做,高度通道也是单独一个环。之所以不把六个通道全部独立PID,是因为四旋翼的欠驱动特性:水平位置的平移必须通过先倾斜机身来获得水平力分量,所以位置环"需要"姿态环作为内环来响应它的指令。

理解这个结构对复现非常关键。你如果把论文里的"位置环P=1.2、姿态环P=8"直接当成六个独立PID去调,会发现水平位置闭环稳定性完全对不上论文的曲线。位置环和姿态环之间是串联关系,外环输出的是内环的期望值,必须先保证内环跟踪足够快,外环才能正常工作。

在Simulink里搭双环结构时,我习惯把内外环分别封装成子系统。外环的输入是位置误差,输出是期望角,内环的输入是期望角和实际角,输出是力矩。中间用信号总线连接,每个子系统内部单独管理自己的PID参数,调参时直接在子系统参数对话框里改,比在模型里到处找模块高效得多。

3.2 把论文公式翻译成模块的几个实操经验

论文里的PID公式通常是连续形式:u = Kpe + Ki∫e dt + Kd*de/dt。放到Simulink里照抄一遍很简单,但有几个细节处理不好就容易翻车。

积分项必须加抗饱和。我一般用一个饱和模块先把积分输出限住,再反馈到积分器的复位端实现条件积分。没有这个处理,仿真里遇到一个大的阶跃指令,积分项会积累到一个离谱的值,之后指令突变回来,系统要很久才能恢复,波形和论文完全对不上。

微分项不要直接对误差求导,而是对反馈信号求导,或者用带滤波的实用微分器:sKd/(1+sTf)。纯微分对仿真噪声太敏感,Simulink的变步长求解器在快速微分环节还会产生数值抖动。我通常把Tf取在0.01到0.02秒之间,这个值不影响低频控制特性,但能显著抑制高频噪声。

误差符号的定义也要统一。有的论文用e = 期望 - 实际,有的用e = 实际 - 期望。符号反了,整个控制律就是正反馈,模型必炸。我的习惯是在每个子系统的输入端界面上标注清楚,比如"e_pos = pos_des - pos_act",然后用同一个符号约定接下去的正负号。反正每篇论文都要重新核对一遍,不要想当然。

3.3 论文图表里的"平滑",你得学会看懂水分

期刊论文的仿真曲线通常非常漂亮,上升时间精准、没有超调、稳态误差无限接近零。这里要有个清醒的认知:很多曲线是挑了好参数或者经过后处理才放上去的。你复现不出完全一样的超调量很正常,别因此觉得自己模型错了。

我更关注的是响应曲线的定性特征:上升时间在不在同一数量级,有没有振荡趋势,稳态误差的方向对不对,控制量有没有顶到饱和。如果这些都对得上,基本就算复现成功。如果你非要追求完全一致,那需要把论文里所有初始状态、扰动形式、参考信号类型、仿真步长全部对齐,而这些信息绝大多数论文都不会给你。

所以在复现启动前,我会给自己定一个"及格线":比如姿态角阶跃响应在2秒内稳定到5%以内,位置阶跃在5秒内稳定到10%以内,控制量不超过限幅的90%。这条线一旦定下来,就不会被曲线细节牵着鼻子走。

4. 从第一组参数到稳定飞行:整定顺序、带宽匹配与极限试探

4.1 初始参数别靠猜:用惯量和期望带宽反推

很多人在Simulink里调PID是从一组完全随机的数开始,然后一点点试。这个方法不是不能用,但效率太低,而且容易让模型陷在某个局部振荡里。

对姿态内环,如果你把模型近似成二阶积分对象,控制器参数是可以直接估算的。滚转通道的例子:力矩 tau = Kpe_phi + Kde_omega,对象的传递函数近似为1/(Ixxs^2),那么闭环特征方程就是 Ixxs^2 + Kds + Kp = 0。把它和标准二阶系统 s^2 + 2zetawns + wn^2 对比,就能得到初始值:

  • Kp = Ixx * wn^2
  • Kd = 2 * zeta * wn * Ixx

其中wn是你期望的姿态环自然频率,通常取5到15 rad/s;zeta取0.7到1。假设Ixx = 0.0032 kg·m²,wn取8,zeta取0.8,那Kp就是0.003264≈0.205,Kd就是20.880.0032≈0.041。这个量级已经离最终参数不远了,在此基础上再微调,比完全盲调靠谱得多。

对应的估算脚本大概是这样的:

% 姿态环初始参数估算(滚转通道示例) Ixx = 0.0032; % kg·m^2,从论文参数表读取 wn = 8; % rad/s,期望自然频率 zeta = 0.8; % 期望阻尼比 Kp_roll = Ixx * wn^2; Kd_roll = 2 * zeta * wn * Ixx; Ki_roll = Kp_roll * 0.1; % 积分项取比例项的10%~20%

积分项的Ki我一般不按公式硬推,而是取Kp的0.1到0.2。因为四旋翼姿态环本身有一个重力补偿和配平项,积分主要是消除常值偏差,取太大容易引发振荡。高度通道也可以用同样的方法,只是对象里多了一个质量和重力项。

4.2 整定顺序铁律:先内环,再外环,内环不宁外环勿动

双环结构决定了整定顺序只能是先内环后外环。上来就调位置环的人,后面百分之百会遇到"内环相位滞后导致外环没法收"的尴尬。

第一步,先把外环断开,直接给姿态环一个阶跃指令,比如期望滚转角10度。把Kp从小往上加,观察响应:Kp太小时响应又慢又软,继续加;当响应开始出现小幅振荡时,记下这个值,然后取它的70%作为Kp基准。接着加Kd,Kd的作用是提高阻尼,能看到超调量明显下降,振荡被平息。这一步做到位的标志是:姿态阶跃响应上升时间在0.5到1秒内,超调小于10%,稳态误差在1度以内。

第二步,接上外环位置环。位置环期望的是水平位移,它输出的是期望姿态角,所以位置环响应天然比姿态环慢。位置环Kp也从小往上调,但注意一个原则:位置环的自然频率要比内环低3到5倍。如果内环带宽是8到10 rad/s,那位置环带宽取2到3 rad/s就差不多了。这个频率分离原则,保证了外环指令到达内环时,内环能跟得上而不会激发振荡。

4.3 从"稳定"到"极限":用边界试探找到参数边界

参数调到稳定只是第一步,我还会专门做一组极限试探,看看这组参数到底离发散边界有多远。方法很简单:把参考信号的幅值逐步加大,比如姿态指令从10度加到30度、50度;或者把初始姿态偏差设到60度,看控制器能不能拉回来。

这里要小心几个现象。大角度下欧拉角的运动学会出现耦合和接近奇异的情况,PID参数可能在小角度下稳,在大角度下抖。这不一定是你参数错了,而是线性控制器在大角度下的天然局限,论文一般也只会验证小角度或者中等角度范围,所以你的复现验证也应该在论文声明的范围内进行,不要超范围给自己加戏。

还要试的是扰动抑制。在某个通道上给一个脉冲扰动或持续扰动,看控制器需要多久能把状态拉回。响应慢一点可以接受,但如果出现等幅振荡或者发散,说明当前增益接近边界。边界试探能告诉你的是:这组参数离"炸机"还有多远。实际工程里我们希望有50%以上的裕量,但论文复现时往往参数就在边界附近,因为论文为了展示性能会把增益推到比较激进的位置。

5. 波形对上了,故事就结束了吗:结果对比、仿真陷阱与复现报告的写法

5.1 对比结果前,先把这些变量对齐

你辛辛苦苦调出来的波形,终于和论文一样:姿态阶跃没有超调,位置收敛很干净。先别高兴,我得泼一盆冷水:你对比过初始条件吗?对比过输入指令的幅值吗?对比过坐标系吗?

我的做法是做一个标准对比表:横轴是时间,纵轴是角度或者位置,把论文的原图放进子图,把我自己的仿真结果放进另一个子图,两个子图用完全相同的坐标范围。如果视觉上趋势一致,再量化输出上升时间、峰值时间、超调量、2%稳定时间这几个指标。论文图上的曲线你可以手工读数,虽然不精确,但完全够判断是否复现成功。

还有一种情况:你的波形比论文还"漂亮"。这时你反而要怀疑。比如论文上升时间1.5秒,你调出来0.6秒,说明你的控制器带宽比论文高了很多,可能是你电机模型太理想、噪声没加、或者限幅没设。复现的目标不是"跑出一个好看的仿真",而是"理解论文里那一套到底怎么工作"。

5.2 仿真里最常出现的五个"假故障"

我在复现过程中整理过一个高频问题清单,几乎每次都能命中一两个。

一是变步长求解器在快速PID下的伪振荡。Simulink默认的变步长求解器在连续PID加一阶电机模型下经常会给出"看起来不错"的结果,但无法区分是真振荡还是数值伪影。我建议控制律的仿真一律用固定步长,比如步长1ms或2ms,配合ode4(四阶龙格-库塔)求解,结果稳定且可复现。

二是积分饱和。外环位置误差一开始可能很大,积分项线性暴涨,姿态指令直接顶到饱和。等位置接近目标时,积分还在释放,造成明显超调。没有抗饱和的PID在阶跃响应上几乎必然出现这个现象,所以论文里的PID公式你照抄了,但论文里没写的抗饱和你必须自己补上。

三是角度超过±pi导致角度比较逻辑混乱。四旋翼仿真里姿态角通常是弧度,一旦翻滚超过180度,角度差的值就跳变,控制量符号突变。解决办法是把期望角和实际角的差做归一化处理,保证误差落在(-pi, pi]区间内。

四是电机推力限幅太低。PID在初始阶段会请求大量力矩,如果推力系数或者混控增益设小了,控制量长期饱和,响应变得很慢。检查的方法是看控制器输出到底有没有顶到限幅值,如果顶了一小段时间是正常的,如果整个动态过程都顶在限幅值上,那是增益设置不对,不是限幅的锅。

五是外环指令的速率限制。位置环输出的期望角突变太大会让内环措手不及,论文里通常会有一个参考指令规划器或者限速环节。如果你的论文没有明确写这个,你可以理解为自己补充这个模块会让复现更容易。

5.3 复现报告:把"复原过程"变成"可交付结论"

复现完成之后,我建议花半小时写一份复现说明,因为过半个月你自己都会忘记当时为什么把某个参数从0.2改到0.15。这份说明不发给任何人,纯给自己用,但格式要固定:论文给出参数表、我采用的参数、差异说明、复现结果指标、遇到的主要问题。

参数表差异说明尤其重要。比如论文没给电机时间常数,我按0.1秒处理,那么我的仿真和论文的差异有一部分就来自这个假设。下次换一架无人机,或者换一篇论文,我就知道要优先测量这个参数,而不是重新瞎猜。

我这几年最大的体会是:复现论文的价值不在一张一模一样的图,而在于你把一篇只有数学描述的文章,变成了自己手里能跑、能改、能解释的一套模型。中间踩过的每一个符号坑、每一个单位错误、每一次调参发散,才是真正沉淀下来的能力。

如果你现在也卡在某个四旋翼PID复现上,我的建议是:先列出信息账单,再做三个模型自检,然后按内环到外环的顺序整定,最后固定步长跑仿真。这套流程走完,大部分"调不出来"的问题都能找到方向。要是还卡住,多半是论文本身的关键信息缺位,那就换一篇信息完整的文献,别在一棵树上耗太久。

相关新闻

高压高频电源的PID控制:参数整定、离散化与工程实践

高压高频电源的PID控制:参数整定、离散化与工程实践

这些年做高压高频电源,听到“PID”这个词的频率比听“拓扑”还高。不少同行上来就问:PID三个参数到底怎么调?高压环境能不能直接套用书本上的公式?我一般会反问一句:你先搞清楚高频化之后,控制对象已经变成…

2026/10/20 23:54:59 阅读更多 →
价值引导的结构化采样优化:组合爆炸下的高效候选选择

价值引导的结构化采样优化:组合爆炸下的高效候选选择

去年下半年,我被借调到某算法小组支援一个代号为模拟项目X的专项,项目全称就叫价值引导的结构化采样优化。名字绕口,说白了就是一件事:候选方案多到搜索空间完全爆炸时,不要用均匀随机采样去大海捞针,而是先…

2026/10/20 23:54:59 阅读更多 →
企业知识图谱落地实践:从本体设计到架构选型的关键路径

企业知识图谱落地实践:从本体设计到架构选型的关键路径

这两年聊企业AI落地,很容易陷入一种分裂感:一边是大模型能力突飞猛进,另一边是企业实际交付的项目还在为“搞不清业务实体之间的关系”发愁。我所在的团队去年花了近一年时间,帮某制造企业搭了一套售后知识体系,核心底…

2026/10/20 23:54:59 阅读更多 →

最新新闻

代码托管平台访问慢?从DNS到资源加载的全链路优化指南

代码托管平台访问慢?从DNS到资源加载的全链路优化指南

1. 为什么打开代码托管平台会慢:先搞懂瓶颈在哪很多人一遇到页面转圈,第一反应就是“网不行”,然后开始重启路由器、切换网络,折腾半天发现该慢还是慢。我刚开始也这样,后来才意识到,打开这类海外代码托管平…

2026/10/21 5:28:10 阅读更多 →
PHP性能调优实战:Xdebug与QCacheGrind定位慢接口分析

PHP性能调优实战:Xdebug与QCacheGrind定位慢接口分析

做PHP开发这几年,我最大的体会是:性能问题不是靠猜,而是要靠数据说话。一个接口从20ms变成200ms,一行SQL的事;一个页面响应慢到让人抓狂,可能只是循环里不小心嵌套了一次查询。但难的不是修,而是…

2026/10/21 5:28:10 阅读更多 →
Agent零基础实操指南:用低代码搭一个能干的数字分身

Agent零基础实操指南:用低代码搭一个能干的数字分身

1. 为什么现在都在聊Agent?先搞清楚它到底解决了什么问题我接触过不少刚工作一两年的职场新人,也包括还在上学但已经开始实习的同学,大家挂在嘴边的一句话是:“事情太多太杂,精力不够用。”写周报、整理会议纪要、找文…

2026/10/21 5:28:10 阅读更多 →
ARM Linux嵌入式libiconv构建与字符集转换实战指南

ARM Linux嵌入式libiconv构建与字符集转换实战指南

简介:本资源是专为ARM架构Linux嵌入式系统定制的libiconv字符编码转换库,面向嵌入式开发工程师、交叉编译实践者及需在树莓派、ARM网关等设备上处理多语言文本(如UTF-8/GB2312/ASCII互转)的技术人员。资源通过arm-none-linux-gnue…

2026/10/21 5:28:10 阅读更多 →
降AI率有套路!3步把论文AIGC检测率从80%降到5%

降AI率有套路!3步把论文AIGC检测率从80%降到5%

又到交论文的季节了,后台收到好多私信,问的最多的就是“AI率太高怎么办”。说实话,我看到不少同学用AI辅助写完后,一检测,AI率直奔80%。这个数字确实吓人,但别慌,这题我能解。这篇就把我自己实操…

2026/10/21 5:28:10 阅读更多 →
在线字典学习MATLAB实现:稀疏编码与字典更新实战指南

在线字典学习MATLAB实现:稀疏编码与字典更新实战指南

简介:在线字典学习代码是一套基于MATLAB的机器学习实现资源,面向处理文本、音频等序列数据的开发者与研究者。代码演示了在线学习与字典学习的结合:通过逐样本或小批量方式更新模型参数,在节省内存的同时适应数据流场景&#xff0…

2026/10/21 5:27:10 阅读更多 →

日新闻

统一内存+量化:锐龙AI Max PRO 400如何本地跑320B大模型

统一内存+量化:锐龙AI Max PRO 400如何本地跑320B大模型

这段时间硬件圈和AI圈都在传一个事:AMD锐龙AI Max PRO 400系列把最高192GB统一内存搬进了PC形态的产品里,按宣传口径,本地跑320B参数的大家伙不再是纸面概念。我第一反应倒不是“内存真大”,而是这话背后的含金量——它把过去只能…

2026/10/21 0:00:11 阅读更多 →
AI助手深度使用体验:对话质量、长文本处理与指令遵循如何留住用户

AI助手深度使用体验:对话质量、长文本处理与指令遵循如何留住用户

1. 从“封号重开”这个行为说起:用户到底在追求什么“封号重开”这四个字,放在任何产品语境里都带着一股决绝的味道。一个账号从零开始积累使用记录、调教偏好、沉淀工作流,背后是大量的时间和精力成本。正常情况下,没有人愿意主动…

2026/10/21 0:00:11 阅读更多 →
ROS中YOLOv3工程落地:通信同步、坐标变换与性能调优

ROS中YOLOv3工程落地:通信同步、坐标变换与性能调优

1. 为什么在ROS里硬刚YOLOv3不是“炫技”,而是工程落地的必经之路我第一次在某高校机器人实验室看到那台搭载Jetson TX2的移动底盘原地打转、反复识别错垃圾桶时,就意识到:单纯跑通darknet_ros demo和真正让YOLOv3在ROS里“干活”&#xff0c…

2026/10/21 0:00:11 阅读更多 →

周新闻

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

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

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

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

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

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

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

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

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

2026/10/21 4:27:17 阅读更多 →

月新闻

我发现了一个新思路:用 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 阅读更多 →