Contour detection of transparent obstacle
By combining data from lidar and ultrasonic radar, the robot generates motion commands to move to one side of the transparent obstacle, collects environmental data, and fuses data under different commands. This solves the problem of the robot's difficulty in detecting the outline of transparent obstacles, and achieves accurate obstacle detection and safe navigation.
Patent Information
- Application Number
- PCT/CN2025/116958
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2024-08-27
- Filing Date
- 2025-08-26
- Publication Date
- 2026-03-05
Smart Images

Figure CN2025116958_05032026_PF_FP_ABST
Abstract
Description
Contour detection of transparent obstacles Technical Field
[0001] This disclosure relates to the field of robotics, and in particular to a method, apparatus, robot, and medium for detecting the contour of a transparent obstacle. Background Technology
[0002] With the rapid development of robotics technology, robots are increasingly widely used in various fields such as daily life, industrial production, medical care, and military exploration. In these applications, accurate localization is fundamental for robots to achieve autonomous navigation and task execution. However, the environments in which robots operate are often complex and changeable, posing a significant challenge to the technology for detecting objects in those environments. Among related technologies, detection schemes for transparent obstacles are not accurate enough and cannot obtain the contour information of transparent obstacles. Summary of the Invention
[0003] In view of this, the present disclosure provides at least one method, apparatus, robot, and medium for detecting the contour of transparent obstacles. The technical solution of the present disclosure is implemented as follows:
[0004] In a first aspect, this disclosure provides a method for detecting the contour of a transparent obstacle, applied to a robot. The method includes: generating a first motion command in response to environmental data during obstacle detection indicating the presence of a transparent obstacle around the robot; the first motion command instructing the robot to move toward a first side of the transparent obstacle; generating a second motion command in response to the robot reaching the first side of the transparent obstacle, the second motion command instructing the robot to move from the first side of the transparent obstacle to a second side; and during the movement based on the second motion command, acquiring environmental data from a contour acquisition process corresponding to the second motion command, and determining the contour information of the transparent obstacle based on the environmental data from the contour acquisition process corresponding to the second motion command.
[0005] In some embodiments, generating a second motion command in response to the robot reaching a first side of the transparent obstacle includes: generating the second motion command in response to the robot reaching a first position; wherein the first position is located on a first side of the transparent obstacle, and environmental data acquired at the first position indicates that there is no transparent obstacle around the robot.
[0006] In some embodiments, the method further includes: acquiring environmental data during the process of the robot moving toward a first side of the transparent obstacle in response to the first motion command; and determining that the robot has reached a first position if the environmental data acquired during the movement of the robot toward the first side of the transparent obstacle indicates that there is no transparent obstacle around the robot.
[0007] In some embodiments, the method further includes: determining contour information for verification based on environmental data collected during the robot's movement toward a first side of the transparent obstacle; verifying the contour information of the transparent obstacle using the contour information for verification; generating a third motion command in response to a failed verification, the third motion command controlling the robot to move from a second side of the transparent obstacle to the first side; acquiring environmental data of the contour acquisition process corresponding to the third motion command during the movement process, and determining updated contour information of the transparent obstacle based on the environmental data of the contour acquisition process corresponding to the third motion command; and generating final contour information of the transparent obstacle based on the contour information of the transparent obstacle and the updated contour information of the transparent obstacle.
[0008] In some embodiments, generating the final contour information of the transparent obstacle based on the contour information of the transparent obstacle and the updated contour information of the transparent obstacle includes: fusing the contour information of the transparent obstacle and the updated contour information based on a weighted algorithm to obtain the final contour information of the transparent obstacle, wherein the weight of the updated contour information is higher than the weight of the contour information.
[0009] In some embodiments, the first motion command is used to instruct the robot to move along a first direction toward a first side of the transparent obstacle; the first direction is not parallel to the direction of receiving ultrasonic data, and the angle between the first direction and the direction of receiving ultrasonic data is related to the obstacle distance; the obstacle distance is the distance between the robot and the transparent obstacle determined based on the ultrasonic data.
[0010] In some embodiments, the method further includes: generating a first direction based on the relationship between the current obstacle distance and the target detection distance, wherein, when the obstacle distance is greater than the target detection distance, the first direction is used to control the robot to move closer to the transparent obstacle; when the obstacle distance is less than the target detection distance, the first direction is used to control the robot to move away from the transparent obstacle.
[0011] In some embodiments, determining the contour information of the transparent obstacle based on environmental data from the contour acquisition process corresponding to the second motion command includes: responding to environmental data from the contour acquisition process corresponding to the second motion command indicating the existence of the transparent obstacle around the robot, determining a set of position points of the transparent obstacle in the world coordinate system based on the ultrasonic detection direction, the obstacle distance detected by the ultrasonic waves between the robot and the transparent obstacle, and the pose of the robot in the world coordinate system; and determining the contour information of the transparent obstacle based on the set of position points.
[0012] In some embodiments, determining the contour information of the transparent obstacle based on the set of location points includes: during movement based on the second motion command, in response to environmental data in the contour acquisition process corresponding to the second motion command, the robot moves from a position where the transparent obstacle exists to a position where the transparent obstacle does not exist, and determining the contour information of the transparent obstacle based on the set of location points.
[0013] In some embodiments, the environment map is a grid map, and the contour information includes the grids in the grid map where the transparent obstacle exists; determining the contour information of the transparent obstacle based on the set of location points includes: determining the grids in the grid map where the transparent obstacle exists based on the position coordinates of each location point in the set of location points in the world coordinate system and the range information of each grid in the grid map.
[0014] In some embodiments, the environmental data during the obstacle detection process includes ultrasonic data and optical data, and the method further includes: generating a first obstacle detection result based on the ultrasonic data; generating a second obstacle detection result based on the optical data; and determining that the transparent obstacle exists around the robot in response to determining that the first obstacle detection result indicates that an obstacle was detected and the second obstacle detection result indicates that no obstacle was detected.
[0015] In some embodiments, before generating a first motion command in response to environmental data characterizing the presence of a transparent obstacle around the robot during the obstacle detection process, the method further includes: acquiring environmental data during the obstacle detection process while generating an environmental map using Simultaneous Localization and Mapping (SLAM).
[0016] Secondly, this disclosure provides a contour detection device for transparent obstacles, the device comprising: a first generation module, configured to generate a first motion command in response to environmental data during obstacle detection indicating the presence of a transparent obstacle around a robot; the first motion command instructing the robot to move toward a first side of the transparent obstacle; a second generation module, configured to generate a second motion command in response to the robot reaching the first side of the transparent obstacle; the second motion command instructing the robot to move from the first side of the transparent obstacle to a second side; and a determination module, configured to acquire environmental data from a contour acquisition process corresponding to the second motion command during movement based on the second motion command, and determine the contour information of the transparent obstacle based on the environmental data from the contour acquisition process corresponding to the second motion command.
[0017] Thirdly, this disclosure provides a robot including a memory and a processor, the memory storing a computer program executable on the processor, the processor executing the program to implement the method described in any of the first aspects above.
[0018] Fourthly, this disclosure provides a computer-readable storage medium having a computer program stored thereon, which, when executed by a processor, implements the method described in any of the first aspects above.
[0019] Fifthly, this disclosure provides a computer program product, including a computer program or instructions that, when executed by a processor, implement the method described in any of the first aspects above.
[0020] In this embodiment of the disclosure, by collecting environmental data during the Simultaneous Localization and Mapping (SLAM) process, and upon detecting the presence of a transparent obstacle in the environment, a first motion command is immediately generated and executed to move to one side of the obstacle, thereby reducing the risk of collision with the obstacle. Simultaneously, when the robot reaches one side of the obstacle, a second motion command is used to instruct it to continue moving to the other side, thus enabling the robot to perceive the obstacle comprehensively from different angles, determine the outline information of the transparent obstacle, and achieve accurate capture of the outline of the transparent obstacle.
[0021] It should be understood that the above general description and the following detailed description are merely exemplary and explanatory, and are not intended to limit the technical solutions of this disclosure. Attached Figure Description
[0022] The accompanying drawings, which are incorporated in and form part of this disclosure, illustrate embodiments consistent with this disclosure and, together with the description, serve to illustrate the technical solutions of this disclosure.
[0023] Figure 1 is a schematic flowchart of a method for detecting the contour of a transparent obstacle according to an embodiment of the present disclosure.
[0024] Figure 2 is a flowchart illustrating a method for detecting the contour of a transparent obstacle according to another embodiment of the present disclosure.
[0025] Figure 3 is a flowchart illustrating a method for detecting the contour of a transparent obstacle according to another embodiment of the present disclosure.
[0026] Figure 4 shows the detection flow of a transparent obstacle detection method according to another embodiment of the present disclosure.
[0027] Figure 5 is a schematic diagram of a robot movement process according to an embodiment of the transparent obstacle detection method provided in this disclosure.
[0028] Figure 6 is a schematic diagram showing the relative positional relationship between a transparent obstacle and a robot according to an embodiment of the present disclosure.
[0029] Figure 7 is a schematic diagram of the composition structure of a transparent obstacle contour detection device according to an embodiment of the present disclosure.
[0030] Figure 8 is a schematic diagram of the hardware entity of a robot according to an embodiment of the present disclosure. Detailed Implementation
[0031] To make the objectives, technical solutions, and advantages of this disclosure clearer, the technical solutions of this disclosure are further described in detail below with reference to the accompanying drawings. The described embodiments should not be regarded as limitations on this disclosure. All other embodiments obtained by those skilled in the art without creative effort are within the scope of protection of this disclosure.
[0032] In the following description, the term "some embodiments" refers to a subset of all possible embodiments. In other words, "some embodiments" can be the same subset or different subsets of all possible embodiments and can be combined with each other without conflict. The terms "first / second / third" are merely to distinguish similar objects and do not represent a specific ordering of objects. It is understood that "first / second / third" can be interchanged in a specific order or sequence where permitted, so that the embodiments of this disclosure described herein can be implemented in an order other than that illustrated or described herein.
[0033] The nouns and terms used in the embodiments of this disclosure are subject to the following interpretations.
[0034] Simultaneous Localization and Mapping (SLAM) allows robots to determine their own position and build a map of their surroundings in real time in unknown environments, achieving both localization and mapping. In SLAM, the robot first acquires information about its environment using its sensors (such as LiDAR, cameras, and inertial measurement units). This sensor data may include LiDAR point clouds, image frames, and inertial measurement data. Next, feature points are extracted from this raw data; these feature points represent key parts of the environment that can be used for localization and mapping. Then, data association is performed, matching the features of the current frame with features from previous maps or other frames. This process is crucial for understanding how the robot moves and how the environment changes. Through data association, the robot's trajectory, including translation and rotation, can be inferred. After determining the robot's trajectory, this information can be used to build a map of the environment. Various map construction methods exist, commonly including occupancy grid maps and point cloud maps.
[0035] Unless otherwise defined, all technical and scientific terms used herein have the meanings commonly understood by those skilled in the art. The terminology used herein is for descriptive purposes only and is not intended to limit the scope of this disclosure.
[0036] Autonomous mobile navigation robot technology is maturing, and more and more mobile robots are being used in daily production, such as AGVs (Automated Guided Vehicles) in factories and robotic vacuum cleaners in homes. Most of these mobile robots use SLAM (Simultaneous Localization and Mapping) technology for autonomous navigation. Compared to traditional robot navigation methods, SLAM technology eliminates the need for manual scene setup and real-time GPS (Global Positioning System) signals, making it more convenient and faster. SLAM solutions can be broadly categorized into two types based on the sensors used: laser SLAM and visual SLAM. Visual SLAM uses cameras as environmental perception sensors, offering advantages such as low cost and small size, but it is significantly affected by changes in ambient light and struggles to function properly at night. While laser SLAM, which uses lidar as the perception sensor, is more expensive, lidar offers a larger field of view and greater reliability. For example, lidar can scan the robot's 360-degree environment at a frequency of 10 Hz at high speed, almost unaffected by changes in ambient light.
[0037] One challenge of SLAM solutions using LiDAR as the environmental perception sensor in practical applications is the inability to detect transparent obstacles in the environment, such as glass doors and floor-to-ceiling windows. This is extremely dangerous during the navigation of mobile robots. When the robot fails to detect closed glass doors and floor-to-ceiling windows, there is a very high risk of collision, resulting in robot damage and substantial property loss. Emergency methods in related technologies involve fusing different sensors on the robot to assist navigation, such as installing ultrasonic radar around the robot to detect obstacles. Ultrasonic radar uses sound waves to detect obstacles and can detect transparent ones. However, a limitation of ultrasonic radar is that it can only sense the presence or absence of obstacles, but cannot determine the location and geometry of the detected obstacles. This disclosed method combines the advantages of LiDAR and ultrasonic radar to detect transparent obstacles and their boundaries, thereby helping the robot perceive transparent obstacles in the environment and effectively ensuring the robot's navigation safety.
[0038] This disclosure provides a method for detecting the contour of a transparent obstacle, which can be executed by a robot's processor. The robot can be a device with autonomous mobility, sensor integration, and data processing capabilities. These devices are capable of performing complex tasks, including but not limited to navigation, path planning, object recognition and manipulation, and environmental perception.
[0039] In some embodiments, the robot may not only possess basic data processing capabilities but also integrate components such as sensors (e.g., cameras, lidar, ultrasonic sensors, gyroscopes, accelerometers, etc.), actuators (e.g., motors, wheels, robotic arms, etc.), and algorithms and software for controlling and optimizing these components. Exemplarily, the robot may be a service robot (e.g., a household cleaning robot, a restaurant delivery robot, a hospital care robot, etc.), an industrial robot (a robot performing repetitive, high-precision processing, assembly, and handling tasks on a production line), an exploratory robot (for exploration and reconnaissance tasks in extreme environments or dangerous areas), or a mobile robot (autonomous vehicles, drones, etc.).
[0040] Figure 1 is a schematic flowchart of a method for detecting the contour of a transparent obstacle according to an embodiment of the present disclosure. As shown in Figure 1, the method includes the following steps S101 to S104.
[0041] Step S101: During the process of generating an environmental map using the simultaneous localization and mapping scheme, environmental data from the obstacle detection process is acquired.
[0042] In this embodiment of the disclosure, the environment map can be either a raster map or a label map. Taking a raster map as an example, a raster map is a map representation method that divides the environment into multiple small cells (grids). Each grid represents a small area in the environment and is assigned a value to indicate whether the area is occupied by an obstacle. Exemplarily, a grid can have three states: unknown state, occupied state, and idle state.
[0043] In some embodiments, the process of generating an environmental map through a simultaneous localization and mapping scheme can be understood as follows: the robot moves continuously, uses sensors such as lidar and ultrasonic sensors to scan the surrounding environment in real time, and uses the SLAM algorithm to process the sensor data, estimating the robot's pose (position and attitude) by matching feature points in the sensor data; at the same time, a grid map of the environment is constructed based on the sensor data, marking obstacle (occupied) areas and free areas.
[0044] The obstacle detection process described above refers to the process by which a robot, while creating (or updating) a grid map, collects and processes environmental data through its sensor system to identify and locate surrounding obstacles. This process occurs at the beginning of the robot's movement and continues until the robot detects a transparent obstacle.
[0045] In this embodiment of the disclosure, the aforementioned environmental data may include ultrasonic data and optical data. The ultrasonic data is collected by an ultrasonic sensor. Ultrasonic sensors have good detection performance on transparent materials (such as glass). The optical data is collected by optical sensors such as cameras and lasers. Compared to ultrasonic data, the location of non-transparent obstacles in the environment can be identified and reconstructed with higher accuracy by performing image recognition, point cloud feature analysis, and other methods on the optical data.
[0046] Step S102: In response to the environmental data characterization during the obstacle detection process indicating the presence of a transparent obstacle around the robot, a first motion command is generated; the first motion command is used to instruct the robot to move toward one side of the transparent obstacle.
[0047] Transparent obstacles refer to obstacles that are difficult for optical / visual sensors such as lidar to detect directly, such as transparent glass doors and windows.
[0048] In this embodiment of the disclosure, the environmental data may include ultrasonic data and optical data; the method further includes: generating a first obstacle detection result based on the ultrasonic data, and generating a second obstacle detection result based on the optical data; if the first obstacle detection result and the second obstacle detection result are different, determining that there is a transparent obstacle around the robot.
[0049] In some embodiments, during the process of generating an environmental map using a simultaneous localization and mapping (SLT) scheme, the robot simultaneously collects environmental data using both ultrasonic and optical sensors. When the detection results of the two sensors are inconsistent—that is, when the ultrasonic sensors detect an obstacle while the optical sensors do not identify the corresponding object—it can be determined that a transparent obstacle exists around the robot.
[0050] When the robot detects a transparent obstacle by combining ultrasonic and optical sensors, it needs to perform a series of actions, such as moving to one side of the transparent obstacle, in order to more accurately identify and locate the obstacle. Accordingly, the first motion command mentioned above is actually to control the robot to move to one end of the transparent obstacle so that it can subsequently move from one end of the obstacle to the other end, thereby obtaining the overall outline of the obstacle.
[0051] In some embodiments, optical data (such as lidar point clouds, camera images, etc.) from the obstacle detection process can be used to initially determine the position and approximate shape of the transparent obstacle, thereby identifying the relative direction of the transparent obstacle in the robot coordinate system, and then randomly selecting one side (one end) of the transparent obstacle as the target direction to generate the first motion command.
[0052] In other embodiments, ultrasonic data from the obstacle detection process can be used to estimate the relative orientation of the transparent obstacle in the robot's coordinate system. The implementation may include: pre-arranging multiple ultrasonic sensors in an arc or ring shape at or around the front end of the robot to detect transparent obstacles from multiple angles; acquiring and comparing the distances from different ultrasonic sensors to the transparent obstacle when a transparent obstacle is detected; and calculating the angle of the transparent obstacle relative to the robot's center point based on the position of each ultrasonic sensor and its distance to the transparent obstacle. It is understood that the direction corresponding to a closer ultrasonic sensor is closer to the actual position of the transparent obstacle.
[0053] After obtaining the relative orientation of the transparent obstacle in the robot's coordinate system, any direction perpendicular to that relative orientation can be used as the movement direction corresponding to the first motion command. It should be understood that the orientation of the transparent obstacle determined here does not require high precision; its main purpose is to determine the movement direction corresponding to the first motion command, as long as this movement direction does not control the robot to move directly towards the transparent obstacle. This ensures that the robot does not move directly towards the obstacle, thereby reducing the risk of collision. At the same time, it provides the robot with more flexibility and possibilities to further explore the environment and obtain more information about the transparent obstacle.
[0054] Step S103: In response to the robot reaching one side of the transparent obstacle, a second motion command is generated; the second motion command is used to instruct the robot to move from one side of the transparent obstacle to the other side.
[0055] In some embodiments, the direction of movement corresponding to the second motion command may be opposite to the direction of movement corresponding to the first motion command. In this way, during the process of controlling the robot's movement based on the second motion command, the overall contour features of the transparent obstacle can be detected, that is, the contour features from one side of the transparent obstacle to the other side (or from one end to the other).
[0056] In some embodiments, the first and second motion commands further include the robot's movement speed. This movement speed can be related to the obstacle distance between the detected obstacle and the robot; for example, a greater obstacle distance results in a greater movement speed, and a smaller obstacle distance results in a smaller movement speed. This avoids the robot colliding with or losing sight of transparent obstacles due to excessive movement speed. In other embodiments, the movement speed can also be related to the accuracy of the contour information generation; for example, higher generation accuracy results in a smaller movement speed, and lower generation accuracy results in a larger movement speed. The accuracy of the contour information generation can be related to the resolution of the grid map.
[0057] Step S104: During the movement based on the second motion command, acquire environmental data of the contour acquisition process, and determine the contour information of the transparent obstacle based on the environmental data of the contour acquisition process.
[0058] In this embodiment of the disclosure, during the robot's movement based on the second motion command, the system continuously acquires environmental data from the contour acquisition process. This environmental data may include the obstacle distance between the robot and the transparent obstacle during the movement. Subsequently, the robot can extract the contour information of the transparent obstacle based on this obstacle distance and the robot's pose (position coordinates and orientation angle) in the world coordinate system.
[0059] In this embodiment of the disclosure, by collecting environmental data during the Simultaneous Localization and Mapping (SLAM) process, when a transparent obstacle is detected in the environment, a first motion command is immediately generated and executed to move to one side of the obstacle, which can reduce the risk of collision with the obstacle; at the same time, when the robot reaches one side of the obstacle, a second motion command is used to instruct it to continue moving to the other side, thereby enabling the robot to perceive the obstacle comprehensively from different angles, so as to determine the outline information of the transparent obstacle and achieve accurate capture of the outline of the transparent obstacle.
[0060] Figure 2 is a schematic flowchart of a method for detecting the contour of a transparent obstacle according to another embodiment of the present disclosure, which can be executed by a robot's processor. Based on Figure 1, step S103 in Figure 1 can be updated to step S201, and will be described in conjunction with the steps shown in Figure 2.
[0061] Step S201: In response to the robot reaching the first position, generate the second motion command.
[0062] The first position is located on one side of the transparent obstacle, and the environmental data obtained at the first position indicates that there is no transparent obstacle around the robot.
[0063] In this embodiment of the disclosure, during the process of the robot moving to one side in response to the first motion command, in order to determine whether the robot has reached the end of the transparent obstacle on that side, the presence of the transparent obstacle can be determined by detecting the presence of the transparent obstacle in the environmental data. Generally, during the process of the robot moving towards one end of the transparent obstacle, if it has not yet reached the end of the transparent obstacle, it can still be determined that a transparent obstacle exists around it based on the environmental data collected by the robot; correspondingly, if it has reached and exceeded the end of the transparent obstacle and continues to move, it can be determined that no transparent obstacle exists around it based on the environmental data collected by the robot.
[0064] Based on this, this disclosure defines the robot's position as the first position when there are no transparent obstacles around the robot, based on the acquired environmental data. For example, after the robot reaches the last position where the transparent obstacle can be detected, the next position reached is determined as the first position; alternatively, the position after moving a further distance can also be determined as the first position.
[0065] In some embodiments, steps S2011 and S2012 can be used to determine whether the robot has reached the first position.
[0066] Step S2011: During the process of the robot moving towards one side of the transparent obstacle in response to the first motion command, environmental data of the first movement process is collected.
[0067] In some embodiments, since the process of constructing the outline of a transparent obstacle in this disclosure is in a subsequent outline acquisition process, the environmental data of the first movement process described above is only used to detect whether there is a transparent obstacle around the robot, and is not used to determine the outline information of the transparent obstacle.
[0068] In other embodiments, considering that the position of the transparent obstacle will not change in a short period of time, the contour information for verification can be determined based on the collected environmental data during the first movement process. After obtaining the contour information from the contour acquisition process in step S104, the contour information for verification is used to verify it. In response to the verification failure, i.e., when the contour information error is large, a third motion command is generated. The third motion command is used to control the robot to move from the other side of the transparent obstacle to this side, and the final contour information corresponding to the transparent obstacle is generated based on the contour information corresponding to the second motion command and the contour information corresponding to the third motion command. Generally, the contour information corresponding to the second motion command and the contour information corresponding to the third motion command can be fused based on a weighted algorithm to obtain the final contour information corresponding to the transparent obstacle. Among them, considering that the contour information corresponding to the third motion command reflects the updated contour data, the weight of the contour information corresponding to the third motion command is higher than the weight of the contour information corresponding to the second motion command. In some embodiments, the third motion command is used to control the robot to move from the other side of the transparent obstacle to this side along a third direction, which may be opposite to the second direction.
[0069] Step S2012: If the environmental data of the first movement process indicates that there are no transparent obstacles around the robot, it is determined that the robot has reached the first position.
[0070] In some embodiments, during the first movement process described above, if the environmental data at the previous moment indicates that there is a transparent obstacle around the robot, and the environmental data at the current moment indicates that there is no transparent obstacle around the robot, then it is considered that the robot has reached the end of one side of the transparent obstacle, and the current position is determined as the first position.
[0071] In this embodiment of the disclosure, by detecting whether there are transparent obstacles around the robot, it is possible to accurately determine whether the robot has reached one side of the transparent obstacle and generate a corresponding second motion command to start the contour detection process, which can improve the contour detection efficiency.
[0072] In some embodiments, the first motion command is used to instruct the robot to move along a first direction toward one side of the transparent obstacle; the first direction is not parallel to the direction of receiving the ultrasonic data, and the angle between the first direction and the direction of receiving the ultrasonic data is related to the obstacle distance; the obstacle distance is the distance between the robot and the transparent obstacle determined based on the ultrasonic data.
[0073] In some embodiments, the first direction can be a direction perpendicular to the direction of receiving ultrasonic data (the direction of ultrasonic detection). Specifically, the direction of receiving ultrasonic data is opposite to the direction of ultrasonic detection.
[0074] In some embodiments, the second movement command described above is used to instruct the robot to move along a second direction to the other side of the transparent obstacle. Here, the second direction is opposite to the first direction.
[0075] In some embodiments, during the process of controlling the robot to move along a first direction toward one side of the transparent obstacle based on the first motion command, the changing trend between the currently collected obstacle distance and the historically collected obstacle distance can be obtained, and then the first direction can be adjusted based on the changing trend so that the obstacle distance approaches the target detection distance.
[0076] The target detection distance is a pre-set obstacle distance. When the robot maintains this target detection distance to detect the outline of the transparent obstacle, the accuracy of the ultrasonic data can be guaranteed, and collisions with the transparent obstacle can be avoided. In some embodiments, the target detection distance is related to the movement speed corresponding to the second movement command; the higher the movement speed, the greater the target detection distance, and the lower the movement speed, the smaller the target detection distance.
[0077] In the above embodiments, the angle between the first direction and the direction of receiving the ultrasonic data is related to the distance to the obstacle. In practice, the corresponding first direction can be generated based on the relationship between the currently acquired obstacle distance and the target detection distance. Specifically, when the obstacle distance is greater than the target detection distance, the generated first direction is used to control the robot to move closer to the transparent obstacle; when the obstacle distance is less than the target detection distance, the generated first direction is used to control the robot to move away from the transparent obstacle.
[0078] In the above embodiments, as the robot moves along the first direction, obstacle distances are continuously collected and updated. By comparing the current obstacle distance with historically collected distances, it can be determined whether the robot is approaching or moving away from the obstacle. Based on the comparison between the obstacle distance and the target detection distance, the first direction is dynamically adjusted, ensuring that the robot always remains within a safe and effective distance range during detection. Thus, by combining ultrasonic sensors, dynamic motion command generation, and obstacle distance feedback adjustment mechanisms, the robot can effectively achieve accurate detection and obstacle avoidance of transparent obstacles.
[0079] Figure 3 is a schematic flowchart of a method for detecting the contour of a transparent obstacle according to another embodiment of the present disclosure. This method can be executed by a robot's processor. Based on Figure 1, the step S104 in Figure 1, "determining the contour information of the transparent obstacle based on the environmental data of the contour acquisition process," can be updated to steps S301 and S302, which will be explained in conjunction with the steps shown in Figure 3.
[0080] Step S301: In response to the environmental data characterization during the contour acquisition process indicating the presence of transparent obstacles around the robot, the set of position points of the transparent obstacle in the world coordinate system is determined based on the ultrasonic detection direction, the obstacle distance between the robot and the transparent obstacle detected by the ultrasonic waves, and the robot's pose in the world coordinate system.
[0081] In this embodiment of the disclosure, the start time of the contour acquisition process is the time when the robot begins to move from one side of the transparent obstacle to the other in response to the second motion command. In some embodiments, the end time of the contour acquisition process is the time when the environmental data collected during the robot's movement based on the second motion command indicates that there are no transparent obstacles around the robot.
[0082] In some embodiments, during the contour acquisition process described above, the robot can acquire environmental data corresponding to multiple time points according to a preset sampling interval. For each time point, based on the ultrasonic detection direction, the distance between the robot and the transparent obstacle, and the robot's pose in the world coordinate system, the robot determines the position of the transparent obstacle at each time point, thereby obtaining the set of position points of the transparent obstacle in the world coordinate system.
[0083] It is understandable that the number of location points in the above set of location points increases over time.
[0084] In other embodiments, during the contour acquisition process described above, if the change in the robot's pose relative to the previous sampling point is greater than a preset pose change threshold, the robot acquires the environmental data at the current moment, and based on the ultrasonic detection direction corresponding to the current moment, the obstacle distance between the robot and the transparent obstacle, and the robot's pose in the world coordinate system, it generates the position point of the transparent obstacle corresponding to the current sampling point. By continuously storing the position points of the transparent obstacle corresponding to each sampling point, a set of position points of the transparent obstacle in the world coordinate system is obtained.
[0085] It is understandable that the number of position points in the above set of position points increases as the robot's pose changes.
[0086] In some embodiments, when the ultrasonic detection direction is the ultrasonic detection direction in the robot coordinate system, since the orientation angle in the robot's pose is the robot's orientation angle relative to the world coordinate system, the ultrasonic detection direction in the world coordinate system can be determined based on this ultrasonic detection direction and the robot's orientation angle relative to the world coordinate system. Since this ultrasonic detection direction in the world coordinate system is the angle between the ultrasonic wave and the X-axis direction in the world coordinate system, the coordinate difference between the coordinate information of the transparent obstacle in the world coordinate system and the coordinate information of the robot in the world coordinate system can be determined using trigonometric relationships based on the obstacle distance between the robot and the transparent obstacle. That is, the difference between the two coordinate information in the X-axis direction and the difference in the Y-axis direction are determined respectively, and then the coordinate information of the corresponding transparent obstacle's position point is generated based on the robot's coordinate information.
[0087] In other embodiments, when the ultrasonic detection direction is the ultrasonic detection direction in the robot coordinate system, the intercepts of the transparent obstacle on the X-axis and Y-axis in the robot coordinate system can be calculated using trigonometric relationships and the obstacle distance between the robot and the transparent obstacle. Then, the intercepts on the X-axis and Y-axis are transformed using the transpose of the rotation matrix from the robot coordinate system to the world coordinate system to obtain the coordinate difference between the coordinate information of the transparent obstacle in the world coordinate system and the coordinate information of the robot in the world coordinate system. That is, the intercept on the X-axis in the robot coordinate system is converted into the difference in the X-axis direction, and the intercept on the Y-axis in the robot coordinate system is converted into the difference in the Y-axis direction.
[0088] For example, a robot moves within a room containing a window made of transparent glass as an obstacle. The robot detects multiple locations on the window using ultrasonic sensors and, combining this with its own pose information in the world coordinate system, transforms these locations into a set of locations in the world coordinate system. This set of locations describes the overall position and shape of the window in the world coordinate system.
[0089] Step S302: Determine the outline information of the transparent obstacle based on the set of location points.
[0090] In some embodiments, step S3021 can be used to determine the outline information of the transparent obstacle based on the set of location points.
[0091] Step S3021: During the movement process based on the second motion command, in response to the environmental data characterization process during the contour acquisition process, the robot moves from a position where there are transparent obstacles to a position where there are no transparent obstacles, and determines the contour information of the transparent obstacles based on the set of position points.
[0092] In this embodiment of the disclosure, in order to avoid unnecessary data calculation process, a stopping condition is added to the above step S302. That is, after the stopping condition is reached, the outline information of the corresponding transparent obstacle is directly generated based on the set of position points.
[0093] In some embodiments, the aforementioned stopping condition includes: during the contour acquisition process, the environmental data characterizes the robot moving from a location where transparent obstacles exist to a location where no transparent obstacles exist. That is, during the process of the robot moving in response to the second motion command and updating the set of position points, as long as the environmental data acquired at a certain time point / sampling point indicates that no transparent obstacles exist around the robot, it means that the robot has completed the process of moving from one end of the transparent obstacle to the other, and thus the contour information of the transparent obstacle can be directly determined based on the set of position points.
[0094] In some embodiments, the contour information includes grids in a grid map containing transparent obstacles; the contour information of the transparent obstacle can be determined based on the set of location points in step S3022.
[0095] Step S3022: Based on the position coordinates of each position point in the set of position points in the world coordinate system and the range information of each grid in the grid map, determine the grids in the grid map that contain transparent obstacles.
[0096] In this embodiment of the disclosure, the target grid in the grid map into which the location point falls can be determined based on the location coordinates of the location point in the world coordinate system and the range information of each grid in the grid map, and this grid can be regarded as the grid in the grid map containing transparent obstacles.
[0097] In some embodiments, the method further includes: modifying the state of a grid cell containing a transparent obstacle in the grid map to an occupied state. Thus, compared to grid maps output in related technologies, the grid map provided in this disclosure also carries the outline information of the transparent obstacle.
[0098] For example, assume the grid map has a resolution of 0.5m x 0.5m per grid cell, and the extent information of each grid cell has been defined. The set of location points obtained in step S301 contains multiple location points of the transparent obstacle in the world coordinate system. Based on the coordinates of these location points and the resolution of the grid map, the grid cell corresponding to each location point can be determined, and these grid cells are marked as containing a transparent obstacle. Ultimately, an "obstacle strip" representing the outline of the transparent obstacle is formed on the grid map.
[0099] In this embodiment, the outline information of transparent obstacles is represented in the form of a grid map, which facilitates the robot's subsequent path planning and obstacle avoidance decisions. Through the intuitive representation of the grid map, the robot can more easily identify the position and shape of transparent obstacles, thereby selecting a more suitable obstacle avoidance strategy.
[0100] The following describes the application of the transparent obstacle contour detection method provided in the embodiments of this disclosure in real-world scenarios, mainly involving transparent obstacle detection based on ultrasonic radar blind spot filling.
[0101] In robot work scenarios with transparent obstacles, such as shopping malls, hospitals, factories, and office buildings, there are many glass doors and floor-to-ceiling windows. These transparent obstacles can seriously affect the robot's navigation safety. The method disclosed in this paper combines the advantages of lidar and ultrasonic radar to detect transparent obstacles and their boundaries, thereby helping the robot perceive transparent obstacles in the environment and ensuring navigation safety.
[0102] The method disclosed herein is implemented as follows: A mobile robot platform equipped with sensors such as LiDAR and ultrasonic detectors traverses the environment using SLAM technology, determining the robot's pose relative to the environment in real time during the traversal. During SLAM, the states of the LiDAR and ultrasonic point clouds are constantly monitored. When an obstacle is detected in the region corresponding to the ultrasonic point cloud but not in the region corresponding to the LiDAR point cloud, the robot is considered to be near a transparent obstacle. The robot is slowly moved to one side until the observations of the ultrasonic and LiDAR point clouds are consistent; at this point, the robot is considered to be on one side boundary of the transparent obstacle. The robot is then slowly moved in the opposite direction, and the discrete coordinates of the transparent obstacle relative to the world coordinate system are calculated. The grid state corresponding to these transparent obstacle coordinates in the grid map is modified to an occupied state, and the grid map containing the transparent obstacle occupancy information is saved before the end of SLAM.
[0103] The detection flowchart of the transparent obstacle detection method disclosed herein is shown in Figure 4. The method provided herein includes two inputs, namely a lidar 41 and an ultrasonic sensor 42, and one output, a grid map 43.
[0104] In this embodiment of the disclosure, the installation positions of each sensor of a robot platform are known. Therefore, the relative pose relationship between the lidar coordinate system and the ultrasonic coordinate system can be provided by the joint calibration module 44 using the known sensor installation position information, which facilitates the subsequent synchronous processing of lidar point cloud data and ultrasonic data.
[0105] For example, the calibration results between the lidar coordinate system and the ultrasonic coordinate system can be represented by a two-dimensional pose, and the relative pose relationship between the ultrasonic coordinate system and the lidar coordinate system is as shown in formula (1).
[0106] in, This represents the transformation from the ultrasonic coordinate system to the radar coordinate system, where x is the lateral offset, y is the longitudinal offset, and θ is the yaw angle difference.
[0107] Simultaneous localization and mapping (SLTMA) module 45 senses the robot's surrounding environment and its own motion state through sensors, and determines the robot's pose relative to the environment during the sensing process. The robot utilizes SLTMA technology, employing onboard sensors such as LiDAR or cameras, to generate an environmental map after traversing the environment once. The environmental map constructed by SLTMA module 45 can take various forms; the map format generated by the method disclosed in this invention is a raster map 43.
[0108] In some embodiments, the grid map 43 is a two-dimensional grid map. In other words, the two-dimensional grid map actually represents a two-dimensional plane using small square grids. Each small grid has three possible states: occupied, idle, and unknown. Since the camera and lidar cannot observe transparent obstacles, the small grid corresponding to the location of a transparent obstacle in the grid map is in the idle state, but in reality, it is in the occupied state.
[0109] The transparent obstacle detection module 46 detects transparent obstacles around the robot by real-time monitoring of LiDAR and ultrasonic sensors. The relative pose relationship between the LiDAR coordinate system and the ultrasonic coordinate system is obtained through the joint calibration module 44. And based on the relative pose relationship between the two Align the laser point cloud and the ultrasonic point cloud. Monitor the ultrasonic point cloud in real time during the robot's movement, as shown in formula (2). When the ultrasonic point cloud F is at a certain moment... U =[x u ,0,0] T There is obstacle point cloud information, and the corresponding location area F of the laser point cloud is... ′ U =[x ′ ,y ′ ,θ ′ ] T When there is no point cloud, it is determined that there are transparent obstacles around the robot.
[0110] When there are transparent obstacles around the robot, the motion control module 47 sends motion commands to control the robot to move to one side until the ultrasonic waves can no longer detect the obstacle. At this point, the robot is considered to be near the boundary of the transparent obstacle.
[0111] The transparent obstacle generation module 48 modifies the state of the corresponding grid on the grid map to an occupied state based on the laser point cloud and ultrasonic point cloud, indicating that there is an obstacle in that grid.
[0112] As shown in Figure 5, firstly, when the transparent obstacle detection module 46 detects a transparent obstacle while the robot is in a certain position, the motion control module 47 controls the robot to move to one side of the transparent obstacle. Assuming it moves to the right side of the transparent obstacle, the robot arrives at the edge of the transparent obstacle (here referring to the entire transparent obstacle formed by transparent obstacles 01 to 05, such as a transparent door or window), that is, it moves from position 510 to position 520. The observation results of the laser point cloud and the ultrasonic point cloud are consistent; neither has detected a transparent obstacle yet. At this time, the motion control module 47 controls the robot to slowly move to the left until the transparent obstacle point 01 is detected. The robot is now at position 530.
[0113] Please refer to Figure 6. Assuming the world coordinate system is (X_world, Y_world) and the robot coordinate system is (X_robot, Y_robot), the angle between the left boundary of the ultrasonic detection area (i.e., the position of the transparent obstacle point 01) and the robot coordinate system is θ, the distance of the transparent obstacle detected by the ultrasonic wave is d, and the robot is at position 530, its pose in the world coordinate system is (x_r, y_r, θ_r). Then the position (x, y) of the transparent obstacle 01 in the world coordinate system is as shown in formula (3):
[0114] Where R is the rotation matrix from the robot coordinate system to the world coordinate system, R T Let be the transpose of this rotation matrix.
[0115] Formula (3) above is actually used in the robot coordinate system to calculate the intercepts d·cos(θ) of the transparent obstacle on the X-axis and d·sin(θ) on the Y-axis in the robot coordinate system using trigonometric relationships and the distance between the robot and the transparent obstacle; then, the transpose matrix R of the rotation matrix from the robot coordinate system to the world coordinate system is used. T The coordinates of the transparent obstacle in the world coordinate system are transformed by converting d·cos(θ) and the Y-intercept d·sin(θ) to obtain the coordinate difference between the world coordinate system coordinates of the transparent obstacle and the robot. That is, the X-intercept of the robot coordinate system is converted into the difference d·cos(θ)*R in the X-axis direction. T And the difference d·sin(θ)*R between the intercept on the Y-axis in the robot coordinate system and the Y-axis direction. T .
[0116] The robot continues to move slowly to the left. During this movement, the simultaneous localization and mapping module 45 provides the robot's pose information (x_r, y_r, θ_r). The position of the transparent obstacle in the world coordinate system is calculated using formula (3) until the robot moves to the right boundary of the transparent obstacle (i.e., transparent obstacle point 05), reaching position 540. The robot continues to move to the left. At this point, the observation results of the laser point cloud and the ultrasonic point cloud are consistent, and neither detects the transparent obstacle. When the robot moves to position 550, the observation results of the laser point cloud and the ultrasonic point cloud are completely consistent. Thus, a discrete position coordinate of a continuous transparent obstacle in the world coordinate system is obtained. Before the simultaneous localization and mapping module 45 ends, the transparent obstacle generation module 48 inserts these position coordinates into the grid map 43 and modifies the state of the corresponding grid in the grid map to the occupied state.
[0117] The transparent obstacle contour detection method provided in the above embodiments can obtain accurate obstacle location information from lidar point cloud data and ultrasonic point cloud data. For example, the presence of a transparent obstacle can be determined from the difference between ultrasonic point cloud and lidar point cloud data, fully combining the measurement advantages of both sensors. Although the robot is moving during the detection process, the detection principle uses the lidar observation point cloud and ultrasonic observation point cloud at a certain moment, which can be considered as the observation result when the robot is stationary. The transparent obstacle contour detection method provided in this disclosure can effectively detect the contour size of the transparent obstacle and provide its accurate position coordinate information by controlling the robot to slowly move from one side of the obstacle boundary to the other. Since related solutions cannot provide the size and contour information of the transparent obstacle, it is difficult to directly use this obstacle coordinate information for optimal path planning during robot navigation. However, the transparent obstacle contour detection method provided in this disclosure recovers the boundary size of the transparent obstacle from the robot's movement and adds the rasterized coordinates of the transparent obstacle to the raster map to help the robot perform global path planning, improving the robot's navigation efficiency and safety.
[0118] Based on the foregoing embodiments, this disclosure provides a contour detection device for transparent obstacles. The device includes various units and modules included in each unit, which can be implemented by a processor in a robot; of course, it can also be implemented by specific logic circuits. In the implementation process, the processor can be a central processing unit (CPU), a microprocessor unit (MPU), a digital signal processor (DSP), or a field programmable gate array (FPGA), etc.
[0119] Figure 7 is a schematic diagram of the composition structure of a transparent obstacle contour detection device according to an embodiment of the present disclosure. As shown in Figure 7, the transparent obstacle contour detection device 700 includes: a first generation module 720, a second generation module 730, and a determination module 740.
[0120] The first generation module 720 is used to generate a first motion command in response to environmental data characterization during the obstacle detection process indicating the presence of a transparent obstacle around the robot; the first motion command is used to instruct the robot to move toward a first side of the transparent obstacle.
[0121] The second generation module 730 is configured to generate a second motion command in response to the robot reaching the first side of the transparent obstacle; the second motion command is configured to instruct the robot to move from the first side of the transparent obstacle to the second side;
[0122] The determining module 740 is used to acquire environmental data of the contour acquisition process corresponding to the second motion command during the movement process based on the second motion command, and determine the contour information of the transparent obstacle based on the environmental data of the contour acquisition process corresponding to the second motion command.
[0123] In some embodiments, the transparent obstacle contour detection device 700 further includes an acquisition module 710, used to acquire environmental data during the obstacle detection process while generating an environmental map through a simultaneous localization and mapping scheme.
[0124] In some embodiments, the second generation module 730 is further configured to: generate the second motion command in response to the robot reaching a first position; wherein the first position is located on a first side of the transparent obstacle, and environmental data acquired at the first position indicates that there is no transparent obstacle around the robot.
[0125] In some embodiments, the second generation module 730 is further configured to: collect environmental data during the process of the robot moving toward a first side of the transparent obstacle in response to the first motion command; and determine that the robot has reached a first position if the environmental data collected during the process of the robot moving toward the first side of the transparent obstacle indicates that there is no transparent obstacle around the robot.
[0126] In some embodiments, the first motion command is used to instruct the robot to move along a first direction toward a first side of the transparent obstacle; the first direction is not parallel to the direction of receiving the ultrasonic data, and the angle between the first direction and the direction of receiving the ultrasonic data is related to the obstacle distance; the obstacle distance is the distance between the robot and the transparent obstacle determined based on the ultrasonic data.
[0127] In some embodiments, the determining module 740 is further configured to: respond to environmental data characterization during the contour acquisition process corresponding to the second motion command indicating the existence of a transparent obstacle around the robot; determine a set of position points of the transparent obstacle in the world coordinate system based on the ultrasonic detection direction, the obstacle distance between the robot and the transparent obstacle detected by the ultrasonic wave, and the pose of the robot in the world coordinate system; and determine the contour information of the transparent obstacle based on the set of position points.
[0128] In some embodiments, the determining module 740 is further configured to: during the movement process based on the second motion command, in response to the environmental data characterization process of the contour acquisition process corresponding to the second motion command, the robot moves from a position where there are transparent obstacles to a position where there are no transparent obstacles, and determine the contour information of the transparent obstacle based on the set of position points.
[0129] In some embodiments, the environment map is a grid map, and the contour information includes grids in the grid map containing transparent obstacles; the determining module 740 is further configured to: determine the grids in the grid map containing transparent obstacles based on the position coordinates of each position point in the set of position points in the world coordinate system and the range information of each grid in the grid map.
[0130] The descriptions of the apparatus embodiments above are similar to those of the method embodiments above, and have similar beneficial effects. In some embodiments, the functions or modules included in the apparatus provided in this disclosure can be used to perform the methods described in the method embodiments above. For technical details not disclosed in the apparatus embodiments of this disclosure, please refer to the descriptions of the method embodiments of this disclosure for understanding.
[0131] It should be noted that, in the embodiments of this disclosure, if the above-described transparent obstacle contour detection method is implemented as a software functional module and sold or used as an independent product, it can also be stored in a computer-readable storage medium. Based on this understanding, the technical solution of the embodiments of this disclosure, or the part that contributes to related technologies, can be embodied in the form of a software product. This software product is stored in a storage medium and includes several instructions to cause a robot (which may be a personal computer, server, or network device, etc.) to execute all or part of the methods described in the various embodiments of this disclosure. The aforementioned storage medium includes various media capable of storing program code, such as a USB flash drive, mobile hard drive, read-only memory (ROM), magnetic disk, or optical disk. Thus, the embodiments of this disclosure are not limited to any specific hardware, software, or firmware, or any combination of hardware, software, and firmware.
[0132] This disclosure provides a robot including a memory and a processor. The memory stores a computer program that can run on the processor, and the processor executes the program to implement some or all of the steps in the above-described method.
[0133] This disclosure provides a computer-readable storage medium storing a computer program thereon, which, when executed by a processor, implements some or all of the steps in the above-described method. The computer-readable storage medium may be transient or non-transient.
[0134] This disclosure provides a computer program including computer-readable code, wherein when the computer-readable code is run in a robot, a processor in the robot performs some or all of the steps in the above-described method.
[0135] This disclosure provides a computer program product, which includes a non-transitory computer-readable storage medium storing a computer program. When the computer program is read and executed by a computer, it implements some or all of the steps in the above-described method. This computer program product can be implemented specifically through hardware, software, or a combination thereof. In some embodiments, the computer program product is specifically embodied as a computer storage medium; in other embodiments, the computer program product is specifically embodied as a software product, such as a software development kit (SDK), etc.
[0136] It should be noted that the descriptions of the various embodiments above tend to emphasize the differences between them, while their similarities or commonalities can be referenced interchangeably. The descriptions of the above embodiments of the device, storage medium, computer program, and computer program product are similar to the descriptions of the above method embodiments and have similar beneficial effects. For technical details not disclosed in the embodiments of the device, storage medium, computer program, and computer program product of this disclosure, please refer to the descriptions of the method embodiments of this disclosure for understanding.
[0137] Figure 8 is a schematic diagram of the hardware entity of a robot according to an embodiment of the present disclosure. As shown in Figure 8, the hardware entity of the robot 800 includes a processor 801 and a memory 802, wherein the memory 802 stores a computer program that can run on the processor 801, and the processor 801 executes the program to implement the steps in the method of any of the above embodiments.
[0138] The memory 802 stores computer programs that can run on the processor. The memory 802 is configured to store instructions and applications that can be executed by the processor 801. It can also cache data to be processed or already processed (e.g., image data, audio data, voice communication data and video communication data) of the processor 801 and various modules in the robot 800. It can be implemented by flash memory or random access memory (RAM).
[0139] When the processor 801 executes the program, it implements the steps of the transparent obstacle contour detection method described above. The processor 801 typically controls the overall operation of the robot 800.
[0140] This disclosure provides a computer storage medium storing one or more programs that can be executed by one or more processors to implement the steps of the transparent obstacle contour detection method as described in any of the above embodiments.
[0141] It should be noted that the descriptions of the storage medium and device embodiments above are similar to those of the method embodiments above, and have similar beneficial effects. For technical details not disclosed in the storage medium and device embodiments of this disclosure, please refer to the descriptions of the method embodiments of this disclosure for understanding.
[0142] The aforementioned processor can be at least one of the following: Application Specific Integrated Circuit (ASIC), Digital Signal Processor (DSP), Digital Signal Processing Device (DSPD), Programmable Logic Device (PLD), Field Programmable Gate Array (FPGA), Central Processing Unit (CPU), Controller, Microcontroller, and Microprocessor. It is understood that other electronic devices can also implement the functions of the aforementioned processor, and this disclosure does not specifically limit the specific implementation.
[0143] The aforementioned computer storage media / memory can be read-only memory (ROM), programmable read-only memory (PROM), erasable programmable read-only memory (EPROM), electrically erasable programmable read-only memory (EEPROM), magnetic random access memory (FRAM), flash memory, magnetic surface memory, optical disc, or compact disc read-only memory (CD-ROM), etc.; or it can be various terminals that include one or any combination of the above-mentioned memories, such as mobile phones, computers, tablet devices, personal digital assistants, etc.
[0144] It should be understood that the phrase "an embodiment" or "one embodiment" throughout the specification means that a specific feature, structure, or characteristic related to the embodiment is included in at least one embodiment of this disclosure. Therefore, "in one embodiment" or "one embodiment" appearing throughout the specification does not necessarily refer to the same embodiment. Furthermore, these specific features, structures, or characteristics can be combined in any suitable manner in one or more embodiments. It should be understood that in the various embodiments of this disclosure, the sequence numbers of the above steps / processes do not imply a sequential order of execution; the execution order of each step / process should be determined by its function and internal logic, and should not constitute any limitation on the implementation process of the embodiments of this disclosure. The sequence numbers of the above embodiments of this disclosure are merely descriptive and do not represent the superiority or inferiority of the embodiments.
[0145] It should be noted that, in this document, the terms "comprising," "including," or any other variations thereof are intended to cover non-exclusive inclusion, such that a process, method, article, or apparatus that comprises a list of elements includes not only those elements but also other elements not expressly listed, or elements inherent to such a process, method, article, or apparatus. Unless otherwise specified, an element defined by the phrase "comprising one..." does not exclude the presence of other identical elements in the process, method, article, or apparatus that includes that element.
[0146] In the several embodiments provided in this disclosure, it should be understood that the disclosed devices and methods can be implemented in other ways. The device embodiments described above are merely illustrative. For example, the division of units is only a logical functional division, and in actual implementation, there may be other division methods, such as: multiple units or components may be combined, or integrated into another system, or some features may be ignored or not executed. In addition, the coupling, direct coupling, or communication connection between the various components shown or discussed may be through some interfaces, and the indirect coupling or communication connection between devices or units may be electrical, mechanical, or other forms.
[0147] The units described above as separate components may or may not be physically separate. The components shown as units may or may not be physical units. They may be located in one place or distributed across multiple network units. Some or all of the units may be selected to achieve the purpose of this embodiment according to actual needs.
[0148] Furthermore, in the various embodiments of this disclosure, all functional units can be integrated into one processing unit, or each unit can be a separate unit, or two or more units can be integrated into one unit. The integrated unit can be implemented in hardware or in a combination of hardware and software functional units. Those skilled in the art will understand that all or part of the steps of the above method embodiments can be implemented by hardware related to program instructions. The aforementioned program can be stored in a computer-readable storage medium. When the program is executed, it performs the steps of the above method embodiments. The aforementioned storage medium includes various media capable of storing program code, such as mobile storage devices, read-only memory (ROM), magnetic disks, or optical disks.
[0149] Alternatively, if the integrated units described above are implemented as software functional modules and sold or used as independent products, they can also be stored in a computer-readable storage medium. Based on this understanding, the technical solution of this disclosure, in essence or the part that contributes to related technologies, can be embodied in the form of a software product. This computer software product is stored in a storage medium and includes several instructions to cause a robot (which may be a personal computer, server, or network device, etc.) to execute all or part of the methods described in the various embodiments of this disclosure. The aforementioned storage medium includes various media capable of storing program code, such as mobile storage devices, ROM, magnetic disks, or optical disks.
[0150] The above description is merely an embodiment of this disclosure, but the scope of protection of this disclosure is not limited thereto. Any changes or substitutions that can be easily conceived by those skilled in the art within the scope of the technology disclosed in this disclosure should be included within the scope of protection of this disclosure.
Claims
1. A method for detecting the contour of a transparent obstacle, applied to a robot, the method comprising: In response to environmental data during obstacle detection indicating the presence of transparent obstacles around the robot, the first motion command is generated. The first motion command is used to instruct the robot to move toward a first side of the transparent obstacle; In response to the robot reaching a first side of the transparent obstacle, a second motion command is generated, the second motion command being used to instruct the robot to move from the first side of the transparent obstacle to a second side; During the movement based on the second motion command, environmental data of the contour acquisition process corresponding to the second motion command is acquired, and the contour information of the transparent obstacle is determined based on the environmental data of the contour acquisition process corresponding to the second motion command.
2. The method of claim 1, wherein generating a second motion command in response to the robot reaching a first side of the transparent obstacle comprises: In response to the robot reaching the first position, the second motion command is generated; The first position is located on the first side of the transparent obstacle, and the environmental data obtained at the first position indicates that there is no transparent obstacle around the robot.
3. The method according to claim 2, further comprising: During the process of the robot moving toward a first side of the transparent obstacle in response to the first motion command, environmental data is collected. If the environmental data collected during the robot's movement toward the first side of the transparent obstacle indicates that there is no transparent obstacle around the robot, it is determined that the robot has reached the first position.
4. The method according to claim 3, further comprising: Based on the environmental data collected during the robot's movement toward the first side of the transparent obstacle, contour information for verification is determined; The contour information of the transparent obstacle is verified using the contour information used for verification; In response to the failure of the verification, a third motion command is generated, which is used to control the robot to move from the second side of the transparent obstacle to the first side; During the movement process, environmental data of the contour acquisition process corresponding to the third motion command is acquired, and the updated contour information of the transparent obstacle is determined based on the environmental data of the contour acquisition process corresponding to the third motion command. Based on the outline information of the transparent obstacle and the updated outline information of the transparent obstacle, the final outline information of the transparent obstacle is generated.
5. The method according to claim 4, wherein generating the final contour information of the transparent obstacle based on the contour information of the transparent obstacle and the updated contour information of the transparent obstacle comprises: The contour information of the transparent obstacle and the updated contour information are fused based on a weighted algorithm to obtain the final contour information of the transparent obstacle, wherein the weight of the updated contour information is higher than the weight of the contour information.
6. The method according to any one of claims 1 to 5, wherein the first motion command is used to instruct the robot to move along a first direction toward a first side of the transparent obstacle; the first direction is not parallel to the direction of receiving ultrasonic data, and the angle between the first direction and the direction of receiving ultrasonic data is related to the obstacle distance; the obstacle distance is the distance between the robot and the transparent obstacle determined based on the ultrasonic data.
7. The method according to claim 6, further comprising: Based on the relationship between the current obstacle distance and the target detection distance, the first direction is generated. When the obstacle distance is greater than the target detection distance, the first direction is used to control the robot to move closer to the transparent obstacle; when the obstacle distance is less than the target detection distance, the first direction is used to control the robot to move away from the transparent obstacle.
8. The method according to any one of claims 1 to 7, wherein determining the contour information of the transparent obstacle based on environmental data from the contour acquisition process corresponding to the second motion command comprises: In response to the contour acquisition process corresponding to the second motion command, the environmental data indicates that there is a transparent obstacle around the robot. Based on the ultrasonic detection direction, the obstacle distance between the robot and the transparent obstacle detected by the ultrasonic wave, and the pose of the robot in the world coordinate system, the set of position points of the transparent obstacle in the world coordinate system is determined. Based on the set of location points, the outline information of the transparent obstacle is determined.
9. The method according to claim 8, wherein determining the contour information of the transparent obstacle based on the set of location points includes: During the movement based on the second motion command, the environmental data acquired in response to the contour acquisition process corresponding to the second motion command characterizes the robot's movement from a position where the transparent obstacle exists to a position where the transparent obstacle does not exist. Based on the set of position points, the contour information of the transparent obstacle is determined.
10. The method according to claim 8 or 9, wherein the environmental map is a grid map, and the contour information includes grids in the grid map where the transparent obstacle exists; determining the contour information of the transparent obstacle based on the set of location points includes: Based on the position coordinates of each location point in the set of location points in the world coordinate system and the range information of each grid in the grid map, the grids in the grid map containing the transparent obstacle are determined.
11. The method according to any one of claims 1 to 10, wherein the environmental data during the obstacle detection process includes ultrasonic data and optical data, and the method further comprises: A first obstacle detection result is generated based on the ultrasonic data; A second obstacle detection result is generated based on the optical data; In response to determining that the first obstacle detection result indicates that an obstacle has been detected and the second obstacle detection result indicates that no obstacle has been detected, it is determined that the transparent obstacle exists around the robot.
12. The method according to any one of claims 1 to 11, wherein before generating a first motion command in response to environmental data characterizing the presence of a transparent obstacle around the robot during the obstacle detection process, the method further comprises: During the process of generating an environment map using Simultaneous Localization and Mapping (SLAM), environmental data from the obstacle detection process is acquired.
13. A contour detection device for a transparent obstacle, the device comprising: The first generation module is used to generate a first motion command in response to environmental data characterization during the obstacle detection process indicating the presence of transparent obstacles around the robot. The first motion command is used to instruct the robot to move toward a first side of the transparent obstacle; The second generation module is used to generate a second motion command in response to the robot reaching the first side of the transparent obstacle; the second motion command is used to instruct the robot to move from the first side of the transparent obstacle to the second side; The determining module is used to acquire environmental data of the contour acquisition process corresponding to the second motion command during the movement process based on the second motion command, and to determine the contour information of the transparent obstacle based on the environmental data of the contour acquisition process corresponding to the second motion command.
14. A robot comprising a memory and a processor, the memory storing a computer program executable on the processor, characterized in that, When the processor executes the program, it implements the steps of the method according to any one of claims 1 to 12.
15. A computer-readable storage medium having a computer program stored thereon, which, when executed by a processor, implements the steps of the method according to any one of claims 1 to 12.
Citation Information
Patent Citations
Measurement method and device of ultrasonic wave
CN108931775A
Robot image scanning method, device, equipment and medium
CN114049393A
Robot obstacle avoiding method and device and robot
CN115268444A
Multi-sensor fusion transparent obstacle environment autonomous mapping method and system
CN115824188A
Robot, obstacle detection method and related device
CN116310773A