Looking for cheap FPV for non-airborne applications, displayed on a PC.

perhapsleiana

Elite member
So I ordered a strange thing. It's an RC truck built really cheaply (I like fixing things so that's the idea) but it has 4 independent motors, one on each wheel, and it uses mecanum wheels- wheels with diagonal rollers that allow it to move sideways, do zero-radius turns, all the benefits of omnidirectional movement.
1595247915955.png
It runs on a 2S connected by Deans, and I plan on replacing its pair of 18650s with a 5000mAh 20C hardcase 2S for those long run times.
the thing is, I hate that body, and I plan to put an Arduino robot arm on it anyway. The end goal (besides having fun) is to have a robot capable of entering COVID biohazard zones, sanitize things, manipulate small objects, and return to be sanitized.

I hope to have the main operational controls and some telemetry go over a 433Mhz radio link (HC-12 pair, TTL Serial) and use an Arduino onboard to handle the serial data system, controlling the arm, the drive base, and anything else I might want to add, such as hazard sensors, and other things. On the control station end would be a PC, connected to the operator-side wireless serial module through a USB adapter.

The remaining part of the system design is the AV system. Two-way would be nice, but also low latency would be nice. There could be separate systems for each. Use a phone on wifi or cellular data over a video calling service for two-way AV, but then the latency would make the robot inoperable. However, with a second camera designed for FPV, things become plenty operable again.


What would be a cheap system with latency under 75ms to have an FPV camera send video to a PC? I see USB receivers but they aren't cheap, and I don't know too much in the field.
 

LitterBug

Techno Nut
Moderator
Almost sounds like you should look into ArduRover. https://ardupilot.org/rover/ Why reinvent the wheel when there are people working on similar solutions already? I would then use the standard Ardupilot 433mhz modems to hook the FC to the PC. Use a Video/audio to USB capture dongle, and then add your FPV from a generic camera VTX, and VRX. If you used an FC like the Matek F765-wing, You would have plenty of PWM outputs to control all the motors, servos, etc.

Cheers!
LitterBug
 

clolsonus

Well-known member
I don't know about latency, but something like this is relatively inexpensive (eachine rotg01): https://usa.banggood.com/Eachine-ROTG01-Pro-UVC-OTG-5_8G-150CH-Full-Channel-FPV-Receiver-WAudio-For-Android-Smartphone-p-1347396.html

As LItterBug points out, there are existing things that could save you some time ... so make sure you are thinking clearly about what you want to do. If your primary interest is developing the components and figuring things out yourself, then great, there is a lot of fun and learning ahead of you! if your goal is the final system doing work (or at least proof of concept work) then the more off the shelf parts you can find and stitch together the better. Developing the systems from scratch will take you far longer than you imagine, and you will learn far more than you could ever imagine. So which ever path you lean towards, it's all good stuff.
 

perhapsleiana

Elite member
I don't want to use a FC because there is no reason to have an IMU onboard, and the HC-12 is basically a 433mhz modem already. I'd be willing to bet Ardupilot modems run on the same chip, I'd just be paying extra for the connectors and casing.
However, I looked at the integrated vrx+capture units, and they look promising. Generic camera with integrated vtx is probably what I'll do on the rover side too.
Obviously there are various routes to take, and I'm just looking for options at this point. Using Ardupilot introduces a lot of extra heavyweight processing that I probably don't need, and I have plenty of capability to code a sutable firmware for controlling what will eventually be 11 servo channels: 6 on the arm, one for each motor, and the steering servo. I'll probably use an Arduino Mega-based board, although I may go 3.3v logic with an ATSAMD51 board I already have, in the Due form factor. It's partly because I already have some useful components, and partly because I don't want to pay for a plug-and-play solution plus a little code modification, because I know that at 11 PWM channels those components get expensive, not to mention telemetry with standardized sensor protocols.
 

perhapsleiana

Elite member
I looked and a 5.8g generic USB vrx is under $20 if you look at places other than Amazon. Cheaper, if less versatile, than a regular VRX and capture module.
 

clolsonus

Well-known member
I would be very interested in seeing a sketch or picture of the robot arm you are planning with 6 independent servos. Also, where are you planning to mount the FPV camera so you can see what you need to see to manually manipulate the arm? It is an interesting project. If your base (car) can move, you might be able to simplify the arm and get by with fewer degrees of freedom there. If you have to manipulate all 6 arm servos independently (with sliders on a gui? or knobs on a panel?) that is a pretty tricky/tedious way to interact with your environment. However you go about it, it sounds like fun and a great learning experience.
 

perhapsleiana

Elite member
I would be very interested in seeing a sketch or picture of the robot arm you are planning with 6 independent servos. Also, where are you planning to mount the FPV camera so you can see what you need to see to manually manipulate the arm? It is an interesting project. If your base (car) can move, you might be able to simplify the arm and get by with fewer degrees of freedom there. If you have to manipulate all 6 arm servos independently (with sliders on a gui? or knobs on a panel?) that is a pretty tricky/tedious way to interact with your environment. However you go about it, it sounds like fun and a great learning experience.
Actually, I just finished modifying the DirectX Joystick example and writing an Arduino companion sketch that, together, should send the axis values of 2 usb joysticks (6 each) over serial to be read by the Arduino. I can easily make additional struct members to include a few buttons if needed. I’ll be using a Logitech f310 for the drive base, and a Turnigy Evolution v1 for the arm controls (it has a nice knob I can use to adjust the rate for relative inputs, and an axis output form one of the top switches could be used to change the right stick control from the base XY joint of the arm to the wrist. I’m still figuring out the control scheme, I may just build a joystick shaped like the arm). So the GUI is just there for debug info, the actual controls will be via USB joysticks, and will still run in the background, which will be handy for the FPV display window.

I’ll likely use a button to control a sanitizer pump lol
 

clolsonus

Well-known member
That could be interesting if I read you right. Build a mirror of the arm, but with joystick axis sensors instead of motors. If you move the input arm, the actual remote arm will match your motion. But your own arm might get tired after a few minutes if you have to reach out and hold your arm hand in the air with fine motor control to work on a remote task.
 

perhapsleiana

Elite member
That could be interesting if I read you right. Build a mirror of the arm, but with joystick axis sensors instead of motors. If you move the input arm, the actual remote arm will match your motion. But your own arm might get tired after a few minutes if you have to reach out and hold your arm hand in the air with fine motor control to work on a remote task.
Just came to the same realization about getting tired lol. I'll probably just iron out this dual USB joystick code and stick with that.
 

perhapsleiana

Elite member
hmm, I have a Turnigy Evolution that I got for using with my simulator, but a special mecanum-mixing SBUS to PWM converter program on an Arduino would really make things simpler if I ditched the arm. Still gonna go with the USB FPV when I get to that though.
So, Turnigy Evolution v1 and the iA6c or whatever that came with it, feeding into an Uno with a 12-channel servo board. So the Uno is really just receiving SBUS, and talking to a PWM board over i2c. The arm won't be so easy, but I think i'll build an arm and a potentiometer-jointed representation thereof.
 

perhapsleiana

Elite member
As for a sanitizer application system, I gutted a handheld motorized sprayer that normally runs on 4.5v, I'm pretty sure it wouldn't complain if I ran 70% IPA in water through it on 5V. I have many ways to control that from the Arduino, but I think I'll use an RC lighting switch I have around somewhere for modularity.
 

LitterBug

Techno Nut
Moderator
Really interested to see pictures of your progress. I like to explore all sorts of crafty things other than just planes and multirotors. I've even thought about putting rover on my Traxxas.

Cheers!
LitterBug
 

perhapsleiana

Elite member
Really interested to see pictures of your progress. I like to explore all sorts of crafty things other than just planes and multirotors. I've even thought about putting rover on my Traxxas.

Cheers!
LitterBug
If UPS delivers when they say they will, I'll be getting the truck today. I'll try to keep you guys posted.
 

perhapsleiana

Elite member

clolsonus

Well-known member
I like the frsky sbus receivers. I am sure you can find many sbus parsing libraries online, but here is my sbus parsing code if it helps, feel free to copy or borrow from it.
https://github.com/RiceCreekUAS/rc-fmu/blob/master/src/sensors/sbus/sbus.cpp
Note the sbus signal line is inverted from standard serial so I bought a little $3 hardware logic inverter to read sbus onto an atmega chip. Now I'm running teensy (ultra high performance arduino) boards and those can handle inverted serial natively. I use the hardware PWM generators to drive the PWM servos.
Of course every project is a little different and every diy'er has different ideas and different goals, so it is fun to see what every one else is up to and how they go about solving things.