ardupilot开发 --- 坐标系篇

提出问题 解决问题

你是否对飞控中的坐标变换很迷惑?地面系?机体系?NED?NEU?极坐标系?经纬度?
飞机的lean角?欧拉角?四元素?
他们之间有什么关系?是如何转换的?为什么要进行坐标转换?
如果你存在以上问题,往下看就对了!

Ardupilot中重要的坐标系

大地经纬度坐标系,WGS84(WorldGeodeticCoordinateSystem1984)

重要参数:经度、纬度、海拔高度;
子午线:
赤道:
WGS-84坐标系(World Geodetic System一1984 Coordinate System)是美国国防部建立的一种地心地固坐标系,全球卫星定位系统GPS是基于WGS-84坐标系的。
WGS-84坐标系原点是地球的质心,空间直角坐标系的Z轴指向BIH(1984.0)定义的地极(CTP)方向,即国际协议原点CIO,它由IAU和IUGG共同推荐。X轴指向BIH定义的零度子午面和CTP赤道的交点,Y轴和Z、X轴构成右手坐标系。

https://blog.csdn.net/EagleLY5894/article/details/104118465/

参考文献

【1】https://www.cnblogs.com/ethanda/p/10325109.html
【2】https://blog.csdn.net/zhashuiguangzi/article/details/69062952?spm=1001.2101.3001.6650.8&utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromBaidu%7ERate-8-69062952-blog-111467396.235%5Ev38%5Epc_relevant_default_base&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromBaidu%7ERate-8-69062952-blog-111467396.235%5Ev38%5Epc_relevant_default_base&utm_relevant_index=17

全局系、局部系、机体系

global系:经纬度高度,WGS84;
local系:NED,原点固定在地球,一般是EKF的原点,即上电(解锁)时的位置点;
body系:FRD,原点在飞机重心;
ardupilot开发 --- 坐标系篇_第1张图片

global与local系与ekf原点(ekf系)

  • 设置ekf原点:这使得能够在本地坐标系和全球(GPS)坐标系之间进行转换;
  • 方法:发送 SET_GPS_GLOBAL_ORIGIN 消息;
  • GPS_GLOBAL_ORIGIN 即ekf原点,即local坐标系原点;
  • 注意与home点的区别,home可以随时更改,ekf origin 一旦设定就不会更改(只限于本次上电);
  • 除非特意指定,local系的原点是 position-estimator (“EKF”) 的原点。
  • FRD坐标:X轴向前,Y轴向右,Z轴向下。

Ardupilot代码中3个重要的坐标系

  • MAV_FRAME_BODY_FRD 机体坐标系,x轴指向前,y向右,z向下;控制量要结算到该坐标系上;
  • MAV_FRAME_LOCAL_NED 地固坐标系,x: North, y: East, z: Down;欧拉角即MAV_FRAME_BODY_FRD坐标系与该坐标系的旋转关系;位置量xyz的EKF估计的原点就是该坐标系的原点;
  • MAV_FRAME_GLOBAL 全球坐标系WGS84,经度纬度高度;GPS传感器所在的坐标系,最终要换为MAV_FRAME_LOCAL_NED系的位置量来提供给飞控的位置控制器使用;
  • In frames, OFFSET means “relative to vehicle position” while LOCAL is “relative to home position” (these have no impact on velocity directions). BODY means that velocity components are relative to the heading of the vehicle rather than the NED frame.

其他坐标系的含义请参考:https://mavlink.io/en/messages/common.html#MAV_FRAME_BODY_FRD

Ardupilot代码中3个重要的坐标系相互转换

待补充…

你可能感兴趣的:(Ardupilot)