关于几个坐标系的关系NED ENU ROS

写在前面
PX4飞控默认的惯性坐标系方向是“北东下”,Offboard指令中的local坐标系方向是“东北上”,Offboard指令中的setpoint_velocity指令是相对于机体坐标系的。
px4使用的坐标系为NED(北东地)坐标系或者FRD(前右下)坐标系。
mavros中常使用的是ENU(东北天)坐标系或者body系(前左上)。
mavros会自动将输入的ENU坐标值或者body系坐标值转换到NED坐标系中,再通过mavlink发送给飞控。mavros的local系指当地坐标系,一般是ENU坐标系,坐标原点一般在起飞点。
mavros的body坐标系比较乱。如果你用apt安装的ros-kinetic-mavros(二进制安装),即kinetic版本的mavros,则body系是RFU(右前上)坐标系,坐标原点在机体上。这个RFU坐标系表面上和ENU系有点像,但其实在工程领域和各大教材中都没有采用。因此在melodic版本中,body系已经改成了FLU(前左上)坐标系。在最新的mavros源码里,body系也已经更换成了FLU坐标系,因此是如果用源码编译的mavros,body系都是FLU系。

在这里插入图片描述

几个坐标系转来转去,时间一长又搞混了。
px4使用的坐标系为NED(北东地)坐标系或者FRD(前右下)坐标系。然而mavros(melodic版本)中常使用的是ENU(东北天)坐标系或者body系FLU(前左上),mavros会自动将输入的ENU坐标值或者body系坐标值转换到NED坐标系中,再通过mavlink发送给飞控

mavros中经常出现的FCU 不是代表坐标系缩写,Flight Control Unit 直译就是飞行控制单元

在这里插入图片描述
coordinate_frame=1虽然代表向px4发送LOCAL_NED坐标值,但是你发送到这个话题的坐标系应该用ENU,mavros会自动完成这个坐标系的转换。同样的,coordinate=8 也不是BODY_NED系,而是FLU系。目前px4暂不支持向话题里发布coordinate=7、9的坐标值。
在这里插入图片描述
在这里插入图片描述

机体坐标系 NED 惯性系
x轴在多旋翼对称平面内指向机头(机头方向与多旋+字形或X字形相关)。 z轴在飞机对称平面内,垂直轴向下。然后,按右手定则确定y轴 。
欧拉角是基于上面两个坐标系的转换。pitch+为抬头,roll+为右旋转,yaw+为右偏航。

Yaw与指南针角度的关系

指南针的角度是确定不变的,北朝向为0度,东为90度,南为180度,西为270度。
Yaw角是当前机头方向与正北方向的夹角(若地球固联坐标系为NED)
也就是说当我们知道YAW角时我们就可以确定飞机当前的航向(东,北哪个方向),比如我们的vision通过mavros给飞控的Yaw的角度是90度,而且飞机的地球固联坐标系为NED,那么可以确定飞机机头当前指向为正东。
在PX4中用到的地球固联坐标轴是NED坐标系,即x,y,z的方向固定不变(Offboard模式下除外,但是在offboard模式下,初始上电后其东北方向由Yaw角决定)

ROS坐标系 ENU
在这里插入图片描述
在这里插入图片描述
GPS坐标系 WGS-84 X 指向正东 Y指向正北 Z朝上
在这里插入图片描述
为了方便使用GPS速度向量进行无人机控制,需要把它转换在无人机所在位置的平面坐标系Local NED
旋转推导公式
在这里插入图片描述

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

飞同学

随时为您服务

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值