Has anyone tried this yet, even given the latency? Any advice, including what NOT to do, would be helpful! I may have an application, but am a new user.
I haven’t specifically controlled a BlueROV over satellite link, but I’ve unintentionally had to operate one with a delayed video feed. Purely anecdotally, latency in the mid-100s of ms is manageable, depending on what you’re doing, of course. All the high bandwidth control is done locally by ArduSub, and for the low bandwidth stuff you can do some back-of-the-envelope calculations (for instance, expected frequency of current changes and appearance of obstacles based on speed and visibility). If that frequency is low compared to the satellite teleoperation link (I’d expect at least 1-4 Hz for the link), then you could probably expect acceptable performance.
One could do a test by adding latency to the network adapter on the BlueROV’s Raspberry Pi.
It’s worth noting that the latency will vary based on the satellite link provider. Iridium which uses low Earth orbit satellites would be the lowest latency but just barely able to handle throughput for usable video on their new services. All the other providers using geosynchronous orbit satellites would be higher latency, higher throughput, and cheaper. This problem will get a lot easier in the next few years though as all the up-and-coming LEO constellations (SpaceX’s Starlink, Amazon’s Kuiper, etc.) all promise low latency, high throughput, and low cost.
I am sure that streaming video from an over the horizon ROV is very useful for some people, including the notion of using the video for ‘control’.
However, I wasn’t really intending to have any video at all. So I would be interested in hearing responses in this thread that are geared toward much more basic topics like how to arm, set mode, set desired position, set desired bearing and speed, and operate things like the gripper.
Hi @MikeFair -
These days, with a Starlink unit, remote full control of an ROV with video stream is much more easily possible, with considerably better latency!
You can achieve all the arming, mode changes, etc. that you mention over the same link, via zerotier - a very common topic on the forum. It’s super easy to setup, and can let you drive the vehicle remotely as if you were connected directly!
If you’re trying to accomplish those actions programmatically, and not via user input in QGC or Cockpit, checkout pymavlink.
I dont have Starlink, and I dont think I’m able to go get it.
I currently pay a very steep price for every byte I transfer, so I am attempted to architect the system topology in such a way as to drive to total comms for command and awareness to something like 6000 bytes per minute.
I am currently using mavsdk (c++) from an application on board the vehicle, but the learning curve for me has many unexpected hassles. Perhaps using python would’ve been smoother. Perhaps passing json to mavlink2rest (both Get and Put) would’ve been easier in the end.
Thus, I was wondering if anyone out there has ever tried to use the NavigatorHat for a project that has absolutely bare minimum of offboard communication.
Hi @MikeFair -
You may be surprised - StarLink does have global coverage now! At $50/month for 50gb, it’s fairly affordable as well!
If you are limited in comms, ArduRover already supports a low-bandwidth mode for remote operation via iridium satellite modem. These high-latency packets may be of use?