Method, device, terminal and storage medium for determining robot position

By obtaining and analyzing the characteristic information of the target objects in multiple original images, the problem of inaccurate positioning of the robot in the environment is solved, and the robot position is accurate positioning and the robustness improvement of the positioning information.

CN112686951BActive Publication Date: 2025-01-28SHENZHEN LDROBOT CO LTD
View PDF 3 Cites 0 Cited by

Patent Information

Application Number
CN202011418769.7
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2020-12-07
Publication Date
2025-01-28
Estimated Expiration
2040-12-07

AI Technical Summary

Technical Problem

It is difficult to obtain accurate positioning information of robots in the environment in the prior art.

Method used

By obtaining at least two original images, extract the characteristic information of the target object in the image, and determine the position of the target object based on these feature information, thereby determine the position of the robot.

Benefits of technology

The accurate positioning of the robot position is realized, and the robustness of obtaining the positioning information of the robot is enhanced.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN112686951B_ABST
    Figure CN112686951B_ABST
Patent Text Reader

Abstract

The present application provides a method, device, terminal and storage medium for determining the position of a robot, which relates to the field of robot technology and can obtain the position of the robot in an environment. The method for determining the position of a robot comprises: obtaining at least two original images; for each of the original images, obtaining feature information of a target object contained in the original image; determining the position of at least one target object according to the feature information of the target object respectively included in each of the original images; and determining the position of the robot according to the position of at least one target object.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present application belongs to the field of robot technology, and in particular, relates to a method, device, terminal and storage medium for determining a position of a robot. Background Art

[0002] With the development of sensor technology, artificial intelligence and other technologies, the field of robotics has become a booming emerging field, and mobile robots, as an important application, have received more and more attention. Generally speaking, in many application scenarios, robots are often required to obtain accurate positioning information in order to better navigate the robot.

[0003] Therefore, there is an urgent need for a method that can obtain the positioning information of the robot in the environment. Summary of the invention

[0004] The embodiments of the present application provide a method, device, terminal and storage medium for determining the position of a robot, so as to solve the problem that it is difficult to obtain the positioning information of the robot in the environment.

[0005] In a first aspect, an embodiment of the present application provides a method for determining a position of a robot, comprising:

[0006] Acquire at least two original images;

[0007] For each of the original images, acquiring feature information of the target object contained in the original image;

[0008] Determine the position of at least one of the target objects according to the feature information of the target objects respectively included in each of the original images;

[0009] The position of the robot is determined according to the position of at least one of the target objects.

[0010] By adopting the method for determining the position of a robot provided in the present application, at least two original images are acquired in advance, so as to understand the environment in which the robot is located and the characteristics of the corresponding target objects through the characteristic information of the target objects contained in the acquired original images, and determine the position of at least one of the target objects according to the characteristic information of the target objects respectively included in each of the original images, and further determine the position of the robot according to the position of at least one of the target objects, thereby achieving accurate positioning of the robot and improving the robustness of obtaining the positioning information of the robot.

[0011] Optionally, for each of the original images, obtaining feature information of a target object contained in the original image includes:

[0012] For each original image, feature information of the target object contained in the original image is obtained through a detection model or an edge detection algorithm.

[0013] Optionally, the feature information includes at least one of the category, texture, shape, area range in the image and position in the image of the target object.

[0014] Optionally, the feature information includes coordinates of at least one feature point;

[0015] The step of determining the position of at least one of the target objects according to the feature information of the target objects respectively included in each of the original images comprises:

[0016] For each target object in an original image, determining a coordinate difference of the target object according to coordinates of feature points of the target object respectively contained in each of the original images;

[0017] If it is determined that the coordinate difference is less than a preset value, the position of the target object is determined according to the coordinates of the feature points of the target object respectively contained in each of the original images.

[0018] Optionally, determining the position of at least one of the target objects according to the feature information of the target objects respectively included in each of the original images includes:

[0019] For each target object, determining an initial position of the target object according to feature information of the target object respectively included in each of the original images;

[0020] Determining the uncertainty corresponding to the initial position of the target object;

[0021] If the uncertainty is less than a preset threshold, the initial position of the target object is used as the position of the target object.

[0022] Optionally, determining the position of the robot according to the position of at least one of the target objects includes:

[0023] For each target object, obtaining distance information measured by a target device, wherein the distance information is used to describe the distance between the target object and the robot;

[0024] Obtaining an updated position of the target object according to the distance information and the position of the target object;

[0025] The position of the robot is determined according to the updated position respectively corresponding to at least one of the target objects.

[0026] Optionally, determining the position of the robot according to the position of at least one of the target objects includes:

[0027] Acquiring, by a target device, a relative displacement of the original image containing the target object collected by the robot at different positions;

[0028] Obtaining an updated position of the target object according to the relative displacement and the position of the target object;

[0029] The position of the robot is determined according to the updated position respectively corresponding to at least one of the target objects.

[0030] In a second aspect, an embodiment of the present application provides a device for determining a position of a robot, characterized in that it includes:

[0031] A first acquisition module, used to acquire at least two original images;

[0032] A second acquisition module, used for acquiring, for each of the original images, feature information of the target object contained in the original image;

[0033] A first determination module, configured to determine a position of at least one of the target objects according to feature information of the target objects respectively included in each of the original images;

[0034] The second determination module is used to determine the position of the robot according to the position of at least one of the target objects.

[0035] In a third aspect, an embodiment of the present application provides a terminal, comprising a memory, a processor, and a computer program stored in the memory and executable on the processor, wherein the processor implements the described method when executing the computer program.

[0036] In a fourth aspect, an embodiment of the present application provides a computer-readable storage medium, wherein the computer-readable storage medium stores a computer program, and the computer program implements the described method when executed by a processor.

[0037] In a fifth aspect, an embodiment of the present application provides a computer program product, which, when executed on a terminal, enables the terminal to execute any of the methods described in the first aspect.

[0038] It can be understood that the beneficial effects of the second to fifth aspects mentioned above can be found in the relevant description of the first aspect mentioned above, and will not be repeated here. BRIEF DESCRIPTION OF THE DRAWINGS

[0039] In order to more clearly illustrate the technical solutions in the embodiments of the present application, the drawings required for use in the embodiments or the description of the prior art will be briefly introduced below. Obviously, the drawings described below are only some embodiments of the present application. For ordinary technicians in this field, other drawings can be obtained based on these drawings without paying creative labor.

[0040] Figure 1 It is a flowchart of a method for determining a robot position provided in one embodiment of the present application.

[0041] Figure 2 It is a specific flow chart of step S13 of the method for determining the position of the robot provided in one embodiment of the present application.

[0042] Figure 3 It is a specific flowchart of step S13 of the method for determining the position of the robot provided in another embodiment of the present application.

[0043] Figure 4 This is a schematic diagram of an application scenario of a method for determining a robot position provided in an embodiment of the present application.

[0044] Figure 5 It is a specific flow chart of step S14 of the method for determining the position of the robot provided in one embodiment of the present application.

[0045] Figure 6 It is a specific flowchart of step S14 of the method for determining the position of the robot provided in another embodiment of the present application.

[0046] Figure 7 This is the structural intention of a device for determining the position of a robot provided in one embodiment of the present application.

[0047] Figure 8 It is a schematic diagram of the structure of a terminal provided in another embodiment of the present application. DETAILED DESCRIPTION

[0048] In the following description, specific details such as specific system structures, technologies, etc. are provided for the purpose of illustration rather than limitation, so as to provide a thorough understanding of the embodiments of the present application. However, it should be clear to those skilled in the art that the present application may also be implemented in other embodiments without these specific details. In other cases, detailed descriptions of well-known systems, devices, circuits, and methods are omitted to prevent unnecessary details from obstructing the description of the present application.

[0049] As used in the specification and appended claims of this application, the term "if" can be interpreted as "when" or "uponce" or "in response to determining" or "in response to detecting", depending on the context. Similarly, the phrase "if it is determined" or "if [described condition or event] is detected" can be interpreted as meaning "uponce it is determined" or "in response to determining" or "uponce [described condition or event] is detected" or "in response to detecting [described condition or event]", depending on the context.

[0050] In addition, in the description of the present application specification and the appended claims, the terms "first", "second", "third", etc. are only used to distinguish the descriptions and cannot be understood as indicating or implying relative importance.

[0051] References to "one embodiment" or "some embodiments" etc. described in the specification of this application mean that one or more embodiments of the present application include specific features, structures or characteristics described in conjunction with the embodiment. Therefore, the statements "in one embodiment", "in some embodiments", "in some other embodiments", "in some other embodiments", etc. that appear in different places in this specification do not necessarily refer to the same embodiment, but mean "one or more but not all embodiments", unless otherwise specifically emphasized in other ways. The terms "including", "comprising", "having" and their variations all mean "including but not limited to", unless otherwise specifically emphasized in other ways.

[0052] In order to illustrate the technical solution described in this application, a specific embodiment is provided below for illustration.

[0053] See also Figure 1 , Figure 1 It is a flow chart of an implementation of a method for determining the position of a robot provided in an embodiment of the present application. In this embodiment, the method for determining the position of a robot is used to locate the position of the robot in the environment during the movement of the robot, and its execution subject is a terminal. The terminal can be the robot itself or other devices other than the robot. When the terminal is other devices other than the robot, data communication can be performed between the terminal and the robot to realize data interaction between the two, as well as operations such as control of the robot. The following is an example of an embodiment in which the terminal is a robot:

[0054] like Figure 1 The method shown for determining the position of a robot comprises the following steps:

[0055] S11: Acquire at least two original images.

[0056] In step S11, the original image is used to describe the physical environment that the robot is in. It is understandable that in order to better understand the physical environment that the robot is in, multiple original images can be obtained. The original image contains a projection of at least one target object.

[0057] The target object is an obstacle in the robot's physical environment that can hinder the robot's movement. Obstacles can include static obstacles or dynamic obstacles. Dynamic obstacles are obstacles that exist in the robot's physical environment and have a moving speed. For example, people and animals walking in the robot's physical environment, rolling toys, etc. Correspondingly, static obstacles are obstacles that do not have a moving speed.

[0058] In this embodiment, at least two original images of the physical environment in which the robot is located are obtained by a camera device. Since the original images contain the environmental information of the robot, and the environmental information includes characteristic information of the target object, obtaining the original images is equivalent to obtaining the physical environment in which the robot is located, so that the position of the robot can be better determined based on the physical environment, so that the robot can subsequently be better navigated according to the determined position, making the navigation smoother and the robot performing tasks more efficiently.

[0059] As for when to obtain at least two original images, it may include but not be limited to the following two scenarios.

[0060] Scenario 1: When a work task is detected and an instruction to start the robot is received, at least two original images are acquired.

[0061] For example, a robot is deployed in a restaurant. When a food delivery task is detected and an instruction to start the robot is detected, such as when a start button is triggered, at least two original images of the restaurant are acquired so that the robot can better determine the restaurant environment in which the robot is located, and the robot's position based on the restaurant environment, so as to better perform the food delivery task.

[0062] Scenario 2: The navigation path in the robot is incomplete, and the robot cannot ultimately complete the task based on the navigation path. Therefore, in order to further move forward to complete the task, the robot acquires at least two original images when it is detected that the robot has reached the end of the preset route.

[0063] For example, when the robot is performing a work task along a preset navigation path, if it detects that it has reached the end of the navigation path and has not yet reached the destination corresponding to the work task, at least two original images are obtained to determine the position of the robot, providing a basis for planning the continued navigation path.

[0064] It should be understood that, in actual applications, at least two original images may be acquired through a camera device configured on the robot, or at least two original images may be acquired through a camera device communicatively connected to the robot and then transmitted back to the robot.

[0065] In one embodiment, the original image can be acquired by a monocular camera configured on the robot.

[0066] In one embodiment, when the robot moves along a preset navigation path, if it detects that it is at the roadside of an intersection to be passed, it obtains at least two original images of the intersection from a camera device corresponding to the intersection to be passed. The preset navigation path is a pre-configured route for executing a task.

[0067] In one embodiment, if the original image obtained is a surface image, the original image is preprocessed to restore the original image to a plane image. The surface image refers to a three-dimensional image, and the plane image refers to a two-dimensional image; the preprocessing may be a dimensionality reduction process. It is understandable that after the original image is reduced in dimension, the dimension of the physical environment in the original image is also reduced accordingly. Therefore, when extracting features of the target object, the data that needs to be processed is greatly reduced, which reduces the difficulty of image processing and further improves the efficiency of identifying the target object.

[0068] S12: For each of the original images, obtain feature information of the target object contained in the original image.

[0069] In step S12, the feature information is information recorded in the original image and can be used to identify the target object. It can be understood that the target object is identified by the feature information of the target object. Among them, when there are multiple target objects in an original image, each target object can be identified by the feature information corresponding to each target object.

[0070] As a possible implementation of this embodiment, for each of the original images, obtaining feature information of the target object contained in the original image includes:

[0071] For each original image, feature information of the target object contained in the original image is obtained through a detection model or an edge detection algorithm.

[0072] In this embodiment, a pre-trained detection model is pre-stored in the terminal. The detection model uses a neural network algorithm and can be obtained by training an initial detection model based on a training set of image samples of the target object. The initial detection model is a neural network model provided by the present application for realizing feature extraction of the target object in the case of including various types of target objects as references.

[0073] The edge detection algorithm is used to describe the logical process of detecting the edge of the projection of the target object in the original image.

[0074] It is understandable that the detection model can be pre-trained by the terminal, or it can be pre-trained by other devices and then the file corresponding to the detection model can be transplanted to the terminal. In other words, the execution subject of training the inspection model and the execution subject of using the detection model to perform feature detection of the target object can be the same or different. For example, when other devices are used to train the initial detection model, after the other devices finish training the initial detection model, the model parameters of the initial detection model are fixed to obtain the file corresponding to the detection model. Then the file is transplanted to the terminal.

[0075] After acquiring at least two original images, the terminal uses the detection model to process each original image to determine whether the feature information of the target object in the original image can be extracted. If the feature information of the target object is extracted, it is determined that the projection of the target object is recorded in the original image, and the feature information corresponding to the projection of the target object is obtained.

[0076] In addition, by obtaining the image region of at least one target object in the second original image through the edge detection algorithm, the feature information corresponding to each image region is obtained. The image region is used to describe the position of the target object in the original image. It is understandable that the image region corresponding to each target object will contain the features of the target object.

[0077] In one embodiment, for each original image, in order to quickly obtain the image area of ​​at least one target object in the original image, the distribution of each feature point in the original image is obtained in advance, and the area size of the image area projected by each object existing in the original image is obtained based on the distribution of each feature point. Further, based on the area size of the image area of ​​the object existing in the original image, the initial distribution area of ​​the feature points corresponding to at least one target object with an area greater than a preset area is determined, and the initial distribution area of ​​the feature points corresponding to the at least one target object is marked. Further, edge detection is performed on the marked initial distribution area of ​​the feature points through an edge detection algorithm to obtain the image area of ​​at least one target object in the original image. In this embodiment, since it is not necessary to obtain the image areas of all objects existing in the original image one by one through an edge detection algorithm, the efficiency is higher.

[0078] In one embodiment, the feature information includes the size of the object. After the feature information of the target object in the original image is obtained by the detection model, it is determined whether there is a target object with a size larger than a preset size in the original image according to the size of the target object. If there is a target object with a size larger than the preset size, the feature information of the target object with a size smaller than the preset size is deleted, so as to better determine the position of the robot.

[0079] In one embodiment, the feature information includes at least one of the category, texture, shape, area range in the image, position in the image, and angle corresponding to the acquisition of the target object.

[0080] S13: Determine the position of at least one of the target objects according to the feature information of the target objects respectively included in each of the original images.

[0081] In step S13 , the position of the target object is used to describe the physical position of the target object in the environment where the robot is located.

[0082] In this embodiment, each original image is an image acquired from different angles.

[0083] It can be understood that since each target object can be distinguished based on the feature information of the target object, for a target object, based on the feature information of the target object respectively included in each original image, the feature information reflecting the target object is first identified in each original image, and then the projection of the same target object in each original image is confirmed based on the feature information. Based on the projection of the target object in each original image, the projection of the target object in the original images from multiple angles is used to determine the position of the target object, and the robot can perform obstacle avoidance actions according to the position of the target object.

[0084] like Figure 4 As shown, the original image obtained from angle A is A1, and the original image obtained from angle B is B1. The A1 image includes the projection C of the target object M in the A1 image, and the shape is circular, and the B1 image includes the projection D of the target object M in the B1 image, and the shape is circular. Therefore, based on the projection C and the projection D, the position of the target object M is determined.

[0085] As a possible implementation of this embodiment, the feature information includes coordinates of at least one feature point;

[0086] The step of determining the position of at least one of the target objects according to the feature information of the target objects respectively included in each of the original images comprises:

[0087] S21: for each target object in an original image, determining a coordinate difference of the target object according to coordinates of feature points of the target object respectively contained in each of the original images;

[0088] S22: If it is determined that the coordinate difference is less than a preset value, determining the position of the target object according to the coordinates of the feature points of the target object respectively contained in each of the original images.

[0089] In this embodiment, each original image is an image containing a target object acquired from different angles. It is understandable that each feature point of the target object has certain coordinates in the original image, so the position of the target object in the original image can be described by the coordinates of the feature points of the target object.

[0090] It can be understood that the coordinate difference is the difference between the coordinates of the feature points of the target object respectively included in the two original images, for example, the difference between the coordinates of the feature point of the target object A in the first image and the coordinates of the feature point of the target object A in the second image.

[0091] The preset value is used to describe, for a target object, when the target objects respectively included in the respective original images are the same target object, the maximum coordinate difference between the coordinates of the feature points of the target object respectively included in the respective original images.

[0092] In addition, for each target object in an original image, in order to determine whether the objects between the original images are the same object, the coordinates of the feature points of the target object in each original image are obtained in advance, so as to determine the coordinate difference of the target object based on the coordinates of the feature points of the target object respectively contained in each of the original images.

[0093] It is understandable that the frame rate of the camera device used to acquire the image is relatively high, so the objects in two adjacent original images can be regarded as continuously moving, so the coordinates of the target object in each original image will not be displaced too much, so when the difference between the coordinates of the feature points of the target object in one original image and the coordinates of the feature points of the target object in another original image is less than a preset value, it means that the target object is the same object, and by analogy, it can be determined whether the same target object exists in other multiple original images. Furthermore, the position of the target object can be quickly and accurately determined based on the coordinates of the feature points of the target object respectively contained in each of the original images.

[0094] As a possible implementation manner of this embodiment, determining the position of at least one of the target objects according to the feature information of the target objects respectively included in each of the original images includes:

[0095] S31: for each target object, determining an initial position of the target object according to feature information of the target object respectively included in each of the original images;

[0096] S32: Determine the uncertainty corresponding to the initial position of the target object;

[0097] S33: If the uncertainty is less than a preset threshold, the initial position of the target object is used as the position of the target object.

[0098] In this embodiment, the uncertainty refers to a certain error when extracting the position of the target object in the original image, which leads to a corresponding calculation error when calculating the position of the target object. The range of this error is called uncertainty. The uncertainty corresponding to the initial position can be calculated by referring to the existing related calculation uncertainty method.

[0099] It is understandable that when the uncertainty corresponding to the initial position of the target object is greater than a preset threshold, the initial position is stored in a preset storage space, and when a new initial position of the target object is obtained, the previously stored initial position is replaced.

[0100] S14: Determine the position of the robot according to the position of at least one of the target objects.

[0101] In step S14, the position of the robot is used to describe a reference position of the robot in the physical environment.

[0102] In one embodiment, when the position of at least one target object is determined, the position of the marker is determined. The position of the robot is determined based on the position of the at least one target object and the position of the marker, wherein the marker is another object with determined position information.

[0103] In one embodiment, there is a possible scenario that when the robot loses its position, the positional relationship of the at least one target object on the original image is determined based on the position of at least one of the target objects, and the angular relationship between the at least one target object is determined by projecting it toward the ground based on the positional relationship. The angular relationship is then matched with the global map to determine the position of the robot.

[0104] In one embodiment, when it is determined that the number of positions of at least one target object is greater than a preset number, a local map is generated, and the position of the robot is marked in the local map. The marked local map is matched with the entire map to determine the position of the robot, so that it can continue to move and navigate based on the global map.

[0105] like Figure 5As shown, as a possible implementation method of this embodiment, determining the position of the robot according to the position of at least one of the target objects includes:

[0106] S41: For each target object, obtaining distance information obtained by measuring the target object with a target device, where the distance information is used to describe the distance between the target object and the robot;

[0107] S42: Obtaining an updated position of the target object according to the distance information of the target object;

[0108] S43: Determine the position of the robot according to the updated position corresponding to at least one of the target objects.

[0109] In this embodiment, the target device is a device for obtaining the distance between the target object and the robot. The target device can be set in the physical environment where the machine is located and communicated with the robot, or it can be installed on the robot and communicated with the robot. For example, the target device can be a laser radar configured on the robot, wherein the laser radar is used to transmit a detection signal (laser beam) to the target object, and compare the received signal reflected from the target object (target echo) with the transmitted signal, and process it to obtain the motion parameters of the target object, such as the distance and orientation between the target object and the robot, and at least one of the parameters such as the height, speed, posture, and shape of the target object.

[0110] It can be understood that the position of at least one of the target objects is determined based on the feature information of the target objects respectively included in each of the original images. Since the algorithm for identifying the target object may have certain errors, there is a certain deviation between the determined position of the target object and the actual position of the target object, which makes the positional relationship between the target object and the robot have a certain deviation. Therefore, the distance information is obtained again according to the target device to correct the positional relationship between the target object and the robot according to the distance information, thereby realizing the correction of the target object, so as to further reduce the error in determining the position of the target object and obtain the new position of the target object.

[0111] Among them, after determining the position of at least one of the target objects, the target device is used to locate the at least one target object in the physical environment one by one to obtain the distance between the target object and the robot one by one, or the target device is used to locate multiple target objects in the physical environment to obtain the distance between the multiple target objects and the robot, so as to correct the positional relationship between the target object and the robot according to the obtained distance information, and better determine the positional relationship between each target object, so as to better determine the position of the robot according to the corrected positional relationship between each target object and the positional relationship between the target object and the robot.

[0112] In one embodiment, after determining the position of at least one of the target objects, a monocular camera is used to measure the target objects in the physical environment to obtain the relative distance between the robot and the target object. Since there is a preset proportional relationship between the relative distance and the actual distance between the robot and the target object, the distance relationship between the robot and the target object and the distance relationship between each target object can be increased or decreased according to the preset ratio.

[0113] like Figure 6 As shown, as a possible implementation method of this embodiment, determining the position of the robot according to the position of at least one of the target objects includes:

[0114] S51: acquiring, through a target device, a relative displacement of the robot collecting original images containing the target object at different positions;

[0115] S52: Obtaining an updated position of the target object according to the relative displacement and the position of the target object;

[0116] S53: Determine the position of the robot according to the updated position corresponding to at least one of the target objects.

[0117] In this embodiment, the target device is a device for obtaining the relative displacement of the robot when acquiring each original image. The target device can be set in the physical environment where the machine is located and communicated with the robot, or can be installed on the robot and communicated with the robot. In some embodiments, the target device can be a ranging sensor, through which the relative displacement of the robot when acquiring each original image can be obtained.

[0118] Relative displacement is used to describe the displacement distance of the robot in the physical environment when the robot acquires two adjacent original images. It is understandable that when the position of the robot is determined based on the position of at least one of the target objects, there is a certain error in the feature information of the target object acquired when acquiring the feature information of the target object contained in the original image, which in turn leads to a certain error in the position of the target object determined based on the feature information of the target object respectively included in each of the original images. Therefore, when the position of the robot is determined directly based on the position of the target object, there is a certain error in the position of the robot determined. Therefore, it is necessary to obtain the relative displacement of the robot so as to obtain the updated position of the target object based on the relative displacement and the position of the target object, further improve the accuracy of determining the position of the target object, and thus accurately determine the position of the robot.

[0119] For example, when the first original image including the target object is obtained through the camera device, the position of the robot at that moment forms a certain angle with the target object. When the second original image including the target object is continuously obtained through the camera device, the position of the robot at that moment also forms a certain angle with the target object. Therefore, by obtaining the relative displacement of the robot corresponding to the first original image and the second original image through the target device, the position of the target object can be better determined.

[0120] As a possible implementation of this embodiment, the feature information includes coordinates of at least one feature point;

[0121] The step of determining the position of at least one of the target objects according to the feature information of the target objects respectively included in each of the original images comprises:

[0122] For each target object, determining at least two first images containing the target object from the at least two original images;

[0123] Determine at least two second images from the at least two first images according to the feature points of the target object respectively contained in each first image, wherein for each second image, there is another second image, and the same feature points of the target object exist in the another second image as in the second image;

[0124] The position of the target object is determined according to the coordinates of the feature points of the target object respectively contained in each second image.

[0125] In this embodiment, the first image is used to describe the physical environment in which the robot is located. It can be understood that in order to determine the position of the target object, at least two first images are determined from the at least two original images, and the feature points of the target object are recorded in the at least two first images. The determined first images are images containing the target object acquired at different angles.

[0126] The feature point is used to describe the position of the target object in the first image. For example, in the acquired first image, the projection corresponding to the target object occupies that part of the area.

[0127] The second image is used to describe the target object.

[0128] It can be understood that, according to the feature points of the target object respectively contained in each first image, at least two second images are determined from the at least two first images, that is, the feature points corresponding to the target object are found in the feature points of the target object respectively contained in each first image, and a second image is determined from each first image, so that for each second image, there is another second image, and the other second image has the same feature points of the target object as the second image. Furthermore, according to the coordinates of the feature points of the target object respectively contained in each second image, the position of the target object is determined. Specifically, according to the coordinates of the feature points of the target object respectively contained in each second image, through triangular relationship processing, the distance between the target object and the robot is calculated, that is, the position of the target object is obtained, and the position of the robot is determined by using the position. Among them, the process of triangular relationship processing can be specifically referred to the relevant scheme in the prior art, which will not be repeated here.

[0129] In one embodiment, the at least two first images used to determine the at least two second images are images acquired from different angles at consecutive different moments. The first image may be acquired using a monocular camera. After the first image is acquired at the first moment, at the second moment, a first image containing the target object is acquired from another angle using the monocular camera.

[0130] As a possible implementation of this embodiment, determining at least two second images from the at least two first images according to the feature points of the target object respectively contained in each of the first images includes:

[0131] For each target object, obtaining coordinates of feature points of the target object respectively contained in each first image;

[0132] At least two second images are determined based on the coordinates of the feature points of the target object respectively contained in each second image, wherein for each second image, there is another second image, and the difference between the coordinates of the feature points of the target object in the other second image and the coordinates of the feature points of the target object in the second image is less than a preset value.

[0133] In this embodiment, each first image is an image containing a target object acquired from different angles. It is understandable that each feature point of the target object has certain coordinates in the first image, so the position can be described by the coordinates of the feature point of the target object.

[0134] In addition, in order to quickly determine the second image in the first image, the coordinates of the feature points of the target object are obtained in advance, so as to determine at least two original images containing the feature points of the same target object based on the coordinates of the feature points of the target object contained in the second image corresponding to each first image. It can be understood that the frame rate of the camera used to acquire the image is relatively high, so the movement between the two adjacent first images is continuous, so the target object will not have too much displacement, so when the difference between the coordinates of the feature points of the target object in the second image corresponding to a first image and the coordinates of the feature points of the target object in the second image corresponding to another first image is less than a preset value, it means that the target object is the same object, and so on, multiple second images can be determined. Furthermore, the position of the target object can be quickly and accurately determined based on the coordinates of the feature points of the target object contained in each second image.

[0135] As a possible implementation of this embodiment, determining the position of the target object according to the coordinates of the feature points of the target object respectively contained in each second image includes:

[0136] Determining an initial position of the target object according to coordinates of feature points of the target object respectively contained in each second image;

[0137] After determining the initial position of the target object, determining the uncertainty corresponding to the initial position of the target object;

[0138] If the uncertainty is less than a preset threshold, the initial position of the target object is used as the position of the target object.

[0139] By adopting the method for determining the position of a robot provided in the present application, at least two original images are acquired in advance, so as to understand the environmental conditions of the robot and the characteristics of the corresponding target objects through the acquired original images, and determine the position of at least one of the target objects according to the characteristic information of the target objects respectively included in each of the original images, and further determine the position of the robot according to the position of at least one of the target objects, thereby achieving accurate positioning of the robot and improving the robustness of obtaining the positioning information of the robot.

[0140] It should be understood that the size of the serial numbers of the steps in the above embodiments does not mean the order of execution. The execution order of each process should be determined by its function and internal logic, and should not constitute any limitation on the implementation process of the embodiments of the present application.

[0141] Corresponding to the method for determining the position of the robot described in the above embodiment, Figure 7 A structural block diagram of a device for determining a robot position provided in an embodiment of the present application is shown. For ease of explanation, only the portion related to the embodiment of the present application is shown.

[0142] Reference Figure 7 , the device 100 comprises:

[0143] A first acquisition module 101, used to acquire at least two original images;

[0144] The second acquisition module 102 is used to acquire, for each of the original images, feature information of the target object contained in the original image;

[0145] A first determination module 103, configured to determine the position of at least one of the target objects according to the feature information of the target objects respectively included in each of the original images;

[0146] The second determination module 104 is used to determine the position of the robot according to the position of at least one of the target objects.

[0147] Optionally, the second acquisition module 102 is further configured to obtain, for each original image, feature information of a target object contained in the original image by using a detection model or an edge detection algorithm.

[0148] Optionally, the feature information includes coordinates of at least one feature point.

[0149] The first determination module 103 is also used to determine, for each target object in an original image, a coordinate difference of the target object according to the coordinates of the feature points of the target object respectively contained in each of the original images; if it is determined that the coordinate difference is less than a preset value, determine the position of the target object according to the coordinates of the feature points of the target object respectively contained in each of the original images.

[0150] Optionally, the first determination module 103 is also used to determine, for each target object, the initial position of the target object according to the feature information of the target object respectively included in each of the original images; determine the uncertainty corresponding to the initial position of the target object; if the uncertainty is less than a preset threshold, use the initial position of the target object as the position of the target object.

[0151] Optionally, the second determination module 104 is also used to obtain distance information measured by the target device for each target object, wherein the distance information is used to describe the distance between the target object and the robot; obtain an updated position of the target object based on the distance information and the position of the target object; and determine the position of the robot based on the updated position corresponding to at least one of the target objects.

[0152] Optionally, the second determination module 104 is further used to obtain, through a target device, a relative displacement of an original image containing the target object collected by the robot at different positions; obtain an updated position of the target object based on the relative displacement and the position of the target object; and determine the position of the robot based on the updated positions corresponding to at least one of the target objects.

[0153] Figure 8 This is a schematic diagram of the structure of a terminal provided in an embodiment of the present application. Figure 8 As shown, the terminal 8 of this embodiment includes: at least one processor 80 ( Figure 8 Only one processor is shown in the figure), a memory 81, and a computer program 82 stored in the memory 81 and executable on the at least one processor 80, wherein when the processor 80 executes the computer program 82, the steps in any of the above-mentioned method embodiments for determining the position of the robot are implemented.

[0154] The terminal 8 may be a computing device such as a mobile robot, a desktop computer, a notebook, a PDA, or a cloud server. The terminal may include, but is not limited to, a processor 80 and a memory 81. Those skilled in the art will appreciate that Figure 8It is only an example of the terminal 8 and does not constitute a limitation on the terminal 8. The terminal 8 may include more or fewer components than shown in the figure, or a combination of certain components, or different components. For example, it may also include input and output devices, network access devices, etc.

[0155] The processor 80 may be a central processing unit (CPU), or other general-purpose processors, digital signal processors (DSP), application-specific integrated circuits (ASIC), field-programmable gate arrays (FPGA) or other programmable logic devices, discrete gate or transistor logic devices, discrete hardware components, etc. A general-purpose processor may be a microprocessor or any conventional processor, etc.

[0156] In some embodiments, the memory 81 may be an internal storage unit of the terminal 8, such as a hard disk or memory of the terminal 8. In other embodiments, the memory 81 may also be an external storage device of the terminal 8, such as a plug-in hard disk, a smart media card (SMC), a secure digital (SD) card, a flash card, etc. equipped on the terminal 8. Further, the memory 81 may also include both an internal storage unit of the terminal 8 and an external storage device. The memory 81 is used to store an operating system, an application program, a boot loader (BootLoader), data, and other programs, such as the program code of the computer program. The memory 81 may also be used to temporarily store data that has been output or is to be output.

[0157] It should be noted that the information interaction, execution process, etc. between the above-mentioned devices / modules are based on the same concept as the method embodiment of the present application. Their specific functions and technical effects can be found in the method embodiment part and will not be repeated here.

[0158] The technicians in the relevant field can clearly understand that for the convenience and simplicity of description, only the division of the above-mentioned functional units and modules is used as an example for illustration. In practical applications, the above-mentioned function allocation can be completed by different functional units and modules as needed, that is, the internal structure of the device can be divided into different functional units or modules to complete all or part of the functions described above. The functional units and modules in the embodiment can be integrated in a processing unit, or each unit can exist physically separately, or two or more units can be integrated in one unit. The above-mentioned integrated unit can be implemented in the form of hardware or in the form of software functional units. In addition, the specific names of the functional units and modules are only for the convenience of distinguishing each other, and are not used to limit the scope of protection of this application. The specific working process of the units and modules in the above-mentioned system can refer to the corresponding process in the aforementioned method embodiment, which will not be repeated here.

[0159] An embodiment of the present application further provides a computer-readable storage medium, wherein the computer-readable storage medium stores a computer program, and when the computer program is executed by a processor, the steps in the above-mentioned method embodiments can be implemented.

[0160] An embodiment of the present application provides a computer program product. When the computer program product runs on a terminal, the terminal can implement the steps in the above-mentioned method embodiments when executing the computer program product.

[0161] If the integrated unit is implemented in the form of a software functional unit and sold or used as an independent product, it can be stored in a computer-readable storage medium. Based on this understanding, the present application implements all or part of the processes in the above-mentioned embodiment method, which can be completed by instructing the relevant hardware through a computer program, and the computer program can be stored in a computer-readable storage medium, and the computer program can implement the steps of the above-mentioned various method embodiments when executed by the processor. Among them, the computer program includes computer program code, and the computer program code can be in source code form, object code form, executable file or some intermediate form. The computer-readable medium may at least include: any entity or device that can carry the computer program code to the device / terminal, a recording medium, a computer memory, a read-only memory (ROM, Read-Only Memory), a random access memory (RAM, Random Access Memory), an electric carrier signal, a telecommunication signal, and a software distribution medium. For example, a USB flash drive, a mobile hard disk, a magnetic disk or an optical disk. In some jurisdictions, according to legislation and patent practice, computer-readable media cannot be electric carrier signals and telecommunication signals.

[0162] In the above embodiments, the description of each embodiment has its own emphasis. For parts that are not described or recorded in detail in a certain embodiment, reference can be made to the relevant descriptions of other embodiments.

[0163] Those of ordinary skill in the art will appreciate that the units and algorithm steps of each example described in conjunction with the embodiments disclosed herein can be implemented in electronic hardware, or a combination of computer software and electronic hardware. Whether these functions are performed in hardware or software depends on the specific application and design constraints of the technical solution. Professional and technical personnel can use different methods to implement the described functions for each specific application, but such implementation should not be considered to be beyond the scope of this application.

[0164] In the embodiments provided in the present application, it should be understood that the disclosed devices / terminals and methods can be implemented in other ways. For example, the device / terminal embodiments described above are only schematic. For example, the division of the modules or units is only a logical function division. There may be other division methods in actual implementation, such as multiple units or components can be combined or integrated into another system, or some features can be ignored or not executed. Another point is that the mutual coupling or direct coupling or communication connection shown or discussed can be an indirect coupling or communication connection through some interfaces, devices or units, which can be electrical, mechanical or other forms.

[0165] The units described as separate components may or may not be physically separated, and the components shown as units may or may not be physical units, that is, they may be located in one place or distributed on multiple network units. Some or all of the units may be selected according to actual needs to achieve the purpose of the solution of this embodiment.

[0166] The embodiments described above are only used to illustrate the technical solutions of the present application, rather than to limit them. Although the present application has been described in detail with reference to the aforementioned embodiments, a person skilled in the art should understand that the technical solutions described in the aforementioned embodiments may still be modified, or some of the technical features may be replaced by equivalents. Such modifications or replacements do not deviate the essence of the corresponding technical solutions from the spirit and scope of the technical solutions of the embodiments of the present application, and should all be included in the protection scope of the present application.

Claims

1. A method for determining the position of a robot, characterized in that include: Acquire at least two original images; For each of the original images, acquiring feature information of a target object contained in the original image, wherein the feature information is information used to identify the target object; Determine the position of at least one of the target objects according to the feature information of the target objects respectively included in each of the original images; determining a position of the robot according to a position of at least one of the target objects; Determining the position of the robot according to the position of at least one of the target objects comprises: Acquiring, by a target device, a relative displacement of the original image containing the target object collected by the robot at different positions; Obtaining an updated position of the target object according to the relative displacement and the position of the target object; The position of the robot is determined according to the updated position respectively corresponding to at least one of the target objects.

2. The method according to claim 1, characterized in that The step of obtaining, for each of the original images, feature information of the target object contained in the original image includes: For each original image, feature information of the target object contained in the original image is obtained through a detection model or an edge detection algorithm.

3. The method according to claim 1, characterized in that The feature information includes at least one of the category, texture, shape, area range in the image, and position in the image of the target object.

4. The method according to claim 1, characterized in that The feature information includes coordinates of at least one feature point; The step of determining the position of at least one of the target objects according to the feature information of the target objects respectively included in each of the original images comprises: For each target object in an original image, determining a coordinate difference of the target object according to coordinates of feature points of the target object respectively contained in each of the original images; If it is determined that the coordinate difference is less than a preset value, the position of the target object is determined according to the coordinates of the feature points of the target object respectively contained in each of the original images.

5. The method according to claim 1, characterized in that The step of determining the position of at least one of the target objects according to the feature information of the target objects respectively included in each of the original images comprises: For each target object, determining an initial position of the target object according to feature information of the target object respectively included in each of the original images; Determining the uncertainty corresponding to the initial position of the target object; If the uncertainty is less than a preset threshold, the initial position of the target object is used as the position of the target object.

6. The method according to any one of claims 1 to 5, characterized in that: Determining the position of the robot according to the position of at least one of the target objects comprises: For each target object, obtaining distance information measured by a target device, wherein the distance information is used to describe the distance between the target object and the robot; Obtaining an updated position of the target object according to the distance information and the position of the target object; The position of the robot is determined according to the updated position respectively corresponding to at least one of the target objects.

7. A device for determining the position of a robot, characterized in that include: A first acquisition module, used to acquire at least two original images; A second acquisition module is used to acquire, for each of the original images, feature information of a target object contained in the original image, wherein the feature information is information used to identify the target object; A first determination module, configured to determine a position of at least one of the target objects according to feature information of the target objects respectively included in each of the original images; A second determination module, configured to determine a position of the robot according to a position of at least one of the target objects; The second determination module is also used to obtain the relative displacement of the original image containing the target object collected by the robot at different positions through the target device; obtain the updated position of the target object according to the relative displacement and the position of the target object; and determine the position of the robot according to the updated position corresponding to at least one of the target objects.

8. A terminal, characterized in that: The method comprises a memory, a processor, and a computer program stored in the memory and executable on the processor, wherein the processor implements the method according to any one of claims 1 to 6 when executing the computer program.

9. A computer-readable storage medium, characterized in that: The computer-readable storage medium stores a computer program, and when the computer program is executed by a processor, the method according to any one of claims 1 to 6 is implemented.

Citation Information

Patent Citations

  • Gauge point positioning method combining laser ranging with binocular camera

    CN107093195A

  • Method and device for determining pose of robot, robot, and readable storage medium

    CN110631554A

  • Position estimation apparatus of mobile robot using indoor ceiling image

    KR1020130043305A