iirob/microepsilon_scancontrol

Problems with install.sh file

Closed this issue · 19 comments

Hi

I've been trying to follow the installation instructions but when I run the following command: ./install.sh "/path/to/sdk" but I get an error that says it could not find /libmescan/ even though libmescan is in the given path.
I also try to install manually. However I think I need to compile the microepsilon_scancontrol as a catkin package before I can use the launch file and when I do that, it can not find the variable LLT_LIBRARY and MESCAN_LIBRARY.
Any ideas what I might be doing wrong? Thanks!

Hi

I was able to solve the problem above by changing CmakeLists.txt

FIND_LIBRARY(LLT_LIBRARY  llt)
FIND_LIBRARY(MESCAN_LIBRARY  mescan)

to

FIND_LIBRARY(LLT_LIBRARY  libllt.so.1)
FIND_LIBRARY(MESCAN_LIBRARY  libmescan.so.1)

as mentioned in one of the comments. Now I get the following error:

/usr/local/lib/libllt.so.1.0: undefined reference to arv_buffer_get_status' /usr/local/lib/libllt.so.1.0: undefined reference to arv_buffer_get_data'
/usr/local/lib/libllt.so.1.0: undefined reference to arv_make_thread_high_priority' /usr/local/lib/libllt.so.1.0: undefined reference to arv_make_thread_realtime'
collect2: error: ld returned 1 exit status

Can you paste the full path you used with the install.sh script?
The error you get seems to be a problem with your aravis installation. Did you install it like in the install.sh script?

The full path that I'm using with install.sh is
'/home/keppel/scanCONTROL-SDK/C++ SDK (Linux)/binaries(x86_64)/'

This is where my scancontrol SDK folder is.

The install.sh file expects '/home/keppel/scanCONTROL-SDK/C++ SDK (Linux)/' as input. I should have written it more clearly in the readme. Can you try it again this way?

Now it says
Could not find /libmescan/ folder in /home/keppel/scanCONTROL-SDK/C++%20SDK%20(Linux)/binaries(x86_64)/.
You have to run ./install.sh "/path/to/C++ SDK (Linux)/" (binaries(x86_64) is located there)

Actually I have also tried manually adding all the paths in the install.sh file. After that I can run the install.sh file without any problems. However I can not use the launch file because their is no bin file created for the microepsilon_scan_control. To create a bin file I try to compile the repository you provide and that's when I get this error:

/usr/local/lib/libllt.so.1.0: undefined reference to arv_buffer_get_status' /usr/local/lib/libllt.so.1.0: undefined reference toarv_buffer_get_data'
/usr/local/lib/libllt.so.1.0: undefined reference to arv_make_thread_high_priority' /usr/local/lib/libllt.so.1.0: undefined reference toarv_make_thread_realtime'
collect2: error: ld returned 1 exit status

What does your C++ SDK (Linux) directory look like? For me it's

~/scanCONTROL-SDK/C++ SDK (Linux)$ ll
total 36
drwx------ 8 hartmann hartmann 4096 Dez  4 11:04 ./
drwxrwxr-x 4 hartmann hartmann 4096 Dez  4 11:04 ../
drwx------ 4 hartmann hartmann 4096 Dez  4 11:04 binaries(arm_x32)/
drwx------ 4 hartmann hartmann 4096 Dez  4 11:04 binaries (i386)/
drwx------ 4 hartmann hartmann 4096 Dez  4 11:04 binaries(x86_64)/
drwx------ 4 hartmann hartmann 4096 Dez  4 11:04 documentation/
drwx------ 9 hartmann hartmann 4096 Dez  4 11:04 examples/
drwx------ 2 hartmann hartmann 4096 Dez  4 11:04 license/
-rw-rw-r-- 1 hartmann hartmann   74 Jan 11  2017 ReleaseNotes.txt

and binaries(x86_64):

~/scanCONTROL-SDK/C++ SDK (Linux)/binaries(x86_64)$ ll
total 16
drwx------ 4 hartmann hartmann 4096 Dez  4 11:04 ./
drwx------ 8 hartmann hartmann 4096 Dez  4 11:04 ../
drwx------ 2 hartmann hartmann 4096 Dez  4 11:04 libllt/
drwx------ 2 hartmann hartmann 4096 Dez  4 11:04 libmescan/

Yeah I think I have the same files in the directory:

keppel@keppel-desktop:~/scanCONTROL-SDK/C++ SDK (Linux)$ ll
total 36
drwxrwxr-x 8 keppel keppel 4096 Dec 4 18:17 ./
drwxrwxr-x 4 keppel keppel 4096 Nov 10 16:18 ../
drwxrwxr-x 4 keppel keppel 4096 May 25 2016 binaries(arm_x32)/
drwxrwxr-x 4 keppel keppel 4096 May 25 2016 binaries (i386)/
drwxrwxr-x 4 keppel keppel 4096 May 25 2016 binaries(x86_64)/
drwxrwxr-x 4 keppel keppel 4096 May 25 2016 documentation/
drwxrwxr-x 9 keppel keppel 4096 May 25 2016 examples/
drwxrwxr-x 2 keppel keppel 4096 May 25 2016 license/
-rw-rw-r-- 1 keppel keppel 74 Jan 11 2017 ReleaseNotes.txt

keppel@keppel-desktop:~/scanCONTROL-SDK/C++ SDK (Linux)/binaries(x86_64)$ ll
total 16
drwxrwxr-x 4 keppel keppel 4096 May 25 2016 ./
drwxrwxr-x 8 keppel keppel 4096 Dec 4 18:17 ../
drwxrwxr-x 2 keppel keppel 4096 May 25 2016 libllt/
drwxrwxr-x 2 keppel keppel 4096 May 25 2016 libmescan/

I just checked the install script again and got the same errors as you. I think I fixed the script now. Please pull the changes and try again.

Unfortunately I still get the same error:

Could not find /libmescan/ folder in /home/keppel/scanCONTROL-SDK/C++%20SDK%20(Linux)/binaries(x86_64)/.
You have to run ./install.sh "/path/to/C++ SDK (Linux)/" (binaries(x86_64) is located there)

Are you inputting %20 instead of white space or is this just a visual bug? You have to use real white spaces. If it still doesn't work, try renaming the directory to a name without white spaces.

Hey

Yeah I've already changed the name and the install.sh script can work.
However, I can still not use the scanner.launch file, it gives the following error:

ERROR: cannot launch node of type [microepsilon_scancontrol/microepsilon_scancontrol_node]: can't locate node [microepsilon_scancontrol_node] in package [microepsilon_scancontrol]

How did you compile the package?

I've been trying to compile the package through catkin_make which is where I get the error in my second post:

/usr/local/lib/libllt.so.1.0: undefined reference to arv_buffer_get_status' /usr/local/lib/libllt.so.1.0: undefined reference toarv_buffer_get_data'
/usr/local/lib/libllt.so.1.0: undefined reference to arv_make_thread_high_priority' /usr/local/lib/libllt.so.1.0: undefined reference toarv_make_thread_realtime'
collect2: error: ld returned 1 exit status

arv_buffer_get_status is a function of aravis, so the aravis library didn't get installed correctly.

Hey so I removed everything and installed from scratch, the bugs are removed and I can successfully compile the repository. However when I run the scanner.launch file, it says

process[arm/microepsilon_scancontrol_node-2]: started with pid [26546]
[ INFO] [1513565471.055141697]: Shutter Time: 1.00ms Idle Time: 1.00ms Frequency: 500.00Hz
[ INFO] [1513565471.055205963]: Profiles for each Container: 50
[ INFO] [1513565471.055226930]: Lag compensation: 1.000ms
A error occured during searching for connected scanCONTROL
Connecting to [ INFO] [1513565472.060343549]: Connecting to Laser
[ERROR] [1513565472.060389218]: Couldn't start scanning. Reconnecting!
[ERROR] [1513565473.061748515]: Couldn't start scanning. Reconnecting!
[ERROR] [1513565474.063152955]: Couldn't start scanning. Reconnecting!
[ERROR] [1513565475.064530742]: Couldn't start scanning. Reconnecting!
^C[ERROR] [1513565476.065920823]: Couldn't start scanning. Reconnecting!

I've checked my connections to the laser sensor and the laser is ON but the driver isn't being able to connect.

Can you connect to the sensor with the vendor software?

Yes we can

This error means that the driver can't find any sensor in its subnet. If the sensor and the PC with the ROS node are in the same subnet and it can't find the sensor, I don't know what could be wrong.

The issue is resolved. Thank you!