A new MIRA release is available.


- Updated to json-spirit-4.06

- Added scripts/mirabash to be included in the bashrc file for providing 'miracd', 'mirals' and 'mirapkgs'
  commands that can be used to jump directly to a directory of a package.
- Made detection of boost libraries more robust by using the provided variables from Boost.
- prepared make system for Qt 5
- Added recursive collection of dependencies for binary installation packages.
- Added own macros for adding Qt translations to a binary or library.

- renamed XMLDom::iterator to XMLDom::sibling_iterator and added feature to iterate over siblings with the same name
- remove var tag from config file after parsing it
- XMLDom::sibling_iterator now only iterates over siblings that are element nodes (no comment or content nodes)
- added mira::console::getWidth() to obtain the width of the current terminal
- ProgramOptions now takes the width of the terminal into account when generating the help output
- added IncrementalMoments for incremental computation of 1D and higher dimensional statistical moments such as mean, variance, covariance, etc.
- added AbstractTransformerNode::getParent()
- renamed resolveTags() to preprocessXML() and moved function to XMLDomPreprocessor.h
- Fixed Bug with Qt moc failing to parse BOOST_JOIN macro

- now printing a warning, if a used tag within the config file is unknown
- added ChannelSynchronizer::waitForData() and new ChannelSynchronizerSequenceID
- Profiler can now be enabled using the --enable-profiler option
- fixed bug in RemoteConnection where stop was called twice resulting in accessing an already deleted object (connection pointer)
- added isInExec flag to Framework
- DiagnosticModule: added method to query if a heartbeat timeout has occurred
- moved handling of warning and notice tags to XMLDomPreprocessor
- the TapeRecorder now performs its IO in a separate thread to avoid lags and gaps in the recorded data

- prepared for Qt5
- Waiting for application (qt event loop) is started in QtUnit before processing initialize(), process() or any handler function
- fixed exception message in Tape Open Dialog
- fixed qui freeze in TapePlayerWidget caused by updating gui element from a non qt thread
- adapted TapeRecorderWidgets to changes in TapeRecorder and added display of bandwidth statistics
- added TapeFileDialog::setUseOriginalTimestamp()
- light direction in 3D view can now be adjusted via properties
- now catching exceptions when registering new visualizations and showing an
  error in the console instead
- detaching Entities before destroying them
- destroying materials owned by visualization objects when object is destroyed
- better error messages in 3d and 2d basic visualizations
- QConsole: if no text is selected, the up/down keys now always recall the console history, even if the cursor is not in the edit zone
- extended TreeViewFilter with setExpandChildren() and useFilterRole() method
- added OGRE_HOME/lib/OGRE directory to renderer plugin search paths
- ensure that CMake finds OGRE during compile time by adding OGRE_HOME to search paths
- added "dummy mode" to SplashScreen
- added SpinBoxDelegate for double values that provides a spinbox as editor

- added MeshVectorVisualization for visualizing meshes at each pose
  within a pose vector
- added RangeCircleVisualization for displaying and measuring distances
- added roproperty for image size to image visualization

- made subtasks of Task a property
- removed old AstronautTask (which was replaced by the DockingTask)
- fixed TaskVisualization for null tasks

- generalized to be able to handle qwt plot types other then QwtPlotCurve
- added view and basic visualization for QwtPlotHistogram

- Fixed destruction order for scene nodes and visualization objects in Marker class

- added cell voltage member to Battery
- added flag 'ExternalPowerSupplyConnected' to Battery
- added method to obtain adjusted start and delta angle from RangeScanInfo for a specific orientation
- adapted to changes in PlotVisualization toolbox

- Profiler is now triggered using the --enable-profiler command line option

- made CaptureView authority hidden
- Profiler is now triggered using the --enable-profiler command line option
- added --no-splash option to disable splash screen
- removed cmake code for backward compatibility to 0.12.0
- added TransformTreeTextView

- Profiler is now triggered using the --enable-profiler command line option

- play by default plays also messages with negative time offset

- fixed bug where tape start time was not set correctly when loading tapes via command line

- extended camera frustum visualization
- fixed bug in computeFrustum()
- added roproperty for image size

- Updated and cleaned up Map Configuration File format (.mcf) to support rects, polygons and ellipses and avoid redundancies.
- SimpleMapper now warns the user if there has been no new data in the laser or robotframe channels for more than 10 seconds.
- Finally made TAB-navigation of the QTableWidget working, despite all the obstacles from Qt.
- Rewrite of Simple Map Editor, now using the Qt graphics framework and the new MCF format. More features and better usability.
- Deprecated and removed the MapBuilder and MapRecorder tools for now, may be moved to a separate package soon.
- SimpleMapper can now store and import recorded mapping data (allows re-mapping at some other time).
- Adapted to moving SpinBoxDelegate to MIRA/gui/widgets.

- Added method for loading an occupancy grid map directly from an OpenCV image.
- Using new method in RangeScanInfo to determine start and delta angle from scan

- exported inverse() function for Pose2 and Pose3
- showing more verbose error message when conversion of a python object to json fails

- Adapted to moving SpinBoxDelegate to MIRA/gui/widgets.

- Added parameter to set CGI environment variables

- initial version
- A webserver that acts as a gap junction (nexus) to mira via a protocol over websockets.

- Waiting in initialize() for transform to become available

- now signaling need for publishing the pose estimate on a map change
- added error handling for enableSensor and displaying current sensor as property now
- also updating motion when flag needPublication is set

- Minor fixes in documentation

- Adapted to changed API (insertScan()) of OccupancyGridMapper

- Adapted to change in Mapping and RobotDataTypes toolbox.

- cleaned up initialize

- cleaned up initialize and recovery

- Initial version: Driver unit for uEye cameras. Obtains RGB image.

- laser position member now stores 3d pose

- fixed recording and localization for laser range finders that are mounted upside down

- Added output of cell voltage to charger modules
- scitosFirmwareLoader: Added support for MLCAN
- MCU: Added support for an additional driving mode where the robot drives a given distance
- MCU: Added support for calculating the odometry from distance readings of both wheels
- Added standalone tool for reading the persistent error memory.
- Added DisplayG5 module
- Updated models for G3 and G5 robots
- Renamed LaserFrame to MountFrame
- HeadG3: Publishing DisplayMotorToDisplayArm joint and DisplayBumperStatus channel

- Added more runtime dependencies for easier installation.

- Initial version: A generic driver for PrimeSense devices

- Renamed LaserFrame to MountFrame


With this release, the following packages are outdated and were removed:
- LaserTemplateLocaliation
- PilotAstronaut

Additional information