Positioning method and system of self-walking equipment, electronic equipment and storage medium
By acquiring and analyzing panoramic point cloud data, identifying static objects and calculating their relative motion information, the problem of low positioning accuracy of self-travel equipment is solved, and high-precision positioning is achieved.
Patent Information
- Application Number
- CN202411989312.X
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2024-12-30
- Publication Date
- 2025-03-14
AI Technical Summary
There are blind spots in the positioning process of self-traveling equipment, with low positioning accuracy, and moving objects in the environment affect the positioning accuracy.
By obtaining panoramic point cloud data of work areas at different times, static objects are identified and positioned according to the relative motion information of the static objects. The method includes using radar and motor to acquire panoramic point cloud data, identifying static objects, calculating their relative motion information, including displacement information and rotation angle, and then updating the position of the self-traveling device.
It improves the positioning accuracy of self-travel equipment, avoids the low positioning accuracy caused by the loss of point cloud data, and maintains high-precision positioning in complex environments.
Smart Images

Figure CN119618227A_ABST
Abstract
Description
Technical Field
[0001] The present application relates to the field of wireless positioning technology, and in particular to a positioning method, system, electronic device and storage medium for a self-propelled device. Background Art
[0002] Self-propelled devices such as lawn mowers, sweeping robots, and cleaning robots are widely used in various scenarios. Self-propelled devices can be positioned based on information about the surrounding environment. Due to hardware design and technical limitations, there are blind spots in the positioning process of self-propelled devices, and the positioning accuracy is low. In addition, moving objects in the environment will also have a certain impact on the positioning accuracy of self-propelled devices.
[0003] Therefore, how to improve the positioning accuracy of self-propelled equipment is a technical problem that technicians in this field currently need to solve. Summary of the invention
[0004] The purpose of the present application is to provide a positioning method, system, electronic device and storage medium for a self-propelled device, which can improve the positioning accuracy of the self-propelled device.
[0005] In order to solve the above technical problems, the present application provides a positioning method for a self-propelled device, the method comprising:
[0006] Acquire panoramic point cloud data of the working area at different times; identify at least one static object in the environment of the panoramic point cloud data at different times;
[0007] The relative motion information of the static object is determined according to the panoramic point cloud data, and the self-propelled device is positioned according to the relative motion information; wherein the relative motion information includes the displacement information and / or rotation angle of the static object relative to the self-propelled device.
[0008] Optionally, the step of obtaining the panoramic point cloud data of the working area further includes:
[0009] The self-propelled device has a radar and a motor; the field of view of the radar is less than 360 degrees, the motor drives the radar to rotate, and the radar obtains the panoramic point cloud data during the rotation scanning process.
[0010] Optionally, also include:
[0011] Using an encoder to record the scanning angle of the radar; wherein the encoder is installed on the rotating shaft of the radar;
[0012] Controlling the radar to scan and obtain panoramic cloud data at different times, including:
[0013] Controlling the radar to scan at a first moment to obtain point cloud data at a plurality of scanning angles, performing redundant data removal and splicing operations on the point cloud data collected by the radar when it rotates one circle according to the scanning angles, to obtain the panoramic point cloud data at the first moment;
[0014] The radar is controlled to scan at a second moment so as to obtain point cloud data at a plurality of scanning angles, and redundant data removal and splicing operations are performed on the point cloud data collected by the radar after one rotation according to the scanning angles to obtain the panoramic point cloud data at the second moment.
[0015] Optionally, determining the relative motion information of the static object according to the panoramic point cloud data includes: determining first relative position information of the static object at a first moment according to the panoramic point cloud data at the first moment; the relative position information of the static object is the relative position information of the static object relative to the coordinate system of the self-propelled device; determining second relative position information of the static object at a second moment according to the panoramic point cloud data at the second moment, and determining the relative motion information of the static object according to the first relative position information and the second relative position information.
[0016] Optionally, the displacement information and the rotation angle of the static object relative to the self-propelled device are determined based on the relative motion information of the static object.
[0017] Optionally, also include:
[0018] Performing weighted calculation on the displacement information of each static object relative to the self-propelled device to obtain actual displacement information of the self-propelled device in a global coordinate system;
[0019] Performing weighted calculation on the rotation angle of each static object relative to the self-propelled device to obtain the actual rotation angle of the self-propelled device in the global coordinate system;
[0020] The self-propelled device is positioned according to the actual displacement information and the actual rotation angle.
[0021] Optionally, it also includes: updating the position and orientation of the self-propelled device according to the actual displacement information and the actual rotation angle to form a complete path trajectory.
[0022] Optionally, also include:
[0023] performing feature recognition based on the panoramic point cloud data at the first moment and the panoramic point cloud data at the second moment, and determining the environmental object based on the feature recognition result;
[0024] Determine the relative motion information of the environmental object at the first moment and the environmental object at the second moment; when there is relative motion information of an abnormal environmental object, delete the point cloud information of the abnormal environmental object.
[0025] Optionally, also include:
[0026] According to the relative motion information of the environmental object at a first moment and the environmental object at a second moment, when there is relative motion information of an abnormal environmental object, the point cloud information of the abnormal environmental object is deleted, and it also includes: when the relative motion information of the abnormal environmental object is that the displacement information or the rotation angle of the abnormal environmental object is different from the displacement information or the rotation angle of other environmental objects; or when the relative motion information of the abnormal environmental object is that the displacement information or the rotation angle of the abnormal environmental object and the displacement information or the rotation angle of other environmental objects exceed a preset threshold, the abnormal environmental object is considered to be a dynamic object, and the point cloud data of the abnormal environmental object is deleted.
[0027] The present application also provides a positioning system for a self-propelled device, comprising:
[0028] Point cloud acquisition module, used to obtain the panoramic point cloud data of the working area at different times;
[0029] An object recognition module, used to recognize at least one static object in the environment of the panoramic point cloud data at different times;
[0030] A positioning module is used to determine the relative motion information of the static object based on the panoramic point cloud data, and to position the self-propelled device based on the relative motion information; wherein the relative motion information includes the displacement information and / or rotation angle of the static object relative to the self-propelled device.
[0031] The present application also provides a storage medium on which a computer program is stored. When the computer program is executed, the steps of the positioning method for the self-propelled device are implemented.
[0032] The present application also provides an electronic device, including a memory and a processor, wherein the memory stores a computer program, and when the processor calls the computer program in the memory, the steps of the positioning method of the self-propelled device are implemented.
[0033] The present application provides a positioning method for a self-propelled device, which obtains panoramic point cloud data of a working area at different times, identifies static objects from the panoramic point cloud data, and then realizes the positioning of the self-propelled device based on the relative motion information of the static objects. The above process uses the panoramic point cloud data to determine static objects and relative motion information, which can avoid the situation where the positioning accuracy is low due to the lack of point cloud data. By comparing and analyzing the point cloud data at different times, the present application can identify static objects in the environment and calculate the relative motion information of these objects relative to the self-propelled device, including displacement information and rotation angle; based on the above relative motion information, the self-propelled device can continuously update its own position, thereby achieving high-precision positioning. The present application also provides a positioning system for a self-propelled device, a storage medium and an electronic device, which have the above beneficial effects and are not repeated here. BRIEF DESCRIPTION OF THE DRAWINGS
[0034] In order to more clearly illustrate the embodiments of the present application, the following is a brief introduction to the drawings required for use in the embodiments. 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 any creative work.
[0035] Figure 1 A flowchart of a positioning method for a self-propelled device provided in an embodiment of the present application;
[0036] Figure 2 A schematic diagram of an application scenario provided by an embodiment of the present application;
[0037] Figure 3 A schematic diagram of a point cloud scanning provided in an embodiment of the present application;
[0038] Figure 4 A flowchart of a method for generating and processing relative motion information provided in an embodiment of the present application;
[0039] Figure 5 A flow chart of a displacement information processing method provided in an embodiment of the present application;
[0040] Figure 6 A schematic diagram of a lawn mower in multiple positions provided by an embodiment of the present application;
[0041] Figure 7 A structural schematic diagram of a positioning system for a self-propelled device provided in an embodiment of the present application. DETAILED DESCRIPTION
[0042] In order to make the purpose, technical solution and advantages of the embodiments of the present application clearer, the technical solution in the embodiments of the present application will be clearly and completely described below in conjunction with the drawings in the embodiments of the present application. Obviously, the described embodiments are 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.
[0043] See below Figure 1 , Figure 1 A flowchart of a positioning method for a self-propelled device provided in an embodiment of the present application.
[0044] Specific steps may include:
[0045] S101: Obtaining panoramic point cloud data of the working area at different times.
[0046] This embodiment can be applied to the processor of a self-propelled device, and can realize accurate positioning of the self-propelled device by acquiring and analyzing the panoramic cloud data. The self-propelled device can be a lawn mower, a sweeping robot, a cleaning robot, a storage robot, an outdoor delivery robot, an autonomous driving vehicle, and other equipment.
[0047] See also Figure 2 , Figure 2 This is a schematic diagram of an application scenario provided in an embodiment of the present application, in which A represents a self-propelled device, B represents a tree, C represents a rock, and D represents a charging pile.
[0048] The self-propelled device may be provided with a device for collecting point cloud data, such as a 3D scanner, radar, or ground spectrometer. The device can continuously collect point cloud data for the working area of the self-propelled device to obtain panoramic point cloud data for the working area at different times. The panoramic point cloud data includes 360° horizontal point cloud data of the self-propelled device; the point cloud data in a frame of panoramic point cloud data may be collected at different times. In this embodiment, the panoramic point cloud data at a certain time Ti refers to: data collected from time Ti and the 360° horizontal point cloud data of the self-propelled device. Please refer to Figure 3 , Figure 3 A point cloud scanning schematic diagram provided in an embodiment of the present application, point cloud data A of 0°~120° is collected at the 1st second, point cloud data B of 120°~240° is collected at the 1.5th second, and point cloud data C of 240°~360° is collected at the 2nd second. The panoramic point cloud data composed of point cloud data A, point cloud data B and point cloud data C is the panoramic point cloud data at the 1.0th second.
[0049] S102: Identify at least one static object in the environment of the panoramic point cloud data at different times.
[0050] After obtaining the panoramic point cloud data, this step can perform preprocessing, feature extraction, object recognition and other operations on the panoramic point cloud data at different times, and then identify static objects in the environment from the panoramic point cloud data at different times. The above-mentioned static objects are objects that do not move in the environment.
[0051] S103: Determine the relative motion information of the static object according to the panoramic point cloud data, and position the self-propelled device according to the relative motion information.
[0052] Among them, after identifying the static objects in the environment, this embodiment can use the panoramic point cloud data to calculate the distance, angle and other information between the self-propelled device and each static object. The above information can be described as a series of coordinate points or vectors, reflecting the geometric relationship between the device and each static object in the environment. This step can compare the position changes of static objects at different times and determine the relative motion information of static objects at different times. The above relative motion information includes the displacement information and / or rotation angle of the static object relative to the self-propelled device.
[0053] This embodiment obtains the panoramic point cloud data of the working area at different times, identifies static objects from the panoramic point cloud data, and then realizes the positioning of the self-propelled device based on the relative motion information of the static objects. The above process uses the panoramic point cloud data to determine the static objects and relative motion information, which can avoid the situation where the positioning accuracy is low due to the lack of point cloud data. By comparing and analyzing the point cloud data at different times, this embodiment can identify the static objects in the environment and calculate the relative motion information of these objects relative to the self-propelled device, including displacement information and rotation angle; based on the above relative motion information, the self-propelled device can continuously update its own position, thereby achieving high-precision positioning.
[0054] In traditional solutions, self-propelled devices often use RTK (Real-time kinematic) technology or GPS (Global Positioning System) technology for positioning. However, RTK technology or GPS technology is susceptible to electromagnetic interference and cannot be applied to complex environments. Radar is not subject to electromagnetic interference and can provide high-precision local environmental perception, so there are solutions in related technologies for self-propelled devices to use radar for positioning. Due to hardware design and technical limitations, the field of view of radar is often less than 360 degrees, and there are blind spots in the positioning process of self-propelled devices, resulting in low positioning accuracy.
[0055] In order to avoid the influence of radar blind area on the positioning of self-propelled equipment, Figure 1In the corresponding embodiment, the process of obtaining the panoramic point cloud data of the working area also includes: the self-propelled device has a radar and a motor; the field of view of the radar is less than 360 degrees, the motor drives the radar to rotate, and the radar obtains the panoramic point cloud data during the rotation scanning process.
[0056] The above content introduces the operation of obtaining the panoramic point cloud data of the working area at different times in S101. The specific process is as follows: controlling the motor to drive the radar to rotate, and controlling the radar to scan to obtain the panoramic point cloud data of the working area at different times; the panoramic point cloud data corresponding to each moment includes the point cloud data collected by the radar when it rotates one circle.
[0057] The self-propelled device is provided with a radar and a motor, the output shaft of the motor is connected to the rotation axis of the radar through a mechanical connector (such as a coupling, a gear), and the rotation axis of the radar is perpendicular to the horizontal plane. The above radar can be a solid-state laser radar, a phased array radar, a super-surface laser radar, or other radars with a field of view less than 360 degrees.
[0058] In this embodiment, the motor can be controlled to drive the radar to rotate at a predetermined speed and direction. During the process of the motor driving the radar to rotate, the radar continuously performs point cloud scanning, that is, a horizontal 360-degree scanning without blind spots is achieved. The field of view of the radar is less than 360 degrees, which means that each scan can only cover a part of the environment. In this embodiment, through the continuous rotation of the motor, the radar can perform multi-angle scanning to obtain point cloud data in different directions. Each time the radar rotates one circle (i.e., 360 degrees), a frame of panoramic point cloud data is generated. The panoramic point cloud data contains the point cloud data collected by the radar when it rotates one circle. In the process of performing other operations, the operation of rotating and scanning the radar in this embodiment can be executed cyclically to obtain multiple frames of panoramic point cloud data, that is, panoramic point cloud data of the working area at different times.
[0059] The self-propelled device used in this embodiment is provided with a radar and a motor, and the panoramic point cloud data is obtained by controlling the motor to drive the radar to rotate. After obtaining the panoramic point cloud data, this embodiment identifies static objects in the environment, determines the relative motion information between the static objects and the self-propelled device based on multiple frames of the panoramic point cloud data, and then realizes positioning. Although the field of view of the radar used by the self-propelled device is less than 360°, a single scan cannot cover the entire environment around the device, but this embodiment uses a motor to drive the radar to rotate to scan point cloud data in various directions, thereby avoiding the situation where point cloud data is missing due to radar blind spots. Therefore, this embodiment can effectively make up for the blind spot problem caused by insufficient radar field of view, avoid the influence of radar blind spots on positioning, and thus improve the positioning accuracy of the self-propelled device.
[0060] Exemplarily, the self-propelled device further includes an encoder, which is installed on the rotation axis of the radar so that the encoder can be used to record the scanning angle of the radar; on this basis, the present embodiment can control the radar to scan and obtain the panoramic point cloud data at different times in the following manner: control the radar to scan at the first moment so as to obtain the point cloud data of multiple scanning angles; perform redundant data removal and splicing operations on the point cloud data collected by the radar (starting from the first moment) rotating one circle according to the scanning angle, and obtain the panoramic point cloud data corresponding to the first moment; control the radar to scan at the second moment so as to obtain the point cloud data of multiple scanning angles; perform redundant data removal and splicing operations on the point cloud data collected by the radar (starting from the second moment) rotating one circle according to the scanning angle, and obtain the panoramic point cloud data corresponding to the second moment. The above content specifically introduces the process of controlling the radar to scan and obtain the panoramic point cloud data of the working area at different moments. This embodiment can use an encoder to record the scanning angle of the radar during the radar scanning process. Redundant data removal and splicing operations based on the scanning angle can ensure that data acquired from different angles can be accurately spliced into a complete 360-degree environmental image. At the same time, duplicate data points are removed, thereby improving data quality and availability.
[0061] Exemplarily, the process of determining the relative motion information of the static object according to the panoramic point cloud data is as follows: Figure 4 As shown, Figure 4 A flowchart of a method for generating and processing relative motion information provided in an embodiment of the present application, the process includes:
[0062] S401: Determine first relative position information of the static object corresponding to the first moment according to the panoramic point cloud data at the first moment;
[0063] Specifically, during the rotational scanning by the radar, the first relative position information of the static object obtained at the first moment can be obtained; such as the trees and stones obtained by the radar scanning at the current moment, by calculating the three-dimensional Euclidean distance between the geometric center point of the static object and the origin of the local coordinate system, the relative displacement of the static object relative to the self-propelled device is obtained, so as to determine the relative position information between the current self-propelled device and the tree and stone; this operation can use the relative displacement and azimuth of the static object as the first relative position information.
[0064] S402: Determine second relative position information of the static object corresponding to the second moment according to the panoramic point cloud data at the second moment, and determine relative motion information of the static object according to the first relative position information and the second relative position information.
[0065] The relative position information of the above-mentioned static object (including the first relative position information and the second relative position information) is the relative position information of the static object relative to the coordinate system (or the origin of the coordinate system) of the self-propelled device. Specifically, the panoramic point cloud data at the second moment is the relative position information of the static object scanned by the self-propelled device after a period of time during the working process. The self-propelled device will continue to move forward during the working process. After the preset working time, it obtains the relative displacement of the static object relative to the device at the current moment based on the point cloud information of the trees, stones or houses in the corresponding area at the second moment after the preset time, and uses the relative displacement and azimuth at the second moment as the second relative position information.
[0066] S403: Determine the displacement information and rotation angle of the static object relative to the self-propelled device according to the relative motion information of the static object.
[0067] Exemplarily, during the positioning process of the self-propelled device, the displacement information and rotation angle of the static object relative to the self-propelled device can also be determined based on the relative motion information of the static object. The first relative position information and the second relative position information can be obtained in the above manner, and both the first relative position information and the second relative position information include the displacement information and rotation angle of the static object relative to the self-propelled device.
[0068] Exemplarily, the operation of positioning the self-propelled device according to the relative motion information is as follows: Figure 5 As shown, Figure 5 A flow chart of a displacement information processing method provided in an embodiment of the present application, wherein:
[0069] S501: Perform weighted calculation on the displacement information of each static object relative to the self-propelled device to obtain actual displacement information of the self-propelled device in a global coordinate system (world coordinate system).
[0070] S502: Perform weighted calculation on the rotation angle of each static object relative to the self-propelled device to obtain the actual rotation angle of the self-propelled device in the global coordinate system.
[0071] Through the above-mentioned weighted calculation method, the interference caused by measurement noise and object motion inconsistency can be reduced, and the calculation accuracy of actual displacement information and actual steering angle can be improved.
[0072] S503: Positioning the self-propelled device according to the actual displacement information and the actual rotation angle.
[0073] This embodiment can combine the actual displacement information and the actual rotation angle to obtain the posture change of the self-propelled device between two frames, and the self-propelled device can be positioned based on the posture change. Specifically, this step can determine the actual displacement information and actual rotation angle of the self-propelled device at different times, and use the actual displacement information and actual rotation angle to jointly determine the new position of the self-propelled device in the global coordinate system, thereby achieving precise positioning.
[0074] Exemplarily, after obtaining the actual displacement information and the actual rotation angle, the following operations may also be included: updating the position and orientation of the self-propelled device according to the actual displacement information and the actual rotation angle to form a complete path trajectory (i.e., the path trajectory of the self-propelled device during operation).
[0075] Taking the panoramic point cloud data at the first moment and the second moment as an example, the above process of identifying at least one static object in the environment of the panoramic point cloud data at different moments includes: performing feature recognition based on the panoramic point cloud data corresponding to the first moment and the panoramic point cloud data corresponding to the second moment, and determining the environmental object based on the feature recognition result; determining the relative motion information of the environmental object corresponding to the first moment and the environmental object corresponding to the second moment; when there is relative motion information of an abnormal environmental object, deleting the point cloud information of the abnormal environmental object so that the retained environmental object can be set as a static object.
[0076] Exemplarily, this embodiment can also delete the point cloud information of the abnormal environmental object when there is relative motion information of the abnormal environmental object based on the relative motion information of the environmental object at the first moment and the environmental object at the second moment, and also include: when the relative motion information of the abnormal environmental object is that the displacement information or rotation angle of the abnormal environmental object is different from the displacement information or rotation angle of other environmental objects; or when the relative motion information of the abnormal environmental object is that the difference between the displacement information or rotation angle of the abnormal environmental object and the displacement information or rotation angle of other environmental objects exceeds a preset threshold, it is considered (i.e., determined) that the abnormal environmental object is a dynamic object, and the point cloud data of the abnormal environmental object is deleted.
[0077] Specifically, this embodiment can identify abnormal environmental objects and retain static objects. An abnormal environmental object is an environmental object that meets the first preset rule or the second preset rule; the first preset rule is: the displacement information or rotation angle of the abnormal environmental object is different from the displacement information or rotation angle of other environmental objects; the second preset rule is: the difference between the displacement information or rotation angle of the abnormal environmental object and the displacement information or rotation angle of other environmental objects exceeds a preset threshold. In this embodiment, the process of deleting the point cloud information of the abnormal environmental object includes: determining whether the environmental object meets the first preset rule or the second preset rule; if so, determining that the environmental object is a dynamic object (i.e., an abnormal environmental object), and deleting the point cloud data of the abnormal environmental object.
[0078] Exemplarily, this embodiment can determine the relative motion information of the static object in the following manner: determine the relative position information of the current frame according to the panoramic point cloud data of the current frame; determine the relative motion information according to the relative position information of the current frame and the relative position information of the previous frame.
[0079] The current frame relative position information is used to describe the positional relationship between the self-propelled device and each of the static objects in the current frame of panoramic cloud data; the previous frame relative position information is used to describe the positional relationship between the self-propelled device and each of the static objects in the previous frame of panoramic cloud data, and the previous frame relative position information is determined based on the previous frame of panoramic cloud data. The above process determines the relative motion information of the static object by comparing the position change of the static object between the two frames, thereby achieving accurate positioning of the self-propelled device.
[0080] This embodiment can determine the center point position of each static object, and can also identify the key points of the static object in the current frame panoramic point cloud data, which are usually located at the edge or feature position of the static object. Exemplarily, the current frame relative position information includes the current frame object relative position information and the current frame key point relative position information, so this embodiment can determine the current frame object relative position information based on the current frame panoramic point cloud data, and can also determine the current frame key point relative position information based on the current frame panoramic point cloud data.
[0081] Among them, the current frame object relative position information is used to describe the relative coordinate position of the self-propelled device and the center point of each static object in the current frame panoramic point cloud data; the current frame key point relative position information is used to describe the relative coordinate position of the self-propelled device and each key point in the current frame panoramic point cloud data; the key point is the point cloud of the static object.
[0082] This embodiment can store the relative position information of the previous frame, which includes the relative position information of the object of the previous frame and the relative position information of the key points of the previous frame. This embodiment can determine the relative position information of the object of the previous frame based on the panoramic point cloud data of the previous frame, and can also determine the relative position information of the key points of the previous frame based on the panoramic point cloud data of the previous frame. Among them, the relative position information of the object of the previous frame is used to describe the relative coordinate position of the self-propelled device and the center point of each static object in the panoramic point cloud data of the previous frame; the relative position information of the key points of the previous frame is used to describe the relative coordinate position of the self-propelled device and each key point in the panoramic point cloud data of the previous frame.
[0083] If the relative motion information includes the displacement information and rotation angle of the static object relative to the self-propelled device, after determining the relative position information of the current frame and the relative position information of the previous frame, the relative motion information can be determined in the following manner: based on the relative position information of the object in the current frame and the relative position information of the object in the previous frame, the displacement information of the static object relative to the self-propelled device is determined; based on the relative position information of the key points of the current frame and the relative position information of the key points of the previous frame, the rotation angle of the static object relative to the self-propelled device is determined.
[0084] Exemplarily, the present embodiment can identify static objects in the environment in the following manner: perform feature recognition on the current frame panoramic point cloud data, and determine the environmental objects based on the feature recognition results; identify dynamic objects in the environmental objects, and set the environmental objects other than the dynamic objects as the static objects in the environment.
[0085] Specifically, this embodiment can identify dynamic objects by any one of the following methods or a combination of any of the following methods:
[0086] Mode 1: Setting the environmental objects that do not exist in the previous frame of panoramic point cloud data as dynamic objects. Mode 1 can be used to set the environmental objects that exist in the current frame of panoramic point cloud data but do not exist in the previous frame of panoramic point cloud data as dynamic objects.
[0087] Method 2: Determine whether the distance between the current object position and the historical object position of the environmental object is greater than a first preset value; if so, set the environmental object as a dynamic object; wherein the current object position is the position of the environmental object in the current frame of panoramic point cloud data, the historical object position is the position of the environmental object in the previous frame of panoramic point cloud data, and the current object position and the historical object position are positions in the global coordinate system.
[0088] Method 3: Determine the reference object that is closest to the environmental object; determine whether the distance between the environmental object and the reference object is greater than a second preset value based on the current frame panoramic cloud data; if so, set the environmental object as a dynamic object.
[0089] The above method can accurately identify dynamic objects in the environment and improve the positioning accuracy of the self-propelled device.
[0090] The process described in the above embodiment is explained below by using an embodiment of a lawn mower in actual application.
[0091] Compared with the radar of traditional mechanical scanning technology, solid-state laser radar has the advantages of simple structure, small size, fast scanning speed and high scanning accuracy, but the field of view of solid-state laser radar is small, usually 90°-150°. In actual application, the lawn mower needs to have a 360° scanning range to meet omnidirectional perception and avoid blind spots; when the blind spot is large, it may not be able to avoid obstacles in time, which is easy to cause accidents.
[0092] Existing lawn mowers can usually only sense objects at the front of the lawn mower, and cannot identify objects at the rear of the lawn mower. Therefore, during the operation of the lawn mower, if the lawn mower does not have RTK (Real-time kinematic) or other GPS (Global Positioning System) positioning devices, if the front of the lawn is an open area, the lawn mower cannot be accurately positioned.
[0093] In response to the technical problems existing in the above-mentioned related technologies, this application improves a positioning solution for a lawn mower. This solution can drive the solid-state laser radar to rotate 360° through a motor, and the rotation angle of the solid-state laser radar can be obtained through an encoder. The solid-state laser radar can be controlled to rotate one or more circles per second, so as to obtain the solid-state laser radar scanning data at various angles. The lawn mower is positioned by the position of objects in various directions scanned by the solid-state laser radar, and based on the position of objects in various directions scanned, the relative position of objects in various directions is used to position the lawn mower.
[0094] Specifically, in this embodiment, the motor is controlled to drive the solid-state laser radar to rotate 360 degrees, and the solid-state laser radar is controlled to emit laser pulses to obtain scanning data at various angles, and the distance of objects on the lawn in different directions is measured at the same time. In this embodiment, an encoder can also be used to obtain real-time angle information of the solid-state laser radar to ensure that accurate distance data is collected at different angles.
[0095] This embodiment can combine the distance and the corresponding angle obtained by the solid-state laser radar scanning to generate two-dimensional or three-dimensional point cloud data of the current environment. Each point in the point cloud data represents the specific position of an object in a direction.
[0096] After acquiring the point cloud data, this embodiment can perform environmental feature extraction on the point cloud data to determine the main feature objects in the environment, such as trees, fences, walls, etc. The unique geometric features formed by these objects in space are helpful for subsequent positioning.
[0097] This embodiment can build an initial map of the environment based on the relative positions of the objects initially scanned, and mark the scanned objects in the initial lawn defined by the user to identify the related objects. For example, this embodiment can also identify the scanned dynamic objects. Since the position of the dynamic objects may change, the relevant information of the dynamic objects can be deleted when positioning the lawn mower.
[0098] Each time the solid-state LiDAR completes a new 360° scan, the newly acquired point cloud data is matched with the last acquired point cloud data. By comparing the changes in the relative position of objects in the current scan with the previous scan, the current position and orientation of the lawn mower in the environment can be determined.
[0099] This embodiment controls the solid-state laser radar to perform a 360° rotation scan to obtain position data of objects in the environment, performs multiple radar scans at different times, obtains multi-frame scanning data including multiple objects, and determines the current position information of the lawn mower based on the multi-frame scanning data.
[0100] Specifically, this embodiment can match the currently scanned environment point cloud with the previously established map. Through the point cloud matching algorithm, the corresponding relationship between the newly scanned point cloud data and the existing features in the map is found, thereby calculating the displacement and rotation angle of the lawn mower.
[0101] Through the 360° scanning of the solid-state laser radar, the position information of multiple objects around the lawn mower can be obtained. The position information of these objects can be used to accurately determine the relative displacement and rotation angle of the lawn mower, thereby obtaining the angle of the lawn mower. The result of each scan is a point cloud data set containing multiple points.
[0102] The solid-state laser radar performs a 360° rotation scan to obtain the position information of multiple objects around the lawn mower. Using the position information of the above objects, the relative displacement and rotation angle of the lawn mower can be accurately determined, thereby obtaining the current position and angle of the lawn mower. The result of each scan of the solid-state laser radar is a point cloud dataset containing multiple points, as follows:
[0103] ;
[0104] ;
[0105] represents the scanning result of the solid-state laser radar at time t, represents the scanning result of the solid-state laser radar at time t+Δt, It represents the coordinates of the i-th object scanned by the solid-state laser radar at time t, 1≤i≤n, and n is the number of static objects.
[0106] When processing radar scan data, if there are moving objects, you need to remove these moving objects from the data when calculating the position and path of the lawn mower to avoid interference with the lawn mower position calculation. The specific method is as follows:
[0107] (1) The radar scans multiple times to obtain point cloud data at different time points. The radar obtains the position of a set of objects every time it scans a circle.
[0108] (2) Match objects by using their relative positions or distances in space, performing a nearest neighbor match between each object at time t and the object at time t+Δt, ensuring that each object is matched between the two time points.
[0109] ;
[0110] represents the distance between time t and time t+Δt, represents the position of object j at time t, represents the position of object j at time t+Δt, and represents the coordinates of object j at time t, and represents the coordinates of object j at time t+Δt.
[0111] Detect moving objects and determine whether they are moving objects by calculating the uniqueness of each object; if an object does not find a matching object at time t+Δt, or the distance to the closest object exceeds a certain threshold d threshold , it can be considered that the object is either moving or has left the radar scanning range. After determining the moving object, the moving object detected at time t can be deleted from the object set so that the filtered static object data can be used for position update and path planning. In this embodiment, the relative position of the static object can be used to calculate the displacement and rotation of the lawn mower, and path planning and trajectory generation can be achieved based on the position data of the static object.
[0112] According to the relative displacement of the static object, this embodiment can determine the current displacement and rotation angle of the lawn mower. Using the static object matching information in the two scans, the displacement information of the lawn mower is calculated ( , Δy) and the rotation angle Δθ.
[0113] The displacement information of the lawn mower is calculated as follows:
[0114] For each scanned static object , the relative displacement between two scans can be calculated:
[0115] ;
[0116] ;
[0117] represents the relative displacement of the lawnmower in the X-axis direction between two scans, represents the relative displacement of the lawnmower in the Y-axis direction between two scans, represents the coordinate difference between the lawn mower and the i-th static object on the X-axis at time t+Δt, represents the coordinate difference between the lawn mower and the i-th static object on the X-axis at time t, represents the coordinate difference between the lawn mower and the i-th static object on the Y axis at time t+Δt, It represents the coordinate difference between the lawn mower and the i-th static object on the Y axis at time t. According to the above formula, by calculating the relative displacement of each static object, the displacement information and rotation angle of the lawn mower can be inferred.
[0118] Since multiple static objects may have measurement noise or inconsistency caused by the movement of different static objects, the actual displacement of the lawn mower on the X axis can be obtained by taking a weighted average of the displacements of all static objects. and the actual displacement of the Y axis , the specific calculation formula is as follows:
[0119] ;
[0120] .
[0121] During the operation of the lawn mower, if there is rotation, the position of the key points in the point cloud data scanned by the solid-state lidar will change. By comparing the positions of the key points in the scans at different times, the rotation angle can be calculated.
[0122] Get the coordinates of the same key point in two scans and For example, the rotation angle of the lawn mower relative to the key point i The calculation formula is as follows:
[0123] ;
[0124] ;
[0125] .
[0126] represents the relative position of the lawn mower and the i-th key point at time t, represents the coordinate difference between the lawn mower and the i-th key point on the X-axis at time t, represents the coordinate difference between the lawn mower and the i-th key point on the Y axis at time t, represents the relative position of the lawn mower and the i-th key point at time t+Δt, represents the coordinate difference between the lawn mower and the i-th key point on the X-axis at time t+Δt, Represents the coordinate difference between the lawn mower and the i-th key point on the Y axis at time t+Δt.
[0127] By rotating the m key points Calculate the average value to get the actual rotation angle of the lawn mower :
[0128] ;
[0129] Getting the actual displacement information , and the actual rotation angle After that, the path can be updated step by step.
[0130] Assume that the initial position of the lawn mower is (x0, y0) and the initial orientation angle is θ0. The position update formula of the lawn mower in each scanning interval is:
[0131] ;
[0132] ;
[0133] ;
[0134] represents the X-axis coordinate of the lawn mower at time t+1, represents the X-axis coordinate of the lawn mower at time t, represents the direction of the lawn mower at time t, represents the Y-axis coordinate of the lawn mower at time t+1, represents the Y-axis coordinate of the lawn mower at time t, represents the direction angle of the lawn mower at time t+1.
[0135] As time goes by, each scan can update the position and orientation of the lawn mower according to the above formula to form a complete path trajectory. t ,y t ) is the position information of the lawn mower at each time step. By plotting these points in a plane coordinate system, the actual driving trajectory of the lawn mower can be obtained. Figure 6 , Figure 6 A schematic diagram of a lawn mower in multiple positions provided in an embodiment of the present application, X and Y represent horizontal and vertical coordinates, P0, P1, P2, P3 and P4 represent five positions reached by the lawn mower in succession, θ0, θ1, θ2, θ3 and θ4 represent the orientation angles of the lawn mower at P0, P1, P2, P3 and P4 respectively, and the orientation angle is the angle between the driving direction of the lawn mower and the positive direction of the X axis. The driving trajectory of the lawn mower can be obtained by connecting P0, P1, P2, P3 and P4 with a smooth curve.
[0136] This embodiment can maintain the high scanning frequency and high resolution of the solid-state laser radar when there is no RTK and GPS data, thereby solving the blind spot problem of the radar. This embodiment can perform all-round scanning to achieve accurate positioning of the lawn mower.
[0137] See also Figure 7 , Figure 7 A structural schematic diagram of a positioning system for a self-propelled device provided in an embodiment of the present application, wherein the self-propelled device is provided with a radar and a motor, wherein the field of view of the radar is less than 360°, and the positioning system for the self-propelled device comprises:
[0138] Point cloud acquisition module 701, used to acquire panoramic point cloud data of the working area at different times;
[0139] An object recognition module 702 is used to recognize at least one static object in the environment of the panoramic point cloud data at different times;
[0140] The positioning module 703 is used to determine the relative motion information of the static object based on the panoramic point cloud data, and to position the self-propelled device based on the relative motion information; wherein the relative motion information includes the displacement information and / or rotation angle of the static object relative to the self-propelled device.
[0141] This embodiment obtains the panoramic point cloud data of the working area at different times, identifies static objects from the panoramic point cloud data, and then realizes the positioning of the self-propelled device based on the relative motion information of the static objects. The above process uses the panoramic point cloud data to determine the static objects and relative motion information, which can avoid the situation where the positioning accuracy is low due to the lack of point cloud data. By comparing and analyzing the point cloud data at different times, this embodiment can identify the static objects in the environment and calculate the relative motion information of these objects relative to the self-propelled device, including displacement information and rotation angle; based on the above relative motion information, the self-propelled device can continuously update its own position, thereby achieving high-precision positioning.
[0142] Exemplarily, the process of the point cloud acquisition module 701 acquiring the panoramic point cloud data of the working area includes: the self-propelled device has a radar and a motor; the field of view of the radar is less than 360 degrees, the motor drives the radar to rotate, and the radar obtains the panoramic point cloud data during the rotation scanning process.
[0143] Exemplarily, it also includes:
[0144] An angle recording module, used to record the scanning angle of the radar using an encoder; wherein the encoder is installed on the rotation axis of the radar;
[0145] The process of the point cloud acquisition module 701 controlling the radar to scan and obtain the panoramic point cloud data at different times includes: controlling the radar to scan at a first time so as to obtain the point cloud data of multiple scanning angles, and performing redundant data removal and splicing operations on the point cloud data collected when the radar rotates one circle according to the scanning angle, to obtain the panoramic point cloud data at the first time; controlling the radar to scan at a second time so as to obtain the point cloud data of multiple scanning angles, and performing redundant data removal and splicing operations on the point cloud data collected when the radar rotates one circle according to the scanning angle, to obtain the panoramic point cloud data at the second time.
[0146] Exemplarily, the process of the positioning module 703 determining the relative motion information of the static object based on the panoramic point cloud data includes: determining the first relative position information of the static object at the first moment based on the panoramic point cloud data at the first moment; the relative position information of the static object is the relative position information of the static object relative to the coordinate system of the self-propelled device; determining the second relative position information of the static object at the second moment based on the panoramic point cloud data at the second moment, and determining the relative motion information of the static object based on the first relative position information and the second relative position information.
[0147] Exemplarily, the positioning module 703 is further configured to determine the displacement information and the rotation angle of the static object relative to the self-propelled device according to the relative motion information of the static object.
[0148] Exemplarily, the positioning module 703 is also used to perform weighted calculation on the displacement information of each of the static objects relative to the self-propelled device to obtain the actual displacement information of the self-propelled device in the global coordinate system; it is also used to perform weighted calculation on the rotation angle of each of the static objects relative to the self-propelled device to obtain the actual rotation angle of the self-propelled device in the global coordinate system; it is also used to position the self-propelled device according to the actual displacement information and the actual rotation angle.
[0149] Exemplarily, it also includes:
[0150] The trajectory generation module is used to update the position and orientation of the self-propelled device according to the actual displacement information and the actual rotation angle to form a complete path trajectory.
[0151] Exemplarily, the object recognition module 702 is also used to perform feature recognition based on the panoramic point cloud data at the first moment and the panoramic point cloud data at the second moment, and determine the environmental object based on the feature recognition result; it is also used to determine the relative motion information of the environmental object at the first moment and the environmental object at the second moment; when there is relative motion information of an abnormal environmental object, the point cloud information of the abnormal environmental object is deleted.
[0152] Exemplarily, the object recognition module 702 is also used to consider the abnormal environment object as a dynamic object and delete the point cloud data of the abnormal environment object when the relative motion information of the abnormal environment object is that the displacement information or rotation angle of the abnormal environment object is different from the displacement information or rotation angle of other environment objects; or when the relative motion information of the abnormal environment object is that the displacement information or rotation angle of the abnormal environment object and the displacement information or rotation angle of other environment objects have a difference that exceeds a preset threshold.
[0153] Since the embodiments of the system part correspond to the embodiments of the method part, please refer to the description of the embodiments of the method part for the embodiments of the system part, which will not be repeated here.
[0154] The present application also provides a storage medium on which a computer program is stored, and when the computer program is executed, the steps provided in the above embodiment can be implemented. The storage medium may include: a USB flash drive, a mobile hard disk, a read-only memory (ROM), a random access memory (RAM), a magnetic disk or an optical disk, and other media that can store program codes.
[0155] The present application also provides an electronic device, which may include a memory and a processor, wherein a computer program is stored in the memory, and when the processor calls the computer program in the memory, the steps provided in the above embodiment may be implemented. Of course, the electronic device may also include various network interfaces, power supplies and other components.
[0156] The various embodiments in the specification are described in a progressive manner, and each embodiment focuses on the differences from other embodiments. The same and similar parts between the various embodiments can be referred to each other. For the system disclosed in the embodiment, since it corresponds to the method disclosed in the embodiment, the description is relatively simple, and the relevant parts can be referred to the method part description. It should be pointed out that for ordinary technicians in this technical field, without departing from the principles of this application, several improvements and modifications can be made to the present application, and these improvements and modifications also fall within the scope of protection of this application.
[0157] It should also be noted that, in this specification, relational terms such as first and second, etc. are only used to distinguish one entity or operation from another entity or operation, and do not necessarily require or imply any such actual relationship or order between these entities or operations. Moreover, the terms "comprises", "comprising" or any other variants thereof are intended to cover non-exclusive inclusion, so that a process, method, article or device including a series of elements includes not only those elements, but also other elements not explicitly listed, or also includes elements inherent to such process, method, article or device. In the absence of further restrictions, an element defined by the statement "comprising a ..." does not exclude the presence of other identical elements in the process, method, article or device including the element.
Claims
1. A positioning method for a self-propelled device, characterized in that: Acquire panoramic point cloud data of the working area at different times; identify at least one static object in the environment of the panoramic point cloud data at different times; The relative motion information of the static object is determined according to the panoramic point cloud data, and the self-propelled device is positioned according to the relative motion information; wherein the relative motion information includes the displacement information and / or rotation angle of the static object relative to the self-propelled device.
2. The positioning method of the self-propelled device according to claim 1, characterized in that: The step of obtaining the panoramic point cloud data of the working area further includes: The self-propelled device has a radar and a motor; the field of view of the radar is less than 360 degrees, the motor drives the radar to rotate, and the radar obtains the panoramic point cloud data during the rotation scanning process.
3. The positioning method of the self-propelled device according to claim 2, characterized in that: Using an encoder to record the scanning angle of the radar; wherein the encoder is installed on the rotating shaft of the radar; Controlling the radar to scan and obtain panoramic cloud data at different times, including: Controlling the radar to scan at a first moment to obtain point cloud data at a plurality of scanning angles, performing redundant data removal and splicing operations on the point cloud data collected by the radar when it rotates one circle according to the scanning angles, to obtain the panoramic point cloud data at the first moment; The radar is controlled to scan at a second moment so as to obtain point cloud data at a plurality of scanning angles, and redundant data removal and splicing operations are performed on the point cloud data collected by the radar after one rotation according to the scanning angles to obtain the panoramic point cloud data at the second moment.
4. The positioning method of the self-propelled device according to claim 3, characterized in that: The determining of the relative motion information of the static object according to the panoramic point cloud data includes: determining first relative position information of the static object at a first moment according to the panoramic point cloud data at a first moment; the relative position information of the static object is the relative position information of the static object relative to the coordinate system of the self-propelled device; determining second relative position information of the static object at a second moment according to the panoramic point cloud data at the second moment, and determining the relative motion information of the static object according to the first relative position information and the second relative position information.
5. The positioning method of the self-propelled device according to claim 4, characterized in that: According to the relative motion information of the static object, the displacement information and the rotation angle of the static object relative to the self-propelled device are determined.
6. The positioning method of the self-propelled device according to claim 5, characterized in that: Performing weighted calculation on the displacement information of each static object relative to the self-propelled device to obtain actual displacement information of the self-propelled device in a global coordinate system; Performing weighted calculation on the rotation angle of each static object relative to the self-propelled device to obtain the actual rotation angle of the self-propelled device in the global coordinate system; The self-propelled device is positioned according to the actual displacement information and the actual rotation angle.
7. The positioning method of the self-propelled device according to claim 6, characterized in that: The position and orientation of the self-propelled device are updated according to the actual displacement information and the actual rotation angle to form a complete path trajectory.
8. The positioning method for a self-propelled device according to any one of claims 3 to 7, characterized in that: performing feature recognition based on the panoramic point cloud data at the first moment and the panoramic point cloud data at the second moment, and determining the environmental object based on the feature recognition result; Determine the relative motion information of the environmental object at the first moment and the environmental object at the second moment; when there is relative motion information of an abnormal environmental object, delete the point cloud information of the abnormal environmental object.
9. The positioning method of the self-propelled device according to claim 8, characterized in that: According to the relative motion information of the environmental object at a first moment and the environmental object at a second moment, when there is relative motion information of an abnormal environmental object, the point cloud information of the abnormal environmental object is deleted, and it also includes: when the relative motion information of the abnormal environmental object is that the displacement information or the rotation angle of the abnormal environmental object is different from the displacement information or the rotation angle of other environmental objects; or when the relative motion information of the abnormal environmental object is that the displacement information or the rotation angle of the abnormal environmental object and the displacement information or the rotation angle of other environmental objects exceed a preset threshold, the abnormal environmental object is considered to be a dynamic object, and the point cloud data of the abnormal environmental object is deleted.
10. A positioning system for a self-propelled device, characterized in that: include: Point cloud acquisition module, used to obtain the panoramic point cloud data of the working area at different times; An object recognition module, used to recognize at least one static object in the environment of the panoramic point cloud data at different times; A positioning module is used to determine the relative motion information of the static object based on the panoramic point cloud data, and to position the self-propelled device based on the relative motion information; wherein the relative motion information includes the displacement information and / or rotation angle of the static object relative to the self-propelled device.
11. An electronic device, characterized in that: The method comprises a memory and a processor, wherein a computer program is stored in the memory, and when the processor calls the computer program in the memory, the steps of positioning the self-propelled device as claimed in any one of claims 1 to 9 are implemented.
12. A storage medium, characterized in that: The storage medium stores computer executable instructions, and when the computer executable instructions are loaded and executed by the processor, the steps of the positioning method for the self-propelled device according to any one of claims 1 to 9 are implemented.