
四轴飞行器
文章平均质量分 66
虾米一代
。。。
展开
-
无人机开发常用网站
PX4开发官网:https://dev.px4.io/en/ 源码:https://github.com/PX4/Firmwareardupilot开发官网:http://ardupilot.org/dev/ 源码:https://github.com/ArduPilot/ardupilot 论坛:http://discuss.ardupilot.org/QGC官网:https://docs.原创 2017-07-12 10:18:02 · 7608 阅读 · 0 评论 -
调试记录(一)pixhawk参数设置的问题
一、光流模式进入不了1. 网上下载的固件,进入定点模式,qgc显示“拒绝”。烧写自己编译的固件定高和定点都“拒绝”并且按照(源码解读)position_estimator_inav_main解读(如何启动光流)的方法(1)先通过飞控看有无光流数据,如果没有进入第(2)步(2)qgc连接光流模块,查看光流本身是否正常,如果光流模块正常,则说明系统没有允许进入光流原创 2016-07-16 10:11:40 · 13063 阅读 · 4 评论 -
pixhawk mc_pos_control.cpp思路整理
削去旁支(细节请参考pixhawk mc_pos_control.cpp源码解读),位置控制主要流程如下1.PID参数param_get(_params_handles.xy_p, &v);_params.pos_p(0) = v;_params.pos_p(1) = v;param_get(_params_handles.z_p, &v);_params.pos_p(2)原创 2016-07-11 10:09:15 · 6674 阅读 · 13 评论 -
pixhawk position_estimator_inav.cpp思路整理及数据流
写在前面:这篇blog主要参考pixhawk的高度解算算法解读,并且加以扩展,扩展到其他传感器,其实里面处理好多只是记录了流程,至于里面实际物理意义并不是很清楚,也希望大牛能够指导一下。概述:整个算法的核心思想是由地理坐标系下的加速度通过积分,来获得速度、位置信息;经过2次修正产生可利用的信息,第一次是利用传感器计算修正系数产生加速度的偏差修正加速度,第二次是利用修正系数修正位置;最后原创 2016-07-11 21:37:10 · 8377 阅读 · 3 评论 -
pixhawk position_estimator_inav.cpp再分析
此篇blog前已经分析inav的数据处理流程(详情请看pixhawk position_estimator_inav.cpp思路整理及数据流),但是没有仔细分析里面的程序思想,感觉里面还是有很多地方值得咀嚼,看懂部分,还有些地方不懂,先记下了。1.矫正思想---类卡尔曼此处权值的求取的流程是光流float flow_q = flow.quality / 255.原创 2016-09-12 15:34:17 · 4327 阅读 · 4 评论 -
pixhawk Lacal_position_estimator数据流
一、Lacal_position_estimator与position_estimator_inav是并列关系,用于位置估计具体选择过程应该是这样的,还没测验,仅供参考1.cmake将Lacal_position_estimator编译进.px42.rcS中启动Lacal_position_estimator,令SYS_MC_EST_GROUP=1,或者将判断注释掉原创 2016-07-03 15:13:10 · 5685 阅读 · 5 评论 -
卡尔曼算法笔记---思想和实际应用物理含义的理解
此片blog的目的是理解卡尔曼算法的思想和实际应用的物理含义,想法很好,却只能理解冰山一角,先记下这一角另本blog参考卡尔曼滤波 -- 从推导到应用和徐亦达卡尔曼推导视频首先认识卡尔曼算法在数学领域是什么位置:处理线性高斯模型的算法原创 2016-07-29 10:27:19 · 20911 阅读 · 3 评论 -
pixhawk uORB初步分析
uORB初步分析,分析如何使用uORB,具体细节暂时没有探讨。原创 2016-05-11 10:20:16 · 5559 阅读 · 0 评论 -
linux操作入门---配置px4环境/安装eclipse
笔者基本上在2016.06第一次实实在在接触linux,为的是linux下编译px4能更快些,然而摸索一段时间下在牛叔的帮助下仍然没有安装成功。时至至今终于独立下载配置好了px4,下载安装eclipse和qgc。对于没有接触过linux安装这些东西的同学确实有点困难,为此记录下笔者的linux的入门方法和安装流程以便其他没有经验的同学参考^_^。1.首先确实要下决心折腾这种东西,因为linux原创 2016-11-20 16:58:17 · 4635 阅读 · 0 评论 -
pixhawk commander.cpp的飞行模式切换解读
这篇blog大部分是参考(Pixhawk原生固件解读)飞行模式,控制模式的思路,但是笔者没能很好的理解,重新整理一下流程是:(1)sensors.cpp发布ORB_ID(manual_control_setpoint)(2)commander.cpp里set_main_state_rc()函数里的main_state_transition()函数根据遥控信息和飞行器状态status原创 2016-06-28 23:00:43 · 10003 阅读 · 7 评论 -
pixhawk _control_mode如何产生的
此篇blog记录下从遥控信号到_control_mode的信号流程,过程有些复杂,复制大片代码估计不能很好的显示出程序的逻辑,所以只抽取了部分程序代表整体程序,想要整体的了解,还需要读者对照着下面的流程图和程序看看了。为什么这么麻烦?笔者猜想:是为了飞行器在飞行状态不好(某些模块不能正常工作)的情况下,如何选择最好的飞行来保证安全和减小财产损失。commander的部分逻辑也可以在以下流程图中体现原创 2016-08-04 14:54:28 · 2043 阅读 · 0 评论 -
pixhawk commander--navigator--modules之间的联系
1.commander.cpp中通过将遥控信息处理发布orb_publish(ORB_ID(vehicle_status), status_pub, &status);处理过程参考pixhawk _control_mode如何产生的2.navigator_main.cpp中voidNavigator::vehicle_status_update(){ if (orb_co原创 2016-08-04 21:54:50 · 5086 阅读 · 1 评论 -
Docs » Learning the ArduPilot Codebase » EKF » Extended Kalman Filter Navigation Overview and Tuning
原文:http://ardupilot.org/dev/docs/extended-kalman-filter.html#extended-kalman-filter-navigation-overview-and-tuning 本文介绍了由直升机和飞机使用的扩展卡尔曼滤波器(EKF)算法,用于基于速率陀螺仪,加速度计,罗盘(磁力计),GPS,空速和大气压力测量来估计车辆位置,速度和角度方向。 它翻译 2017-10-26 15:01:57 · 1714 阅读 · 0 评论 -
ardupilot如何读取传感器数据
1.setup();loop();由HAL_PX4_Class.cpp可知,g_callbacks->setup();运行一次,g_callbacks->loop();在循环里static int main_loop(int argc, char **argv){ hal.uartA->begin(115200); hal.uartB->begin(38400); hal.原创 2017-08-15 00:08:45 · 5177 阅读 · 1 评论 -
Docs » Learning the ArduPilot Codebase » Library Example Sketches
原文:http://ardupilot.org/dev/docs/learning-ardupilot-the-example-sketches.htmlLibrary Example Sketches为自己探索代码的第一步是为库使用示例草图。按照 arduino 的传统, 我们对大多数库都有示例草图。”草图” 只是一个主程序, 以 cpp 文件的形式编写。 了解 ArduPilot 中翻译 2017-09-10 18:33:08 · 590 阅读 · 0 评论 -
pixhawk px4 commander.cpp
对于复杂的函数,要做的就是看函数的输入是什么、来自哪里,经过处理后得到什么、给谁用,这样就可以把程序逻辑理清(中间的分析就是看函数如何处理的)extern "C" __EXPORT int commander_main(int argc, char *argv[]);argc和argv是commander_main函数的形参,它们是程序的“命令行参数”。agrc(argument count的缩写,原创 2017-08-27 16:07:30 · 4345 阅读 · 1 评论 -
pixhawk ArduPilot_main启动与运行分析
上节分析2个系统启动脚本,一个是ardupilot/mk/PX4/ROMFS/init.d里的rcS,另一个是rc.APM,这个脚本在rcS里得到了调用,也就是说,rcS就是为Nuttx的启动文件。查看rc.APM的最低端,调用ArduPilot_main原创 2016-04-26 20:17:40 · 5300 阅读 · 3 评论 -
pixhawk启动脚本分析
Nuttx系统启动是由ardupilot/mk/PX4/ROMFS/init.d里的rcS和rc.APM完成的。笔者阅读了rcS和rc.APM,该脚本类似C语言,并做了相关注释。主要是一些设备自检,启动各模块,最后启动进入ArduPilot_main,开始运行程序。本节只介绍启动脚本,程序的启动与整体运行下节再分析。原创 2016-04-26 19:50:25 · 6676 阅读 · 6 评论 -
pixhawk px4 spi设备驱动
此篇blog是以nuttx官网介绍为出发点,先分析如何初始化的,再分析如何读取传感器数据的,最后对比了字符型设备操作和spi驱动的实现方式的差别(如有错误还请指正)6.字符型设备所有的结构体和API都在Firmware/Nuttx/nuttx/include/nuttx/fs/fs.h。每个字符设备驱动程序必须实现struct file_operations的实例struc原创 2016-12-22 17:24:20 · 6659 阅读 · 6 评论 -
pixhawk px4 字符型设备驱动
分析字符型设备为什么register/open/read/write怎样与底层驱动代码联系在一起的,为什么需要注册,为什么会有路径,为什么open之后read/write就可以读/写了另:此篇blog是边分析边记录的,难免逻辑会有点乱,但是分析思路应该还算清晰的参考:NuttX Device Drivers也可以参考linux字符型驱动驱动字符型设备所有的结构体和API原创 2016-12-21 12:40:42 · 4028 阅读 · 2 评论 -
pixhawk 从main开始分析传感器数据如何流动起来,以GPS为例
本文以GPS数据为代表,分析数据如何从硬件驱动层慢慢的流到主函数算法应用层(其它传感器数据都类似于GPS数据),内容有点复杂,有些地方可能定位定错了,但也是并列的层,将就的算跑通了传感器数据流动过程。也麻烦看到错误的同学提醒楼主一下,以免误导大家。原创 2016-05-09 17:21:08 · 9442 阅读 · 6 评论 -
pixhawk原生码rcS分析
代码执行流程1. 编译时将cmake/configs/nuttx_px4fmu-v2_default.cmake文件中配置的模块全部编译并烧写到固件中去。2. 地面站的配置会在flash中生成/fs/mtd_params文件,该文件包含了飞行器的各类信息(机架,校准信息,飞行模式等)。3. 启动pixhawk,执行/Firmware/ROMFS/px4fmu_common/init.d/rcS,该文件会读入之前生成的参数文件,进而选择执行哪一个脚本文件。(如选择DJ原创 2016-05-13 17:42:08 · 9207 阅读 · 7 评论 -
Docs » Learning the ArduPilot Codebase » Threading
原文链接:http://ardupilot.org/dev/docs/learning-ardupilot-threading.html 本页介绍如何安排您编写的一些新代码, 以便间歇运行。ThreadingUnderstanding ArduPilot threading 一旦您了解了 ArduPilot 库的基本知识, 您就该了解 ArduPilot 如何处理线程。从 ar翻译 2017-09-05 10:58:09 · 650 阅读 · 0 评论 -
科普“智能导航”--整理自大疆工程师
1.飞行器想要稳定飞行,需要15个状态量:三维角度,三维角度对应的三维速度、三维加速度、三维角速度,三维位置。传感器的测量如下:2.传感器自身的限制:(1)惯性测量元件:会受到温度、制造工艺的限制,产生一些测量的偏差。这类测量的偏差需要比较仔细的算法进行修正,而且往往不能单靠惯性测量元件自己的测量完全消除。(2)地磁指南针:地磁线的强度非常弱,很容易受到干扰。(3)气压原创 2016-09-16 10:00:56 · 4218 阅读 · 1 评论 -
ardupilot & px4 书写自己的app & drivers (一)
此blog应该是连载,先记录下最简单的部分,添加将自己的app&drivers添加进px4和ardupilot系统中。添加px4 app & dirvers新建一个文件夹“my_app”,里面包含CmakeLists.txt和my_app_main.cpp CmakeLists.txt里面的内容px4_add_module( MODULE modules__my_app //用my_原创 2017-09-03 13:04:54 · 2316 阅读 · 5 评论 -
ardupilot & px4 书写自己的app & drivers (二)
新建任务列表任务–打印时间任务列表const AP_Scheduler::Task Copter::scheduler_tasks[] = { ...... SCHED_TASK(my_loop, 2, 90), ......}函数void Copter::my_loop(){ uint32_t timer = micro原创 2017-09-08 00:23:23 · 1976 阅读 · 0 评论 -
pixhawk硬件构架
Phxhawk硬件认识原创 2016-05-12 22:45:22 · 16927 阅读 · 3 评论 -
pixhawk win编译环境搭建
经过笔者亲自试验搭建win编译环境,试验成功,以下为具体步骤、问题和解决方案。其实Linux下编译会快很多,对于后期开发会缩短等待编译的时间,正在尝试搭建Linux编译环境。原创 2016-05-17 10:21:07 · 15385 阅读 · 2 评论 -
pixhawk PX4FMU和PX4IO最底层启动过程分析
首先,大体了解PX4IO 与PX4FMU各自的任务PX4IO(STM32F100)为PIXHAWK 中专用于处理输入输出的部分,输入为支持的各类遥控器(PPM,SPKT/DSM,SBUS), 输出为电调的PWM 驱动信号, 它与PX4FMU(STM32F427)通过串口进行通信PX4FMU :各种传感器数据读取、姿态解算、PWM控制量的计算、与PX4IO通信进入主题PX原创 2016-05-18 16:46:57 · 20017 阅读 · 12 评论 -
pixhawk 姿态与控制部分的记录
此篇是把之前看到的资料总结整理一遍,大部分是搬砖,也加入了自己的一点思考,写的过程中晕了好多次,先大体记录下来,肯定有错误,日后再改正吧。 关于pixhawk程序执行流程,依然还没有实际运行调试过程序,只是逻辑上理清先做什么再做什么,以防实际调试程序时脑袋晕掉,所以还只是纸上谈兵。把整个程序流程脑袋中跑一遍、来龙去脉搞清楚点后再实际调试的。 经过前面这些博客分析,基本把程序分析的障碍扫除了,但是理论基础十分薄弱(还没来得及细细看来)。原创 2016-05-31 19:29:44 · 16098 阅读 · 0 评论 -
pixhawk 整体架构的认识
PX4自动驾驶仪软件可分为三大部分:实时操作系统、中间件和飞行控制栈。1.NuttX实时操作系统提供POSIX-style的用户操作环境(如printf(), pthreads,/dev/ttyS1,open(),write(),poll(),ioctl()),进行底层的任务调度。2.PX4中间件PX4中间件运行于操作系统之上,提供设备驱动和一个微对象请求代理(micro obje原创 2016-06-10 16:41:45 · 20604 阅读 · 19 评论 -
pixhawk 光流--位置估计--姿态估计--位置控制--姿态控制
本文是边分析边写的,顺便就记录下了分析的思路,并不是按照教材那种思路介绍性的,而是按照程序员分析程序的思路来的。所以读者跟着看有些地方看了意义不大,但是这种程序分析的思路还是可以借鉴的,如果有大神看到了本文,有更好的见解,欢迎指教。原创 2016-06-01 20:09:48 · 19633 阅读 · 7 评论 -
Docs » Logs » Downloading and Analyzing Data Logs in Mission Planner
原文:http://ardupilot.org/copter/docs/common-downloading-and-analyzing-data-logs-in-mission-planner.html#Dataflash 日志存储在 Pixhawk (或 APM2) 板载 Dataflash 存储器上, 可以在飞行后下载。在Plane和Rover dataflash 日志在启动之后很快被创造。在翻译 2017-08-31 15:48:01 · 762 阅读 · 0 评论 -
Docs » Logs » Diagnosing problems using Logs
原文:http://ardupilot.org/copter/docs/common-diagnosing-problems-using-logs.html本页旨在向您展示如何诊断影响Copter的最常见的五大问题,特别是在某种程度上对Plane和Rover也是如此。日志类型(Dataflash vs tlogs)有两种记录飞行数据的方式。 除了一些例外,这两种方法记录非常相似的数据,但是以不同的方翻译 2017-08-31 14:33:01 · 499 阅读 · 0 评论