Robot, positioning method, positioning system, positioning device and storage medium
Through the fusion of index positioning and sensor data, the problem of low positioning accuracy and high cost of underwater operation robots at the bottom of the pool is solved, and fast and accurate positioning is achieved, reducing the computational complexity.
Patent Information
- Application Number
- CN202210627596.2
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2022-05-31
- Publication Date
- 2025-05-02
- Estimated Expiration
- 2042-05-31
AI Technical Summary
The existing underwater operation robots have problems such as high cost, low accuracy and high computational complexity, making it difficult to achieve fast and accurate positioning when operating at the bottom of the pool.
By obtaining the index table of the first pose and the first sensor data of the robot, and indexing and positioning according to the real-time measured second sensor data and the index table, a set of candidate poses is obtained, and the candidate area of the robot is determined by combining the second pose at the current moment and the third pose at the previous moment.
It realizes the rapid and precise determination of the robot's position when working at the bottom of the pool, reduces costs and improves accuracy without the intervention of peripheral equipment.
Smart Images

Figure CN115096308B_ABST
Abstract
Description
Technical Field
[0001] The present invention relates to the field of underwater positioning technology, and in particular to a robot, a positioning method, a positioning system, a positioning device and a storage medium. Background Art
[0002] Some artificial flat-bottom pools, such as swimming pools, factory pools, and breeding pools, are characterized by a flat bottom, a relatively regular internal shape, and relatively clear water. When cleaning and operating such pools, if manual work is time-consuming, labor-intensive, and unsafe, robots are often used in the prior art to replace manual work to achieve automated operations. However, existing robots have the problems of high cost, low precision, and high computational complexity when operating underwater. Summary of the invention
[0003] On the one hand, the embodiments of the present application provide a robot, a positioning method, a positioning system, a positioning device and a storage medium to quickly determine the position of the robot with high accuracy and low cost without the intervention of peripheral equipment (such as external cameras, UWB, GPS satellites, etc.).
[0004] On the one hand, an embodiment of the present application provides a robot positioning method for working at the bottom of a pool, comprising: obtaining an index table about a first posture and first sensor data of the robot; performing index positioning based on second sensor data measured in real time and the index table to obtain a set of candidate postures; and determining a candidate area of the robot based on the set of candidate postures, the second posture of the robot at the current moment, and the third posture of the robot at the previous moment.
[0005] On the other hand, an embodiment of the present application provides a positioning system for a robot for working at the bottom of a pool, comprising: a sensor system installed on the robot, for measuring the position information of the robot; the sensor system comprises a distance measuring device and an inertial measurement unit, the distance measuring device is used to measure the distance to the wall of the pool in different directions, the inertial measurement unit is used to measure the acceleration and angular acceleration of the robot in multiple directions, and calculate the fusion angle; an operation system is used to execute the positioning method for the robot for working at the bottom of a pool as described above, and is used to receive real-time measurement data collected by the sensor system and perform calculations to obtain the position and posture of the robot.
[0006] On the other hand, an embodiment of the present application provides a positioning device for a robot operating at the bottom of a pool, the positioning device comprising: an acquisition module for acquiring an index table about a first posture of the robot and first sensor data; a calculation module for performing index positioning based on second sensor data measured in real time and the index table to obtain a set of candidate postures; a determination module for determining a candidate area of the robot based on the set of candidate postures, the second posture of the robot at a current moment, and the third posture of the robot at a previous moment.
[0007] On the other hand, an embodiment of the present application provides a robot for working at the bottom of a pool, including: a processor and a memory, wherein a computer program is stored in the memory, the processor is coupled to the memory, and the processor executes the computer program when working to implement the above-mentioned robot positioning method.
[0008] On the other hand, an embodiment of the present application provides a storage medium, on which is stored a computer program for controlling the robot, and when the computer program for controlling the robot is executed by a processor, the steps of the robot positioning method as described above are implemented.
[0009] The present application provides a positioning method for a robot used for working at the bottom of a pool, by obtaining an index table of the first posture and first sensor data of the robot, and obtaining a possible posture set of the robot according to the second sensor data and the index table, and then combining the second posture at the current moment and the third posture at the previous moment to obtain a more accurate posture. The present application obtains the possible posture of the robot through the index table, and continuously screens the possible postures of the robot, so that the accurate posture of the robot can be obtained conveniently, quickly and in real time. BRIEF DESCRIPTION OF THE DRAWINGS
[0010] In order to more clearly illustrate the embodiments of the present application or the technical solutions in the prior art, the drawings required for use in the embodiments or the prior art descriptions are briefly introduced below. Obviously, the drawings described below are only some embodiments of the present application. For those of ordinary skill in the art, other drawings can be obtained based on these drawings without creative work, among which:
[0011] Figure 1 is a structural diagram of a positioning system in an embodiment of the present application;
[0012] Figure 2 This application Figure 1 A top view of the positioning system in an embodiment;
[0013] Figure 3 is a flow chart of a positioning method in one embodiment of the present application;
[0014] Figure 4 is a flow chart of a positioning method in another embodiment of the present application;
[0015] Figure 5 is a flow chart of a positioning method in another embodiment of the present application;
[0016] Figure 6 This application Figure 5 The overall flow chart of step S301 in the embodiment;
[0017] Figure 7 This application Figure 4 Flow chart of step S201 in the embodiment;
[0018] Figure 8 This application Figure 4 Flow chart of step S202 in the embodiment;
[0019] Fig. 9 This application Figure 3 Flow chart of step S102 in the embodiment;
[0020] Fig.10 This application Figure 3 Flow chart of step S103 in the embodiment;
[0021] Fig.11 It is a schematic diagram of the relationship between the candidate posture sets A, B, and C of the robot provided in this application;
[0022] Fig.12 is a flowchart of a positioning method after step S803 in an embodiment of the present application;
[0023] Fig.13 is a schematic diagram of the structure of a positioning device in one embodiment of the present application;
[0024] Fig.14 is a schematic diagram of the structure of a robot in one embodiment of the present application;
[0025] Fig.15 It is a schematic diagram of the structure of a storage medium in an embodiment of the present application. DETAILED DESCRIPTION
[0026] The following will be combined with the drawings in the embodiments of the present application to clearly and completely describe the technical solutions in the embodiments of the present application. Obviously, the described embodiments are only part of the embodiments of the present application, not all of the embodiments. Based on the embodiments in the present application, all other embodiments obtained by ordinary technicians in this field without creative work are within the scope of protection of this application.
[0027] It should be noted that the terms "first", "second", etc., hereinafter are used for descriptive purposes only and should not be understood as indicating or implying relative importance or implicitly indicating the number of the indicated technical features. Therefore, the features defined as "first" or "second" may explicitly or implicitly include one or more of the features.
[0028] The words in this specification are used to illustrate the embodiments of the present invention, but are not intended to limit the present invention. It should also be noted that, unless otherwise clearly specified and limited, the terms "set", "connected", and "connected" should be understood in a broad sense, for example, it can be a fixed connection, a detachable connection, or an integral connection; it can be a mechanical connection, a direct connection, an indirect connection through an intermediate medium, or the internal connection of two components. For those skilled in the art, the above-mentioned specific meanings in the present invention can be specifically understood.
[0029] Please also read Figure 1 and Figure 2 , Figure 1 is a structural diagram of a positioning system in an embodiment of the present application, Figure 2 This application Figure 1 A top view of the positioning system in the embodiment. The present application provides a positioning system for a robot operating at the bottom of a pool, and the positioning system 10 is used to accurately position the robot operating at the bottom of the pool. The pool can be a swimming pool, a breeding pool, or a reservoir for collecting rainwater. Of course, the positioning system 10 of the robot can also be applied to other places with multiple vertical walls similar to a pool. It can be understood that when the robot works freely at the bottom of a pool, the robot needs to know its own position in real time to facilitate subsequent mobile work. Generally, the pool can have multiple vertical walls, and the multiple vertical walls can be enclosed into a holding space to facilitate the storage of water in the holding space. In one embodiment, the number of vertical walls can be four, and of course, the number of vertical walls can also be five or other numbers, which are not specifically limited here. The present application takes the number of vertical walls as four as an example.
[0030] The positioning system 10 may include a sensor system 100 and a computing system 200. The sensor system 100 is installed on the robot to measure the position information of the robot. The computing system 200 is used to receive the real-time measurement data collected by the sensor system 100 and perform calculations to obtain the position and posture of the robot.
[0031] The sensor system 100 may include a distance measuring device 101 for measuring the distance to the pool wall in different directions and an inertial measurement unit 102 for measuring the acceleration and angular acceleration of the robot in multiple directions and calculating a fusion angle.
[0032] In one embodiment, the distance measuring device 101 may be an underwater laser distance measuring array. The underwater laser distance measuring array may be mounted on the surface of the robot. A sealing structure such as a sealing ring or a silicone ring may be provided between the underwater laser distance measuring array and the robot to prevent water from entering the underwater laser distance measuring array. The underwater laser distance measuring array may be composed of a plurality of underwater single-point laser distance measuring devices facing different horizontal directions. The underwater single-point laser distance measuring device may measure the distance from the robot to the wall of the pool in different directions.
[0033] In one embodiment, the number of single-point laser ranging devices is between four and ten. It is understandable that the number of single-point laser ranging devices can be four, and of course, the number of single-point laser ranging devices can also be five, as long as the number of single-point laser ranging devices is greater than or equal to four and less than or equal to ten. This application takes the number of single-point laser ranging devices as four as an example.
[0034] See also Figure 2 . Four single-point laser ranging modules can measure the distance from the robot to the pool wall in four directions at equal angles. In one embodiment, considering the limitations of cost, performance, volume, power and other factors, the underwater single-point laser ranging device can use a higher-power green laser light source, with an underwater measurement distance of 100 meters, an accuracy higher than 10 cm, and a measurement frequency higher than 3 Hz. Of course, the underwater single-point laser ranging device can use a blue-green laser light source, a blue laser light source or other suitable laser light sources, which are not specifically limited here.
[0035] See also Figure 2 . The inertial measurement unit 102 can be set in the middle of the robot near the center of the robot. The inertial measurement unit 102 is a device for measuring the three-axis attitude angle (or angular rate) and acceleration of an object. Generally, an inertial measurement unit 102 includes three single-axis accelerometers and three single-axis gyroscopes. The accelerometer detects the acceleration signal of the object in the independent three-axis of the carrier coordinate system, and the gyroscope detects the angular velocity signal of the carrier relative to the navigation coordinate system, measures the angular velocity and acceleration of the object in three-dimensional space, and thereby calculates the attitude of the object.
[0036] In one embodiment, the x, y, and z directions of the coordinate system of the inertial measurement unit 102 may coincide with the robot center coordinate system. In another embodiment, the x, y, and z directions of the coordinate system of the inertial measurement unit 102 may not coincide with the robot center coordinate system. In this case, a coordinate system conversion is required to change to the robot center coordinate system, and its direction generally needs to comply with the right-hand coordinate system rule, which are: x forward, y left, and z upward.
[0037] The computing system can receive the distance data measured by the distance measuring device and the position data measured by the inertial measurement unit 102. Then, the distance data and the position data are calculated in the computing system by a certain method, so as to obtain the position and direction of the robot at the bottom of the pool. In one embodiment, the computing system can be an industrial computer system.
[0038] See also Figure 2 . The current real position of the robot is (x, y, θ). Among them, x represents the coordinate of the robot on the X-axis, y represents the coordinate of the robot on the Y-axis, and θ represents the angle formed by the robot and the X-axis. The original value of the distance measured by the current distance measuring device is (d1, d2, d3, d4). Among them, d1, d2, d3, d4 respectively represent the straight-line distance from the robot to each vertical wall of the pool. The data obtained by the inertial measurement unit 102 is: (ax, ay, az, acc_roll, acc_pitch, acc_yaw). Among them, ax, ay, az respectively represent the acceleration of the robot in the x, y, and z directions in the coordinate system of the inertial measurement unit 102, and acc_roll, acc_pitch, and acc_yaw respectively represent the angular acceleration of the robot in the x, y, and z axes in the coordinate system of the inertial measurement unit 102.
[0039] In one embodiment, the inertial measurement unit 102 may also obtain a fused absolute angle α, which represents the current orientation angle of the robot around the Z axis, and corresponds to the real angle θ through a fixed offset.
[0040] Next, we will describe a positioning method for a robot used for working at the bottom of a pool, which uses sensors to quickly determine the position of the robot at the bottom of the pool. Figure 3 , Figure 3 : is a flow chart of a positioning method in an embodiment of the present application. The positioning method may include the following steps:
[0041] Step S101: Obtain an index table of the first posture and first sensor data of the robot.
[0042] Generally, three-dimensional coordinates are usually used to determine the position of a robot. In actual use, in order to better control the robot, it is also necessary to know the robot's posture. The posture is the direction of the robot. Only by knowing the direction can we distinguish between front and back, left and right, and up and down, and can we better control the robot. In a three-dimensional coordinate system, a three-dimensional vector can be used to represent the direction. The position and direction are collectively called posture, that is, position and posture. The change of position is the translation process of the particle, and the change of posture is the rotation process of the vector. Therefore, the change of posture includes two processes: translation and rotation.
[0043] In one embodiment, the present application can be applied to the bottom of a pool. The pool can be a common rectangular pool or a pool of other regular shapes, which is not specifically limited here. The water in the pool is clean, the bottom is basically level, the length and width are both less than 100 meters, and the depth of the pool can exceed 20 meters. The pool restrictions proposed here are conventional scenarios applicable to this application. If the actual situation does not meet the requirements, for example, the water quality is turbid and the bottom is seriously uneven, then this application is not applicable to these scenarios.
[0044] Since the robot in this application is working at the bottom of the pool and does not involve the vertical movement of the robot, the coordinate system in this application only has two directions, X and Y. Therefore, the robot's position can be represented by (x, y, θ), and the first position of the robot in the pool can be represented by p i :(x i ,y i ,θ i ).
[0045] In one embodiment, the first sensor data refers to the data measured by the single-point laser distance measuring device, that is, the distance between the single-point laser distance measuring device on the robot and the wall of the pool. Each first position has a first sensor data corresponding to it, and all the first sensor data can be expressed as
[0046] Specifically, an index is a separate, physical storage structure that sorts the values of one or more columns in a database table. An index is a collection of values of one or more columns in a table and a corresponding list of logical pointers to the data pages in the table that physically identify these values. The role of an index is equivalent to the catalog of a book, and you can quickly find the required content based on the page numbers in the catalog.
[0047] It can be understood that the index table of the first posture and the first sensor data is generated by processing the first posture and the first sensor data, so as to quickly obtain the first posture corresponding to the first sensor data.
[0048] Step S102: performing index positioning according to the second sensor data measured in real time and the index table to obtain a set of candidate poses.
[0049] In one embodiment, in order to obtain the real-time position of the robot, the single-point laser ranging device can be detected in real time to obtain the second sensor data measured in real time. Then, a certain method is used to find multiple first sensor data that are closest to or equal to the second sensor data in the index table, and the corresponding first pose is obtained through the index table. After summarizing all the first poses, a set of candidate poses can be obtained. m}. It is understandable that the robot may exist in a first pose in the set of candidate poses.
[0050] Step S103: Determine the candidate area of the robot according to the set of candidate postures, the second posture of the robot at the current moment, and the third posture of the robot at the previous moment.
[0051] Specifically, the second posture of the robot at the current moment is the posture obtained in real time by the inertial measurement unit 102 and the distance measuring device 101 at a certain moment t. The inertial measurement unit 102 can measure the angular velocity and acceleration of the robot in three-dimensional space, and use this to calculate the posture θ of the robot. The distance measuring device 101 can measure the distance to the wall of the pool in different directions, and then calculate the position (x, y) of the robot at this time. Combining the position and posture of the robot can obtain the real-time posture of the robot measured by the sensor system 100, that is, the second posture (x, y, θ).
[0052] The third posture of the robot at the previous moment is the third posture obtained by the sensor system 100 at the moment t-1. The method of obtaining the third posture is the same as the method of obtaining the second posture, which will not be described here.
[0053] In one embodiment, the set of candidate poses can be compared with the second pose of the robot at the current moment to obtain a part of the robot's estimated poses, and then the set of candidate poses can be compared with the third pose of the robot at the previous moment to obtain another part of the robot's estimated poses. After that, the two estimated poses are compared again to obtain a more accurate pose.
[0054] See also Figure 4 , Figure 4 is a flow chart of a positioning method in another embodiment of the present application. The positioning method also includes:
[0055] Step S201: Acquire all first poses of the robot in the water pool, and acquire corresponding first sensor data according to each first pose.
[0056] In one embodiment, any position of the robot at the bottom of the pool is a first posture of the robot. The first sensor data corresponding to each first posture can be obtained by the sensor system 100. In another embodiment, the pool can be simulated to directly obtain the first sensor data corresponding to each first posture in the simulation environment.
[0057] Step S202: Generate an index table according to the first pose and the first sensor data.
[0058] The index table of the first pose and the first sensor data is obtained by processing the first pose and the first sensor data and then generating an index table with the processed data, so as to facilitate the rapid acquisition of the first pose corresponding to the first sensor data.
[0059] See also Figure 5 , Figure 5 : is a flow chart of a positioning method in another embodiment of the present application. The positioning method also includes:
[0060] Step S301: pre-process the second sensor data.
[0061] Specifically, when a single-point laser ranging device is used for measurement, in most cases, the measured second sensor data is accurate and can be directly used for subsequent calculations. In a few cases, due to the special underwater environment, the ranging information may be interfered with, resulting in abnormal feedback. The abnormal situation may be that the data measured in a certain direction is 0. Of course, the abnormal situation may also be that the data measured in a certain direction is the upper limit, the data measured in a certain direction twice in a row fluctuates too much, etc., which are not specifically limited here. Therefore, it is necessary to pre-process the second sensor data for these abnormal situations.
[0062] See also Figure 6 , Figure 6 This application Figure 5 The overall flow chart of step S301 in the embodiment. The specific steps are as follows:
[0063] Step S401: measuring second sensor data.
[0064] Step S402: Check whether the second sensor data has an abnormality. If so, execute step S403; otherwise, execute step S406.
[0065] Step S403: Whether the number of abnormal second sensor data is greater than or equal to 2, if the number of abnormal second sensor data is greater than or equal to 2, execute step S404, otherwise execute step S405.
[0066] Step S404: determine that the data is invalid and return to step S401 after a period of time.
[0067] Step S405: Set the abnormal data to empty.
[0068] Step S406: measurement ends.
[0069] Specifically, in case of abnormality in the second sensor data, the second sensor data can be preprocessed. When the number of abnormal data is greater than or equal to 2, the data is determined to be invalid, and the robot will re-measure after a period of time or move a short distance; when the number of abnormal data is 1, the data is set to empty and taken into consideration in the next step.
[0070] See also Figure 7 , Figure 7 This application Figure 4 The step flow chart of step S201 in the embodiment. The positioning method also includes:
[0071] Step S501: construct a map model according to the planar structure diagram of the pool.
[0072] Specifically, for an artificial pool, a 2D or 3D map model can be constructed / drawn through a planar structure diagram of the artificial pool, so that the robot can be simulated according to the map model. The map model can include information such as the length, width and height of the pool.
[0073] Step S502: construct a perception system model of the robot according to the sensor structure of the robot.
[0074] Specifically, the sensor structure of the robot in the present application is to measure the distance from the robot to the wall of the pool, i.e., d1, d2, d3, d4, through a single-point laser ranging device, and to measure the acceleration and angular acceleration of the robot at various times through an inertial measurement unit 102. After the sensor system 100 acquires the data, a perception system model of the robot is constructed based on these data. It can be understood that a model is an abstract representation of a system, which includes a set of clearly defined basic concepts and the relationships between these concepts, i.e., these basic concepts are combined into higher-level concepts or systems according to clearly defined rules. In simple terms, the basic elements of the model include a set of basic concepts and a set of relationships or rules. The architecture of the system is expressed with the help of these elements.
[0075] Step S503: Sample all first position poses of the robot in the map model with the first step length.
[0076] It can be understood that the map model has been constructed in S501, so sampling is performed in the map model to express the possible positions and postures of the robot, that is: i :(x i ,y i ,θ i ). In this formula, p i represents the possible i-th sampling position and posture of the robot, x i and i The horizontal and vertical coordinates corresponding to this position, θi Represents the robot's attitude angle. The above sampling corresponds to all possible positions of the robot in the map, distributed at a certain step interval.
[0077] In one embodiment, the step length may be the size of the distance interval and the angle interval during each sampling process. For example, all first postures of the robot are sampled with the first step length, the distance interval in the first step length is 0.1 meters, and the angle interval may be 1°. Then, for a pool of 20 meters in length and 20 meters in width, 200*200*360=14400000 position samplings are required.
[0078] Step S504: In the simulation environment, directly obtain the first sensor data corresponding to each first position according to the map model and the perception system model.
[0079] For each sampling position p i , we can combine the robot perception system model and the map model to directly obtain its measurement value through the simulation environment, corresponding to: In this formula, the corresponding Figure 2 The distance values measured by the four laser distance measuring devices. The above sampling is usually performed automatically by the computer in the simulation environment, which is very convenient.
[0080] It is understandable that, since all possible positions of the robot in the pool are oversampled, various situations of the robot in the pool can be simulated through the simulation environment according to the robot perception system model and the map model. Therefore, it can be easily obtained that when the robot is in each first position, there is a first sensor data corresponding to it. In other words, there is no need for the sensor system 100 to measure, and the first sensor data can be directly obtained through the perception system model and the map model. The first sensor data is the distance from the robot to each vertical wall of the pool.
[0081] From the above sampling, we can also get the mapping table from the robot posture to the first sensor data of the robot: i →z i It should be noted that this table is one-to-one, that is, a p i , which must correspond to a z i .
[0082] See also Figure 8 , Figure 8 This application Figure 4 The step flow chart of step S202 in the embodiment. The positioning method also includes:
[0083] Step S601: quantize and differentiate the first sensor data to obtain a quantized observation value sequence.
[0084] In one embodiment, all z i The value in Take the quantization with a 0.1m interval as an example. i When the value is 10.23m, its value is quantized to 10.2m; when a certain d i When the value is 10.89m, its value is quantized to 10.9m; and so on. The quantized observation value sequence is obtained:
[0085] Step S602: reorder the observation value sequences, and merge and reorganize the same observation value sequences.
[0086] Specifically, further, all observation value sequences z′ i Rearrange and merge in the following order: First Sort from smallest to largest; At the same time, according to Sort from small to large, and so on, until you Sort from small to large. When two quantized observation sequences have the same four values, merge them.
[0087] Step S603: merge the first position corresponding to each merged observation sequence into the same set.
[0088] Specifically, after merging two identical observation sequences, the first position p corresponding to the two observation sequences is i Assume that is put into the same set. It can be understood that one observation sequence can correspond to multiple first poses.
[0089] Step S604: Generate an index table according to the quantized observation value sequence and the first position corresponding thereto.
[0090] In one embodiment, the following one-to-many index table can be obtained according to the quantized observation value sequence and the first position corresponding thereto: j →{p j_ , ..., p j_}. This table shows: for a quantized observation sequence z′ j , k possible robot poses corresponding to it can be found.
[0091] In another embodiment, depending on the specific situation, the index table may also be implemented in other ways such as a kd tree.
[0092] See also Fig. 9 , Fig. 9 This application Figure 3The flowchart of step S102 in the embodiment. The positioning method also includes:
[0093] Step S701: Acquire second sensor data measured in real time.
[0094] Specifically, in order to compare with the quantized observation sequence z′ in the above index table j For comparison, it is necessary to use the sensor system 100 to perform real-time measurement on the robot during operation to obtain the real-time second sensor data z of the robot. i , which is the distance from the robot to the walls of the pool.
[0095] Step S702: Compare the second sensor data with the index table, and select a plurality of quantized observation value sequences.
[0096] Specifically, the robot's real-time second sensor data z i With the index table (z′ j →{p j_1 , ..., p j_k}) for comparison, for the first sensor data z at the current moment i , in the index table (z′ j →{p j_1 , ..., p j_k}) and find the i The closest multiple z′ j It can be understood that in the index table, z′ j It is quantified, differentiated, merged and reorganized. j corresponds to k possible robot positions. Therefore, by finding i The closest multiple z′ j , it is possible to find more possible positions of the robot at the current moment, so as to determine the position of the robot at the current moment more accurately in the future.
[0097] Step S703: Calculate the difference between the second sensor data and the plurality of quantized observation value sequences.
[0098] Specifically, the difference between the second sensor data and the plurality of quantized observation value sequences is calculated in a certain manner. The specific method is as follows: traverse z′ in order j , for every z′ j , calculate the difference between it and the second sensor data zi, the formula is:
[0099] It can be understood that traversal means visiting each node in the tree (or graph) in turn along a certain search route. The operation performed on the visited node depends on the specific application problem. The specific access operation may be to check the value of the node, update the value of the node, etc. For multiple quantized observation value sequences z′ selected after comparison j , the specific distance value needs to be: The specific distance value from zi: Make the difference in turn. Add the differences to get e ij , so that z′ with large deviation can be j Remove to get a more accurate z′ j .
[0100] Step S704: If the difference is less than the threshold, the first pose corresponding to the quantized observation sequence is added to the candidate pose set.
[0101] Specifically, all e ij z′ is less than a certain threshold j The corresponding {p j_1 ,…,p j_k}, are added to the candidate pose set {p m}. It can be understood that when the z′ with a larger deviation is j When removing, you can set a suitable threshold to remove all e ij and compare it with the threshold. ij If it is greater than the threshold, it means that ij The corresponding z′ j The error is too large, so we need to change this z′ j Exclude. If e ij is less than the threshold, it means that this e ij The corresponding z′ j Within the error range, this z′ can be j The corresponding {p j_1 , ..., p j_k}Add to the candidate pose set{p m}, and then in the candidate pose set {p m} to select a more accurate pose.
[0102] In one embodiment, for the second sensor data z i If there is a bit d i In the case where it was set to empty in the previous step, when traversing z′ j When , only the remaining 3 digits that are not empty are calculated as e ij For example, there is a z i for( Empty), then only the calculation These three values are related to z′ j Perform difference calculation.
[0103] Please also read Fig.10 and Fig.11 , Fig.10 This application Figure 3 The step flow chart of step S103 in the embodiment, Fig.11 It is a schematic diagram of the relationship between the candidate pose sets A, B, and C of the robot provided in this application. The positioning method also includes:
[0104] Step S801: Obtain a posture area set A according to the second posture of the robot at the current moment and a set of candidate postures.
[0105] Specifically, at a certain time t, through steps S701, S702, S703 and S704, the possible candidate pose set {p m Furthermore, at the current time t, the inertial measurement unit (IMU) 102 measures the second posture p of the robot t_imu , according to the second pose p t_imu and the possible candidate pose set of the current robot {p m}Get the set of possible posture areas A of the robot: P t_z ∈A={p t_z |||p t_imu -p m ||<δ}.
[0106] It can be understood that in the pose region set A, δ represents the allowable pose error, which is generally a smaller range, and the distance error and angle error are calculated separately. t_imu and select the pose set {p m}, which means that the candidate pose set {p m}Perform more precise screening again to obtain a set A of pose areas within the allowable pose error range.
[0107] Step S802: Obtain posture area set B according to the second posture of the robot at the current moment and the third posture of the robot at the previous moment.
[0108] Specifically, during the operation of the robot, we know the third posture of the robot at time t-1, which is: P t-1 =[x t-1 ,y t-1 ,θ t-1]. By using the continuous measurement of the IMU from time t-1 to time t and the acceleration integral, we can get the estimated position and posture change Δp. Taking into account the error of the IMU itself, we can estimate a larger error range, so that the robot's estimated current posture belongs to the following area: P t_imu ∈B={p t_imu |||p t_imu -(P t-1 +Δp)<ε}. In the above formula, set B represents the pose area estimated based on IMU integration, and ε represents the allowable pose error.
[0109] Understandably, see Fig.11 , the pose region set A obtained in step S801 may be distributed in multiple different positions in the pool, so it is difficult to determine the specific position of the robot only through the pose region set A. Since the robot moves continuously, it is necessary to introduce the third pose P of the robot at the previous moment t-1 , and by using the acceleration integral, we can get the estimated position and posture change Δp. Δp is the change in the robot's posture from time t-1 to time t obtained through calculation. t-1 +Δp is the position of the robot at time t estimated by the data. Then the second position p t_imu With P t-1 +Δp is used as the difference to obtain the posture area set B according to the movement of the robot.
[0110] Step S803: Obtain candidate region C according to the intersection of pose region set A and pose region set B.
[0111] Specifically, the possible postures of the robot at the current moment exist in the posture area set A, which is obtained through a series of operations using the index table and the second sensor data at the current moment. Among them, the second sensor number refers to the distance value from the robot to the wall of the pool measured by the single-point laser ranging device. The possible postures of the robot at the current moment also exist in the posture area set B, which is obtained by estimating the posture of the robot at the previous moment. Therefore, the candidate area C of the possible position of the robot at time t can be obtained based on the posture area set A and the posture area set B: C = A∩B.
[0112] In one embodiment, if the position of the robot at time t-1 is unknown (when the robot is turned on at any position or undergoing a repositioning process), C=A can be set; if A∩B is an empty set, it is generally believed to be caused by a measurement error, and C=B can be set.
[0113] See also Fig.12 , Fig.12This is a flow chart of a positioning method after step S803 in an embodiment of the present application. The positioning method also includes:
[0114] Step S901: Acquire all fourth postures of the robot in the candidate area with a second step length, and acquire corresponding third sensor data according to each fourth posture, wherein the second step length is smaller than the first step length.
[0115] Specifically, for the candidate area C of the possible position of the machine at time t, it is generally a relatively small x, y coordinate value range and angle range area (generally speaking, the radius of the position area is less than 1m, and the angle range is less than 10°), which can roughly characterize the position of the robot. In order to further accurately locate the position of the robot, the following matching method can be used: in the candidate area C, sampling is performed with a finer step size (i.e., the second step size), for example, the distance interval is selected as 0.01m, and the angle interval is selected as 0.1°, and a posture sampling table can be obtained. Through mapping, the corresponding different posture simulation measurement values z can be obtained in the map. It can be understood that a series of screening has been carried out in the candidate area C, and the posture therein is relatively accurate. Since the first step size is used when the robot's posture is sampled for the first time, the first step size is larger than the second step size, so after sampling the posture in the candidate area C with the second step size, the posture simulation measurement value z obtained is more precise.
[0116] Step S902: Obtain the position and posture of the robot by comparing the second sensor data measured in real time with the third sensor data.
[0117] Specifically, find the second sensor data z that is consistent with the current true measurement value i The z with the smallest difference corresponds to the precise posture of the robot.
[0118] Next, a positioning device for a robot used for working at the bottom of a pool is described. Fig.13 , Fig.13 300 is a schematic diagram of the structure of a positioning device in an embodiment of the present application. The positioning device 300 includes: an acquisition module 301 for acquiring an index table about the first posture of the robot and the first sensor data, a calculation module 302 for performing index positioning according to the second sensor data measured in real time and the index table to obtain a set of candidate postures, and a determination module 303 for determining a candidate area of the robot according to the set of candidate postures, the second posture of the robot at the current moment, and the third posture of the robot at the previous moment.
[0119] Next, a robot for working at the bottom of a pool is described, which can be applied to the positioning method of the above robot. Fig.14 , Fig.144 is a schematic diagram of the structure of a robot in an embodiment of the present application. The robot 400 may include a processor 401 and a memory 402. The memory 402 stores a computer program, the processor 401 is coupled to the memory 402, and the processor 401 executes the computer program when working to implement the positioning method of the robot 400 as described above.
[0120] Specifically, the processor 401 controls the operation of the robot, and the processor 401 may also be referred to as a CPU (Central Processing Unit). The processor 401 may be an integrated circuit chip having signal processing capabilities. The processor 401 may also be a general-purpose processor, a digital signal processor (DSP), an application-specific integrated circuit (ASIC), a field-programmable gate array (FPGA) or other programmable logic devices, discrete gate or transistor logic devices, discrete hardware components. The general-purpose processor 401 may be a microprocessor or the processor 401 may also be any conventional processor, etc.
[0121] The memory 402 is used to store program data executed by the processor and data in the processing process of the processor 401, wherein the memory 402 may include a non-volatile storage part for storing the above program data. In another embodiment, the memory 402 may only be used as the memory of the processor 401 to cache the data in the processing process of the processor, and the program data is actually stored in a device outside the processor 401. The processor 401 is connected to the external device and calls the program data stored externally to perform the corresponding processing.
[0122] Next, a storage medium 500 is described. Fig.15 , Fig.15 4 is a schematic diagram of the structure of a storage medium 500 in an embodiment of the present application. The storage medium 500 stores a computer program 501 for controlling a robot. When the computer program 501 for controlling a robot is executed by the processor 401, the steps of the robot positioning method described above are implemented.
[0123] The storage medium 500 can specifically be a medium that can store program instructions, such as a USB flash drive, a mobile hard disk, a read-only memory (ROM), a random access memory (RAM), a disk or an optical disk, or it can also be a server that stores the program instructions. The server can send the stored program instructions to other devices for execution, or it can also execute the stored program instructions by itself.
[0124] In the description of this specification, the description of the terms "one embodiment", "another embodiment", etc. means that the specific features, structures, materials or characteristics described in conjunction with the embodiment or example are included in at least one embodiment or example of the present application. In this specification, the schematic representation of the above terms does not necessarily refer to the same embodiment or example. Moreover, the specific features, structures, materials or characteristics described can be combined in any one or more embodiments or examples in a suitable manner.
[0125] The above are only implementation methods of the present application, and are not intended to limit the patent scope of the present application. Any equivalent structure or equivalent process transformation made using the contents of the present application specification and drawings, or directly or indirectly applied in other related technical fields, are also included in the patent protection scope of the present application.
Claims
1. A method for positioning a robot for working at the bottom of a pool, characterized in that: include: Obtaining an index table of the first posture and first sensor data of the robot; Performing index positioning according to the second sensor data measured in real time and the index table to obtain a set of candidate poses; Preprocessing the second sensor data; including: if the number of data anomalies in the second sensor data is greater than or equal to two, the data is invalid; after a period of time or after moving a short distance, measuring the robot again; Determining the candidate area of the robot according to the set of candidate postures, the second posture of the robot at the current moment, and the third posture of the robot at the previous moment, including: comparing the set of candidate postures with the second posture of the robot at the current moment, thereby obtaining a part of the posture estimated by the robot, and then comparing the set of candidate postures with the third posture of the robot at the previous moment, thereby obtaining another part of the posture estimated by the robot, and then comparing the two estimated postures again, thereby obtaining a more accurate posture; Among them, the posture is expressed as (x, y, θ), x represents the coordinate of the robot on the X-axis, y represents the coordinate of the robot on the Y-axis, and θ represents the angle between the robot and the X-axis; the first sensor data is expressed as , They are respectively the straight-line distances between the single-point laser ranging device on the robot and the vertical wall of the pool.
2. The method for positioning a robot for pool bottom operation according to claim 1, characterized in that: Before obtaining the index table of the first posture and the first sensor data of the robot, the method further includes: Acquire all first postures of the robot in the pool, and acquire corresponding first sensor data according to each first posture; The index table is generated according to the first posture and the first sensor data.
3. The method for positioning a robot for pool bottom operation according to claim 2, characterized in that: The step of acquiring all first postures of the robot in the water pool and acquiring corresponding first sensor data according to each first posture comprises: Constructing a map model according to the planar structure diagram of the pool; Constructing a perception system model of the robot according to the sensor structure of the robot; Sampling all the first poses of the robot in the map model with a first step length; In a simulation environment, the first sensor data corresponding to each first posture is directly acquired according to the map model and the perception system model.
4. The method for positioning a robot for pool bottom operation according to claim 1, characterized in that: Generating the index table according to the first posture and the first sensor data comprises: quantizing and distinguishing the first sensor data to obtain a quantized observation value sequence; Reordering the observation value sequences, and merging and reorganizing the same observation value sequences; Merging the first posture corresponding to each merged observation value sequence into the same set; Generate an index table according to the quantized observation value sequence and the first posture corresponding thereto.
5. The method for positioning a robot for pool bottom operation according to claim 4, characterized in that: The step of performing index positioning according to the second sensor data measured in real time and the index table to obtain a set of candidate poses includes: Acquire the second sensor data measured in real time; Comparing the second sensor data with the index table, and selecting a plurality of quantized observation value sequences; Calculating the difference between the second sensor data and a plurality of the quantized observation value sequences; If the difference is less than a threshold, the first posture corresponding to the quantized observation value sequence is added to the candidate posture set.
6. The method for positioning a robot for pool bottom operation according to claim 1, characterized in that: The determining of the candidate area of the robot according to the set of candidate postures, the second posture of the robot at a current moment, and the third posture of the robot at a previous moment comprises: Obtaining a posture area set A according to the second posture of the robot at the current moment and the set of candidate postures; Obtaining a posture region set B according to the second posture of the robot at the current moment and the third posture of the robot at the previous moment; The candidate region C is obtained according to the intersection of the pose region set A and the pose region set B.
7. The method for positioning a robot for pool bottom operation according to claim 3, characterized in that: After determining the candidate area of the robot according to the set of candidate postures, the second posture of the robot at the current moment and the third posture of the robot at the previous moment, the method includes: Acquire all fourth postures of the robot in the candidate area with a second step length, and acquire corresponding third sensor data according to each of the fourth postures, wherein the second step length is smaller than the first step length; The position and posture of the robot are obtained by comparing the second sensor data measured in real time with the third sensor data.
8. A positioning system for a robot used for working at the bottom of a pool, characterized in that: include: A sensor system, installed on the robot, for measuring position information of the robot; The sensor system includes a distance measuring device and an inertial measurement unit, wherein the distance measuring device is used to measure the distance to the wall of the pool in different directions, and the inertial measurement unit is used to measure the acceleration and angular acceleration of the robot in multiple directions and calculate the fusion angle; A computing system for executing the positioning method of a robot for pool bottom operation as described in any one of claims 1 to 7, for receiving real-time measurement data collected by the sensor system and performing calculations to obtain the position and posture of the robot.
9. A positioning device for a robot used for working at the bottom of a pool, characterized in that: The positioning device comprises: An acquisition module is used to obtain an index table of the first posture and first sensor data of the robot; the first sensor data is represented as , are the straight-line distances between the single-point laser ranging device on the robot and the vertical wall of the pool; A computing module, configured to perform index positioning according to the second sensor data measured in real time and the index table to obtain a set of candidate poses; and preprocess the second sensor data; the preprocessing includes: if the number of data anomalies of the second sensor data is greater than or equal to two, the data is invalid; after a period of time or after moving a short distance, the robot is measured again; A determination module, for determining a candidate area of the robot according to the set of candidate postures, the second posture of the robot at the current moment, and the third posture of the robot at the previous moment; comprising: comparing the set of candidate postures with the second posture of the robot at the current moment, thereby obtaining a part of the posture estimated by the robot, and then comparing the set of candidate postures with the third posture of the robot at the previous moment, thereby obtaining another part of the posture estimated by the robot, and then comparing the two estimated postures again, thereby obtaining a more accurate posture; The posture is expressed as (x, y, θ), where x represents the coordinate of the robot on the X-axis, y represents the coordinate of the robot on the Y-axis, and θ represents the angle between the robot and the X-axis.
10. A robot for working at the bottom of a pool, characterized in that: include: A processor and a memory, wherein a computer program is stored in the memory, the processor is coupled to the memory, and the processor executes the computer program when working to implement the robot positioning method as described in any one of claims 1-7.
11. A storage medium, characterized in that: The storage medium stores a computer program for controlling the robot, and when the computer program for controlling the robot is executed by the processor, the steps of the robot positioning method as described in any one of claims 1 to 7 are implemented.
Citation Information
Patent Citations
Underwater positioning method for indoor limited structured water area
CN107816994A
quick positioning system, method and application
CN112767476A
Repositioning method and system based on laser radar
CN114236552A