RoboCup Simulation Log Server

The RoboCup Simulation Log Server (RCSLogServer) is a proxy server for RoboCup clients that saves text files containing all the messages exchanged between the RoboCup server and each client communicating to the RCSLogServer.

RCSLogServer was written in Java and it is known to work  with RoboCup Soccer Simulation protocols 6 to 11. The latest RCSLogServer version can be downloaded here(JAR file), and the source code here.

Package Description

The RCSLogServer package consists of:
  • The RCSLogServer executable class, and
  • The LogParser package, defining a class that can be used in other projects for parsing RoboCup Soccer Log Files created with the RCSLogServer. The LogParser class can also be used to parse server messages (or client messages) in real time.

Capturing log files of RoboCup clients

Pre-requisites

  1. You must have a RoboCup Soccer Server running. It usually accepts new clients on port 6000.
    Optionally, you can also have a RoboCup Soccer monitor running, it is useful for starting each game period (once clients are connected).
  2. You must have RoboCup Soccer clients ready to be run. The server's port number is going to be passed to the client either as a command line parameter, or in a configuration file. Either download any the sample teams or use your own client.

Overview

The org.RCSLogServer.RCSLogServer class is going to be started and then it can accept RoboCup Soccer client connections.

It requires to know the RoboCup Server host and port number, as well as the port number in which the RCSLogServer is going to accept new clients.

One file per connected client is going to be generated.

Command line instructions

  • Start the RCSLogServer as follows:

    java org.RCSLogServer.RCSLogServer [-s_host <serverHostName>] [-s_port <serverPortNumber>]
                                        [-c_port <listenInPortNumber>]


    All the parameters are optional:
    <serverHostName> is the name of the RoboCup Server host. Defaults to localhost
    <serverPortNumber> is the port number in which the RoboCup Server is accepting client connections. Defaults to 6000.
    <listenInPortNumber> is the port number in which the RCSLogServer is going to accept client connections. Defaults to 7000.
  • Start the RoboCup Soccer clients that are going to use the RCSLogServer as proxy making sure that they connect to the RCSLogServer host and the <listenInPortNumber> port.

    Each time a client connects to the RCSLogServer, it will report the new client and the file name in which the log is going to be stored.

    RoboCup Soccer clients that are not going to be logged should be started as usual (i.e. they must use the RoboCup Server host name and port.)
  • Kick off the first, second and additional periods. The easiest way is using a RoboCup Soccer monitor.
  • Press <ENTER> to terminate the RCSLogServer.

Output

The RCSLogServer will generate one plain text file per client connected. The file name is formed with the team name and the player number. Thus, for player 9 of team "Mates", the resulting file name is "Mates_9.lsf".