abner-math / PlaneDetection

Implementation of my article "A Robust Statistics Approach for Plane Detection in Unorganized Point Clouds"
GNU General Public License v3.0
223 stars 24 forks source link

make error #8

Open LilyLin16 opened 3 years ago

LilyLin16 commented 3 years ago

It's a great honor to read your paper. But when I call make to compile the program in windows, an error occurs: 'mMutex' was not declared in this scope. Under what system are you running the program? Windows or Linux?

image

abner-math commented 3 years ago

Hi! I'm using Linux (Ubuntu 18, to be more precise).

LilyLin16 commented 3 years ago

Thank you very much for your reply!

LilyLin16 commented 3 years ago

Hi, I have another question, is the program supports point cloud data formats such as .las or .pcd? If not, is it possible to convert these formats to .pcl and .con formats?

abner-math commented 3 years ago

PCD is the format PCL uses, right? We, unfortunately, don't currently, but you could write a little snippet that uses PCL library to read from .pcd, convert into the data structure we use (the PointCloud class), and then use our provided class (PointCloudIO) to save them as .pcl and .con format (.con is just the connectivity graph, by the way).

Another option is to extend the PointCloudIO class to add a new method to read from PCD according to the format specification: https://pointclouds.org/documentation/tutorials/pcd_file_format.html

I think the former is the easiest, IMO. I will create a feature request to read from PCD in ASCII format.

LilyLin16 commented 3 years ago

Thanks again for your reply! It is very helpful for me.

LilyLin16 commented 3 years ago

I have successfully compiled the program using make in ubuntu, but I think it is more convenient and intuitive to use through the graphical interface. So I try to open the project on Qt 5.12.4 and compile it, however, assertion on eigen unaligned arrays fails. May I ask which version of QT does the program use? image

abner-math commented 3 years ago

@LilyLin16 does it happen exactly before the program start or after you try to perform some operation?

LilyLin16 commented 3 years ago

@LilyLin16 does it happen exactly before the program start or after you try to perform some operation?

  1. The first problem encountered when using QT to compile the project is: After I clone the project from github, I open the original project in QT5.12.4 and build it, and the error "error: /bigobj: No such file or directory" occurs. To solve this error, I change win32:QMAKE_CXXFLAGS += /bigobj in the .pro file to win32:QMAKE_CXXFLAGS += -BigObj. The QT information I used is Qt Creator 4.9.2 based on Qt 5.12.4 (MSVC 2017, 32 bit) as shown below. 1

  2. The second problem encountered when using QT to compile the project is: GraphicsLib\framebuffer.cpp:34: error: undefined reference to `_imp__glReadPixels@28'. 2 I look up the information and find that this is because there are no more basic gl libraries in the new version of qt, and the solution is to use QOpenGLFunctions and modify the way glReadPixels and glDrawPixels functions are called.

  3. After solving the above two problems, I recompile and run the project and encounter a assertion on eigen unaligned arrays fails error as shown below. image

LilyLin16 commented 3 years ago

I successfully compiled the project using qt-linux-x64-5.9.0, but after running it, only the two menus File View are available, Select, Edit, and Plane Detector are not available. I don't know why this happened. What needs to be done before these three menus available?

abner-math commented 3 years ago

You need to first load the point cloud, going to File > Open point cloud. Can you share the steps you did to solve the compiler issue?

LilyLin16 commented 3 years ago

You need to first load the point cloud, going to File > Open point cloud. Can you share the steps you did to solve the compiler issue?

After the point cloud file is loaded, Select, Edit, and Plane Detector are still not available. The previous version of qt I used was qt-windows-5.9.12, and there were no previous compilation errors when using qt-linux-5.9.0.