Archive for the ‘mobile’ Category

GPS raw signal recording

Friday, February 1st, 2008

According to Slontech a new GPS related technology breakthrough may become available. In contrast to GPS live mode, where the coordinates are required in time of receiving (e.G. for navigation scenario) geo-tagging does not require them. As described in Geotagging with GPS Whitepaper the new device could just store the raw GPS signal. Later this signal can be used to recompute the coordinates from the timestamp and the satellite positions and write them to EXIF. The general idea behind this approach is to minimize the the energy consumption. A standard GPS device needs about 30 seconds to calculate its position. The most time it uses to download the satellite position and only 200ms are needed for the position determination of the device itself. Other approaches exist to improve the precision of GPS and transmit the additional data using radio or the Internet.

In general, I think the approach could have some impact on GPS usage, because the device is cheap and the usage is easy. In the same time, it is not the first device that can be sensefull build in in any device. A bluetooth chip is also very cheap and could be used in any digital camera for photo synchronization, but it is mostly an exception…

Technorati tags: , , , ,

GPS Tracking for Geo Tagging

Tuesday, January 8th, 2008

In my previous posts I defined a number of use cases I want to process with. Especially, I was interested in GPS Tracking using a mobile phone and already posted about it. I tried to reuse my experiences with GPS Track for another GPS related subject: geo-tagging / geo-coding. The idea behind a geo-coded image is to embed the geographical coordinates in the image data. Mostly the information is stored using EXIF metadata. There are three approaches how to create geo-oded images:

  • Use a camera supporting GPS directly or some GPS add-on and put geo location in the time of image capture.
  • Assign the location to the images afterwards using e.G. Flickr and locating the image on the map manually.
  • Record the GPS track ( Usecase 1.2) during the photo session and use time correlation information to assign location to images.

Surprising, but I want to tell about the third approach. For that you need a GPS track and some programs that read the timestamp from image metadata and search for the nearest (timely) track point in your track and write GPS coordinates (latitude, longitude, altitude) back to EXIF metadata of the image. Sounds like a simple batch process, doesn’t it?

Recording GPS data

The first setback I suffered was that my tracks recorded with GPS Track does not contain any time information. GPS Track program remove all timestamps, which makes the usage of the program impossible for the geo-tagging. I searched for an alternative and found GPS Log. It is available on a German page but the program supports English, German, Dutch and Polish.

After the installation on the J2ME enabled mobile phone supporting Bluetooth stack (JSR-83) you have to set up the program. The settings are started automatically, but can be changed later in the main menu. The basic part of the configuration is a search of the GPS receiver and setup of the log file. Go to device URL, devicelist, inquiry and select your GPS receiver. Then enable the logging and select an appropriate place, where the tracks can be saved.

gpslog001 gpslog002 gpslog003

The main menu of the program is structured as follows:

  • start/stop start/stop tracking
  • settings
    • device url the url of the GPS device, in form btspp://DEVICE-ID:com-port
      • devicelist list of available BT devices
        • inquiry start search for devices
    • filesystem a place where to write the track files
    • fileprefix name prefix of the track file
    • enable log write a track file?
    • enable vibration enable phone vibration
    • enable backlight switch backlight on?
    • enable sexagesian coordinates format the coordinates in grade, minute, second instead of fractional of grade
    • update interval time between two track points
    • manual interval if update interval set to manual - number of seconds between two track points
    • loglevel level of logging (for debugging purposes)
  • console java console
    • clear clears the console
    • save saves the console to a file
  • about version information (1.29 is the last currently available)
  • exit

After the simple configuration you are done and can (hopefully) see something similar on your display:

gpslog005

The resulting file is stored in NMEA 0183 format and contain the movement track. It can be transmitted to the workstation together with the images from you camera. Now you are ready for the offline part of the data processing.

Post processing

In the following I present three approaches for the same goal: read the time information of images and track points, find the correlation and write the results back.

Manual (GPSBabel, gps2photo)

I tried it manually first, following some instructions of a German computer magazine c’t. For using GPSBabel to convert from NMEA 0183 to GPX, the command for this is gpsbabel.exe -t -w -i nmea -f track.txt -o gpx -F track.gpxx where track.txt is NMEA file name and track.gpxx is the target file name. GPSBabel is very helpful, because additionally to the standards like NMEA it also supports vendor specific standards like Garmin, Magelan, Tom Tom and others. A useful front end can be found at GPSVisualizer. Then I used gps2photo Perl script, that writes the coordinates from GPX file to the corresponding images. The problem with that is, that you require a Perl installation (Active Perl in case of Windows) and Image::ExifTool and XML::Parser modules. The Active Perl 5.10 I installed only contain the latter, but not the first one, so I had to download and install it manually. After the installation you need to run perl gpsPhoto.pl –dir c:\photos –gpsfile c:\photos\track.gpxx for processing the directory of images c:\photos with a trackfile located in c:\photos\track.gpxx. I really got the result after hours of installation and configuration, I and swore never to repeat this. The resulting GPS tags are finally:

GPSVersionID: 2, 2, 0, 0
GPSLatitudeRef: ‘N’
GPSLatitude: 53, 38, 18527/1537
GPSLongitudeRef: ‘E’
GPSLongitude: 9, 56, 40876/1671
GPSAltitudeRef: 1
GPSAltitude: 53
GPSTimeStamp: 15, 28, 41
GPSImgDirectionRef: ‘T’
GPSImgDirection: 0
GPSMapDatum: ‘WGS-84′
GPSDateStamp: ‘2008:01:06′

During the writing of this article I looked on the Internet for some resources and found a list of software that can be useful for geo-tagging/geo-coding on the homepage of GPSlog. Because I only have a Windows workstation, I could try out GPicSync and PhotoMapper. For the Mac users the GPS Photo Linker seems to be a standard software.

GPicSync

GPicSync is a small free available program written in python that executes the steps above automatically. At the time of writing it is available in version 1.23 beta. In addition to simple geo-coding it supports export of the track as Google Earth KLM or Google Map, read directly NMEA or GPX, supports additional geo-tags and geo-names and supports camera RAW formats. Because I’m using a Canon Rebel XTi (EOS 400D) it is of utmost importance for me to geo-code the raw files directly. This feature makes this program to my favorite.

Copiks Photomapper

Photomapper allows to load GPS information file and images and write the GPS location back to the images. The export to Google Earth is also possible. The UI looks more advanced as in the case of GPicSync, but the program only supports JPEG images, so GPicSync remains my favorite.

For own development

In the time between my headache with manual tagging and finding of GPicSync I searched over the web for resources of reading and writing of EXIF metadata and parsing NMEA in Java. NMEA 0183 seems to be trivial, There are several interesting developments according to the EXIF subject:

  • jrawi is a Java library for reading images coded in “camera raw” format;
  • metadata extractor is a generic framework to read EXIF metadata. Currently only JPEG format is supported, but the authors mention that support of additional media types should be simple.
  • The most promising development seems to be Sanselan that should become an Apache project soon. In contrast to the others, it support writing of images, which makes it a first class candidate self-made solution. Unfortunately, Sanselan does not support RAW formats. I played around with the framework - it seems to be pretty convenient.

Technorati tags: , , , , , , , , , , , , ,

GPS Tracking with a cell phone

Tuesday, April 24th, 2007

Usecase 1.2

As already mentioned in one of the previous posts I’m playing around with GPS technology, trying different use cases. One of them is tracking own position using a GPS Mouse and cell phone. The minimum requirement was to track position data (x,y,z) and store it on a flash card inserted in the cell phone, connected to GPS receiver via Bluetooth. After a short search on the Internet I found GPS Track (version 1.1) free software, packaged as Java Middlet for use on any J2ME compatible cell phone.

After the simple installation the basic setup on the cell phone have to be executed. The main menu of the software is structured as folows:

  • start: start the tracking / changed to stop, if tracking is running
  • tracks: manipulation of already recorded tracks (track menu)
    • details: name, records(number of points), memory usage
    • upload to web site: to upload to the http://qcontinuum.org/map and to be displayed as an overlay on the Google Maps
    • send via email: Send the track file by E-Mail (Google Earth .kml, GPS Exchange .gpx, Excel .csv)
    • transfer via bluetooth: Send the track file by Bluetooth (Object-Push) (Google Earth .kml, GPS Exchange .gpx, Excel .csv)
    • write to local file: Write the track file locally (Google Earth .kml, GPS Exchange .gpx, Excel .csv)
    • delete
  • options: basic options on units, tracks and backlight

After the basic setup and the established connection between the GPS Track and the Bluetooth device (the connection established is stored, so you need to setup only once) the tracking can be started. During the tracking several screens are available and can be switched using options->next.

Track Status

  • Name: Name of the track, created from the recording date and time
  • Records: number of records (measurements)
  • Speed: current speed
  • Distance: track length from the beginning of the measurement
  • No Fix: time during tracking, the receiver is not able to determine its position
  • Stationary: the receiver can determine its position and is not moving
  • Moving: the receiver can determine its position and is moving

GPS Status

  • GMT: current time (satellite time?)
  • Latitude, Longitude, Altitude: current coordinates
  • Heading: direction of moving
  • Satellites: number of satellites from that the signal is received

GPSTrack

An embedded compass (also available separately without GPS at http://qcontinuum.org/compass/)  showing the position of the Sun/Moon. In addition the position of the satellites is displayed on the compass.

Summary

I played around with GPS track and recorded several tracks. The tracks varied from short to pretty long (~70 km). Basically, I’m satisfied with the functions the software offers to me. Because of the source code is available, i’ll have a look on it and may be will refactor some UI or possible drill one or another additional feature in to it. Especially the UI is very primitive, so I think that the information can be presented much more compact, using one screen instead of three.

 

 

Technorati tags: , , , ,

GPS Experiences, the first try

Friday, April 13th, 2007

Today I gathered my first experiences with GPS technology. To be honest I ignored the entire GPS hype till last week, as a friend of mine offered me a GPS mouse. I have several usecases in mind, so I will create follow-posts. In general I look for free (or cheep) software only and execute tests with a cell phone and a laptop. Depending on the device, the usecase setup changes slightly…

Usecase 1: Mobile Location Tracking

The location tracking is based on a continuous storage of the location information and creation of the motion track. In addition to the coordinates (x,y,z) information about speed and timestamps can be saved. Later the trace can be converted to different data formats or displayed graphically. A popular representation is a overlay on one of the many GIS Service maps available on the Internet (Google Maps, Yahoo Maps, Microsoft Virtual Earth, etc..). I will also evaluate the software for conversion and representation of data.

Usecase 1.1: Using a Laptop

The easiest device to find software for, is a personal computer. So I  expect a free software to be available, to record the data. Due to the size of the laptop, the test can only be executed using a car. In addition, no additional Internet connection should be required by the software.

Usecase 1.2: Using a Cell Phone

Due to the inability to use laptop for recording during bicycle or sport-tours, I consider to use a cell phone for track recording (and storage of the information on a flash card).

Usecase 2: Navigation

After simple information storage additional task of computation of a route can be considered. Thus the navigation usecase will be tested. Here I expect a variety of functions, for different styles of maps, user interfaces, etc.

Usecase 3: Wardriving

Wardriving is the act of searching for Wi-Fi wireless networks by a person in a moving vehicle using a Wi-Fi-equipped computer, such as a laptop, to detect the networks. Theoretically, it is useful to use a PDA, but since I don’t have one, only the laptop will be used. Due to inability of Wi-Fi by my cell phone, I also skip this setup.

General Hardware Setup

GPS Device: Navibe GB621 Bluetooth GPS Mouse ( link)

 

Product Features:

  • High sensitivity, 12 parallel channels for fast acquisition and reacquisition
  • Full navigation accuracy provided by Standard Positioning Service(SPS)
  • Bluetooth version 1.1 compliant / Class 2 operation with up to 10m range
  • Support standard NMEA 0183 protocol(Version. 3.0 GGA, GSA, GSV, RMC, VTG
  • Support backup power to sustain internal clock
  • Internal RTC (Real Time Clock)
  • Easy to link with PDA and Notebook with Bluetooth 1.1 compliant
  • Built-in rechargeable Lithium-ion battery without external power supply
  • 3-color LED to show the status of Bluetooth, GPS and battery
  • Support active antenna connector (MMCX) to getting better satellites
  • ROHS compliant

Hardware Characteristics:

  • BT-Modulation: FHSS / GFSK
  • I/O Protocols: NMEA 0813
  • RF Channels: 79
  • Antenna: Bulit in patch antenna
  • Input Sensitivity: -80 dBm
  • Ext. Antenna
  • Output Level: 4 dBm
  • Connector: MMCX type*
  • Baud Rate: 4800(default)
  • Power Consumption: Under 200mA
  • Power supply: +4.5V~5.5V (DC)

Performance:

  • Receiver: 12 parallel channels
  • Frequency: L1, 1575.42 MHz C/A code
  • Acquisition Time (Open Sky and Stationary)
    • Update rate: Once per second, continous
    • Hot Start: Aprox. 2~6 seconds, typical 95%
    • Warm Start: Aprox. 35~40 seconds, typical 95%
    • Cold Start: Aprox. 50~60 seconds, typical 95%
  • GPS Accuracy: Position: 2D RMA: aprox. 5m
  • Sensitivity:
    • Acquistion: -139 dBm (average) or less in normal mode
    • Tracking: -152 dBm (average) or less
  • Dynamics:
    • Altitude: < 18000 meter maximum
    • Velocity: < 500 meter/second maximum
    • Acceleration: < 4g

Cell Phone: Nokia 6680

Nokia 6680 front Key Features:

  • Two integrated digital cameras: 1.3 megapixel and VGA
  • Experience two-way video calls and see face-to-face as you talk in real time
  • Video sharing capability
  • High-resolution, 262,144-colour display
  • Capture quality images and video
  • Nokia XpressPrint printing solution: PictBridge, Bluetooth wireless technology, MultiMediaCard (MMC)
  • Fast WCDMA and EDGE connections for broadband-speed browsing plus tri-band GSM phone with global roaming capability
  • Convenient email access with automatic download to send images and view documents
  • Calendar, contacts, and other personal information management features plus data printing
  • Music player with stereo audio

Operating Frequency:

  • Dual mode WCDMA/GSM operation and tri-band GSM coverage on up to five continents (GSM 900/1800/1900 and WCDMA 2100 networks)
  • Automatic switching between bands and modes

Connectivity:

  • Integrated Bluetooth wireless technology v.1.2
  • USB 2.0 full speed via Pop-Port™ interface
  • Nokia PC Suite connectivity with USB and Bluetooth wireless technology
  • Local synchronisation of contacts and calendar to a compatible PC using compatible connection
  • Remote over-the-air synchronization
  • Send and receive images, video clips, graphics, and business cards via Bluetooth wireless technology
  • Profiles with Bluetooth connectivity: Basic Printing Profile (BPP) using Image Print or Info Print applications, Human Interface Device Profile (HID) using Nokia Wireless Keyboard application

Java Applications:

  • Java™ MIDP 2.0, CLDC 1.1 (Connected Limited Device Configuration (J2ME))
  • Over-the-air download of Java™-based applications and games

Personal Computer: IBM/Lenovo T60p 2007VIF

Key Characteristics:

  • Processor:
    • Intel Core 2 Duo, T7200
  • Memory:
    • 2 GB
  • Graphic Card:
    • ATI Mobility FireGL V5250
  • Drives:
    • 100GB, S-ATA-100, 7200 rpm
    • Ultrabay DVD-RW
  • Connectivity:
    • Intel PRO/1000 PL NIC
    • Intel PRO/Wireless 3945ABG
    • Broadcom Bluetooth (WIDCOMM)
    • IBM IR
  • Operating System:
    • Microsoft Windows XP, SP2