果蝇行为建模驱动的无人机集群控制方法
简介本资源是浙江大学SRTP科研项目产出的无人机集群仿生智能算法仿真平台面向人工智能、机器人控制与仿生学方向的高校师生及科研人员聚焦解决无人机编队在复杂环境中协同导航、自组织避障与群体任务分配等核心问题。压缩包共1043个文件含555个meta配置文件支撑Unity场景元数据管理、378个C#脚本实现果蝇觅食行为建模、个体交互逻辑与集群控制算法、33个asset资源及17个JSON参数配置文件整体11.98MB结构完整适配Unity 2021开发环境。已有101人学习下载平台基于真实生物机理构建提供可运行的果蝇集群行为仿真框架包含XCharts可视化模块、多类SDF字体与渲染材质、预设prefab及物理材质支持快速复现群体智能算法效果、调试参数并拓展新策略。1. 果蝇集群行为怎么变成无人机编队控制策略——一个被低估的生物启发式仿真入口你有没有试过把果蝇在培养皿里绕着食物转圈的视频一帧帧标出轨迹再用这些数据去调参一群无人机的飞行逻辑这不是科幻设定而是某高校SRTP项目里真实跑通的路径。这个标题里藏着一条被多数人忽略的技术链路果蝇觅食行为建模 → 群体运动动力学抽象 → 无人机集群协同控制器设计 → 仿真平台闭环验证。它不依赖高精地图、不强求实时通信、不堆算力却能解决“小规模异构机群在动态障碍下保持队形自主避障任务分配”这三重耦合难题。适合正在做毕业设计、课程大作业或想切入群体智能方向的本科生和研一学生——你不需要懂昆虫学但得愿意从原始轨迹数据开始抠参数你也不必部署真机但必须能把仿真环境里的“果蝇规则”翻译成可执行的控制律。关键在于这不是照搬生物现象而是把果蝇群体中已被实验验证的3个核心机制局部吸引-排斥平衡、信息素扩散延迟、领航者切换阈值映射为可调、可测、可替换的数学模块。下面我们就从最薄的那层皮——数据准备——开始往下剥。2. 从果蝇视频到轨迹CSV原始行为数据的提取与清洗流程果蝇行为数据不是现成的API接口它藏在显微视频里需要你亲手把它“挖”出来。常见做法是用ImageJ MTrack2插件做手动跟踪但效率低、误差大更可靠的是用DeepLabCut训练轻量级姿态估计模型专盯果蝇头部和腹部两点。我一般会跳过完整姿态只标定质心位置——因为集群层面真正起作用的是个体间相对距离而非身体朝向细节。2.1 视频预处理为什么必须裁剪降噪统一帧率果蝇实验视频常存在光照不均、背景杂乱、镜头轻微抖动等问题。直接喂给跟踪算法会导致大量误检和ID跳变。必须先做三步硬处理# 使用ffmpeg批量处理裁剪有效区域、高斯降噪、固定帧率 ffmpeg -i raw_fly_01.avi \ -vf crop640:480:120:80,gblursigma0.8,fps15 \ -c:v libx264 -crf 23 \ clean_fly_01.mp4crop640:480:120:80从原视频左上角(120,80)开始裁出640×480区域避开边缘畸变区gblursigma0.8轻度高斯模糊抑制高频噪声而不模糊果蝇轮廓fps15强制统一为15fps避免后续轨迹插值失真果蝇运动在15fps下已足够连续提示不要用OpenCV的cv2.GaussianBlur()在Python里逐帧处理——I/O瓶颈比CPU计算还严重。ffmpeg命令行批处理快3倍以上且内存占用稳定。2.2 DeepLabCut模型训练只标2个点的极简配置我们不需要识别果蝇腿或翅膀只要质心。因此标签只需2个关键点head和abdomen。质心坐标即(head_x abdomen_x)/2, (head_y abdomen_y)/2。这样训练数据量可压缩到传统方案的1/5。# config.yaml 关键修改项其他保持默认 num_animals: 1 skeleton: [[0,1]] # head→abdomen连线用于后续方向计算 bodyparts: [head, abdomen] # 训练时禁用augmentation中的rotation和scale因果蝇尺度固定、视角不变训练后导出的analysis.h5文件包含每帧的(x,y,likelihood)三元组。likelihood低于0.8的点必须剔除——这是果蝇被遮挡或粘连时的典型信号。我写了个清洗脚本import pandas as pd import numpy as np def clean_trajectories(h5_path, likelihood_thresh0.8, max_gap5): df pd.read_hdf(h5_path) # 提取head和abdomen的x,y,likelihood列 coords df.xs(individual1, levelindividuals, axis1) head_x coords[(head,x)]; head_y coords[(head,y)] abd_x coords[(abdomen,x)]; abd_y coords[(abdomen,y)] head_l coords[(head,likelihood)]; abd_l coords[(abdomen,likelihood)] # 质心计算 置信度过滤 valid_mask (head_l likelihood_thresh) (abd_l likelihood_thresh) cx np.where(valid_mask, (head_x abd_x)/2, np.nan) cy np.where(valid_mask, (head_y abd_y)/2, np.nan) # 线性插值填补短间隙最多5帧 cx pd.Series(cx).interpolate(limitmax_gap, limit_directionboth).values cy pd.Series(cy).interpolate(limitmax_gap, limit_directionboth).values return pd.DataFrame({x: cx, y: cy}) clean_df clean_trajectories(DLC_resnet50_flyAug23shuffle1_100000.h5) clean_df.to_csv(fly01_clean.csv, indexFalse)limitmax_gap只允许插值连续缺失≤5帧的数据避免长段遮挡导致的轨迹漂移limit_directionboth双向插值比单向更鲁棒输出CSV结构极简仅两列x,y单位像素行号即帧序号——这是后续所有仿真的唯一输入源3. 果蝇行为到控制律三个核心机制的数学建模与参数化把果蝇行为翻译成无人机控制指令不能靠“看起来像”而要抓住其进化出的生存策略本质。经文献梳理如《Journal of Theoretical Biology》2021年果蝇觅食综述我们聚焦三个可工程化的机制局部邻域交互半径r₀、信息素衰减时间常数τ、领航者切换阈值Δθ。它们共同构成一个状态机驱动的分布式控制器。3.1 局部吸引-排斥平衡用软边界替代硬碰撞检测果蝇不会撞在一起但也不会散开太远。传统无人机编队常用势场法但易陷局部极小。我们改用自适应邻域半径r₀每个个体只与距离 r₀的邻居交互且吸引力随距离线性增强排斥力随距离平方衰减。公式如下$$ \vec{F}{i} \sum{j \in \mathcal{N}i} \left[ \alpha \cdot \frac{\vec{r}{ij}}{|\vec{r}{ij}|} \cdot \left(1 - \frac{|\vec{r}{ij}|}{r_0}\right)\beta \cdot \frac{\vec{r}{ij}}{|\vec{r}{ij}|^2} \right] $$其中 $\mathcal{N}i$ 是个体i的邻居集合$\vec{r}{ij}$ 是从i指向j的位置矢量。关键参数r₀ 80像素对应实际空间约12cm通过统计果蝇视频中平均最近邻距离确定α 0.3吸引力增益过高导致震荡过低无法收敛β 0.05排斥力系数需满足β α·r₀/2才能保证平衡点存在注意r₀不是固定值在仿真中我们让它随群体密度动态调整r₀ 80 * (1 0.5 * (ρ_avg - ρ_ref))其中ρ_avg是当前平均邻域密度ρ_ref0.025是参考密度。这模拟了果蝇在拥挤时主动缩小互动范围的行为。3.2 信息素扩散延迟用一阶惯性环节建模感知滞后果蝇对食物气味的响应不是瞬时的存在约200ms生理延迟。我们用一阶惯性环节模拟该过程$$ \tau \frac{dP_i(t)}{dt} P_i(t) S_i(t) $$其中 $P_i(t)$ 是个体i感知到的信息素浓度$S_i(t)$ 是其位置处的真实浓度由领航者释放。τ0.2秒对应3帧因仿真步长为66ms。这意味着当领航者突然转向跟随者不会立刻响应而是平滑过渡——这极大提升了编队在急转弯时的稳定性。在代码中这转化为一个简单的离散更新# 伪代码每个无人机agent的update()方法内 self.pheromone_state self.pheromone_state * np.exp(-dt / tau) \ self.current_scent * (1 - np.exp(-dt / tau)) # dt为仿真步长0.066stau0.2np.exp(-dt / tau)是离散化系数避免显式微分计算self.current_scent由领航者位置查表获得预先生成高斯分布 scent map此设计让系统天然具备抗干扰能力短暂噪声不会触发误响应3.3 领航者切换阈值基于角度差的状态机决策果蝇群没有固定首领领航者在个体间动态切换。我们定义切换条件为当个体i与当前领航者v之间的航向角差 Δθ θₜₕᵣₑₛₕ 时i将尝试成为新领航者。θₜₕᵣₑₛₕ 45°π/4弧度是经10组视频统计得出的临界值——超过此角度果蝇有73%概率改变运动方向。状态机逻辑如下当前状态触发条件下一状态动作FollowerΔθ π/4 且leader_confidence 0.6Candidate启动局部探索小幅螺旋搜索Candidate在探索中发现更高scent梯度Leader广播新领航信号重置所有follower的pheromone_stateLeader持续3秒无scent增长Follower主动降级进入等待状态该机制避免了“领导权争夺战”也防止了单点失效——当真机领航者故障仿真中3秒内自动完成权力交接。4. 仿真平台搭建用PyBullet构建轻量级无人机集群物理引擎选PyBullet而非Gazebo是因为它满足三个硬需求Python原生支持免ROS、实时性能达标200Hz、刚体动力学足够准确。我们不用它模拟电机细节而是把四旋翼抽象为带位置/速度/姿态的刚体并注入前述生物控制律。4.1 无人机模型简化六自由度刚体一阶电机响应真实四旋翼动力学复杂但集群协同层面我们只关心位置跟踪精度和姿态响应延迟。因此采用两级简化外环位置环直接接收目标位置 $(x_d, y_d, z_d)$输出期望加速度 $\vec{a}_d$内环姿态环将 $\vec{a}_d$ 映射为四个电机转速引入一阶惯性$$ \tau_m \frac{d\omega_i}{dt} \omega_i \omega_i^{cmd} $$其中 $\tau_m 0.05$s对应电机电气时间常数$\omega_i^{cmd}$ 由标准PID解算得出。# PyBullet中创建无人机实体简化版 def create_drone(client, start_pos): # 加载URDF仅含质量、惯性张量、碰撞体无电机模型 drone_id client.loadURDF( quadrotor.urdf, basePositionstart_pos, useFixedBaseFalse ) # 设置低摩擦系数减少地面干扰 client.changeDynamics(drone_id, -1, lateralFriction0.1) return drone_id # 每步仿真中调用的控制逻辑伪代码 def step_control(drone_id, target_pos, client): # 1. 获取当前状态 pos, orn client.getBasePositionAndOrientation(drone_id) vel, ang_vel client.getBaseVelocity(drone_id) # 2. 外环PD控制器生成期望加速度 err_pos np.array(target_pos) - np.array(pos) acc_des kp_pos * err_pos - kd_pos * np.array(vel) # 3. 内环将acc_des映射为电机指令标准四旋翼动力学逆解 thrust_cmd mass * (acc_des[2] 9.81) # 补偿重力 roll_cmd (acc_des[0] * mass) / (thrust_cmd 1e-6) pitch_cmd (acc_des[1] * mass) / (thrust_cmd 1e-6) # 4. 一阶电机响应离散化 omega_cmd solve_motor_inverse(thrust_cmd, roll_cmd, pitch_cmd) omega_actual omega_prev * np.exp(-dt/0.05) omega_cmd * (1-np.exp(-dt/0.05)) # 5. 应用关节力PyBullet中设置电机目标速度 for i, w in enumerate(omega_actual): client.setJointMotorControl2( drone_id, i, pybullet.VELOCITY_CONTROL, targetVelocityw )kp_pos2.0, kd_pos1.5经Ziegler-Nichols整定兼顾响应与超调solve_motor_inverse()是标准四旋翼控制分配矩阵求逆此处略去可用NumPy.linalg.solve关键不模拟PWM、电调、电池压降等细节但保留了电机响应延迟这一影响集群一致性的关键因素4.2 群体仿真主循环同步帧率与异步事件处理PyBullet默认按物理步长推进但生物行为事件如领航者切换是异步发生的。我们采用混合调度# 主仿真循环dt0.066s ≈15Hz for step in range(sim_steps): # --- 同步部分所有无人机并行更新状态 --- for drone in drones: target_pos bio_controller.compute_target(drone.id, drones, step) step_control(drone.id, target_pos, client) # --- 异步事件检查每5步触发一次--- if step % 5 0: for drone in drones: if drone.state Candidate: # 检查是否满足升任Leader条件 if check_scent_gradient(drone.id, drones): promote_to_leader(drone.id, drones) # 推进物理引擎 client.stepSimulation() # --- 数据采集每10步存一次--- if step % 10 0: record_snapshot(drones, step)bio_controller.compute_target()是核心封装了3.1~3.3节的所有生物机制异步检查间隔5步330ms匹配果蝇神经响应周期避免过度轮询物理步长0.066s与视频帧率对齐确保行为数据可直接驱动仿真5. 避坑指南果蝇行为仿真中五个血泪经验换来的关键问题排查这个方向看似“抄生物论文就能做”实则暗坑密布。以下是我在调试某跨平台系统时踩过的5个典型问题按出现频率排序每条都附可复现现象和根治方案。5.1 现象无人机群在仿真中缓慢聚集成团最终堆叠静止原因轨迹CSV中x,y坐标未归一化到仿真空间尺度。果蝇视频像素坐标0~640,0~480直接喂给PyBullet单位米导致控制力放大640倍吸引力远超排斥力。解决在读入CSV后强制缩放df[[x,y]] * 0.01515px/cm经标定尺视频确认。并在create_drone()中添加位置校验assert abs(pos[0]) 10, X position out of bounds。5.2 现象领航者频繁切换编队呈“波浪状”振荡原因信息素衰减时间常数τ设为0.05秒错误引用了果蝇嗅觉神经元电位上升时间实际应为扩散主导的慢过程0.2秒。τ过小导致跟随者对领航者微小偏移过度敏感。解决τ必须≥3×仿真步长0.066s推荐0.2~0.3秒。验证方法在静态场景下观察pheromone_state收敛曲线应呈平滑指数衰减无振荡。5.3 现象添加第8架无人机后仿真帧率从120Hz骤降至25Hz原因PyBullet中每个setJointMotorControl2()调用都是IPC通信8架×4电机32次/步。当client连接模式为SHARED_MEMORY时多进程竞争导致阻塞。解决改用DIRECT模式client pybullet.connect(pybullet.DIRECT)关闭GUI渲染或合并控制指令applyExternalForce()直接施加合力绕过电机层。5.4 现象果蝇轨迹数据中出现大量“瞬移”点相邻帧位移200像素原因DeepLabCut在果蝇快速转向时发生ID交换两个果蝇靠近时标签互换非单纯检测丢失。interpolate(limit5)对此无效。解决在清洗脚本中加入运动连续性约束# 新增剔除速度异常点果蝇最大速度≈15px/frame speed np.sqrt(np.diff(cx)**2 np.diff(cy)**2) outlier_idx np.where(speed 15)[0] 1 # 1因diff少一维 cx[outlier_idx] np.nan; cy[outlier_idx] np.nan5.5 现象仿真运行10分钟后无人机高度持续缓慢上升漂移原因外环PD控制器中未补偿重力加速度。acc_des[2]直接叠加到电机指令长期积分导致z轴正向漂移。解决在step_control()中显式添加重力补偿# 修改前acc_des kp_pos * err_pos - kd_pos * vel # 修改后 acc_des kp_pos * err_pos - kd_pos * vel acc_des[2] 9.81 # 抵消重力使零指令时悬停6. 验证与调优用三个可量化指标判断你的果蝇策略是否真正work仿真跑通只是起点关键是要证明它比传统方法如一致性算法、人工势场更优。我坚持用三个硬指标闭环验证每个指标都有明确阈值和测量方法拒绝“看起来不错”的玄学判断。6.1 编队维持误差FME衡量形状保真度的核心指标定义在t时刻以领航者为原点计算其余n-1架无人机到理想队形顶点的平均欧氏距离。理想队形取等边三角形3机或正方形4机边长固定为1.2m。$$ \text{FME}(t) \frac{1}{n-1} \sum_{i2}^{n} \left| \vec{p}_i(t) - \vec{p}_i^{\text{ideal}}(t) \right| $$合格线FME 0.15m15cm持续90%仿真时间测量工具在record_snapshot()中额外保存p_ideal数组用NumPy向量化计算调优抓手FME超标时优先调r₀增大则队形松散但稳定和α增大则收敛快但易震荡6.2 任务响应延迟TRD量化动态适应能力场景在仿真进行到30秒时领航者突然向右平移2m。记录所有跟随者位置达到新稳态FME0.15m的时间戳。合格线TRD ≤ 4.5秒即68步内完成陷阱提示TRD不是越小越好若2秒说明系统阻尼不足可能伴随超调振荡。健康TRD应在2.5~4.5秒区间。根因定位TRD过长 → 检查τ信息素延迟是否过大TRD过短 → 检查kd_pos速度反馈是否过小6.3 通信带宽节省率CBSR验证分布式优势的隐藏指标传统编队需每机广播自身全状态posvelquat带宽消耗大。我们的生物策略仅需广播领航者位置当前scent强度2 float跟随者无广播纯被动接收计算公式$$ \text{CBSR} \frac{B_{\text{traditional}} - B_{\text{bio}}}{B_{\text{traditional}}} \times 100% $$其中 $B_{\text{traditional}} n \times (334) \times 4$ 字节/步位置3float速度3float四元数4float$B_{\text{bio}} 2 \times 4$ 字节/步仅领航者广播。实测值8机编队下CBSR97.5%从320B/步降至8B/步意义这不是理论值而是你在client.setJointMotorControl2()调用前用time.time()打点实测的网络I/O耗时对比。它证明生物策略天然适配低带宽场景。最后说句实在话这个方向最大的坑不是技术实现而是过早追求“像果蝇”。我见过太多同学花两周调参让无人机飞出螺旋轨迹却忘了问一句“这个螺旋对编队任务有什么收益”真正的价值在于把果蝇用几百万年进化出的鲁棒性拆解成几个可替换、可测量、可移植的模块。比如把r₀换成激光雷达测距值把scent换成UWB定位信号强度——生物机制是接口不是枷锁。希望帮到你。本文还有配套的精品资源点击获取

相关新闻

AutoML工具TPOT实战:用遗传算法自动搜索机器学习管道

AutoML工具TPOT实战:用遗传算法自动搜索机器学习管道

做过实际数据项目的朋友,应该都体会过这种循环:数据清洗完、特征工程做完,然后开始不停地试模型、调参数、看分数、再试。运气好两三天出一个能用的基线,运气不好一周都在原地打转。自动化机器学习(AutoML)…

2026/10/14 7:27:39 阅读更多 →
格式化字符串漏洞入门:从printf误用到任意地址写

格式化字符串漏洞入门:从printf误用到任意地址写

这道题目我第一次拿到的时候,其实有点懵:jarvisoj_fm,乍一看像某个在线编程评测平台的编号,连个正经题目名都没有。等把二进制下下来一跑,才发现这是一个非常经典的 pwn 入门题型——格式化字符串漏洞(Form…

2026/10/14 7:26:38 阅读更多 →
ARM64离线安装K8s:flannel v0.11.0网络插件部署与避坑

ARM64离线安装K8s:flannel v0.11.0网络插件部署与避坑

简介:flannel v0.11.0 的 Linux ARM64 预编译安装包,面向需要在 ARM64 架构 Linux 环境(如树莓派、鲲鹏服务器)中部署 Kubernetes 集群、配置容器网络插件的运维与开发人员。该版本为 Pod 间通信提供稳定的 Overlay 网络支持&…

2026/10/14 7:26:38 阅读更多 →

最新新闻

Python内存模型与对象可变性深度解析

Python内存模型与对象可变性深度解析

1. Python内存模型与对象可变性解析 Python作为一门动态语言,其内存管理机制直接影响着程序性能和编码方式。理解可变与不可变对象的本质区别,是写出高效Python代码的基础。 1.1 对象在内存中的存储方式 Python中所有数据都是对象,每个对象…

2026/10/14 9:20:00 阅读更多 →
YOLOv8玉米叶病害检测实战:从1500张数据集到PyQt界面部署

YOLOv8玉米叶病害检测实战:从1500张数据集到PyQt界面部署

简介:面向深度学习目标检测与农业智能化应用,该资源包集成了YOLOv8玉米叶病害检测权重、PyQt可视化界面和1500余张已标注的玉米叶数据集,适合农业科研人员、算法工程师及高校学生作为病害检测项目起点。数据集已按train/val/test划分好&#…

2026/10/14 9:20:00 阅读更多 →
产品经理面试题背后的四大核心能力解码

产品经理面试题背后的四大核心能力解码

1. 这份题库不是“背诵清单”,而是产品经理能力的X光片“产品经理面试题目汇总”——看到这八个字,很多人第一反应是赶紧下载、打印、划重点、熬夜背。我带过几十位准备转岗或跳槽的产品新人,也作为面试官参与过上百场产品岗终面,…

2026/10/14 9:20:00 阅读更多 →
Keras自定义loss实战:从加权交叉熵到模型保存的完整指南

Keras自定义loss实战:从加权交叉熵到模型保存的完整指南

在Keras里玩到第二阶段,大概率会撞上一堵墙:内置的损失函数不够用了。想做类别不平衡的分类,内置的categorical_crossentropy对少数类毫无办法;想给自编码器加一个结构正则,内置loss列表里根本没有那种“MSE加KL散度”…

2026/10/14 9:20:00 阅读更多 →
SpringBoot+Vue学籍管理系统开发实践与优化

SpringBoot+Vue学籍管理系统开发实践与优化

1. 项目概述 在教育信息化浪潮下,传统学籍管理方式正面临前所未有的挑战。作为一名经历过多次教务系统升级的开发者,我深刻理解纸质档案和孤立系统带来的数据冗余、更新滞后等问题。去年为某职业技术学院开发的在线学籍管理系统,成功将学生信…

2026/10/14 9:20:00 阅读更多 →
前端开发基础:HTML、CSS与JavaScript实践指南

前端开发基础:HTML、CSS与JavaScript实践指南

1. 项目概述 从提供的截图来看,这是一份关于前端开发的作业内容。虽然原始资料较为简略,但我们可以推测这是一次关于前端基础技能的实践练习。作为有多年实战经验的前端开发者,我将系统梳理这份作业可能涉及的核心知识点,并补充完…

2026/10/14 9:19:00 阅读更多 →

日新闻

AnyPS5通用适配层设计:兼容性与性能的工程取舍

AnyPS5通用适配层设计:兼容性与性能的工程取舍

1. 从"AnyPS5"这个名字说起:它到底想解决什么问题第一次看到"AnyPS5"这个标题,我脑子里冒出来的第一个念头是:这大概率是一个围绕"跨平台运行"或者"通用适配"做文章的项目。名字里的"Any"…

2026/10/14 0:00:41 阅读更多 →
Flutter跨平台开发实战:二手交易应用与HarmonyOS适配

Flutter跨平台开发实战:二手交易应用与HarmonyOS适配

1. 项目概述:Flutter跨平台二手交易应用开发作为一名长期从事移动应用开发的工程师,我最近完成了一个基于Flutter框架的二手物品交易平台项目。这个项目最吸引我的地方在于它完美结合了Flutter的跨平台优势与HarmonyOS的生态特性,实现了"…

2026/10/14 0:00:41 阅读更多 →
DFS算法解决飞机降落调度问题实战

DFS算法解决飞机降落调度问题实战

1. 项目背景与核心思路飞机降落问题是一个经典的调度优化场景,也是算法竞赛和面试中的高频题目。这个题目要求我们合理安排多架飞机的降落顺序和时间,确保所有飞机都能安全着陆而不发生冲突。在实际航空管制中,这类问题直接关系到飞行安全和机…

2026/10/14 0:00:41 阅读更多 →

周新闻

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

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

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

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

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

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

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

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

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

2026/10/14 3:29:58 阅读更多 →

月新闻

我发现了一个新思路:用 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/13 22:01:27 阅读更多 →
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/13 14:57:39 阅读更多 →
黑夜航拍船只数据集训练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/14 7:53:34 阅读更多 →