虚拟仪器
本入门指南引导你通过使用NI LabVIEW机器人起步包建立一个移动式机器人。该原型使用LabVIEW 2009、LabVIEW实时和FPGA模块对NI sbRIO-9631设备进行编程。通过本文档,可以学习如何建立一个能在自己的路径上扫描对象并重新进行路径规划的可移动机器人。
产品 包括
NI LabVIEW机器人起步包
sbRIO-9631
嵌入式FPGA 技术
LabVIEW 2009
LabVIEW 机器人模块
LabVIEW FPGA 模块
LabVIEW 实时模块
24 V 电池充电器
视差超声波传感器
机壳, 两个驱动马达, 行星齿轮系统
插入NI LabVIEW机器人起步包附带的DVD盘,按照屏幕上的指示进行安装。当你完成安装后,请重启计算机。在此期间,使用电池充电器给机器人充电。
I. 连接硬件
连接传感器,电源线及路由器网线
a. 将分组的信号线穿过传感器并与接插件连接。
b. 将传感器连接到驱动马达上。
c. 连接电源线并打开“MASTER”开关。
d. 用网线连接路由器和控制板。
II. 运行硬件配置向导
如果向导没有自动启动,请从你的Windows“开始”菜单中打开。按照屏幕上的指示进行连接并请确认你的硬件设置包含了传感器方位和电机测试。
按照启动向导步骤1-5,完成硬件配置。
III. 创建新的机器人项目
使用自动启动的机器人项目向导来配置你的机器人项目,在LabVIEW启动画面的新建(Create New)栏目中选择机器人项目(Robotics Project)。
a. 在第一个屏幕上选择机器人起步包(Robotics Starter Kit),接着选择下一步。
b. 在第二个屏幕上,输入机器人的IP地址。IP地址可以从硬件配置中获得,也可以从NI MAX(Measurement & Automation Explorer)软件的远程系统中得到,之后选择下一步进入下一个窗口。
c. 选择一个项目名并将其保存在一个文件夹里。选择完成。
IV. 硬件编程
一旦机器人项目向导完成了项目配置,它会打开Roaming.vi.,阅读这个VI的前面板以确定是否所有的配置都正确。
点击LabVIEW程序的“运行”按钮,按照程序前面板上的指示将你的机器人连接断开。
V. 断开机器人
当传感器开始移动后,将网线断开。将机器人放置在地上,接着打开“MOTORS”开关。
4. 理解Roaming.vi和Starter Kit FPGA.vi
从这个机器人原型开发包中,你需要理解实现电机控制,路径规划和对象感知的代码。阅读下面的信息以以了解更多关于此代码的内容。
a. 实时控制
i. 移动传感器电机
在这部分,通过上下摆动传感器,你可以记录下目前传感器电机的角度,将从现场可编程门阵列(FPGA)中得到的数据和这个角度一起输入到一个对象检测算法中。使用Update Obstacle Vectors VI来更新障碍距离和角度的数组。
摆动传感器
ii. 操纵
向量场直方图随摆动传感器检测到的对象而变化。
更新向量场直方图
向量场直方图需要两个输入。首先,需要最新检测到的对象信息(障碍物距离和障碍物角度)。同时,要知道临界距离和临界角度。这样的话,系统可以应对任何过于接近机器人并能使其停止或后退的障碍物。
通过障碍物
如果障碍物距离远远大于设定距离或者没有达到临界距离,机器人会继续向矢量场直方图的返回间隙推进。然而,在没有达到这些条件的情况下,机器人将后退并以一个特定的角度向间隙处移动。使用Drive Toward Gap和Drive From Obstacles Vis来控制机器人对障碍物的反应算法。
iii. 设定电机速度
使用转向架设定电机速度
下面,程序利用Calculate Driving Directions VI计算出转速和角度,并把它们传送到Frame and Wheel Objects VI,这是一种就地处理方法。
写入电机速度
最后,程序得到电机速度的实际命令,并将其传送到FPGA以写入电机中。
b. FPGA软件
i. 编码器循环
编码器循环
编码器连到电机上来确定电机的速度。就硬件而言,编码器将数字信号发回至NI单板式RIO设备。就软件而言,你可以从编码器返回的不同相位确定相应的速度。
ii. 超声波传感器距离测量循环
使用超声波距离传感器来确定物体和机器人之间的距离。这是通过设置行高,计算信号的返回时间,再乘以音速而获得的。
超声波传感距离循环
iii. 传感器电机控制循环
传感器电机控制循环通过脉宽调制(PWM)信号来控制传感器电机。需要输入的是传感器电机的期望角度和传感器电机的初始偏置角度(校准偏置以后的)。
传感器电机控制
iv. 电机速度循环
在这个循环中,你可以接收速度设定值并将其传送至PID Express VI的设定值输入端,设定值规定了待控制变量的目标值。根据对象的方位以及机器人未来的目的地可以计算得到这些值,并从实时控制系统中将其写入。同时,你也可以在待控制变量中插入左右速度,这就是PID控制的具体变量。你可以在Express VI中任意地设定增益或者动态地改变它们。
驱动电机控制循环
控制电机速度
电机控制循环也能够将信息写入电机。定时器控制脉冲宽度,如果整个循环以20 ms的周期执行,那么就创建一个20 ms的脉度。通过控制输出的脉冲宽度,你可以控制电机的方向和速度。
全部0条评论
快来发表一下你的评论吧 !