AirSim学习(1)-介绍,安装,unity测试

这篇具有很好参考价值的文章主要介绍了AirSim学习(1)-介绍,安装,unity测试。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

home

AirSim是一款基于虚幻引擎的无人机、汽车等模拟器(我们现在也有一个实验性的Unity版本)。它是开源的,跨平台的,支持使用流行的飞行控制器(如PX4和ArduPilot)进行软件在环模拟,并支持使用PX4进行物理和视觉逼真模拟的硬件在环模拟。它是作为一个虚幻插件开发的,可以简单地放入任何虚幻环境中。类似地,我们有一个Unity插件的实验版本。

我们的目标是将AirSim开发为人工智能研究的平台,以试验用于自动驾驶汽车的深度学习、计算机视觉和强化学习算法。为此,AirSim还公开了api,以平台独立的方式检索数据和控制车辆。

build环境

window(其他不做说明)

一、安装虚幻引擎,确保4.27为当前版本。
二、安装AirSim
  • 安装Visual Studio 2022。确保选择Desktop Development with c++ and Windows 10 SDK 10.0.19041(默认选择),并在安装VS 2022时,在“个别组件”选项卡下选择最新的.NET Framework SDK
  • 启动 Developer Command Prompt for VS 2022
  • 克隆repo: git克隆https://github.com/Microsoft/AirSim.git,通过cd AirSim进入AirSim目录

注意:在C盘中安装AirSim通常不是一个好主意。这可能会导致脚本失败,并且需要在管理模式下运行VS。相反,克隆在不同的驱动器,如D或E。

  • 运行在cmd命令行build.cmd。这将在unreal\Plugins 文件夹下创建项目所需文件
    airsim,AirSim,学习,unity,游戏引擎
三、创建虚幻项目

最后,您将需要一个虚幻项目,为您的工具托管环境。在构建你的第一个环境之前,如果你还没有这样做,请确保关闭并重新打开虚幻引擎和Epic Games启动器。重新启动Epic Games启动器后,它会要求您将项目文件扩展名与虚幻引擎关联,单击“立即修复”来修复它。AirSim有一个内置的“块环境”,你可以使用,或者你可以创建自己的。

四创建远程控制

如果你想手动飞行就需要一个远程控制,远程控制设置细节:

当然,你也可以使用api进行编程控制,或者使用所谓的计算机视觉模式来使用键盘移动。

1.RC设置默认配置

默认情况下,AirSim使用simple_flight作为它的飞行控制器,它通过USB端口连接到RC到你的电脑。

注意:简单飞行模式 是AirSim 有一个名为 simple_flight 的内置飞行控制器,它是默认使用的。您无需执行任何操作即可使用或配置它。AirSim 还支持PX4作为高级用户的另一个飞行控制器。未来,我们还计划支持ROSFlight和Hackflight。

详细说明及配置见:https://microsoft.github.io/AirSim/simple_flight/
你可以使用XBox控制器或FrSky Taranis X9D Plus。注意XBox 360的控制器不够精确,如果你想要更多真实世界的体验,不建议使用。

2. AirSim Api(使用遥控器条件不允许时)

AirSim 公开 API,因此您可以通过编程方式与模拟中的车辆进行交互。您可以使用这些 API 来检索图像、获取状态、控制车辆等。
注意:对于汽车官方文档中只有汽车的键盘控制,没有飞机键盘控制,如果想要飞机被控制,只能自己写套控制触发脚本,或者使用他给的python或者c++的api控制,进行模拟飞行。

主要介绍:Python方式

要求安装Anaconda 和Python 3.5 以上版本

在创建的虚拟环境下,安装两个库(或者在cmd进入虚拟环境中使用pip安装或者在pycharm引擎中安装)

pip install msgpack-rpc-python

pip install airsim

创建虚拟环境的过程可见虚拟环境创建文章
控制car的python脚本:

# ready to run example: PythonClient/car/hello_car.py
import airsim
import time

# connect to the AirSim simulator
client = airsim.CarClient()
client.confirmConnection()
client.enableApiControl(True)
car_controls = airsim.CarControls()

while True:
    # get state of the car
    car_state = client.getCarState()
    print("Speed %d, Gear %d" % (car_state.speed, car_state.gear))

    # set the controls for car
    car_controls.throttle = 1
    car_controls.steering = 1
    client.setCarControls(car_controls)

    # let car drive a bit
    time.sleep(1)

    # get camera images from the car
    responses = client.simGetImages([
        airsim.ImageRequest(0, airsim.ImageType.DepthVis),
        airsim.ImageRequest(1, airsim.ImageType.DepthPlanar, True)])
    print('Retrieved images: %d', len(responses))

    # do something with images
    for response in responses:
        if response.pixels_as_float:
            print("Type %d, size %d" % (response.image_type, len(response.image_data_float)))
            airsim.write_pfm('py1.pfm', airsim.get_pfm_array(response))
        else:
            print("Type %d, size %d" % (response.image_type, len(response.image_data_uint8)))
            airsim.write_file('py1.png', response.image_data_uint8)

控制模拟四旋翼飞行器

# ready to run example: PythonClient/multirotor/hello_drone.py
import airsim
import os

# connect to the AirSim simulator
client = airsim.MultirotorClient()
client.confirmConnection()
client.enableApiControl(True)
client.armDisarm(True)

# Async methods returns Future. Call join() to wait for task to complete.
client.takeoffAsync().join()
client.moveToPositionAsync(-10, 10, -10, 5).join()

# take images
responses = client.simGetImages([
    airsim.ImageRequest("0", airsim.ImageType.DepthVis),
    airsim.ImageRequest("1", airsim.ImageType.DepthPlanar, True)])
print('Retrieved images: %d', len(responses))

# do something with the images
for response in responses:
    if response.pixels_as_float:
        print("Type %d, size %d" % (response.image_type, len(response.image_data_float)))
        airsim.write_pfm(os.path.normpath('/temp/py1.pfm'), airsim.get_pfm_array(response))
    else:
        print("Type %d, size %d" % (response.image_type, len(response.image_data_uint8)))
        airsim.write_file(os.path.normpath('/temp/py1.png'), response.image_data_uint8)
五.在运行ue4或者unity插件后进行基本场景测试:

airsim,AirSim,学习,unity,游戏引擎

  • 点击play

  • 运行pycharm中的hello car.py模拟文件

-ue4或者unity中选择car,即可观察汽车被程序所控制
airsim,AirSim,学习,unity,游戏引擎

同理飞机的效果图如图:
airsim,AirSim,学习,unity,游戏引擎

注意:hello_drone代码部分卡在airsim.wait_key(‘Press any key to takeoff’) 在pycharm中无法触发,需要进行如下图的配置,才能在run界面触发。
airsim,AirSim,学习,unity,游戏引擎airsim,AirSim,学习,unity,游戏引擎
c++方式:略
总体官方案例能跑起来就是完成了第一步。
接下来会有很多章,来记录和解决诸多问题(此处主要用unity作为前端模拟器,ue后期转换问题会有统计)文章来源地址https://www.toymoban.com/news/detail-651752.html

到了这里,关于AirSim学习(1)-介绍,安装,unity测试的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Win11环境下,AirSim和UE4安装

    这里主要描述一下我前段时间成功安装AirSim和UE4的流程,中间也遇到过一些问题,刚开始我安装的是最新的UE5,但是不知道什么情况运行AirSim中的blocks模块始终没有成功,VisualStudio中提示Unable to find plugin \\\'PhysXVehicles\\\' (后面从win10-airsim-Unreal 安装配置教程(踩坑)_h:airsimairsim

    2024年04月09日
    浏览(53)
  • 【详细】Ubuntu20.04系统安装Airsim仿真器

    目录 一.必要的设置 1.注册一个Epic Games帐户 2.注册一个 Github 账户 3.关联 二.下载UE4 on Linux 方法1:使用GitHub页面上的下载功能 方法2:使用 git(代码行) 1.http 2.git 三.编译UE4 1.进入工程文件夹 2.运行脚本,配置依赖环境 3.运行工程配置脚本 4.编译UE4 5.测试安装 四.下载 Airsim

    2024年01月16日
    浏览(44)
  • ubuntu20.04安装UE4+Airsim环境

    参考: 1、Airsim官方文档 2、Archlinux社区 官方提示UE4版本需要=4.27,这里就按推荐安装4.27 建议在 make 前更改部分源码 注意请按照上述方法直接下载源码,使用release安装之后会有部分文件夹显示没有读取权限,需要重新更改文件夹权限,增加工作量。 在更多中选择 {Airsim flode

    2024年02月01日
    浏览(54)
  • 【番外】在Windows安装Airsim/UE4踩坑合集

    具体步骤参考知乎大佬宁子安的文章: https://zhuanlan.zhihu.com/p/618440744 或者是airsim官方网站的步骤: https://microsoft.github.io/AirSim/build_windows/ 我这里写几个自己安装过程中踩的坑和报的错: 我运行正常的版本为: win10 vs2022 UE4(4.27.2) Airsim 1.8.1 问题在于没有关联虚幻引擎与Air

    2024年02月02日
    浏览(42)
  • UE4及Airsim安装时遇到的问题及解决办法

    我根据知乎上一篇博主的教程来进行安装UE4和Airsim,期间遇到了一些问题,在这里总结并给出可能的解决方法 教程:(解密AirSim-初稿)第一章:初识AirSim - 知乎 (zhihu.com) UE4是在Epic平台上的,而这个游戏平台在几家游戏平台里面虽然不是最慢的,但是速度也不稳定,我连接校

    2024年02月15日
    浏览(51)
  • Ubuntu 20.04 + UE4.27 + Airsim + ROS 学习(2)(显卡rtx 4060+双系统)

    由于换了电脑,所以又重新配置了一下环境,所以想把自己在搭建过程中解决的一些问题进行分享。我是主体参考的Ubuntu18.04搭建AirSim+ROS仿真环境_airsim ros-CSDN博客小青蛙大佬的这篇,但是在顺着他的思路往下搭的时候自己也遇到了很多问题,所幸都解决了! 1. 首先是获取U

    2024年02月04日
    浏览(48)
  • Airsim雷达相机融合生成彩色点云

    代码,cmake,launch等都在网盘链接中 链接: https://pan.baidu.com/s/14hWBDnRZC41xkqAk6FirtA 提取码: 1een --来自百度网盘超级会员v4的分享 3D激光雷达和相机的融合指的是将激光雷达获得的3D点,投影到相机图像上,从而给图像每个像素点添加深度信息或者为雷达获取到的3D点添加RGB信息。

    2024年02月08日
    浏览(45)
  • Ubuntu18.04搭建AirSim+ROS仿真环境

    AIRSIM在UBuntu 18.04上构建的官网文档 AIRSIM是依赖于UE4引擎实现的,因此在安装AIRSIM之前要安装UE4引擎。 在Ubuntu上安装UE4引擎需要从源文件进行编译,因此我们需要访问UE4的github仓库。但想要访问UE4的github仓库,我们就必须建立github与UE4许可的链接,否则直接访问UE4的github仓库时就

    2023年04月08日
    浏览(100)
  • Win10配置Airsim环境并设置Python通信

    和朋友交流时,了解到微软开发了一个仿真环境叫Airsim,可以作为插件插入到虚幻引擎4中,进行汽车、无人机等实际环境的仿真。于是打算跟着知乎宁子安写的教程来配置一下环境。 官方文档:https://microsoft.github.io/AirSim/ 官方仓库:https://github.com/microsoft/AirSim 经过了无数的

    2023年04月12日
    浏览(75)
  • AirSim编译不通过:C1900 “P1“ “P2“不匹配

    去年8月份在笔记本上玩过一阵子AirSim,今天刚好有空,就想拿出来再玩一会儿,结果发现死活编译通不过。即便是官方给的Block例程也编译不过,一直报以下错误:  C1900    “P1”(第“20220715”版)和“P2”(第“20210202”版)之间 Il 不匹配     说一下我的配置。我去年8月用的

    2024年02月12日
    浏览(56)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包