赞
踩
我需要通过两个进程
1.识别测量出画面中心点和人体中心点的水平竖直误差
将误差发给pid,pid得到输出
2.pid的输出用在飞行控制进程调节飞行高度和角度
根据水平误差调整偏航角度(机头朝向)如果水平误差=0,则表示人在飞机镜头正中央
同样,通过计算竖直误差动态修正姿态
采用meidaoioe
proportional 比例控制算法
P
让镜头中心与人体重心重合,假设 t0时刻竖直误差error =100
kp =-0.5
上下摇杆量 up_down_val = kp × error (上下摇杆量与竖直误差成比例)
此时计算是上下摇杆量是负数,所以飞机就会向上飞一段距离
t1时刻error =50
kp =-0.5
上下摇杆量 up_down_val 仍未负数
飞机继续往上飞
t2时刻error = -20
up_down_val 为正数,则会往下飞,直到其接近于0 为止
d(error)/dt == 速度
PID伪代码
- 上一次误差error =0
- 积分 integral = 0
- 循环:
- 误差error = 误差测量值
- 积分integral = 积分 integral + 误差 error*时间差dt
- 导数derivative =(误差error - 上一次的误差error)/时间差dt
-
- 输出output =kp *误差error + ki *积分integral +kd *导数derivative
-
- 上一次误差error =误差 error
- 等待时间(dt)
- 进入下次循环
动作2345678如图所示(动作一是双手自然垂立)
2345是即刻生效的。
只要检测到2345任意一个,指令就设置成对应的数字
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。