无人导航常见坐标系

news/2024/12/2 20:37:21/

文章目录

  • 1. 大地坐标系,WGS84(WorldGeodeticCoordinateSystem1984)
  • 2. 地心地固定坐标系,ECEF(Earth-Centered Earth-Fixed,符号e)
  • 3. 大地中心惯性系,ECI(Earth-centered inertial frame,符号i)
  • 3. 局部导航坐标系(local navigation frame,符号n)
  • 4. 载体坐标系(Body Frame,符号b)
  • 5. 代码实现

在UAV(Unmanned Aerial Vehicle)中,常见的坐标系有以下几种:

1. 大地坐标系,WGS84(WorldGeodeticCoordinateSystem1984)

这是为GPS全球定位系统建立的坐标系统。WGS-84坐标系的原点在地球质心,Z轴指向BIH1984.0定义的协定地球极(CTP)方向,X轴指向BIH1984.0的零度子午面和CTP赤道的交点,Y轴和Z、X轴构成右手坐标系。其参数为经度、纬度、海拔高度。

其基本参数如下:
          长半径:a=6378137±2(m);
          地球引力和地球质量的乘积:GM=3986005×108m3s-2±0.6×108m3s-2;
          正常化二阶带谐系数:C20=-484.16685×10-6±1.3×10-9;
          地球重力场二阶带球谐系数:J2=108263×10-8
          地球自转角速度:ω=7292115×10-11rads-1±0.150×10-11rads-1
          扁率f=0.003352810664

2. 地心地固定坐标系,ECEF(Earth-Centered Earth-Fixed,符号e)

ECEF坐标系与地球固联,且随着地球转动。图中O即为坐标原点,位置在地球质心。X轴通过格林尼治线和赤道线的交点,正方向为原点指向交点方向。Z轴通过原点指向北极。Y轴与X、Z轴构成右手坐标系。

下图中可以直观的看出ECEF和WGS84坐标系的区别:

图中,φ、λ表示纬度和经度,是WGS84坐标系的参数,x、y、z为ECEF坐标系的描述。从图中可以看出,目标点X标记处在不同坐标系下描述的区别。

3. 大地中心惯性系,ECI(Earth-centered inertial frame,符号i)

ECI坐标系和ECEF坐标系的不同点是ECI坐标系不随地球转动。

3. 局部导航坐标系(local navigation frame,符号n)

也叫当地导航坐标系(local navigation frame) ,当地水平导航坐标、测地坐标 系、地理坐标系或地面点坐标系。从定义来分类,局部切线平面可分为基于垂直和水平尺寸定义的平面,其表现在纵坐标为上还是下。纵坐标为上时,称为ENU(东、北、天)坐标系,主要用于地理方面;纵坐标为下时,称为NED(北、东、地)坐标系,特别用于航空航天。

上图为ENU坐标系,该坐标系即为控制装置所在位置的“平面坐标系”,又称为地理坐标系。

4. 载体坐标系(Body Frame,符号b)

载体坐标系指的是以载体的质心为原点,OX沿纵轴方向,即载体前进方向,Z轴沿载体侧轴方向,指向右翼,Y沿载体竖轴方向,是右手坐标系而成(即指向天)。总的来说,载体坐标系相对于地理坐标系的关系就是载体的姿态。在我们的实际控制当中,我们关心的显然是载体坐标系相对于地理坐标系之间的变化,所以我们通常使用的旋转矩阵是把“地理”坐标系转到“载体”坐标系的矩阵,从而实现对控制目标(载体)的姿态控制。由地理坐标系到载体坐标系的转换常用的有三种方式:四元数、欧拉角、方向余弦矩阵。

导航的基本原则就是保证两个基本坐标系的正确转化,没有误差。只有实现了这个原则,载体才可以在自己的坐标系中完成一系列动作而被转换到地理坐标系中看起来是正确的。导航的基本原则就是保证两个基本坐标系的正确转化,没有误差。只有实现了这个原则,载体才可以在自己的坐标系中完成一系列动作而被转换到地理坐标系中看起来是正确的。

5. 代码实现

这是之前写的一个坐标转换的代码,经测试可以使用。

#!/usr/bin/env python
# -*- coding: utf-8 -*-"""
Created on 2019.01.18
@Author:  Ethan
"""import math
import numpy as np
import client_socket.py as client
PI= math.pi
a=6378137
b=6356752.314245
E = (a*a - b*b)/(a*a)class Goal:def __init__(self,x,y):self.x=0self.y=0def deg(x):x=(x/180)*PIreturn x#latitude:纬度 longitude:经度 altitude:海拔高度
#latitude0 longitude0----current_local_pos
def Translate(latitude:float,longitude:float,latitude0:float,longitude0:float):LAT=deg(latitude)LON=deg(longitude)LAT0=deg(latitude0)LON0=deg(longitude0)altitude0=0print("GPS坐标(经度、纬度、高度)为: ",latitude,longitude,altitude)
#ECEF坐标系N = a /(math.sqrt(1 - E*math.sin(LAT)*math.sin(LAT)))X=(N+altitude)*math.cos(LAT)*math.cos(LON)Y=(N+altitude)*math.cos(LAT)*math.sin(LON)Z=N*(1-e*e)*math.sin(LAT)N0 = a /(math.sqrt(1 - E*math.sin(LAT0)*math.sin(LAT0)))X0=(N+altitude)*math.cos(LAT0)*math.cos(LON0)Y0=(N+altitude)*math.cos(LAT0)*math.sin(LON0)Z0=N*(1-E*E)*math.sin(LAT0)print("空间直角坐标系下X轴、Y轴、高度为",'%.3f'%X,'%.3f'%Y,'%.3f'%Z)#旋转矩阵mat=np.array([[-math.sin(LON),math.cos(LON),0],\[-math.sin(LAT)*math.cos(LON),-math.sin(LAT)*math.sin(LON),math.cos(LAT)],\[math.cos(LAT)*math.cos(LON),math.cos(LAT)*math.sin(LON),math.sin(LAT)]])arr=np.array([[X-X0],[Y-Y0],[Z-Z0]])  #坐标原点纠正res=np.dot(mat,arr)X=res[0]Y=res[1]print("站心坐标系下东、北"'%.3f'%X,'%.3f'%Y)return res#获取航点
def get_waypoints(x0,y0,x1,y1,cx,cy):waypoints=client.way_choose(x0,y0,x1,y1)for i in waypoints:str=i.split(",")longitude=float(str[0])latitude=float(str[1])res=Translate(latitude,longitude,x0,y0)g=Goal()g.x=res[0]g.y=res[1]cx=list.append(g.x)cy=list.append(g.y)

http://www.ppmy.cn/news/281805.html

相关文章

导航寻路教程

文章目录 思维导图寻路场景搭建导航面板动态障碍物(NavMesh Obstacle)分离网格跳跃线(Off-Mesh Link)NavMeshComponent预制体内生成导航网格,且网格跟随预制体NavMeshLink 思维导图 寻路场景搭建 都是Cube搭建,每个Cube都有盒装碰…

navigation导航栈

navigation功能包: navigation 栈下的各个功能包的作用: acml:是一个针对在二维移动的机器人的基于概率定位系统。它实现了自适应蒙特卡罗滤波的定位方法,并使用粒子滤波器去跟踪在已知地图中机器人的位置。 base_local_planner: 完成局部窗口内的路径规划任务,机…

导航寻路

源码 地址 http://download.csdn.net/download/u012419410/9037849 NAV导航网格寻路(1)-- 介绍 2010-04-02 13:23:21| 分类: 游戏 | 标签:寻路 nav navigation mesh 导航网格 游戏 |举报|字号 订阅 竹石 http://blianc…

Navigation导航系统

Navigation导航系统 ##1、Unity导航系统 1.1、导航 导航在游戏中的概念就是从一点走到另外一点的过程,在该过程中需要考虑:阻挡,路径选择,可走地形,地形特点以及拟人化等多方面因素。 在游戏当中导航分为两种&…

地图采集车的那些事 | 惯性导航

一、背景 高精地图、高精采集车,是做地图和出行领域同学经常挂在嘴上的一些常用词儿。但是,圈外的同学可能会问,到底什么是高精? 高精是指高精度定位,高精地图是指包含丰富地理信息数据、具有高精度坐标的地图。当然&a…

从精准导航到生活护航,百度地图助力“说走就走”的十一旅行

文|易不二 来源|智能相对论(aixdlun) 年初新冠疫情的肆虐,让我们被“禁闭”了很久,很长时间,对旅途的向往,都只能停留在之前的旅途回忆里。 据中国旅游研究院发布《中国国内旅游发展报告2020》分析称&am…

Navigation(导航)

Navigation介绍 总的来说就是UWP可以有多个页面&#xff0c;MainPage.xaml中是会一直在页面中出现的内容。比如汉堡菜单之类的东西&#xff0c;当然也是可以设置为隐藏的。还要在MainPage.xaml中设置前进后退等按钮。 <StackPanel><StackPanel Orientation"Hor…

旅行者

Problem Description 一个旅行者有一个最多能用m公斤的背包&#xff0c;现在有n件物品&#xff0c;它们的重量分别是W1&#xff0c;W2&#xff0c;...,Wn,它们的价值分别为C1,C2,...,Cn.若每种物品只有一件求旅行者能获得最大总价值。 Input 输入的第一行为T&#xff0c;表示测…