拖动白球,改变它在固定轨道中的像素坐标。
左端固定 · 右端舵机升降 · 单目一维定位
让小球稳定在 −12 cm 到 +12 cm 的任意位置
先用屏幕矩形校准相机,再拖动目标或调节 PID,观察像素坐标如何驱动右端升降。
本项目测量的是
轨道一维位置
不是相机到小球的三维深度
四步看懂视觉定位
每张图都来自同一个模拟帧。点击阶段卡片可查看对应公式与源码位置。
识别有效
低饱和度、高亮度像素变白,再通过腐蚀和膨胀去噪。
面积、半径和 ROI 均通过后,保留最大的白色候选目标。
矩形宽度对应 24 cm,以中心像素为 0,左负右正。
位置换算
X_cm = (x_ball - center_px) / px_per_cm
固定视角让二维问题退化为一维
摄像头、轨道和分辨率固定后,只需读取球心横坐标。它测的是轨道坐标,不是三维深度。
PC/PlanB.py:102-107
球心像素305 pxx_ball
中心像素差0 pxx_ball - center_px
测量位置0.0 cm左负右正
真实位置0.0 cm仅仿真可见
轮廓半径36.0 px形态学之后
左端固定后,右端升降如何推动小球
正误差时右端下降,小球向右滚动;负误差时右端升高,小球向左滚动。摄像头持续反馈新位置。
e = target - measured
误差0.0 cm
P 项0.00
I 项0.00
D 项0.00
PID 输出0.00°
舵机命令30.00°
梁体倾角0.00°
小球速度0.0 cm/s
闭环响应曲线
目标、视觉测量与真实位置越接近,说明系统越稳定。
把仿真带回你的电赛装置
先保证视觉坐标稳定,再调控制器。识别抖动会被 D 项放大,标定误差则会让系统稳定在错误位置。
怎样做矩形标定
让杆的 24 cm 有效段与屏幕矩形重合。程序用矩形宽度除以 24 得到 px/cm,并以矩形中心建立 0 cm。
为什么会来回振荡
Kp 过大或阻尼太小会让小球高速越过目标。Kd 根据误差变化率提前制动,但视觉噪声也会被它放大。
识别丢失时发生什么
原源码会保留上一次位置。本实验台在丢失时保持上一次控制量并标红,提醒你在实机中增加超时和安全回中。
这里简化了哪些物理量
模型保留左端铰接、右端升降、重力分量、阻尼和舵机一阶响应,没有建模梁弯曲、机械间隙、静摩擦与通信延迟。