Location

Location, location, location. One of the most important questions to answer in the physical world is "Where is my stuff?" Whether it's the car keys, remote control or product shipment, timely, accurate and relevant position information is vital for effectively operating with physical objects.

PML must therefore define an effective means for specifying location information. Although simple in concept, location is somewhat difficult to define accurately. Position relative to what? With what level of accuracy and resolution? Communication such as "it's on the top shelf," or "the pallet is at the dock" or "the check is in the mail" must be translated unambiguously into the Physical Markup Language.

Location Element

To address these issues, PML defines a loc (location) element. In order to address "location relative to what?", the loc element includes an epc attribute that defines a relative reference frame. In other words, the location of the object is measured relative to the epc object. The loc element nominally includes one, two or three msr elements, which defines location relative to the specified object.

<loc epc= xx.xxxxxxx.xxxxxx.xxxxxxxx >
<msr m=1> float </msr>
<msr m=1> float </msr>
<msr m=1> float </msr>
</loc>

A single msr element specifies the x-axis displacement relative to the epc object, two msr elements the x-axis and y-axis displacements and three msr elements the x, y and z coordinates relative to the specified object, as shown in Figure 2, The msr or measure element specifies the location of a physical object relative to another, which is given by its epc number.

 

The msr elements are ordered so that the first msr element of the loc specification is always relative to the x-axis of the given epc object, the next is relative to the y-axis and the third relative to the z-axis.

 

 

Recursion

The loc element may include another loc element. In this way, a location may be recursively defined. For example, the package may be specified with respect to the pallet and the pallet with respect to the container.

<loc epc= xx.xxxxxxx.xxxxxx.xxxxxxxx >
<msr m=1> float </msr>
<msr m=1> float </msr>
<msr m=1> float </msr>
<loc epc= xx.xxxxxxx.xxxxxx.xxxxxxxx >
<msr m=1> float </msr>
<msr m=1> float </msr>
<msr m=1> float </msr>
<loc epc= xx.xxxxxxx.xxxxxx.xxxxxxxx >
<msr m=1> float </msr>
<msr m=1> float </msr>
<msr m=1> float </msr>
. . .
</loc>
</loc>
</loc>

This definition is allowed in the PML specification, though an alternate, and perhaps more consistent approach, would be to define the position relative to the immediate parent object within a separate PML files. This definition, however, was included since the exact tree - that is the sequence of objects - may need to be defined uniquely for a particular object.

 

 

Global Position

If the epc attribute of the loc element is omitted, the measurements are assumed to be with respect to a world coordinate frame.

We define a world reference in a same manner as the the Global Positioning System (GPS). The GPS coordinate system is an earth-centered Cartesian system. The coordinates produced by GPS are geocentric coordinates based on the center of the earth with X, Y and Z components. Also known as Earth Centerd, Earth Fixed Cartesian (ECEF) coordinates, the Z axis is defined from the center of the earth through the North Pole, the X axis from the center through the Prime meridian and the Y axis passes through the equator perpendicular to the XZ plane, as shown in Figure 3, The Physical Markup Language uses the same simple earth-centered, geocentric coordinate system as that employed by the Global Positioning System (GPS). The exact definitions of the North Pole, Prime Meridian and earth's center are beyond the scope of this discussion, but may be found in the literature [ref].

The X, Y and Z components of the PML geocentric coordinates are measured in meters (according to the measurement specification). This is also consistent with the GPS definition.

 

Although the PML definition of world coordinates is not most convenient for direct use in navigation and object location, it is easily converted in any number of common systems, such as latitude, longitude and altitude; UniversalTransverse Mercator (UTM); Military Grid Reference System (MGRS); World Geographic Reference System (GEOREF) and local system including the Universal Polar Stereographic (UPS) and National Grid Systems.

<loc>
<msr label= "X" m=1> float </msr>
<msr label= "Y" m=1> float </msr>
<msr label= "Z" m=1> float </msr>
</loc>

 

Transform

 

Although the location definition presented above provides a good mechanism for describing an approximate position relative to another object, there are times when additional information is required.

This version of PML introduces another mechanism for represent location. A trans element is introduced, which specifies a spatial transformation relative to a known coordinate frame. Thus we can specify the position and orientation of one object relative to another.

The trans element contains a 3x4 matrix of floating point numbers composed of a 3x3 rotation matrix and a 3x1 translation vector, defined in the following way.

 

where Rij are the indices of the rotation matrix and Ti are the indices of the translation vector (which are defined in the same way as the coordinates of the loc element).

The trans element contains a pair of msr elements indicating the units (which are well-defined here), as well as the accuracy of the elements of rotation matrix and translation vector, respectively.

<trans label=string epc= xx.xxxxxxx.xxxxxx.xxxxxxxx >
<msr q=1> </msr>
<msr m=1> </msr>
float float float float,
float float float float,
float float float float
</trans>

 


Specification: Location

<loc epc= xx.xxxxxxx.xxxxxx.xxxxxxxx >
<msr m=1> float </msr>
<msr m=1> float </msr>
<msr m=1> float </msr>
<loc> . . . </loc>
</loc>
 
<loc>
<msr m=1> float </msr> (Geocentric X)
<msr m=1> float </msr> (Geocentric Y)
<msr m=1> float </msr> (Geocentric Z)
<loc> . . . </loc>
</loc>

 


Specification: Transform

<trans label=string epc=xx.xxxxxxx.xxxxxx.xxxxxxxx >
<msr q=1> </msr>
<msr m=1> </msr>
float float float float,
float float float float,
float float float float
</trans>