我目前正在做一个模拟项目,使用Mavic Mini和Mobile SDK在Unity中跟踪无人机的当前位置。
到目前为止,我已经完成了Unity环境和Android应用程序之间的TCP连接。我的下一步是提取无人机的坐标,并将它们转换为Unity坐标
我尝试的是使用FlightControllerState来获得XYZ速度:
mFlightController = aircraft.getFlightController();
或mState = aircraft.getFlightController().getState();
然而,当我试图访问速度值时,这两个方法都会返回0和NaN值(即使我已经控制了无人机移动)
如果使用aircraft.getFlightController(),则mState.getVelocityX();返回0;如果使用,则返回NaN
mState = aircraft.getFlightController().getState();
Edit*:我确实尝试使用了FlightContrllerState的回调函数
mFlightController.setStateCallback(new FlightControllerState.Callback() {
@Override
public void onUpdate(@NonNull FlightControllerState flightControllerState)
{
v1 = Float.toString((float) flightControllerState.getVelocityX());
v2 = Float.toString((float) flightControllerState.getVelocityY());
v3 = Float.toString((float) flightControllerState.getVelocityZ());
strings[0] = v1;
strings[1] = v2;
strings[2] = v3;
}仍然得到相同的结果(0) :(
以前有没有人尝试过这样做,请告诉我如何解决这个问题
非常感谢你的帮助
谢谢
发布于 2021-04-27 23:29:27
你试过dji钥匙了吗?
key = FlightControllerKey.create(FlightControllerKey.VELOCITY_X)
DJISDKManager.getInstance().getKeyManager().addListener((DJIKey)key, (@Nullable Object oldValue, @Nullable Object newValue) -> {....}https://stackoverflow.com/questions/67255514
复制相似问题