总的来说,要搭建一套比赛用的无人机,基本上需要下面几个东西:
- 机架
- 航模电池
- 电调、电机、桨叶
- 飞控
- 遥控器
- SLAM硬件
- 上位机
一个一个来讲。
机架
淘宝上有卖机架的,联系老师的话估计老师那边也会有现成的机架传下来,这个没啥好说的。
航模电池
常用的航模电池有3S和4S,这里的S代表的是电芯数,3S就是有三个电芯。电芯数量决定了电池的电压大小,间接影响了无人机的续航,但是电芯越多重量也更大,导致飞机需要的升力越大(耗电也更大),所以到底是3s还是4s需要自己综合考虑。
我们队伍使用的是5300mAh的3S电池,额定电压11.1v,可用电压区间在10.5到12.6v,使用在前言中提到的那套配置,能续航4分钟以上(非极限续航),基本能满足比赛的要求。
当电池电压不足时会导致无人机升力不足,掉高度,这点需要注意。
听说新动模型的格氏电池挺不错。(厂商看到了记得结下广告费)
电池比较娇贵,也是消耗品,建议多买几块。
1.不要短接电池两端(万用表电流档测电池电压)
2.使用平衡充充电时不要把3S的插头插入4S或其他规格插头上
3.使用完后把BB响拔下来
如果出现上面的任何一点,你都将会使本就不富裕的钱包雪上加霜。
另外建议买几个BB响,将它插到航模电池的检测端,当电池低于指定电压时会发出超级大的声音,有效避免电池过放。
电调 & 电机 & 桨叶
电调与电机的配置直接决定了无人机的载重能力,建议选择的电调额定电流不低于30A,如果后期可能需要使用3D激光雷达等比较重的设备,建议最少电调额定电流在35A及以上。我们队伍最开始使用30A电调,换上Mid-360时飞机升力不足,起飞不了;试了一套35A的电调才能正常起飞(最终还是换上了50A的电调和新电机)。
现在淘宝上也有四合一电调(一个电调直接控制全部的四个电机),这种电调可能动力没四个独立的强,但是省空间,重量也要比四个加起来轻一些,可以自行考虑。
电机的选择建议询问淘宝卖家。
桨叶的选择就比较随意,只要机架能放下就行,我们使用的是三叶桨,桨叶越多升力越大,但多少叶最适合就母鸡咯。桨叶有正反方向之分,安装时需要按照根据电机旋转方向安装正确方向的桨叶。
连接电调和电机时,三根线可以随便插,随便调换其中两根的顺序即可改变电机的旋转方向,旋转方向需要与飞控地面站内的配置一样。连接电调和飞控时,需根据飞控说明书安装,电机的位置与插在飞控哪里有关。这两点任何一个出错了都将导致炸机,千万注意。
飞控
现在比较常见的飞控品牌有Pixhawk和Acfly(我只知道这两个),Pixhawk的社区比较完善,出问题了应该能找到解决方法,但是中文资料比较少;Acfly是国内的品牌,网上几乎没有任何关于Acfly的资料,有问题只能去官方售后群内问(群管理员还有点爱搭不理的感觉),好处是国内用的人比较多(?),可能有祖传的代码能用。
隔壁队伍炸了个Acfly后,换成了Pixhawk,听说也不是很好用,所以这个自行选择吧。我们队伍使用的是Acfly A9,这个系列文章也有飞控二次开发教程和代码,如果使用这个飞控可以直接拿来用。
遥控器
遥控器好像区别不是很大,我们选择的是富斯i6S和IA10B接收器,其中IA10B中的10是代表通道数,通道数越多遥控器上能使用的按钮就越多,一般有6、8、10的通道数版本,遥控器左右两个摇杆占据了4个通道,剩下的通道数将分配给上方的按钮。一般来说,遥控器上有4个按钮,所以8通道版本是最合适的;但是实际上6通道也够用了,按钮基本上只需要一两个用于调试就行了。
SLAM硬件
飞控需要使用SLAM硬件传递给它的信息确定自己身处的位置以及控制飞行稳定度,SLAM的好坏将会直接决定飞机是否能飞稳,也影响了后续代码的复杂度(好的SLAM能允许我在代码里面直接控制飞机飞向预定的坐标点,而不需要通过各种图像来确定我是否真的到了这一个点),另外它也很玄学。
一维/二维定位
首先讲讲Z轴也就是高度的定位,用的比较多的是TF-Mini,它的本质就是通过激光来测算出当前的Z轴高度,虽说是激光,但是其实也不是很准,一般配合其他SLAM硬件使用,例如T265。
然后XY轴的定位,用的比较多的是光流LC302/LC306/LC307,光流能用来干的事情就比较有限了,基本上只是初期搭建飞机时把光流直接插在飞控上,然后测试飞机是否能定点悬停以及调整飞机基础参数。感觉这东西应该是能通过算法拿到XY轴坐标信息的,但是我没研究过所以不确定。
以上两个硬件都比较初级,按照飞控说明书安装即可使用了,多用于刚装好飞机的时候调试用,在正式比赛中可能并不会使用,所以这里简单略过。
三维定位
对于三维定位,我知道的硬件方案有两种,基于视觉的Intel Realsense T265和3D激光雷达Livox Mid-360(应该也有其他的3D激光雷达可以用,我只知道这个),其中3D激光雷达的方案在具体实现上又可以分为 基于点云和惯性测量单元IMU的雷达惯性里程计Fast_LIO
和 纯基于点云对场景建模的Open3D_SLAM
,这两种方案的区别将在SLAM专题中讲到,这里可以暂时不用了解。
T265通过视觉信息和内置的IMU计算得到当前的坐标,它的主要问题是T265得到的数据不太可靠,并且经常出现问题,有人研究过T265在特定频率的晃动下数据将完全不可用,此时飞机会炸机。另外,T265也有体质差异,不同硬件有些容易炸有些不容易炸(我们队伍的这块甚至放在小车上低速移动也会炸),所以也许Intel发现用视觉做SLAM的方案局限性太大了吧,现在T265已经不再更新和维护,相关软件也在最新版本中移除了硬件支持。
Livox Mid-360本质上来说只是个3D激光雷达+IMU,它的返回是点云数据(周围无数个点的位置和距离)和IMU数据(加速度,俯仰角啥的),通过这两个数据再结合一些算法就能计算得到当前的坐标信息。这个硬件啥都好,就是贵(这是我的问题),官方售价4k但是没货,淘宝上售价5k甚至一度炒到了6k,这钱是真好赚啊。它的数据根据算法的不同在鲁棒性等方面有所区别,但是也比T265要好很多,目前还没有发现数据不可靠的情况。就是如果时间允许的话建议加个保护罩(官方好像有售),这万一调试的时候磕了碰了,心和钱包都会一紧。
整体方案
刚搭好无人机时使用光流+TF-Mini测试飞机,确定能定点之后使用TF-Mini+T265或TF-Mini+激光雷达测试定点,如果出现高度不稳定的情况就把TF-Mini拆掉之后再测试。在我的测试中,使用Livox Mid-360 + TF-Mini会出现高度不稳的情况,但单独使用Livox Mid-360会缓慢掉高度(不会很厉害,也有可能是飞控代码问题,相信后人的智慧),具体TF-Mini的安装与否需要自行测试。
使用新的SLAM方案后首先使用定点模式测试飞机是否能悬停,使用绳子拉扯之后是否能会到原位,如果没问题的话代表这套方案至少能用,效果好不好就需要用具体题目来测试了。
上位机
通常,无人机的控制逻辑是:飞控负责控制好飞机的姿态,上位机发送命令给飞控来操作无人机执行前进后退一类的动作;另外上位机还需要运行针对题目要求写的代码、图像处理的代码、各种传感器数据处理、SLAM算法、外部设备控制,所以上位机是完成题目最重要的部分,它需要负责的事情比较多,对性能的要求也比较大。
上位机的选择就比较多了,总的来说可以分成两大类,NUC和Nvidia Jetson。
NUC
虽然NUC一般是指Intel的某个产品线,但是为什么要局限在Intel和,AMD不香么?所以我这里说的NUC指的是使用x86架构的小型电脑。
选择NUC的好处有:CPU性能强劲,不需要单独处理ARM架构依赖的问题,比赛结束后还能当电脑来用;缺点是:功耗大,接口少(只有USB口,没有GPIO),没有CUDA加速(没有独显),可能重量更重。
Jetson
你可以简单地理解成Jetson就是有CUDA加速的树莓派(树莓派是什么东西,请问度娘),CUDA加速主要用于加速人工智能、深度学习一类程序的计算,这东西在比赛中确实是可能用到的,例如在本系列文章中会讲到的Yolo,虽然即使没有CUDA加速也能用CPU硬跑,但是效果具体如何就需要自行验证了(NUC的CPU性能很强,估计也不会差)。
选择Nvidia Jetson的好处有:有CUDA加速(也是Jetson与其他微型单板计算机例如树莓派的主要区别),功耗低,接口丰富(有GPIO);缺点是:想要性能好得砸钱,比赛结束后就吃灰,Jetson设备上有一套不同于其他设备的编译方式以及开发方式。
这里给点必坑建议,如果要用Jetson的话千万不要选择Jetson Nano,因为这个型号确实比较老了,性能什么的已经跟不上了,有这钱上NUC绝对吊打。我们队伍先后用过Jetson Nano 4GB和Jetson Orin NX 8GB,nano的性能差到跑OpenCV编译要6-7个小时,编译自己写的C++代码要等一分钟以上(代码量只有几百行),并且在我自己使用中开启比赛需要的各种依赖+自己写的代码+OpenCV处理后帧数出现惊人的0.5帧,基本上属于不能用的水平,所以听我一句劝,真爱生命 远离Nano。最后,我们斥巨资4k上了Jetson Orin NX 8GB就一切都很美好了,编译OpenCV只需要半个小时不到,跑Yolo也挺丝滑。
总结
选择NUC主要的缺点还是在于功耗比Jetson大,以及纯使用CPU跑深度学习的效果好不好上。在购买之前还得综合考虑功耗以及重量,个人感觉如果使用了NUC,3S的电池可能就不太顶得住了,另外还需要多买几个CH340(USB转串口)+USB拓展坞啥的。
选择Jetson的话需要砸钱,以及对你的资料查找能力有一定考验,例如编译OpenCV时Jetson设备的编译就与其他设备不一样,配置环境比较麻烦,如果你之前从来没有接触过Linux的话建议还是选择x86架构的NUC方便一些,少很多麻烦。
小结
本篇文章内所说的只覆盖了比较重要的几个硬件选择,在实际搭建无人机的过程中还需要分电板、升/降压模块等东西;再者每年都有新的硬件出来,我上面提到的不一定就是最完美的解决方案,在你看到这篇文章的时候可能我上面提到的硬件又被淘汰了,所以能有个学长给点参考意见的话还是很重要的。
说了这么多又好像什么都没说,最终的决定权还是在看到这句话的你手上,选择困难症的话照着我这个队伍的方案买也不差(应该)。