air im官方消息| air im-API接口总结。

在上期我们带大家了解一些Airsim常用API接口,以及使用一些简单的API接口模拟控制模型。接下来我们将会带来一些在世界(地图)界面使用的API接口介绍、获取模型系统状态的API,以及如何添加新的API。

上一期我们带大家了解了一些Airsim常用的API接口,用一些简单的API接口来模拟控制模型。接下来,我们将介绍一些在世界(map)接口中使用的API接口,获取模型系统状态的API,以及如何添加新的API。AirSim官方动态 | Airsim-API接口总结

要在一、地图界面相关API1.1 视线和世界范围 API,模拟中测试从车辆到一点或两点之间的视线,请分别参考两个API:simtestlineoflighthopt(点,vehicle _ name)和simtestlineoflighthopt(点1,点2)。它们都是以两个地理点向量的形式在全球范围内模拟的,可以通过使用[SimGetWorldDeextensions()]进行检索。

默认情况下,1.2 天气API.禁用所有天气效果要启用天气效果,首先调用:simEnableWeather(True)通过使用以下simSetWeatherParameter方法启用各种天气效果WeatherParameter,例如:client . simsetweather parameter(air sim . weather parameter . rain,0.25);第二个参数的值范围从0到1。第一个参数提供以下选项:

类别天气参数:雨=0道路湿度=1雪=2道路现在=3地图树叶=4道路树叶=5灰尘=6雾=7

有关更多详细信息,请参见示例代码:https://github.com/Microsoft/air sim/blob/master/python client/environment/weather . py。

1.3 录制API记录API可以通过控制API接口记录数据,需要记录的数据可以通过设置来制定。要开始录制,请输入:client.startRecording()。同样,要停止录制,请使用:client.stopRecording()。要检查录制是否正在运行,请调用:client.isRecording()。

该应用编程接口与使用r按钮(可以切换录制状态)一起工作。如果使用r按钮启用录制,【isRecording()】将返回True,可以使用【stopRecording()】。同样,如果在视口中按R键,用API开始的录制将停止。使用API开始或停止录制,视口左上角也会出现LogMessage。

1.4 风APIAPI:【simsetwind()】这个API可以在模拟过程中改变风的状态。世界框架中的风,NED方向和风速可以用这个API来确定,例如,应该在北方(即向前)方向设置20 m/s的风:

#在NED(正向)风=airsim中将风设置为(20,0,0)。Vector3r(20,0,0)客户端. simSetWind(wind)

有关更多信息,请参见示例:https://github.com/Microsoft/air sim/blob/master/pytonclient/multi rotor/set _ wind . py。

1.5 激光雷达APISIM提供了从车辆上的激光雷达传感器检索点云数据的应用编程接口。您可以在settings.json中设置通道数、每秒点数、水平和垂直FOV等参数.有关激光雷达应用编程接口和设置以及传感器设置的更多信息,请参考以下网站:

激光雷达应用编程接口设置:https://microsoft.github.io/AirSim/lidar/.

传感器设置:https://microsoft.github.io/AirSim/sensors/.

1.6 坐标系所有的AirSim API都使用NED坐标系,即X为北,Y为东,Z为下。所有单位采用国际单位制。请注意,这与虚幻引擎内部使用的坐标系不同。在虚幻引擎中,z是向上的而不是向下的,长度单位是厘米而不是米。

AirSim应用编程接口负责适当的转换。车辆的起点始终是NED系统中的坐标(0,0,0)。因此,当从虚幻坐标转换为NED时,我们首先减去起始偏移,然后缩放100以将cm转换为m.使用运营商虚拟引擎中的播放器启动组件生成。在settings.json中,有一个名为OriginGeopoint的设置,它为Player Start组件分配地理经度、经度和海拔。

二、用于控制器模型的API2.1 汽车API

下列原料药可用于汽车:

s

etCarControls:这允许您设置油门、转向、手刹以及自动或手动档位。

  • getCarState:这将检索状态信息,包括速度、当前齿轮和 6 个运动学量:位置、方向、线速度和角速度、线速度和角加速度。所有量都在 NED 坐标系中,世界坐标系中的 SI 单位除了角速度和加速度在体坐标系中。
  • 图像 API(参考上期介绍)
  • 2.2 多旋翼API多旋翼可以通过指定角度、速度矢量、目标位置或这些的某种组合来进行控制。move*为此有相应的API对应。在做位置控制时,我们需要用到一些路径跟随算法。默认情况下,AirSim 使用carrot following算法。“高级控制”——只需要指定高级目标,其余的由固件处理。目前 AirSim 中可用的最低级别控制是【moveByAngleThrottleAsyncAPI】。

    ** 2.3 获取多旋翼状态**获取多旋翼状态的 API只需要一次调用即可返回多旋翼状态。此处状态包括:碰撞、估计运动学(即通过融合传感器计算的运动学)和时间戳(自纪元以来的纳秒)。这里的运动学对应6个元素:位置、方向、线速度和角速度、线速度和角加速度。所有量都在NED坐标系中,世界地图里坐标系的SI单位,除了角速度和加速度都在体坐标系中。

    2.4 异步方法、持续时间和 max_wait_seconds参数许多 API 都有名为后缀“Async”的参数;例如:【takeoffAsync】API。这些参数表示在AirSim中启动任务后会立即返回,以便代码可以在执行该任务时执行其他操作。如果想等待这个任务完成,可以调用【waitOnLastTask】,例如:

    //C++client.takeoffAsync()->waitOnLastTask();

    #Pythonclient.takeoffAsync().join()

    如果启动另一个命令,则会自动取消上一个任务并启动新命令。每个新发布的轨迹都会取消之前的轨迹,从而允许代码在新传感器数据到达时不断进行更新。

    2.5 传动系统(drivetrain)

    API:【drivetrain】飞行载具有两种模式,通过参数设置进行选择:irsim.DrivetrainType.ForwardOnly或airsim.DrivetrainType.MaxDegreeOfFreedom。

    ①当您指定 ForwardOnly 时,说明车辆的前部应始终指向行驶方向。所以如果想让无人机左转,那么它首先会旋转,所以前部指向左边。当您只有前置摄像头并且使用 FPV 视图操作车辆时,此模式很有用。

    ②MaxDegreeOfFreedom 意味着不需要关心前面指向的位置。所以当你左转时,所以多旋翼无人机可以向任何方向前进,视角不会收到影响。

    2.6 偏航模式(yaw_mode)yaw_mode是一个有两个字段的结构体,yaw_or_rate和is_rate。如果is_ratefield 为 True,则yaw_or_ratefield 是指为以度/秒为单位的角速度,此时模型在移动时以该角速度围绕其轴连续旋转。如果is_rate为 False,则yaw_or_rate为以度为单位的角度,此时模型旋转到特定角度(即偏航)并在移动时保持该角度。

    2.7 lookahead和adaptive_lookahead在设置跟随路径时,AirSim 使用“carrot following”算法。该算法通过向前看路径并调整其速度矢量来运行。该算法的参数由lookahead和指定adaptive_lookahead。

    三、添加新的API接口添加新 API 需要修改源代码。AirSim 支持的各种抽象级别都需要进行大量更改。下面描述了需要修改的主要文件。此外,如果不确定如何进行更改或获得反馈,请不要犹豫打开问题或 PR 草案。

    3.1 实现 API在添加调用和处理 API 之前,需要先将添加的API实现。下面给出了几个示例:

    (1)基于车辆的 API【moveByVelocityBodyFrameAsync】API是用于多旋翼 XY 坐标系中基于速度的运动调节。

    在某些情况下,可能需要额外的结构来存储数据,【getRotorStates】API就是一个很好的例子,这里RotorStates在 2 个地方定义了结构,主要用于从RPC到内部代码的转换。但它还需要在AirLib和Unreal/Plugins中进行修改才能实现。

    (2)环境相关的API

    这些有关环境的API需要与模拟环境本身进行交互,通常会在Unreal/Plugins文件夹内实现,比如:

    • 【simCreateVoxelGrid】API主要用于生成和保存 binvox 格式的环境网格 - WorldSimApi.cpp
    • 【simAddVehicle】API用于在运行时创建车辆 - SimMode*、WorldSimApi 文件

    更多有关Airsim创建新的API接口,请参阅网址:https://microsoft.github.io/AirSim/adding_new_apis/

    结束语本期关于AirSim的所有API介绍到这里就结束了。作为一个能够在电脑端就能实现深度学习、计算机视觉和强化学习算法,拥有着高性能、真实虚拟世界地图仿真,AirSim研究平台的确富有前景。其中所提供的API接口也是Airsim能够得到广泛应用的关键,所以这两期有关API接口的介绍也是至关重要的,希望关注Airsim的同学们可以认真看看文章或者官网。

    官方资料本期PX4更新内容网址:https://microsoft.github.io/AirSim/apis/

    • End -技术发展的日新月异,阿木实验室将紧跟技术的脚步,不断把机器人行业最新的技术和硬件推荐给大家。看到经过我们培训的学员在技术上突飞猛进,是我们培训最大的价值。如果你在机器人行业,就请关注我们的公众号,我们将持续发布机器人行业最有价值的信息和技术。阿木实验室致力于前沿IT科技的教育和智能装备,让机器人研发更高效!

    内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/49992.html

    (0)

    相关推荐

    • 第一次孕检要憋尿吗,第一次孕检需要空腹吗做什么检查

      2021年11月4日,陪小老弟到北京积水潭医院(新街口院区)做孕检,也不知道小老弟肚子里的小老虎几周了,希望小老虎身体健康、正常发育,也希望小老弟好好的养胎,一切一切的顺心顺意。

      生活 2021年11月4日
    • “吃得少,活得久”饭量小的人更容易长寿?

      相信大家都听说过这样一句话,那就是病从口入,平时的饮食对身体的影响是非常大的,如果自己拥有良好的饮食习惯,合理的搭配,一日三餐那身体也会更强壮一些。 现在很多人都会觉得,吃的少才能...

      生活 2021年9月12日
    • 双语儿童各阶段对应的英语词汇。

      提供给宝妈们,英语启蒙过程中,可以对照参考一下。

      生活 2021年11月4日
    • 1岁3月宝宝做雾化,哭的撕心裂肺,妈妈心疼的要死了

      中秋节那几天变天,宝宝突然打喷嚏,咳嗽几声我就赶紧吃了一包药,没管事,第二天直接找比较好的大夫看了,告诉医生宝宝有点咳嗽,有一点点鼻涕,大夫给胸口贴药,药给了2天3种药,2天后直接成了大鼻涕,果断换了大夫,给换了配了2天,宝宝不咳嗽了,鼻涕一点点,然后告诉医生宝宝好像嗓子有痰,说没事。结果坏事了,昨天开始不睡觉,哭哇哇的,撕心裂肺的嚎哭,嗓子呼噜呼噜,一小时醒一次,不让抱也不喝水,心疼的要命今天去看医生让雾化,我直接懵逼,还以为直接把痰吸出来呢。只要孩子能好啥雾化不雾化的已经顾不了那么多了。护士小姐姐只管把管子罩子给我说放在鼻子口腔哪里就行,结果孩子折腾全部浪费掉。旁边阿姨还有妈妈说你不能这样,一共就2毫升孩子一点都没吸进去,怎地怎地,七嘴八舌,我说我也不懂呀,还有一点点咋弄,一堆人教我,可惜没有药了,好像大夫听不下去了 又从药房罐了药水叫来护士小哥哥帮我扶着罩子,我按着孩子小胳膊,这一个劲哭呀,脸通红到脖子跟,一身的汗,头发毫不夸张的说跟水洗一样一样的,上衣也全部湿透了,其中挣扎掉罩子2次,从来也没让孩子哭成这样。雾化完,爬在我肩膀又哭了好一阵子,太伤心了,到家使劲打我胳膊,是在发泄吧。

      生活 2021年9月30日
    • 进入创投“深水区”:A轮进入的芯片项目一事无成!如何抛出热硬技术?

      过去一年,几乎所有人都感知到自己身处的环境和整个经济社会正在发生许多变化:新冠疫情得到遏制、国内经济起起伏伏、一些行业正在被整顿......然而,对投资而言,这些变化都孕育着机会:在变化中寻找不变,以不变应万变,成为当下不少投资人的投资逻辑。

      科技 2021年10月24日
    • 数据可视化之pyecharts系列(三) 基本图表绘制

      pyecharts是一款将python与echarts结合的强大的数据可视化工具,本系列文章将为你阐述pyecharts的使用细则,让你对数据进行可视化处理时更加得心应手。这一系列中全部代码在Windows 10系统下基于Python3.7和pyecharts1.9.0实际运行通过。

      科技 2021年10月31日