1. C++ API を介して Airsim でドローンエフェクトデモンストレーションを制御する
コンソールのスクリーンショット
UE4 のスクリーンショット
2. 正しい静的リンク ライブラリを含める
1. 必要なリンク ライブラリを見つけます。
Airsim 公式 Web サイトを参照してください: C++ API - AirSim
上記の公式 Web サイトのガイダンスのスクリーンショットからわかるように、必要なヘッダー ファイルは 4 つの部分で構成されています。
①含む
②AirLib/含む
③AirLib/deps/rpclib/include
④AirLib/deps/eigen3
⑤AirLib/deps/MavLinkCom/include
必要な静的リンク ライブラリには次の 3 つの部分があります。
①rpc.lib
②AirLib.lib
③MavLinkCom.lib
したがって、公式 git clone ファイルから AirLib プロジェクトを見つけ、スクリーンショットの内容を独自のプロジェクトにコピーし、上記の構成に従って静的リンク ライブラリを構成し、正しいヘッダー ファイルを含めることができます。
2. 追加のインクルードディレクトリ
正しいヘッダー ファイルを構成して含めるには、上のスクリーンショットを参照してください。
3. 追加のライブラリ ディレクトリを構成する
追加のライブラリのディレクトリ (静的リンク ライブラリが配置されている場所) を構成するには、上のスクリーンショットを参照してください。
4. 追加の依存関係を構成する
追加の依存関係を構成するには、上記のスクリーンショットを参照してください
3. 制御コードを書く
このコードは実際には公式のコピー例であり、以下にいくつかのコメントが追加されています。
#include <iostream>
#include "vehicles/multirotor/api/MultirotorRpcLibClient.hpp"
int main()
{
msr::airlib::MultirotorRpcLibClient client;
std::cout << "Press Enter to enable API control\n"; std::cin.get(); // 按下回车键开启API控制
client.enableApiControl(true);
std::cout << "Press Enter to arm the drone\n"; std::cin.get(); // 按下回车解锁无人机
client.armDisarm(true);
std::cout << "Press Enter to takeoff\n"; std::cin.get(); // 按下回车键起飞无人机
client.takeoffAsync(5)->waitOnLastTask();
std::cout << "Press Enter to move 5 meters in x direction with 1 m/s velocity\n"; std::cin.get(); // 按下回车键往前飞行
auto position = client.getMultirotorState().getPosition(); // from current location
client.moveToPositionAsync(position.x() + 5, position.y(), position.z(), 1)->waitOnLastTask();
std::cout << "Press Enter to land\n"; std::cin.get(); // 按下回车键降落无人机
client.landAsync()->waitOnLastTask();
std::cout << "Press Enter to disenable\n"; std::cin.get(); // 按下回车键关闭API控制
client.enableApiControl(false);
return 0;
}
四番目、終わり
上記はすべての手順であり、これまでのところ、C++ プログラムを通じて Airsim でドローンまたは車を制御できます。後で、これらのコードは UE4 のクラスにカプセル化されます。(または、Qt を使用し、別のボタンを押し、別の API を呼び出して airsim を制御します)