无名创新开源飞控利用GPS数据航向对准开源代码

无名创新开源飞控利用GPS数据航向对准开源代码:

#define acc_sync_cnt 5
void GPS_Azimuth_Update_Method1(uint8_t flag)
{
    if(flag==0) return;
    //下面利用到角公式求解误差方位角,先方位角误差正切值
    float x1=0,y1=0,x2=0,y2=0,molecule=0,denominator=0;
    WP_Sensor.azimuth_err_ang_his=WP_Sensor.azimuth_err_ang;//航向角误差历史值
    x1=GPS_Vel_Div.E;
    y1=GPS_Vel_Div.N;
    x2=NamelessQuad.Acce_History[_PITCH][acc_sync_cnt];//Origion_NamelessQuad.Acceleration[_PITCH];
    y2=NamelessQuad.Acce_History[_ROLL][acc_sync_cnt];//Origion_NamelessQuad.Acceleration[_ROLL];
    WP_Sensor.azimuth_k_ins=y2/x2;
    WP_Sensor.azimuth_k_gps=y1/x1;
    
    //ins加速度向量到gps加速度向量的夹角正切值
    molecule=WP_Sensor.azimuth_k_gps-WP_Sensor.azimuth_k_ins;//分子
    denominator=1+WP_Sensor.azimuth_k_gps*WP_Sensor.azimuth_k_ins;//分母
    if(denominator==0)//剔除分母为0,到角度为90度情况
    {
      //存在垂直的情况时,保持上次的航向角误差
      WP_Sensor.azimuth_err_ang=WP_Sensor.azimuth_err_ang_his;
        return ;
    }
    WP_Sensor.azimuth_err_tan=molecule/denominator;
    WP_Sensor.azimuth_err_ang=atan(WP_Sensor.azimuth_err_tan)*RAD2DEG;//角度范围为(-90,90)
    //到角的范围为0-180度,将经过反正切后求得的到角量化到0-180
    if(WP_Sensor.azimuth_err_ang<0) WP_Sensor.azimuth_err_ang+=180;//到角为顿角
    
    //1、到角锐角时,存在两种情况
    if(WP_Sensor.azimuth_err_ang>0&&WP_Sensor.azimuth_err_ang<90)//然后根据平面向量夹角为钝角时的条件,A*B<0,即x1*x2+y1+y2<0条件,将角度误差扩展到(-180,180)
    {
        if(x1*x2+y1*y2<0)//顿角
        WP_Sensor.azimuth_err_ang=-180+WP_Sensor.azimuth_err_ang;
    }
    //2、到角顿角时,存在两种情况
    if(WP_Sensor.azimuth_err_ang>90&&WP_Sensor.azimuth_err_ang<180)//然后根据平面向量夹角为钝角时的条件,A*B<0,即x1*x2+y1+y2<0条件,将角度误差扩展到(-180,180)
    {
        if(x1*x2+y1*y2>0)//锐角
        WP_Sensor.azimuth_err_ang=-180+WP_Sensor.azimuth_err_ang;
    }                
    WP_Sensor.azimuth_err_ang=constrain_float(WP_Sensor.azimuth_err_ang,-90.0f,90.0f);
    
    Sensor_State.Azimuth_Health=TRUE;
}

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
开源飞控:支持气压计、超声波定高、户外GPS定点、定速巡航,部分视频链接如下: 无名飞控暴力测试 无名飞控江边定点(长时间) 无名飞控定高作死测试 无名飞控加速度计6面校准与融合简单讲解 无名飞控源码整体框架介绍初步 无名飞控解(上)锁与遥控器简单设置 无名科创自研飞控平台,经过武汉科技大学连续四届研究生师兄们参考国内外主流飞控(APM、Pixhawk、Autoquad、MWC、CC3D、无穷、ANO、Light等)的算法与整体框架的进行深入学习基础上,经过软、硬件的精心设计,继承与发展,目前飞控整体功能相对完善,主要功能有:姿态自稳、超声波、气压计定高,户外GPS定点,GPS模式下定速巡航等功能,涵盖飞控学习主要核心算法: 1、四旋翼的传感器滤波(针对传感器不同使用情况:姿态解算、惯导、控制、传感器矫正等)分别采用窗口滑动滤波、不同截止频率的巴特沃斯数字低通滤波器);2、姿态解算(互补滤波、梯度下降法等);3、惯性导航(经典回路反馈法即APM三阶段互补滤波,单观测器的卡尔曼滤波,双观测量的卡尔曼滤波,观测传感器延时修正处理等); 4、控制算法(经典PID控制、前馈控制、自抗扰控制ADRC)等。 无名科创团队的发展: 多旋翼飞行器飞行控制系统(简称飞控)是我们团队历届主研项目,团队13年即始第一代飞控的研究,从最始的小四轴,到后来的多旋翼飞控,经历N个版本改进,经历无数次断桨、射桨、炸机,一步一步完善与改进,整合除了目前我们这款对外开源飞控。团队历来贡献者均就职于无人机公司做算法相关工作。目前我们的飞控更加完善,更加稳定,更加适合学习,主要核心代码自写率达到百分之90以上,代码基本上是逐行注释,整个飞控框架清晰明了,模块化封装规范,方便大家学习与二次发。由于作者目前仍然在校,主研项目仍为飞控,个人时间比较多,可和大家一同交流学习。我们的服务宗旨是:打造国内功能最多、性能最好、成本最低、可玩性最强的开源飞控学习平台。帮助大家以最小的代价、最大的获得感、最快的速度学习飞控相关算法,顺利完成进阶逆袭!!! 团队主要成员CSDN开源技术博客汇总 ,充分展现我们开源共享、共同进步的创客精神,不废话了,直接上图: 部分技术博客截图: 无名科创开源飞控:独家首创10轴IMU组合:MPU6050(加速度计、陀螺仪)+IST8310(DJI同款磁力计)+SPL06-001(歌尔高精度气压计、媲美MS5611),MCU:STM32F103RCT6,这是一款强大的飞控,主频72Mhz,flash 256K,板载10 Axis传感器,3轴陀螺,3轴加速度,3轴磁罗盘,高精度气压计。适合新手学习无刷飞控,更适合玩家做多种拓展和二次发,飞控预留多个串口,可外接各种附加设备,已实现超声波定高、气压计定高、GPS定点等功能,代码完全开源无名科创开源飞控学习平台: 1、飞控板与IMU分离式设计 2、采用3D打印的IMU气压防护罩 3、软件调试支持主流IAR、Keil两款编译器 4、支持多家上位机与地面站,方便调试
### 回答1: 无名创新飞控开源地面站(ngroundstation)是一种先进的无人机地面控制系统。它具备开源的特点,意味着用户可以自由地根据自身需求进行定制和修改。这使得它成为无人机领域的创新工具,给用户提供了更大的灵活性和个性化的选择。 ngroundstation采用了先进的飞控技术,可以实时监控和控制无人机的飞行。它的主要功能包括飞行数据显示、任务规划、航线设置、自动驾驶模式、图像传输、视频回放等。用户可以通过简洁直观的界面对无人机进行灵活的操作和监控。 ngroundstation支持多种无人机型号,并且可以与各种传感器和设备进行无缝集成,从而实现更丰富的功能和更高的性能。它还提供了多种通信方式,包括无线网络、蓝牙和串口,以满足不同用户的需求。 ngroundstation还拥有高度可扩展的特性,用户可以通过添加插件、编写脚本等方式对其进行功能扩展。这使得系统可以适用于各种应用场景,如航拍摄影、植保、应急救援等。 总之,无名创新飞控开源地面站(ngroundstation)是一款先进的无人机地面控制系统,具备开源、灵活、可定制等特点。它的出现为无人机领域的发展带来了更大的创新空间,同时也满足了用户个性化需求的不断增长。 ### 回答2: 无名创新飞控开源地面站ngroundstation是一款使用开源技术发的先进飞行控制系统。ngroundstation旨在提供一个可靠、灵活、易于使用的地面控制站,以便操作者可以实时监控和控制无人机的飞行。 该地面站具有许多强大的功能。首先,它能够实时显示无人机的飞行状态和位置信息,包括高度、速度、航向等。操作者可以通过地图界面追踪无人机的实时位置,并随时调整飞行路径和目标。 ngroundstation还具有智能导航功能,可以预先设置航点和航线,让无人机在没有人为干预的情况下按照设定的轨迹进行飞行。这对于航拍摄影和地理勘测等任务非常有用,可以确保飞行的准确性和稳定性。 此外,地面站还提供了数据记录和回放功能,可以记录和回放无人机的飞行数据和图像,以便进一步分析和研究。操作者可以通过回放功能来审查无人机的飞行过程,了解操作过程中的任何潜在问题。 ngroundstation还具有强大的远程控制功能。操作者可以通过地面站远程操控无人机的起飞、降落、航向调整等操作,无需实际接触无人机。这是一项非常重要的功能,可以保证操作者的安全,并且方便地进行任务规划和控制。 总之,ngroundstation是一款优秀的无人机地面控制站软件,通过其先进的功能和易用的操作界面,操作者可以实时监控和控制无人机的飞行,同时提供了数据记录和回放功能,方便进一步分析和研究。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值