DJI Onboard SDK+QGroundControl开发

2022-08-08 20:51:04

  这个项目标最终目标是正在QGroundControl上完成众架DJI无人机(M300, M210 V2)的轨迹显示,发送极少(腾飞,降下,出手劳动,暂停劳动,回家)夂箢给无人机,对待市情上极少开源的飞控(PX4, ArduPilot)来说,QGC依然有相当成熟的体例与之举办交互,对待咱们条件的功用来说依然一律足够了,然而对待相对闭源的DJI飞控来说,QGC与其一律不适配,也给了项目做下去的旨趣。正在社区中,依然有相当成熟的形似项目,比如rosetta drone,然而其是正在Android体例上开垦的,同时其并不助助DJI Onboard SDK,与咱们的工况不符,于是只可我方开垦了,目前依然能完工以上根本的条件。

  M300上搭载了大疆我方的产物Manifold2-G, 但是现正在依然停产了。地面站电脑和飞机都需求配有Zigbee,详情睹下图。

  正在装配好qt后,留神git clone时,坚持收集流利,否则git clone --recursive 可以不告捷,导致一切项目编译欠亨过。

  这个项目标难点合键就纠集于何如让Dji和QGC适配,QGC适配于社区中开源的飞控PX4,APM等,而不适配于大疆,大疆有我方供应的地面站,而它们之间的通讯条约却是闭源的,为剖析决这个题目,合键的思绪是让大疆仿制APM的作为,即当QGC发送特定音信时,Dji收到后,仿制APM飞控的作为,如此QGC就会认为其与APM依然邻接。

  万里长征第一步便是让QGC实例化大疆无人机,为了做到这步,最先要剖析QGC和无人机之间的通讯流:

  前文提到说要仿制APM的作为,因而发送的心跳音信应当是APM的心跳,可睹example.py

  假若不念用他们的,可能我方写一个:),可能参考mavlink-requesting-data.html, 参数大略有百来个。