实习的感悟

在为期三周的实习过程中,可以说到了最后才知道自己的科研能力是有多么的水,不光是从知识水平上的,更多的是思想认识方面的不足。下面我就随性的谈谈,主要是给自己日后看的,当然如果能够带给别人一点点启示那我也知足了。
实习的主要任务是利用Kinect与leapmotion,在unity环境中模拟人的各类动作,其想法是Kinect实现人的肢体动作,leapmotion实现人的手部的动作。对于一个本科刚毕业,而且专业又不对口的人来说,确实是一脸懵逼,刚过去连什么是Kinect与leapmotion都不知道,unity就更别提了。于是乎第一天在师兄的带领下,我才体验了一下Oculus头盔的VR效果,体验了leapmotion自带的demo的手部识别效果,还体验了高大上的zspace的三维显示屏的立体感。就这样第一天在体验中结束了,当时特别激动,感觉自己要接触的东西特别的高大上,好兴奋的感觉。
第二天自己找了本unity5.x的入门书开始看,可以说是类似于小学生的那种别人说什么你怎么操作就好,按部就班的操作就好了,就这样还是遇到了一些问题,不过通过上网也算是解决了,大概有两天多的时间了解了什么是unity,以及unity5.x软件中各界面的大概意思,按照书上的例子,自己也试着做了一个小的场景出来。(下图就是运行时刚开始的效果,现在觉得简直不好意思说出口)不管怎么样,虽然很多的package里面的东西都不懂,各类参数也不懂,什么mesh collider,什么渲染的概念都不理解。
实习的感悟_第1张图片
在经历了对于unity的接触的三天时间后,觉得自己走偏了有点,自己不是要在unity上开发什么大型游戏,不需要学什么粒子系统乱七八糟的东西,所以那个时候又开始看C#,因为师兄给的现成的代码都是C#写的,代码基本上都是完善的,只是需要小细节改动来实现最后的任务。自己觉得C还凑活,C++当时费着头皮看了C++ primer也没有看完,什么虚函数,继承啊,public,private之间的区别啊啥的早都忘记了。觉得C#很像C++,但是突然一下子接触什么都不会了,于是后面几天找了极客学院里面有关C#的教程开始看,才算科普了一下,不过也只是科普。这样子基本上一周多的时间就结束了。
到了第二周的周三左右,开始接触leapmotion,首先安装leapmotion都费了一些力气。到了官网,看到有的文件300M,有的只要几兆,到底下哪一个,,,,又不好意问,因为确实太简单了。
实习的感悟_第2张图片
上图就是遇到的尴尬之处,Orion是什么鬼,,,,仔细看了一下才知道大概就是两个不同的环境吧,Orion感觉像是高端一点的,涵盖的东西多一些,下了这个几百多兆的kit之后,就是括号里的东西(LeapDeveloperKit_3.0.0+39171_win)于是乎就成功装好了驱动。终于可以在屏幕右下角看到绿绿的长条了。下载了的sdk里面含有什么呢,就是一些头文件还有库函数,示例什么的之类的。不过对于没有从头开发过一个新东西的我来说,这还是第一次有意识的使用sdk吧估计,于是上网找了一本外文书[Packt Publishing] Leap Motion Development Essentials 这本书还是不错的,是基于VS利用C++开发的,我当时觉得我得这和unity中的有相似的地方,所以决定自己跟着书尝试一下。接下来的几天还是过得挺有收获的其实,自己在VS中搭建好了环境后,就开始在VS中简单的操作leapmotion。

实习的感悟_第3张图片
这个就是当时建立的工程,代码自己写了大概500行左右,虽然有部分是看书上的,但是都是自己敲的,而且都理解了基本上。凭借自己在C语言中学的知识,我还自以为是的写了头文件,分门别类的把函数都写到单独的文件中,不过自己C++的基础不好,专门把一个类的定义写在一个文件里,可是这个类有一个public方法,因为我把有些函数放在了其他文件里,所以需要在类的这个方法中调用外面的函数,当时就懵逼了,想着这可以吗?因为书上给的代码不是这样的结构(另外书上代码不全,自己为了下载源代码还专门翻了墙)。而且随着书上内容越来越难,自己也有一些代码读不懂了,而且C++的基础不好,变得越来越困难。心里开始动摇,想着一周多时间又不可能看完一本书,完全没必要,到这里就可以了,而且任务要求在unity上开发啊!此时已经过去两周了。
到了第三周的时候,师兄和同学基本上搞得也差不多了,基本上对代码的改动带来了不错的效果,至少基本上实现了任务了,我这边其实也没干什么,偶尔帮忙下载点东西,帮忙提提问题(如果也算的话)。不过我觉得其实挺乱的,不知道师兄或者同学们乱不乱,给我感觉没有一个很基础的,很系统的完成这个项目,像是在高空中直接盖房子一样,自己感觉可移植性不高至少。剩下最后一周的时间了,主任要求写一篇报告,要体现出完成这项任务的数学问题。我想了半天都不觉得有什么数学问题,,,然后师兄给了我一篇相关文章看,我一看才发现我们的方法放开最后的效果不谈,根本就没有数学基础在里面。文章里面涉及到的坐标变换的类似于最小二乘法的使用,我们根本就没有考虑到数学问题,而是直接从工程的不断尝试,数据简单分析去得到解决方法的。所以主任要求的报告我真的傻眼了。
今天回过头来看整个实习的过程,不足的地方很多,走过的弯路也很多,基础不好是一方面,方法不对也是一方面。下面自己觉得有必要总结一下不足。
(1)思考一个项目也好,其他问题也好,第一步是思考里面遇到的数学问题,这个的数学基础是什么,要能够用手推出来,当然做到这一步需要平时过硬的数学基础,而且遇到项目的时候要先找一些相关的文献看一下,不要一上来就直接对着代码看来看去。
(2) 不要总觉得自己对着电脑桌前开始敲代码,几天时间敲了好多行的代码是多么牛逼的事情,当然对于语言本身的熟练和操作是必学的,也是我目前的短板,不过不能一上来就这样,更不能沉浸在里面,觉得一天敲代码能做出最后的结果就好了,什么写文章的就留给别人吧,自己写写博客就不错了。
(3)做一件事情,不要轻易的跑偏,当然这次实习自己的时间短,而且本身不是这个专业的,所以确实心里不会对自己要求太严也是一方面。

先这么多吧,希望自己有所提高。

你可能感兴趣的:(个人感悟,leapmotion)