虚拟仪器
由美国国家仪器公司工程师搭建的演示平台NIRo是一种小型的无人地面车辆,它的组件都是从当地商店中购买的商用现货。控制系统在集成了FPGA和实时处理器的NI Single-Board RIO嵌入式平台上实现。
NIRo实现高效导航和避障需要几个关键硬件组件:
嵌入式控制器 – 用于传感器数据采集、决策和电机控制。
红外线传感器 – 用于探测机器人平台两侧和后方一定距离内的目标。
超声波传感器 – 用于探测机器人前方的目标,因为前方覆盖了较大的区域。
H桥 – 用于控制电池至电机的电流方向,使电机前进或后退。
图1显示了每个硬件组件在NIRo上的位置。表1提供了详细的部件列表。
NIRo的软件构架同时采用了底层和高层控制。避障和传感器数据解析等高级任务在嵌入式实时控制器上执行。避障算法使用IR和超声波传感器的测量数据来决定该如何根据周围的环境进行导航。
NIRo还包括电机的底层控制,该控制在FPGA上实现。根据避障算法获得的结果,FPGA通过数字I/O线路输出脉冲宽度调制(PWM)信号来控制电机。实时处理器与FPGA之间的数据传输通过LabVIEW内置的FPGA接口功能来完成。
NIRo软件构架中的主要软件组件包括:
避障算法
电机控制(PWM)
NIRo的软件构架可见图2。IR传感器与NI Single-Board RIO设备上内建的模拟通道连接,超声波传感器与内建的数字线路连接。电机与H桥连接,H桥再通过数字I/O连接到NI Single-Board RIO设备上。
图 2. 在NI Single-Board RIO平台上实现NIRo的软件构架
避障
在避障过程中NIRo监视从IR和超声波传感器获得的值。如果从传感器获得的值显示有物体接近,NIRo将按照自身与障碍物距离成比例的速率转弯。也就是说,障碍物与NIRo的距离越近,转弯的速度越快。
图3的控制框图说明了以上问题。障碍物与NIRo之间设置了一个预期最小距离。机器人与障碍物之间的距离小于该距离时会及时转弯。机器人会考虑预期最小距离与物体真实距离的差值与传感器测量到的真实距离的比例。
图 3. 用于避障的控制框图
避障算法的实现代码可见图4。值得注意的是,与图3类似,障碍物与NIRo之间的真实距离用来与最小预期距离进行比较。还要注意图4中case结构与图3中的避障框图类似。 PID.vi的输出用于向电机发出指令,使NIRo避开附近的障碍物。
图4. 用于避障的LabVIEW代码
电机控制(PWM)
避障算法的输出控制每个电机PWM信号的占空比。举例来说,如果NIRo未在行进路径上探测到任何障碍物,它将向FPGA发送数据告诉电机向前行进。这可通过向所有电机发送相同的占空比来实现。如果NIRo需要转向,每个电机收到的PWM信号占空比将不同。
实时控制器将占空比指令发送给FPGA。在FPGA上,占空比指令被转换成可被H桥使用的数字指令。每个H桥得到4个数字信号,4个数字信号结合确定了电池至电机的电流方向。根据发送到H桥的数字信号指挥电机前进、后退或不动。
尽管NIRo是小型的地面机器人,它用到的许多传感器、算法和技术与大型的更复杂的机器人相同。通过LabVIEW Real-Time、LabVIEW FPGA及NI Single-Board RIO,开发人员能够轻松集成硬件和软件,快速设计、开发和发布算法。高层决策算法及底层电机控制都可以在同一个平台上实现。通过集成可购买到的商用现货以及使用高级图形化编程语言,您可以极大地降低自主机器人开发的复杂性。
全部0条评论
快来发表一下你的评论吧 !