Delayed Video Feed For Your Rover
In this article you'll learn how to prepare for a future career in rover driving. More specifically, you'll get a sense of the delayed round trip from sending commands to a rover on another planet. We'll use a video streaming server and some specialised software, but it's all free. You'll also need a laptop, a smart phone, and a radio controlled vehicle. Not too unreasonable for a home in the 21st Century. You'll also need to be within range of a wireless signal, so being next to or inside your home is ideal.
The following diagram shows an overview of the streaming process. You setup the computer, webcam, rover, and targets int one room, and point the webcam at the rover. It's easier to position an external USB webcam, but you can use the webcam integrated into a laptop if you tilt the screen forward. You transmit the view from the webcam to an external streaming server. You can then sit in an adjacent room and view the stream on a second device, for example a mobile phone. You can control the rover from the adjacent room and watch the delayed video stream.
Choosing a time delay
Full disclosure, nobody is using video streams to drive rovers, yet. Although in 1973 the Lunokhod 2 rover was driven in real-time, using a video feed that updated with one frame every 3.2 to 21.1 seconds. This gap between frames was most likely caused by the limited bandwidth - similar to a really slow Internet connection. However, even between the Earth and the Moon, there would be a delay in the round trip signal:
- Distance to the Moon: 384,400,000 m (average)
- Speed of light: 299,792,458 m/s
- Distance / speed = time
- 384,400,000 / 299,792,458 = 1.28 s (each way)
- Round trip = 2.56 s
So, if you pressed forward on the controls, you'd see the result 2.56 seconds later.
There have also been serious discussions about using Phobos and Deimos as outposts for exploring Mars. It's likely that any people stationed on those moons will be remotely controlling rovers on the Martian surface. Round trip signals between the moons and Mars are as follows:
- Phobos: 9,517,580 m / 299,792,458 m/s = 0.03 s x 2 = 0.06 s
- Deimos: 23,470,900 m / 299,792,458 m/s = 0.08 s x 2 = 0.16 s
That's almost instantaneous, so it isn't as interesting for our rover driving school.
Setup your planet surface
Start by laying out the features of your planet surface. Spread out a couple of objects to investigate with your rover. These can be anything, from actual rocks to tins of soup.
Install OBS Studio
Open Broadcaster Software (OBS) studio, is an open source recording and streaming software application, which is available for Windows, Mac, and Linux. You can download it from here: https://obsproject.com/.
Setting up the stream on YouTube
You can use lots of different streaming services with OBS Studio, including Twitch, Mixer, Facebook Live, and Twitter Periscope. In this article I'm using YouTube, because I'm familiar with it, and it's easy to setup a stream to a single person.
- Log in to YouTube.
- Click the Create a video or post icon (camera with plus symbol) in the top-right corner of the page, and then click Go Live.
- Click Stream.
- In the New stream panel, enter a title, change Public to Unlisted, and then click Create Stream. You could select a private stream, but that requires you to log in on the second device. I don't think that anyone will randomly stumble upon your stream.
- In the Stream setup help panel, click Copy for the stream name/key. You can also find stream key in the Stream settings.
- Click Done.
Creating a delayed stream in OBS Studio
- Start OBS Studio.
- From the menu, select File > Settings.
- In the Settings window, click Stream.
- In the Service list, select YouTube.
- In the Stream Key field, paste in the stream key from YouTube.
- There is most likely going to be a delay in the stream caused by the round trip to the streaming server and the processing involved. But we'll add a bit extra. Click Advanced.
- In the Stream Delay section, select the Enable check box. Enter a Duration of "3s", for three seconds. Or any other value that you'd like.
- In the Video section, select an Output (Scaled) Resolution. This is the size of the video that will be sent to YouTube. I chose 960x540. I think that a slightly grainy, low resolution video adds to the experience.
- Click OK.
Streaming your webcam in OBS Studio
- In the Scenes panel, click the Plus Symbol.
- In the Add Scene panel, enter a name, and then click OK.
- In the Sources panel, click the plus Symbol, and then click Video Capture Device.
- In the Create/Select Source panel, enter a name, and then click OK.
- In the Properties panel, select your webcam in the Device list, and then click OK.
- If the webcam only fills one corner, drag one of the corner grips to fill as much of the space as possible. Place the camera so that you can see your planetary surface.
- In the bottom-right corner, click Start Streaming.
Starting the stream on YouTube
- Go back to the YouTube page.
- In the top-right corner, click the Share icon (arrow), and copy the link.
- Email the link to yourself, or copy it to your phone or other second device.
- On the YouTube page, click Go Live.
- When you are finished, you'll click End Stream, but there's lot to do before that.
Driving the rover
Give it a go. Try driving in between the targets, without running into them.