Skip to main content

AirSim的初步配置与Python API调用

· 3 min read
Muel - Nova

(因为找不到相关logo所以偷了个banner_img())

安装 Unreal Engine 4

  1. 下载 Epic Games Launcher
  2. 运行 Epic Games Launcher, 下载Unreal Engine 4 >= 4.25的版本

编译 AirSim

准备工作

安装Visual Studio 2019, 并安装 Desktop Development with C++Windows 10 SDK >= 10.0.18362(默认自动勾选)

开始编译

  1. 通过git clone https://github.com/microsoft/AirSim.git将AirSim克隆到本地
  2. 使用 Developer Command Prompt for VS 2019 并进入 AirSim 目录, 运行build.cmd

创建 Unreal 项目

Microsoft 官方教程与解释

AirSim 自带了 "Blocks Enviroment" 可以使用,不过我们选择创建自己的 Unreal Environment

  • 在 Epic Games Launcher 中选择 "学习" 并下载 "山脉景观"(当然我们也可以选择其他的)。

  • 点击文件,新建一个C++类, 使用默认名称并创建类。

  • 复制 %PATH%/AirSim/Unreal/Plugins到项目目录。

    如果你找不到Plugins,则请使用 Developer Command Prompt for VS 2019 在 %PATH%/AirSim/Unreal/Environments\Blocks 下运行 update_to_git.bat

  • 编辑%Projects%.uproject, 添加AdditionalDependenciesPlugins, 在这之后你的文件应该看上去像这个样子。

    {
    "FileVersion": 3,
    "EngineAssociation": "4.27",
    "Category": "Samples",
    "Description": "",
    "Modules": [
    {
    "Name": "LandscapeMountains",
    "Type": "Runtime",
    "LoadingPhase": "Default",
    "AdditionalDependencies": [
    "AirSim"
    ]
    }
    ],
    "TargetPlatforms": [
    "MacNoEditor",
    "WindowsNoEditor"
    ],
    "Plugins": [
    {
    "Name": "AirSim",
    "Enabled": true
    }
    ]
    }
  • 右键%Project%.uproject文件并选择Generate Visual Studio Project Files

  • 使用VS打开%Project%.sln文件, 选择 "DebugGame Editor"和"Win64" 作为编译参数并运行。

  • 现在你应该已经可以在你自己的Unreal环境中使用AirSim, 记得保存你的设置!

Run Python API

在本文下,我所使用的环境是 Conda + Python3.8

先进行包的安装

 pip install msgpack-rpc-python
pip install airsim

先对无人机进行最简单的控制

需要先获取无人机Client之后启用API控制, 同时你需要解锁无人机

使用.join()对无人机使用 Async 方法进行控制 否则在无人机动作未完成之前就执行下一动作

最简单的例子:

import airsim

client = airsim.MultirotorClient() # 连接到无人机
client.enableApiControl(True) # 获取控制权
client.armDisarm(True) # 解锁
client.takeoffAsync().join() # 起飞
client.landAsync(),join() # 降落
client.armDisarm(False)
client.enableApiControl(False)
Loading Comments...