RoboRealm Plugins allow you to create custom filters/algorithms that can be added into the RoboRealm image
processing pipeline. Currently there 4 types of ways to extend the main RoboRealm application. The
techniques are ordered mainly in terms of increasing complexity but also in increasing capability.
If you have questions or problems with these plugins please be sure to send us a message
RoboRealm Plugins are different from the API as the plugins
are used to add new image processing modules into RoboRealm for use in any application/project. They also
guarantee that each frame is processed by the plugin before execution is passed back to the image
processing pipeline. The API is used for external applications to query the data within RoboRealm and/or
manage the RoboRealm application remotely.
Download our example plugin programs to get your started on creating your
own plugin. The examples include Java, CSharp, Visual Basic, C++ and Python versions.
Types of plugins
VBScript & Python programs offer a basic numerical comparison capability that reacts to variables created
in RoboRealm. For example, the mapping of visual coordinates to servo intensities can be
accomplished within the script. However, while direct pixel comparisons are possible
the speed restrictions imposed based the interpreted language can become unacceptible for use.
Pipes are a simple way to extend the processing capability of RoboRealm. Using windows Pipes
the image data and variables are passed to an external program outside of RoboRealm. The pipe
method is simple to use and provides the quickest way to extend RoboRealm.
Sockets are a similar communication technique that allows one to extend the RoboRealm program
using external programs. The advantage of the socket communication is in providing a more
standardized communication protocol that can be accepted by many different programming platforms.
DLL plugins are the most sophisticated mechanisms to extend RoboRealm but offer the createst
Variables and pixels
There are two forms of data that are passed through the RoboRealm processing pipeline. The
first and most relevant are the actual image pixels. Pixels are provided in BGR (Red and Blue
are switched from the normal RGB) arrays that can be processed as needed by external programs.
Pixels values range from 0 to 255 are are represented as 3 unsigned bytes.
Variables are more global image attributes that typically represent results from more detail
image calculations. For example, variables can be used to store the average image intensity,
image Center of Gravity, min and max pixel values, etc. Variables are passed and received from
each plugin to allow modification and creation of variables.
When to use what?
VBScript / Python / CScript - You have a simple need to perform a simple calculation on one or more of the
variables created within RoboRealm.
Pipes - You need to extend RoboRealm by a custom processing routine that alters pixels
directly. You are comfortable with the Windows operating system but donít have a need to
create GUI interfaces for your plugin.
Sockets - need to extend RoboRealm by a custom processing routine that alters pixels
directly. You wish to utilize another machine to perform your processing to improve
performance. Or you have an alternate programming platform (such as Java) that you
would like to use to process image pixels and RoboRealm variables.
Windows DLL - you need to create the fastest possible processing of image pixels that
will require some configuration that needs to be stored with the RoboRealm program. You
are also very comfortable with the Windows GUI programming and compilers such as VC++ 6.0
Examples in Languages
C++ - Pipe, Socket, Windows DLL
CSharp - Socket
Java - Socket (Thanks to Janahan Thevaseelan for the original version)
Python - Script, Socket
Visual Basic - Script, Pipe
Visual Basic.Net - Pipe
|plugins Related Forum Posts||Last post||Posts||Views|