[源码解读]position_estimator_inav_main解读(如何启动光流)

2023-05-16

阅读工具:source insight
技术交流:zinghd@163.com ,757012902@qq.com
源码版本:Firmware(原生固件)

如有需求可以索要word版

这篇博客彻底解决了我无法切换模式的问题,但是还存在几个问题

  1. 目前还是没有看到定点效果,有可能是磁场干扰(我实验室有几个磁悬浮装置。。。)

也有可能是需要启动LPE

  1. 没有发现光流与GPS数据融合,据说光流在此函数中是辅助GPS的,可有可无,但是我看程序的光流和GSP数据是独立提供的(希望大神指点

分析问题的思路(我一直认为思路很重要)

目的:我希望实现光流定点效果

问题:无法切换posctl飞行状态(可能是程序问题,也可能是光流数据问题)

思路:位置估计函数最终一组数据给位置控制,已知GPS可以实现定点,可以认为位置控制部分是对的,也就是说控制算法不用管只需要检查光流部分是否正确。 那么我只需要找到哪些数据可以由光流传感器提供,并检查其数值是否正确。
这里写图片描述
这是位置估计最后产生的值,我们倒过来往前找,can_estimate_xy
这里写图片描述
bool can_estimate_xy = (eph < max_eph_epv) || use_gps_xy || use_flow || use_vision_xy || use_mocap;可以看到can_estimate_xy是与use_flow光流有关的
接下来两个与GPS有关跳过,看x_est, y_est,z_set
这里写图片描述
Lidar与flow提供了accel_bias_corr[3]数组的3个数
这里写图片描述
accel_bias_corr[3]数组的3个数传递给了acc_bias[3];
5
acc_bias[3]最终传递给 acc[3];
6

7

8
这写着惯性预测滤波,第一次给定了x_set[2], y_set[2], z_set[2]数组的值,Z轴的值是lidar提供,光流只提供水平值
9
预测结束,马上就进行了第二次滤波,当输入是0时z_set[0],z_set[1]都被赋值,lidar提供这两个数据
10

11

12
当输入时1时,这个函数只给x_est[1], y_est[1]赋值,所以光流第2次滤波只改修改了这两个值。
综上所述,光流加上雷达提供了x_est[2], y_est[2], z_est[2],所有数据,但是为什么有这么多滤波,暂时不知道。
att.yaw,其实就是vehicle_attitude_s.yaw
13

14
通过订阅来的,那么是谁发布的呢?
Attitude_estimator_q_main.cpp (firmware\src\modules\attitude_estimator_q):
orb_publish_auto
(ORB_ID(vehicle_attitude), &_att_pub, &att, &att_inst,ORB_PRIO_HIGH);
姿态估计发布的(找topic的发布者好难,有谁有简单的方法教我一下吧)
dist_bottom_valid, lidar提供
15
eph(水平定位精度),epv(垂直定位精度)常数
16
到这所有数据就分析完了 总结一下,光流能提供所有水平有关的值,lidar提供垂直方向的值,为什么要分析lidar?
17
看见没 想用光流 第一个条件就是lidar是否有效,在位置估计里雷达就是距离传感器,对应的实际就是超声波传感器,(实测lidar的数据都是超声波提供的)
18
所以启用光流的核心问题就是如何启动lidar_valid
19
20
21
可以看出lidar_valid与3个数据有关params.enable_lidar_alt_est,
lidar.current_distance > lidar.min_distance,lidar.current_distance < lidar.max_distance
其实我们已知光流是有读数,那么后两个判读肯定是能成立的(当前高度大于30cm,小于5m)
主要就是params.enable_lidar_alt_est(为了保险我在程序里加上标志位进行了判读,确实就是第一个条件一直不成立)
22
找到这个赋值函数,注意这个函数是把h的值给P,(不是把p给h)!!!!!!
23
24
25里把这个0改成1就启动了
在函数里找到了,想到这种设置应该在地面站也有,于是去QGC找果然
26

27
在这里改应该也是一样的,亲测现在可以自由切换到Posctl(定点模式了)虽然还是不能实现定点功能,但是解决了第一个问题还是很开心。
http://blog.csdn.net/czyv587/article/details/51922787 结合使用
最新的源码 这些参数好像不见了(2017/1/6)

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

[源码解读]position_estimator_inav_main解读(如何启动光流) 的相关文章

  • ubuntu查看软件安装路径

    ubuntu怎么查看软件安装位置在哪 服务器 亿速云 1 执行程序查看 在终端使用type执行软件程序查看 type google chrome 2 通过进程查看对应的软件程序 在终端使用以下命令查看所有进程名 ps e 再使用以下过滤命令
  • Ubuntu中wine程序安装windows软件中文乱码问题

    Ubuntu中wine程序安装windows软件中文乱码如何解决 1 安装wine sudo apt install wine 2 安装中文程序方法 下载exe文件在命令行执行 wine 文件名 exe 3 中文乱码原因分析 查看 home
  • ubuntu通过Trickle,wondershaper限制网速(上传下载速度)

    原文连接 xff1a https www ngui cc 51cto show 727932 html action 61 onClick 在Linux下没有Windows使用360那样去限制某个软件的速度 但是通过Trickle可以设置某
  • Ubuntu 16.04 重置密码(忘记密码)

    Ubuntu 16 04 重置密码 xff08 忘记密码 xff09 http blog topspeedsnail com archives 6042 忘记了你的Ubuntu用户密码 xff0c 登录不了系统 xff1b 不要紧 xff0
  • ubuntu下socket通信

    第一部分为C 43 43 实现 xff0c 第二部分为python实现 第一部分 该socket 的功能是在客户端输入了两个浮点数组成的字符串 xff0c 在服务端接受后将其转换为浮点数输出 xff0c 统一时刻只能有一个客户端连接 服务端
  • 关于螺旋桨的计算

    关于螺旋桨的计算 转载 http blog sina com cn s blog 4c2264b80100086z html 发给大家一些关与螺旋桨的计算公式 2007 02 07 13 08 46 功率 xff08 W xff09 直径
  • PID参数整定快速入门(调节器参数整定方法)

    转载地址 http yunrun com cn tech 440 html PID 参数整定方法很多 xff0c 常见的工程整定方法有临界比例度法 衰减曲线法和经验法 云南昌晖仪表制造有限公司以图文形式介绍以临界比例度法和衰减曲线法整定调节
  • STM8 CAN总线的IdMask模式的讲解

    http www stmcu org article id 328212 STM8 CAN总线的IdMask模式的讲解 发布时间 xff1a 2016 08 27 来源 xff1a ST社区 标签 xff1a STM8 CAN总线 IdMa
  • gitlab使用http方式提交代码不输入密码

    gitlab使用http方式提交代码不输入密码 记得这个问题很久之前就折腾过 xff0c 今天从gitlab上克隆一个仓库 xff0c 第一时间肯定是想着使用ssh公私钥进行验证 xff0c 这样以后也不需要再输入密码 xff0c 可是公司
  • STM32运行时程序卡在B.处

    STM32运行时程序卡在B 处的问题处理的一天多 xff0c 终于找到原因 1 xff0c 表现 我所使用的芯片是stm32f427vit6 xff0c stm32f4系列芯片外设多数都相同 xff0c 407 xff0c 405的 用户也
  • Keil 查看文件路径的方法

    目录 方法一 xff1a 方法二 xff1a 方法一 xff1a 在工程种选择任意一个文件 xff0c 然后点击右键 xff0c 选择 34 Option for File 34 就可以看到这个文件的路径了 方法二 xff1a 在文件框种右
  • Linux下CMake简明教程

    CMake是开源 跨平台的构建工具 xff0c 可以让我们通过编写简单的配置文件去生成本地的Makefile xff0c 这个配置文件是独立于运行平台和编译器的 xff0c 这样就不用亲自去编写Makefile了 xff0c 而且配置文件可
  • unity3d TextMeshPro使用中文字体(秒懂)

    1 打开C Windows Fonts 目录选择中文字体 2 将选中的字体拖拽到Unity编辑器中 3 将已下这段文字保存至zh cn txt文件 注意编码格式为Unicode xff0c 不然会出现乱码 并且拖入Unity编辑器 的一是了
  • Windows下cmd命令行远程传输sftp命令

    sftp 用户名 64 ip地址
  • laravel 500 Server Error,完美解决

    在安装laravel项目后 xff0c 首次打开laravel出现 解决方案 xff1a 1 打开配置文件 laravel config app php 3 找到 39 debug 39 项 设置为 true 4 刷新网页 抛出运行异常 x
  • ubuntu下C++两种方法解析json

    第一种 用jsoncpp xff0c 不过本人目前不知道如何在clion里面使用 xff0c 只知道在命令行g 43 43 使用 xff0c 哪位知道如何在clion里使用可以告诉我 xff0c 谢谢 如下步骤本人操作过两边 xff0c 所
  • unity3d鼠标控制物体 移动 旋转 缩放

    需求 xff1a 制作一个鼠标中键移动缩放和鼠标右键旋转的功能 xff08 鼠标右键旋转可以自行改成鼠标左键旋转 xff09 效果图 xff1a 1 新建一个名为Target的立方体cube 2 新建一个材质球 Yellow颜色的并挂载到T
  • Centos Apache2设置禁止浏览目录,绝对生效。

    1 打开httpd配置文件 vi etc httpd conf httpd conf 2 找到 Options Indexes FollowSymLinks 注释掉 xff0c 并在下面添加一行 Options None Options I
  • Ubuntu查看某端口是否开放

    1 例如查看80端口是否开放 xff0c 输入 lsof i 端口号 xff0c 如果没有信息出现则说明该端口还未开放 lsof i 80 telnet 192 168 0 1 80 2 也可以通过以下命令 xff0c 查看所有开放的端口
  • 集群和分布式的区别,还不理解的你打我!!!

    1 老师布置作业 xff0c 让你抄10遍白居易的 长恨歌 xff0c 抄一份需要5分钟 xff0c 10份需要50分钟 xff0c 这时你觉得要是有9个人帮我抄另外9份 xff0c 那你5分钟就能交作业了 xff0c 这就是集群处理 2

随机推荐

  • windows下查找并关闭端口

    1 查找端口 8080 gt netstat ano findstr 8080 找到8080端口对应的pid 19060 2 关闭8080端口 gt taskkill f pid 19060
  • Unity3D 制作调色板

    一个很好用的调色板 源码 xff1a http websol cn 2021 01 27 unity e8 b0 83 e8 89 b2 e6 9d bf e6 ba 90 e7 a0 81
  • vs2017生成C++/C语言的DLL以及调用 极简讲解 秒懂

    为了尽可能缩减文字描述 xff0c 减少阅读疲劳 xff0c 就直接上图了 1 VS2017下C 43 43 创建dll动态链接库 2 VS2017下C语言代码创建dll动态链接库 xff08 导出方式较于C 43 43 有点差别 xff0
  • Unity页面滑动Slider

    第一步 xff1a 创建三个Image xff08 或者多个都行 xff09 xff0c 并且设置Canvas的CanvasScaler脚本组件UI Scale Mode和Reference Resolution的值 设置Canvas 第二
  • linux的TCP连接数量真的不能超过65535个吗?

    原文链接 xff1a https blog csdn net daocaokafei article details 115410761 首先 xff0c 问题中描述的65535个连接指的是客户端连接数的限制 在tcp应用中 xff0c s
  • 关于网页实现串口或者TCP通讯的说明

    概述 最近经常有网页联系我 xff0c 反馈为什么他按我说的方法 xff0c 写的HTML代码 xff0c 无法在chrome网页中运行 这里我统一做一个解释 xff0c 我发现好多网页并没有理解我的意思 其实 xff0c 要实现在HTML
  • Intel RealSense(实感技术)概览

    Intel RealSense 实感技术 概览 1 Reply 版权声明 xff1a 本文系本站作者自己翻译整理 xff0c 欢迎转载 xff0c 但转载请以超链接形式注明文章来源 planckscale info 作者信息和本声明 xff
  • postman安装使用教程

    无聊的夜晚 xff0c 没有酒喝 xff0c 也没妹子陪 xff0c 闲来没事研究下postman xff0c 之前接触过有点 xff0c 还不错的工具 先从最基本的开始 postman是谷歌的一款非常好用的工具 xff0c 可用来做手工的
  • 接口测试 requests的身份认证方式

    requests提供多种身份认证方式 xff0c 包括基本身份认证 netrc 认证 摘要式身份认证 OAuth 1 认证 OAuth 2 与 OpenID 连接认证 自定义认证 这些认证方式的应用场景是什么呢 xff1f 身份认证的定义
  • 使用libcurl提交POST请求

    最近在学习libcurl xff0c 并利用它提交POST请求 xff0c 可是返回的响应总是无从验证该次POST请求是否成功提交了 1 先看下根据firebug提交的一次成功的请求 xff0c 这里以login我喜欢上的xiami为例 x
  • TX2安装Realsense -L515相机并在ros下 运行yolo 总结(3)

    前面提到可以移植yolov4到平台上 这里给出几个参考链接 xff0c 重在学习移植方法 xff1a 首先是大佬的 xff1a https span class token operator span span class token op
  • VS2013 配置使用微软开源sdk: C++ REST SDK 及运行官方的 JSON例子

    转至 https blog csdn net sdsabc2000 article details 53706632 utm medium 61 distribute pc relevant none task blog BlogComme
  • Python爬虫学习4:requests.post模拟登录豆瓣(包括获取验证码)

    1 在豆瓣登录网页尝试登录后打开开发者工具 xff0c 可以查找后去Headers和Form Data信息 2 实现代码 import requests import html5lib import re from bs4 import B
  • STM32 | STM32CubeMX基础之USART

    一 USART框图 功能引脚 TX xff1a 发送引脚 xff0c Usart1一般对应PA9 RX xff1a 接收引脚 Usart1一般对应PA10 SW RX xff1a 数据接收引脚 xff0c 只用于单线和智能卡模式 xff0c
  • Android CMake 编译传递宏定义参数

    在做 C 43 43 需求开发时经常会遇到用宏定义来区分不同版本 不同平台的功能 xff0c 如下所示 xff1a ifdef DEBUG 调用 debug 版本方法 elif RELEASE 调用 release 版本方法 endif 在
  • FreeRTOS高级篇2---FreeRTOS任务创建分析

    在FreeRTOS基础系列 FreeRTOS系列第10篇 FreeRTOS任务创建和删除 中介绍了任务创建API函数xTaskCreate xff0c 我们这里先回顾一下这个函数的声明 xff1a BaseType t xTaskCreat
  • 调用百度OCR API实现身份证文字识别

    调用百度OCR API实现身份证文字识别 通过调用百度OCR的两个接口 xff0c 实现身份证图像识别 首先要在百度云注册账号 xff0c 并创建应用 xff0c 以获取AppID xff0c API Key xff0c Secret Ke
  • 一个基于TCP/IP的小项目,实现广播消息的功能。(超详细版)

    1 结合现状 功能分析 该功能基于上个项目的改进 xff0c 主要是通过对服务器端代码的修改 xff0c 以及对客户端作少许修改 xff0c 实现开启多客户端时 xff0c 一个客户端发送消息 xff0c 达到对所有客户端广播的效果 可参考
  • 中断方式和查询方式的区别?

    中断方式 xff1a 是事件触发的 xff0c 换訖只要有事件产生都会进入中断 組取得最优运行 xff0c 因此响应更快 xff0c 及时 查询方式 xff1a 就是在主函数里面不停循环 xff0c 查询端C 状态 xff0c 明显其弊端在
  • [源码解读]position_estimator_inav_main解读(如何启动光流)

    阅读工具 xff1a source insight 技术交流 xff1a zinghd 64 163 com xff0c 757012902 64 qq com 源码版本 xff1a Firmware xff08 原生固件 xff09 如有