pixhawk学习笔记
2016-01-28 17:43
232 查看
最近转到无人机领域的开发中,感觉和以往搞android驱动差别比较大,以前搞android驱动的时候网上的资料满天飞,但是现在关于飞控相关的资料却少之又少,一些资料都是从原理上入手,讲的是天花乱坠,看半天也不知所云,我打算从实际应用的角度来记录我飞控代码的学习之路,希望我能坚持下来。
首先看一下飞控代码的组成架构:
飞控代码以nuttx实时操作系统为核心, 驱动层通过采集加速度、陀螺仪、磁力计、气压计传感器的值来控制无人机的飞行姿态,通过uorb来实现各个进程之间的通信,控制无人机的飞行可以通过遥控器或是mavlink消息来完成,下面我就讲一下怎么创建一个新的应用程序。
每学习一门新的语言都是以"hello world!"开始,学习一门新的系统也不例外:
1. 在Firmware/src/modules目录下建立一个px4_simple_app文件夹,在这个文件夹中建立一个module.mk文件,将下列信息写入此文件:
MODULE_COMMAND =px4_simple_app
SRCS = px4_simple_app.c
2. 在上述文件夹中在新建一个px4_simple_app.c的文件:
#include <nuttx/config.h>
#include <stdio.h>
#include <errno.h>
__EXPORT int px4_simple_app_main(int argc,char *argv[]);
Int px4_simple_app_main(int argc,char *argc[])
{
printf(“Hello Sky\n”);
return 0;
}
3. 注册此app:
在Firmware/makefiles/config_px4fmu-v2_default.mk中加入:
MODULES += modules/px4_simple_app
然后编译烧写,之后再终端中 输入"?",在列表中就会看到px4_simple_app,然后输入“px4_simple_app start”,就会看到 “Hello Sky”的字样,这样在nuttx上的第一个应用程序就成功跑起来啦。
最近转到无人机领域的开发中,感觉和以往搞android驱动差别比较大,以前搞android驱动的时候网上的资料满天飞,但是现在关于飞控相关的资料却少之又少,一些资料都是从原理上入手,讲的是天花乱坠,看半天也不知所云,我打算从实际应用的角度来记录我飞控代码的学习之路,希望我能坚持下来。
首先看一下飞控代码的组成架构:
飞控代码以nuttx实时操作系统为核心, 驱动层通过采集加速度、陀螺仪、磁力计、气压计传感器的值来控制无人机的飞行姿态,通过uorb来实现各个进程之间的通信,控制无人机的飞行可以通过遥控器或是mavlink消息来完成,下面我就讲一下怎么创建一个新的应用程序。
每学习一门新的语言都是以"hello world!"开始,学习一门新的系统也不例外:
1. 在Firmware/src/modules目录下建立一个px4_simple_app文件夹,在这个文件夹中建立一个module.mk文件,将下列信息写入此文件:
MODULE_COMMAND =px4_simple_app
SRCS = px4_simple_app.c
2. 在上述文件夹中在新建一个px4_simple_app.c的文件:
#include <nuttx/config.h>
#include <stdio.h>
#include <errno.h>
__EXPORT int px4_simple_app_main(int argc,char *argv[]);
Int px4_simple_app_main(int argc,char *argc[])
{
printf(“Hello Sky\n”);
return 0;
}
3. 注册此app:
在Firmware/makefiles/config_px4fmu-v2_default.mk中加入:
MODULES += modules/px4_simple_app
然后编译烧写,之后再终端中 输入"?",在列表中就会看到px4_simple_app,然后输入“px4_simple_app start”,就会看到 “Hello Sky”的字样,这样在nuttx上的第一个应用程序就成功跑起来啦。
相关文章推荐
- 知识库
- Github提交代码方法
- hdu 5174 Ferries Wheel【模拟】【排序+去重】
- 【树】Serialize and Deserialize Binary Tree
- 基于spark的实时流数据需跟历史数据进行对比时所遇到的问题
- Swift 框架搭建篇
- JDBC之重要类解析与使用实例
- 十年回顾:Hadoop老矣,尚能饭否?
- Simple Java—Strings and Arrays(三)为什么String被设计成了不可变型
- android studio 导入项目是出现:Error:(1, 0) Plugin is too old, please update to a more recent version, or se
- 蓝桥杯基础练习 高精度加法 (简单模拟)
- SendKeys.Send()的使用 转
- 根据名称查询当前运行的程序的个数
- Linux一键安装PHP/JAVA环境OneinStack
- uva 10271 Chopsticks
- 关于源码泄露的应急响应
- Squid 服务启动脚本
- tomcat 配置文件
- grunt学习总结
- ThinkPHP实现定时任务