研究生的坑坑点点
对于博主来说,站在现在看过去,不免有一些新的与体会。这里简单的说一下我对研0的一些建议:
目录
前言
大体上是说一些科研废话,主要是介绍一些关于Cmake工程、科研的一些内容
爱看看,不看走
一、所谓的科研必备工具
如果是过去十年,你问我科研用什么工具、软件。好的、我一定会推荐你学习Matlab。
但是近几年,随着各种分析软件的成熟,Matlab似乎也不是变得更加赤手可热了。(这里不忽视Matlab强大的使用平台,matlab强大的仿真还是实验插件、齐全的配套资源,仍是目前科研的第一神器)。博主这里只是简单的介绍一下几个比较好用的数据处理方式流程方式。
以惯导输出的陀螺仪数据(IMU串口发送给上位机)为例
二、科研研究流程
2.1 研究侧重点
如果你是侧重研究硬件的,硬件更侧重对整体的历程性能,我更觉得硬件是从无到有的过程。我觉得应该更多的测试硬件功能的整体效果,(对于惯导,就应该分析他输出数据的稳定和准确性能,建议直接上旋转平台,利用转台来进行测算)
如果你侧重研究算法的,可能对硬件的要求就不是必要的了,更多的是对硬件得到的离线数据进行处理(比方说惯导通过串口与电脑通讯,这个时候如果保存一部分通讯数据,这个数据就是所谓的离线数据)。
也就是说:如果你是研究做硬件的可能会说:我会用就好了,我考虑的是设计什么样的流程让我能够用。如果是做算法的,就应该考虑的是我已经有数据了,怎么把数据效果达到最佳(比方说滤波)
博主切身体会:在实际研究开发的时候,你会发现有些侧重硬件的人更喜欢研究这个功能怎么才能用。而侧重算法分析的人则更重视怎么处理数据。
打个比方:我们实验室有个关于GNSS+IMU的组合导航实验设备。其中关于GNSS是一个成熟的产品,大体上说是一个封装好了的小插板,插在板子上,然后正确的读取串口通讯就ok了。是的,对于硬件来说,正确的读取串口数据就ok了。但是对于软件分析来说:GNSS已经够烧脑子了,在讲明白这个设备用到了GNSS什么方法就足够麻烦了(我师兄做这个没做好答辩的时候被一番指着)。
2.2 环境搭建
如果你是做硬件的,那必然是几个熟知的开发套件,这些开发套件在环境基本上没啥要求。但是如果你是做软件的,你就会发现:环境配置是一个大的坑。基本上新手都会死在环境配置上(尤其是ubuntu下配置深度学习环境)。
是的Matlab分析很棒,但项目使用的不是Matlab(分析软件)而是用C++书写的工程。一般用C++开发,其工程框架是Cmake工程。在GIthub上基本是这个工程框架。
Cmake工程管理说到底就是C++工程管理框架。如果你说仅仅需要编译一个C++文件,那只然是不需要这个管理的,但是有的时候,调用头文件多了,找不到了,库也没法找到。因此我们需要用一个框架来管理C++文件的头文件,库,还有各种中间格式文件,Cmake就应运而生。
关于cmake介绍、常见用法会在后续放出
Cmake工程这里有一些建议:建议在ubuntu搭建环境(因为真的简单),博主不想介绍windows环境(因为配置的真的很累),
Ubuntu自带了gcc、g++(C++编译工具),但是windows还需要自己装C++编译工具。如果你不想配置,则装vs(应该是内置了C++的开发环境)。前几天博主写了一个关于vscode配置C++开发环境的博客其中前几步就是安装编译环境(93条消息) 我与AI有个对话:(一)简单的对话与总结_灵性花火的博客-CSDN博客
也就是说你需要先配置C++的编译工具,然后再谈软件开发。windows下搭建比较麻烦,而且还有各种库的配置,电脑死机——刷系统——配置归零。所以这里不推荐windows搭建环境配置(终于明白为什么那么多人在Ubuntu进行开发了)。
综上所诉:我们搭建了ubuntu的C++开发环境(g++自带、cmake装即可)
2.3 选择编程语言
一两个月前你问我用什么编程语言:那一定是C++
但是你问我同门:具体情况具体分析,C++底层比较兼容,但是python办公更好
但是你现在问我用什么编程语言,我会说:什么语言都可以
因为GPT能自己写代码了!不用我们来写了。
开个玩笑,还是建议C++为主。
3 后话
坦白说,这篇博客写的和营销号一样,最终就只得出结论Ubuntu+ c++,没啥意思。但是这个板块主要就是面向大家,浅谈自己研究以及生活。考虑到这里,所以第一篇向大家确定开发方向以及研究内容。后面会逐渐介绍一些好用的研究方式以及工具。
文章评论