Thursday, February 25, 2010

Similar Project - SoundMap

http://www.theblackpalette.com/soundmap/?p=60#comment-374

Delaunay's TIN - Triangulated Irregular Network

I'm running into some problems with the mapping visualization software. I think we need to use a TIN algorithm. This page looks to be useful.


EDIT: The algorithm used on this page is O(N*N) and thus, for any reasonable amount of points (I'm trying to get 400 to work right now) the program takes a large amount of time to run.

UPDATE: I was generating my test data set with Z values randomly generated between 0-2^64 which is why it took so long. I reduced the Z range from 0-50 and the program generated a 3-D map of 400 points in under 5 seconds.



The code that I used.

Friday, February 19, 2010

NMEA 0183

NMEA 0183 (or NMEA for short) is a combined electrical and data specification for communication between marine electronic devices such as echo sounder, sonars, anemometer (wind speed and direction), gyrocompass, autopilot, GPS receivers and many other types of instruments. It has been defined by, and is controlled by, the U.S.-based National Marine Electronics Association.


Link to the wikipedia article.
Arduino NMEA device driver library.

How to get VTK working in Eclipse

EDIT: These links seem to be down. This is bad.

Although I mentioned in this post that VTK was too complex and powerful for what we needed, I have decided that it might be a viable option after all. I was able to get it working in eclipse using the following process.

Thanks to the guys at http://dev.artenum.com/ for most of this information.

1. Download the latest Cassandra release from here.
2. Run the installer.
3. Open a project in eclipse
4. Add vtk.jar to your build path
  • right click on the root project
  • click 'properties'
  • click 'libraries'
  • click 'add external jar'
  • Add 'vtk.jar' which can be found in '\Cassandra\thirdpart\vtk5.0-32b\bin'
5. Edit your run configuration
  • click the drop-down arrow next to the green run button
  • click 'Run Configuration'
  • In the right hand pane, expand 'Java Application'
  • choose your project
  • click the 'environment' tab
  • click 'New' to create a new environment variable
  • name the variable 'PATH'
  • set its value to the absolute path (include drive letter etc...) of '\Cassandra\thirdpart\vtk5.0-32b\bin'
Everything should work now. Here is some sample code (also taken from http://dev.artenum.com)

Thanks again to http://dev.artenum.com. Original article.

Wednesday, February 17, 2010

Problem Statement - Final Draft

Problem Statement - The Santiago Project.docx
(Please download and open with Microsoft Word, Google Docs ruins the formatting.)

RESEARCH: Processing Libraries to Generate 3D Maps

  • SurfaceLib
    • Pros
      • Seems very powerful
      • Easy to apply textures to a 3D surface
    • Cons
      • Very complex
      • Spherical coordinates?
  • SuperPoint
    • Pros
      • Very easy to use, arguments consist of x,y,z,R,G,B,A
      • Renders very fast
    • Cons
      • Too simple
      • Cannot apply textures
  • Patchy
    • Pros
      • Powerful
      • Easy to apply textures
    • Cons
      • Somewhat of a learning curve

  • Briefly looked at VTK
    • Seemed EXTREMELY powerful (they boast that the program has over 1 million SLOC)
    • Seemed EXTREMELY complex
    • Little documentation

Desktop Application Research

    • Evaluating the programing language "Processing"
      • Processing Kicks Ass
      • Easy to generate 3D models
      • 3rd party library supports direct serial communication with embedded device (Arduino is mentioned specifically)
      • Can automatically export the program as a java applet so that it can be viewed in a browser

Tentative Project Flowchart

Link to a PDF of a tentative project flowchart.

This flowchart illustrates how I think the components should interact with each other if we use the control system that I described in this post.

Possible Contol System Components

Arduino USB Board
  • Used as the central microcontroller of the boat
  • Open source hardware
  • Open source software
  • Very large community support
  • Wide range of accessories
  • Low cost ($30)
  • Link to page at sparkfun

ArduPilot - Arduino Compatible UAV Controller w/ ATMega328
  • UAV controller for use in unmanned cars, planes, and boats
  • Plugs directly into the Arduino microcontroller
  • Comes with an unmanned vehicle operating system that is FOSS
  • Has an socket for a GPS receiver
  • Low cost ($25)
  • Link to page at sparkfun

20 Channel EM-406A SiRF III Receiver with Antenna
  • GPS receiver used with ArduPilot
  • Antenna included
  • Small form factor
  • 1 Hz update rate
  • 5 Volts
  • Very well documented
  • Link to page at spakfun

Official Ardupilot FTDI Cable
  • Needed to load firmware, etc... on the ArduPilot board
  • $20
  • Not worth it to make our own, I looked into it
  • Lab checkout doesn't have one either