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

2023-05-16

无名创新开源飞控利用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;
}

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

无名创新开源飞控利用GPS数据航向对准开源代码 的相关文章

  • 如何查看手机是否有GPS设备?

    我正在尝试找到一段代码可以告诉我Android手机是否有GPS设备 我在搜索结果中获得的大多数示例都表明 GPS 是否启用 我感兴趣的是Android手机是否有物理GPS设备 Thanks 从 API 级别 8 Froyo 开始 您可以使用
  • 我无法在 Android 真实手机上获取位置

    public class LocationService extends Service private Handler mHandler new Handler private Timer mTimer null private int
  • 计算小距离用什么公式

    Hy 我需要计算 2 个 GPS 点之间的距离 我读了这个问题计算地理邻近度的公式 https stackoverflow com questions 2096385 formulas to calculate geo proximity但
  • Android上的“覆盖”尺寸可以与谷歌地图一起缩放吗?

    我已经能够使用 MapActivity 和 ItemizedOverlay 通过 Eclipse 在 Android 上的谷歌地图上绘制叠加层 但是当地图放大和缩小时 叠加层的大小不会改变 我希望叠加层 固定 在地图上 并随地图一起放大和缩
  • 如何在 python 中创建自己的数据类型以便覆盖算术运算符?

    我目前正在使用 Python Numpy 处理地理 GPS 数据 喜欢它 并且我面临着计算由坐标对定义的地理点之间的距离的重复任务pn lon lat 我有一个这样使用的函数 dist geodistance p1 p2 它类似于线性代数中
  • 如何通过 GPS 检查距 x,y 位置 10 米的半径

    我从 GPS 得到这个位置 40 715192 74 005795 如何判断i是否在10米半径范围内 提前致谢 使用半正矢公式http en wikipedia org wiki Haversine formula http en wiki
  • Android GPS 路由系统

    我正在开发一个 Android 应用程序 它可以定位用户 假设用户在路上 并且该应用程序将为用户创建最短路线 以便能够到达用户选择的目的地 定位用户不是问题 因为这里有一个 API http www vogella com articles
  • 如何测试GPS状态?

    我现在创建一个应用程序来通过 GPS 检测设备的位置 我对 GPS 状态有疑问 我查看 GpsStatus Listener 但它很复杂 因为我是 Android 新手 这是我尝试对 GPS 状态执行的操作 我是否走在正确的轨道上 fina
  • Java中的多点三边测量算法

    我正在尝试在我的 Android 应用程序中实现三边测量算法来确定用户的室内位置 我正在使用超宽带信标来获取到固定点的距离 我能够采用中建议的方法三边测量法 Android Java https stackoverflow com ques
  • 如何从广播接收器中取消注册侦听器并停止服务

    在我的应用程序中 我有一个广播接收器 当接收到短信中的关键字时 它会启动一项跟踪手机 GPS 位置的服务 我这样做使用 context startService new Intent context TrackGPS class 我还需要能
  • GPS 坐标(以度为单位)来计算距离

    在iPhone上 我以十进制度数获取用户的位置 例如 纬度39 470920和经度 0 373192 也就是A点 我需要用另一个 GPS 坐标 同样以十进制表示 B 点创建一条线 然后 计算从 A 到 B 的线与另一个点 C 之间的距离 垂
  • 如何通过 GPRS 向 GPS 追踪器(TK103、GT02、GT06、TK102 等)发送命令

    这已经被问过这里https stackoverflow com questions 25460743 gps tracker tk103 how to send message through server https stackoverf
  • React Native Android 位置请求超时

    在 IOS 中查找 GPS 坐标时没有问题 效果很好 Android 端不如 IOS 稳定 在真机和模拟器中都会出现这个问题 有时它可以找到位置 但有时却找不到 寻找了3天 但没有找到解决方案 当我的应用程序无法找到我的位置时 我尝试通过谷
  • 寻找另一部智能手机的笛卡尔坐标?

    考虑到我有两部智能手机 A 和 B 如果我拿着智能手机 A 有没有办法确定 B 相对于我自己的位置 所以如果我们有这张图片的情况 它会告诉我 B 位于位置 2 1 利用 WiFi 信号强度来获取位置等创造性方法更受欢迎 我还可以确定两部手机
  • Android 应用无法获取位置权限

    我的清单中有以下内容
  • GPS 坐标(以度为单位)来计算距离

    在iPhone上 我以十进制度数获取用户的位置 例如 纬度39 470920和经度 0 373192 也就是A点 我需要用另一个 GPS 坐标 同样以十进制表示 B 点创建一条线 然后 计算从 A 到 B 的线与另一个点 C 之间的距离 垂
  • 如何知道jar文件是否已经在运行?

    经过谷歌研究后 我找到了很好的答案 例如 1 using jps or jps l让 jars 在 JVM 下运行 这个答案可以 但是如果用户根本没有安装java并且我使用例如 bat文件和带有java JRE的文件夹运行我的jar 另外
  • 谷歌地图定位是如何工作的?

    我的问题是谷歌地图或移动 GPS 如何找到我的当前位置 读完本文后我的高层次理解article http www physics org article questions asp id 55就是 GPS接收器通过这些卫星获取位置坐标 该位
  • iPhone 网络应用程序可以获取 GPS 位置吗?

    有没有一种简单的方法来设计一个网站来促进iphone用户提供gps网站坐标 我想知道表单字段是否有命名约定 例如 让用户以自动方式输入 我正在考虑建立一个基于位置的网站 并希望为 iPhone 和其他移动用户 量身定制 我意识到 iPhon
  • 向 tk103 GPS 跟踪器发送命令

    我正在使用 php 开发实时 GPS 跟踪器 Web 应用程序 跟踪器参考号是tk103 我可以从跟踪器接收信息并将其存储到数据库中 设备的 GPRS 模式已启用 我的问题是 如何使用 php ini 将命令从服务器发送到设备 提前致谢 这

随机推荐

  • ubuntu下访问串口

    前言 最近准备将windows上自动瞄准的程序移植到linux xff0c 第一步准备调试一下ubuntu下的串口 在网上搜到一个串口库 xff0c 于是就拿来调用 xff0c 最后调试成功 过程如下 xff1a 过程 1 下载Serial
  • 热备笔记实验

    早上突然断电 本来笔记本的插头就忘记插了 xff0c 电池没用多久就熄火 最纳闷的是接入电源后本机数据库竟然挂掉了 xff0c 嘿嘿 xff0c 正好试一试前几天应用的热备回复 以下是我的全程 C Documents and Setting
  • Android学习之AIDL添加Service权限

    参考 Android开发艺术探索 xff0c 书中提供了两种方法 第一种方法 xff1a 在onBind中验证 在服务端的AndroidManifest添加自定义权限 lt permission android name 61 span c
  • ADRC(自抗扰控制器)技术附Matlab代码框架

    自抗扰控制器 Auto Active Disturbances Rejec ion Controller ADRC 是韩京清学者提出的 xff0c 是一种继PID控制器后的一种新型的实用的控制技术 它不是一种独立的技术 xff0c 可以理解
  • git视频及对初学者的学习建议

    http herry2013git blog 163 com blog static 21956801120144810133569 http herry2013git blog 163 com blog static 2195680112
  • 迷你光流使用说明

    为了让你有兴趣往下学习 xff0c 先上个定点悬停效果视频给你欣赏一下吧 xff01 点击打开视频链接 首先 xff0c 简单介绍一下我使用的这款光流传感器 长宽高 xff1a 14x11x5mm xff0c 重量约0 6克 xff0c 工
  • Handler的使用方法(一)

    想花点时间谈谈Handler的使用方法 xff0c 是应为Handler的使用涉及到了线程类的使用 xff0c 也是在程序中用到了线程 xff0c 关于线程 xff0c 是个很重要的概念 xff0c 因为以后的嵌入式系统的应用开发往往在程序
  • STM32控制APM飞控(二)MAVLINK源码集成到stm32工程中

    MAVLINK协议源码集成到32工程中 一 MAVLINK代码转化为C语言源码文件 主要根据 http www cnblogs com lovechen p 5801679 html 作者 恒久力行 的方式 xff0c 我进行归纳简要说明
  • STM32控制APM飞控(三)MAVLINK整合并适配stm32串口的收发

    目录 stm32底层串口代码更改能收发MAVLINK协议包 一 在上一次移植好的工程基础上进行如下改动
  • STM32控制APM飞控(五)MAVLINK的C源码的解释及MAVLINK心跳包

    MAVLINK的C源码的解释及MAVLINK心跳包 一 MAVLINK转化成C源码后的文件及文件夹解释 用pathon2 7将从github官网下载下来的MAVLINK源码转换成c语言源码的文件夹如图 xff1a 解释 xff1a a xf
  • (一) 概述(概念、组件、架构、适用场景) | 普罗米修斯(Prometheus)

    什么是普罗米修斯 xff1f Prometheus是一个开源系统监控和警报工具包 xff0c 最初在 SoundCloud构建 自 2012 年成立以来 xff0c 许多公司和组织都采用了 Prometheus xff0c 该项目拥有非常活
  • 多值依赖

    多值依赖 xff1a 比如 xff1a 学校中某一门课程由多个教员讲授 xff0c 他们使用相同的一套参考书 每个教员可以讲授多门课程 xff0c 每种参考书可以供多门课程使用 我们可以用一个非规范化的关系来表示教员T 课程C 和参考书B
  • Docker启动Mysql问题汇总

    最近在学习Docker技术 xff0c 遇到了不少问题 xff0c 记录分享一下 xff0c 感觉有用的可以参考一下 xff1b 1 Docker使用Mysql docker run d v opt data mysql02 var lib
  • 静态库和动态库/文件描述符与文件指针/文件操作/重定向

    c语言阶段学习文件操作复习 1 打开文件 FILE fopen const char path const char mode path xff1a 需要打开的文件路径 xff0c 可以是绝对路径 xff0c 也可以是相对路径 mode x
  • 一种可行的STM32F103外设RTC使用方法

    前言 最近做的项目需要用RTC功能 xff0c 记录掉上电时间 然后就开始琢磨STM32的RTC 在使用的过程中出现各种问题 搞的很是头痛 几经折腾 xff0c 终于弄出一种稳定的使用方法 刚开始最大的问题就是掉电后时钟不走 xff0c 代
  • 路径规划算法初探

    前言 xff1a 真实世界中人类的路径规划是对记忆信息和实时感知信息综合分析的过程 xff0c 在虚拟技术中属于行为控制层级的技术 一 xff0c 机器人路径规划分类 xff1a 1 全局路径规划 xff08 环境完全已知 xff09 2
  • docker容器的备份和恢复

    将容器保存为镜像 root 64 1 0001 docker ps a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES a40d46499c3a gitlab gitlab ce
  • 无名创新飞控开源地面站软件NGroundStation源码发布说明

    无名创新飞控开源地面站 NGroundStation 一 地面站开源初衷与下载链接 xff1a 无名创新飞控开源飞控地面站是无名小哥为广大自研飞控开发者 电子发烧友们专门开发的一款多功能上位机软件 xff0c 地面站功能涵盖 xff1a 飞
  • (枪版非官方正式发布)2020 年TI 杯大学生电子设计竞赛——绕障飞行器(D 题)

    原文档下载链接如下 xff1a 链接 xff1a https pan baidu com s 1bI0rW8hj7DJIx5N8qaZ wQ 提取码 xff1a 2zvx 虽然是非官方渠道 xff0c 但是题目可信度非常之高 xff0c 基
  • 无名创新开源飞控利用GPS数据航向对准开源代码

    无名创新开源飞控利用GPS数据航向对准开源代码 xff1a define acc sync cnt 5 void GPS Azimuth Update Method1 uint8 t flag if flag 61 61 0 return