Closed kwansik closed 3 years ago
Hi @kwansik,
Thanks for your interest in our project. That setup, i.e. 2 devices connected on a single PC wasn't a use case and it isn't tested. I can think of two possible reasons that it isn't supported as well:
When the remote_eye_service
is requested to spawn a remote_k4a
process, it will check if the process is already open and if it is it will kill it and then spawn a new one. This means that the service will open one remote_k4a
process but when it will be requested to open the second one, it will kill the first one.
You can stop the remote_eye_service
(from the "Services" Tab in "Task Manger") and try to connect the remote_ka4
application manually , to see if this work around fixes this problem.
Another thing is that if there are 2 remote_ka4
processes running, when they are requested to synchronize (via nPTP, and PTPd) both the processes will try to open the same port (on the same PC) to communicate with volcap
. This will have undefined behavior and probably crash one of the processes.
Best, Antonis
Thanks for a quick reply.
I could run remote_eye_k4a for a single device but we have problem running remote_eye_service and thus could not connect to valcap, I think:
c:\Windows\Microsoft.NET\Framework\v4.0.30319\InstallUtil.exe remote_eye_service.exe Microsoft (R) .NET Framework Installation utility Version 4.8.3752.0 Copyright (C) Microsoft Corporation. All rights reserved.
Exception occurred while initializing the installation: System.IO.FileLoadException: Could not load file or assembly 'file:///C:\Users\3080\VCL3D\release_5.0.0\remote\remote_eye_service\remote_eye_service.exe' or one of its dependencies. Operation is not supported. (Exception from HRESULT: 0x80131515).
You shouldn't run remote_eye_service
manually by double-clicking on it etc. You should install it on the system, and then it runs on the background.
If you followed the instructions and the service is installed, in order to connect manually to volcap
(i.e. without using remote_eye_service
's automatic connectivity) you should Stop
the service (i.e. open Task Manager and go to Services tab, then find _remote_eyeservice, right-click it and select Stop) and then follow the steps below:
volcap
remote_k4a.exe
via the Command Line as described here. Again, If you followed the instructions the command line arguments that will be needed will be only the --address
argument, which is the IP of the pc that RabbitMQ runs on (i.e. the IP of your PC).volcap
and hit Connect to connect with it.Best, Antonis
C:\Windows\system32>cd C:\Capturer\remote_eye_service
C:\Capturer\remote_eye_service>c:\Windows\Microsoft.NET\Framework\v4.0.30319\InstallUtil.exe remote_eye_service.exe Microsoft (R) .NET Framework Installation utility Version 4.8.3752.0 Copyright (C) Microsoft Corporation. All rights reserved.
Exception occurred while initializing the installation: System.IO.FileLoadException: Could not load file or assembly 'file:///C:\Capturer\remote_eye_service\remote_eye_service.exe' or one of its dependencies. Operation is not supported. (Exception from HRESULT: 0x80131515).
C:\Capturer\remote_eye_service>net start remote_eye_service The service name is invalid.
More help is available by typing NET HELPMSG 2185.
C:\Capturer\remote_eye_service>PAUSE Press any key to continue . . .
In my previous message I mentioned If you followed the instructions and the service is installed, because in your original message you said that you followed our instructions. So If you tried to install it again the installation process will fail.
Is there a case that the remote_eye_service
was already installed?
However, if you need to run volcap
on a single PC (i.e. with the device connected on that same PC) you don't need the remote_eye_service
installed.
You can try to connect manually without the service installed or running.
I tried remote_eye_service because manual connection did not work. I do not see any device listed on volcap. Following is the outputs just in case... Thanks.
C:\Capturer\bin>remote_eye_k4a.exe --address 192.168.186.113 Logging to: C:\Capturer\bin Connected K4A device /w serial no: 000934503412 Connecting to RabbitMQ broker: amqp://volumetric:capture@192.168.186.113:5672 # Handshake Sent hello from 000934503412 Waiting for welcome (press 'q' to quit) ...
---------------------------------------------------------------------<tried with both "Volumetric" and "volumetric">---------------
C:\Users\3080\VCL3D\release_5.0.0\volcap>volcap.exe -l 192.168.186.113 -b 192.168.186.113 -u Volumetric -p capture -v Connecting to broker: { amqp://Volumetric:capture@192.168.186.113:5672}
GL_VENDOR : NVIDIA Corporation GL_RENDERER : GeForce RTX 3080/PCIe/SSE2 GL_VERSION : 3.2.0 NVIDIA 457.30 GLSL_VERSION : 1.50 NVIDIA via Cg compiler
DDRenderInterfaceCoreGL initializing ...
DDRenderInterfaceCoreGL::setupShaderPrograms() DDRenderInterfaceCoreGL::setupVertexBuffers() DDRenderInterfaceCoreGL ready!
Connecting to broker: { amqp://Volumetric:capture@192.168.186.113:5672} refresh ips: 192.168.186.113 Volumetric capture 5672 C:\Capturer\bin remote_eye.log default.json Connecting to broker: { amqp://Volumetric:capture@192.168.186.113:5672} Connecting to broker: { amqp://Volumetric:capture@192.168.186.113:5672} refresh ips: 192.168.186.113 Volumetric capture 5672 C:\Capturer\bin remote_eye.log default.json Connecting to broker: { amqp://Volumetric:capture@192.168.186.113:5672}
Just in case, you should first open volcap
and then run remote_eye
(and volcap
can be started via double click).
Sorry for the inconvenience so far.
The other thing that could be happening is that you didn't make the correct firewall rules for communication with RabbitMQ
Thanks to your help, I'm now able to connect to single AzureKinect. I had silly errors in RabbitMq configuring:
I have multiple AK connected a workstation but remote_eye_k4a.exe always seems to connect one same device only.
Assuming I'll be able to connect multiple devices soon, I have further question in calibrations:
Thanks.
Hi again,
As I mentioned in my original reply, connecting multiple devices on a single workstation is not supported. (It will work for one device by it won't work with more than one). This is because our system follows a distributed design and the remote_k4a
clients can operate with one device only.
However, If not having NUCs is your problem you can also use spare laptops - or any other PC (remote_k4a
s do not require high processing capacities and we use NUCs because of their convenient size).
For the lack of IKEA packaging boxes, you just need to check the dimensions of the boxes from the IKEA page (look for JATTENE packaging boxes) and try to find (or make) boxes of the same size.
Hope I helped, Antonis
Thanks for your help and I set up a second device on a laptop successfully connected 2 devices.
I went ahead and installed followings in python 3.8: opencv-python tinyobjloader==2.0.0.rc7 OpenEXR (very painful install. had to download whl and place it under folder and give pip full path to it. and path should not have space or non-english character) scipy onnxruntime
Did a calibration captures and ran "process". Used default configurations except increasing inner outer loop count to 25 and 20. However it runs into an error saying no file found: \Data\Executables\Calibration\multisensor_calibration\Resources\data\model.onnx
Any idea on what could be an issue here? We used similar boxes (smaller and different dimensions). Thanks.
Hello @kwansik,
Indeed OpenEXR is a kind of painful installation, that's why we've bundled it under a single script.
I would suggest you to use the installation procedure above using one of the supported python versions, but in any case it should work, once every library is installed.
The missing model can be found here and it should be placed under the path
On the same topic, can you please give us some feedback once you make it running about the results if the calibration accompanied by the boxes information (sizes, maybe some captures, results). We're just curious.
If calibration seems to produce poor results, please refer to this page to try to place the calibration structure with the correct orientation, relative to the cameras. If you still cannot make it work, try to replicate the boxes dimensions more precisely.
IMPORTANT calibration can be performed when 3 or more devices are present!!
Thanks for quick replies. By the way, we only have boxes which sizes are different from those of IKEA JATTENE(smaller, and different ratios of WxDxH). Do you think it is worth to try with these boxes or we'd better build boxes with exact same size as IKEA JATTENE ? Thanks.
Unfortunately, our calibration method is data driven, so the boxes must have more or less the exact same size as the JATTENE ones,
Thanks for your help and I set up a second device on a laptop successfully connected 2 devices.
I went ahead and installed followings in python 3.8: opencv-python tinyobjloader==2.0.0.rc7 OpenEXR (very painful install. had to download whl and place it under folder and give pip full path to it. and path should not have space or non-english character) scipy onnxruntime
Did a calibration captures and ran "process". Used default configurations except increasing inner outer loop count to 25 and 20. However it runs into an error saying no file found: \Data\Executables\Calibration\multisensor_calibration\Resources\data\model.onnx
Any idea on what could be an issue here? We used similar boxes (smaller and different dimensions). Thanks.
Hi, I want to know how to connect two devices to one computer~
Thanks!
Hi,
I have followed pretty everything in https://vcl3d.github.io/VolumetricCapture/ including adding device repo, install rabbitmq and add user, etc, except 2 things
But when I starts volcap, there are no devices listed under "device".
So I was wondering if there are things I should do differently if I configure devices directly connected to localhost. Let me know. Thanks.