SplaTAM icon indicating copy to clipboard operation
SplaTAM copied to clipboard

NeRFCapture Connection Issues

Open Nik-V9 opened this issue 1 year ago • 22 comments

Regarding App Connection: I've found that some networks don't allow the two devices (phone & PC) to connect (for example, CMU's WiFi). However, using a router with CMU's internet worked. Also, I've found that it's good to clean out the app from the background when connecting it to the Python script.

I've seen unexplained connection issues with the NeRFCapture App. (https://github.com/jc211/NeRFCapture/issues/11)

We will try to release a better app and script to replace this for better support and to enable video streaming soon.

Nik-V9 avatar Dec 05 '23 19:12 Nik-V9

Regarding App Connection: I've found that some networks don't allow the two devices (phone & PC) to connect (for example, CMU's WiFi). However, using a router with CMU's internet worked. Also, I've found that it's good to clean out the app from the background when connecting it to the Python script.

I've seen unexplained connection issues with the NeRFCapture App. (https://github.com/jc211/NeRFCapture/issues/11)

We will try to release a better app and script to replace this for better support and to enable video streaming soon.

Hey, thanks for sharing. What do you mean clean out the app from background? Also, I'm using a home WiFi router, shouldn't be much of a problem but I'll test out the phone hotspot too

davidceka avatar Dec 05 '23 20:12 davidceka

I'm referring to the closing of the app shown here: https://youtu.be/5K1KgMKWEH8?si=yG8PqRoS8tDpdZ-o&t=35

In our experience, I think home WiFi routers should also work. Not sure what's happening; maybe you could try cyclonedds ps?

Re. phone hotspot: I needed to connect to an external phone's hotspot (apart from the active phone used for the app) to get things to work.

Nik-V9 avatar Dec 05 '23 20:12 Nik-V9

I'm referring to the closing of the app shown here: https://youtu.be/5K1KgMKWEH8?si=yG8PqRoS8tDpdZ-o&t=35

Oh the basic app closing, ok

In our experience, I think home WiFi routers should also work. Not sure what's happening; maybe you could try cyclonedds ps? image

The output shows no entities. Also tried to use an external phone to which the iphone and the pc connect to, but with no success. Is there any configuration to do on the iphone or just open the app to the "online" tab?

davidceka avatar Dec 05 '23 20:12 davidceka

That's interesting. You should at least see the Python script listed in the ps. Are you using the bash script to run the demo? Does it say waiting for frames ...?

Yes, you just need to open the app to the "online" tab.

cyclonedds ps screenshot

This is what I see when both the python script and the iPhone app are running and connected:

Screenshot 2023-12-05 at 4 14 03 PM

Nik-V9 avatar Dec 05 '23 21:12 Nik-V9

That's interesting. You should at least see the Python script listed in the ps. Are you using the bash script to run the demo? Does it say waiting for frames ...?

Yes, you just need to open the app to the "online" tab.

cyclonedds ps screenshot

This is what I see when both the python script and the iPhone app are running and connected:

Screenshot 2023-12-05 at 4 14 03 PM

https://pastebin.com/u4c7kVti

You'll find all i can see on this pastebin. Let me know if I can be of any help.

Edit: for the ps, I probably did it bad before, should've ran the ps check while the script was on. I did it now and still nothing appearing

davidceka avatar Dec 05 '23 21:12 davidceka

This is my output:

1701814429.392631 [0]    python3: udp initialized
1701814429.393142 [0]    python3: interfaces: lo udp/127.0.0.1(q1) wlo1 wireless udp/192.168.103.106(q9) docker0 udp/172.17.0.1(q9)
1701814429.393144 [0]    python3: using network interface wlo1 (udp/192.168.103.106) selected arbitrarily from: wlo1, docker0
1701814429.393144 [0]    python3: using network interface wlo1 (udp/192.168.103.106) selected arbitrarily from: wlo1, docker0
1701814429.393147 [0]    python3: selected interfaces: wlo1 (index 3 priority 0)
1701814429.393148 [0]    python3: presumed flaky multicast, use for SPDP only
1701814429.393151 [0]    python3: ownip: udp/192.168.103.106
1701814429.393152 [0]    python3: extmask: invalid/0 (not applicable)
1701814429.393153 [0]    python3: SPDP MC: udp/239.255.0.1
1701814429.393154 [0]    python3: default MC: udp/239.255.0.1
1701814429.393155 [0]    python3: SSM support included
1701814429.393194 [0]    python3: socket receive buffer size set to 20971520 bytes
1701814429.393198 [0]    python3: rtps_init: uc ports: disc 0 data 0
1701814429.393199 [0]    python3: rtps_init: domainid 0 participantid -2
1701814429.393200 [0]    python3: Unicast Ports: discovery 38755 data 38755
1701814429.393203 [0]    python3: socket receive buffer size set to 20971520 bytes
1701814429.393207 [0]    python3: socket receive buffer size set to 20971520 bytes
1701814429.393209 [0]    python3: Multicast Ports: discovery 7400 data 7401 
1701814429.393211 [0]    python3: socket receive buffer size set to 20971520 bytes
1701814429.393215 [0]    python3: interface wlo1: transmit port 51339

I think what you are observing has to do with the interface. My system shows a wlo1 interface while the terminal output you shared shows wlan. Maybe this could be the cause of the discrepancy?

The cyclonedds should discover the python script if it spawns correctly.

Nik-V9 avatar Dec 05 '23 22:12 Nik-V9

I think what you are observing has to do with the interface. My system shows a wlo1 interface while the terminal output you shared shows wlan. Maybe this could be the cause of the discrepancy?

I don't think it can be an issue, that's only the name of the network interface i'm using to connect to the wifi, so I'm not really sure

The ifconfig command only shows eno2, lo(loopback) and wlan0

davidceka avatar Dec 05 '23 22:12 davidceka

Another option could be to check the domain ID of cyclonedds: https://github.com/eclipse-cyclonedds/cyclonedds-python/issues/194

Nik-V9 avatar Dec 05 '23 22:12 Nik-V9

Another option could be to check the domain ID of cyclonedds: eclipse-cyclonedds/cyclonedds-python#194

If i got that correctly, both mine and your snippets both use id [0], I scanned that one while the demo was running but nothing. Where in the code do you choose the id to assign?

davidceka avatar Dec 05 '23 22:12 davidceka

We don't explicitly set it. We use the default domain ID, which should be [0]. Not sure what's up.

I tried this demo on another system; the other system also has an interface of wlo1.

Nik-V9 avatar Dec 05 '23 22:12 Nik-V9

We don't explicitly set it. We use the default domain ID, which should be [0]. Not sure what's up.

I tried this demo on another system; the other system also has an interface of wlo1.

It's probably a nomenclature by the system, i'm running archlinux and he calls them wlan, maybe on ubuntu the name is different; all the same i don't think that's what causing the issue but let's see if others can confirm.

davidceka avatar Dec 05 '23 23:12 davidceka

That's interesting. You should at least see the Python script listed in the ps. Are you using the bash script to run the demo? Does it say waiting for frames ...?

Yes, you just need to open the app to the "online" tab.

cyclonedds ps screenshot

This is what I see when both the python script and the iPhone app are running and connected:

Screenshot 2023-12-05 at 4 14 03 PM

Hey, thx for sharing. I also have a strange issue. When I tried nerfcapture using my ipad, it shows that my ipad connected to the host correctly with four entities. Then I turned off my ipad’s wifi And I tried it to using another iphone, but it cannot work with only two entities like the first img. When I use the tablet again, I can still connect successfully. I guess it's because the configuration has not been cleared completely but not for sure. I wonder why it happened. Thanks again.

weiyunpei avatar Dec 08 '23 08:12 weiyunpei

Have you ensured that the iPhone is connected to the same network?

That's definitely a weird behavior. Not sure what's happening internally with the NeRFCapture App's DDS.

We will have our own variant soon, which would be better and can also do video streaming.

Nik-V9 avatar Dec 08 '23 17:12 Nik-V9

For me, NeRF Capture failed to establish a connection with my laptop while using my home WiFi. However, hotspotting from my laptop worked without any issues.

nirmalsnair avatar Dec 09 '23 10:12 nirmalsnair

@Nik-V9 I've managed to make the cyclonedds service work on windows, but it chooses the wrong network interface (it chooses the ethernet connection and i want it to choose the wifi one). Do you know how can i do it?

davidceka avatar Dec 14 '23 14:12 davidceka

Regarding my situation,iPad Pro can connect successfully, but my iPhone 13 Pro cannot. The prerequisite is that your computer and iPad should be connected to the same network. The steps are as follows: while in online mode, run "bash bash_scripts/online_demo.bash configs/iphone/online_demo.py" and wait for the message "waiting for frames..." to appear. Then, open NerfCapture on the iPad and wait for approximately 3 seconds until the app displays "1 Connection(s)" on the top right corner. Click "Send" and the computer will receive the corresponding data set.

libaiwanovo avatar Dec 16 '23 11:12 libaiwanovo

I also have the same problem, the script bash bash_scripts/nerfcapture2dataset.bash configs/iphone/dataset.py always "Waiting for frames...". And I run cyclonedds ps print "Entities discovered: 2", but can not see the NeRFCapture APP. I am sure two device use same wifi, what can I do?

ansj11 avatar Dec 20 '23 08:12 ansj11

I have similar problem.

1703176322.823594 [0]      16948: using network interface WLAN (udp/192.168.50.157) selected arbitrarily from: WLAN, 本地连接* 11
1703176322.823594 [0]      16948: using network interface WLAN (udp/192.168.50.157) selected arbitrarily from: WLAN, 本地连接* 11
1703176322.823606 [0]      16948: selected interfaces: WLAN (index 5 priority 0)
1703176322.823611 [0]      16948: presumed flaky multicast, use for SPDP only
1703176322.823656 [0]      16948: ownip: udp/192.168.50.157
1703176322.823662 [0]      16948: extmask: invalid/0 (not applicable)
1703176322.823667 [0]      16948: SPDP MC: udp/239.255.0.1
1703176322.823671 [0]      16948: default MC: udp/239.255.0.1
1703176322.823675 [0]      16948: SSM support included
1703176322.827061 [0]      16948: socket receive buffer size set to 10485760 bytes
1703176322.827353 [0]      16948: rtps_init: uc ports: disc 0 data 0
1703176322.827367 [0]      16948: rtps_init: domainid 0 participantid -2
1703176322.827374 [0]      16948: Unicast Ports: discovery 57016 data 57016
1703176322.827399 [0]      16948: socket receive buffer size set to 10485760 bytes
1703176322.827499 [0]      16948: socket receive buffer size set to 10485760 bytes
1703176322.827596 [0]      16948: Multicast Ports: discovery 7400 data 7401
1703176322.827621 [0]      16948: socket receive buffer size set to 10485760 bytes
1703176322.827753 [0]      16948: interface WLAN: transmit port 57017

It never shows waiting for frames ...

  • iPhone and PC in the same WiFi
  • PC hosts a hotspot
  • iPhone hosts a hotspot
  • change another router

all the same

bill9109 avatar Dec 21 '23 16:12 bill9109

I found that my iPhone 13 Pro is the only device having dds connection issue, both my iPad Pro w/ LiDAR and iPad mini works.

I initially suspected that the dds on ios was choosing the cellular NIC over the wifi NIC but found that even if i put the phone into airplane mode the connection issue still existed.

Sticking to a iPad with LiDAR might be the solution to it currently.

RogerChern avatar Dec 27 '23 03:12 RogerChern

iPhone12Pro can't connect,but iPad can.

Zhangyangrui916 avatar Feb 21 '24 02:02 Zhangyangrui916

I have similar problem.

1703176322.823594 [0]      16948: using network interface WLAN (udp/192.168.50.157) selected arbitrarily from: WLAN, 本地连接* 11
1703176322.823594 [0]      16948: using network interface WLAN (udp/192.168.50.157) selected arbitrarily from: WLAN, 本地连接* 11
1703176322.823606 [0]      16948: selected interfaces: WLAN (index 5 priority 0)
1703176322.823611 [0]      16948: presumed flaky multicast, use for SPDP only
1703176322.823656 [0]      16948: ownip: udp/192.168.50.157
1703176322.823662 [0]      16948: extmask: invalid/0 (not applicable)
1703176322.823667 [0]      16948: SPDP MC: udp/239.255.0.1
1703176322.823671 [0]      16948: default MC: udp/239.255.0.1
1703176322.823675 [0]      16948: SSM support included
1703176322.827061 [0]      16948: socket receive buffer size set to 10485760 bytes
1703176322.827353 [0]      16948: rtps_init: uc ports: disc 0 data 0
1703176322.827367 [0]      16948: rtps_init: domainid 0 participantid -2
1703176322.827374 [0]      16948: Unicast Ports: discovery 57016 data 57016
1703176322.827399 [0]      16948: socket receive buffer size set to 10485760 bytes
1703176322.827499 [0]      16948: socket receive buffer size set to 10485760 bytes
1703176322.827596 [0]      16948: Multicast Ports: discovery 7400 data 7401
1703176322.827621 [0]      16948: socket receive buffer size set to 10485760 bytes
1703176322.827753 [0]      16948: interface WLAN: transmit port 57017

It never shows waiting for frames ...

  • iPhone and PC in the same WiFi
  • PC hosts a hotspot
  • iPhone hosts a hotspot
  • change another router

all the same

@bill9109 Hi, I'm facing same problem, have you solved it?

joontack-han avatar Mar 28 '24 02:03 joontack-han

iPhone12Pro can't connect,but iPad can.

the same.

ZhouJankin avatar May 17 '24 07:05 ZhouJankin