Sensor calibration target for the sensor calibration of at least one sensor relative to a common reference frame

The sensor calibration target and method facilitate accurate mapping of sensor data in dynamic environments by using a calibration target to determine camera positions in a common reference frame, addressing the inefficiencies and errors in manual tracking and calibration.

DE102018120461B4Active Publication Date: 2026-04-02SYMBOL TECHNOLOGIES LLC
View PDF 1 Cites 0 Cited by

Patent Information

Authority / Receiving Office
DE · DE
Patent Type
Patents
Current Assignee / Owner
Filing Date
2018-08-22
Publication Date
2026-04-02

AI Technical Summary

Technical Problem

Tracking the status of objects in complex and dynamically changing environments, such as retail facilities, is time-consuming and prone to errors when performed by human staff, and determining the locations corresponding to captured images requires cumbersome calibration procedures.

Method used

A sensor calibration target and method involving a calibration target with orthogonal depth, height, and displacement dimensions, using a camera-mounted mobile automation device to acquire images, decode characters, generate transformations, and determine camera positions in a common reference frame to map subsequent images accurately.

Benefits of technology

Enables efficient and accurate mapping of sensor data onto a common reference frame, reducing errors and streamlining the tracking of objects in dynamic environments.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 00000000_0000_ABST
    Figure 00000000_0000_ABST
Patent Text Reader

Abstract

Sensor calibration target (500) for sensor calibration of at least one sensor relative to a common reference frame, wherein the sensor calibration target (500) has: a first surface (502) at a first predefined depth, which has a first set of characters (520-1) at respective first heights and each has first predefined displacements, wherein each of the first characters (520-1) encodes a corresponding first height; and a second surface (504) at a second predefined depth, which has a second set of characters (520-2) at respective second heights and each has second predefined offsets, wherein each of the second characters (520-2) encodes a corresponding second height; wherein the sensor calibration target (500) is associated with a position of a mobile automation device (103) in the common reference frame, wherein the mobile automation device (103) comprises the at least one sensor, wherein the at least one sensor is configured to determine the position of the mobile automation device (103) based on at least one of a position and orientation of the at least one sensor relative to the first and second characters.
Need to check novelty before this filing date? Find Prior Art

Description

BACKGROUND

[0001] Environments where objects are managed, such as retail facilities, can be complex and constantly changing. Tracking the status of objects in such environments can therefore be time-consuming and error-prone when performed by human staff. A mobile device can be used to collect data for use in tracking (e.g., to identify products that are out of stock, misplaced, and so on). Such a device can be equipped with a camera to capture images of the environment. However, determining which locations in the environment correspond to the images captured by the device can require time-consuming calibration procedures.

[0002] US 2015 / 0279035A1 describes a system in which the first and second angles are measured from a nominal camera centerline to the respective first and second positions. The first position is determined by the camera locating a first center point in a first plate. The second position is determined by the camera locating a second center point in a second plate. The first and second angles, as well as the first and second horizontal distances of the camera from the first and second plates, respectively, are used to obtain a specific vertical distance and angle. The determined vertical distance measures the distance from the second center point to a point defined by the intersection of a first line through the second plate and a second line parallel to the ground and ending at the camera.The determined angle measures an angle between the third line, which originates from the camera in the nominal position, and the second line. BRIEF DESCRIPTION OF THE DIFFERENT VIEWS OF THE FIGURES

[0003] The accompanying figures, in which the same reference numerals denote identical or functionally similar elements in the individual views, together with the following detailed description, form part of the disclosure and serve to further illustrate embodiments of concepts comprising the claimed invention and to explain various principles and advantages of these embodiments. Fig. Figure 1 is a diagram of a mobile automation system. Fig. Figure 2A shows a mobile automation device in the system of Fig. 1. Fig. 2B is a block diagram of certain internal hardware components of the mobile automation device in the system of Fig. 1. Fig. Figure 3 is a block diagram of certain internal components of the mobile automation device of the system. Fig. 1. Fig. Figure 4 is a flowchart of a sensor calibration procedure on the system's server. Fig. 1. Fig. 5A-5C shows a calibration target that is used when performing the procedure of Fig. 4 is used. Fig. Figure 6 is a detailed view of part of a second surface of the calibration target. Fig. 5. Fig. Figure 7 is a detailed view of part of a first surface of the calibration target of Fig. 5. Fig. Figure 8 shows the execution of steps 420-435 of the procedure of Fig. 4. Fig. Figure 9 shows the execution of step 440 of the procedure of Fig. 4. Fig. Figures 10A-10B show the execution of step 450 of the procedure of Fig. 4. Fig. 11A is a flowchart of a procedure for performing step 455 of the procedure of Fig. 4. Fig. 11B is a flowchart of a procedure for performing step 455 of the procedure of Fig. 4, according to another embodiment. Fig. 12 shows the implementation of the procedure of Fig. 11B.

[0004] Experienced professionals will recognize that elements in the figures are presented for the sake of simplicity and clarity and are not necessarily drawn to scale. For example, the dimensions of some elements in the figures may be exaggerated relative to other elements to improve the understanding of embodiments of the present invention.

[0005] The apparatus and the process steps have been represented, where appropriate, by conventional symbols in the drawings, which show only those specific details relevant to understanding the embodiments of the present invention, so as not to obscure the disclosure with details that are readily apparent to those skilled in the field who refer to the present description. DETAILED DESCRIPTION

[0006] According to the invention, a sensor calibration target with the features of main claim 1 is provided. Exemplary embodiments are described in the dependent claims and the following description.

[0007] The examples shown here relate to a method of sensor calibration relative to a common reference frame (reference frame) with orthogonal depth, height, and displacement dimensions by means of image control. The method involves acquiring an image of a calibration target, associated with the location of a mobile automation device in the common reference frame, using a camera mounted on the mobile automation device. The calibration target comprises: a first surface at a first predefined depth, bearing a first set of characters at respective first heights and each having first predefined displacements, where each of the first characters encodes the corresponding first height;and a second surface at a second predefined depth, which carries a second set of characters at respective second heights and has corresponding second predefined shifts, each of the second characters encoding the corresponding second height. The method further comprises the decoding of the first and second heights from the characters of the first and second sets by the image controller; the generation, by the image controller, of a first transformation between the image reference frame and a first layer at the first predefined depth in the common reference frame, and a second transformation between the image reference frame and a second layer at the second predefined depth in the common reference frame;Apply, through image control, the first and second transformations to each of a plurality of calibration pixels selected from the image to generate, for each calibration pixel, a position pair containing a first calibration position on the first plane and a second calibration position on the second plane; determine, through image control, a camera position in the common reference frame from an intersection of calibration lines defined by the position pairs; and store the camera position in conjunction with the location to map subsequent images acquired at subsequent locations of mobile automation devices onto the common reference frame.

[0008] Further examples shown here relate to an image control for calibrating a sensor relative to a common reference frame with orthogonal depth, height, and displacement dimensions, wherein the image control comprises: a data acquisition control configured to receive, via a camera mounted on a mobile automation device, an image of a calibration target associated with a position of the mobile automation device in the common reference frame; wherein the calibration target comprises: a first surface at a first predefined depth bearing a first set of characters at respective first heights, each with first predefined displacements, each of the first characters encoding the corresponding first height;and a second surface at a second predefined depth, carrying a second set of characters at respective second heights and having corresponding second predefined offsets, each of the second characters encoding the corresponding second height; a decoder configured to decode the first and second heights from the characters of the first and second sets; a transformation generator configured to generate a first transformation between an image reference frame and a first layer at the first predefined depth in the common reference frame, and a second transformation between the image reference frame and a second layer at the second predefined depth in the common reference frame;and a calibrator configured to: apply the first and second transformations to each of several calibration pixels selected from the image to generate, for each calibration pixel, a position pair containing a first calibration position on the first plane and a second calibration position on the second plane; determine a camera position in the common reference frame from an intersection of calibration lines defined by the position pairs; and store the camera position in association with the location to map subsequent images taken at subsequent locations by mobile automation devices onto the common reference frame.

[0009] Fig. Figure 1 shows a mobile automation system 100 according to the teachings of this revelation. The system 100 comprises a control server 101 (here also simply referred to as server 101) which communicates with at least one mobile automation device 103 (here also simply referred to as device 103) and at least one client computing device 105 via communication links 107, which in this example are represented as wireless links. In this example, the links 107 are provided via a wireless local area network (WLAN) provided in a retail environment via one or more access points. In other examples, the server 101, the client device 105, or both are located outside the retail environment, and the links 107 therefore include supra-regional networks such as the internet, cellular networks, and the like.As described in more detail below, system 100 also includes a port 108 for device 103. Port 108 communicates with server 101 via a connection 109, which in this example is a wired connection (e.g., an Ethernet connection). In other examples, however, connection 109 is a wireless connection. When connected to port 108, mobile automation device 103 can communicate with port 108 to communicate with server 101 via connection 109 instead of, or in addition to, connection 107. Port 108 can also supply power (e.g., electricity) to device 103.

[0010] The client computing device 105 is in Fig. 1 is represented as a mobile computing device, such as a tablet, a smartphone, or the like. In other examples, the client device 105 comprises computing devices such as a desktop computer, a laptop computer, another server, a compact workstation, a monitor, or another suitable device. The system 100 can have a variety of client devices 105, each communicating with the server 101 via appropriate connections 107.

[0011] In the illustrated example, System 100 is used in a retail environment with a variety of shelf modules 110-1, 110-2, 110-3, etc. (collectively referred to as shelves 110 and generally as shelf 110 – this nomenclature is also used for other elements described here). Each shelf module 110 supports a variety of products 112. Each shelf module 110 includes a shelf back panel 116-1, 116-2, 116-3 and a support surface (e.g., support surface 117-3 as shown in [reference missing]). Fig. (1 shown), extending from the shelf back panel 116 to a shelf edge 118-1, 118-2, 118-3. In some examples, the shelf modules 110 may also include other supporting structures such as hooks, hangers, and the like. The shelf modules 110 are typically arranged in a multitude of aisles, each comprising a multitude of modules arranged in a row. In such arrangements, the shelf edges 118 face into the aisles through which customers can move in the retail environment as well as the fixture 103.

[0012] More specifically, the device 103 is deployed in a retail environment and communicates with the server 101 (e.g., via the link 107) to navigate autonomously or semi-autonomously over the length 119 of at least a portion of the shelves 110. The device 103 is equipped with a variety of navigation and data acquisition sensors 104, such as image sensors (e.g., one or more digital cameras) and depth sensors (e.g., one or more light detection and ranging (LIDAR) sensors, one or more depth cameras with structured light patterns, e.g., infrared light), and is further configured to use the sensors to acquire shelf data. As explained in more detail below, the device 103 is configured to use the acquired data to generate and store calibration parameters for the aforementioned data acquisition sensors and to define the positions and orientations of the sensors relative to the device 103.

[0013] Server 101 includes a special controller, such as a processor 120, which is specifically designed to collect data from the mobile automation device 103 for storage in a memory 122 (e.g., in a storage location 132 defined in memory 122). In some examples, Server 101 is also configured to perform various post-processing operations on the collected data, such as determining product status data (e.g., out-of-stock or low-stock products) and sending status messages to the mobile device 105 in response to the determination of product status data.

[0014] The processor 120 is connected to a non-volatile, computer-readable storage medium, such as the memory 122 mentioned above, on which computer-readable instructions for performing the post-processing activities mentioned above are stored. The memory 122 contains a combination of volatile (e.g., random access memory or RAM) and non-volatile memory (e.g., read-only memory or ROM, electrically erasable programmable read-only memory or EEPROM, flash memory). The processor 120 and the memory 122 each comprise one or more integrated circuits. In one embodiment, the processor 120 further comprises one or more central processing units (CPUs) and / or graphics processing units (GPUs).In one embodiment, a specially designed integrated circuit, such as a Field Programmable Gate Array (FPGA), is configured to perform the aforementioned activities either alternatively or additionally to the controller / processor 120 and memory 122. As understood by those skilled in the art, the client device 105 also includes one or more controllers or processors and / or FPGAs communicating with the controller 120, which are specifically designed to process (e.g., display) notifications received from the server 101.

[0015] Server 101 also has a communication interface 124, which is connected to processor 120. Communication interface 124 includes suitable hardware (e.g., transmitters, receivers, network interface controllers, and the like) that enables server 101 to communicate with other computing devices—in particular, device 103, client device 105, and port 108—via connections 107 and 109. Connections 107 and 109 can be direct connections or connections that traverse one or more networks, including local and regional networks. The specific components of communication interface 124 are selected based on the type of network or other connections over which server 101 necessarily communicates.In the present example, as already mentioned, a wireless local area network is implemented within the retail environment through the use of one or more wireless access points. The connections 107 therefore comprise one or both wireless connections between the device 103 and the mobile device 105 and the aforementioned access points, as well as a wired connection (e.g., an Ethernet-based connection) between the server 101 and the access point.

[0016] Memory 122 stores a variety of applications, each containing a variety of computer-readable instructions that can be executed by Processor 120. The execution of these instructions by Processor 120 configures Server 101 to perform various actions described herein. The applications stored in Memory 122 include a Control Application 128, which may also be implemented as a sequence of logically distinct applications. Generally, Processor 120 is configured, through the execution of Control Application 128 or its subcomponents, to implement functions such as the post-processing of data acquired by Device 103 described above. Processor 120, as configured by the execution of Control Application 128, may also be referred to herein as the Controller 120.As will now be shown, part or all of the functionality of the control 120 described below can also be realized by pre-configured hardware elements (e.g. one or more Application-Specific Integrated Circuits (ASICs)) and not by the execution of the control application 128 by the processor 120.

[0017] Regarding the Fig. 2A and Fig. Figure 2B describes the mobile automation device 103 in more detail. The device 103 has a chassis 200 with a locomotive mechanism 202 (e.g., one or more electric motors that drive wheels, tracks, or the like). The device 103 also includes a sensor mast 204 supported on the chassis 200, which in this example extends upwards (e.g., essentially vertically) from the chassis 200. The mast 204 supports the aforementioned sensors 104. The sensors 104 include, in particular, at least one image sensor 208, e.g., a digital camera, and at least one depth sensor 212, e.g., a 3D digital camera. The device 103 also includes additional depth sensors, such as LiDAR sensors 216. In other examples, the device 103 includes additional sensors, such as one or more RFID readers, temperature sensors, and the like.

[0018] In the present example, the mast 204 carries seven digital cameras 208-1 to 208-7 and two LiDAR sensors 216-1 and 216-2. The mast 204 also carries a plurality of lighting arrangements 218, configured to illuminate the fields of view of the respective cameras 208. That is, lighting arrangement 218-1 illuminates the field of view of camera 208-1, and so on. The sensors 208 and 216 are oriented on the mast 204 such that the fields of view of each sensor face a shelf 110, along the length of which the device 103 moves. As will be explained in more detail below, the device 103 is configured to track a position of the device 103 (e.g., a position of the center of the chassis 200) within a common reference frame previously established in the sales facility. However, the physical arrangement of sensors 208 and 216 relative to the center of chassis 200 may not be known.In order to enable the mapping of the data acquired via sensors 208 and 216 onto the common reference frame, the device 103 is configured to determine calibration parameters that define the above-mentioned physical arrangement of sensors 208 and 216.

[0019] For this purpose, the mobile automation device 103 has a special control system, such as a processor 220, as shown in Fig. 2B is shown, which is connected to a non-volatile, computer-readable storage medium, such as a memory 222. The memory 222 comprises a combination of volatile (e.g., Random Access Memory or RAM) and non-volatile memory (e.g., Read Only Memory or ROM, Electrically Erasable Programmable Read Only Memory or EEPROM, Flash Memory). The processor 220 and the memory 222 each have one or more integrated circuits. The memory 222 stores computer-readable instructions for execution by the processor 220. In particular, the memory 222 stores a control application 228 which, when executed by the processor 220, configures the processor 220 to perform various functions related to the navigation of the device 103 (e.g., by controlling the locomotive mechanism 202) and the determination of the calibration parameters mentioned above.Application 228 can also be implemented as a sequence of different applications in other examples.

[0020] The processor 220, when configured by the execution of application 228, can also be referred to as controller 220 or, in the context of determining the calibration parameters from the acquired data, as image controller 220. The person skilled in the art can deduce that the functionality implemented by the processor 220 via the execution of application 228 can also be realized in other embodiments by one or more specially designed hardware and firmware components, such as FPGAs, ASICs, and the like.

[0021] The memory 222 can also store an archive 232, which may include, for example, a map of the environment in which the device 103 operates, for use during the execution of the application 228. The device 103 can be communicated via a communication interface 224 via the in Fig. The connection 107 shown in Figure 1 allows the device 103 to communicate with the server 101, for example, to receive instructions for initiating data acquisition processes. The communication interface 224 also allows the device 103 to communicate with the server 101 via port 108 and connection 109.

[0022] Now to Fig. Before the operation of application 228 for determining the calibration parameters for sensors 208 and 216 is described, some components of application 228 will be described in more detail. As those skilled in the art will realize, in other examples the components of application 228 may be divided into different applications or combined into other sets of components. Some or all of the components described in Fig. The three components shown can also be implemented as dedicated hardware components, such as one or more ASICs or FPGAs.

[0023] Application 228 includes a data acquisition controller 300, which controls sensors 208 and 216 for data acquisition (e.g., digital images and depth measurements). Application 228 also includes a navigator 304, which is configured to generate navigation data, such as paths through the retail environment, and to control the locomotive mechanism 202 to travel along these paths. The navigator 304 is also configured to track the position of the device 103 within a common reference frame defined in the retail environment, such as a three-dimensional coordinate system, which will be explained below.

[0024] Application 228 also includes a decoder 308 configured to receive acquired data from the data acquisition controller 300 and an associated position from the navigator 304 (i.e., the position of the device 103 at the time the data received from the controller 300 is acquired). The decoder 308 is configured to identify and decode various characters in the acquired data, as explained in more detail below. Application 228 also includes a transformer 312 configured to generate transformations between the aforementioned common reference frame and an image reference frame in the form of pixel coordinates in the images captured by the cameras 208.Furthermore, the application 228 includes a calibrator 316 configured to determine calibration parameters that define the position and orientation of sensors 208 and 216 relative to the aforementioned position of device 103. The calibration parameters can be stored, for example, in archive 232.

[0025] The functionality of the control application 228 is now demonstrated using the information in Fig. The three components shown are described in more detail. Fig. Figure 4 shows a method 400 for determining the calibration parameters for sensors 208 and 216. Method 400 is described in conjunction with its implementation by device 103, as described above.

[0026] In step 405, the device 103, in particular the data acquisition controller 300, is configured to control one of the cameras 208 to capture an image of a calibration target. The data acquisition controller 300 can, for example, send a command to camera 208 (e.g., camera 208-1) to capture an image and simultaneously send a command to the corresponding illumination arrangement 218 (e.g., arrangement 218-1) to illuminate the field of view of camera 208. The image is linked to a position of the device 103. In other words, simultaneously with the image capture, the navigator 304 is configured to determine the position of the device 103 in the aforementioned common reference frame, for example, in the form of a set of coordinates and a direction vector. The position can be embedded in the image (e.g. as metadata) or stored in memory 222 in conjunction with an identifier of the image.Procedure 400 can be initiated in step 405 in response to a variety of conditions. For example, in some embodiments, a calibration target, which will be explained in more detail below, is placed next to port 108, and the mobile automation device 103 is configured to execute step 405 when it interacts with port 108. In other embodiments, the mobile automation device 103 is configured to trigger the execution of procedure 400 according to a schedule stored in memory 222 or received from server 101.In further embodiments, the mobile automation device 103 is configured to perform step 405 in response to a one-time calibration instruction received from the server 101, the mobile device 105, or an operator via a control panel (not shown) on the mobile automation device 103 itself. In further embodiments, the navigator 304 can initiate a calibration in response to the detection of an impact, such as a collision with an object that may have displaced the position of the cameras 208 or LiDAR sensors 216.

[0027] As will be evident from the following description, the execution of method 400 relates to a single camera 208. However, the data acquisition controller 300 can be configured to trigger a plurality of steps of method 400 essentially simultaneously. For example, the data acquisition controller 300 can be configured to instruct a plurality of cameras 208 to acquire corresponding images of the calibration target essentially simultaneously. In some embodiments, the illumination arrangements 218 of adjacent cameras 208 may interfere with the acquisition of images by the cameras 208. For example, with reference to Fig. 2A, the lighting arrangement 218-1, which is configured to illuminate the field of view of camera 208-1, can also partially illuminate the field of view of camera 208-2. Such illumination of adjacent cameras may be undesirable, for example, by introducing artifacts into the recorded images.

[0028] The data acquisition controller 300 can therefore be configured to control separate subsets of the cameras 208 and lighting arrangements 218 to acquire images, thus reducing or eliminating such artifacts. In particular, in the present example, the data acquisition controller 300 is configured to control the cameras 208-1, 208-3, 208-5, and 208-7 (together with the corresponding lighting arrangements 218-1, 218-3, 218-5, and 218-7) to simultaneously acquire the corresponding images. After the first subset of cameras 208 has taken the pictures, as mentioned above, the data acquisition controller 300 is configured to control the remaining cameras and lighting arrangements (cameras 208-2, 208-4 and 208-6 and lighting arrangements 218-2, 218-4 and 218-6) to essentially take the corresponding pictures simultaneously.The cameras 208 and lighting arrangements 218 can be controlled in other suitable subgroups depending on the physical arrangement of the lighting arrangements 218 on the mast 204.

[0029] Back to Fig. 4. Whether one or more images are acquired in step 405, the remainder of procedure 400 is performed for a single image and thus for a single camera 208. The other images, if additional images were acquired, can be processed either in parallel with the execution described below or sequentially, according to further iterations of procedure 400. As explained in more detail below, the data acquisition controller 300 can also be configured in step 405 to obtain a multitude of depth measurements via the LIDAR sensor 216 simultaneously with the acquisition of the image via the camera 208.

[0030] Before proceeding with the description of procedure 400, the calibration target mentioned above will be discussed in relation to the Fig. 5A, Fig. 5B and Fig. 5C as well Fig. 6 and Fig. 7 described in more detail. Referring to Fig. 5A, the calibration target 500, has a first surface 502 and a second surface 504. The first and second surfaces can be positioned over any suitable object, such as paper, cardboard, or the like, attached to a frame (not shown) supported by a base 508. The first surface 502 is located at a first predefined depth, while the second surface is located at a second predefined depth, which differs from the first predefined depth.

[0031] As previously mentioned, in the retail environment a common reference frame is provided in the form of a three-dimensional coordinate system with an origin at a predetermined location. The origin of the common reference frame is in Fig. Figure 5A illustrates this: The Z-axis represents depth, the X-axis is referred to here as displacement, and the Y-axis as height. That is, when referring to an object at a specific height, the object's position along the Y-axis is shown. Furthermore, when referring to an object at a specific height, this indicates a dimension of the object along the Y-axis. A dimension of an object in the displacement direction (i.e., the X-axis) can also be referred to as its width.

[0032] The common frame of reference is in Fig. 5A is represented as origin 512 at the base of the second surface 504 and in the middle along the width of the second surface 504. In other words, the calibration target 500 is placed at the aforementioned predetermined location, which defines the origin of the coordinate system set up in the retail environment. The calibration target 500 is movable in some embodiments and is therefore not always located at the point shown. Fig. 5A shown in relation to origin 512. In examples where the calibration target 500 is not located at origin 512, as in Fig. As shown in Figure 5A, the calibration target 500 provides a local reference frame based on the in Fig. The position of origin 512 shown in Figure 5A is based on this, and it is assumed that before the procedure 400 is carried out, the position of the calibration target 500 in the common reference frame is known (i.e., that a known transformation exists between the local reference frame and the common reference frame). For simplicity, the following description assumes that the calibration target 500 is located at origin 512 (i.e., that the local reference frame and the common reference frame are the same).

[0033] In this example, the first and second surfaces 500 and 504 are parallel to the XY plane, meaning that every point on the first surface 502 lies at the same depth and every point on the second surface 504 lies at the same depth. These depths are separated by a known distance 516. For example, the first and second surfaces 500 and 504 can be separated by a distance of approximately 250 mm. The dimensions of each surface 502, in terms of displacement and height, are also known and stored in memory 222 along with the distance 516.

[0034] Each area 502 and 504 bears a set of machine-readable characters. (Referring to...) Fig. 5B carries on the second surface 504 a first set of characters 520-1 and a second set of characters 520-2, which extend vertically along the second surface 504. The displacement at which each set 520 is located is known and is stored, for example, in memory 222. As in Fig. As can be seen in Figure 5B, in the present example, the sets 520 on the second surface 504 are arranged symmetrically around the height or Y-axis. The first surface 502, as Fig. Figure 5C shows a further set of 524 characters, which in the present example essentially covers the entirety of the first surface 502. The nature of the characters is explained in more detail below, referring to a region 528 of the second surface 504, shown in Fig. 6, and a region 532 of the first surface 502, shown in Fig. 7, reference is made to this.

[0035] With reference to Fig. 6. Region 528 of the second area 504 is shown in more detail. In particular, the first and second sets of characters 520-1 and 520-2 are each shown with a multitude of vertically arranged (i.e., parallel to the vertical direction) Fig. The characters shown are arranged along the Y-axis (5A-5C). In the present example, the characters of sets 520-1 and 520-2 are identical. Each character comprises a bottom boundary line 600, a pair of side boundary lines 604-1 and 604-2 extending perpendicularly from the ends of the bottom boundary line 600, and an elevation code 608 between the side boundary lines 604. The elevation code encodes the elevation of the bottom boundary line 600 in a suitable machine-readable format. In the present example, the elevation codes 608 are graphical representations of 8-bit binary codes, where a black bar represents the value 1 and a white bar represents the value 0. Each binary code encodes the elevation of a corresponding bottom boundary line 600 in centimeters. For example, the one shown in Fig. Figure 6 shows height code 608 indicating that the boundary line 600 is at a height of 1 cm. As can be seen, the height of each side boundary line 604 is predefined as 1 cm in this example. Furthermore, both the displacement position and the width of the lower boundary lines 600 are predefined. For example, in the Fig. In the calibration targets shown in 5A-5C and 6, the lower boundary lines 600 each have a width of 26 mm. The end of each boundary line 600 closest to the Y-axis has a displacement (i.e., a position along the line shown in the Fig. The X-axis (shown in 5A-5C) is within a range of + / - 50 mm. The predefined dimensions and positions of the characters 520 are stored in memory 222, e.g., in archive 232, for later use in the calibration process.

[0036] In some examples, such as in Fig. As shown in Figure 6, the second surface 504 also has first and second sets of symbols 612-1 and 612-2, which are arranged in larger displacements than sets 520-1 and 520-2. The sets of symbols 612-1 and 612-2 have a plurality of points 616 at predefined intervals in the displacement and elevation directions. As shown in Fig. As can be seen in Figure 6, each point 616 is also aligned with a boundary line 600, and thus each height code 608 also encodes the height of a subgroup of points 616.

[0037] With reference to Fig. Figure 7 shows the set of characters 524 depicted on the first surface 502. As will now be shown, the set of characters 524 is identical to each of the sets 520-1 and 520-2. The set of characters 524 thus has a vertically arranged plurality of characters, each comprising a bottom boundary line 700 (with a width of 25 mm in this example) and a pair of side boundary lines 704-1 and 704-2 (with heights of 1 cm in this example). Each character in the set 524 also has a height code 708 in the form of an 8-bit binary code, which encodes a height in centimeters. The in Fig. The 7 characters shown therefore mean that the boundary line 700 is located at a height of 22 cm.

[0038] In summary, surfaces 500 and 504 of the calibration target 500 have predefined depths in the common reference frame (depths which are thus known to the device 103 through storage in memory 222). Furthermore, each surface bears characters with predefined widths and predefined offsets. These characters encode the heights at which they are located in the common reference frame; as will be shown below, such encoding allows the device 103 to assign heights to the pixels of the captured images, and the aforementioned predefined data allows the device 103 to assign offsets and depths to these pixels.

[0039] Before carrying out the method 400, the device 103 and the calibration target 500 are aligned relative to each other such that the first surface 502 is closer to the cameras 208 than the second surface 504. Furthermore, the calibration target is preferably positioned such that all three sets of characters 520-1, 520-2, and 524 are within the field of view of the camera 208 to be calibrated, and that the set of characters 524 on the first surface 502 is visible in the field of view between sets 520-1 and 520-2 on the second surface 504. In some examples, to ensure that the cameras 208 successfully focus on the calibration target 500, the calibration target 500 can be positioned at a predetermined distance from the device 103. However, neither the orientation of the calibration target 500 nor its distance from the device 103 needs to be precisely known.

[0040] With reference to Fig. In step 405, decoder 308 is configured, in response to the acquisition of an image, to capture the acquired image and decodecode the aforementioned characters in step 410 to obtain the height (in the common reference frame) of each character. Decoder 308 is configured to identify characters in the image by applying a suitable blob detection operation or a combination of blob detection operations to detect regions in the image with different properties (e.g., color, intensity, and the like) compared to surrounding regions of the image. Examples of such operations include the maximally stable extremal region (MSER) ​​technique. After detector 308 has applied blob detection to the image to identify characters, it is configured to display the characters (i.e.,All detected blobs in the image are classified into one of the sets 520-1, 520-2, 524, 612-1, and 612-2. In one embodiment, the classification of characters is based on any suitable combination of shape, size, aspect ratio, and the like. For example, each circular blob is classified as a 616 dot. Meanwhile, each rectangular blob is classified as an elevation code, and the 608 elevation codes are distinguished from the 708 elevation codes by size. More precisely, the 708 elevation codes, which are closer to the 208 camera, appear larger in the image than the 608 elevation codes. The sets 520-1, 520-2, and 524 can be detected as single blobs, which are then subdivided into elevation codes, bottom boundary lines, and side boundary lines by further blob detection operations. In other examples, the bottom boundary lines, side boundary lines and height codes are recognized without first recognizing sets 520, 524 as uniform blobs.

[0041] The detector 308 can be configured, if the calibration target 500 has the auxiliary sets 612 of characters, to detect the points 616 and to extract a portion of the image bounded by the points 616 before detecting and classifying all remaining blobs in the acquired image. For example, Fig. Turning to step 8, an image 800 is shown, which was taken in step 405, including the Fig. the respective sets of characters 520-1, 520-2 and 524. Figure 800 also shows the Fig. the auxiliary sentences 612-1 and 612-2 respectively (points 616 themselves are in Fig. 8 (not shown for clarity). The detector 308 is configured to detect the points 616 and extract a part 808 of the image 800 for further processing and discard the rest of the image 800.

[0042] Image 800 (and thus also the extracted part 808) has a reference frame with an origin 804 and two orthogonal dimensions, which are in Fig. 8 are represented as “Yi” and “Xi”. Each pixel in image 800 has a position in the image’s reference frame, typically expressed as a number of pixels along each of the axes Yi and Xi. After identifying and classifying blobs in image 800 into sets 520-1, 520-2, and 524 of characters, detector 308 is configured to assign coordinates in the common reference frame to at least one subset of pixels in image 800. The subset can also be called reference points. In the present example, the reference points include each intersection between a bottom boundary line 600 or 700 and a side boundary line 604 or 704. The reference points can also include the center of each point 616.

[0043] Coordinates in the common reference frame are assigned to each of the subgroups of pixels based on (i) the heights decoded from codes 608 and 708, (ii) the predefined displacements and widths of boundary lines 600, 700, 604, and 704, and (iii) the predefined depths of surfaces 500 and 504. Detector 308 is configured to generate a list of reference points, each with a position defined in the (two-dimensional) reference frame, also called the image position, and a position defined in the (three-dimensional) common reference frame.

[0044] Regarding Fig. In step 415, the transformation generator 312 is configured to generate a first transformation between the image reference frame and a first layer in the shared reference frame. The transformation generator 312 is also configured to generate a second transformation between the image reference frame and a second layer in the shared reference frame. The first layer corresponds to the position of the first surface 502 in the shared reference frame, while the second layer corresponds to the position of the second surface 504 in the shared reference frame. Each transformation is generated by comparing the image positions and the shared reference frame of the aforementioned reference points. Any suitable transformation operation, or a combination thereof, can be applied in step 415 to generate the transformations.Examples of such operations include the RANSAC (random sample consensus) algorithm, which is used in some examples to generate the transformation after selecting reference points and determining the common reference frame positions of the reference points. In general, each transformation specifies a fixed depth (corresponding to the depth of the respective plane, which is equal to the depth of the corresponding planes 500 and 504), as well as coefficients that, when applied to the Xi and Yi coordinates of an image position, transform the Xi and Yi coordinates into X and Y (i.e., displacement and height) coordinates of a point in the common reference frame represented by the pixel at the image position. The transformations generated in step 415, for example, are stored in archive 232.

[0045] In step 420, calibrator 316 is configured to select a calibration pixel from image 800 (or from part 808 of image 800 if the aforementioned extraction of part 808 is implemented). The calibration pixel is typically one of the previously mentioned reference points. In step 425, calibrator 316 is configured to generate a position pair in the common reference frame for the selected calibration pixel. The position pair has a first calibration position corresponding to the pixel on the first plane mentioned above, and a second calibration position corresponding to the pixel on the second plane. The first and second calibration positions are generated by applying the first and second transformations, respectively, to the image position of the selected calibration pixel.

[0046] Regarding the Fig. In image section 808, a first calibration pixel 850-1 is displayed. Pixel 850-1 has a position in the image reference frame. Applying the first transformation, which is shown in Fig. Transformation 8, designated "T1", generates a first calibration position 854-1 corresponding to pixel 850-1 in the common reference frame. More precisely, the first calibration position is the position on the first surface 502, represented by pixel 850-1. Additionally, the second transformation, designated "T2", is applied to pixel 850-1 to generate a second calibration position 858-1 in the common reference frame. The second calibration position 858-1 lies on the second surface 504 and is not visible in image part 808. However, if the first surface 502 were transparent or non-existent, the second calibration position 858-1 would be represented at pixel 850-1.

[0047] In other words, the first and second calibration positions 854-1 and 858-1, since they were generated from a single calibration pixel 850-1, both lie on a line running to camera 208. Referring to Fig. In step 430, the calibrator 316 is configured to determine whether additional calibration pixels should be selected. The calibrator 316 can store a preconfigured number of calibration pixels for selection and can thus assess in step 430 whether the preconfigured number of calibration pixels has been reached. If the preconfigured number of calibration pixels has not been reached (i.e., "Yes" in step 430), another calibration pixel is selected, and another position pair is generated. Fig. Figure 8 shows a second calibration pixel 850-2 and a second position pair generated from the second calibration pixel 850-2, comprising a first calibration position 854-2 and a second calibration position 858-2. The calibrator 316 is configured to execute blocks 420 and 425 at least twice. In some examples, the calibrator 316 is configured to execute blocks 420 and 425 approximately twenty times. However, in other examples, blocks 420 and 425 may be executed more than twenty times or between two and twenty times.

[0048] If the determination in step 430 is negative, the calibrator 316 is configured to perform step 435. In step 435, the calibrator 316 is configured to determine and store a camera position in the common reference frame from an intersection of calibration lines defined by the position pairs mentioned above. Specifically, the calibrator 316 is configured to determine the position of the nodal point (i.e., the focal point) of camera 208 in the common reference frame. With reference to Fig. Calibrator 316 is configured to generate a calibration line 862-1 corresponding to the position pair 854-1 and 858-1, and a calibration line 862-2 corresponding to the position pair 854-2 and 858-2. As can be seen by a person skilled in the art, the calibration lines 862 are representative of the light rays extending to the nodal point of the camera 208. The intersection of the calibration lines 862 thus defines the position of the nodal point 864.

[0049] To proceed to step 440, the calibrator 316 is configured to determine and store additional calibration parameters to characterize the position and orientation of the camera 208 relative to the location of the device 103 in the common reference frame. Specifically, the calibrator 316 is configured to generate at least one, and in this example all, rotation angles of the image plane, an optical axis orientation, a distance between an image sensor of the camera 208 and the nodal point, and a focal length. Additional parameters can also be determined in step 440, such as the vertices of the intersection (which is typically a quadrilateral) of the camera's field of view with the second surface 504.

[0050] Regarding the Fig. 9. The rotation angle of the image plane reflects the degree of rotation of the reference frame within the XY plane of the common reference frame. In other words, the rotation of the image plane is a rotation about the optical axis of camera 208 and can also be considered a "roll" angle (as opposed to a "pitch" angle, which reflects the orientation of camera 208 in the YZ plane, or a "yaw" angle, which reflects the orientation of camera 208 in the XZ plane). The rotation angle of the image plane is determined by the calibrator 316 by identifying the center point of image 800. For example, the center point 900 of image 800 is represented as the intersection of diagonal lines connecting opposite corners of image 800.The calibrator 316 is then configured to select at least one other pixel along a line 904 that divides the image 800 into equally sized upper and lower halves, and by applying one of the transformations T1 and T2 (as in . Fig. (as shown in 9, where T1 is applied) determines the position 908 of line 904 in the common reference frame. The rotation angle of the image plane 912 is the angle between line 908 and a line parallel to the X or translation axis (in Fig. 9 is given as X'). In other examples, the above determination of the image plane rotation can be carried out by applying the transformation T2 to the corners of image 800. The corners, when transformed into points on the second surface 504, define a quadrilateral representing the intersection between the field of view of camera 208 and the second surface 504. The center of the aforementioned quadrilateral can then be identified (e.g., as the intersection of diagonals extending between the corners) and used to determine the image plane rotation, rather than the center of image 800 itself.

[0051] The calibrator 316 is further configured to determine the orientation of the optical axis by applying one of the transformations T1 and T2 (as in Fig. (as shown in Figure 9, where T2 is depicted) is applied to the center point 900 of image 800 to determine a position 914 in the common reference frame that corresponds to the center point 900. The calibrator 316 is then configured to project a vector 916 from the center point 914 to the nodal point 864 and determines a pair of angles that defines the orientation of the vector 916: an angle in the YZ plane (referred to above as the tilt angle) and an angle in the XZ plane (referred to above as the yaw angle).

[0052] The calibrator 316 is configured to determine a distance 920 between the nodal point 864 and the image sensor 924, for example, by determining a viewing angle at the nodal point 864. The viewing angle is the angle between lines extending from the nodal point 864 to points corresponding to pixels at opposite edges of the image 800. The viewing angle can be determined, for example, by determining the length of the aforementioned lines and the distance between the points corresponding to pixels at opposite edges of the image 800. Based on the aforementioned angle and the known dimensions of the sensor 924 (e.g., stored in memory 222), the distance 920 can be determined. The distance 920 and the aforementioned optical axis angles can be expressed as an image sensor normal vector, which can be stored in memory 222.

[0053] The calibrator 316 is configured to determine the focal length of the camera 208 from the distances 920 and 916, as well as a magnification factor. The magnification factor is defined by the ratio of the sizes of an object depicted in image 800 (e.g., a character with known dimensions) to the representation of this object on the surface of the sensor 924. After determining the magnification factor, the calibrator 316 is configured to determine the focal length, for example, using the thin lens equation, which relates the focal length to the magnification factor, the object distance, and the image distance. The sum of the object distance (distance between the lens of the camera 208, whose position in the common reference frame is unknown, and an object depicted in image 800) and the image distance (distance between the lens and the sensor 924) yields the sum of the distances 916 and 920.Furthermore, the image distance is the product of the image distance and the magnification factor. This allows the calibrator to determine the object and image distances, and thus the focal length.

[0054] The normal vector, image plane angle, and focal length are stored in memory 222 in conjunction with the location of the device 103. In some examples, the calibrator 316 generates a calibration transformation to convert a vector representing the current position of the device 103 (including the head of the device 103) into a current normal vector that specifies the position and orientation of the camera 208's field of view in the common reference frame. Such a transformation can be used to map subsequent images taken by the camera 208 at successive positions of the device 103 onto the common reference frame.

[0055] Regarding the Fig. 4. The calibrator 316 can also be configured to generate calibration parameters for a LiDAR sensor 216, instead of or in addition to generating the camera calibration parameters described above. Specifically, after generating the first and second transformations, the calibrator 316 is configured to characterize a LiDAR light plane. For this purpose, as mentioned earlier, in step 405 the data acquisition controller 300 is configured to control one of the LiDAR sensors 216 simultaneously with the camera(s) to acquire a series of depth measurements during image acquisition. As is evident to those skilled in the art, the LiDAR sensor 216 acquires depth measurements by sweeping a line of light (e.g., laser light) through a variety of angles. At each angle, a series of depth measurements is collected along the length of the line.In the present example, the LIDAR sensor 216 is controlled such that it detects a measurement line (i.e., a one-dimensional arrangement of depth measurements corresponding to a single swivel angle) during the recording of an image by the camera 208.

[0056] As in Fig. As shown in Figure 10A, the result of the synchronized acquisition of image data and depth measurements in step 405 is the aforementioned LiDAR light line in the image acquired in step 405, represented as a multitude of line segments 1004, 1008, and 1012. During the execution of step 410, the decoder can be configured to identify the line segments in addition to characters 520, 524, and 612. In step 450, the calibrator 316 is configured to characterize the plane onto which the aforementioned LiDAR light line is projected by selecting pixel pairs from image 1000: a first pair lying on segment 1008 and a second pair lying on either segment 1004 or 1012.By applying the first transformation T1 to the pixel pair from segment 1008 and the second transformation T2 to the pixel pair from segment 1004 or 1012, calibrator 316 is configured to generate first and second vectors from the pixel pairs in the common reference frame. The vectors are non-collinear (at different depths) and can therefore be used to determine a normal vector that defines the orientation of the lidar plane (e.g., by calculating the cross product of the vectors). Calibrator 316 is then configured to determine a distance parameter that defines the distance between the plane and the origin 512. The vector and the distance parameter together define the position and orientation of the lidar plane (for the pan angle used in step 405) in the common reference frame. Fig. Figure 10B shows the LIDAR layer 1016 in the common reference frame.

[0057] In step 455, the calibrator 316 is configured to determine and store the position of the LIDAR sensor 216 in the common reference frame. (Referring to...) Fig. In some embodiments, the calibrator 316 is configured to perform step 455 according to a method 1100. In step 1105, the calibrator 316 is configured to select a pair of calibration pixels from the image 1000. Regarding Fig. In step 10, the calibrator is configured to identify pixels 1020 and 1024 as adjacent ends of segments 1004 and 1008, which are used to represent two points approximately on a single light beam from the LiDAR sensor 216. The calibrator 316 is configured to generate a calibration line from the common reference frame positions (obtained in step 1110 by applying transformation T1 to pixel 1020 and transformation T2 to pixel 1024) of pixels 1020 and 1024. As will now be shown, a second line may not be available, and the calibrator 316 is therefore configured to identify the position of the LiDAR sensor 216 along the aforementioned single line based on the depth measurement obtained from the sensor 216 that corresponds to one of pixels 1020 and 1024.For example, in step 1115, the calibrator 316 can be configured to identify a discrete jump in the depth measurements, indicating the transition between pixels 1024 and 1020. Based on one of the depth measurements that defines the discrete jump, the calibrator is configured to determine the position of the LIDAR sensor 216 in step 1120.

[0058] In other embodiments, the calibrator 316 is configured to perform step 455 according to a method 1150 as described in Fig. Figure 11B illustrates this. In step 1155, the calibrator is configured to identify discrete jumps in the depth measurements that correspond to the edges of the calibration target 500 (e.g., the edges of the second surface 504). For example, the calibrator 316 can be configured to identify a pair of transitions in the depth measurements where the measured depth exceeds a threshold. In other examples, the calibrator 316 can be configured to identify two pairs of transitions, one corresponding to the edges of the first surface 502 and the other to the edges of the second surface 504. The outer pair of jumps is selected according to the edges of the second surface 504.

[0059] After the jumps in the depth measurements have been recorded, the calibrator 316 is configured in step 1160 to determine the positions of the jumps in the common reference frame. With reference to Fig. In step 12, the position of the jumps is determined based on the intersection of plane 1016 with surface 504 (the positions and orientations of both are known in the common reference frame). As a result, in step 1160, calibrator 316 determines the positions of points 1200 and 1204, as well as the distance 1208 between points 1200 and 1204.

[0060] In step 1160, the calibrator 316 is configured to determine a position 1212 of the LIDAR sensor 216 from the distance 1208 and the positions of points 1200 and 1204, as well as the depth measurements 1216 and 1220 corresponding to points 1200 and 1204, respectively. After completion of step 455 (via procedure 1100 or procedure 1150), the calibration parameters for the LIDAR sensor 216 (position 1212 and plane 1016) are stored in memory 222 in conjunction with the location of the device 103 at which the depth measurements were acquired. The calibration parameters can be used to map subsequent depth measurements onto the common reference frame, based on the location of the device 103 at the time these measurements were acquired.

[0061] Variations to the systems and procedures mentioned above are taken into account. For example, the server 101 can be supplied with image data and depth measurements, as well as the associated location of the device 103, and derive the calibration parameters and make them available to the device 103. In other words, the server 101 can implement the functionality of one or more decoders 308, the transformation generator 312, and the calibrator 316.

[0062] In some embodiments, the calibration target 500 may contain additional sets of characters beyond those mentioned above. Furthermore, the calibration target 500 may contain different sets of characters on the first surface 500 than on the second surface 504. In addition, the height codes mentioned above may be replaced or supplemented by displacement codes in some examples.

[0063] Specific embodiments have been described in the foregoing description. However, a person skilled in the art will recognize that various modifications and changes can be made without deviating from the scope of the invention as set forth in the following claims. Accordingly, the description and the figures are to be regarded in an illustrative rather than a limiting sense, and all such modifications are to be included within the scope of the present teachings.

[0064] The benefits, advantages, solutions to problems, and all elements that may lead to the occurrence or enhancement of a benefit, advantage, or solution are not to be understood as critical, necessary, or essential features or elements in the claims. The invention is defined exclusively by the attached claims, including any amendments made during the pendency of this application, as well as all equivalents of the claims as granted.

[0065] Furthermore, in this document, relational terms such as first and second, upper and lower, and the like may be used merely to distinguish one entity or action from another, without necessarily requiring or implying any actual relationship or order of such an entity or action between such entities or actions. The expressions "includes," "comprising," "has," "have," "exhibits," "bear," "contains," "include," or any other variation thereof are intended to cover non-exclusive inclusion, such that a process, procedure, product, or device that includes, has, has, or contains a list of elements may not only have those elements but may also have other elements not expressly listed or inherent in such process, procedure, product, or device. An element that "includes," "has," "bears," or "contains"The use of the term "a" does not, without further limitations, preclude the existence of additional identical elements in the process, method, product, or apparatus that includes, has, features, or contains the element. The terms "a" and "a" are defined as one or more unless expressly stated otherwise herein. The terms "essentially," "generally," "approximately," "about," or any other version thereof are defined in such a way as to be understood by a person skilled in the art in this field, and in one non-restrictive embodiment, the expression is defined as within 10%, in another embodiment as within 5%, in yet another embodiment as within 1%, and in yet another embodiment as within 0.5%. The term "coupled," as used herein, is defined as connected, but not necessarily directly and not necessarily mechanically.A device or structure that is “designed” in a certain way is at least also designed in that way, but may also be designed in ways that are not listed.

[0066] It is understood that some embodiments may include one or more generic or specialized processors (or “processing devices”) such as microprocessors, digital signal processors, custom processors, and field-programmable gate arrays (FPGAs), and uniquely stored program instructions (including both software and firmware) that control the one or more processors to implement, in conjunction with certain non-processor circuitry, some, most, or all of the functions of the method and / or device described herein. Alternatively, some or all of the functions may be implemented by a state machine that does not include any stored program instructions, or in one or more application-specific integrated circuits (ASICs) in which each function, or some combinations of certain functions, are implemented as user-defined logic.Of course, a combination of the two approaches can be used.

[0067] Furthermore, an embodiment may be implemented as a computer-readable storage medium on which computer-readable code is stored for programming a computer (which, for example, includes a processor) to execute a method as described and claimed herein. Examples of such computer-readable storage media include, but are not limited to, a hard disk, a CD-ROM, an optical storage device, a magnetic storage device, a ROM (read-only memory), a PROM (programmable read-only memory), an EPROM (erasable programmable read-only memory), an EEPROM (electrically erasable programmable read-only memory).Furthermore, it is assumed that an average professional, regardless of possible significant effort and many design choices motivated, for example, by available time, current technology, and economic considerations, will be readily able to generate such software instructions, programs, and ICs with minimal experimentation if guided by the concepts and principles disclosed herein.

[0068] The summary of the disclosure is provided to enable the reader to quickly ascertain the essence of the technical disclosure. It is provided with the understanding that it is not intended to be used for interpreting or limiting the scope or meaning of the claims. Furthermore, it can be inferred from the preceding detailed description that various features in different embodiments have been summarized for the purpose of streamlining the disclosure. This type of disclosure is not to be interpreted as reflecting the intention that the claimed embodiments require more features than are expressly stated in each claim. Rather, as the following claims demonstrate, the inventive step lies in fewer than all the features of a single disclosed embodiment.The following claims are hereby incorporated into the detailed description, each claim being a separately claimed subject matter.

Claims

[1] Sensor calibration target (500) for sensor calibration of at least one sensor relative to a common reference frame, wherein the sensor calibration target (500) comprises: a first surface (502) at a first predefined depth, which has a first set of characters (520-1) at respective first heights and each has first predefined displacements, wherein each of the first characters (520-1) encodes a corresponding first height; and a second surface (504) at a second predefined depth, which has a second set of characters (520-2) at respective second heights and each has second predefined offsets, wherein each of the second characters (520-2) encodes a corresponding second height; wherein the sensor calibration target (500) is associated with a position of a mobile automation device (103) in the common reference frame, wherein the mobile automation device (103) comprises the at least one sensor, wherein the at least one sensor is configured to determine the position of the mobile automation device (103) based on at least one position and orientation of the at least one sensor relative to the first and second characters. [2] Sensor calibration target (500) according to claim 1, wherein the sensor calibration target (500) is assigned to a predetermined position in the common reference frame. [3] Sensor calibration target (500) according to claim 2, wherein the predetermined position is an origin of the common reference frame. [4] Sensor calibration target (500) according to claim 1, wherein the common reference frame comprises orthogonal depth, height and displacement dimensions. [5] Sensor calibration target (500) according to claim 4, wherein the second surface (504) has at least one set of auxiliary symbols comprising a plurality of points. [6] Sensor calibration target (500) according to claim 5, wherein each of the plurality of points is arranged at predefined intervals in the displacement and height dimensions. [7] Sensor calibration target (500) according to claim 5, wherein each of the plurality of points is aligned to a boundary line (600) on the second surface (504), the boundary line (600) corresponding to the corresponding second height encoded by each of the second characters (520-2). [8] Sensor calibration target (500) according to claim 1, wherein the first surface (502) and the second surface (504) have a corresponding boundary line (600) arranged at the corresponding first height and the corresponding second height. [9] Sensor calibration target (500) according to claim 1, wherein the at least one sensor of the mobile automation device (103) comprises at least one image sensor (208) and one LIDAR sensor (216).

Citation Information

Patent Citations

  • Camera calibration

    US20150279035A1