MIRABase-0.45.0:
- 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

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

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

miracenter-0.22.1:
- added MetaTypeDatabaseView

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

 

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

MIRAenvironment-0.21.0:
- 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 '_')

MIRABase-0.44.0:
- 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

MIRAFramework-0.41.0:
- 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()

MIRAgui-0.39.0:
- 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

CameraParameters-0.10.0:
- 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

CommonCodecs-0.9.4:
- fixed encoding error message of PNG codec

CommonVisualization-0.19.1:
- 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

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

Localization-0.13.0:
- parameters are documented for all RPC service methods

Navigation-0.28.0:
- 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

PlotVisualization-0.21.2:
- 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

RigidModel-0.19.0:
- 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

RobotDataTypes-0.23.0:
- 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

miracenter-0.22.0:
- 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

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

mirapackage-0.22.0:
- 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

miratape-0.15.0:
- 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)

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

-------------------------------------------------------------------------

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

GMapping-0.11.0:
- Using git instead of svn for downloading GMapping

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

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

PCL-0.12.0:
- 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

Python-0.27.0:0
- 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

StateMachine-0.16.0:
- 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

application/FlowControl-0.11.0:
- added method onEvent
- added output of listener callbacks on channels
- added multi instance ping pong test

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

communication/JSONRPCServer-0.14.0:
- Override Unit::process(const Timer&) instead of deprecated Unit::process()

communication/Nexus-0.14.0:
- Override Unit::process(const Timer&) instead of deprecated Unit::process()

image/ImageRectification-0.10.0:
- 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

localization/PersistentLocalization-0.10.6:
- Override Unit::process(const Timer&) instead of deprecated Unit::process()

localization/Poseidon-0.18.2:
- added user defined file permissions for persistence files
- added RPC method parameters documentation

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

mapping/MCFLoader-0.13.1:
- added RPC method parameters documentation

mapping/OccupancyGridLoader-0.11.0:
- removed legacy methods
- added RPC method parameters documentation

mapping/OccupancyGridMapper-0.13.0:
- 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()

mapping/OccupancyGridMappingModule-0.13.1:
- added RPC method parameters documentation

mapping/OccupancyGridMerger-0.10.1:
- changed the annotation of the added 'MergedMap' alias to include reference to source code

mapping/OccupancyGridSaver-0.10.0:
- override MicroUnit::initialize() instead of deprecated onInitialization()

navigation/Pilot-0.39.0:
- 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

sensors/AsusXtion-0.12.0:
- Override Unit::process(const Timer&) instead of deprecated Unit::process()

sensors/CameraCalibration-0.13.0:
- 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

sensors/PinholeIntrinsicPublisher-0.11.0:
- added rpc methods, therefore renamed methods

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

tutorials/WaypointVisitor-0.13.0:
- 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

LocalizationDataTypes-0.21.0:
- 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

actors/FlirPTU-0.12.0:
- Override Unit::process(const Timer&) instead of deprecated Unit::process()

application/CommonScripts-0.11.1:
- added optional KeepDistanceTask
- fixed minOnTime

can/CANDriver-0.13.2:
- Fixed crash in initialization, which occured when no CAN device was connected.

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

mapping/ObstacleMapper-0.10.0:
- Override Unit::process(const Timer&) instead of deprecated Unit::process()

navigation/PilotNogoAreas-0.14.0:
- changed lib name for NogoMapper to reflect that costmappers
  are running in CostMapper unit, not Pilot anymore

navigation/PilotSmoothTransition-0.9.0:
- initial version

robot/SCITOSSimulator-0.14.1:
- Added simulation of battery percentage
- made compile with gcc 7.3

sensors/RangeFinder-0.15.0:
- 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

sensors/RangeFinderSimulator-0.10.1:
- resolved a "comparison between signed and unsigned" issue

MIRAenvironment-0.20.2:
- Updated to JSON Spirit 4.08

MIRABase-0.41.0:
- 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

MIRABase-0.42.0:
- 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

MIRAFramework-0.39.1:
- TapeRecorder: Fixed handling of flag avoidDataLoss

gui-0.36.0:
- 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

gui-0.37.0:
- 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

CommonVisualization-0.17.4:
- 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

CommonVisualization-0.18.0:
- 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.

GraphVisualization-0.11.0:
- Adapted visualizations to GUIVisualization 0.37

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

PlotVisualization-0.20.0:
- 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

PlotVisualization-0.21.0:
- Adapted views/visualizations to GUIViews/GUIVisualization 0.37

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

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

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

miracenter-0.21.1:
- TransformTreeView: better layout for covariance display


CameraGeometry-0.12.0:
- added operator== for DistortionParameters, PinholeCameraIntrinsicNormalized and PinholeCameraIntrinsic

MapBuilder-0.22.0:
- 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.

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

Python-0.26.0:
- 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

localization/PersistentLocalization-0.10.5:
- adpated to changes in StripedStorage

localization/Poseidon-0.18.0:
- Adapted PersistentPose plugin to StripedStorage change in MIRABase 0.42.0

mapping/GMappingModule-0.11.0:
- Adapted to changes in MapBuilderBase, implementing the max range parameter.

mapping/OccupancyGridLoader-0.10.2:
- added loader property whether to ensure valid occupancy (set to false to keep original data unchanged)

mapping/OccupancyGridMappingModule-0.13.0:
- Adapted to changes in MapBuilderBase, implementing the max range parameter.

navigation/Pilot-0.37.0:
- 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)

navigation/PilotSmoothPathFollow-0.10.4:
- 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.

navigation/TopoMap-0.16.1:
- Fixed some typos in debug messages
- fixed for use with OpenCV3
- Adapted to StripedStorage changes in MIRABase 0.42.0

toolboxes/LocalizationDataTypes-0.20.0:
- Added Marker class
- Adapted 2D visualizations after change to coordinate system in GUIVisualization 0.37.

application/CommonScripts-0.11.0:
- 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

mapping/OneWayMapper-0.10.1:
- Fixed adding of the one-way costs into the current stage of the CostMapper

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

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

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

robot/SCITOSConfigs-0.15.3:
- Adapted to latest changes in DockingProcess

robot/SCITOSSimulator-0.13.0:
- 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

MIRAenvironment-0.20.3:
- 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

MIRABase-0.43.0:
- 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

MIRAFramework-0.40.0:
- <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

MIRAgui-0.38.0:
- 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

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

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

Navigation-0.27.1:
- fixed tolerance display radius for Position-/DockingTask

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

 

 

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

Mapping-0.21.1:
- PointCloud visualization ignores NaN data to prevent OGRE assertion

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

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

RobotSimulation-0.9.0:
- Initial version

application/FlowControl-0.10.0:
- moved header things to separate header file

localization/Poseidon-0.18.1:
- Fix excessive uncertainty estimation

mapping/CostMapper-0.15.0:
- DynamcRiskMapper only resets error state after a successful update
(not after an update skipped because update interval not expired yet)

mapping/OneWayMapper-0.10.2:
- 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.

navigation/Pilot-0.38.0:
- 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)

navigation/DockingProcess-0.24.2:
- 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.

robot/SCITOS-0.31.0:
- 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)

sensors/AsusXtion-0.11.2:
- adapted to split CameraParameters/CameraGeometry

sensors/CameraCalibration-0.12.0:
- adapted to split CameraParameters/CameraGeometry

sensors/PinholeIntrinsicPublisher-0.10.0:
- adapted to split CameraParameters/CameraGeometry

sensors/UEye-0.11.0:
- adapted to split CameraParameters/CameraGeometry

sensors/PrimeSense-0.12.0:
- adapted to split CameraParameters/CameraGeometry

MIRAenvironment-0.20.0:
- Defining MIRA_SEVERITY_MAX_LEVEL via the build system, allowing us to differentiate between release and relwithdebinfo
when deciding which maximum severity level to allow for logging. Relwithdebinfo now also allows DEBUG and TRACE logging.
- Fixed install target for installing subtargets
- Updated SVN repository path for boost::geometry

MIRABase-0.39.0:
- RigidTransform(Cov) stream output now handles const& and rvalues
- Added optional image format tag which is passed to the dot command while generating profiler reports
- enabled reflection of STL collections with non-copyable value types

MIRAFramework-0.38.0:
- Fixed a bug inadvertently altering tape message frameIDs
- Changed channel slot reuse behaviour: now it always keeps at least one slot older than the
configured storage duration (ensure storage duration coverage, rather too much than too little)
- Added missing getters to ChannelBuffer and augmented Channel to also offer these getters as a convenience to the user.
- Fixed missing copy of minSlot parameter in ChannelBuffer::cloneParameters.
- Added 'getUptime' RPC to the Framework

gui-0.34.0:
- Forcing Qt-Layout in TapeFileDialog. Otherwise the layout of the file dialog
might be unpredictable and the preview widget is not working.
- Text Trace View: user can control whether changing one row's height affects other rows
- Text Trace View: added options to maintain a max history duration and to freeze (stop updating)
- QConsole now supports reverse lookup via CTRL+R (emulating bash functionality).

GraphVisualization-0.10.0:
- made to compile with Qt5

PlotVisualization-0.18.2:
- Clearing plot no longer makes "l"/"r" markers in legend disappear
- Added a "Freeze" option to stop updating (via context menu)

miracenter-0.19.1:
- TransformTreeView shows absolute distance between frames in tooltip

miragui-0.10.0:
- made to compile with Qt5

mirapackage-0.21.5:
- QuaZip: Replaced UPDATE_COMMAND with PATCH_COMMAND, avoiding failed patches every time MIRAPackage is rebuilt.

miratape-0.14.11:
- added missing 'copy --drop_same_timestamp' option to usage message

 

toolboxes/MapBuilder-0.20.1:
- Forcing Qt-Layout in MCFDialog. Otherwise the layout of the file dialog
might be unpredictable and the preview widget is not working.

toolboxes/Mapping-0.18.2:
- Added 3D visualizations for predefined point cloud types PointCloud2 and PointCloud3.
- PointCloudVisualization (3D): allow changing the (pixel) point size in 'Points' drawstyle

toolboxes/CAN-0.19.0:
- made CANToolsView an EditorPart in miracenter, i.e. it can be detached and maximized properly

toolboxes/LocalizationDataTypes-0.10.0:
- Modernized Curve API and implementation.

toolboxes/Python-0.24.0:
- Made MiraPy's XMLVariablesMap work with the recent changes to this data type in MIRA.
- Added wrappers for some more Pilot tasks
- Python Editor View is an Editor View now (can be properly detached + maximized),
and allows more user layout control through splitter

localization/Poseidon-0.17.0:
- Added unique IDs for all plugins, which can be specified in the configuration file.
If now ID is given, the class identifier is used.
- Added new member EnableOnStart to sensor plugin, to enable/disable the
plugins on start. If no sensor module is enabled, the first sensor will be
enabled to preserve the current behaviour.

localization/PoseidonLaserTemplate-0.12.1:
- Made sensor plugin more robust and more modern.
- Sensor plugins wait for subscribed laser channels at bootup

mapping/MCFLoader-0.13.0:
- Added (missing) resolvePath to be able to use the syntax 'PackageName:path/to/map.mcf' in member MCF

mapping/OccupancyGridMerger-0.10.0:
- if merger has only one input, it will just alias it to 'MergedMap' instead of copying (unless 'MergedMap' already exists)

navigation/DockingProcess-0.23.1:
- publishing the docking target as TargetFrame
- base point now used as loaded from xml, not recalculated from docking distance

robot/SCITOS-0.30.1:
- Added support for MotorControllerHG4 firmware > 1.4.0
- Added support for EBC HG3

robot/SCITOSSimulator-0.12.0:
- Head movement is now really simulated
- added support for ACSIdentifier in charger
- added example map
- added very rudimentary support for simulating a charging station (at this point just
a certain pose+tolerance in the environment that sets the charging flag to 'true').

sensors/RangeFinder-0.14.5:
- SickTiM55x: Fixed crash while reading data, if the data package was not fully received

Additional information