Equipment, software, techniques, information and more

I’m helping out at Willow Garage on their autonomous boat project. The onboard navigation computer actually drives the boat, and is supervised by an onboard mission planner. I’m working on a rudimentary remote navigation program so mission personnel can give high-level directions to the mission planner. Both the onboard computer and the remote computer run Ubuntu Linux. All high level software is written in Python and will be open sourced. The remote computer receives a copy of the instrument data feed via wireless.

The only customizable navigation software I know of (EC2007 from SevenCs) costs 5 figures and although it runs on many platforms, it is not very extensible and is not open source. What’s more, there are no other decent commercial navigation software packages available for Linux. Happily, I found a really nice open source GIS package that runs on Linux and Windows which can read S-57 charts such as those published by NOAA. The package, called OpenEV, is written in Python and even has a python command line interpreter … most cool! If you want to play with it, get the FWTools download since the Vexcel download is old. All software dependencies are included in the download. OpenEV is not a navigation program, but it is a great start for building one.

This project I’m currently working on will not result in a generally useful program, but OpenEV could be a great start to an open-source marine navigation program. If you are a programmer with time on your hands, read on. If not, but you would like someone to create an open source navigation program, contact me and offer me a lifetime supply of donuts ;)

Here is a screen shot of OpenEV running on Ubuntu Linux with a customized toolbar menu:
OpenEV with customized menu

This section for salty geeks only

You can download S57 vector chart data from here. After you download and unzip the charts you want, start up OpenEV and load the file with the 000 file type.

OpenEV is written in Python and uses PyGTK, which provides Python bindings for the GTK+ libraries. PyGTK takes care of memory management and type casting.

If you want to try customizing OpenEV, here are few hints:

IDLE Object Browser I found it helpful to use IDLE (apt-get install idle) to browse the Python classes. If you write a script and place it in the FWTools directory, you can launch IDLE as follows:

cd "$(dirname $0)"
export PYTHONPATH=pymod:lib:$PYTHONPATH
idle&

Once IDLE is launched, use the File/Path Browser menu item to browse the source. Double-clicking on a file, class or method will display the code.

The syntax for the embedded Python interpreter is defined here.

Gotta get back to work… anyone else interested using OpenEV to create a navigation system?

Comments

2 Responses to “Towards Customizable Open Source Navigation Software”

  1. Open Source Navigation Software Tease : Recreational Marine Navigation on May 13th, 2008 7:59 am

    [...] Towards Customizable Open Source Navigation Software [...]

  2. Randyqiu on May 13th, 2009 7:02 am

    Hi,I have a problem to ask you for help:I have downloaded and installed the FWTools,but I don’t know how to get the opensource and how should I use OpenEV to create something such as reading s-57 ENC?
    if you’d like to give me a hand,please send me E-mail to randyqiuxy@hotmail.com
    Thanks,any help will be appreciated!!!

Leave a Reply

You must be logged in to post a comment.