The CARMEN Simulator
A moderately useful 2-D simulator, intended to replace the base module. It publishes odometry, laser messages and sonar messages. It accepts base velocity commands. The simulator always starts with the robot in the bottom right corner of the map (0,0), but subscribes to localize_initialize messages as well as simulator_set_truepose messages to initialize the robot position.
The simulator can also run an instance of the robot module to provide collision prevention. This, however, needs to be activated in the ini file using the parameter "simulator_use_robot". From now on, this parameter is disabled by default, which means that you have to start robot separately.
Usage: ./simulator
In addition to simulating robot motion and perception, the simulator can simulate dynamic obstacles. The simulator supports two main kinds of objects: random wanderers and line followers. The objects persist forever, although the velocity term does slowly decay; all dynamic objects will eventually stop moving.
The simulator can be connected to other running instances of carmen, so that a simulator can "see" the robot in another running simulator. The simulator subscribes to the localize_globalpos message of the other carmen, and simulates perception of the other robot. Note, however, if collision avoidance is turned off, the simulator allows robots to pass through each other. However, this allows multi-robot experiments to run easily.
The connection happens programmatically -- a running controller must publish a simulator_connect_robot message containing the CENTRALHOST variable on which the other version of carmen is running. (Either a hostname, or this hostname and port.) Obviously, for consistency, both simulators should be told about the other. The nice thing is that you can also connect a simulator to a real running robot, although you would not expect the simulated robot to show up in the real robot's perception.
Generated on Wed Apr 5 18:34:20 2006 for CARMEN by
1.4.4