RTABMAP on windows 10 cannot proceed because OpenCL.dll cannot be found

classic Classic list List threaded Threaded
11 messages Options
Reply | Threaded
Open this post in threaded view
|

RTABMAP on windows 10 cannot proceed because OpenCL.dll cannot be found

agribot
I'm trying to get RTABMAP to work on my 64 bit windows 10 laptop, but after installing RTABMAP, using the executable file on it's download site, RTABMAP responds with the infameous "The code execution cannot proceed because OpenCL.dll cannot be found".

How can this be resolved ?

I've tried the following so far;- ) Ran scf /fixnow - no good. ) Uninstalled and reinstalled RTABMAP several times - no good ) Copied the existing opencl.dll file from syswow64 to the system 32 folder - no good

None of the above efforts resolved the problem.

Background information;- The machine does not have any Nivia card or GPU. I have visual studio 2019 community version working on the laptop. I also have the Find-Object application created by the same organisation as RTABMAP working on the machine. I do not know if this or some other installed software is causing the problem.

Can you tell me how to get RTABMAP sucessfully installed and working on my 64 bit windows 10 laptop ?

Many thanks Agribot
Reply | Threaded
Open this post in threaded view
|

Re: RTABMAP on windows 10 cannot proceed because OpenCL.dll cannot be found

matlabbe
Administrator
Hi,

You may look at this post: https://github.com/introlab/rtabmap/issues/135#issuecomment-257179229

The opencl.dll you are copying may be 32 bits. You can also copy the dll directly in the bin directory of rtabmap.

cheers,
Mathieu
Reply | Threaded
Open this post in threaded view
|

Re: RTABMAP on windows 10 cannot proceed because OpenCL.dll cannot be found

agribot
Thank you for posting your helpful reply.
I downloaded a 64 bit opencl.dll file, filed it in the RTAB-MAP bin sub-folder and that got RTAB-MAP to run.
Now, when it is opening, I get the following error / warning message;-

ERROR: In C:\workspace\VTK-7.0.0\Rendering\OpenGL2\vtkOpenGLRenderWindow.cxx, line 545
vtkWin32OpenGLRenderWindow (000001C7E1DA5DC0): GL version 2.1 with the gpu_shader4 extension is not supported by your graphics driver but is required for the new OpenGL rendering backend. Please update your OpenGL driver. If you are using Mesa please make sure you have version 10.6.5 or later and make sure your driver in Mesa supports OpenGL 3.2.

and ... in an RTABMAP consol is read ... known incorrect sRGB profile.

I'm very much learning how to start up and use RTABMAP and I hope to just get it to operate with the very simple, basic mono USB camera plugged into my windows 10.
But ... Even if I select usb camera as the source..
when I do ...
new database
select usb camera
select go
the consol window displays...
[ERROR] (2020-10-14 16:02:27) CameraRGB.cpp:789::rtabmap::CameraVideo::init() Parameter "rectifyImages" is set, but no camera model is loaded or valid.

Can RTABMAP work on a windows 10, 64 bit, with a mono usb camera , if only just as a very basic introduction to RTABMAP ?
Thanks
Reply | Threaded
Open this post in threaded view
|

Re: RTABMAP on windows 10 cannot proceed because OpenCL.dll cannot be found

matlabbe
Administrator
The current windows binaries may require a GPU for VTK rendering. Not sure if the cloud will actually appear even if this error is shown. The incorrect sRGB profile is a common warning on some systems that can be ignored.

However, the main issue for your use case is that Monocular SLAM is not supported in RTAB-Map. The USB input is only for the special case we would want to do only loop closure detection tests or if we want to localize in an already created 3D map with another sensor (RGB-D or stereo camera).

To most basic usage of RTAB-Map requires a RGB-D camera or a Stereo camera: https://github.com/introlab/rtabmap/wiki/Kinect-mapping
Examples of compatible devices: RealSense D400 series, T265, MyntEyeS camera, Zed camera, Kinect Xbox 360, Kinect Xbox One, Kinect For Azure... See the Detection->Select Source menu.

cheers,
Mathieu
Reply | Threaded
Open this post in threaded view
|

Re: RTABMAP on windows 10 cannot proceed because OpenCL.dll cannot be found

agribot
Many thanks for your helpful answer
Reply | Threaded
Open this post in threaded view
|

Re: RTABMAP on windows 10 cannot proceed because OpenCL.dll cannot be found

agribot
In reply to this post by matlabbe
Please alow me to post a question on this site about your other excellent application;-
Find-Object ?

I'm asking on this related site because it seems that your impressive work has moved to this RTABMAP topic and perhaps the Find-Object topic is a lower priority ?


I have Find-Object installed on my windows 10 laptop, using my simple USB camera ( simple mono, manufactured by TeckNet, camera type C016.
That is working fine - Very impressive !
Now ...
I'm trying to get Find-Object to connect to my Raspberry pi  picamera via my wifi network, using the
Find-Object function ;- " Camera from TCP/IP " . but I cannot get that to work. I do not know what values to set up on both sides

I have a server / client socket connection running between my raspberry pi board and my laptop.
Some questions;- should the raspberry pi board be running the server or the client side ?
what values do I use ( ip addresses, port values, on both sides ?

Again, many thanks to you for your great help. I find both RTABMAP and Find-Object very interesting.

Regards
Agribot

Reply | Threaded
Open this post in threaded view
|

Re: RTABMAP on windows 10 cannot proceed because OpenCL.dll cannot be found

matlabbe
Administrator
Indeed, most of my time is on RTAB-Map. I still update Find-Object if needed (e.g., when a new OpenCV version is breaking the code for example).

Did you look at this example?

For example, find_object-tcpRequest could run on the RPI and Find-Object on the laptop. I added a new example for streaming a webcam from one computer to another one.
https://github.com/introlab/find-object/wiki/TcpRequest#streaming-images-to-another-computer

cheers,
Mathieu
Reply | Threaded
Open this post in threaded view
|

Re: RTABMAP on windows 10 cannot proceed because OpenCL.dll cannot be found

agribot
Regarding ... Getting Find-Object to interface between an RPI-4 board and a laptop, using TCP across my wifi network

Thank you for your helpful reply.

Yes , I have studied the examples you helpfully provide , but ... unfortunately I'm not experienced enough to figure out some of the details.

I had an idea ... in order to ' keep it simple ' and learn how to get Find-Object to work between machines..
 I decided to try to get it working between 2 Windows 10 machines first !

So ... here is my initial set-up;-
Laptop A is a 64 bit windows laptop, with Find-Object version 0.6.0 installed. On my wifi network, its IP address is xxx.yyy.zz.07

Laptop B is a 32 bit windows 10 laptop , with Find-Object version 0.4.4 installed. Its IP address is xxx.yyy.zz.05 .
Note 1 )  Find-Object version 0.4.4 is installed on this machine

The 2 laptops can ping each other, so that aspect of networking is OK

Find-Object works on each laptop stand-alone. I have captured a picture of a coffee mug and can get each machine working alone in the standard GUI mode to detect that mug.

On the 32bit machine I notice that some of the exe files  in the bin folder are different to the file names shown on the web-page.

I see the following 5 exe files in the bin folder on the 32 bit machine ( along with many other files ) ;-
 
 

  So ... here is the set-up I have tried;-  With a USB camera connected to the 32 bit laptop

 I have stored a photograph of the coffee mug in the /bin folder (the photograph file is named mug2.png ) on the 64 bit machine

When I use  command on the 64 bit laptop
Find-Object.exe --console --object box.png --config "" --General/invertedSearch false --Camera/6useTcpCamera "true" --Camera/8port 5000 --General/port 6000 --General/autoStartCamera "true"

That runs


   


And then I run the command on the 32 bit laptop ...  

 find_object-imagesTcpServer.exe -p 5000

That laptop says “ Images server waiting on "169.254.203.127 : 5000"


But ... when I present the coffee mug in front of the camera on the 32 bit machine ... nothing happens.

What am I doing wrong ??

Q 1 ) Can Find-Object network between a 64 bit windows 10 and a 32 bit windows 10 machine ?
Q 2) What .exe file needs to be run on each machine ?
Q 3 ) Looking further , later , after it works between windows machines ...what specific.exe file would I have to download to a Raspberry pi 4 board ?  

Many thanks for your great help on this Find-Object topic. I'm sure many other people would be interested in getting this working. Find-object is a valuable introduction to this subject, along with your more advanced RTABMAP solution ( for 3D applications ).

Please let me know,

Thanks

Robert
Reply | Threaded
Open this post in threaded view
|

Re: RTABMAP on windows 10 cannot proceed because OpenCL.dll cannot be found

matlabbe
Administrator
Hi Robert,

Can you confirm that on the same computer it works? Just tested those two commands on a Windows 10 laptop and Find-Object 0.6.3 (note that it didn't work with 0.6.2, so I released a new version):

Find-Object-0.6.3-win64\bin>Find-Object.exe  --object C:\object.jpg --config "" --General/invertedSearch false --Camera/6useTcpCamera "true" --Camera/8port 5000 --General/port 6000 --General/autoStartCamera "true" --debug

Find-Object-0.6.3-win64\bin>find_object-tcpImagesServer.exe --host 127.0.0.1 5000

Don't launch with --console first, to see if Find-Object is actually receiving images.

Make sure you check Private Network access for Find-Object when Windows firewall asks for it. It can be changed later in:
Reply | Threaded
Open this post in threaded view
|

Re: RTABMAP on windows 10 cannot proceed because OpenCL.dll cannot be found

matlabbe
Administrator
For your RPI question, to install latest version on RPI, follow unix/ubuntu commands here: http://introlab.github.io/find-object/#from-source

The qt and opencv binaries version may be different, just install the ones your OS have.
Reply | Threaded
Open this post in threaded view
|

Re: RTABMAP on windows 10 cannot proceed because OpenCL.dll cannot be found

agribot
In reply to this post by matlabbe
Hi
Thank you for your efforts,

I have checked the Windows defender setting as you suggest. It allows Find-Object to run.

I then tried out version 6.3 as follows
I un-installed the existing version 6.0 from my windows 10 ( 64 bit ) laptop and installed the 6.3 version. I used the win64exe file  located at  https://github.com/introlab/find-object/releases/download/0.6.3/Find-Object-0.6.3-win64.exe  to do the installation.

When I run Find-Object version 6.3 in the normal GUI mode, it works OK ( but see the problem when I select the use “tcp camera” option … below )

Then , after closing the app as normal, I tried the command lines you posted, in a windows cmd console.
When I run either of the 2 command lines, the laptop responds with

“This App can’t run on your PC. To find a version for your PC, check with the software publisher. “


Then, if I try to run Find-Object again, in the normal GIU mode as before, it will not run this time. I have to re-install Find-Object !

Even if I power down and re-start the laptop, Find-Object does not work, even in the standard GUI mode after running the command line in a windows cmd console !

To get version 6.3 to work again, I had to un-install it and re-install it.

Further tests;-
After re-installing Find-Object (version 6.3 ) it works Ok in the basic GUI mode.
But
If I then select the use “tcp camera” option in the parameters/camera , the camera seems to switch to that mode, but when I then un-select that option to go back to the normal USB camera,
the Find-Object app hangs up. The problem happens when I un-select the “tcp camera” option. It fails to go back to the normal setting and it just hangs-up

 


It looks like version 6.3 has some problems.


But regardless of the new 6.3 problems, please can you considering the previous versions…

I think many people will be interested in Find-Object if it can use images sent across a wifi network , as I have asked about.
 
Please , can you reply to my 3 basic questions.


Q 1 ) Can Find-Object network between a 64 bit windows 10 and a 32 bit windows 10 machine ?
Q 2) What .exe file needs to be run on each machine ? ( with exactly which command line arguments ?)
Q 3 ) Looking further , later , after it works between windows machines ...what specific.exe file would I have to download to a Raspberry pi 4 board ?  

Many thanks for your helpful efforts and please keep up your good work,

Robert