In the past, we tested HD FPV with our favorite Virturilka as a video source. Then the tests showed that everything is fine, the first-person view of model management is quite a real deal. The main thing - would be a normal communication channel. While the HDMI input is for Virtualka in the production process (by the way, there is already the first test sample , but the driver is not yet ready), we decided to look for more options for the organization of the communication channel. In the comments a lot of humor was on the topic of 4G, so we thought - why not? ')
In general, Virturilka was installed on the machine (low-speed, but all-wide Chinese crawler), connected instead of the standard RC-receiver. In Virtual Virtku a modem is plugged from an unnamed company (but everyone understands that this is Yota ). There are four PWM channels onboard on Virtualvrika, so that it can immediately “out of the box” function as an onboard RC receiver for four channels. To control the machine usually need only two channels, so that even a search is obtained. Virtual Server runs a command server with the proud name rcboard, which I have been doing the past few days. Softinka turned out pretty cool, but I will not publish until I clean out some shoals (as without them).
On the control side is an application that takes a signal from any Windows joystick. Since most RC apps (control equipment, remote, in short) have a coaching connector, you can connect this same app to your computer using a USB adapter. As a result, the app is seen by the operating system as an ordinary joystick. By the way, under Linux, everything is much simpler in terms of programming, but under Windows I had to learn the unknown C #. In short, the .Net application is launched on the control side, which processes the specified joystick and sends packets to the Virturile.
As in our case, Virtuirlka goes on the Internet through Yota - the question arose how to send commands to it. Commands go via UDP (I advise everyone - only UDP, no TCP TCP), while Yota has no white ip. White ip can be connected to a legal entity (400 rubles per month). We can connect as there is a legal entity, but this is completely non-kosher. So there was a way to send commands on board without a white IP address. A method known as UDP Hole Punching. More precisely, a simplified version of this method. Since in this topic I just want to show the test results, so to speak, for the seed, let's postpone the implementation details a bit, because I want to add a full-fledged jupe hole panching for any control method, but now I need a white ip on the control side.
I would also like to speak about the type of management. The same Parrot ArDrone is controlled from a tablet / smartphone. Our devices (which are based on Virturilka) are controlled by many from a tablet / smartphone. But this does not mean that this kind of control is good. Honestly, this is the most crappy kind of control. When controlling anything, you need to feel the controls in order to look only at the picture from the camera and not think “but did I hit the virtual joystick with my finger”. So there’s nothing better than the usual PC apps. Is that USB steering wheel / pedals, they are also supported by my soft (by itself, it's just an ordinary joystick). For cars, it is the steering wheel and pedals - the most nishtyag.
How is it done
And now in the case. Yesterday morning I added this server of commands (which is started on Virturile), I tried it, I was surprised that it works. He informed his colleagues and was about to go to bed. However, one colleague was in touch and volunteered to speak the first tester. So it was not possible to go to bed, I had to get dressed and move with the machine into the street. I watched the machine and a colleague drove it from Peter. Iota's signal is not very good here, so a colleague (on a mobile phone via Skype) reports that the video is on, but often crumbles. Telemetry from the board (via the telemetry channel, the voltage of the battery and the parameters of the Yota signal are given to the steering telemetry) showed that the signal is really lousy. But the machine was going, the video somehow went.
By the way, about the video. After testing HD video at a resolution of 1280x720, there is already no desire to return to the usual 640x480, so all tests are carried out in HD. For Yota, the bitrate was reduced to one megabit, but even with one megabit, 720p looks better than 640x480.
Encouraged by the result, a colleague ran to the nearest hobby store and bought the exact same crawler there. Connecting to it a Virturile with test firmware is a matter of five minutes. So after half an hour already realizator went to the street, and I connected the app to my computer and tried to steer.
It turned out that in St. Petersburg, in any case, in one residential area (this was not included in the video) and in the center of Yota it works much better than near my house in Moscow. So I drove without problems on a typewriter, sitting in a chair six hundred kilometers away from her :-) There is no delay at all, the video does not fall apart, everything is just perfect.
So the implementer went with the crawler to the palace square. Well, if we carry out tests - in an interesting place :-) We didn’t think about increasing the bitrate of the video, although there is clearly a considerable amount of reserve. So all pokatushki passed it with a stream of 1 mb / s. At first, I was afraid to go fast, but soon I settled in and became very short of crawler speed. Actually, with such a great video you can drive much faster. But there are no other machines at hand yet, so let at least something.
In general, this is what happened as a result. The tests turned out to be random, so they shot what they had to do. Even the recording of the stream, which under the linux normally works, under Windows, as it turned out, does not plow, it must be done differently. So I had to record the usual webcam from the screen, plus I was recording the view from my side.
PS To be honest, I did not expect that everything will turn out so well. Yota turned out to be better than I thought of her, anyway, in St. Petersburg :-) I’m accustomed to taxiing different things, but it was very cool to drive around Palace Square and Nevsky Prospect, sitting at home in Moscow. And most importantly - everything is based on our brainchild - Virturilki :-)
UPD> the unexpected continuation turned out. This time, by airplane .