tuw_marker_filter: tuw_marker_noise | tuw_marker_server | tuw_marker_slam

Package Summary

The tuw_marker_noise package provides nodes for adding artificial noise to MarkerDetection messages from the marker_msgs package and for recording MarkerDetection messages in order to obtain a measurement noise model.



In order to obtain a measurement noise model one needs first to record samples. The tuw_record node stores for later comparison the poses of observed markers in combination with their expected pose in a separate output file record.csv.


rosrun tuw_marker_noise tuw_record.py

Subscribed Topics

markers (marker_msgs/MarkerDetection)
  • Pose measurements of detected markers will be retrieved via this latched topic.


input (string)
  • CSV-file containing real poses of markers (used for predicting measurements). Format: id;x;y;z;roll;pitch;yaw
output_dir (string)
  • Directory for storing the output file record.csv. This CSV-file contains the expected and the observed measurements. Format: exp_length;exp_angle;exp_orientation;length;angle;orientation
frame_id_odom (string, default: "odom")
  • Name of frame of visual markers real poses.


roslaunch tuw_marker_noise record.launch


Based on the observed and expected measurements given in the record file a statistical variance can be calculated. For more grained resolution variance.py separates the measurements into boxes of given precision determined by the expected pose. The calculated variances are written out again with their corresponding expected measurements into the file variance.csv. Then parameter.m is called with this CSV-file as input. Finally, the result of this call is stored in another CSV-file parameter.csv.


./variance.py -r ../output/record.csv -p 1.0


recordfile (string)
  • CSV-file containing expected and observed measurements.
precision (double)
  • A floating point determining the size of internally used boxes for calculating the variances.



  • Contains the expected poses and additionally the corresponding calculated variances. Format: exp_length;exp_angle;exp_orientation;var_length;var_angle;var_orientation


  • Contains the parameters determined by calling parameter.m with the pre-calculated variance.csv. Format: var_length;var_angle;var_orientation X par_length_x;par_length_c;par_angle_x;par_angle_c;par_orientation_x;par_orientation_c


Calculates the parameters of an underlying measurement noise model based on the expected poses of markers and their measured variance using a least square root approximation.


octave> parameter('../output/variance.csv')


file (string)
  • CSV-file containing expected poses and their statistical variance.


This node implements a parametrized measurement noise model for simulation purposes. It receives (perfect) measurements of markers and puts noise on it based on the underlying measurement noise model. The noised poses are then re-send again illustrating more realistic measurement results.


rosrun tuw_marker_noise tuw_marker_noise.py

Subscribed Topics

marker (marker_msgs/MarkerDetection)
  • Pose measurements of detected markers will be retrieved via this latched topic.

Published Topics

marker_noise (marker_msgs/MarkerDetection)
  • Receive noised pose measurements of detected markers via this latched topic.


beta_1/18 (double)
  • Parameters of the underlying measurement noise model.
plot_data (boolean, default: false)
  • Indicates if received and noised pose measurements are plotted or not.


roslaunch tuw_marker_noise noise.launch

Wiki: tuw_marker_noise (last edited 2016-10-04 15:18:53 by MarkusMacsek)