PX4应用开发简要教程

本文说明如何创建和运行第一个板载应用程序。 它涵盖了PX4上应用程序开发所需的所有基本概念和API。

开发环境

在开发第一个PX4应用程序之前,需要构建如下开发环境:

  • PX4 SITL模拟器或兼容PX4的飞行控制器。
  • PX4开发工具链用于所需目标。
  • 从Github下载PX4源代码

简单应用

代码编写

本节创建一个最小的应用,仅用于打印Hello Sky!。整个应用由一个简单C文件和一个cmake定义文件构成。具体步骤如下:

  1. 创建目录Firmware/src/examples/px4_simple_app
  2. 在上述目录中创建C文件px4_simple_app.c
  3. 在上述目录中创建cmake定义文件CMakeLists.txt

px4_simple_app.c代码内容如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
/**
* @file px4_simple_app.c
* Minimal application example for PX4 autopilot
*
* @author Example User <mail@example.com>
*/

#include <px4_log.h>

__EXPORT int px4_simple_app_main(int argc, char *argv[]);

int px4_simple_app_main(int argc, char *argv[])
{
PX4_INFO("Hello Sky!");
return OK;
}

CMakeLists.txt文件内容如下:

1
2
3
4
5
6
7
8
9
px4_add_module(
MODULE examples__px4_simple_app
MAIN px4_simple_app
STACK_MAIN 2000
SRCS
px4_simple_app.c
DEPENDS
platforms__common
)

px4_add_module()方法从模块描述构建静态库。 MAIN块列出了模块的名称 。这会将该模块与NuttX一起注册,以便可以从PX4 shell或SITL控制台调用它。

编译链接

针对不同的目标平台,使用不同的make命令构建:

  • jMAVSim Simulator: make posix_sitl_default jmavsim
  • Pixhawk v1/2: make px4fmu-v2_default
  • Pixhawk v3: make px4fmu-v4_default

测试应用(硬件)

上传固件到开发板

在开发板上测试,使用如下命令上传PX4固件:

  • Pixhawk v1/2: make px4fmu-v2_default upload
  • Pixhawk v3: make px4fmu-v4_default upload

连接控制台

现在通过串口或USB连接到系统控制台。 点击ENTER将弹出shell提示符:

1
2
3
4
nsh>
nsh>help
nsh> px4_simple_app
Hello Sky!

测试应用(SITL)

如果您正在使用SITL,PX4控制台将自动启动。 与nsh控制台一样,您可以键入help以查看内置应用程序列表。

输入px4_simple_app以运行最小应用程序。

1
2
pxh> px4_simple_app
INFO [px4_simple_app] Hello Sky!

参考链接

  1. PX4编译开发环境配置,by jackhuang.
  2. PX4开发基本概念解读,by jackhuang.
  3. First Application Tutorial (Hello Sky),by dronecode.