PlannerPage

From Elcano Project Wiki
Jump to navigation Jump to search


C4 is the component of the Elcano Project which handles path finding using maps of roads and trails. It is currently a ~1000 line Arduino project which loads mapping data from an inserted SD card and loads GPS data from C6, though the code is rather rigid, and has yet to be adapted to the ElcanoSerial protocol.

Rewrite Effort

There has been some effort put into replacing it with a new model, as the current model may not be maintainable, and does not provide an interface for letting the bike know your destination. We could replace the Arduino with a Raspberry PI (or other single board computer) and it would open up the project to some new options: given a large enough SD card, which we have, we could store all of the information for the entire planet (via OpenStreetMaps) at once (it's only about 10GB), and the C6 GPS can be replaced with a cheap USB GPS antenna.

With that in mind, some interfaces already exist for this type of thing. Given a USB GPS and gpsd, the Navit project has already made a mobile interface and routing engine to provide users with the ability to navigate from point A to point B. We could extend the project to directly write out navigation instructions to the Raspberry Pi's GPIO, which can then be sent directly to C3.

If this proves to be too difficult of a task, there are other options as well. The OSRM project has developed another routing system, which can be connected to remotely, and we would just have to write a client application (probably in node.js). It would require the presence of gpsd for location services, and an internet connection to load data. Then, the raspberry pi can connect to a touch screen interface to provide the user with a way to put in location information. This would be a large endeavor, but would probably be the best option in the long run for making a working product.

Here are some links that we may find useful on the topic of a complete rewrite:

-- Main.DylanKatz - 2017-03-17


NEXT > HighLevelSWv3