说明

使用遥控飞行

px4在stablize模式下,我们使用遥控器去控制px4飞行;
在飞行过程中,通常我们用4个通道就可以控制飞机飞行;
其中roll、pitch、yaw打杆的量就是我们期望无人机达到的姿态;
而throttle就是油门的大小;

自主飞行

不通过遥控器去发指令,而是由程序去发类似的指令控制px4飞行;
就可以达到和人在stablize下控制无人机一样的效果(但愿如此);
这里通过mavros给px4发布类似的信息,去替代上面的4个通道的指令,

发布的消息主题:

通过mavros/setpoint_raw/attitude

消息处理

1、其中ned下的欧拉角就是实际我们期望飞机达到的姿态角;
2、这个姿态角首先转换到enu坐标系下;
3、然后将欧拉角转换成四元数
4、油门限幅和归一化
5、发布消息

在这里插入图片描述

测试验证

现象

可以在qgc里面,通过主界面右上角的姿态角可以看到,飞机的实际的飞行姿态和我们在代码里面设置的期望姿态是否一致;
也可以看到飞机按照我们期望的姿态朝着一个方向飞去;

问题(1):

这里我也试过使用mavlink检测器里面去看attitude,但是实际发现实际的姿态一直在跳动;

问题(2):

将log下载后上传px4 log view
发现无法看到具体的数据

code 地址

github仓库
文件名为:publish_att.cpp
提交分支为:main
Commit: 5bcc46b4b3fba5a309b99a6beff498f613ecf390

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐