photoneo / phoxi_camera

ROS Package for PhoXi Scanner/Camera. If you like us, STAR US! :P
MIT License
44 stars 32 forks source link

Unable to catkin_make the phoxi_camera package #27

Open Merwanski opened 5 years ago

Merwanski commented 5 years ago

Hi

I am trying to install the package phoxi_camera on Ubuntu 16.04 / ROS Kinect but till now unable to do that, I already tried the 'solutions' proposed here << Unable to catkin_make the package. Performed all installation steps as listed accurately. Need help #12 >> but still no success.

Here is the messages I am getting:

Scanning dependencies of target phoxi_camera [ 92%] Building CXX object phoxi_camera/CMakeFiles/phoxi_camera.dir/src/phoxi_camera_node.cpp.o [ 93%] Building CXX object phoxi_camera/CMakeFiles/phoxi_camera.dir/src/PhoXiInterface.cpp.o [ 95%] Building CXX object phoxi_camera/CMakeFiles/phoxi_camera.dir/src/RosInterface.cpp.o In file included from /home/drone/Desktop/catkin_ws/src/phoxi_camera/src/PhoXiInterface.cpp:5:0: /home/drone/Desktop/catkin_ws/src/phoxi_camera/include/phoxi_camera/PhoXiInterface.h:108:39: error: ‘pho::api::PhoXiCoordinateSpace’ has not been declared void setCoordinateSpace(pho::api::PhoXiCoordinateSpace space); ^ /home/drone/Desktop/catkin_ws/src/phoxi_camera/include/phoxi_camera/PhoXiInterface.h:114:15: error: ‘PhoXiCoordinateSpace’ in namespace ‘pho::api’ does not name a type pho::api::PhoXiCoordinateSpace getCoordinateSpace(); ^ /home/drone/Desktop/catkin_ws/src/phoxi_camera/include/phoxi_camera/PhoXiInterface.h:125:38: error: ‘pho::api::PhoXiCoordinateTransformation’ has not been declared void setTransformation(pho::api::PhoXiCoordinateTransformation coordinateTransformation,pho::api::PhoXiCoordinateSpace space,bool setSpace = true, bool saveSettings = true); ^ /home/drone/Desktop/catkin_ws/src/phoxi_camera/include/phoxi_camera/PhoXiInterface.h:125:103: error: ‘pho::api::PhoXiCoordinateSpace’ has not been declared void setTransformation(pho::api::PhoXiCoordinateTransformation coordinateTransformation,pho::api::PhoXiCoordinateSpace space,bool setSpace = true, bool saveSettings = true); ^ /home/drone/Desktop/catkin_ws/src/phoxi_camera/include/phoxi_camera/PhoXiInterface.h:138:74: error: ‘pho::api::PhoXiCoordinateSpace’ has not been declared void setTransformation(Eigen::Matrix<T,4,4> transformation,pho::api::PhoXiCoordinateSpace space,bool setSpace = true, bool saveSettings = true){ ^ /home/drone/Desktop/catkin_ws/src/phoxi_camera/include/phoxi_camera/PhoXiInterface.h:145:22: error: ‘PhoXiCoordinateTransformation’ in namespace ‘pho::api’ does not name a type static pho::api::PhoXiCoordinateTransformation getPhoXiCoordinateTransformation(Eigen::Matrix<T,4,4> mat){ ^ /home/drone/Desktop/catkin_ws/src/phoxi_camera/src/PhoXiInterface.cpp:101:51: error: variable or field ‘setCoordinateSpace’ declared void void PhoXiInterface::setCoordinateSpace(pho::api::PhoXiCoordinateSpace space){ ^ /home/drone/Desktop/catkin_ws/src/phoxi_camera/src/PhoXiInterface.cpp:101:41: error: ‘PhoXiCoordinateSpace’ is not a member of ‘pho::api’ void PhoXiInterface::setCoordinateSpace(pho::api::PhoXiCoordinateSpace space){ ^ /home/drone/Desktop/catkin_ws/src/phoxi_camera/src/PhoXiInterface.cpp:107:11: error: ‘PhoXiCoordinateSpace’ in namespace ‘pho::api’ does not name a type pho::api::PhoXiCoordinateSpace PhoXiInterface::getCoordinateSpace(){ ^ /home/drone/Desktop/catkin_ws/src/phoxi_camera/src/PhoXiInterface.cpp:112:50: error: variable or field ‘setTransformation’ declared void void PhoXiInterface::setTransformation(pho::api::PhoXiCoordinateTransformation coordinateTransformation,pho::api::PhoXiCoordinateSpace space,bool setSpace = true, bool saveSettings = true){ ^ /home/drone/Desktop/catkin_ws/src/phoxi_camera/src/PhoXiInterface.cpp:112:40: error: ‘PhoXiCoordinateTransformation’ is not a member of ‘pho::api’ void PhoXiInterface::setTransformation(pho::api::PhoXiCoordinateTransformation coordinateTransformation,pho::api::PhoXiCoordinateSpace space,bool setSpace = true, bool saveSettings = true){ ^ /home/drone/Desktop/catkin_ws/src/phoxi_camera/src/PhoXiInterface.cpp:112:105: error: ‘PhoXiCoordinateSpace’ is not a member of ‘pho::api’ void PhoXiInterface::setTransformation(pho::api::PhoXiCoordinateTransformation coordinateTransformation,pho::api::PhoXiCoordinateSpace space,bool setSpace = true, bool saveSettings = true){ ^ /home/drone/Desktop/catkin_ws/src/phoxi_camera/src/PhoXiInterface.cpp:112:142: error: expected primary-expression before ‘bool’ void PhoXiInterface::setTransformation(pho::api::PhoXiCoordinateTransformation coordinateTransformation,pho::api::PhoXiCoordinateSpace space,bool setSpace = true, bool saveSettings = true){ ^ /home/drone/Desktop/catkin_ws/src/phoxi_camera/src/PhoXiInterface.cpp:112:164: error: expected primary-expression before ‘bool’ void PhoXiInterface::setTransformation(pho::api::PhoXiCoordinateTransformation coordinateTransformation,pho::api::PhoXiCoordinateSpace space,bool setSpace = true, bool saveSettings = true){ ^ In file included from /home/drone/Desktop/catkin_ws/src/phoxi_camera/src/PhoXiInterface.cpp:5:0: /home/drone/Desktop/catkin_ws/src/phoxi_camera/include/phoxi_camera/PhoXiInterface.h:108:39: error: ‘pho::api::PhoXiCoordinateSpace’ has not been declared void setCoordinateSpace(pho::api::PhoXiCoordinateSpace space); ^ /home/drone/Desktop/catkin_ws/src/phoxi_camera/include/phoxi_camera/PhoXiInterface.h:114:15: error: ‘PhoXiCoordinateSpace’ in namespace ‘pho::api’ does not name a type pho::api::PhoXiCoordinateSpace getCoordinateSpace(); ^ /home/drone/Desktop/catkin_ws/src/phoxi_camera/include/phoxi_camera/PhoXiInterface.h:125:38: error: ‘pho::api::PhoXiCoordinateTransformation’ has not been declared void setTransformation(pho::api::PhoXiCoordinateTransformation coordinateTransformation,pho::api::PhoXiCoordinateSpace space,bool setSpace = true, bool saveSettings = true); ^ /home/drone/Desktop/catkin_ws/src/phoxi_camera/include/phoxi_camera/PhoXiInterface.h:125:103: error: ‘pho::api::PhoXiCoordinateSpace’ has not been declared void setTransformation(pho::api::PhoXiCoordinateTransformation coordinateTransformation,pho::api::PhoXiCoordinateSpace space,bool setSpace = true, bool saveSettings = true); ^ /home/drone/Desktop/catkin_ws/src/phoxi_camera/include/phoxi_camera/PhoXiInterface.h:138:74: error: ‘pho::api::PhoXiCoordinateSpace’ has not been declared void setTransformation(Eigen::Matrix<T,4,4> transformation,pho::api::PhoXiCoordinateSpace space,bool setSpace = true, bool saveSettings = true){ ^ /home/drone/Desktop/catkin_ws/src/phoxi_camera/include/phoxi_camera/PhoXiInterface.h:145:22: error: ‘PhoXiCoordinateTransformation’ in namespace ‘pho::api’ does not name a type static pho::api::PhoXiCoordinateTransformation getPhoXiCoordinateTransformation(Eigen::Matrix<T,4,4> mat){ ^ /home/drone/Desktop/catkin_ws/src/phoxi_camera/src/PhoXiInterface.cpp:101:51: error: variable or field ‘setCoordinateSpace’ declared void void PhoXiInterface::setCoordinateSpace(pho::api::PhoXiCoordinateSpace space){ ^ /home/drone/Desktop/catkin_ws/src/phoxi_camera/src/PhoXiInterface.cpp:101:41: error: ‘PhoXiCoordinateSpace’ is not a member of ‘pho::api’ void PhoXiInterface::setCoordinateSpace(pho::api::PhoXiCoordinateSpace space){ ^ /home/drone/Desktop/catkin_ws/src/phoxi_camera/src/PhoXiInterface.cpp:107:11: error: ‘PhoXiCoordinateSpace’ in namespace ‘pho::api’ does not name a type pho::api::PhoXiCoordinateSpace PhoXiInterface::getCoordinateSpace(){ ^ /home/drone/Desktop/catkin_ws/src/phoxi_camera/src/PhoXiInterface.cpp:112:50: error: variable or field ‘setTransformation’ declared void void PhoXiInterface::setTransformation(pho::api::PhoXiCoordinateTransformation coordinateTransformation,pho::api::PhoXiCoordinateSpace space,bool setSpace = true, bool saveSettings = true){ ^ /home/drone/Desktop/catkin_ws/src/phoxi_camera/src/PhoXiInterface.cpp:112:40: error: ‘PhoXiCoordinateTransformation’ is not a member of ‘pho::api’ void PhoXiInterface::setTransformation(pho::api::PhoXiCoordinateTransformation coordinateTransformation,pho::api::PhoXiCoordinateSpace space,bool setSpace = true, bool saveSettings = true){ ^ /home/drone/Desktop/catkin_ws/src/phoxi_camera/src/PhoXiInterface.cpp:112:105: error: ‘PhoXiCoordinateSpace’ is not a member of ‘pho::api’ void PhoXiInterface::setTransformation(pho::api::PhoXiCoordinateTransformation coordinateTransformation,pho::api::PhoXiCoordinateSpace space,bool setSpace = true, bool saveSettings = true){ ^ /home/drone/Desktop/catkin_ws/src/phoxi_camera/src/PhoXiInterface.cpp:112:142: error: expected primary-expression before ‘bool’ void PhoXiInterface::setTransformation(pho::api::PhoXiCoordinateTransformation coordinateTransformation,pho::api::PhoXiCoordinateSpace space,bool setSpace = true, bool saveSettings = true){ ^ /home/drone/Desktop/catkin_ws/src/phoxi_camera/src/PhoXiInterface.cpp:112:164: error: expected primary-expression before ‘bool’ void PhoXiInterface::setTransformation(pho::api::PhoXiCoordinateTransformation coordinateTransformation,pho::api::PhoXiCoordinateSpace space,bool setSpace = true, bool saveSettings = true){ ^ phoxi_camera/CMakeFiles/phoxi_camera_PhoXi_Interface.dir/build.make:62: recipe for target 'phoxi_camera/CMakeFiles/phoxi_camera_PhoXi_Interface.dir/src/PhoXiInterface.cpp.o' failed make[2]: [phoxi_camera/CMakeFiles/phoxi_camera_PhoXi_Interface.dir/src/PhoXiInterface.cpp.o] Error 1 CMakeFiles/Makefile2:2173: recipe for target 'phoxi_camera/CMakeFiles/phoxi_camera_PhoXi_Interface.dir/all' failed make[1]: [phoxi_camera/CMakeFiles/phoxi_camera_PhoXi_Interface.dir/all] Error 2 make[1]: Waiting for unfinished jobs.... In file included from /home/drone/Desktop/catkin_ws/src/phoxi_camera/include/phoxi_camera/RosInterface.h:22:0, from /home/drone/Desktop/catkin_ws/src/phoxi_camera/src/phoxi_camera_node.cpp:31: /home/drone/Desktop/catkin_ws/src/phoxi_camera/include/phoxi_camera/PhoXiInterface.h:108:39: error: ‘pho::api::PhoXiCoordinateSpace’ has not been declared void setCoordinateSpace(pho::api::PhoXiCoordinateSpace space); ^ /home/drone/Desktop/catkin_ws/src/phoxi_camera/include/phoxi_camera/PhoXiInterface.h:114:15: error: ‘PhoXiCoordinateSpace’ in namespace ‘pho::api’ does not name a type pho::api::PhoXiCoordinateSpace getCoordinateSpace(); ^ /home/drone/Desktop/catkin_ws/src/phoxi_camera/include/phoxi_camera/PhoXiInterface.h:125:38: error: ‘pho::api::PhoXiCoordinateTransformation’ has not been declared void setTransformation(pho::api::PhoXiCoordinateTransformation coordinateTransformation,pho::api::PhoXiCoordinateSpace space,bool setSpace = true, bool saveSettings = true); ^ /home/drone/Desktop/catkin_ws/src/phoxi_camera/include/phoxi_camera/PhoXiInterface.h:125:103: error: ‘pho::api::PhoXiCoordinateSpace’ has not been declared void setTransformation(pho::api::PhoXiCoordinateTransformation coordinateTransformation,pho::api::PhoXiCoordinateSpace space,bool setSpace = true, bool saveSettings = true); ^ /home/drone/Desktop/catkin_ws/src/phoxi_camera/include/phoxi_camera/PhoXiInterface.h:138:74: error: ‘pho::api::PhoXiCoordinateSpace’ has not been declared void setTransformation(Eigen::Matrix<T,4,4> transformation,pho::api::PhoXiCoordinateSpace space,bool setSpace = true, bool saveSettings = true){ ^ /home/drone/Desktop/catkin_ws/src/phoxi_camera/include/phoxi_camera/PhoXiInterface.h:145:22: error: ‘PhoXiCoordinateTransformation’ in namespace ‘pho::api’ does not name a type static pho::api::PhoXiCoordinateTransformation getPhoXiCoordinateTransformation(Eigen::Matrix<T,4,4> mat){ ^ In file included from /home/drone/Desktop/catkin_ws/src/phoxi_camera/include/phoxi_camera/RosInterface.h:22:0, from /home/drone/Desktop/catkin_ws/src/phoxi_camera/src/RosInterface.cpp:5: /home/drone/Desktop/catkin_ws/src/phoxi_camera/include/phoxi_camera/PhoXiInterface.h:108:39: error: ‘pho::api::PhoXiCoordinateSpace’ has not been declared void setCoordinateSpace(pho::api::PhoXiCoordinateSpace space); ^ /home/drone/Desktop/catkin_ws/src/phoxi_camera/include/phoxi_camera/PhoXiInterface.h:114:15: error: ‘PhoXiCoordinateSpace’ in namespace ‘pho::api’ does not name a type pho::api::PhoXiCoordinateSpace getCoordinateSpace(); ^ /home/drone/Desktop/catkin_ws/src/phoxi_camera/include/phoxi_camera/PhoXiInterface.h:125:38: error: ‘pho::api::PhoXiCoordinateTransformation’ has not been declared void setTransformation(pho::api::PhoXiCoordinateTransformation coordinateTransformation,pho::api::PhoXiCoordinateSpace space,bool setSpace = true, bool saveSettings = true); ^ /home/drone/Desktop/catkin_ws/src/phoxi_camera/include/phoxi_camera/PhoXiInterface.h:125:103: error: ‘pho::api::PhoXiCoordinateSpace’ has not been declared void setTransformation(pho::api::PhoXiCoordinateTransformation coordinateTransformation,pho::api::PhoXiCoordinateSpace space,bool setSpace = true, bool saveSettings = true); ^ /home/drone/Desktop/catkin_ws/src/phoxi_camera/include/phoxi_camera/PhoXiInterface.h:138:74: error: ‘pho::api::PhoXiCoordinateSpace’ has not been declared void setTransformation(Eigen::Matrix<T,4,4> transformation,pho::api::PhoXiCoordinateSpace space,bool setSpace = true, bool saveSettings = true){ ^ /home/drone/Desktop/catkin_ws/src/phoxi_camera/include/phoxi_camera/PhoXiInterface.h:145:22: error: ‘PhoXiCoordinateTransformation’ in namespace ‘pho::api’ does not name a type static pho::api::PhoXiCoordinateTransformation getPhoXiCoordinateTransformation(Eigen::Matrix<T,4,4> mat){ ^ /home/drone/Desktop/catkin_ws/src/phoxi_camera/include/phoxi_camera/PhoXiInterface.h: In instantiation of ‘void PhoXiInterface::setTransformation(Eigen::Matrix<T, 4, 4>, int, bool, bool) [with T = double]’: /home/drone/Desktop/catkin_ws/src/phoxi_camera/src/RosInterface.cpp:354:115: required from here /home/drone/Desktop/catkin_ws/src/phoxi_camera/include/phoxi_camera/PhoXiInterface.h:139:74: error: ‘getPhoXiCoordinateTransformation’ was not declared in this scope setTransformation(getPhoXiCoordinateTransformation(transformation),space,setSpace,saveSettings); ^ phoxi_camera/CMakeFiles/phoxi_camera.dir/build.make:86: recipe for target 'phoxi_camera/CMakeFiles/phoxi_camera.dir/src/PhoXiInterface.cpp.o' failed make[2]: [phoxi_camera/CMakeFiles/phoxi_camera.dir/src/PhoXiInterface.cpp.o] Error 1 make[2]: Waiting for unfinished jobs.... phoxi_camera/CMakeFiles/phoxi_camera.dir/build.make:62: recipe for target 'phoxi_camera/CMakeFiles/phoxi_camera.dir/src/phoxi_camera_node.cpp.o' failed make[2]: [phoxi_camera/CMakeFiles/phoxi_camera.dir/src/phoxi_camera_node.cpp.o] Error 1 phoxi_camera/CMakeFiles/phoxi_camera.dir/build.make:110: recipe for target 'phoxi_camera/CMakeFiles/phoxi_camera.dir/src/RosInterface.cpp.o' failed make[2]: [phoxi_camera/CMakeFiles/phoxi_camera.dir/src/RosInterface.cpp.o] Error 1 CMakeFiles/Makefile2:790: recipe for target 'phoxi_camera/CMakeFiles/phoxi_camera.dir/all' failed make[1]: [phoxi_camera/CMakeFiles/phoxi_camera.dir/all] Error 2 Makefile:138: recipe for target 'all' failed make: *** [all] Error 2

durovsky commented 5 years ago

Hi, If this is still relevant could you please provide more info on versioning? Which version of PhoXi Control you are using? Which branch of phoxi_camera repo are you trying to compile?

MatejBartosovic commented 5 years ago

Hello,

Can you please try PhoXi Control v1.2.7 - Ubuntu 16 - Beta installer available here https://www.photoneo.com/3d-scanning-software/

Thank you

Merwanski commented 5 years ago

Hi @durovsky and @MatejBartosovic

To @durovsky Here is the list of things I have installed on my machine + info on versioning:

Hope this will help you help me ;)

To @MatejBartosovic Didn't work as well. I will try it on another machine and update you with the results

Regards Merwan

Merwanski commented 5 years ago

Hi @MatejBartosovic

I tried the solution you proposed but still, I am getting the same error when I do a catkin_make with the same messages ... Any other ideas on how I can solve this?

Regards Merwan

MatejBartosovic commented 5 years ago

Hi, can you please run

PhoXiControl --version

Output should be PhoXi Control 1.2.7 - Commit ID: #df3c265 Can you also verify that you have correctly exported environment variable PHOXI_CONTROL_PATH

echo $PHOXI_CONTROL_PATH

Output should be /opt/PhotoneoPhoXiControl

Please let me know about the result. Regards,

Matej

TFNeto commented 5 years ago

Hi, i had this same issue.

I think it is a compiler problem. I changed from gcc 4.9.4 to gcc-5. if u need help with this -> http://tuxamito.com/wiki/index.php/Installing_newer_GCC_versions_in_Ubuntu

Worked for me!

MatejBartosovic commented 5 years ago

@TFNeto PhoXI libraries are compiled with gcc 5.4 and gcc is not backward compatible, so you need gcc 5.4 or higher to use PhoXi libraries. Default compiler in Ubuntu 16 is gcc 5.4 so you should have correct compiler if you are using Ubuntu 16.

I think that your problem was not the same because there is a missing declaration of data types not the problem during linking(I think that you had a problem during linking).

TFNeto commented 5 years ago

@MatejBartosovic i think the problem comes from the installation procedure. The install_prerequisities.sh will instal gcc-4.9 and give it a 60 priority (which in my case made it the default compiller) If PhoXI libraries are compiled with gcc 5.4 i dont see the need for that in the install.

Merwanski commented 5 years ago

Dear

@MatejBartosovic here is the result I am getting when trying the two commands Screenshot from 2019-04-25 12-05-15 It is the same result as you

@TFNeto Thank you for your feedback but unfortunately didn't work as well because as @MatejBartosovic already mentioned earlier the error I am getting is due to some data types declaration missing

Any other possible solution? Regards Merwan

MatejBartosovic commented 5 years ago

Hi

It looks like you have the correct version of PohXiControll but cmake export old headers. Please, can you try the following commands and let me know about the result.

whereis PhoXiControl
$PHOXI_CONTROL_PATH/bin/PhoXiControl --version
md5sum $PHOXI_CONTROL_PATH/API/lib/*
md5sum $PHOXI_CONTROL_PATH/API/include/*

Maybe there was some error during installation of 1.2.7 and headers was not replaced, you can try to run install again.

Regards, Matej

Merwanski commented 5 years ago

Hi @MatejBartosovic

Here are the results I am getting

Screenshot from 2019-04-29 10-02-42

What do you think is missing? and causing the error?

Regards Merwan

MatejBartosovic commented 5 years ago

Hi,

Everything seems to be correct. Can you try to compile example code provided with installation file? The code with own cmake list is available in /opt/PhotoneoPhoXiControl/API/examples/CPP/FullAPIExample_CPP. Can you copy this code to your home folder and built it please?

cp -r /opt/PhotoneoPhoXiControl/API/examples/CPP/FullAPIExample_CPP ~ 
cd ~/FullAPIExample_CPP
cmake .
make

Please let me know about the result

Regards, Matej

Merwanski commented 5 years ago

Hi @MatejBartosovic

Here is the result I am getting image

PS: I didn't have the sensor connected when I did the test

Merwan

najlepsiwebdesigner commented 5 years ago

@Merwanski Hi! This looks good, you should be ready to go now. During usage of photoneo APIs, you have to have application PhoXiControl running in your system. There is also pre-installed example camera which is responding even when physical scanner is not present. Link to download the app can be found either repo readme, or on official Photoneo web page.

Do you still have problem with compilation of phoxi_camera node?

Merwanski commented 5 years ago

Hi @najlepsiwebdesigner

The app is working without any problem The issue that I still have is with the phoxi_camera node when I try to do a catkin_make in my workspace (the initial message at the top of the page)

Merwan

najlepsiwebdesigner commented 5 years ago

Hi, I've tried compilation in ros:kinetic docker image with PhoXiControl 1.2.7 downloaded from official Photoneo website referenced in README. It works without any issue, I just needed to install all ROS dependencies ( rosdep install --from-paths src --ignore-src -r -y ).

The only way to reproduce output as you are experiencing is when I install old PhoXiControl installer, version 1.1.62. I've tried all combinations of installation steps and I've always ended up with this behaviour.

Can you please try these steps:

Thank you