V1.1 – New Year Release

V1.1 – New Year Release

gvl_ompl_planning UR10 6DOF arm motion

Dear GPU-Voxels users, the new release is here!

The bugfixes and new features in Version 1.1 are now available. With this release I take over as lead maintainer for the framework, while Andreas will of course continue to use it and to contribute to it.

As always you find the new release at GitHub.

Most of the changes are bugfixes and changes that improve the debugging process. Also, the new CountingVoxelList was added to offer pointcloud density filtering on the GPU.

One major addition by Andreas Hermann is the gvl_ompl_planning example that links in GPU-Voxels and uses an OMPL planner to move a 6DOF arm model through an environment held in GPU-Voxels data structures. Take care of the README file in that examples folder to avoid issues relating to C++11 and PCL versions.

We are still investigating a couple of known issues in relation with Pascal GPUs and will release fixes for them as soon as possible.

 

Happy coding,
Christian

Update 1: Release 1.1.1 fixes a missing icl_core dependency in gvl_ompl_planning/CMakeLists.txt
Update 2: Release 1.1.2 fixes Cuda 9.1 incompatibility issues

 

Changelog for Release 1.1: New Year Release
Known issues:
- Octrees are broken on Pascal GPUs
  - confirmed on Titan Xp and GTX 1080 Ti
- the GLM in Ubuntu 16.04 has to be patched to allow usage of the visualizer.
  - see https://github.com/g-truc/glm/issues/530
  - patch for /usr/include/glm/detail/func_common.inl in packages/gpu_voxels/doc/glm_fix_issu530.patch

API breaking changes:
- GpuVoxels
  - addMap returns null-initialized shared_ptr if map already exists
  - lockSelf, lockBoth & Co removed, replaced by exception-safe lock_guard
  constructs to improve debugging
- TinyXML
  - use system version from APT package libtinyxml-dev

Major changes:
- Changes in CUDA CMake setup
  - uncomment SET(CMAKE_CXX_STANDARD 11) at the top of CMakeLists.txt to activate C++11 mode
  - set -maxrregcount=63 to avoid errors on desktop GPUs with 1024 threads per block
  - always use ICMAKER_CUDA_CPPDEFINES to pass parameters to nvcc
- Added OMPL planning example gvl_ompl_planning  (Thanks to Andreas Hermann)
  - requires C++11
  - incompatible with GPU-Voxels built with PCL 1.7
- Added model "ur10_coarse" voxelized at 9mm
- Added CountingVoxelList to offer pointcloud density filtering  (Thanks to Herbert Pietrzyk)
  - Use remove_underpopulated(minimum_count) to remove outliers
  - Use subtractFromCountingVoxelList to remove the robot and static objects
- Added BitVoxelMap collision with ProbVoxelmap
- ProbVoxelMap
  - insert() parses BitVoxelMeaning to allow freeing single voxels
  - SVCollider checks for noneButEmpty instead of isZero
- Fix CUDA 9 incompatibilities, issue 63
  - version macro
  - cub namespace
  - __ballot vs __ballot_sync

Minor changes:
- DistanceVoxelTest uses double buffering of DistanceVoxelMap to avoid flickering
- ProbVoxelMap: Speed up the clearing of ProbVoxelMap by using memset instead of ctor calls for every voxel
- C++11 fixes
  - icl_core_logging operator<< stringstream bug
  - various fixes collected by dybedal in issue 55
- VoxelList collision
  - added test cases and examples
- fixed memory leaks in TemplateVoxelList
- fixed PCL dependency of examples and helpers, see issue 61
- fix computeLinearLoad returning grid and block size 0
- added many checks after kernel launches to improve error discovery

Other changes:
- Documentation updates

Comments are closed.