“训练-轨迹”任务要求机器人沿轨迹线行走,机器人安装有2个“灰度传感器”用于检测轨迹线与机器人的相对位置,一般情况下,其相对位置关系有如下几种:
●轨迹线在机器人的左侧——机器人左转
●轨迹线在机器人的右侧——机器人右转
●轨迹线在机器人的中间——机器人前进
根据以上关系,机器人需要不断地检测轨迹并修正自身的驱动状态,来完成轨迹任务。接下来开始编写走轨迹机器人的控制程序。
在离线模式主窗口单击“编写程序”,在“编辑VPL程序”窗口的左侧选择机器人名称“机器人-走轨迹”,单击“确定”为“机器人-走轨迹”创建控制程序。
创建机器人控制程序必须指定机器人,在编辑控制程序时可以获得关联的机器人的硬件信息,包括直流电机、伺服电机、传感器可驱动的部件的数量、名称、端口等信息。
机器人的控制程序也称为VPL(VisualProgrammingLanguage可视化编程语言)。
控制程序需要不断地循环检测轨迹线与机器人的位置关系,首先添加“While永远循环”模块,按以下步骤操作,如图1所示:
●单击选择“开始”模块,将鼠标指针移动到“开始”模块下部半圆的出口连接点上;
●在红色连接点上按住鼠标左键,向下拖动到空白区域松开左键,出现“拖拉菜单”;
●将鼠标移到“流程”项上,出现“流程”子菜单,单击“While永远循环”图标
“While永远循环”添加到编辑区,“开始”模块与其之间有一条流动的线条进行连接,流动的方向指示出程序的执行顺序。
按照上面的方法,在“While永远循环”的“√”(循环体出口)上添加一个“if判断”模块。完成后控制程序如图2。
向“if判断”容器中添加“当左侧灰度传感器的值小于100(小于100认为检测到了黑线)”的条件,按以下方式操作,如图3所示:
●在“if判断”的容器中单击右键,在“容器菜单”中单击“小于”模块;
●在“小于”模块的左侧容器中单击右键,在“容器菜单”中单击“灰度”模块;
●在“小于”模块的右侧容器中单击右键,在“容器菜单”中单击“常量int”模块。
为“if判断”容器中的“灰度”和“常量int”模块设置属性:
●选中的“灰度”模块,在属性面板选择使用“灰度传感器_左”,如图4左;
●选中的“常量int”模块,修改其属性中的“数值”项为“100”,如图4右。
在“if判断”模块的“√”(条件成立)出口处使用拖拉菜单添加1个“驱动”项里的“多直流电机驱动”模块,选中此模块,设置属性如图5。
“多直流电机驱动”模块设置为左侧2个直流电机反转,右侧2个直流电机正转,使机器人整体左转。
再添加1个“if判断”模块,并添加其条件,结果如图6所示:
●在第1个“if判断”模块的“×”(条件不成立)出口处使用拖拉菜单添加1个“流程”项里的“if判断”模块;
●在第2个“if判断”模块的容器中使用“容器菜单”添加一个“小于”模块;
●在“小于”模块的左容器中添加一个“灰度”模块;
●在“小于”模块的右容器中添加一个“常量int”模块。
设置第2个“if判断”模块的中的“灰度”和“常量int”模块的属性:
●选中的“灰度”模块,在属性面板选择使用“灰度传感器_右”;
●选中的“常量int”模块,修改其属性中的“数值”项为“100”。
使用“拖拉菜单”,在第2个“if判断”的“√”(条件成立)和“×”(条件不成立)出口分别添加1个“多直流电机驱动”模块。
●“√”(条件成立)出口连接的“多直流电机驱动”模块的属性设置如图A。当右侧的灰度传感器检测到黑线时,使机器人右转,如图7。
●“×”(条件不成立)出口连接的“多直流电机驱动”模块的属性设置如图B。当左侧和右侧的灰度传感器都没有检测到黑线时,使机器人直行,如图7。
至此,走轨迹程序编写完毕,最终的结果如图8所示,可以单击“操作”中的“自动排列”使模块的排列更合适。
单击“文件”→“保存”,在“保存VPL”窗口中输入控制程序的文件名“程序-走轨迹”,单击“确定”保存控制程序。
在保存时如果提示程序存在错误,可选择继续保存或终止保存,在排除错误之后再次保存程序。排除错误时,大部分的错误在单击错误提示后会自动选中错误的模块,方便排除错误。
在离线模式主窗口单击“编写程序”,出现“编辑VPL程序”窗口,单击其左侧的“程序”项,在程序列表中选择要打开的控制程序名称,单击“确定”,打开已保存的控制程序。
或在程序编辑器中单击“文件”→“打开”,出现“选择控制程序”窗口,在其左侧列表中选择要打开的控制程序名称,单击“确定”,打开已保存的控制程序。