IntelRealSense / librealsense

Intel® RealSense™ SDK
https://www.intelrealsense.com/
Apache License 2.0
7.64k stars 4.83k forks source link

Calculate surface area of object using 3D Depth reconstruaction. #11571

Closed TheNemo05 closed 1 year ago

TheNemo05 commented 1 year ago
Required Info
Camera Model D455
Firmware Version 05.14.00.00
Operating System & Version Ubuntu 20
Kernel Version (Linux Only) NA
Platform PC/Raspberry Pi
SDK Version 2.53.1
Language Python
Segment Seabot

Issue Description

Hello again, I need some help regarding a project i m trying to accomplish. I need to calculate Surface area of a undefined object using its depth parameters & 3D reconstruction. I ve recorded .bag file for the object. My main objective is to calculate surface area of the object. Previously i ve tried Open3D which has predefined realsense packages but due to unavailability of information was not able to construct any reconstruction model. As mentioned earlier I have recorded sequence of bag file. What can be the method I can follow for accomplishment of this project.

MartyG-RealSense commented 1 year ago

Hi @TheNemo05 Would it be practical for you to instead export a ply pointcloud file instead of a bag and then import it into the free open source RealSense-compatible MeshLab tool to perform 3D reconstruction and surface area estimation on it, as described at https://github.com/IntelRealSense/librealsense/issues/9823#issuecomment-1000413348

TheNemo05 commented 1 year ago

Also if I use meshlab i ll have to join multiple ply files together. in that case inaccuracy will be more in surface area calculation. surely i ll be using meshlab if i was able to somehow capture the 3D view of object.

I need a solution that has depth 3D reconstruction. with all the depth parameters & hopefully that can convert .bag file into 3D reconstruction.

TheNemo05 commented 1 year ago

Also i ve finally decided to give mesh lab a try, but to build a accurate 3D model i ll have to eliminate the same co-ordinates or single (x,y,z) should be repeated only once else there might be overlapping of pointclouds. Do you have any method to resolve it.

TheNemo05 commented 1 year ago

https://www.youtube.com/watch?v=pLCVCH7ypI4 This video from Open3D uses some webview with realsense. does D455 have access to this webview.

MartyG-RealSense commented 1 year ago

You can manually clean up overlapping points in MeshLab.

https://en.wikiversity.org/wiki/MakerBot/Cleaning_up_cloud_point_mesh_in_mesh_lab_for_3D_printing


In regard to the Open3D video, most RealSense 400 Series cameras with an RGB sensor (except D405) can also be used as an ordinary video webcam and so a D455 should work with programs / applications that use RGB video for their analysis.


The requirement to use a single bag file instead of multiple ply files is likely to rule out most possible methods for achieving your reconstruction, unfortunately.

However, if you are able to use C++ instead of Python, you could try using the RealSense SDK's rs-kinfu example program, which can use a single camera that is moved around the object to create a 360 degree pointcloud by "fusing" frames together. The resulting large pointcloud can then be exported as a .ply file.

Whilst rs-kinfu uses a live camera by default, you could conceivably edit the script to use a recorded bag file as the camera data-source instead. So you could record a bag where you move the camera all around the object, and then load that file into rs-kinfu and have it turn the bag and its 360 degree recording of the object into a .ply file.

https://github.com/IntelRealSense/librealsense/tree/master/wrappers/opencv/kinfu

TheNemo05 commented 1 year ago

Alright, considering the fact i ve recorded .bag file, is it possible to convert every frame in a bag file frame into .ply file using some python code or sdk method.

If yes, I ll have 1000's of pointcloud files how do I frame it in a single file using the co-ordinate information.

TheNemo05 commented 1 year ago

Not good at understanding C++, but seen some tutorials with regards to realsense rs-kinfu. I hope to get help with some predefined C++ codes if possible.

MartyG-RealSense commented 1 year ago

You could convert every frame to a ply file using the RealSense SDK's pre-made rs-convert C++ tool. If the SDK tools and examples were installed when the SDK was installed then an executable of rs-convert should be in the usr/local/bin folder of your computer.

https://github.com/IntelRealSense/librealsense/tree/master/tools/convert

You could merge all of the ply files together using the command-line interface of the free open source tool CloudCompare, as described at https://github.com/IntelRealSense/librealsense/issues/10640#issuecomment-1172460776 and the link below.

http://www.danielgm.net/cc/forum/viewtopic.php?t=2543

TheNemo05 commented 1 year ago

Hello there, i converted the .bag into ply file using the rs-convert tool. But i did not received any .ply file. I either received .raw or .txt files; is there an issue in conversion.

MartyG-RealSense commented 1 year ago

.ply file conversion with rs-convert unfortunately does not work for some RealSense users whilst the other modes do work. An example of this problem is discussed at https://github.com/IntelRealSense/librealsense/issues/3214

Can you confirm that you used the command -l please (it is a small-case L and not an i).

TheNemo05 commented 1 year ago

image for your reference i am using this command.

TheNemo05 commented 1 year ago

Also can you please share c++ code for rs-kinfu

TheNemo05 commented 1 year ago

i was able to convert .bag file into multiple .ply files using Windows. I need some converter to convert .ply files to .pcd files for its usage in cloud compare.

MartyG-RealSense commented 1 year ago

The rs-kinfu C++ code is here:

https://github.com/IntelRealSense/librealsense/blob/master/wrappers/opencv/kinfu/rs-kinfu.cpp

It's excellent to hear that you were successful with the .ply conversion in rs-convert.

A person at the link below installed Open3D to convert .ply to a .pcd that was readable in CloudCompare.

https://stackoverflow.com/questions/51350493/convertion-of-ply-format-to-pcd-format/62488893#62488893

There is also an online converter.

https://imagetostl.com/convert/file/ply/to/pcd

TheNemo05 commented 1 year ago

Thank you for the converters, but these converters are able to convert only 1 .ply file at a time.

As you know realsense does record multiple frames & we do obtain huge resource of .ply files its certainly impossible to convert every file one by one. It would be intensely time consuming any other method would you suggest that can conert multiple .ply files at a time.

MartyG-RealSense commented 1 year ago

I was not able to find a tool that could convert multiple ply files to pcd. I am not certain why a conversion to pcd is necessary though as CloudCompare permits the loading of multiple ply files simultaneously with a command line instruction, and then merge them after they have been loaded.

https://www.danielgm.net/cc/forum/viewtopic.php?p=9987&sid=a6a56715a3c2aefdc7e253899ccaf160#p9987

Usually, thousands of ply files would not be combined into a single one. It is more usual to choose between six and 10 ply to combine.

TheNemo05 commented 1 year ago

image i ve been getting this error even though i ve checked imgproc.hpp is present in opencv2 folder. Can you please help.

MartyG-RealSense commented 1 year ago

Are you using OpenCV 4, as the rs-kinfu documentation states that this OpenCV version is required.

https://github.com/IntelRealSense/librealsense/tree/master/wrappers/opencv/kinfu#installation

TheNemo05 commented 1 year ago

surely i am using the version 4 of opencv image

MartyG-RealSense commented 1 year ago

What method did you use to compile rs-kinfu please? There are not instructions for installing it but I assume that it would involve building it with CMake Lists.txt in order to provide the linkages to librealsense.

image

TheNemo05 commented 1 year ago

I used cmake CMakeList.txt from terminal.

MartyG-RealSense commented 1 year ago

The rs-kinfu instructions suggest to me that the correct approach is not to use the CMakeList.txt file in the terminal but instead to build the librealsense SDK from source code with CMake and include the following commands:

-DBUILD_CV_EXAMPLES=True -DBUILD_CV_KINFU_EXAMPLE=True -DBUILD_GRAPHICAL_EXAMPLES=True

https://github.com/IntelRealSense/librealsense/tree/master/wrappers/opencv/kinfu#installation

For example:

cmake ../ -DFORCE_RSUSB_BACKEND=true -DCMAKE_BUILD_TYPE=release -DBUILD_CV_EXAMPLES=True -DBUILD_CV_KINFU_EXAMPLE=True -DBUILD_EXAMPLES=true -DBUILD_GRAPHICAL_EXAMPLES=true

Once librealsense has been built, check whether a compiled and executable version of rs-kinfu is in Ubuntu's usr/local/bin folder.

TheNemo05 commented 1 year ago

I ve build using the following CMake, but the program still has huge number of errors.

prasad@prasad:~/librealsense/wrappers/opencv/kinfu$ g++ rs-kinfu.cpp -I/usr/include/opencv4/opencv2/.. /usr/bin/ld: /tmp/ccL08eaw.o: in function set_viewport(rect const&)': rs-kinfu.cpp:(.text+0xdbe): undefined reference toglViewport' /usr/bin/ld: rs-kinfu.cpp:(.text+0xdc3): undefined reference to glLoadIdentity' /usr/bin/ld: rs-kinfu.cpp:(.text+0xdcd): undefined reference toglMatrixMode' /usr/bin/ld: rs-kinfu.cpp:(.text+0xe14): undefined reference to glOrtho' /usr/bin/ld: /tmp/ccL08eaw.o: in functiondraw_pointcloud(float, float, glfw_state&, rs2::points&)': rs-kinfu.cpp:(.text+0xe61): undefined reference to glLoadIdentity' /usr/bin/ld: rs-kinfu.cpp:(.text+0xe6b): undefined reference toglPushAttrib' /usr/bin/ld: rs-kinfu.cpp:(.text+0xe90): undefined reference to glClearColor' /usr/bin/ld: rs-kinfu.cpp:(.text+0xe9a): undefined reference toglClear' /usr/bin/ld: rs-kinfu.cpp:(.text+0xea4): undefined reference to glMatrixMode' /usr/bin/ld: rs-kinfu.cpp:(.text+0xea9): undefined reference toglPushMatrix' /usr/bin/ld: rs-kinfu.cpp:(.text+0xee4): undefined reference to gluPerspective' /usr/bin/ld: rs-kinfu.cpp:(.text+0xeee): undefined reference toglMatrixMode' /usr/bin/ld: rs-kinfu.cpp:(.text+0xef3): undefined reference to glPushMatrix' /usr/bin/ld: rs-kinfu.cpp:(.text+0xf3a): undefined reference togluLookAt' /usr/bin/ld: rs-kinfu.cpp:(.text+0xf6f): undefined reference to glTranslatef' /usr/bin/ld: rs-kinfu.cpp:(.text+0xf95): undefined reference toglRotated' /usr/bin/ld: rs-kinfu.cpp:(.text+0xfba): undefined reference to glRotated' /usr/bin/ld: rs-kinfu.cpp:(.text+0xfcf): undefined reference toglTranslatef' /usr/bin/ld: rs-kinfu.cpp:(.text+0xfe5): undefined reference to glPointSize' /usr/bin/ld: rs-kinfu.cpp:(.text+0xfef): undefined reference toglEnable' /usr/bin/ld: rs-kinfu.cpp:(.text+0xff9): undefined reference to glEnable' /usr/bin/ld: rs-kinfu.cpp:(.text+0x1015): undefined reference toglBindTexture' /usr/bin/ld: rs-kinfu.cpp:(.text+0x105f): undefined reference to glTexParameterfv' /usr/bin/ld: rs-kinfu.cpp:(.text+0x1073): undefined reference toglTexParameteri' /usr/bin/ld: rs-kinfu.cpp:(.text+0x1087): undefined reference to glTexParameteri' /usr/bin/ld: rs-kinfu.cpp:(.text+0x1091): undefined reference toglBegin' /usr/bin/ld: rs-kinfu.cpp:(.text+0x1139): undefined reference to glVertex3fv' /usr/bin/ld: rs-kinfu.cpp:(.text+0x115d): undefined reference toglTexCoord2fv' /usr/bin/ld: rs-kinfu.cpp:(.text+0x116b): undefined reference to glEnd' /usr/bin/ld: rs-kinfu.cpp:(.text+0x1170): undefined reference toglPopMatrix' /usr/bin/ld: rs-kinfu.cpp:(.text+0x117a): undefined reference to glMatrixMode' /usr/bin/ld: rs-kinfu.cpp:(.text+0x117f): undefined reference toglPopMatrix' /usr/bin/ld: rs-kinfu.cpp:(.text+0x1184): undefined reference to glPopAttrib' /usr/bin/ld: /tmp/ccL08eaw.o: in functiondraw_pointcloud_wrt_world(float, float, glfw_state&, rs2::points&, rs2_pose&, float, std::vector<rs2_vector, std::allocator >&)': rs-kinfu.cpp:(.text+0x1564): undefined reference to glLoadIdentity' /usr/bin/ld: rs-kinfu.cpp:(.text+0x156e): undefined reference toglPushAttrib' /usr/bin/ld: rs-kinfu.cpp:(.text+0x1593): undefined reference to glClearColor' /usr/bin/ld: rs-kinfu.cpp:(.text+0x159d): undefined reference toglClear' /usr/bin/ld: rs-kinfu.cpp:(.text+0x15a7): undefined reference to glMatrixMode' /usr/bin/ld: rs-kinfu.cpp:(.text+0x15ac): undefined reference toglPushMatrix' /usr/bin/ld: rs-kinfu.cpp:(.text+0x15ed): undefined reference to gluPerspective' /usr/bin/ld: rs-kinfu.cpp:(.text+0x15f7): undefined reference toglMatrixMode' /usr/bin/ld: rs-kinfu.cpp:(.text+0x15fc): undefined reference to glPushMatrix' /usr/bin/ld: rs-kinfu.cpp:(.text+0x1630): undefined reference toglTranslatef' /usr/bin/ld: rs-kinfu.cpp:(.text+0x1659): undefined reference to glRotated' /usr/bin/ld: rs-kinfu.cpp:(.text+0x1681): undefined reference toglRotated' /usr/bin/ld: rs-kinfu.cpp:(.text+0x1696): undefined reference to glTranslatef' /usr/bin/ld: rs-kinfu.cpp:(.text+0x16a0): undefined reference toglEnable' /usr/bin/ld: rs-kinfu.cpp:(.text+0x16ad): undefined reference to glLineWidth' /usr/bin/ld: rs-kinfu.cpp:(.text+0x16b7): undefined reference toglBegin' /usr/bin/ld: rs-kinfu.cpp:(.text+0x1736): undefined reference to glColor3f' /usr/bin/ld: rs-kinfu.cpp:(.text+0x175d): undefined reference toglVertex3f' /usr/bin/ld: rs-kinfu.cpp:(.text+0x1773): undefined reference to glEnd' /usr/bin/ld: rs-kinfu.cpp:(.text+0x1780): undefined reference toglLineWidth' /usr/bin/ld: rs-kinfu.cpp:(.text+0x179d): undefined reference to glColor3f' /usr/bin/ld: rs-kinfu.cpp:(.text+0x17f5): undefined reference toglMultMatrixf' /usr/bin/ld: rs-kinfu.cpp:(.text+0x1804): undefined reference to glMultMatrixf' /usr/bin/ld: rs-kinfu.cpp:(.text+0x181d): undefined reference toglPointSize' /usr/bin/ld: rs-kinfu.cpp:(.text+0x1827): undefined reference to glEnable' /usr/bin/ld: rs-kinfu.cpp:(.text+0x1831): undefined reference toglEnable' /usr/bin/ld: rs-kinfu.cpp:(.text+0x1850): undefined reference to glBindTexture' /usr/bin/ld: rs-kinfu.cpp:(.text+0x189a): undefined reference toglTexParameterfv' /usr/bin/ld: rs-kinfu.cpp:(.text+0x18ae): undefined reference to glTexParameteri' /usr/bin/ld: rs-kinfu.cpp:(.text+0x18c2): undefined reference toglTexParameteri' /usr/bin/ld: rs-kinfu.cpp:(.text+0x18cc): undefined reference to glBegin' /usr/bin/ld: rs-kinfu.cpp:(.text+0x1992): undefined reference toglVertex3fv' /usr/bin/ld: rs-kinfu.cpp:(.text+0x19b9): undefined reference to glTexCoord2fv' /usr/bin/ld: rs-kinfu.cpp:(.text+0x19ca): undefined reference toglEnd' /usr/bin/ld: rs-kinfu.cpp:(.text+0x19cf): undefined reference to glPopMatrix' /usr/bin/ld: rs-kinfu.cpp:(.text+0x19d9): undefined reference toglMatrixMode' /usr/bin/ld: rs-kinfu.cpp:(.text+0x19de): undefined reference to glPopMatrix' /usr/bin/ld: rs-kinfu.cpp:(.text+0x19e3): undefined reference toglPopAttrib' /usr/bin/ld: /tmp/ccL08eaw.o: in function get_screen_resolution(unsigned int&, unsigned int&)': rs-kinfu.cpp:(.text+0x1d44): undefined reference toglfwInit' /usr/bin/ld: rs-kinfu.cpp:(.text+0x1d49): undefined reference to glfwGetPrimaryMonitor' /usr/bin/ld: rs-kinfu.cpp:(.text+0x1d51): undefined reference toglfwGetVideoMode' /usr/bin/ld: /tmp/ccL08eaw.o: in function colorize_pointcloud(cv::Mat, cv::Mat&)': rs-kinfu.cpp:(.text+0x1e1b): undefined reference tocv::split(cv::_InputArray const&, cv::_OutputArray const&)' /usr/bin/ld: rs-kinfu.cpp:(.text+0x1f04): undefined reference to cv::Mat::convertTo(cv::_OutputArray const&, int, double, double) const' /usr/bin/ld: rs-kinfu.cpp:(.text+0x1f54): undefined reference tocv::applyColorMap(cv::_InputArray const&, cv::_OutputArray const&, int)' /usr/bin/ld: /tmp/ccL08eaw.o: in function draw_kinfu_pointcloud(glfw_state&, cv::Mat, cv::Mat)': rs-kinfu.cpp:(.text+0x20b3): undefined reference toglLoadIdentity' /usr/bin/ld: rs-kinfu.cpp:(.text+0x20bd): undefined reference to glPushAttrib' /usr/bin/ld: rs-kinfu.cpp:(.text+0x20e2): undefined reference toglClearColor' /usr/bin/ld: rs-kinfu.cpp:(.text+0x20ec): undefined reference to glClear' /usr/bin/ld: rs-kinfu.cpp:(.text+0x20f6): undefined reference toglMatrixMode' /usr/bin/ld: rs-kinfu.cpp:(.text+0x20fb): undefined reference to glPushMatrix' /usr/bin/ld: rs-kinfu.cpp:(.text+0x2130): undefined reference togluPerspective' /usr/bin/ld: rs-kinfu.cpp:(.text+0x213a): undefined reference to glMatrixMode' /usr/bin/ld: rs-kinfu.cpp:(.text+0x213f): undefined reference toglPushMatrix' /usr/bin/ld: rs-kinfu.cpp:(.text+0x2186): undefined reference to gluLookAt' /usr/bin/ld: rs-kinfu.cpp:(.text+0x21be): undefined reference toglTranslatef' /usr/bin/ld: rs-kinfu.cpp:(.text+0x21eb): undefined reference to glRotated' /usr/bin/ld: rs-kinfu.cpp:(.text+0x221b): undefined reference toglRotated' /usr/bin/ld: rs-kinfu.cpp:(.text+0x2230): undefined reference to glTranslatef' /usr/bin/ld: rs-kinfu.cpp:(.text+0x223a): undefined reference toglEnable' /usr/bin/ld: rs-kinfu.cpp:(.text+0x2244): undefined reference to glEnable' /usr/bin/ld: rs-kinfu.cpp:(.text+0x224e): undefined reference toglEnable' /usr/bin/ld: rs-kinfu.cpp:(.text+0x2258): undefined reference to glEnable' /usr/bin/ld: rs-kinfu.cpp:(.text+0x2262): undefined reference toglBegin' /usr/bin/ld: rs-kinfu.cpp:(.text+0x23ff): undefined reference to glColor3ub' /usr/bin/ld: rs-kinfu.cpp:(.text+0x2424): undefined reference toglNormal3f' /usr/bin/ld: rs-kinfu.cpp:(.text+0x2449): undefined reference to glVertex3f' /usr/bin/ld: rs-kinfu.cpp:(.text+0x245a): undefined reference toglEnd' /usr/bin/ld: rs-kinfu.cpp:(.text+0x245f): undefined reference to glPopMatrix' /usr/bin/ld: rs-kinfu.cpp:(.text+0x2469): undefined reference toglMatrixMode' /usr/bin/ld: rs-kinfu.cpp:(.text+0x246e): undefined reference to glPopMatrix' /usr/bin/ld: rs-kinfu.cpp:(.text+0x2473): undefined reference toglPopAttrib' /usr/bin/ld: /tmp/ccL08eaw.o: in function main::{lambda()#1}::operator()() const': rs-kinfu.cpp:(.text+0x2f39): undefined reference tocv::Mat::copyTo(cv::_OutputArray const&) const' /usr/bin/ld: rs-kinfu.cpp:(.text+0x31a4): undefined reference to cv::UMat::copyTo(cv::_OutputArray const&) const' /usr/bin/ld: rs-kinfu.cpp:(.text+0x31f4): undefined reference tocv::UMat::copyTo(cv::_OutputArray const&) const' /usr/bin/ld: rs-kinfu.cpp:(.text+0x3269): undefined reference to cv::UMat::~UMat()' /usr/bin/ld: rs-kinfu.cpp:(.text+0x3287): undefined reference tocv::UMat::~UMat()' /usr/bin/ld: rs-kinfu.cpp:(.text+0x3296): undefined reference to cv::UMat::~UMat()' /usr/bin/ld: rs-kinfu.cpp:(.text+0x3483): undefined reference tocv::UMat::~UMat()' /usr/bin/ld: rs-kinfu.cpp:(.text+0x34b9): undefined reference to cv::UMat::~UMat()' /usr/bin/ld: /tmp/ccL08eaw.o:rs-kinfu.cpp:(.text+0x34c8): more undefined references tocv::UMat::~UMat()' follow /usr/bin/ld: /tmp/ccL08eaw.o: in function main': rs-kinfu.cpp:(.text+0x364e): undefined reference tocv::kinfu::Params::defaultParams()' /usr/bin/ld: rs-kinfu.cpp:(.text+0x3aea): undefined reference to cv::kinfu::KinFu::create(cv::Ptr<cv::kinfu::Params> const&)' /usr/bin/ld: /tmp/ccL08eaw.o: in functionstd::thread::thread<main::{lambda()#1}, , void>(main::{lambda()#1}&&)': rs-kinfu.cpp:(.text+0x43f1): undefined reference to pthread_create' /usr/bin/ld: /tmp/ccL08eaw.o: in functioncv::Mat::Mat(cv::Mat const&)': rs-kinfu.cpp:(.text.ZN2cv3MatC2ERKS0[ZN2cv3MatC5ERKS0]+0x186): undefined reference to cv::Mat::copySize(cv::Mat const&)' /usr/bin/ld: /tmp/ccL08eaw.o: in functioncv::Mat::Mat(int, int, int, void, unsigned long)': rs-kinfu.cpp:(.text._ZN2cv3MatC2EiiiPvm[_ZN2cv3MatC5EiiiPvm]+0x150): undefined reference to cv::error(int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, char const*, char const*, int)' /usr/bin/ld: rs-kinfu.cpp:(.text._ZN2cv3MatC2EiiiPvm[_ZN2cv3MatC5EiiiPvm]+0x227): undefined reference tocv::error(int, std::__cxx11::basic_string<char, std::char_traits, std::allocator > const&, char const, char const, int)' /usr/bin/ld: rs-kinfu.cpp:(.text._ZN2cv3MatC2EiiiPvm[_ZN2cv3MatC5EiiiPvm]+0x2b0): undefined reference to cv::Mat::updateContinuityFlag()' /usr/bin/ld: /tmp/ccL08eaw.o: in functioncv::Mat::~Mat()': rs-kinfu.cpp:(.text._ZN2cv3MatD2Ev[_ZN2cv3MatD5Ev]+0x3d): undefined reference to cv::fastFree(void*)' /usr/bin/ld: /tmp/ccL08eaw.o: in functioncv::Mat::operator=(cv::Mat const&)': rs-kinfu.cpp:(.text.ZN2cv3MataSERKS0[ZN2cv3MataSERKS0]+0x119): undefined reference to cv::Mat::copySize(cv::Mat const&)' /usr/bin/ld: /tmp/ccL08eaw.o: in functioncv::Mat::release()': rs-kinfu.cpp:(.text._ZN2cv3Mat7releaseEv[_ZN2cv3Mat7releaseEv]+0x4f): undefined reference to cv::Mat::deallocate()' /usr/bin/ld: /tmp/ccL08eaw.o: in functioncv::Mat::operator=(cv::Mat&&)': rs-kinfu.cpp:(.text.ZN2cv3MataSEOS0[ZN2cv3MataSEOS0]+0xeb): undefined reference to cv::fastFree(void*)' /usr/bin/ld: /tmp/ccL08eaw.o: in functioncv::UMat::create(int, int, int, cv::UMatUsageFlags)': rs-kinfu.cpp:(.text._ZN2cv4UMat6createEiiiNS_14UMatUsageFlagsE[_ZN2cv4UMat6createEiiiNS_14UMatUsageFlagsE]+0xab): undefined reference to cv::UMat::create(int, int const*, int, cv::UMatUsageFlags)' /usr/bin/ld: /tmp/ccL08eaw.o: in functioncv::UMat::release()': rs-kinfu.cpp:(.text._ZN2cv4UMat7releaseEv[_ZN2cv4UMat7releaseEv]+0x4f): undefined reference to cv::UMat::deallocate()' /usr/bin/ld: /tmp/ccL08eaw.o: in functionrs2::error::error(rs2_error)': rs-kinfu.cpp:(.text._ZN3rs25errorC2EP9rs2_error[_ZN3rs25errorC5EP9rs2_error]+0x32): undefined reference to rs2_get_error_message' /usr/bin/ld: rs-kinfu.cpp:(.text._ZN3rs25errorC2EP9rs2_error[_ZN3rs25errorC5EP9rs2_error]+0x77): undefined reference tors2_get_failed_function' /usr/bin/ld: rs-kinfu.cpp:(.text._ZN3rs25errorC2EP9rs2_error[_ZN3rs25errorC5EP9rs2_error]+0x9e): undefined reference to rs2_get_failed_function' /usr/bin/ld: rs-kinfu.cpp:(.text._ZN3rs25errorC2EP9rs2_error[_ZN3rs25errorC5EP9rs2_error]+0x101): undefined reference tors2_get_failed_args' /usr/bin/ld: rs-kinfu.cpp:(.text._ZN3rs25errorC2EP9rs2_error[_ZN3rs25errorC5EP9rs2_error]+0x128): undefined reference to rs2_get_failed_args' /usr/bin/ld: rs-kinfu.cpp:(.text._ZN3rs25errorC2EP9rs2_error[_ZN3rs25errorC5EP9rs2_error]+0x18b): undefined reference tors2_get_librealsense_exception_type' /usr/bin/ld: rs-kinfu.cpp:(.text._ZN3rs25errorC2EP9rs2_error[_ZN3rs25errorC5EP9rs2_error]+0x19e): undefined reference to rs2_free_error' /usr/bin/ld: /tmp/ccL08eaw.o: in functionrs2::error::handle(rs2_error)': rs-kinfu.cpp:(.text._ZN3rs25error6handleEP9rs2_error[_ZN3rs25error6handleEP9rs2_error]+0x26): undefined reference to rs2_get_librealsense_exception_type' /usr/bin/ld: /tmp/ccL08eaw.o: in functionrs2::stream_profile::stream_profile(rs2_stream_profile const*)': rs-kinfu.cpp:(.text._ZN3rs214stream_profileC2EPK18rs2_stream_profile[_ZN3rs214stream_profileC5EPK18rs2_stream_profile]+0xc2): undefined reference to rs2_get_stream_profile_data' /usr/bin/ld: rs-kinfu.cpp:(.text._ZN3rs214stream_profileC2EPK18rs2_stream_profile[_ZN3rs214stream_profileC5EPK18rs2_stream_profile]+0xe8): undefined reference tors2_is_stream_profile_default' /usr/bin/ld: /tmp/ccL08eaw.o: in function rs2::video_stream_profile::video_stream_profile(rs2::stream_profile const&)': rs-kinfu.cpp:(.text._ZN3rs220video_stream_profileC2ERKNS_14stream_profileE[_ZN3rs220video_stream_profileC5ERKNS_14stream_profileE]+0x74): undefined reference tors2_stream_profile_is' /usr/bin/ld: rs-kinfu.cpp:(.text._ZN3rs220video_stream_profileC2ERKNS_14stream_profileE[_ZN3rs220video_stream_profileC5ERKNS_14stream_profileE]+0xdd): undefined reference to rs2_get_video_stream_resolution' /usr/bin/ld: /tmp/ccL08eaw.o: in functionrs2::video_stream_profile::get_intrinsics() const': rs-kinfu.cpp:(.text._ZNK3rs220video_stream_profile14get_intrinsicsEv[_ZNK3rs220video_stream_profile14get_intrinsicsEv]+0x41): undefined reference to rs2_get_video_stream_intrinsics' /usr/bin/ld: /tmp/ccL08eaw.o: in functionrs2::frame::~frame()': rs-kinfu.cpp:(.text._ZN3rs25frameD2Ev[_ZN3rs25frameD5Ev]+0x27): undefined reference to rs2_release_frame' /usr/bin/ld: /tmp/ccL08eaw.o: in functionrs2::frame::keep()': rs-kinfu.cpp:(.text._ZN3rs25frame4keepEv[_ZN3rs25frame4keepEv]+0x1b): undefined reference to rs2_keep_frame' /usr/bin/ld: /tmp/ccL08eaw.o: in functionrs2::frame::get_data() const': rs-kinfu.cpp:(.text._ZNK3rs25frame8get_dataEv[_ZNK3rs25frame8get_dataEv]+0x39): undefined reference to rs2_get_frame_data' /usr/bin/ld: /tmp/ccL08eaw.o: in functionrs2::frame::get_profile() const': rs-kinfu.cpp:(.text._ZNK3rs25frame11get_profileEv[_ZNK3rs25frame11get_profileEv]+0x3d): undefined reference to rs2_get_frame_stream_profile' /usr/bin/ld: /tmp/ccL08eaw.o: in functionrs2::frame::add_ref() const': rs-kinfu.cpp:(.text._ZNK3rs25frame7add_refEv[_ZNK3rs25frame7add_refEv]+0x39): undefined reference to rs2_frame_add_ref' /usr/bin/ld: /tmp/ccL08eaw.o: in functionrs2::frame::reset()': rs-kinfu.cpp:(.text._ZN3rs25frame5resetEv[_ZN3rs25frame5resetEv]+0x27): undefined reference to rs2_release_frame' /usr/bin/ld: /tmp/ccL08eaw.o: in functionrs2::video_frame::video_frame(rs2::frame const&)': rs-kinfu.cpp:(.text._ZN3rs211video_frameC2ERKNS_5frameE[_ZN3rs211video_frameC5ERKNS_5frameE]+0x71): undefined reference to rs2_is_frame_extendable_to' /usr/bin/ld: /tmp/ccL08eaw.o: in functionrs2::video_frame::get_width() const': rs-kinfu.cpp:(.text._ZNK3rs211video_frame9get_widthEv[_ZNK3rs211video_frame9get_widthEv]+0x41): undefined reference to rs2_get_frame_width' /usr/bin/ld: /tmp/ccL08eaw.o: in functionrs2::video_frame::get_height() const': rs-kinfu.cpp:(.text._ZNK3rs211video_frame10get_heightEv[_ZNK3rs211video_frame10get_heightEv]+0x41): undefined reference to rs2_get_frame_height' /usr/bin/ld: /tmp/ccL08eaw.o: in functionrs2::points::get_vertices() const': rs-kinfu.cpp:(.text._ZNK3rs26points12get_verticesEv[_ZNK3rs26points12get_verticesEv]+0x41): undefined reference to rs2_get_frame_vertices' /usr/bin/ld: /tmp/ccL08eaw.o: in functionrs2::points::get_texture_coordinates() const': rs-kinfu.cpp:(.text._ZNK3rs26points23get_texture_coordinatesEv[_ZNK3rs26points23get_texture_coordinatesEv]+0x41): undefined reference to rs2_get_frame_texture_coordinates' /usr/bin/ld: /tmp/ccL08eaw.o: in functionrs2::depth_frame::depth_frame(rs2::frame const&)': rs-kinfu.cpp:(.text._ZN3rs211depth_frameC2ERKNS_5frameE[_ZN3rs211depth_frameC5ERKNS_5frameE]+0x71): undefined reference to rs2_is_frame_extendable_to' /usr/bin/ld: /tmp/ccL08eaw.o: in functionrs2::frameset::frameset(rs2::frame const&)': rs-kinfu.cpp:(.text._ZN3rs28framesetC2ERKNS_5frameE[_ZN3rs28framesetC5ERKNS_5frameE]+0x7d): undefined reference to rs2_is_frame_extendable_to' /usr/bin/ld: rs-kinfu.cpp:(.text._ZN3rs28framesetC2ERKNS_5frameE[_ZN3rs28framesetC5ERKNS_5frameE]+0xe6): undefined reference tors2_embedded_frames_count' /usr/bin/ld: /tmp/ccL08eaw.o: in function rs2::options::set_option(rs2_option, float) const': rs-kinfu.cpp:(.text._ZNK3rs27options10set_optionE10rs2_optionf[_ZNK3rs27options10set_optionE10rs2_optionf]+0x4b): undefined reference tors2_set_option' /usr/bin/ld: /tmp/ccL08eaw.o: in function rs2::frame_queue::frame_queue(unsigned int, bool)': rs-kinfu.cpp:(.text._ZN3rs211frame_queueC2Ejb[_ZN3rs211frame_queueC5Ejb]+0x5f): undefined reference tors2_create_frame_queue' /usr/bin/ld: rs-kinfu.cpp:(.text._ZN3rs211frame_queueC2Ejb[_ZN3rs211frame_queueC5Ejb]+0x6d): undefined reference to rs2_delete_frame_queue' /usr/bin/ld: /tmp/ccL08eaw.o: in functionrs2::frame_queue::enqueue(rs2::frame) const': rs-kinfu.cpp:(.text._ZNK3rs211frame_queue7enqueueENS_5frameE[_ZNK3rs211frame_queue7enqueueENS_5frameE]+0x49): undefined reference to rs2_enqueue_frame' /usr/bin/ld: /tmp/ccL08eaw.o: in functionrs2::processing_block::invoke(rs2::frame) const': rs-kinfu.cpp:(.text._ZNK3rs216processing_block6invokeENS_5frameE[_ZNK3rs216processing_block6invokeENS_5frameE]+0x68): undefined reference to rs2_process_frame' /usr/bin/ld: /tmp/ccL08eaw.o: in functionrs2::colorizer::init()': rs-kinfu.cpp:(.text._ZN3rs29colorizer4initEv[_ZN3rs29colorizer4initEv]+0x34): undefined reference to rs2_create_colorizer' /usr/bin/ld: rs-kinfu.cpp:(.text._ZN3rs29colorizer4initEv[_ZN3rs29colorizer4initEv]+0x42): undefined reference tors2_delete_processing_block' /usr/bin/ld: /tmp/ccL08eaw.o: in function rs2::decimation_filter::init()': rs-kinfu.cpp:(.text._ZN3rs217decimation_filter4initEv[_ZN3rs217decimation_filter4initEv]+0x34): undefined reference tors2_create_decimation_filter_block' /usr/bin/ld: rs-kinfu.cpp:(.text._ZN3rs217decimation_filter4initEv[_ZN3rs217decimation_filter4initEv]+0x42): undefined reference to rs2_delete_processing_block' /usr/bin/ld: /tmp/ccL08eaw.o: in functionrs2::temporal_filter::init()': rs-kinfu.cpp:(.text._ZN3rs215temporal_filter4initEv[_ZN3rs215temporal_filter4initEv]+0x34): undefined reference to rs2_create_temporal_filter_block' /usr/bin/ld: rs-kinfu.cpp:(.text._ZN3rs215temporal_filter4initEv[_ZN3rs215temporal_filter4initEv]+0x42): undefined reference tors2_delete_processing_block' /usr/bin/ld: /tmp/ccL08eaw.o: in function rs2::spatial_filter::init()': rs-kinfu.cpp:(.text._ZN3rs214spatial_filter4initEv[_ZN3rs214spatial_filter4initEv]+0x34): undefined reference tors2_create_spatial_filter_block' /usr/bin/ld: rs-kinfu.cpp:(.text._ZN3rs214spatial_filter4initEv[_ZN3rs214spatial_filter4initEv]+0x42): undefined reference to rs2_delete_processing_block' /usr/bin/ld: /tmp/ccL08eaw.o: in functionrs2::sensor::get_stream_profiles() const': rs-kinfu.cpp:(.text._ZNK3rs26sensor19get_stream_profilesEv[_ZNK3rs26sensor19get_stream_profilesEv]+0x79): undefined reference to rs2_get_stream_profiles' /usr/bin/ld: rs-kinfu.cpp:(.text._ZNK3rs26sensor19get_stream_profilesEv[_ZNK3rs26sensor19get_stream_profilesEv]+0x87): undefined reference tors2_delete_stream_profiles_list' /usr/bin/ld: rs-kinfu.cpp:(.text._ZNK3rs26sensor19get_stream_profilesEv[_ZNK3rs26sensor19get_stream_profilesEv]+0xbc): undefined reference to rs2_get_stream_profiles_count' /usr/bin/ld: rs-kinfu.cpp:(.text._ZNK3rs26sensor19get_stream_profilesEv[_ZNK3rs26sensor19get_stream_profilesEv]+0xfa): undefined reference tors2_get_stream_profile' /usr/bin/ld: /tmp/ccL08eaw.o: in function rs2::depth_sensor::depth_sensor(rs2::sensor)': rs-kinfu.cpp:(.text._ZN3rs212depth_sensorC2ENS_6sensorE[_ZN3rs212depth_sensorC5ENS_6sensorE]+0x9a): undefined reference tors2_is_sensor_extendable_to' /usr/bin/ld: /tmp/ccL08eaw.o: in function rs2::depth_sensor::get_depth_scale() const': rs-kinfu.cpp:(.text._ZNK3rs212depth_sensor15get_depth_scaleEv[_ZNK3rs212depth_sensor15get_depth_scaleEv]+0x45): undefined reference tors2_get_depth_scale' /usr/bin/ld: /tmp/ccL08eaw.o: in function rs2::device::query_sensors() const': rs-kinfu.cpp:(.text._ZNK3rs26device13query_sensorsEv[_ZNK3rs26device13query_sensorsEv]+0x56): undefined reference tors2_query_sensors' /usr/bin/ld: rs-kinfu.cpp:(.text._ZNK3rs26device13query_sensorsEv[_ZNK3rs26device13query_sensorsEv]+0x64): undefined reference to rs2_delete_sensor_list' /usr/bin/ld: rs-kinfu.cpp:(.text._ZNK3rs26device13query_sensorsEv[_ZNK3rs26device13query_sensorsEv]+0x99): undefined reference tors2_get_sensors_count' /usr/bin/ld: rs-kinfu.cpp:(.text._ZNK3rs26device13query_sensorsEv[_ZNK3rs26device13query_sensorsEv]+0xea): undefined reference to rs2_create_sensor' /usr/bin/ld: rs-kinfu.cpp:(.text._ZNK3rs26device13query_sensorsEv[_ZNK3rs26device13query_sensorsEv]+0xf8): undefined reference tors2_delete_sensor' /usr/bin/ld: /tmp/ccL08eaw.o: in function rs2::device::supports(rs2_camera_info) const': rs-kinfu.cpp:(.text._ZNK3rs26device8supportsE15rs2_camera_info[_ZNK3rs26device8supportsE15rs2_camera_info]+0x4a): undefined reference tors2_supports_device_info' /usr/bin/ld: /tmp/ccL08eaw.o: in function rs2::device::get_info(rs2_camera_info) const': rs-kinfu.cpp:(.text._ZNK3rs26device8get_infoE15rs2_camera_info[_ZNK3rs26device8get_infoE15rs2_camera_info]+0x4a): undefined reference tors2_get_device_info' /usr/bin/ld: /tmp/ccL08eaw.o: in function rs2::device_list::operator[](unsigned int) const': rs-kinfu.cpp:(.text._ZNK3rs211device_listixEj[_ZNK3rs211device_listixEj]+0x4e): undefined reference tors2_create_device' /usr/bin/ld: rs-kinfu.cpp:(.text._ZNK3rs211device_listixEj[_ZNK3rs211device_listixEj]+0x5c): undefined reference to rs2_delete_device' /usr/bin/ld: /tmp/ccL08eaw.o: in functionrs2::device_list::size() const': rs-kinfu.cpp:(.text._ZNK3rs211device_list4sizeEv[_ZNK3rs211device_list4sizeEv]+0x41): undefined reference to rs2_get_device_count' /usr/bin/ld: /tmp/ccL08eaw.o: in functionrs2::context::context()': rs-kinfu.cpp:(.text._ZN3rs27contextC2Ev[_ZN3rs27contextC5Ev]+0x41): undefined reference to rs2_create_context' /usr/bin/ld: rs-kinfu.cpp:(.text._ZN3rs27contextC2Ev[_ZN3rs27contextC5Ev]+0x4f): undefined reference tors2_delete_context' /usr/bin/ld: /tmp/ccL08eaw.o: in function rs2::context::query_devices() const': rs-kinfu.cpp:(.text._ZNK3rs27context13query_devicesEv[_ZNK3rs27context13query_devicesEv]+0x46): undefined reference tors2_query_devices' /usr/bin/ld: rs-kinfu.cpp:(.text._ZNK3rs27context13query_devicesEv[_ZNK3rs27context13query_devicesEv]+0x54): undefined reference to rs2_delete_device_list' /usr/bin/ld: /tmp/ccL08eaw.o: in functionrs2::pipeline_profile::get_streams() const': rs-kinfu.cpp:(.text._ZNK3rs216pipeline_profile11get_streamsEv[_ZNK3rs216pipeline_profile11get_streamsEv]+0x52): undefined reference to rs2_pipeline_profile_get_streams' /usr/bin/ld: rs-kinfu.cpp:(.text._ZNK3rs216pipeline_profile11get_streamsEv[_ZNK3rs216pipeline_profile11get_streamsEv]+0x60): undefined reference tors2_delete_stream_profiles_list' /usr/bin/ld: rs-kinfu.cpp:(.text._ZNK3rs216pipeline_profile11get_streamsEv[_ZNK3rs216pipeline_profile11get_streamsEv]+0x95): undefined reference to rs2_get_stream_profiles_count' /usr/bin/ld: rs-kinfu.cpp:(.text._ZNK3rs216pipeline_profile11get_streamsEv[_ZNK3rs216pipeline_profile11get_streamsEv]+0xd3): undefined reference tors2_get_stream_profile' /usr/bin/ld: /tmp/ccL08eaw.o: in function rs2::pipeline_profile::get_device() const': rs-kinfu.cpp:(.text._ZNK3rs216pipeline_profile10get_deviceEv[_ZNK3rs216pipeline_profile10get_deviceEv]+0x46): undefined reference tors2_pipeline_profile_get_device' /usr/bin/ld: rs-kinfu.cpp:(.text._ZNK3rs216pipeline_profile10get_deviceEv[_ZNK3rs216pipeline_profile10get_deviceEv]+0x54): undefined reference to rs2_delete_device' /usr/bin/ld: /tmp/ccL08eaw.o: in functionrs2::config::config()': rs-kinfu.cpp:(.text._ZN3rs26configC2Ev[_ZN3rs26configC5Ev]+0x3c): undefined reference to rs2_create_config' /usr/bin/ld: rs-kinfu.cpp:(.text._ZN3rs26configC2Ev[_ZN3rs26configC5Ev]+0x4a): undefined reference tors2_delete_config' /usr/bin/ld: /tmp/ccL08eaw.o: in function rs2::config::enable_stream(rs2_stream, int, int, int, rs2_format, int)': rs-kinfu.cpp:(.text._ZN3rs26config13enable_streamE10rs2_streamiii10rs2_formati[_ZN3rs26config13enable_streamE10rs2_streamiii10rs2_formati]+0x64): undefined reference tors2_config_enable_stream' /usr/bin/ld: /tmp/ccL08eaw.o: in function rs2::pipeline::pipeline(rs2::context)': rs-kinfu.cpp:(.text._ZN3rs28pipelineC2ENS_7contextE[_ZN3rs28pipelineC5ENS_7contextE]+0x52): undefined reference tors2_create_pipeline' /usr/bin/ld: rs-kinfu.cpp:(.text._ZN3rs28pipelineC2ENS_7contextE[_ZN3rs28pipelineC5ENS_7contextE]+0x60): undefined reference to rs2_delete_pipeline' /usr/bin/ld: /tmp/ccL08eaw.o: in functionrs2::pipeline::start(rs2::config const&)': rs-kinfu.cpp:(.text._ZN3rs28pipeline5startERKNS_6configE[_ZN3rs28pipeline5startERKNS_6configE]+0x6f): undefined reference to rs2_pipeline_start_with_config' /usr/bin/ld: rs-kinfu.cpp:(.text._ZN3rs28pipeline5startERKNS_6configE[_ZN3rs28pipeline5startERKNS_6configE]+0x7d): undefined reference tors2_delete_pipeline_profile' /usr/bin/ld: /tmp/ccL08eaw.o: in function rs2::pipeline::wait_for_frames(unsigned int) const': rs-kinfu.cpp:(.text._ZNK3rs28pipeline15wait_for_framesEj[_ZNK3rs28pipeline15wait_for_framesEj]+0x4b): undefined reference tors2_pipeline_wait_for_frames' /usr/bin/ld: /tmp/ccL08eaw.o: in function window::window(int, int, char const*)::{lambda(GLFWwindow*, int, int, int)#1}::operator()(GLFWwindow*, int, int, int) const': rs-kinfu.cpp:(.text._ZZN6windowC4EiiPKcENKUlP10GLFWwindowiiiE_clES3_iii[_ZZN6windowC4EiiPKcENKUlP10GLFWwindowiiiE_clES3_iii]+0x26): undefined reference toglfwGetWindowUserPointer' /usr/bin/ld: /tmp/ccL08eaw.o: in function window::window(int, int, char const*)::{lambda(GLFWwindow*, double, double)#2}::operator()(GLFWwindow*, double, double) const': rs-kinfu.cpp:(.text._ZZN6windowC4EiiPKcENKUlP10GLFWwindowddE0_clES3_dd[_ZZN6windowC4EiiPKcENKUlP10GLFWwindowddE0_clES3_dd]+0x26): undefined reference toglfwGetWindowUserPointer' /usr/bin/ld: /tmp/ccL08eaw.o: in function window::window(int, int, char const*)::{lambda(GLFWwindow*, double, double)#3}::operator()(GLFWwindow*, double, double) const': rs-kinfu.cpp:(.text._ZZN6windowC4EiiPKcENKUlP10GLFWwindowddE1_clES3_dd[_ZZN6windowC4EiiPKcENKUlP10GLFWwindowddE1_clES3_dd]+0x26): undefined reference toglfwGetWindowUserPointer' /usr/bin/ld: /tmp/ccL08eaw.o: in function window::window(int, int, char const*)::{lambda(GLFWwindow*, int, int, int, int)#4}::operator()(GLFWwindow*, int, int, int, int) const': rs-kinfu.cpp:(.text._ZZN6windowC4EiiPKcENKUlP10GLFWwindowiiiiE2_clES3_iiii[_ZZN6windowC4EiiPKcENKUlP10GLFWwindowiiiiE2_clES3_iiii]+0x2a): undefined reference toglfwGetWindowUserPointer' /usr/bin/ld: /tmp/ccL08eaw.o: in function window::window(int, int, char const*)': rs-kinfu.cpp:(.text._ZN6windowC2EiiPKc[_ZN6windowC5EiiPKc]+0x105): undefined reference toglfwInit' /usr/bin/ld: rs-kinfu.cpp:(.text._ZN6windowC2EiiPKc[_ZN6windowC5EiiPKc]+0x121): undefined reference to glfwCreateWindow' /usr/bin/ld: rs-kinfu.cpp:(.text._ZN6windowC2EiiPKc[_ZN6windowC5EiiPKc]+0x184): undefined reference toglfwMakeContextCurrent' /usr/bin/ld: rs-kinfu.cpp:(.text._ZN6windowC2EiiPKc[_ZN6windowC5EiiPKc]+0x19e): undefined reference to glfwSetWindowUserPointer' /usr/bin/ld: rs-kinfu.cpp:(.text._ZN6windowC2EiiPKc[_ZN6windowC5EiiPKc]+0x1c3): undefined reference toglfwSetMouseButtonCallback' /usr/bin/ld: rs-kinfu.cpp:(.text._ZN6windowC2EiiPKc[_ZN6windowC5EiiPKc]+0x1e8): undefined reference to glfwSetScrollCallback' /usr/bin/ld: rs-kinfu.cpp:(.text._ZN6windowC2EiiPKc[_ZN6windowC5EiiPKc]+0x20d): undefined reference toglfwSetCursorPosCallback' /usr/bin/ld: rs-kinfu.cpp:(.text._ZN6windowC2EiiPKc[_ZN6windowC5EiiPKc]+0x232): undefined reference to glfwSetKeyCallback' /usr/bin/ld: /tmp/ccL08eaw.o: in functionwindow::~window()': rs-kinfu.cpp:(.text._ZN6windowD2Ev[_ZN6windowD5Ev]+0x1f): undefined reference to glfwDestroyWindow' /usr/bin/ld: rs-kinfu.cpp:(.text._ZN6windowD2Ev[_ZN6windowD5Ev]+0x24): undefined reference toglfwTerminate' /usr/bin/ld: /tmp/ccL08eaw.o: in function window::operator bool()': rs-kinfu.cpp:(.text._ZN6windowcvbEv[_ZN6windowcvbEv]+0x11): undefined reference toglPopMatrix' /usr/bin/ld: rs-kinfu.cpp:(.text._ZN6windowcvbEv[_ZN6windowcvbEv]+0x24): undefined reference to glfwSwapBuffers' /usr/bin/ld: rs-kinfu.cpp:(.text._ZN6windowcvbEv[_ZN6windowcvbEv]+0x37): undefined reference toglfwWindowShouldClose' /usr/bin/ld: rs-kinfu.cpp:(.text._ZN6windowcvbEv[_ZN6windowcvbEv]+0x44): undefined reference to glfwPollEvents' /usr/bin/ld: rs-kinfu.cpp:(.text._ZN6windowcvbEv[_ZN6windowcvbEv]+0x70): undefined reference toglfwGetFramebufferSize' /usr/bin/ld: rs-kinfu.cpp:(.text._ZN6windowcvbEv[_ZN6windowcvbEv]+0x7a): undefined reference to glClear' /usr/bin/ld: rs-kinfu.cpp:(.text._ZN6windowcvbEv[_ZN6windowcvbEv]+0xa1): undefined reference toglViewport' /usr/bin/ld: rs-kinfu.cpp:(.text._ZN6windowcvbEv[_ZN6windowcvbEv]+0xa6): undefined reference to glPushMatrix' /usr/bin/ld: rs-kinfu.cpp:(.text._ZN6windowcvbEv[_ZN6windowcvbEv]+0xd2): undefined reference toglfwGetWindowSize' /usr/bin/ld: rs-kinfu.cpp:(.text._ZN6windowcvbEv[_ZN6windowcvbEv]+0x11b): undefined reference to glOrtho' /usr/bin/ld: /tmp/ccL08eaw.o: in functionvoid rs2::frameset::foreach_rs<rs2::frameset::first_or_default(rs2_stream, rs2_format) const::{lambda(rs2::frame)#1}>(rs2::frameset::first_or_default(rs2_stream, rs2_format) const::{lambda(rs2::frame)#1}) const': rs-kinfu.cpp:(.text._ZNK3rs28frameset10foreach_rsIZNKS0_16first_or_defaultE10rs2_stream10rs2_formatEUlNS_5frameEEEEvT[_ZNK3rs28frameset10foreach_rsIZNKS0_16first_or_defaultE10rs2_stream10rs2_formatEUlNS_5frameEEEEvT]+0x84): undefined reference to rs2_extract_frame' /usr/bin/ld: /tmp/ccL08eaw.o: in functionstd::enable_if<std::is_base_of<rs2::frame, rs2::frame>::value, bool>::type rs2::frame_queue::poll_for_frame(rs2::frame*) const': rs-kinfu.cpp:(.text._ZNK3rs211frame_queue14poll_for_frameINS_5frameEEENSt9enable_ifIXsrSt10is_base_ofIS2_TE5valueEbE4typeEPS5[_ZNK3rs211frame_queue14poll_for_frameINS_5frameEEENSt9enable_ifIXsrSt10is_base_ofIS2_TE5valueEbE4typeEPS5]+0x52): undefined reference to rs2_poll_for_frame' /usr/bin/ld: /tmp/ccL08eaw.o: in functionvoid rs2::processing_block::start(rs2::frame_queue)': rs-kinfu.cpp:(.text._ZN3rs216processing_block5startINS_11framequeueEEEvT[_ZN3rs216processing_block5startINS_11framequeueEEEvT]+0x7a): undefined reference to `rs2_start_processing' collect2: error: ld returned 1 exit status

TheNemo05 commented 1 year ago

image Also while i created make for the above build option u mentioned in the build folder of librealsense i got this error regarding rs-kinfu.

MartyG-RealSense commented 1 year ago

I do not have anything else I can suggest for correcting your rs-kinfu errors, unfortunately. I do apologize.

MartyG-RealSense commented 1 year ago

Hi @TheNemo05 Bearing in mind the comment above, do you require further assistance with this case please? Thanks!

MartyG-RealSense commented 1 year ago

Case closed due to no further comments received.