Design of Embedded Ship Navigation System Based on GPS and Electronic Chart
[Date: 2008-9-3] |
Source: Electronic Technology Application Author: Hu Li, Chen yawu, Wang leyu |
[Font:Large Medium Small] |
The marine navigation system, with GPS and electronic charts as the core technology, provides marine users with the necessary charts, routes, and other information for safe sailing. Currently, it is widely used in the world, this greatly improves the ship navigation technology and the safety of ship navigation.
Currently, the ship navigation system mainly includes three implementation methods: PC system, single chip microcomputer system, and embedded system. The common PC marine navigation system is designed based on Windows GIS software (such as MapInfo and MapGIS). It features rich system functions, fast response speed, and friendly human-computer interaction interface, however, the cost is high, the system integration is poor, and it is not suitable for professional systems. The single-chip microcomputer electronic chart application system is rarely used in recent years because of its weak processor computing capability, limited resources, and difficult to support networking. With the development of embedded systems, the electronic chart application system has a better choice. products that use embedded 32-bit processors and embedded operating systems gradually emerge. Due to high system integration and low hardware cost, many applications have been obtained in recent years. The use of Windows CE, Vxworks, Palm OS, and other commercial embedded operating systems has the disadvantages of high software development costs.
This paper proposes and designs a Ship Navigation System Based on GPS and electronic chart, using an embedded 32-bit processor and embedded Linux. The system uses Motorola's MPC823E embedded processor, external GPS receiver and 256-color LCD display. Based on the embedded Linux operating system, the system has the advantages of open source code, easy transplantation, modularization, and rich resources. The graphical user interface (GUI) adopts the QT/Embedded graphics Development Library. The electronic chart uses the vector chart conforming to the national military standards of the Department of air security of the haisi, and pre-processes the electronic chart data in advance, delete redundant data, compress two-dimensional geometric data, and create a grid index. On this basis, the software design of the marine navigation system is carried out, which greatly speeds up the system response.
1. system hardware structure and software development platform
The overall system structure 1 is shown in. The system uses the MPC823E embedded processor of Motolora. The processor adopts the Embedded PowerPC processing core, and uses the RISC technology. The clock speed is 75 MHz. It has powerful processing capabilities and is optimized for communication, uses an independent communication processing module (CPM) to handle communication transactions. The system uses a Universal Serial Bus Controller (USB) to connect an external keyboard and mouse, and a 256-color tft LCD 640 × 480 color LCD display through an LCD controller, it is used for graphical user interface display, external GPS receiver via RS232, 32 MB Flash space extended by the system for storing Linux kernel, applications and electronic chart data, and 32 mb sdram extended by the system, it is used in the memory space of the operating system to store dynamic data and run programs.
Based on the Embedded Linux operating system, the system software is developed in C ++ language, and QT/Embedded is selected as the development environment of the graphic user interface (GUI. QT is a cross-platform C ++ Graphics User Development Library launched by Trolltech. QT/Embedded is a version of QT for Embedded applications and has the advantages of portability and support for Linux, Windows, and Mac, when porting to a new platform, you only need to re-compile it with the compiler of the platform. The object-oriented language uses the C ++ language and adds the unique singal/slot mechanism, this makes object-oriented programming simple and effective. You can crop and adjust the size of library files by removing irrelevant modules, which is suitable for embedded systems. The GUI supports a large number of standard window components, it also provides the interface design tool designer, which supports internationalization, Chinese display, and multi-language support tool linguist. QT/Embedded's powerful graphic rendering function has been fully applied in the electronic chart application system.
The system obtains the ship location (including longitude, latitude, and time) and sailing information (including the speed and course) from the GPS system, and displays the relevant navigation information on the Electronic Chart, users can use a simplified mouse and keyboard to provide functions such as chart roaming, chart query, and navigation information management.
2. Electronic Chart Data Processing
2.1 Organization Structure of electronic chart data
The system uses the Military Vector Chart Format MVCF (Military Vector Chart Format) [1] Chart of the Department of air security of haisi. MVCF is organized by image frame and adopts the directory structure. The directory name is the number of the Electronic Chart. A chart Directory consists of a metadata file and multiple chart levels. The metadata file records the control information such as the scale and reference latitude of each graph. The chart level file consists of more than 40 layers. For example, the Marine Land layer and port facility layer. Each layer file consists of graphic files, index files, and attribute files. The graphic file records the mokto projection coordinate data of the chart elements, and the index file records the offset of the Chinese sea chart elements in the graphic file. The attribute file is a dbase table file, records attributes of chart elements, including the names and remarks of the elements.
Such a chart contains more than 130 documents. The system uses 74 charts including the general chart of China, the coastal navigation chart, and the bay chart, occupying more than 260 MB of space. Due to the limitation of the storage space and computing capability of the embedded system, the electronic chart data needs to be compressed and optimized on the PC to improve the system response speed.
2.2 electronic chart data compression
(1) Delete redundant data
MVCF charts have a large amount of data and a wide range of details on linear and polygon elements. The embedded electronic chart application system imposes a considerable amount of data waste due to the limitation of LCD display size and resolution. The resolution of the liquid crystal display used in this system is 640 × 480, the length and width are 21 cm × 15 cm, and the pixel spacing can be calculated to be about 0.031 cm. When the Electronic Chart is displayed at various scales, if the interval between certain points of a linear or surface entity is smaller than the pixel distance, it is obviously unable to be displayed, such redundant points should be deleted. Use pixel spacing as the threshold to delete chart redundancy data. The algorithm is as follows:
Select a linear or surface-like entity and traverse its coordinate point in sequence. In addition to the starting point and the ending point, calculate the distance between the vertex and the previous vertex for each vertex. if the distance between the vertex and the last vertex is smaller than the threshold value, delete the vertex.
(2) 2D geometric Compression
The appropriate two-dimensional geometric compression algorithm can reduce the data volume while maintaining the shape of the Electronic Chart. In this system, we use the Douglas-Poiker algorithm [2] to compress linear and facial entities. The idea of this algorithm is to gradually modify it from an approximate shape. This algorithm also requires a threshold value. The system can use the same threshold value above. Taking a surface-like object as an example, the algorithm process is as follows:
Select the two vertices V1 and V2 of polygon P. Consider that the polygon Q composed of V1, V2, and V1 is an approximation of P and scan other vertices in P, select the farthest vertex W from the Q edge, add W to Q to form a new polygon, and continue scanning other vertices in P, until the distance from the remaining vertex in P to the Q edge is smaller than the threshold value. Polygon Q is the compression result.
2.3 create a grid index
An efficient index structure is the key to improving data access efficiency. The MVCF chart has a large amount of data. During the actual use of the electronic chart application system, the area displayed is usually only a part of a chart. If you can quickly find this part of chart data, the system response speed will be greatly improved. The system uses grid indexes. MVCF charts are divided into 10 levels by scale from to. A grid index is created for each chart at a scale. The method is as follows:
A rectangular grid is used to traverse or tolerate chart elements one by one. Any chart element in the grid records the offset of the element in the graphic file, and finally forms a grid index file. The Method for Determining the intersection between a polygon element and a rectangle mesh is that if a part of the polygon endpoint falls inside the rectangle while the other part falls outside the rectangle, the two are intersecting; the determination of polygon and rectangle inclusion is that if all the ends of the polygon falls within the rectangle, it is inclusive. If all the ends of the rectangle falls within the polygon, it is inclusive. Linear elements can also be determined using similar methods.
3 System Software Design and Implementation
System software 2 consists of the following modules: system interface and management module, chart data module, chart Algorithm Module, Chart display module, navigation information management module, and GPS receiving module.
System Interface and Management Module: This module provides the main system interface and operation menu. By calling other modules, this module provides functions such as chart roaming, Automatic Centering, chart query, route management, and saving navigation records.
Chart data module: reads Electronic Chart files for chart query. You can search for a map element in the dbase attribute file by using an SQL statement to locate the element in the attribute file.
Chart Algorithm Module: includes various algorithms used in the program, such as geographic coordinates, mocato projection coordinates, and mutual conversion between screen coordinates [3], distance between points and points, points and lines, the length of the Line, the length and area of the polygon.
Chart Display Module: Chart display is the core module of the system. This module determines the grid to be drawn based on the central point position and display range parameters provided by the management module, and quickly completes the Chart Drawing function based on the Grid index. Considering that chart roaming is always continuous, bitmap caching is used to increase the response speed. When drawing a chart, you must first find it in the cache. If you cannot find it, you can expand the scope of the chart, save the image cache in place, and manage the cache using the least recently used replacement algorithm (LRU ). The specific process is shown in step 3.
Navigation Information Management Module: Provides navigation management functions such as route setting, route offset alarm, and track retention. Route settings form a route based on the continuous selection of the target point by the Maritime user, and set a yaw limit for the route. This module regularly obtains the map coordinate information from the GPS receiving module to determine the distance from the current location to the route. If it exceeds the yaw limit, an alarm is triggered. Track keeping is to regularly record and display the ship's location. A striking and intuitive track display can give the Marine personnel a clear understanding of the ship's location information, sailing history, and surrounding environment.
GPS receiving module: reads the data of the GPS receiver at regular intervals and parses the geographic longitude and latitude coordinates, time, speed, and heading information. The external GPS receiver is connected to the system through RS232, And the GPS receiver regularly sends data conforming to the NMEA standard to the system. This module only needs to read the RS232 serial port data in a targeted manner and parse the geographical longitude and latitude coordinates, time, speed, and course information according to the NMEA format.
Part of the system interface 4 is shown. At present, the system has been put into trial run. Practice has proved that the system can display the Current Sailing status of the ship in real time, quickly respond to user operations, and provide reliable electronic chart information for Marine personnel.
With the development of embedded technology, the performance of embedded system equipment is gradually improved, and the construction of marine navigation systems has more options. This paper proposes an embedded Ship Navigation System Based on GPS and electronic charts. It uses an embedded 32-bit processor and an embedded Linux operating system to provide a wide range of functions such as chart roaming, chart query, and navigation information management, it is cost-effective, easy-to-use, reliable, and fast-responding, and has been applied to the sea.