【PX4 飞控二次开发】UORB 发布及订阅自定义

UORB测试

    • 一、添加msg
      • 1.创建.msg文件
      • 2.Cmakelists.txt修改
      • 3.编译错误
      • 4.编译成功
    • 二、发布及订阅主题
      • 1.添加代码
      • 2.修改cmake
      • 3.再次编译

一、添加msg

1.创建.msg文件

~/PIX4/Firmware/msg$ touch my_uorb_test.msg

【PX4 飞控二次开发】UORB 发布及订阅自定义_第1张图片
【PX4 飞控二次开发】UORB 发布及订阅自定义_第2张图片

2.Cmakelists.txt修改

将自定义的.msg添加到同目录下的Cmakelists.txt文件列表中
【PX4 飞控二次开发】UORB 发布及订阅自定义_第3张图片

3.编译错误

~/PIX4/Firmware$ sudo make px4_fmu-v2

【PX4 飞控二次开发】UORB 发布及订阅自定义_第4张图片

[ERROR] uORB topic files generator:
	generate_output_from_file:	No 'timestamp' field found in my_uorb_test msg definition!

这个坑搞了一上午,发现需要.msg需要定义时间戳变量

uint64 timestamp	# time since system start (microseconds)

【PX4 飞控二次开发】UORB 发布及订阅自定义_第5张图片

4.编译成功

【PX4 飞控二次开发】UORB 发布及订阅自定义_第6张图片
头文件生成成功
【PX4 飞控二次开发】UORB 发布及订阅自定义_第7张图片

二、发布及订阅主题

1.添加代码

将UORB发布代码和订阅代码添加到 Firmware/src/modules/ 内

【PX4 飞控二次开发】UORB 发布及订阅自定义_第8张图片

2.修改cmake

在对应版本的飞控目录下,修改cmake文件

~/PIX4/Firmware/boards/px4/fmu-v2$ 

【PX4 飞控二次开发】UORB 发布及订阅自定义_第9张图片

3.再次编译

编译成功上传代码测试
【PX4 飞控二次开发】UORB 发布及订阅自定义_第10张图片运行QGC查看结果
【PX4 飞控二次开发】UORB 发布及订阅自定义_第11张图片

./QGroundControl.AppImage 

mavlink -> "hekp"指令查看,订阅发布已经添加进去了
【PX4 飞控二次开发】UORB 发布及订阅自定义_第12张图片
在这里插入图片描述
输出结果和代码吻合测试成功
【PX4 飞控二次开发】UORB 发布及订阅自定义_第13张图片
代码有一丢丢多久打包放下面参考

你可能感兴趣的:(【PX4,飞控二次开发】)