Hello. I plan on submitting a proposal for GSOC 2019 but would like to have some inputs regarding to the idea I am going to propose.
The idea is heavily based from the idea list, which is to use low-cost camera modules such as JeVois or OpenMV for onboard following specific objects. Suggested AprilTags would be enough for proofing-of-concept, but more sophisticated detection and tracking should be possible if the hardware and its specific software allows. Since these kind of hardware provides means of duplex serial communication, they can be programmed to send MAVLink velocity commands and connected directly to FC, hence its PnP feature as long as it complies with ArduPilot.
Several things that I have thought would needs more usability inputs are as follows :
- Duplex serial communication means these camera module could retrieve several new parameters from ArduPilot (preferably at startup so it would not interfere with its vision processing), which is the main actual contribution to the codebase. Features that I’ve thought so far to be included in these parameters:
- Range limitation to determine ideal distance of following. This is naively solvable by providing range of the object scale related to the camera frame. Other options would be providing actual ideal distance in meters and camera type, assuming the camera specifications are open, we could derive the distance based on the object scale.
- Following behavior, for now it would be either aggressively chasing the ideal distance or merely keeping the vehicle inside the following distance range.
- Selection behavior when several objects of interests (tags, for example) shows up at startup, for now it could be random, farthest or closest that within selected distance range.
- Other behavior that suffice the following issues
The startup and termination of this follow-me feature so far is thought to be handled in GUIDED mode, simply turn the GUIDED mode on to run this feature and vice versa. Would this be enough, or are there use cases that requires this feature to be slightly more, automatic? I’ve though that such automatic use case (e.g. automatic mode switch if nothing’s detected for some time) should be implemented in form of another flight mode, but I wonder whether it is a necessity in this idea.
Supplying of the camera firmware from this project. Since they didn’t have internal WiFi, and their internal SDCard, if any, would be dedicated to supplying the firmware itself, I think that it should not be on APSync. Would supplying the source code, its documentation and guidelines sufficient?
Any inputs especially would-be use cases expected from this idea is most welcome. Thank you for reading!