I have retained the services of two rising senior computer science students as an unpaid internship this summer. I have planned for a long time to add a co-processor to my automated lawn mower to function as a supervisor but other priorities have prevented any progress. I plan for these students to develop code for such a device.
Some of the functions I would like to implement are:
- If Ardurover is in auto mode, monitor GPS status. If status drops below 6 (RTK Fix), put machine in hold and perhaps notify operator in some way.
1A. More complex alternative: If Ardurover is in auto mode, monitor GPS status. If status drops below 6 (RTK Fix), put machine in hold until RTK Fix returns and is stable for some number of seconds. Tricky part: must not switch back to auto if mode was changed by operator. Needs a way for operator to easily disable the feature at any time.
- Monitor GPS position directly (via a “y” cable from the GPS). If location is outside a predetermined geofence, shut down mower.
- Store missions and download to Ardurover upon command from the user. This feature may involve a web interface for user to select from a list of missions or perhaps a local user interface on the mower.
- Implement the ability for the coprocessor to drive the mower via Ardurover when in manual. This feature is the first step toward a later advanced application.
I am interested in ideas from the community. I have my thoughts on the items above, but would be interested in any thoughts. Decisions I need to make:
First, has all this been done already? Or is there at least a framework to use?
What board to use for a coprocessor?
Should I use Robot Operating System?
Any comments/suggestions appreciated!