正在上传图片(0/1)

航点任务结束后切VirtualStick控制,pitch的值控制异常

 0
手机看帖 7 1067
关于航点任务技术后切VirtualStick控制,模拟器飞控制飞机前后左右移动都正常,实地测试pitch的值无论负统一都往右飞的问题,我代码逻辑详细解释如下:1,首先在waypointmission结束之后,使mstate的值为true,方便下步判断
public void onExecutionFinish(@Nullable final DJIError error) {//无人机任务停止后的状态处理
       setResultToToast("Execution finished: " + (error == null ? "Success!" : error.getDeion()));       mFlightController.setVirtualStickModeEnabled(true,null);
       mstate = true;
2,然后再initFlightControler里初始化控制摇杆飞行的一些设置
private void initFlightController() {

        BaseProduct product = DJIDemoApplication.getProductInstance();
        if (product != null && product.isConnected()) {
            if (product instanceof Aircraft) {
                mFlightController = ((Aircraft) product).getFlightController();
            }
        }
        if (mstate==true) {if (mFlightController != null) {                mFlightController.setRollPitchControlMode(RollPitchControlMode.VELOCITY);
                mFlightController.setYawControlMode(YawControlMode.ANGULAR_VELOCITY);
                mFlightController.setVerticalControlMode(VerticalControlMode.POSITION)                mFlightController.setRollPitchCoordinateSystem(FlightCoordinateSystem.BODY);
3,给pitch roll yaw throttle传值,其中yaw throttle固定为0、30;主要改变pitch与roll的值来控制飞机在二维平面移动,由官方文档,我的理解为pitch正,后退,负前进;roll为正,右移,负,左移,并在模拟器上测试时,把roll和pitch依次写为0,观察单方向移动时,我的理解是正确的。
但在室外实时飞行时,roll的值控制左右移动正常,但是pitch控制前后移动却一直是往右飞,测试御2pro御2zoom两架飞机,均是如此。
我的控制移动的代码如下:
mPitch=-2;
mRoll=0;     
mYaw=0;//转机头0为不动
mThrottle =30;
if (mFlightController != null) {//是指id不是空,就是id存在数据
       mFlightController.sendVirtualStickFlightControlData(
                         new FlightControlData(
                                 mPitch, mRoll, mYaw, mThrottle
                         ), new CommonCallbacks.CompletionCallback() {
                             @Override
                             public void onResult(DJIError djiError) {
                             }
                         }
                 ); }
这里以我想控制飞机前进为例,飞机依然是往右飞;同样mPitch=2时,飞机还是往右飞。
请问是我哪里设置错了或者有什么理解错了吗?还是硬件设备有什么问题,烦请解答,不胜感激。
补充:waypointmission结束之后,在执行摇杆任务之前飞机会自动旋转下机头,在模拟器与实地飞行时都是如此,后结合文档,我理解为是因为飞机在设置会机身坐标系,设置RollPitchControlMode.VELOCITY时,机头默认朝向北方,请问这种理解对嘛
评论
上传
你需要登录之后才能回帖    登录 | 注册
DJI-William   2021-1-18 3#
代码看起来是没问题的,同样的代码模拟器里飞是正常的,在室外飞就不正常吗?你是这个意思吧?我还是比较怀疑你的代码可能有问题,还需要再检查一下。另外你设置虚拟摇杆开启以后,机头会旋转大概多少度?按理来说设置模式是不会动的。
lubudao   2021-1-18 4#
兄弟,有试过航点任务中暂停,再切VirtualStick控制,再继续任务吗?
lubudao   2021-1-18 5#
把VerticalControlMode.POSITION 改为VerticalControlMode.VELOCITY试试
楼主  Mavic 2 Zoom认证用户 2021-1-18 6#
对  是您理解的意思。   在室外测试的时候它会自己旋转朝向北方,我是查了下文档才认为是这是mode设置的相关, body与速度设置对应的是默认北方。      还有没有什么原因可能造成模拟器与实地飞行不符的呢?我之前一直很相信模拟器的
楼主  Mavic 2 Zoom认证用户 2021-1-18 7#
对  是您理解的意思。   在室外测试的时候它会自己旋转朝向北方,我是查了下文档才认为是这是mode设置的相关, body与速度设置对应的是默认北方。      还有没有什么原因可能造成模拟器与实地飞行不符的呢?我之前一直很相信模拟器的
楼主  Mavic 2 Zoom认证用户 2021-1-18 8#
这个是不可以的吧  不是默认必须先结束航点任务才可以开启摇杆控制嘛
楼主  Mavic 2 Zoom认证用户 2021-1-18 9#
好的谢谢
收藏 点赞 评论
分享至:
回复:
上传
取消 评论
快速回复 返回顶部 返回列表