正在上传图片(0/1)

无人机怎么yaw转动

 0
手机看帖 7 1887
无人机怎么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#
<div class="quote"><blockquote><a class="nopicture" rel="noopener" href="https://bbs.dji.com/forum.php?mod=redirect&amp;goto=findpost&amp;pid=3661373&amp;ptid=249435" target="_blank"><span class="customName">LRQQQ</span><span class="customShow">Osmo Mobile 3</span><span class="customTime">7-24 15:49</span></a>
<span class="customSpan">setYawControlMode(YawControlMode.ANGULAR_VELOCITY)或者setYawControlMode(YawControlMode.ANGLE),直接给YAW赋值就好了。这个在官方的demo中有示例的</span></blockquote></div>您好  那我让它每次旋转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 &gt; 180){
            yaw = yaw - 360;
        }

        flightController.sendVirtualStickFlightControlData
                (new FlightControlData(pitch, roll, yaw,0),
                        null);
    }
楼主  Phantom 4 Advanced认证用户 2020-7-24 7#
<div class="quote"><blockquote><a class="nopicture" rel="noopener" href="https://bbs.dji.com/forum.php?mod=redirect&amp;goto=findpost&amp;pid=3660412&amp;ptid=249435" target="_blank"><span class="customName">kv886</span><span class="customShow"></span><span class="customTime">7-23 19:52</span></a>
<span class="customSpan">要用虚拟摇杆virtual stick 的相关方法。</span></blockquote></div>您好  那我让它每次旋转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 &gt; 180){
            yaw = yaw - 360;
        }

        flightController.sendVirtualStickFlightControlData
                (new FlightControlData(pitch, roll, yaw,0),
                        null);
    }
kv886   2020-7-24 8#
<div class="quote"><blockquote><a class="nopicture" rel="noopener" href="https://bbs.dji.com/forum.php?mod=redirect&amp;goto=findpost&amp;pid=3661397&amp;ptid=249435" target="_blank"><span class="customName">djiuser_2qce936</span><span class="customShow"></span><span class="customTime">7-24 16:23</span></a>
<span class="customSpan">您好  那我让它每次旋转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 &gt; 180){
            yaw = yaw - 360;
        }

        flightController.sendVirtualStickFlightControlData
                (new FlightControlData(pitch, roll, yaw,0),
                        null);
    }</span></blockquote></div>这个命令不能只发一次,要以一定频率发送才可以,文档上有说明的。
fansi   2021-8-7 9#
<div class="quote"><blockquote><a class="nopicture" rel="noopener" href="https://bbs.dji.com/forum.php?mod=redirect&amp;goto=findpost&amp;pid=3661397&amp;ptid=249435" target="_blank"><span class="customName">djiuser_2qce936</span><span class="customShow">Phantom 4 Advanced</span><span class="customTime">2020-7-24 16:23</span></a>
<span class="customSpan">您好  那我让它每次旋转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 &gt; 180){
            yaw = yaw - 360;
        }

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