打个广告(更新于2017.03.30)

坐标上海,上海微创医疗器械(集团)有限公司,机器人子公司在研产品主要是腹腔镜手术机器人、骨科手术机器人等

招聘:

机器人算法工程师

软件工程师

机器人控制工程师

具体岗位要求,请移步另一个回答:

做控制、机器人等算法工程师是怎样一种体验? - 回答作者: 夕阳

——————————————————————————

我算是一个机器人算法工程师,平时工作也就是看看论文,查查专利,研究模型,码段代码。从业三年,也是从小白慢慢接触并喜欢上了这份工作,姑且从两年多的工作经验分享一下我的入门心得:

1、

至少会一种编程语言,最好是C

因为通用性比较高,无论是matlab、VS以及其他硬件平台都是支持C的。编程语言就和你学母语、英语都一个样,掌握基本要素(变量、语法、算法)+ 大量练习。同时有些平台还会有别的语言,但总归是思路差不多,多练习,多请教,多百度(有墙,你懂的)。

谭老这本书还可以:

2、

学会用MATLAB

Matlab本身就是支持矩阵运算的,而机器人控制算法里面涉及到大量的矩阵运算,所以matlab简直是为机器人控制量身打造的软件一样。此外,matlab支持各种绘图,编程简单,又有很多的工具包,如Robtics toolbox;另外simulink又可以进行各种仿真。有一台装了MATLAB的电脑,无需硬件,基本上可以让你玩转机器人。

Matlab感觉随便一本教材+百度+中文论坛就可以了。

3、

熟练应用至少一种控制器

市面上有各种各样的机器人控制器,也根据机器人的复杂程度(自由度和主动轴的数量)来选用合适的控制器。一般来讲,市面上常用的有STM32,PLC,PMAC,UMAC,TC2/3等。不同控制器有不同的应用环境和编程语言,在开发过程中正确的编程是必不可少的,同时也多学习他们的软件结构,多向供应商要求技术支持,一个好的程序架构省去了很多编码和DEBUG时间,并且看上去程序非常简洁有效。

4、

Coding

& Debug

编码是检验你学习语言的成果,说明你能把认识的东西拼到一块儿了。那么恭喜你,完成了1/6的工作量。在《人月神话》(强烈推荐)中提到一个软件任务进度安排的经验法则:

从图中看出,测试可以占到了开发进度的一半时间。因为你会经常遇到各种各样的bug,需要花超过编码的时间找出bug、修复bug,这时又有可能产生新的bug,这都是在正常不过的事情了。而这恰恰是考验了工程师耐心和编程能力。

干机器人这一行来,对于这点是深有体验,也表示非常赞同,它也指导着我在机器人算法开发过程中的任务安排。

5、

独立完成一种机器人控制

最后一项应该相当于你的毕业课题了。以上的练习和理论再多,也仅仅是理论而已,因为在开发过程中你会发现仅仅学会编程是远远不够的,机械,电气,控制都需要懂一些,最重要的还是要把它转化成生产力啊。因此,建议如果有条件的话,把上面学到的去独立完成一种机器人控制(无论串联、并联、4自由度或6自由度)。

题外话:

经常,我和小伙伴开玩笑说,干机器人算法控制这一行,就像是在学校读书一个样,依旧是论文-专利-仿真-调试-产品;

我们会羡慕那些牛逼学校(不限于MIT、CMU)的实验室,会羡慕论文专利作者提出新的算法,会羡慕那些大牛的知识储备和知识面;

经常自嘲自己太low,又不想这么一直low下去;

于是我们就把这份工作当成一个读博经历了,经常就戏称上班为“上学”,下班为“放学”,见到领导会叫“老板”,遇到同事喊“师弟师妹”,说不定哪天我真要去读个博了;

哦,对了,我们是朝9晚10。