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

一、添加msg

1.创建.msg文件

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

在这里插入图片描述
在这里插入图片描述

2.Cmakelists.txt修改

将自定义的.msg添加到同目录下的Cmakelists.txt文件列表中
在这里插入图片描述

3.编译错误

~/PIX4/Firmware$ sudo make px4_fmu-v2

在这里插入图片描述

[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)

在这里插入图片描述

4.编译成功

在这里插入图片描述
头文件生成成功
在这里插入图片描述

二、发布及订阅主题

1.添加代码

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

在这里插入图片描述

2.修改cmake

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

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

在这里插入图片描述

3.再次编译

编译成功上传代码测试
在这里插入图片描述运行QGC查看结果
在这里插入图片描述

./QGroundControl.AppImage 

mavlink -> "hekp"指令查看,订阅发布已经添加进去了
在这里插入图片描述
在这里插入图片描述
输出结果和代码吻合测试成功
在这里插入图片描述
代码有一丢丢多久打包放下面参考

猜你喜欢

转载自blog.csdn.net/qq_39610398/article/details/106213785