Giter VIP home page Giter VIP logo

livox_automatic_calibration's Introduction

Livox Automatic Calibration Tools v0.1 Quick Start Guide

中文文档

Introduction

In order to solve the calibration problem, Livox provides an automatic calibration tool. This technology mainly relies on the isomorphic constraint assumption model of the environment to realize automatic calibration, and only needs to use the original point cloud data of the base LiDAR and target LiDAR. Our tool first mapping the environment by using the Base LiDAR data. Then we use the target LiDAR data to continuously iteratively register to the reconstructed map, relying on the constant assumption of the rigidity of geometric structure to continuously reduce the matching error until the algorithm converges And meets the rigidity invariant characteristic of the calibration matrix (six parallel lines). Finally, a consensus algorithm is used to calculate the final calibration matrix.

image
Fig.1 Red: Base LiDAR mapping result, Green: Target LiDAR automatic calibration

Prerequisites

Cmake, PCL1.7, Eigen

We recommended to install ROS directly, which including the above libraries

sudo apt-get install ros-kinetic-cv-bridge ros-kinetic-tf ros-kinetic-message-filters ros-kinetic-image-transport

Compile


mkdir build
cd build
cmake ..
make

This operation will generate three files, namely mapping, calibration, fitline 

  • mapping: Mapping Tool  

  • calibration: Automatic Calibration Tool

  • fitline: Fit the calibration parameters and calculate the final calibration matrix and Quaternion  

Run

1. Prepare .pcd pointcloud data for calibration  

  • Put the base LiDAR data into: data/Base_LiDAR_Frames/.pcd (Use 100000.pcd as the first frame file name, and the subsequent frames are accumulated upward)

  • Put the target LiDAR data into: data/Target_LiDAR_Frames/.pcd (Use 100000.pcd as the first frame file name, and the subsequent frames are accumulated upward)

  • Put the initial matrix data into: data/Init_Matrix.txt

Note: The base LiDAR data and the target LiDAR data need to be synchronized in time as much as possible, and the file name and time stamp correspond to synchronization.

Download example data set
Target-LiDAR-Frames
Base_LiDAR_Frames

2. run

cd livox_calibration
cp run.sh build/
cd build
sh run.sh

The script first starts the visualize mapping program mapping,Use base LiDAR to build a submap. After that, the script starts calibration program to automatic calibration target LiDAR to base LiDAR,estimated the calibration parameters for each frames. Finally, the script launchs the Curve fitter fitline,to estimate the final parameter matrix.

image Fig.2 Out put result of example data set

NOTE:

  • Must ensure the data synchronization between sensors
  • Must ensure the precision of base LiDAR mapping result
  • The movement of the data collection vehicle or platform must be as slow as possible, and we recommended to correct the motion distortion between each frames to ensure the final accuracy
  • The accurate initial external parameter matrix is not needed, but it should be roughly aligned to ensure the final accuracy as much as possible
  • For Mid-40, Horizon models, the converted PCD file refers to 100ms as one frame

Support

You can get support from Livox with the following methods:

  • Send email to [email protected] with a clear description of your problem and your setup
  • Github Issues

Citation

This code is based on the research below:

@article{gong2018target,
title={A Target-Free Automatic Self-Calibration Approach for Multibeam Laser Scanners},
author={Gong, Zheng and Wen, Chenglu and Wang, Cheng and Li, Jonathan},
journal={IEEE Transactions on Instrumentation and Measurement},
volume={67},
number={1},
pages={238--240},
year={2018},
publisher={IEEE}
   }
   

Developer: Livox

livox_automatic_calibration's People

Contributors

livox-sdk avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

livox_automatic_calibration's Issues

关于用角度直接求平均可能带来的问题

代码里面直接用角度deg相加/次数 来求平均,角度为-180-180度。如果当前外参角度在180度附近,会出现角度在-180度到180度直接摇摆的情况,导致此时均值为0,与预期差180度

Explanation for the algorithms

@Livox-SDK Thank you guys for this repository. We would like to use this for our project, but can you provide a detailed explanation for the algorithms implemented here?

calibration program “terminate called after throwing an instance of 'std::length_error' “

When I run this code, this problem will occur. I can choose to comment out the line of code viewer_final->spinOnce(10); but then I can’t see the matching point cloud display status. Can you help me analyze it? the reason?

log:
Score: 0.271687
0% [ ]terminate called after throwing an instance of 'std::length_error'
what(): vector::reserve
已放弃 (核心已转储)

Is it suitable for calibration between two PCD files?

I used two different PCD files in the same place for calibration and found that ICP.Getfitnesscore() value is too large to calibrate. Whether initialized parameter affect the calibration? (the corresponding initialization parameters of the matrix is not modified), or is it impossible to complete the automatic calibration of this scenario? thank!

terminate called after throwing an instance of 'std::length_error' what(): vector::reserve

Start building local map...
Loaded 1182 frames from Base-LiDAR
100% [||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||]
Saving submap...
Mapping done!
Start calibration...
Reading H-LiDAR map data...
Loaded 1085713 data points from H_LiDAR_Map.pcd
Loaded 1182 frames from Target-LiDAR
0% [ ]terminate called after throwing an instance of 'std::length_error'
what(): vector::reserve
Aborted (core dumped)
Read 1 data

RANSAC Result (x,y,z,roll,pitch,yaw): 2.52813e-320, 6.91513e-310, 6.91513e-310, 4.02248e-315, 6.95319e-310, 6.28513e-317

Result Matrix:
1 -6.28513e-317 6.95319e-310 2.52813e-320
6.28513e-317 1 -4.02248e-315 6.91513e-310
-6.95319e-310 4.02248e-315 1 6.91513e-310
0 0 0 1

zero results

I would like to get the extrinsic calibration matric of two Livox horizon lidars, after several times attends, I just can get the wrong result from the repo. are there any mistakes I made in the process?
trial 1: lidar ( applied Livox viewer calibration ) + identity init_Matrix.txt
trial 2: clean lidar + init_Matrix.txt convert from livox viewer auto_calib
trial 3: clean lidar + identity init_Matrix.txt

I also try other scenarios( carpark + street) , but all the trials get the similar strange results.

RANSAC Result (x,y,z,roll,pitch,yaw): 6.91802e-310, 3.16448e-314, 6.9529e-310, 6.91802e-310, 6.91802e-310, 6.28513e-317

Result Matrix:
1 -6.28513e-317 6.91802e-310 6.91802e-310
6.28513e-317 1 -6.91802e-310 3.16448e-314
-6.91802e-310 6.91802e-310 1 6.9529e-310
0 0 0 1

RANSAC Result (x,y,z,roll,pitch,yaw): 6.92253e-310, 6.92253e-310, 6.92253e-310, 2.122e-314, 6.92253e-310, 6.92253e-310

Result Matrix:
1 -6.92253e-310 6.92253e-310 6.92253e-310
6.92253e-310 1 -2.122e-314 6.92253e-310
-6.92253e-310 2.122e-314 1 6.92253e-310
0 0 0 1

Error in local map building

Start building local map...
Loaded 1182 frames from Base-LiDAR
mapping: /build/pcl-OilVEB/pcl-1.8.1+dfsg1/octree/include/pcl/octree/impl/octree_pointcloud.hpp:688: void pcl::octree::OctreePointCloud<PointT, LeafContainerT, BranchContainerT, OctreeT>::genOctreeKeyforPoint(const PointT&, pcl::octree::OctreeKey&) const [with PointT = pcl::PointXYZ; LeafContainerT = pcl::octree::OctreeContainerPointIndices; BranchContainerT = pcl::octree::OctreeContainerEmpty; OctreeT = pcl::octree::OctreeBase<pcl::octree::OctreeContainerPointIndices, pcl::octree::OctreeContainerEmpty>]: Assertion `key_arg.x <= this->max_key_.x' failed.
Aborted (core dumped)

Error in calibration program

After the mapping program, when the calibration program read the Target lidar data. There is an error:

terminate called after throwing an instance of 'std::length of error'
what() vector::reserve
2020-07-06 12-10-12屏幕截图

some compile errors for PCL 1.8 in windows platform.

1>------ 已启动生成: 项目: calibration, 配置: Debug Win32 ------
1>calibration.cpp
1>Unknown compiler version - please run the configure tests and report the results
1>D:\PCL\PCL 1.8.1\include\pcl-1.8\pcl/point_traits.h : warning C4819: 该文件包含不能在当前代码页(936)中表示的字符。请将该文件保存为 Unicode 格式以防止数据丢失
1>D:\PCL\PCL 1.8.1\3rdParty\Boost\include\boost-1_64\boost/iostreams/positioning.hpp(96): warning C4996: 'std::fpos<_Mbstatet>::seekpos': warning STL4019: The member std::fpos::seekpos() is non-Standard, and is preserved only for compatibility with workarounds for old versions of Visual C++. It will be removed in a future release, and in this release always returns 0. Please use standards-conforming mechanisms to manipulate fpos, such as conversions to and from streamoff, or an integral type, instead. If you are receiving this message while compiling Boost.IOStreams, a fix has been submitted upstream to make Boost use standards-conforming mechanisms, as it does for other compilers. You can define _SILENCE_FPOS_SEEKPOS_DEPRECATION_WARNING to acknowledge that you have received this warning, or define _REMOVE_FPOS_SEEKPOS to remove std::fpos::seekpos entirely.
1>C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.16.27023\include\iosfwd(59): note: 参见“std::fpos<_Mbstatet>::seekpos”的声明
1>D:\PCL\PCL 1.8.1\include\pcl-1.8\pcl/io/pcd_io.h(281): warning C4003: 类函数宏的调用“max”参数不足
1>D:\PCL\PCL 1.8.1\include\pcl-1.8\pcl/io/pcd_io.h(281): error C2589: “(”:“::”右边的非法标记
1>D:\PCL\PCL 1.8.1\include\pcl-1.8\pcl/io/pcd_io.h(281): error C2059: 语法错误:“)”
1>D:\PCL\PCL 1.8.1\include\pcl-1.8\pcl/io/impl/pcd_io.hpp(107): warning C4003: 类函数宏的调用“max”参数不足
1>D:\PCL\PCL 1.8.1\include\pcl-1.8\pcl/io/impl/pcd_io.hpp(119): warning C4003: 类函数宏的调用“max”参数不足
1>D:\PCL\PCL 1.8.1\include\pcl-1.8\pcl/correspondence.h(75): warning C4003: 类函数宏的调用“max”参数不足
1>D:\PCL\PCL 1.8.1\include\pcl-1.8\pcl/correspondence.h(75): error C2589: “(”:“::”右边的非法标记
1>D:\PCL\PCL 1.8.1\include\pcl-1.8\pcl/correspondence.h(75): error C2062: 意外的类型“unknown-type”
1>D:\PCL\PCL 1.8.1\include\pcl-1.8\pcl/correspondence.h(75): error C2612: 基/成员初始值设定项列表中的非法后缀“)”
1>D:\PCL\PCL 1.8.1\include\pcl-1.8\pcl/cloud_iterator.h(61): error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int
1>D:\PCL\PCL 1.8.1\include\pcl-1.8\pcl/cloud_iterator.h(115): note: 参见对正在编译的 类 模板 实例化 "pcl::pcl::CloudIterator" 的引用
1>D:\PCL\PCL 1.8.1\3rdParty\Boost\include\boost-1_64\boost/bind/placeholders.hpp(54): note: 参见对正在编译的 类 模板 实例化 "boost::arg<9>" 的引用
1>D:\PCL\PCL 1.8.1\3rdParty\Boost\include\boost-1_64\boost/bind/placeholders.hpp(53): note: 参见对正在编译的 类 模板 实例化 "boost::arg<8>" 的引用
1>D:\PCL\PCL 1.8.1\3rdParty\Boost\include\boost-1_64\boost/bind/placeholders.hpp(52): note: 参见对正在编译的 类 模板 实例化 "boost::arg<7>" 的引用
1>D:\PCL\PCL 1.8.1\3rdParty\Boost\include\boost-1_64\boost/bind/placeholders.hpp(51): note: 参见对正在编译的 类 模板 实例化 "boost::arg<6>" 的引用
1>D:\PCL\PCL 1.8.1\3rdParty\Boost\include\boost-1_64\boost/bind/placeholders.hpp(50): note: 参见对正在编译的 类 模板 实例化 "boost::arg<5>" 的引用
1>D:\PCL\PCL 1.8.1\3rdParty\Boost\include\boost-1_64\boost/bind/placeholders.hpp(49): note: 参见对正在编译的 类 模板 实例化 "boost::arg<4>" 的引用
1>D:\PCL\PCL 1.8.1\3rdParty\Boost\include\boost-1_64\boost/bind/placeholders.hpp(48): note: 参见对正在编译的 类 模板 实例化 "boost::arg<3>" 的引用
1>D:\PCL\PCL 1.8.1\3rdParty\Boost\include\boost-1_64\boost/bind/placeholders.hpp(47): note: 参见对正在编译的 类 模板 实例化 "boost::arg<2>" 的引用
1>D:\PCL\PCL 1.8.1\3rdParty\Boost\include\boost-1_64\boost/bind/placeholders.hpp(46): note: 参见对正在编译的 类 模板 实例化 "boost::arg<1>" 的引用
1>D:\PCL\PCL 1.8.1\include\pcl-1.8\pcl/cloud_iterator.h(61): error C2143: 语法错误: 缺少“,”(在“&”的前面)
1>D:\PCL\PCL 1.8.1\include\pcl-1.8\pcl/cloud_iterator.h(130): error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int
1>D:\PCL\PCL 1.8.1\include\pcl-1.8\pcl/cloud_iterator.h(187): note: 参见对正在编译的 类 模板 实例化 "pcl::pcl::ConstCloudIterator" 的引用
1>D:\PCL\PCL 1.8.1\include\pcl-1.8\pcl/cloud_iterator.h(130): error C2143: 语法错误: 缺少“,”(在“&”的前面)
1>D:\PCL\PCL 1.8.1\include\pcl-1.8\pcl/impl/cloud_iterator.hpp(355): error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int
1>D:\PCL\PCL 1.8.1\include\pcl-1.8\pcl/impl/cloud_iterator.hpp(355): error C2988: 不可识别的模板声明/定义
1>D:\PCL\PCL 1.8.1\include\pcl-1.8\pcl/impl/cloud_iterator.hpp(355): error C2143: 语法错误: 缺少“,”(在“&”的前面)
1>D:\PCL\PCL 1.8.1\include\pcl-1.8\pcl/impl/cloud_iterator.hpp(469): error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int
1>D:\PCL\PCL 1.8.1\include\pcl-1.8\pcl/impl/cloud_iterator.hpp(469): error C2988: 不可识别的模板声明/定义
1>D:\PCL\PCL 1.8.1\include\pcl-1.8\pcl/impl/cloud_iterator.hpp(469): error C2143: 语法错误: 缺少“,”(在“&”的前面)
1>D:\PCL\PCL 1.8.1\include\pcl-1.8\pcl/common/centroid.h(91): error C2039: “PointCloud”: 不是“pcl::pcl”的成员
1>D:\PCL\PCL 1.8.1\include\pcl-1.8\pcl/common/centroid.h(54): note: 参见“pcl::pcl”的声明
1>D:\PCL\PCL 1.8.1\include\pcl-1.8\pcl/common/centroid.h(91): error C2988: 不可识别的模板声明/定义
1>D:\PCL\PCL 1.8.1\include\pcl-1.8\pcl/common/centroid.h(91): error C2143: 语法错误: 缺少“)”(在“<”的前面)
1>D:\PCL\PCL 1.8.1\include\pcl-1.8\pcl/common/centroid.h(91): error C2143: 语法错误: 缺少“;”(在“<”的前面)
1>D:\PCL\PCL 1.8.1\include\pcl-1.8\pcl/common/centroid.h(91): error C2059: 语法错误:“<”
1>D:\PCL\PCL 1.8.1\include\pcl-1.8\pcl/common/centroid.h(92): error C2065: “Scalar”: 未声明的标识符
1>D:\PCL\PCL 1.8.1\include\pcl-1.8\pcl/common/centroid.h(92): error C2923: “Eigen::Matrix”: 对于参数“_Scalar”,“Scalar”不是有效的 模板 类型变量
1>D:\PCL\PCL 1.8.1\include\pcl-1.8\pcl/common/centroid.h(92): error C2059: 语法错误:“)”
1>D:\PCL\PCL 1.8.1\include\pcl-1.8\pcl/common/centroid.h(95): error C2039: “PointCloud”: 不是“pcl::pcl”的成员
1>D:\PCL\PCL 1.8.1\include\pcl-1.8\pcl/common/centroid.h(54): note: 参见“pcl::pcl”的声明
1>D:\PCL\PCL 1.8.1\include\pcl-1.8\pcl/common/centroid.h(95): error C2988: 不可识别的模板声明/定义
1>D:\PCL\PCL 1.8.1\include\pcl-1.8\pcl/common/centroid.h(95): error C2143: 语法错误: 缺少“)”(在“<”的前面)
1>D:\PCL\PCL 1.8.1\include\pcl-1.8\pcl/common/centroid.h(95): error C2143: 语法错误: 缺少“;”(在“<”的前面)
1>D:\PCL\PCL 1.8.1\include\pcl-1.8\pcl/common/centroid.h(95): error C2059: 语法错误:“<”
1>D:\PCL\PCL 1.8.1\include\pcl-1.8\pcl/common/centroid.h(96): error C2059: 语法错误:“)”
1>D:\PCL\PCL 1.8.1\include\pcl-1.8\pcl/common/centroid.h(97): error C2143: 语法错误: 缺少“;”(在“{”的前面)
1>D:\PCL\PCL 1.8.1\include\pcl-1.8\pcl/common/centroid.h(97): error C2447: “{”: 缺少函数标题(是否是老式的形式表?)
1>D:\PCL\PCL 1.8.1\include\pcl-1.8\pcl/common/centroid.h(102): error C2039: “PointCloud”: 不是“pcl::pcl”的成员
1>D:\PCL\PCL 1.8.1\include\pcl-1.8\pcl/common/centroid.h(54): note: 参见“pcl::pcl”的声明
1>D:\PCL\PCL 1.8.1\include\pcl-1.8\pcl/common/centroid.h(102): error C2988: 不可识别的模板声明/定义
1>D:\PCL\PCL 1.8.1\include\pcl-1.8\pcl/common/centroid.h(102): error C2143: 语法错误: 缺少“)”(在“<”的前面)
1>D:\PCL\PCL 1.8.1\include\pcl-1.8\pcl/common/centroid.h(102): error C2143: 语法错误: 缺少“;”(在“<”的前面)
1>D:\PCL\PCL 1.8.1\include\pcl-1.8\pcl/common/centroid.h(102): error C2059: 语法错误:“<”
1>D:\PCL\PCL 1.8.1\include\pcl-1.8\pcl/common/centroid.h(103): error C2059: 语法错误:“)”
1>D:\PCL\PCL 1.8.1\include\pcl-1.8\pcl/common/centroid.h(104): error C2143: 语法错误: 缺少“;”(在“{”的前面)
1>D:\PCL\PCL 1.8.1\include\pcl-1.8\pcl/common/centroid.h(104): error C2447: “{”: 缺少函数标题(是否是老式的形式表?)
1>D:\PCL\PCL 1.8.1\include\pcl-1.8\pcl/common/centroid.h(119): error C2039: “PointCloud”: 不是“pcl::pcl”的成员
1>D:\PCL\PCL 1.8.1\include\pcl-1.8\pcl/common/centroid.h(54): note: 参见“pcl::pcl”的声明
1>D:\PCL\PCL 1.8.1\include\pcl-1.8\pcl/common/centroid.h(119): error C2988: 不可识别的模板声明/定义
1>D:\PCL\PCL 1.8.1\include\pcl-1.8\pcl/common/centroid.h(119): error C2143: 语法错误: 缺少“)”(在“<”的前面)
1>D:\PCL\PCL 1.8.1\include\pcl-1.8\pcl/common/centroid.h(119): error C2143: 语法错误: 缺少“;”(在“<”的前面)
1>D:\PCL\PCL 1.8.1\include\pcl-1.8\pcl/common/centroid.h(119): error C2059: 语法错误:“<”
1>D:\PCL\PCL 1.8.1\include\pcl-1.8\pcl/common/centroid.h(121): error C2065: “Scalar”: 未声明的标识符
1>D:\PCL\PCL 1.8.1\include\pcl-1.8\pcl/common/centroid.h(121): error C2923: “Eigen::Matrix”: 对于参数“_Scalar”,“Scalar”不是有效的 模板 类型变量
1>D:\PCL\PCL 1.8.1\include\pcl-1.8\pcl/common/centroid.h(121): error C2059: 语法错误:“)”
1>D:\PCL\PCL 1.8.1\include\pcl-1.8\pcl/common/centroid.h(124): error C2039: “PointCloud”: 不是“pcl::pcl”的成员
1>D:\PCL\PCL 1.8.1\include\pcl-1.8\pcl/common/centroid.h(54): note: 参见“pcl::pcl”的声明
1>D:\PCL\PCL 1.8.1\include\pcl-1.8\pcl/common/centroid.h(124): error C2988: 不可识别的模板声明/定义
1>D:\PCL\PCL 1.8.1\include\pcl-1.8\pcl/common/centroid.h(124): error C2143: 语法错误: 缺少“)”(在“<”的前面)
1>D:\PCL\PCL 1.8.1\include\pcl-1.8\pcl/common/centroid.h(124): error C2143: 语法错误: 缺少“;”(在“<”的前面)
1>D:\PCL\PCL 1.8.1\include\pcl-1.8\pcl/common/centroid.h(124): error C2059: 语法错误:“<”
1>D:\PCL\PCL 1.8.1\include\pcl-1.8\pcl/common/centroid.h(126): error C2059: 语法错误:“)”
1>D:\PCL\PCL 1.8.1\include\pcl-1.8\pcl/common/centroid.h(127): error C2143: 语法错误: 缺少“;”(在“{”的前面)
1>D:\PCL\PCL 1.8.1\include\pcl-1.8\pcl/common/centroid.h(127): error C2447: “{”: 缺少函数标题(是否是老式的形式表?)
1>D:\PCL\PCL 1.8.1\include\pcl-1.8\pcl/common/centroid.h(132): error C2039: “PointCloud”: 不是“pcl::pcl”的成员
1>D:\PCL\PCL 1.8.1\include\pcl-1.8\pcl/common/centroid.h(54): note: 参见“pcl::pcl”的声明
1>D:\PCL\PCL 1.8.1\include\pcl-1.8\pcl/common/centroid.h(132): error C2988: 不可识别的模板声明/定义
1>D:\PCL\PCL 1.8.1\include\pcl-1.8\pcl/common/centroid.h(132): error C2143: 语法错误: 缺少“)”(在“<”的前面)
1>D:\PCL\PCL 1.8.1\include\pcl-1.8\pcl/common/centroid.h(132): error C2143: 语法错误: 缺少“;”(在“<”的前面)
1>D:\PCL\PCL 1.8.1\include\pcl-1.8\pcl/common/centroid.h(132): error C2059: 语法错误:“<”
1>D:\PCL\PCL 1.8.1\include\pcl-1.8\pcl/common/centroid.h(134): error C2059: 语法错误:“)”
1>D:\PCL\PCL 1.8.1\include\pcl-1.8\pcl/common/centroid.h(135): error C2143: 语法错误: 缺少“;”(在“{”的前面)
1>D:\PCL\PCL 1.8.1\include\pcl-1.8\pcl/common/centroid.h(135): error C2447: “{”: 缺少函数标题(是否是老式的形式表?)
1>D:\PCL\PCL 1.8.1\include\pcl-1.8\pcl/common/centroid.h(150): error C2039: “PointCloud”: 不是“pcl::pcl”的成员
1>D:\PCL\PCL 1.8.1\include\pcl-1.8\pcl/common/centroid.h(54): note: 参见“pcl::pcl”的声明
1>D:\PCL\PCL 1.8.1\include\pcl-1.8\pcl/common/centroid.h(150): error C2988: 不可识别的模板声明/定义
1>D:\PCL\PCL 1.8.1\include\pcl-1.8\pcl/common/centroid.h(150): error C2143: 语法错误: 缺少“)”(在“<”的前面)
1>D:\PCL\PCL 1.8.1\include\pcl-1.8\pcl/common/centroid.h(150): error C2143: 语法错误: 缺少“;”(在“<”的前面)
1>D:\PCL\PCL 1.8.1\include\pcl-1.8\pcl/common/centroid.h(150): error C2059: 语法错误:“<”
1>D:\PCL\PCL 1.8.1\include\pcl-1.8\pcl/common/centroid.h(151): error C2039: “PointIndices”: 不是“pcl::pcl”的成员
1>D:\PCL\PCL 1.8.1\include\pcl-1.8\pcl/common/centroid.h(54): note: 参见“pcl::pcl”的声明
1>D:\PCL\PCL 1.8.1\include\pcl-1.8\pcl/common/centroid.h(152): error C2065: “Scalar”: 未声明的标识符
1>D:\PCL\PCL 1.8.1\include\pcl-1.8\pcl/common/centroid.h(152): error C2923: “Eigen::Matrix”: 对于参数“_Scalar”,“Scalar”不是有效的 模板 类型变量
1>D:\PCL\PCL 1.8.1\include\pcl-1.8\pcl/common/centroid.h(152): error C2059: 语法错误:“)”
1>D:\PCL\PCL 1.8.1\include\pcl-1.8\pcl/common/centroid.h(155): error C2039: “PointCloud”: 不是“pcl::pcl”的成员
1>D:\PCL\PCL 1.8.1\include\pcl-1.8\pcl/common/centroid.h(54): note: 参见“pcl::pcl”的声明
1>D:\PCL\PCL 1.8.1\include\pcl-1.8\pcl/common/centroid.h(155): error C2988: 不可识别的模板声明/定义
1>D:\PCL\PCL 1.8.1\include\pcl-1.8\pcl/common/centroid.h(155): error C2143: 语法错误: 缺少“)”(在“<”的前面)
1>D:\PCL\PCL 1.8.1\include\pcl-1.8\pcl/common/centroid.h(155): error C2143: 语法错误: 缺少“;”(在“<”的前面)
1>D:\PCL\PCL 1.8.1\include\pcl-1.8\pcl/common/centroid.h(155): error C2059: 语法错误:“<”
1>D:\PCL\PCL 1.8.1\include\pcl-1.8\pcl/common/centroid.h(156): error C2039: “PointIndices”: 不是“pcl::pcl”的成员
1>D:\PCL\PCL 1.8.1\include\pcl-1.8\pcl/common/centroid.h(54): note: 参见“pcl::pcl”的声明
1>D:\PCL\PCL 1.8.1\include\pcl-1.8\pcl/common/centroid.h(157): error C2059: 语法错误:“)”
1>D:\PCL\PCL 1.8.1\include\pcl-1.8\pcl/common/centroid.h(158): error C2143: 语法错误: 缺少“;”(在“{”的前面)
1>D:\PCL\PCL 1.8.1\include\pcl-1.8\pcl/common/centroid.h(158): error C2447: “{”: 缺少函数标题(是否是老式的形式表?)
1>D:\PCL\PCL 1.8.1\include\pcl-1.8\pcl/common/centroid.h(163): error C2039: “PointCloud”: 不是“pcl::pcl”的成员
1>D:\PCL\PCL 1.8.1\include\pcl-1.8\pcl/common/centroid.h(54): note: 参见“pcl::pcl”的声明
1>D:\PCL\PCL 1.8.1\include\pcl-1.8\pcl/common/centroid.h(163): error C2988: 不可识别的模板声明/定义
1>D:\PCL\PCL 1.8.1\include\pcl-1.8\pcl/common/centroid.h(163): error C2143: 语法错误: 缺少“)”(在“<”的前面)
1>D:\PCL\PCL 1.8.1\include\pcl-1.8\pcl/common/centroid.h(163): error C2143: 语法错误: 缺少“;”(在“<”的前面)
1>D:\PCL\PCL 1.8.1\include\pcl-1.8\pcl/common/centroid.h(163): error C2059: 语法错误:“<”
1>D:\PCL\PCL 1.8.1\include\pcl-1.8\pcl/common/centroid.h(164): error C2039: “PointIndices”: 不是“pcl::pcl”的成员
1>D:\PCL\PCL 1.8.1\include\pcl-1.8\pcl/common/centroid.h(54): note: 参见“pcl::pcl”的声明
1>D:\PCL\PCL 1.8.1\include\pcl-1.8\pcl/common/centroid.h(165): error C2059: 语法错误:“)”
1>D:\PCL\PCL 1.8.1\include\pcl-1.8\pcl/common/centroid.h(166): error C2143: 语法错误: 缺少“;”(在“{”的前面)
1>D:\PCL\PCL 1.8.1\include\pcl-1.8\pcl/common/centroid.h(166): error C2447: “{”: 缺少函数标题(是否是老式的形式表?)
1>D:\PCL\PCL 1.8.1\include\pcl-1.8\pcl/common/centroid.h(184): error C2039: “PointCloud”: 不是“pcl::pcl”的成员
1>D:\PCL\PCL 1.8.1\include\pcl-1.8\pcl/common/centroid.h(54): note: 参见“pcl::pcl”的声明
1>D:\PCL\PCL 1.8.1\include\pcl-1.8\pcl/common/centroid.h(184): error C2988: 不可识别的模板声明/定义
1>D:\PCL\PCL 1.8.1\include\pcl-1.8\pcl/common/centroid.h(184): error C2143: 语法错误: 缺少“)”(在“<”的前面)
1>D:\PCL\PCL 1.8.1\include\pcl-1.8\pcl/common/centroid.h(184): error C2143: 语法错误: 缺少“;”(在“<”的前面)
1>D:\PCL\PCL 1.8.1\include\pcl-1.8\pcl/common/centroid.h(184): error C2059: 语法错误:“<”
1>D:\PCL\PCL 1.8.1\include\pcl-1.8\pcl/common/centroid.h(185): error C2065: “Scalar”: 未声明的标识符
1>D:\PCL\PCL 1.8.1\include\pcl-1.8\pcl/common/centroid.h(185): error C2923: “Eigen::Matrix”: 对于参数“_Scalar”,“Scalar”不是有效的 模板 类型变量
1>D:\PCL\PCL 1.8.1\include\pcl-1.8\pcl/common/centroid.h(186): error C2065: “Scalar”: 未声明的标识符
1>D:\PCL\PCL 1.8.1\include\pcl-1.8\pcl/common/centroid.h(186): error C2923: “Eigen::Matrix”: 对于参数“_Scalar”,“Scalar”不是有效的 模板 类型变量
1>D:\PCL\PCL 1.8.1\include\pcl-1.8\pcl/common/centroid.h(186): error C2059: 语法错误:“)”
1>D:\PCL\PCL 1.8.1\include\pcl-1.8\pcl/common/centroid.h(189): error C2039: “PointCloud”: 不是“pcl::pcl”的成员
1>D:\PCL\PCL 1.8.1\include\pcl-1.8\pcl/common/centroid.h(54): note: 参见“pcl::pcl”的声明
1>D:\PCL\PCL 1.8.1\include\pcl-1.8\pcl/common/centroid.h(189): error C2988: 不可识别的模板声明/定义
1>D:\PCL\PCL 1.8.1\include\pcl-1.8\pcl/common/centroid.h(189): error C2143: 语法错误: 缺少“)”(在“<”的前面)
1>D:\PCL\PCL 1.8.1\include\pcl-1.8\pcl/common/centroid.h(189): error C2143: 语法错误: 缺少“;”(在“<”的前面)
1>D:\PCL\PCL 1.8.1\include\pcl-1.8\pcl/common/centroid.h(189): error C2059: 语法错误:“<”
1>D:\PCL\PCL 1.8.1\include\pcl-1.8\pcl/common/centroid.h(189): fatal error C1003: 错误计数超过 100;正在停止编译

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.