Tutorial

Tom Krajnik edited this page Aug 27, 2015 · 5 revisions

###How to try FreMEn ?

The FreMEn is implemented as a ROS-based action server FremenServer, which is also part of the STRANDS project software release. If you manage to download and build it, you can quickly try it in a few steps:

  1. Don not forget to source your environment.

  2. Run the fremen server: rosrun fremenserver fremenserver.

  3. Run the action client: rosrun actionlib axclient /fremenserver

  4. Add four measurements of the state 'Test' using the action client

    • fill the operation field with 'add' - this indicates that you are new adding observations,
    • fill the id field with 'Test' - this is the name of the new state,
    • fill the times field with '0,3600,7200,10800' - this means that the observations were done consecutively hour after hour,
    • fill the states field with '0,1,0,1' - this means that the state changed every hour,
    • press Send goal.
    • You should see a result stating that the measurements were added.
  5. Try predictions:

    • fill the operation field with 'predict' - this indicates that you want to predict the given state,
    • fill the id field with 'Test' - this indicates that you want to predict the 'Test' state,
    • fill the times field with '12600,14400,16200,1800' - this indicates that you want to predict the 'Test' state,
    • press Send goal.
    • you should get a probabilities field filled with [0.5, 0.5, 0.5, 0.5], this is because you are using FreMEn order 0, i.e. with no periodic nodes.
    • Change the order field to '1', this will cause the predictions to use one periodicity,.
    • press Send goal.
    • you should get the probabilities field filled with [0.5, 0.0, 0.5, 1.0], which means that the FreMen identified the 1 hour period in the added observations.
  6. Try playing with more complex data (requires gnuplot and sed, which are standard Ubuntu packages):

    • Get tutorial scripts and data] and uznip it. You should get a few scripts and subsampled data, which were used in [1,2] (door.txt and bedroom.txt respecively).
    • Open a terminal window and echo the messages from the fremenserver, so you can see its responses: rostopic echo /fremenserver/result.
    • Add the door measurement data to the data ./addstates.sh Door times.txt door.txt.
    • Ask to predict the Door state with order 1./predict.sh Door times.txt 1.
    • Copy the predicted probabilities from the terminal window, which echoes the fremenserver responses, and draw the results: ./draw.sh 'PASTE DATA' door.txt.
    • You should see a graph with the ground truth data, probabilistic model that shows that the door is open every afternoon and prediction calculated by thresholding the probability by 0.5.
    • Try increasing the order number for predictions in the previous two steps. You should see that the model will take into account not only daily periodicity, but also the weekly one.
    • Try the other, 'bedroom.txt' data as well.

###References

  1. T.Krajnik, J.P.Fentanes, G.Cielniak, C.Dondrup, T.Duckett: Spectral Analysis for Long-Term Robotic Mapping.In proceedings of the IEEE International Conference on Robotics and Automation (ICRA), 2014.
  2. T.Krajnik, J.M.Santos, T.Duckett: Life-Long Spatio-Temporal Exploration of Dynamic Environments. In proceedings of the European Conference on Mobile Robotics (ECMR), 2015. (To appear).