Home
In-Train Positioning System Master Thesis Public
Contents
1. 18 3 2 6 099 18 3 2 7 Estimating the position iiis 28a EA en 19 3 3 Performance Requirements usersensennonnonennnnn non nun esee neas sea sea sea suas suse nnn n 19 3 4 Database 8 nennen neas sea ite sua sua sua sua seas ann nnn 19 3 5 DESIGN CONSERAINES Arno Ib Re a P te Da niveo P ep 19 3 53 Standards combpllatiCe acer re 19 3 6 Software system attributes eusensennennennnnnnnnnnnnnennenn en nun nenne nnennnnnennennennennen nnn nnn 20 3 671 SOURCE Code rn Eee Aires 20 3 6 2 Availability i222 a ae aa a area RANED ANEA EDATEA 20 3 7 0 requirements 8 aaa III 20 Appendix A Overview of the existing 5 5 21 Introduction 1 Introduction 1 1 Purpose This Software Requirement Specification SRS describes requirements to the system that is to be developed in the Master Thesis In Train Positioning System Version 1 0 From this SRS a time schedule is derived for the thesis The intended audience for this SRS besides the student are all the supervisor the expert and the customer for this thesis plus anyone interested in the topic A basic knowledge of navigation and computer systems is assumed The structure of this SRS is derived from the IEEE Standard 830 1998 described in IEEE98 1 2 Scope The sys
2. Illustration 23 MT Manager display with data from a non moving sensor and good GPS running for an hour The Illustration 23 shows that the CEP is about 10 meters with some large but seldom outliers The number of satellites used green 6 most of the time Bad GPS reception The GPS antenna was placed inside the office window after it had a good fix beforehand This corresponds approximately the real situation in IC2000 cars The satellites used were 4 most of the time but sometimes also no satellite was used The signal level of the used satellites was around 20 dB less than in the good condition In situations where the GPS is not available a slight drift occurs but it is not significant as long as the GPS dropouts are short The CEP is larger as before about 25 meters 39 Analysis and Synthesis Ie MT Manager a sx File View Tools Window Help mo fo Current Directory rn Ei V gt 3 p C Program Files xsens MT Manager z Ea ich t Port Number Baudrate 9 Reset Method Current xr P ESSET Kd ik gt DI pbi i HeadingReset C al Position data for MT 00500008 gt Altitude data for MT 00500008 This graph may show linearization errors i 40 35 30 meters above spheroid 23 080 42 14 080 42 15 08042 16 08042 17 08042 18 08042 19 0
3. Asens ZZ M j This product is discontinued Sirf http www sirf com produ pomum Enhanced GPS Dead Good option smilar to SiRFDiRect cts SiRFDiRect Product In se le Reckoning Software for Portable the MIT G apart that sert pdf Devices we will not have It sports 3 accelerometers and access to sensor data 1 gyro for our own processing There is an evaluation Kit available that provides USB and RS 232 connection Supply voltage is 9 24 Volts NMEA protocol is supported Dead Reckoning precision after 1 Minute is 225 meters No direct access to the sensor data is possible Novatel http www novatel com p Combines GPS and inertial No possibility to feed SPAN CPT roducts span_cpt htm navigation GPS is built in the our own GPS signal device into the unit Too costly Xsens gt This seems to be a earlier No possibility for MT9 cr version of the Mtx attaching a GPS directly Mathematical blending of GPS and inertial data would have to be done pro grammatically 11 On inertial navigation Xsens Mtx http www xsens com en products human motion mtx php The MTx is a small and accurate 3DOF Orientation Tracker It provides drift free 3D orientation as well as kinematic data 3D acceleration 3D rate of turn and 3D earth magnetic field No external GPS Evaluation Kit available Noise of the accelerometers 0 001m s 2 sqrt
4. 52 Availability The system must be able to run 10 hours continuously 3 7 Other requirements 58 Quick Start A Quick Start Guide of 2 pages A4 laminated is provided in English and German No Guide further user manual is required 59 Documentation A documentation according to the needs of the Master Thesis is provided 3 8 Accuracy determination 60 GPS Accuracy The accuracy when using GPS and the track database alone in open sky conditions in an IC2000 car while the train is stopped is evaluated 61 WiFi Accuracy The accuracy when using WiFi and the track database alone when at least 3 Access Points are visible in an IC2000 car while the train is stopped is determined 62 Inertial Accuracy The accuracy when using inertial measurements and the track database alone when the train is stopped is determined one minute after one of the position providers provided an estimate This may get simulated in the office without actually boarding a train 65 intentionally empty 25 Appendix A Overview of the existing system Appendix A Overview of the existing system Positioning data flow overview Illustration 7 shows the positioning data flow in the existing system Various input devices provide absolute and relative information about the current position This information together with the measurement data is stored in one
5. Nearest waypoint A Estimated position C Illustration 18 Finding the nearest point on a track when the waypoints have heading information The algorithm may work as follows e Find nearest waypoint to the estimated position in the set of all waypoints e Calculate the angle phi between a line in direction of the heading of the waypoint A B and the segment from the waypoint to the estimated position A C AB AC AB AC where AB is the vector from A to B and AC is the vector from A to C phi arccos e Using the angle and it s cosine calculate the distance from A to the nearest point on track B AB cos A B AC e Calculate the two possible solutions using the distance A B and find the resulting point that is closest to the estimated position C Calculating a point segment distance The previously discussed algorithm uses the dot product This and other basic geometry algorithms are explained by TOPCO8IB There is also a code example 1 14 Extrapolation of positions Usually position estimates are issued by the providers on a regular basis but this is not guaranteed However the output of the system is required to provide a position estimate exactly every second This requires that the positions in the system must get extrapolated in the meantime This is where the estimator feature is needed Basically this is a mathematical algorithm that based on a history predicts the futur
6. stefan bigler enkom com Rolf Wenger Infobrain AG Rolf Wenger infobrain com MAS IT 2006 02 10 Oct 2008 Revision History Tag Date Author Draft 21 10 2008 Marcel Suter Small changes and additions 22 10 2008 Marcel Suter CR s from the Supervisor 24 10 2008 Marcel Suter Small add ons about IC2000 27 10 2008 Marcel Suter Assumed Availability of 10 11 2008 Marcel Suter Hardware added CR s from the Expert 11 11 2008 Marcel Suter Table of Contents 1 Introduction za PE 4 Td PUPD OSE icc nr a a I DE aed nee evens 4 Sic EE 4 1 3 Definitions acronyms and AbDDreviatiONS cece cece eee eee nun nun nnnm 4 PSL DEFINITIONS eke tee 4 1 3 2 Acronyms and Abbreviations esses enne nnne nnn nennen nnn nnn nnn nnn 5 1 4 References Bibliography nennen nun nun nun nun nun nun nn anna sna nnn 7 6 n T 8 2 Overall desctription 9 2 1 Product perspectiVe nn Henn 9 2 1 1 System interfates as naar 9 2 1 2 User iriterfaces un a ee 9 2 1 3 Hardware int rfaces s c ce rtr er ra een nee 9 2 1 4 Software 689 eee esee nun nun nun nun nun nun TEESE sena ansa sna nnn ann nnn 9 2 1 52Memoryarzse nr ERBE re Eee 10 2 1 6 0peratlons ee er kan 10 2 1 7 Site adaptation requirements eeseesnennen
7. 56 3 5 Using virtual 5 890 3 2 Jin kin ame 59 3 6 Checking the CEP calculation for 88 nennen nennen nennen 59 3 7 Implementing the INS 0 01 6 60 3 7 1 Using the SDK from XSens n un nee een 60 3 7 2 Configuring tlie MTisQG eere a a saad aca aan namen ara rer ede 60 3 8 Representing global 600 8 61 3 9 Implementation of the database 866 6 61 3 9 1 Interface ios Se tvi MAG deve dates aa A epe Eve xc sn NEP ea eee 61 3 9 2 Designing the database 60 a 61 3 9 3 Getting the track segment 0 8 62 3 9 4 Getting the nearest point on the 5 66 3 10 Class Estimate an ran aaa 72 3211 Class DeviantDouble 2 nr a hee alte ug ente RE aor aAA EPA Na dus 73 3 12 Cl sS Merger er ww 74 FLI TONS RUIN 74 cac NIIT 75 3 14 1 Select Track Segmenta ciiin crc ern COR d CE OR e ELE YR EE LR a Med adis 75 3 14 2 Fire Event Markers ee eene nen REN hen 75 CU MORI IP 75 3 14 4 5 00 0 5 este DETECTED II Bee 76 3 15 Tool CHAM sass tices ceca ER ES IU RR E UM 76 3 16 CONPIQUFATION eer 78 3 17 External Code and Libraries ssssssssssesseeseeeeen EEE EEE EEE nnn 78
8. Deregister IProvider void event Register IProvider void PositionUpdated EstimateEventArgs void interface IProcessor interface IBuffer GetEstimate Estimate Illustration 27 Business class model for the position estimate processing 45 Design ITool defines identification for a tool This will later simplify the GUI code for status presentation and allows for easy differentiation of tools in code An IBuffer does all the same as a processor but has also an internal storage It can either be used as static buffer for a single estimate or implement an extrapolation algorithm If an IConsumer is attached to an IBuffer and wants to intermediately access the buffer instead of just waiting for the Available event it must keep an internal reference to the IBuffer object So it can access the getter The GetEstimate method could also get implemented as read only property An IProcessor will be used for most of tasks They could serve as mixers as the Aligner and so on An IProvider will implement the position providers using the various sensors Current Best Position Estimate 46 Design A singleton called Current Best Position Estimate will hold the best estimate at any time It could be implemented as Singleton of an IBuffer at the very end of the tool chain Anyone interested in this information could just statically query the singleton 2 2 2 Example O
9. www codeproject com info cpol10 aspx 4 4 C Geodesy Library for GPS This is a small library providing distance calculations on the surface of the earth The library is available in source code at http www gavaghan org blog free source code geodesy library vincentys formula The library also defines coordinates and position classes which are used in the solution and the types are now part of the common interfaces definition These interfaces were simply generated from the signatures of the existing methods The classes interfaced are Angle GlobalCoordinates and GlobalPosition with the interface classes IAngle IGlobalCoordinates and IGlobalPosition respectively The library has been adapted to properly implement those interfaces See http www gavaghan org blog 4 4 1 License There is no license attached to the code 4 5 XSens SDK The XSens SDK provides a COM DLL and documentation See XSNSO8UM 79 3rd Party component usage 4 5 1 License The SDK has a proprietary license and we have only obtained a temporary license because the sensor is only rented 80 Test 5 Test 5 1 Unit Tests Unit tests are a means of testing parts of software systems I have created a single test project for the whole solution that tests critical parts of the solution Visual Studio 2008 supports a simple way of creating and executing Unit tests standarduser MSKYM HTI 20
10. 3 Image 2009 Geozeng T 5 San 2 T S v TN Nora Google B amp gt ron N gt LOW p m po Zeiger Lat 46 939834 774739045 Ubertragungal III 100 Sichthohe Illustration 43 At the Ostring 793 m 70 Implementation When the distance to the track is large and the angle to track is also large the use of only a single waypoint could lead to small irregularities because of the aforementioned heading difficulties This is visible at the position where the highway crosses the railroad track and in extremity when the car drives far away from the track to Spiez N Google Earth Datei Bearbeiten Ansicht Tools Hinzuf gen Hilfe Illustration 44 In G mligen 71 Implementation 3 10 Class Estimate The most important class in the whole solution is the Estimate class with it s interface IEstimate IEstimate IEstimate A Estimate 2 Interface Class Properties lt Fields 8T Acceleration Properties EN Altitude Acceleration DP Cep P Altitude 8T HasCoordinates Cep Heading HasCoordinates HeightOfGeoid A Heading 7 Latitude AP HeightOfGeoid F Longitude 9 Latitude MagneticVatiation P Longitude NumberOfSatellites MagneticVatiation Quality NumberOfSatellites DT Speed F Quality Ey TimeUtc Speed 2 TimeUtc i i Methods Y DeserializeFromCsv Equals Estimate 1 overload 3 GetExactString Get
11. FK ROUTE SPE ROUTE 7FEAFDSE 0 ROUTE SPEZ ID ROUTE SPEZ ID PK ROUTE SET 7849DB76 FK ROUTE SET OPERA 7E02B4CC PK ROUTE SPEZ 7A3223E8 ROUTE SPEZ column PK ROUTE SPEZ ID int FK ROUTE SET ID int NEW NUMBER varchar 255 o PK PK ROUTE SPEZ 7A3223EB nt FK FK ROUTE SPE ROUTE 7EF6D905 nt ROUTE SET 0 ROUTE SET ID LtFK CROUTE SPE ROUTE 7EF6D905 NE V ROUTE DEFINITION column PK ROUTE DEF ID int IS ACTIVE bit DEFINITION TIME datetime DEACTIVATION TIME datetime COMMENT varchar 50 ROUTE TYPE char 1 CATEGORY int VARIANT varchar 50 PK PK ROUTE DEFINITION 33D4B59B int unique IX ROUTE DEFINITION varchar PK ROUTE DEFINITION 33D48598 1 ROUTE DEF ID ROUTE DEF 0 FK ROUTE SET ROUTE DEFINITION ROUTE SET column PK ROUTE SET ID int FK OPERATOR JD int FK ROUTE DEF ID int COMMENT varchar 50 PK PK ROUTE SET 7849DB76 nt FK FK ROUTE SET OPERA 7EO2BACC nt ROUTE SET ROUTE DEFINITION nt OPERATOR D OPERATOR D PK OPERATOR 76619304N 1 OPERATOR column PK OPERATOR ID int NAME varchar 10 PK PK OPERATOR 76619304 nt Illustration 20 Model of the existing RailRouteDb 34 Analysis and Synthesis 1 16 Data relations The following gives an overview of the data in the tables 1 16 1 MARKER DE
12. Time Velocity data for MT 00500008 u 3 HH BvelN Ever w f B UC 30 Status data for MTU 0 a X Bserrest BIXKF Valli GPS Fix Velocily m s GPS Satellite Status for MT 00500008 __ bd ee Eoun F ound oun TE ound a BlUsed Mill aut 3D View 00500008 1 40 28 730 1 40 58 730 14128 730 1 42 50 160 142 55 160 Time Time F MEI T Illustration 24 MT Manager display with data from a non moving sensor and bad GPS running for about 20 minutes 1 20 2 Drift Drift was measured with no GPS reception The GPS antenna was removed after the receiver had a good fix beforehand This corresponds approximately the situation when entering a tunnel with a good fix except that the speed would of course be non zero The EKF scenario used was Automotive A drift occurs but this is much less than the specified 350 meter per minute In the first try I experienced a drift of 150 meters after 20 minutes In a second try the drift was 50 meters in 8 minutes 40 Analysis and Synthesis File View Tools Window Help s we elon E Current Directory E sns Git A a EZ V F wae y DB OO E l Rt IH Port Number Baudrate Reset Method Current En comi fauto z ka d gt Di be M Care z Position data for
13. gt gt WaypointScope Class Fields _trackSegmentNumber i maximumSetSize ifj minimumSetSize Properties hes CenterPoint LastDistanceToNearest Waypoint A scopeRadius SS TrackSegmentNumber gt WaypointSet Methods aY AdaptScopeRadius aY FireAccessEvent a GetNearest Waypoint gY Update 5 WaypointScope Events gt DbAccessBusy 7 DbAccessIdle 2 Illustration 40 The WaypointScope class Since the data in the current RailRouteDb also has heading information for each point the analyzed method of using segments between two or three consecutive waypoints was dismissed The heading information is now used to create a line through the waypoint on which the nearest point to the input position is calculated This algorithm has the advantage that it only needs a single waypoint and was therefore much easier to implement The drawback is that it relies very much on the the heading data where small errors could yield quite large errors In practice this is the case when the track has much curves and the distance from the input estimate to the next waypoint on the track is large Long term tests with real data could tell how big this issue is In other more frequent cases the results are of reasonable precision 67 Implementation Simulation To assess the performance of the algorithm I have made a simulation using Google earth The data used consists of three parts e The position output of the sof
14. sd Building the tool chain toolChain ToolChain interface mtigProvider lProvider interface placelabReader Provider interface iE gpsReceiver IProvider I interface t gt mixer IProcessor 1 I Register IProvider l l 1 I 1 1 1 i 1 LJ x Register userMarkerProvider 1 1 i 1 L i i Register mtigProvider l 1 1 1 1 i Register IProvider I 1 1 l 1 L l i l interface a EELEHER L 2 L 1 EE Eje EES I T 1 x 2 I 1 l i Register mixer l T 1 i i H interface DE 4 currentBestPositionEstimate i i I IBuffer i 1 Register aligner 1 1 l 1 1 interface 5 5 0 serialNmeaEmitter l I f IProcessor l i 1 i Register currentBestPositionEstimate T 1 1 1 i interface ere fe pp SAMO logger IConsumer I 1 l 1 E x Illustration 29 Building the tool chain 2 3 Data Exchange 2 3 1 Using WCF To keep the data exchange simple the design relies on Microsoft s Windows Communication Foundation WCF This involves the design of ServiceContracts and DataContracts 49 Design Track Segment and estimate data exchange The user will input the track segment number Illustration 30 shows the desi
15. sse gt dapiaosgsd5 gt i BR QUSPINOAGIGEAIASIO 4 BEE ABPIADAGAIFEAABSIO BR UPINOAGBIFEAABSIO ssejD sse A u043 222y5nI4 jooLajqevsasqor sse PEASY IHRGIOSFIPOLGAGEALISG 4BWNSUOD Ipo1I AaPIAO4dI 4055390441 segjoo ajqeaasqo 4 ssejD amp aseguaplAosgajqeasasqo 10011 Joo1asjqe 485qoI Illustration 35 Abstract and concrete tool classes overview 58 Implementation 3 5 Using virtual serial ports ComOcom is a tool that provides connected serial ports without real hardware in Windows XP It thus servers as a virtual null modem cable This is useful for testing purposes and is used to fulfill the requirement 57 The configuration of the serial ports however was not so easy They should allow to send and receive data even when no device is connected The following configuration worked OE es Se EE A El Form1 dla Ea f Setup for comOcom xi coms COMS Virtual Port Pair 0 El Misc aj gt COM8 emulate baud rate V V emulate baud rate Acceleration none portname COM enable buffer overrun V IV enable buffer overrun Altitude none emubr YES enable plug in mode enable plug in mode CEP 5 22 emuoverrunz YE enable exclusive mode J enable exclusive mode Heading pluginmode NC enable hidden mode enable hidden mode HeightOfGeoid exclusivemode RX Rx Latitude 46 93
16. 1 13 Find nearest point on track esses nennen nnnm nnne nnn nn 30 1 14 Extrapolation of Positions tese eese a chao ener aet or Rc IDE D awe D ac PA Cv DOE ERR 31 1314 T Algorithm 2o eoi tL e o odo er xir RR RTI RA a XE Ern 31 1 T5 Existing Database anna d e REX debian dedi bia REESE A ERU Ea ERE EE MEE XI Dua 33 1 16 Data relations iio ea Dr edere poene eal nee ea an rne RERO bU Ope a TERRE 35 1 16 1 MARKER DEFINITION 52 nnn en n yy nra Rn nex i a ence a re neh nn man en 35 1 16 2 RAIL STATION 2ER Ee x d redeo ere S CBE FEE 35 1 16 3 RAIE STATION XSTAT nase en ia o S30 RIXA OU RA ERI RO RI E eR OD ala 35 l16 4 ROUTE DATA rex Rr A re Eu De Ur EE REN etx IEEE crx RETE IS 35 1 16 5 ROUTE DEFINITION Haaren 35 1 16 6 ROUTE_DEFINITION_ROUTE_DATA ssserseneeneenennennennnnnnnnnnnnnnnnnnnennnn nennen nennen 36 1316 7 ROUTE ORDER nn are eek RR Rr RR NR ER een EUR 36 1 16 8 ROUTE SET 35 eee de 2 22 e HH rae baie woe easels ee a ee A Taa 36 1 16 9 ROUTE SPEZ 25 04 an 0 0222 c dot aot DO pE IIa PDA SIE RR here 36 1 16 10 ROUTE SPEZ ROUTE DATA nn a a as 36 1 16 11 MAPINFO MAPINFO 44 6 1 0 3 emnes nnn nn 36 1 17 r o oT wr 36 1 18 Database ACCeSS une len nalen 36 2 19 Initlal position 32 cio Rn nee ieee ee Aaa eo Renee aan lee 38 1 20 Accuracy and Drift of the MTi G INS 38 1 20 1 ACCURACY ete re p E p E e E E Xe pa E EE PR TEE duda v ore aai aal en 38 1 20 2 DI LE
17. 20 01 09 22 Mon 18 01 09 22 Tus 06 01 09 22 Tue 27 01 09 22 Mon 26 01 09 22 Tus 27 01 09 22 Mon 09 02 09 17 Mon 02 02 09 Tue 08 02 09 Mon 09 02 09 Tue 10 02 09 30 Tue 10 02 09 Tue 17 02 09 34 Mon 16 02 09 Tue 17 02 09 37 Tue 17 02 09 37 Fri 20 02 09 Thu 19 02 09 37 Fri 28 11 08 Fri 20 02 09 Thu 19 02 09 Thu 19 02 09 aie TMITIEISIS 2911 optional one optional SUM Prio 1 SUM Prio 1 IM Prio 1 SUM Prio 1 SUM Prio 1 SUM Prio 1 gg SUM Prio 1 SUM Prio 1 SUM Prio 1 Projekt MAS 06 02 23 Task Dati ue 11 11 08 Progress Miestne vy Rolled Up Task ST Polled Up Milestone Rolled Up Progress mmm External Tasks lt Project Summary Group By Summary mung Deadline Selle 1 7 Use Cases Identify and model use cases Define scenarios and test the use cases 8 Packaging Create packages package diagram GUI and Engine must be strictly separated Also all code that is not part of this diploma work be it publicly available open source or from the customer goes into separate packages 9 Business Class diagram Create business classes Class diagram 11 Logical Db model Create logical database model 12 Sequence diagrams Create sequence diagram for a p
18. GUI executable containing both the engine and the GUI part The classes for building the tool chain are also contained here 3 2 2 Test Unit Test classes for the whole solution 53 Implementation 3 2 3 Common Components that are used in the whole solution Common Interfaces Interfaces for all sorts of components including the ones for data exchange between GUI and engine Common Base Base implementations where the definition of Interfaces is not sufficient example EventArgs classes 3 2 4 Core The core of the engine It contains all classes for the sensors the tools with their processing logging and the data output Core Tools Implementations of the various tools 3 2 5 RailrouteDbAccess All classes for the access to the track database An Interface is provided to make this package exchangeable 3 2 6 Guilib Controls and other items for creating the GUI GuiLib UserControls UserControl derived classes with specific functionality for the GUI part 3 2 7 CmtComWrapper A wrapper around the COM DLL for the MTi G sensor It provides sessions and basic error handling 3 3 Calculating the heading deviation for GPS data The problem here is that the NMEA data used does not provide an indication of the accuracy of the heading It is a known problem for GPS receivers that the heading accuracy is low on low speeds I take this partially into account by calculating an assumed uncertainty by using the trav
19. MT 00500008 Altitude data for MT 00500008 This graph may shaw linearization errors fs us 62345 62340 E 623 35 meters above spheroid 10 04 990 10 05 240 Time lt elocity data for MT 00500008 BveiN Evei w SelfTest BIXKF Vaili GPS Fix SEVIS GPS Satellite Status for MT 00500008 2 WEound MF ound MF ound MF ound iied Blusec BF aul Velocity m s Ro Bare o 712 i 2 S 8 39200 842200 845 200 8 48 200 Time Readv 5 z z MI a Illustration 25 MT Manager display with data from a non moving sensor and no GPS running for about 8 minutes 9 10 280 9 15280 Time Driving with a pushcart To evaluate the behavior while moving I have installed the sensor on a small pushcart over the non steering axis with the x direction pointing to the moving direction Unfortunately no clear position change was viewable in the position data window of the MT Manager The position changed but the trend did not correspond to the actual movement direction Moving speeds were within the walking speed range Driving with a car To further evaluate the unclear behavior observed with the pushcart I brought the sensor into a car The result stayed the same with more clearness While the GPS antenna was connected the movement of the car was visib
20. Project Management 6 1 Review Meetings 6 1 1 Kick Off 9 10 2008 On the Kick Off the following agreements have been made e The student delivers a schedule together with the SRS until 14 11 2008 e The next project review meeting takes place on the 11 11 2008 e The student discusses and defines the confidentiality level with the company 6 1 2 Meeting on 11 11 2008 On the meeting the NDA was signed the SRS reviewed and the time schedule discussed Open tasks e A new system diagram is drawn by the student with the system boundaries tied to the software only e The student updates the SRS and the time schedule accordingly and sends both to the expert 6 1 3 Meeting on 16 12 2008 In the Meeting the current work mainly Analysis Synthesis and Design was discussed No specific action was agreed upon since the project seems to be on track Next Meeting will be at 13 of January 2008 8 00am 6 1 4 Meeting on 13 1 2009 In the Meeting the documentation the time schedule and the currently implemented code was discusses No specific action was agreed upon The project is slightly under pressure since major parts are not jet implemented The next review will be at the 11 of February The examination of the thesis will be at 3 of March 2009 6 1 5 Meeting on 11 2 2009 The code has been partly reviewed and the project status has been evaluated The following points were raised during the discussion e The track data and
21. a position estimate for inclusion in the current best position estimate Postcondition The current best position estimate is 11 Analysis and Synthesis enhanced Invariant Incoming data User s decision on whether to fire the event Outgoing data No external data Comments Requirement numbers 14 Watch status Description The user sees a graphical representation of the current status of the system Actor User Precondition Engine and GUI is started Activities The GUI registers itself on the engine and provides a form of callback The engine updates the GUI when a status does change Postcondition User has seen any status change Invariant Incoming data System status from the engine s internal components Outgoing data Visual representation of the status Comments Requirement numbers 20 21 22 Provide new position estimate Description Any of the attached sensors provides a new position estimate Actor User GPS receiver INS Provider Place Lab reader Precondition System is started Activities This contains the most part of the business intelligence Any incoming position estimate is merged with others extrapolated in time if necessary and stored in an internal storage as current best position estimate 12 Analysis and Synthesis Postcondition The
22. available from Business Workflows Illustration 12 Activity diagram for New position from GUI is provided 1 9 7 Merging Process Literature There is plenty of literature available on the theme of calculating the most probable position of vehicles One of the most related articles to my problem is PLSTOSAE However since only basic mathematical algorithms are required to use this is beyond the scope Own solution The main problem when merging is that not all position providers have an estimate available at the same time However to provide an accurate merged position estimate time based distortions jitters must get eliminated The basic concept to solve time jitters is to use extrapolators that extrapolate the last position estimate of each source to the time now From the time update position estimates I calculate a weighted average of their position information I use the reciprocal value of the CEP as weighting factor Averaging is done by weighting all coordinates latitude and longitude sum them then divide through the sum of the weights The result is the new average The new CEP is the averaged CEP from the used extrapolated estimates Illustration 13 shows the process in a graphical diagram 24 Analysis and Synthesis Position estimate history EE Extrapolation with CEP circle EE Mered with CEP circle ri jihaijPhuket TA ger b lt fl CucinaWlllpiccolo Risto
23. based on the distance to the track The settings could be converted from the currently used app config in a separate class and made editable within the application itself 99 Known Issues e In case the GPS is not sending data an error should be shown Currently only Waiting for Estimates is shown e Improve the GUI ergonomics Especially design the input navigation using a keyboard 100 Lessons learned 8 Lessons learned May lessons have been learned Among the most important Be always more conservative with the time schedule thank you think Search the Internet and ask colleagues most probably someone has already done what you want to do e Visual Studio 2008 is great e Make prototypes 101 Future 9 Future Although the thesis work has been finished the project still could evolve further Some of the possible future work and improvements is shown in this chapter 9 1 Optimizations 9 1 1 GUI The GUI could get ergonomically improved and more option for user data input could be thought of especially an improved handling of the Train stopped button where the button could also explicitly remain pressed for a certain amount of time 9 1 2 AHRS and Kalman The merging of the estimates could be done with advanced mathematical algorithm as the Kalman Filter and Bayesian Estimators Often used in commercial AHRS systems 9 1 3 GPS With GPS slow changes when the train is completely s
24. estimate in detail In Train Positioning System SE X File About M Select Track Segment Number E 03 100 gt M Fire event markers E Attributes HeightOfGeoid Magnetic atiation NurmberOfS atellites 1 berf hrung gross Wylerfeld Quality ManuallnputMode 2 Tunnel Grauholz S d Timelltc 16 02 2009 13 39 3 Tunnel Grauholz Nord E Motion Train stopped 4 BhfHindelbank Acceleration 00 7 5 BhfLyssach Heading 6 Bhf Burgdorf Speed 0 3 4939371 090660076 7 Tunnel Burgdorf S d El Position 8 Tunnel Buradorf Nord zi fade Status 21 Tool Status Status description Last emission Laststatustime E3 GPS input COM3 Faulty Could not open serial port COM3 13 38 40 gt Event marker input Working CEP 13 39 39 13 39 39 o Accelerometer input Faulty No MT device was found Che 13 39 41 p Merger Working CEP 14271 1879635358 13 39 39 13 39 39 A Dispenser 1 s Ready Timeout 13 38 33 13 38 36 Aligner Ready Timeout 13 38 30 13 38 35 A Serial emitter COMS Ready Timeout 13 39 30 13 38 35 Keeper Ready Timeout 13 37 01 13 37 04 Acceleration Database access Illustration 49 The GUI of the system 3 14 1 Select Track Segment Here the user can select the current Track Segment using it s number The number must be looked up in a table available at the customer if the correspondence between the track and it s number is not known to th
25. estimated Acceleration in the direction of the heading only Origin This is a dictionary of the unique identifiers of the position providers from which the Latitude and Longitude values are taken from with percentage of their contribution to the position Magnetic variation This may get taken from a GPS input and is not mandatory by requirement It could be however useful anyway Fix Quality indicator an enumerated value Number of satellites estimated Altitude Height of Geoid can get taken from a GPS reading if available All values that are estimated must also contain a standard deviation For Latitude Longitude the CEP is given because a standard deviation is not useful here It is also possible for a position estimate to contain only some of the above mentioned values while the others are omitted Especially the acceleration will probably only get used partially since it is not outputted via the NMEA protocol 1 8 1 Units I recommend using metrical units where not otherwise required This would result in the following unit usage Horizontal position Latitude and Longitude Degrees with decimal places Vertical position Altitude Meters Distances on the surface Meters Speed Meters per Second Acceleration Meters per Second per Second Horizontal moving direction Heading Degrees with respect to true north Fix Quality Indicator the values are according to the specification 0 invalid GPS fix S
26. looked up against a database with georeferenced entries of the RFID s It would have to be determined whether passive ones are detectable fast enough and over the required distance 103 Bibliography 10 Bibliography NICOO1 Nicomsoft Advanced WiFi Manager http www nicomsoft com wifiman advanced htm NETSO1 Marius Milner stumbler dot net http www stumbler net PLLBO5 Anthony LaMarca Yatin Chawathe Sunny Consolvo Jeffrey Hightower currently not used IanSmith James Scott Tim Sohn James Howard Jeff Hughes Fred Potter JasonTabert Pauline Powledge Gaetano Borriello Bill Schilit Place Lab Device Positioning Using Radio Beacons in the Wild SUMOSTE Themeneingabe Master Thesis Thema In Train Navigation 21 8 2008 Marcel Suter Obtainable from the author SUMOSFS In Train Positioning System MAS 06 02 23 Feasibility Study 10 10 2008 Marcel Suter Obtainable from the author IEEE98 IEEE Recommended Practice for Software Requirements Specification 1998 The Institute of Electrical and Electronics Engineers Inc 345 East 47th Street New York NY 10017 2394 USA ISBN 0 7381 0448 5 SS94654 PDF SUMOSSR In Train Positioning System MAS 06 02 23 Software Requirmement Specification 17 11 2008 Marcel Suter Obtainable from the author GPSI08 Dale DePriest NMEA data 2008 http www gpsinformation org dale nmea htm XSNSO8UM XSens Techno
27. not using the user clicked event markers and the alignment features The reason for this is that the CEP behavior of the system is better visible in this configuration 5 3 1 Drives Several drives were taken two of them described in this section The sensors were installed near the window and the track was saved using built in logs and with the EarthBriage tool 86 Test 87 Test 88 Test T Illustration 53 Test drive equipment G mligen Belp The train was boarded in G mligen with a GPS fix The fix was occasionally lost during difficult landscapes but was always regained The GPS was placed inside a jacket pocket and not as would have been optimally near the window The drive was in a train from G mligen to Rubigen then in a bus from Rubigen to Belp The drive showed that the heading is very wrong when no GPS is available this resulted in great slopes Also the acceleration is measured with a slight negative bias This resulted in in a quite great displacement of about 500 meters after about one minute Belp Berne The train was boarded in Belp without a GPS fix After a short time a fix as available and the position was known The fix remained stable during most of the journey or was regained quickly The track is visible below 89 Test 90 Test Datei Bearbeiten Ansicht Tools Hinzuf gen Hilfe vite Tl 4 G Ostermundigen O Mel
28. parameters This also may help development when the test is written beforehand This is then called Test ariven Development I have partially used this technique by writing test and code in parallel especially when using the track database Unit tests have proven to be a very effective way of testing the outcome of small function blocks It also enforces the thinking about the modularization of code 5 1 2 Unit tests in the solution During the course of the implementation I have created 20 Unit tests all of them are visible in the Illustration 54 The tests are mostly used to verify the various algorithms used Found errors About a dozen otherwise quite hard to find errors have been found using the unit tests An example of this is shown below Non positive coordinate values 11See http en wikipedia org wiki Test driven development 81 Test There was a problem when using coordinates with non positive values as found east of Greenwich and south of the equator A value estimated as absolute had a sign in the method GetLongitudeStrings The correct line now is double lonMinutes Math Abs estimate Longitude Value lonDegrees 60 5 1 3 How to test events Testing the raising of events may get easily tested via anonymous delegates An example from http code inside de blog tag unit tests shows how to do it TestMethod public void ConnectionManager Raise StateChanged Event ConnectionMana
29. resource files translatabl e 8 GUI 1 OK railway segment number 9 GUI 1 OK segment as text 10 Track db 1 OK Wrong input is not possible because of the list in input the GUI is read only matching 11 Track db 3 Missing input plausibility 12 Track db 1 OK input success 13 Event 1 OK firing 14 Stop event 1 OK 15 Event list 1 OK scrollable 16 Event list 2 OK population 17 Event 2 OK reselection 53 Event 2 OK when the Space is used shortcut GUI has focus 54 Event 1 OK double click 18 Event re 2 OK firing 83 Test 19 Last event Wrong Last element stays selected 20 Status at OK any time 21 Position OK Provider Status informatio n 22 Output OK status informatio n 23 Comport OK possible This not used in the project but possible with the Adapter respective hardware 57 Virtual OK Comport 24 Engine OK start 25 GUI start Requirement Dismissed by change request dismissed 26 GUI stop Requirement Dismissed by change request dismissed 27 Engine OK stop 28 WiFi scan Missing 29 WiFi Missing lookup 30 GPS usage OK 31 IMU usage OK 32 Track db OK usage 33 Track as OK Also a heading information is used because the waypoints existing database has this information available 34 Unique OK segment number 35 Segment OK narrowing 84 Test 36 Us
30. seconds 0 otherwise Horizontal dilution of position is set to an estimation of the CEP of the current position estimate Altitude Meters above mean sea level is set to the value of the last GPS input Height of geoid mean sea level above WGS84 ellipsoid is set to the corresponding value of the last GPS input time in seconds since last DGPS update is left empty DGPS station ID number is left empty The checksum is calculated according to the data 3 1 2 User Interfaces 7 GUI not The system must also work with accordingly limited precision with no user input at mandatory all 56 GUI English The language of the GUI of the system is US English 18 Specific requirements GUI translatable The language of the GUI can be changed without recompilation e g by replacing one or more files Selecting the current railway segment 8 GUI railway At any time the user may input the railway segment number he or she is currently segment traveling on This narrows down the possible positions to a set of lines between the number way points for this segment 9 GUI segment as The input is possible via a text field text 10 Track db input If the input does not match to an entry in the track database an error message is matching shown to the user 11 Track db input A plausibility check against the current position is done for this user input plausibility 12 Track db
31. system has digested the new position estimate Future emitted estimates reflect the new estimate Status information is updated as applicable Invariant The system uninterruptedly continues to output the current best position estimate Incoming data Position estimate from one of the sensors Outgoing data None directly Comments The actors act individually there is no assumable timely correlation between the provided estimates Each estimate from each actor may affect the system somewhat differently Requirement numbers 13 14 29 30 31 13 Analysis and Synthesis 1 3 Engine process overview The main task of the engine is to process the the position estimates from the various providers Illustration 3 shows a possible design Position providers manually sets Calculates event best markers estimate Puts position on track Track Db Set Segment RS 232 gt Interface m Position estimate gt General Data Illustration 3 Engine process overview 14 Analysis and Synthesis 1 4 Deployment diagram The deployment diagram shows the separation of the processes and how they could get hosted on various connected computers Hosting on different machines is however not required and most probably also not used if implemented but shown here to make the separation of the components clear The deployment diagram shows also that t
32. the ServiceContract It observes one or more tools attached via the Observe method and publishes it s data to all subscribers Subscribers can subscribe and unsubscribe to the service via the respective methods Subscription and publishing back to the subscriber will involve a callback which is not shown at this stage The publisher is hosted with the instance context mode set to Single because it must present the same information to all subscribing clients The data contract is the ToolStatusDataContract class Defining the status observation and the publication of the information works similar as wiring the chain The toolChain singleton creates the publisher and initiates observation of the relevant tools The sequence diagram in Illustration 32 shows the process with the object diagram in Illustration 28 as example again where only the providers and the emitter is observed The creation of the tools is not shown sd Defining the staus observation and publication 7 interface interface interface placelabReader gpsReceiver serialNmeaEmitter lProvider lProvider lProcessor toolChain interface interface ToolChain userMarkerProvider mtigProvider IProvider Provider interface concreteToolStatusPublisher IToolStatusObserver Observe userMarkerProvider Observe mtigProvider Observe placelabReader Observe gpsReceiver Observe serialNmeaEmitter Illustrati
33. time t1 This is the current static positional error of the INS unit Calculate the mean heading of the route between the INS fix from tO and t1 Calculate the mean heading of the route between the Current best position estimate at tO and t1 The difference is the current static angular error of th INS unit Calculate the changing of the speed of the INS fix at tO and t1 Divide the result by t1 minus tO This is the current mean INS acceleration Calculate the changing of the speed of the current best position estimate at tO and t1 Divide the result by t1 minus tO This is the current mean best position estimate acceleration The difference is the current mean acceleration error of the INS unit As long as there is no GPS fix from the built in receiver apply a correction for all errors to the INS provided position The kept current best position estimate from t1 is used as base point for all subsequent corrections Illustration 16 shows this algorithm as state event diagram J stm Error correction state event diagram GPS unavailable Apply the error correction according to the error parameters calculate current CEP output the GPS is lost corrected fix Reset all error parameters to zero GPS unavailable GPS available GPS is found GPS available DBPE has a better CEP than current error corrected INS fix Keep INS fix and Calculate error parameters CBPE output current I
34. to 5 seconds after it has been fired This is useful in case of errors when a landmark was misinterpreted Additionally the user can make comments during and after the course to indicate specific events or circumstances experienced during the measurements be it of positioning matter or else Illustration 9 Detail Available event Applies only to the GSM version of the markes during the course measurement software in the UMTS version comments are only allowed at the start of the measurement 28 Appendix A Overview of the existing system Measurement modes There are 4 possible measurement modes e GSM Voice e GSM Data e UMTS Voice e UMTS Data The laptop is set up as dual boot system with two Windows XP operating systems Each system is set up for either measuring with the UMTS or the GSM Hardware Also the software used is different The pictures shown here are all with the GSM Hard and Software In terms of positioning the requirements will be the same for GSM and UMTS measurements Both systems take the data from a serial comport using the RS 232 protocol Quantities Uptime and power During a normal day up to 8 files each representing a measurement along one railway segment are created During a year measurement is done on 50 days The system runs on a 12 Volt Accumulator of 60Ah capacity It may be continuously up for 10 hours including the laptop The laptop is usually not shut down during the day not
35. 0431 3 paAouJaI ale S1OSUAS e uai uaAa 5843 jou seop Walshs au Idi OU pue S49 ou Ing jndui wasn uaym SHOM ndino 54 a ge ieAe Ilia INA SdO ou jasn ou uaym sx1o jndjno 154l pauyap se si jauun e ur anuju Jaye Ade naay pabeinoaua Aj eyauab si abes o Y sjuauodwiog Aued pig SALEIGI ajqesn Ajerneudu02 A uo asn o 513440 jo Huppe 1aje smojje uajs s eu sree W aqnae L UM 3009 lemau anou pexa ay uo jou suogisod as ga d uo snag pinoys y J Uoisi2ald S ap ao d uonisog aIgelIEAE eie SIOSUAS je uaym play uado ayp Ul xew sjajeuu SZ S uopemap pjepuejs 3 Bussasod eed uorsioeud aseauau 0 pexiuu si si0suas e WOW ejep au palo d ayjjo ped jou si s osuas 1aujo ay uy ejep 0446 pue jeiau ay Dururquuoa 10 s3geujeujeu au say xal pajeedas eujujo2 se e qe ieAe si ejep 43214 ay pue saeu JASN 10 ejep eu pasn jab Aew sx2ed anea j pue x10meulel4 LIN ISamau d euoissajoid dx SMOPUIAA uy papeo si dojde au MED HIMA ue sainjeaj dojde au Suagx WOH eur HSMAI Xo gn aui S 18418381 8dO pafo d ayy jo ped jou si Aj ddns samod au squleqsuog jun jemaul au aieapieh jeuonippe snid dojdeq piepuejs e uo suni sujajs s eu cac sdB nou 0 0 senuguoa ujajs s ssauj
36. 09 02 Run X Debug II 3 hy 4 d GroupBy None all Columns gt Type keyword B v Testrun completed Results 20 20 passed Item s checked 0 Resut l reswme Proje Error Message Passed AlignTest Inventis Ips Test 04390 Passed CopyConstructorTest Inventis Ips Test Passed CreateGgaSentenceTest Inventis Ips Test 0439 Passed CreateRmcSentenceTest Inventis Ips Test 0430 Passed DeserializeFromCsvTest Inventis Ips Test 143 Passed DistanceTest Inventis Ips Test 04390 Passed EqualsTest Inventis Ips Test O Passed EstimateConstructorTest Inventis Ips Test 04390 Passed ExtrapolateTest Inventis Ips Test 0430 Passed GetEventMarkersTest Inventis Ips Test Ode Passed LinePointShortestDistanceTest Inventis Ips Test 0430 Passed MergeIDeviantDoubleTest Inventis Ips Test O ae Passed MergeTest Inventis Ips Test 04390 Passed NullableAverageTest Inventis Ips Test O43 Passed op AdditionTest Inventis Ips Test 04393 Passed op_MultiplyTest Inventis Ips Test 0430 Passed SelectMostAccurateTest Inventis Ips Test Ode Passed SerializationRoundtripTest Inventis Ips Test O Passed SerializeToCsvTest Inventis Ips Test O 239 Passed UnweightedAverageTest Inventis Ips Test x gt Illustration 52 Visualization of Unit Test test results in Visual Studio 2008 5 1 1 Application Unit test are applicable everywhere where a concrete method should get tested with concrete
37. 15200 b s 16 Specific requirements 5 RMC Sentence The RMC Sentence with all parameters is provided The data is compiled as follows where the units are according to the NMEA specs e Time of fix is the current UTC e Navigation receiver warning is A valid when the currently estimated CEP is less than the specified CEP V Warning otherwise Latitude and direction is according to the current position estimate Longitude and direction is according to the current position estimate Speed over Ground in Knots is current speed estimate Track angle in degrees is the current track estimate Date is the current date Magnetic variation is set to zero The checksum is calculated according to the data 17 Specific requirements GGA Sentence The GGA Sentence with all parameters is provided The data is compiled as follows where the units are according to the NMEA specs Time of fix is the current UTC Latitude and direction is according to the current position estimate Longitude and direction is according to the current position estimate Fix Quality indicator It is set to 0 invalid when no positioning information was yet obtained since system start 1 GPS fix if a fix from the GPS input was available within the last 3 seconds 6 estimated otherwise Number of satellites is set to to the number of satellites from the last GPS fix if it is not older than 3
38. 232 Output Power comes from an external 9VDC Adaptor This device is a little outdated but is already available in the company It s disadvantage however is that it does not feature an USP port 20 On using GPS 6 3 2 NaviLock The company has a GPS receiver from Navilock which has a specified input sensitivity of 160dBm It was used to make the feasibility test drive in the train 6 3 3 ublox EVK 5H Evaluation Kit with KickStart The EVK 5H is an evaluation kit of a GPS chip with the so called KickStart and SuperSense technology This provides fast TFF and accurate results with low reception levels Information is provided here http www u blox de products evk 5h html Tracking sensitivity is 160 dBm Illustration 5 EVK 5H Evaluation Kit Price is EUR 150 00 Exclusive V A T 6 4 Conclusion The usage of GPS is feasible To have good results the GPS receiver should have already a fix when boarding the train I ordered the EVK 5H Evaluation Kit from uBlox 21 On using the track database 7 On using the track database 7 1 The information of all relevant tracks of the swiss federal railways is available as raw comma separated coordinate values in the swiss coordinate system in plain text files They are each named after the logical track number according to the numbering scheme of the swiss federal railways Preface 7 2 Analysation The accuracy of these coordinate is quite goo
39. 3654666666669 hiddenmode NI TX Bone e TX Longitude 7 5064056666666668 cts RRTS DTR e DTR MagneticV atiation dsr RDTR DSR 5 DSR NumberOfSatellites zi dcd RDTR DCD DCD Dee il emunoise CTS ects addrtto 0 RI addrito 0 DUT1 e DUTI gt COMS Dur2 8 OUT2 MCN OPEN amp OPEN b Lat 46 9336546666667 Lon 7 50640566666667 Add Pair Remove Apply Illustration 36 comOcom configuration for serial data output 3 6 Checking the CEP calculation for GPS To see whether the formula for conversion between HDOP and CEP is correct I have run a test where the u blox EVK 5H GPS receiver was stationary and I observed the position estimate in Google Earth using the Earth Bridge tool I could be observed that the CEP roughly coincides with the position shown in Google Earth it was even a little pessimistic The used specific accuracy of the GPS receiver was 6m 59 Implementation nje Illustration 37 Checking the implemented conversion from RES to CEP It is also visible that the resolution for the Latitude and Longitude values in the GPRMC Sentence should get increased 3 7 Implementing the INS provider 3 7 1 Using the SDK from XSens The SDK provides ready to compile examples for using a DLL for accessing the MTi G as well as other more low level examples P invoke A first approach used the platform invoke feature of NET but the
40. 39 13 39 39 13 39 33 Status description Last status time 13 39 40 13 39 39 13 39 41 13 33 39 13 38 36 13 38 35 13 38 35 13 37 04 Attribute Heigl ManuallnputMode 15 02 2003 13 33 Acceleration Database access 1 Attach the external GPS and Acceleration Sensor to the Laptop 2 Attach the NMEA Consuming device to the serial port of the Laptop 3 Start the Application from Windows Explorer by double clicking on the Inventis Ips GuiWinAppExec exe file 4 Select the Track Segment by choosing the number from the drop down list 5 Double click on the event markers when appropriate 6 Single click on the Train stopped button when appropriate 7 Watch the status information Ze BE ps Ma ue m mp M m Cr Be T IR 20 Eg ue z z ue z z z re z ial bd ball ia m h jorganganame iat hes SRS and Evaluation Write SRS Finish Evaluating Hardware Upload SRS 00 Analysis and Synthesis Use Cases Packaging Business Class diagram Interfaces and Inheritance Logical Db model Sequence diagrams Tesi Cases Design WCF Prototype Transter Business into Design classes in t Implementation GUI Prototype System Interfaces User Interfaces Hardware Interfaces Start and Shutdown Using WiFi Using GPS Using IMS Using the track db Using event markers Logging and E
41. 4 1 4 Deployment diagram Asi cis Eee eer eh e un tv eee b Ve ie Ax rac wl n a 15 1 5 Component diagram anem 4 20000 0000 va dy a ARA Sa PRX D EAD a a nn EE an eae Da 15 mcum E 16 1 7 Position DrovIdGES 17 1 8 The position Information sersersernonnennnnnn nennen nennen en Aa nun sensn nnn nnn nnn 17 1 81 Unlts o IR m Boas a EIE EX YER UE ETE RUE EREXTUEUEVE A YUE 18 1 9 Activity Diagrams 5 08 nennen nennen nnne 19 1 9 1 User starts the engine to get NMEA data UC Start 5 19 1 9 2 Acquire and process position 5 68 20 1 9 3 Emitting the current 0035 0 nun nennen nenne nenne nennen 21 1 9 4 The GPS or Place Lab are providing a position 22 1 9 5 The INS is providing a position cece 23 1 9 6 The User is providing a new position 24 19 7 MEFGING PROCESS MITES 24 1 10 Configuration of the Engine cece eee eee eee e eee eee eee eee nae mense e ee nsns 26 1 11 Translation between HDOP and 6 27 1 12 Error correction of the INS rire ricine randen nun nun nun nun nun anna nn arena nn anna nnn nnn 27
42. 4 3rd Party component usage an ee cu verre e 79 a E E E DYA E A Keo EEEE EE 79 4 1 E a 1a E ST DEDE 79 4 2 u blox Evaluation Kits ierra Ale ae Aaa oe deae ns a de Ee Dix AEAT 79 4 2c1 License iussi eu a Rn T T TA TE T T 79 4 3 NMEA Sentence Interpreter u 2 ren 79 4 3 1 License EE A E E e v Eee A pn 79 4 4 C Geodesy Library for GPS sssssssssrssrsssssrrsrrsessrrrsnnsessrrnnnnnenerrrnnannannnnnnnrrrreeenne 79 4 4 al E a SiE EL AE ees ee EEE E EST 79 4 5 XSENS E TT E E TTE 79 AFL CENSO ee 80 Management Summary NIME DET 81 MM 81 5 1 1 1 6 rn ee gra KDE aid xd 81 5 1 2 Unit tests in the Solutio ie pret xe ea eR X EE DAR vee 81 5 1 3 How to test events oiim edes a ige 82 5 2 Test the fulfillment of the Requirements zersersensenennennenn non non nmm 82 5 21 SUMMaly nen Dr e vA deb dua vvv P NE xe TERIS 86 5 3 165 ATIVE ee aa EO a D IL ILLE 86 5 3 DEIVeSi iie pU EE E Er ER ER EIER ee 86 5 3 2 Detected problems and behavior esses nnnm nennen nens 95 5 323 CONGCIUSION vas siio una 96 6 Project Management arna aaia an ss 97 6 1 Review Meetings ooo ee oom ERE ub eH Dr I tana E s petu DUE ee nee 97 6 T 1 KicksOff 9 10 2008 97 6 1 2 Meeting on 11 1 1 2008 iiit eek leiten dua Ee xd 97 6 1 3 Meeting or 16 12 2008 cock ate ee RR en IRE En RN RIF e E ee KR DU ER 97 6 1 4 M
43. E 40 1 21 Integrating the Acceleration on a single axiS zeraurerannenannennn nennen nn nun nun m 42 DESIQM EET 43 2 1 Package Diagram sarna pe RR 43 211 DIAGKAM 2 UII DI DUI E D III 43 Management Summary 2 1 2 Package description niit 43 2 2 ENGINE COP PER 44 2 2 1 Business class diagram iiid d bae aeree puri seno na han RR naa AR Rd 44 2 2 2 Example Object diagram oec ree n aa teas Oa epa e E Ra aeg enin Rena 47 2 2 3 Sequence diagram for building the chain sss 48 2 3 Data Excharge oen RAA A AAEN AAAA ANTEA LEE SU ke URL dar 49 2 3 1 Using WER a e eere ph exe ee pe pe 49 3 Implementation etes trente recte ren aa a RE an Dr Di wee Dc a Qo ER a ee 52 EMO Am 52 3 2 Changed packaging iiir e RR a aria RA Ra RR ER ta ea ea eere ir gels 52 cR emilia 53 3 2 2 OSU an EA RARA AREA RERAN Era CEA RAR RARR AR cee DIRT RE ie 53 3 2 3 C0oM MON eti EET B 54 3 244 CO anne 54 3 2 5 RailrouteDDbACCess une ech 54 3 2 6 GUILIb HH nn len ne ae ET 54 3 2 7CMtCoMWrapperasu nenne ae a a large 54 3 3 Calculating the heading deviation for GPS nun nun eee 54 CRI DS 54 3 4 1 Interface Saen eee eee seb Ee ch ora e Re si Pr Roi eMe IRR CR tase ne sre nad ane ne een 55 3 4 2 Abstract base 6 5566
44. EN lt OM SSS INVENTIS In Train Positioning System Master Thesis EF Teg N Public compilation Abstract Design and implement a multi input positioning system for use in trains ID MAS 06 02 23 Keywords GPS WiFi INS SQL WCF train CZ NET Author Marcel Suter Kanalweg 3 CH 3125 Toffen 41 0 76 387 70 06 marcel suter gmx net Supervisor Stefan Bigler ENKOM Inventis AG 41 0 31 950 42 42 stefan bigler enkom com Expert Rolf Wenger Infobrain AG Rolf Wenger infobrain com Class MAS IT 2006 02 Date 10 Oct 2008 A Feasibility Study B SRS C Main Documentation D Quick Start Guide E Time planning Berner Fachhochschule In Train Positioning System MAS 06 02 23 gt Tels NN Feasibility Study public version Abstract Design and implement a multi input positioning system for use in trains Author Marcel Suter Kanalweg 3 CH 3125 Toffen marcel suter gmx net Expert Supervisor Rolf Wenger Stefan Bigler Infobrain AG ENKOM Inventis AG Rolf Wenger infobrain com stefan bigler enkom com Class MAS IT 2006 02 Date 10 Oct 2008 Revision History Tag Date Author First draft 7 10 2008 Marcel Suter Additions 21 10 2008 Marcel Suter Public version 3 11 2008 Marcel Suter Inertial Prices removed WiFi Code removed Table of Contents T Management Summaty etx RR ERR Rn 4 DZ TNMErOAUCtION ale 5 3 On in
45. Existing Code from Enkom Inventis 0680 nmm 17 Bs Zi CONCIUSION t EP 17 B ONLUSING GPS ILU eae Eu EU Lu EM cit 18 6 1 0 6 866 En 18 6 2 M amp asuremerts essi seek e ee R RR e A RRXKRKR IR EARARR RRARSER ITFARARR TR EXER RIT RARAR AR TOR RXAR e A2 eee 18 6 3 Evaluation of 1 nennen hehehe nn nnn rennen nnn nnn nnn nnn nnn 18 6 3 1 UBLOX ANTARIS GPS Positioning Engine ussessensennannannannannunnnnnnnnnn nun n nn nn 18 61322 Navibocke re en es in bed Renner ea een erp re NS Ea A EE 19 6 3 3 ublox EVK 5H Evaluation Kit with KickStart csse mmm 19 GA COnGIUSIO Nisar TEE 19 7 On using the track databaser AAN EAA NEENA RE aE EAR AARIN eaten Ei 20 viuum 20 7 2 AnalySatiOl e DOR a OR SAN ENSE OG DAR ea a SUA S EID I D KR IRA ID X the 20 723 CONCIUSION Gs eM 20 8 Bibliography s i ar aa HA ei i A Ed se Se ea ea ta 21 Management Summary 1 Management Summary On the base of the subject proposal for the master thesis In Train Positioning System SUMOSTE a feasibility study was carried out This document describes the study and it s conclusions The goal of the feasibility study was to determine which intended technologies were usable for incorporating into the positioning system and to order the corresponding hardware Introduction 2 Introduction Pursu
46. FINITION This contains the event markers There is some application redundancy in the marker and railway station table Some stations but not all are available as markers in table MARKER DEFINITON and as railway station in table RAIL STATION 1 16 2 RAIL STATION Relates railway station names and their geographic position 1 16 3 RAIL STATION STAT This seems to be legacy data Here in unnormalized form the railway stations and their coordinates are available Since however this data is available via the RAIL STATION table and it s relations this could probably be deprecated 1 16 4 ROUTE DATA The geographic data is found in the table ROUTE DATA The markers and the Railway stations both are related to it via the ROUTE DATA ID key It contains 326009 items The coordinates are in the Swissgrid system a national local coordinate system of Switzerland The definition of x and y however is wrong with regard to the definition of the swissgria system In Swissgrid the x axis is pointing towards north the y axis is pointing towards east Using the data requires to takes this into account The heading information is in radians ranging from Pi to Pi Given that there are 400 different routes also called track segments in the database a single route has 800 waypoints This seems to be handleable very well 1 16 5 ROUTE DEFINITION This is the most complex table It contains all the routes available The routes are id
47. HashCode 5 SerializeToCsv ToString 3 TryParseNullableDouble TryParseNullableInt Illustration 46 The class Estimate with it s interface Estimate objects are used to hold and distribute the positioning information from tool to tool in the chain It contains all the data that is used throughout the chain path from the input to the output It has serialization functionality to CSV which is used for logging The serialization to the NMEA Strings is in the emitter tool imeaserialfmitter 72 Implementation 3 11 Class DeviantDouble The class DeviantDouble plays a central role in merging information It consists of a double value plus a standard deviation for that value ICloneable gt DeviantDouble Class Fields a _standardDeviation i LargeEpsilon Properties mm StandardDeviation m Value Methods Clone DeviantDouble Equals explicit operator DeviantDouble GetHashCode Merge 1 overload operator operator SelectMostAccurate 1 overload SerialiseToCsv ToString 2 overloads TryParse UnweightedAverage 1 overload oo lt lt lt lt lt lt lt lt lt Illustration 47 Class DeviantDouble The class has some specifically implemented operators that allow easy usage in the merger tool for certain calculations The verse method merges two DeviantDouble objects into one using their value and standard deviations to create a new DeviantDouble wh
48. Hz No GPS therefore no absolute referencing possible 12 On inertial navigation Xsens MTi G http www xsens com en products machine motio n mtig php The MTi G is a MEMS based Inertial Measurement Unit IMU and has an onboard Attitude and Heading Reference System AHRS combined with GPS and a static pressure sensor There is a Sensor Development Kit available which contains the sensor and some accessories plus the SDK The SDK has various possibilities to access the data namely a WIN32 DLL Deterioration according to a technical seller is 350m in a minute The GPS has a tracking sensitivity of 158dBm according to specification Does work without GPS for only 10 seconds After that only orientation information is provided Noise of the accelerometers 0 002m s 2 sqrt Hz No possibility for an external GPS We can not update the reference position 13 On inertial navigation Xsens MTI http www xsens com en products machine motio n mti php The MTi is a miniature gyro enhanced Attitude and Heading Reference System AHRS Its internal low power signal processor provides drift free 3D orientation as well as calibrated 3D acceleration 3D rate of turn and 3D earth magnetic field data No GPS attachable Noise of the accelerometers 0 002m s 2 sqrt Hz Just data available No posi
49. It can not be assumed that the user thoroughly understands navigation and positioning methodologies No further user characteristic is intended Especially there is no user identification or login besides a probably used login on the operating system level Anyone with access can use the system 12 Overall description 2 4 Constraints Technologies used for positioning The system uses multiple technologies from which it derives it s current position These are a GPS receiver with external antenna a database of georeferenced WiFi Access Points an inertial positioning system a track database The system uses prerecorded data about train tracks to correct the currently determined position from the other position providers e An event marker database The system uses prerecorded event markers and their geographical position to present the user with event markers he or she can fire 2 5 Assumptions and dependencies Power Supply and mechanics The power supply for the system will not be developed within this thesis It is assumed that enough power will be available for operation and there is no power interruption during it s uptime The hardware will only be assembled as prototype Look And Feel of the GUI The GUI may be all contained within a single dialog or they may get integrated into several independent visual elements The exact implementation may be chosen as part of the designed system architecture 3 party
50. MAC Address of a network I have studied several methods to reliably get data from surrounding networks 5 2 Existing Projects There are already several projects and solutions in this field including Illustration 3 Wireless USB Adapter from Linksys Placelab http www deviceforge com articles AT8606455669 html It consist of Open Source software and multiple databases including self created ones could be used There is a complete paper explaining the concept and the architecture of the software in PLLBO1 SkyHook http www skyhookwireless com howitworks Navizon http www navizon com Ekahau http ekahau com id 4200 5 3 Own Code in C A first try with writing own code was unsuccessful See the Solution WifiDetector in the code directory 5 4 Managed WiFi API I have found an open source project Managed WiFi API which works with Windows XP SP2 but is not capable to retrieve the MAC address of surrounding networks CPLX01 5 5 Advanced WiFi Manager Advanced WiFi Manager NICOO1 is capable of getting both the SSID and the MAC including the signal strength of course It provides a sample program in C showing it s capabilities This library would suit our needs 18 On code for WiFi scanning 5 6 Existing Code from Enkom Inventis removed 5 7 Conclusion Multiple solutions are possible I will evaluate again and decide on one after the SRS is written because the
51. NS fix Illustration 16 State event diagram showing the INS error correction algorithm Error correction Illustration 17 shows the application to calculate the error correction parameters for the time t1 x 29 Analysis and Synthesis Corrected new INS fix at 1 Illustration 17 INS error correction e The positional error is corrected by applying the negated value of the positional error e The angular error is corrected by walking back the path traveled since time t1 Then the same distance is walked again in the direction with the angular error removed e The acceleration error is corrected by calculating the equivalent erroneous distance since tO and applying it to the current position from above The erroneous distance is the squared delta time between t1 and ti x multiplied with the acceleration error See the formula below 2 d t1 x t1 e Formula 2 Calculation of the erroneous distance for the acceleration error 1 13 Find nearest point on track Analysis of the existing database has shown that for each stored waypoint there is also a heading value in radians available This simplifies the finding of the nearest point since now a single point is enough to align a given position 30 Analysis and Synthesis Waypoints defining the track with heading information 2 solution Help point B Nearest point on track B
52. PS DGPS fix PPS fix Real Time Kinematic Float RTK estimated dead reckoning 2 3 feature 1 2 3 4 5 6 3 See http en wikipedia org wiki Geoid for an explanation 4 See http en wikipedia org wiki True north and http en wikipedia org wiki North Pole for an explanation 18 Analysis and Synthesis 7 8 NMEA Protocol The NMEA protocol uses different units in their protocol They must get translated from and to the above when using it Manual input mode Simulation mode Latitude Longitude Two digits for the integer value of degrees then a decimal representation of the seconds with usually 3 digits after the decimal point Speed is measured in knots where 1 Knot 0 5148 Meters per Second 1 9 Activity Diagrams Scenarios 1 9 1 User starts the engine to get NMEA data UC Start System This is probably the most basic activity and will surely be broken into many classes in the design phase It shows the basic process of acquiring and emitting positional data 5 Source http www chrismanual com Intro convfact htm 19 Analysis and Synthesis act User starts the engine to get NMEA data y User starts the engine to get NMEA data User starts engine exe Read config from Busindss Objects Open output comport i loop Thisis Acquire and process 1 eontinued __ M_ ___ _ da gt well N 1 1 position ein until the loop 1 oman
53. The toolChain is a singleton instance of the ToolChain class and creates and wires all objects According to the requirements status information for the providers and for the serial NMEA emitter is transferred back to the GUI via concreteToolStatusPublisher The serialNmeaEmitter is an IProcessor to simplify logging of it s output The emitted position could be provided as i ts Available event The logger is the an IConsumer that simply logs the provided estimate The diagram shows the fitness for the design to provide more logging and to attach also more tools to the the status publisher In general the whole system is easily rearrangeable by changing the implementation in the ToolChain singleton instance 2 2 3 Sequence diagram for building the chain For further illustration I have drawn a sequence diagram that shows how the tool chain is built up As example serves the object diagram from Illustration 28 Building the chain is rather simple The tool chain factory creates the tool objects and wires them to a chain of tools The factory calls an IConsumer s AttachTo method with the preceding IProvider as argument The IConsumer then registers on the IProvider s Available event It thus will get notified each time the IProvider has a new estimate The order of attaching the objects is not relevant With the same mechanism the factory can also initiate a deregistration by calling the DetachFrom method 48 Design
54. a RO vis Illustration 55 Live position tracking using Earth Bridge The positioning was quite good as the observation of the landscape suggested Problems occurred when no GPS fix was available The positioning deviated quite fast in theses situation This happened on three occasions once in a tunnel at the Station Ausserholligen once in a tunnel near the Berne main station and after the train entered the Berne Main Station 91 Test At Ausserholligen the deviation was not severe as the fix loss only lasted short The Screen shot below shows the problem as the train enters the tunnel below the building 92 Test Google Illustration 56 Deviation starts at entering the tunnel below the building 93 Test At the tunnel near the Main Station the deviation also starts at entering the tunnel It is clearly visible that there is a heading mismatch as the estimated moving continues laterally Also since the slope evolved faster than the train moved and also grew much larger than the distance of the tunnel actually is there seems to be a problem at the speed estimation or speed merging This should get investigated further Datei Bearbeiten Ansicht Tools Hinzuf gen Hilfe 1 a in S s ete OE gt nge 7 430070 H he 545 he tunne 94 Test At the Bern Main Station the same problem as above is visible The deviation was not so
55. and Synthesis class RailRouteDb RAIL STATION column PK RAIL STATION ID int RAIL STATION NAME varchar 50 FK ROUTE DATA ID int PK PK RAIL STATION nt unique UQ RAIL STATION 3A81B327 int FK FK RAIL STAT ROUTE 44FF419A nt ROUTE DEFINITION ROUTE DATA column PK DATA D int pfK ROUTE DEF ID int pfK ROUTE DATA ID int PK PK ROUTE DEFINITION 37A5467C int int int index ROUTE DEFINITION ROUTE DATA4 int FK FK ROUTE DEF ROUTE 440B1D6 nt FK RAIL STAT ROUTE 44FF419A Vo m MARKER DEFINITION column PK MARKER DEF ID int COMMENT varchar 255 FK ROUTE DATA JD int PK PK MARKER DEFINITION int FK FK MARKER DE ROUTE 45F365D3 nt FK MARKER DE ROUTE 045F365D3 dtproperties column PK id int objectid int PK property varchar 64 value varchar 255 uvalue nvarchar 255 lvalue image version int 0 PK pk_dtproperties int varchar sysdiagrams column name nvarchar 128 PK diagram id int PK PK sysdiagrams 59904A2C int unique UK principal name int nvarchar MAPINFO_MAPCATALOG column SPATIALTYPE float TABLENAME char 32 OWNERNAME char 32 SPATIALCOLUMN char 32 DB_X_LL float DB_Y_LL float DB X UR float DB Y UR float COORDINATESYSTEM char 254 SYMBOL c
56. ant the subject proposal in SUMOSTE this feasibility study evaluated four technologies e inertial navigation e GPS e WiFi e Use ofa track database For the WiFi part also suitable code for acquiring the the required data was evaluated On inertial navigation 3 On inertial navigation 3 1 Preface The currently used inertial navigation solution is imprecise and should be replaced The goal is to find a suitable hardware that provides reliable positioning in the 3D space On inertial navigation systems a variety of articles are available On Wikipedia http en wikipedia org wiki Inertial navigation General Description of inertial navigation its accuracy and used technologies http www media mit edu resenv classes MAS836 Inertialnotes DraperOverview pdf Students at the ETH Zurich did build a Low Cost Inertial Navigation System as a project Description is here http www trash net luethi study ins ins html The project concludes that accurate positioning data though low cost sensors deteriorates very fast Kevin J Walchko of the University of Florida has carried out a project called Embedded Low Cost Inertial Navigation System http www mil ufl edu publications fcrar03 Walchko 2 pdf It shows how inertial navigation can be combined with a GPS receiver and how Kalman Filtering is applied therefore A D KING B Sc F R I N of Marconi Electronic Systems Ltd Provides an overview of Inertial Navigati
57. ases fire event marker and fire stop marker Also before a event marker is able to get fired a track segment number must have been set While all this happens the user may watch the status of the system via the watch status use case 1 2 4 Use case descriptions Analysis and Synthesis Read position Description The main usage for this system The position is outputted once per second by the system Actor Position consumer Precondition Engine is started Activities The current best position estimate is made available for reading via the RS 232 interface Postcondition One position estimate per second is received Invariant No system failure no power interruption Incoming data No external data needed Outgoing data Current position estimate in the NMEA protocol Comments If no position is yet acquired by the sensors the last estimate from previous runs may get outputted Requirement numbers 1 2 3 4 5 6 Select track segment number Description The user inputs a track segment number Actor User Precondition GUI and engine started Activities The user inputs the track segment number he or she is currently traveling on in a input field The system afterwards looks up all event markers for that segment in the database It presents the event markers in a list in the GUI so the user may fire them The possible wayp
58. at will Examples may be if a person owning a private Access Point moves or when the Access Point is in another train car In tunnels no Access Points were detected except the ones from the car itself 4 3 War driving with a mobile device in the train A commercially available mobile phone the Trinity 100 from HTC was used It has a built in WiFi and also built in GPS The WiFiFoFum software was used for sniffing In urban areas many Access points were picked up sometimes up to 16 at the same time When traveling faster especially in the Intercity few but still some Access points were picked up 4 4 Conclusion Using WiFi access points for positioning purposes in trains is very feasible The results are expected to get even better if an external antenna would be used instead of built in ones Especially WiFi is suitable to replace the manual markers of the current solution because at or near train stations there Illustration 2 Seeing 7 Satellites are generally many Access Points receivable and two active Access points 17 On code for WiFi scanning 5 On code for WiFi scanning 5 1 Preface To get information about a laptop s surrounding WiFi networks software is necessary This software could either be written in the master thesis or an existing library could be bought A Linksys Wireless G Adapter WUSB5A4GC was used for evaluating The important part of the information is the SSID and the
59. base where all event markers are stored Measurement system This is used to denote any attached device to the system that uses the position estimates provided by this system The attached device may be of any kind However in the currently targeted environment of this system this will be most likely any form of radio frequency measurement system Position provider A sensor probably with additional preprocessing or some other input that provides positioning information to the system Railway segment English term for the Fahrplanfeld in german This denotes a logical connection between two nodes In Switzerland all railway tracks are part of such a Fahrplanfeld Railway segment number For public transportation trains in Switzerland railway segments are usually numbered using three digits For example the connection Bern Olten has the number 450 http de wikipedia org wiki Li ste von Eisenbahnstrecken i n der Schweiz in German Introduction 1 3 2 Acronyms and Abbreviations Acronym Abbreviation Description Hyperlink s AHRS Attitude Heading Reference System http en wikipedia org wiki Atti tude and Heading Reference S ystems API Application Programming Interface CEP Circular error probable http en wikipedia org wiki Circ ular error probable DOF Degrees of f
60. bject diagram To prove the business classes I have created an object diagram for concrete case of this project with all inputs and the NMEA output See Illustration 28 object Tool Chain Objects E interface serMarkerProvider IProvide interface mtigProvider IProvider interface placelabReader IProvider A interface IEstimate flow interface IEstimate 2 1 2 interface gpsReceiver IProvider M interface IEstimate flow interface IEstimate d 7 2 _ 7 flow interface mixer IProcessor ur si interface IEstimate interface IToolStatus flow i E 1 TA interface IToolStatus flow flow interface interface IToplStatus aligner IProcessor i flow interface IToolStatus interface IEstimate flow l i flow interface currentBestPositionEstimate I interface IEstimate flow I toolChain ToolChain interface serialNmeaEmitter IProcessor interface ToolStatus l flow I interface IEstimate interface flow concreteToolStatusPublisher i IToolStatusObserver 7 In interface logger IConsumer Illustration 28 Object diagram of the engine core 47 Design The mtigProvider object will implement the error correction algorithms discussed earlier
61. chenb hl D gt Sul Muri bei Bern Li Wabern O Liebefeld K niz Spiegel D Spiegellbei Bern Vo ehlisWaberen EN P oUnterseinoten P Erdburg LT i amp Gurtend rfli Giessenbad oSelhofen Hi Schwanden H enerhubeil e Aischliern Q Kehrsatz Zo Ulmizberg Oberulmiz Englisberg oO K hlewil Altersheim maecens 94 480741 1 Illustration 54 Recorded track between Belp and Berne a BE File Edt View Tools Add Help Search Fly To Find Businesses Directions Fly to e g 1600 Pennsylvania Ave 2000 0 v Places E my Places OB Sightseeing Select this Fold Play In Train Positioning System File About Select Track Segment E Number gt Fire event markers Y Train stopped B l Status Status Status description I Last emission Last status time GPS input COM Working CEP 6 06 18 36 06 18 36 A Event marker input Ready Waiting for estimates 06 11 06 gt Accelerometer input Working CEP 06 18 36 06 18 36 gt Merger Working CEP 7 385120973744 06 18 36 06 18 36 gt Dispenser 1 s Working CEP 7 56094942021332 06 18 37 06 18 37 gt Serial emitter COMS Working CEP 7 56094942021332 06 18 37 06 18 37 Ready Timeout 06 11 06 06 11 09 U Keeper start 52 Windows i windows Tas KS Googte earth in Train Pos C jo e n i PRA os
62. cted using the following formulas They base on numerical integration using the midpoint method This method is more precise than the traditional euler method The mean average between the current and the last acceleration measurement a _ ta mean 2 The current velocity where at is the time difference between the last and the current acceleration measurement y v t a dt The mean average between the current and the last velocity calculation _ Ve V mean 2 Vtv The current position rt where rt 1 is the position at the last measurement 3 mean 9 See http en wikipedia org wiki Midpoint method 10 See http en wikipedia org wiki Euler 27s method 42 Design 2 Design 2 1 Package Diagram 2 1 1 Diagram The package diagram honors the requirement of the separation of the GUI part and the Engine part To allow data transfer between the two processes an exchange package is created Illustration 31 shows the packages with the most important dependencies J pkg Ips P4 B GpsProvider i InsProcessor gt EventDbAccess _ Classinterfaces WiFiProvider m TrackDbAccess m Exchangelnterfaces m EventMarkerGui GuiExecutable I Core psMath _ SegmentSelectionGui 2 ExchangeExecutable NmeaProtocol StatusGui ul Exchangelmplementation Illustration 26 High Level Package diagram 2 1 2 Package descr
63. d often around several meters An analyzation of the data in Google Earth shows this see below Tracks are shown as white lines 7 3 The usage of this data is feasible I will have to build a custom database to hold that data and import it manually To keep the database design and administration simple there will be most likely no automatic update of tracks with either new text files or on the fly from acquired position fixes during drives Conclusion I Google Earth Datei Bearbeiten Ansicht Tools Hinzuf gen Hite bei 3 cano S Available track data of swiss railways detail of the Wankdorf station near Bern Illustration Datei Bearbeiten Ansicht Tools Hinzuf gen Hite z Q Ps i cane s fii Illustration 7 Available Track data of swiss railways overview 22 Bibliography 8 Bibliography SUMOSTE Themeneingabe Master Thesis Thema In Train Navigation 21 8 2008 Marcel Suter Obtainable from the author 23 In Train Positioning System MAS 06 02 23 7 SRS Abstract Keywords Author Supervisor Expert Class Date Design and implement a multi input positioning system for use in trains GPS WiFi INS SQL train C NET Marcel Suter Kanalweg 3 CH 3125 Toffen 41 0 76 387 70 06 marcel suter gmx net Stefan Bigler ENKOM Inventis AG 41 0 31 950 42 42
64. d the possibilities of a multi input positioning system Most project goals have been met and the following inputs are used e High sensitive GPS e Accelerometer with compass e User input with event markers e Alignment with a track database Not included in the solution is the intended use of georeferenced WiFi Access Points Illustration 1 Outline of the In Train Positioning System This document is based on the feasibility study for this Master Thesis in SUMO8FS and the SRS in SUMO8SR It describes the work undertaken to fulfill the SRS It consists of all the usual steps of a software project e Analysis e Synthesis e Design e Implementation e Test At the end currently known issues are mentioned Also an outlook to further improvements and extensions is given Total time used for the Master Thesis is approximately 410 hours Management Summary Table of Contents Management SUMMA ynei deita dle RU ER ear E er gerne M EU Bue eld 4 1 Analysis and Synthesis i iei an a Lee ende learn ee 8 171 Mind Maps en an gran ae ae en en Eee ee ee ee reed 8 1 2 Use TASOS a em 8 1 271 Introd ction aa ae a a In nen 8 1 2 2 ACtOF EL ee E E E MERE E ERE M ARE Le E T 8 152 3 Use Case diagram rm un ee I eR LE 8 1 2 4 Use case descriptions 22s20000nnnn nun nun nun nun nun nun nun nennen nnn nnn anna nnns anna nnn nan nn 9 1 3 Engine process OVervieW ii nene Corio Er iy Seve Be ven ERR RR SET Rd 1
65. dio 2008 provides easy creation of a database access context by dragging and dropping of the relevant tables onto a design surface The necessary code is then generated automatically I used this feature with success Of the many tables of the database only four were used as shown below 61 Implementation MARKER DEFINITION Properties 3 ST MARKER DEF ID 8f COMMENT ROUTE DATA ID ROUTE DEFINITION Properties 3 ROUTE DEF ID ST ROUTE NUMBER IS ACTIVE T DEFINITION TIME DEACTIVATION TIME Sf COMMENT ROUTE TYPE oF CATEGORY SP VARIANT ROUTE_DATA Properties ROUTE DATA ID Y COORD v COORD SF HEADING ROUTE DEFINITION ROU Properties 2 DATA ID ROUTE DEF ID S ROUTE DATA ID Illustration 39 Used tables for the track database access 3 9 3 Getting the track segment numbers Getting the track segment numbers is done via a linq query that simply returns a list of strings of all ROUTE NUMBER s in the ROUTE DEFINITION table 62 Implementation 63 Implementation 64 Implementation 65 Implementation 3 9 4 Getting the nearest point on the tracks The algorithm to find the nearest point on the tracks works using a small scope which is containing a set of points of a center point This set acts as some kind of proxy to minimize the database queries The scope is implemented in it s own class 66 Implementation
66. e As long as the time between the last real update and the time to predict to is small also the mean error is small 1 14 1 Algorithm A possible algorithm could be as below The algorithm does not take changing accelerations and changing of the heading into account This could later be improved if necessary 31 Analysis and Synthesis Illustration 19 shows the main steps in the extrapolation algorithm act Extrapolate 2 f datastore lInitialisations amp z last esta flow PositionEstimate lt ye flow NN rd Pd re Calculate new Tlow 1 Pd accelerations E N ee iS flow time difference gt Ser are Calculate new speed PES flow VA S P ES N gt N 4 Be M s flow Sy Calculate new N flow heading A M N E y i flow datastore Calculate new new estimate coordinates flow PositionEstimate Illustration 19 Activity diagram for extrapolation of estimates A description of the single actions in more detail is found below Initializations e Consider a last estimate at a given time and a new estimate for the current time which is to be extrapolated e Calculate the time difference between the last estimate and now in seconds Calculate new acceleration e Assign the acceleration to the new estimate It is assumed that the acceleration itself does not change so it is set to t
67. e PositionEstimate Illustration 21 Sequence diagram for the database access and data exchange Sequence 1 37 Analysis and Synthesis This shows the startup of the engine In this case the engine gets track information from the database for an area around the current position and the track alignment aligns to the nearest point on any segment within the area Sequence 2 This shows the start of the GUI The GUI process first populates a list with all available track segments by their number The user now may select the current track segment number Then after selection the GUI client reports the selection to allow the track alignment feature to start its work with using the track waypoints for this segment Also the GUI client retrieves the event markers for the segment to present the to the user The user may then fire them afterwards Sequence 3 This shows the firing of an event marker and a stop marker 1 19 Initial position At startup the system does not know it s position from any sensor To be immediately responsive it should take the position estimate from the previous runtime 1 20 Accuracy and Drift of the MTi G INS The MTi G is the evaluated INS for the project I has some configuration possibilities and has been tested in the office environment before use d Illustration 22 The MTi G evaulation kit for this thesis The sensor offers a graphical visualization of it s s
68. e user 3 14 2 Fire Event Markers Here the user may fire the displayed event markers which correspond to the previously selected track Additionally the user may tell the system when the train is completely stopped via a dedicated button 3 14 3 Status On the status pane the status of the various tools is displayed according to the SRS e Agreen arrow means that the tool is working and has emitted an estimate not more than 3 seconds ago e Anorange exclamation sign means that the tools is ready to provide an estimate but no data is available 75 Implementation e Aredcross sign means that the tool is in an error state and can not provide any information until the problem is solved 3 14 4 Ergonomics No specific care has been taken to have a good user experience in terms of GUI ergonomics This should be added in a future version 3 15 Tool chain The tool chain is one of the central elements in the solution It is implemented as own class with interface and provides a possibility to be derived from Only one kind of tool chain is implemented the final solution Other implementation of tool chains especially for a kind of a replay feature would also be possible IToolchain Interface Properties Am JnputProvigder UC Observer C OutputProvider _ IToolchain ToolchainStandard x Class Fields observer 3 toolChain Properties t InputProvider oF Observer O
69. eeds up to 200 km per hour when any of the sensors with any sensor is solely providing position estimates 3 4 Database requirements 23 Specific requirements 47 Db update When the system is not running all data for the track waypoints the WiFi Access 2 points and the event markers is replaceable 3 5 Design constraints 48 Using laptop The system runs on a standard mid class laptop computer of a recent date 1 49 Using 3 party Used 3rd party components and its interfaces must be noted In case they do not allow 1 libs commercial usage through their licensing model they must be later replaceable and the interfaces used must be described 55 Engine The system has the positioning engine without any GUI and the GUI in separate 2 separated executables 63 Emulation mode One or more position provider can get emulated to the system with some form of 1 prepared position estimates This serves for the test of parts of the system without using the actual hardware or boarding a train An interface for implementation is provided for this 3 5 1 Standards compliance 50 NMEA output The output conforms to the NMEA 0813 protocol 1 3 6 Software system attributes 3 6 1 Source Code 51 Coding The coding guidelines of the customer are applied 1 Guidelines 24 Specific requirements 3 6 2 Availability
70. eeting ON 13 1 2009 iecit cese tenebre ens a ecu a a serene a a FRANE Rd 97 6 1 5 Meeting On 11 2 2009 5 Lees Ies erus nex Me ROC en 97 7 Knowh IsSUues cec Een D PV Rem EL ED EUNDI DD t M au TES 99 7 1 Currently KNOWN Issues ore orn Rari or xe nre crar endende 99 7 2 Further improvements in the 600 nen EEE EERE REE EEE ES 99 8 bessons learned Ans Einen 101 MUS lt 102 9 1 Optimizations s 3 2 ee Ha HB isn 102 IE ER BESSER 102 9 1 2 AHRS and Kalman 4 aa asien ee nO Pere PEE a 102 9 153 GPS E Se 102 9 1 4 Improve Acceleration measurements snersenseneenennennennnnnnnnnnnnnnnnennen nennen nennen 102 9 2 Extensions to the sensors 102 9 2 1 Sensors Position provides non nun nun nun nun nun nun nun nun nun nennen nennen nenn 102 tO Bibliography eer 104 LT THANKS REM ES 105 Appendix A Mindmap of the analysis ersersensennnnnen en none nn nun nun emen meme nennen nn 106 Analysis and Synthesis 1 Analysis and Synthesis 1 1 Mind map To gain an overview I have drawn a mind map of the most important requirements see Appendix A 1 2 Use Cases 1 2 1 Introduction A Use Case Model describes the proposed functionality of a new system A Use Case represents a discrete unit of interaction between a user human or machine and the system This interaction is a single unit of meaningful work such as Create Acc
71. eled distance and the CEP values of the positions I use a simplified approach by using the traveled distance since the last position update and I simply add the CEP of the last and the current position Angular error atan currentCEP lastCEP distance 3 4 Tools The tools are a major part of the solution There is an interface ITool and various derivations of it be it other interfaces abstract base classes and concrete instantiatable classes 54 Implementation 3 4 1 Interfaces The interfaces serve as joints for building the chain They are all contained in the Common Package in the interfaces sub package Compared to the design interface classes the consume method has been added to the tconsumer to provide a means to explicitly feed Estimates into the chain This is used for the input of the event markers from the user 55 Implementation 3 4 2 Abstract base classes Two abstract base classes are contained in the Base sub package of the Common Package since every tool should derive from one of them to fulfill the requirements More abstract base classes are defined in the Core Package for implementation convenience The abstract base classes are providing base functionality for the implementation of the concrete classes This saves code lines and makes changes of the common behavior more easy 56 Implementation interface ITool property Description string Na
72. engine is Emit current positi62 terminated engine exe terminated Illustration 7 Activity diagram for User starts the engine to get NMEA data The activity Acquire and process position estimates is shown here as a loop In practice this could well be fully event driven This activity is analyzed in more detail in the following chapters 1 9 2 Acquire and process position estimates This is a structured sub activity from Illustration 7 The newly available estimates are acquired form the various sensors and then processed 20 Analysis and Synthesis um F J act Acquire and process position estimates New position estimate available Activitylnitial from Business Workflows I flow l m 1 PositionEstimate Position estimate 7 2 flow Merge new estimate with existing ones from other sensors oo PositionEstimate flow This queriesthe track database and puts any estimate on the neares point on the railway track PositionEstimate flow datastore store position Current best position estimate ActivityFinal Illustration 8 Activity diagram Acquire and process position estimates The acquisition is shown for each sensor in later sub chapters 1 9 3 Emitting the current position This is a structured sub activity from Illustration 7 It s task is to take the current best position estimate and send it to a posi
73. entified uniquely by the ROUTE NUMBER which is not the primary key of the table It is however how the user will select the track segments because this corresponds to the track segment number in the user interface For some track segments there is a comment available probably this could also be presented in the GUI The column ROUTE TYPE contains a character that specifies whether the route is a complete route or whether it is a sub route Sub routes here are routes that have a dot in their track segment number They are part of larger routes The CATEGORY has no clear meaning and could be deprecated The VARIANT seems to be an obsolete copy of the comment and could also be deprecated 8 See http de wikipedia org wiki CH1903 Kartenprojektion 35 Analysis and Synthesis 1 16 6 ROUTE DEFINITION ROUTE DATA This relates the waypoints and the track segments with each other The order of the waypoints is most probably given by DATA ID which strangely is also the primary key of that table It contains 530449 items 1 16 7 ROUTE ORDER This seems to be an order for the routes It seems that this could be neglected Probably this is some custom order of the routes for presentation in the GUI If necessary this could get added in a later version 1 16 8 ROUTE SET This relates routes and operators The structure of this table is somewhat strange because the column OPERATOR ID contains all 1 s and the operator na
74. even when changing the train 29 T w w w Berner Fachhochschule E N O M ogrschue f r Technik un Informati INVENTIS In Train Positioning System Master Thesis EF Teg N Main Documentation Abstract Design and implement a multi input positioning system for use in trains ID MAS 06 02 23 Keywords GPS WiFi INS SQL WCF train CZ NET Author Marcel Suter Kanalweg 3 CH 3125 Toffen 41 0 76 387 70 06 marcel suter gmx net Supervisor Stefan Bigler ENKOM Inventis AG 41 0 31 950 42 42 stefan bigler enkom com Expert Rolf Wenger Infobrain AG Rolf Wenger infobrain com Class MAS IT 2006 02 Date 19 Feb 2009 For everyone who asks receives he who seeks finds and to him who knocks the door will be opened The Bible in Luke 11 10 NIV Revision History Tag Date Author First draft 9 10 2008 Marcel Suter Added Use Cases 3 11 2008 Marcel Suter Added Implementation Chapter Added Component Diagram Changed and Improved Use Cases Rearranged the Table diagram of the RailRouteDb Improved Sequence diagram for Db Access Added Analysis of the MTi G INS 12 1 2009 Marcel Suter Added implementation details about aligning 6 2 2009 Marcel Suter Finishing Documentation for Version 0 9 17 2 2009 Marcel Suter Management Summary Management Summary The Master Thesis In Train Positioning showe
75. event marker data seems to miss the railway stations at the beginning and the end of the track segment e The result of the evaluation of the DeviantDouble equality at the NaN value is unclear This could be verified with a Unit test e The interface library may depend on compiled external code It is not necessary to introduce an interface for types out of the Gavghan library These interface could get remove e DeviantDouble could implement an explicit cast from double instead of a constructor 97 Project Management e DeviantDouble could have it s own Formatter using a format like N6 N8 or similar e Implement an own TryParser for DeviantDouble A change request was raised to omit the WCF part of the implementation There is no specific benefit for the customer if WCF were used but time is saved Deliverables At the end date only the documentation is to be delivered The code will be reviewed together at the examination meeting 98 Known Issues 7 Known Issues 7 1 Currently known Issues Currently the following issues are known and should get fixed in a later release 7 2 The end points of tracks the starting and terminating railway station when a track segment is selected in the GUI is not shown and also not considered for the alignment feature In the example below the Station Casinoplatz should appear as first entry in the list Select Track Segment Number r Fire e
76. fast but still clearly visible On the Google Earth data the Welle a building over the position where the train stopped is missing Datei Bearbeiten Ansicht Tools Hinzuf gen Hilfe villette z IQ Urn i WE one m Sichth he 778m 46 949268 L nge 7 435242 Hohe 5 at the Bern Main Station n estimate derivation Illustration 58 Positio 5 3 2 Detected problems and behavior Most of the time as expected GPS is available During these times the positioning is quite accurate and will be aligned very well by the alignment feature If no GPS is available the estimated position quite largely differs from the real position as observing the landscape from within the moving train Once the heading obtained from the MTi G is inaccurate most of the time This has already been observed during the development in the office but the reason for this is still unclear Second there seems to be a speed mismatch between the integrated speed and the one obtained from the GPS This is probably a bug in the conversion of the units This may be the reason for the large Slopes observed during GPS outages 95 Test 5 3 3 Conclusion The software works stable but the output in case of no GPS available may be much to be improved probably with moderate effort The main problems is the heading and the speed calculation together with the bad quality of the acceleration measurements 96 Project Management 6
77. ger man new ConnectionManager Assert AreEqual ConnectionStates Disconnected man State bool eventRaised false man StateChanged delegate object sender StateChangedEventArgs args j eventRaised true i man State ConnectionStates Connecting Assert IsTrue eventRaised The test has a boolean eventRaised As soon as the event is raised the anonymous delegate the code right after the registration to the event is called The boolean value is changed in the delegate and this now can get asserted 5 2 Test the fulfillment of the Requirements For each of the requirements in the SRS the results of the test are shown below ID Name Pri Result Comment 0 1 NMEA 1 OK EarthBridge can read the output Protocol 2 NMEA 1 OK EarthBridge shows these updates Update 3 NMEA 1 OK EarthBridge can read the output as transferred serial configurati on 4 NMEA 2 Not tested speed 5 RMC 1 Partly working Navigation receiver warning is not implemented Sentence Speed over Ground in Knots is faulty according to drive tests 6 GGA 3 Partly working Fix Quality indicator always invalid Sentence Number of Satellites is not correctly reflected 82 Test 7 GUI not 1 OK but GUI GUI is not separated this is OK due to Change mandatory must be started Request 56 GUI 1 OK English 65 GUI 1 OK Solved by
78. gn for this Also this diagram shows the submitting of position estimates originating from Event Markers and train stop markers class Track Segment Exchange Classes E TrackSegmentReportClient cue Je gment TrackSegmentReportService TOW ReportSelectedTrackSegment TrackSegment void TrackSegment property Description string Number string EstimateProvisioningService EstimateProvisioningClient _ interface IEstimate O O as interface Classinterfaces IEstimate Illustration 30 Track Segment Exchange Classes The TrackSegmentReportService will be instantiated as singleton and session oriented in the WCF sense It will allow only one session to be active at a time because only one user is allowed to input the track segment numbers Allowing more than one would cause inconsistency The TrackSegment Class will serve as DataContract for the data exchange The CheckUserAliveCallback will serve as callback for the alive checking The EstimateProvisioningService will be instantiated as singleton too However an arbitrary number of clients is allowed Since the data of the clients is not influencing each other and there is no need for a session the WCF communication will be per call Validation of track segment number In case the GUI process has crashed or the user is not responding to the system anymore the corrected error in the alignment processing un
79. har 254 XCOLUMNNAME char 32 YCOLUMNNAME char 32 RENDITIONTYPE int RENDITIONCOLUMN char 32 RENDITIONTABLE char 32 NUMBER ROWS int index MAPCATALOG IDX char char ROUTE DATA ID ROUTE DATA ID PK ROUTE DATA 35BCF OA FK ROUTE DEF ROUTE 412EBOB6 nt 4FK ROUTE DEF ROUTE 440B1D60 O N FK ROUTE DEF ROUTE A412bEBOBe PK ROUTE DEF ID ROUTE DEF ID ROUTE DATA ID ROUTE DATA ID ROUTE DATA ID ROUTE DATA ID RAIL STATION STAT column PK RAIL STATION NAME varchar 50 X COORD int Y COORD int PK PK RAIL STATION STAT varchar ROUTE ORDER column pfK MAIN ID int PK CHILD ID int PK ROUTE ORDER nt int FK FK_ROUTE_ORDER_ROUTE_DEFINITION int 0 FK_ROUTE_ORDER_ROUTE_DEFINITION MAIN_ID ROUTE DEF ID PK ROUTE DEFINITION 33D4B598 PK ROUTE DEFINITION 33D4B598 PK ROUTE DATA 35BCFEOA PK ROUTE DATA 35BCFEOA ROUTE DATA column PK ROUTE DATA ID int X COORD int Y COORD int HEADING float PK PK ROUTE DATA 35BCFEOA nt PK ROUTE DATA 35BCFEOA TRUU IE DAIA TD FIROUTE DATA ID ROUTE__7D0E9093 0 ROUTE SPEZ ROUTE DATA column pfK ROUTE DATA D int pfK ROUTE SPEZ ID int PK ORDER STATION int PK PK ROUTE SPEZ ROUTE DATA nt int int FK FK ROUTE SPE ROUTE 7DOE9093 nt FK ROUTE SPE ROUTE 7FEAFD3E int
80. he GUI component does not have direct access to the database This helps creating the dependencies small and clearly structured deployment Deployment diagram E Database Server Position Processor Client H TCP IP TCP IP Track database Engine exe Illustration 4 Deployment diagram 1 5 Component diagram The component diagram shows the main components of the system with their interfaces The interfaces shows will get implemented explicitly Some of the interfaces may be within the same package from the Illustration 4 15 Analysis and Synthesis J cmp Components vA executable GUI WefDataExchange WefDataExchange executable GPS Sensor Engine WiFi Sensor l Estimate Processor 3rdParty TrackDbWiterface IProcessor 1 1 1 Inertial Sensor Database Access Database Illustration 5 Component diagram 1 6 GUI A possible GUI is shown in Illustration 6 All requirements from the SRS are included but the actual design may still vary Especially the Event Marker firing and the status indication may get visually improved 16 Analysis and Synthesis HE Formi O x File Connect About M Select Track Segment Number v Fire Event Marker Bem Hauptbahnhof Mitte Br cke Wankdorf Bahnhof Train stopped Status e GPS 3Satelltes 20m 13 12 43 y INS E wiri 2 Event e Dut
81. he value of the last estimate or zero if not provided The standard deviation for the acceleration should get set to the value of the last estimate too but if not provided I recommend setting it to 0 1 meters second second This is 10 of a considered maximum acceleration for trains Calculate new speed e Take the assigned acceleration of the new estimate and multiply it by the time difference This is the change of the speed Add this change of speed to the speed of the last estimate and use as speed of the new estimate e Do the same as above for the acceleration standard deviation to calculate the new speed standard deviation Calculate new heading e Itis assumed that the heading does not change Assign the heading of the last estimate to the new estimate 7 Source http www physicsforums com archive index php t 73565 html 32 Analysis and Synthesis Calculate new coordinates e Take the speed and heading of the new estimate Build a vector and multiply it with the time difference This results in a position translation Add the translation to the position of the last estimate e Dothe same as above for the speed standard deviation to calculate the new CEP 1 15 Existing Database I have found that all needed data already exists in a MSSQL database Thus instead of creating my own database and importing the data from text file I will use this database The definition is as follows 33 Analysis
82. ich represents the most probable value of the merged ones having it s own standard deviation The algorithm behind is a weighted average as described in the analysis chapter 73 Implementation 3 12 Class Merger The merger is the single most important tool This is where all the estimates from the various input devices are blended merged into a single output Merger Class ObservableBufferBase 3 Methods Y EstimateUpdatedEventHandler Merger Illustration 48 Class Merger The merging is done using an extrapolation from the last merged estimate to the current time and the current estimate This slightly differs from the analysis where the estimates from all input sensors are individually extrapolated I have found this unnecessary and only complicating the the process 3 13 Icons I generally use the Crystal Icons by Everaldo Coelho New icons I have created a new green Play Icon for better visualization of the working state of a tool The original icon file was the player play png file and I have set the hue to 100 using GIMP Currently the changed icon is only available as 16x16 pixel version and is called player play green png 74 Implementation 3 14 The GUI The GUI is kept as simple as possible It sports 3 areas implemented as Group Boxes that allow the input of the required data and provide status information Additionally a Property Grid was used to show the current
83. implementation of all the methods was quite tedious This approach has been dropped in favor of using the COM object COM Object in the DLL As I have found the SDK provides a COM object in their DLL Since it is very easy to write code against a COM object DLL in Visual Studio I went this way This will require installing the COM DLL on the target system The SDK installer however is able to do this In visual Studio 2008 using a COM DLL is as easy as just adding a reference to it in the current project Setting the current position The SDK documentation mentions a method for setting the position of the sensor in the the Latitude Longitude coordinate system I have tried to use this function but there is an error returned Probably this function is only intended for devices that do not have a GPS inside It seems that the statement of XSens that setting the position of the MTi G is not possible is true 3 7 2 Configuring the MTi G Various options are available Refer to XSNSO8UM I have decided to use an update rate of 10Hz This is the slowest available and sufficient for the intended update rate of the system s output of 1Hz As orientation mode I use the Euler angles These are the most simple to understand angles The singularity within is not a 60 Implementation problem since the sensor will have a defined orientation in the train The value I used as heading is the one called Yaw 3 8 Representing global c
84. ince we will have other sensors that may provide accurate fixes even while the internal GPS is not having a sufficient GPS signal reception we want to feed these fixes into the INS position estimates The intention is to use a static and dynamic over time error correction algorithm Illustration 15 shows the principle 6 Source http www codeproject com KB mobile WritingGPSApplications2 aspx 27 Analysis and Synthesis Last GPS assisted INS fix at tO Kept current best position estimate at t0 Next INS fixes are without start to Mean current best position estimate based route Current best position estimate without INS origin at t1 Illustration 15 Calculation of the current error paramters e When and as long as the INS has a good fix with its built in GPS at time t0 we keep this fix plus the current best position estimate of the system at the same time tO e When and as long as the built in GPS has no fix continue to output the current INS fix with the error correction applied values are initially zero 28 Analysis and Synthesis When later at t1 a current best position estimate is available in the system that is not based on INS and has a better CEP lower value than the current INS fix keep this plus current INS fix of this time Calculate the difference between the INS fix at time t1 and the Current best position estimate at
85. ing 1 OK event markers 37 Log output 1 OK 38 Log 2 Missing disabling 39 Log file 2 OK 41 Blending 1 OK inputs 42 Position 1 OK estimation 43 Estimation 3 Not reached CEP grows very fast over time about 500m per CEP minute when no GPS is available 44 Waypoint 1 OK count 45 AP count 2 Not tested 46 Maximum 1 Not tested speed with GPS 64 Maximum 3 Not tested speed with any sensor 47 Db update 2 OK Possible by replacing whole database 48 Using 1 OK laptop 49 Using 3 1 OK No non commercial components are used except party libs the virtual comports This component is easily replaceable 55 Engine 2 Requirement Dismissed by change request separated dismissed 63 Emulation 1 Partly Not changeable by configuration mode implemented 50 NMEA 1 OK Works with EarthBridge output 51 Coding 1 OK Guidelines 52 Availability 2 Not tested 85 Test 58 Quick 1 OK Start Guide 59 Document 1 OK ation 60 GPS 2 Not tested Accuracy 61 WiFi 2 Not tested WiFi is not implemented Accuracy 62 Inertial 2 OK Done while driving in a bus Accuracy 5 2 1 Summary Of all requirements with priority 1 the following have not been fully met 5 63 Of all requirements with priority 1 the following have not been tested 46 5 3 Test drives To evaluate the function of the IPS some test drives in the S Bahn around Berne were done For these test drives no database was used thus
86. input A successful input of a segment number re populates the event marker list As long as Success the user has not entered a valid segment number the event marker list remains empty thus disallowing firing of event markers Event marker firing by the user 13 Event firing The user must be able to fire an event when traveling past a landmark in the event marker database 14 Stop event The user has the possibility to fire an event when the train is completely stopped 15 Event list The event markers are presented in a scrollable list Each list entry equals to one event scrollable marker 16 Event list After the list gets populated see above the first event marker is selected population 19 Specific requirements 17 Event When the user fires an event marker the next one in the list is automatically selected reselection 53 Event shortcut Firing the selected event marker is possible using a single shortcut key on the computer keyboard 54 Event double Firing an event marker is possible by a double click of the mouse pointer on an event click marker in the list 18 Event re firing The system allows a given event marker to be fired more than once This allows a user to somewhat correct a previously executed firing which was too early 19 Last event If the last event marker in the list was fired no entry is selected Status output 20 Status at any At any time
87. interfaces 2 1 1 System interfaces The system provides data through the NMEA protocol Several sensors provide input to the system All interfaces are specified in Illustration 3 2 1 2 User interfaces Via the GUI the user is able to e Select the current railway segment e Fire an event marker and indicate a complete stop of movement e See status indicators 2 1 3 Hardware interfaces The system runs on a standard laptop with an RS 232 interface either built in or realized via an USB Adapter Overall description 2 1 4 Software interfaces The system runs on top of the Windows XP operating system Service Pack 3 or newer with the NET Framework 3 5 or newer 2 1 5 Operations The output of the positioning data runs independently of the existence of a GUI The GUI may be started separately if at all Data provision Data for the various positioning providers must be available in the formats described below 2 1 6 Site adaptation requirements Data Input The system relies on locally available data The step of loading the data into the system is only required once for a given set of data 10 Overall description 2 2 Product functions The system replaces an existing one An overview over that system is given in Appendix A The new system uses various input sensors whose interfaces are known and specified The system connects to those interfaces in order to obtain process and output positio
88. io parameters and to read out the data of the gyro and the accelerometer via an RS 232 serial connection All Positioning and measurement data is then saved into the measurement files However no real positioning data is saved just the accelerometer and gyro data are saved in a customized format for later post processing Illustration 7 The measurement technician at work 27 Appendix A Overview of the existing system The currently used laptop is an IBM Thinkpad R52 It has 8GB and a 18GB Hard disk in it The processor runs at 1 5GHz and there is 512MB RAM The software The GUI of the current positioning solution is built into the GUI of the measurement software Illustration 8 GUI of the current GSM measurement solution measurement is running When starting the measurement the user inputs the railway segment number of the current segment he or she is traveling on into the system The system looks up the number in local database and presents a set of predefined event markers denoting landmarks along the track During the course the user clicks on each of this MNLCESI marker when it passes Additionally two buttons can E be pressed to indicate either that the train stopped ar NS A oom Fed al moving or that it just has started moving This and the event markers are later used in the post processing step to correct the stored inertial data The user has the possibility to revoke a marker up
89. iption DbAccess This allows the engine process the needed access to the track and the Event Database The access to the WiFi database is encapsulated entirely in the sensor package because this is not needed anywhere else Interfaces This package contains all the interfaces needed in the whole project Therefore every package may depend on it although for simplicity only the main dependencies are shown The exchange interfaces are used for data transfer between the Gui and the engine process This will include event marker retrieval and position provisions by the event marker firing in the GUI To prevent circular dependencies this package must not depend on any other package in this system It will depend of course on the NET library Sensors This package encapsulates all positional inputs to the system except the user fired event markers 43 Design Gui This package contains all parts of the GUI like the forms dialogs etc It needs database access to allow the user the input and verification of the track segment number and to fire the event markers Engine Contains the processing of position estimates the output of data to the serial port and provides access to all necessary data via the exchange interface Helpers The helper package contains various classes especially such for coordinate conversions and calculations plus parsers for the NMEA protocol Every other package may depend on it but for simplic
90. it may grow to large number when the system is not on the last selected track anymore Therefore the alignment processor should validate the currently track segment number and discard it in case it seems to be wrong The criterion may be that the correction is larger than a factor of the maximum expected error of the system under good conditions The implementation may choose this value upon experience Another criterion should be if the GUI is knowingly terminated This get detected by the ending of the session with the GUI Status data exchange 50 Design The status data exchange is solved with the publisher subscriber pattern and the observer pattern with events instead of method calls Illustration 30 shows the design classes for this class Status Exchange Classes E interface Classinterfaces IToolStatus property interface Classinterfaces IStatusObservable property Status IToolStatus interface IToolStatusObserver Observe IlStatusObservable void LastPosition IEstimate StateDescription string Statelndication EStatelndication Tool ITool event StatusChanged IToolStatus ToolStatusPublisher Observe IStatusObservable void Subscribe void ToolStatusSubscriber Illustration 31 Status Exchange Classes 1 ToolStatusDataContract UnSubscribe void The ToolStatusPublisher is the class maintaining
91. ity this is not shown 2 2 Engine core The core engine s elements should be replaceable therefore I have chosen to extensively use an interface based design approach 2 2 1 Business class diagram Diagram Illustration 27 shows the business class model for the engine core The classes for database access inter process communication and the GUI have been omitted intentionally to avoid unnecessary complexity 44 Design The classes are all about position estimate processing IProvider and IConsumer classes could be thought of as observable tools They represent just various levels of features for accepting processing and providing of estimates These tools provide also status information defined via IObservable An IConsumer implementation should keep the references that it has attached to for later usage This is especially necessary when it wants to query an IBuffer intermediately class Engine Core Classes interface EstimateEventArgs interface IEstimate IToolStatus property property Estimate Estimate LastPosition IEstimate StateDescription string Statelndication EStatelndication Tool Tool interface IStatusObservable property Status ToolStatus event StatusChanged IToolStatus interface ITool property Description string Name string Uld string 2 interface IConsumer
92. lace lab are providing a position estimate 1 9 5 The INS is providing a position estimate The XSens API provides a DLL for accessing the sensor data Currently the exact specification for the DLL is not known so I assume that there will be a polling mechanism instead of events See also the user manual XSNSO8UM At the end the position estimate is made available through an event act New INS position is provided datastore XSens sensor flow Poll sensor for new position and status data from Business Objects Apply error correction PositionEstimate from Business Objects Fire Available event New position estimate available from Business Workflows from Business Workflows Illustration 11 Activity Diagram for The INS is providing a position estimate 23 Analysis and Synthesis 1 9 6 The User is providing a new position estimate This also applies for when the user is firing the train stopped event In this case the position estimates contains no coordinates but speed and acceleration values are set to zero At the end the position estimate is made available through an event act New position from GUI is provided datastore UI Event exchange endpoint Receive data from endpoint PositionEstimate from Business Objects Fire Available event from Business Workflows New position estimate
93. le very clearly Once the GPS antenna is detached the motion plotted corresponds to the real motion for a little longer than 10 seconds then the sensor s position does not move further but stays at it s place When the GPS antenna is reattached the position jumps to the right place again A support engineer from XSens clarified on this mentioning that this behavior is by design The goal of the MTi G was to provide dynamic motion not absolute positions in the world The sensor would relay heavily on GPS for absolute positioning This renders the MTi G almost useless for the Thesis 41 Analysis and Synthesis I now have decided to simply use the acceleration along one axis and integrate that into a traveled distance The downside to this will however be that small amounts of misalignments in the vertical axis as will often occur in real world scenarios will lead to great misplacements over relatively short time Outside of this thesis this problem may get fixed by using more advanced mathematical algorithms for tracking the position 1 21 Integrating the Acceleration on a single axis The MTi G provides acceleration data in three dimensions However for the thesis for simplicity only the acceleration measurements on a single axis is taken This axis should be very well in line with the direction of movement of the train car and be kept horizontal From the periodically measured acceleration the current position can be dedu
94. library usage is allowed The system depends on the NET Runtime package version 3 5 Service Pack 1 It is also assumed that also any available other libraries may be used in the development Care should be taken about the quality and available support for the libraries As database system the Microsoft SQL server 2005 or any newer version may get used Only basic math is used Only basic mathematical algorithms are used for the processing of the positioning data With this assumption the position estimate is calculated on a best effort basis Availability of data for the input technologies All data used for the event marker database the track database and the WiFi Access Point database is already available in an easily parseable file format Acquiring this data is not part of this thesis Where necessary or useful small amounts of sample data may get acquired during the development of the system Installation and Distribution A simple batch script shall be provided which installs all needed component on a fresh operating system installation This process may need manual user interaction for example to get device drivers and the corresponding hardware installed according to the instructions from the respective manufacturer It is assumed that besides the components of this system no other software runs on the same computer 13 Overall description Position estimate quality There is no probability check of the ou
95. logies B V MTi G User Manual and Technical Documentation Available from Xsens Technologies B V Pantheon 6a P O Box 559 7500 AN Enschede The Netherlands www xsens com 2008 TOPCOSIB Lbackstrom Geometry Concepts Basic Concepts Available at http www topcoder com tc module Static amp d1 tutorials amp d2 geometry1 line point distance PLSTO8AE Peter Lamb Sylvie Thi baux Avoiding Explicit Map Matching in Vehicle Location CSIRO Mathematical and Information Sciences GPO Box 664 Canberra ACT 2601 Australia available at http users rsise anu edu au thiebaux papers its99 doc 104 Thanks 11 Thanks This thesis would not have been possible in the presented way without the help of many people I would like to thank e My wife Sara for her patience during this time e The expert Rolf Wenger for sharing his knowledge in a kind and comprehensive way e The supervisor Stefan Bigler for helping me out of dead ends e Michael Birchmeier of ENKOM Inventis for the project idea and for spending the amount of money necessary e The guys at Redmond for building the great environment I was able to use for this piece of software 105 Thanks Mindmap of the analysis Appendix A siexiey M b ame x m f Ajayesedas usao d si uogejuauue duui 10suas uaea 40 Duruonauni au p 0 Y Ime 3009 leau 2 payseyeal ae SIOSUBS paaowa low 10 BUD uaym s18A0281
96. m the author IEEE98 IEEE Recommended Practice for Software Requirements Specification 1998 The Institute of Electrical and Electronics Engineers Inc 345 East 47th Street New York NY 10017 2394 USA ISBN 0 7381 0448 5 SS94654 PDF GPSI08 Dale DePriest NMEA data 2008 http www gpsinformation org dale nmea htm Introduction 1 5 Overview For the current system in use this SRS contains a description in Appendix A However this is not a considered part of the SRS For the new system an overall description and specific requirements are provided Overall description 2 Overall description 2 1 Product perspective The system will be used when positioning information in trains is needed It is intended to replace an older existing system in a measurement application The existing system is mostly used in the IC2000 cars of the SBB Illustration 1 IC2000 cars of the SBB In the new system to input position estimates into the the measurement application a different input interface will be used than currently is Additionally also completely different measurement applications will be attachable via the newly supported interface Some technologies for providing the position estimates are required to be used and thus specified as to use AI lt RS232 mma nan Processing User interaction is not mandatory Illustration 2 Overview of external
97. me string Uld Guid interface IObservableTool property Status IToolStatus event StatusChanged EventHandler lt ToolStatusEventArgs gt interface interface IConsumer IProvider Consume lEstimate void mm Deregister IProvider void EstimateUpdated EventHandler lt EstimateEventArgs gt Register IProvider void interface IPlayableProvider Play void N interface IProcessor interface IBuffer GetEstimate Estimate Illustration 34 Interfaces in the tool chain 57 ase guayngalqensasqo 4 c Bseguayngaigenussgo g ssej gt dadaay ssegaajngsjqe 4esqo g sse sasuadsiqgzipoiiad a a JOojajqeasasqor ssegaossasoA4ge qe A4esqo ssegaossasoA4ge qe 495qo 4 ssegaossa o4ge qe 485qO 4 ssegaossa2oAge qe 4 JWIJeLBSEBWUN SFg4BPIAOAgelgen4ssgo 4 SFIASPIAOAGSITERABSIO 4 A3piAO4d3 AI Q UDI J9plAO4dAS A 1A0Agjeulageswn jooLajqevsasqor JooLajqeasasqor JBPIADAGaIGeAC AT ABPIAOAGaIGeAC dT Implementation ASPIAOAdL Jepi c4dajqeAe gT ssegaosse2o4ge qe 4esqo sse A 92442 40 430243 SSE gt daddoig segaosssso4dejgeauasgog sse PEASY Aaunsuo oo18 qe 18sqo I JossaJ04dI 4a gt 4A8piAOAd eHe Seu 4
98. me is stored in text in the COMMENT column This table is however not relevant for the thesis The same applies to the related OPERATOR table 1 16 9 ROUTE SPEZ This assigne new numbers to the ROUTE SET 10 This is not relevant to the thesis 1 16 10 ROUTE SPEZ ROUTE DATA This sems to assign railway stations in a specific order to the spez routes This is not relevant to the thesis 1 16 11 MAPINFO MAPINFO MAPCATALOG These are MapInfo specific definitions of tables MapInfo is a mapping software and not part of this thesis 1 17 Tables to use The following tables are to be used for the thesis e ROUTE DATA e ROUTE DEFINITION ROUTE DATA e ROUTE DEFINITION e MARKER DEFINITION 1 18 Database Access The information about Tracks Railway segment numbers and Event Markers is found in the existing database I have analyzed what data the Gui and Engine process need to access in which sequence and what data is to be transferred between the two To keep dependencies small only the engine has access to the database The GUI retrieves needed data via the engine which in turn get them from the database if necessary 36 Analysis and Synthesis Data items that are exchanged A list of all available Track segments by number The data type here will be a list of strings because the format is not strictly numerical The available event markers for a given track segment The data type here will also be a list of objects
99. mulation Estimating the position Test Each Sensor implementation Accurrateness of positioning Requirement by ID with supervisor Bugfix Bugfix of found Erros Doc and Presentation Finish documentation Quick Start Guide Prepare Presentation Management and Doc Upload Master Thesis Upload Abstract Presentation Management Task Documentation Task Tay 15dys ray osays osays 99 dys oays odjs ods 99 dys 99 dys I Star Mon 06 10 08 Mori 08 10 08 Mori 20 10 08 Fr 14 11 08 Mon 17 11 08 Mor 17 11 08 Tue 18 11 08 Tue 18 11 08 Mon 24 11 08 Tue 25 11 08 Tue 25 11 08 Tue 06 01 09 Mon 01 12 08 Mori 01 12 08 Tue 02 12 08 Thu 11 1208 Thu 11 12 08 Mon 15 12 08 Tue 16 12 08 Tue 30 12 08 Tue 30 12 08 Wed 31 12 08 Mon 19 01 09 Mon 12 01 09 Mon 05 01 09 Tue 27 01 09 Tue 20 01 09 Mon 26 01 09 Mon 02 02 09 Mon 02 02 09 Tue 03 02 09 Mon 09 02 09 Tue 10 02 09 Tue 10 02 09 Mon 16 02 09 Mon 16 02 09 Tue 17 02 09 Tue 17 02 09 Mon 06 10 08 Thu 19 02 09 Fr 28 11 08 Fr 20 02 09 Mon 08 10 08 Mon 08 10 08 Finish Fri 14 11 08 1 Tue 14 10 08 Mon 20 10 08 3 Fri 14 11 08 4 Tus 06 01 09 2 Mon 17 11 08 Tue 18 11 08 7 Mon 24 11 08 8 Mon 24 11 08 9 Tue 25 11 08 10 Mon 01 12 08 11 Tue 06 01 09 12 Tue 09 12 08 Tue 02 12 08 12 Tus 09 12 08 Tue 27 01 08 Thu 11 12 08 12 Mon 15 12 08 12 Mon 29 12 08 19 Tue 30 12 08 20 Tue 30 12 08 21 Wed 31 12 08 22 Tue
100. n NMEA Sentence A part of information described by the NMEA Protocol http en wikipedia org wiki NM EA RAM Random Access Memory http en wikipedia org wiki Ran dom access memory RMC Recommended Minimum sentence C a http www gpsinformation org part of the NMEA protocol dale nmea htm RMC RS 232 Widely used protocol and interface http en wikipedia org wiki RS specification for binary data transfer 232 SSID Service set identifier a parameter of http en wikipedia org wiki SSI Wirless LAN s D SBB Swiss Federal Railways German http de wikipedia org wiki SB Schweizerische Bundesbanhnen B Wardriving Wardriving is the act of searching for WiFi http en wikipedia org wiki War wireless networks by a person in a driving moving vehicle using a portable computer or PDA WiFi WiFi is the trade name for a popular http en wikipedia org wiki Wifi wireless technology WLAN Wireless local area network http en wikipedia org wiki Wir eless LAN IC2000 Identification for double decker train cars http de wikipedia org wiki IC2 used by the swiss federal railways 000 in German 1 4 References Bibliography SUMOSTE Themeneingabe Master Thesis Thema In Train Navigation 21 8 2008 Marcel Suter Obtainable from the author SUMOSFS In Train Positioning System MAS 06 02 23 Feasibility Study 10 10 2008 Marcel Suter Obtainable fro
101. n and turnrate error 1 26 Using the track db Create track db proxy or ist that hold curent track waypoints Probably narrowed down by user input Calculate nearest point algorithm 15 77 Using event markers Create corresponding position provider 05 28 Logging and Emulation Create logger reading from logs emulating sensor 1 29 Estimating the position Create blender 1 Seite 2
102. nal data These interfaces define the system boundaries See Illustration 3 The data of the sensors called position providers gets directly processed in the system itself The system outputs the resulting position estimates via an RS 232 serial connection in the well known NMEA format Any attached device may use the position estimates as input Since the input the sensors and the the output needs to be realized in hardware there exists a second boundary the so called hardware boundary Sp yeica LSD zgieal dive cr arten F alecal piopeisban AFI FTIG Spaniel USRI ajra duci rzzzb h MFA 3 Rz Paw a 45 O Pete Fhryslzal Yita com zz t ck 32 272 rzhanzb Boh a 1 Frrzlzal detecrk Interface Legeul TER Freboco Sia S F izgiza Seripus Sores eagiezal n rrkiees Fri j F z cool Use dbz comm DX n Tick P H I E e gt il Abys er Bane cher So bhn Comwpz t M d ajral au Un wer PE ark dava Seen N gt YAP 213 Fira Guppy ho ti 00 Syeteri lt lt aa Irdg y 12052 ER ATIS wu 7o BOL Thane ss Svsteriiater ace We roer H Data in Illustration 3 System boundary diagram 11 Overall description 2 3 User characteristics The average user of the system is a measurement technician that has general computing skills The user may be occupied with other tasks when using the system
103. nennennnnnennnnnnnn nn nn enn nenn nnennennnen nun nenn 10 2 2 Prod ct functions cL 10 2 3 User characteristi6s ooo Ed v es BE bee oae pM EY ERA ou DP NEUTER E NOR 11 2 4 CONStral NS un THEE U HIIuM E 12 2 5 Assumptions and dependencies ussusersennennennennennn Enns 12 2 6 Apportioning of requirements 2 6 of the 8 5 non nun nun nn nn nennen nennen nennen nenn 13 3 Specific requirements 2 eese expe ne I I EL EL EEE ne 14 3 1 External interface 5 nennen nen nnn nn nnne nnns nnn nnn nnn 14 Jle System Interface Snar ier seine VR STAR EIE MENOR a ala nn ee AST ERA 14 3 42 User Interfaces a a a ee a nen AEA ee RERE erringen 15 3 1 3 Hardware Interfaces nun nun nun nn n nenn a nennen sna anna anna nn nan nnn 17 Cm Belezien ep e R R R 17 3 2 F nctlOris i i niii ces ie iva ripe e ee er ia P gg p RE GR DX SR Y INR REN ADR ee een ee 17 3 2 1 Using WiFi as a position PFOVIGET nmn nns 17 3 2 2 Using GPS as a position 001 18 3 2 3 Using an IMS as position 0 6 18 3 2 4 Using a track database for 60 0 nenne 18 3 2 5 Using event markers as position 0 0
104. nput of the current track narrowing segment number 3 2 5 Using event markers as position provider 36 Using event markers The system shall use the event markers fired by the user as positioning data 3 2 6 Logging 22 Specific requirements 37 Log output The system produces a log of all outputted data 38 Log disabling Disabling this function must be possible by configuration 39 Log file The log is written to a text file The filename contains a timestamp of the current UTC time when the log was started 3 2 7 Estimating the position 41 Blending inputs The positioning data gathered from the positioning providers the IMU and from the track database is blended together 42 Position The blending is done in a way that at any time the most probable position is estimation outputted using basic mathematical algorithms 43 Estimation CEP The CEP after blending is 25 meters or below when the train is stopped at any time 3 3 Performance Requirements 44 Waypoint count The system is capable of working with as much as 100000 track waypoints 45 AP count The system is capable of working with as much as 100000 stored access points 46 Maximum speed The system works at traveling speeds up to 200 km per hour when the GPS sensor is with GPS providing position estimates 64 Maximum speed The system works at traveling sp
105. obably also accuracy on tracks too costly Gladiator http www gladiatortechn Inertial sensors in one housing This is not a turn key Technologies Inc LANDMARK20 AHRS DEMO KIT ologies com DATASHEET L andMark20 AHRS DEMO KIT datasheet 051508 pd f with USB connection These sensors are mainly developed for sailing and flight application A Evaluation Kit is available Integrating and combination of the inertial data and external GPS fixes would have to be done in external software solution for this thesis since integration of the inertial data is not done yet Because integrating is not provided the precision is probably questionable On inertial navigation OXTS Inertial http www oxts co uk def ault asp pageRef 102 Augments the NMEA data of an external GPS receiver with inertial measurements There are also other models available Drift without odometer is about 50m minute This product would be quite fine but I don t have the budget for it VibTel RT3000 http www vibtel com EN Products InertialNavigatio nSystems Strapdownlnerti alNavigationSystems OXT S MODEL RT 3000 html Click to Zoom In Supports an external GPS and povides data via CAN RS 232 Ethernet VibTel seems to be a reseller of OXTS Way beyond budget 10 On inertial navigation
106. of a custom event marker class Track waypoints for an area or for a given track segment The data type here will be a list of objects of a custom waypoint class The user selected track segment The data type will be a string A fired event marker The data type will be a customized class most preferably directly based on a corresponding class that is used inside the engine for position processing Status data This is only mentioned for completeness here This data is completely unrelated to the database and thus not specified further here The diagram below shows the sequences for various activities related to the data exchange sd Db access model GuiClient DatabaseContext User System EngineClient DatabaseContext 1 Sequence 1 Engine startup Db RailRouteDb 1 R StartEngine 1 I 1 GetTrackWayPointsInArea NorthWest SouthEast 1 i Sequence 2 GUI statup and initialization StartGui i 1 1 GetTrackSegmentNumbersAvailable TrackSegmentNumbers f SelectTrackSegment TrackSegmentNumber ReportSelectedTrackSe 2 EPEE GetEventMarkers TrackSegmentNumber EventMarkers GetEventMarkers TrackSegmentNumber EventMarkers Ecl ze T Sequence 3 Firing of Event Marker and Stop Marker 1 FireEventMarker i 1 ProvideNewPositionEstimate PositionEstimate 1 FireStopMarken i ProvideNewPositioniEstimat
107. oints for the position enhancement is narrowed down to the selected track Postcondition The event marker for this segment are presented to the user The position enhancement for the nearest point on track works with the selected segment 10 Analysis and Synthesis Invariant Incoming data User provided track segment number Outgoing data None outside the system Comments Requirement numbers 8 9 10 11 12 Fire event marker Description The user fires one of the presented event markers Actor User Precondition Use case select track segment number is carried out GUI is started engine is started Activities The position of the selected event maker is transferred to the engine and gets processed The corresponding position provider in the engine issues a position estimate for inclusion in the current best position estimate Postcondition The current best position estimate is enhanced Invariant Incoming data User s decision on whether to fire the event Outgoing data No external data Comments Requirement numbers 13 15 16 17 53 54 18 19 Fire stop marker Description The user fires a stop marker Actor User Precondition None Activities The information that the train is stopped is transferred to the engine and gets processed The corresponding position provider in the engine issues
108. on 32 Defining status observation and publication 51 Implementation 3 Implementation 3 1 Overview The solution is divided in 8 Packages containing a total of 123 classes and interfaces In the following some important aspects are presented The code is fully documented within the source files The source is not public but may be requested from the author 3 2 Changed packaging During the implementation the packaging has been slightly adopted The namespace convention is Inventis Ips PackageName SubpackageName Packaging is now as follows 52 Implementation CmtComWrapper H CmtSession LJ Base LJ GeoMath MtigData Interface LJ Kml MtigPositioningSession LJ Nmea XSensException m Parsing m Defines LJ Properties m Enums LJ Serial m Properties LJ Timing LJ Tools GuiWinAppExec TrackSegmentNumberChangedEventArgs AboutBox m UserControls H AboutBox MainGui MainGui Program LJ Properties Eg Toolchain RailrouteDbAccess ThirdParty TrackDbAccess amp AveragingTest Ch1903CalculationsTest DeviantDoubleTest H EstimateTest ExtrapolatorTest MergerTest a NmeaSerialEmitterTest z Testdata TrackDbAccessTest VectorGeometryTest gt WaypointScopeTest Nmealnterpreter LJ Helpers m Properties Illustration 33 Implemented Packaging 3 2 1 GuiWinAppExec The
109. on foot This just a pedometer as clarified by a technician from Honeywell and it will not work in trains DRM 5 and GyroDRM suffer from the same issue I was told Honeywell DRM 5 Dead Reckoning Module Evaluation Kit Available http www ssec honeywel l com magnetic datasheet s drm5 pdf Similar to DRM 4000 with built in GPS receiver Evaluation Kit available No USB powered by an internal rechargeable Battery By specification this is not to be used on vehicles Export Controlled by ITAR Since no external GPS is attachable initializing the device seems impossible Not usable in trains On inertial navigation Honeywell http www ssec honeywel Gyro stabilized inertial Seems to be an older l com magnetic datasheet navigation for personnel on version of DRM 5 GyroDRM e s gyrodrm pdf foot Has a built in GPS Not usable in trains receiver A Evaluation Kit is available IMAR http www imar 2D Navigation module using an Is not 3D navigation de datenbl drp external GPS receiver IDRPO os 2pages e pdf attachable via RS 232 NMEA 2 hene An option for 3D is available pe not eligible for use in trains without odometer because it would deteriorate fast Applanix http www applanix com Inertial optical and GPS Large and much too POS TG products postg index php sensors provide millimeter precise pr
110. on here http www imar navigation de download inertial navigation introduction pdf On Evaluating the properties of an inertial navigation system this article by imar may help http www imar navigation de beispiele decision assistant pdf 3 2 Requirements for a suitable inertial navigation device The ideal inertial navigation device for use in this thesis should have the following features e USB port for fast data transfer and power supply e software library for easy access in NET e Ability to indicate a start position and regular updates via the NMEA protocol e Built In Kalman filter e probably an internal GPS e accurate also on high speeds e full 3D positioning using 3 accelerometers and 3 gyros e Not depend on an odometer since we do not have access to odometric data in the train cars 3 3 Commercially available devices prices removed There are several devices on the market as follows On inertial navigation On inertial navigation Company Product Link Sample Picture features Comment Honeywell DRM 4000 Dead Reckoning Module http www magneticsens ors com datasheets DRM4 000 pdf Ordering No DRM 4000 Overview of similar products http www magneticsens ors com products html Contact Customer Service at 1 800 323 8295 for more information Blends GPS and dead reckoning data via internal sensors to an NMEA output Suited for personnel
111. oordinates I decided to use 3D coordinates throughout the project even when the track database does not have 3D data Some coordinate mangling is done via a 3rd party library Gavghan Geodesy which now also has a reference to the Common package This does not introduce circular dependencies as long as the 3rd party library does have no other dependencies in the solutions The library contains ready made types for representation of positions on the globe 3 9 Implementation of the database access For the database access LINQ to SQL is used Visual Studio 2008 has excellent support for creating access classes to a Microsoft SQL server database a so called O R mapper There is good support on the Internet for this feature Using this the implementation of the access classes the so called database context was made within minutes 3 9 1 Interface To allow defined access to the RailRouteDb and to encapsulate the database internals an interface for accessing the database was defined gt ITrackDbAccess Interface Methods Alan Y GetfventMarkers Y GetTrackSegmentAiumberz Select IrackSegment Unselect TrackSegment Illustration 38 Interface for accessing the track database The first method to call should be the selectTracksegment because this will define the behavior of all subsequent calls to the other method See the code documentation for more details 3 9 2 Designing the database context Visual Stu
112. or more measurement files depending on the current measurement task The files are transferred manually to a backoffice computer In the backoffice an operator re references the relative positoning information by using the stored event markers The relative informations gets adjusted according to stored information about the event markers and the tracks This process requires much user interaction from the operator GT TT HELLE 3emir eutarated post processing pr et M ef poaition User manually Alldetzis data sets avent etorad A Files IAL 4215 togather in a Tranter TS m asllement file A TTE Backoffice Camplkte Sys mor ntez an a Trolley B Interface ee Positioning Data Illustration 4 Positioning information data flow in the existing system The Hardware The current solution is built in a trolley It consists of a single box containing an accelerometer and a gyro 26 Appendix A Overview of the existing system Illustration 6 A look inside the existing measurement trolley laptop removed The inertial system is on the bottom Illustration 5 The current measurement solution is built on a trolley A laptop is used to measure the rad
113. osition estimate from each position provider Create activity diagram if necessary 13 Test Cases Specify test cases and test the model with the scenarios 16 Transfer Business into Design classes in code Model Business classes into Design classes apply OO design patterns Design associations attributes methods enumerations 0 5 Design the interfaces Design the packaging 0 5 Design the database tables 0 5 Study NET Unit testing and define test cases if enough time available 1 19 System Interfaces Find suitable NMEA lib Implement outputter copy data from current estimate into the NMEA classes 1 20 User Interfaces Languages Designing the Main parts of the dialog 05 Design the WCF classes for Event firing and track segment number input 1 repopulate event markers 0 5 Event firing 1 Implement status providing and GUI Elements WCF for this 1 21 Hardware Interfaces Install adapter test output with a prototype 0 5 22 Start and Shutdown Create starter EXE probably a Windows service for the engine Create Starter EXE lor the GUI 0 5 25 Using WIFI Test Placelab 1 Get Data 1 Integrate Placelab 1 24 Using GPS Integrate GPS 1 25 Using IMS Get acquainted with the sensor and the data access 1 Create position estimates with correct CEP from the data 0 5 Design and implement a simple algorithm that links the last known position with the IMS output Some sort of back calculating the acceleratio
114. ount or View Account Details Each Use Case describes the functionality to be built in the proposed system which can include another Use Case s functionality or extend another Use Case with its own behavior 1 2 2 Actors In this thesis various types of actors do exist One is the typical user that interacts with the system another is an external system typically a measurement application that uses the output of this system shown here as position consumer Additionally there are actors that represent each sensor 1 2 3 Use Case diagram The use case diagram in Illustration 5 shows the use cases from the user and the external system s point of view Analysis and Synthesis uc Use Cases select track segment extend P User fire event marker Gps RCM INS Provider rextende Provide new position estimate lt extend fire stop marker extend Placelab Reader Read Position Position consumer Illustration 2 Primary use cases The most important use case is Read Position This invokes a cascade of other use cases When the position consumer wants to read the position there must be a position available beforehand This is modeled in the use case Provide new position estimate Here the various position provider be it a sensor or the user via the GUI can provide their position information The user does this trough two dedicated use c
115. put Connected Illustration 6 GUI prototype In this prototype the status is shown as colored icons besides the tool name 1 7 Position providers Position providers are units that provide position estimates Each instance of a position provider or at least each type of must have a unique identifier to allow a processed position estimate to declare it s origins 1 8 The position Information The whole system does mainly process positioning estimates Such an estimate should contains the following information based on the requirement 5 and 6 A note about time The GPS time is not perfectly in sync with UTC because of reasons discussed in an article by Joe Mehaffey An overview of time differences can be found on leapsecond com Most GPS receivers seem to take the gap into account and thus I take no specific measures against time differences The time of a position estimate should always be the UTC time as returned by the NET Framework Stored data 1 See http gpsinformation net main gpstime htm 2 See http leapsecond com java gpsclock htm 17 Analysis and Synthesis Time and Date in UTC at that the position is actually estimated This may also be in the future or in the past depending on the acquisition time and on what has happened or will probably happen to the estimate estimated Latitude estimated Longitude estimated Speed horizontally estimated Heading horizontally
116. rantelHans PetenSolt Illustration 14 shows the process as activity diagram 25 Analysis and Synthesis act Merge new estimate with existing ones from other sensors E datastore datastore Inertial position XSens sensor provider datastore datastore Event marker GPS position position provider provider from Business Objects Extrapolate Extrapolate Extrapolate Extrapolate m I N PositionEstimate PositionEstimate ositionEstimatePositionEstimate flow 3 flow flow flow One position estimate is already Weight all provided with the event so only the estimates remaining must get interpolated or fetched by the activity New position estimate available Calculate average from Business Workflows Illustration 14 Activity diagram for the merging process This process is done for each new position estimate provided by any provider Thus the merger class will need to have explicit access to the providers or to the extrapolators if they are classes for themselves to get extrapolated estimates 1 10 Configuration of the engine The configuration defines vital parameters of the system It will not be user changeable and be static for one system once set at installation time The configuration will provide the following data e Comport for the GPS receiver NMEA data e Comport to use for the Place Lab NMEA data e Comport to use for posi
117. reedom In this thesis this is http en wikipedia org wiki Deg often used as 6DOF This usually means rees of freedom mechanics that the referred component uses 3 gyros and 3 accelerometers GGA Stands for Global Positioning System Fix http www gpsinformation or Data a part of the NMEA protocol which dale nmea htm GGA contains essential fix data which provide 3D location and accuracy GPS Global Positioning System The Global http en wikipedia org wiki GP Positioning System GPS is the only fully S functional Global Navigation Satellite System GNSS in the world It was developed by the United States Department of Defense INS Inertial Navigation System http en wikipedia org wiki Ine rtial navigation system ITAR International Traffic in Arms Regulations http en wikipedia org wiki ITA ITAR is a set of United States R government regulations that control the export and import of defense related articles and services on the United States Munitions List MAC Media Access Control a quasi unique http en wikipedia org wiki MA identifier C Address MEMS Microelectromechanical systems http en wikipedia org wiki ME MS NMEA National Marine Electronics Association http www nmea or The term NMEA most often refers the protocol called NMEA 0183 issued by the organization a defacto standard for providing GPS related positioning information http en wikipedia org wiki NM EA Introductio
118. rtial navigationis ciue edocs casa tiene cur aa nud davai adds dav uvae rie ena ger Pee a Eee 6 cC me E 6 3 2 Requirements for a suitable inertial navigation 6 6 3 3 Commercially available devices prices 0160 none nen nn nun nun nun nenne nennen 6 3 4 CONGIUSION ERREUR 13 4 0 USING WAP bese deville tek a nn eg Fran He 14 421 PrefaGe isis ove 14 4 2 War driving with a laptop in the eee eee eee nun nennen nennen nennen nnns 14 PAM IINE 14 4 2 2 Z rich S Bahn ann as Een ine kA E rci 14 4 2 3 Intercity 2 8 non nenn nenn nenn nennen nun nun nn nen nun nnn 14 4 3 War driving with a mobile device in the train esses 15 4A COMCIUSION eR 15 5 On code for WiFi scannlrig oce oe ei veces ett cete x 16 Bcd Prefa Ge s iE ix n sh vere ie ie qr D E 16 5 2 Existing Projects us ooa D eter esteso edid weder RE EE RE nae RUE 16 5 3 0wn Code ln CH ee ee eras Ek neuve een uir Ere eh elas eur dee 16 5 4 Managed WIF API u diede h qiiae Rx lerra be X aai ini RR TRA DIRE a kn ann RAIL PEAMEES ETE EDn Pads 16 5 5 Advanced WiFi Manager ara eee xe ix eau dX ER Ex E HEX Ex RE Sex EXER E DUK EE ARIETE eA 16 5 6
119. s with a settings section in it After installation on the target machine the app config file may get adapted to the situation on that machine Most of the settings are used to build the tool chain 3 17 External Code and Libraries Where possible and suitable external code of good quality has been used Such code is attributed in the comments The largest external code block is the NMEA interpreter which has been moved to an extra project This code also has been slightly adapted For geodetic calculations a geodesy library has been used In the Common Package some types are referenced and thus used in the whole solution 78 3rd Party component usage 4 3 Party component usage 4 1 Crystal Icons These icons are used as status indicators in the GUI The crystal icon set from http everaldo com crystal crystal project tar gz is from Everaldo Coelho The used version was changes by yellowicon The distributor kindly requests to include links to www everaldo com and www yellowicon com 4 1 1 License LGPL 4 2 u blox Evaluation Kit The use of the u blox GPS receiver requires the installation of a USB driver See http www u blox com 4 2 1 License The license grants all rights to use and install the software in combination with a u blox hardware product 4 3 NMEA Sentence Interpreter This is a single class written by Jon Person See http www geoframeworks com 4 3 1 License CPOL http
120. sngoy s noy 0 40 jsnonuguoa suni uiajs s aur 6 jeuaqdo yey 816009 oj yndjno eA SU03 P810 09 se jndjno Jo snjejs ous 408uas yaea 10 shjejs MOUS Saye juenbesqns jo uonejuasaid D uoduoo Ieri sigeindyuos ayes pneg indio avou exeuspueH pados euou Aueg 8 44 eed 0084 eje pneg 5 vo YIAN o 513413989 SdO JO WNWIUIW papuaulul038J OWH saouajuag 8 eyep A3e4n33e pue uogea2o QE splroid quarum ejep xy ejuassa YOO Mind lew as ts overv Requiremen Illustration 60 map 106 Berner Fachhochschule ule f r chu Technik und Informatik Schweiz gt OCNWEIZ EN lt OM INVENTIS nventis Ips Guiwin ppExec exe In Train Positioning System File About Select Track Seat Number 103 100 Quick Start Guide 94KB Application Fire event markers ain stopped berf hrung gross Wylerfeld Tunnel Grauholz S d Tunnel Grauholz Nord Bhf Hindelbank Bhf Lyssach Bhf Burgdorf Tunnel Burgdorf S d Tunnel Burgdorf Nord L3 GPS input COM3 Event marker input o Accelerometer input b Merger A Dispenser 1 3 Aligner Serial emitter COMS A Keeper Faulty Could not open serial port COM3 Working CEP Faulty No MT device was found Che Working CEP 14271 187963 Ready Timeout Ready Timeout 13 39 30 Ready Timeout 13 39 30 Ready Timeout 13 37 01 13 39
121. stumbler software Network Stumbler merge 2 ns1 Ede Edit View Options Window Help WEP Type SSID Vendor AP A ere Lucent Orinoco AP ucent WaveLAN AP s Airport Arena Apartment Apple Network 0Ba6o9 Mignot Base Station Apple Network 1f54b7 Apple Network 116538 omdwian amp 4 amp Angela s Airport A Illustration 1 Netstumbler in Action 4 2 1 Bern S Bahn Measurements on these older trains showed many access points not only in stations but also while moving 4 2 2 Zurich S Bahn In the cars of the Zurich S Bahn the WLAN reception was good continuously some Access Points were showing up usually between 2 and 20 4 2 3 Intercity Zurich Bern Near stations and when driving through populated areas there were always more than one Access Point available In open areas only rarely an Access Point is visible 16 On using WiFi Swisscom operates public non free Access Points in many larger stations including Bern Aarau and Zurich they are receivable from within the train even when driving trough a station at high speed eg in Aarau The cars have their own Access Points to provide the passengers with payable Internet access These Access Points must get marked and stored as non usable for positioning purposes There should also be a general plausibility check for positions when doing positioning with Access Points as they may change position
122. tarts the graphical user interface via another executable file as he or she sees necessity for 26 GUI stop Terminating the user interface does not stop the system s engine executable 27 Engine stop The user stops the system by terminating the engine executable s process 3 2 Functions 3 2 1 Using WiFi as a position provider 28 WiFi scan The system shall scan for surrounding WiFi access points 29 WiFi lookup The system shall look up the found access points in a local database with positions of known Access points If matches are found the current position of the system shall be estimated by using simple mathematical algorithms 21 Specific requirements 3 2 2 Using GPS as a position provider 30 GPS usage The system shall use a GPS device 3 2 3 Using an IMS as position provider 31 IMU usage The system shall use an inertial measurement unit to continue providing position estimate when all other technologies provide no position estimate 3 2 4 Using a track database for correction 32 Track db usage Before outputting the system shall tie all estimated positions to the nearest point on a given set of tracks 33 Track as The tracks are defined by waypoints waypoints 34 Unique segment Each track has a unique segment number for identification number 35 Segment The set of tracks is narrowed down according to user i
123. tate and output with the accompanying software MT Manager 1 20 1 Accuracy In a static environment in the office I have evaluated the accuracy of the sensor in various GPS availabilities Therefore the sensor was statically placed on the desk while the GPS antenna was brought outside the window The goal was to determine what is the average CEP The EKF Scenario used was Automotive See the manual for an explanation of those scenarios Good GPS reception 38 Analysis and Synthesis The GPS antenna was placed outside the office window MT Manager File View Tools Window Help E ze Zellen Current Directory TFTs E FF prs 53 Ps C Program Files Xsens MT Manager bal phe IA set xad Port Number Baudrate Reset Method Current gt auto Id gt DI pbi gU em HesdngReset C all E Dg Altitude data for MT 00500008 Position data for MT 00500008 This graph may show linearization errors meters above spheroid Status data for MT 005000 bd SelfTest IBIXKF ValllGPS Fix GPS Satellite Status for MI s FH 1 2028 730 N 20 58 730 1 21 28 730 12240 160 12245160 lt a a a Time
124. tem provides position estimates in moving trains It will use various technologies for deriving positioning information The main benefit of this system is to replace an older one that only produced inertial and gyro data in a raw format instead of calculating the current position The system consists of a portable computer an executable software component and the necessary hardware The system will be portable by a single person and be mountable on a trolley 1 3 Definitions acronyms and abbreviations 1 3 1 Definitions Term Description Hyperlink s Engine executable An executable that contains the core functionality of the system It may run independently from other components CBPE Current best position estimate Current best position estimate A mixed position estimate that combines information from the various position providers in the system This estimate is extrapolated if needed to provide an up to date position of the current moment in time Event marker This denotes a defined landmark with a known geographical location In the existing system event markers are fired by the user when traveling past the Introduction landmark and stored in the measurement files They are used for the positioning in the post processing step In the new system they are still used but directly transformed into a positioning information Event marker database A local data
125. the user can see status information of all attached position providers time 21 Position Each position provider provides the following status information a free textual Provider Status description e g 3 Satellites in view a standard deviation for the last known information position the timestamp of the last known position and a status indication from one of the following states e Working The provider has issued a new position in the last 3 seconds e Ready The provider is ready to provide positioning information e Faulty The provider is not able to provide positions because of an error 22 Output status At any time the user can see status information of the currently outputted estimated information position The status information is the same as for a position provider respectively 3 1 3 Hardware Interfaces 20 Specific requirements 23 Comport For the serial RS 232 interface output a USB To RS 232 Adapter shall get used if the Adapter computer does not have a built in interface 57 Virtual Comport The NMEA data is additionally outputted via a virtual com port 3 1 4 Operations System start and shutdown 24 Engine start The user starts the system by starting an engine executable file No other user action is necessarily needed This step must be automatable at startup of the underlying operating system by a batch file or similar means 25 GUI start The user s
126. tion consumer 21 Analysis and Synthesis F J act Emit current position datastore Take position and Current best create NMEA position estimate message This and the subsequent action is done once every second NMEA message datastore Send through Comport RS 232 comport ActivityFinal Illustration 9 Activity diagram Emit current position 1 9 4 The GPS or Place Lab are providing a position estimate I assume that there is a component readily available that reads the comport and parses the NMEA sentences in it s own thread and that the received data is made available through a NET event If such a component is not available it has to be designed and implemented separately Since Place Lab can provide it s position estimates via NMEA we use this interface for simplicity even though it is not ideal from a communication and efficiency point of view At the end the position estimate is made available through an event 22 Analysis and Synthesis act New GPS or PlaceLab position provided A New GPS or Place Lab position available from Business Workflows from Busine s Workflows Create position object PositionEstimate from Business Objects Fire Available event New position estimate available from Business Workflows from Business Workflows Illustration 10 Activity diagram for The GPS or P
127. tion data is calculated This is thus similar to our available sensor the MT9 14 On inertial navigation 3 4 Conclusion From a technical an implementation s point of view the Inertial device is the most suitable because is is the most accurate one and provides custom input of pre calculated position estimates with advanced kalman filtering already solved From a product point of view one of the Xsens products without GPS makes most sense because they are cheaper and smaller However in the thesis there will be not enough time to solve the advanced mathematics involved with this SirfDiRect would also be a solution for the thesis However for a later product this does not provide the needed flexibility since no access to the sensor data is possible As a compromise I recommend the Xsens MTI G It provides both the ease of use that is required for easy integration in the project and the flexibility to later add customized advanced mathematical algorithms 15 On using WiFi 4 On using WiFi 4 1 Preface The goal is to find out how good the reception of WLAN Access Points in trains is Therefore I used two systems trying to scan for surrounding Access points On was a standard laptop and one a mobile phone 4 2 War driving with a laptop in the train A Thinkpad X60 with a built in WiFi Antenna plus an external GPS for reference only was used The actual scanning was done using the Net
128. tion estimate emitting e Default CEP for a fired event marker Since the accuracy of the user input is limited all position estimates from the GUI are tagged with this CEP value e Default CEP for Place Lab data The position estimates from Place Lab are not rated with a CEP so we must assume a value 26 Analysis and Synthesis e Maximum acceleration of the system This may serve for a probability checking feature so it can prevent the data output from having large positional glitches 1 11 Translation between HDOP and CEP The NMEA protocol defines the usage of HDOP as indication of horizontal precision Internally however the system uses CEP This requires a conversion between the two units The HDOP or DOP in general is only defined by vague ratings whereas the CEP is a strict mathematical representation of probabilities In an article on The Code Project Jon Person proposes a formula for conversion under the presumption of a specific accuracy of the GPS device We could use the formula as cep 6 E V dop Formula 1 Conversion between HDOP and CEP where the accuracy of the GPS device is assumed to be 6 meters A test with the GPS Receiver should prove the result 1 12 Error correction of the INS Error parameter calculation The INS is of limited accuracy over time and provides no existing means of updating or initializing the position from outside The only real world reference is the built in GPS S
129. topped could get averaged out 9 1 4 Improve Acceleration measurements The acceleration measurements could be done in true 3D to be independent of the sensor orientation Additionally the measured acceleration could get calibrated using the GPS when available The bias of the accelerometer measurements is quite high 9 2 Extensions to the sensors 9 2 1 Sensors Position providers In addition to the position providers used in this thesis others are also possible Optical stop recognition Using a low cost camera and image processing a complete stop of a train could by detected by the number of pixels in a sequence of images which are changing their color Above a certain ratio the train is considered as stopped Optical landmark recognition Using a fast camera artificial or natural landmarks could be detected and compared to a geo referenced database of the landmarks A library for artificial landmarks is available ARToolkit http www hitl washington edu artoolkit This technology has been used for an indoor positioning system for an Augmented Reality project http studierstube icg tu graz ac at projects mobile SignPost Optical speed measurements Using two cameras or two line cameras and the known distance between the two the traveling speed would be deductible from the time used to travel the distance between the cameras 102 Future RFID RFID s located along the tracks could be detected and
130. tputted position estimates The position estimates do not emulate the real movement of the train along the track Merely the position estimates try to provide the most accurate guess of the real location at any time For estimating the position the effect of delay caused by the traveling speed and computation duration is neglected Hardware The used laptop features an internals WiFi card that is accessible using the native Windows API As GPS sensor the EVK 5H Evaluation kit from ublox is available As INS the MTI G from Xsens is available 2 6 Apportioning of requirements In later versions the following requirements could be additionally met e The processing of position estimates uses advanced mathematical algorithms as for example the Kalman filter and the Bayes estimator e Additional inputs interfaces may be supported 14 Overall description 15 Specific requirements 3 Specific requirements ID Name Description Prio 3 1 External interface requirements 3 1 1 System Interfaces 1 NMEA Protocol The well known NMEA 0813 protocol is used for outputting data from the system 2 NMEA Update Each Sentence is issued every second 3 NMEA serial The standard NMEA serial configuration is supported which is 4800 b s bit per second configuration rate with 8 bits of data no parity and one stop bit 4 NMEA speed Higher baud rates are supported 9800 b s and 1
131. tware fed into Google Earth using EarthBridge shown as thick green line e AKML file of the track data of the track segment 231 starting in Bern Casinoplatz and ending in Worb shown as thin white line e The output of the Driving Directions feature in Google Earth when driving from Bern to Spiez shown thick as violet line The simulation evaluates the various difficulties for the algorithm used At the starting point at the Casinoplatz the drive track circulates around the starting point of the track It is clearly visible how the drive track gets tied to the extension of the track Datei Bearbeiten Ansicht Tools Hinzuf gen Hilfe u E Jaancienm i jme n Pur a Image 2009 Geozen Zeiger Lat 46 947074 Lon 7 447409 87 Illustration 41 At the Casinoplatz 68 Implementation When the track database has many close waypoints the tyeing is very well as for example visible at the Thunplatz Datei Bearbeiten Ansicht Tools Hinzuf gen Hilfe 69 Implementation Also at large correction distances the algorithm works well as the example from the Ostring shows The car drove away from the track to the highway but the tied position remained on the track all the time When the track distance growed fast the tied points made jumps two times Datei Bearbeiten Ansicht Tools Hinzuf gen Hilfe Bao a inccr E y i20 ee
132. using of the WiFi technology might be optional 19 On using GPS 6 On using GPS 6 1 Preface I have tested the GPS reception in trains using a NaviLock GPS receiver with a high sensitivity of 160dB 6 2 Measurements The measurements were done using the same Hardware as for the WiFi test drive Zurich S Bahn In the car of the Zurich S Bahn I experienced very good GPS reception with 7 to 8 satellites used The speed of the train was Illustration 4 Test drive for GPS usability in trains i around 70 km h max Intercity Zurch Bern In the car of the Intercity from Zurich to Bern the reception of the GPS was varying In the Zurich Main Station there were 5 to 6 satellites used While moving slowly and the sky was open up to 8 satellites were used At traveling with about 100 km h and open sky 3 to 5 Satellites were used When the train moves slower reception is generally better In tunnels of course no fix was available When exiting a tunnel it lasts about 30 seconds before the first fix again After a forced cold start in the moving train at around 100 km h in the open field the receiver did not recover for the rest of the drive at least 30 minutes 6 3 Evaluation of Hardware Several GPS receivers are available on the market I have evaluated some 6 3 1 UBLOX ANTARIS GPS Positioning Engine This is a stand alone GPS receiver build as an evaluation Kit with external Antenna and an RS
133. utputProvider A Tools Methods Toolchainstandard Illustration 50 The Toolchain class The tool chain is built by registering the individual tools with each other In the current class the roo chainstandard the tools are chained as follows build chain merger Register merger Register merger Register merger Register feeder mtigProvider gps keeper register on the keeper for input keeper Register merger attach at output of merger as stub dispenser Register merger if Settings Default UseAligner aligner Register dispenser emitter Register aligner else emitter Register dispenser Illustration 36 shows schematically the implemented Tool chain with it s tools Implementation Position providers Marker Db User manually sets event markers Calculates best estimate Keeps last estimate on shutdown Emits one estimate per second User sets the current DispBnser track segment Aligner Set Segment Track Db Puts position on track Other m Position estimate RS 232 Data Illustration 51 Architecture overview of the implemented Toolchain 77 Implementation 3 16 Configuration The built in mechanism of Visual Studio 2008 has been used to keep the application configurable The main executable and some of the library projects have their own app config file
134. vent markers 1 BhfHelvetiaplatz 2 BhfBem Brunnademstrasse 3 Bhf Bem Eggh lzli Train stopped 4 Bhf Muri b Bem aN 5 Bhf Seidenberg O B Bhf Melchenbuhl Bhf G mligen 8 Bh Hofqut zi Illustration 59 Missing starting railway station for a selected track segment The heading measurements of the MTi G are often very inaccurate This results in wrong driving direction during GPS outages The acceleration measurements are inaccurate This is by the limited accuracy of the sensor hardware itself but there are also possibilities for a better implementation The database is more often accessed as probably necessary This slows down the system The proxy class should get improved The install script is missing Installation of IPS is not done automatically Further improvements in the code First the known issues should get addressed Further the following improvements could be made Improve the integration algorithm by using more accurate timing than the one provided by the DateTime Class This will result in more precise numerical results When merging also extrapolate the current value in case it s time stamp is not of the current time This is not considered in the current solution Better evaluate the heading deviation for GPS and the MTi G sensor This will result in better merged heading information In the aligner tool also merge the heading into the estimate and calculate a new CEP
Download Pdf Manuals
Related Search
Related Contents
HYDROCONTROL - AL-KO 本製品を正しくお使いいただくために、この取扱説明書 Topic ダウンロード - ソニー製品情報 HK1-BG HK1-WF HK1-WR HK1-RD View PDF - e Manual User_Manual IAN 103976 - Lidl Service Website FT - 30 Copyright © All rights reserved.
Failed to retrieve file