![]() |
|
Figure 21: MARS window display example (left).
And overall program structure (right).
When you start up MARS, you will see the main window as shown in Fig. 21(left). The MARS system adopts a modular architecture as in Fig. 21(right). It consists of a physcial simulation module, robot control modules, a graphical user interface module (GUI), and a user defined global control loop.
Physical Simulation: Our current physical simulation module handles four types of objects, wall (static obstacles), block (passive objects), robot-body (active objects), and magic-block (special reward-giving objects for learning experiments).
Figure 22: Internal structure of a robot object
(left). And an example behavior-based robot configuration (right).
Robot Models: There is a clear interface between the physical simulation module and robot control modules. Any number of robot models can be generated and simulated in (pseudo-)parallel. Each robot consists of a pair of modules, a robot-body and a robot-brain. A robot-body defines physical properties of a robot and a robot-brain defines how the robot behaves.
Sensor Models: A user can choose and attach any number of sensors to any place of a robot-body. Currently available sensor models are as follows: distance (odometry), angle (rotation), touch, infrared, radar (sonar), eye (object-name-sensor). Noise or uncertainty is not considered in the current version.
Robot Brains: A robot-brain is a user defined module for processing the simulated sensor data and generating action commands. It must accept sensor data and output action commands. In addition, it must be written as a re-entrant program, time-sliced by a :step message sent by the global control loop. As long as these constraints are met, a user can adopt any cognitive architecture. The system provides an example behavior-based type architecture as a default.
GUI: The MARS main window has a menu-bar with several buttons for controlling the system. Also, the system has a built-in graphical editor for creating/modifying the physical environment. You can save/load a physical environment definition together with agent definitions to/from a file.
Network Extension: A robot-brain can be configured to be connected to external process via an asychronous socket connection. In this case, a user can use an arbitrary language (C, Prolog, Scheme, Perl, etc...) to write the remote-brain. Thanks to the asynchronous connection, a user do not have to mind about time slicing at all.
Facility for Learning Experiments: MARS provides several special functionalities for robot learning experiments: reward-giving objects, reward sensors (send reward values to each robot), and a reward-logger (accumulates a system-wide reward statistics.)