I would like to add a computer vision to my quad. My end goal would be to have the quad stop and hover over a certain object (red disk in green field) when it comes in contract with it during a mission. Would the PX4FLOW work for this application? Or any suggestions or personal experiences on the subject.This is all completely new to me. I tried googling it and got mixed results.
That's a good question! I used the Odroid U3 and was able to get 6 ~ 10 fps and that was good enough to allow a drone flying at about 3m/s to hit a 80cm diameter balloon (at least 1/2 the time).
My guess is an RPI2 will be fast enough.
Here's the other discussion re coming up with the companion computer images. The latest RPI2 image can be found here.
Yes, it could be modified to do that. It uses ardupilot's velocity controller which works in 3 dimensions. We use all 3 for the red balloon finder but you could just use two instead (x and y).
Yes, I agree with Cala that the red-balloon-finder is perhaps the best place to start. You'll see on the end of that discussion that Cala has linked, that Patrick Poirier has also been putting some effort into recreating what I did.
In parallel Bill Bonney and I are putting together some companion computer images to help people get going more quickly. That discussion is here.
Randy / Jake -
Do you think a thermal image would work. I was able to get this python script to work with the seek thermal camera on a Raspberry Pi. I keep thinking that a Thermal Image would work well with Randy's Red Balloon Finder because you can specify the color.
I also have the Seek Thermal runnings a ROS Topic using ROS Open CV Bridge. (Randy, all of this is on the image I sent you. I'm working on the Wiki and scripts today).
Balloon_Finder is definitely the place to go. Randy's program got everything needed for this type of application.
@Randy, Would you consider adding the Balloon_Finder group under Bill's companion computer so we can redirect all interested users and get updates and add-ons ?
If you can read your camera within openCV , you got a good start :-)
Yes, we're including the red balloon finder in Bill's companion computer images.
I have added a proposal for companion system architecture here , and I invite all interested parties to take part of the discussion on companion computer working group
The Thermal Camera also works with OpenCV and Python, but I found it to be very slow on the Raspbery Pi 2. It runs OK on the Odroid XU4 in Python, but the C++ version is MUCH faster.
I included all of the source code on the disk image I sent to Randy for the Companion Computer Image. Open CV is also installed on the image. I also use ffmpeg for recording (also installed).
The thermal images are also an MJPEG stream, so they can easily be displayed in the mission planner HUD.
I will have to get an Odroid XU4 because like you say, the RPI2 is really not fast enough for real time... I got a variable delay on image processing and it makes the balloon finding unusable especially on the Z axis.
The other problem Is that I cannot implement t some of the essential filters on the RPI2; these are GaussianBlur and Hough Circle Transform that can really make a difference between a false and a good hit.