Skip to content

Commit 3665e0f

Browse files
committed
Updated README and added pictures.
1 parent 30ef121 commit 3665e0f

File tree

4 files changed

+47
-12
lines changed

4 files changed

+47
-12
lines changed

Pics/RemoteController-GUI.png

308 KB
Loading
977 KB
Loading

Pics/Slide-NetworkConcept.png

314 KB
Loading

README.md

Lines changed: 47 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
# RecSyncNG
2+
13
RecSyncNG is a video recording app with sub-millisecond synchronization accuracy for multiple Android smartphones,
24
useful for creating affordable and easy-to-setup multi-view camera systems for robotics, SLAM, 3D-reconstruction, panorama stitching.
35

@@ -6,11 +8,19 @@ RecSynchNG is a fork of the original [RecSynch-android](https://github.com/Mobil
68
The original project has been improved with a remote GUI allowing for remote control of the android devices, centralized video download capability,
79
and a revised post-processing stage for the deployment of perfectly synchronized videos.
810

11+
## Concept
912

10-
## Installation and setup
13+
The folowing picture depicts the organization of a recording setup.
1114

12-
(Use img from the slides)
15+
![Conceptual network setup](Pics/Slide-NetworkConcept.png)
1316

17+
A set of Android devices act as "remote controlled cameras".
18+
One device acts as "Leader" and is configure as HotSpot sharing its ethernet connection.
19+
All other devices act as "Clients" and connect to the HotSpot WiFi network. No cables are needed.
20+
The only cabled connection is between the Leader and a controlling desktop machine.
21+
On the controlling machine runs a Remote Controller (together with a small http file server), which allows for the full management of the camera settings, recording control, and file download.
22+
23+
## Installation and setup
1424

1525
### Requirements
1626

@@ -29,26 +39,27 @@ The original project has been improved with a remote GUI allowing for remote con
2939
* configure its Ethernet adaptor with:
3040
* Static IP: 192.168.5.2
3141
* Mask: 255.255.255.0
32-
* Gateway 192.168.5.1
42+
* DNS: 192.168.5.1
43+
* Gateway: 192.168.5.1
3344
* Start a Wi-Fi hotspot, sharing the Ethernet connection.
3445
* Connect all other android devices to the Hotspot WiFi network.
3546

36-
3747
The master app should display now the connected clients and buttons for recording control
3848

49+
3950
### Remote controlling PC installation and setup
4051

4152
Configure the ethernet adaptor of your PC as:
4253
* Static IP: 192.168.5.1
4354
* Mask: 255.255.255.0
4455
* Gateway 192.168.5.1
4556

46-
Cable connect the PC and the Master device.
57+
Connect via a physical ethernet cable the PC to the Master device.
4758

4859
Verify the Ethernet connection with Ping. E.g., from the PC, in a terminal
4960

5061
```
51-
ping 192.168.5.2
62+
> ping 192.168.5.2
5263
5364
64 bytes from 192.168.5.2: icmp_seq=347 ttl=125 time=2.425 ms
5465
64 bytes from 192.168.5.2: icmp_seq=348 ttl=125 time=2.233 ms
@@ -60,7 +71,7 @@ ping 192.168.5.2
6071
Setup a python environment using Python 3.9+.
6172

6273
```
63-
cd PythonTools
74+
cd path/to/RecSyncNG/PythonTools
6475
python3 -m venv p3env-RecSynchNG
6576
source p3env-RecSynchNG/bin/activate
6677
pip install -r requirements.txt
@@ -80,39 +91,63 @@ For the post-processing of the videos, you need to install ffmpeg executable. E.
8091
* on client devices you should see the client ID and info about the connection status;
8192
* on the leader device you should see the list of connected clients.
8293

94+
TODO -- add screenshot(s)
95+
96+
8397
Second, start the software on the controlling PC.
8498

8599
On one terminal **start the http file server**. It starts a small http server ready to receive the recorded files from the android devices:
86100

87101
```
88-
cd PythonTools
102+
cd path/to/RecSyncNG/PythonTools
89103
source p3env-RecSynchNG/bin/activate
90104
python FileServer.py
91105
```
92106

93-
TODO -- pic of the server console
107+
This server will store files in a directory `PythonTools/uploads`.
108+
94109

95-
On another terminal, **start the remote controlling GUI** :
110+
![Screenshot of the Remote Controller](Pics/Screenshot-Terminal-FileServer.png)
111+
112+
In another terminal, **start the remote controlling GUI** :
96113

97114
```
98-
cd PythonTools
115+
cd path/to/RecSyncNG/PythonTools
99116
source p3env-RecSynchNG/bin/activate
100117
python RemoteController.py
101118
```
102119

103-
TODO -- pic of the GUI
120+
![Screenshot of the Remote Controller](Pics/RemoteController-GUI.png)
104121

105122

106123
### Recording video
107124

125+
Using the GUI displayed on the device (original instructions):
126+
108127
1. [Optional step] Press the ```calculate period``` button. The app will analyze frame stream and use the calculated frame period in further synchronization steps.
109128
2. Adjust exposure and ISO to your needs.
110129
3. Press the ```phase align``` button.
111130
4. Press the ```record video``` button to start synchronized video recording.
112131
5. Get videos from RecSync folder in smartphone root directory.
113132

133+
Using the Remote Controller (life is easier when sitting at your desk):
134+
135+
1. Set a `prefix` for your recording, like a name followed by a _Scene_ and _Take_ numbers.
136+
2. Click on `Status` to verify if the leader device is properly connected and all clients available.
137+
3. On the Remote Controller, set the `Exposure` and `Sensitivity` parameters and click `Send`.
138+
4. Start the autofocus to let the camera focus on your target. Stop the autofocus to fix the recording focal length.
139+
5. **Important** before the first recording, and to repeat maybe every couple of minutes, click `Align Phases`. This will ask each device to synchronize the shutters and record in synch.
140+
* **Important** Wait for 5 seconds for the alignment to finish. There is no feedback for the alignment to be completed, so if you start recording when the alignment is still in progress, your videos might be misaligned!
141+
6. Click `Record` to ask all devices to start recording.
142+
7. Click `Stop` to stop your recording.
143+
8. Click `Download` to receive on the local machine all the videos starting with the given `prefix`.
144+
145+
You can now optionally click on `Play Leader` to open your local video player and verify that the recording went well.
146+
To do so, you must first manually copy/paste the path to the upload directory in the text area above. (This procedure will be improved in future versions).
147+
114148
### Extraction and matching of the frames
115149

150+
TODO
116151

117152

118153
## Citations / Credits

0 commit comments

Comments
 (0)