Tuesday, May 15, 2018

Route Planning and Business Planning

The printer now seems to be functioning correctly (well most of the time anyway). My lousy C+ grade in 4th year engineering control theory (24 years ago!) notwithstanding, I was able to find some software that ran an automated test on the printer and determined the optimal P, I, and D values for how to apply heat to the new heating cartridge.

This week also saw the development of a simple text file system for passing a series of commands to the boat's program on the Raspberry Pi command line. For example, the test file I was working with this evening had the following commands listed in it:

//sample boat commands script
label: start
heading: 0 //change heading to north
forward: 0:00:05 //go forward for 5 seconds
heading: 90 //change heading to east
forward: 0:00:05 //go forward for 5 seconds
heading: 180 //change heading to south
forward: 0:00:05 //go forward for 5 seconds
heading: 270 //change heading to west
forward: 0:00:05 //go forward for 5 seconds
goto: start

So passing this file to the boat's program tells it to drive the boat north for 5 seconds, then east for 5 seconds, then south for 5 seconds, followed by west for 5 seconds, theoretically ending up where you started. The "goto" statement at the end of it tells it to go back to the start, effectively driving in the same box pattern forever. Here's a video showing the reality of the above script: https://youtu.be/Gf9m5cMF4I4. Since the boat is already processing GPS data, it should be a relatively straightforward task to add some script commands for specifying GPS waypoints, i.e. just comma delimited latitude and longitude values on a line. The boat would compute the necessary heading, turn to it, and then drive forward until it reaches it. Periodic tuning of the heading angle would be required as the waypoint gets closer, but shouldn't be too hard to work out.

Since I have been neglecting / ignoring the necessary business aspects of this project for a while, I attempted to start writing a bit of a business plan, but have not gotten very far with it yet. My rough guess at what the essential development schedule looks like for the next 12 months is something as follows:
  • May: Implement file-based command list for GPS self-navigation.
  • June: Implement water-sampling system for 12, 100 ml samples.
  • July:  Biology sampling / practice counting bacteria.
  • August: Do some sampling in field / work on obstacle avoidance algorithms.
  • September: Continue work on vision-based obstacle avoidance.
  • October: Finish vision-based obstacle avoidance / possibly begin work on alternative obstacle avoidance technology if deemed necessary.
  • November to January: Work on continuous monitoring / estimate of bacteria counts.
  • February: Begin experiments comparing continuous monitoring vs. absolute counts.
  • March: Finish experiments comparing continuous monitoring vs. absolute counts.  
  • April: Summarize results of experiments in final report / paper.
Of course there are many smaller, perhaps non-essential development tasks to complete such as adding voltage and current monitoring electronics, cleaning up the wiring of the interior, improving the mounting of the solar panel (i.e. lowering it), improving the mounting of the thrusters (get rid of the wooden-basket mount), improving software user interfaces, etc.

At this point there are a lot of unknowns, but hopefully some aspects of this will be successful. I was thinking it would be really cool to show some or all of this technology at a conference such as "Oceans" (ex: see https://www.oceans19mtsieeemarseille.org/). Or maybe just a "Maker Faire" somewhere, I don't know. It's impossible to know for sure right now; but all of those unknowns do help to make the work exciting and fun!



No comments:

Post a Comment