DJIwaypointMission的使用及执行状态的更新
DJI waypointMission的使用以及执行状态的更新
【资料图】
基本要素
完成一次航点任务最少需要 “三步走” 第一步:loadMission,将mission先加载到安卓设备的内存中去,并检验任务的所有信息,比如相邻航点的距离大于0.5米小于2km,总航线长度小于40km,各项必须参数是否存在等。 第二步:uploadMission,将第一步经过校验的任务上传至无人机,这一步有一定的时间消耗,时间长短和航点的数量有直接的关系,当上传完毕后,将会通过回调函数提示上传成功,当然也可以加入一些业务逻辑(比如点亮后续起飞的按钮); 第三步:startMission,开始执行任务。在任务执行的过程中我们可以通过WaypointMissionOperatorListener监听任务执行的进度。
实际应用
在实际应用中,还需要对一些航点动作、飞行速度、机头朝向等参数进行设置,这些内容只要保证在设定的区间以及根据实际需要的合理性即可。比较重要的是,执行策略。 在loadmission之后如果发生错误,应当报告错误并且不执行uploadmission; 用伪代码简单描述:
DJIError djiError = waypointMissionOperator.loadMission(mission); showResultToast(djiError);if(Error != NULL){//--没有错误执行后续逻辑 mission.uploadmission();}
调用uploadmission需要满足两个前置条件: getLoadedMission完成和getCurrentState的状态是READY_TO_UPLOAD,所以在调用uploadmission要做相应的检查。
if (WaypointMissionState.READY_TO_RETRY_UPLOAD.equals(waypointMissionOperator.getCurrentState()) || WaypointMissionState.READY_TO_UPLOAD.equals(waypointMissionOperator.getCurrentState())) {waypointMissionOperator.uploadMission(new CommonCallbacks.CompletionCallback() {@Override public void onResult(DJIError djiError) {showResultToast(djiError); } }); }
上传一个任务需要一定的时间,航点越多所需要的时间越久,在上传过程中如果发生了错误会调用上述代码中的回调函数对错误情况进行提示;如果上传成功,上述回调函数仍会被执行一次,返回的djiError为NULL。 在上传任务完成之前,是不能调用起飞命令的,因此在这个回调函数中,应当保证调用起飞命令的安全性。具体的做法是:在回调函数中检验djiError和WaypointMissionState:
@Override public void onResult(DJIError djiError) {showResultToast(djiError); if (WaypointMissionState.READY_TO_EXECUTE.equals(waypointMissionOperator.getCurrentState()) || djiError == NULL){//--将起飞按钮设置为可交互状态 button.enabele(); } }
如果上述确认成功,则可以通过button调用startMission。
if (mission != null) {waypointMissionOperator.startMission(new CommonCallbacks.CompletionCallback() {@Override public void onResult(DJIError djiError) {showResultToast(djiError); } });
在任务的执行过程中,开一个监听来确认航点任务的执行进度。在WaypointMissionOperator下 new WaypointMissionOperatorListener() 在class WaypointMissionOperatorListener中有多个可重写的方法:onUploadUpdate 、onDownloadUpdate 、onExecutionStart 、 onExecutionUpdate 、 onExecutionFinish 其中最为重要的是onExecutionUpdate,这个方法会在waypointmission过程中多次回调,并刷新任务的信息,这些信息对于区分采集数据至关重要。 在class WaypointMissionExecutionEvent中有3个方法 method getProgress 中targetWaypointIndex显示下个航点的索引;isWaypointReached到达一个航点后为yes 当完成航点动作(如悬停)后,变成no,且targetWaypointIndex+1 ; executeState 是一个枚举类型,显示当前无人机的具体动作或者执行状态。
listener = new WaypointMissionOperatorListener() {@Override public void onExecutionUpdate(@NonNull WaypointMissionExecutionEvent waypointMissionExecutionEvent) {// Example of Execution Listener index = waypointMissionExecutionEvent.getProgress().targetWaypointIndex; state = waypointMissionExecutionEvent.getProgress().isWaypointReached; //--上面两句话在数据采集中做为关键数据,一个是索引值一个是悬停状态。 Log.d(TAG, (waypointMissionExecutionEvent.getPreviousState() == null ? "" : waypointMissionExecutionEvent.getPreviousState().getName()) + ", " + waypointMissionExecutionEvent.getCurrentState().getName() + (waypointMissionExecutionEvent.getProgress() == null ? "" : waypointMissionExecutionEvent.getProgress().targetWaypointIndex)); updateWaypointMissionState(); } };
参考: 大疆无人机安卓Mobile Sdk开发(三)制定航点任务WaypointMission
标签:
相关推荐:
最新新闻:
- 环球热消息:苹果cmsv10版二次开发网站源码分享 二开功能介绍
- DJIwaypointMission的使用及执行状态的更新
- linux实用教程复习题 linux上机复习题部分答案-当前快报
- 电脑上如何批量下载QQ空间图片?电脑版QQ空间图片批量下载
- 怎样释放计算机网络宽带限制?解除电脑网速限制的方法
- 【聚看点】JVM常用配置参数有哪些?40道面试题解答
- 【入门指南】JNI/NDKK入门指南之正确姿势
- 环球快讯:在农村小投资创业办厂项目都是有哪些?这3个项目前景不错
- 三相PMSM的转子结构有哪些特征?三相PMSM的转子结构特征 |要闻
- 如何在亚马逊官网注册亚马逊账号?(免费版)-世界热推荐
- javascript学习笔记:get和post方法
- 【环球新要闻】笔记软件分享 为知笔记6年深度体验(上)
- 每日播报!如何在Flash中做旋转转速?MC的详细运用
- 会声会影X5/6/7无法注册解决怎么办?解决方法步骤
- 膜结构车棚使用的材料有哪些?车棚膜结构使用膜材选择分析解析
- java strut2通配符 Struts2的通配符配置方式
- 《蝙蝠侠前传3:黑暗骑士崛起》蓝光高清720P1080P下载
- py前端构建学习中的pcrbox第一版:天天热议
- 时间频率同步的方法有哪些?时间频率同步的方法-环球热资讯
- 凡音L2怎么样?凡音L2蓝牙后挂耳机评测|天天观速讯
- 世界最资讯丨天天动听有电脑版吗?免费的手机音乐播放器下载
- 每日消息!电脑配机有哪些注意事项?电脑配机方案方法详
- 什么是负载均衡器?负载均衡器有什么作用?-今热点
- Windows系统如何使用光标键来移动?windows使用光标键方法 全球微头条
- 怎么设置电信光纤猫的无线网络?光纤猫的无线网络设置流程
- 当前速递!虚拟主机空间是什么?虚拟主机空间有什么用途?
- 【全球播资讯】iPhone手势插件Activator怎么用?详细的使用方法
- 环球快播:蚂蚁森林给别人浇水有什么好处?详细介绍
- 全球观点:怎样修复ie浏览器?IE游览器的修复方法
- 通过Chrome来知道提交加价的请求应该是什么?_今日观点
- 索尼电视机故障怎么办?索尼电视机维修方法|全球观热点
- ro商用纯水机净化效果好不好?ro商用纯水机特点介绍
- 母亲节送什么好_母亲节送妈妈七大类型礼物_每日视点
- C语言中的double是什么意思?直击PHP的异常和错误处理
- “平均数”到底是什么意思?加权平均数又是什么意思?_世界独家
- 手机wifi连接上但不能上网怎么办?解决方法步骤 重点聚焦
- javascript索引是什么?javascript索引的概念及技巧
- 当前热门:二手笔记本多少钱?二手笔记本价格详解
- 【焦点热闻】世界上最简洁的人脸识别库:face_recognition
- 触手tv怎么直播?触手tv直播的方法-当前焦点
- 电子硬盘多少钱?市场上电子硬盘价格详情
- 舍入模式有哪些?八种舍入模式的解释 每日视讯
- 如何下载Navicat数据库管理编辑软件?如何打开.db数据库文件? 世界头条
- FB是什么意思?PCB原理图中的FB是什么意思?
- 美能达283复印机扫描怎么设置?柯尼卡美能达打印机的设置方法
- QQ象棋java通用版怎么下载?QQ中国象棋官方免费版下载
- 【全球速看料】启动定时器t0的工作指令是什么?PLC通电延时定时器(TON)应用举例
- dm-verity是如何保证安全的?dm-verity-ramdisk文件系统校验的解决方法:今日关注
- 怎么修改苹果id密码?苹果id密码修改教程-全球微资讯
- 马赛克电视墙如何设计?马赛克电视墙设计要点|当前视讯
- QQ象棋java通用版怎么下载?QQ中国象棋官方免费版下载
- 全球最资讯丨如何在windows上交叉编译ffmpeg?具体操作步骤
- 【全球速看料】启动定时器t0的工作指令是什么?PLC通电延时定时器(TON)应用举例
- 如何下载Navicat数据库管理编辑软件?如何打开.db数据库文件? 世界头条
- dm-verity是如何保证安全的?dm-verity-ramdisk文件系统校验的解决方法:今日关注
- 《孤岛惊魂6》将于2月16日在全平台开启免费试玩
- 环球观速讯丨RTX4060!机械革命游戏本只要6199
- 基于体温监测 三星手表将推出经期管理功能
- 【环球报资讯】RAM展示概念图 或推出电动皮卡
- 健康度掉太快 三星升级990Pro固件-最新资讯
- 2022年度智能穿戴设备创新排行榜发布 智能健康穿戴驶入快车道
- 南宁一男子商场内刺伤一女子后投江!警方通报
- 死亡空间重制版欧洲前两周销量不及木卫四协议_快看点
- 渠道商预售 AMD游戏神U锐龙7000 144MB缓存版:每日消息
- 兄弟管道官网发现《超级马里奥兄弟大电影》隐藏海报 全球快消息
- 超狂身材曲线太过分 印尼电竞女选手火辣至极
- 《大富翁11》现已完全支持Steam Deck-焦点热议
- 更新iOS 谷歌服务大范围无法访问
- 情人节惊喜福利:购影驰RTX 30显卡,送穿越火线大礼包 天天快看点
- 优化碰撞监测 苹果iOS16更新再次尝试-今亮点
- 环球观察:潮邦集成灶怎么样?真实用户有话说!
- 世界快资讯丨索尼FE 50mm F1.4 GM镜头外观曝光
- 全球快资讯:2020最新新年对联大全_春节对联集锦大全
- 看视频软件app排行榜_看视频软件
- 2019立秋为什么吃饺子 立秋适合吃饺子吗
- 《战神》总监承认同伴破坏解谜体验:做的时候没想到-每日速递
- 2023年情人节单日票房破两亿 《满江红》领跑|当前速递
- 每日速看!永安林业违反会计准则 被出具警示函
- 世界最资讯丨XGPU和EA Play会员已可试玩《狂野之心》 时长约10小时
- 【世界热闻】上海迪士尼度假区与三星电子达成推广合作, 庆祝三星新品手机发布
- 程序员的好帮手?网友开始尝试用ChatGPT开发游戏
- 索尼正在研究如何把PS5塞进桌斗里:抱着送人太沉了|资讯
- 天天要闻:早期版的《战神5》 奎爷曾被雷神杀死
- “超时空办公”时代已来 联想发布智慧办公白皮书 每日时讯
- 【聚看点】拓界影像稳劲性能 三星Galaxy S23系列旗舰手机国内发布