我的本科 + 硕士阶段学习的都是自动化专业。相比其他学科,自动化是离机器人最近的一个专业(除少部分高校专设的机器人专业外)。回忆了一下,按照一般本科自动化专业课程的设计,机器人用到了以下基础知识(大一、大二阶段,括号中为之后的应用领域):
高等数学(机器人动力学)
线性代数(坐标变换;状态空间控制)
概率论与数理统计(滤波器;位置预测;决策)
复变函数(频域变换对应信号处理;z变换对应离散时间系统)
数电、模电技术(机器人的硬件设计)
单片机原理与应用(机器人控制器)
计算机原理(同上)
计算机体系架构(硬件设计)
操作系统(RTOS/Linux)
C/C++语言编程(机器人编程)
算法导论(机器人算法:如路径规划)
更专业和针对一点的课程(大三、大四阶段):
自动控制原理(即 经典控制理论)
现代控制原理(State-space状态空间控制、MPC模型预测控制等)
智能控制(专家控制 + 模糊控制 + 鲁棒控制 + 神经网络控制)
机械制图
机械原理(齿轮、传动、有限元受力分析)
机械加工(数控机床等)
MATLAB/Simulink 或 NI Labview(或 快速控制原型设计 RCP)
传感器与信号处理(有时还包括系统辨识)
运动控制系统
电气控制与PLC(一些工业机器人依然是由PLC控制的)
电力与电子系统(主要针对电机控制和电源系统设计)
最后是研究生阶段(双控;重复课程不再列出):
人工智能导论
模式识别与控制
机器人导论
机械臂控制
移动机器人
非线性控制系统
最优控制 / 自适应控制
多传感器融合
智能制造
没想到写下来竟然有这么多,但是一一核对发现确实需要这么多的知识。当然也有很多研发中需要的知识是自动化专业没有覆盖的,比如机器视觉、深度学习、SLAM、路径规划、ROS操作系统等,这些根据需要自学就好。
如果是非自动化专业想要从事机器人工作(比如常见的计算机、机械专业转行),我觉得没有时间、也没有必要去一一学习以上课程内容。不同阶段有不同的任务,在校阶段还是以掌握原理为主,很多知识并不实用;而工作阶段又很难和学生时代一样系统的,自底向上的去学习。毕竟实践和理论一样重要,可以在项目开发的过程中有的放矢,慢慢学习掌握就好。