MRPT Version 0.8.0 released

Version 0.8.0: Released 30-Dec-2009 (SVN 1398).

  • Important changes:
    • New minor version number due to a few incompatible changes in the API. The affected classes are:
    • rbpf-slam now builds maps of points.
    • Data association implemented as a generic algorithm and demonstrated in the program 2d-slam-demo.
    • The interface of Kalman filters has been greatly redesigned for a better factoring of code and to explote fixed-size matrices.
    • Hardware and sensors:
      • PointGrey Research (PGR) Bumblebee & Bumblebee2 cameras: Better support in Win32 and supported for the first time in Linux as well. See mrpt::vision::CStereoGrabber_Bumblebee andmrpt::hwdrivers::CCameraSensor.
      • New interface to SICK LMS100 via ethernet. Contributed by Adrien Barral (Robopec). See mrpt::hwdrivers::CLMS100Eth and new example "SICK_lms100eth_test".
      • Support for advanced GPS devices: NTRIP client + emitter, RTK GPS, etc.
      • New class for accessing SICK LMS laser scanners with a standard serial port or USB-to-serial RS-232 or RS-424, working for Windows and Linux, up to 75 scans/sec.
    • New algorithms (e.g. A*), many new methods in existing classes and several bug fixes.
  • Detailed list of all changes. New stuff and enhancements:
    • MRPT can be now completely built under MinGW (GCC) if wxWidgets and OpenCV are also built with that compiler first. See the instructions in the Wiki.
    • Fixed size matrices can be declared with one or both of the dimensions equal to zero and that wouldn't lead to an error - until an element is tried to be accessed.
    • The observation mrpt::slam::CRangeBearingKFSLAM now has independent covariance matrices for each sensor point and also the field-of-view have been separated for yaw and pitch.
    • Added a simple profiler class mrpt::utils::CTimeLogger.
    • Added a new option in CMake: MRPT_ENABLE_EMBEDDED_GLOBAL_PROFILER that transform all MRPT_START/MRPT_END macros into calls to the embedded profiler, dumping the results to std::cout (and MSVC output tab) at the end of each execution.
    • mrpt::gui windows now have a method CBaseGUIWindow::getPushedKey, which also returns the key modifiers (shift, alt, etc...).
    • CCameraSensor can now display a preview of the captured images with a "preview_reduction" factor to make them smaller.
    • Great improvements in creating threads by allowing arbitrary function parameters and non-static member methods. See the different signatures of mrpt::system::createThread andmrpt::system::createThreadFromObjectMethod (By Pablo Moreno, small adds by JLBC).
  • mrpt::utils::CImage::saveToFile now has a parameter to select the desired quality of JPEG files.
  • mrpt::hwdrivers::CCameraSensor can now span several worker threads to save the grabbed images to disk, avoiding the CPU bottleneck when capturing high rate video.
  • Changes in the build process:
    • Clean up of options in cmake-gui. Many options are now "advanced" so they are hidden in the "simple view".
    • Better detection of wxWidgets libraries (static/dynamic libs), through a patch submitted to CMake. You'll need to update CMake to enjoy this feature.
    • Fixed building errors with wxWidgets 2.9.0
    • Fixed compilation of MRPT without opencv (in MSVC it reported an error: library 'mrpt-sifthess' missing).
    • Boost is not required anymore. boost-program-options has been replaced by the STL-based TCLAP library.
  • New small functions:
  • mrpt::system::getNumberOfProcessors
  • New examples:
    • SICK_laser_serial_test
    • setOfTexturedTrianglesTest
    • ntrip-client
    • http_tests
    • SICK_lms100eth_test
    • a_starAlgorithm
    • cameraCampureAskDialog
  • BUG FIXES:
    • CDisplayWindow3D won't process char key events (Thanks to Miyamoto Musashi for reporting a tested fix).
    • Linking errors due to missing template instantiations of some mrpt::math functions (Thanks to Diego for reporting).
    • Fixed data association routines.
    • Fixed error when deserializing objects of type mrpt::opengl::CPointCloudColoured
    • Fixed potential crash in mrpt::system::dateTimeLocalToString and other time functions when passed an invalid timestamp value.
    • mrpt::system::formatTimeInterval won't show the decimal part of seconds.
    • Win32-MSVC only: Removed the "-D_SECURE_SCL=0" flag in user code that uses MRPT through CMake, since it may lead to increadibly-hard-to-debug crashes.
    • Duplicated landmarkIDs in range-bearing observations are now detected as errors.
    • mrpt::opengl::CTexturedPlane didn't reflect the change of texture after the first time it was rendered.
    • CCameraSensor::setPathForExternalImages didn't work for saving; it was neccesary to also set CImage::IMAGES_PATH_BASE, which is NOT the expected behavior by the user.
    • Fixed linking errors in user programs linked to MRPT thru CMake, when MRPT is compiled as static libs and ffmpeg support is enabled.
    • mrpt::utils::CConfigFileMemory::write may raise an exception even if there was no error.
    • Linux: Fixed mrpt::hwdrivers::CSerialPort won't write the whole data block on Write().
    • Fixed OpenGLCanvas not creating a depth buffer in some platforms/systems.
    • (Win32 only) mrpt::hwdrivers::CInterfaceFTDI won't neither close the USB link or unload the FT2XX.DLL at destruction.
    • C locales changed by default in wxWidgets >=2.9.0 will mess up reading from config files. Fixed by forcing "C" numerics locale in all GUI applications.
    • Fixed potential random crash in mrpt::system::buildTimestampFromParts when used in multi-threaded applications.
    • lib3ds: Won't render scenes with small scales (LIB3DS_EPSILON has been reduced).
    • GUI apps: Many errors in wxWidgets wxFlexSizers fixed, as detected by the recent wx2.9.0 in Debug mode.
    • The following functions (in mrpt::system) did crash when a malformed TTimeStamp was passed as argument: timestampToParts, dateTimeToString, extractDayTimeFromTimestamp, timeToString, dateToString.
    • mrpt::utils::CClientTCPSocket::connect won't resolve server names.
    • Fixed hardcoded type "double" in a method of the generic template mrpt::utils::TParameters.
    • Fixed random crashes when opening several CDisplayWindow*'s at the same time.
    • Fixed infinite recursion (stack overflow) when deleting an arc in a mrpt::hmtslam::CHierarchicalMHMap.
    • Potential crash when freeing OpenGL textures from CTexturedPlane due to incorrect call to "glDeleteTextures".
    • Potential error in mrpt::system::getCurrentThreadTimes with modern MSVC compilers.
    • Fixed Debian bug #543621.
    • Fixed a minor error in mrpt::math::computeAverageLogLik, giving a constant offset.

你可能感兴趣的:(version)