Self-configuring sensor
By matching the scanning field of view with a reference image, the orientation and position of the sensor are automatically configured, solving the problem of incorrect sensor installation and improving the accuracy of autonomous operation of industrial vehicles.
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2024-09-27
- Publication Date
- 2026-03-17
AI Technical Summary
When installing the same type of sensor on industrial vehicles, existing technologies struggle to automatically determine and configure the sensor's orientation and position, leading to incorrect installation and affecting the vehicle's autonomous or semi-autonomous operation.
By scanning the sensor's field of view and comparing it with a stored reference image, the sensor's orientation is determined, and the sensor is automatically configured based on this orientation, independent of the presence of other sensors.
It enables automatic configuration of sensors on industrial vehicles, ensuring correct sensor installation and improving the accuracy and efficiency of autonomous or semi-autonomous operation of the vehicles.
Smart Images

Figure CN121693756A_ABST
Abstract
Description
TECHNICAL FIELD
[0001] Various aspects of the present disclosure generally relate to industrial vehicle mounted sensors, and more particularly to self-calibration of industrial vehicle mounted sensors. BACKGROUND
[0002] Industrial vehicles, such as material handling vehicles, are commonly used to pick inventory in industrial environments, such as warehouses and distribution centers. Such vehicles typically include a power unit and a load handling assembly, which can include load carrying forks. The vehicles also have a control structure for controlling the operation and movement of the vehicle.
[0003] In warehouses or distribution centers with autonomous or semi-autonomous vehicles, the vehicles are responsible for transporting goods from one location to another. For example, a vehicle can be required to transport goods from a pick-up location to a storage location. Accordingly, these autonomous or semi-autonomous vehicles include sensors that transmit data to a control structure that controls the operation and movement of the vehicle. SUMMARY
[0004] According to aspects of the present disclosure, a process for configuring a sensor mounted to a vehicle and a system using the process are disclosed. The process begins by determining an orientation of the sensor by collecting scans from the sensor, determining a field of view of the sensor based on the scans, and deriving an orientation of the sensor on the vehicle relative to the vehicle based on the field of view. After deriving the orientation of the sensor, including a location on the vehicle, a configuration of the sensor is determined based on the orientation of the sensor relative to the vehicle and independent of any other sensors that can be present on the vehicle. The sensor is then configured based on the orientation of the sensor relative to the vehicle.
[0005] According to further aspects, the sensor is an optical sensor, and in various embodiments, the optical sensor is a camera.
[0006] According to further aspects, deriving the orientation of the sensor on the vehicle relative to the vehicle based on the field of view includes comparing the field of view to images stored on the vehicle and deriving the orientation of the sensor on the vehicle based on the comparison.
[0007] According to further aspects, comparing the field of view to the field of view stored on the vehicle includes comparing the field of view to images stored on the vehicle and determining which of the images stored on the vehicle has a highest number of similarities.
[0008] According to further aspects, deriving the orientation of the sensor on the vehicle based on the comparison includes matching the orientation to the image stored on the vehicle that has the highest number of similarities.
[0009] According to a further aspect, determining the sensor configuration includes determining the sensor configuration if the highest number of similarities exceeds a threshold.
[0010] According to a further aspect, determining the sensor configuration includes using a processor on the vehicle to determine the sensor configuration.
[0011] According to a further aspect, determining the sensor configuration includes using a processor on the server to determine the sensor configuration.
[0012] According to a further aspect, deriving the orientation of the sensors on the vehicle relative to the vehicle based on the field of view includes sending the field of view to a server, wherein the server includes an image of the field of view, and receiving the orientation of the sensors from the server. According to yet another aspect, comparing the field of view with a field of view stored on the vehicle includes comparing the field of view with images stored on the server and determining which image among the images stored on the vehicle has the highest number of similarities. According to yet another aspect, deriving the orientation of the sensors on the vehicle based on said comparison includes matching the orientation with the image among the images stored on the server that has the highest number of similarities.
[0013] According to a further aspect, deriving the orientation of the sensors on the vehicle relative to the vehicle based on the field of view includes comparing the field of view with an image stored on the sensor and deriving the orientation of the sensors on the vehicle based on the comparison.
[0014] According to a further aspect, comparing the field of view with the field of view stored on the vehicle includes comparing the field of view with images stored on the sensors and determining which image among the images stored on the vehicle has the highest number of similarities.
[0015] According to a further aspect, deriving the orientation of the sensors on the vehicle based on the comparison includes matching the orientation with the image that has the highest number of similarities among the images stored on the sensors. Attached Figure Description
[0016] Figure 1 This is a flowchart illustrating a process for automatically configuring sensors installed in a vehicle according to various aspects of this disclosure.
[0017] Figure 2 This is a block diagram of a first system for realizing the process of automatically configuring sensors installed in a vehicle, according to various aspects of this disclosure;
[0018] Figure 3 This is a block diagram of a second system for realizing the process of automatically configuring sensors installed in a vehicle, according to various aspects of this disclosure;
[0019] Figure 4This is a block diagram of a third system for realizing the process of automatically configuring sensors installed in a vehicle, according to various aspects of this disclosure.
[0020] Figure 5 The diagram illustrates a processing system and wireless communication that can be used to realize the process of automatically configuring sensors installed in a vehicle according to various aspects of this disclosure; and
[0021] Figure 6 It is a schematic representation of a computing system including a host computer system according to various aspects of this disclosure. Detailed Implementation
[0022] Industrial environments (e.g., warehouses, distribution centers, supply yards, loading docks, manufacturing facilities, retail spaces, etc.) include aisles and locations of inventory items accessible via these aisles. Typical industrial environments feature autonomous or semi-autonomous industrial vehicles to perform operations within the environment.
[0023] These autonomous or semi-autonomous industrial vehicles employ sensors (e.g., optical sensors such as cameras, lidar (light detection and ranging) systems, etc.) at various locations / orientations on the vehicle (as used herein, "orientation" also includes location on the vehicle). However, in many cases, the same type of sensor may be used at multiple locations / orientations on an industrial vehicle. For example, an autonomous vehicle may have a camera on its left side, a camera on its right side, and a camera on its rear. Therefore, sensors must not only be calibrated as usual (e.g., light sensitivity, determining pixel variance, etc.), but they must also be configured for their location on the industrial vehicle. For example, typically, a camera on the right side of the industrial vehicle will be configured differently from a camera on the left side. Therefore, if the same type of sensor (e.g., brand and model of the camera system) is used at multiple locations / orientations on the industrial vehicle, each sensor must have a different configuration and corresponding number so that maintenance personnel can install the correct sensor in the correct location on the vehicle.
[0024] However, according to various aspects of this disclosure, the same sensor can be used at various points and orientations on an industrial vehicle. Once the sensor is installed (e.g., by a technician), it detects its orientation on the vehicle by scanning (e.g., scanning for a lidar, taking an image for a camera, etc.) and determining the field of view from the scan to derive the sensor's orientation on the vehicle. The sensor is then configured based on the orientation.
[0025] Now refer to the attached diagram, especially Figure 1The diagram illustrates a process 100 for configuring a sensor mounted on a vehicle. At 102, the sensor collects scans. For example, if the sensor is a camera, then the sensor captures an image or a series of images. As another example, if the sensor is a lidar device, then the sensor can use a laser to emit beams of light at different angles and measure the time of flight (and / or intensity) of the reflections to determine the distances at those angles. Thus, an "image" can be constructed from the reflections. Other types of sensors can be used, but the common feature is that the sensor being calibrated is the same sensor that is collecting scans.
[0026] At position 104, the field of view is determined based on the scan. For example, the entire image can be determined as the field of view. In such embodiments, using the entire scanned image as the field of view does not skip this step, because the entire scanned image has already been determined as the field of view. As another example, the image can be cropped or reduced in some way to only the important areas of the scanned image.
[0027] At point 106, the orientation of the sensor on the vehicle relative to the vehicle is derived based on the field of view. For example, reference images showing what the camera's field of view looks like when the camera is positioned on the vehicle in different orientations are stored in memory (e.g., the memory of the sensor, vehicle, server, etc.). The processor compares the field of view (derived from the scan) with the reference images to determine which image in the reference images is closest to the field of view. The processor then determines the reference image with the highest number of similarities to the field of view to associate it with the sensor's current orientation on the vehicle. In some embodiments, the number of similarities must pass a predetermined threshold to be considered a correct reference image. For example, if comparisons of the field of view with all reference images yield 20%, 30%, 27%, and 40% similarity, and the threshold is 85%, then no reference image is associated with the sensor's orientation on the vehicle. The reference image can be the field of view found when the sensor is positioned on a typical vehicle with an orientation corresponding to the reference image.
[0028] At point 108, steps 102, 104, and 106 listed above are used to determine the sensor's orientation on the vehicle. Therefore, each reference image is associated with the sensor's orientation on the vehicle. The processor then determines which orientation is associated with the reference image having the highest similarity and uses that orientation as the sensor's orientation on the vehicle.
[0029] At point 110, the sensor configuration is determined based on its orientation on the vehicle. For example, if there are four different orientations in which a sensor can be located on the vehicle, then four different profiles can be stored (one profile associated with each orientation). As another example, if a sensor can be placed on a first vehicle with four different orientations or on a second vehicle with three different orientations, then seven different profiles can be stored. Note that the determination of the configuration (and the orientation of the sensor itself) is performed independently of any other sensors found on the vehicle.
[0030] At point 112, the sensor is configured based on its orientation relative to the vehicle. Therefore, the sensor is configured using a profile corresponding to the configuration determined at point 110. The profile can be located on the sensor, on the vehicle, on a server, or a combination thereof.
[0031] Example 1 - Sensor
[0032] As Figure 1 An example of process 100 includes an autonomous industrial vehicle with forks for carrying a load, and the vehicle has four positions for placing cameras for autonomous guidance: front, rear, left, and right. Additionally, there are four reference images, each corresponding to a position / orientation: (1) a front reference image including a circular portion of the front of the vehicle at the bottom of the image, with no other related content; (2) a rear reference image including the vehicle's forks at the bottom of the image; (3) a left reference image including a portion of the front of the vehicle on the right and a portion of the forks on the left side of the reference image; and (4) a right reference image including a portion of the front of the vehicle on the left and a portion of the forks on the left side of the image. This example includes only four reference images, but other numbers of reference images can also be used (e.g., multiple images for each orientation, orientations on another vehicle, etc.). In this example, the sensor includes the reference images and configuration files in memory and has a processor that can access the memory. Furthermore, in this example, the minimum similarity threshold for using the reference images as the sensor's orientation is 75%.
[0033] The user mounts the sensor on the left side of the autonomous industrial vehicle and couples it to the vehicle's communication system (wired or wireless). The sensor then initiates... Figure 1The process 100 collects a scan at 102. The processor determines the field of view at 104, in this case the entire scan. At 106, the processor on the sensor retrieves a reference image and compares the field of view with the reference image. The comparison returns the following similarity scores: (1) front reference image = 20%; (2) rear reference image = 15%; (3) left reference image = 90%; and (4) right reference image = 40%. Therefore, the processor determines that the sensor is oriented to the left side of the vehicle.
[0034] At 110, the processor determines that the sensor should be configured using the profile associated with the left-side position. The sensor does not require information associated with other sensors installed on or to be installed on the vehicle. Instead, the determination of orientation and position is performed agnostically and independently of any other sensors that may be on the vehicle. At 112, the sensor is configured with the profile associated with the left-side position and is ready for use.
[0035] Example 2 - Vehicle
[0036] As another example, suppose we use the same vehicle, the same reference image, and the same threshold as in the previous example. However, the reference image is stored on the vehicle, not on the sensor itself.
[0037] The user mounts the sensor on the left side of the autonomous industrial vehicle and couples it to the vehicle's communication system (wired or wireless). However, the user accidentally mounts the sensor facing the vehicle instead of the outside. The vehicle detects the sensor and initiates... Figure 1 The process 100 is performed, and a scan is collected from the sensor at 102. At 104, the processor on the vehicle determines the field of view, which in this case is the entire scan. At 106, the processor retrieves a reference image and compares the field of view to the reference image. The comparison returns the following similarity scores: (1) front reference image = 10%; (2) back reference image = 15%; (3) left reference image = 10%; and (4) right reference image = 20%. All reference images have similarity values below a threshold, therefore no reference image is used. In some embodiments, process 100 will attempt scans and comparisons more times up to a predetermined number, and if the similarity value never exceeds the threshold, the process will be terminated. In many embodiments, if the similarity value does not exceed the threshold, an error will be reported.
[0038] However, the user noticed the problem and disconnected the sensor, correctly orienting it to the left. A scan was collected, and the field of view was determined. At position 106, the processor on the sensor retrieved a reference image and compared the field of view to the reference image. The comparison returned the following similarity scores: (1) front reference image = 20%; (2) rear reference image = 15%; (3) left reference image = 90%; and (4) right reference image = 40%. Therefore, the processor determined that the sensor was oriented to the left side of the vehicle.
[0039] At 110, the processor determines that the sensor should be configured using the profile associated with the left-side position. The vehicle does not require information associated with other sensors installed on or to be installed on the vehicle. Instead, the determination of orientation and position is performed agnostically and independently of any other sensors that may be on the vehicle. At 112, the sensor is configured with the profile associated with the left-side position and is ready for use.
[0040] The user can then disconnect the sensor and couple it to the front of the vehicle. The vehicle detects the sensor and initiates... Figure 1 The process 100 collects a scan from the sensor at 102. The processor on the vehicle determines the field of view at 104, in this case, the entire scan. At 106, the processor retrieves a reference image and compares the field of view with the reference image. The comparison returns the following similarity scores: (1) front reference image = 85%; (2) rear reference image = 25%; (3) left reference image = 40%; and (4) right reference image = 40%. Thus, the processor determines that the sensor is oriented towards the front of the vehicle.
[0041] At 110, the processor determines that the sensor should be configured using the profile associated with the front. The processor does not require information associated with other sensors installed on or to be installed on the vehicle. Instead, the determination of orientation and position is performed agnostically and independently of any other sensors that may be on the vehicle. At 112, the sensor is configured with the profile associated with the front and is ready for use. Therefore, the same sensor can be used at different positions / orientations on the vehicle.
[0042] In the two examples above, the reference image is stored on the same device (i.e., the sensor or the vehicle) as the processor used to execute the process. However, this is not necessary. Therefore, the reference image can be stored on the sensor and the vehicle processor can execute process 100 (retrieve the reference image from the sensor), or vice versa.
[0043] Example 3 - Remote Server
[0044] In another example, the vehicle, reference image, and threshold are the same as in the first two examples above. However, the reference image is stored on a remote server, not on the sensor or the vehicle.
[0045] The user mounts the sensor on the left side of the autonomous industrial vehicle and couples it to the vehicle's communication system (wired or wireless). The sensor or the vehicle's processor initiates... Figure 1 The process 100 collects a scan at 102. The processor determines the field of view at 104, in this case the entire scan. In some embodiments, the processor on the vehicle or sensor then wirelessly requests and receives a reference image from the server. In other embodiments, the vehicle or sensor transmits the field of view to the server.
[0046] At position 106, the processor (on the server, vehicle, or sensor) compares the field of view with a reference image. The comparison returns the following similarity scores: (1) front reference image = 20%; (2) rear reference image = 15%; (3) left reference image = 90%; and (4) right reference image = 40%. Thus, the processor determines that the sensor is oriented to the left side of the vehicle.
[0047] At 110, the processor determines that the sensor should be configured using the profile associated with the left-hand position. The processor does not require information associated with other sensors installed on or to be installed on the vehicle. Instead, the determination of orientation and position is performed agnostically and independently of any other sensors that may be on the vehicle. At 112, the sensor is configured with the profile associated with the left-hand position and is ready for use. In some embodiments, the profile is sent to the vehicle or the sensor by a server.
[0048] The processing discussed in the third example can be performed by sensors, vehicles, servers, or combinations thereof (e.g., part on the vehicle, part on the server, and part on the sensor; part on the server and part on the vehicle; etc.).
[0049] As discussed above, the reference image can include an image of a portion of a vehicle visible from the direction associated with it. Furthermore, this portion of the vehicle can help identify not only the sensor's orientation on the vehicle, but also the type of vehicle in which the sensor is located. For example, a reference image of the front orientation of a first type of vehicle can differ from a reference image of a second type of vehicle in the same orientation. Therefore, more than one reference image can be associated with a single orientation. Moreover, more than one reference image can be associated with a single vehicle-orientation.
[0050] Using the processes and sensors described in this article, sensors can be placed on a vehicle in any orientation (as discussed above, orientation also includes location), and then automatically configured for that orientation.
[0051] Figure 2 This is a block diagram of system 200, which includes sensors 202 removably coupled (physically and communicatively) to industrial vehicle 212, which includes processor 314 and memory 316. Figure 2 The system 200 includes a reference image in memory 216 and uses processor 214 to execute the process described herein.
[0052] Figure 3 This is a block diagram of system 300, which includes a sensor 302 having a processor 304 and a memory 306. The sensor 302 is removably coupled (physically and communicatively) to an industrial vehicle 312, which includes a processor 314 and a memory 316. Figure 3 The system 300 may include a reference image in any of the memories 306 and 316 and may use any of the processors 304 and 314 to execute any part of the process described herein.
[0053] Figure 4 This is a block diagram of a system 400, which includes a sensor 402 having a processor 404 and a memory 406. The sensor 402 is removably coupled (physically and communicatively) to an industrial vehicle 412, which includes a processor 414 and a memory 416. In some embodiments, the industrial vehicle 412 includes a wireless transceiver 418 for communicating with a remote server 422. The following... Figure 5 Wireless communication between devices (e.g., industrial vehicles) and remote servers is discussed. Figure 4 System 400 may include reference images in any of memories 406, 416, 426 and may use any of processors 204, 214, 216 to perform any part of the process described herein. In some embodiments of system 400, sensor 402 may not include processor 404, memory 406, or both.
[0054] Using the embodiments of the processes and systems 100, 200, 300, and 400 described herein, discrete reference images can be used to determine discrete locations on an industrial vehicle to which a sensor is coupled. In other words, the sensor can be coupled to the industrial vehicle at a predetermined number of discrete locations, and each discrete location is associated with one or more discrete reference images for comparison to determine which discrete location the sensor is coupled to. Then, after determining the location (including orientation), the sensor is configured based on its discrete location on the industrial vehicle.
[0055] Now for reference Figure 5 The present disclosure illustrates an overall diagram of system 500. System 500 is a special purpose (specific) computing environment comprising multiple hardware processing devices (generally indicated by reference numeral 502) linked together by one or more networks (generally indicated by reference numeral 504).
[0056] One or more networks 504 provide communication links between various processing devices 502 and may be supported by networking components 506 interconnecting the processing devices 502. Networking components 506 include, for example, routers, hubs, firewalls, network interfaces, wired or wireless communication links and corresponding interconnections, cellular stations and corresponding cellular conversion technologies (e.g., for conversion between cellular and TCP / IP, etc.). Furthermore, one or more networks 504 may include connections using one or more intranets, extranets, local area networks (LANs), wide area networks (WANs), wireless networks (Wi-Fi), the Internet (including the World Wide Web), cellular, and / or other arrangements to enable real-time or other methods (e.g., via time-shifting, batch processing, etc.) communication between the processing devices 502.
[0057] Processing device 502 can be implemented as a server, personal computer, laptop computer, netbook computer, purpose-driven electrical appliance, dedicated computing device, and / or other device capable of communicating via network 504. Other types of processing devices 502 include, for example, personal data assistant (PDA) processors, handheld computers, cellular devices including cellular mobile phones and smartphones, tablet computers, electronic control units (ECUs), displays for industrial vehicles, etc.
[0058] Furthermore, the processing device 502 is mounted on one or more autonomous or semi-autonomous industrial vehicles 508, such as forklifts, reach trucks, order pickers, automated guided vehicles (AGVs), turret trucks, tractors, rider pallet trucks, portable stackers, and remote-controlled rapid-pick trucks. In the example configuration shown, the industrial vehicle 508 wirelessly communicates with a corresponding networking component 506 via one or more access points 510, which serves as a connection to network 504. Alternatively, the industrial vehicle 508 may be equipped with Wi-Fi, cellular, or other suitable technologies that allow the processing device 502 on the industrial vehicle 508 to communicate directly with remote devices (e.g., via network 504).
[0059] The system 100 shown also includes a processing device (e.g., a web server, file server, and / or other processing device) implemented as a server 512, which supports (e.g., can be used to execute) Figure 1 The process 100 comprises an analysis engine 514 and a corresponding data source (collectively referred to as data source 516, which may or may not include the reference image as described herein). Analysis engine 514 and data source 516 provide domain-level resources for industrial vehicle 508. Furthermore, data source 516 stores data related to the activities of industrial vehicle 508.
[0060] refer to Figure 6 A block diagram of a data processing system (i.e., a computer system that can be used as a server) is depicted according to an embodiment. Data processing system 600 may include a symmetric multiprocessor (SMP) system or other configurations including multiple processors 610 connected to a system bus 630. Alternatively, a single processor 610 may be employed. Local memory 620 is also connected to the system bus 630. I / O bus bridge 640 is connected to the system bus 630 and provides an interface to I / O bus 650. The I / O bus may be used to support one or more buses and corresponding devices 670, such as storage devices 660, removable media storage devices 670, input / output devices (I / O devices) 680, network adapters 690, etc. Network adapters may also be coupled to the system to enable the data processing system to couple to other data processing systems or remote printers or storage devices via an intermediate private or public network.
[0061] Devices such as graphics adapters, storage devices, and computer-usable storage media on which computer-usable program code is implemented may also be connected to the I / O bus. The computer-usable program code can be executed to implement any aspect of this embodiment, for example, to implement any aspect of any method and / or system component described herein.
[0062] This disclosure describes numerous aspects characterizing different features, combinations of features, capabilities, etc. In this regard, the embodiments and claims herein may cover any combination of one or more aspects in any desired combination, unless such combination is expressly excluded by the specification.
[0063] As those skilled in the art will recognize, aspects of this disclosure can be implemented as systems, methods, or computer program products. Therefore, aspects of this disclosure can take the form of entirely hardware embodiments, entirely software embodiments (including firmware, resident software, microcode, etc.), or embodiments combining software and hardware aspects, all of which are collectively referred to herein as “circuit,” “module,” or “system.” Furthermore, aspects of this disclosure can take the form of computer program products implemented on one or more computer-readable storage media having computer-readable program code implemented thereon.
[0064] Any combination of one or more computer-readable media may be used. A computer-readable medium can be a computer-readable signal medium or a computer-readable storage medium. A computer-readable storage medium can be, for example, but not limited to, electronic, magnetic, optical, electromagnetic, infrared, or semiconductor systems, apparatuses, or devices, or any suitable combination of the foregoing. More specific examples (not an exhaustive list) of computer-readable storage media will include: electrical connections having one or more wires, portable computer floppy disks, hard disks, random access memory (RAM), read-only memory (ROM), erasable programmable read-only memory (EPROM), flash memory, optical fiber, portable compact disk read-only memory (CD-ROM), optical storage devices, magnetic storage devices, or any suitable combination of the foregoing. In the context of this document, a computer-readable storage medium can be any tangible medium that can contain or store programs for use by or in connection with an instruction execution system, apparatus, or device. Computer storage media do not include propagating signals.
[0065] Computer-readable signal media may include, for example, propagated data signals in baseband or as part of a carrier wave in which computer-readable program code is implemented. Such propagated signals may take any of a variety of forms, including, but not limited to, electromagnetic, optical, or any suitable combination thereof. Computer-readable signal media may be any computer-readable medium that is not a computer-readable storage medium but can communicate, propagate, or transmit programs for use by or in connection with an instruction execution system, apparatus, or device.
[0066] Program code implemented on a computer-readable medium may be transmitted using any suitable medium, including but not limited to wireless, wired, fiber optic cable, RF, or any suitable combination thereof.
[0067] Computer program code used to perform the operations of various aspects of this disclosure may be written in any combination of one or more programming languages, including object-oriented programming languages (such as Java, Smalltalk, C++, etc.) and conventional procedural programming languages (such as the "C" programming language or similar programming languages). The program code may be executed entirely on the user's computer, partially on the user's computer, as a standalone software package, partially on the user's computer and partially on a remote computer, or entirely on a remote computer or server. In the latter case, the remote computer may be connected to the user's computer via any type of network (including a local area network (LAN) or a wide area network (WAN)), or may be connected to an external computer (e.g., through the network of an internet service provider).
[0068] This document describes aspects of the disclosure with reference to flowchart illustrations and / or block diagrams of methods, apparatus (systems), and computer program products according to embodiments of the disclosure. It will be understood that each block of the flowchart illustrations and / or block diagrams, and combinations of blocks in the flowchart illustrations and / or block diagrams, can be implemented by computer program instructions. These computer program instructions can be provided to a processor of a general-purpose computer, special-purpose computer, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus, create means for implementing the functions / actions specified in one or more blocks of the flowchart illustrations and / or block diagrams.
[0069] These computer program instructions may also be stored in a computer-readable medium that can instruct a computer, other programmable data processing apparatus or other device to operate in a particular manner, such that the instructions stored in the computer-readable medium produce an article of writing including instructions that implement the functions / actions specified in one or more blocks of a flowchart and / or block diagram.
[0070] Computer program instructions may also be loaded onto a computer, other programmable data processing apparatus or other device to cause a series of operational steps to be performed on the computer, other programmable apparatus or other device to produce a computer-implemented process, such that the instructions, which execute on the computer or other programmable apparatus, provide for implementing the function / action specified in one or more blocks of a flowchart and / or block diagram.
[0071] The flowcharts and block diagrams in the accompanying drawings illustrate the architecture, functionality, and operation of possible implementations of systems, methods, and computer program products according to various embodiments of the present disclosure. In this regard, each block in a flowchart or block diagram may represent a module, segment, or portion of code, including one or more executable instructions for implementing one or more specified logical functions. It should also be noted that in some alternative implementations, the functions marked in the blocks may not appear in the order indicated in the drawings. For example, depending on the functions involved, two blocks shown successively may actually be executed substantially simultaneously, or sometimes these blocks may be executed in reverse order. It will also be noted that each block illustrated in the block diagrams and / or flowcharts, and combinations of blocks in the block diagrams and / or flowcharts, may be implemented by a system based on dedicated hardware or a combination of dedicated hardware and computer instructions that performs the specified function or action.
[0072] The terminology used herein is for the purpose of describing particular embodiments only and is not intended to be limiting. As used herein, the singular forms “a,” “an,” and “the” are also intended to include the plural forms unless the context clearly indicates otherwise. It will be further understood that the terms “comprising” and / or “including,” when used in this specification, specify the presence of the stated features, integers, steps, operations, elements, and / or components, but do not exclude the presence or addition of one or more other features, integers, steps, operations, elements, components, and / or groups thereof.
[0073] All components or steps in the following claims, along with their corresponding structures, materials, actions, and equivalents of the functional elements, are intended to include any structure, material, or action for performing a function in combination with other claimed elements, as specifically claimed. The description in this disclosure has been presented for purposes of illustration and description, but is not intended to be exhaustive or limiting to the forms disclosed. Many modifications and variations will be apparent to those skilled in the art without departing from the scope and spirit of the disclosed embodiments. The aspects of this disclosure were chosen and described in order to best explain the principles and practical application of the disclosed embodiments and to enable others skilled in the art to understand the various embodiments and the various modifications suitable for the particular intended use.
Claims
1. A process for configuring a sensor mounted to a vehicle, the process comprising: determining an orientation of the sensor by: collecting a scan from the sensor; determining a field of view of the sensor based on the scan; and deriving the orientation of the sensor on the vehicle relative to the vehicle based on the field of view; determining a configuration of the sensor based on the orientation of the sensor relative to the vehicle and independent of any other sensors that can be present on the vehicle; and configuring the sensor based on the orientation of the sensor relative to the vehicle.
2. The process of claim 1, wherein deriving the orientation of the sensor on the vehicle relative to the vehicle based on the field of view comprises: comparing the field of view to images stored on the vehicle; and deriving the orientation of the sensor on the vehicle based on the comparison.
3. The process of claim 2, wherein comparing the field of view to images stored on the vehicle comprises determining which of the images stored on the vehicle has a highest number of similarities to the field of view.
4. The process of claim 3, wherein deriving the orientation of the sensor on the vehicle based on the comparison comprises matching the orientation to the image stored on the vehicle that has the highest number of similarities.
5. The process of claim 4, wherein determining the configuration of the sensor comprises determining the configuration of the sensor if the highest number of similarities exceeds a threshold.
6. The process of claim 4, wherein determining the configuration of the sensor comprises using a processor on the vehicle to determine the configuration of the sensor.
7. The process of claim 4, wherein determining the configuration of the sensor comprises using a processor on a server to determine the configuration of the sensor.
8. The process of claim 1, wherein deriving the orientation of the sensor on the vehicle relative to the vehicle based on the field of view comprises: sending the field of view to a server, wherein the server comprises an image of the field of view; and receiving the orientation of the sensor from the server.
9. The process of claim 1, wherein deriving the orientation of the sensor on the vehicle relative to the vehicle based on the field of view comprises: comparing the field of view to images stored on the vehicle; and deriving the orientation of the sensor on the vehicle based on the comparison.
10. The process of claim 9, wherein comparing the field of view to images stored on the vehicle comprises determining which of the images stored on the vehicle has a highest number of similarities to the field of view.
11. The process of claim 10, wherein deriving the orientation of the sensor on the vehicle based on the comparison comprises matching the orientation to the image stored on the vehicle that has the highest number of similarities.
12. The process of claim 11, wherein determining the configuration of the sensor comprises determining the configuration of the sensor if the highest number of similarities exceeds a threshold.
13. The process of claim 11, wherein determining the configuration of the sensor comprises using a processor on the vehicle to determine the configuration of the sensor.
14. The process of claim 11, wherein determining the configuration of the sensor comprises using a processor on a server to determine the configuration of the sensor. 15. The process of claim 1, wherein deriving an orientation of a sensor on the vehicle relative to the vehicle based on the field of view comprises: comparing the field of view to images stored on the vehicle; and deriving the orientation of the sensor on the vehicle based on the comparison.
16. The process of claim 15, wherein comparing the field of view to images stored on the vehicle comprises determining which of the images stored on the vehicle has a highest number of similarities to the field of view.
17. The process of claim 16, wherein deriving the orientation of the sensor on the vehicle based on the comparison comprises matching the orientation to the image stored on the vehicle having the highest number of similarities.
18. The process of claim 17, wherein determining the configuration of the sensor comprises determining the configuration of the sensor if the highest number of similarities exceeds a threshold.
19. The process of claim 17, wherein determining the configuration of the sensor comprises using a processor on the vehicle to determine the configuration of the sensor.
20. The process of claim 17, wherein determining the configuration of the sensor comprises using a processor on a server to determine the configuration of the sensor.