Tracking vehicles with OpenGTS

Where Is It?


A GPS tracker, a web server, and OpenGTS are all you need to follow your pet or manage a fleet of delivery vehicles.

By Markus Feilner and Martin Flynn

Mooncaz, Fotolia .com

Modern GPS technology lets you discover the precise location of any GPS device. If that device is moving, you can plot the movement of the device on a map. On a small scale, this tracking technique often serves to plot the path of a hiker or to study the movements of a teenager with a GPS-ready cellphone secretly. But this ability to track the movement of GPS devices also presents opportunities for industry. One segment of the economy with a large potential to benefit from GPS tracking is the delivery and transportation industry. Dispatchers for delivery trucks, taxies, and emergency vehicles can use GPS technology to obtain a visual display of vehicles in the field.

OpenGTS, the open source GPS tracking system [1], collects telemetry data from remote devices and provides maps and reports that chart movements of the fleet. Although OpenGTS is just two years old, it has quickly become popular with shippers. This open source alternative to proprietary fleet management systems has helped users in more than 70 countries manage their cars, trucks, trailers, buses, and ships, as well as locate people and pets.

OpenGTS supports flexible configuration and comes with an impressive array of features. In addition to a CSS-based, customizable web interface, OpenGTS includes a user management system that lets admins set up users, accounts, vehicle groups, and vehicles. OpenGTS also supports Access Control Lists for granular access control. GIS users will appreciate features such as geofencing, geozones, and reverse geocoding - techniques that OpenGTS uses to map coordinates to addresses. The maps come courtesy of OpenStreetMap [2], OpenLayers [3], or GeoServer [4], but you can also integrate APIs provided by any geodetic service, such as Google Maps.

Any popular GPS device that has tracking capabilities (i.e., the ability to store measured positioning, speed, and time data) can provide data input for OpenGTS. This data is then transferred live over the Internet or wireless radio to a home server, which handles the evaluation work and provides comprehensive reporting.

The free OpenGTS is available as a zip archive and is licensed under the Apache 2.0 license. The commercial Enterprise version, which includes support by California-based GeoTelematics [5], adds advanced GIS functions, as well as additional reporting and messaging features. The zip file with the free version includes an OpenGTS_Config.pdf file for newcomers with a step-by-step guide to installing on any Linux distribution.

Languages

OpenGTS currently supports English, French, German, Italian, Portuguese, Romanian, Serbian, Spanish, and Turkish. To change the language, simple change the locale entry in the Domain tag as follows (to change the language to German):

<Domain name="default" host="*"
allowLogin="true"
accountLogin="true"
userLogin="true"
demo="true"
locale="de">

Track.war

OpenGTS is implemented in Java, which means you must address a couple of dependencies. For example, you need current versions of Sun JRE, Apache Ant, Tomcat, and the MySQL JDBC drivers.

The installation procedure requires building the source code, initializing the database, and copying the sample files provided with the release. The installer will normally drop OpenGTS into /usr/local and at the same time create a servlet with the interesting name of track.war. Users can start logging on at this point to take an initial look at the features. But if you can't wait, check out the online demo [6].

The login page and main menu are also freely configurable. By default you will only see the Account, User, and Password fields, but the editable CSS files are there in the war/track directory if you need them. After logging in, you are taken to the main menu with several text links, from which users can choose between mapping, reporting, and administration.

Breadcrumbs

If you have installed the demo data, you can start gaining experience with OpenGTS. Any browser with JavaScript support is fine as a client. If you look in the Mapping area, the demo data will give you an impression of how OpenGTS displays mapping information in what is known as breadcrumb view (Figure 1).

Figure 1: OpenGTS, the open source fleet manager, shows that the company car has traveled from Sacramento to San Francisco and back. The color of the markers indicates the speed.

Besides position markers, which look like pins on a bulletin board, this view shows the location, the direction of travel, and the GPS signal time. Red pins mark stationary objects, yellow pins are for slow traffic, and green markers indicate vehicles that are traveling faster than 15 miles per hour.

The menu in the top right gives you the time of the most recent GPS event. Clicking the Update button refreshes the view to show you the latest data. Users can choose a time interval in a calendar and then press Replay to review the details of a selected track. Automatic GPS signal updates are possible but are disabled by default in OpenGTS.

The Vehicle Group Map in the main menu shows the last known position of all vehicles assigned to the currently logged-in user. Figure 2 shows the two vehicles belonging to the All account on the road in California; one is south of Stockton, California, and another is in San Francisco. The vehicle markers are also configurable: OpenGTS includes templates with basic configuration information.

Figure 2: Where are my company vehicles right now? The OpenGTS demo data combines two demo vehicles to form a vehicle group and assigns them to a demo account.

Reporting

The internal reporting engine is simple but flexible. Predefined reports give you event lists with details of trips or summary reports. On top of this, you can put together your own reports and evaluate typical GPS data. Figure 3 shows a list with the start, stop, driving times, and waiting times for a delivery truck on its morning run.

Figure 3: A typical OpenGTS report shows the daily run of a delivery truck driver in fast motion: one and half hours of driving, a quarter of an hour unloading, 30 minutes driving, and so on.

The Administration option in the web interface provides tools for user, group, and account management; you can also create and modify vehicle data and geozones. Figure 4 shows an example of a selected round area in Rio de Janeiro. Reverse geocoding is also used to assign one or multiple addresses to a zone.

Figure 4: Geozones or geofenced areas make it possible to log the arrival or departure of a vehicle within a target area: in this case, Rio de Janeiro.

Administration

OpenGTS parameters and customization options are stored primarily in four files:

In common.conf, simple key/value pairs define the system configuration at run time. In addition to general settings, you will find details on logging (Log Level, Log File Location, Log File Rotation), the MySQL database (Host, Port, Name), and the SMTP email server for outgoing mail. You probably won't need to make any changes to common.conf.

The private.xml file contains settings related to the web interface. Besides the layout, appearance, and time formats, administrators can configure maps and decide which reports should be visible. For example, if you want to prevent automatic hiding of the standard calendar, you can use the code in Listing 1 to make sure the From and To calendars are visible at all times.

Listing 1: Keeping the Calendars Visible
01 <Property key="trackMap.calendar Collapsible">false</Property>
02 <Property key="trackMap.showTimezone Selection">false</Property>
03 <Property key="trackMap.showDistanceRuler"> false</Property>
04 <Property key="trackMap.showGoogleKML"> false</Property>

The reports.xml file lets you define default settings for individual reports. The selection, order, and sorting order of the columns are all configurable, as is the data type. Users can only access reports referenced in private.xml.

Last, but not least, the dcservers.xml file configures the servers that handle communication with the terminal devices, (Device Communication Servers, DCS). This file is used to define the program, a local interface, a port with a matching description, and other configuration options. Basically, the programs just listen for incoming data streams from GPS trackers and push the data into the database.

Modern GPS devices support a long list of technologies for transmitting positioning data. The range includes SMS, TCP (or UDP), GPRS, and UMTS or WiFi, satellite-based methods (such as Iridium, Orbcomm, or Globalstar), and even private radio networks. OpenGTS supports many GPS receivers out of the box and will talk to any device capable of sending positioning data to a specific IP. OpenGTS can even receive and process data from multiple devices at the same time. The internal, pre-configured "Template Server" should be fine for most scenarios.

OpenGTS analysis tools will evaluate details such as the arrival or departure time before the data are sent to the database. You can even record telemetry data such as the engine speed, temperature, and standard error codes from the engine control unit.

Roadmap

OpenGTS is a very active project that adds new functions every week, and new releases appear frequently. The developers are planning enhancements to extend the functionality of the geozone feature, display geozones and tracking information on maps, and add points of interest (POIs). Also ahead are an optional PostgreSQL back end and support for more GPS devices.

INFO
[1] OpenGTS: http://www.opengts.org
[2] OpenStreetMap: http://www.openstreetmap.org
[3] OpenLayers: http://www.openlayers.org
[4] GeoServer: http://www.geoserver.org
[5] Basic GTS Enterprise: http://www.geotelematic.com/gts.html
[6] OpenGTS online demo: http://track.opengts.org/track/Track
THE AUTHOR

Martin Flynn has been developing software for more than 27 years, and he has contributed to many open source projects. For seven years, he has spent almost all of his time developing applications for GPS tracking and fleet management.