通过 dji_osdk_ros::EmergencyBrake emergency_brake;          ...

Completed

Comments

4 comments

  • Hurd
    使用代码:
    dji_osdk_ros::EmergencyBrake emergency_brake;            
    velocityAndYawRateCtrl({velocity_y, velocity_x, 0, 0}, time);             emergency_brake_client.call(emergency_brake);            
    ros::Duration(2).sleep() 进行巡航时,我在另一个线程使用如下代码进行紧急悬停,看到的现象是无人机抖动一下,但是不停止,依然继续飞行,请问这是怎么回事?        
    dji_osdk_ros::EmergencyBrake emergency_brake;
            velocityAndYawRateCtrl({0, 0, 0, 0}, 0);
            emergency_brake_client.call(emergency_brake);
            ros::Duration(2).sleep();
     
    0
    Comment actions Permalink
  • DJI Developer Support
    不好意思,可能没有理解您的控制逻辑,一个线程控制巡航,一个线程刹车?巡航控制线程一直发指令吗?这个应该跟代码实现相关,可以先自己排查一下。
    0
    Comment actions Permalink
  • Hurd

    实际是两个回调函数,一个回调函数执行巡航任务,如果没有发现目标就一直按照计划飞行,如果发现目标另一个回调函数就会立即被唤醒,对正在进行的巡航执行紧急悬停操作。此时前面的巡航回调函数,例如可能正在使用velocityAndYawRateCtrl({10, 10, 0, 0}, 2000)巡航,还没执行完也要立即停止。

    0
    Comment actions Permalink

Please sign in to leave a comment.