Point cloud library ZED SDK与pcl::IntegralImageNormalEstimation一起使用时崩溃

Point cloud library ZED SDK与pcl::IntegralImageNormalEstimation一起使用时崩溃,point-cloud-library,eigen3,tegra,zed-sdk,Point Cloud Library,Eigen3,Tegra,Zed Sdk,我已经在Jetson TX1板上安装了ZedSDK版本1.0.0b(Tegra R24.1的32位Linux)。事实证明,当我将它与pcl::IntegralImageNormalEstimation一起使用时,由于某种奇怪的原因,它大部分时间都会崩溃 我可以把它缩小到以下简单的程序。 CMakeLists.txt cmake_minimum_required(VERSION 2.8.7) project(zed_test) IF(NOT CMAKE_BUILD_TYPE) SET(C

我已经在Jetson TX1板上安装了ZedSDK版本1.0.0b(Tegra R24.1的32位Linux)。事实证明,当我将它与pcl::IntegralImageNormalEstimation一起使用时,由于某种奇怪的原因,它大部分时间都会崩溃

我可以把它缩小到以下简单的程序。 CMakeLists.txt

cmake_minimum_required(VERSION 2.8.7)
project(zed_test)

IF(NOT CMAKE_BUILD_TYPE)
    SET(CMAKE_BUILD_TYPE Release)
ENDIF(NOT CMAKE_BUILD_TYPE)

SET(CUDA_VERSION "7.0")
find_package(CUDA ${CUDA_VERSION} REQUIRED)

find_package(ZED 1.0 REQUIRED)
find_package(PCL REQUIRED)

include_directories(
        ${CUDA_INCLUDE_DIRS}
        ${ZED_INCLUDE_DIRS}
    ${PCL_INCLUDE_DIRS}
)

link_directories(${ZED_LIBRARY_DIR})
link_directories(${CUDA_LIBRARY_DIRS})
link_directories(${PCL_LIBRARY_DIRS})

add_definitions(-std=c++11)# -m64) #-Wall)

add_executable(zed_test zed_test.cpp)

target_link_libraries(
        zed_test
        ${ZED_LIBRARIES}
        ${CUDA_LIBRARIES} ${CUDA_nppi_LIBRARY} ${CUDA_npps_LIBRARY}
        ${PCL_LIBRARIES}
    )
zed_test.cpp:

#include <cstdio>
#include <thread>

#include <pcl/point_cloud.h>
#include <pcl/point_types.h>
#include <pcl/features/integral_image_normal.h>

#include <zed/Camera.hpp>

int main(int argc, char **argv) {
    std::cout << "Started\n";
    //(1)
    typedef pcl::IntegralImageNormalEstimation<pcl::PointXYZRGB, pcl::Normal> NormalEstimator;
    NormalEstimator::Ptr ne_(new NormalEstimator);

    //(2)
    sl::zed::InitParams zed_params;
    zed_params.unit = sl::zed::UNIT::METER;
    zed_params.coordinate = sl::zed::COORDINATE_SYSTEM::RIGHT_HANDED;
    zed_params.mode = sl::zed::MODE::PERFORMANCE;
    zed_params.verbose = true;
    std::unique_ptr<sl::zed::Camera> zed(new sl::zed::Camera(sl::zed::HD720, 30));
    sl::zed::ERRCODE err = sl::zed::ERRCODE::ZED_NOT_AVAILABLE;
    while (err != sl::zed::SUCCESS) {
        err = zed->init(zed_params);
        std::cout << sl::zed::errcode2str(err);
        std::this_thread::sleep_for(std::chrono::milliseconds(2000));
    }

    //(3)
    std::cout << "\nPassed.\n";

    return 0;
}
#包括
#包括
#包括
#包括
#包括
#包括
int main(int argc,字符**argv){
std::cout init(zed_参数);
找到的最佳GPU:GM20B,ID:0
ZED SDK>>(初始化)差异模式已设置为性能
ZED SDK>>(初始化)正在创建ZED GPU内存。。。
ZED SDK>>(初始化)正在后台启动自校准。。。
ZED SDK>>(初始化)完成。。。
zed_test:/usr/local/include/eigen3/Eigen/src/SVD/JacobiSVD.h:632:const MatrixVType&Eigen::JacobiSVD::matrixV()const[with_MatrixType=Eigen::Matrix;int qr预条件=2;Eigen::JacobiSVD::MatrixVType=eigent::Matrix;typename _MatrixType::Scalar=double]:断言'computeV()&“这个JacobiSVD分解没有计算V。是你要求的吗?”“失败。”。
成功程序意外完成。
(请注意,它在到达线路(3)前死亡) 如果我对创建pcl::IntegrationImageNormalEstimation(第(1)行)或打开zed相机(第(2)行)进行注释,则不会发生崩溃。如果我交换它们,崩溃仍然存在

有人有这个问题吗?
stereolabs.com上有没有人想尝试一下解决方法?

知名度高的人可以创建一个标签ZED-SDK(来自ZED stereo camera的SDK)?这里似乎已经有很多ZED SDK特定的问题,可以说,还会有很多新的相关问题。有标签会使搜索和订阅这些问题变得更容易。谢谢。Bump!有相同的问题,但有pcl::VoxelGrid。只要有一个(堆栈或堆)在没有被调用的代码中,这一断言足以使程序崩溃:
computeV()&&&“这个JacobiSVD分解没有计算V。你问过了吗?”
GoogleResources:试过了,没有运气……可能与ARM芯片组和TX1有关?有声望的人能创建一个标签ZED-SDK吗(来自ZED stereo camera的SDK)?这里似乎已经有很多ZED SDK特定的问题,因此,可以说,将会有很多新的相关问题。有标签会使搜索和订阅这些问题变得更容易。谢谢。Bump!有相同的问题,但有pcl::VoxelGrid。只要有一个(堆栈或堆)在没有被调用的代码中,用这个断言就足以使程序崩溃:
computeV()&&“这个JacobiSVD分解没有计算V。你要求它吗?”
谷歌资源:试过了,没有运气……可能与ARM芯片组和TX1有关?
Started
ZED SDK >> (Init) Best GPU Found : GM20B , ID : 0
ZED SDK >> (Init) Disparity mode has been set to PERFORMANCE
ZED SDK >> (Init) Creating ZED GPU mem...
ZED SDK >> (Init) Starting Self-Calibration in background... 
ZED SDK >> (Init) Done...
zed_test: /usr/local/include/eigen3/Eigen/src/SVD/JacobiSVD.h:632: const MatrixVType& Eigen::JacobiSVD<MatrixType, QRPreconditioner>::matrixV() const [with _MatrixType = Eigen::Matrix<double, 3, 3>; int QRPreconditioner = 2; Eigen::JacobiSVD<MatrixType, QRPreconditioner>::MatrixVType = Eigen::Matrix<double, 3, 3>; typename _MatrixType::Scalar = double]: Assertion `computeV() && "This JacobiSVD decomposition didn't compute V. Did you ask for it?"' failed.
SUCCESSThe program has unexpectedly finished.