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)

    相关推荐