我正在使用Matrice 210并使用OSDK上传任务 . 但如果没有初始化飞机的HomePoint,OSDK将不允许上传 .
如果仅打开无人机,我得到错误“WAYPOINT_MISSION_POINTS_TOO_FAR”,我必须打开RC并连接DJI GO应用程序以创建HomePoint .
如果我理解正确,任务管理员只有在无人机具有强大的GPS信号时才接受任务,但该文件没有说明HomePoint的初始化 . 我尝试在SDK中找到一个函数来告诉无人机将它当前的GPS作为HomePoint,但代码中没有这样的东西可用 . 我错过了什么吗?
Update: 以下是我设置任务管理器的方法:
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 回答
在DJI无人机上,当无人机能够看到足够的GPS卫星时,Homepoint会自动获得 . 一种可以告诉无人机将其当前位置作为homepoint的方法将无用 - 如果无人机确实可以很好地修复其在GPS坐标中的当前位置,它已经将其设置为homepoint,或者将在接下来的几秒钟内完成 .
您可能有很多原因导致WAYPOINT_MISSION_POINTS_TOO_FAR错误,但您需要提供更多上下文来帮助我们缩小范围 . 一些有用的报告:
启动无人机后,在尝试上传任务之前,你让它在晴朗的天空中坐了多久?
当您通过MissionManager初始化航点任务时,您是否确保将
RCLostAction
设置为Keep Going
?模拟中的行为是否可重现?