信号I/O
CompactRIO控制器的现场可编程门阵列(FPGA)背板,能够以完全并行化的方式读取、输出和处理I/O模块通道。利用数量充足的可编程门电路,我们能够以1kHz的频率输出5个独立的PWM信号,输出10个数字信号到外部的马达驱动芯片,同时以100kHz频率对10条编码通道进行采样。在FPGA上,我们将每个机器人关节上的两个编码器上获得的信号,显示成整数以表示相对的关节角度。使用NI网站上提供的VI帮助我们进一步缩短了FPGA上VI的开发时间。两个高速切换的数字输出和数字输入模块为我们的应用提供了充足的通道数。
图形化用户界面
上述硬件接口的功能一定程度上受到FPGA技术能力的限制,但是系统的用户界面在Windows PC上运行,可以充分利用LabVIEW 8.5的特性。使用基于事件的界面,用户可以通过输入位置向量或上下、左右和前后增量式移动机器人,来设定机器人终端效应器的笛卡尔坐标位置和方向。然后进行坐标变换,计算出每个机器人关节所需的关节角。这些数据会反馈给控制器子VI,从所需和实际的关节角中计算出电机命令信号。
为了允许学生们在将来实现不同的控制算法,只要模板定义的前面板元件存在,控制器子VI在每次运行时都加载并可以包含任意的逻辑。这非常有用,因为学生们可能不能使用LabVIEW环境下的所有功能,而只能使用缺少LabVIEW FPGA和LabVIEW Real-Time Module的学生版本。虽然学生版软件不能打开全部的机器人软件,但学生们仍然可以使用它开发机器人控制器,并在机器人上进行测试。
我们的“老”机器人的可靠性是整个项目中的一个问题,我们需要一个机器人仿真以便我们在机器人维修时继续工作。使用LabVIEW 3D图像控制,我们创建了机器人的示意原理图。使用图形化用户界面,用户可以得知软件是否精确表示了当前机器人的位置。当可视化与现实不符合时,用户可将机器人送到启动原点,并按下按钮重新启动软件。
结论
使用CompactRIO和LabVIEW,我们可以在同一个编程环境中,从零开始构建完整的机器人驱动和控制系统。借助于CompactRIO控制器的易用性,使用高科技的FPGA技术来唤醒我们的“古董”机器人简直轻而易举。作为本科生的我,利用不到九个月的兼职项目工作,就开发出了包括软件和硬件的整个系统。