OnboardSDK:任务管理和HomePoint初始化

时间:2018-08-06 11:13:53

标签: dji-sdk

我有Matrice 210,并使用OSDK上载任务。但是,如果未初始化飞机的HomePoint,则OSDK将不允许上传。

如果仅打开无人机,则会出现错误“ WAYPOINT_MISSION_POINTS_TOO_FAR”,并且必须打开RC并连接DJI GO应用程序以创建HomePoint。

如果我理解正确,则任务管理器仅在无人机具有较强的GPS信号时才接受任务,但文档中没有提及HomePoint初始化的任何内容。 我尝试在SDK中找到一个函数来告诉无人机将其作为HomePoint作为当前的GPS,但是代码中没有这样的功能。我想念什么吗?

更新: 这是我设置任务管理器的方法:

void setWaypointInitDefaults(WayPointInitSettings* fdata)
{
   fdata->maxVelocity = 10;
   fdata->idleVelocity = 5;
   fdata->finishAction = 0;
   fdata->executiveTimes = 1;
   fdata->yawMode = 0;
   fdata->traceMode = 0;
   fdata->RCLostAction = 1;
   fdata->gimbalPitch = 0;
   fdata->latitude = 0;
   fdata->longitude = 0;
   fdata->altitude = 0;
}
...
bool InitWaypointMission(Vehicle* vehicle, int numberWaypoints, double maxSpeed, double turnSpeed, bool usePointsHeading)
{
   WayPointInitSettings fdata;
   setWaypointInitDefaults(&fdata);
   fdata.indexNumber = numberWaypoints;
   fdata.maxVelocity = maxSpeed;
   fdata.idleVelocity = turnSpeed;
   if ( usePointsHeading )
      fdata.yawMode = 3;

   ACK::ErrorCode initAck = vehicle->missionManager->init(DJI_MISSION_TYPE::WAYPOINT, responseTimeout, &fdata);
   if (ACK::getError(initAck))
   {
        ACK::getErrorCodeMessage(initAck, __func__);
        return false;
   }
   vehicle->missionManager->printInfo();
   return true;
}

1 个答案:

答案 0 :(得分:1)

在DJI无人机上,当无人机具有足够的GPS卫星可见度时,将自动获取Homepoint。可以告知无人机获取其当前位置作为返航点的方法将无用-如果无人机确实能够很好地定位其在GPS坐标中的当前位置,则它已经将其设置为返航点,或者将在接下来的几秒钟内完成操作。

出现WAYPOINT_MISSION_POINTS_TOO_FAR错误的原因可能很多,但您将需要提供更多上下文来帮助我们缩小错误范围。一些对报告有用的东西:

  • 打开无人机电源后,您让它静置多久? 在尝试上传任务之前会出现天空?
  • 通过MissionManager初始化航点任务时,是否确定将RCLostAction设置为Keep Going
  • 该行为在模拟中是否可以重现?
相关问题