RoboRealm MSRS Simulation
The RoboRealmSimulation MSRS interface provides a way for RoboRealm to process camera views from the
MSRS Simulator. This allows a robot to react visually with the simulation environment. The included
example provides for a single Lego NXT within the default environment next to a yellow cone. The task
is for the Lego Robot to find the yellow cone and head towards it. Once the robot is close enough to the
cone it should turn to another direction and proceed away from the cone. On reaching a time
limit the robot should then proceed to search for the cone and repeat the process.
To run the example, start RoboRealm and load in the following
program. The
program loaded into RoboRealm is used to detect, track, and then steer away from the cone. Be sure that
the RoboRealm API server is active. To check this open the Options->API Server and ensure that the
checkbox is selected.
Download v1.5 the RoboRealm MSRS interface code
and open the RoboRealmSimulation package in C#. Run the program. Once running the simulation will
start and display the Lego robot and the yellow cone. Switching over to RoboRealm should now show the
simulation camera attached ontop of the robot. Note that you don't see the camera on the robot in the
3rd person view.
How does it work?
The simulator system provides access to each camera by exposing a webcam service interface not unlike the
interface that is provided by the actual webcam service. This webcam interface is accesed by the
RoboRealmSimluation program and transfers the image to RoboRealm using the RoboRealm Interface
Service which then uses the API to transmit the image to the RoboRealm application. Once within
RoboRealm the image is treated like any other webcam or still image and can be processed using
any of the RoboRealm modules. The processed results, in this case being left_motor and right_motor
based on a yellow objects COG is then passed back through the API, RoboRealm Interface Service and
finally to the RoboRealmSimulation program. Once the RoboRealmSimulation program has the information
it binds to a diferential drive service within the MSRS Simulator and provides the new motor coordinates.
This final action moves the robot and repeats the process again.
The obvious advantage is that using the MSRS Services RoboRealm can now be used in many
different environments with many different robots to test out vision proceedures. It is worth
mentioning, however, that the simulation environment is free from the regular image noise that one
experiences in the real world. Thus, it should be used as an experimentation system to prototype
image processing algorithms but care should be taken when transfering the system to a real robot
as most of the parameters will need to be changed and new noise reduction modules added.
Following are some videos of the Simulation environment with the roving Lego NXT
(652 Kb) Video of the Lego NXT from our perspective as it performs its task.
(958 Kb) Video from the point of view of the Lego NXT as it sees the ball and cone.
Enjoy!
|