kwaegel / pcl Goto Github PK
View Code? Open in Web Editor NEWThis project forked from pointcloudlibrary/pcl
Point Cloud Library (PCL)
Home Page: http://www.pointclouds.org
License: Other
This project forked from pointcloudlibrary/pcl
Point Cloud Library (PCL)
Home Page: http://www.pointclouds.org
License: Other
Just realized the following message is displayed during build where openni2 is detected:
"OpenNI 2 found"
I verified this comes from cmake/Modules/FindOpenNI2.cmake
could you please change it to "OpenNI2 found" which seems more appropriate?
thank you in advance
Davide
Grabber will occasionally hang in the OpenNI2Device destructor on the line depth_video_stream_->destroy ();
Hi,
It seems there is an issue with multiple devices running simultaneously.
The XYZ values of the points clouds are corrects, but the RGB colors sometimes are not.
I temporarily fix the issue by adding a global mutex in "imageDepthImageCallback" of "OpenNI2Grabber" class, but I don't think it is the right way to fix it.
Here is what I've done
// defining a global mute
boost::mutex verybadpatch_mutex;
void
pcl::io::OpenNI2Grabber::imageDepthImageCallback (const Image::Ptr &image,
const DepthImage::Ptr &depth_image)
{
// syncing with other running devices
boost::mutex::scoped_lock lock (verybadpatch_mutex);
// check if we have color point cloud slots
if (point_cloud_rgb_signal_->num_slots () > 0)
Line 299 target_link_libraries("${LIB_NAME}" "${PNG_LIBRARY}")
should be
target_link_libraries("${LIB_NAME}" ${PNG_LIBRARY})
Branch: openni2_pullrequest
Commit: ff807ef
Compiler: Visual Studio 2010
Initial condition: PCL is configurated so that only OpenNi2 is enabled (OpenNi is disabled). However, both versions are installed in the system and pcl_config.h contains
#define HAVE_OPENNI 1
#define HAVE_OPENNI2 1
Summary: pcl_io is failing to link because of unresolved symbols in pcd_grabber.obj.
Error message:
pcd_grabber.obj : error LNK2001: unresolved external symbol "public: virtual bool __cde openni_wrapper::ImageRGB24::isResizingSupported(unsigned int,signed int,unsigned int,unsigned int)const " (?isResizingSupported@ImageRGB24@openni_wrper@@UEBA_NIIII@Z)
pcd_grabber.obj : error LNK2001: unresolved external symbol "public: virtual void __cde openni_wrapper::ImageRGB24::fillRGB(unsigned int,unsigned int,signed char *,unsigned int)const " (?fillRGB@ImageRGB24@openni_wrapper@@UEBAXIIPEAEI@Z)
pcd_grabber.obj : error LNK2001: unresolved external symbol "public: virtual void __cdecl opei_wrapper::ImageRGB24::fillGrayscale(signed int,unsigned int,signed char *,unsigned int)const " (?fillGrayscale@ImageRGB24@openni_wrapper@@UEBAXIIPEAEI@Z)
pcd_grabber.obj : error LNK2019: unresolved external symbol "public: virtual __cdecl openni_wrapper::ImageRGB24::~ImageRGB24(void)" ?1ImageRGB24@openni_wrapper@@UEAA@XZ) referenced in function "public: virtual void * __cdecl openni_wrapper::ImageRGB24::`scalar deleting destructor'(signed int)" (??_GImageRGB24@openni_wrapper@@UEAAPEAXI@Z)
Some toughts:
openni_wrapper::ImageRGB24
is mistakenly used instead of pcl::io::ImageRGB24
.ifdef HAVE_OPENNI2
in pcd_grabber.h similar to ifdef HAVE_OPENNI
.An easy fix is to configure PCL with both OPENNI and OPENNI2 enabled.
while cross-compiling pcl i get the following message:
-- Could NOT find OpenNI2 (missing: OPENNI2_INCLUDE_DIRS)
inside the sysroot I verified the existence of "usr/include/openni2" and its files: OpenNI.h in particular, since "cmake/Modules/FindOpenNI2.cmake" relies on the following:
find_path(OPENNI2_INCLUDE_DIRS OpenNI.h
PATHS "$ENV{OPENNI2_INCLUDE${OPENNI2_SUFFIX}}" # Linux/Windows default path, Win64 needs '64' suffix
)
I've changed the above with this ("openni2/OpenNI.h" instead of "OpenNI.h")
find_path(OPENNI2_INCLUDE_DIRS openni2/OpenNI.h
PATHS "$ENV{OPENNI2_INCLUDE${OPENNI2_SUFFIX}}" # Linux/Windows default path, Win64 needs '64' suffix
)
and openni2 is now detected correctly.
found some (unofficial) deb packages dor openni2 and they all seem to have Openni.h inside "usr/include/openni2"
regards,
Davide
The structs depth_parameters_
and rgb_parameters_
are never set, thus the getter don't work. Change to use the method in convertTo[...] methods, where values are returned from the OpenNI2 API unless overridden by external calibration.
Hi kwaegel,
Sorry for posting this question in the issue about Openni2 device destructor. According to your advice, I setup Boost 1.55 on my computer, but I found the content in files point_types.h are all the same no matter in branches of master, kinfu and openni2, then the build are all failed when I tried to compile kinfu_app.cpp.
The compile error are: 'type' is not a member of 'boost::mpl::contains'(in file of point_types.h), and 'type' is not a member of 'pcl::traits::fieldList'(in file of point_traits.h).
I checked the contain.hpp in boost directory, there is indeed no definition of 'type'. Could you please help me to solve this problem? Thanks very much!
io/CMakeLists.txt
contains an installation rule for OpenNI2:
PCL_ADD_INCLUDES("${SUBSYS_NAME}" "${SUBSYS_NAME}/openni2_camera" ${OPENNI2_INCLUDES})
However, openni2_grabber.h
contains following includes
#include <pcl/io/openni2/openni2_device_manager.h>
#include <pcl/io/openni2/openni2_device.h>
3rd-party application that tries to use OpenNI2 in PCL will fail to build. Either installation rule or header should be changed.
Since the actual folder name for headers is openni2
, it seems that changing installation rule is easier.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.