Robot, method for controlling robot to travel along wall, system, and storage medium
By pre-planning the edge path to identify wall features, combining preset motion models to realize the robot traveling along the wall, and detecting obstacles in real time, solving the problems of inaccurate and insufficient safety of robot traveling along the wall in the prior art, and achieving efficient and safe traveling along the wall.
Patent Information
- Application Number
- PCT/CN2023/123076
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2023-10-03
- Publication Date
- 2025-04-10
AI Technical Summary
The prior art is difficult to achieve the accuracy and safety of robots when traveling along the wall, especially when encountering obstacles, it is difficult to avoid collisions and effectively circumvent obstacles.
By generating pre-planned edge paths, identify wall features, plan wall paths, and control the robot to accurately follow the wall paths according to the preset motion model, and at the same time detect obstacles in the moving trajectory in real time to avoid collisions and achieve accurate obstacle circumvention.
The accuracy and safety of the robot traveling along the wall is achieved, the collision with obstacles is avoided, and the efficiency and effect of traveling along the wall is improved.
Smart Images

Figure CN2023123076_10042025_PF_FP_ABST
Abstract
Description
Robot and method, system, and storage medium for controlling robot to move along a wall Technical Field
[0001] The present application relates to the technical field of robots, and in particular to a method for controlling a robot to move along a wall, a robot, a robot control system, a computer-readable storage medium, and a computer program product. Background Art
[0002] With the development of automation technology and artificial intelligence, robots are widely used in various occasions to replace manual work. For example, robots replace manual labor to clean floor surfaces.
[0003] As robotic devices that automatically perform tasks, robots typically need to be controlled along pre-planned paths. A key requirement for performing these tasks is the ability for the robot to approach and follow walls. For example, to improve cleaning coverage and effectiveness, cleaning robots must follow walls at the start of a cleaning task to clean the floor surface near the wall. Therefore, how to accurately guide robots along walls is a pressing technical challenge in this field.
[0004] Summary of the Invention
[0005] In view of the shortcomings of the related technologies mentioned above, the purpose of this application is to provide a method for controlling a robot to move along a wall, a robot, a robot control system, a computer-readable storage medium and a computer program product, so as to solve the technical problem of how a robot can move accurately along a wall.
[0006] To achieve the above-mentioned purpose and other related purposes, the first aspect of the present application provides a method for controlling a robot to move along a wall, the method comprising the following steps: pre-planning an edge path along the inner side of the edge of an obtained environment map; controlling the robot to move to the edge path and identifying wall features of the surrounding environment to plan a wall path; controlling the robot to move to the wall path so that the robot enters a wall-following mode; driving the robot to move along the wall following the wall path according to a preset motion model; wherein the robot has left and right drive wheels located on the rear side of its body and at least one passive universal wheel located on the front side of its body; the motion model of the robot is a motion model with the midpoint of the axis of the left and right drive wheels as the starting point and a virtual point on the front side of the passive universal wheel as the end point.
[0007] According to a second aspect of the present application, there is provided a robot, comprising: a robot body; left and right drive wheels located at the rear side of the robot body; at least one passive universal wheel located at the front side of the robot body; a control device for controlling the rotation speed of the left and right drive wheels to realize the movement control of the robot following the planned wall path, wherein the control device is configured to: pre-plan an edge path along the inner side of the edge of the obtained environment map; control the robot to move to the edge path to identify the wall features of the surrounding environment to plan a wall path; control the robot to move to the wall path to enable the robot to enter the wall mode; drive the robot to follow the wall path along the wall according to a preset motion model; wherein the robot has left and right drive wheels located at the rear side of its body and at least one passive universal wheel located at the front side of its body; the motion model of the robot is a motion model with the midpoint of the axis of the left and right drive wheels as the starting point and the virtual point on the front side of the passive universal wheel as the end point.
[0008] The third aspect of the present application provides a robot control system, comprising: a storage device for storing at least one robot movement control program; a processing device connected to the storage device, for implementing the method of controlling a robot to move along a wall as described in any one of the first aspects of the present application when executing the at least one robot movement control program.
[0009] A fourth aspect of the present application provides a computer-readable storage medium storing at least one robot movement control program, wherein the robot movement control program, when executed by a processor of the robot, implements the method for controlling a robot to move along a wall as described in any one of the first aspects of the present application.
[0010] In a fifth aspect, the present application provides a computer program product. When the computer program product is run on a computer, the computer is caused to execute the method for controlling a robot to move along a wall as described in any one of the first aspects of the present application.
[0011] In summary, the method for controlling a robot to move along a wall, the robot, the robot control system, the computer-readable storage medium, and the computer program product provided by the present application plan a path along the wall by identifying the wall, and control the robot to accurately follow the path along the wall according to a preset motion model, thereby enabling the robot to accurately move along the wall; further, the present application also detects obstacles in its movement trajectory in real time during the process of moving along the wall, which can effectively avoid collisions with obstacles during the process of moving along the wall, and can achieve precise obstacle avoidance, thereby improving the safety of moving along the wall; further, when the robot is detected to be in a predicament, the robot is controlled to escape to avoid being in a predicament during the movement along the wall, which causes the robot to be unable to continue moving. BRIEF DESCRIPTION OF THE DRAWINGS
[0012] The specific features of the present application are set forth in the appended claims. The features and advantages of the present invention can be better understood by referring to the exemplary embodiments described in detail below and the accompanying drawings. A brief description of the drawings is as follows:
[0013] FIG1 is a schematic diagram showing the three-dimensional structure of a robot in one embodiment of the present application.
[0014] FIG2 is a schematic diagram showing a planned path acquired by a robot in one embodiment of the robot moving method of the present application.
[0015] FIG3 is an enlarged schematic diagram of point A in FIG2 .
[0016] FIG4 is a schematic diagram showing the principle of the motion model of the robot in one embodiment of the present application.
[0017] FIG5 is a flow chart showing a method for controlling a robot to move along a wall in one embodiment of the present application.
[0018] FIG6 is a schematic diagram showing a pre-planned edge path inside the edge of an environment map according to one embodiment of the present application.
[0019] FIG. 7 is a schematic diagram showing a pre-planned edge path in one embodiment of the present application.
[0020] FIG8 is a schematic diagram showing a state of a robot in a “bow”-shaped moving mode according to one embodiment of the present application.
[0021] FIG. 9 is a schematic diagram showing a path along a wall in one embodiment of the present application.
[0022] FIG10 is a schematic diagram showing the positional relationship between a moving trajectory generated based on a planned path along a wall and a wall in one embodiment of the present application.
[0023] FIG. 11 is an enlarged schematic diagram showing a plurality of path points determined from FIG. 10 .
[0024] FIG12 is a schematic diagram showing how to obtain expected travel information for each waypoint in one embodiment of the present application.
[0025] FIG. 13 is a flow chart showing step S13 of the method for controlling a robot to move along a wall according to an embodiment of the present invention.
[0026] FIG. 14 is a schematic diagram showing a moving trajectory of a robot according to an embodiment of the present application.
[0027] FIG15 is a schematic diagram showing an intersection between the robot's trajectory and the edge of an obstacle in one embodiment of the present application.
[0028] FIG. 16 is a schematic diagram showing a process of deleting path points and a robot outline corresponding to a robot outline intersecting with an obstacle edge in a path along a wall according to an embodiment of the present application.
[0029] FIG. 17 is a schematic diagram showing a method of generating a plurality of obstacle avoidance points in one embodiment of the present application.
[0030] FIG. 18 is a schematic diagram showing an obstacle avoidance track formed in one embodiment of the present application.
[0031] FIG. 19 is a schematic diagram showing an obstacle circumvention path formed in one embodiment of the present application.
[0032] FIG. 20 is a schematic diagram showing the obstacle avoidance path in FIG. 19 after smoothing.
[0033] 21 to 22 are schematic diagrams showing the interaction between the robot's trajectory and an obstacle and the obstacle avoidance path generated based on the expanded contour of the obstacle in another embodiment of the present application.
[0034] FIG23 is a flow chart showing step S13 in another embodiment of the method for controlling a robot to move along a wall according to the present application.
[0035] FIG24 is a schematic diagram showing the movement of the robot before it gets into trouble in one embodiment of the present application.
[0036] FIG25 is a schematic diagram showing a robot entering a difficult state and planning a path to escape in one embodiment of the present application.
[0037] FIG. 26 is an enlarged schematic diagram of point A′ in FIG. 25 .
[0038] FIG. 27 is a flow chart showing step S134 in one embodiment of the present application.
[0039] FIG28 is a schematic diagram showing a method of controlling a robot to move along a wall according to the present application for obtaining desired retreat information for each waypoint in one embodiment.
[0040] FIG29 is a schematic diagram showing a robot escaping from a difficult situation along an escape path in one embodiment of the present application. DETAILED DESCRIPTION
[0041] The following is an explanation of the embodiments of the present application by specific specific embodiments, and those familiar with the technology can easily understand other advantages and effects of the present application from the contents disclosed in this specification. In the following description, reference is made to the accompanying drawings, which describe several embodiments of the present application. It should be understood that other embodiments may also be used, and changes in module or unit composition, electrical and operational aspects may be made without departing from the spirit and scope of the present disclosure. The following detailed description should not be considered restrictive, and the scope of the embodiments of the present application is limited only by the published claims. The terms used herein are only for the purpose of describing specific embodiments and are not intended to limit the present application.
[0042] It will be understood that, as used herein, the term "module" may refer to or include, or be part of, an application specific integrated circuit (ASIC), an electronic circuit, a processor (shared, dedicated, or group) and / or memory that executes one or more software or firmware programs, a combinational logic circuit, and / or other appropriate hardware components that provide the described functionality.
[0043] In the prior art, to achieve wall-following, a robot typically identifies the edge of an environment map as a wall and directly indents a preset distance into the map based on the edge of the environment map to form a wall-following path. Because the map edge may be obstacles other than walls, or because walls within the on-site environment are not fully represented or constructed in the environment map, the prior art cannot truly achieve wall-following, or precisely achieve wall-following. Furthermore, to prevent collisions with obstacles near the wall during the robot's wall-following path and to provide sufficient room for the robot to adjust its posture, the preset distance is typically set relatively large, especially for larger commercial cleaning robots. This results in the robot being farther away from the wall when following the wall-following path. While this ensures the robot's safety, it also reduces the effectiveness of the intended task. For example, commercial cleaning robots cannot clean floor surfaces adjacent to walls, reducing cleaning coverage and effectiveness.
[0044] In view of this, the present application discloses a method for controlling a robot to move along a wall, a robot, a robot control system, a computer-readable storage medium, and a computer program product. The method generates a pre-planned edge path to accurately identify the wall features and then plans the wall path. The robot is controlled to accurately follow the wall path according to a preset motion model, thereby enabling the robot to move accurately along the wall.
[0045] In this application, the robot refers to an autonomous mobile device capable of building a map in a physical space, including but not limited to one or more of: a home companion mobile device, a medical mobile device, a home cleaning robot, a commercial cleaning robot, and a patrol robot. For example, it is a service robot used in a commercial scenario to perform a certain task (such as a cleaning robot, a patrol robot, or a robot that delivers food or items) or a home robot used in a home scenario to perform cleaning or entertainment tasks (such as a sweeping robot or a companion robot). In the following embodiments, the robot is described as a commercial cleaning robot.
[0046] The physical space refers to the actual three-dimensional space in which the robot is located, and can be described by abstract data constructed in the spatial coordinate system. For example, the physical space includes but is not limited to home residences, public places (such as offices, shopping malls, hospitals, underground parking garages, and banks), etc. For robots, the physical space generally refers to indoor space, that is, space with boundaries in length, width, and height. In particular, it includes physical spaces with large spatial ranges and high scene repetition, such as shopping malls, parking garages, and terminal halls.
[0047] Please refer to FIG1 , which is a schematic diagram of the three-dimensional structure of a robot according to one embodiment of the present application. As shown in the figure, the robot is a commercial cleaning robot capable of performing one or more tasks, such as sweeping, vacuuming, and mopping a surface to be cleaned. Accordingly, the robot is provided with one or more accessories or components, such as a cleaning brush 13 for sweeping, a mop, and a water tank for holding clean water or dirty water.
[0048] The surface to be cleaned refers to the floor surface, including tiles, stone, brick, wood, concrete, carpet, and other common surfaces. The surface to be cleaned may also be referred to as the cleaning surface, the ground, the surface, the walking surface, etc. It should be noted that in this application, for ease of description and understanding, the plane parallel to the surface to be cleaned, i.e., the floor surface, is referred to as the horizontal plane or the horizontal direction, and the plane perpendicular to the surface to be cleaned, i.e., the floor surface, is referred to as the vertical plane or the vertical direction.
[0049] Furthermore, for ease of description and understanding, in this application, the robot's forward direction during operation is defined as the forward direction, and correspondingly, the direction opposite to the forward direction during operation is defined as the backward direction. It should be understood that the side of the robot's forward direction during operation is defined as the front side or front end, and the side of the robot opposite to the front side or front end is defined as the rear side or rear end. To facilitate the distinction between left and right sides, the distinction between left and right is based on the robot's forward direction during operation.
[0050] In the embodiment, the robot 1 includes: a robot body 10, left and right driving wheels 11 located at the rear side of the robot body 10, at least one passive universal wheel 12 located at the front side of the robot body 10, and a control device (not shown).
[0051] In an embodiment, the left drive wheel 11 is arranged on the rear side of the bottom of the body 10 of the robot 1 and is located on the left side of the robot 1, and the right drive wheel 11 is arranged on the rear side of the bottom of the body 10 of the robot 1 and is located on the right side of the robot 1. The left and right drive wheels 11 are coaxially arranged and are used to drive the robot 1 forward or backward when driven by their respective motors, or to drive the robot 1 to turn by utilizing the differential speed of the left and right drive motors.
[0052] In an embodiment, the universal wheel 12 is arranged at the bottom of the body 10 of the robot 1 and in the middle position of the front side of the robot 1, and is used to support the weight of the front of the robot and cooperate with the differential of the left and right drive wheels to passively realize steering for the robot 1. In this application, the universal wheel 12 is a passive wheel, that is, the universal wheel 12 itself does not have driving capability, and it can passively roll or turn under the drive of the left and right drive wheels on the rear side of the robot 1.
[0053] In another embodiment, there are two universal wheels, one at the bottom of the robot body and located on the left and right sides of the front of the robot, for supporting the weight of the front of the robot and passively steering the robot in conjunction with the differential speed of the left and right drive wheels. It should be understood that in other embodiments, the number of universal wheels can be configured accordingly based on the needs of the robot. For example, in addition to providing a passive universal wheel at the bottom of the robot body and located in the middle of the front of the robot, another passive universal wheel can be provided on the left and right sides of the front of the robot.
[0054] The control device is used to control the rotational speed of the left and right drive wheels so that the robot follows the planned wall-following path. The control device is configured to execute the method for controlling the robot to follow the wall-following path described in this application when the wall-following mode is required, namely, steps S10 to S13 described below in Figure 5.
[0055] The control device is typically provided with a processing device and a storage device. In some embodiments, the control device is disposed on a circuit board (not shown) within the body and includes a storage device and a processing device, etc. The storage device and the processing device are electrically connected directly or indirectly to enable data transmission or interaction. For example, the storage device and the processing device may be electrically connected to each other via one or more communication buses or signal lines.
[0056] The control device may further include at least one drive unit, such as a left-wheel drive unit for driving the left drive wheel and a right-wheel drive unit for driving the right drive wheel. The drive unit may include one or more processors (CPUs) or microprocessor units (MCUs) specifically configured to control the drive motors. For example, the microprocessor is configured to convert information or data provided by the control device into electrical signals for controlling the drive motors, and to control the speed and direction of the drive motors based on the electrical signals to adjust the movement speed and direction of the robot. The information or data may include the deflection angle determined by the control device. The processor in the drive unit may be shared with the processor in the control device or may be independently configured. For example, the drive unit may serve as a slave processing device and the control device may serve as a master device, with the drive unit performing movement control based on the control device. Alternatively, the drive unit may share a processor with the control device. The drive unit receives data provided by the control device via a program interface. The drive unit is configured to control the drive wheels based on movement control instructions provided by the control device.
[0057] In some embodiments, the processing device includes an integrated circuit chip with signal processing capabilities; or a general-purpose processor, such as a digital signal processor (DSP), an application-specific integrated circuit (ASIC), a discrete gate or transistor logic device, or a discrete hardware component, which can implement or execute the various methods, steps, and logic block diagrams disclosed in the embodiments of this application. The general-purpose processor can be a microprocessor or any conventional processor.
[0058] In some embodiments, the storage device may include random access memory (RAM), read-only memory (ROM), programmable read-only memory (PROM), erasable programmable read-only memory (EPROM), and electrically erasable programmable read-only memory (EEPROM). The storage device is used to store programs (e.g., travel control programs, cleaning programs, etc.) and environmental maps. After receiving an execution instruction, the processing device executes the program.
[0059] The robot body is equipped with multiple sensing devices for detecting and / or identifying obstacles in its surrounding environment. The robot then adjusts its movement direction and / or posture based on received feedback signals to avoid collisions with obstacles or falls off cliffs. It should be understood that, depending on actual needs, more sensing devices can be installed at different locations on the robot body to improve detection accuracy.
[0060] In an embodiment, the sensing device of the robot includes, for example, a laser sensor, an ultrasonic sensor, an infrared sensor, an optical camera (e.g., a monocular camera or a binocular camera), a depth camera (e.g., a ToF sensor), a lidar sensor, etc.; wherein, for example, a laser sensor can determine its distance from an obstacle based on the time difference between the time it emits a laser beam and the time it receives the laser beam; for another example, an ultrasonic sensor can determine the distance of the robot from an obstacle based on the vibration signal generated by the sound wave it emits being reflected by the obstacle; for another example, a binocular camera device can determine the distance of the robot from an obstacle using the triangulation principle based on the images captured by its two cameras; for another example, the infrared light projector of a ToF (Time of Flight) sensor projects infrared light outward, which is reflected after encountering the obstacle to be measured and is received by a receiving module. By recording the time from the emission of the infrared light to the reception of the infrared light, the depth information of the illuminated obstacle is calculated. It should be noted that in this application, the sensor used for obstacle detection in the sensing device is also referred to as an obstacle sensor. The reference to the obstacle sensor in the following text should be understood in this way and will not be repeated.
[0061] Among them, obstacles refer to objects located on the robot's travel trajectory that may block it; the obstacles have different types depending on the environment. For example, in indoor scenes, obstacles may be speed bumps, doors, walls, pillars, stairs, tables, chairs, cabinets, flower pots, electrical appliances and other various placed objects; in outdoor scenes, obstacles may include buildings, public facilities, pedestrians, etc.
[0062] In an embodiment, the robot utilizes multiple operating modes to navigate within a work area, wherein operating modes are control system layers that can operate in parallel. The microprocessor unit is operable to execute a priority arbitration scheme to identify and implement one or more primary operating modes for any given scenario based on input from the sensor system. Examples include a robot route-following mode, a turning mode, an escape mode, an obstacle avoidance mode, or a travel mode that involves a "bow" or "circle" motion according to a pre-defined planned path.
[0063] The robot described in this application moves along the planned path based on the planned path and the preset motion model during the process of moving in the working area. In other embodiments of this application, depending on the different working modes of the robot, the planned path can also be called a wall-following path, an obstacle-avoiding path, or an escape path.
[0064] In some embodiments, the planned path is pre-planned by the robot and stored in its memory so that the robot can read the planned path when performing the task. In other embodiments, the planned path is obtained by real-time path learning or real-time path planning.
[0065] In an embodiment, the planned path is composed of multiple path points, each path point includes its coordinate information and heading angle. In other words, the planned path can be regarded as a point set of n path points or a trajectory line formed by fitting n path points.
[0066] Please refer to Figures 2 and 3. Figure 2 shows a schematic diagram of the planned path obtained by the robot in one embodiment of the robot moving method of the present application, and Figure 3 shows an enlarged schematic diagram of point A in Figure 2. As shown in the figure, the planned path obtained by the robot in the present application includes multiple path points (i, i+1, i+2, i+3, i+4, ... i+n-1), and each path point contains its own coordinate information and heading angle information. Taking path point i as an example, the information of the path point i obtained by the robot from the planned path includes the coordinate information of the point (x i ,y i ) and heading angle information (θ i ).
[0067] In the present application, the robot selects multiple path points from the obtained planned path. For example, the robot can select a preset number of points in the path as path points, and the preset number is, for example, 5-25. For another example, the robot can select multiple path points from the obtained planned path based on the properties of the sensing device configured by the robot. The properties of the sensing device include but are not limited to information such as the sensitivity, resolution, and range of the sensing device. For example, the robot selects more path points when it determines that the resolution of the sensing device is high, and selects fewer path points when the resolution of the sensing device is low. For another example, the robot selects more path points when it determines that the range of the sensing device is large, and selects fewer path points when the range of the sensing device is small. In the following embodiments, the example of the robot selecting 24 path points from the obtained planned path is temporarily used for explanation.
[0068] In one embodiment, the robot sets the step length of the path points based on the number of preset path points and the overall curvature of the planned path. For example, in a spiral walking mode, when the planned path obtained by the robot is a path with a larger curvature, it sets the step length of the path points to be relatively small based on the determined number of 24 path points, such as selecting path points with a step length of 5 cm.
[0069] In another embodiment, the robot sets the step length of the path points based on the number of preset path points and the local curvature of the planned path. For example, in a "bow"-shaped walking mode, when the robot obtains a local planned path as a path with a larger curvature (such as a turn), and the local planned path at the other end is a path with a smaller curvature (such as an approximate straight line), then, based on the number of 24 path points determined, the step length of the path points on the path with a larger curvature is set to be smaller, such as selecting path points with a step length of 5 cm per path point; and based on the number of 24 path points determined, the step length of the path points on the path with a smaller curvature is set to be larger, such as selecting path points with a step length of 10 cm per path point. It should be understood that the 5 cm step length or 10 cm step length exemplified here is intended to illustrate the relative distance of the step lengths between path points.
[0070] In another embodiment, the robot sets the step length of the path points based on the number of preset path points and its preset speed. For example, when the robot moves in a preset uniform speed mode, it can set the step length of the path points according to the preset speed, such as selecting path points with a step length of 5 cm as one path point.
[0071] In another embodiment, the robot determines the step length of the waypoints from the planned path based on the number of preset waypoints and the robot's actual speed. For example, when the robot is traveling in a relatively low-speed mode, the robot selects waypoints with a step length of 5 cm, and when traveling in a relatively high-speed mode, the robot selects waypoints with a step length of 10 cm.
[0072] In an embodiment, the process of the robot selecting the path point step of multiple path points from the obtained planned path is dynamically adjusted, such as the above-mentioned dynamic adjustment of the path point step of 24 path points based on the curvature change of the current local planned path obtained, or the current real-time speed change of the robot.
[0073] In one embodiment, the present application constructs a motion model based on the robot shown in Figure 1. As shown in Figure 1, the present application uses as an example a cleaning robot 1, wherein the passive universal wheel 12 is disposed at the bottom of the robot body 10 and in the middle of the front side of the robot body 1, and is used to support the weight of the front of the robot body 10 and cooperate with the differential speed of the left and right drive wheels 11 located at the rear to enable the robot body 10 to perform steering. In the present application, the passive universal wheel 12 and the midpoint of the axis of the left and right drive wheels 11 of the robot are collinear.
[0074] The passive universal wheel 12 is used to support the weight of the front of the robot. It is arranged at the bottom of the body 10 of the robot 1 and is located in the middle position of the front side of the robot 1. There is still a certain distance between the projection point of the universal wheel 12 and the front edge of the robot body. When the robot turns, it is affected by the linear velocity (linear velocity) of the turning of the body. The driving wheel 11 on the rear side of the robot, the passive universal wheel 12 on the front side of the robot, and the front edge of the body respectively present different turning speeds (this phenomenon is more obvious on routes with larger curvature). In order to avoid the problem of accuracy of following the line caused by the front side of the robot body rotating too fast, in this application, the motion model of the robot is a motion model with the midpoint of the axis of the left and right driving wheels as the starting point and the virtual point on the front side of the passive universal wheel as the end point.
[0075] In an embodiment where the front universal wheel includes two left and right universal wheels, the motion model of the robot is a motion model that takes the midpoint of the axis of the left and right driving wheels as the starting point and takes the virtual point in front of the axial midpoint of the left and right universal wheels as the end point.
[0076] To facilitate the description of the robot motion model described in this application, the movement of the robot in the vertical direction (Z-axis direction) is not considered here, that is, the movement of the robot is regarded as a movement on a two-dimensional plane. On this basis, it is assumed that the left and right drive wheels on the rear side of the robot have the same steering angle and speed at any time, then the movement of the left and right drive wheels of the robot can be combined into one wheel to describe (taking the midpoint of the axis of the left and right drive wheels of the robot); in addition, in the motion model, it is assumed that the robot's travel speed changes slowly, the transfer of front and rear axle loads is ignored, and the robot body is regarded as a rigid system.
[0077] Please refer to FIG4 , which is a schematic diagram showing the principle of the motion model of the robot in one embodiment of the present application. As shown in the figure, in the present application, the motion model of the moving robot can be simplified to a rigid body structure moving on a two-dimensional plane. The state of the robot at any time is determined by its position (i.e., x, y coordinates), posture (i.e., heading angle θ), speed (v), and steering angle (δ). As shown in the figure, when constructing the motion model of the robot, the present application selects a virtual point p in advance on the front side of the passive universal wheel, that is, the virtual point p is located between the passive universal wheel and the front edge of the robot, and the virtual point is close to the front edge of the robot relative to the passive universal wheel. Then, the starting point o(x0, y0) of the motion model of the robot is located at the center of the rear axle, and the end point p(x p ,y p ) is located at the virtual point on the front side of the passive universal wheel, with the starting point (x0, y0) and the end point p (x p ,y p ) is the rigid body structure formed by the lines between the two as the constructed motion model. The coordinate axis is parallel to the robot body. Wherein, R represents the turning radius of the motion model of the robot, and d represents the distance between the starting point (x0, y0) and the end point p (x p ,y p ), l represents the wheelbase between the left and right driving wheels, v l represents the speed of the left driving wheel, v r represents the speed of the right drive wheel, θ represents the heading angle of each coordinate point in the motion model, and δ represents the steering angle of the virtual point p located in front of the passive universal wheel. In the model shown in Figure 4, if the steering angle δ of the virtual point p in front of the passive universal wheel remains unchanged, the constructed motion model will rotate in a circle with a turning radius R. That is, the rotation model of the robot is a rotation model with the virtual point p as the center and a turning radius of R in Figure 4.
[0078] It should be understood that in the motion model of the robot of the present application, the virtual point p of the robot motion model is coincident with each path point in the planned path, and then the travel control information of the virtual point p is obtained, and the travel control information of the virtual point p is converted into the control amount of the left and right driving wheels at the rear side of the robot to control the end point p (x p ,y p ) to each path point in the planned path. Based on the robot's motion model shown in Figure 4, after obtaining the movement control information at a certain moment, such as the speed and steering angle at the next moment, the robot can control its movement based on these two control variables.
[0079] In the following embodiments of this application, the robot's operating mode also includes a wall-following mode. In other words, the robot also follows a wall-following path according to the preset motion model. The wall-following path is composed of multiple path points. Please refer to Figure 5, which shows a flowchart of a method for controlling a robot to move along a wall in one embodiment of this application. As shown in the figure, the method for controlling a robot to move along a wall in this application includes steps S10, S11, S12, and S13. The method for controlling a robot to move along a wall can be executed by the robot's control device or by other computer devices capable of executing the method.
[0080] In step S10 , the robot pre-plans an edge path along the inner side of the edge of the obtained environment map.
[0081] Among them, the environmental map includes, for example, a grid map or a feature point map. In one embodiment, the environmental map is generated after the robot conducts a real-time inspection of the on-site environment based on its sensing device. For example, during the process of autonomous movement in the on-site environment, the robot constructs an environmental map corresponding to the on-site environment in real time based on the sensing data of its sensing device using technologies such as SLAM (Simultaneous Localization And Mapping) or VSLAM (Visual Simultaneous Localization And Mapping). The environmental map generated by the real-time inspection can reflect the latest obstacle distribution in the on-site environment. In another embodiment, the environmental map is read by the robot from its storage device. Specifically, the environmental map constructed by the robot can be pre-stored in the robot's local storage device. The robot can read the environmental map directly from the storage device. Reading the environmental map directly from the storage device improves the operating efficiency of the robot control device.
[0082] The edge path is located inside the edge of the map, and obstacles corresponding to the map edge are within the sensing range of the robot sensing device when the robot is on the edge path. By planning the edge path, the robot can approach the map edge and accurately identify wall features in step S11 to plan an accurate path along the wall.
[0083] In one embodiment, the robot plans the path along the edge of the environment map based on the coordinate information of the edge of the environment map and a preset spacing. The preset spacing is greater than the turning radius of the robot's motion model. The turning radius is the minimum radius at which the robot can turn when moving based on the motion model. The coordinate information of the edge of the environment map indicates the location of obstacles, walls, or virtual walls generated when the map is partitioned, corresponding to the edge of the environment map, in the live environment.
[0084] In one example, the relative distance between each path point on the edge path and the path point on the edge of the environment map closest to the path point is not less than the preset spacing. Specifically, taking the relative distance being equal to the preset spacing as an example, the coordinate information of a path point on the edge path is (X2, Y2), and the coordinate information of the path point on the edge of the environment map closest to the path point is (X1, Y1). The relative distance between the two is For example, refer to FIG6 , which shows a schematic diagram of a pre-planned edge path inside the edge of an environment map in one embodiment of the present application. As shown in the figure, the relative distance W between a path point D2 on the edge path F2 and a path point D1 on the edge F6 of the environment map closest to the path point D2 is the preset spacing.
[0085] Furthermore, when pre-planning the edge path, the robot also needs to plan based on the obstacle distribution in the environment map to avoid collisions with obstacles while traveling along the pre-planned edge path. For example, refer to Figure 7, which shows a schematic diagram of a pre-planned edge path in one embodiment of the present application. As shown in the figure, there is an obstacle A inside the edge F6 of the environment map. The pre-planned edge path F2 is a path that bypasses obstacle A.
[0086] It should be noted that while the edge path in the embodiments shown in Figures 6 and 7 is a closed path connected end to end and composed of straight lines, in other embodiments, the edge path may also be a non-closed path and may include curves. For example, when the edge path is pre-planned based on the edge of the local environment map, the edge path may also be a partial path of the edge path F2 described in Figures 6 and 7.
[0087] After determining the edge path, the robot executes step S11 to identify wall features and plan a wall path along the actual wall.
[0088] In step S11 , the robot controls the robot to move to the edge path and identifies wall features of the surrounding environment to plan a path along the wall.
[0089] Specifically, the robot controls the planned edge path and the robot's current location to move along the edge path, such that objects corresponding to the edge of the map (also referred to as obstacles) are within the sensing range of its sensing device. When the robot moves along the edge path, the robot controls the robot to identify objects in the surrounding environment using its sensing device. If the object is a wall, the robot further determines the length and extension angle of the wall. Based on the length and extension angle of the wall, the robot plans the wall path, so that the robot enters the wall-following mode and moves along the wall.
[0090] In one embodiment, the robot controls the robot to travel to the pathpoint closest to the robot on the edge path based on the robot's current position information. Specifically, the robot determines the pathpoint closest to the robot's current position on the edge path based on the robot's current position, then plans a path from the current position to the closest pathpoint. The robot then travels to the edge path based on the planned path. This allows the robot to quickly travel to the edge path, improving its travel efficiency.
[0091] In one embodiment, the robot controls the robot to move to a path point in the edge path according to a preset working mode. In one example, a path point in the edge path is determined according to the requirements of the working mode for the direction of travel. Furthermore, a path point that satisfies the direction of travel and is closest to the current position of the robot can be selected in the edge path. Based on the determined path point, a planned path is planned from the current position to the determined path point, and the robot moves to the edge path based on the planned path. For example, please refer to Figure 8, which shows a state diagram of the robot in a "bow"-shaped travel mode in one embodiment of the present application. As shown in the figure, the robot 1 is in the "bow"-shaped travel mode to perform a cleaning task. When the robot 1 is in the position shown in Figure 8, there is still a path area shown by the dotted line that has not been cleaned. At this time, the robot 1 is required to move in the direction indicated by the dotted arrow at the current position. The robot controls the robot to move in the direction indicated by the dotted arrow at the current position to a path point D3 in the edge path. Controlling the robot to move to the edge path according to the working mode can improve the execution effect of the current working mode and avoid affecting the current working mode, for example, improving the cleaning effect.
[0092] In one embodiment, the robot may also move to the edge path according to the current heading angle of the robot along the direction of the heading angle. In this way, the robot does not need to turn when moving from the current position to the edge path, which facilitates the control of the robot.
[0093] It should be noted that, in other embodiments, the control device can also control the robot to move from the current position to any point on the edge path, as long as the distance between the current position and the point on the edge path is greater than the turning radius of the robot motion model.
[0094] After the robot reaches the edge path, it uses its sensing device to identify wall features in the surrounding environment. If the sensing data obtained by the sensing device when detecting an object matches the wall features, the detected object is considered a wall. Furthermore, after determining that the object is a wall, a wall path is planned based on the determined wall. If the detected object is not a wall, the robot is controlled to continue traveling along the edge path based on a preset motion model until the detected object is confirmed to be a wall. The wall features include at least one of the following: a high uniformity in the distribution of feature points extracted from the sensing data, and a distribution of feature points extracted from the sensing data that is the same or similar to the current distance between all feature points corresponding to a sensing angle and the robot.
[0095] In one embodiment, the sensing device is a laser radar. When the feature recognition of an object in the environment scene is performed based on the laser radar, if the uniformity of the point cloud data of the object detected by the laser radar is high, the object can be determined to be a wall. For example, when the normal vector consistency of each point in the point cloud data of the object is high, the object can be determined to be a wall. In other words, when the direction of the normal vector of each point in the point cloud data of the object is the same or similar, the object can be determined to be a wall. Further, in order to improve the accuracy of wall recognition, if the uniformity of the point cloud data of the object detected by the laser radar is high, the object can be determined to be a suspected wall. If the distance between each point in the point cloud data corresponding to a sensing angle of the laser radar (for example, a laser emission direction) and the robot is the same or similar, the object can be further determined to be a wall.
[0096] In other embodiments, feature recognition of objects in the environment can also be performed based on other sensing devices such as depth cameras (e.g., ToF sensors). This application does not limit the type of sensing device or the method of feature recognition of objects, as long as a wall can be identified based on the sensing data of the sensing device. For example, if the depth value of each pixel of an object at a sensing angle (e.g., a column of pixels) is the same or similar based on the depth image of the depth camera, and the outline feature of the object is a regular rectangle, the object can be determined to be a wall.
[0097] Furthermore, after the robot determines that the object is a wall, it performs feature fitting based on the sensing data to fit a line segment representing the wall, thereby obtaining the length and extension angle of the wall. The extension angle of the wall is used to represent the extension direction of the wall.
[0098] In one example, all sensory data for a wall is filtered to select points with equal heights from the floor surface for feature fitting, thereby fitting a line segment representing the wall. For example, all points on the intersection of the wall and the floor surface are selected for feature fitting. Furthermore, among the points with equal heights from the floor surface, all points closest to the edge path / robot are selected for feature fitting, such as all points on the intersection of the wall and the floor surface. In this embodiment, assuming that the robot is located at each path point on the edge path corresponding to the wall, the point in the sensory data closest to the current robot / current path point is the point closest to the edge path / robot as described above. Methods for feature fitting the selected points include, but are not limited to, least squares methods, Hough transforms, and other methods. Based on the fitted line segment, the robot can determine the length and extension angle of the wall. For example, if the line segment is a straight line, the length of the wall is the length between the starting and ending points of the line, and the tangent of the extension angle can be represented by the slope of the line. In other embodiments, the line segment can be a curve, in which case the extension angle of the wall is not unique.
[0099] It should be noted that this application does not restrict the fitting method; as long as a line segment representing the wall can be fitted and the length and extension angle of the wall can be determined, it will suffice. Furthermore, the length of the wall described in the embodiments of this application does not refer to the entire length of the wall in the actual on-site environment, but rather to the length determined based on the sensing data of the sensing device.
[0100] After determining the length and extension angle of the wall, the robot plans the path along the wall based on the length and extension angle of the wall. The length of the path along the wall must be less than or equal to the length of the wall. The extension angle / heading angle of the path along the wall must match the extension angle of the wall. For example, the extension angle / heading angle of the path along the wall can be the same as the extension angle of the wall. Specifically, the heading angle of each path point along the path along the wall is equal to the extension angle at the corresponding point on the wall. This ensures that the robot's movement posture / trajectory remains parallel to the wall as it moves along the path along the wall.
[0101] In one example, see Figure 9, which shows a schematic diagram of a wall-following path in one embodiment of the present application. As shown in the figure, after the robot detects the length and extension angle of wall F3 on edge path F2, it plans a wall-following path F4. The length of wall-following path F4 is less than the length of wall F3 and the extension angle is the same as that of wall F3. That is, the heading angle of each path point on wall-following path F4 is the same as the extension angle of wall F3.
[0102] In one embodiment, the planned length of the wall path is related to one or more of the robot's travel speed, the properties of the sensing device, or the curvature of the wall path. For example, the faster the robot's travel speed, the longer the wall path needs to be planned to ensure the robot's travel continuity and avoid the robot stopping midway due to failure to acquire a subsequent wall path. Conversely, the length of the wall path needs to be planned to be shorter, for example, half or one-quarter the length of the wall within the sensing range. For another example, sensing devices with different properties correspond to different detection speeds. For sensing devices with slower detection speeds, the length of the wall path needs to be planned to be longer to allow the sensing device more time for detection. Conversely, the length of the wall path needs to be planned to be shorter. For example, when the curvature of the wall path varies significantly, such as when the wall path is curved, the length of the wall path needs to be planned to be shorter in order to facilitate real-time adjustment of the wall path according to the robot's posture. Conversely, the length of the wall path needs to be planned to be longer. The length of the wall path can be pre-set based on experiments, R&D personnel's experience, etc., so that the wall path is planned according to the pre-set length each time the wall path is planned.
[0103] Since the robot is actually an entity occupying a physical space, the path along the wall cannot be equated with the trajectory corresponding to the robot's outline. To avoid collisions with the wall when the robot moves along the path along the wall, in one embodiment, the robot determines the coordinate information of each path point in the path along the wall based on the robot's trajectory. The trajectory is the contour trajectory formed by the robot's outline at multiple path points. Specifically, the planned path along the wall must satisfy a preset distance requirement between the trajectory formed by the multiple path points on which the robot's outline is mapped and the wall. If the trajectory along the wall does not meet the preset distance requirement, it must be replanned until the preset distance requirement is met, and the coordinate information of each path point that meets the preset distance requirement will be used as the coordinate information of each path point in the final determined path along the wall. In one example, the minimum distance between the trajectory and the wall is not less than 5 cm, for example, the minimum distance is any value between 5 cm and 8 cm.
[0104] Please refer to Figure 10, which shows a schematic diagram of the positional relationship between the travel trajectory generated based on the planned wall-following path and the wall in one embodiment of the present application. As shown in the figure, after the robot 1 identifies the objects in the surrounding environment on the edge path F2 based on the sensing device, it identifies and determines the length and extension angle of the wall F3. When planning the wall-following path F4 based on the length and extension angle of the wall F3, the wall-following path must also meet the requirement that when the contour of the robot 1 is mapped to the path points shown by multiple circles on the wall-following path F4, the minimum distance W between the travel trajectory G formed and the wall meets the preset distance requirement. If the minimum distance W meets the preset distance requirement, the coordinate information that meets the preset distance requirement will be used as the coordinate information of each path point in the final determined wall-following path.
[0105] In step S12, the robot controls the robot to move to the wall-following path so that the robot enters the wall-following mode. Specifically, the control device controls the robot to adjust its posture so that a virtual point in the robot motion model coincides with a path point in the wall-following path to enter the wall-following mode.
[0106] In one embodiment, the robot first adjusts its posture so that the robot enters the wall path at a preset entry angle. The entry angle refers to the angle between the robot's motion model and the wall path / wall when the robot's motion model intersects the wall path. The entry angle is less than 60°. For example, the entry angle is approximately 10°, 15°, 20°, 25°, 30°, 35°, 40°, 45°, 50°, 55°, or 60°. In this way, the robot is prevented from making large-angle posture adjustments when it is close to the wall by pre-adjusting its posture, thereby preventing the robot from colliding with the wall.
[0107] Furthermore, when the robot enters the wall path at a preset entry angle, the robot's posture is further adjusted so that the virtual point p in the robot motion model coincides with a path point in the wall path. In other words, the coordinate information (x i ,y i ) and heading angle information (θ i ) is the same, at which point the robot enters wall-following mode. As previously mentioned, the control variables of the robot's rear left and right drive wheels are controlled to control the degree to which the virtual point p in the robot's motion model approaches or overlaps with the path points along the wall path.
[0108] It should be noted that when the virtual point p is controlled to coincide with a path point in the wall path for the first time, the coincident path point may be the starting path point of the wall path or any path point between the two end points of the wall path.
[0109] In one embodiment, the robot further plans an adjustment path based on the current robot position and posture, from the current position to any pathpoint on the wall-following path. The adjustment path starts at the current robot position and ends at a pathpoint on the wall-following path. This adjustment path ensures that when a virtual point p of the robot first coincides with a pathpoint on the wall-following path, the coordinate information and heading angle information of the virtual point p are identical to the coordinate information and heading angle information of the coincident pathpoint.
[0110] When the robot enters the wall-following mode, the control device controls the robot to execute step S13. In step S13, the robot is driven to follow the wall-following path according to a preset motion model.
[0111] As mentioned above, the robot is a robot with rear-wheel driven universal wheels and passive front wheels. When following a path, this type of robot needs to accurately control the rotation speed and differential speed of its two driving wheels on the rear side to ensure the accuracy of path following. This poses a challenge to how to more accurately control the robot's route (such as achieving more accurate route following control or steering control). Therefore, in order to ensure that the robot accurately follows the path along the wall according to the preset motion model, the method of controlling the robot to move along the wall in this application also includes a movement control step.
[0112] In one embodiment, the robot obtains travel control information for each of the multiple path points by calculating the expected travel information and predicted travel information of each path point passed by the robot, and controls the left and right drive wheels of the robot to pass through each of the path points in turn according to the travel control information to follow the wall path and move along the wall.
[0113] First, the control device selects a plurality of path points from a path along a wall in a preset calculation cycle to obtain expected movement information of the robot passing each path point.
[0114] In the present application, the robot selects multiple path points from the obtained path along the wall, for example, 5-10 path points are selected from the path along the wall. Please refer to FIG11, which is an enlarged schematic diagram of determining multiple path points from FIG10. As shown in the figure, the wall path F4 obtained by the robot in the present application includes multiple path points (i, i+3, i+4, i+5, ... i+14), and the robot selects multiple path points from the obtained wall path F4. Each path point contains its own coordinate information and heading angle information. Taking the path point i+3 as an example, the information of the path point i+3 obtained by the robot from the wall path F4 includes the coordinate information of the point (x i+3 ,y i+3 ) and heading angle information (θ i+3 ).
[0115] In the following embodiments, the robot selects five path points from a obtained wall path, such as the five path points (i+3, i+4, i+5, i+6, i+7) shown in FIG11 . In this embodiment, the step length process for selecting five path points from the wall path is the same as that described above and will not be repeated here.
[0116] In the present application, the calculation for obtaining the travel control information of the first path point among the multiple path points needs to be completed within one calculation cycle. That is, the robot selects multiple path points from the obtained path along the wall to obtain the expected travel information of each path point along the path, and all calculations of the process until it obtains the travel control information for controlling the left and right drive wheels are limited to a preset time length, and this preset time length is one calculation cycle. In an embodiment, under the premise of a given travel speed and path point step length, the preset time length is less than the time it takes for the robot to reach the next path point from one path point, that is, when the robot moves from the current path point to the next path point, it needs to complete at least one calculation cycle before reaching the next path point. In some embodiments, before the robot reaches the next path point from the current path point, it needs to complete multiple calculation cycles to continuously update the calculation results in order to obtain more accurate travel control information.
[0117] To improve the robot's computing efficiency or conserve computing resources, the computational process of obtaining the travel control information for the first of the plurality of pathpoints within a predetermined computation cycle is performed under a constraint. In this application, the constraint includes a speed range, heading angle range, and turning range permitted for the robot as it passes through the pathpoint.
[0118] In an embodiment, the setting of the speed range allowed when the robot passes through the path point depends on the constraint range of the minimum speed and the maximum speed given by the control device. For example, the control device limits the robot's travel speed to no more than 4m / s; that is, the control device limits the robot's travel speed range to [0m / s, 4m / s]; the turning range allowed when the robot passes through the path point is [-90°, 90°]; that is, the robot is required to have a maximum turning angle of no more than 180° when moving; the heading angle range allowed when the robot passes through the path point is [-180°, 180°], that is, the heading angle allowed when the robot passes through the path point shall not exceed 360°.
[0119] In the above embodiment, the robot obtains desired travel information for each pathpoint that the robot is about to pass through from the obtained wall-following path. In this application, the desired travel information refers to the ideal state of the robot when traveling at each pathpoint in the wall-following path, including information such as the robot's posture, speed, and steering angle.
[0120] In an embodiment, the expected movement information of the robot when it is about to pass each path point includes expected posture information and expected control information; wherein, the expected posture information includes the coordinates and heading angle of the robot passing the path point, and the expected control information includes the expected speed and expected steering angle of the robot passing the path point. For example, the expected posture information of the robot when passing a certain path point is the coordinates (x ref ,y ref ) and the heading angle (θ ref ); the desired control information when the robot passes the path point is the speed at which the robot reaches the path point (v ref ) and the steering angle (δ ref ).
[0121] Please refer to FIG12, which is a schematic diagram showing how the present application obtains desired information about each waypoint in one embodiment. As shown in the figure, since each waypoint in the path along the wall has the coordinate information and heading angle information of the point, such as the coordinate information and heading angle information of the five waypoints (i+3, i+4, i+5, i+6, i+7) shown in FIG11, the robot can regard the coordinate information and heading angle information of the above-mentioned waypoints as the desired posture information. Still taking the waypoint i+3 as an example, the information of the waypoint i+3 obtained by the robot from the path along the wall includes the coordinate information (x i+3 ,y i+3 ) and heading angle information (θ i+3 ), then the expected posture information of the robot when it passes through the path point i+3 is regarded as (x i+3 =x refi+3 ,y i+3 =y refi+3 ,θ i+3 =θ refi+3 ), in other words, in this embodiment, the control device can obtain the expected posture information of each path point of the robot's path by selecting multiple path points from the path along the wall.
[0122] The robot also needs to obtain the desired speed and desired turning angle of the robot at each path point. In one embodiment, the control device can obtain the desired speed (v) of the robot from the wall path pre-stored in the memory. ref ).
[0123] In another embodiment, the control device obtains the desired speed (v) of the robot from the wall path generated in real time. ref ); Still taking the path point i+3 as an example, the control device also needs to obtain the expected speed of the robot passing the path point i+3, which is expressed as v ref i+3 .
[0124] In the robot's travel control, when the control device does not issue a steering command to the robot's drive wheels, the robot's heading angle is expected to remain unchanged. Therefore, in this embodiment, the expected steering angle of the robot passing each path point is pre-set to 0°. Taking path point i+3 as an example, the control device also needs to obtain the expected speed of the robot passing path point i+3, which is expressed as δ refi+3 , where the desired speed is expressed as δ refi+3 =0°.
[0125] After obtaining the expected travel information of each path point along the path of the robot, the control device predicts the travel prediction information of each path point along the path of the robot based on a preset prediction period, the motion model of the robot, the current posture, and the expected travel information of each path point; wherein, the robot has left and right driving wheels located on the rear side of its body and at least one passive universal wheel located on the front side of its body; as shown in FIG4 , the motion model of the robot is a motion model with the midpoint of the axis of the left and right driving wheels as the starting point and the virtual point on the front side of the passive universal wheel as the end point.
[0126] Based on the robot motion model shown in FIG4 , after obtaining the control input information at a certain moment, such as the speed and steering angle at the next moment, the robot can be controlled to move according to these two control quantities.
[0127] When the control device performs the prediction calculation of the travel prediction information, it needs to complete the prediction calculation within a preset prediction period, which is a time. In this embodiment, the control device obtains its own motion model, the current position (position and heading angle) of the robot, and the expected travel information of each of the multiple path points selected from the wall path, and performs the prediction calculation to predict the travel prediction information of the robot passing each path point. In this embodiment, still taking the travel prediction information obtained when the robot is about to pass path point i+3 through the prediction calculation as an example, the control device obtains its own motion model, the current position (x i+2 ,y i+2 ), current heading angle (θ i+2 ), and the expected travel information (x ref ,y ref ,θ ref , vref , δ ref ), predictive calculation is performed to obtain the travel prediction information (x i+3 ,y i+3 ,θ i+3 , v i+3 , δ i+3 ).
[0128] The travel prediction information refers to the possible future state of the robot when it travels along the path point along the wall, obtained through predictive calculation, including information such as the position and posture, speed and steering angle of the robot when it travels along the path point along the wall in the future. Corresponding to the above-mentioned travel expectation information, in an embodiment, the travel prediction information of each path point along the robot's future path includes predicted posture information and predicted control information; wherein, the predicted posture information includes the predicted coordinates and predicted heading angle of the robot passing the path point obtained through predictive calculation, and the predicted control information includes the predicted speed and predicted steering angle of the robot passing the path point obtained through predictive calculation. For example, the predicted posture information when the robot passes the path point i+3 obtained through predictive calculation is the predicted coordinates (x i+3 ,y i+3 ) and the predicted heading angle (θ) of the robot to reach the path point i+3 i+3 ); The predicted control information when the robot reaches the path point i+3 is the predicted speed (v i+3 ) and the predicted steering angle (δ i+3 ).
[0129] After acquiring the expected travel information and the travel prediction information, the control device performs calculations on the acquired expected travel information and the travel prediction information to acquire travel control information of a first path point among the multiple path points.
[0130] In an embodiment, the step of the control device calculating the travel control information of the plurality of path points includes: square and summing the differences between the expected travel information and the predicted travel information, and determining the travel control information when the minimum value is obtained. In the calculation cycle, the control device calculates the five path points simultaneously based on the selected path points, such as the five path points (i+3, i+4, i+5, i+6, i+7) shown in Figure 11, that is, by solving an objective function (for example, represented by J). Specifically, the expected travel information and the predicted travel information of each of the five path points are simultaneously subjected to difference and square calculation (the calculated value of the square of the difference is 0 when it is minimum), and then a sum calculation is performed. The array when J is minimized in the objective function (that is, argmin J is calculated) is used as the array A (Action) of the travel control information. The array A is the travel control information of each of the five path points (i+3, i+4, i+5, i+6, i+7), and the first group in the array A (the control information of the first path point i+3 is output) is used as the travel control information (v) of the first path point (that is, the path point i+3) i+3c ,δ i+3c ).
[0131] In this embodiment, the travel control information includes speed and steering angle. In the above embodiment with path point i+3 as the first path point, the travel control information of the path point i+3 from the first group in the array A can be expressed as (v i+3c ,δ i+3c ).
[0132] In an embodiment, the step of controlling the left and right driving wheels of the robot to sequentially pass through each of the path points according to the travel control information so as to follow the wall-following path and travel along the wall includes: in each calculation cycle, mapping the travel control information of the first path point among the multiple path points that have not been passed to the travel control information of the virtual point on the front side of the passive universal wheel. In the above embodiment where the first path point is i+3, the calculated travel control information (v i+3c ,δ i+3c ) is mapped to the travel control information of the virtual point on the front side of the passive universal wheel in the robot's motion model, and is used as the input condition for calculating the control amount of the left and right driving wheels on the rear side of the robot body.
[0133] Furthermore, after obtaining the travel control information of the virtual point in front of the passive universal wheel in the motion model, the control amount of the left and right driving wheels on the rear side of the robot body is calculated based on the motion model and the travel control information of the virtual point in front of the passive universal wheel so as to follow the wall path and travel along the wall. In this embodiment, the travel control information (v i+3c ,δ i+3c ), combined with the robot motion model shown in FIG4 above, the calculation is performed to obtain the final rotation speed (v l ,v r ), thereby realizing the control of the robot's travel speed and steering angle.
[0134] In the above embodiment with the first path point as i+3, the following conditions are considered when actually performing the calculation: the wheelbase l between the left drive wheel and the right drive wheel, the rotation angular velocity w of the robot body, the turning radius R of the robot's motion model, the starting point (x0, y0) and the end point p (x p ,y p ) and other conditions, the above conditions are combined with the motion model to perform calculations, and then the speed control value (v i+3l ), the speed control value (v i+3r ), and the differential speed (v i+3l -v i+3r ) realizes the steering angle control amount (δ i+3r ), so that the robot can be controlled to accurately follow each path point when moving along the wall path.
[0135] In the above embodiments of the movement control steps, only the movement control process of the robot about to move to the first path point is used. It should be understood that when the robot is actually moving, the calculation of the above movement control process is a continuous process.
[0136] In one embodiment, the step of calculating the travel control information of the multiple path points includes: when it is determined that the calculation performed in the calculation cycle has reached a preset number of iterations or a preset calculation time, but the optimal travel control information has not been obtained, the currently optimized travel control information is output to ensure smooth operation of the control device. For example, the control device may calculate the travel control information of the plurality of path points multiple times within a calculation cycle, and temporarily store a set of travel control information of the first path point each time it is calculated, until a set of travel control information arrays that minimize the objective function J is determined, and the control information of the first path point (i.e., path point i+3) is output; in actual implementation, if the control device determines that the calculation performed in the calculation cycle has reached a preset number of iterations (e.g., 30 or 50 iterations), or has reached a preset calculation time (e.g., exceeding a time period of 0.2s or 0.5s), but still has not made the objective function (e.g., represented by J) reach a minimum value, in order to ensure that the left and right driving wheels of the robot can obtain the speed control amount and the steering angle control amount in a timely manner, the control device will select the latest calculation result value from the array A of the travel control information of the plurality of path points currently obtained (i.e., the aforementioned temporarily stored) as the travel control information of the first path point (i.e., path point i+3) among the plurality of path points.
[0137] In one embodiment, when the control device calculates the travel control information for the next calculation cycle, the travel control information calculated in the current cycle is used as the initial value for calculating the travel control information for the next calculation cycle, thereby accelerating the calculation speed of the next calculation cycle. In this embodiment, when the robot calculates the travel control information for a pathpoint in the next calculation cycle, the travel control information of the pathpoint is used as the initial value for calculating the travel control information for the pathpoint in the calculation of the next calculation cycle. This not only saves computing resources but also improves the accuracy of the calculation results.
[0138] In another embodiment, in order to more accurately control the movement of the robot, in the calculation of the movement control information of the first path point among the multiple path points, the conditions involved in the calculation also include the predicted acceleration information of the robot. In the above embodiment with the first path point as i+3, the predicted acceleration information is obtained by the predicted speed difference between two adjacent path points, such as path point i+3 and the adjacent path point i+4 of the path point i+3, that is, the method of calculating the predicted acceleration information is (v i+4 -v i+3 ) to obtain the predicted acceleration information.
[0139] In the movement control of the robot, when the control system does not issue an acceleration instruction to the driving wheels of the robot, the control device expects the speed of the robot to remain unchanged. Therefore, in this embodiment, the expected acceleration of the robot passing each path point is pre-set to 0.
[0140] In yet another embodiment, in order to more accurately control the movement of the robot, in the calculation of the movement control information of the first path point among the multiple path points, the conditions involved in the calculation also include the change amplitude of the predicted steering angle of the robot. In the above embodiment with the first path point as i+3, the change amplitude information of the predicted steering angle is obtained by the difference between the predicted steering angles of two adjacent path points, such as the path point i+3 and the adjacent path point i+4 of the path point i+3, that is, the change amplitude of the predicted steering angle is calculated as (δ i+4 -δ i+3 ) to obtain the information on the predicted steering angle change.
[0141] In the movement control of the robot, when the control system does not issue a steering instruction to the driving wheels of the robot, the control device expects the steering angle of the robot to remain unchanged. Therefore, in this embodiment, the change amplitude of the expected steering angle of each path point passed by the robot is pre-set to 0°.
[0142] In an embodiment, the step of calculating the travel control information of the plurality of path points by the control device in the travel control step further includes the step of respectively intervening in the weight of the position, heading angle, speed, and steering angle of the path points. In a specific embodiment, the calculation weight of a certain control quantity can be adjusted according to the calculation requirements of the control device for the control quantity during the calculation process. For example, in the travel control of the robot, the control device needs to adjust the position of each path point (i.e., the coordinate x i+3 ,y i+3 ) requires more accurate calculation, then in this embodiment, the calculation weight of the position of the path point is adjusted to obtain a more accurate calculation value.
[0143] It should be understood that in some embodiments, the control device adjusts the heading angle (θ i+3 ), speed (v i+3 ), and the weight of the steering angle (δ i+3 ) and individually weight one or more parameters. In other embodiments, the control device adjusts the weight of the predicted acceleration information and / or the predicted steering angle change amplitude of each path point to be followed as needed.
[0144] The present application provides a control method for a wall-following mechanism. By presetting a motion model with the midpoint of the axis of the robot's left and right drive wheels as the starting point and the virtual point in front of the passive universal wheel as the end point, the method obtains expected and predicted travel information for each upcoming path point along the wall path within a calculation cycle. The method then performs calculations based on the preset robot motion model to obtain travel control information for the nearest path point. This control information is then mapped to travel control information for the virtual point in front of the passive universal wheel in the robot's motion model, which is then used as input for calculating the control amount of the left and right drive wheels at the rear of the robot body, thereby controlling the rotational speed of the left and right drive wheels. This process is repeated to achieve precise tracking of the robot along the wall path. The present application particularly addresses the problem of precise control during travel for robots with a rectangular chassis, where the left and right rear wheels serve as drive wheels and the front universal wheel serves as a passive wheel.
[0145] Since the robot can accurately follow the planned wall path when executing step S13 of the present application, when the minimum distance between the movement trajectory of the wall path and the wall is a small value such as 5 cm, it can also be ensured that the robot does not collide with the wall when moving along the wall path.
[0146] In an embodiment, when the robot enters the wall-following mode, the control device controls the robot to execute step S13, that is, the robot drives itself to follow the wall-following path according to a preset motion model and, based on the robot's travel distance, the robot's sensing device identifies the wall features of the surrounding environment in real time to continue planning the wall-following path in its forward direction. It should be understood that the continuous planning of the wall-following path during the robot's movement is a continuous process until the robot can no longer detect the existence of the wall.
[0147] Since there may be obstacles other than walls in the robot's trajectory corresponding to the path along the wall, in order to avoid the robot colliding with obstacles when moving along the wall, obstacle detection is performed when moving along the wall. When an obstacle is detected, the robot needs to be controlled to enter the obstacle avoidance mode.
[0148] In one embodiment of step S13, the robot detects obstacles in its trajectory while traveling along a wall, and controls the robot to circumvent the obstacle when an obstacle is detected. The type and location of the obstacle can be detected or identified in real time by a sensing device of the robot and analyzed.
[0149] In one embodiment, please refer to FIG13, which is a flowchart illustrating step S13 of the method for controlling a robot to move along a wall according to the present application. As shown in the flowchart, the method for controlling a robot to move along a wall further includes steps S130 to S132. When an obstacle exists in the trajectory corresponding to the robot's wall-moving path, the robot can continue to move along the wall-moving path after avoiding the obstacle by executing steps S130 to S132.
[0150] In step S130 , the robot detects obstacles in its trajectory while traveling along a wall.
[0151] Considering that a robot is actually an entity occupying a physical space, the path along the wall cannot be equated with the trajectory corresponding to the robot's outline. It is unreasonable to use the path along the wall to determine whether the robot will collide with an obstacle and how to avoid it. Therefore, in this application, the robot selects multiple path points from the path along the wall and maps the robot's outline to each of the multiple path points to form the robot's trajectory. The trajectory is the contour trajectory formed by the robot's outline at the multiple path points along the wall. In this embodiment, the robot outline refers to the projection of the robot on a horizontal plane, and the robot outline can be obtained based on the robot's physical characteristics. The robot's physical characteristics include, but are not limited to, the shape of the robot chassis, the size of the robot body, and the positional relationships between the various components on the robot. Taking Figure 1 as an example, the robot's physical characteristics may include, for example, the shape and size of the robot's housing, the position of the left and right drive wheels, and the wheelbase between them.
[0152] Furthermore, in one embodiment, the robot may map its outline onto each of a plurality of waypoints based on its rotation model to form the robot's trajectory. For example, the robot may map its rotation axis onto each of the plurality of waypoints based on the rotation model, thereby mapping the robot outline based on the coordinate information and heading angle of each waypoint to form the robot's trajectory.
[0153] Please refer to Figure 14, which is a schematic diagram of forming the robot's travel trajectory in one embodiment of the present application. As shown in the figure, the robot contour mapped on the first path point i is identified as M0, the robot contour mapped on the second path point i+1 is identified as M1, the robot contour mapped on the third path point i+2 is identified as M2,..., and so on. The robot contour mapped on the 24th path point i+23 is identified as M23. Therefore, the robot contours on each path point (M0 to M23) will be staggered or overlapped with each other, and the robot's contour trajectory, that is, the robot's travel trajectory G, is formed by removing redundant lines and line segment fitting.
[0154] To determine whether the robot will collide with an obstacle along its trajectory, the robot detects obstacles in its trajectory in step S130. In one embodiment, the robot detects obstacles in its trajectory by: acquiring detection data from a sensing device detecting the surrounding environment; extracting the obstacle's outline information when the presence of an obstacle is determined based on the detection data; and determining whether the obstacle's edge intersects with the trajectory based on the outline information. For example, the sensing device may be a laser sensor that emits a laser beam to detect obstacles. The detection data obtained by the robot is point cloud data. The robot performs point cloud clustering based on the point cloud data to group point cloud data of the same object into point cloud sets. Each point cloud set may represent an obstacle and its size range. Line segment fitting is performed based on the point cloud sets to obtain the obstacle's outline information and determine whether it intersects with the trajectory. The sensing device may also be a camera, and the detection data obtained is image data. The robot performs obstacle recognition based on the image data and extracts obstacle line information to obtain the obstacle's outline and determine whether it intersects with the trajectory.
[0155] In one embodiment, in step S130, the robot detects obstacles in its moving trajectory and the result is that there is no obstacle or the edge of the obstacle does not intersect with the moving trajectory, that is, the robot will not collide if it continues to move along the wall path. In this case, the robot does not need to perform obstacle avoidance action and continues to move along the wall path.
[0156] In one embodiment, the result of the robot detecting an obstacle in its travel trajectory in step S130 is that there is an obstacle and the edge of the obstacle intersects with the travel trajectory, that is, the robot contour corresponding to at least one of the multiple selected path points intersects with the edge of the obstacle. Please refer to Figure 15, which is a schematic diagram showing the intersection of the robot's travel trajectory and the edge of the obstacle in one embodiment of the present application. As shown in the figure, the travel trajectory G intersects with the edge of obstacle A, and the robot will collide with obstacle A while walking along the wall path.
[0157] In step S131 , when it is detected that an edge of an obstacle intersects with the travel trajectory, an expanded contour of the obstacle is obtained.
[0158] In an embodiment, the robot may inflate the obstacle based on an initial expansion distance to form an expanded outline of the obstacle. In some examples, the initial expansion distance may be determined based on the properties of an obstacle sensor configured with the robot. The properties of the obstacle sensor include, but are not limited to, information such as the sensitivity, resolution, and range of the obstacle sensor. For example, when the obstacle sensor has a longer range, a higher sensitivity, or a higher resolution, the initial expansion distance may be set to a larger value. For example, the initial expansion distance may be a value pre-set by a technician based on the properties of the obstacle sensor configured for the robot (e.g., 20 cm) and stored in a storage device accessible by the robot; the initial expansion distance may also be a value set by the robot based on the properties of the obstacle sensor configured therewith (e.g., 20 cm). Here, the step of the robot obtaining the expansion outline of the obstacle includes: determining the initial expansion distance of the obstacle based on the properties of the obstacle sensor configured with the robot.
[0159] In other examples, the initial expansion distance may be determined based on properties of an obstacle sensor configured on the robot and the physical characteristics of the robot. In still other examples, the initial expansion distance may also be determined based on the type of obstacle.
[0160] In step S132 , a plurality of obstacle avoidance points are generated according to the expansion contour of the obstacle, and the plurality of obstacle avoidance points are fitted into an obstacle avoidance path, so that the robot moves along the obstacle avoidance path.
[0161] In one embodiment, the robot first deletes the pathpoints corresponding to the robot's outline that intersect the obstacle's edge in the wall-following path. In this embodiment, the robot determines the pathpoints corresponding to the robot's outline that intersect the obstacle's edge and deletes them. Because the robot can detect the intersection of the obstacle's edge with its trajectory, it can determine the pathpoints corresponding to the robot's outline that intersect the obstacle's edge. Furthermore, based on the mapping relationship between the robot's outline and the pathpoints, the robot determines the pathpoints corresponding to the robot's outline that intersect the obstacle's edge and deletes them.
[0162] The process is explained below with reference to FIG15 . As shown in FIG15 , the edge of the obstacle A intersects with the robot's trajectory. The initial contour of the obstacle A is F0, which constitutes the edge of the obstacle A. The robot detects that the line segment B in its trajectory G intersects with the initial contour F0 of the obstacle A, thereby determining that the line segment B in the trajectory G corresponds to the robot contours M4 to M17. Further, based on the correspondence between the robot contour and the path points, the path points corresponding to the robot contours M4 to M17 are determined to be i+4 to i+17. The path points i+4 to i+17 are deleted, and the robot contours M4 to M17 are further deleted, resulting in FIG16 . FIG16 is a schematic diagram showing the deletion of the path points and the robot contour corresponding to the robot contour that intersects with the obstacle edge in the path along the wall in one embodiment of the present application.
[0163] The robot then generates multiple obstacle avoidance points along the expanded contour of the obstacle and compensates for them along the path along the wall. Please refer to Figure 17, which shows a schematic diagram of generating multiple obstacle avoidance points in one embodiment of the present application. As shown in the figure, the initial contour of obstacle A is F0, which constitutes the edge of obstacle A. The obstacle is expanded based on an initial expansion distance d0 to form an expanded contour F1 of the obstacle. The robot generates multiple obstacle avoidance points along the expanded contour F1 of obstacle A (solid circles in Figure 17 represent obstacle avoidance points, and hollow circles represent path points) and compensates for them along the path along the wall. Figure 17 temporarily uses the generation of 14 obstacle avoidance points (j, j+1, j+2, ..., j+13) as an example, which does not limit the number of obstacle avoidance points.
[0164] In the embodiment, each obstacle avoidance point generated includes its coordinate information and heading angle. As shown in FIG17 , taking obstacle avoidance point j as an example, the information of obstacle avoidance point j generated includes the coordinate information of the point (x j ,y j ) and heading angle information (θ j It should be understood that, similar to the path point, the obstacle avoidance point is used to reflect the position and posture (position and attitude) of the rotation axis of the robot's rotation model at the obstacle avoidance point.
[0165] Considering that when the obstacle is expanded only once based on the initial expansion distance, the obstacle avoidance point generated by the robot cannot enable the robot to effectively avoid the obstacle completely. For example, in Figure 17, in some cases, the robot contour corresponding to the obstacle avoidance point may still intersect with the initial contour F0 of obstacle A.
[0166] In this embodiment, the robot contour is mapped onto each of the plurality of obstacle avoidance points to form an obstacle avoidance trajectory, and it is determined whether an edge of the obstacle intersects with the obstacle avoidance trajectory.
[0167] In one embodiment, the robot can map its contour to each of multiple obstacle avoidance points based on its rotation model to form an obstacle avoidance trajectory. Referring to FIG18 , which illustrates a schematic diagram of forming an obstacle avoidance trajectory in one embodiment of the present application, the robot maps its contour based on the coordinate information and heading angle of each obstacle avoidance point, by mapping its rotation axis to each of the multiple obstacle avoidance points based on the rotation model. In FIG18 , the robot contour at the first obstacle avoidance point j is labeled N0, the contour mapped at the second path point j+1 is labeled N1, the contour mapped at the third path point j+2 is labeled N2, and so on. Similarly, the contour mapped at the 13th obstacle avoidance point j+12 is labeled N12, and the contour mapped at the 14th obstacle avoidance point j+13 is labeled N13. Thus, the contours of the robot at each obstacle avoidance point (N0 to N13) intersect or overlap with each other. By removing redundant lines and performing line segment fitting, the contour trajectory of the robot, i.e., the obstacle avoidance trajectory of the robot, is formed.
[0168] In one embodiment, when it is determined that the edge of the obstacle does not intersect with the obstacle avoidance trajectory, the robot compensates the generated multiple obstacle points into the path along the wall, as shown in FIG17 .
[0169] In another embodiment, when it is determined that the edge of the obstacle intersects the obstacle circumvention trajectory, the robot further expands the obstacle to obtain an expanded outline of the obstacle. In one example, the robot further expands the obstacle by further expanding the obstacle according to an additional expansion distance.
[0170] In one embodiment, to ensure iteration accuracy and allow the robot to approach the edge of the obstacle as closely as possible while avoiding the obstacle, the additional expansion distance is smaller than the initial expansion distance. For example, if the initial expansion distance is 20 cm, the additional expansion distance may be 5 cm. In this embodiment, the additional expansion distance may be a value smaller than the initial expansion distance, determined based on the properties of the obstacle sensor. For example, the additional expansion distance may be a value (e.g., 5 cm) pre-set by a technician based on the properties of the obstacle sensor configured for the robot and stored on a storage device accessible by the robot. The additional expansion distance may also be a value (e.g., 5 cm) set by the robot based on the properties of its obstacle sensor. Here, the step of the robot further expanding the obstacle to obtain the expanded profile of the obstacle includes determining the additional expansion distance based on the properties of the obstacle sensor configured for the robot. Of course, the additional expansion distance may also be a value smaller than the initial expansion distance, determined based on the properties of the obstacle sensor configured for the robot and the physical characteristics of the robot, and this is not limited in this application. It should be understood that the robot further expands the obstacle based on the previously expanded profile of the obstacle.
[0171] In this embodiment, the robot deletes the generated multiple obstacle avoidance points and generates new multiple obstacle avoidance points based on the inflated outline of the obstacle. The process of generating multiple new obstacle avoidance points based on the inflated outline of the obstacle is similar to the aforementioned process of generating multiple obstacle avoidance points along the inflated outline of the obstacle, differing only in the inflated outline used as the basis, and will not be further described here.
[0172] In this embodiment, the robot repeatedly performs the above expansion step until it determines that there is no intersection between the edge of the obstacle and the obstacle avoidance trajectory, and the robot compensates the generated multiple obstacle points into the above-mentioned wall path with the path points deleted.
[0173] In the next step, the robot fits the multiple obstacle avoidance points to form an obstacle avoidance path. In this embodiment, the robot compensates the multiple generated obstacle points to multiple obstacle avoidance points in the wall path by performing line fitting, thereby forming the obstacle avoidance path. For example, please refer to Figure 19, which shows a schematic diagram of forming an obstacle avoidance path in one embodiment of the present application. As shown in the figure, the robot can fit the obstacle avoidance path by connecting each obstacle avoidance point based on their proximity to each other, thereby forming an obstacle avoidance path. Of course, other fitting methods can also be used, such as using the least squares method to fit the obstacle avoidance path based on multiple obstacle avoidance points.
[0174] To avoid problems such as jerky turns or excessively large turns caused by sudden changes in steering angles when the robot follows the obstacle avoidance path, in one embodiment, the step of fitting the multiple obstacle avoidance points to form the obstacle avoidance path further includes smoothing the line connecting the multiple obstacle avoidance points to form the obstacle avoidance path. Please refer to Figure 20, which shows a schematic diagram of the smoothed obstacle avoidance path in Figure 19. Here, the robot first connects the multiple obstacle avoidance points (as shown in Figure 19), and then smoothes the line to form a smooth curve as shown in Figure 20, which is the obstacle avoidance path.
[0175] Since the poses of the newly generated obstacle avoidance points after fitting the multiple obstacle avoidance points to form an obstacle avoidance path are slightly offset by expansion, it is necessary to further determine whether the edge of the obstacle intersects the smoothed obstacle avoidance path. Therefore, in one embodiment, after completing step S132, the robot returns to step S131 to detect whether the edge of the obstacle intersects the trajectory. If so, the robot further inflates the obstacle using the additional expansion distance to obtain an inflated outline of the obstacle, and then proceeds to step S132. In other words, smoothing the line connecting the multiple obstacle avoidance points to form the obstacle avoidance path occurs after each iteration of expanding the modified path. Simply put, each iteration of expanding the modified obstacle avoidance path requires smoothing. If the smoothed path still encounters collisions, the inflated outline of the obstacle is further inflated and smoothed until it is determined that the edge of the obstacle does not intersect the trajectory, thereby forming the final obstacle avoidance path. In this embodiment, after the robot generates the obstacle avoidance path, it updates the wall path based on the generated obstacle avoidance path.
[0176] In the above-mentioned step S13, the step of recording the position of obstacles in the obstacle avoidance path is also included, so that the robot can obtain environmental information of the path along the wall, providing more input information for subsequent determination of whether the robot is in a difficult state and planning an escape path. The environmental information includes scene information and / or obstacle information, wherein the scene information includes, for example, channel attributes such as the length, width, and curvature of the channel, such as supermarket shelves, warehouse shelves, office indoor passages, or parking lot passages in the scene in which the robot is located; the obstacle information includes, for example, information such as the type and / or location of the obstacle. Furthermore, in step S130, the robot will also detect the environmental information of the path along the wall during its movement.
[0177] In some scenarios, there may be multiple types of obstacles in the physical space. For different types of obstacles, it is not expected that the robot will move along the obstacles in the same way. For example, the obstacle types may include dynamic obstacles, such as pedestrians, pets, walking equipment, etc. In this case, the dynamic changes of the obstacles make it impossible for the robot to plan a suitable obstacle avoidance path or the planned obstacle avoidance path cannot adapt to the position changes of the obstacles in time, further causing the robot to collide with the dynamic obstacles. Especially when the dynamic obstacles are pedestrians, it will pose a safety threat. The obstacle types may also include static obstacles, such as tables and chairs, stationary vehicles, etc. When facing different types of obstacles, the robot can adopt different obstacle avoidance strategies.
[0178] In view of this, in some embodiments, the method of controlling a robot to move along a wall disclosed in the present application further includes a step of determining the type of obstacle.
[0179] In one embodiment, when the robot determines that an obstacle intersecting the robot's trajectory is a dynamic obstacle, it decelerates and starts a timer. When the robot reaches a preset distance from the obstacle and the timer exceeds a preset threshold, the robot again determines that the edge of the obstacle intersects the robot's trajectory and obtains the expanded outline of the obstacle. In this embodiment, the robot decelerates and starts a timer to provide a buffer in anticipation of the dynamic obstacle changing its position and moving away from the robot's trajectory. In this embodiment, for example, when the robot detects a dynamic obstacle, it will first slow down and start a timing for a preset period of time. When the robot travels to a preset distance from the obstacle and the timing exceeds a preset threshold, the robot will determine whether the dynamic obstacle exists or whether the dynamic obstacle still intersects with the travel trajectory. If it no longer exists or there is no intersection, the robot can continue to walk. If there is an intersection, the robot will perform obstacle avoidance. In the obstacle avoidance work of this embodiment, the robot first obtains the expanded contour of the obstacle. After obtaining the expanded contour of the obstacle, the robot can continue to execute the aforementioned step S132 so that the robot can walk around the dynamic obstacle.
[0180] Here, when the robot again determines that the edge of the obstacle intersects the trajectory, it may inflate the obstacle based on an expansion distance to form an expanded outline of the obstacle. In this embodiment, the expansion distance is determined based on the properties of the dynamic obstacle. For example, if the dynamic obstacle is determined to be a person, the expansion distance may be set larger to maximize human safety. In this embodiment, when the dynamic obstacle is determined to be a pedestrian, animal, or other mobile device, the expansion distance determined based on the dynamic obstacle's properties is greater than the initial expansion distance of the obstacle determined based on the properties of the robot's obstacle sensor.
[0181] In view of this, the step of obtaining the expanded outline of the obstacle upon re-determining that the edge of the obstacle intersects the trajectory includes inflating the obstacle according to an expansion distance determined by the properties of the dynamic obstacle to obtain the expanded outline of the obstacle. In some examples, a table corresponding to dynamic obstacle properties and expansion distances may be pre-stored in the robot's storage device, and the robot may determine the expansion distance by querying this table. In other examples, the robot may also determine the expansion distance based on the properties of the dynamic obstacle through machine learning.
[0182] In another embodiment, when the robot determines that its path along the wall intersects the edge of an obstacle, it obtains the obstacle's expanded contour and generates an obstacle avoidance path that circumvents the obstacle, thereby leaving the wall path and moving to the edge path. While moving on the edge path, the robot continues to identify wall features in the surrounding environment to plan a wall path. Once the robot has planned a wall path, the robot continues to control the robot from the edge path to the wall path, causing the robot to enter wall-following mode and drive the robot to follow the wall path along the wall according to a preset motion model. In this embodiment, the two ends of the obstacle avoidance path are respectively connected to the wall path and the edge path. When planning the obstacle avoidance path, the method of obtaining the obstacle's expanded contour, generating multiple obstacle avoidance points based on the obstacle's expanded contour, and fitting the multiple obstacle avoidance points into the obstacle avoidance path is the same or similar to that described above and will not be repeated here.
[0183] Please refer to Figures 21 and 22, which respectively illustrate schematic diagrams of a robot's trajectory intersecting with an obstacle and an obstacle avoidance path generated based on the obstacle's expanded contour, in another embodiment of the present application. As shown in the figures, the robot plans a wall-following path F4 based on the identified wall F3. Based on each pathpoint along the wall path F4, the robot generates a trajectory G. The robot determines through real-time detection that its trajectory G intersects with the edge of obstacle A. The robot obtains an expanded contour F1 of obstacle A based on obstacle A's initial contour F0 and initial expansion distance d0. Based on the expanded contour F1, the robot generates multiple obstacle avoidance points (solid circles in Figure 22), and fits these multiple obstacle avoidance points into an obstacle avoidance path. The trajectory generated based on this obstacle avoidance path does not intersect with obstacle A. The robot then travels from pathpoint i+11 along the wall path F4 to pathpoint j on the obstacle avoidance path, and then along the obstacle avoidance path to pathpoint k+26 along the edge path, without colliding with any obstacles.
[0184] In some scenarios, robots need to move along a planned path, either straight, turning, or in an arc, depending on pre-set operating modes or real-time road conditions. For example, commercial cleaning robots used in supermarkets or garages need to move along walls to perform cleaning tasks. The narrow passages formed by walls and other obstacles allow the robot to move forward, but the space is too small to turn around and return, making it prone to getting stuck when moving along walls.
[0185] In the following embodiments of the present application, the robot's behavior mode includes an escape mode, that is, when the robot follows the wall-following path according to a preset motion model and detects that the robot is in a distressed state, the robot is controlled to escape. Please refer to Figure 23, which shows a flowchart of step S13 of the method for controlling the robot to travel along a wall in another embodiment of the present application. As shown in the figure, the method for controlling the robot to travel along a wall further includes steps S133 and S134. By executing steps S133 and S134, the robot can escape from a distressed state.
[0186] In step S133 , when the robot detects that it is in a difficult situation, it obtains a plurality of historical path points that have been traveled in the path along the wall to plan an escape path.
[0187] In one embodiment, the step of the robot detecting that the robot is in a distressed state based on the environmental information includes: determining that the robot is in a distressed state when the robot determines that its main body is unable to achieve a 45°-180° turn based on information about obstacles detected in its route. In this embodiment, the robot determines that it is in a narrow passage when the distance of surrounding obstacles in its environment, detected by a sensing device mounted on its main body, is too great for it to achieve a 45°-180° turn. The robot is determined to be in a distressed state when it is unable to achieve a turn through a single U-turn or multiple turns.
[0188] In another embodiment, the step of the robot detecting that the robot is in a distressed state based on the environmental information includes: the robot determining that the robot is in a distressed state based on detecting that the distance between left and right obstacles in the robot's path is less than the front and rear lengths of the robot. In this embodiment, the robot determines that the robot is in a distressed state when, through a sensing device mounted on its body, the robot detects that the distance between left and right obstacles in its path is less than the front and rear lengths of the robot, the robot determines that the robot is unable to turn once or a predetermined number of times and turns the robot body.
[0189] Please refer to FIG24, which is a schematic diagram of the movement of the robot in one embodiment of the present application before entering a difficult state. As shown in the figure, the robot 1 moves in the direction indicated by the arrow according to the wall path and the preset motion model, and simultaneously detects environmental information in the wall path. Please refer to FIG25, which is a schematic diagram of the robot in one embodiment of the present application entering a difficult state and planning an escape path. As shown in the figure, when the robot 1 enters the area between obstacles A1 and A2 (such as walls or shelves), the sensing device detects that the distance of the surrounding obstacles in the environment is not enough for the robot 1 to complete an angular turn between 45° and 180°, or when the sensing device detects that the distance between obstacles A1 and A2 is less than the front and rear lengths of the robot 1, and the robot 1 is deemed unable to complete a single turn or a preset number of turns and the robot body is turned, the robot 1 is determined to be in a difficult state. At this time, the robot needs to activate the escape mode, that is, obtain multiple historical path points that have been traveled in the wall path to plan an escape path.
[0190] In the present application, the historical path point refers to the path point that the robot has passed in the above-mentioned step S13. More specifically, the path point is the path point that the starting point of the front side of the passive universal wheel in the robot's motion model has passed, as shown in Figure 25. When the robot 1 detects that it is in a distress state based on the execution of the above-mentioned step S133, it needs to start the escape mode. At this time, the robot needs to obtain multiple historical path points that have been traveled in the path along the wall to plan an escape path. The path point passed by the end point P on the front side of the passive universal wheel in the robot's motion model shown in Figure 25 is shown by the dotted line (that is, the historical path point in this application), and the path point that the end point P on the front side of the passive universal wheel in the robot's motion model has not yet traveled is shown by the solid line.
[0191] In an embodiment, the step of the robot acquiring multiple historical path points traveled in the path along the wall to plan the escape path includes: reversing the heading angle of each of the historical path points by 180° to plan an escape path L' composed of multiple historical path points. As mentioned above, each path point in the path along the wall F4 includes the coordinate information and heading angle information of the point. After the robot acquires the multiple historical path points traveled in the path along the wall F4, while keeping the coordinate information of each of the historical path points unchanged, the robot reverses the heading angle of each of the historical path points by 180° to form the escape path L' with multiple historical path points. In the escape path L', the historical path point closest to the end point P on the front side of the passive universal wheel in the motion model of the robot is the first historical path point, and the escape path L' extends backward in sequence from near to far. In other words, the escape path L' can be regarded as a set of n historical path points extending backward in sequence from near to far, or a path formed by fitting n path points.
[0192] Please refer to Figure 26, which is an enlarged schematic diagram of A' in Figure 25; as shown in the figure, the robot in this application includes multiple path points (i, i-1, i-2, i-3, i-4, ... in) from the planned escape path L', and each path point contains its own coordinate information and heading angle information. Taking path point i as an example, the information of the path point i obtained by the robot from the path along the wall includes the coordinate information of the point (x i ,y i ) and heading angle information (θ i ), for the same path point i, the coordinate information of the path point i in the wall path F4 and the historical path point i in the escape path L' are the same, but the heading angles of the two differ by 180°.
[0193] In step S134, the robot controls the robot to retreat along the escape path, and at the same time controls the starting point of the motion model to sequentially approach each of the historical path points in the escape path until it is detected that the robot has escaped from the predicament state.
[0194] In one embodiment, the robot calculates the backward control information of the robot based on the backward information of multiple historical path points in the escape path; then, the robot controls the left and right driving wheels of the robot based on the backward control information so that the starting point of the motion model approaches each of the historical path points in the escape path in sequence.
[0195] In this embodiment, the step of the robot controlling the left and right driving wheels of the robot based on the backward control information includes calculating the control amount of the left and right driving wheels on the rear side of the robot body based on the motion model and the backward control information of the virtual point on the front side of the passive universal wheel to control the left and right driving wheels of the robot.
[0196] Please refer to FIG. 27 , which is a flow chart showing step S134 in one embodiment of the present application. As shown in the figure, in this embodiment, step S134 further includes steps S1340 - S1344 .
[0197] In step S1340, the robot selects multiple historical path points from the escape path in a preset calculation cycle to obtain the expected retreat information of the robot at each historical path point; in an embodiment, the expected retreat information refers to the ideal state of the robot when it is expected to retreat to each historical path point in the path along the wall, including information such as the robot's posture, speed, and steering angle.
[0198] In the present application, the calculation of the backward control information of the first historical path point among the multiple historical path points needs to be completed within one calculation cycle. That is, the robot selects multiple historical path points from the planned escape path to obtain the expected travel information of each historical path point along its way, and all calculations of the process until it obtains the backward control information of the left and right driving wheels are limited to a preset time length, and this preset time length is one calculation cycle. In an embodiment, under the premise of a given travel speed and historical path point step length, the preset time length is less than the time it takes for the robot to reach the next historical path point from one historical path point, that is, when the robot travels from the current historical path point to the next historical path point, it needs to complete at least one calculation cycle before reaching the next historical path point. In some embodiments, before the robot reaches the next historical path point from the current historical path point, it needs to complete multiple calculation cycles of calculations to continuously update the calculation results in order to obtain more accurate backward control information.
[0199] To improve the robot's computational efficiency or conserve computing resources, the computational process for obtaining the retreat control information for the first of the multiple historical pathpoints within a predetermined computation cycle is performed under a constraint. In this application, the constraint includes the permitted speed range, heading angle range, and turning range for the robot as it passes through the historical pathpoint (i.e., when the endpoint P of the motion model approaches the historical pathpoint).
[0200] In an embodiment, the setting of the speed range allowed when the robot passes through the historical path point depends on the constraint range of the minimum speed and the maximum speed given by the robot control system. For example, the robot control system limits the robot's backward speed to no more than 4m / s; that is, the robot control system limits the robot's backward speed range to [0m / s, 4m / s]; the turning range allowed when the robot passes through the historical path point is [-90°, 90°]; that is, the robot is required to have a maximum turning range of no more than 180° when moving; the heading angle range allowed when the robot passes through the historical path point is [-180°, 180°], that is, the heading angle allowed when the robot passes through the historical path point shall not exceed 360°.
[0201] In an embodiment, the expected backward information of the robot when it is about to pass each historical path point includes expected posture information and expected control information; wherein, the expected posture information includes the coordinates and heading angle of the robot passing the historical path point, and the expected control information includes the expected speed and expected steering angle of the robot passing the historical path point. For example, the expected posture information of the robot when passing a certain historical path point is the coordinates (x ref ,y ref ) and the heading angle (θ ref ); the desired control information when the robot passes the historical path point is the speed at which the robot reaches the historical path point (v ref ) and the steering angle (δ ref ).
[0202] Please refer to FIG28, which shows a schematic diagram of obtaining the desired backward information of each waypoint in one embodiment of the method for controlling the robot to move along the wall of the present application. As shown in the figure, since each historical path point in the escape path has the coordinate information and heading angle information of the point, such as the coordinate information and heading angle information of the five historical path points (i, i-1, i-2, i-3, i-4) shown in FIG26, the robot can regard the coordinate information and heading angle information of the above-mentioned historical path points as the desired posture information. Still taking the historical path point i as an example, the information of the historical path point i obtained by the robot from the escape path includes the coordinate information of the point (xi ,y i ) and heading angle information (θ i ), then the expected posture information of the robot when it passes the historical path point i is regarded as (x i =x refi ,y i =y refi ,θ i =θ refi ), in other words, in this embodiment, the robot system can obtain the expected posture information of each historical path point of the robot's path by selecting multiple path points from the escape path.
[0203] The robot system also needs to obtain the expected speed and expected turning angle of the robot at each historical path point. In one embodiment, the robot system can obtain the expected speed (v) of the robot backward from the escape path pre-stored in its storage device. ref ).
[0204] In another embodiment, the robot can obtain the desired speed (v) of the robot's retreat from the escape path generated in real time. ref ); Still taking the historical path point i as an example, the robot system also needs to obtain the expected speed of the robot passing the historical path point i, which is expressed as v refi .
[0205] In the robot's backward control, when the control device does not issue a steering command to the robot's drive wheels, the robot expects the robot's heading angle to remain unchanged. Therefore, in this embodiment, the expected steering angle of the robot passing each historical path point is pre-set to 0°. Taking historical path point i as an example, the control device also needs to obtain the expected speed of the robot passing this historical path point i, which is expressed as δ refi , where the desired speed is expressed as δ refi =0°.
[0206] In step S1340, the robot selects multiple historical path points from the escape path, including determining the step length of the historical path points from the escape path based on a preset number of historical path points and the total or partial path curvature of the escape path, or the preset speed of the robot, or the real-time speed of the robot. In an embodiment, the strategy for determining the step length between multiple historical path points can refer to the implementation method for determining the step length in the above embodiment, and is not further described here.
[0207] In step S1341, the robot predicts the backward prediction information of each historical path point of the robot based on a preset prediction period, the robot's motion model, the current posture, and the backward expected information of each historical path point; wherein, the robot has left and right driving wheels located on the rear side of its body and at least one passive universal wheel located on the front side of its body; the robot's motion model is a motion model with the midpoint of the axis of the left and right driving wheels as the starting point and the virtual point on the front side of the passive universal wheel as the end point.
[0208] As shown in the above-mentioned Figure 1, the present application takes the example of a cleaning robot 1 in which a passive universal wheel 12 is arranged at the bottom of the robot body 10 and located in the middle position of the front side of the robot body 1, and is used to support the weight of the front of the robot body 10 and cooperate with the differential of the left and right drive wheels 11 located at the rear side to enable the robot body 10 to perform steering. In the present application, the passive universal wheel 12 and the midpoint of the axis of the left and right drive wheels 11 of the robot are collinear.
[0209] When the control device performs the above-mentioned prediction calculation, it needs to complete the prediction calculation within a preset prediction period, which is a time. In this embodiment, the control device obtains its own motion model, the current position (position and heading angle) of the robot, and the expected retreat information of each of the multiple historical path points selected in step S1340, and performs the prediction calculation to predict the retreat prediction information of the robot passing each historical path point. In this embodiment, still taking the backward prediction information of the robot when it is about to pass the historical path point i as an example, the control device obtains its own motion model, the current position (x i+1 ,y i+1 ), current heading angle (θ i+1 ), and the backward expectation information (x ref ,y ref ,θ ref , v ref , δ ref ), predictive calculation is performed to obtain the backward prediction information (x i ,y i ,θ i , v i , δ i ).
[0210] The said retreat prediction information refers to the possible future state of the robot when retreating to each historical path point in the escape path obtained by predictive calculation, including information such as the position and posture, speed and steering angle of the robot when retreating to each historical path point in the escape path in the future. Corresponding to the above-mentioned retreat expectation information, in an embodiment, the retreat prediction information of each historical path point of the robot's future path includes predicted posture information and predicted control information; wherein, the predicted posture information includes the predicted coordinates and predicted heading angle of the robot's path to the historical path point obtained by predictive calculation, and the predicted control information includes the predicted speed and predicted steering angle of the robot's path to the historical path point obtained by predictive calculation. For example, the predicted posture information of the robot when passing the historical path point i obtained by predictive calculation is the predicted coordinates (x i ,y i ) and the predicted heading angle (θ i ); The predicted control information of the robot when it reaches the historical path point i is the predicted speed (v i ) and the predicted steering angle (δ i ).
[0211] In step S1342, the robot calculates the expected retreat information and the predicted retreat information to obtain the retreat control information of the first historical path point among the multiple historical path points.
[0212] In an embodiment, the step of the robot calculating the retreat control information of the multiple historical path points includes: square and summing the differences between the retreat expectation information and the retreat prediction information, and determining the retreat control information when the minimum value is obtained. In the calculation cycle, the robot calculates the five historical path points simultaneously based on the multiple historical path points selected in step S1340, such as the five path points (i, i-1, i-2, i-3, i-4) shown in Figure 26, that is, by solving an objective function (for example, represented by J). Specifically, the backward expectation information and the backward prediction information of each of the five historical path points are simultaneously subtracted and squared (the calculated value of the square of the difference is 0 when it is minimum), and then the sum is calculated. Then, the array when J is minimized in the objective function (that is, argmin J is calculated) is used as the array A (Action) of the backward control information. The array A is the backward control information of each of the five historical path points (i, i+1, i+2, i+3, i+4), and the first group in the array A (the control information of the first historical path point i is output) is used as the backward control information (v) of the first historical path point (that is, historical path point i) ic ,δ ic ).
[0213] In this embodiment, the backward control information includes speed and steering angle. In the above embodiment with historical path point i as the first historical path point, the backward control information of the historical path point i from the first group in the array A can be expressed as (v ic ,δ ic ).
[0214] In an embodiment, the step of selecting the backward control information of the first historical path point from the backward control information to control the left and right driving wheels of the robot includes: the backward control information of the first historical path point among the multiple historical path points is the backward control information of the virtual point on the front side of the passive universal wheel, so that the end point P of the motion model sequentially approaches the first historical path point in the escape path. In the above embodiment with the first historical path point as i, the backward control information (v ic ,δ ic ) is mapped to the retreat control information of the virtual point on the front side of the passive universal wheel in the robot's motion model, which is used as the input condition for calculating the control amount of the left and right driving wheels on the rear side of the robot body, and then controlling the position and posture of the end point P in the motion model.
[0215] In step S1343, the robot controls the left and right driving wheels of the robot according to the backward control information; in an embodiment, the control amount of the left and right driving wheels on the rear side of the robot body is calculated based on the motion model and the backward control information of the first historical path point so that the end point P of the motion model sequentially approaches the first historical path point in the escape path. In this embodiment, the backward control information (v ic ,δ ic ), combined with the robot's motion model, the calculation is performed to obtain the final rotation speed of the left and right driving wheels on the rear side of the robot body (v l ,v r ), thereby realizing the control of the retreat speed and steering angle of the robot when retreating toward the first historical path point.
[0216] In the above embodiment with the first historical path point as i, the following conditions are considered when actually performing the calculation: the wheelbase l between the left drive wheel and the right drive wheel, the rotation angular velocity w of the robot body, the turning radius R of the robot's motion model, the starting point (x0, y0) and the end point P (x p ,y p) and other conditions, the above conditions are combined with the motion model to perform calculations, and then the speed control value (v il ), the speed control value (v ir ), and the differential speed (v il -v ir ) realizes the steering angle control amount (δ ir ), so that the end point P in the motion model of the robot can be indirectly controlled to accurately approach each historical path point when the robot moves on the escape path, thereby realizing the reverse following retreat of the robot.
[0217] In one embodiment, the step of calculating the backward control information of the multiple historical path points includes: when it is determined that the calculation performed in the calculation cycle has reached a preset number of iterations or a preset calculation time, but the optimal backward control information has not been obtained, the currently optimized backward control information is output to ensure smooth operation of the control device. For example, in the embodiment of executing the above-mentioned step S1342, the control device may calculate the retreat control information of the multiple historical path points multiple times within one calculation cycle, and temporarily store a set of retreat control information of the first historical path point each time it calculates it, until a set of retreat control information arrays that minimize the objective function J is determined, and the control information of the first historical path point (i.e., historical path point i) is output; in actual implementation, if the control device determines that the calculation performed in the calculation cycle has reached a preset number of iterations (e.g., 30 or 50 iterations), or has reached a preset calculation time (e.g., exceeding a time period of 0.2s or 0.5s), but still has not minimized the objective function (e.g., represented by J), to ensure that the left and right drive wheels of the robot can obtain the speed control amount and the steering angle control amount in a timely manner, the control device will select the latest calculation result value from the array A of the retreat control information of the multiple historical path points that has been currently obtained (i.e., the aforementioned temporarily stored) as the retreat control information of the first historical path point (i.e., path point i) among the multiple historical path points.
[0218] In one embodiment, when the control device calculates the backward control information for the next calculation cycle, the backward control information calculated in the current cycle is used as the initial value for calculating the backward control information for the next calculation cycle, thereby accelerating the calculation speed of the next calculation cycle. In this embodiment, when the robot calculates the backward control information for a historical pathpoint in the next calculation cycle, the backward control information of the historical pathpoint is used as the initial value for calculating the backward control information for the historical pathpoint in the calculation of the next calculation cycle. This not only saves computing resources but also improves the accuracy of the calculation results.
[0219] In another embodiment, in order to more accurately control the robot to retreat, in the calculation of the retreat control information of the first historical path point among the multiple historical path points, the conditions involved in the calculation also include the predicted acceleration information of the robot. In the above embodiment with the first historical path point as i, the predicted acceleration information is obtained by the predicted speed difference between two adjacent historical path points, such as historical path point i and the adjacent path point i-1 of the historical path point i, that is, the method of calculating the predicted acceleration information is (v i-1 -v i ) to obtain the predicted acceleration information. During the robot's backward control, if the control device does not issue an acceleration command to the robot's drive wheels, the robot expects the robot's speed to remain unchanged. Therefore, in this embodiment, the expected acceleration of the robot passing each historical path point is preset to 0.
[0220] In yet another embodiment, in order to more accurately control the robot's retreat, in the calculation of the acquired control information of the first historical path point among the multiple historical path points, the conditions involved in the calculation also include the change amplitude of the robot's predicted steering angle. In the above embodiment with the first historical path point as i, the change amplitude information of the predicted steering angle is obtained by the difference between the predicted steering angles of two adjacent historical path points, such as historical path point i and the adjacent path point i-1 of the historical path point i, that is, the method of calculating the change amplitude of the predicted steering angle is (δ i-1 -δ i ) to obtain information on the predicted steering angle change. During the robot's backward control, if the control system does not issue a steering command to the robot's drive wheels, the robot expects the steering angle to remain unchanged. Therefore, in this embodiment, the expected steering angle change as the robot passes each historical path point is preset to 0°.
[0221] In an embodiment, in the method for controlling a robot to move along a wall, the step of the control device calculating the backward control information of the plurality of historical path points further includes the step of respectively intervening in the weight of the position, heading angle, speed, and steering angle of the historical path points. In a specific embodiment, the calculation weight of a certain control quantity can also be adjusted according to the calculation requirements of the control device for the control quantity during the calculation process. For example, in the backward control of the robot, the control device needs to adjust the position (i.e., coordinate x) of each historical path point it follows. i ,y i ) requires a more accurate calculation, then in this embodiment, the calculation weight of the position of the historical path point is adjusted to obtain a more accurate calculation value.
[0222] It should be understood that in some embodiments, the control device adjusts the heading angle (θ i ), speed (v i ), and the weight of the steering angle (δ i ) and individually weight one or more parameters. In other embodiments, the control device adjusts the weight of the predicted acceleration information and / or the predicted steering angle change amplitude of each historical path point to be followed as needed.
[0223] In step S1344, the above steps are repeated to perform the calculation of the retreat control information of the next calculation cycle, so that the virtual point of the motion model approaches each of the historical path points in the escape path in sequence, until the robot is detected to have escaped from the predicament. In actual implementation, the robot continuously determines multiple historical path points in the retreat direction from the escape path through the above steps S1340-S1343, and completes the calculation of the retreat control information for each historical path point in sequence from near to far, and uses the obtained calculation results as the input for calculating the control amount of the left and right drive wheels on the rear side of the robot body, so that the robot can control the virtual point of its motion model to approach each of the historical path points in sequence, thereby achieving the robot's accurate following of the escape path, until the robot is detected to have escaped from the predicament and then switched to a normal travel mode. As shown in Figure 29, Figure 29 shows a schematic diagram of a robot escaping from a predicament along an escape path in one embodiment of the present application.
[0224] To sum up, the robot and the method for controlling the robot to move along the wall provided by the present application plan a path along the wall by identifying the wall, and control the robot to accurately follow the path along the wall according to a preset motion model, thereby enabling the robot to accurately move along the wall; further, the present application also detects obstacles in its movement trajectory in real time during the process of moving along the wall, which can effectively avoid collisions with obstacles during the process of moving along the wall, and can achieve precise obstacle avoidance, thereby improving the safety of moving along the wall; further, if the robot is detected to be in a predicament while moving along the wall, the robot is also controlled to escape to avoid being in a predicament during the movement along the wall, thereby improving the reliability and safety of moving along the wall.
[0225] The present application also discloses a robot system, comprising a storage device and a processing device. In an embodiment, the robot system is, for example, a control system for a cleaning robot (e.g., a commercial cleaning robot). In an embodiment, the control system of the cleaning robot may include more or fewer components than shown in the figure, or may combine certain components, or split certain components, or arrange the components differently. The components shown in the figure may be implemented by hardware or software, or a combination of software and hardware.
[0226] The storage device is used to store at least one robot movement control program. In an embodiment, the storage device is used to store at least one program, which is executable by the processing device to coordinate with the storage device and other devices to implement the method for controlling the robot to move along a wall as described in any of the above embodiments. The storage device is the same or similar to that described above and will not be described in detail here.
[0227] The processing device is connected to the storage device and is used to implement the method for controlling the robot to move along a wall as described in any of the above embodiments when executing the at least one robot movement control program. Here, the processing device is the same or similar to the above-mentioned one and will not be described in detail here.
[0228] The present application also provides a computer storage medium, a computer-readable storage medium, storing at least one robot movement control program, wherein the robot movement control program, when executed by a processing device of the robot, implements the method for controlling the robot to move along a wall as described in any of the above embodiments.
[0229] If the functions are implemented in the form of software functional units and sold or used as independent products, they can be stored in a computer-readable storage medium. Based on this understanding, the technical solution of the present application, or the part that contributes to the prior art, or part of the technical solution, can be embodied in the form of a software product. The computer software product is stored in a storage medium and includes a number of instructions for enabling a mobile robot equipped with the storage medium to execute all or part of the steps of the method described in each embodiment of the present application.
[0230] In the embodiments provided herein, the computer storage medium may include a read-only memory, a random access memory, an EEPROM, a CD-ROM or other optical disk storage device, a magnetic disk storage device or other magnetic storage device, a flash memory, a USB flash drive, a mobile hard disk, or any other medium that can be used to store desired program code in the form of instructions or data structures and can be accessed by a computer. In addition, any connection can be appropriately referred to as a computer-readable medium. For example, if the instruction is sent from a website, server or other remote source using a coaxial cable, a fiber optic cable, a twisted pair, a digital subscriber line (DSL) or wireless technologies such as infrared, radio and microwaves, the coaxial cable, fiber optic cable, twisted pair, DSL or wireless technologies such as infrared, radio and microwaves are included in the definition of the medium. However, it should be understood that computer storage media and data storage media do not include connections, carriers, signals or other temporary media, but are intended to be non-temporary, tangible storage media. Disk and disc, as used in this application, includes compact disc (CD), laser disc, optical disc, digital versatile disc (DVD), floppy disk and Blu-ray disc where disks usually reproduce data magnetically, while discs reproduce data optically with lasers.
[0231] In one or more exemplary aspects, the functions described in the computer program for controlling a robot to follow a wall described herein can be implemented in hardware, software, firmware, or any combination thereof. When implemented in software, these functions can be stored or transmitted as one or more instructions or codes on a computer-readable medium. The steps of the methods or algorithms disclosed herein can be embodied in a processor-executable software module, which can be located on a tangible, non-transitory computer storage medium. A tangible, non-transitory computer storage medium can be any available medium that can be accessed by a computer.
[0232] The flowcharts and block diagrams in the accompanying drawings described in this application illustrate the possible implementation architecture, functions and operations of the system, method and computer program product according to various embodiments of the present application. Based on this, each box in the flowchart or block diagram can represent a module, program segment, or a part of code, and the module, program segment, or a part of code contains one or more executable instructions for realizing the specified logical function. It should also be noted that in some alternative implementations, the functions marked in the box can also occur in a different order than that marked in the accompanying drawings. For example, two boxes represented in succession can actually be executed substantially in parallel, and they can sometimes be executed in the opposite order, depending on the functions involved. It should also be noted that each box in the block diagram and / or flowchart, and the combination of the boxes in the block diagram and / or flowchart can be implemented by a dedicated hardware-based system that performs the specified function or operation, or can be implemented by a combination of dedicated hardware and computer instructions.
[0233] The present application also provides a computer program product that, when executed on a computer, causes the computer to implement the method for controlling a robot to move along a wall as described in any of the above-described embodiments. Specifically, the technical solution of the present application, or the portion that contributes to the prior art, or the portion of the technical solution, can be embodied in the form of a software product. The computer program product is stored in a storage medium and includes instructions for causing a computer device (which can be a personal computer, server, or network device, etc.) to execute all or part of the steps of the method described in each embodiment of the present application.
[0234] The above embodiments are merely illustrative of the principles and effects of this application and are not intended to limit this application. Anyone skilled in the art may modify or alter the above embodiments without departing from the spirit and scope of this application. Therefore, all equivalent modifications or alterations made by one of ordinary skill in the art without departing from the spirit and technical concepts disclosed in this application shall be covered by the claims of this application.
Claims
1. A method for controlling a robot to move along a wall, characterized in that: The method comprises the following steps: Pre-planning an edge path along the inner side of the edge of the obtained environment map; Controlling the robot to move to the edge path and identifying wall features of the surrounding environment to plan a path along the wall; Controlling the robot to move to the wall-following path so that the robot enters a wall-following mode; The driving robot follows the wall path according to a preset motion model to move along the wall; wherein the robot has left and right driving wheels located on the rear side of its body and at least one passive universal wheel located on the front side of its body; the motion model of the robot is a motion model with the midpoint of the axis of the left and right driving wheels as the starting point and the virtual point on the front side of the passive universal wheel as the end point.
2. The method according to claim 1, characterized in that The environmental map is read by the robot from its storage device; or generated by the robot after real-time inspection of the on-site environment based on its sensing device.
3. The method according to claim 1, characterized in that The step of pre-planning the edge path includes: planning the edge path along the inner side of the edge of the environment map according to the coordinate information of the edge of the environment map and a preset spacing, wherein the spacing is greater than the turning radius of the motion model of the robot.
4. The method according to claim 1, characterized in that: The step of controlling the robot to move to the edge path includes: controlling the robot to move to the path point in the edge path that is closest to the robot based on the current position information of the robot; or controlling the robot to move to a path point in the edge path based on a preset working mode.
5. The method according to claim 1, characterized in that The step of identifying the wall features of the surrounding environment of the edge path to plan a path along the wall includes: the robot performs feature recognition and feature fitting on objects in the surrounding environment based on its sensing device, and then plans the path along the wall based on the length and extension angle of the wall.
6. The method according to claim 1, characterized in that The step of planning the path along the wall includes determining the coordinate information of each path point in the path along the wall according to the travel trajectory of the robot; the travel trajectory is a contour trajectory formed by the robot contour at multiple path points.
7. The method according to claim 6, characterized in that The minimum distance between the travel track and the wall is not less than 5 cm.
8. The method according to claim 1, characterized in that The planned length of the path along the wall is related to one or more information of a traveling speed of the robot, a property of a sensing device, or a curvature of the path along the wall.
9. The method according to claim 1, characterized in that: The step of controlling the robot to move to the wall-following path so that the robot enters the wall-following mode includes: adjusting the posture of the robot so that the robot enters the wall-following path at a preset entry angle, and the entry angle is less than 60°.
10. The method according to claim 9, characterized in that The step of controlling the robot to move to the wall-following path so that the robot enters the wall-following mode includes: adjusting the posture of the robot so that a virtual point in the robot motion model coincides with a path point in the wall-following path.
11. The method according to claim 1, characterized in that The step of driving the robot to follow the wall path and move along the wall according to a preset motion model includes: obtaining travel control information of each path point among multiple path points by calculating the travel expectation information and travel prediction information of each path point passed by the robot, and controlling the left and right driving wheels of the robot to pass each of the path points in turn according to the travel control information to follow the wall path and move along the wall.
12. The method according to claim 11, characterized in that The expected movement information of the robot passing each path point includes expected posture information and expected control information; wherein, the expected posture information includes the coordinates and heading angle of the robot passing the path point, and the expected control information includes the expected speed and expected steering angle of the robot passing the path point.
13. The method according to claim 11, characterized in that The travel prediction information of each path point of the robot is obtained by predicting and calculating based on a preset prediction period, the robot's motion model, the current posture, and the travel expectation information of each path point.
14. The method according to claim 11, characterized in that The step of calculating the travel control information includes: square and sum the difference between the travel expectation information and the travel prediction information, and when a minimum value is obtained, determine the minimum value as the travel control information.
15. The method according to claim 11, characterized in that The step of controlling the left and right driving wheels of the robot according to the travel control information includes: mapping the travel control information of the first path point among multiple path points that are not currently passed into the travel control information of the virtual point on the front side of the passive universal wheel in each calculation cycle.
16. The method according to claim 15, characterized in that The control amount of the left and right driving wheels at the rear side of the robot body is obtained by calculation based on the motion model and the travel control information of the virtual point at the front side of the passive universal wheel so as to follow the wall path and travel along the wall.
17. The method according to claim 1, characterized in that The step of following the wall path and moving along the wall according to a preset motion model also includes the robot detecting obstacles in its moving trajectory when moving along the wall; the moving trajectory is a contour trajectory formed by a plurality of path points of the robot contour in the wall path.
18. The method according to claim 17, characterized in that The step of following the wall path and moving along the wall according to a preset motion model also includes obtaining an expanded contour of the obstacle when detecting that an edge of an obstacle intersects with the moving trajectory; and generating multiple obstacle avoidance points based on the expanded contour of the obstacle and fitting the multiple obstacle avoidance points into an obstacle avoidance path so that the robot moves along the obstacle avoidance path.
19. The method according to claim 17, characterized in that The method also includes the steps of selecting a plurality of path points from the acquired path along the wall by the robot, and mapping the robot contour to each of the plurality of path points to form a travel trajectory of the robot; the robot contour is obtained based on the physical characteristics of the robot.
20. The method according to claim 19, characterized in that Mapping the robot outline to each of a plurality of waypoints to form a moving trajectory of the robot includes mapping the robot outline to each of a plurality of waypoints based on a rotation model of the robot.
21. The method according to claim 17, characterized in that The method also includes a step of determining the type of obstacle. When it is determined that the obstacle intersecting with the travel trajectory is a dynamic obstacle, the robot slows down and starts timing. When the robot travels to a preset distance from the obstacle and the timing exceeds a preset threshold, and it is determined again that the edge of the obstacle intersects with the travel trajectory, an expanded outline of the obstacle is obtained.
22. The method according to claim 1, characterized in that The step of following the wall path and moving along the wall according to a preset motion model also includes: detecting that the robot is in a difficult state, and controlling the robot to escape from the difficult state.
23. The method according to claim 22, characterized in that The step of controlling the robot to escape from trouble includes: detecting environmental information in the path along the wall, and when detecting that the robot is in a difficult state, obtaining multiple historical path points that have been traveled in the path along the wall to plan an escape path; and controlling the robot to retreat along the escape path, while controlling the starting point of the motion model to sequentially approach each of the historical path points in the escape path until it is detected that the robot has escaped from the difficult state.
24. The method according to claim 23, characterized in that The step of detecting that the robot is in a predicament state based on the environmental information includes: the robot determines that the robot is in a predicament state when it determines that its body cannot achieve an angle turn of 45°-180° based on the obstacle information detected in its route.
25. The method according to claim 23, characterized in that The step of detecting that the robot is in a predicament state based on the environmental information includes: the robot determines that the robot is in a predicament state when detecting that the distance between the left and right obstacles in its route is smaller than the front and rear lengths of the robot.
26. The method according to claim 23, characterized in that The step of acquiring a plurality of historical path points traveled in the path along the wall to plan the escape path includes: reversing the heading angle of each of the historical path points by 180° to plan an escape path consisting of a plurality of historical path points.
27. The method according to claim 23, characterized in that The historical path points that have been traveled in the path along the wall are the path points that the passive universal wheels on the front side of the robot body have traveled through.
28. The method according to claim 23, characterized in that The step of controlling the starting point of the motion model to sequentially approach each of the historical path points in the escape path comprises: Calculating the retreat control information of the robot based on the retreat information of a plurality of historical path points in the escape path; Based on the backward control information, the left and right driving wheels of the robot are controlled so that the starting point of the motion model approaches each of the historical path points in the escape path in sequence.
29. The method according to claim 28, characterized in that The step of controlling the left and right driving wheels of the robot based on the backward control information includes calculating the control amount of the left and right driving wheels on the rear side of the robot body according to the motion model and the backward control information of the virtual point on the front side of the passive universal wheel to control the left and right driving wheels of the robot.
30. The method according to claim 1, characterized in that The robots include commercial cleaning robots.
31. A robot, characterized in that: include: Robot body; Left and right driving wheels located at the rear side of the robot body; At least one passive universal wheel located at the front side of the robot body; A control device is used to control the rotation speed of the left and right driving wheels to achieve the movement control of the robot following the planned path along the wall, and the control device is configured as follows: Pre-planning an edge path along the inner side of the edge of the obtained environment map; Controlling the robot to move to the path along the edge to identify wall features of the surrounding environment to plan a path along the wall; Controlling the robot to move to the wall-following path so that the robot enters a wall-following mode; The driving robot follows the wall path according to a preset motion model to move along the wall; wherein the robot has left and right driving wheels located on the rear side of its body and at least one passive universal wheel located on the front side of its body; the motion model of the robot is a motion model with the midpoint of the axis of the left and right driving wheels as the starting point and the virtual point on the front side of the passive universal wheel as the end point.
32. The robot according to claim 31, characterized in that The robots include commercial cleaning robots.
33. A robot control system, characterized in that: include: A storage device for storing at least one robot travel control program; A processing device is connected to the storage device and is used to implement the method for controlling a robot to move along a wall as described in any one of claims 1 to 30 when executing the at least one robot movement control program.
34. A computer-readable storage medium, characterized in that: At least one robot movement control program is stored, and when the robot movement control program is executed by the processing device of the robot, the method for controlling the robot to move along the wall as described in any one of claims 1-30 is implemented.
35. A computer program product, characterized in that When the computer program product runs on a computer, the computer is enabled to execute the method for controlling a robot to move along a wall as claimed in any one of claims 1 to 30.
Citation Information
Patent Citations
Edge walking method of robot and system thereof
CN106444768A
Automatic navigation method under large environment, robot and storage medium
CN109839936A
Robot autonomous path planning method
CN111338352A
Method and device for planning path along wall and computer readable storage medium
CN113878570A
Method and device for walking along wall, sweeping robot and storage medium
CN114569011A
Cited By
Robot escape method and device, electronic equipment and storage medium
CN120428720A
Intelligent control method and system for secondary water supply water tank cleaning robot
CN120993958A