大疆无人机的二次开发
大疆无人机 OSDK 开发包,与云api有什么区别
大疆无人机OSDK开发包(Onboard SDK)和云API在多个方面存在明显区别,以下为你详细介绍:
定义与功能
- OSDK开发包:它是一个全面的工具集合,允许开发者在无人机搭载的计算平台上运行自定义代码,实现对无人机更深度的控制和数据处理。集成了飞行控制、传感器数据获取、视觉定位等功能,借助UDP协议进行通讯,确保命令传输低延迟且可靠。开发者能够通过它获取飞控中的各种数据,按相应逻辑编写相关代码,进行相应的计算处理,生成控制指令从而控制无人机执行相应的飞行动作或飞行任务,适用于开发自动化能力较强的或需要负载硬件扩展的应用。
- 云API:是一组定义了软件组件之间交互规范的接口,基于大疆行业版无人机对外提供接口,采用与物联网类似的端边云架构分层。它将飞机的能力抽象成物联网设备的物模型,开发者可以基于这个物模型进行业务开发,无需深入了解无人机本身复杂的飞行控制问题。通过云API,可在Android或iOS应用程序中导入相关库/框架,以此访问DJI产品功能,还能借助飞行模拟器和可视化工具辅助开发。其功能集主要分为基于DJI Pilot 2(适用于有飞手操作的场景)和面向大疆机场场景两部分,包括地图元素展示、态势感知、直播功能、媒体库管理、航线库、设备管理等功能。
使用方式
- OSDK开发包:通常以一个整体的软件包形式提供,开发人员需要将其下载、安装到本地开发环境中,并根据SDK提供的文档和示例代码来学习和使用其中的工具和资源。开发的应用程序运行在空中端,需要一定的嵌入式系统开发知识和技能,例如要熟悉Linux、ROS等操作系统和相关开发环境。例如在工业巡检领域,开发者利用OSDK开发的应用程序可在飞行过程中实时分析采集到的电力线路数据,一旦发现线路温度异常、破损等问题,能立即调整飞行路径,进行更细致检查,并将数据及时反馈给地面控制中心。
- 云API:可以以不同的形式提供,如函数库、Web服务等。开发人员通过调用API提供的接口来实现与组件的交互,通常需要了解API的调用方法、参数设置、返回值等信息。开发者无需具备深厚的机器人或嵌入式系统背景知识,只需专注于基于DJI产品的行业应用开发,通过云API可在Android或iOS应用程序中访问DJI产品功能。比如开发一款用于影视拍摄的APP,利用云API,用户能在手机上便捷地控制无人机飞行轨迹,调整相机参数进行高清拍摄,还能实时查看拍摄画面。
应用场景
- OSDK开发包:更适合开发对无人机控制要求较高、需要实时处理大量传感器数据、进行复杂计算和决策的应用,如工业巡检、科研实验、自主导航等场景。在这些场景中,无人机需要在复杂的环境中自主飞行,对飞行轨迹、姿态控制、数据采集和处理等方面有较高的要求,OSDK开发包能够提供足够的灵活性和性能支持。
- 云API:更适合用于需要与云端服务进行数据交互、实现远程监控和管理的应用,如智慧农业、地理测绘、影视拍摄、应急救援等领域。在这些场景中,开发者更关注如何将无人机采集的数据上传到云端进行分析和处理,以及如何通过云端平台对无人机进行远程控制和任务规划。
兼容性
- OSDK开发包:支持M300 RTK、M210等经纬系列无人机,A3、N3等飞行控制器,Manifold 2等高性能机载计算机,以及STM32等第三方计算平台;支持Linux、ROS(Robot Operating System)和FreeRTOS等操作系统,兼容性较强,但主要侧重于无人机硬件平台和相关开发环境。
- 云API:主要与第三方云平台进行对接,需要先通过网关设备(如遥控器、机场)将无人机连接到云平台。其兼容性主要体现在与不同云平台的集成上,只要云平台支持相应的通信协议(如MQTT、HTTPS、Websocket等),就可以使用云API进行数据传输和交互。