Skip to content

Releases: PointCloudLibrary/pcl

pcl-1.8.1

08 Aug 06:11
39732f5
Compare
Choose a tag to compare

ChangeList

  • Replaced make_shared invocations on aligned allocated vars
    [#1405]
  • Created an issue template for bug reporting
    [#1637]
  • PCL logo image is now locally available
    [#1677]
  • Updated the Windows all in one installer for MSVC15
    [#1762]
  • Added compile support to VTK 7.1
    [#1770]
  • Fixed badges markup in README.md
    [#1873]
  • Replaced C-style sqrtf with std::sqrt
    [#1901]

CMake:

  • Tweaks to PCL_DEFINITIONS behavior (to be deprecated in future
    versions)
    [#1478]
  • VTK directory can now be manually specified during configuration
    [#1605]
  • Updated the find Boost cmake macro to support the latest versions plus
    exported definitions now give priority to finding the same Boost version
    PCL was compiled with.
    [#1630]
  • Corrected PCL_ROOT in PCLConfig.cmake
    [#1678]
  • Removed automatic override of VTK_LIBRARIES
    [#1760]
  • Updated find boost versions
    [#1788]
    [#1855]
    [#1856]
  • Updated CUDA compute capabilities
    [#1789]
  • Extend linking of delayimp.lib to all MSVC version
    [#1823]
  • Removal of MSVCxx variables
    [#1830]
  • Fixed path link to Documents of Windows Start-Menu
    [#1857]
  • Fixed CPack for Documents
    [#1858]
  • Fixed bug present when Ensenso SDK path included spaces
    [#1875]
  • -D_FORCE_INLINES definition added for CUDA targets to prevent
    issues between old versions of the CUDA Toolkit and new versions
    of gcc
    [#1900]
  • Implemented new versioning scheme for PCL, employing the suffix
    -dev in between releases.
    [#1905]
  • Corrected search paths for Eigen on Windows
    [#1912]
  • SSE definitions are now exported and cleanup of Eigen's
    definitions
    [#1917]
  • Added support to dynamic linking against FLANN on Windows
    [#1919]
  • Add new search path for GTest to the finder script
    [#1920]
  • Fix discovery of PCL deployed out of install path
    [#1923]

libpcl_2d:

  • Removed the non-free lena-grayscale-png image :(
    [#1676]
  • 2d library is no longer generated since it contained no symbols
    [#1679]

libpcl_common:

  • Changed default alpha value to 255 on all RGB(A) point types
    [#1385]
  • Fixed an issue preventing aligned memory allocation on 32-bit Windows
    systems
    [#1665]
  • Fixed compile error on test_common on MSVC
    [#1689]
  • Fixed parallel plane test condition on pcl::planeWithPlaneIntersection
    [#1698]
  • Fixed endless loop condition in compute3DCentroid
    [#1704]
  • toPCLPointCloud2 is not resilient to an empty pointcloud input
    [#1723]
  • Normal accumulator normalized() is now resilient to a 0 filled vector
    [#1728]
  • Defined additional types in PointCloud to ensure STL container
    compatibility
    [#1741]
  • Aligned malloc now works on Android as well
    [#1774]
  • Added missing include to boost shared_ptr in vertices
    [#1790]
  • Prevent incorrect copy of adjacent point in fromPCLPointCloud2()
    [#1813]
  • Restored Eigen::umeyama for Eigen 3.3+
    [#1820]
    [#1887]
  • Fixed type in deprecation messages
    [#1878]
  • Improved support for mingw aligned allocation
    [#1904]
  • Added test for macro _USE_MATH_DEFINES to avoid warnings
    [#1956]

libpcl_cuda:

  • Fixed macro definitions for the Windows platform
    [#1568]

libpcl_features:

  • NormalEstimation[OMP] and FPFHEstimation[OMP] are now instantiated for
    the same types as the non OMP variants.
    [#1642]
  • Prevention of the addition of duplicate keys in PFHEstimation
    [#1701]
  • Bug fixes in OUR-CVFH
    [#1827]
  • Fixed incorrect initialization of SHOT
    [#1859]
    [#1876]

libpcl_filters:

  • ExtractIndices filter now aborts prematurely and prints error verbose
    in case it detects an index which exceeds the size on the input data
    [#1670]
  • Potential reduction of computational time of ModelOutlierRemoval
    [#1735]
  • Improved code readability in CropBox
    [#1817]

libpcl_gpu:

  • Added support to NVidia Pascal GPUs
    [#1824]
  • Fixed compilation error in KinfuLS
    [#1872]
  • Fixed CUDA architecture check
    [#1872]

libpcl_io:

  • RGB values are now always saved as uint32 on PCD files
    [#1385]
  • Fixed find RealSense macro and compilation error with RealSenseGrabber
    on Windows
    [#1560]
  • Unified verbose on OctreePointCloudCompression
    [#1569]
  • Improved performance on saving PLY, OBJ and VTK files
    [#1580]
  • Added support to the transparency property Tr on pcl::MTLReader
    and fixed issue with parsing of the material's properties.
    [#1599]
  • Fixed function signature mismatch in auto_io
    [#1625]
  • Fix ASCIIReader::setInputFields interface
    [#1690]
  • Adopted pcl_isnan in test_buffers to prevent compilation problems on
    MSVC12
    [#1694]
  • Fixed incorrect laser number test condition in VLP Grabber
    [#1697]
  • Fixed bug verbose output of compression statistics
    [#1749]
  • Fixed a bug in the parsing of PLY headers
    [#1750]
  • Replacement of boost::math::isnan by pcl_isnan
    [#1766]
  • Binary files written by PCDWriter now have the same permissions
    as the ASCII ones
    [#1779]
  • Fixed ODR violation when compiling with both OpenNI and OpenNI2
    [#1818]
  • PLYReader now also accepts the property vertex_index
    [#1847]
  • Fixed bug in return value of pcl_converter
    [#1903]

libpcl_keypoints:

  • Fixed memory leak in ISSKeypoint3D
    [#1815]

libpcl_octree:

  • Fixed unexpected octree boundaries' reduction
    [#1532]
    [#1906]
  • Fixed octree precompilation mechanism
    [#1639]
    [#1916]
  • Fixed invalid cast in OctreePointCloudVoxelCentroid
    [#1700]

`libpcl_recognit...

Read more

pcl-1.8.1rc2

18 Jul 11:22
d080f67
Compare
Choose a tag to compare
pcl-1.8.1rc2 Pre-release
Pre-release
Update Ensenso tutorial for Ensenso X devices

pcl-1.8.1rc1

02 Jul 10:52
14c7280
Compare
Choose a tag to compare
pcl-1.8.1rc1 Pre-release
Pre-release
Bump version to 1.8.1

pcl-1.8.0

15 Jun 19:47
Compare
Choose a tag to compare
Update changes for 1.8.0

pcl-1.7.2

10 Sep 21:43
Compare
Choose a tag to compare

We are proud to announce the new PCL version 1.7.2. This release incorporates more than 300 pull requests merged during the last eleven months. Together with dozens of bug fixes it brings support for VTK6 and OpenNI 2.

The most notable changes are:

  • Added support for VTK6
    [#363]
  • Removed Google Test from the source tree and added it as a system dependency
    [#731]
  • Added support for QHull 2012 on non-Debian platforms
    [#852]

libpcl_common:

  • Added BearingAngleImage class
    [#198]
  • Added pcl::CPPFSignature point type
    [#296]
  • Added getRGBAVector4i(), getBGRVector3cMap(), and getBGRAVector4cMap()
    to all point types containing RGB/RGBA fields
    [#450]
  • Added a family of "has field" functions to check presence of a particular
    field in a point type both at compile- and run-time
    [#462]
  • Added a function to copy data between points of different types
    [#465]
  • Added test macros for equality/nearness checks
    [#499]
  • Added descriptorSize() to all point types with descriptors
    [#531]
  • Added possibility to copy a cloud inside another one while interpolating
    borders
    [#567]
  • Added a function to determine the point of intersection of three non-parallel
    planes
    [#571]
  • Fixed a bug in HSV to RGB color conversion
    [#581]
  • Added a new CentroidPoint class
    [#586]
  • Templated intersection computation functions on scalar type
    [#646]
  • Templated functions in 'eigen.h' on scalar type
    [#660]
  • Added functions to transform points, vectors, lines, etc.
    [#660]

libpcl_features:

  • Added a simple implementation of CPPF using normalised HSV values in the
    feature vector
    [#296]
  • Added MomentOfInertiaEstimation and ROPSEstimation features
    [#319]
  • Fixed a problem in OURCVFHEstimation::computeRFAndShapeDistribution()
    [#738]
  • Fixed undefined behavior in OURCVFHEstimation::computeFeature()
    [#811]
  • Fixed memory corruption error in OUR-CVFH
    [#875]

libpcl_filters:

  • Added a function to set the minimum number of points required for a voxel to
    be used in VoxelGrid
    [#434]
  • Added GridMinimum filter
    [#520]
  • Added a morphological filter that operates on Z dimension
    [#533]
  • Added progressive morphological filter to extract ground returns
    [#574]
  • Added a filter to remove locally maximal points in the z dimension
    [#577]
  • Added an approximate version of the progressive morphological filter
    [#665]
  • Added ModelOutlierRemoval class that filters points in a cloud based on the
    distance between model and point
    [#702]

libpcl_io:

  • Added experimental version of an OpenNI 2.x grabber
    [#276]
    [#843]
  • Added support for IFS file format
    [#354]
    [#356]
  • Added possibility to load PCLPointCloud2 from OBJ files
    [#363]
  • Fixed loading and saving of PLY files
    [#510]
    [#579]
  • Fixed race conditions in PCDGrabber
    [#582]
  • Fixed multi openni grabber buffer corruption
    [#845]
  • Fixed incompatibility with Boost 1.56 in LZFImageWriter
    [#867]
  • Fixed a bug in PLYReader which lead to deformation of point clouds when
    displayed in CloudViewer or PCLVisualizer
    [#879]

libpcl_kdtree:

  • Fixed double memory free bug in KdTreeFLANN
    [#618]

libpcl_keypoints:

  • Added a method Keypoint::getKeypointsIndices ()
    [#318]
  • Added keypoints based on Trajkovic and Hedley operator (2D and 3D versions)
    [#409]

libpcl_octree:

  • Fixed a bug in OctreePointCloudAdjacency::computeNeighbors()
    [#455]
  • Accelerated OctreePointCloudAdjacency building by disabling dynamic key
    resizing
    [#332]
  • Fixed a bug with infinite points in OctreePointCloudAdjacency
    [#723]

libpcl_people:

  • Added a possibility to define a transformation matrix for people tracker
    [#606]

libpcl_recognition:

  • Allow PCL to be built against a system-wide installed metslib
    [#299]
  • Fixed a bug in ObjRecRANSAC::addModel()
    [#269]
  • Added LINEMOD::loadTemplates() (useful for object recognition systems that
    store templates for different objects in different files)
    [#358]

libpcl_registration:

  • Fixed SampleConsensusInitialAlignment::hasConverged()
    [#339]
  • Added JointIterativeClosestPoint
    [#344]
  • Made correspondence rejectors to actually work with ICP
    [#419]
  • Added GeneralizedIterativeClosestPoint6D that integrates Lab color space
    information into the GICP algorithm
    [#491]
  • Fixed bugs and optimized SampleConsensusPrerejective
    [#741]
  • Fixed a bug in TransformationEstimationSVDScale
    [#885]

libpcl_sample_consensus:

  • Unified SampleConsensusModelNormalParallelPlane with
    SampleConsensusModelNormalPlane to avoid code duplication
    [#696]

libpcl_search:

  • search::KdTree can now be used with different KdTree implementations
    [#81]
  • Added a new interface to FLANN's multiple randomized trees for
    high-dimensional (feature) searches
    [#435]
  • Fixed a bug in the Ptr typdef in KdTree
    [#820]

libpcl_segmentation:

  • Added GrabCut segmentation and a show-case application for 2D
    [#330]
  • Updated RegionGrowingRGB::assembleRegion() to speed up the algorithm
    [#538]
  • Fixed a bug with missing point infinity test in RegionGrowing
    [#617]
  • Fixed alignment issue in SupervoxelClustering
    [#625]
  • Added a curvature parameter to Region3D class
    [#653]
  • Fixed a minor bug in OrganizedConnectedComponentSegmentation
    [#802]

libpcl_surface:

  • Fixed a bug in EarClipping where computation failed if all vertices have
    the same x or y component
    [#130]
  • Added support for unequal focal lengths along different axes in texture
    mapping
    [#352]
  • Speeded up bilateral upsampling
    [#689]
  • Reduced space usage in MovingLeastSquares
    [#785]

libpcl_tracking:

  • Fixed Hue distance calculation in tracking HSVColorCoherence
    [#390]
  • Added pyramidal KLT tracking
    [#587]

libpcl_visualization:

  • Added a new color handler PointCloudColorHandlerRGBAField that takes into
    account alpha channel
    [#306]
  • Fixed PCLVisualizer crashes on OS X
    [#384]
  • Added possibility to display texture...
Read more

pcl-1.7.1

07 Oct 13:12
Compare
Choose a tag to compare
  • New pcl::io::savePNGFile() functions and pcd2png tool (deprecates organized_pcd_to_png).
  • Support for Intel Perceptual Computing SDK cameras.
  • New Dual quaternion transformation estimation algorithm.
  • Bugfixes.

pcl-1.7.0

23 Jul 18:34
Compare
Choose a tag to compare

We are proud to announce the new PCL version 1.7.

After one year of development, there have been a lot of changes:

  • We welcome three new modules: outofcore, people, recognition.
  • PCL moved to git and onto Github.
  • We separated the PCL and ROS data types. Please read https://github.com/PointCloudLibrary/pcl/wiki/Remove-ROS on how to convert your code.
  • We had a flaw in the pcd viewpoint generation. If your point clouds seem to be flipped, please read https://github.com/PointCloudLibrary/pcl/wiki/pcd-viewpoint.
  • the geometry lib has been converted into header only, resulting in a ABI change.
  • If you are using your own point type, you need to define PCL_NO_PRECOMPILE before including any PCL headers.

The most notable overall changes are:

libpcl_common:

  • Added pcl::Intensity and pcl::Intensity8u point types
  • Added pcl::RangeImageSpherical sub-class that is more suitable than pcl::RangeImage for some kinds of 360° range images (as discussed in [PCL-users] Range Image Projection)
  • Added DefaultPointRepresentationpcl::Narf36 to allow pcl::Narf36 to be used with pcl::search (#915)

PCL Apps:

  • Added cloud_composer app
  • Added PCLModeler, with a tree view scene explorer and multiple render windows support
  • Added client app for the point cloud streaming server
  • Added new server app for point cloud streaming to mobile devices (pcl_openni_mobile_server)
  • Added a new demo for the connected component segmentation. Includes a QT gui that allows various features to be toggled on/off.
  • Added SHOT estimator wrapper using OMP
  • Added openni_organized_multi_plane_segmentation to demonstrate the OrganizedMultiPlaneSegmentation class.

libpcl_recognition:

  • Added a new tutorial for "libpcl_recognition" for Correspondence Grouping by Tommaso Cavallari (#666)
  • Added support for .LMT file loading (which are TARed files for PCD masks and SQMMT linemod templates)
  • Changes in the computation of the modality to improve performance
  • Fixed a compilation error on windows; for some reason 'NULL' needs to be explicitly casted to the pointer type
  • Added a model library class used for maintaining the object models to be recognized.
  • Changed the interface to make it less confusing to use.
  • Added a couple useful overloads for "Houg###Grouping" and "GeometricConsistencyGrouping"
  • Added CRHAlignment class.
  • Added Papazov HV method.
  • Fixed a bug in Poisson surface reconstruction that was causing the unit test to fail
  • Added option for automatic selection of number of features in extractFeature
  • Added a new greedy hypotheses verification method.
  • Added semi scale invariant linemod template detection
  • Fixed RF search radius in "Houg###Grouping"
  • Fixed some bugs in detection refinement along viewing direction
  • Fixed bug in LineRGBD::computeTransformedTemplatePoints (template point cloud's width and height fields were not set)
  • Converted uses of PointXYZRGB to PointXYZRGBA; converted std::cerr messages to PCL_DEBUG; minor reformatting to keep lines under 120 characters
  • Fixed some bugs related to bounding box computation and computation of transformed template point clouds
  • Added functionality to specify an object ID when loading templates in LineRGBD;
  • Added "GeometricConsistencyGrouping" clustering class
  • Added high level interface for RGBD version of linemod (not all parts are implemented yet)
  • Added SSE optimizations to improve detection speed
  • Added Ransac Correspondence Rejection into Houg###Grouping
  • Changed method for selecting features in color gradient modality
  • Added "CorrespondenceGrouping" abstract base class for correspondence grouping in pcl_recognitio
  • Added cosine approximation in score computation
  • Added structure for hypotheses verification methods. Base abstract class

libpcl_keypoints

  • Added implementation of the Intrinsic Shape Signature keypoint detector
  • fixed crash caused by setNormals() in HarrisKeypoint3D (related to #745)

libpcl_outofcore:

  • Added support for PointCloud + gen LOD
  • Added PointCloud2 support for outofcore queries via new "queryBBIncludes" method
  • Added "copyPointCloud" support for PointCloud2 without indices
  • Added feature: outofcore binary compressed pcd files to store point data on disk
  • Bug fix: outofcore write buffer constant limitation fixed so outofcore_process will work with large 20M+ point TRCS data sets
  • Constants for write buffer changed to 2e12 to support insertion of very large point clouds until new serialization is implemented
  • Added getVoxelSideLength to octree_base for displaying of nodes in visualizer

libpcl_search:

  • FlannSearch: fixed wrong typedef (::Ptr would break if FlannDistance!=flann::L2) and compiler error
  • Added new option in FlannSearch: FLANN KMeans Tree can now be uses as the search algorithm

libpcl_visualization:

  • Added specific methods to handle monochrome images represented by a PointCloud or a PointCloud
  • Add area selection option to PCLVisualizer so user can get a whole area indexes
  • Fix the ImageViewer shapes overlay using vtkContextItem so they now appear with transparent background

libpcl_tools:

  • Added a PNG to PCD converter

libpcl_io:

  • Added support for the Velodyne High Definition Laser (HDL)
  • Add support for foo/bar vertex property in PLY file reading

About time

05 Sep 18:31
Compare
Choose a tag to compare

The most notable overall changes are:

PCL Tools:

  • Added a tool for interfacing the marching cubes algorithms
  • Added a PLY To PCD conversion tool
  • Added a command line tool for transforming datasets based on their viewpoint
  • Implemented feature #605: New octree visualizer example (Contributed by Raphael Favier. Thanks!)
  • Updated "openni_save_image" to save both RGB and depth images as TIFF
  • Added two command line tools for converting PCD data into PLY and VTK formats
  • Fix for #504: Make ShapeContext and SpinImage uniform (thanks David!)

libpcl_common:

  • Fixed bug #658: Compiler error: undefined reference for getEulerAngles in pcl/common (thanks Gioia!)
  • Moved towards a unified "eigen.h" header that only includes the Eigen headers that we need.
  • Added boost 1.48 and 1.49
  • Added a default "PointRepresentation" type for "ShapeContext" (thanks Elizabeth!)
  • Added a new "PlanarPolygon" class for representing 2D planar polygon regions
  • Added "SetIfFieldExists" functor helper to copy data from a variable into a point field, if it exists
  • Added a helper functor ("CopyIfFieldExists") for copying out specific data out of a PointT field. See "test_common.cpp" for usage examples
  • Added point value initialization by default in constructors for "PointXYZI", "Normal", "PointXYZHSV", "PointXYZRGBL", and "PointXYZRGB"
  • Updating transforms.hpp to ensure that point fields are copied when applying affine transform to a specific set of indices.
  • Added error messages on failure of aux functions for PointCloud2, "pcl::concatenatePointCloud" and "pcl::concatenateFields"
  • Fixed win32 compilation error on test_plane_intersection
  • Implemented plane intersection feature (feature #644) with a related unit test
  • Added kissfft library
  • Bugfix of eigen22 version for smallest eigenvalue/vector
  • Add specialization for pcl::RGB point type
  • Intensity field accessor moved from keypoints/sift to common to be shared by others
  • Fixed some valid usages of point traits (e.g. static_cast::type>(...) ) on GCC 4.4.3 by explicitly instantiating some assert template long before it should actually be needed.
  • Added ESF Histogram 640 to point types

libpcl_filter:

  • Added command line option "-keep" to preserve the organized data structure after a "Passthrough" filter
  • Implemented feature #663: flexible comparison for conditional_removal filter (Thanks Julian!)
  • Fix for bug #672: ijk grid coordinates in VoxelGrid computed differently in different functions (thanks Nicholas!)
  • Fix for #572: Example "Euclidean Cluster Extraction" crashes / bug in VoxelGrid filter
  • Improved performance of 3x getFieldIndex and removed dependency on pcl_io
  • Fixed and implemented feature #518: VoxelGrid<> performance improvement (roughly 50+ times) (thanks Radoslaw!)
  • Fixed the visual studio compilation error described in feature #614 (thanks Remus!)
  • Fixed bug #674 (Elements in leaf_layout_ in VoxelGrid are not reset between calls to VoxelGrid::filter), Thanks Nicholas for the patch!
  • Work on issue 614: updated the PassThrough filter to derive from FilterIndices instead of Filter
  • Fix: use a makInfinite function to annihilate points in zero_padding cases
  • Add new class to handle convolution in 3D space for radial basis kernel
  • Modifying VoxelGridCovariance to allow for control over minimum number of points and eigen value inflation for singularity prevention.

libpcl_visualization:

  • Overloaded "addRectangle" in "ImageViewer" with several useful methods that take as input 3D min-max points and organized datasets, as well as image masks to create 2D rectangles on screen
  • Renamed "addBox" to "addFilledRectangle" in "ImageViewer"
  • Added "addPlanarPolygon" methods for "ImageViewer" to display planar polygonal contours in the image
  • Added new "addMask" methods to "ImageViewer" for displaying 2D image masks from a given "PointCloud"
  • "PCLVisualizer" now has a new "addCube" method for passing {x, y, z}_{min, max} directly to the screen (thanks Jeremie!)
  • Patch for two cases of mismatched new/free cases for PCL<->VTK data exchange (thanks Peter!)
  • Fixed a problem with "removeLayer" which was causing shapes to flicker on screen on sequences like: "removeLayer; addShape; spinOnce"
  • Added "addLine" to "ImageViewer" for displaying 2D lines
  • Added "PCLVisualizer::close" to close the interactor window and "PCLVisualizer::set{Size, Position}" to set the window size and position on screen added image viewer to the docs
  • Added better support for 2D image visualization (via "pcl::visualization::ImageViewer"): add/remove layers with different transparency, add 2D shapes (rectangles, circles, points, etc)
  • Added "wasStopped" to "ImageViewer" to check if the window has been closed
  • Fixed an issue in pcd_viewer where the PointPicking callback wasn't functioning properly
  • Added "setPosition" to "pcl::visualization::ImageViewer" for allowing the image viewer to be moved somewhere else on screen
  • Added two additional "addPointCloud" helpers for directly displaying "sensor_msgs::PointCloud2" data
  • Added "addPointCloud" method for "sensor_msgs::PointCloud2" data (useful to bypass the conversion to XYZ for "pcd_viewer")
  • Added the capability to remove a cloud when "removeShape" is called, to preserve API backward compatibility (a "PolygonMesh" is not treated as a "CloudActor" inside "PCLVisualizer")
  • Fixed a bug where the scalars were not updated properly on "updatePointCloud" thus causing VTK warnings on the console
  • Fixing issue #105 (PCLVisualizer::spinOnce don't work on Win32 system). Thanks Thibault and Alessio.
  • Added "PointXYZRGBA" callbacks for "OpenNIGrabber" and "PCLVisualizer".
  • Fixed two bugs where a segfault would occur in "addPolygonMesh" when the input cloud would be empty, as well as #563 : PCLVisualizer::addPolygonMesh crash (thanks Mourad!)
  • Fixed a bug where changing the point color using "setPointCloudRenderingProperties" would not update the actor's colors on screen
  • Fix for #532: "PCLVizualizer::addCoordinateSystem()" switch from "Eigen::Matrix4f" to "Eigen::Affine3f" (thanks Aurel!)
  • Fix for #524: ctrl problem with pcd_viewer (thanks Mourad!)
  • Adding opt in flag -use_vbos to pcl_visuzlier. It's still quite buggy, but shouldn't affect the visualizer unless this flag is passed.
  • Added vtkVertexBufferObject/Mapper and moved pcl_image_canvas_source2d
  • Added case handling where an actor might not have a valid viewpoint_transformation matrix resulting in a seg fault if pressing ALT+R
  • Fixed bug in displaying addCoordinateSystem
  • Added method to visualize intensity gradients
  • Added zoom functionality for ALT + Scroll-Wheel
  • Merged openni_viewer_simple with openni_viewer with all the available options except XYZI

libpcl_octree:

  • Fixed bug #693 - bounding box adaption affected change detection results
  • Applied patch by Robert Huitl, Issue #651, define maxVoxelCount in octree raycasting
  • Fixed OSX compiler warnings
  • Fixed bug #683 - octree depth changes during stream compression
  • Added new octree key class
  • Added bounding box checks in method isVoxelOccupiedAtPoint (octree pointcloud class)
  • Removed maxKeys limit in octree key generation method
  • Added range checks for integer keys in octree classes, extended octree key class
  • Fixed bug #620 (octree search fails if point cloud with indices is given) in octree pointcloud class

libpcl_io:

  • Added "DepthImage" signals/callbacks for "PCDGrabber"
  • Support for loading TAR-ed LMT files
  • Added support for TAR-PCD files for "PCDGrabber". Simply use "tar cvf file.tar *.pcd" and use "PCDGrabber" on it afterwards
  • Fixed a bug in the "PointCloud" feature estimation and I/O regarding the fields "count" property
  • Added a "saveVTKFile" method helper for saving "sensor_msgs::PointCloud2" data
  • Added support for reading PCD ascii and binary files (binary_compressed not implemented yet!) for pcl::PointCloudEigen::MatrixXf datatypes.
  • Implemented and tested a fix for feature request #558: Implement IO for PointCloud
  • Adding missing openni_device files from install
  • Fixed a bug in ply reader
  • Fixed bug #683 - dropping empty point clouds during stream compression
  • Add functions to convert between PCL and VTK data structures.
  • Handle red_diffuse, blue_diffuse and green_diffuse vertex properties
  • Fix bug where normals were written before RGB
  • Bugfix for #627 - Wrong include path for ply header

libpcl_features:

  • Fixed bug #676 in PCL Feature Search (thanks Adam!)
  • Fixes compilation problem on Windows due to size_t variable in omp loop.
  • Implemented feature request #661: border management in integral image normal estimation
  • Fixed PFHRGBEstimation bug, thanks Luis
  • Bug fix in SHOT feature, thanks wack
  • Fixed a bug which caused some normals to point in the wrong direction
  • Added Camera Roll histogram
  • Fix bug in index used for normal selection
  • Added esf feature
  • Added setViewPoint functionality and useSensorOriginAsViewPoint method to reset the viewpoint
  • Fixed bug #576 - CVFH respect setIndices now
  • Fixed issue #550: Uninformative error in VFHEstimation (thanks David!)
  • Fix #527: Bug in IntegralImageNormalEstimation (thanks Christoph!)
  • Fixed #544: overflow in implicit constant conversion warnings (thanks David!)
  • Modified SHOT omp so that the default computation of the reference frames
  • SHOT: Fixed invalid access when keypoints have increased from the previous call.
  • Setting sensor origin and orientation correctly for normal point cloud
  • Fixed a bug in estimating the orientation of the normal (view point wasn't initialized in the constructor)
  • Bug fix: if the cloud is not dense search for neighbours could raise an excpetion
  • Bug fix: SHOT accepts only radius search

libpcl_segmentation:

  • Fixed a few issues in the new segmentation classes where some comparators didn't have the appropriate "Ptr" and "ConstPtr" well defined
  • Fixed a bug where poin...
Read more

Better late than never

05 Sep 18:30
Compare
Choose a tag to compare

The most notable overall changes are:

  • new framework for PCL examples in the example/ folder
  • added the ICCV 2011 tutorial code to the list of bundled applications
  • a brand new PCL tracking library (libpcl_tracking)
  • new, well-tested implementations for OrganizedNeighbor and BruteForceSearch in libpcl_search
  • considerable speedups for: eigendecomposition, covariance matrix estimation, and normal estimation (now running at 30Hz on VGA data)
  • a lot of bug fixes and code refactorizations and optimizations (thanks to everyone that contributed!)
  • compilation now defaults to Eigen column major again, but all the code in PCL should compile and work against both row major and column major matrices.
  • libpcl_range_image is now incorporated into pcl_common, no extra linking required.

libpcl_common

  • added two new methods to compute centroid and covariance at once. Both are faster than calculating first the centroid and afterwards the covariance matrix. The float versions of the new methods are twice as fast but less accurate, whereas the double versions are more accurate and about 35% faster.
  • fixed a few issues in our ScopeTime class where the creation of the string as well as the cerr were contributing negatively to the time measurements
  • added empty() to PointCloudEigen::MatrixXf to return whether the matrix is empty or not
  • added size to PointCloudEigen::MatrixXf and fixed the constructor warnings exposed by -pedantic
  • added two new Point Types: Axis and ReferenceFrame as they are used in the Reference Frame calculations
  • added a helper functor (CopyIfFieldExists) for copying out specific data out of a PointT field. See test_common.cpp for usage examples
  • implemented and tested a fix for feature request #558: Implement IO for PointCloud

libpcl_filters

  • refactored RandomSample to return sorted indices. In addition it now runs nearly twice as fast at it did previously.
  • fixed and implemented feature #518: VoxelGrid<> performance improvement (roughly 50+ times)

libpcl_kdtree

  • removed unneeded mutices, added asserts instead of constant checks (the user is responsible for passing in valid data!) and sped up a few other things in KDTreeFLANN

libpcl_search

  • adapted use of flann::Matrix to new semantics of the 'stride' parameter, fixing incorrect results and a crash in FlannSearch
  • changes that affect pcl_features, pcl_search, pcl_octree, pcl_registration, pcl_surface:
    • we used to have 3 "overloads" for nearestKSearch and 3 for radiusSearch that every class inheriting from pclk::KdTree or pcl::search::Search needed to implement. Because most of the children always had the same implementation (copy&paste) we moved it up in the base class, made the methods virtual, and only children that need to change that behavior will overwrite it.
    • the max_nn parameter from radiusSearch has been changed from int with a default value of -1 to an unsigned int with a default value of 0. Each radiusSearch implementation should check for 0 or >= max_points_in_cloud and branch accordingly (if needed).
    • const correctness is now implemented everywhere in all nearestKSearch and radiusSearch operations
  • added an implementation of KdTreeFLANN for PointCloudEigen::MatrixXf data structures
  • FlannSearch: don't include flann/matrix.h, move all FLANN includes to impl/flann_search.hpp. Also adapt max_nn parameter in radius search to change r3962 (pass 0 to search for all neighbors instead of -1)
  • completely new and shiny BruteForceSearch and OrganizedNeighbor classes

libpcl_octree

  • fixed issue #513 (bug in octree iterator)
  • fixed octree bounding box adaption
  • fixed range test in getPointByIndex method (octree)
  • fixed bug #604 & removed compiler warnings in Visual Studio 10
  • fixed numerical problem in octree pointcloud class when points lie very close to the bounding box bounds
  • improved performance with std::deque in OctreeBreadthFirstIterator class
  • added breadth-first octree iterator and depth-first octree iterator classes, restructured octree iterator classes, moved "getVoxelBounds" method from OctreeIterator class to OctreePointCloud class

libpcl_sample_consensus

  • added explicit checks + errors for NaN covariance matrices
  • fixed a crash on 32bit platforms (thanks bharath)
  • fix for #498: Bug in setOptimizeCoefficients for pcl::SACMODEL_SPHERE. The issue actually exposed a grave bug introduced with r2755, when we switched from CMinPack to Eigen. The fix touches all segmentation models in pcl_sample_consensus using Levenberg-Marquardt, and TransformationEstimationLM in libpcl_registration. Also added unit test to catch this in the future.

libpcl_io

  • fix row-major/column-major issues in I/O (#578 related)
  • fixed #593 by removing unimplemented method declarations
  • added a saveVTKFile method helper for saving sensor_msgs::PointCloud2 data
  • added support for reading PCD ascii and binary files (binary_compressed not implemented yet!) for pcl::PointCloudEigen::MatrixXf datatypes.
  • implemented and tested a fix for feature request #558: Implement IO for PointCloud
  • added PointXYZRGBA callbacks for OpenNIGrabber and PCLVisualizer
  • fixed issue #565
  • fixed a few bugs in PCDReader regarding uint8/int8 data values and added a comprehensive unit test for all possible combinations of data types that we support in PCL
  • added isValueFinite for checking whether a value T is finite or not, and rewrote the PCDReader bits of code that perform the is_dense checks
  • integrated libply written by Ares Lagae as an independent component in io
  • rely on ply library for PLY parsing, remove the old parser and use the freshly integrated libply, change the namespace ::ply to ::pcl::io::ply to avoid any potential issue

libpcl_surface

  • Updated convex hull. It should now be somewhat faster, and allows users to optionally specify if the input is 2D or 3D, so the input dimension need not be calculated every time.
  • fix for #562: pcl::ConcaveHull crashes on an empty cloud (thanks Mourad!)
  • added option to ensure that triangle vertices are ordered in the positive direction around the normals in GreedyProjectionTriangulation
  • fixed issue #489 in GreedyProjectionTriangulation
  • fixed triangle vertex ordering issues in OrganizedFastMesh
  • MarchingCubes now adheres to the new pcl_surface base class architecture
  • added PCLSurfaceBase base class for MeshConstruction and SurfaceReconstruction, to unify the API around setSearchMethod(&Search) and reconstruct(&PolygonMesh)
  • added marching_cubes_reconstruction tool

libpcl_features

  • fixed issue #550: Uninformative error in VFHEstimation (thanks David!)
  • fix for #504: Make ShapeContext and SpinImage uniform (thanks David!). Note: this is an API breaking change, as setInputCloudWithNormals, which was deviating from the FeatureEstimation API is now replaced with patched setInputCloud and setInputNormals, thus no longer causing an error. However, we are confident with this change as the API was broken, so this is a bug fix.
  • fixed a bug in the PointCloud<MatrixXf> feature estimation and I/O regarding the fields count property
  • fixed an issue where the header stamp should only be copied from a PointCloud into a PointCloud in PCL standalone, and not in PCL in ROS
  • optimized RSD computation
  • speeded up normal estimation in IntegralImageNormalEstimation
  • renamed computeFeature (MatrixXf&) into computeFeatureEigen (MatrixXf&) and compute (MatrixXf&) into computeEigen (MatrixXf&) to keep the compiler happy, avoid multiple inheritance, and use clearer semantics between the two different output estimation methods
  • fixed an issue where if radius would be defined for VFHEstimation, Feature::initCompute would error out
  • fixed issue #539 (fpfh_estimation tutorial)
  • fixed issue #544 (overflow in implicit constant conversion warnings)
  • fixed issue #527 (bug in IntegralImageNormalEstimation)
  • fixed issue #514 (SpinImages segfault when using setKSearch)

libpcl_registration

  • added TransformationValidation base class and TransformationValidationEuclidean as a measure to validate whether a final transformation obtained via TransformationEstimation when registering a pair of clouds was correct or not
  • added getter/setter for maximum number of inner iterations to control number of optimizations in GeneralizedIterativeClosestPoint
  • fixed issue #507
  • fixed issue #533 (WarpPointRigid missing EIGEN_MAKE_ALIGNED_OPERATOR_NEW)
  • fixed issue #464 (already defined function pointers)
  • fixed a grave bug on 32bit architectures where MapAligned was used incorrectly

libpcl_segmentation

  • fixed a segmentation fault in SACSegmentationFromNormals caused by calling segment without passing the input XYZ or normal data
  • added a missing setDistanceFromOrigin to SACSegmentationFromNormals for SACMODEL_NORMAL_PARALLEL_PLANE (thanks A. Barral)

libpcl_visualization

  • added PointXYZRGBA callbacks for OpenNIGrabber and PCLVisualizer
  • fixed two bugs where a segfault would occur in addPolygonMesh when the input cloud would be empty, as well as #563 : PCLVisualizer::addPolygonMesh crash (thanks Mourad!)
  • added the capability to remove a cloud when removeShape is called, to preserve API backward compatibility (a PolygonMesh is not treated as a CloudActor inside PCLVisualizer)
  • fix #472: at startup the camera view pointis set to last added point cloud, but with the key combination ALT+r on can iterate through the view points of the visualized point clouds.
  • added addPointCloud method for sensor_msgs::PointCloud2 data (useful to bypass the conversion to XYZ for pcd_viewer)
  • added PCL_VISUALIZER_IMMEDIATE_RENDERING for processing large datasets
  • refactorized pcd_viewer to consume less memory by skipping the intermediate conversion to PointCloud<PointXYZ>, clearing the PointCloud2 data once converted to VTK, and enabling intermediate mode
  • a...
Read more

Happy New Year

05 Sep 18:27
Compare
Choose a tag to compare

The most notable overall changes are:

libpcl_common

  • added float union to the pointXYZRGBL type, in order to aid PCD_viewer compatibility
  • bugfix: pcl::computeCovarianceMatrixNormalized did not normalize for each implementation
  • fixed bug #421: at(u,v) should return a const reference
  • added InitFailedException and UnorganizedPointCloudException. Created PCL_EXCEPTION helper macro
  • added the GFPFH global descriptor point type
  • added gaussian kernel class and utilities
  • added isTrivial to pcl::PointRepresentation which allows avoiding copy operations in special cases, thus speeding up operations like rep->isValid (p)
  • added eigen33 for smallest eigenvalue/vector and only eigenvalues version
  • added PointCloudColorHandlerHSVField implementation
  • deleted wrong definition of density in pcl::transformPointCloud
  • added copy constructor for PCLBase
  • fixed PointCloud's in range inserter: width and height were not updated
  • added PCL_MAJOR_VERSION and PCL_MINOR_VERSION #defines per Ryan's request
  • fixed the getMatrixXf advanced user API call to return the correct values now that we are forcing Eigen Matrices to be row major in 1.x
  • moved the content of win32_macros.h into pcl_macros.h
  • added an isFinite method to check for x/y/z = NaN in point_types.hpp
  • moved internal headers from pcl/ros/point_traits.h into pcl/point_traits.h and pcl/ros/for_each_type.h to pcl/for_each_type.h (these headers are for internal use only and should have never been imported by user code - however pcl_ros in perception_pcl_unstable will need to be modified when following trunk after this revision, as that is the only external piece of code that should import these headers)
  • fixed one of the constructors for pcl::PointCloud<T> (cloud, indices) that was incomplete
  • no longer checking "frame_id" parameters in header for operator += in pcl::PointCloud<T>
  • added operator + for pcl::PointCloud<T>
  • improved doxygen documentation all around libpcl_common
  • added new specialization for pcl::PointCloud<Eigen::MatrixXf> - for advanced users only! (expect the API to change in trunk if needed)
  • moved NdCopyPointEigenFunctor and NdCopyEigenPointFunctor from voxel_grid.h to point_cloud.h
  • added CloudProperties class for optional properties for pcl::PointCloud<Eigen::MatrixXf>, and moved sensor_origin_ and sensor_orientation_ there (as properties.sensor_origin and properties.sensor_orientation), and removed header, while keeping header.stamp as properties.acquisition_time
  • fixed the copy constructor (vector<size_t> -> vector) and added an implementation for the + operator
  • added a general convolution class. Convolution handles point cloud convolution in rows, columns and horizontal directions. Convolution allows for 3 policies: zero padding (default), borders mirroring and borders duplicating through PointCloudSpring class
  • refactorized PointCorrespondence and Correspondence into the same thing, per issue #458
  • added ChannelProperties in preparation for 2.0
  • fixed bug #445: Overloaded the setIndices method in PCLBase so that it can accept boost::shared_ptr<const std::vector> >
  • disabled unit test for getMatrixXfMap in DEBUG mode, as it was failing due to eigen's strictness on aligned/unaligned data, and added const+non consts versions

libpcl_filters

  • fixed bug in random_sample.cpp; The PointCloud2 filter wasn't working causing the unit test to fail
  • crop_box filter now supports PointT and PointCloud2 point clouds
  • added a normal space sampling filter
  • fixed bug #433: pcl::CropBox doesn't update width and height member of output point cloud
  • fixed bug #423 CropBox + VoxelGrid filters, order changes behaviour (using openni grabber)
  • add CropHull filter for filtering points based on a 2D or 3D convex or concave hull. The ray-polygon intersection test is used, which relys on closed polygons/surfaces
  • added clipper3D interface and a draft plane_clipper3D implementation
  • removed spurious old ColorFilter class (obsolete, and it was never implemented - the skeleton was just lurking around)
  • better Doxygen documentation to PassThrough, VoxelGrid and Filter
  • moved the set/getFilterLimits, set/getFilterFieldName, and get/setFilterLimitsNegative from Filter into VoxelGrid and PassThrough, as they were the only filters using it. The rest were not, thus leading to user confusion and a bloated API.

libpcl_kdtree

  • fixed bug #442: reversed template parameters preventing use of nearestKSearchT and radiusSearchT in pcl::search::Search and pcl::kdtree:KdTree

libpcl_search

  • fixed a bug in OrganizedNeighbor where one of the radiusSearch signatures was working only if the cloud is not organized (#420 - thanks Hanno!)
  • updated pcl::search:OrganizedNeighbor to be back functional, radiusSearch is working back, 4-6x faster then KdTree, Knearest still need to implement this
  • changed pcl::search::FlannSearch: fixed style of class and tests, moved impl to hpp
  • cleaning up OrganizedNearestNeighbor as well as implementing one of the missing radiusSearch methods
  • improved documentation for libpcl_search and silenced all Doxygen warnings
  • removed auto (it needs to be completely rewritten and was left in a very bad state)
  • made sure all the output of the search method is consistently returning 0 in case the nearest neighbor search failed and not -1
  • updated kdtree wrapper code for the latest FLANN release

libpcl_octree

  • added method getVoxelBounds to octree iterator & removed result vector reserves
  • improved documentation for libpcl_octree and silenced all Doxygen warnings

libpcl_sample_consensus

  • fixed an omission of the sample size declaration for SACMODEL_PARALLEL_LINES (thanks Benergy)
  • replaced rand () with boost random number generators and fixed all failing unit tests
  • workaround to get rid of infinite loops if no valid model could be found

libpcl_io

  • refactorization and consistent code indentation + make sure the timestamp is not set if we use PCL in ROS
  • fixed an older issue where the is_dense flag was not set appropriately when reading data from a binary file (thanks Updog!)
  • fixed an issue in the PLYWriter class where the element camera was not correctly set thus leading to crashes in Meshlab (thanks Bruno!)
  • the VTK library loads vertex colors in PLY files as RGB. Added that to the polymesh loader.
  • fixed 2 bugs in writing PolygonMesh and unpacking RGB
  • fixed a bug in the .OBJ exporter to strip the path from the material library filename (thanks Robert!)
  • added support for exporting vertex normals to the .OBJ (pcl::io::saveOBJFile) file exporter (thanks Robert!)
  • fixed a 32bit/64bit issue in pointcloud compression
  • added method to write obj files from PolygonMesh
  • added serial number support for Windows using mahisorns patch. Thanks to mahisorn
  • overloaded callbacks for OpenNIGrabber to output PointCloud<Eigen::MatrixXf> datasets
  • added the possibility to write binary compressed Eigen data to disk using two new methods: generateHeaderEigen and writeBinaryCompressedEigen. Performance improvements to 30Hz I/O
  • fix for #463 (Missing Symbol rgb_focal_length_SXGA_)
  • fix: rgb values need to be packed before saving them in PointCloud2 for PLYWriter
  • added example code for accessing synchronized image x depth data
  • added support for the Stanford range_grid element and obj_info for PLY files. If you chosse to use range_grid instead of camera then only valid vertices will be written down to the PLY file.

lipcl_keypoints

  • added refine method for Harris3D corner detector
  • rewrote big parts of the NARF keypoint extraction. Hopfully fixing some stability issues. Unfortunately still pretty slow for high resolution point clouds.
  • fixed bug #461 (SIFT Keypoint result cloud fields not complete); cleaned up the line-wrapping in the error/warning messages

libpcl_surface

  • fixed a bug in MarchingCubes's getIndexIn1D which led to the result variable to overflow when the data_size was larger than something around 2^10 (thanks Robert!)
  • reviewed and slightly modified mls implementation. Added MovingLeastSquaresOMP OpenMP implementation
  • new architecture for the mesh processing algorithms using VTK: MeshProcessing
  • overloaded reconstruction and performReconstruction in SurfaceReconstruction to output a PointCloud<T> and vector<Vertices> as well
  • added a new class called MeshConstruction per API design decision to split the surface reconstruction methods into topology preserving (EarClipping,OrganizedFastMesh,GreedyProjectionTriangulation) and the rest. The new class implements areconstruction/performReconstructionforPolygonMesh(for backwards compatibility purposes) and a faster set of the same methods forvector`
  • refactorized GreedyProjectionTriangulation by making it inherit from the new MeshConstruction base class, and removed a lot of old buggy code
  • overloaded performReconstruction (PointCloud<T> &, vector<Vertices> &) per the new SurfaceReconstruction API
  • fixed a bug in OrganizedFastMesh where the x/y/z indices were assumed to be 0/1/2, and made it part of the MeshConstruction API
  • optimizations for OrganizedFastMesh. Now in 30Hz+ flavor.
  • fixed a segfault from last night's EarClipping refactorization and improved the efficiency of the algorithm considerably
  • updated ConvexHull and ConcaveHull to inherit from the new MeshConstruction class
  • rena...
Read more