It’s official the Orbbec Femto Mega is my favourite depth camera! and thanks to the wonderful ethernet option I can access multiple camera depths feeds over a local network… and with long ethernet cable runs
But I was wondering if can I access the skeleton tracking data? as I can access that through USBC via the Kinect Azure chop (with the Mega option picked) but there isn’t an Orbbec Chop to connect to the Orbbec TOP to access this data with the ethernet only connection (unless I’m missing something?)… can this be a wee feature request?
robmc
August 27, 2024, 4:11pm
3
I’m glad the cameras are working well for you. The Orbbec SDK doesn’t support skeleton tracking on its own and still relies on Microsoft’s libraries to do that part which is why it only works with the Kinect Azure nodes and there is no Orbbec CHOP.
However, you can still get ethernet body tracking working with the Kinect nodes by using a small trick described on Orbbec’s website here: K4A Access Femto Mega Network Mode - ORBBEC - 3D Vision for a 3D World
Basically, you need to put a config file on your desktop, or alongside the toe file you are loading, which enables ethernet device searches. This will make the network devices show up in the device list of the Kinect Azure TOP so you can access them like you would a regular USB camera.
Hope that helps. Let us know if you have further questions.
2 Likes
Oh brilliant, that makes sense… I wouldn’t have guessed that approach! that’s a fantastic work-around to access networked Orbbec cameras, thanks so much!
hello @robmc and @responsve
sorry I got another issue, maybe you can help?
I have the Femto Mega connected via LAN to my machine. I can see it via the Orrbec Top and using the correct IP:
Now I want to use the trick.
But:
I modified the config file and set the enumerable to true.
I put the file in the same folder as the toe file.
Now the Kinect Top behaves a little sluggish when I choose Orrbec.
However I can’t see the device in the dropdown:
Did I miss anything?
robmc
November 14, 2024, 11:22pm
7
The sluggishness is probably an indication that it is searching for the camera, but for some reason it isn’t finding it
When you have the config file in place, does the camera show up in the devices menu of the Orbbec TOP when you have specify IP address off? Does it show up in the device list if you use the Orbbec viewer?
I’m not sure exactly how the search works, but I wonder if there could be a firewall or network device blocking it.
I’ll chime in here… I’ve just got off a big immersive installation using two Femto Megas for tracking and I noticed that they they are sluggish / unreliable over long Ethernet runs… ie 80 metres… 50 metres max was optimal for my application… not sure if that’s a factor for you
thx for chiming in.
Mmh strange. I’m using a really short Lan cable for testing here.
I think it’s just my approach with that config file?
It’s in the same folder as the toe file with the modified enum thing.
I didn’t change anything else.
Do I need to do something with that wrapper?
I tried to overwrite the dlls for kinect in the TD folder, but that broke the Kinect Top to “can’t find library, please install blabla…”
Anything else?
robmc
November 15, 2024, 4:41pm
10
We’re using a custom version of the k4a.dll to allow for switching between native kinects and the orbbec, so swapping that out will definitely cause other problems.
Do you know the firmware version of your Femto Mega? The original versions of that camera did not support network searches unless you do a firmware update.
Have you had a chance to try the external Orbbec viewer app? I’d be curious to see whether it could find the camera over the network to eliminate whether this is a touchdesigner problem or not. The viewer is available in the assets section on their sdk page: Releases · orbbec/OrbbecSDK · GitHub
Thx I’ll check!
I could even see the femto mega in the orbbec top when it was connected via network. So it can be found and used in the orbbec top. See images above. But we need Kinect body tracking.
So just to be super clear/safe: I don’t have to switch out the DLL? Correct? I only need the xml?
Might take a few days to check. I’ll get back here!
Thx rob!
robmc
November 16, 2024, 5:20pm
12
You don’t need to switch any DLLs to get it working. That could be done as a hack for older versions of TouchDesigner before we added support for Orbbec, but it will just break things now.
Regarding the Orbbec TOP, I had just been wondering if you could see it in the Device menu without entering an IP address or using a USB cabcle.
One other idea: you could also set the TOUCH_TEXT_CONSOLE environment variable to 1 which will open a separate console window when you start touch. The Orbbec SDK will print a bunch of extra debug information to that window that may give us more information to work with. I know it shows the working directory which is also the location where it expects the xml file to be.
1 Like
Thx Rob!
I’ll have access again next week.
Here is the SN in the meantime: CL2T44100AJ
so I have it set up again here.
I can access the mega via the orbbec top like so:
however, firing the patch up with the edited config xml next to the file like so:
results in no beans:
the SDK starts Logging wildly though, and I can now find a OrbbecSDK.log.txt in a Folder called Log in the Project folder now.
here is the log:
[12/11 12:51:37.353434][debug][2360][Context.cpp:30] Context creating, work_dir=C:\Users\mschw\Documents\Projects 2024\FemtoMegaTests
[12/11 12:51:37.353504][debug][2360][Context.cpp:49] Config file version=1.1
[12/11 12:51:37.353523][debug][2360][FrameBufferManager.cpp:23] Max global frame buffer size updated! size=2048.000MB
[12/11 12:51:37.353534][info][2360][Context.cpp:68] Context created with config: C:\Users\mschw\Documents\Projects 2024\FemtoMegaTests\OrbbecSDKConfig_v1.0.xml
[12/11 12:51:37.353545][info][2360][Context.cpp:73] Work directory=C:\Users\mschw\Documents\Projects 2024\FemtoMegaTests, SDK version=v1.10.8-20240604-d1671a341
[12/11 12:51:37.362115][debug][2360][DeviceManager.cpp:30] DeviceManager init ...
[12/11 12:51:37.362127][info][2360][MfPal.cpp:103] createObPal: create WinPal!
[12/11 12:51:37.362133][debug][2360][MfPal.cpp:108] WmfPal init ...
[12/11 12:51:37.373282][debug][2360][MfPal.cpp:115] WmfPal created!
[12/11 12:51:37.373297][debug][2360][DeviceManager.cpp:34] Enable USB Device Enumerator ...
[12/11 12:51:37.383904][debug][2360][EnumeratorLibusb.cpp:322] queryDevicesInfo done!
[12/11 12:51:37.384094][debug][2360][MfPal.cpp:214] Create WinEventDeviceWatcher!
[12/11 12:51:37.384285][debug][2360][UsbDeviceEnumerator.cpp:77] No matched usb device found!
[12/11 12:51:37.384291][debug][2360][DeviceManager.cpp:43] Enable Net Device Enumerator ...
[12/11 12:51:37.386807][debug][2360][GVCPClient.cpp:223] bind 192.168.2.90:0
[12/11 12:51:38.390711][debug][2360][NetDeviceEnumerator.cpp:49] No net source port found!
[12/11 12:51:38.390738][debug][2360][NetDeviceEnumerator.cpp:33] No net device found!
[12/11 12:51:38.390939][info][2360][DeviceManager.cpp:15] Current found device(s): (0)
[12/11 12:51:38.390944][debug][2360][DeviceManager.cpp:52] DeviceManager construct done!
[12/11 12:51:38.390955][debug][2360][Context.cpp:81] Context destroying ...
[12/11 12:51:38.390959][debug][2360][DeviceManager.cpp:56] DeviceManager destroy ...
[12/11 12:51:38.390963][debug][2360][DeviceManager.cpp:64] DeviceManager Destructors done
[12/11 12:51:39.395428][debug][2360][MfPal.cpp:126] WmfPal destroyed!
[12/11 12:51:39.395694][info][2360][Context.cpp:84] Context destroyed
[12/11 12:51:39.395717][debug][28184][GVCPClient.cpp:223] bind 127.0.0.1:0 [**1 logs in 2008ms, last: 12:51:37.386836**]
[12/11 12:51:39.396180][debug][2360][Context.cpp:30] Context creating, work_dir=C:\Users\mschw\Documents\Projects 2024\FemtoMegaTests
[12/11 12:51:39.396206][debug][2360][Context.cpp:49] Config file version=1.1
[12/11 12:51:39.396215][debug][2360][FrameBufferManager.cpp:23] Max global frame buffer size updated! size=2048.000MB
[12/11 12:51:39.396222][info][2360][Context.cpp:68] Context created with config: C:\Users\mschw\Documents\Projects 2024\FemtoMegaTests\OrbbecSDKConfig_v1.0.xml
[12/11 12:51:39.396227][info][2360][Context.cpp:73] Work directory=C:\Users\mschw\Documents\Projects 2024\FemtoMegaTests, SDK version=v1.10.8-20240604-d1671a341
[12/11 12:51:39.396234][debug][2360][DeviceManager.cpp:30] DeviceManager init ...
[12/11 12:51:39.396252][info][2360][MfPal.cpp:103] createObPal: create WinPal!
[12/11 12:51:39.396257][debug][2360][MfPal.cpp:108] WmfPal init ...
[12/11 12:51:39.406544][debug][2360][MfPal.cpp:115] WmfPal created!
[12/11 12:51:39.406562][debug][2360][DeviceManager.cpp:34] Enable USB Device Enumerator ...
[12/11 12:51:39.416793][debug][2360][EnumeratorLibusb.cpp:322] queryDevicesInfo done!
[12/11 12:51:39.416984][debug][2360][MfPal.cpp:214] Create WinEventDeviceWatcher!
[12/11 12:51:39.417111][debug][2360][UsbDeviceEnumerator.cpp:77] No matched usb device found!
[12/11 12:51:39.417118][debug][2360][DeviceManager.cpp:43] Enable Net Device Enumerator ...
[12/11 12:51:40.420139][debug][2360][NetDeviceEnumerator.cpp:49] No net source port found!
[12/11 12:51:40.420169][debug][2360][NetDeviceEnumerator.cpp:33] No net device found!
[12/11 12:51:40.420372][info][2360][DeviceManager.cpp:15] Current found device(s): (0)
[12/11 12:51:40.420378][debug][2360][DeviceManager.cpp:52] DeviceManager construct done!
[12/11 12:51:40.420419][debug][2360][Context.cpp:81] Context destroying ...
[12/11 12:51:40.420424][debug][2360][DeviceManager.cpp:56] DeviceManager destroy ...
[12/11 12:51:40.420428][debug][2360][DeviceManager.cpp:64] DeviceManager Destructors done
[12/11 12:51:41.424011][debug][2360][MfPal.cpp:126] WmfPal destroyed!
[12/11 12:51:41.424193][info][2360][Context.cpp:84] Context destroyed
[12/11 12:51:41.447232][debug][2360][Context.cpp:30] Context creating, work_dir=C:\Users\mschw\Documents\Projects 2024\FemtoMegaTests
[12/11 12:51:41.447273][debug][2360][Context.cpp:49] Config file version=1.1
[12/11 12:51:41.447284][debug][2360][FrameBufferManager.cpp:23] Max global frame buffer size updated! size=2048.000MB
[12/11 12:51:41.447292][info][2360][Context.cpp:68] Context created with config: C:\Users\mschw\Documents\Projects 2024\FemtoMegaTests\OrbbecSDKConfig_v1.0.xml
[12/11 12:51:41.447297][info][2360][Context.cpp:73] Work directory=C:\Users\mschw\Documents\Projects 2024\FemtoMegaTests, SDK version=v1.10.8-20240604-d1671a341
[12/11 12:51:41.447303][debug][2360][DeviceManager.cpp:30] DeviceManager init ...
[12/11 12:51:41.447307][info][2360][MfPal.cpp:103] createObPal: create WinPal!
[12/11 12:51:41.447311][debug][2360][MfPal.cpp:108] WmfPal init ...
[12/11 12:51:41.457806][debug][2360][MfPal.cpp:115] WmfPal created!
[12/11 12:51:41.457829][debug][2360][DeviceManager.cpp:34] Enable USB Device Enumerator ...
[12/11 12:51:41.468150][debug][2360][EnumeratorLibusb.cpp:322] queryDevicesInfo done!
[12/11 12:51:41.468386][debug][2360][MfPal.cpp:214] Create WinEventDeviceWatcher!
[12/11 12:51:41.468517][debug][2360][UsbDeviceEnumerator.cpp:77] No matched usb device found!
[12/11 12:51:41.468523][debug][2360][DeviceManager.cpp:43] Enable Net Device Enumerator ...
[12/11 12:51:42.471614][debug][2360][NetDeviceEnumerator.cpp:49] No net source port found!
[12/11 12:51:42.471645][debug][2360][NetDeviceEnumerator.cpp:33] No net device found!
[12/11 12:51:42.471851][info][2360][DeviceManager.cpp:15] Current found device(s): (0)
[12/11 12:51:42.471856][debug][2360][DeviceManager.cpp:52] DeviceManager construct done!
[12/11 12:51:42.471864][debug][2360][Context.cpp:81] Context destroying ...
[12/11 12:51:42.471868][debug][2360][DeviceManager.cpp:56] DeviceManager destroy ...
[12/11 12:51:42.471872][debug][2360][DeviceManager.cpp:64] DeviceManager Destructors done
[12/11 12:51:43.475555][debug][2360][MfPal.cpp:126] WmfPal destroyed!
[12/11 12:51:43.475851][info][2360][Context.cpp:84] Context destroyed
[12/11 12:51:54.888023][debug][2360][Context.cpp:30] Context creating, work_dir=C:\Users\mschw\Documents\Projects 2024\FemtoMegaTests
[12/11 12:51:54.888076][debug][2360][Context.cpp:49] Config file version=1.1
[12/11 12:51:54.888086][debug][2360][FrameBufferManager.cpp:23] Max global frame buffer size updated! size=2048.000MB
[12/11 12:51:54.888094][info][2360][Context.cpp:68] Context created with config: C:\Users\mschw\Documents\Projects 2024\FemtoMegaTests\OrbbecSDKConfig_v1.0.xml
[12/11 12:51:54.888099][info][2360][Context.cpp:73] Work directory=C:\Users\mschw\Documents\Projects 2024\FemtoMegaTests, SDK version=v1.10.8-20240604-d1671a341
[12/11 12:51:54.888105][debug][2360][DeviceManager.cpp:30] DeviceManager init ...
[12/11 12:51:54.888109][info][2360][MfPal.cpp:103] createObPal: create WinPal!
[12/11 12:51:54.888113][debug][2360][MfPal.cpp:108] WmfPal init ...
[12/11 12:51:54.898876][debug][2360][MfPal.cpp:115] WmfPal created!
[12/11 12:51:54.898895][debug][2360][DeviceManager.cpp:34] Enable USB Device Enumerator ...
[12/11 12:51:54.909531][debug][2360][EnumeratorLibusb.cpp:322] queryDevicesInfo done!
[12/11 12:51:54.909713][debug][2360][MfPal.cpp:214] Create WinEventDeviceWatcher!
[12/11 12:51:54.909884][debug][2360][UsbDeviceEnumerator.cpp:77] No matched usb device found!
[12/11 12:51:54.909890][debug][2360][DeviceManager.cpp:43] Enable Net Device Enumerator ...
[12/11 12:51:55.913026][debug][2360][NetDeviceEnumerator.cpp:49] No net source port found!
[12/11 12:51:55.913058][debug][2360][NetDeviceEnumerator.cpp:33] No net device found!
[12/11 12:51:55.913380][info][2360][DeviceManager.cpp:15] Current found device(s): (0)
[12/11 12:51:55.913390][debug][2360][DeviceManager.cpp:52] DeviceManager construct done!
[12/11 12:51:55.913401][debug][2360][Context.cpp:81] Context destroying ...
[12/11 12:51:55.913405][debug][2360][DeviceManager.cpp:56] DeviceManager destroy ...
[12/11 12:51:55.913409][debug][2360][DeviceManager.cpp:64] DeviceManager Destructors done
[12/11 12:51:56.917793][debug][2360][MfPal.cpp:126] WmfPal destroyed!
[12/11 12:51:56.917976][info][2360][Context.cpp:84] Context destroyed
[12/11 12:51:57.856672][debug][2360][Context.cpp:30] Context creating, work_dir=C:\Users\mschw\Documents\Projects 2024\FemtoMegaTests
[12/11 12:51:57.856714][debug][2360][Context.cpp:49] Config file version=1.1
[12/11 12:51:57.856723][debug][2360][FrameBufferManager.cpp:23] Max global frame buffer size updated! size=2048.000MB
[12/11 12:51:57.856730][info][2360][Context.cpp:68] Context created with config: C:\Users\mschw\Documents\Projects 2024\FemtoMegaTests\OrbbecSDKConfig_v1.0.xml
[12/11 12:51:57.856735][info][2360][Context.cpp:73] Work directory=C:\Users\mschw\Documents\Projects 2024\FemtoMegaTests, SDK version=v1.10.8-20240604-d1671a341
[12/11 12:51:57.856741][debug][2360][DeviceManager.cpp:30] DeviceManager init ...
[12/11 12:51:57.856745][info][2360][MfPal.cpp:103] createObPal: create WinPal!
[12/11 12:51:57.856750][debug][2360][MfPal.cpp:108] WmfPal init ...
[12/11 12:51:57.866972][debug][2360][MfPal.cpp:115] WmfPal created!
[12/11 12:51:57.866996][debug][2360][DeviceManager.cpp:34] Enable USB Device Enumerator ...
[12/11 12:51:57.877563][debug][2360][EnumeratorLibusb.cpp:322] queryDevicesInfo done!
[12/11 12:51:57.877930][debug][2360][MfPal.cpp:214] Create WinEventDeviceWatcher!
[12/11 12:51:57.878159][debug][2360][UsbDeviceEnumerator.cpp:77] No matched usb device found!
[12/11 12:51:57.878176][debug][2360][DeviceManager.cpp:43] Enable Net Device Enumerator ...
[12/11 12:51:58.881155][debug][2360][NetDeviceEnumerator.cpp:49] No net source port found!
[12/11 12:51:58.881196][debug][2360][NetDeviceEnumerator.cpp:33] No net device found!
[12/11 12:51:58.881434][info][2360][DeviceManager.cpp:15] Current found device(s): (0)
[12/11 12:51:58.881449][debug][2360][DeviceManager.cpp:52] DeviceManager construct done!
[12/11 12:51:58.881458][debug][2360][Context.cpp:81] Context destroying ...
[12/11 12:51:58.881462][debug][2360][DeviceManager.cpp:56] DeviceManager destroy ...
[12/11 12:51:58.881466][debug][2360][DeviceManager.cpp:64] DeviceManager Destructors done
[12/11 12:51:59.885720][debug][2360][MfPal.cpp:126] WmfPal destroyed!
[12/11 12:51:59.885964][info][2360][Context.cpp:84] Context destroyed
[12/11 12:51:59.886315][debug][2360][Context.cpp:30] Context creating, work_dir=C:\Users\mschw\Documents\Projects 2024\FemtoMegaTests
[12/11 12:51:59.886342][debug][2360][Context.cpp:49] Config file version=1.1
[12/11 12:51:59.886352][debug][2360][FrameBufferManager.cpp:23] Max global frame buffer size updated! size=2048.000MB
[12/11 12:51:59.886359][info][2360][Context.cpp:68] Context created with config: C:\Users\mschw\Documents\Projects 2024\FemtoMegaTests\OrbbecSDKConfig_v1.0.xml
[12/11 12:51:59.886364][info][2360][Context.cpp:73] Work directory=C:\Users\mschw\Documents\Projects 2024\FemtoMegaTests, SDK version=v1.10.8-20240604-d1671a341
[12/11 12:51:59.886370][debug][2360][DeviceManager.cpp:30] DeviceManager init ...
[12/11 12:51:59.886374][info][2360][MfPal.cpp:103] createObPal: create WinPal!
[12/11 12:51:59.886378][debug][2360][MfPal.cpp:108] WmfPal init ...
[12/11 12:51:59.896823][debug][2360][MfPal.cpp:115] WmfPal created!
[12/11 12:51:59.896841][debug][2360][DeviceManager.cpp:34] Enable USB Device Enumerator ...
[12/11 12:51:59.907072][debug][2360][EnumeratorLibusb.cpp:322] queryDevicesInfo done!
[12/11 12:51:59.907240][debug][2360][MfPal.cpp:214] Create WinEventDeviceWatcher!
[12/11 12:51:59.907379][debug][2360][UsbDeviceEnumerator.cpp:77] No matched usb device found!
[12/11 12:51:59.907414][debug][2360][DeviceManager.cpp:43] Enable Net Device Enumerator ...
[12/11 12:52:00.910680][debug][2360][NetDeviceEnumerator.cpp:49] No net source port found!
[12/11 12:52:00.910707][debug][2360][NetDeviceEnumerator.cpp:33] No net device found!
[12/11 12:52:00.910910][info][2360][DeviceManager.cpp:15] Current found device(s): (0)
[12/11 12:52:00.910921][debug][2360][DeviceManager.cpp:52] DeviceManager construct done!
[12/11 12:52:00.910930][debug][2360][Context.cpp:81] Context destroying ...
[12/11 12:52:00.910933][debug][2360][DeviceManager.cpp:56] DeviceManager destroy ...
[12/11 12:52:00.910937][debug][2360][DeviceManager.cpp:64] DeviceManager Destructors done
[12/11 12:52:01.915908][debug][2360][MfPal.cpp:126] WmfPal destroyed!
[12/11 12:52:01.916118][info][2360][Context.cpp:84] Context destroyed
[12/11 12:52:01.916589][debug][2360][Context.cpp:30] Context creating, work_dir=C:\Users\mschw\Documents\Projects 2024\FemtoMegaTests
[12/11 12:52:01.916615][debug][2360][Context.cpp:49] Config file version=1.1
[12/11 12:52:01.916624][debug][2360][FrameBufferManager.cpp:23] Max global frame buffer size updated! size=2048.000MB
[12/11 12:52:01.916633][info][2360][Context.cpp:68] Context created with config: C:\Users\mschw\Documents\Projects 2024\FemtoMegaTests\OrbbecSDKConfig_v1.0.xml
[12/11 12:52:01.916656][info][2360][Context.cpp:73] Work directory=C:\Users\mschw\Documents\Projects 2024\FemtoMegaTests, SDK version=v1.10.8-20240604-d1671a341
[12/11 12:52:01.916667][debug][2360][DeviceManager.cpp:30] DeviceManager init ...
[12/11 12:52:01.916672][info][2360][MfPal.cpp:103] createObPal: create WinPal!
[12/11 12:52:01.916676][debug][2360][MfPal.cpp:108] WmfPal init ...
[12/11 12:52:01.926976][debug][2360][MfPal.cpp:115] WmfPal created!
[12/11 12:52:01.926992][debug][2360][DeviceManager.cpp:34] Enable USB Device Enumerator ...
[12/11 12:52:01.937936][debug][2360][EnumeratorLibusb.cpp:322] queryDevicesInfo done!
[12/11 12:52:01.938123][debug][2360][MfPal.cpp:214] Create WinEventDeviceWatcher!
[12/11 12:52:01.938279][debug][2360][UsbDeviceEnumerator.cpp:77] No matched usb device found!
[12/11 12:52:01.938288][debug][2360][DeviceManager.cpp:43] Enable Net Device Enumerator ...
[12/11 12:52:02.941084][debug][2360][NetDeviceEnumerator.cpp:49] No net source port found!
[12/11 12:52:02.941118][debug][2360][NetDeviceEnumerator.cpp:33] No net device found!
[12/11 12:52:02.941480][info][2360][DeviceManager.cpp:15] Current found device(s): (0)
[12/11 12:52:02.941485][debug][2360][DeviceManager.cpp:52] DeviceManager construct done!
[12/11 12:52:02.941495][debug][2360][Context.cpp:81] Context destroying ...
[12/11 12:52:02.941500][debug][2360][DeviceManager.cpp:56] DeviceManager destroy ...
[12/11 12:52:02.941503][debug][2360][DeviceManager.cpp:64] DeviceManager Destructors done
[12/11 12:52:03.945776][debug][2360][MfPal.cpp:126] WmfPal destroyed!
[12/11 12:52:03.946110][info][2360][Context.cpp:84] Context destroyed
for these tests I even deactivated my firewall.
Here is a screenshot of the cam firmware state etc.
@robmc all tips or ideas are welcome!
SOLVED!!!
I had the Gateway on the Orbbec set to 0.0.0.0 before.
Now I set it to my Router like so:
And it just started working!
So for everybody with the same issue:
0.0.0.0 as gateway apperently makes the camera undiscoverable?
Sorry if that’s obvious. Network stuff is a blindspot of mine…