[Rock-dev] ROCK loging and dataset creation.

Evangelos.Boukas at esa.int Evangelos.Boukas at esa.int
Tue Sep 8 20:02:39 CEST 2015


Dear ROCK devs,

I am at ESTEC/ESA and we are using ROCK on our new robot named:"HDPR". We 
are close to the state that we can go on the field to collect a dataset 
but, since I'm a fairly new user/dev, I  have a question: 

I am using a custom build stereo camera, with two firewire ptgrey 
connected on the same IEEE 1394 bus. So, using the inherent 1394 
properties, the two cameras are synchronised.
Now, software-wise I am using in a ruby script the "
drivers/orogen/camera_firewire" component twice for the each camera and 
then the "perception/orogen/stereo" to produce the disparity like this:

Ptgrey_camera_1->camera_firewire_orogen-----|-->stereo_orogen->disparity
                                                        |
Ptgrey_camera_2->camera_firewire_orogen-----|

A struct view of the cameras in the rock-display reveals that there is a 
timestamp from each camera like this:
Left PanCam:
Time: 28 Aug 2015 17:23:33.993947
Received time: 1 Jan 1970 01:00:00.0
Right PanCam:
Time: 28 Aug 2015 17:23:33.993943
Received time: 1 Jan 1970 01:00:00.0

I assume by now that "Time" means sampled time and "Received time means" 
time saved to disk/ram! Then we log the data in a .log file. In order to 
export the data to useful .png files I use the following commands:
$ rock-export hdpr_perception.0.log --stream /pancam_left.frame --filename 
"Pancam_#TIME_0.png"
$ rock-export hdpr_perception.0.log --stream /pancam_right.frame 
--filename "Pancam_#TIME_2.png"

Question one:
Even thought the images are actually synchronised (I can see it from the 
product), the timestamps i am getting are not the same because of the 
aforementioned struct properties. Is there an official way of fixing this 
issue and have the images reported with exactly the same timestamp, or 
should I create another component (or alter the stereo one) in order to 
"fake" the timestamps to match? Something like the ROS time synchronzer 
would be perfect.

Question two:
The fact is that we are using several sensors on the rover (2 Stereo, IMU, 
TOF, DGPS) and in the best case we would like to have them all 
synchronised (at some point since they've got different frequencies) or at 
least real-time like, i.e. to know exactly when to expect the images. Is 
there any "easy" (obviously, that is not easy) way to do this in ROCK, 
since we cannot hardware trigger all of the sensors?

Thank you for your help and your time,
Evangelos Boukas
=========================================================================

Dip.Eng | M.Sc. in E.E.|Computer Vision & Robotics Researcher | European 
Space Agency NPI
Laboratory of Robotics and Automation | School of Engineering | Democritus 
University of Thrace
evanbouk at pme.duth.gr | http://robotics.pme.duth.gr | 
http://robotics.pme.duth.gr/boukas 

ESA - European Space Agency
TEC-MMA - Automation and Robotics Section 


ESTEC - European Space research and TEchnology Centre
Keplerlaan 1, PO Box 299 
NL-2201 AZ Noordwijk, The Netherlands 
Evangelos.Boukas at esa.int | http://www.esa.int/TEC/Robotics/
Tel. +31 71 565 5499 
=========================================================================
This message and any attachments are intended for the use of the addressee or addressees only.
The unauthorised disclosure, use, dissemination or copying (either in whole or in part) of its
content is not permitted.
If you received this message in error, please notify the sender and delete it from your system.
Emails can be altered and their integrity cannot be guaranteed by the sender.

Please consider the environment before printing this email.

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://www.dfki.de/pipermail/rock-dev/attachments/20150908/79b7b1bb/attachment-0001.htm 


More information about the Rock-dev mailing list