文档库 最新最全的文档下载
当前位置:文档库 › ROBOLAB编程指南

ROBOLAB编程指南

ROBOLAB编程指南
ROBOLAB编程指南

ROBOLAB编程指南

乐高摄像头使用指南

在任一级别的ROBOLAB编程环境中都可以使用乐高摄像头。当需要使用时,可以打开一个多媒体窗口,来显示摄像头中看到的图像。在导航者级别的编程环境中,摄像头的多媒体窗口是导航者窗口的一部分。在发明家级别的编程环境中,摄像头使用一个全新的名为影像中心的独立的窗口。

影像多媒体窗口

在导航者级别中,使用摄像头来看机器人移动时碰到的事物是一件非常有趣的事情。通过一个连接在你计算机的USB接口上的摄像头,影像多媒体窗口可以让你看摄像头拍摄的图像,调整和保存需要的图像。

选择摄像头——导航者级别和发明家级别

导航者级别

每次打开影像多媒体窗口时,

ROBOLAB就会检查是否已经选择了摄像

头。如果没有选择过,就会自动打开摄像头

选择窗口。

发明家级别

在发明家级别中选择摄像头,可以使用

窗口中“Project”菜单中的“Select Camera”

功能来选择摄像头。

ROBOLAB会记住你选择的摄像头的类

型,以后每次使用摄像头的时候,

ROBOLAB都会选择这种类型的摄像头。

选择摄像头窗口的扩展选项可以让

你打开附加的设置摄像头选项,对摄像

头进行设置。

设置摄像头

点击设置摄像头按钮会打开一个窗口,让你调整你的摄像头的设置。每种摄像头的设置窗口都不相同,但是它们都有相同的特征。

暂停图像

单击这个按钮会将影像多媒体窗口中当前的图像冻结。窗口中的图像将不会继续更新,直到取消对暂停按钮的选择。

保存图像

单击这个按钮会将影像多媒体窗口中当前的图像保存下来。一个新的对话框会自动的弹出,你可以为图片命名以及选择存储位置。

图像是以BMP格式进行保存

的。保存好的图片可以在其它的地

方调用,例如ROBOLAB的研究者

级别实验报告中使用。

关于影像多媒体窗口和导航者中的ROBOLAB程序之间有一些重要的注意事项。在导航者中,程序和摄像头完全是互相独立的。导航者程序下载到RCX中时,不带有摄像机的信息。

摄像头的USB接头时连接在电脑的USB接口上的。摄像头本身可以连接在任何物体上,例如RCX上,或者固定在桌子上。由于摄像头是与电脑相连的,所以它的位置和运动都要受到它的电缆长度的限制。摄像头看到的图像通过电缆传输到导航者的窗口中。无论RCX是否运行,摄像头上看到的图象都是连续的。

关于如何在发明家级别中使用摄像头,并进行相关的编程有很多的注意事项。在发明家中,程序和摄像头可以完全互相独立运行,或者RCX可以根据摄像头看到的图像运行。如果利用摄像头的信息给RCX编写程序,RCX必须在红外发射器的范围内。

摄像头的接头必须连接在电脑的USB接口上,摄像头本身可以安装在任何地方,包括运动的机器人上面,或者固定在桌子上。由于摄像头是与电脑相连的,所以它的位置和运动都要受到它的电缆长度的限制。摄像头看到的图像通过电缆传输到影像中心的窗口中。无论RCX是否运行,摄像头上看到的图像都是不停的更新的。

发明家级别4在使用摄像头拍摄图像的同时,可以将摄像头当作一个传感器来使用。如果你是初次使用,或者需要提高你的发明家级别的编程能力,请根据这本ROBOLAB指南的介绍进行学习。

在发明家级别中使用摄像头

为了在发明家级别中使用摄像头,无论是仅

仅用摄像头看图像,还是将摄像头定义为一个传

感器进行编程,你都需要使用影像中心窗口。你

可以从“Project”菜单中选择“Vision Center”打

开影像中心。

例子——用摄像头计算小积木的数目

使用摄像有来计算一块灰色积木上的黑色小积木的数目,并且随着色子的旋转,RCX反映出来数值也要随之发生变化。

影像中心显示的是彩色的实际

的图像。图像处理采用的预先设置

的“Blobs1”的功能。在图像上的

黑点(黑色小积木)数目的值被存

储在红色容器中。容器中的数值显

示在旁边。

如果在面板上选择了容器,

那么视窗上显示的就是处理过的

图像。在这副图上有四个点可以

看见。

这里要注意的是,如果你要将摄像头当成RCX的一个传感器来使用,那么RCX必须在红外发射器的通讯范围之内。

影像中心

影像中心提供了一个窗口来观察摄像头拍到的图像,并且提供了将摄像头设置为一个传感器,为RCX提供信息的功能。影像中心有三种级别的运行模式——观察,与RCX进行低速通讯,与RCX进行高速通讯。通常影像中心窗口是处于观察状态。

通讯速度

摄像头传感器和电脑之间的通讯速度受很多因素的影响,例如摄像头传感器定义的复杂程度,电脑的速度,摄像头传感器使用的容器数目,红外发射器的通讯速度。根据你的程序在三种通讯速度选择中选择最合适的。

观察

在这个模式下运行,电脑和RCX之间没有进行

通讯。这种模式下摄像头拍摄的图像刷新速度最快。

与RCX进行低速通讯

在这种模式下运行,可以将摄像头传感器获取

的信号放在指定的容器中,传输给RCX。RCX还可

以控制电脑捕捉图像。

与RCX进行高速通讯

在这种模式下运行,可以将指定容器中数值连

续的传输给RCX。但是RCX无法捕捉图像,但是

提高了数据传输的速度。

将摄像头当成传感器使用:

图像处理

摄像头可以变成一种有趣的、独特的传感器。摄像头的图像可以通过电脑的处理,变成需要的数值,这个数值是一个单独的数字,它可以使用在很多方面。在影像中心,图像在摄像头传感器设置区进行处理。结果保存在红色、蓝色、黄色的ROBOLAB容器中。这些在电脑中确定的数值,都通过红外发射器传输到RCX中。RCX就可以在运行的程序中使用这些不断更新的数据。这样RCX就可以实时的对摄像头输入的数值做出反应。

注意:影像中心可以连续的对摄像头的图像进行处理,并时刻更新容器中的数值。信息传输给RCX的速度取决于一系列因素,包括选择的通讯速度。如果RCX与红外发射器失去了联系,它就无法收到任何的更新数据,无论这些数据传输的多么频繁。

例子——将摄像头当作传感器使用,机器人转弯并避开障碍物

使用摄像头来决定在机器人前进的路径上的哪些部分被阻挡了,并让RCX 控制机器人机动的避开这些障碍物。如果在图像处理时,假定障碍物都是黑暗的,图像处理的功能就是要寻找摄像头视野中哪里是明亮的,左边,中间,或者是右边。这些数值会作为容器的数值传输给RCX。当RCX收到新的传感器的数值,程序就会自动运行,调节方向,让机器人的头朝向亮的地方。

摄像头传感器的设置

为了将摄像头当作一个传感器来使用,你需要定义对摄像头的图像进行处理的类型。在影像中心窗口上的摄像头设置区进行选择。

观察图像

为了优化图像处理的速度和电脑与RCX通讯的速度,影像中心的观察窗口可以取消。将摄像头看到的图像从观察窗口移开,那么因为不需要对图像进行刷新,那么电脑的处理速度会加快。而图像仍然会被处理后,将结果传输给RCX。

图像处理

在影像中心有几种已经预先定义好的图像处理功能的

选项。点击图像处理菜单条,就可以选择其中的一种。从

显示的选项中选择一种你所需要的。默认的图像处理功能

选项的定义如下:

如果你已经定义了你自己的图像处理功能选项,那么

它也会显示在相同的列表中。

定义你自己的图像处理功能选项

为了给摄像头图像定义一种新的图像处理功能,你需要在图像上设置一个蔽光框。蔽光框识别图像上的特定区域,也可以定义成你所看到的全部区域。

点击影像中心上的定义传感器按钮,就可以进行新得图像处理功能的定义。

将摄像头定义成一个传感器

在定义传感器窗口中,可以为摄像头定义一种新的图像处理功能选项。图像处理可以是多样的或者具有多个步骤,每个步骤就是一个新的页面。

定义传感器窗口中有两个主要的区域。上部显示了原始的图像,处理后的图像,还有图像上体现出来的数值。下部是用来选择和定义对图像进行处理和步骤进行操作。

例子:为摄像头定义一种新的图像处理模式

识别平面上的乐高积木块

你希望移动摄像头,使乐高积木块位于摄像头视野的中央。为了做到这一点,你需要定义图像处理,使RCX可以知道它该如何移动与积木块相联系。

打开定义传感器窗口,开始为你的图

像进行一个多个步骤的图像处理模式的定

义。打开一个任意的定义传感器窗口。第

一步首先选择“Threshold”功能,创造一

个二元的(黑与白)图像。

预先设定的图像处理功能选项:

选项名称图象处理描述摄像头传感器的值

亮度(Brightness) 没有进行图像处理:

确定图像的亮度值。

亮度值储存在选定的

容器中。

暗度(Darkness) 没有进行图像处理:

确定图像的暗度值。

暗度值储存在选定的

容器中。

最亮的位置(Brightlocation) 图像的选定区域:

输出最大的亮度值和它所在的

位置(x,y坐标)。

需要使用3个容器。亮

度值存储在红色容器

中,x,y坐标值分别存

储在蓝色和黄色容器

中。

运动横坐标(MotionRow) 运动捕捉处理:

输出探测到的运动的横坐标。

横坐标值存储在选定

的容器中。

运动纵坐标(MotionColumn) 运动捕捉处理:

输出探测到的运动的纵坐标。

纵坐标值存储在选定

的容器中。

运动位置(MotionLocation) 运动捕捉处理:

输出探测到的运动的横坐标和

纵坐标。

横坐标值存储在选定

的容器中。

模糊点1 (Blobs1) 图像处理:

整个图像范围,图像反色,自

动取阀值将图像处理成二元图

像,计算面积在0~0像素之间

的所有模糊点的数目。

模糊点的数目存储在

选定的容器中。

模糊点2 (Blobs2) 图像处理:

整个图像范围,图像反色,自

动取阀值将图像处理成二元图

像,计算面积在500~1500像素

之间的所有模糊点的数目。

模糊点的数目存储在

选定的容器中。

与摄像头相关的编程图标的功能

在发明家级别4和研究者级别5中有一些新的图标,用来支持将摄像头当作传感器来使用,在ROBOLAB中给机器人编程。

等待图标:

等待摄像头传感器的数值上升

等待摄像头传感器读到的数值大于设定的比较值。默认的情况是摄像头传感器的数值是存放在红色容器中,比较值为55。

等待摄像头传感器的数值下降

等待摄像头传感器读到的数值小于设定的比较值。默认的情况是摄像头传感器的数值是存放在红色容器中,比较值为55。

编程的逻辑结构图标:

摄像头传感器分支

根据摄像头传感器的数值与比较值进行比较的结果(大于,小于,还是等于),选择不同的路径。默认的比较值是55。

当摄像头传感器的数值大于比较值就循环

开始一个循环,当存放摄像头传感器数值的容器大于比较值的时候,就不停的重复运行。默认是红色容器中的数值,比较值为1。

当摄像头传感器的数值小于比较值就循环

开始一个循环,当存放摄像头传感器数值的容器小于比较值的时候,就不停的重复运行。默认是红色容器中的数值,比较值为1。

容器图标:

摄像头传感器容器设置

将指定的数值赋予容器。默认是将数值1赋给红色容器。

RCX通讯:

捕捉一幅图像

命令摄像头捕捉一幅图像,并保存到电脑指定的文件夹中。

捕捉一幅图像并等待

命令摄像头捕捉一幅图像,并保存到电脑指定的文件夹中。并且直到图像捕捉完成才执行后面的程序。

相关文档