C++API controla la configuración de la biblioteca de enlaces estáticos de Airsim

1. Controle la demostración del efecto del dron en Airsim a través de la API de C++

                                                    captura de pantalla de la consola

                                                     Capturas de pantalla en UE4

2. Incluya la biblioteca de enlaces estáticos correcta

1. Encuentre la biblioteca de enlaces requerida

Consulte el sitio web oficial de Airsim: API de C++ - AirSim

Como se puede ver en la captura de pantalla de la guía del sitio web oficial anterior, el archivo de encabezado que necesitamos tiene cuatro partes:

① incluir

②AirLib/incluir

③AirLib/deps/rpclib/incluir

④AirLib/deps/eigen3

⑤AirLib/deps/MavLinkCom/include

La biblioteca de enlaces estáticos que necesitamos tiene las siguientes tres partes:

①rpc.lib

②AirLib.lib

③MavLinkCom.lib

Por lo tanto, podemos encontrar el proyecto AirLib en el archivo de clonación oficial de git, copiar el contenido de mi captura de pantalla en nuestro propio proyecto y luego configurar la biblioteca de enlaces estáticos de acuerdo con la configuración anterior e incluir el archivo de encabezado correcto.

2. Directorio de inclusión adicional

Consulte mi captura de pantalla anterior para configurar e incluir el archivo de encabezado correcto

3. Configurar directorios de biblioteca adicionales

Consulte la captura de pantalla anterior para configurar el directorio de la biblioteca adicional (donde se encuentra la biblioteca de enlaces estáticos)

4. Configurar dependencias adicionales

Consulte mi captura de pantalla anterior para configurar dependencias adicionales

3. Escribir código de control

El código es en realidad un ejemplo oficial de copia, y se agregan algunos comentarios a continuación:

#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;
}

Cuarto, el final

Los anteriores son todos los pasos, hasta ahora podemos controlar el dron o el automóvil en Airsim a través de un programa C ++. En el futuro, estos códigos se encapsularán en clases en UE4. (O use Qt, presione diferentes botones y controle airsim llamando a diferentes API)

Supongo que te gusta

Origin blog.csdn.net/hu853712064/article/details/130650668
Recomendado
Clasificación