Skip to content

About time

Compare
Choose a tag to compare
@jspricke jspricke released this 05 Sep 18:31
· 13812 commits to master since this release

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 points passed onto the search method were not checked for NaN/Inf in "pcl::SegmentDifferences"
  • Added a missing "setDistanceFromOrigin" to "SACSegmentationFromNormals" for "SACMODEL_NORMAL_PARALLEL_PLANE" (thanks A. Barral)
  • Fix for #134 (Prism Extraction on Table top (flipping normal fails))
  • Fixed a segmentation fault in "SACSegmentationFromNormals" caused by calling "segment" without passing the input XYZ or normal data
  • Fixed a bug in organized connected component segmentation. Previously would crash if the first pixel had a valid depth (doesn't occur on kinect data).
  • Bugfix of issue # 675: Euclidean cluster extraction access violation. Thanks to Icy for helping find the solution
  • Fixed bug #673 in EuclideanClusterExtraction
  • Added new code for min cut segmentation
  • Fixed bug #681: member variable was not set in constructor (thanks Bhaskara!)
  • Added a threshold to MultiPlaneSegmentation for curvature, allowing us to discard smooth (but non-planar) regions.
  • Added optional projection for multi_plane_segmentation.
  • Added some new comparators for use with OrganizedConnectedComponents including RGB and edge aware
  • Added additional fucnction call for segmentAndRefine.
  • Added a comparator for doing euclidean clustering on organized point clouds.
  • Added fast SeededHueSegmentation implementations
  • Fixed segfault in multi plane refinement and functorized the comparison.
  • Improved MultiPlaneSegmentation to allow refinement of regions, and support different comparators.
  • New classes AutomatedSegmentation, AutomatedTreeSegmentation
  • Added OrganizedConnectedComponentSegmentation, which is a general class for use with organized point clouds and can take user specified comparators.
  • Added OrganizedMultiPlaneSegmentation which returns all planes in an organized cloud, along with the PlaneCoefficientComparator needed to do this.

libpcl_surface:

  • Fixed a grave bug where "setIndices" was not used in "ConvexHull"
  • Added fix for #562: pcl::ConcaveHull crashes on an empty cloud (thanks Mourad!)
  • Added "PCLSurfaceBase" base class for "MeshConstruction" and "SurfaceReconstruction", to unify the API around "setSearchMethod(&Search)" and "reconstruct(&PolygonMesh)"
  • Added GPU accelerated convex hull. 7x for Ramesses dataset (700k points)
  • Added a setDimension function to concave hull, so users can specify desired dimensionality of the resulting hull. If no dimension is specified, one will be automatically determined.
  • Fixed bug #692 - MovingLeastSquares indices issues
  • Added curve fitting and trimming of surfaces to examples/surface/example_nurbs_fitting_surface.cpp
  • Added iterative fitting routines for curve fitting surface::on_nurbs::Triangulation - added convertion functions for nurbs curve to line-polygon - added convertion functions for nurbs surface and curve to PolyMesh
  • Added flag to enable/disable usage of UmfPack for fast solving of sparse systems of equations - added triangulation functions to convert ON_NurbsSurface to pcl::PolygonMesh
  • Added bug fix in ConcaveHull, thanks to summer.icecream
  • Added marching cubes using RBF and Hoppe SDF
  • Pushed new functions that perform texture-mapping on meshes.
  • Fix: issue #646 (vtk_smoothing not copied)
  • Added new functionalities to TextureMapping: Find occlusions based on raytracing in octrees, UV mapping based on Texture resolution and camera focal lenght.
  • Relaxing dimensionality check threshold on concave_hull, so that 3D hulls should no longer be calculated on 2D input.
  • Added poisson filter

libpcl_keypoints:

  • Added combined Harris keypoint detector to detect corners in image, in 3D and combined ones
  • Fix bug #691 (Compiler error: undefined reference for setMinimalDistance in pcl/keypoints/harris_keypoint2D)
  • Fixed the #637 pitfall in harris3D and harris6D
  • Added implementation of 2D corner detectors

libpcl_geometry:

  • Added a new PCL library for computational geometry
  • Added bugfix to remove self intersecting polygons
  • Fixed some refinement corner cases for polygon approximation
  • Added line iterator class for iterating over e.g. an image/organized cloud in the pixel space.

libpcl_search:

  • Added NaN checks in "pcl::search::FlannSearch"
  • Skip infinite neighbor candidates in pcl::search::OrganizedNeighbor::radiusSearch
  • Added point projection method for organized search

libpcl_tracking:

  • Fixed issue #514: SpinImages segfault when using setKSearch (thanks David!)
  • gcc-4.7 compatibility issues in pcl::tracking fixed. Thanks to Rich Mattes

libpcl_sample_consensus:

  • Implemented feature #589: Add sac_model_cone and sac_model_normal_sphere (contributed by Stefan Schrandt. Thanks!)
  • Fix for #616: pcl::ProgressiveSampleConsensus::getRandomSamples unimplemented (thanks Mourad!)
  • Fix for #498: Bug in setOptimizeCoefficients for pcl::SACMODEL_SPHERE.
  • Fixed bug #648: code was checking for plane perpendicular to given axis instead of parallel
  • Applied patch for feature request #649: Locally constrained model generation for Sample Consensus

libpcl_registration:

  • Fixed issue #619: Cannot call pcl::registration::TransformationValidationEuclidean::validateTransformation (thanks Raphael!)
  • Added code for #592: correspondence estimation based on normal shooting (coded by Aravindhan. Thanks!)
  • Fixed #533: WarpPointRigid missing EIGEN_MAKE_ALIGNED_OPERATOR_NEW (thanks Radoslaw!)
  • Correct overlapping grid distribution in 2D NDT implementation