airsim手动控制无人机-详细搭建过程

首先需要完成我的上一个博客,win10-airsim-unreal安装配置教程

本文的步骤完成后,就可以在unreal中用遥控器手动控制无人机飞行。

  1. 打开Epic Games Launcher,

  2. 点击左下角的设置,将语言改为English (United States)。因为如果是中文的话,会造成中文路径,导致一系列问题。

  3. 回到主页面,点击左侧的Unreal Engine,然后点击上面的Learn
    airsim手动控制无人机-详细搭建过程_第1张图片

  4. 一直往下翻,找到Landscape Mountains,并且点击它;

  5. 在打开后的页面中点击creat project,如果是第一次打开是需要先下载的。

  6. 写一个项目名称,我这里就直接默认了,并且选择一个路径。点击Creat

    注意,一定要确保路径没有中文。

    注意如果没有改语言,这里会是默认中文的,然后后面的步骤就会出现错误。
    airsim手动控制无人机-详细搭建过程_第2张图片

  7. 创建完成之后,在你刚才选择的路径中会出现一个文件夹。

  8. 打开文件夹中的LandscapeMountains.uproject,会自动打开Unreal Editor.

  9. 文件菜单中,选择新建C++类,选择类型为none,点击继续,默认命名为MyClass,最后点击创建类。然后会触发编译,同时会创建Visual Studio工程文件LandscapeMountain.sln。然后会打开Visual Studio Comunity 2017.

    因为Unreal要求最少有一个源文件,所以我们必须这么做。

  10. 在安装的airsim文件路径中,找到Unreal\Plugins文件夹,并将这个文件夹复制到你刚刚创建的工程LandscapeMountains文件夹下。这时,你的Unreal工程也包含了Airsim插件。

  11. 为了能够正常使用Airsim插件,还得编辑Landscapmountains.uproject。(注意不能用记事本打开)修改这个文件如下所示:

    {
        "FileVersion": 3,
        "EngineAssociation": "4.18",
        "Category": "Samples",
        "Description": "",
        "Modules": [
            {
                "Name": "LandscapeMountains",
                "Type": "Runtime",
                "LoadingPhase": "Default",
                "AdditionalDependencies": [
                    "AirSim"
                ]
            }
        ],
        "TargetPlatforms": [
            "MacNoEditor",
            "WindowsNoEditor"
        ],
        "Plugins": [
            {
                "Name": "AirSim",
                "Enabled": true
            }
        ]
    }
    
  12. 关闭Visual Studio, 关闭Unreal Editor。在文件夹中,右击LandscapeMountains.uproject。点击Generate visual Studio Project Files

    这一步会检测所有的插件和源文件,并生成.sln文件。

如果右键没有Generate visual Studio Project Files,也可以使用命令行来做:

cd C:/Program Files/Epic Games/UE_4.18/Engine/Binaries/DotNET/

UnrealBuildTool.exe -projectfiles -project="D:/unreal-proj/LandscapeMountains/LandscapeMountains.uproject" -game -rocket -progress
  1. 打开LandscapeMountains.sln,使用Visual Studio 。

  2. 在visual studio中,设置编译模式为DebugGame EditorWin64.
    airsim手动控制无人机-详细搭建过程_第3张图片

  3. 将解决方案管理器中的LandscapeMountains设为启动项目。(右击LandscapeMountains,选择设为启动项目)。

  4. 在Visual Studio中点击调试->开始调试,此时会自动编译,并打开Unreal Editor

  5. 在Unreal Editor中的右上角,世界大纲视图中,搜索play,会出来很多player start。留下第一个,将其他的全部删除。

  6. 设置遥控器。我用的是官方推荐的frsky,这里的原理是:airsim直接读取win10系统的游戏控制器的数据,默认是第一个。所以需要用一个能够在遥控器上调整通道数据的遥控器。

    查看遥控器可不可以用,就打开win10的游戏控制器,然后摆弄手柄,看看有没有反应。

    在这里,如果是左右油门的习惯的话,遥控器的1和4通道应该对应win10游戏手柄的x和y轴;遥控器的2和3通道应该对应x旋转和y旋转。

  7. 点击右下角的世界设置,将Game Mode设置为AirSimGameMode

  8. 修改settings.json文件。每次运行游戏的时候,都会自动读取这个文件。这个文件的位置,在c盘的documents里面。关于这个文件的解释,可以看官方文件,也可以看我自己总结的一个博客。

    {
      "SeeDocsAt": "https://github.com/Microsoft/AirSim/blob/master/docs/settings.md",
      "SettingsVersion": 1.2,
      "SimMode": "Multirotor",
      "LocalHostIp": "127.0.0.1",
      "RpcEnabled": true,
      "EngineSound": false,
      "ViewMode": "",
      "OriginGeopoint": {
        "Latitude": 47.641468,
        "Longitude": -122.140165,
        "Altitude": 122
      },
      "CameraDefaults": {
        "CaptureSettings": [
          {
            "ImageType": 0,
            "Width": 320,
            "Height": 240,
            "FOV_Degrees": 90,
            "AutoExposureSpeed": 100,
            "MotionBlurAmount": 0
          }
        ]
      },
      "SubWindows": [
        {
          "WindowID": 0,
          "ImageType": 0,
          "CameraName": "0",
          "Visible": true
        },
        {
          "WindowID": 1,
          "ImageType": 3,
          "CameraName": "0",
          "Visible": true
        },
        {
          "WindowID": 2,
          "ImageType": 5,
          "CameraName": "0",
          "Visible": true
        }
      ],
      "Vehicles": {
        "UAV1": {
          "VehicleType": "SimpleFlight",
          "X": 12,
          "Y": 0,
          "Z": -1
        }
      }
      }
    
  9. 点击播放按钮,就可以手动控制无人机了。

  10. 最后列出一些快捷键:

    1. shift+f1:出现鼠标
    2. f:fly with me视角,也就是无人机上的摄像头视角
    3. 1, 2, 3:分别对应三个小窗口
    4. 0:三个小窗口全部显示\隐藏

你可能感兴趣的:(工程类)