Skip to content
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.

###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).

Clone this wiki locally