Data Logging And Parsing

Logging

As described in Running Your Code, the main application that governs Junior's behavior is called robot_supervisor. We give ese313 as a parameter to the supervisor to set the variables we want to log. At this point, the logging is activated whenever the dynamism signal logger_start is sent. Note that on Joystick Controller, clicking L1 starts and stops the logger. Here, code snippets for activating and deactivating the logger is be provided.

Python

Any such script first requires the robot name as it is used to represent a specific path in the whole database. If you want your code snippet to be generic, first thing to do is to figure out this part as follows:

hostname = 'localhost'
host = None
if len(sys.argv) >= 2:
    hostname = sys.argv[1]
    host = dy.network.connect(hostname,8650)
ds = dy.data.path(hostname)

Let us assume that this code snippet is in a file called example.py. When you run your python script on the shell:

python example.py junior1

this first part will catch given parameter and use it as the robot name.

Following two lines show how to use dynamism signals for starting and stopping the logger:

dy.signal.send_to(host,'logger_start')
dy.signal.send_to(host,'logger_stop')

MatLab

Under Construction

Acquiring Logged Data

The logger on Junior generates .dyl files stored under ~/xrhex_software/logs/ on robot side. Naming convention for these files is to use the date and time. So, when you are done with logging, the first thin you need to go into this folder and find the most recent log file. The simple script for copying this file to your own computer's home folder is:

scp <most_recent_log>.dyl <username>@<destination_IP>:~/

Parsing

logger.load function provided by Dynamism is the parser for all .dyl files. It is your duty to figure out how to call this function successfully.