|
|
1. 你的假设是错误的。
2. 你应该没有理解我说的。 那么我这么形容给你听,负责飞行控制的是一个单片机,这里假设是pixhawk。负责实现多样化的功能(图传,目标跟踪等)的是另外一台机器,比如说Raspberry Pi. 两者通过I2C/UART/SPI协调。我们暂且把这两个系统称为飞控模块和应用模块。
3. 鉴于你没有理解我的意思,说了半天裸跑也没有什么意义。
1)自己写祼跑,代码量非常大。而且纯c并不适合开发大型系统,或者需要一个比较大型的团队来维护。最终更新周期长,bug也不好查。
-> 飞控模块,用c写,没有什么了不起的。现在也是这么干的。
2)把东西整合到一个系统下处理的优势是可以把cpu等资源利用率提高,即高低级的算法可以共用同一套资源,但这里的资源调度是非常非常复杂的事。也就是需要更多人来维护,而且专业性很高。
-> 给你一个非得在应用层跑姿态逻辑的理由?事实上应用模块和飞控模块的交换是很有限的,没有很大的理由揉合到一起。你也说了,这是那复杂度换取cpu利用率。
3)很多高级的算法库都需要一些基础库来支持,祼跑的环境基本上都是不全的,移植需要大量人力。这些算法库包括但不限于图形领域的opencv(比如基本的OSD叠加,图像翻转,高级的如人脸识别,特征识别等),视频领域的ffmpeg(H264半硬件加速压缩),
-> 这个是在应用模块跑的。(这里就看出来了,你误解我了,我说的是cpu,不是core。RPi有几个cpu啊?)
4)各种特定厂家的传感器与硬件,祼跑环境下要正常驱动也不是那么简单,需要极多寄存器操作,调试非常麻烦。
-> 呵呵
|
|