PX4无人机飞控开发——第4篇:室内定点之光流二
PX4无人机飞控开发——第4篇:室内定点之光流二
大家好我是Jones,写博客记录一下工作的痕迹,同时也对工作做一个总结,才疏学浅,难免会有很多纰漏,还请大家批评指正!
PX4无人机飞控开发系列
第1篇:仿真工具介绍
第2篇:02RTL返航模式优化
第3篇:室内定点之光流一:PID位置控制
第4篇:室内定点之光流二:EKF融合
第5篇:GAZEBO仿真
文章目录
- PX4无人机飞控开发——第4篇:室内定点之光流二
- PX4无人机飞控开发系列
- 前言
- 一、模块对比
- 省略,见第3篇:室内定点之光流一
- 二、方案实现
- 1.激光雷达定高
- 2.读取光流数据
- 三、飞行测试
- 总结
前言
无人机在室外飞行时通常我们采用GPS定位,一旦我们飞入室内等GPS有遮挡的环境时,GPS信号就受到了干扰,更新位置会失效。我们想办法让无人机在室内也能够“撒手”飞行,我们今天使用光流的采集无人机移动的速度,进行位移估算,通过速度和位移计算从而达到定点。
一、模块对比
省略,见第3篇:室内定点之光流一
二、方案实现
1.激光雷达定高
省略,见第3篇:室内定点之光流一
2.读取光流数据
订阅TF高度信息:
...
struct distance_sensor_s tfmini;
orb_copy(ORB_ID(distance_sensor), _distance_sensor_sub , &tfmini);...
速度计算方法:(1.0*flow_dat.y/0.04)*100 1.0为高度,单位m; 0.04为间隔时间,单位s,100是m->cm的转换:
...
speed_x = flow_x * 2500.0f * ((int)tfmini.current_distance < 6 ? ((int)tfmini.current_distance <4 ? 2 : 2.5):3);//m-->cm //1.0f*flow_x/(integration_timespan* 1e-6f); 2mspeed_y = flow_y * 2500.0f * ((int)tfmini.current_distance < 6 ? ((int)tfmini.current_distance <4 ? 2 : 2.5):3);//m-->cm //1.0f*flow_y/(integration_timespan* 1e-6f); 2m//对速度进行限幅speed_x = LIMIT(speed_x, -62.0f, 62.0f);//速度限制在-62cm/s到62cm/s之间speed_y = LIMIT(speed_y, -62.0f, 62.0f);sum_flow_x += speed_x*0.04f; //位移 cm //speed_x *(integration_timespan *1e-6f);sum_flow_y += speed_y*0.04f; //位移 cm //speed_y *(integration_timespan *1e-6f);if(sum_flow_x > POS_CONTROL_LIMIT_MAX|| sum_flow_x < POS_CONTROL_LIMIT_MIN || qual < 245)sum_flow_x = 0.0f;
if(sum_flow_y > POS_CONTROL_LIMIT_MAX|| sum_flow_y < POS_CONTROL_LIMIT_MIN || qual < 245)sum_flow_y = 0.0f;...
UORB发布光流消息
...
struct optical_flow_s flow;
memset(&flow, 0, sizeof(flow));flow.timestamp = hrt_absolute_time();
flow.pixel_flow_x_integral = -(float)pixel_flow_y_integral/10000;//对齐方向
flow.pixel_flow_y_integral = (float)pixel_flow_x_integral/10000;if(flow_pub == NULL){flow_pub = orb_advertise(ORB_ID(optical_flow), &flow);}
else{orb_publish(ORB_ID(optical_flow), flow_pub, &flow);}
..
接着我们在参数设置里将FLOW_EN = 1使能,我们就可以用到EKF融合的位置,进行室内定点飞行了,“撒手”解放双手,提高飞行的安全。且在遥控器断链后依然可以安全进行降落。
三、飞行测试
1.室内光流定点测试
点击跳转->B站:PX4无人机飞控开发_03室内光流定点测试
2.室内遥控器断链自动降落测试
点击跳转->B站:PX4无人机飞控开发_04室内光流定点遥控器断链
3.室内光流定点,系留线对光流的影响测试
点击跳转->B站:PX4无人机飞控开发_05测试线缆对光流定点的影响
总结
第3篇:室内定点之光流一,采用了位置误差作为反馈值进行了位置PID闭环处理,测试定点效果还可以,但出现扰动,无人机位置出现偏移后,该方法将会把新的位置作为基准进行闭环,这样无人机将不会回到最初想设定的位置,存在此不足。
该篇章介绍光流融合的方式进行室内定点,我们采用了取巧的方式,将优象光流数据替换了PX4FLOW是光流数据,EKF融合直接订阅即可,不用修改EKF的融合代码,用最小的修改实现最大的飞行需求,且避免bug,并附上飞行视频,那我们下期见啦!
PX4无人机飞控开发——第4篇:室内定点之光流二相关推荐
- PX4无人机飞控开发——第1篇:仿真工具介绍
PX4无人机飞控开发--第1篇:仿真工具介绍 大家好我是Jones,写博客记录一下工作的痕迹,同时也对工作做一个总结,才疏学浅,难免会有很多纰漏,还请大家批评指正! PX4无人机飞控开发系列 第1篇: ...
- 无人机飞控开发平台培训理论课程——飞行原理
四旋翼无人机组成 机架属于承载系统 电池.螺旋桨和电机控制属于动力系统 姿态采集.姿态解算和姿态控制属于飞控 操控系统(遥控器)如果是自动巡航或者自动寻迹则操控系统非必须 课程体系 动力原理--螺旋桨 ...
- 无人机飞控开发平台培训理论课程——MSP430最小系统
一.MSP430简介 ·MSP430系列单片机是德州仪器(TI)生产的16位超低功耗.精简指令集(RISC)的混合信号处理器. ·之所以成为混合信号处理器,是由于其针对实际应用需求,将多个不同功能的模 ...
- 无人机飞控技术-市场现状及未来发展趋势
本文研究全球及中国市场无人机飞控技术现状及未来发展趋势,侧重分析全球及中国市场的主要企业,同时对比北美.欧洲.中国.日本.东南亚和印度等地区的现状及未来发展趋势. 根据QYR(恒州博智)的统计及预测, ...
- PX4无人机ROS下仿真开发
PX4无人机ROS下仿真开发 Overview Simulation Px4_control Slam Map Image_process Planning Volans 项目地址volans 注:有 ...
- 《多旋翼无人飞行器嵌入式飞控开发指南》里基于FreeRTOS的无人机软件框架
<多旋翼无人飞行器嵌入式飞控开发指南>里基于FreeRTOS的无人机软件框架
- Ubuntu 下无人机飞控 ArduPilot 开发环境搭建
Ubuntu 下无人机飞控 ArduPilot 开发环境搭建 Ubuntu 下无人机飞控 ArduPilot 开发环境搭建 操作流程 升级安装包 安装 git 克隆代码 安装交叉编译工具链 将编译器添 ...
- QT无人机飞控地面站软件开发
最近正在进行一个QT无人机飞控地面站软件开发,由于疫情原因,项目进度执行比较慢.涉及要的技术主要包括:百度地图SDK接口结合Qt WebEngine使用,串口通信技术,Mysql数据库技术等.
- 6款常见的无人机仿真开发平台(附超详细特点功能对比)
随着无人机与无人集群的快速发展,开发者对于无人机系统仿真测试环境的需求也日渐显现.本文整理了几款常见的无人机仿真平台,旨在为开发者提供一款更为易用.通用且真实可靠的平台. 无人机与无人集群的研制应用快 ...
最新文章
- J.R.R.托尔金笔下的中土世界与《斗破苍穹》项目实践:从世界观解构入手场景设计
- LeetCode:面试题40. 最小的k个数
- 嵌入式电路设计(入门)
- Linux命令解释之tail
- linux Socket send与recv函数详解
- 阶段1 语言基础+高级_1-3-Java语言高级_05-异常与多线程_第3节 线程同步机制_8_解决线程安全问题_Lock锁...
- 世界顶级黑市拳赛内幕
- vhdl8三种方式实现38译码器
- android ios emoji表情,iOS和Android的Emoji表情同步方案
- 建立U盘免疫病毒文件
- Linux下常用软件大比拼
- OpenCV学习之多通道图像的混合
- 【PAT乙级】PAT (Basic Level) Practice (中文)训练记录
- Linux实战教学笔记53:开源虚拟化KVM(一)搭建部署与概述
- 拔丝芋头的Java学习日记--Day6
- for what? so what?
- 硬件实现声音信号压缩
- 2020-10-29matlab中如何将字符串和数字一起输出到Excel中
- Python+Tensorflow+Opencv人脸识别(任意数量人脸)
- 如何找到IEEE里面的论文模板
热门文章
- android aspectj 参数,在Android项目中使用AspectJ
- Python获取Windows管理员权限
- 使用 Navicat 和强化AI的查询
- #今日论文推荐# 多边形战士模型!微软提出19亿参数的超大通用模型BEIT-3,刷榜多个CV和多模态任务
- qq测试常用软件,测速软件有哪些_测速软件实用推荐
- Netscape 发明了 JavaScript
- JSObject.getWindow()方法找不到问题( 类 netscape.javascript.JSObject.getWindow)
- java/php/net/python物流配送中心管理系统设计
- 拉格朗日中值定理 积分中值定理 导数定义:
- Fabric链码开发——富查询