Comments (12)
how to use the cupoch c++ library
the following steps work in ubuntu1804
install cupoch with 3rdparty libs
add some install command to third_party/CMakeLists.txt
# Installation
install(TARGETS ${FLANN_LIBRARIES}
${fmt_LIBRARIES}
${rmm_LIBRARIES}
${liblzf_LIBRARIES}
${rply_LIBRARIES}
EXPORT ${PROJECT_NAME}3rdTargets
RUNTIME DESTINATION ${CUPOCH_INSTALL_BIN_DIR}
LIBRARY DESTINATION ${CUPOCH_INSTALL_LIB_DIR}
ARCHIVE DESTINATION ${CUPOCH_INSTALL_LIB_DIR}
)
install(DIRECTORY ${flann_INCLUDE_DIRS}
${fmt_INCLUDE_DIRS}
${cnmem_INCLUDE_DIRS}
${rmm_INCLUDE_DIRS}
${liblzf_INCLUDE_DIRS}
${rply_INCLUDE_DIRS}
DESTINATION ${CUPOCH_INSTALL_INCLUDE_DIR}/../
)
I will not use the python interface so
cmake .. -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/opt/cupoch/cupoch -DBUILD_UNIT_TESTS=OFF -DBUILD_PYBIND11=OFF -DBUILD_PYTHON_MODULE=OFF
make -j
sudo make install
write a new cmake file
set vars
# root dirs
set(CUPOCH_ROOT "/opt/cupoch/cupoch/")
# 增加对cupoch支持
find_package(PkgConfig QUIET)
find_package(pybind11 QUIET)
include(GenerateExportHeader)
if (PKGCONFIG_FOUND)
pkg_search_module(EIGEN3 eigen3>=3.2.7 QUIET)
pkg_search_module(GLFW glfw3 QUIET)
pkg_search_module(GLEW glew QUIET)
pkg_search_module(JSONCPP jsoncpp>=1.7.0 QUIET)
pkg_search_module(PNG libpng>=1.6.0 QUIET)
pkg_search_module(JPEG_TURBO libturbojpeg QUIET)
endif (PKGCONFIG_FOUND)
set(CUPOCH_INCLUDE_DIRS ${CUPOCH_ROOT}/include
${CUPOCH_ROOT}/third_party
${CUPOCH_ROOT}/third_party/rmm/include
${CUPOCH_ROOT}/third_party/cnmem/include
${CUPOCH_ROOT}/third_party/fmt/include
${CUPOCH_ROOT}/third_party/liblzf/include
${PNG_INCLUDE_DIRS}
)
set(CUPOCH_LIBRARY_DIRS ${CUPOCH_ROOT}/lib)
set(CUPOCH_LIBRARIES
cupoch_camera
cupoch_collision
cupoch_geometry
cupoch_integration
cupoch_io
cupoch_odometry
cupoch_planning
cupoch_registration
cupoch_utility
cupoch_visualization
tinyobjloader
turbojpeg
stdgpu
flann_cuda_s
fmt
rmm
liblzf
rply
${CUDA_LIBRARIES}
${CUDA_CUBLAS_LIBRARIES}
${CUDA_curand_LIBRARY}
${PNG_LIBRARIES}
)
set(CUPOCH_NVCC_FLAGS
-use_fast_math
--expt-relaxed-constexpr
--expt-extended-lambda
--default-stream per-thread
--use_fast_math
-Xcudafe "--diag_suppress=integer_sign_change"
-Xcudafe "--diag_suppress=partial_override"
-Xcudafe "--diag_suppress=virtual_function_decl_hidden"
)
if(CMAKE_BUILD_TYPE STREQUAL "Debug" OR CMAKE_BUILD_TYPE STREQUAL "RelWithDebInfo" )
list(APPEND CUPOCH_NVCC_FLAGS
-G;-g
)
endif()
set(CUPOCH_DEFINITIONS
-DFLANN_USE_CUDA
-DUSE_RMM
)
using the cupoch
APPEND_TARGET_ARCH_FLAGS()
set(CUDA_NVCC_FLAGS ${CUDA_NVCC_FLAGS}
${CUPOCH_NVCC_FLAGS}
)
add_definitions(${CUPOCH_DEFINITIONS})
link_directories(${CUPOCH_LIBRARY_DIRS})
link_libraries(${CUPOCH_LIBRARIES})
add_executable(${EXE_NAME} src/${EXE_NAME}_node.cpp src/${EXE_NAME}.cpp)
todo
You can write a FindCUPOCH.cmake as well
from cupoch.
thank you ,but I still can't use Cupoch directly, The error is that there is a problem with RMM. Do you have a similar problem?
You could find it more in perception_cupoch
Thanks.
from cupoch.
So i've managed to piece together that what was missing was:
link_directories("path__to__cupoch__: /cupoch/build/lib")
find_package(fmt REQUIRED)
find_package(flann REQUIRED)
install(TARGETS my_prog DESTINATION lib/${PROJECT_NAME})
target_link_libraries(my_prog
cupoch_geometry
cupoch_utility
cupoch_registration
cupoch_visualization
fmt
flann_cuda_s
)
However, now I am running into an issue with memory allocation.
given the function that converts ROS2 sensor_msgs::msgs::Pointcloud2 Messages to cupoch::geometry::Pointcloud (I wrote this, but i think you also have such a function hidden somewhere? ) :
cupoch::geometry::PointCloud poseGraph::prepare_pointcloud(const sensor_msgs::msg::PointCloud2 &msg){
thrust::host_vector<Eigen::Vector3f> source_cloud(msg.width);
for (unsigned long j = 0; j < msg.data.size(); j = j + 16) { // Assumes XYZI content
Eigen::Vector3f z;
for (unsigned int k = 0; k < 3; k++) // Assumes 4 steps of int8 per float ( Skips the I of XYZI component)
{
u_char v[] = {msg.data[j + k * 4 + 0],
msg.data[j + k * 4 + 1],
msg.data[j + k * 4 + 2],
msg.data[j + k * 4 + 3]};
float w;
memcpy(&w, &v, sizeof(v));
z[k] = w;
}
source_cloud[j/16];
}
return cupoch::geometry::PointCloud(source_cloud);
}
now using:
void poseGraph::query_icp(const unsigned long idx_a,
const unsigned long idx_b,
const Vertex &vertex) {
auto pointcloud_b = this->pointcloud_database[idx_b]; // type sensor_msgs::msg::Pointcloud2
auto pointcloud_a = this->pointcloud_database[idx_a];
cupoch::geometry::PointCloud pc_a = this->prepare_pointcloud(pointcloud_a);
cupoch::geometry::PointCloud pc_b = this->prepare_pointcloud(pointcloud_a); // <---- Adding this line crashes the system.
/// If i remove the line, then such errors do not occur.
}
Error:
CUDA Error detected. cudaErrorInvalidValue invalid argument
pose_graph: /home/shipborn/Documents/dashing/main/ros2/src/external/cupoch/third_party/rmm/include/rmm/mr/device/cuda_memory_resource.hpp:83: virtual void rmm::mr::cuda_memory_resource::do_deallocate(void*, std::size_t, cudaStream_t): Assertion `status__ == cudaSuccess' failed.
Signal: SIGABRT (Aborted)
from cupoch.
Hi @Shipborn ,
Thank you for your feedback.
cmake install
is currently not supported.
I plan to support it in the future.
For the error, please initialize the allocator when you run the program.
cupoch::utility::InitializeAllocator();
from cupoch.
dear Neka,
Thank you for your reply.
Initializing the allocator does not solve the problem. It still throws me the same error.
The default InitializeAllocator() function does nothing?
The implementation is:
inline void InitializeAllocator(
rmmAllocationMode_t mode = CudaDefaultAllocation,
size_t initial_pool_size = 0,
bool logging = false,
const std::vector<int> &devices = {}) {}
The function I'm trying to call repeatedly is your RegistrationICP method.
void poseGraph::query_icp(const unsigned long idx_a,
const unsigned long idx_b,
const Vertex &vertex) {
sensor_msgs::msg::PointCloud2 pointcloud_b = this->pointcloud_database[idx_b];
sensor_msgs::msg::PointCloud2 pointcloud_a = this->pointcloud_database[idx_a];
////-------------------- This point crashes at the second entry into this function.--------------
thrust::host_vector<Eigen::Vector3f> source_cloud(pointcloud_a.width); // <------------------------------------------
for (unsigned long j = 0; j < pointcloud_a.data.size(); j = j + 16) {
Eigen::Vector3f z;
for (unsigned int k = 0; k < 3; k++) // Assumes 4 steps of int8 per float
{
u_char v[] = {pointcloud_a.data[j + k * 4 + 0],
pointcloud_a.data[j + k * 4 + 1],
pointcloud_a.data[j + k * 4 + 2],
pointcloud_a.data[j + k * 4 + 3]};
float w;
memcpy(&w, &v, sizeof(v));
z[k] = w;
}
source_cloud[j/16] = z;
}
auto source = std::make_shared<cupoch::geometry::PointCloud>(source_cloud);
thrust::host_vector<Eigen::Vector3f> target_cloud(pointcloud_b.width);
for (unsigned long j = 0; j < pointcloud_b.data.size(); j = j + 16) {
Eigen::Vector3f y;
for (unsigned int k = 0; k < 3; k++) // Assumes 4 steps of int8 per float
{
u_char v[] = {pointcloud_b.data[j + k * 4 + 0],
pointcloud_b.data[j + k * 4 + 1],
pointcloud_b.data[j + k * 4 + 2],
pointcloud_b.data[j + k * 4 + 3]};
float w;
memcpy(&w, &v, sizeof(v));
y[k] = w;
}
target_cloud[j/16] = y;
}
auto target = std::make_shared<cupoch::geometry::PointCloud>(target_cloud);
auto res = cupoch::registration::RegistrationICP(
*source,
*target,
0.20);
this works, but only the first loop. I am running this function multiple times and it always executes fine the first loop. but then crashes somewhere in the 2 - 4th loop. The error thrown is:
corrupted size vs. prev_size
Signal: SIGABRT (Aborted)
or:
free(): invalid pointer
Signal: SIGABRT (Aborted)
I do call your initializer in the main function:
int main(int argc, char **argv) {
cupoch::utility::InitializeAllocator();
rclcpp::init(argc, argv);
rclcpp::executors::SingleThreadedExecutor executor;
auto node = std::make_shared<poseGraph>();
executor.add_node(node);
executor.spin();
rclcpp::shutdown();
return 0;
}
I would like to know where the error comes from when the function runs for a second time? I assumed that the end of the function it is all properly freed and garbage collected?
Greetings and thank you very much for your time.
from cupoch.
Thank you for the feedback!
Can I get the source code that I can run?
I'd like to debug it in my environment.
from cupoch.
If it's difficult to share the code, is it possible to use gdb or something similar to find out more about debugging information?
from cupoch.
how to use the cupoch c++ library
the following steps work in ubuntu1804
install cupoch with 3rdparty libs
add some install command to
third_party/CMakeLists.txt
# Installation install(TARGETS ${FLANN_LIBRARIES} ${fmt_LIBRARIES} ${rmm_LIBRARIES} ${liblzf_LIBRARIES} ${rply_LIBRARIES} EXPORT ${PROJECT_NAME}3rdTargets RUNTIME DESTINATION ${CUPOCH_INSTALL_BIN_DIR} LIBRARY DESTINATION ${CUPOCH_INSTALL_LIB_DIR} ARCHIVE DESTINATION ${CUPOCH_INSTALL_LIB_DIR} ) install(DIRECTORY ${flann_INCLUDE_DIRS} ${fmt_INCLUDE_DIRS} ${cnmem_INCLUDE_DIRS} ${rmm_INCLUDE_DIRS} ${liblzf_INCLUDE_DIRS} ${rply_INCLUDE_DIRS} DESTINATION ${CUPOCH_INSTALL_INCLUDE_DIR}/../ )
I will not use the python interface so
cmake .. -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/opt/cupoch/cupoch -DBUILD_UNIT_TESTS=OFF -DBUILD_PYBIND11=OFF -DBUILD_PYTHON_MODULE=OFF make -j sudo make install
write a new cmake file
set vars
# root dirs set(CUPOCH_ROOT "/opt/cupoch/cupoch/") # 增加对cupoch支持 find_package(PkgConfig QUIET) find_package(pybind11 QUIET) include(GenerateExportHeader) if (PKGCONFIG_FOUND) pkg_search_module(EIGEN3 eigen3>=3.2.7 QUIET) pkg_search_module(GLFW glfw3 QUIET) pkg_search_module(GLEW glew QUIET) pkg_search_module(JSONCPP jsoncpp>=1.7.0 QUIET) pkg_search_module(PNG libpng>=1.6.0 QUIET) pkg_search_module(JPEG_TURBO libturbojpeg QUIET) endif (PKGCONFIG_FOUND) set(CUPOCH_INCLUDE_DIRS ${CUPOCH_ROOT}/include ${CUPOCH_ROOT}/third_party ${CUPOCH_ROOT}/third_party/rmm/include ${CUPOCH_ROOT}/third_party/cnmem/include ${CUPOCH_ROOT}/third_party/fmt/include ${CUPOCH_ROOT}/third_party/liblzf/include ${PNG_INCLUDE_DIRS} ) set(CUPOCH_LIBRARY_DIRS ${CUPOCH_ROOT}/lib) set(CUPOCH_LIBRARIES cupoch_camera cupoch_collision cupoch_geometry cupoch_integration cupoch_io cupoch_odometry cupoch_planning cupoch_registration cupoch_utility cupoch_visualization tinyobjloader turbojpeg stdgpu flann_cuda_s fmt rmm liblzf rply ${CUDA_LIBRARIES} ${CUDA_CUBLAS_LIBRARIES} ${CUDA_curand_LIBRARY} ${PNG_LIBRARIES} ) set(CUPOCH_NVCC_FLAGS -use_fast_math --expt-relaxed-constexpr --expt-extended-lambda --default-stream per-thread --use_fast_math -Xcudafe "--diag_suppress=integer_sign_change" -Xcudafe "--diag_suppress=partial_override" -Xcudafe "--diag_suppress=virtual_function_decl_hidden" ) if(CMAKE_BUILD_TYPE STREQUAL "Debug" OR CMAKE_BUILD_TYPE STREQUAL "RelWithDebInfo" ) list(APPEND CUPOCH_NVCC_FLAGS -G;-g ) endif() set(CUPOCH_DEFINITIONS -DFLANN_USE_CUDA -DUSE_RMM )
using the cupoch
APPEND_TARGET_ARCH_FLAGS() set(CUDA_NVCC_FLAGS ${CUDA_NVCC_FLAGS} ${CUPOCH_NVCC_FLAGS} ) add_definitions(${CUPOCH_DEFINITIONS}) link_directories(${CUPOCH_LIBRARY_DIRS}) link_libraries(${CUPOCH_LIBRARIES}) add_executable(${EXE_NAME} src/${EXE_NAME}_node.cpp src/${EXE_NAME}.cpp)
todo
You can write a FindCUPOCH.cmake as well
how to use the cupoch c++ library
the following steps work in ubuntu1804
install cupoch with 3rdparty libs
add some install command to
third_party/CMakeLists.txt
# Installation install(TARGETS ${FLANN_LIBRARIES} ${fmt_LIBRARIES} ${rmm_LIBRARIES} ${liblzf_LIBRARIES} ${rply_LIBRARIES} EXPORT ${PROJECT_NAME}3rdTargets RUNTIME DESTINATION ${CUPOCH_INSTALL_BIN_DIR} LIBRARY DESTINATION ${CUPOCH_INSTALL_LIB_DIR} ARCHIVE DESTINATION ${CUPOCH_INSTALL_LIB_DIR} ) install(DIRECTORY ${flann_INCLUDE_DIRS} ${fmt_INCLUDE_DIRS} ${cnmem_INCLUDE_DIRS} ${rmm_INCLUDE_DIRS} ${liblzf_INCLUDE_DIRS} ${rply_INCLUDE_DIRS} DESTINATION ${CUPOCH_INSTALL_INCLUDE_DIR}/../ )
I will not use the python interface so
cmake .. -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/opt/cupoch/cupoch -DBUILD_UNIT_TESTS=OFF -DBUILD_PYBIND11=OFF -DBUILD_PYTHON_MODULE=OFF make -j sudo make install
write a new cmake file
set vars
# root dirs set(CUPOCH_ROOT "/opt/cupoch/cupoch/") # 增加对cupoch支持 find_package(PkgConfig QUIET) find_package(pybind11 QUIET) include(GenerateExportHeader) if (PKGCONFIG_FOUND) pkg_search_module(EIGEN3 eigen3>=3.2.7 QUIET) pkg_search_module(GLFW glfw3 QUIET) pkg_search_module(GLEW glew QUIET) pkg_search_module(JSONCPP jsoncpp>=1.7.0 QUIET) pkg_search_module(PNG libpng>=1.6.0 QUIET) pkg_search_module(JPEG_TURBO libturbojpeg QUIET) endif (PKGCONFIG_FOUND) set(CUPOCH_INCLUDE_DIRS ${CUPOCH_ROOT}/include ${CUPOCH_ROOT}/third_party ${CUPOCH_ROOT}/third_party/rmm/include ${CUPOCH_ROOT}/third_party/cnmem/include ${CUPOCH_ROOT}/third_party/fmt/include ${CUPOCH_ROOT}/third_party/liblzf/include ${PNG_INCLUDE_DIRS} ) set(CUPOCH_LIBRARY_DIRS ${CUPOCH_ROOT}/lib) set(CUPOCH_LIBRARIES cupoch_camera cupoch_collision cupoch_geometry cupoch_integration cupoch_io cupoch_odometry cupoch_planning cupoch_registration cupoch_utility cupoch_visualization tinyobjloader turbojpeg stdgpu flann_cuda_s fmt rmm liblzf rply ${CUDA_LIBRARIES} ${CUDA_CUBLAS_LIBRARIES} ${CUDA_curand_LIBRARY} ${PNG_LIBRARIES} ) set(CUPOCH_NVCC_FLAGS -use_fast_math --expt-relaxed-constexpr --expt-extended-lambda --default-stream per-thread --use_fast_math -Xcudafe "--diag_suppress=integer_sign_change" -Xcudafe "--diag_suppress=partial_override" -Xcudafe "--diag_suppress=virtual_function_decl_hidden" ) if(CMAKE_BUILD_TYPE STREQUAL "Debug" OR CMAKE_BUILD_TYPE STREQUAL "RelWithDebInfo" ) list(APPEND CUPOCH_NVCC_FLAGS -G;-g ) endif() set(CUPOCH_DEFINITIONS -DFLANN_USE_CUDA -DUSE_RMM )
using the cupoch
APPEND_TARGET_ARCH_FLAGS() set(CUDA_NVCC_FLAGS ${CUDA_NVCC_FLAGS} ${CUPOCH_NVCC_FLAGS} ) add_definitions(${CUPOCH_DEFINITIONS}) link_directories(${CUPOCH_LIBRARY_DIRS}) link_libraries(${CUPOCH_LIBRARIES}) add_executable(${EXE_NAME} src/${EXE_NAME}_node.cpp src/${EXE_NAME}.cpp)
todo
You can write a FindCUPOCH.cmake as well
how to use the cupoch c++ library
the following steps work in ubuntu1804
install cupoch with 3rdparty libs
add some install command to
third_party/CMakeLists.txt
# Installation install(TARGETS ${FLANN_LIBRARIES} ${fmt_LIBRARIES} ${rmm_LIBRARIES} ${liblzf_LIBRARIES} ${rply_LIBRARIES} EXPORT ${PROJECT_NAME}3rdTargets RUNTIME DESTINATION ${CUPOCH_INSTALL_BIN_DIR} LIBRARY DESTINATION ${CUPOCH_INSTALL_LIB_DIR} ARCHIVE DESTINATION ${CUPOCH_INSTALL_LIB_DIR} ) install(DIRECTORY ${flann_INCLUDE_DIRS} ${fmt_INCLUDE_DIRS} ${cnmem_INCLUDE_DIRS} ${rmm_INCLUDE_DIRS} ${liblzf_INCLUDE_DIRS} ${rply_INCLUDE_DIRS} DESTINATION ${CUPOCH_INSTALL_INCLUDE_DIR}/../ )
I will not use the python interface so
cmake .. -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/opt/cupoch/cupoch -DBUILD_UNIT_TESTS=OFF -DBUILD_PYBIND11=OFF -DBUILD_PYTHON_MODULE=OFF make -j sudo make install
write a new cmake file
set vars
# root dirs set(CUPOCH_ROOT "/opt/cupoch/cupoch/") # 增加对cupoch支持 find_package(PkgConfig QUIET) find_package(pybind11 QUIET) include(GenerateExportHeader) if (PKGCONFIG_FOUND) pkg_search_module(EIGEN3 eigen3>=3.2.7 QUIET) pkg_search_module(GLFW glfw3 QUIET) pkg_search_module(GLEW glew QUIET) pkg_search_module(JSONCPP jsoncpp>=1.7.0 QUIET) pkg_search_module(PNG libpng>=1.6.0 QUIET) pkg_search_module(JPEG_TURBO libturbojpeg QUIET) endif (PKGCONFIG_FOUND) set(CUPOCH_INCLUDE_DIRS ${CUPOCH_ROOT}/include ${CUPOCH_ROOT}/third_party ${CUPOCH_ROOT}/third_party/rmm/include ${CUPOCH_ROOT}/third_party/cnmem/include ${CUPOCH_ROOT}/third_party/fmt/include ${CUPOCH_ROOT}/third_party/liblzf/include ${PNG_INCLUDE_DIRS} ) set(CUPOCH_LIBRARY_DIRS ${CUPOCH_ROOT}/lib) set(CUPOCH_LIBRARIES cupoch_camera cupoch_collision cupoch_geometry cupoch_integration cupoch_io cupoch_odometry cupoch_planning cupoch_registration cupoch_utility cupoch_visualization tinyobjloader turbojpeg stdgpu flann_cuda_s fmt rmm liblzf rply ${CUDA_LIBRARIES} ${CUDA_CUBLAS_LIBRARIES} ${CUDA_curand_LIBRARY} ${PNG_LIBRARIES} ) set(CUPOCH_NVCC_FLAGS -use_fast_math --expt-relaxed-constexpr --expt-extended-lambda --default-stream per-thread --use_fast_math -Xcudafe "--diag_suppress=integer_sign_change" -Xcudafe "--diag_suppress=partial_override" -Xcudafe "--diag_suppress=virtual_function_decl_hidden" ) if(CMAKE_BUILD_TYPE STREQUAL "Debug" OR CMAKE_BUILD_TYPE STREQUAL "RelWithDebInfo" ) list(APPEND CUPOCH_NVCC_FLAGS -G;-g ) endif() set(CUPOCH_DEFINITIONS -DFLANN_USE_CUDA -DUSE_RMM )
using the cupoch
APPEND_TARGET_ARCH_FLAGS() set(CUDA_NVCC_FLAGS ${CUDA_NVCC_FLAGS} ${CUPOCH_NVCC_FLAGS} ) add_definitions(${CUPOCH_DEFINITIONS}) link_directories(${CUPOCH_LIBRARY_DIRS}) link_libraries(${CUPOCH_LIBRARIES}) add_executable(${EXE_NAME} src/${EXE_NAME}_node.cpp src/${EXE_NAME}.cpp)
todo
You can write a FindCUPOCH.cmake as well
thank you ,but I still can't use Cupoch directly, The error is that there is a problem with RMM. Do you have a similar problem?
from cupoch.
@xiaopeige Hi, the compiling issue with RMM happens when you use cupoch that > 0.1.7, which upgrade thirdparty of rmm.
You could use this fat source of cupoch, which based on the version of 0.1.7
Thanks.
Edit, with cupoch over 0.1.7, you could linking without librmm, so you could remove rmm
in cmake files.
from cupoch.
Dear @neka-nat,
I was wondering if there has been a change to having "official" support for "sudo make install" of your package and then using it in C++ projects?
Ideally, one would only need to
find_package(cupoch REQUIRED)
install(TARGETS my_prog DESTINATION lib/${PROJECT_NAME})
target_link_libraries(my_prog
cupoch
)
Our intend is to use your libraries inside a docker container while using ROS2.
Greetings
from cupoch.
@dHofmeister your requirement is related with ZhenshengLee/perception_cupoch#3
https://github.com/ZhenshengLee/perception_cupoch/tree/noetic#cupoch this will help to use cupoch with ros2 and cpp.
ros2cuda/cupoch-fat@20d9cb5
ros2cuda/cupoch-fat@61aa98c
ros2cuda/cupoch-fat@352f39a
these are useful custom changes to make cupoch cpp friendly.
I'll try to find sometime to merge this.
from cupoch.
@ZhenshengLee Thank you.
I will try and compile it in the nvidia/cuda:11.2.0-devel-ubuntu18.04 docker image
from cupoch.
Related Issues (20)
- Redefinition problem of 3rd party lib when use Cupoch side by side with Open3D
- Outlier Removal Not working HOT 1
- Poisson's surface reconstruction
- Getting cudaErrorMemoryAllocation out of memory HOT 6
- fastglobalregistration.cu have error HOT 1
- icp TransformationEstimationPointToPlane yields different result compare to open3d
- stdgpu::vector::size : Size out of bounds: -120 not in [0, 17527]. Clamping to 0 HOT 1
- Building SHARED_LIBS and run registration_cuda will crash.
- Implementation of LaserScanBuffer::CreateFromPointCloud(pointcloud_to_laserscan)
- Unable to Read Binary PLY File
- speed performace VS open3d HOT 1
- Error: OS call failed or operation not supported on this OS phong_shader.cu:330 HOT 1
- Check collision between a mesh and a set of points.
- The result of using ClusterDBSCAN() is wrong, it treats each point as a cluster HOT 4
- compile C++ static lib fail (master-v0.2.8.1), content of src/cupoch/visualization/shader/shader.h is wrong HOT 4
- registration_ransac_based_on_feature_matching
- cupoch is slower than open3d-cpu and open3d-gpu HOT 2
- How to set point cloud as numpy array HOT 2
- ICP algorithm have CUDA version? HOT 3
- MemoryError cph.initialize_allocator(cph.PoolAllocation, 1000000000) HOT 5
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from cupoch.