- 博客(49)
- 资源 (8)
- 收藏
- 关注

原创 无人机开发常用网站
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
原创 linux C编程控制树莓派
系统准备1)打开Win32DiskImager.exe 2)PC机插入sd卡 3)选择要烧录的系统,笔者选择Ubuntu mate 16.04 4)烧录 显示默认HDMI显示,需要接HDMI屏幕,而不能用3.5寸的小屏幕SSH登录1)安装putty 2)查看树莓派的wifi IP ifconfig 2)连接同一个wifiwiringPi...
2018-07-04 21:52:13
2491
原创 Linux常用命令
压缩/解压命令转载自http://blog.youkuaiyun.com/qq_27803491/article/details/5278583801-.tar格式解包:[*******]$ tar xvf FileName.tar打包:[*******]$ tar cvf FileName.tar DirName(注:tar是打包,不是压缩!)02-.gz格式解压1:[*******]$ gunzip
2017-11-06 22:33:37
546
翻译 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
翻译 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
原创 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
翻译 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
原创 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
1
原创 Markdown 使用笔记
标红<font color=red>内容</font>内容表格转载自:http://www.ituring.com.cn/article/3452 1.从word或excel中复制表格 2.打开此链接 http://pressbin.com/tools/excel_to_html_table/index.html 这是一个能将EXCEL表格转化成HTML格式的在线网址 3.贴上复制的文字,
2017-08-31 16:06:10
639
翻译 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
翻译 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
原创 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
原创 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
原创 如何利用st官方库编程开发
以stm32f427为例,介绍如何st官方库文件(例程+驱动文件)开发下载st官方库进入st官网 下载下来就是下面的压缩文件 库文件介绍这部分可参考STM32官方库文件分析及使用 利用库文件创建工程新建deam文件夹,新建如图所示的文件夹,DeviceSupport用来存放设备支持文件,output用来存放编译中间文件,STM32F4xxStdPeriph_Driver用来
2017-07-20 22:50:30
1005
原创 入手linux系统(14.04)---杜绝各种不爽
想要在Ubuntu下长期工作,就要杜绝娱乐办公中的各种不爽 安装双系统(1)先安装Windows系统(笔者是在win10系统下安装的),然后下载Ubuntu14.04系统。 (2)在 win10系统下创建空白磁盘分区。鼠标右键点击我的电脑,选择“管理”,进入磁盘管理,如下图 选择你认为剩余磁盘空间够大的磁盘,比如f 盘,右键点击磁盘,选择压
2017-05-31 11:32:32
1385
原创 Linux驱动概念扫盲篇
驱动程序完全隐藏了设备工作的细节. 用户的活动通过一套标准化的调用来进行,这些调用与特别的驱动是独立的; 设备驱动的角色就是将这些调用映射到作用于实际硬件的和设备相关的操作上. 驱动应当做到使硬件可用, 将所有关于如何使用硬件的事情留给应用程序. 一个驱动,如果它提供了对硬件能力的存取, 没有增加约束,就是灵活的.内核的划分尽管不同内核任务间的区别常常不是能清楚划分, 内核的角色可以划分成下列几
2017-05-05 15:37:37
20457
3
原创 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
3
原创 pixhawk px4 字符型设备驱动
分析字符型设备为什么register/open/read/write怎样与底层驱动代码联系在一起的,为什么需要注册,为什么会有路径,为什么open之后read/write就可以读/写了另:此篇blog是边分析边记录的,难免逻辑会有点乱,但是分析思路应该还算清晰的参考:NuttX Device Drivers也可以参考linux字符型驱动驱动字符型设备所有的结构体和API
2016-12-21 12:40:42
4028
原创 linux操作入门---配置px4环境/安装eclipse
笔者基本上在2016.06第一次实实在在接触linux,为的是linux下编译px4能更快些,然而摸索一段时间下在牛叔的帮助下仍然没有安装成功。时至至今终于独立下载配置好了px4,下载安装eclipse和qgc。对于没有接触过linux安装这些东西的同学确实有点困难,为此记录下笔者的linux的入门方法和安装流程以便其他没有经验的同学参考^_^。1.首先确实要下决心折腾这种东西,因为linux
2016-11-20 16:58:17
4635
原创 科普“智能导航”--整理自大疆工程师
1.飞行器想要稳定飞行,需要15个状态量:三维角度,三维角度对应的三维速度、三维加速度、三维角速度,三维位置。传感器的测量如下:2.传感器自身的限制:(1)惯性测量元件:会受到温度、制造工艺的限制,产生一些测量的偏差。这类测量的偏差需要比较仔细的算法进行修正,而且往往不能单靠惯性测量元件自己的测量完全消除。(2)地磁指南针:地磁线的强度非常弱,很容易受到干扰。(3)气压
2016-09-16 10:00:56
4218
1
转载 如何成为一名很酷的机器人工程师?
申明:转载自知乎——YY硕 地址:https://zhuanlan.zhihu.com/p/22266788作者:YY硕 链接:https://zhuanlan.zhihu.com/p/22266788 来源:知乎 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。前言很多朋友私信问我对机器人和人工智能感兴趣,该怎么展开学习。最近稍
2016-09-15 10:48:30
3783
原创 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
原创 学习的原动力与开源的魅力
笔者今日读到《鸟哥的Linux私房菜》,突然想写点东西,于是记录下来。一.学习的原动力1.兴趣由此可见兴趣是需要花时间培养的。由此笔者联想到自己的读书计划先要花时间精力产生自己读书的兴趣,那么如何产生呢?2.成就感这是笔者最初写blog的其中一个原因。成就感与兴趣相互促进!3.其他技巧4.成
2016-08-20 14:33:41
892
原创 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
原创 pixhawk _control_mode如何产生的
此篇blog记录下从遥控信号到_control_mode的信号流程,过程有些复杂,复制大片代码估计不能很好的显示出程序的逻辑,所以只抽取了部分程序代表整体程序,想要整体的了解,还需要读者对照着下面的流程图和程序看看了。为什么这么麻烦?笔者猜想:是为了飞行器在飞行状态不好(某些模块不能正常工作)的情况下,如何选择最好的飞行来保证安全和减小财产损失。commander的部分逻辑也可以在以下流程图中体现
2016-08-04 14:54:28
2043
原创 卡尔曼算法笔记---思想和实际应用物理含义的理解
此片blog的目的是理解卡尔曼算法的思想和实际应用的物理含义,想法很好,却只能理解冰山一角,先记下这一角另本blog参考卡尔曼滤波 -- 从推导到应用和徐亦达卡尔曼推导视频首先认识卡尔曼算法在数学领域是什么位置:处理线性高斯模型的算法
2016-07-29 10:27:19
20911
3
原创 调试记录(一)pixhawk参数设置的问题
一、光流模式进入不了1. 网上下载的固件,进入定点模式,qgc显示“拒绝”。烧写自己编译的固件定高和定点都“拒绝”并且按照(源码解读)position_estimator_inav_main解读(如何启动光流)的方法(1)先通过飞控看有无光流数据,如果没有进入第(2)步(2)qgc连接光流模块,查看光流本身是否正常,如果光流模块正常,则说明系统没有允许进入光流
2016-07-16 10:11:40
13063
2
原创 pixhawk position_estimator_inav.cpp思路整理及数据流
写在前面:这篇blog主要参考pixhawk的高度解算算法解读,并且加以扩展,扩展到其他传感器,其实里面处理好多只是记录了流程,至于里面实际物理意义并不是很清楚,也希望大牛能够指导一下。概述:整个算法的核心思想是由地理坐标系下的加速度通过积分,来获得速度、位置信息;经过2次修正产生可利用的信息,第一次是利用传感器计算修正系数产生加速度的偏差修正加速度,第二次是利用修正系数修正位置;最后
2016-07-11 21:37:10
8377
2
原创 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
7
原创 pixhawk 为实际调试做的准备
感谢兰州—Zing的指教。。1. 飞行日志下载flightplot,官网是http://www.pixhawk.com/dev/flightplotpx4飞行日志位置在log文件夹中数字越大表示越新,新加的日志不会覆盖旧的日志。日志简单操作:第一步:Open Log orFile→OpenLog….打开你要看的日志第二步:点 Field Li
2016-07-06 16:21:32
8785
6
原创 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
1
原创 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
3
原创 pixhawk mc_pos_control.cpp源码解读
好久没跟新blog了,这段时期边调试边看程序,所以有点慢。要开始着手调试了。。这篇blog是顺着上一篇pixhawk 整体架构的认识写的,接下来看程序的话,打算把各个功能模块理解一遍,先从mc_pos_control.cpp看起。先提一下pixhawk的整体逻辑:commander和navigator产生期望位置position_estimator是当前位置通过pos_
2016-06-21 16:04:26
12068
3
原创 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
7
原创 pixhawk 光流--位置估计--姿态估计--位置控制--姿态控制
本文是边分析边写的,顺便就记录下了分析的思路,并不是按照教材那种思路介绍性的,而是按照程序员分析程序的思路来的。所以读者跟着看有些地方看了意义不大,但是这种程序分析的思路还是可以借鉴的,如果有大神看到了本文,有更好的见解,欢迎指教。
2016-06-01 20:09:48
19633
4
原创 pixhawk 姿态与控制部分的记录
此篇是把之前看到的资料总结整理一遍,大部分是搬砖,也加入了自己的一点思考,写的过程中晕了好多次,先大体记录下来,肯定有错误,日后再改正吧。 关于pixhawk程序执行流程,依然还没有实际运行调试过程序,只是逻辑上理清先做什么再做什么,以防实际调试程序时脑袋晕掉,所以还只是纸上谈兵。把整个程序流程脑袋中跑一遍、来龙去脉搞清楚点后再实际调试的。 经过前面这些博客分析,基本把程序分析的障碍扫除了,但是理论基础十分薄弱(还没来得及细细看来)。
2016-05-31 19:29:44
16098
原创 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
6
ORB-SLAM_ a Versatile and Accurate Monocular SLAM System.pdf
2019-05-14
树莓派 Ubuntu mate16.04 2个usb转串口互相收发数据
2018-07-21
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人