yufeng881005 发表于 2014-6-18 22:34:16

关于GPS悬停

本帖最后由 yufeng881005 于 2014-6-18 22:36 编辑

        弄好好长时间四轴,一直卡在悬停上面,沮丧的想哭有的时候,看APM和WMC的悬停策略,看的不是太明白,用位置微分得到东向北向,以前上学的时候实验室有学GPS的,当时也翻了翻书,说GPS测速精度要比定位精度高(用的是多普勒效应)
      刚开始也是直接用位置微分得到北东向速度,也不知道是精度不行还是写的程序有问题,反正一上去切到GPS就翻了
      用的是Ublox,偶尔的看了一下u-center,发现GPS能直接输出北东地速度,想着直接用这个速度不就行了(UBX格式数据,int32数据,小数点后面六位,速度单位cm/s)(这也是我一直纳闷的,上面两个开源飞控为什么没用到?????)(附件是u-center里面附带的UBX格式数据说明),于是测试了下速度控制:
   俯仰摇杆给出 期望南\北速度:((摇杆值-中立位)/50,即速度范围+-10m/s),滚转杆给出期望东西速度,实际速度由GPS给出,由速度误差作P得到期望角度(还要讲角度映射到体系下),进入角度控制......,
                         HandTarget_Nvel=PID_PITCH*0.02f;//将摇杆减去中立位后除以50得到期望速度
                       HandTarget_Evel=PID_ROLL*0.02f;

                        Target_Nvel=HandTarget_Nvel+GPSTarget_Nvel;//HandTarget_Nvel手动控制角度,GPSTarget_Nvel计算角度暂且为0
                          Target_Evel=HandTarget_Evel+GPSTarget_Evel;

                           Nvel_err = Target_Nvel - Nvel;//Target_Nvel 目标速度,Nvel,GPS测量实际北向速度
                           Nv_Angle = Nvel_err*2.8;//做P
                          
                        Evel_err = Target_Evel - Evel;
                        Ev_Angle = Evel_err*2.8;
                        
                         GPS_pitch = Ev_Angle*sin(IMU_Yaw * 0.0174532925) + Nv_Angle*cos(IMU_Yaw * 0.0174532925);//映射到体系
                       GPS_roll= Ev_Angle*cos(IMU_Yaw * 0.0174532925) - Nv_Angle*sin(IMU_Yaw * 0.0174532925);
                      ...........进入角度控制环

                实际测试发现效果很好,面朝北站着控制四轴,不管机头载那个方向,打俯仰就会南北运动,滚转,东西运动(类似APM无头模式,原理很简单.......)
               本来以为速度环可以了位置环马上就可以搞定,实际测试发现,让人好沮丧,刚开始发现在一个10多米范围内荡秋千,怀疑GPS滤波没虑好,加了个滑动平均滤波,还是不行,怀疑GPS出问题了,测试了一下,发现静止时10多米的跳动........换GPS,发现静止的时候好点,但也是有3,4米,5,6米跳动的样子......(不知道是不是就是这个样子,还是GPS问题,求大神指导.......),这个上去貌似还是一样,在一个10多米范围荡秋千......分析原因:
             1,磁偏角的问题,在郑州,同学说是3.9度,就减去了3.9,就不知道这个3.9是加上还是减去??
             2,磁航向,明天测一下这个航向准不准
            3,用的GPS有问题,定位数据不准
            4,滤波没做好,用的是4组滑动窗口
         5,P参数没调好.....
      求大神指点,是上面那种方法原理上有错误(走错了路子)....还是下面分析的几个原因
                  
   

whf199191 发表于 2014-6-18 23:34:36

gps的定位精度只有10m吧?这应该已经达到性能极限了……

maxwelllls 发表于 2014-6-19 00:29:40

GPS定位精度就这样了,除非你用差分GPS。
INS+GPS实际效果也很烂,因为GPS观测值是硬伤。
纯惯导完全靠传感器的精度了。
视觉里程计太贵了,你估计也不会考虑

HookTeam 发表于 2014-6-19 06:54:55

有可能是PID参数没调好的原因。我们的PID调的好的情况下悬停能到5米左右

yufeng881005 发表于 2014-6-19 20:31:14

HookTeam 发表于 2014-6-19 06:54
有可能是PID参数没调好的原因。我们的PID调的好的情况下悬停能到5米左右

但是我觉得APM悬停的很好啊.....基本在哪不动,我看的是2.8版本的,上面GPS数据也没怎么处理,不过今天下了3.1版本的,GPS好像加上的惯导。。。。。没怎么看懂......

yufeng881005 发表于 2014-6-19 20:32:04

maxwelllls 发表于 2014-6-19 00:29
GPS定位精度就这样了,除非你用差分GPS。
INS+GPS实际效果也很烂,因为GPS观测值是硬伤。
纯惯导完全靠传感 ...

可是看着APM悬停效果很好啊,在哪稳稳不动....
页: [1]
查看完整版本: 关于GPS悬停