So I've been looking into companion computers now for a while, and haven't really been able to find what all the hype is.
I just watched a video where you need an intel edison to read code to start, take off, fly somewhere, land then stop the aircraft. Excuse me if im wrong, but can't a pixhawk do all that on it's own anyway?
I know there are other bits of code that can let you find a red baloon, but what's that for?
Im not trying to discount the work anybody is putting into these applications, but I am just lost as to how I can use them.
I've built a number of quads, small and large, so I want to try something new and I know this is where it's all going, Im just trying to figure out why?
Here's a link to a previous post I made looking for guidance on hardware and firmware.
I suspect Nicholas doesn't need to be told the benefits of companion computers, in fact he has already chosen one...
Have anything that will simply count livestock in a open field? Also get with me on a better wifi system I specilize in super long range wireless internet! Cause I own an internet company!!!
I have a way that I don't use any RC signal at all only laptop and occasionally usb joystick over wifi 2GHz
Richard Joy said:
Here's an example of a practical companion computer that takes any pixhawk or apm and makes it wifi capable in station or AP modes.
Companion computers are super important in the furtherance of the tech that's onboard UAVs. From Wifi to LTE and even computer vision tasks are now possible due to companion computing. Awesome stuff if you ask me!
Python, OpenCV, and DroneKit are an incredible set of tools to expand the capabilities of the wonderful ArduPilot Flight Controller. They even give the old APM a new lease of life. A Raspberry Pi 3 with a camera is a great and economical way to start. You can even simulate the whole shebang on your home computer at no cost.
The other big advantage is that you don't have to hack the magnificent ArduPilot code to get some outstanding results.
So to wet your feet, download/install Python, DroneKit, DroneKit SITL, MAVProxy and be prepared to be hooked!
I'm looking into these companion computers because I know that's where the community is headed, and I need to learn what all the rage is.
I've found that FLYTOS is probably going to be my go to OS for now, but will probably try Drone Kit later.
I will however get this new quad flying and tuned properly first, then add the CC, I'm just trying to find out all the information I need, just in case there's something different I should be doing from the very start of the build. As I mentioned previously I use RFD900s for my telemetry/communication in tandem with a 433MHz RC, but if I should be switching to another form of communication now, I need to know.
Don't try to do everything at once.
Get the drone up and flying on a regular Pixhawk. This should keep you busy for many months, getting to know the system doing missions etc.
Then and only then should you start looking at taking the next step adding a companion computer, and getting into bleeding edge stuff like computer vision, SLAM, machine learning etc.
An example of companion computer/higher computing that is actually useful and used today is the DJI Phantom/Mavic precision landing, where the drone takes a picture of the ground during takeoff and uses this to land at the same spot again. And of course obstacle avoidance which is the holly grail for automated flight.
Glad to see that I am not the only one trying to work out what I can do with a companion computer. Experimented a bit with Dronekit and more recently installed Flytos on my RP3. My concern too is using wifi as the transport. Since this typically operates at 2.4G won't that interfere with the RC transmission ?. I guess I could use 5.8G wifi or 4G/LTE if I need the range. How does DJI use the same transport for everything and get such a long range ?.
IMHO there's two layers where you can tinker with drones, one is the core flight (autopilot layer) and the other one is applications which use drones for some task. Once your drone is ready to listen to your commands, what would you like it to do for you?
Companion computer stuff is useful if you are working on the second layer. All the ecosystems that you mentioned provide collection of tools, APIs for autopilot, etc. so that you can get started and do some basic things such as video streaming.
Now at this point you can enjoy creating your own companion computer image from scratch, building every module yourself. But thats not going to keep you occupied forever. Instead you may find it better to just get the ready to use image, setup your companion computer with autopilot and start developing / trying out applications.
I'm a developer from FlytBase team and we have already worked on some visual following algorithms. We have used color, shape based detection and tracking algorithm as well as OpenTLD algorithm which can learn target to be tracked on the go. The visual detection and tracking part runs on companion computer. You get video stream on mobile phone app. User can select object to follow on mobile phone and drone will start following. FlytOS gives you access to these open APIs and drone navigation commands.
Here's a video for visual object tracking,
There are many other examples which we are building on FlytOS such as visual object classification using machine learning, smart shots like solo, visual servoing for onboard camera, gps follow me, obstacle avoidance, etc. And these are not just built in applications, the source code for them is open so you can go ahead and shape them into whatever you like.
It is possible to implement similar application with dronekit as well. Solo drone uses dronekit python to implement the smart shots.
Connectivity for companion computers is certainly a key issue. Most of the modules running on them require transports which can speak IP (internet protocol). Also the rich data that companion computer need to share with ground stations requires more bandwidth than what conventional serial telemetry devices can provide. WiFi is certainly the best option. There's a discussion by Bill in companion computer group over wifi modules / routers. Using Rocket / TP link point to point outdoor routers is certainly a good long range solution. As you dive in you will be able to find out working solution for your particular scenario. E.g. We have been using an OpenWRT powered router on FlytPOD (its an autopilot + odroid xu4 + wifi router) since last 1 year, and we never faced any connectivity issue flying within 200 meters. And it extends upto 500 meters with any decent ground router.
In a nutshell companion computer give you tools to develop features provided in pretty much any commercial drone. So jump in, develop something cool and stick it to your phantom/mavic buddies.
Nicholas Witham said: