android - DJI MSDK Waypoint 任务不跟随航点
问题描述
问题
开始新的航点任务时,无人机最多起飞 2 米,并一直悬停在该位置。此外,当这种情况发生时,我只能将无人机抬高或降低(最多 2 米)。
预期行为
开始新的航点任务时,无人机将完成任务指定的路径。
环境
- Phantom 4 Pro 和 Phantom 4 Pro v2(都带有最新固件和飞行安全数据库)
- MSDK 4.14.1 和 4.15
- Zenfone ZE620KL 与 Android 11 (自定义 ROM - DroidOS 5.1) 和 Galaxy Tab S3 与 Android 9 (Stock ROM)
测试过的低血压
- 回避系统启用和禁用
- 多云和晴天
- 不同的位置和任务配置
- 不同的应用程序:在这里我使用了荔枝,并且没有问题地发生了类似的任务
更多信息
我的应用程序日志和 DJI 日志没有显示任何错误、异常或类似情况。
如有需要,我可以提供飞行记录。
WaypointMission 对象
{
"autoFlightSpeed":0.0,
"finishedAction":"GO_HOME",
"flightPathMode":"CURVED",
"gotoFirstWaypointMode":"SAFELY",
"headingMode":"AUTO",
"maxFlightSpeed":15.0,
"missionID":8,
"pointOfInterest":null,
"repeatTimes":1,
"waypointCount":8,
"waypointList":[
{
"actionRepeatTimes":1,
"actionTimeoutInSeconds":999,
"altitude":30.0,
"coordinate":{
"latitude":-23.16001469396617,
"longitude":-45.79311885279432,
"valid":true
},
"cornerRadiusInMeters":0.2,
"gimbalPitch":0.0,
"heading":0,
"isUseCustomDirection":false,
"shootPhotoDistanceInterval":0.0,
"shootPhotoTimeInterval":0.0,
"speed":12.5,
"turnMode":"CLOCKWISE",
"waypointActions":[
],
"headingInner":0
},
{
"actionRepeatTimes":1,
"actionTimeoutInSeconds":999,
"altitude":26.325867,
"coordinate":{
"latitude":-23.159431407395395,
"longitude":-45.79282463259898,
"valid":true
},
"cornerRadiusInMeters":0.2,
"gimbalPitch":0.0,
"heading":0,
"isUseCustomDirection":false,
"shootPhotoDistanceInterval":0.0,
"shootPhotoTimeInterval":0.0,
"speed":12.5,
"turnMode":"CLOCKWISE",
"waypointActions":[
],
"headingInner":0
},
{
"actionRepeatTimes":1,
"actionTimeoutInSeconds":999,
"altitude":27.596802,
"coordinate":{
"latitude":-23.1596132304213,
"longitude":-45.79270070336531,
"valid":true
},
"cornerRadiusInMeters":0.2,
"gimbalPitch":0.0,
"heading":0,
"isUseCustomDirection":false,
"shootPhotoDistanceInterval":0.0,
"shootPhotoTimeInterval":0.0,
"speed":12.5,
"turnMode":"CLOCKWISE",
"waypointActions":[
],
"headingInner":0
},
{
"actionRepeatTimes":1,
"actionTimeoutInSeconds":999,
"altitude":31.782654,
"coordinate":{
"latitude":-23.160196385773006,
"longitude":-45.792994857230866,
"valid":true
},
"cornerRadiusInMeters":0.2,
"gimbalPitch":0.0,
"heading":0,
"isUseCustomDirection":false,
"shootPhotoDistanceInterval":0.0,
"shootPhotoTimeInterval":0.0,
"speed":12.5,
"turnMode":"CLOCKWISE",
"waypointActions":[
],
"headingInner":0
},
{
"actionRepeatTimes":1,
"actionTimeoutInSeconds":999,
"altitude":33.06659,
"coordinate":{
"latitude":-23.160295942933544,
"longitude":-45.79282943102868,
"valid":true
},
"cornerRadiusInMeters":0.2,
"gimbalPitch":0.0,
"heading":0,
"isUseCustomDirection":false,
"shootPhotoDistanceInterval":0.0,
"shootPhotoTimeInterval":0.0,
"speed":12.5,
"turnMode":"CLOCKWISE",
"waypointActions":[
],
"headingInner":0
},
{
"actionRepeatTimes":1,
"actionTimeoutInSeconds":999,
"altitude":28.96344,
"coordinate":{
"latitude":-23.15979505344721,
"longitude":-45.79257677379519,
"valid":true
},
"cornerRadiusInMeters":0.2,
"gimbalPitch":0.0,
"heading":0,
"isUseCustomDirection":false,
"shootPhotoDistanceInterval":0.0,
"shootPhotoTimeInterval":0.0,
"speed":12.5,
"turnMode":"CLOCKWISE",
"waypointActions":[
],
"headingInner":0
},
{
"actionRepeatTimes":1,
"actionTimeoutInSeconds":999,
"altitude":30.748169,
"coordinate":{
"latitude":-23.159976876473113,
"longitude":-45.79245284388858,
"valid":true
},
"cornerRadiusInMeters":0.2,
"gimbalPitch":0.0,
"heading":0,
"isUseCustomDirection":false,
"shootPhotoDistanceInterval":0.0,
"shootPhotoTimeInterval":0.0,
"speed":12.5,
"turnMode":"CLOCKWISE",
"waypointActions":[
],
"headingInner":0
},
{
"actionRepeatTimes":1,
"actionTimeoutInSeconds":999,
"altitude":32.18518,
"coordinate":{
"latitude":-23.160136265174536,
"longitude":-45.792533242035404,
"valid":true
},
"cornerRadiusInMeters":0.2,
"gimbalPitch":0.0,
"heading":0,
"isUseCustomDirection":false,
"shootPhotoDistanceInterval":0.0,
"shootPhotoTimeInterval":0.0,
"speed":12.5,
"turnMode":"CLOCKWISE",
"waypointActions":[
],
"headingInner":0
}
],
"exitMissionOnRCSignalLostEnabled":false,
"gimbalElevationOptimizeEnabled":false,
"gimbalPitchRotationEnabled":false
}
更新 1
我刚刚做了以下测试:
- 在我的应用程序中开始飞行
- 打开GO4
从那里,我可以看到我所有的航路点都正确加载,但速度设置为 0。一旦我拉动滑块以提高速度,飞机就开始移动并按照预期的方式跟随航路点,但我不知道为什么会发生这种情况.
解决方案
正如在WaypointMission 对象中看到的那样,autoFlightSpeed 设置为 0。我已通过将 autoFlightSpeed 从 0 更改为第一个航路点中定义的速度来解决此问题,现在一切正常。
根据文档,当autoFlightSpeed设置为0时,“实际速度仅由遥控器操纵杆控制”,这很奇怪,因为它与我一个月前的代码相同,我可以不接触飞行操纵杆。这就解释了为什么我认为我唯一能做的就是“让无人机飞得更高或更低”。可能如果我继续向前推动左操纵杆,飞机就会完成它的路径。剩下的唯一问题是:为什么我一个月前的代码过去可以在不接触操纵杆的情况下工作。
推荐阅读
- javascript - 由 npx/node/npm 执行的 google 闭包编译器
- aws-lambda - 用 grafana 可视化 lambda 日志?
- python - OpenCV,Numpy,有效地计算满足任意标准的像素数作为所有通道的函数
- sed - csh:设置:不匹配
- angular - 从代码触发表单控件上的(更改)事件
- javascript - 如何在多个类jquery中使用'this'
- airflow - 如何在 Airflow 上重新启动失败的任务并保留失败记录?
- android - 为什么 Observable.create() 在单击时不起作用?
- java - 使用 ArrayList 存储对象并使用 main 方法进行测试
- html - 使用 node.js 将表转换为 JSON