IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> AirSim(五)---理解篇: Airsim世界坐标系、NED坐标系、机体坐标系以及控制相关API接口函数 -> 正文阅读

[人工智能]AirSim(五)---理解篇: Airsim世界坐标系、NED坐标系、机体坐标系以及控制相关API接口函数

1. 坐标系 coordinate system

本部分源自:Using AirSim>>Core APIs>> AirSim APIs 官网

(1) AirSim API的坐标系:NED 坐标系 with SI unit

该坐标系也是世界坐标系,world frame。

  1. 所有AirSim API使用NED坐标系统,即+X是北North,+Y是东East,+Z是下Down。这意味着Z值越高越负:如果原点在地面上,z值是零,地面以上是负的!
  2. 所有单位都是国际单位制。
  3. 请注意,不同于Unreal Engine (UE)内部使用的坐标系统。在Unreal Engine中,+Z是向上Up而不是向下Down,长度单位是厘米cm而不是米m。
  4. AirSim API来完成从Unreal Engine的NEU坐标系到AirSim的NED坐标系的适当转换。在AirSim NED系统中,车辆的起始点总是坐标(0,0,0)。因此,当从UE坐标系转换到AirSim NED坐标系时,我们首先减去起始点偏移量,然后缩放100实现cm到m的转换。
  5. 在UE环境中,车辆由Player Start component放置的地方生成或衍生而来,在Settings.json配置文件中有一个设置项元素为OriginGeopoint,可以将地理经度、纬度和海拔分配给Player Start Component

OriginGeoPoint这指定了放置在Unreal环境中的Player Start Component的纬度、经度和高度。车辆的原点(home point)是用这个变换计算出来的。请注意,所有通过API采用的坐标都使用了以SI单位表示的NED坐标系统,这意味着每辆车在NED系统中都从(0,0,0)开始启动。
—《OriginGeopoint》官网资料

(2) Unreal Engine的坐标系

  1. AirSim不同于Unreal Engine (UE)内部使用的坐标系统。在Unreal Engine中,+Z是向上Up而不是向下Down,长度单位是厘米cm而不是米m。
  2. 用户不必特别关系UE坐标系,因为AirSim已经处理好了这个问题,即只需要按照AirSim坐标系设置即可,包括Settings.json中的OriginGeopoint元素,AirSim会帮用户自动转换。

(3)AirSim全局坐标系=NED坐标系=世界坐标系

(4) AirSim的机体坐标系:Body Frame

本部分参考:airsim document

根据Airsim文档提供的说明, 机体坐标系body frame遵循Front Left Up (FLU),右手法则
在这里插入图片描述
机体坐标系FLU
Note:图片来源:GAAS
在这里插入图片描述

Note:也有说法是认为FLU坐标系不对,应该是FRD坐标系。即机体坐标系的原点在机体的重心位置,x,y,z三个坐标轴的方向分别指向机体的前方、右方、下方. 点击此

这种理解其实是不对的,AirSim不会犯这种低级错误。实际上,机体坐标系中的z轴正方向是向上的,这与车辆动力学或无人机动力学研究中的机体坐标相一致。

2. AirSim APIs for 车辆和无人机的状态

本部分内容:Using AirSim>>Core APIs: APIs for Car

Airsim提供了两个API函数来进行车辆的控制、获取车辆状态

设置车辆控制参数setCarControlsset throttle, steering, handbrake and auto or manual gear.
获取车辆状态参数getCarState获取如下的状态信息: speed, current gear,6 kinematics quantities: position, orientation, linear and angular velocity, linear and angular acceleration.
设置无人机控制参数move* APIs1 Multirotor can be controlled by specifying angles, velocity vector, destination position or some combination of these.
2 当进行position control时, 需要path following算法,其中AirSim 默认采用carrot following algorithm,这部分通常被认为是 “high level control” ,因为只需要指定 high level goal,the firmware会自动完成其余功能。
3 当前AirSim提供的底层控制 lowest level control 是API函数: moveByAngleThrottleAsync API.
获取无人机状态参数getMultirotorState1 这个API在一个调用中返回车辆的状态。
2 状态包括:collision、estimated kinematics(即通过融合传感器计算的运动学)和timestamp(自每个epoch以来的纳秒时间)。3. 这里的kinematics运动学指的是6个量:position, orientation, linear and angular velocity, linear and angular acceleration。
4请注意,simple_slight目前不支持state estimator,这意味着simple_flight模式下估计运动学值和地面真实运动学值是相同的
获取真实vehicle和环境状态simGetGroundTruthEnvironment
(vehicle_name=‘’
一般是Ground Truth值)
该函数返回class airsim.types.EnvironmentState,包含环境状态:
-大气密度air_density;
-大气压air_pressure;
-PlayerStart的起始地理信息geo_point;
-重力gravity;
-无人机位置in NED position;
-温度temperature.
Note:gravity是环境的重力,NED坐标系中为z轴正方向一致,因此可得到类似9.8的结果。
获取vehicle估计的运动学状态simGetGroundTruthKinematics
(vehicle_name=‘’)
指的是kinematics估计值
该函数返回airsim.types.KinematicsState,包含信息:
1. 角加速度:angular_acceleration
2. 角速度:angular_velocity
3. 加速度:linear_acceleration
4. 速度:linear_velocity
5. 姿态四元数:orientation
6. 位置:position
Note:1-2: body frame; 3-6: NED frame

Note:

  1. 上述状态量中,只有角速度和加速度的值(angular velocity and accelerations )是定义在Body frame中,其余状态量是在NED坐标系中,并且采用SI单位制。
  2. kinematics输出的位置信息和simGetGroundTruthEnvironment()接口的位置信息不一定完全相同,kinematics的结果是通过动力学物理引擎计算得到的,具体可以参考AirSim论文
  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2022-04-30 08:42:53  更:2022-04-30 08:45:14 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 8:21:45-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码