- Updated to json-spirit-4.08c (fixed export+import of inf/nan values)

- fixed install targets in add_library macro
- remove deprecated source install script mira-installer.sh

- fixed MetaTypeDatabase::generateDependentTypesDB for recursive types
- added NOTICE log message when loading a shared library

- TypedChannelPromoter: stores channel type info in class meta data,  promotes channels only when data is written to it
  -> no instantiation (no need to load library) when there is no local subscribers or publishers
- Framework's known-fw argument allows to omit the IP address for localhost (i.e. -k1234 is short for -k127.0.0.1:1234)

- Image export (Ctrl-P) keeps location of the last saved image as starting selection
- Fixed missing initialization for 2DView's SaveContentMinPictureSize

- Image export (Ctrl-P) keeps location of the last saved image as starting selection
- Fixed missing initialization for PlotView's SaveContentMinPictureSize

- Window menu can close editors
- ChannelView shows channel's type meta
- fixed ChatView to allow multiple instances in connected frameworks (required to use for chat)

- Toolbox for the external G2O dependency.

- added channel type registrations (for autopromotion): various GridMap types, GenericPointCloud

- improved error message on wrong RPC method parameters documentation
- fixed bug in memberWithCommentAndDefault if type is list of something

- DistanceMapper: costs in outer margin are always updated for cells with obstacle distance < border distance

- fix different behaviour of free/occupied space at small decay rates

- PathObjectives ChangedPathSignal algorithm changed: We now comapare points that are about the same distance away from the start

- initial version

- initial version

- initial version

- initial version

- initial version

- initial version

- replacing 'old' decay algorithm with OccupancyGridMapper one, also decays Freespace to uncertain which was not the case beforehand
- only make groundplane free space in HoleMap if it can decay to uncertain

- set default value of 'MapFreeValue' to 127

- updated PilotWaypointFollow.xml to changes in Pilot
- refactored and fixed the waypoint smoothing, made it optional
- made compatible with Eigen 3.3
- fixed reflection: replaced direct calls to base class reflect by MIRA_REFLECT_BASE

- Fixed bug in IMU calibration script

- XMLDom: added iterator_base::setName()
- XMLDomPreprocessor: added 'as' attribute to <include> tag (to be used with 'select')
- fixed serialization of base classes in RPCServer::RPCReflector

- TextTraceView: fixed background color for window themes with non-white background color
- Visualization2DContainer can be instantiated without OrbitTool (no user camera control)

- added 'info --metadb' option to show entries of the metatype database (merged for all channels)

- added MetaTypeDatabaseView

- fixed reflection in templates: replaced direct calls to base class reflect by MIRA_REFLECT_BASE


- bash tools: added an explicit 'miraindex' command to facilitate reindexing of installed mira packages.
- added new package CameraParameters to install script
- fixed minimum cmake version requirements for some policies

- fixed covariance propagation for 3D RigidTransform composition and 2D/3D RigidTransform inversion
- added HumanReadableEnum macros for generating enums that can be translated to string values and vice versa
- slightly improved syntax check/error message for JSON multidim array element access

- <process>-tag: fix bug preventing the creation of new processed when the config string exceeds the maximum argument list size of the OS
- <process>-tag: usings defined in the scope of a <process>-tag are now visible to the parent and sibling processes
- <process>-tag: added sshport - attribute
- TapePlayer: fix potential delay of isPlaying() state after starting playback

- PolygonObject can draw filled polygon
- DynamicRenderable can update (reduce) the actual vertex count
- fix potential div by 0 in toQImage(const Img&, ...)
- PropertyEditor 'Open' dialog for file properties will start at the path of the current
property value, if non-empty (otherwise, working directory as before)
- added wrapper method to force usage of non-native file dialog static methods for load and save filename getters

- initial version: separated pure camera description parameters from CameraGeometry toolbox

- Ensure min/max parameter in ImgVisualization are not equal
- Polygon(Vector)Visualization supports drawing of filled polygons

- fixed tolerance display radius for Position-/DockingTask

- fixed template of CMakeLists.txt to not include the directories toolboxes and domains for MIRA_GEN_MANIFESTS_ONLY build



- removed camera parameter descriptions and visualization (moved to toolbox CameraParameters in MIRA base)

- PointCloud visualization ignores NaN data to prevent OGRE assertion

- visualization: added ColorMode 'Row'
- visualization skips points with NaN coords (prevents failed OGRE assertion)
- added PCLLoader unit for loading (sequence of) PCD files

- Event: Fixed uninitialized members in default constructor
- Event: Renamed member "enabled" to "canceled" and added reflection for it

- Initial version

- moved header things to separate header file

- Fix excessive uncertainty estimation

- DynamcRiskMapper only resets error state after a successful update
(not after an update skipped because update interval not expired yet)

- Added properties 'DistanceForNoOneWayCostsNearStart' and 'DistanceForNoOneWayCostsNearGoal',
which allows to disable the one-way costs near starting position and goal.
- Fixed crash when goal position is located out of the map.

- Pilot will not cancel task with "NoData" when cost map is outdated, instead stop, signal "WaitForData"
and continue when an updated costmap is available
- SpeedObjective also observes the vphi limit from VelocityTask
- PathObjective uses PositionTask's minTolerance for planner goal radius (ensure the path reaches minTolerance if goal is valid)

- Adapted to changes in Pilot-0.38.0: Since the Pilot now also observes the vphi
of the VelocityTask we can't use zero anymore.

- MotorControllerHG4: Don't initialize the Mileage channel with current total
mileage of the firmware to avoid precision problems.
- MotorControllerHG4: Added channel 'Acceleration' (for firmware >= 1.3.0)
- RPC to re initiate communication with ACS Controller (will abort charging while communicating)

- adapted to split CameraParameters/CameraGeometry

- adapted to split CameraParameters/CameraGeometry

- adapted to split CameraParameters/CameraGeometry

- adapted to split CameraParameters/CameraGeometry

- adapted to split CameraParameters/CameraGeometry

- Updated to eigen 3.3.5
- Updated to json-spirit-4.08b (patched 4.08 to fix some gcc warnings)

- added miratape to the tools listed in documentation main page
- updated documentation of bash tools
- always using "-Wno-ignored-attributes" with precompiled headers
  (to avoid massive warning spam when combined with Eigen 3.3 and gcc >= 6)
- streamlined the documentation of MIRA requirements installation, added Ubuntu 18.04/Mint 19
- added definition of macro _FILE_NAME_, similar to standard macro __FILE__
  but valid for identifiers (invalid characters are replaced by '_')

- documentation: fixed example for class versioning in serialization
- MetaSerializer: added CompoundMeta::insertMember() to add member at arbitrary position
- BinaryJSONConverter::JSONToBinary can tolerate missing '@version' elements in JSON data
  (will insert a specified default version into the binary stream)
- fixed default values not working for a member using delegate (getter, setter, ...) in its reflection
- added some path utility functions
- STL associative containers now reflect their keys as read-only properties, so these can show up e.g. in PropertyEditor
- security component adapted to support OpenSSL 1.1.0
- compatiblity Eigen 3.3.5: made (previously implicit) conversions from scalar to Eigen::Rotation2D explicit
- limiting the linked OpenCV libs to those really needed: core, imgproc, imgcodecs
  (derived packages might need to link additional OpenCV libs themselves)
- added utility macros for generating unique and semi-unique identifiers/strings
- PathFinder::findFile(s)/findDirectory(s) works for absolute path inputs (returns the input argument if it exists)
- added Rect difference operator for 2D case (returning list of remaining rects)
- fixed JSONDeserializer getting knocked off while reading collection with pointer elements
- fixed json::write always doing formatted output, regardless of parameter 'formatted'
- method() declarations in reflection can now include documentation for method's parameters
- RPC methods store a sample JSON for each parameter (which can be used for user help in interactive RPC tools)
  (set environment variable MIRA_RPC_METHODS_REFLECT_NO_PARAMS_DOCUMENTATION to disable reflection of new method
   members, enabling undisturbed connection with a framework older than this)
- added JSONDefaultPrecision singleton, to control the precision of json::write() (without explicit precision argument)
- serialization format for std::map/multimap changed:
  - new standard format is sequence of pairs (items with First/Second members)
  - XML(De)Serializer keeps interleaved key/item sequence format for config files backward compatibility
  - JSONSerializer can optionally export maps with string keys as objects (keys = member names)
  - JSONDeserializer can optionally import maps with string keys from either pair sequences OR objects (by default, it only reads pair sequences)
- fixed transform_cast always erasing covariance when both base type and dimension of source/target differs
- fixed XML(De)Serializer's handling of sequences in compressed format

- updated Tape format and version history documentation
- automatic increase of storage duration when reading older channel data can be disabled
- minor changes to compile with gcc 7.3 (Linux Mint 19)
- compatiblity Eigen 3.3.5: made (previously implicit) conversions from scalar to Eigen::Rotation2D explicit
- added examples for framework-based test setup (verifying channel data) in examples/fw/IntPublisherSubscriber/
- exceptions during ConfigurationLoader plugin loading are caught and displayed, but do not quit the framework
- arbitrary exceptions in Framework initialization are caught and framework is cleanly finished, showing the exception
- fixed TapeRecorder potentially not storing past data until the next update on a recorded channel
- added automatic channel promotion: channel types can be registered to automatically promote from untyped to typed
  (e.g. with remote connections or tape playback), based on typename (string), without requiring a typed subscriber
- Framework 'config-string' parameter enforces enclosing <root> tag
- renamed Framework option 'save_processed_config' to 'save-processed-config' for consistency
- ServiceProperty now (de)serializes completely, including the required service interface (as member),
  ServiceProperty(const std::string&) constructor is explicit
- parameters are documented for all RPC service methods
- added explicit cast of ChannelReadInterval<T>::const_iterator to ChannelReadInterval<T>::IntervalList::const_iterator to expose iterator of ChannelRead<T>
- added Framework parameter '--default-output-precision' (requiring uint argument) to control precision of JSON floating-point output
- added Authority::waitForChannel()
- removed deprecated methods MicroUnit::onStart/onStop/OnInitialization, Unit::process()

- TapePlayerWidget: negative offsets in current/last playing time are treated as 0 for display purposes
- TapeRecorderWidget: Fixed sometimes blocking file dialogs which occured on CentOS 7.5 with Qt 5.9
- EditorPartWindows (Visualizations, PythonEditor....) can be set to be always on top in editor window stack
- Visualization3DView on mouse events determines the device pixel ratio and provides it with the call to the active tool
- fixed wheelEvents zooming in 2DView/3DView also propagating to scroll the parent editor area with QT > 5.5(?)
- VisualizationView: Fixed sometimes blocking file dialogs which occured on CentOS 7.5 with Qt 5.9
- fixed some views opening file selection dialogs on keyboard shortcuts despite not providing any functionality
- TextTrace view: added CSV export (accessible via context menu or Ctrl-P)
- TextTrace view: can optionally display items in timestamp order instead of add order (order of channel callbacks)
- compatiblity Eigen 3.3.5: made (previously implicit) conversions from scalar to Eigen::Rotation2D explicit
- fixed PolygonObject::setColor() to set the polygon outline color (same as before version 0.38.0)
- implemented option to use camera perspective in camera view
- VisualizationTool base class got additional mouse event handlers taking the device pixel ratio (support for high-DPI scaling). Tools which need to
  consider the device pixel ratio (e.g. required for relating event coordinates to content of a QGLWidget) must implement these methods.
- Interact tool and tools based on SceneQueryTool (Measure, Localize, Goal, ...) respect device pixel ratio (therefore work with high-DPI scaling)
- fixed a bug that hinders proper hiding of X and Z axis on the change of axis visibility
- ImgWidget: in AutoScale mode, displayed image is re-scaled whenever the widget size changes
- removed use of deprecated (and irrelevant) QStyleOptionViewItemV3
- fixed QSplashScreen continuously calling close() (which was disturbing all tooltips with QT >= 5.6)
- QtUtils::getSaveFileName can optionally enforce that only certain file extensions are selected
- PropertyEditor 'Open' dialog for path (folder/directory) properties now behaves as for file properties
  (see 0.38.0) and uses mira FileOpenDialog wrapper

- added cylindric panorama image visualization
- getDistortion() returns k3..k6 too (and moved to base class DistortionModel)
- add versioning for DistortionParameters::reflect, k3...k6 only reflected with version >= 2
- fix frustum visibility when leaving 'Camera View'
- added orientation of cylinder in camera coordinates to PanoramaCameraIntrinsic which formerly has been a property of the OmniToPanoramaUnit
- added camera view projection matrix update on intrinsic change
- added type registrations for new auto channel promote feature

- fixed encoding error message of PNG codec

- improved display of TransformationTree node poses in TextView
- improved FramePublisher
- added several parameters like text and axis properties to control the visualization of the transform tree
- PathVisualization can control range of points (first/last index) to be visible

- Fixed sometimes blocking file dialog which occured on CentOS 7.5 with Qt 5.9

- parameters are documented for all RPC service methods

- SubTask calls itemName() in reflect() to show subtask (class) names in property editor
- added type registrations for new auto channel promote feature
- parameters are documented for all RPC service methods

- SubTask calls itemName() in reflect() to show subtask (class) names in property editor
- added type registrations for new auto channel promote feature
- parameters are documented for all RPC service methods

- added method CollisionTest::decayShape
- Marker module: added AxesMarker
- added type registrations for new auto channel promote feature
- parameters are documented for all RPC service methods

- prevent selection of invalid colormaps in various visualizations requiring continuous colormaps
- added type registrations for new auto channel promote feature
- DriveWidget monitors Motorstop status and highlights an active Motorstop in its GUI
- parameters are documented for all RPC service methods

- TapePlayerView removes non-existant files from its list of opened tapes
- Added option to authority view to show channel namespaces relative to associated authority
- Fixed sometimes blocking file dialogs which occured on CentOS 7.5 with Qt 5.9
- RPC View and RPC Console show service method's parameter names and descriptions (if declared)
- RPC Console shows a sample call for each method including parameter notation
- AuthorityView includes RPC parameter documentation in generated unit documentations

- "rpc info" shows service method's parameter names and descriptions (if declared)
  and a sample call for each method including parameter notation

- QtFtp: now building out of source tree to avoid error with Qt 5.9 on CentOS-7.5
- Quazip: adapted patch to work with Qt 5.9 on CentOS-7.5
- updated to svn 1.9, replacing all deprecated API functions by current versions

- fixed the 'copy --retype' option having no effect at all, and made it support multiple type changes in one call
- added 'copy --rename' option to enable renaming of channels
- added 'copy --addversion' option to retroactively add a '@version' member to all occurences of a
  certain class in the serialized data (if meta-serialized and reversible binaryToJSON/JSONToBinary)
- 'writeJSON' will not exit on missing metadata, just output an error and continue
- added 'play --play_also' option that allows simultaneous playplack of multiple tapefiles (as in MIRACenter)

- missing parent directory cmake files are created
- improved/updated templates
- added Python Unit to creatable components (running it will require the MIRA Python toolbox!)


- pinhole rectification uses all distortion parameters up to k6
- changed internal coordinate systems of Omnicamera and PanoramaCamera model to match the CameraFrame

- Using git instead of svn for downloading GMapping

- made compile with gcc 7.3
- Removed absolute path from raw mapping data files (.mdata.xml)

- Interaction tool works with OccupancyGrid visualization with arbitrary frame id
- PointCloud visualization: 'Size' property for drawStyle 'Points' is properly decoupled between visualizations

- fixed some compilation issues
- restructured to improve integration with PCL
- visualization: 'Size' property for drawStyle 'Points' is properly decoupled between visualizations
- added RPC method parameter documentation

- split MiraPy.C into multiple files to reduce memory usage during compiling
- fixed environment variable name PYTHONPATH in documentation
- added wrappers for more containers: maps of primitive types, maps of vectors of primitive types
  (+ forcing sequential build for these, requires to create separate libraries)
- Python to JSON conversion supports unicode strings (assuming utf-8 encoding only, so far)
- MIRA types wrapped using MIRA_PYTHONCONNECTOR*_TYPE_FOOTER can be converted from/to JSON via .convertJSONtoObject(...) and convertObjectToJSON()
- RPC calls handle the conversion of MIRA-wrapped types to JSON for their parameters transparently in the background
- JSON to Python conversion for json::Array now creates Python native list (instead of mirapy.jsonArray)
- the get() method of RPC futures now (optionally) supports converting the return value to an object given the type
- fixed issue with ChannelReadInterval containing None's instead of ChannelRead objects when using subscribeInterval
- added PyUnit destructor to safely delete unit object without segfaulting
- added UnitWrapper::doesChannelExist(), waitForChannel(), getNamespace(), get(Global)Name/ID()
- now adding lib/libName.so as symbolic link to python/Name.so during build and install (allows use with ldconfig)
- ReflectorWrapper extends RPC parameter documentation capability to Python-implemented services

- StateMachineListener: added method onEvent
- StateMachine: added RPC method sendEventByName for easier handling
- StateMachine: added more output of python exception details
- StateMachine: added missing parsing of executable content in parallel and final states
- StateMachine: added locking python GIL when notifying python listeners
- StateMachine: added notifying listeners on event
- StateMachine: minor bugfixing
- StateMachinePy: added exposing of TransitionTarget, Transition, StateMachineListener
- StateMachineTest: added method onEvent

- added method onEvent
- added output of listener callbacks on channels
- added multi instance ping pong test

- changed multipath split characters from '\t' and ' ' to ',' and ';'
- added optional list of directories which will be searched for random playing of files

- Override Unit::process(const Timer&) instead of deprecated Unit::process()

- Override Unit::process(const Timer&) instead of deprecated Unit::process()

- adapted to split CameraParameters/CameraGeometry
- ImageRectificationUnit's default output image size is input image size
- OmniToPanoramaUnit: moved orientation of cylinder in camera coordinates to PanoramaCameraIntrinsic

- Override Unit::process(const Timer&) instead of deprecated Unit::process()

- added user defined file permissions for persistence files
- added RPC method parameters documentation

- Distance-based cost generation is available as a generic mixin 'DistanceMapper' to be used by CostMapper implementations.
- Added RPC method parameters documentation.

- added RPC method parameters documentation

- removed legacy methods
- added RPC method parameters documentation

- OccupancyGridMapperWithShape can use a specific footprint as decay area
  (e.g. only forget obstacles in front of robot)
- Override Unit::process(const Timer&) instead of deprecated Unit::process()

- added RPC method parameters documentation

- changed the annotation of the added 'MergedMap' alias to include reference to source code

- override MicroUnit::initialize() instead of deprecated onInitialization()

- SpeedObjective now checks every sample from the given trajectory for a velocity task, not just the last
- made compile with gcc 7.3
- removed EstarPlanner.package file to avoid confusion (EstarPlanner is an element of package Pilot)
- PathObjective: Added new channel 'PathChangedSignal', which signals significant changes in the path
- PathObjective: Exceptions from CostMapper::getDirtyRegions() are catched, triggering a complete planner update
- RewindRecoveryTask is exposed in RewindRecovery.h
- added RPC method parameter documentation

- Override Unit::process(const Timer&) instead of deprecated Unit::process()

- calibration tool allows choice to use 0-6 radial distortion parameters (k1-k6)
- calibration pattern size setting is saved and restored with workspace
- calibration tool can visualize the point coverage (positions of all calibration points in image)
- enabled use of circle grid calibration pattern with OpenCV3

- added rpc methods, therefore renamed methods

- Override Unit::process(const Timer&) instead of deprecated Unit::process()
- Added configuration variable ueyeCameraID to UEyeUnit.xml

- WaypointEditor:
 - added option for automatically changing the rotation of a waypoint in the direction of the next one
 - load MCF file from menu
 - consistent Waypoints sizes on insert
 - keep current waypoint selection during camera movement
 - added 2 buttons for rotating the view (counter)-clockwise
- WaypointVisitor:
 - override Unit::process(const Timer&) instead of deprecated Unit::process()
 - interrupt() updates status as 'Stopped' on WaypointVisitorEvent channel
 - fixed usage of property 'Order' in example configuration file
 - added property WrongDirectionCost
 - added 'Velocity' and 'StraightPath' properties to waypoints: optionally command a VelocityWaypointTask
   instead of a Position+OrientationTask, extended addPoint/teachPoint methods accordingly
 - added RPC method parameters documentation

- Added label to RTLS anchors
- Renamed RTLS anchors to beacons
- mira::localization::MarkerMap is an std::multimap now,
  so we can store multiple marker instances with same id
- made compile with gcc 7.3

- Override Unit::process(const Timer&) instead of deprecated Unit::process()

- added optional KeepDistanceTask
- fixed minOnTime

- Fixed crash in initialization, which occured when no CAN device was connected.

- Renamed old version to BarcodeLocalizationLegacyUnit
- Added new version of BarcodeLocalizationUnit with more features
- Override Unit::process(const Timer&) instead of deprecated Unit::process()

- Override Unit::process(const Timer&) instead of deprecated Unit::process()

- changed lib name for NogoMapper to reflect that costmappers
  are running in CostMapper unit, not Pilot anymore

- initial version

- Added simulation of battery percentage
- made compile with gcc 7.3

- Added support for LeishenLidar
- Override Unit::process(const Timer&) instead of deprecated Unit::process()
- Added support for UDP based range finders
- Added support for LeuzeRSL400

- resolved a "comparison between signed and unsigned" issue

- Updated to JSON Spirit 4.08

- restore filePath variable in XMLDomPreprocessor on backtracking
- json::write has parameter to control precision for floating point number output
  (default precision changed from 17 to 3 [and removing trailing zeros])
- ExtensibleEnum optionally can define a string id with each value
- Added compilation and linking support for examples with OpenCV version >= 3

- precision for EigenMatrix XML serialization increased to 17 digits
- Reworked StripedStorage, now offers StripedStorageXML and StripedStorageBinary (using different serialization backends).
  Limited the scope of the data template type to the store/retrieve methods, this way StripedStorage objects can easily
  be stored in containers despite storing different data types.
- findFiles can no longer return multiple entries for the same path, all returned paths are unique (as determined by operator== of boost::path).
- Made compatible with OpenCV 3.3

- TapeRecorder: Fixed handling of flag avoidDataLoss

- Added control for precision of floating point number display in Text/Text Trace visualizations
- Added control for precision of floating point number display in Text View/Text Trace View
- STLMeshLoader: Fixed exception when converting a STL file to Ogre mesh by using toolbox Assimp.
- Visualizations set the new source channel ID as their name when it is changed
- Visualization3DView: Using correct width and height to determine camera aspect ratio (shouldn't include the RCP title or toolbar heights).
- VisualizationView provides a virtual interface saveContentToFile(Path) to save the content to a file, which is registered to keyboard shortcut CTRL+P.
- Implemented saveContentToFile(Path) for Visualiation3DView and Visualization2DView.
- Added workaround for OGRE bug: Ogre::SimpleRenderable ignores a set render queue priority
- enumeration property combobox (using PropertyHints::enumeration) now working for string property again
- PropertyEditor spinbox smartscroll observes minimum/maximum from property hints
- PropertyEditor::Delegates can provide a name for their property, which is displayed in the
  PropertyEditor instead of the PropertyNode's name
- VisualizationPropertyDelegate registers as a name delegate returning the current visualization name

- TapeRecorderWidget: Store avoidDataLoss flag in recorder configuration.
- TapeRecorderWidget: Update stats once more after stopping the record to show
  the right number of recorded messages.
- enable controlling order of visualizations in Text, Text Trace, 2D, 3D views
- VisualizationView: saveContent via CTRL+P now uses PNG as default if no image file extension is given.
- enable controlling order of visualizations in Text, Text Trace, 2D, 3D views
- Implemented messy vertical flip of coordinate system in Visualization2DView and Visualization2DContainer in a cleaner way.
- enable controlling order of properties in PropertyEditor

- Pose text visualization now also respects the view's Precision property
- Added 3D visualization for vectors and lists of rectangles (Rect2i, Rect2f, Rect2d).
- FramePublisherView checks channel existence instead of just subscribing (thus creating) the input

- Added 2D visualization for vectors of double based 2D RigidTransforms.
- Adapted 2D visualizations after change to coordinate system in GUIVisualization 0.37.
- Adapted visualizations to GUIVisualization 0.37.

- Adapted visualizations to GUIVisualization 0.37

- KeepDistanceTask extended by a separate criticalDistance
- fixes TaskVisualization: avoid showing unintialized objects for empty
  task, draw correctly (continuously update) with dynamic camera frame

- PlotView grid is represented by an own visualization (user editable)
- Added properties LineStyle and LineWidth to curve visualizations
- JSON-based visualization names follow the curve title when the
  displayed member is changed

- Adapted views/visualizations to GUIViews/GUIVisualization 0.37

- Adapted visualizations to GUIVisualization 0.37.
- Adapted 2D visualizations after change to coordinate system in GUIVisualization 0.37.

- Adapted 2D visualizations after change to coordinate system in GUIVisualization 0.37.

- improved Transform Tree View: (selectively) show covariance, searchable, persistence, better layout

- TransformTreeView: better layout for covariance display

- added operator== for DistortionParameters, PinholeCameraIntrinsicNormalized and PinholeCameraIntrinsic

- Made name of the temporary directory more human readable.
- Fixed for use with OpenCV3
- Added new tool OccupancyGridToMCF to easily create a suitable MCF file for a sole occupancy grid file (.xml + .png).
- Extended interface
- Fixed output of the mapping process to the logfiles. Redirecting did not work before.

- Adapted OccupancyGrid visualization to GUIVisualization 0.37.
- Adapted 2D visualizations after change to coordinate system in GUIVisualization 0.37.

- Exposed std::vector<Point2f>, std::vector<Point3f>, Pose2Vector, Pose3Vector, PoseCov2, PoseCov3, PoseCov2Vector, PoseCov3Vector
- Exposed Eigen::Matrix3f, Eigen::Matrix<float,6,6>, Eigen::Matrix<float,7,7> needed for PoseCov2 and PoseCov3
- Fixed for use with OpenCV3
- Exposed std::vector<> for primitive types bool, int, int64, float, std::string

- adpated to changes in StripedStorage

- Adapted PersistentPose plugin to StripedStorage change in MIRABase 0.42.0

- Adapted to changes in MapBuilderBase, implementing the max range parameter.

- added loader property whether to ensure valid occupancy (set to false to keep original data unchanged)

- Adapted to changes in MapBuilderBase, implementing the max range parameter.

- Include trajectories marked as unreachable in debug channel output and ensure their correct drawing
- Adapted DynamicWindowVisualization to change in 2D view.
- PathObjective publishes the task pose as transformation frame ("TargetFrame")
- EstarPlanner+PathObjective: if the goal position is not free when the task is set,
  ensure to keep planning to it when it becomes free afterwards (before timeout)

- Added property 'ExtendPathLength' to specify the length by which the path
  will be extended when 'ExtendPathByTolerance' is activated.
- Time of a transition (mTau) is no longer a fixed value and will be estimated
  by the distance and maximum allowed velocity.

- Fixed some typos in debug messages
- fixed for use with OpenCV3
- Adapted to StripedStorage changes in MIRABase 0.42.0

- Added Marker class
- Adapted 2D visualizations after change to coordinate system in GUIVisualization 0.37.

- automatically start a new log.sqlite each day
- reduced variance in initStationPose from 0.1 to 0.01
- added variable wrongDirectionCost (default 0.5)
- added minOnTime that ensures the robot stays online at least this amount of time until it powers off automatically when there is no active operating slot

- Fixed adding of the one-way costs into the current stage of the CostMapper

- DepthImageAcquisition: Replaced property BorderPixelSkip by four properties
  to specify the size of border (left, right, top, bottom) independently
- DepthImageAcquisition: Added additional DepthCorrectionFactor

- Using ITemplateLocalization instead of ILocalization to ensure, that the
  right service is found.
- StationDialog: display positions and tolerances with more digits

- bugfix: footprint collision check was invalidated by trying
          to set an invalid named footprint (using setFootprintFilter())

- Adapted to latest changes in DockingProcess

- Simulator implements ILocalization: Simulator pose can be set using the Localize tool
- Adapted to StripedStorage changes in MIRABase 0.41.1.
- Notifying via WARNING log entry of failure to restore persistent simulator pose.
- Added persistence to odometry and mileage as well.
- Persistence files are stored in a subfolder '.scitos_simulator' by default now. Can be changed via serialization member.
- Adapted to latest changes in DockingProcess

Additional information