[Carmen logo]
 

Logging Data and Playing It Back

Recording data in CARMEN is made simple with the logger program. When you are ready to start logging data, simply start the logger program with the following command. At the very least, central and must be running.

  ./logger [filename].log[.gz]

[filename] specifies a filename for the sensor log. If the file already exists, the program will ask to overwrite it. If an answer other than "Y" or "y" is given, then the logger will quit. There is no way for this program to append new data to an old logfile.

The logfile will begin with the following message, which explains the format of the file. After that, the file is simply a list of CARMEN messages in the order they were received.

# CARMEN Logfile
# file format is one message per line
# message_name [message contents] ipc_timestamp ipc_hostname logger_timestamp
# message formats defined    : PARAM SYNC ODOM RAWLASER1 RAWLASER2 RAWLASER3 RAWLASER4 
#                              ROBOTLASER1 ROBOTLASER2
# old message formats defined: FLASER RLASER LASER3 LASER4
# PARAM param_name param_value
# SYNC tagname
# ODOM x y theta tv rv accel
# TRUEPOS true_x true_y true_theta odom_x odom_y odom_theta
# RAWLASER1 laser_type start_angle field_of_view angular_resolution 
#   maximum_range accuracy remission_mode 
#   num_readings [range_readings] num_remissions [remission values]
# RAWLASER2 laser_type start_angle field_of_view angular_resolution 
#   maximum_range accuracy remission_mode 
#   num_readings [range_readings] num_remissions [remission values]
# RAWLASER3 laser_type start_angle field_of_view angular_resolution 
#   maximum_range accuracy remission_mode 
#   num_readings [range_readings] num_remissions [remission values]
# RAWLASER4 laser_type start_angle field_of_view angular_resolution 
#   maximum_range accuracy remission_mode 
#   num_readings [range_readings] num_remissions [remission values]
# ROBOTLASER1 laser_type start_angle field_of_view angular_resolution
#   maximum_range accuracy remission_mode 
#   num_readings [range_readings] laser_pose_x laser_pose_y laser_pose_theta
#   robot_pose_x robot_pose_y robot_pose_theta 
#   laser_tv laser_rv forward_safety_dist side_safty_dist
# ROBOTLASER2 laser_type start_angle field_of_view angular_resolution
#   maximum_range accuracy remission_mode 
#   num_readings [range_readings] laser_pose_x laser_pose_y laser_pose_theta
#   robot_pose_x robot_pose_y robot_pose_theta 
#   laser_tv laser_rv forward_safety_dist side_safty_dist
# NMEAGGA gpsnr utc latitude lat_orient longitude long_orient gps_quality 
#   num_satellites hdop sea_level alititude geo_sea_level geo_sep data_age
# NMEARMC gpsnr validity utc latitude lat_orient longitude long_orient 
#   speed course variation var_dir date
# 
# OLD LOG MESSAGES: 
# (old) # FLASER num_readings [range_readings] x y theta odom_x odom_y odom_theta
# (old) # RLASER num_readings [range_readings] x y theta odom_x odom_y odom_theta
# (old) # LASER3 num_readings [range_readings]
# (old) # LASER4 num_readings [range_readings]
# (old) # REMISSIONFLASER num_readings [range_readings remission_value]
# (old) # REMISSIONRLASER num_readings [range_readings remission_value]
# (old) # REMISSIONLASER3 num_readings [range_readings remission_value]
# (old) # REMISSIONLASER4 num_readings [range_readings remission_value]
# robot: b21rmit

There is no way to pause recording; to stop simply type "ctrl-C" in the window in which logger is running.

To start a playback of the data, then start the main CARMEN programs normally, except replace base_services or simulator with the program playback as follows:

  ./playback [filename].log[.gz]

This program will immediately start sending messages from the logfile to central, to be passed to other programs.

To have more control over the playback, running playback_control to call up a graphic user interface, as below.

The double arrows advance or rewind the playback by 100 front laser scan messages, the single arrows by a single laserscan. The square stops the playback, the arrow starts the playback. The "R" resets the playback to the begining of the file. Note that playback starts up playing the logfile, so it is a good idea to have playback control running first, to stop the playback until you are ready.


Copyright by the CARMEN-Team