BUT SYNCHRONIZED DATA RECORDING SW
-------------------------------------------------------------------------------
author: Marek Solony, Lukas Marsik, Brno University of Technology, 2010
-------------------------------------------------------------------------------
This software was created for the purpose of recording data from multiple
sensors using global synchronization timestamp to achieve proper synchronization 
of data recorded on multiple machines / platforms.
  The communication is achieved using RS232 port, over which the synchronization
timestamp is sent together with other relevant robotic data. Whole program runs
in ROS environment.

This branch of SW was made for Linux platform using Robot Operating System (ROS)
List of recorded data can be found further in this document.

-------------------------------------------------------------------------------
Requirements, istallation and usage
-------------------------------------------------------------------------------
This SW was build for ROS electric, on UBUTNU 10.04 OS.

Prerequisites:
ROS electric: http://www.ros.org/wiki/electric/Installation/Ubuntu
For recording, Kinect has to be plugged in, and ROS node for Kinect 
(openni_camera) has to be running:
	"rosrun openni_camera openni_camera"
Optional, data published on /scan topic (mostly lidar data) can be recorded.
	

To install this SW, place the directory with both but_com_receiver and
but_kinect_recorder to your ROS workspace and execute following commands:
"rosmake --rosdep-install but_com_receiver"
"rosmake --rosdep-install but_kinect_recorder"

After successful build, run both programs, but_com_receiver should be running
and receiving data before but_kinect_recorder is executed.

Components
-------------------------------------------------------------------------------
1. BUT COM-port receiver
-------------------------------------------------------------------------------
This application is used to receive data from RS232 port. In this case the
data are used for synchronization and recording of ground thruth of LGV vehicle

The comunication specification is:
Baud rate: 115200
Parity: even
Stop bits: one
N of data bits: 8

The communication protocol:
header:"TT"
Message length: 1B
pos X: 4B mm
pos Y: 4B mm
heading: 2B 0.01deg
wheel velocity: 2B mm/s
steering angle: 2B 0.01deg
timestamp 4B ms
CRC

USAGE:
./receiver <COM port number> [-v]

"-v" enables printing read input on screen

after execution, SPACE BAR is used to start/pause program, key "x" is used
to exit.

-------------------------------------------------------------------------------
2. BUT Kinect Recorder
-------------------------------------------------------------------------------
This application is used to record data from external sensors created for recording
data in E80, Italy. Before running this program, but_comm_receiver should be 
correctly running.

USAGE:
./recorder <bagfile name> <record laser - 1/0> <record every Nth frame>

Subscribed topics:
/sync - synchronization time
/scan - laser scan from lidar
/tf - transformations for odometry
/camera/depth/image
/camera/rgb/image_color
/camera/depth/camera_info
/camera/rgb/camera_info

after execution, SPACE BAR is used to start/pause program, key "x" is used
to exit.