Next round: Release 0.8 is available!
After a longer time without any news, here is a pretty long list of updates! We are now compatible with CUDA 7.5 (and will officially only support that from now on). On the content side, we implemented Voxellists and extended the Bitvoxel-Collision-Checks. As the lists only safe occupied Voxels, they give a huge speed-up when dealing with sparse data. So especially the combination of representing a Robot and its plans in Voxellists and look them up in the Octree of the live environment is a good practice!
Thanks to Felix Mauch it is now possible to have Bitvoxel-Collision checks that regard a “Bit-Margin”. So if the bits represent a point in time, this way a “fuzzy” collision check can be realized.
We have also done a lot of restructuring and optimization work to improve the overall software quality, fixed a bunch of bugs, and dropped our own copy of the CUB library in favour of Thrusts copy of the lib, that gets installed with CUDA.
Within FZI we have a growing list of use-cases, demos and extensions that heavily rely on GPU-Voxels. So I hope to publish some news on that soon, including motion planning with motion primitives, grasp planning and scheduling tasks in multi-robot scenarios.
Hope you like it and that it will help in improving your robots!
Andreas
V 0.8 (2015-11-09): =================== - Compiles with CUDA 7.5 - Added Voxellists as new Datatype - Huge speedup compared to Voxelmaps with sparse data. - Added Bit-Shifting-Collisionchecks (Thanks to Felix Mauch) - Added Bit-Margin for Bitvoxel Collisionchecks (Thanks to Felix Mauch) - General: - Removed superficial memory allocation from Voxelmap. - Added script to automatize binvox mesh voxelization - Improved PrimitiveArrays update speed when number of primitives stays constant. - Removed heaps of compiler warnings (Thanks to Christian Juelg) - Various Bugfixes, mainly in collision Kernels - Renamings / moved code: - HighLevel-API: Added "merge" function. - CudaMath now longer requires an instance. Now it is a namespace. - VoxelType ==> BitVoxelMeaning - Fixed standard CTORs of basic datatypes for CUDA shared memory allocation. - Moved voxels to gpu_voxels namespace - Removed seom missleading typedefs - Moved Voxel definitions to own subfolder. - Removed dead code fragments. - Octree: - Adapted to new API. - Removed its own voxellist. Now uses more general Voxellist. - Removed VoxelTypeFlags and replaced them by more general bitvectors. - Simplified Octree selftests and triggered them by Boost-Test. - Dropped CUB lib. Now using CUDAs version from Thrust. - Robot representation: - Enhanced robot interface (jointnames and min max angles). - Restructured inheritance of robot implementations. - Fixed install of robot headers. - Visualizer: - Updated Visualizer to new API. - Added new function to move cam in plane. - Switched from Octree to more general Cubelist interface, as this can also be used to visualize Voxellists. - Visualizer now cleans Shared-Mem files. - Added Script to generate color gradient config files for visualizer. - Fixed a bug in drawing the grid - Example programs and Testcases: - Updated examples to new API. - Added more Boost-Tests. - Reordered model files. - icl_core and basic libs: - Added performance monitor docu - Some new cmake magic - Improved ringbuffer - New Doxygen version. - Tinyxml cmake updated. - Added missing Findscripts for OpenNi.