I am currently working on developing a multi-rotor unmanned aircraft system (UAS) to be used in search and rescue operations using object recognition to find a target and deliver a payload, e.g. to help an injured climber on traditionally inaccessible terrain needing to be dropped fluids, a torch, an insulating blanket and/or a flare to assist their survival and later rescue.
I have a Mobius camera connected to the Raspberry Pi, running an OpenCV application to detect objects. Their position in the frame is used to generate velocity data that is sent via DroneKit to ArduCopter, which then moves to centre the drone above said object.
A full write-up can be found at blog.mckeogh.tech.
Thanks for reading!
it would be super cool if you could share some openCV code and how you implemented them into Ardupilot - if you want to!
@Ferdia_McKeogh this is amazing! Please keep us updated on such an interesting project
It is possible to share the source code ?
You could use GitHub, and just post a link although of course that would open your code up much more widely to the entire world basically?
Anyways, I had a question which OpenCV program/function did you use to detect the objects position in the frame and calculate the velocity?
Could you give an idea of cpu usage/gpu usage while in flight? Thanks!
For this example I was using a colour mask and filter to only leave the red jacket in frame. Then it finds an average centre for the object and uses the coordinates of the object in the frame to decide what velocity should be sent to ArduPilot using DroneKit. For example, coordinates of (0,0) indicate the object is in the top left corner, so the vehicle should move “North-West” (relative to the camera, not actually using compass.)
Dont you know whether the Mobius camera has global or rolling shutter? Did you use Mobius 1 or Mobius 2?
could you please tell me how could you installed openCV on the emlid OS ?
The process of OpenCV installation on Emlid Raspbian doesn’t differ from installation on any Raspbian Stretch.