前段时间一直在搞在M100上搭载处理器,并且用大疆官方的Onboard SDK来进行开发,所以就记录一下,免得过段时间忘记了。先上一张M100的图(来源于大疆官网):


一、硬件介绍
1、首先介绍大疆M100的硬件大致:
(1)基本配置:一块飞控板(大疆A3飞控),4根机臂,一块电池,一个GPS模块和一个遥控器。
有了这个配置之后就达到了飞行条件。
(2)如果加上云台相机,就可以录制自己喜欢的视频了或者进行航拍。
(3)如果加上了guidance,就可以在室内平稳飞行了。

2、开发重量考量:
M100飞行器的额定最大起飞重量是3600g(实际测试最大极限起飞重量是4200g,这个数据不是很准确,这个数据只起参考作用),如果加上了guidance,妙算,基本上已经到了最大起飞重量,无法加上我自己的mini PC和GPU。所以在开发的时候一般不装guidance。下面给出一些部件的参考重量:
(1) M100的机架(飞控板,四个机臂,一个GPS模块)重量:1670g
(2) 一块官方电池:639g
(3) 我用的mini PC的重量是:715g,我拆掉了外壳,剩余315g
(4) GPU的重量是700g,

3、两种方案:
系统环境:
妙算:Ubuntu(arm版)
mini PC(windows 10)

方案一:
  不加云台相机,自己买一款长焦的USB摄像头安装在M100上,将视频直接输入mini PC上跑orb slam,然后将电脑桌面通过HDMI传送给N1视频编码器编码之后通过飞控再传给地面的dji go app做显示。
飞机的硬件模块:
M100机架 + 1块官方电池 + 1个USB摄像头 + mini PC + 1块GPU + N1视频编码器 + 锂电池 + 降压模块24V-12V(附加的锂电池和降压模块是为了给mini PC和GPU供电用的)
总重量是:约为4150 g


方案二:
  利用云台相机作为视频的输入,首先通过妙算读取禅思x3相机的视频数据,转成rgb之后,然后利用socket将图像传送给mini PC来跑orb slam。
加上云台相机,去掉GPU,加上妙算,所以总的配置就是:
M100机架 + 1块官方电池 + 1个云台相机 + mini PC + 妙算 + 锂电池 + 降压模块
总重量是:约为3700 g


  对比上面可以知道,方案二将GPU去掉了,因为现阶段中妙算中的GPU已经够用了。并且在方案一中,USB摄像头因为装在了飞机上,没有好的云台来增稳,所以在飞行过程中抖动非常厉害,orb slam跑不起来,所以采用了方案二。

二、软件介绍
在硬件搭载好了之后,就需要进行软件层面的实验了,首先归纳一下步骤:
1、升级M100的固件:
(1) M100的固件升级很简单,连接好所有的部件(官方电池、GPS、云台相机等),在自己的电脑上安装一个DJI assistant 2所有部件的升级都通过这个软件助手,不需要下载其他的软件升级包。将一根micro USB线连接电脑与M100尾灯后面的USB口,首先开启遥控器,然后开启M100电源,进入assistant 2进行固件升级。
(2) 根据安装GPS的位置,在DJI assistant 2中设置GPS的三维坐标;
2、配置妙算的系统环境:
  给妙算安装各种各样的软件,因为妙算的硬件架构是嵌入式的,所以一些包的安装和普通在Intel CPU的主机上安装有不同的地方,最好根据官方给的文档来进行安装,不要想当然,具体见妙算的文档;
3、安装Onboard SDK
  大疆的Onboard SDK有两个版本,一个不是ros版本的,一个是ros版本的,推荐先装没有ros版本的,步骤很简单,先在这里下载Onboard SDK,然后按照这个链接去安装,很简单。然后安装ROS版本的SDK,后面跑读取云台相机的程序的时候就直接把package 拷贝到SDK的workspace下面进行编译就可以了。
4、激活M100
  这个步骤我感觉官网上的说明有一些没说清楚的地方。所有的步骤可以参考这个链接,但是我要强调一下的就是,如果想使用SDK,就必须先在开发者网站上注册,成为大疆的开发者,然后在开发者网站中首先创建一个APP,里面有ID和Key。在启动sdk的时候,在launch文件中填入 APP ID 和Key的时候就是填你创建的ID和Key,不是你的dji go的账号和密码,还有串口的波特率以及串口的名字,如下图所示。


5、利用妙算获取云台相机的视频数据:
  可以参考github上的这个网站,可以将云台读出来的视频格式先转成rgb格式的,然后通过rostopic 发布出来,这样就可以使用视频流了。
6、将妙算上的视频通过socket传送给mini PC
  因为项目的需求是在windows平台下面跑orb slam,所以需要将视频传送给mini PC,我这里选用的是利用socket传输,如果是在Ubuntu下面跑orb slam,一个比较好的选择就是构建一个局域网,直接通过rostopic 来进行数据的传输。
我采用的方案是妙算和mini PC用一根网线进行直连(也可以用路由器进行连接),然后将mini PC上面的以太网的IP地址选用固定的,设置好网关和DNS,关闭windows的防火墙。在妙算上也使用固定的IP地址,注意两者的IP地址不要相同,也不要相差太大。在运行socket程序之前看看能不能ping通,ping通了说明配置是对的,如果不行就得先检查。Ubuntu的和windows的socket程序略有不同,感兴趣的可以去google一下。
7、在mini PC 上面跑orb slam
  orb slam有开源的windows版的,所以只需要将收到的图像输入写好的orb slam的接口中就可以开始跑了。

参考文献:
[1] https://www.dji.com/cn/matrice100/info#downloads
[2] https://developer.dji.com/cn/onboard-sdk/
[3] https://developer.dji.com/onboard-sdk/documentation/sample-doc/sample-setup.html#linux-onboard-computer
[4] 使用妙算控制M100
[5] DJI Onboard SDK ROS Video Decoding Package

大疆经纬M100无人机的组装以及Onboard SDK的安装相关推荐

  1. 大疆经纬M100+Manifold无人机开发总结

    第一部分    妙算的安装 大疆对于开发者支持这一块做得不是很好.妙算开发手册上有些步骤有错误. 经费多的话还是建议买M210等机型功能比较全面. 1. 连接妙算与云台,有两根线一根是连接云台一根连接 ...

  2. 大疆经纬M600 Pro 行业无人机应用特点

    大疆经纬M600 Pro搭载A3 Pro飞行控制系统,配备三套IMU和GNSS模块,配合软件解析余度导航系统,可靠性更高: 大疆经纬M600 Pro开箱后,只要简单的安装,几分钟准备即可起飞.脚架采用 ...

  3. 大疆经纬M300RTK+P1相机实际使用情况测评

    自大疆禅思P1公布到正式发出预售,行业内一直翘首以盼,对大疆P1的使用效果及各方面对比优势充满期待,下面明鸿仪器将整理一些已购买M300+P1朋友作业时的使用反馈,给各位跃跃欲试的朋友给予更生动地参考 ...

  4. 【Pix4d精品教程】大疆精灵4A无人机航空摄影测量外业数据采集完整操作流程

    本项目我们采用大疆精灵4A无人机进行航空摄影测量外业数据采集,主要内容包括:航摄准备.像控点布设.航线规划.飞行.数据传输等. Pix4dmapper摄影测量内业数据处理.空三及4D产品生产部分,请参 ...

  5. 大疆无人机高程不准_大疆消费级无人机快速倾斜摄影测量实践

    摘要:分别用 RTK两种测量模式测定像控点,用大疆消费级无人机 Phantom4PRO 开展倾斜摄影测量,最后进行成果检验.结果表明:RTK 电台模式(不做坐标校正,精度低).RTK-CORS 网络模 ...

  6. 大疆DJI_OSDK控制无人机飞行

    大疆官方提供的软件包的主要有3个部分 核心的API部分dji-sdk-lib,用于串口通信,建立各种任务的线程,读取信息的线程. 用于封装核心API为ROS接口的dji_sdk 简单的demo,给出了 ...

  7. 微软牵手大疆打造先进无人机技术

    2018微软人工智能大会正式开幕,在大会上微软宣布,全球最大的无人机制造商大疆创新(DJI)正在与微软合作,打造面向企业市场的先进无人机技术.大疆创新首席科学家吴迪表示,基于双方的战略合作,大疆创新将 ...

  8. 用 .NET 启动你的 大疆 Ryze Tello 无人机

    目录 1..NET UDP 编程 1.什么是 UDP 2.C# 调用 UDP Client 2.用 .NET Polyglot Notebook 连接 DJI Ryze Tello 3.用 .NET ...

  9. 大疆T30/T40 无人机总结

    首先说结论:大疆农业机是现有市面上最好的多旋翼农业无人机. 体现在个方面: a.易操作. b.结构合理. c. 手持地面站好评. 系统总体认知: 第一,整体平台: 当前最成熟的大载重多旋翼平台. 地面 ...

最新文章

  1. win10商店打不开_科技资讯:Win10系统电脑的应用商店老是打不开还闪退怎么办
  2. java Runtime.getRuntime().exec 获取反弹shell
  3. 关于C# this 指针
  4. 2019计算机科学与技术全日制调济,2019年华侨大学计算机科学与技术学院全日制学术型研究生调剂信息(第三批)...
  5. 硬件:RS232基础知识笔记
  6. Linux的FHS(文件系统结构标准)剖析
  7. 【redis3在linux安装与基本操作】
  8. 黑马程序员-JAVA基础-IO流之字符流和字符流缓冲区
  9. python用于人工智能哪些领域_Python那么火?哪些领域可以用它?
  10. 使得最右边的元素右边框为0
  11. SpringCloud工作笔记042---SpringCloud RestFul接口中跨域问题_这个解决方式不太完美,每个接口上都要加
  12. IPv4与IPv6数据报格式详解
  13. background相关属性
  14. 计算机切换器鼠标反应慢,解决鼠标反应迟钝与反应慢故障的方法
  15. java抓包WIFI包_教你手机应用如何通过wifi上网抓包
  16. 什么叫大数据 大数据的概念
  17. 图片服务器-存储图片技巧
  18. 进入Java世界的第一个程序Hello world
  19. 精密仪器及机械类毕业论文文献包含哪些?
  20. Unity3d+GameFramework:资源分析,资源依赖,循环依赖检测

热门文章

  1. 服务响应时间与分布 P95 P99
  2. 推荐给大家一份我整理的 Java 书单
  3. 29 获取ApplicationContext
  4. 【案例】Python模拟葫芦侠3楼登录
  5. 健康是能看得到的 净水器也要选智能款
  6. chinakang8提供伤感日志_谁能知道,点烟时的寂寞
  7. FTPclient简单使用
  8. [附源码]计算机毕业设计springboot家庭教育app
  9. ROS moveit 机械臂避障运动规划
  10. STM32G0+EMW3080+阿里云飞燕平台实现单片机WiFi智能联网功能(三)EMW3080完成配网,EMW3080连接到阿里云飞平台