# Patent

## Title
Measuring object dimensions using mobile computer

## Abstract

Devices, methods, and software are disclosed for determining dimensions of a physical object using a mobile computer equipped with a motion sensing device. In an illustrative embodiment, the mobile computer can comprise a microprocessor, a memory, a user interface, a motion sensing device, and a dimensioning program executable by the microprocessor. The processor can be in communicative connection with executable instructions for enabling the processor for various steps. One step includes initiating a trajectory tracking mode responsive to receiving a first user interface action. Another step includes tracking the mobile computer's trajectory along a surface of a physical object by storing in the memory a plurality of motion sensing data items outputted by the motion sensing device. Another step includes exiting the trajectory tracking mode responsive to receiving a second user interface action. Another step includes calculating three dimensions of a minimum bounding box corresponding to the physical object.

## Background
CROSS REFERENCE TO RELATED APPLICATIONS
This application claims priority to U.S. Provisional Application No. 61/709,606 filed Oct. 4, 2012 entitled, “Measuring Object Dimensions Using Mobile Computer.” The above application is incorporated herein by reference in its entirety.


FIELD OF THE INVENTION
The present disclosure relates to mobile computers in general and in particular to a mobile computer having a motion sensing device.
BACKGROUND
In several logistics use cases, dimensions of a package or a parcel need to be determined, for example, in order to ascertain that maximum size limits imposed by a carrier have not been exceeded, or to calculate shipping costs based on estimated volumetric weight.
The discussion above is merely provided for general background information and is not intended to be used as an aid in determining the scope of the claimed subject matter.
SUMMARY
Systems are disclosed that in various embodiments include devices, methods, and/or software for determining dimensions of a physical object using a mobile computer. In an illustrative embodiment, the mobile computer can comprise a microprocessor, a memory, a user interface, a motion sensing device, and a dimensioning program executable by the microprocessor.
The processor can be in communicative connection with executable instructions for enabling the processor for various steps. One step includes initiating a trajectory tracking mode responsive to receiving a first user interface action. Another step includes tracking the mobile computer's trajectory along a surface of a physical object by storing in the memory a plurality of motion sensing data items outputted by the motion sensing device. Another step includes exiting the trajectory tracking mode responsive to receiving a second user interface action. Another step includes calculating at least one dimension of the physical object based on the plurality of motion sensing data items.
In some embodiments, the mobile computer running the dimensioning program can be further configured to calculate three dimensions of a minimum perimeter bounding box corresponding to the physical object, a minimum surface bounding box corresponding to the physical object, or a minimum volume bounding box corresponding to the physical object.
In some embodiments, the mobile computer running the dimensioning program can be further configured to construct the minimum bounding box by cycling through all edges Ei connecting two points of a plurality of points defined by the plurality of motion sensing data items; constructing, for each edge Ei, a bounding box having an edge E collinear with the selected edge Ei and at least one corner coinciding with one ends of the selected edge Ei; and selecting, among the constructed bounding boxes, a minimum perimeter bounding box corresponding to the physical object, a minimum surface bounding box corresponding to the physical object, or a minimum volume bounding box corresponding to the physical object.
In some embodiments, the motion sensing device can be provided by at least one accelerometer. Alternatively, the motion sensing device can be provided by at least three accelerometers configured to measure proper acceleration values along at least three mutually-perpendicular directions. Alternatively, the motion sensing device can be provided by a 9-DOF (degree of freedom) motion sensing unit containing a 3-axis accelerometer, a 3-axis magnetometer, and a 3-axis gyroscope.
In some embodiments, motion sensing device can comprise a gyroscope configured to determine orientation of the mobile computer.
In some embodiments, each motion sensing data item of the plurality of motion sensing data items can be stored in memory along with a corresponding timestamp.
This Summary is provided to introduce a selection of concepts in a simplified form that are further described below in the Detailed Description. This Summary is not intended to identify key features or essential features of the claimed subject matter, nor is it intended to be used as an aid in determining the scope of the claimed subject matter. The claimed subject matter is not limited to implementations that solve any or all disadvantages noted in the background.



BRIEF DESCRIPTION OF THE DRAWINGS
The features described herein can be better understood with reference to the drawings described below. The drawings are not necessarily to scale, emphasis instead generally being placed upon illustrating the principles of the invention. In the drawings, like numerals are used to indicate like parts throughout the various views.
FIG. 1 schematically illustrates one embodiment of the dimensioning method described herein.
FIG. 2 depicts a simplified, mixed perspective and diagram view of a system including a mobile computer, in accordance with an illustrative embodiment.
FIG. 3 depicts a schematic block diagram of one embodiment of a mobile computer described herein.
FIG. 4 depicts a diagram of one embodiment of a state machine implemented by the mobile computer running the object dimensioning program described herein.



The drawings are not necessarily to scale, emphasis instead generally being placed upon illustrating the principles of various embodiments. In the drawings, like numerals are used to indicate like parts throughout the various views.
DETAILED DESCRIPTION OF ILLUSTRATIVE EMBODIMENTS
Existing physical object dimensioning methods typically employ specialized equipment, and hence the dimensioning is usually performed at shipping facilities, i.e., after the logistics workflow for a particular parcel has already been initiated. Upon determining the parcel dimensions, the carrier may determine that a parcel is too large and should be returned to the consignor. In another example, the shipping cost determined based on the volumetric weight can exceed a previously estimated shipping cost. These and other issues could have been avoided if the consignor had means to determine the parcel dimensions before initiating the shipment workflow for the parcel (e.g., before delivering the parcel to a shipping facility).
Modern mobile computers are often equipped with at least one motion sensing device, such as an accelerometer and/or a gyroscope, which can be used for determining the spatial position and orientation of the device relative to a known point of origin. Disclosed herein is a simple, fast, and reasonably accurate method of determining dimensions of physical items (including irregularly shaped items) employing a mobile computer equipped with at least one motion sensing device.
A “mobile computer” herein shall refer to a portable programmable device for data processing, including a central processing unit (CPU), a memory, and at least one communication interface. A mobile computer can be provided, e.g., by a personal digital assistant (PDA), a portable data terminal (PDT), or a smart phone.
In one illustrative embodiment of the dimensioning method described herein and schematically shown in FIG. 1, mobile computer 100 can be configured to execute a program for physical object dimensioning for implementing various methods described herein. A user of the mobile computer 100 can position the computer at one corner 102a of the item 110 dimensions of which are to be determined, and initiate the dimensioning operation via a user interface action, for example, by pressing a button or issuing a voice command. The user can then move the mobile computer 100 along the edges 104a-104c of the item, and the mobile computer can track its own motion by recording the inputs from the motion sensing device to produce a series of spatial points representing the path of the computer, including points along the edges 104a-104c and points corresponding to the corners 102a-102d. Having positioned the mobile computer successively at each extremity (e.g., a corner) of the item, the user can then indicate via a user interface action that the dimensioning operation is complete. The order in which the extremities of the object are visited does not matter, as long as all the extremities have been visited.
Upon the user's completion of the measurement process, the mobile computer can examine the trajectory data recorded during the measurement process, and calculate the dimensions of a bounding box using known computational geometry methods.
“Bounding box of a set of N points” herein shall refer to a rectangular parallelepiped within which all the points lie.
In some embodiments, the mobile computer can be configured to construct the minimum perimeter bounding box, i.e., a bounding box having the minimum perimeter among all possible bounding boxes for the given set of points. Alternatively, the mobile computer can be configured to construct the minimum area bounding box, i.e., a bounding box having the minimum surface area among all possible bounding boxes for the given set of points. Alternatively, the mobile computer can be configured to construct the minimum volume bounding box, i.e., a bounding box having the minimum surface area among all possible bounding boxes for the given set of points.
The dimensions of the constructed minimum bounding box can then be compared to the carrier's requirements, and/or can be used to calculate the volumetric weight of the item.
In another use case, a user of mobile computer 100 may need to define a selected one dimension of a physical object, for example, the length of the edge 1104a. The user can position mobile computer 100 at the corner 102a of the item 110 and initiate the dimensioning operation via a user interface action, for example, by pressing a button or issuing a voice command. The user can then move the mobile computer 100 along the edge 104a, and the mobile computer can track its own motion by recording the inputs from the motion sensing device to produce a series of spatial points representing the path of the computer. Having positioned the mobile computer successively at both ends of the edge 104a, the user can then indicate via a user interface action that the dimensioning operation is complete. Upon the user's completion of the measurement process, the mobile computer can examine the trajectory data recorded during the measurement process, and calculate the distance between the first and the last point of the recorded trajectory.
In some embodiments, mobile computer 100 can transmit the stored trajectory to one or more external servers 2000, 3000 over a network. Responsive to receiving the motion sensing data from mobile computer 100, one more external servers 2000, 3000 can construct a minimum bounding box based on the data received and transmit the box dimensions in a response transmitted over the network to mobile computer 100.
FIG. 2 depicts a system 1000 for measuring dimensions of a physical object in accordance with an illustrative embodiment that includes a mobile computer 100, depicted here in perspective view. Mobile computer 100 is depicted as a hand held style mobile computer in the illustrative embodiment of FIG. 2, and may also take the form of a smartphone, a mobile phone, a tablet or netbook computer, a laptop computer, an e-book reader, an indicia scanning terminal, or any of a wide range of other types of digital devices equipped with communication interfaces and motion sensing devices, in various embodiments. In the illustrative embodiment of FIG. 2, mobile computer 100 includes user interface elements including display 1222, pointer mechanism 1224, and keyboard 1226 disposed on a hand held housing 1014. Two of the keys on keyboard 1226 are designated as a dimensioning program start key 1227 and an enter key 1228, though which keys are used for such functions and where they are disposed on mobile computer 100 may be arbitrarily selected and may differ from the illustrative depiction in FIG. 2.
Display 1222 in various embodiments can incorporate a touch panel for navigation and virtual actuator selection in which case a user interface of mobile computer 100 can be provided by display 1222. In another embodiment, a mobile device may be devoid of a display and can be in a gun style form factor. In various embodiments, mobile computer 100 may itself constitute a system for determining dimensions of physical objects, and in various embodiments, mobile computer 100 in combination with one or more external servers 2000, 3000 (depicted in block diagram), which may be connected over a network 2500, may together serve as a system for determining dimensions of physical objects. In the description herein, system 1000 may be described as being enabled or configured for various features, characteristics, or functions; and in various embodiments this may refer to mobile computer 100 alone, or in communication or cooperation with other elements of system 1000, being enabled or configured for those features, characteristics, or functions. Various elements of FIG. 2 are further described below.
FIG. 3 depicts a schematic block diagram of an illustrative embodiment of mobile computer 100. Mobile computer 100 can include at least one processor 1060. One or more processors 1060 may illustratively be or include a central processing unit (CPU), a complex programmable logic device (CPLD), an application-specific integrated circuit (ASIC), a field programmable gate array (FPGA), or any type of circuit capable of processing logic operations, in accordance with various embodiments. Processor 1060 may be in communicative connection with executable instructions for enabling the processor 1060 for various steps, e.g., the steps illustratively depicted in FIG. 4, in accordance with an illustrative embodiment of an object dimensioning method described herein.
Mobile computer 100 can further include one or more memory components 1085 communicatively coupled to processor 1060 via system bus 1500. Memory components 1085 can include at least a first memory component, illustratively such as RAM 1080, that is operatively capable of at least temporarily or transiently storing data, while other memory components may be used in various embodiments. Memory components 1085 can further include a nonvolatile memory such as EPROM 1082, a memory storage device 1084, and any of a variety of other types of memory components, in various embodiments. Memory storage device 1084 may illustratively be or include a flash memory, a hard disc drive, any type of RAM, EPROM, EEPROM, DVD-ROM, CD-ROM, or other type of ROM, optical disc, magnetic disc, magnetic cassette, magnetic tape, or any other type of volatile or non-volatile or removable or non-removable memory or data storage components, in illustrative embodiments.
System bus 1500 can provide for bus arbitration, and can be provided by any of a variety of bus structures such as a memory bus or memory controller, a peripheral bus, or a local bus, using any of a variety of architectures, in various embodiments. For example, this may include a Peripheral Component Interconnect (PCI) or Mezzanine bus, an Industry Standard Architecture (ISA) bus, an Enhanced Industry Standard Architecture (EISA) bus, a Micro Channel Architecture (MCA) bus, a Video Electronics Standards Association (VESA) bus, or other bus architectures, in various embodiments. Mobile computer 100 may include a direct memory access unit (DMA) 1070 for routing image information read out from image sensor 1032 that has been subject to conversion to RAM 1080, in various embodiments. Other embodiments of the system bus architecture and/or direct memory access components providing for efficient data transfer between the image sensor 1032 and RAM 1080 may be encompassed in various embodiments.
Mobile computer 100 may further include at least one motion sensing device 1208. In some embodiments, the motion sensing device can be provided by at least three accelerometers configured to measure proper acceleration values along at least three mutually-perpendicular axes. Alternatively, the motion sensing device can be provided by a 9-DOF (degree of freedom) motion sensing unit containing a 3-axis accelerometer, a 3-axis magnetometer, and 3-axis gyroscope sensors.
Mobile computer 100 may further include an imaging assembly 900 comprising lens assembly 250 and image sensor integrated circuit 1040. Image sensor 1032 may include multiple pixel image sensor array 1033 having pixels arranged in rows and columns of pixels, associated column circuitry 1034 and row circuitry 1035. Associated with the image sensor 1032 may be amplifier circuitry 1036 (amplifier), and an analog to digital converter 1037 which converts image information in the form of analog signals read out of image sensor array 1033 into image information in the form of digital signals. Image sensor 1032 can also have an associated timing and control circuit 1038 for use in controlling e.g., the exposure period of image sensor 1032, gain applied to the amplifier 1036. The noted circuit components 1032, 1036, 1037, and 1038 may be packaged into a common image sensor integrated circuit 1040, in this illustrative embodiment. Image sensor integrated circuit 1040 may incorporate fewer than the noted number of components, in various embodiments.
Mobile computer 100 may further include an illumination subsystem 800 for illumination of target area and projection of an illumination pattern 1260, in various embodiments.
Mobile computer 100 may include various interface circuits for coupling various of the peripheral devices to system address/data bus (system bus) 1500, for communication with processor 1060 also coupled to system bus 1500. Mobile computer 100 may include interface circuit 1028 for coupling image sensor timing and control circuit 1038 to system bus 1500, interface circuit 1102 for coupling electrical power input unit 1202 to system bus 1500, interface circuit 1106 for coupling illumination light source bank control circuit 1206 to system bus 1500, and interface circuit 1108 for coupling motion sensing device 1208 to system bus 1500. Mobile computer 100 may also include a display 1222 coupled to system bus 1500 and in communication with processor 1060, via interface 1122, as well as pointer mechanism 1224 in communication with processor 1060 via interface 1124 connected to system bus 1500. Mobile computer 100 may also include keyboard 1226 coupled to system bus 1500. Keyboard 1226 may be in communication with processor 1060 via interface 1126 connected to system bus 1500.
The object dimensioning steps described herein can be distributed among mobile computer 100, servers 2000 and/or 3000 and one embodiment may be executed entirely by mobile computer 100. In such an embodiment, system 1000 may be regarded as being provided by mobile computer 100.
FIG. 4 illustrates a state diagram of one illustrative embodiment a method 200 of operating a mobile computer 100 for determining dimensions of a physical object.
Upon initialization, the method can transition into the Idle state. Responsive to receiving a user interface action indicating the start of a dimensioning operation, the method can transition into the Trajectory Tracking state.
Responsive to receiving, while being in the Trajectory Tracking state, a message containing motion sensing data from a motion sensing device, the method can transition to the Store MSD state. Upon storing in memory the motion sensing data and the current time, the method can return to the Trajectory Tracking state.
Responsive to receiving, while being in the Trajectory Tracking state, a user interface action indicating the completion of the dimensioning operation, the method can transition into the Calculate Dimensions state. In the Calculate Dimensions state, the method can calculate at least one dimension of the physical object. In some embodiments, the method can calculate at least three dimensions of the physical object along three mutually perpendicular directions based on the plurality of motion sensing data items stored in the memory. In some embodiments, the method can construct a minimum bounding box (e.g., a minimum perimeter bounding box, a minimum surface bounding box, or a minimum volume bounding box). The method can output the calculation result, for example, onto the display 1222.
In a further aspect, the minimum bounding box can be constructed by employing O'Rourke's algorithm cycling through all edges connecting two points of the given set of points, and for each edge Ei constructing a bounding box having an edge E collinear with the selected edge Ei and at least one corner of the box coinciding with one of the ends of the selected edge Ei, and finally, selecting the minimum bounding box (e.g., the minimum perimeter bounding box) among the bounding boxes constructed.
A skilled artisan would appreciate the fact that other methods of constructing a minimum bounding box are within the scope of this disclosure.
A small sample of illustrative devices, systems, apparatuses, or methods that are described herein is as follows:
A1. A mobile computer comprising: a microprocessor; a memory; a user interface; a motion sensing device; a dimensioning program executable by said microprocessor; wherein said mobile computer running said dimensioning program is configured to initiate a trajectory tracking mode responsive to receiving a first user interface action; wherein said mobile computer operating in said trajectory tracking mode is configured to track own trajectory along a surface of a physical object by storing in said memory a plurality of motion sensing data items outputted by said motion sensing device; wherein said mobile computer running said dimensioning program is further configured to exit said trajectory tracking mode responsive to receiving a second user interface action; and wherein said mobile computer running said dimensioning program is further configured to calculate at least one dimension of said physical object based on said plurality of motion sensing data items. A2. The mobile computer of (A1), wherein said mobile computer running said dimensioning program is further configured to calculate three dimensions of at least one of: a minimum perimeter bounding box corresponding to said physical object, a minimum surface bounding box corresponding to said physical object, a minimum volume bounding box corresponding to said physical object. A3. The mobile computer of (A2), wherein said mobile computer running said dimensioning program is further configured to construct said minimum bounding box by cycling through all edges Ei connecting two points of a plurality of points defined by said plurality of motion sensing data items; wherein said mobile computer running said dimensioning program is further configured, for each edge Ei, to construct a bounding box having an edge E collinear with said selected edge Ei, said bounding box further having and at least one corner coinciding with one ends of said selected edge Ei; and wherein said mobile computer running said dimensioning program is further configured to select, among said constructed bounding boxes, one of: a minimum perimeter bounding box corresponding to said physical object, a minimum surface bounding box corresponding to said physical object, a minimum volume bounding box corresponding to said physical object. A4. The mobile computer of (A1), wherein said motion sensing device is provided by at least one accelerometer. A5. The mobile computer of (A1), wherein said motion sensing device is provided by at least three accelerometers configured to measure proper acceleration values along at least three mutually-perpendicular directions. A6. The mobile computer of (A1), wherein said motion sensing device is provided by a 9-DOF (degree of freedom) motion sensing unit containing a 3-axis accelerometer, a 3-axis magnetometer, and a 3-axis gyroscope. A7. The mobile computer of (A1), wherein said motion sensing device comprises a gyroscope configured to determine orientation of said mobile computer. A8. The mobile computer of (A1), wherein each motion sensing data item of said plurality of motion sensing data items is stored in memory along with a corresponding timestamp.
B1. A method of estimating dimensions of a physical object by a mobile computer including a microprocessor, a memory, and a motion sensing device, said method comprising the steps of: said mobile computer initiating a trajectory tracking mode responsive to receiving a first user interface action; said mobile computer operating in said trajectory tracking mode tracking own trajectory along a surface of a physical object by storing in said memory a plurality of motion sensing data items outputted by said motion sensing device; said mobile computer exiting said trajectory tracking mode responsive to receiving a second user interface action; and said mobile computer calculating at least one dimension of said physical object based on said plurality of motion sensing data items. B2. The method of (B1), wherein said step of calculating at least one dimension of said physical object comprises calculating three dimensions of at least one of: a minimum perimeter bounding box corresponding to said physical object, a minimum surface bounding box corresponding to said physical object, a minimum volume bounding box corresponding to said physical object. B3. The method of claim B2, wherein said step of constructing said minimum bounding box comprises: cycling through all edges Ei connecting two points of a plurality of points defined by said plurality of motion sensing data items; for each edge Ei, constructing a bounding box having an edge E collinear with said selected edge Ei, said bounding box further having and at least one corner coinciding with one ends of said selected edge Ei; and selecting, among said constructed bounding boxes, one of: a minimum perimeter bounding box corresponding to said physical object, a minimum surface bounding box corresponding to said physical object, a minimum volume bounding box corresponding to said physical object. B4. The method of (B1), wherein said motion sensing device is provided by at least one accelerometer. B5. The method of (B1), wherein said motion sensing device is provided by at least three accelerometers configured to measure proper acceleration values along at least three mutually-perpendicular directions. B6. The method of (B1), wherein said motion sensing device is provided by a 9-DOF (degree of freedom) motion sensing unit containing a 3-axis accelerometer, a 3-axis magnetometer, and a 3-axis gyroscope. B7. The method of (B1), wherein said motion sensing device comprises a gyroscope configured to determine orientation of said mobile computer. B8. The method of (B1), wherein said step of storing in said memory a plurality of motion sensing data items comprises storing a timestamp corresponding to each motion sensing data item of said a plurality of motion sensing data items.
While the present invention has been described with reference to a number of specific embodiments, it will be understood that the true spirit and scope of the invention should be determined only with respect to claims that can be supported by the present specification. Further, while in numerous cases herein wherein systems and apparatuses and methods are described as having a certain number of elements it will be understood that such systems, apparatuses and methods can be practiced with fewer than or greater than the mentioned certain number of elements. Also, while a number of particular embodiments have been described, it will be understood that features and aspects that have been described with reference to each particular embodiment can be used with each remaining particularly described embodiment.

## Claims

1. A mobile computer comprising:
a microprocessor;
a memory;
a user interface;
a motion sensing device configured to determine spatial position and orientation, the motion sensing device comprising at least one of an accelerometer and/or a gyroscope;
a dimensioning program executable by said microprocessor;
wherein said mobile computer running said dimensioning program is configured to initiate a trajectory tracking mode responsive to receiving a first user interface action;
wherein said mobile computer operating in said trajectory tracking mode is configured to record a trajectory of said mobile computer at least partially around a physical object comprising storing in said memory a plurality of motion sensing data items outputted by said motion sensing device, and said plurality of motion sensing data items defining a series of spatial points that represent the recorded trajectory of said mobile computer at least partially around the physical object;
wherein said mobile computer running said dimensioning program is further configured to exit said trajectory tracking mode responsive to receiving a second user interface action; and
wherein said mobile computer running said dimensioning program is further configured to calculate dimensions of said physical object based on at least some spatial points of said series of spatial points that represent the recorded trajectory of said mobile computer at least partially around the physical object.

2. The mobile computer of claim 1, wherein said mobile computer running said dimensioning program is further configured to calculate three dimensions of at least one of: a minimum perimeter bounding box corresponding to said physical object, a minimum surface bounding box corresponding to said physical object, a minimum volume bounding box corresponding to said physical object.

3. The mobile computer of claim 2, wherein said mobile computer running said dimensioning program is further configured to construct said minimum bounding box by cycling through all edges Ei connecting two spatial points of the series of spatial points defined by said plurality of motion sensing data items;
wherein said mobile computer running said dimensioning program is further configured, for each edge Ei, to construct a bounding box having an edge E collinear with said selected edge Ei, said bounding box further having and at least one corner coinciding with one end of said selected edge E Ei; and
wherein said mobile computer running said dimensioning program is further configured to select, among said constructed bounding boxes, one of: a minimum perimeter bounding box corresponding to said physical object, a minimum surface bounding box corresponding to said physical object, a minimum volume bounding box corresponding to said physical object.

4. The mobile computer of claim 1, wherein said motion sensing device comprises a 3-axis accelerometer.

5. The mobile computer of claim 1, wherein said motion sensing device comprises is provided by at least three accelerometers configured to measure proper acceleration values along at least three mutually-perpendicular directions.

6. The mobile computer of claim 1, wherein said motion sensing device comprises by a 9-DOF (degree of freedom) motion sensing unit containing a 3-axis accelerometer, a 3-axis magnetometer, and a 3-axis gyroscope.

7. The mobile computer of claim 1, wherein said motion sensing device comprises a 3-axis gyroscope configured to determine orientation of said mobile computer.

8. The mobile computer of claim 1, wherein each motion sensing data item of said plurality of motion sensing data items is stored in memory along with a corresponding timestamp.

9. The mobile computer of claim 1, wherein the physical object comprises a package or a parcel.

10. The mobile computer of claim 1, wherein the series of spatial points comprise points along edges of the physical object and/or points corresponding to corners of the physical object.

11. A method of estimating dimensions of a physical object by a mobile computer including a microprocessor, a memory, and a motion sensing device, said method comprising the steps of:
said mobile computer initiating a trajectory tracking mode responsive to receiving a first user interface action;
said mobile computer operating in said trajectory tracking mode recording a trajectory of said mobile computer at least partially around a physical object comprising storing in said memory a plurality of motion sensing data items outputted by said motion sensing device, said motion sensing device comprising at least one of an accelerometer and/or a gyroscope and configured to determine spatial position and orientation, and said plurality of motion sensing data items defining a series of spatial points that represent the recorded trajectory of said mobile computer at least partially around the physical object;
said mobile computer exiting said trajectory tracking mode responsive to receiving a second user interface action; and
said mobile computer calculating dimensions of said physical object based on at least some spatial points of said series of spatial points that represent the recorded trajectory of said mobile computer at least partially around the physical object.

12. The method of claim 11, wherein said step of calculating dimensions of said physical object comprises calculating three dimensions of at least one of: a minimum perimeter bounding box corresponding to said physical object, a minimum surface bounding box corresponding to said physical object, a minimum volume bounding box corresponding to said physical object.

13. The method of claim 11, wherein said step of constructing said minimum bounding box comprises:
cycling through all edges Ei connecting two spatial points of the series of spatial points defined by said plurality of motion sensing data items;
for each edge Ei, constructing a bounding box having an edge E collinear with said selected edge Ei, said bounding box further having and at least one corner coinciding with one end of said selected edge Ei, and
selecting, among said constructed bounding boxes, one of: a minimum perimeter bounding box corresponding to said physical object, a minimum surface bounding box corresponding to said physical object, a minimum volume bounding box corresponding to said physical object.

14. The method of claim 11, wherein said motion sensing device comprises a 3-axis accelerometer.

15. The method of claim 11, wherein said motion sensing device comprises at least three accelerometers configured to measure proper acceleration values along at least three mutually-perpendicular directions.

16. The method of claim 11, wherein said motion sensing device comprises a 9-DOF (degree of freedom) motion sensing unit containing a 3-axis accelerometer, a 3-axis magnetometer, and a 3-axis gyroscope.

17. The method of claim 11, wherein said motion sensing device comprises a 3-axis gyroscope configured to determine orientation of said mobile computer.

18. The method of claim 11, wherein said step of storing in said memory said plurality of motion sensing data items comprises storing a timestamp corresponding to each motion sensing data item of said plurality of motion sensing data items.

19. The method of claim 11, wherein the physical object comprises a package or a parcel.

20. The method of claim 11, wherein the series of spatial points comprise points along edges of the physical object and/or points corresponding to corners of the physical object.