next up previous
Next: Kurt3D Up: KURT2 Previous: KURT2

Simulation of KURT2 robots

For the simulation of the robot, a model of the hardware as well as a control software are needed. For the model, a mesh of the robot has to be generated, which is done using the Unreal editor and Blender. Fig. 3 (right) shows the real and the simulated robot. As for the control software, we extended the exiting software for the real robots with interfaces to access either the actual hardware or the corresponding components of the simulation software. This way, only small changes to the software were necessary, and any future improvements are beneficial for both applications, real world and simulated. The following code fragment shows an example of retrieving laser range data, either from a real SICK scanner or its simulated counterpart.

#ifdef USARSIM
   res = sim_client.SICK_read(fd_RS422,
                              buf, 255);
#else
   res = read(fd_RS422, buf, 1);
#endif

Currently the following components are simulated:

The camera device drivers are fed from a camera server, that in turn is fed by a snapshot of an Unreal spectator client. Fig. 5 (left) sketches the software structure and the data flow. For fast simulation four computers form a cluster:

  1. One computer is needed as Unreal server. The server simulates all robot sensors, except cameras.
  2. The cameras are simulated on a second computer, running a small program that captures pictures from an Unreal spectator window.
  3. The control loop of the KURT2 robot runs on a third computer, instead of the robot's notebook. Usually, the loop retrieves motor signals with 100 Hz and laser range scans with 75 Hz.
  4. The user interface for driving the robot runs again on a separate computer. This computer is connected to the previous one, i.e., to the computer running the robot control loop. There are no direct connections to Unreal.

The right part of Fig. 5 shows the 4-PC simulation of KURT2. Fig. 6 shows the user interface of KURT2. The shown data is transmitted from the control loop of the robot.

Figure 4: Left: Real Kurt3D robot. Right: Simulated Kurt3D.
Image kurt3D_real Image kurt3D_sim

Figure 5: Left: The software architecture for simulating KURT2 robots. The arrows show the data flow, lines represent TCP/IP connections, double lines are created, when programs are linked and dashed lines are generated, when data files are read. Right: Four computers are necessary for a fast KURT2 simulation. The lines represent TCP/IP connections and the arrows the data flow.
Image unreal_engl         Image cluster

Figure 6: The user interface for driving Kurt3D robots. The laser range data and the camera data originates from simulation.
Image interface


next up previous
Next: Kurt3D Up: KURT2 Previous: KURT2
root 2006-05-29