FAQ更新时间:2015-10-6
整理一个合理的FAQ,非官方,但基本是正确的。本帖会不定期更新,描述的问题也会随着固件版本的升级而更新。
**************************************************************************************
Q1:Onboard SDK能用在哪儿?
A1:Onboard SDK目前仅能用于DJI较新发布的可扩展开放平台飞行器“经纬Matrice 100”,之后会有更多新的产品支持。
Q2: M100有禁飞区吗?
A2:有,同其他DJI飞行器一样。飞飞机也要遵守基本法。
Q3:M100双电池时负载小,单电池时续航时间短。能否提高续航?
A3:不能。。。
Q4: M100可以用于航拍吗?
A4:可以。M100可挂载同inspire相同的Zenmuse X系列拍摄设备,可进行航拍。但由于M100的结构所限,拍摄时螺旋桨、脚架容易入镜,故不推荐。需要航拍请选用inspire等其他系列产品。
Q5:Guidance必须安装在M100的下方吗?
A5:安装Guidance时,只要保证图像处理模块的正面朝上箭头指向机头方向,图像传感模块分别连接正确的接口,且方向正确无遮挡,即vbus接口分别朝上和朝前即可。对于安装的位置无要求,但调整之后务必在调参软件中设置重心偏移。图像传感模块可以选用,即可以按照实际需求只保留某几个图像传感模块。
Q6:为什么我的M100连接guidance后在室内只能上升下降,无法控制水平移动?
A6:Guidance默认状态下为“标准模式”,每个方向具有一定的避障距离。请进入Guidance调参软件适当设置避障距离,或是按需求拆除侧面图像传感模块。
Q7: Onboard设备指的是什么?
A7:Onboard设备指的是飞行器搭载的除飞控系统外由开发者自行安装的传感、计算、通信等设备,如红外相机,微型计算机,Wi-Fi模块等。
Q8: 如果我要进行Onboard SDK的应用开发,需要适配什么飞行平台?
A8:目前,仅有大疆M100飞行平台的N1飞控支持Onboard SDK的应用开发。
Q9: 使用M100使用onboard SDK是否需要遥控器连接移动设备APP?
A9:第一次使用的飞行器和第一次使用SDK的飞行器必须连接移动设备APP,之后可以不用。首次使用的新飞行器需要连接移动设备APP(DJI GO),连网,登录DJI账号激活飞行器。第一次使用SDK连接飞行器时通过连接移动设备APP(DJI GO)连网,通过SDK的激活指令激活飞行器的API。请保持移动设备连网且网络连接较通畅,否则容易出现time out错误,无法激活飞行器。。
Q10: M100飞行平台支持哪些机载计算设备?
A10:只要设备具有合适电平的UART接口,且可工作于115200或230400波特率并能够进行AES 加解密的计算设备,就可以作为M100的Onboard设备。通过USB转TTL串口模块、无线串口模块等设备接入均满足要求。
目前已经测试通过并成功控制飞机的设备包括Intel的NUC, NVIDIA的tk1,odroid的多种开发板,Radxa Rock pro,CubieBoard,Raspberry Pi 2,STM32F407等等。
Q11: 机载计算设备需运行独立的操作系统以进行Onboard SDK的开发吗?
A11:在有独立运行操作系统的机载设备下使用Onboard SDK为较为容易。较推荐使用Ubuntu+ROS的组合,Windows等其他具有串口读写能力的操作系统也可以。支持使用STM32等无操作系统平台进行开发。
在ubuntu系统下的Onboard设备推荐使用230400波特率,因为部分ubuntu系统本身的串口库 “libserial-dev”有一个bug,无法设置波特率为115200。
Q12: 通过Onboard SDK操控M100飞行平台的接口有哪些?
A12:目前来说,Onboard SDK仅能通过UART接口连接飞行器进行通信,提供115200与230400两个波特率可供选择。通过M100配给的原装UART口转2.54mm的标准杜邦线的转接线,连接到Onboard设备后,按要求操作即可与飞机进行通信。
Q13: M100的串口电平是多少?
A13:M100主控连接出来的TXD、RXD电平是3.3v TTL。 Onboard设备与飞控连接的串口也需要满足3.3v TTL信号电平。M100上的UART_CAN2接口上有个6v的供电口,这个供电口最大供电流为1A,但原则上不对外供电。如需5V供电请使用6s锂电池(22V-26V)转5V供电模块。请按要求使用,否则有可能烧坏主控,或者是烧坏Onboard设备。
Q14: M100串口的不同波特率有何区别?
A14:基本无区别。波特率230400传输较快,但会挤占如无线鼠标等其他设备通信;部分版本ubuntu系统自身的串口库有无法设置波特率为115200的bug。用户使用时,请根据自身系统开发环境选择波特率。
Q15:N1飞控调参软件中点上了API,但无法使用API?
A15:可能因为链接不稳定造成无法打开API。飞机重启后再次连接调参软件,打开API那个勾选项多点击几次。
Q16: 为什么我的无线串口与飞控通信不正常?
A16:无线串口通常工作于115200波特率,且无线串口通常为半双工工作模式。由于以上两点特点,无线串口模块工作时会造成数据收发的挤占。使用无线串口设备时,请务必购买配置两对独立的无线串口,一对专门用于收数据,仅连接RXD,一对专门用于发数据,仅连接TXD,这样可以较为顺畅的进行通信。
Q17:Linux设备串口连接M100需要注意?
A17:请依照下列情况检查串口连接:
1-查找设备使用的串口号,这个因设备而异,参考linux设备连接相关内容,用
ls /dev/* 和 dmesg | tail
来查询你的设备号来查询,通常为ttyUSB0,ttyACM0,ttySAC2等;
2-使用串口和飞控通信要使用root权限,参考linux设备连接相关内容,用以下方式打开: sudo chmod 777 获取串口权限后打开;
sudo -s进root用户打开;
Q18: 通过Onboard SDK,我能读取M100飞行平台的什么信息?
A18:通过Onboard SDK可以获取到包括飞控的时间戳,四元数姿态,加速度,速度,角速度,GPS位置,磁罗盘,云台姿态,飞行状态,电量等所有飞行器数据;同时通过API串口下行数据可用多种模式控制飞机的移动。
Q19:M100的数据输出频率是多少?
A19:M100的数据输出频率可在N1飞控调参软件中进行设置,区间为 [0, 100Hz]。
Q20: Onboard SDK输出数据中飞行状态表示的意思?
A20:如下:1.0:standby;
2.0:take off;
3.0:in air;
4.0:landing;
5.0:post landing。
Q21: Onboard SDK输出数据中姿态参数的坐标原点在哪里?Guidance的情况呢?
A21:Onboard SDK输出数据中,姿态参数的坐标原点是飞机的重心。Guidance输出数据中姿态参数也是以飞机重心为坐标原点。Guidance与飞控连接后,其输出的姿态数据为更加准确的飞控姿态数据。在M100的默认组装状态下,飞机的重心处于机架中心,约等于四个机臂的轴线交点。若用户有进行过机械改装等对飞行器的重心有重大调整的操作,请注意飞机重心的相应变化,改装后请认真测量飞机的真实重心位置并在飞控和Guidance调参软件中进行相应的调整。
Q22: Onboard SDK数据帧头的CRC校验值通过何种校验函数计算得出?
A22:请参考例程中的校验函数部分。
Q23: 在OnBoard SDK中,飞控数据的单位是什么?
A23:时间戳间隔为1/600s;
加速度单位为米每秒的平分(m/s^2);
速度单位为米每秒(m/s);
角速度单位为度每秒(°/s);
GPS经纬度单位为弧度(rad);
高度和海拔单位为米(m);
电量为百分比表示(%)。
Q24: 在OnBoard SDK中,飞控数据是在什么坐标系下?
A24:姿态四元数表示的姿态是从北东地坐标系(ground)到机体(body)坐标系。加速度和速度是在北东地坐标系(ground);角速度在机体(body)坐标系;高度为相对起飞点高度;海拔为气压计高度值。
Q25: M100飞行平台有哪些无线传输方案?
A25:M100平台仅内置数据透传、lightbridge图传两个无线传输方式。可通过Onboard设备连接其他无线传输设备,例如WiFi模块,其他图传,3/4G网卡等。
Q26: M100在Onboard SDK时,遥控器是否有剩余通道控制自己的设备?
A26:无论是否使用SDK,M100遥控器都没有剩余通道。可参照的数据传输方式进行数据传递,或是使用onboard设备进行数据传输。
Q27: M100飞行平台是否支持挂载第三方云台和相机?
A27:可以作为Onboard设备挂载。M100官方适配Zenmuse X系列(X3和X5系列)的云台和相机,第三方云台和相机需进行适当的机械调整以适应M100的结构。
Q28: 在M100平台上搭载非官方的图像捕获设备,可以使用M100内置图传?
A28:可以。使用“N1视频编码器”对视频进行转码后即可使用M100内置的Lightbridge图传。
Q29: 应用需要实时传回机载传感器的数据并显示在移动设备上,使用Onboard SDK能达到这样的应用需求吗?
A29:当然可以。可以使用Onboard SDK数据透传功能。
Q30: Onboard SDK是否有模拟器供程序开发调试之用?
A30:有,目前开放M100模拟器。
Q31: Onboard SDK自动起飞的初始高度是否可以自行设定?
A31:目前暂时不支持设定自定义起飞高度。当前起飞高度固定为1.2米。
Q32: 为什么我发送控制信号后飞机仅抖动一下?
A32:onboard SDK要求控制指令连续发送,推荐使用20Hz或以上的频率发送对飞机的控制指令。
Q33:使用Onboard SDK,如何进行位置控制?
A33:目前SDK推荐使用速度控制模式或是姿态控制模式,自行引入反馈进行位置控制。位置控制模式也得加入反馈。
Q34:我要为M100准备零配件,请问哪些配件合适?
A34:M100的螺旋桨同E800动力套装;电机同inspire1(与E800动力套装安装方式不同),飞控天线、电调、云台相机同inspire1;GPS模块同A2飞控;遥控器同inspire1。
Q35: 在用Onboard SDK开发自己设计的飞行平台时,需要重点注意的问题是什么?
A35:可以将M100的N1飞控移植到其他飞行器。请正确安装飞控系统和Guidance系统。使用调参软件修改飞机重心位置与IMU和GPS模块的偏移,尤其注意GPS模块的箭头方向、Guidance视觉处理模块的箭头方向和Guidance视觉传感模块的方向与机头方向保持一致。保持Guidance视觉传感模块无遮挡,GPS模块尽量顶置并远离具有磁干扰属性的物体。
Q36。。。。。待更新。。。。。
。。。。M100讨论群:469284875。。。。
感谢DJI攻城狮Paul,以及水哥,xuliren,wqf等的帮忙,还有小伙伴enterprise。。。