正在上传图片(0/1)

无人机怎么yaw转动

 0
手机看帖 7 1482
无人机怎么yaw转动,调用什么api,FlightController().getState().setAttitude  好像没有效果啊
评论
上传
你需要登录之后才能回帖    登录 | 注册
paul zhou   2020-7-23 3#
帮顶
kv886   2020-7-23 4#
要用虚拟摇杆virtual stick 的相关方法。
LRQQQ  Osmo Mobile 3认证用户 2020-7-24 5#
setYawControlMode(YawControlMode.ANGULAR_VELOCITY)或者setYawControlMode(YawControlMode.ANGLE),直接给YAW赋值就好了。这个在官方的demo中有示例的
楼主  Phantom 4 Advanced认证用户 2020-7-24 6#
LRQQQOsmo Mobile 37-24 15:49
setYawControlMode(YawControlMode.ANGULAR_VELOCITY)或者setYawControlMode(YawControlMode.ANGLE),直接给YAW赋值就好了。这个在官方的demo中有示例的
您好  那我让它每次旋转90度,每次加90,超过180就改成(原角度+90)-360这样旋转    但是实际上他并没有完全按照设定的角度旋转,这是我的代码
    private void aircraftYaw(float angle){
        Attitude attitude = flightController.getState().getAttitude();
        float pitch = (float) attitude.pitch;
        float roll = (float) attitude.roll;
        float yaw = (float) attitude.yaw + angle;

        if (yaw > 180){
            yaw = yaw - 360;
        }

        flightController.sendVirtualStickFlightControlData
                (new FlightControlData(pitch, roll, yaw,0),
                        null);
    }
楼主  Phantom 4 Advanced认证用户 2020-7-24 7#
kv8867-23 19:52
要用虚拟摇杆virtual stick 的相关方法。
您好  那我让它每次旋转90度,每次加90,超过180就改成(原角度+90)-360这样旋转    但是实际上他并没有完全按照设定的角度旋转,这是我的代码
    private void aircraftYaw(float angle){
        Attitude attitude = flightController.getState().getAttitude();
        float pitch = (float) attitude.pitch;
        float roll = (float) attitude.roll;
        float yaw = (float) attitude.yaw + angle;

        if (yaw > 180){
            yaw = yaw - 360;
        }

        flightController.sendVirtualStickFlightControlData
                (new FlightControlData(pitch, roll, yaw,0),
                        null);
    }
kv886   2020-7-24 8#
djiuser_2qce9367-24 16:23
您好  那我让它每次旋转90度,每次加90,超过180就改成(原角度+90)-360这样旋转    但是实际上他并没有完全按照设定的角度旋转,这是我的代码
    private void aircraftYaw(float angle){
        Attitude attitude = flightController.getState().getAttitude();
        float pitch = (float) attitude.pitch;
        float roll = (float) attitude.roll;
        float yaw = (float) attitude.yaw + angle;

        if (yaw > 180){
            yaw = yaw - 360;
        }

        flightController.sendVirtualStickFlightControlData
                (new FlightControlData(pitch, roll, yaw,0),
                        null);
    }
这个命令不能只发一次,要以一定频率发送才可以,文档上有说明的。
fansi   2021-8-7 9#
djiuser_2qce936Phantom 4 Advanced2020-7-24 16:23
您好  那我让它每次旋转90度,每次加90,超过180就改成(原角度+90)-360这样旋转    但是实际上他并没有完全按照设定的角度旋转,这是我的代码
    private void aircraftYaw(float angle){
        Attitude attitude = flightController.getState().getAttitude();
        float pitch = (float) attitude.pitch;
        float roll = (float) attitude.roll;
        float yaw = (float) attitude.yaw + angle;

        if (yaw > 180){
            yaw = yaw - 360;
        }

        flightController.sendVirtualStickFlightControlData
                (new FlightControlData(pitch, roll, yaw,0),
                        null);
    }
大佬, 这个问题解决了么?  我也遇到同样的问题了
收藏 点赞 评论
分享至:
回复:
上传
取消 评论
快速回复 返回顶部 返回列表