Skip to content
Snippets Groups Projects
  1. May 29, 2015
  2. Feb 04, 2015
  3. Oct 06, 2014
  4. Oct 03, 2014
    • Arnaud Degroote's avatar
      [wip/mrpt] Upgrade to 1.2.2 · f347e1f7
      Arnaud Degroote authored
      From the Changelog
      
      ***** Version 1.2.2: Released 12-SEP-2014 *****
          * Changes in apps:
                o SceneViewer3D:
                      # New menu "File" -> "Import" -> "3D model" which supports many
                        standard formats (via mrpt::opengl::CAssimpModel)
          * New classes:
                o [mrpt-hwdrivers]
                      # mrpt::hwdrivers::CRoboPeakLidar to interface Robo Peak LIDAR
                        scanners.
                o [mrpt-opengl]
                      # mrpt::opengl::CAssimpModel for rendering complex 3D models
                        (many supported formats) in OpenGL scenes.
          * Changes in classes:
                o Consistency in all "laser scan" classes: angular increments between
                  rays are now FOV/(N-1) instead of FOV/N.
                o [mrpt-base]
                      # New method mrpt::utils::CImage::loadTGA()
                      # IMPORTANT: Changed behavior of CSerializable/CObject macros
                        (see bugfix below), introducing the new macros
                        DEFINE_SERIALIZABLE_POST_*. May require changes in user code
                        if serializable classes are defined:
                            # Previous version:
                              DEFINE_SERIALIZABLE_PRE_*(...)
                              class XXX {
                              DEFINE_SERIALIZABLE(XXX)
                              };
                            # Must be changed in this version to:
                              DEFINE_SERIALIZABLE_PRE_*(...)
                              class XXX {
                              DEFINE_SERIALIZABLE(XXX)
                              };
                              DEFINE_SERIALIZABLE_POST_*(...)
                o [mrpt-hwdrivers]
                      # Bumblebee2 Linux support in mrpt::hwdrivers::
                        CImageGrabber_FlyCapture2 via Triclops (by Jesus Briales)
                o [mrpt-maps]
                      # New method mrpt::slam::COccupancyGridMap2D::getRawMap()
                      # New method mrpt::slam::CColouredPointsMap::
                        getPCLPointCloudXYZRGB()
                o [mrpt-opengl]
                      # mrpt::opengl::CMyGLCanvasBase (affects all 3D rendering
                        classes): better handling of internal timers for smoother
                        updates while rendering in multithreading apps.
                o [mrpt-srba]
                      # New method to recover the global coordinates graph-slam
                        problem for a RBA map: mrpt::srba::RbaEngine::
                        get_global_graphslam_problem() (see example [MRPT]-
                        examples\srba-tutorials\tutorial-srba-how-to-recover-global-
                        map.cpp)
          * BUG FIXES:
                o mrpt::utils::CImage constructor from a matrix crashed.
                o Unit tests: Named semaphores are not tested anymore if it's
                  detected that the kernel version doesn't support them (Fix Debian
                  758725).
                o mrpt::synch::CSemaphore [Linux]: didn't call sem_unlink().
                o mrpt::gui::CDisplayWindow3D didn't implement get/set FOV.
                o Valgrind: Fixed potential unaligned memory access warning in point
                  clouds.
                o Fix build error with AppleClang 5.1 (Closes #71).
                o mrpt::utils::CClientTCPSocket: Use a connection success check that
                  works on all platforms
                o Important bug fixed regarding a missing dynamic_cast<> in smart
                  pointers casting. See above possible implications in user code.
                  properly (Patch by Joe Burmeister).
      ===============================================================================
      ***** Version 1.2.1: Released 10-JUL-2014 *****
          * Changes in classes:
                o [mrpt-base]
                      # All points and poses now have a method setToNaN(), e.g.
                        mrpt::poses::CPose3D::setToNaN()
                o [mrpt-hwdrivers]
                      # mrpt::hwdrivers::COpenNI2Sensor now has better support for
                        opening several RGBD cameras (by Kenzaburo Miyawaki &amp;
                        Eduardo Fernandez)
          * Build system:
                o Fix compilation of SRBA with DEBUG_GARBAGE_FILL_ALL_NUMS=1
                o Fix de-serialization error in mrpt::reactivenav::CLogFileRecord
                  (and new unit tests added to avoid regressions).
                o Several Debian bugs closed (see packaging/debian/changelog),
                  including build errors in uncommon platforms (MIPS, kFreeBSD, etc.)
      ===============================================================================
      ***** Version 1.2.0: Released 25-JUN-2014 *****
          * Most important changes:
                o Public header files (.h) have undergone a serious refactoring to
                  minimize unnecesary dependencies and reduce compile time and memory
                  as much as possible. As a side effect, user code might need to add
                  new #include<> lines. This change justifies the new minor version
                  series 1.2.X.
                o MRPT now cleanly builds in clang and OSX.
                o Support for new camera drivers (OpenNI2, DUO3D).
                o Many bug fixes.
          * Detailed list of changes:
                o Changes in apps:
                      # rawlog-edit:
                            # New operations: &ndash;export-odometry-txt,
                              &ndash;recalc-odometry
                            # New flag: &ndash;rectify-centers-coincide
                o New examples:
                      # kitti_dataset2rawlog
                o New classes:
                      # [mrpt-base]
                            # mrpt::math::ContainerType<CONTAINER>::element_t to
                              allow handling either Eigen or STL containers
                              seamlessly.
                            # mrpt::utils::CConfigFilePrefixer
                      # [mrpt-hwdrivers]
                            # mrpt::hwdrivers::COpenNI2Sensor: Interface to OpenNI2
                              cameras, capable of reading from an array of OpenNI2
                              RGBD cameras (By Eduardo Fernandez)
                            # mrpt::hwdrivers::CDUO3DCamera: Interface to DUO3D
                              cameras (By Francisco Angel Moreno)
                            # mrpt::hwdrivers::CGPS_NTRIP: A combination of GPS
                              receiver + NTRIP receiver capable of submitting GGA
                              frames to enable RTCM 3.0
                      # [mrpt-obs]
                            # mrpt::slam::CObservation6DFeatures
                o Changes in classes:
                      # [mrpt-base]
                            # Robust kernel templates moved from mrpt::vision to
                              mrpt::math. See mrpt::math::RobustKernel<>. Added unit
                              tests for robust kernels.
                            # CPose3D has new SE(3) methods: mrpt::poses::CPose3D::
                              jacob_dexpeD_de(), mrpt::poses::CPose3D::
                              jacob_dAexpeD_de()
                            # More efficient mrpt::utils::OctetVectorToObject()
                              (avoid memory copy).
                            # Fixed const-correctness of mrpt::utils::CImage::
                              forceLoad() and mrpt::utils::CImage::unload()
                      # [mrpt-hwdrivers]
                            # mrpt::hwdrivers::CCameraSensor: Added a hook for user
                              code to run before saving external image files: mrpt::
                              hwdrivers::CCameraSensor::addPreSaveHook()
                            # mrpt::hwdrivers::CNationalInstrumentsDAQ now supports
                              analog and digital outputs.
                            # New method mrpt::hwdrivers::CNTRIPClient::
                              sendBackToServer()
                      # [mrpt-srba]
                            # Now also implements SE(3) relative graph-slam.
                      # [mrpt-vision]
                            # mrpt::vision::checkerBoardStereoCalibration: More
                              robust handling of stereo calibration patterns. OpenCV
                              sometimes detects corners in the wrong order between
                              (left/right) images, so we detect the situation and fix
                              it.
                            # mrpt::vision::findMultipleChessboardsCorners():
                                  # Now enforces a consistent counterclockwise XYZ
                                    coordinate frame at each detected chessboard.
                                  # Much more robust in distingishing quads of
                                    different sizes.
                o Build system / public API:
                      # Fixes to build in OS X - Patch by Randolph Voorhies.
                      # Removed most "using namespace" from public headers, as good
                        practice.
                      # Refactoring of MRPT headers.
                            # <mrpt/utils/stl_extensions.h> has been split into:
                                  # <mrpt/utils/stl_serialization.h>
                                  # <mrpt/utils/circular_buffer.h>
                                  # <mrpt/utils/list_searchable.h>
                                  # <mrpt/utils/bimap.h>
                                  # <mrpt/utils/map_as_vector.h>
                                  # <mrpt/utils/traits_map.h>
                                  # <mrpt/utils/stl_serialization.h>
                                  # <mrpt/utils/printf_vector.h>
                                  # <mrpt/utils/stl_containers_utils.h>
                                  # <mrpt/utils/ci_less.h>
                      # Deleted methods and functions:
                            # mrpt::system::breakpoint()
                            # mrpt::vector_float is now mrpt::math::CVectorFloat,
                              mrpt::vector_double is mrpt::math::CVectorDouble, for
                              name consistency. Also, using Eigen::VectorXf is
                              preferred for new code.
                            # mrpt::CImage::rectifyImage() with parameters as
                              separate vectors.
                            # mrpt::slam::CPointsMap::getPoint() with mrpt::poses::
                              CPoint3D arguments.
                            # mrpt::vision::correctDistortion() -> use CImage method
                              instead
                            # All previous deprecated functions.
                      # Embedded Eigen updated to version 3.2.1 (commit) (commit)
                o BUG FIXES:
                      # RawlogViewer app: Fixed abort while converting SF->obs.only
                        datasets when there is no odometry.
                      # mrpt::slam::CSensoryFrame: The cached point map is now
                        invalidated with any change to the list of observations so
                        it's rebuild upon next call.
                      # New implementation of mrpt::synch::CSemaphore avoids crashes
                        in OS X - by Randolph Voorhies.
                      # mrpt::opengl::CArrow was always drawn of normalized length.
                      # FlyCapture2 monocular &amp; stereo cameras could return an
                        incorrect timestamp (only in Linux?).
                      # mrpt::system::createDirectory() returned false (error) when
                        the directory already existed.
                      # mrpt::vision::CStereoRectifyMap::rectify() didn't update the
                        left &amp; right camera poses inside mrpt::slam::
                        CObservationStereoImages objects while rectifying.
                      # RawLogViewer: Operation "convert to SF format" didn't take
                        into account odometry observations.
                      # Fix build errors with GCC 4.9
                      # Fix crash of mrpt::hwdrivers::CIMUXSens_MT4's destructor when
                        it fails to scan and open a device.
                      # Fix potential crash in mrpt::slam::
                        data_association_full_covariance with JCBB when no
                        individually compatible matching exists (commit)
      f347e1f7
  5. Apr 28, 2014
    • Arnaud Degroote's avatar
      [wip/mrpt] Upgrade to 1.1.0 · dfeb9c80
      Arnaud Degroote authored
      Changes since 1.0.2:
      --------------------
      
      New apps:
          DifOdometry-Camera. (By Mariano Jaimez Tarifa)
          DifOdometry-Datasets. (By Mariano Jaimez Tarifa)
      New classes:
          [mrpt-base]
      	mrpt::synch::CPipe: OS-independent pipe support.
          [mrpt-hwdrivers]
      	- mrpt::hwdrivers::CIMUXSens_MT4 : Support for 4th generation xSens MT
      	IMU devices.
      	- mrpt::hwdrivers::CNationalInstrumentsDAQ: Support for acquisition
      	boards compatible with National Instruments DAQmx Base
      	- mrpt::hwdrivers::CImageGrabber_FlyCapture2: Support for Point Grey
      	Research's cameras via the FlyCapture2 libray
          [mrpt-maps]
      	There are now two versions of octomaps (by Mariano Jaimez Tarifa/Jose Luis Blanco)
      	    mrpt::slam::COctoMap (only occupancy)
      	    mrpt::slam::CColouredOctoMap (occupancy + RGB color)
          [mrpt-obs]
      	mrpt::slam::CObservationRawDAQ, a placeholder for raw and generic
      	measurements from data acquisition devices.
          [mrpt-opengl]
      	- mrpt::opengl::CMeshFast, an open gl object that draws a "mesh" as a
      	structured point cloud which is faster to render (by Mariano Jaimez Tarifa).
      	- mrpt::opengl::CVectorField2D, an opengl object that shows a 2D Vector
      	Field (by Mariano Jaimez Tarifa).
          [mrpt-reactivenav]
      	mrpt::reactivenav::CAbstractPTGBasedReactive, as part of a large code
      	refactoring of these classes:
      	    mrpt::reactivenav::CReactiveNavigationSystem
      	    mrpt::reactivenav::CReactiveNavigationSystem3D
          [mrpt-vision]
      	mrpt::vision::CDifodo, a class which implements visual odometry based
      	on depth images and the "range flow constraint equation". (by Mariano
      	Jaimez Tarifa)
      Changes in classes:
          - Clean up and slight optimization of metric map matching API:
      	Methods marked as deprecated:
      	    mrpt::slam::CMetricMap::computeMatchingWith2D() –> mrpt::slam::CMetricMap::determineMatching2D()
      	    mrpt::slam::CMetricMap::computeMatchingWith3D() –> mrpt::slam::CMetricMap::determineMatching3D()
      	New structures:
      	    mrpt::slam::TMatchingParams
      	    mrpt::slam::TMatchingExtraResults
          - mrpt::slam::CPointsMap::TInsertionOptions now have methods to save/load
          from binary streams, making more maintainable the serialization of point maps
          - New options in point maps:
          mrpt::slam::CPointsMap::TInsertionOptions::insertInvalidPoints
          - mrpt::slam::CObservationIMU now includes data fields for 3D magnetometers and altimeters.
          - Method renamed mrpt::utils::CEnhancedMetaFile::selectVectorTextFont() to avoid shadowing mrpt::utils::CCanvas::selectTextFont()
          - mrpt::reactivenav::CParameterizedTrajectoryGenerator: New methods:
      	- mrpt::reactivenav::CParameterizedTrajectoryGenerator::inverseMap_WS2TP() for inverse look-up of WS to TP space
      	- mrpt::reactivenav::CParameterizedTrajectoryGenerator::renderPathAsSimpleLine() - (commit)
          - Changed the signature of mrpt::reactivenav::build_PTG_collision_grids() to become more generic for 2D & 2.5D PTGs
      Deleted classes:
          mrpt::utils::CEvent, which was actually unimplemented (!)
          mrpt::hwdrivers::CInterfaceNI845x has been deleted. It didn't offer features enough to justify a class.
      New examples:
          [MRPT]/samples/threadsPipe
          [MRPT]/samples/NIDAQ_test
          [MRPT]/openNI2_RGBD_demo (by Mariano Jaimez Tarifa)
          [MRPT]/openNI2_proximity_demo (by Mariano Jaimez Tarifa)
      Build system:
          Fixed compilation with clang.
          Fixed building against OpenCV 3.0.0 (GIT head)
          Updated to the latest nanoflann 1.1.7.
          Updated to Eigen 3.2.0
          Binary packages for Windows now include .pdb files to help debugging with Visual Studio.
      BUG FIXES:
          Fixed potential infinity loop in mrpt::math::make_vector<1,T>()
          Fixed build error with GCC when experimental parallelization is enabled.
          - mrpt::reactivenav::CReactiveNavigationSystem complained about missing
          config variables ROBOTMODEL_TAU & ROBOTMODEL_DELAY, which were removed in MRPT
          1.0.2
          - Fixed potential mem alignment errors (Eigen's UnalignedArrayAssert) in
          SRBA for 32bit builds.
          - mrpt::topography::geodeticToENU_WGS84() and related functions used a
          local +Z axis aligned to the line towards the Earth center; now the Z axis
          points normally to the ellipsoid surface. The difference with the previous
          behavior is small but may be of a few millimeters for each meter from the
          reference point.
          - Potential crash when setting mpPolygon::setPoints() with empty vectors
          - mrpt::reactivenav::CReactiveNavigationSystem and
          mrpt::reactivenav::CReactiveNavigationSystem3D didn't obey the
          "enableConsoleOutput" constructor flag
          - mrpt::synch::CSemaphore::waitForSignal() : Fixed error when thread got an
          external signal
      dfeb9c80
  6. Feb 20, 2014
  7. Dec 12, 2013
  8. Dec 11, 2013
    • Arnaud Degroote's avatar
      [wip/mrpt] Introduce MRPT 1.0.2 · e42e0394
      Arnaud Degroote authored
      Mobile Robot Programming Toolkit provides developers with portable and
      well-tested applications and libraries covering data structures and
      algorithms employed in common robotics research areas, in particular
      vision, slam, and reactive navigation. It is open source, released under
      the BSD license.
      e42e0394
Loading