机器人控制器开发涉及的专业众多,需要一个团队完成。精通控制算法的机器人专业的博士对于软件开发可能也一窍不通,看到进程、任务调度、mutex这些计算机名词头大;训练有素的软件工程师对于齐次变换矩阵、旋量这些概念则是一头雾水;除此以外,项目还需要驱动工程师、硬件工程师,还要有工程师懂总线通信、熟悉工艺。由于开发机器人控制器成本高困难,大部分的厂家会选择在别人的基础上开发。
控制器方案选择
单处理器还是多处理器?早期CPU的计算能力较弱,为了提高运行速度,不得不采用多CPU方案,一些计算量大的任务被剥离出来独占一个CPU。比较有代表性的就是各种控制板卡的方案,例如PMAC、固高。固高的GUC-ECAT控制器单独设计了一个DSP和一个FPGA来执行插补、轨迹规划等任务,另一个CPU一般执行非实时的人机交互,编程开发等任务。如果你拆开固高的机器人控制器,就会发现它有两个计算核心(IntelCPU和DSP/FPGA),就像游戏电脑会有独立的显卡一样。当然,多一个核总没有坏处,比如NI的机器人控制器roboRIO除了有ARM核还带了一个FPGA,可以想象它的数据采集会比较快。也难怪它被用在了对控制周期和采样速率要求较高的场合,例如MIT的四足机器人(用的是cRIO-9082)。
随着CPU核心数量增加和计算能力的提升,单CPU的性能越来越强,机器人控制器只使用一个CPU就够了,所有的实时和非实时任务都运行在这一个CPU上,由操作系统进行调度。