Release 1.2.1 and 1.2.2: Octrees and integers are fun!

Online grasp planning based on pointclouds of in-hand-cameraGPU Voxels at a Cleanroom3D Replanning scenarioReplanning3D View of Lab Environment3D Replanning scenario

Release 1.2.1 and 1.2.2: Octrees and integers are fun!

Dear GPU-Voxels users, we just released version 1.2.2.

As always you find the new release at GitHub.
This release fixes some important bugs, most of which affect Ubuntu releases newer than 16.04 and one affecting Octree data-structures on Pascal GPUs.

One important addition is GpuVoxelsMap::insertCoordinateList, which takes as parameter a vector of coordinates where voxels should be inserted into a data-structure. This is important for de-/serialization workflows, where voxels are serialized from device memory and need to be reinserted.

The new deserialization functions also allowed the implementation of integer-based geometry generation functions, like this one:
geometry_generation::createBoxOfPoints(corner_min, corner_max, delta, side_length);

Alongside this we added a new example:

  • geometrygeneration
The new GeometryGeneration example as seen in gpu_voxels_visualizer

The new GeometryGeneration example as seen in gpu_voxels_visualizer

Happy coding,


Changelog for Release 1.2.1:
Octree and 18.04 bugfixes, insertCoordinateList and geometry generation with integer coordinates.

Important Bufixes:
– Octrees issues on Pascal GPUs have been fixed. Fixes #60. Thanks to Florian!
– Icmaker updated to avoid issues on CMake 3.6.2 and newer. Fixes #58
– Fix Boost 1.65.1 compatibility issues for Ubuntu 18.04
– Fix CUBIN compilation in code=sm_** settings. Thanks to @r2b0 and Florian! Fixes #73 and #54

Known Issues:
– the GLM headers provided by Ubuntu 16.04 have to be patched to allow usage of the visualizer.
– see
– patch for /usr/include/glm/detail/func_common.inl in packages/gpu_voxels/doc/glm_fix_issu530.patch
– Cuda 8.0: Code compiled with Cuda 8.0 works fine with older GPU drivers such as 375.66, but there are runtime errors with driver 384.111 and newer
– produces runtime error “PTX JIT compilation failed”
– Eigen 3.3.4 and 3.3.5 issue with CUDA 9.0, 9.1, 9.2: Error: class “Eigen::half” has no member “x”.
– Can be fixed by using latest unstable version of Eigen
– The constant cMAX_NR_OF_BLOCKS is currently limited to 65535, while current CUDA devices support over 2 billion blocks
– relevant during computeLinearLoad calls and collision checking

Possibly breaking changes:
– TemplateVoxelList::getDimensions returns (size,1,1) instead of (size,0,0)
– Important: TemplateVoxelList::getDimensions does not depend on m_ref_map_dim, unlike TemplateVoxelList::getMetricDimensions!

Additional changes:
– New example: GeometryGeneration showcases
– New function GpuVoxelsMap::insertCoordinateList and geometry generation with integer coordinates
– Example: geometry_generation::createBoxOfPoints(corner_min, corner_max, delta, side_length);
– Available for maps, lists and octrees. Can create boxes, spheres and cylinders. Thanks to Herbert for his contribution!
– GpuVoxels::insertBoxIntoMap now uses the integer coordinate based creation and insertion functionality, avoiding discretization issues
– Remove warnings regarding logging and visualizer initialization. Fixes #72
– Fix visualizer warning by always creating the shared memory segment on initialization. Fixes #72
– Removed unused shader loading code
– Updated URDF code for compatibility with new ROS releases

Changelog for Release 1.2.2:
Fix missing CUDA include and link directive in gvl_ompl_planner and example_howto_link

Read more | Comments Off on Release 1.2.1 and 1.2.2: Octrees and integers are fun! | Aug 29, 2018