EyeSim - EyeBot Simulator
The EyeBot simulator EyeSim is a multiple robot simulator
and allows the testing and debugging of EyeBot
applications on a Unix platform. Currently, we only support PC/Linux.
The packages "forms" and "pthreads" are required, as is a thread-safe
version of X windows, when working with multi-tasking.
The simulation implementation differs from most other approaches,
since we wanted to be able to re-compile EyeBot programs for
simulation without having to change their source code in any way.
Since you will compile any EyeBot program with the RoBIOS library
for use on the robot, we created another version of this library
with idendical headers, which serves as the simulation engine
(see Execlib or
documentation in DOC++ format).
Compilation
- compiling for EyeBot:
gcc68 prog.c (generate *.hex for C program)
gas68 prog.s (generate *.hex for ASM program)
- compiling for EyeSim:
ee prog.c (generate a.out with threads)
es prog.c (generate a.out without threads)
eo prog.c (generate *.sim with threads)
Besides the standard RoBIOS functions, we also developed
the simulator equivalent of the v-omega mobile robot interface.
This allows a mobile robot to drive in a simulated 2-D environment,
with all its sensors and actuators.
EyeSim Features - RoBIOS Part
- simulation of all EyeBot RoBIOS functions
- KEY input
- LCD output
- Quickcam grayscale or color image input
- audio output and output (requires sound card)
EyeSim Features - Mobile Robot Part
- multiple robot simulation
- allows mobile robot to navigate insimulated environment
- simulated sensors: bumper, PSD, IR-proxy
sensor configuration names and values are displayed
- simulated actuators: v-omega differential driving
- environments can be loaded, conforming to the
- zoom functions via menu buttons or mouse drag select
- center function to bring the robot back to the window center
- pause function to halt execution, e.g. for loading an environment
or repositioning/reorienting the robot
- robot status line indicates all sensor values
- simulator status line shows events like collisions
- mouse buttons functions:
- left: click and drag on robot to move robot position,
click and drag on robot's direction pionter to chang robot orientation
- middle: pan in the environment
- right: open a rectangular area for zooming in
- parameter settings can be changed via menu for:
- errors in forward/rotational velocity
- sensor ranges
- robot size
- specialized parameter file
can be used for experienced users
to among others change number, position and orientation of
robot sensors
EyeSim Features - Concurrency
- multiple robots can be simulated in real time in the same
environment
- robot number can be set in the parameter file "eyesim.p" or
dynamically by pressing a button (add/delete)
- Note: LCD screen output and button input is restricted
to the first robot, so multi-robot programs should not require
button input or these robot processes will be blocked
- each robot process may itself have an arbitrary number of concurrent
threads
Implemented by:
Nicholas Tay
Elliot Nichols
Ghee Ong
Directed by Thomas Bräunl
Thomas Bräunl,
braunl@ee.uwa.edu.au