Robot, robot advancing method, robot system and computer storage medium
Patent Information
- Application Number
- CN202380031037.8
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2023-07-29
- Publication Date
- 2025-04-01
- Estimated Expiration
- 2043-07-29
AI Technical Summary
Cleaning robots are prone to dumping when passing through speed bumps, resulting in unstable travel and reduced safety.
By judging the intersection of the planning path and the speed bump, the planned path passing through the speed bump is corrected according to the robot's motion model, and the robot is controlled to travel through the speed bump in a vertical direction along the modified planned path.
It effectively avoids the risk of dumping of the robot when traveling on the speed bump, and improves safety and work efficiency during the travel process.
Smart Images

Figure CN119744375A_ABST
Abstract
Description
Robot, robot moving method, robot system and computer storage medium Technical Field
[0001] The present application relates to the field of robotics technology, and in particular to a robot and a robot movement method, a robot system, a computer 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 a machine device that performs work automatically, a robot usually needs to control its movement according to a pre-planned path when performing tasks. Taking a cleaning robot as an example, in some scenarios, the cleaning robot needs to move along the planned path in a straight line, turn, or arc according to a pre-set cleaning mode or based on real-time road conditions. However, in some application scenarios, such as parking garages, the cleaning robot often needs to pass through speed bumps in the garage when moving according to the pre-planned path. Since the cleaning robot is tall and heavy, it is easy for the cleaning robot to tip over when passing through speed bumps.
[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 robot and a robot movement method, a robot system, a computer storage medium, and a computer program product to solve the technical problem that the cleaning robot is prone to tipping over when passing through speed bumps.
[0006] To achieve the above-mentioned purpose and other related purposes, the first aspect of the present application provides a robot moving method, comprising the following steps: when the robot moves according to a planned path and a preset motion model, the robot obtains road condition information in the planned path; 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; when it is determined that the planned path intersects with a speed bump, the planned path passing through the speed bump is corrected according to the robot's motion model; and the robot is controlled to move along the corrected planned path through the speed bump in a direction perpendicular to the speed bump.
[0007] The second aspect of the present application provides a robot, comprising: a robot body; left and right drive wheels located on the rear side of the robot body; at least one passive universal wheel located on the front side of the robot body; a control device for controlling the rotational speed of the left and right drive wheels to realize the movement control of the robot following a planned path, and the control device is configured to: when the robot moves according to the planned path and a preset motion model, obtain road condition information in the planned path; 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; when it is determined that the planned path intersects with a speed bump, the planned path passing through the speed bump is corrected according to the robot's motion model; and the robot is controlled to move along the corrected planned path through the speed bump in a direction perpendicular to the speed bump.
[0008] The third aspect of the present application provides a robot system, comprising: a storage device for storing at least one robot movement control program; a path planning device for collecting data on the robot's surrounding environment to generate a planned path; and a processing device connected to the storage device and the path planning device, for implementing the robot movement method described in the first aspect above 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 robot movement method as described in the first aspect above.
[0010] The fifth aspect of the present application discloses a computer program product. When the computer program product is run on a computer, the computer is caused to execute the robot movement method as described in the first aspect of the present application.
[0011] In summary, the robot, robot travel method, robot system, computer storage medium, and computer program product provided herein, upon determining that a planned path intersects a speed bump, corrects the planned path through the speed bump based on the robot's motion model, and controls the robot to travel perpendicularly along the corrected planned path through the speed bump. This ensures that the robot does not tip over while traversing the speed bump, thereby improving safety and operational efficiency during robot travel. 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 flow chart showing a robot moving method in one embodiment of the present application.
[0015] FIG3 is a schematic diagram showing a planned path of the robot on a portion of a driving road in one embodiment of the present application.
[0016] FIG4 is a schematic diagram showing a planned path acquired by a robot in one embodiment of the robot moving method of the present application.
[0017] FIG5 is an enlarged schematic diagram of point A in FIG4 of the present application.
[0018] FIG6 is a schematic diagram showing the principle of the motion model of the robot in one embodiment of the present application.
[0019] FIG. 7 is a schematic diagram showing an intersection between a planned path and a speed bump in one embodiment of the present application.
[0020] FIG8 a is a schematic diagram showing a planned path and speed bumps in one embodiment of the present application.
[0021] FIG8 b is a schematic diagram showing a travel trajectory and a speed bump generated by the present application based on the planned path in the embodiment of FIG8 a .
[0022] FIG9 is a schematic diagram showing a flow chart of a robot correcting a planned path that passes through an intersection according to its motion model in one embodiment of the present application.
[0023] FIG10 is a schematic diagram showing the present application after deleting multiple path points that intersect with speed bumps in the planned path in the embodiment of FIG7 .
[0024] FIG11 is a schematic diagram showing the planned path in the embodiment shown in FIG10 of the present application after deleting the path points outside the speed bump outline.
[0025] FIG12 a is a schematic diagram showing a planned path passing through a speed bump in one embodiment of the present application.
[0026] FIG12 b is a schematic diagram showing the path points intersecting with the speed bumps in FIG12 a of the present application after being deleted.
[0027] FIG12c is a schematic diagram showing how the present application compensates the compensated path generated based on the end point and starting point in FIG12b to the planned path shown in FIG12b.
[0028] FIG. 12 d is a schematic diagram showing the compensation path in FIG. 12 c after smoothing.
[0029] FIG. 12 e is a schematic diagram showing how the generated compensation path is compensated to that in FIG. 12 a in one embodiment of the present application.
[0030] FIG13 is a flow chart showing a movement control method of a robot according to an embodiment of the present application.
[0031] FIG. 14 is an enlarged schematic diagram showing the determination of multiple path points from FIG. 12 d .
[0032] FIG15 is a schematic diagram showing a method for controlling the movement of a robot according to an embodiment of the present application for obtaining expected movement information of each waypoint.
[0033] FIG16 is a schematic block diagram of a robot system according to an embodiment of the present application. DETAILED DESCRIPTION
[0034] 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.
[0035] 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.
[0036] In the prior art, robots often need to turn or steer in work scenarios according to their planned paths or due to obstacle avoidance needs. In order to obtain better turning control, such as a smaller turning radius or faster turning flexibility, the robot's chassis is often set to a circular shape. Commonly, for example, household sweeping robots or commercial hotel service robots, the robot's two drive wheels are respectively located at the two ends of the diameter of its circular chassis, thereby achieving zero-degree rotation in situ. Even if the chassis of some specific robots is set to a rectangle or an approximate rectangle, the two drive wheels under the chassis are often located on opposite sides of the chassis centerline. This is still a circular chassis thinking. The advantage of doing so is that the robot can obtain better flexibility and turning control.
[0037] For some robots with specific functions, the design of the circular chassis or circular chassis thinking mentioned above will affect the specific performance of the robot. For example, cleaning robots (floor scrubbing robots or mopping robots, etc.) used in parking garage scenarios require a roughly rectangular chassis to facilitate the placement of more or larger cleaning components (such as rotating wiping discs) under the chassis in order to obtain a larger effective working area. In this case, if the driving wheels on both sides are still arranged axially in the middle of the chassis, the arrangement of the cleaning components will be greatly limited or the size or working area of the cleaning components will need to be sacrificed. In existing designs, in order to reserve a larger installation space for the cleaning components located in the middle of the chassis, the wheels of the robot are respectively installed on the rear and front sides of its chassis. For example, two wheels are arranged on opposite sides of the rear side of the chassis, and a steering wheel / steering wheel is arranged in the middle of the front side. The steering wheel provides driving force and is responsible for steering, and the two wheels on the rear side are driven wheels. Although this type of design can reserve more space for the middle part of the robot chassis, for a cleaning robot, its side brush is often arranged in the front of the robot (usually on the left or right side of the front of the fuselage). Since part of the space on the front side of the robot is occupied by the driving mechanism / device of the servo wheel, it will affect the cleaning components such as the side brush from fully exerting their cleaning function. Furthermore, the servo wheel on the front side has to bear the steering of the robot, the weight support of the front side of the robot body and the dragging power to drive the movement of the entire machine, which requires the front servo wheel to be as close as possible to the force point on the front side of the fuselage. In other words, based on the above limitations, the front servo wheel is not easy to be set at a more forward position. As a result, because the robot's steering range is controlled by the angular amplitude of the servo wheels located at its front, when the robot turns (especially when turning with a large curvature), the front of the entire robot will move too fast and the rear will move too slowly, which is detrimental to the robot's overall stability. For example, the excessive front turning speed makes it difficult to cross obstacles. More importantly, it cannot more accurately follow its planned route. In particular, when the robot passes over speed bumps, due to the robot's structural limitations (for example, the robot's passive universal wheels are located at the front of the robot body and the left and right drive wheels are located at the rear of the body), the robot is prone to tipping over. Therefore, how to ensure that the robot safely passes over speed bumps is an urgent problem to be solved, especially for robots with rear-wheel drive and a roughly rectangular chassis.
[0038] In view of this, how to prevent a robot with a non-circular chassis or a robot designed with a non-circular chassis from tipping over when passing over a speed bump is a technical problem to be solved in this application.
[0039] This application discloses a robot and a robot movement method. When a planned path intersects a speed bump, the robot's planned path is modified based on its motion model to allow the robot to move perpendicularly along the modified planned path across the speed bump. This prevents the robot from tipping over while traversing the speed bump, improving safety and efficiency.
[0040] In this application, the term "robot" refers to an autonomous mobile device capable of mapping 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. Examples include service robots used in commercial scenarios to perform certain tasks (such as cleaning robots, patrol robots, or food / goods delivery robots), or home robots used in home scenarios to perform cleaning or entertainment tasks (such as sweeping robots or companion robots).
[0041] 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.
[0042] Please refer to Figure 1, which shows a schematic diagram of the three-dimensional structure of a robot in one embodiment of the present application. As shown in the figure, the robot is a cleaning robot, which can perform one or more tasks such as sweeping, vacuuming, and mopping a surface. Accordingly, the cleaning robot is equipped with one or more accessories or components such as a cleaning brush for sweeping, a mop, and a water tank for storing clean water or dirty water. In the following embodiments, the robot is described as a commercial cleaning robot.
[0043] 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.
[0044] Furthermore, for ease of description and understanding, in this application, the direction in which the robot moves forward during operation is defined as the forward direction (e.g., the direction indicated by arrow Q in FIG1 ), 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 in the opposite direction away from the front side or front end is defined as the rear side or rear end. To facilitate the distinction between the left and right sides, the left and right sides are distinguished based on the forward direction of the robot during operation.
[0045] In an embodiment, the left drive wheel is arranged at 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 is arranged at 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 drive wheel and the right drive wheel 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.
[0046] 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.
[0047] 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.
[0048] The robot may also have a control device (not shown) electrically coupled to the left and right drive wheels for controlling the rotational speed of the left and right drive wheels so that the robot follows the planned path. The control device is typically provided with a processor and a memory. In some embodiments, the control device is disposed on a circuit board (not shown) within the body and includes a memory and a processor, etc. The memory and the processor are electrically connected directly or indirectly to enable data transmission or interaction. For example, the memory and the processor may be electrically connected to each other via one or more communication buses or signal lines.
[0049] 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) dedicated to controlling the drive motor. For example, the microprocessor is used to convert the information or data provided by the control device into an electrical signal for controlling the drive motor, and to control the speed, direction, etc. of the drive motor according to the electrical signal to adjust the moving speed and direction of the cleaning robot. The information or data is such as the deflection angle determined by the control device. The processor in the drive unit can be shared with the processor in the control device or can be set independently. For example, the drive unit acts as a slave processing device, the control device acts as a master device, and the drive unit performs movement control based on the control of the control device. Or the drive unit and the processor in the control device are shared. The drive unit receives data provided by the control device through a program interface. The drive unit is used to control the drive wheel based on the movement control instructions provided by the control device.
[0050] In some embodiments, the processor 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 methods, steps, and logic diagrams disclosed in the embodiments of this application. The general-purpose processor can be a microprocessor or any conventional processor.
[0051] In some embodiments, the memory may include random access memory (RAM), read-only memory (ROM), programmable read-only memory (PROM), erasable programmable read-only memory (EPROM), electrically erasable programmable read-only memory (EEPROM), etc. The memory is used to store programs (e.g., path planning programs, cleaning programs, etc.), and the processor executes the programs after receiving execution instructions.
[0052] The robot body is equipped with multiple detection 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 detection devices can be installed at different locations on the robot body to improve detection accuracy.
[0053] In an embodiment, the detection device of the robot includes, for example, a laser sensor, an ultrasonic sensor, an infrared sensor, an optical camera (such as a monocular camera or a binocular camera), a depth camera (such as a ToF sensor), a millimeter-wave radar 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 emitted by the ultrasonic sensor and the rebound of the obstacle; for another example, a binocular camera device can determine the distance of the robot from an obstacle based on the image captured by its two cameras using the triangulation principle; for another example, the infrared light projector of the ToF (Time of Flight) sensor projects infrared light outward, and the infrared light is reflected after encountering the obstacle to be measured and is received by the receiving module. By recording the time from the emission 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 detection device is also referred to as an obstacle sensor. The obstacle sensor mentioned later should be understood in this way and will not be repeated.
[0054] Among them, obstacles refer to objects located on the robot's path or 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.
[0055] In one embodiment, when a robot is used in a scenario containing speed bumps, such as a parking garage, the robot can identify the speed bump based on the detection device to safely guide the robot past or around the speed bump. For example, the robot can identify the speed bump using an acquired image. Furthermore, the robot can determine the relative position of the identified speed bump to the robot, as well as the speed bump's position within the robot's workspace. For example, based on the speed bump's position in the image, the robot can determine the speed bump's relative position to the robot at the time the image was captured, as well as the speed bump's position within the robot's workspace.
[0056] In some embodiments, the robot can identify speed bumps in an image based on a preset neural network recognition model, or based on the speed bump's contour features and / or color features. For example, the contour features include: the long side of the speed bump has a distinct straight edge feature, two straight edge features are parallel to each other, and the distance between the two parallel straight edge features is 20cm-40cm. The color features include: yellow or black and yellow.
[0057] In an embodiment, the robot utilizes multiple behavioral modes to effectively define a clean work area, wherein behavioral modes are a control system layer that can operate in parallel. The microprocessor unit is operable to execute a priority arbitration scheme to identify and implement one or more primary behavioral modes for any given scenario based on input from the sensor system. Examples include a robot route following mode, a turning mode, an obstacle avoidance mode, an edge following mode for following the edge of an obstacle, a wall following mode for following a wall, or a travel mode that moves in a U-shaped or U-shaped pattern according to a pre-set planned path.
[0058] Please refer to Figure 2, which is a flow chart of a robot movement method according to one embodiment of the present application. As shown in the figure, the robot movement method according to the present application includes steps S10, S11, and S12. The robot movement method can be executed by the robot control device described above or by other computer devices capable of executing the robot movement method according to the present application.
[0059] In step S10 , when the robot moves according to the planned path and the preset motion model, it obtains road condition information in the planned path.
[0060] Specifically, when the robot performs a moving task, its control device needs to first obtain a planned path so that the robot can move along the planned path according to a preset motion model.
[0061] In one embodiment, when the robot is traveling in a parking garage, the planned path includes a path planned to be adjacent to the right or left edge of the road in the parking garage. Specifically, the robot plans its path on the driving road according to traffic rules to prevent collisions with vehicles traveling in the parking garage during the robot's travel. The traffic rules include: driving on the right side or driving on the left side. For example, when the traffic rule is to drive on the right side, the planned path includes a path planned to be adjacent to the right side of the road in the parking garage. Please refer to Figure 3, which shows a schematic diagram of the planned path of the robot on a portion of the driving road in one embodiment of the present application. As shown in the figure, the planned path L in Figure 3 is adjacent to the right side of the parking garage. For another example, when the traffic rule is to drive on the left side, the planned path includes a path planned to be adjacent to the left side of the road in the parking garage. It should be noted that the planned path may not be planned according to traffic rules. For example, it is sufficient to ensure that the planned path is adjacent to the right or left edge of the road in the parking garage.
[0062] It should be noted that the aforementioned path adjacent to the right or left edge of the road of the parking garage may also be connected to a path located at other positions such as the center of the road of the parking garage.
[0063] 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 a traveling task.
[0064] In other embodiments, the planned path is obtained through real-time path learning or real-time path planning, such as the planned path obtained by the robot through path learning when it initially moves in an unfamiliar environment; or in scenarios where the robot suddenly loses the planned path during movement or encounters an unknown obstacle and needs to regenerate the planned path to avoid the obstacle, the robot can also use its own positioning and map-building capabilities to perform real-time path planning, and use the planned path as the planned path for the current moving task.
[0065] In an embodiment, the planned path is composed of multiple path points, each of which includes its coordinate information and heading angle. In other words, the planned path can be considered as a set of n path points or a trajectory line formed by fitting n path points. In step S10 above, the planned path obtained by the robotic system can be either a global path, a local path within the global path, or a path of a certain length intercepted / extracted from the global path.
[0066] Please refer to Figures 4 and 5. Figure 4 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 5 shows an enlarged schematic diagram of point A in Figure 4. As shown in the figure, the planned path L 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 detection device configured by the robot. Among them, the properties of the detection device include but are not limited to information such as the sensitivity, resolution, and range of the detection device. For example, when the robot judges that the resolution of the detection device is high, it selects more path points, and when the resolution of the detection device is low, it selects fewer path points. For another example, when the robot judges that the range of the detection device is large, it selects more path points, and when the range of the detection device is small, it selects fewer path points. In the following embodiments, the robot selects 24 path points from the obtained planned path as an example 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 front weight of the cleaning robot. It is arranged at the bottom of the main body 10 of the cleaning robot 1 and is located in the middle position of the front side of the cleaning robot 1. The projection point of the universal wheel 12 is still at a certain distance from the front edge of the robot body. When the cleaning robot turns, it is affected by the linear velocity of the turning of the body. The driving wheel 11 on the rear side of the cleaning robot, the passive universal wheel 12 on the front side of the cleaning 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 FIG6 , 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 driving 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.
[0078] It should be understood that in the motion model of the robot of the present application, the end point p(xp ,y p ) (i.e., the virtual point p), and convert the speed into the control amount of the left and right driving wheels at the rear of the robot, so as to achieve the degree of closeness or overlap of the starting point o(x0, y0) in the robot's motion model to each path point in the planned path. In other words, in this application, by calculating the end point p(x p ,y p ) (i.e., virtual point p) to control the degree of proximity or overlap between the starting point o(x0, y0) in the motion model and each path point in the planned path. Based on the robot's motion model shown in Figure 6, after obtaining control input 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] When the robot moves according to the planned path and the preset motion model, in order to ensure the safety of the robot's movement, for example, to ensure that the robot does not fall over when passing through a speed bump, the robot will obtain road condition information in the planned path for step S11 to determine whether the planned path intersects with the speed bump.
[0080] The road condition information acquired by the robot during its movement includes scene information and / or obstacle information. The scene information may include, for example, channel attributes of the scene the robot is in, such as supermarket shelves, warehouse shelves, office aisles, or aisles in a parking garage, such as the length, width, and curvature of the channel. The obstacle information may include, for example, the type and / or location of the obstacle. In this embodiment, the channel attributes may be pre-stored in the robot's memory or acquired through real-time or instantaneous detection, identification, and analysis by the robot's detection device. The obstacles may be categorized as static or dynamic, and the obstacle types may also vary depending on the environment.
[0081] In one embodiment, the road condition information is road condition information in a parking garage. The parking garage includes indoor parking garages and / or outdoor parking garages. The road condition information in the parking garage includes scene information of the parking garage and / or obstacle information of the parking garage. The scene information of the parking garage includes attributes of passages within the parking garage. The passages within the parking garage include driving roads, parking spaces, parking garage entrances and exits, etc. Static obstacle information in the parking garage includes doors, walls, pillars, stairs, charging piles, warning signs, speed bumps, and other various objects. Dynamic obstacles in the parking garage include human bodies, animals, and movable equipment such as robots and vehicles.
[0082] In some embodiments, the road condition information acquired by the robot during its planned path can be pre-stored or determined through real-time recognition. For example, the location of speed bumps in a parking garage can be pre-stored or determined through real-time recognition. The following embodiments illustrate this by taking obstacle information acquired during the planned path as an example.
[0083] In one embodiment, before the robot moves along the planned path, it uses a detection device to identify obstacles (e.g., speed bumps) in the work area and determine their locations. For example, the robot identifies and determines the obstacles' locations during map construction. Furthermore, the robot can record / mark the identified obstacles. For example, the robot may mark the locations of speed bumps on the map as speed bumps. In this embodiment, the robot obtains the pre-marked obstacle locations during movement, such as the pre-marked speed bump locations during movement.
[0084] In one embodiment, the robot identifies obstacles in real time while traveling along the planned path. In this embodiment, the robot identifies obstacles by acquiring detection data from a detection device that detects the surrounding environment. For example, the detection device may be a laser sensor that emits a laser beam to detect obstacles. The detection data acquired 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 a point cloud set. Each point cloud set may represent an obstacle and its size range. Line segment fitting based on the point cloud set can obtain obstacle contour information and determine the obstacle's location. The detection device may also be a camera, for example. The acquired detection data is image data. The robot performs obstacle recognition based on the image data and extracts obstacle line information to obtain the obstacle's contour and determine the obstacle's location. In this embodiment, the robot determines the obstacle's location by real-time obstacle recognition during travel. For example, real-time monitoring by the detection device can identify speed bumps and determine their locations.
[0085] In one embodiment, the robot's pre-planned path may intersect a speed bump. If the planned path intersecting the speed bump is not perpendicular to the speed bump—in other words, the heading of each path point in the planned path is not perpendicular to the speed bump, or the robot cannot accurately follow the planned path perpendicular to the speed bump to pass perpendicularly through the speed bump—a robot with a non-circular chassis or a non-circular chassis design may easily tip over when passing over the speed bump. For example, the robot shown in FIG. 1 of the present application, i.e., a robot with passive universal wheels located on the front side of the robot body, left and right drive wheels located on the rear side of the body, and a roughly rectangular chassis, may also perform step S11 before controlling the robot to pass over the speed bump.
[0086] In step S11 , when the robot determines that the planned path intersects the speed bump at a preset angle, the planned path passing through the speed bump is corrected according to the robot's motion model.
[0087] In one embodiment, based on the pre-marked speed bump position and the coordinate position of each path point in the planned path, it is determined that the planned path intersects the speed bump. Specifically, in the embodiment described above, the robot obtains the pre-marked speed bump position during the movement. When the coordinate position of each path point in the planned path is included in the speed bump position, it can be determined that the planned path intersects the speed bump. The preset angle is an angle that is not vertical. In the present application, if the line connecting the path points included in the speed bump position in the planned path "intersects" the speed bump, and the angle of the "intersection" does not belong to the "vertical" situation described in the present application, it is necessary to correct the planned path passing through the speed bump based on the robot's motion model; the "vertical" is approximately vertical, such as the angle between the extension direction of the speed bump and the robot's movement direction on the speed bump (that is, the direction of the line connecting the path points included in the speed bump position in the planned path) is within the range of 80 degrees to 100 degrees, which can be regarded as the "vertical"; in other words, when the robot determines that the speed bump is When the planned path intersects with the speed bump, and the "intersection" belongs to the "vertical" situation mentioned above, for example, the angle between the extension direction of the speed bump and the travel direction of the robot on the speed bump is 80 degrees, 81 degrees, 82 degrees, 83 degrees, 84 degrees, 85 degrees, 86 degrees, 87 degrees, 88 degrees, 89 degrees, 90 degrees, 91 degrees, 92 degrees, 93 degrees, 94 degrees, 95 degrees, 96 degrees, 97 degrees, 98 degrees, 98 degrees, or 100 degrees, it is no longer necessary to correct the planned path passing through the speed bump according to the robot's motion model, that is, the robot can pass through the speed bump according to the established planned path.
[0088] Please refer to Figure 7, which is a schematic diagram showing the intersection of the planned path and the speed bump in one embodiment of the present application. As shown in the figure, the coordinate position of the path point j+5, the coordinate position of the path point j+6, the coordinate position of the path point j+7, the coordinate position of the path point j+8, and the coordinate position of the path point j+9 in the planned path L are all included in the speed bump K. In other words, the above path points are all located in the area where the rectangular speed bump K is located, and the robot can then determine that the planned path L shown in Figure 7 intersects with the speed bump K.
[0089] In another embodiment, the planned path is determined to intersect with a speed bump based on the speed bump location obtained by the robot through real-time identification during movement and the coordinate positions of each path point in the planned path. Specifically, in the aforementioned embodiment, the robot obtains real-time identification of the speed bump and determines the speed bump location during movement. Referring again to FIG. 7 , when each path point in the planned path is included in the speed bump location, it is determined that the planned path intersects with the speed bump.
[0090] In one embodiment, considering that the robot is actually an entity occupying a physical space, the planned path cannot be equated with the movement trajectory corresponding to the robot's outline. Therefore, when it is directly determined based on the planned path that the planned path does not intersect with the speed bump, the robot may also intersect with the speed bump. For example, when the robot moves according to the planned path, one of the robot's wheels (such as the left rear wheel or the right rear wheel) may pass over the speed bump.
[0091] Therefore, in the present application, the robot selects multiple path points from the obtained planned path and maps the robot's contour onto each of the multiple path points to form the robot's travel trajectory. The travel trajectory is the contour trajectory formed by the robot's contour at the multiple path points in the planned path. In this embodiment, the robot contour refers to the projection of the robot on a horizontal plane, and the robot contour 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.
[0092] Furthermore, in one embodiment, the robot may map the robot's outline onto each of a plurality of path points based on its kinematic model to form the robot's trajectory. For example, the robot may map the model's midpoint onto each of the plurality of path points based on the kinematic model, thereby mapping the robot's outline based on the coordinate information and heading angle of each path point to form the robot's trajectory.
[0093] In one embodiment, when a robot travels according to the planned path and a preset motion model, if its trajectory intersects a speed bump, it is determined that the planned path and the speed bump intersect. Referring to Figures 8a and 8b, Figure 8a shows a schematic diagram of the planned path and the speed bump in one embodiment of the present application, and Figure 8b shows a schematic diagram of the trajectory and the speed bump generated based on the planned path in the embodiment of Figure 8a. As shown in the figures, if the intersection of the planned path and the speed bump is determined directly based on the planned path L shown in Figure 8a and the obtained speed bump location, the planned path L shown in Figure 8a does not intersect the speed bump K. However, during the robot's actual movement, one of the robot's wheels may very likely pass over the speed bump. For example, in the example of Figure 8b, the robot's left rear wheel may run over the left end of the speed bump. As shown in Figure 8b, if the trajectory L2 generated by the robot based on the planned path L in Figure 8a intersects the speed bump K, it can also be determined that the planned path L intersects the speed bump.
[0094] When it is determined based on the method described above that the planned path intersects with a speed bump, the robot corrects the planned path passing through the speed bump based on the robot's motion model.
[0095] In one embodiment, please refer to Figure 9, which is a flow chart showing how the robot in one embodiment of the present application corrects a planned path passing through an intersection based on its motion model. As shown in the figure, the steps of correcting a planned path passing through an intersection based on the robot's motion model include step S110 and step S111.
[0096] In step S110 , the robot deletes a plurality of path points in the planned path that intersect with the speed bump.
[0097] In one embodiment, the robot directly deletes multiple path points in the planned path that are located within the area where the speed bump is located. Referring to Figure 10 in conjunction with Figure 7 , Figure 10 illustrates a schematic diagram of the present application after deleting multiple path points in the planned path in the embodiment of Figure 7 that intersect with the speed bump. As shown in the figure, Figure 10 deletes multiple path points in the area where the speed bump is located in Figure 7 .
[0098] Furthermore, since the path point is the midpoint of the axis of the robot's left and right drive wheels, after deleting only the multiple path points located in the area where the speed bump is located, the robot may still contact the speed bump with the heading angle of the path points of the undeleted planned path, and thus the robot may not be perpendicular to the speed bump when traveling on the speed bump. For example, in the embodiment shown in Figure 10, the path point j+4 in the original planned path is not deleted, but the robot's universal wheel may have already contacted the speed bump when the robot is at path point j+4, and the robot is not perpendicular to the speed bump. In other words, the heading angle information θ of path point j+4j+4 The robot is not perpendicular to the speed bump. This ensures that the robot's corrected path is perpendicular to the speed bump when or before contact with the speed bump. In the following embodiments, the robot deletes not only multiple path points within the speed bump area, but also at least one path point outside the speed bump outline.
[0099] In one embodiment, multiple path points in the planned path that intersect speed bumps are determined based on the robot motion model and deleted. In other words, path points that are outside the speed bump outline and need to be deleted, as determined based on the motion model, are also considered path points in the planned path that intersect speed bumps and are deleted.
[0100] Specifically, when the robot's motion model is located at a path point outside the speed bump outline, it is necessary to ensure that the motion model and the speed bump do not intersect. If there is an intersection, the corresponding path point needs to be determined as a path point in the planned path that intersects the speed bump and is deleted. Please refer to Figure 11, which shows a schematic diagram of the planned path in the embodiment shown in Figure 10 of this application after deleting the path points outside the speed bump outline. As shown in Figure 10, after deleting multiple path points located in the area where the speed bump is located, if the starting point of the robot's motion model is located at path point j+2, path point j+3, and path point j+4, the motion model intersects the speed bump. In Figure 11, the intersecting path points j+2, path point j+3, and path point j+4 are deleted as multiple path points in the planned path that intersect the speed bump.
[0101] In one embodiment, the heading of the path point deleted in the above embodiment needs to be perpendicular to the speed bump, but the heading of the breakpoint of the original planned path may deviate greatly from the heading perpendicular to the speed bump. In order to ensure that the robot's motion model can turn from the original planned path to the direction perpendicular to the speed bump, step S110 also includes step S1100.
[0102] In step S1100, the robot determines and deletes multiple path points in the planned path that intersect speed bumps based on the robot's motion model and turning radius. In other words, path points outside the speed bump outline that need to be deleted, as determined based on the motion model and turning radius, can also be considered as multiple path points in the planned path that intersect speed bumps and are deleted.
[0103] After deleting the path point in the previous text, the robot needs to move from the breakpoint of the planned path close to one side of the robot (for example, path point j+1 in Figure 11) to the path point to be supplemented close to the current robot. Among them, the heading of the path point to be supplemented needs to be perpendicular to the speed bump and the motion model does not intersect with the speed bump when the motion model is located at the point to be supplemented. Furthermore, in this embodiment, the robot determines whether the motion model can directly turn from the breakpoint (for example, path point j+1 in Figure 11) to the path point to be supplemented based on the turning radius. If it cannot be satisfied, the breakpoint determined for the first time (for example, path point j+1 in Figure 11) needs to be deleted as well, and then the robot determines whether the new breakpoint can be turned to the path point to be supplemented after turning based on the new breakpoint (for example, path point j in Figure 11), and so on, until the motion model can turn from the new breakpoint to the path point to be supplemented after multiple turns.
[0104] Similarly, in one embodiment, if the robot needs to continue traveling along the original path after leaving the speed bump, it is also necessary to determine whether the robot can turn from the path point to be supplemented that is far away from the current robot to the breakpoint of the original path (for example, j+10 in Figure 11) based on the robot's motion model and its turning radius. If not, the breakpoint determined for the first time (for example, j+10 in Figure 11) must also be deleted, and then the robot continues to determine based on the new breakpoint (for example, j+11 in Figure 11), and so on, until the motion model can turn from the path point to be supplemented that is far away from the current robot to the new breakpoint.
[0105] In other embodiments, the robot may not follow the original path after leaving the speed bump, that is, the robot may replan the path after leaving the speed bump.
[0106] In one embodiment, the number of path points deleted to ensure the robot can turn from the original planned path to a direction perpendicular to the speed bump can be determined based on one or more of the path point step size of the planned path, the robot's turning radius, the robot's steering angle, the robot's kinematic model, and the robot's dimensions. For example, the smaller the robot's steering angle, or the greater the distance between the end point and the starting point in the robot's kinematic model, the greater the preset number of path points deleted outside the speed bump outline. For example, the preset number can be a value pre-set by a technician based on the above-mentioned robot attributes and stored on a storage device accessible by the robot.
[0107] It should be noted that, in other embodiments, the number of path points located outside the speed bump outline that are deleted can also be determined based on multiple experiments by staff, etc. The present application does not limit the method for determining the deleted path points, and it is only necessary to ensure that the robot can turn successfully. As mentioned above, the direction perpendicular to the speed bump mentioned in the present application refers to the direction perpendicular to the extension direction of the long side of the speed bump, and the "perpendicular" does not require that the two directions are absolutely strictly perpendicular at a 90-degree angle. The "perpendicular" is approximately perpendicular, such as the angle between the extension direction of the speed bump and the direction of travel of the robot on the speed bump can be regarded as the "perpendicular" in the range of 80-100 degrees. In other words, it is only necessary to ensure that the angle between the two directions can enable the robot to pass safely, that is, the direction perpendicular to the speed bump mentioned in the present application can deviate from the speed bump to the left or right by x degrees (such as the above-mentioned 10 degrees) in a direction that is strictly 90 degrees to the speed bump, where x can be obtained by experiments, etc.
[0108] After obtaining the deleted planned path based on any of the above embodiments, the robot further executes step S111.
[0109] In step S111, based on the robot's motion model, a compensation path is generated that includes the speed bump path, starting at a breakpoint near the robot and ending at a breakpoint farther from the robot. This compensation path is then incorporated into the planned path. In one embodiment, the distance between the starting point and the speed bump is greater than the distance between the end point and the speed bump. This allows the robot to make timely adjustments before passing over the speed bump to ensure it passes perpendicularly.
[0110] The compensation path is a path connecting the end point and the starting point. In an embodiment, the compensation path includes coordinate information and a heading angle for each path point. It should be understood that a path point in the compensation path reflects the position and posture (position and attitude) of the rotation axis of the robot's motion model at that path point.
[0111] The compensation path includes a speed bump path, and the heading of each path point in the speed bump path is perpendicular to the extension direction of the speed bump. In other words, when the robot's motion model is on each path point in the speed bump path, the motion model maintains a posture perpendicular to the speed bump. It should be noted that if the path points in the planned path are further deleted in step S1100, the compensation path may also include a path for connecting the speed bump path and the breakpoint. In step S111, the heading of each path point in the speed bump path refers to the direction in which the robot's motion model moves forward when the motion model is located at the path point. In other words, when the robot is able to accurately follow each path point, when the robot is located at each path point in the speed bump path, the robot's method of movement is perpendicular to the extension direction of the speed bump. The extension direction of the speed bump refers to the extension direction of the long side of the speed bump.
[0112] It should be noted that, according to the foregoing, the "vertical" does not require that the two directions be absolutely strictly perpendicular at a 90-degree angle. The "vertical" is approximately vertical. For example, the angle between the extension direction of the speed bump and the direction of travel of the robot on the speed bump can be regarded as the "vertical" if it is within the range of 80 degrees to 100 degrees.
[0113] The following illustrates step S111 with reference to figures, please refer to Figures 12a, 12b, and 12c. Figure 12a shows a schematic diagram of the planned path passing through the speed bump in one embodiment of the present application, Figure 12b shows a schematic diagram after deleting the path points that intersect with the speed bump in Figure 12a of the present application, and Figure 12c shows a schematic diagram of the present application compensating the compensated path generated based on the end point and starting point in Figure 12b to the planned path shown in Figure 12b. As shown in the figure, path point j+6, path point j+7, path point j+8, path point j+9, path point j+10, and path point j+11 are path points that need to be deleted because the motion model intersects with the speed bump, and path point j+4, path point j+5, path point j+12, and path point j+13 are path points deleted in step S1100. The compensation path L3 in Figure 12c includes pathpoint i, pathpoint i+1, pathpoint i+2, pathpoint i+3, pathpoint i+4, pathpoint i+5, pathpoint i+6, pathpoint i+7, pathpoint i+8, pathpoint i+9, and pathpoint i+10. Pathpoint i+2, pathpoint i+3, pathpoint i+4, pathpoint i+5, pathpoint i+6, and pathpoint i+7 form a speed bump path, and the headings of pathpoint i+2, pathpoint i+3, pathpoint i+4, pathpoint i+5, pathpoint i+6, and pathpoint i+7 are all perpendicular to the speed bump.
[0114] In order to avoid problems such as jerky turns or excessive turning angles caused by sudden changes in steering angles when the robot follows the compensation path, in one embodiment, the step of compensating the generated compensation path to the planned path further includes: smoothing the compensation path to correct the planned path passing through the intersection.
[0115] Please refer to Figure 12d, which shows a schematic diagram of the compensation path in Figure 12c after smoothing. Here, the robot first connects multiple path points (as shown in Figure 12c) to generate the compensation path L3 shown in Figure 12c, and then smoothes the compensation path L3 to form the smooth curved compensation path L3 shown in Figure 12d, thus completing the correction of the planned path passing through the intersection. The smooth curved compensation path L3 includes path point i, path point i+1, path point i+2, path point i+3, path point i+4, path point i+5, path point i+6, path point i+7, path point i+8, path point i+9, path point i+10, path point i+11, path point i+12, path point i+13, and path point i+14.
[0116] In another embodiment, the robot may not follow the original path after leaving the speed bump. Specifically, the robot generates a compensation path that includes the speed bump path, starting from a breakpoint near one side of the robot. The robot then replans the path at the end of the compensation path (e.g., path point i+8 in Figure 12e).
[0117] Please refer to Figure 12e in combination with Figure 12a. Figure 12e shows a schematic diagram of compensating the generated compensation path to Figure 12a in one embodiment of the present application. As shown in the figure, there is no need to consider the turning problem on the side away from the robot. The breakpoints obtained by the robot in step S110 are path point j+3 and path point j+12. The compensation path L3 generated by the robot includes path point i, path point i+1, path point i+2, path point i+3, path point i+4, path point i+5, path point i+6, path point i+7, and path point i+8. Then, the robot can re-plan a new path from path point i+8 (not shown).
[0118] After completing the correction of the planned path passing through the speed bump based on step S11, the robot proceeds to step S12 to enable the robot to accurately follow the compensation path, thereby ensuring that the robot's moving direction is perpendicular to the speed bump when passing through the speed bump.
[0119] In step S12 , the robot thermally controls the robot to travel along the corrected planned path through the speed bump in a direction perpendicular to the speed bump.
[0120] In an embodiment, when the robot generates a compensation path, the robot system sends the compensation path to the robot's execution system for movement control. As mentioned above, the robot is rear-wheel driven, the front wheels are passive universal wheels, and the chassis is a roughly rectangular robot. When this type of robot follows the route, it is necessary to accurately control the rotation speed and differential speed of the two driving wheels located at the rear to ensure the accuracy of route following. This poses a challenge to how to more accurately control the robot's movement route (for example, to achieve more accurate route following control or steering control). Therefore, the robot movement method of the present application also includes the following movement control steps:
[0121] Please refer to Figure 13, which shows a movement control flow chart of the robot movement control method in one embodiment of the present application. As shown in the figure, step S30 is first executed. In a preset calculation cycle, the robot system selects multiple path points from the obtained compensation path to obtain the expected movement information of the robot at each path point.
[0122] In the present application, the robot selects multiple path points from the obtained compensation path, such as selecting 5-10 path points in the path. Please refer to Figure 14, which is an enlarged schematic diagram of determining multiple path points from Figure 12d. As shown in the figure, the compensation path L3 obtained by the robot in the present application contains multiple path points (i, i+3, i+4, i+5, ... i+14), and the robot selects multiple path points from the obtained compensation path L3. Each path point contains its own coordinate information and heading angle information. Taking path point i+3 as an example, the information of the path point i+3 obtained by the robot from the compensation path includes the coordinate information of the point (x i+3 ,y i+3 ) and heading angle information (θ i+3 ).
[0123] In the following embodiments, the robot selects five path points from the obtained compensation path as an example, such as the five path points (i+3, i+4, i+5, i+6, i+7) shown in FIG. In this embodiment, the step length process for selecting the five path points in the compensation path is the same as that in step S10 above, and will not be repeated here.
[0124] In the present application, the calculation of 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 compensation path to obtain the expected travel information of each path point along its way, 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 travels 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.
[0125] 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.
[0126] 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 robot control system. For example, the robot control system limits the robot's travel speed to no more than 4m / s; that is, the robot control system 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 maximum turning of the robot when moving is required not to exceed 180°; 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°.
[0127] In step S30, the robot system obtains the desired travel information for each path point that the robot will pass through from the obtained compensated path. In this application, the desired travel information refers to the ideal state of the robot when it is expected to travel to each path point in the compensated path, including information such as the robot's position, velocity, and steering angle.
[0128] 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 ).
[0129] Please refer to FIG15, which is a schematic diagram showing how the robot travel control method of the present application obtains the desired information of each waypoint in one embodiment. As shown in the figure, since each path point in the compensation path has the coordinate information and heading angle information of the point, such as the coordinate information and heading angle information of the five path points (i+3, i+4, i+5, i+6, i+7) shown in FIG14, the robot can regard the coordinate information and heading angle information of the above-mentioned path points as the desired posture information. Still taking the path point i+3 as an example, the information of the path point i+3 obtained by the robot from the compensation path 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 robot system can obtain the expected posture information of each path point of the robot path by selecting multiple path points from the compensation path.
[0130] The robot system also needs to obtain the desired speed and desired steering angle of the robot at each path point. In one embodiment, the robot system can obtain the desired speed (v ref ).
[0131] In another embodiment, the robot system can obtain the desired speed (v) of the robot from the compensation path generated in real time by the path planning layer. ref); Still taking the path point i+3 as an example, the robot system also needs to obtain the expected speed of the robot passing the path point i+3, which is expressed as v ref i+3 .
[0132] In the robot's travel control, when the control system does not issue a steering command to the robot's drive wheels, the robot system expects the robot's heading angle 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 robot system 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°.
[0133] In step S31, the robot system predicts the travel prediction information of the robot passing each path point based on a preset prediction period, the robot's motion model, 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 Figure 6, 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.
[0134] Based on the robot motion model shown in FIG6 , 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.
[0135] In the embodiment shown in the above step S31, when the robot system performs the above prediction calculation, it needs to complete the prediction calculation within a preset prediction period, which is a time. In this embodiment, the robot system 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 in step S10, 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 when the robot is about to pass path point i+3 as an example, the robot system 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 , v ref , δ ref ), predictive calculation is performed to obtain the travel prediction information (xi+3 ,y i+3 ,θ i+3 , v i+3 , δ i+3 ).
[0136] The travel prediction information refers to the possible future state of the robot when it travels to the path point of the compensation path obtained through predictive calculation, including information such as the position and posture, speed and steering angle of the robot when it travels to the path point of the compensation path in the future. Corresponding to the above-mentioned travel expectation information, in an embodiment, the travel prediction information of each 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 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 of the robot passing 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 ).
[0137] In step S32, the robot system performs calculations on the acquired travel expectation information and the acquired travel prediction information to obtain travel control information of the first path point among the multiple path points.
[0138] In an embodiment, the step of the robot system calculating the travel control information of the multiple 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 robot system calculates the five path points (i+3, i+4, i+5, i+6, i+7) simultaneously based on the multiple path points selected in step S10, such as the five path points (i+3, i+4, i+5, i+6, i+7) shown in Figure 14, 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 subtracted and squared (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, argminJ 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 ).
[0139] 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 ).
[0140] In an embodiment, the step of selecting the travel control information of the first path point from the travel control information to control the left and right driving wheels of the robot includes: the travel control information of the first path point among the plurality of path points is the travel control information of the virtual point mapped to the front side of the passive universal wheel. In the above embodiment where the first path point is i+3, the 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.
[0141] In step S33, the left and right driving wheels of the robot are controlled according to the obtained travel control information, thereby achieving accurate following of the obstacle avoidance route. In an embodiment, the control amount of the left and right driving wheels on the rear side of the robot body is obtained by calculation based on the motion model and the travel control information of the first path point. In this embodiment, the travel control information (v i+3c ,δ i+3c ), combined with the robot motion model shown in FIG6 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.
[0142] 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 on the compensation path.
[0143] The embodiment of the control method shown in FIG13 is only based on the travel control process when the robot is about to travel to the first path point. It should be understood that when the robot is actually traveling, the calculation of the above travel control process is a continuous process.
[0144] 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 the smooth operation of the robot system. For example, in the embodiment of executing the above-mentioned step S32, the robot system can calculate the travel control information of the multiple path points multiple times within one calculation cycle, and temporarily store a set of travel control information of the first path point each time it calculates it, 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 robot system 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 drive wheels of the robot can obtain the speed control amount and the steering angle control amount in a timely manner, the robot system will select the latest calculation result value from the array A of the travel control information of the multiple path points that has been 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 multiple path points.
[0145] In one embodiment, when the robot system calculates travel control information for the next calculation cycle, the travel control information calculated in the current cycle is used as the initial value for the calculation of 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 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.
[0146] 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.
[0147] 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 robot system 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.
[0148] 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 magnitude of the predicted steering angle change.
[0149] In the robot's movement control, when the control system does not issue a steering instruction to the robot's drive wheels, the robot system expects the robot's steering angle 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°.
[0150] In an embodiment, the step of calculating the travel control information of the plurality of path points by the robot system in the robot travel control method 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 also be adjusted according to the calculation requirements of the robot system for a certain control quantity during the calculation process. For example, in the travel control of the robot, the robot system 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.
[0151] It should be understood that in some embodiments, the robot system adjusts the heading angle (θ i+3 ), speed (v i+3 ), and the weight of the steering angle (δ i+3 ) are individually weighted. In other embodiments, the robot system adjusts the weight of the predicted acceleration information and / or the predicted steering angle change amplitude of each path point it is about to follow as needed.
[0152] The present application provides a method for controlling the movement of a speed bump 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 the expected movement information and predicted movement information of each path point in the compensation path within a calculation cycle, and performs calculations in combination with the above-mentioned preset robot motion model to obtain the movement control information of the nearest path point. The control information is mapped to the movement control information of the virtual point in front 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 drive wheels on the rear side of the robot body, thereby controlling the rotation speed of the left and right drive wheels of the robot. By repeating this process, the robot can accurately follow the compensation path. The present application particularly solves the problem of precise control of the movement of robots with rectangular chassis, with the left and right wheels on the rear side as drive wheels and the universal wheel on the front side as passive wheels.
[0153] In one embodiment, when controlling the robot to pass through a speed bump along a revised planned path, if an obstacle is detected in the speed bump area of the robot's trajectory—in other words, if it is determined that an obstacle may pass through the speed bump area in its trajectory—the robot is controlled to decelerate and stop to wait for the obstacle to disappear before continuing to pass through the speed bump along the revised planned path. In one example, when the robot detects an obstacle in the speed bump area of its trajectory at a current pathpoint, the robot modifies the travel control information for multiple pathpoints it is about to pass through to ensure that the robot can accurately follow the planned path while reducing its speed so that the robot stops and waits for the obstacle to disappear.
[0154] In one embodiment, in order to ensure that the robot passes through the speed bump more stably, the speed of the robot at each path point in the compensation path is lower than the speed of other path points in the planned path.
[0155] The robot and robot travel method provided in this application, upon determining that a planned path intersects a speed bump, corrects the planned path for passing through the speed bump based on the robot's motion model. The robot is then controlled to precisely travel along the corrected planned path perpendicular to the speed bump. This prevents the robot from tipping over while passing through the speed bump, improving safety and efficiency during robot travel.
[0156] The present application also discloses a robot system, please refer to Figure 16, which is a schematic block diagram of a robot system in an embodiment of the present application. As shown in the figure, the robot system 2 includes a path planning device 20, a storage device 21, and a processing device 22. In an embodiment, the robot system is, for example, a control system of a cleaning robot (such as 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 combine certain components, or split certain components, or arrange the components differently. The illustrated components can be implemented by hardware or software, or a combination of software and hardware.
[0157] The path planning device 20 is used to collect data on the robot's surrounding environment to generate a planned path; in an embodiment, when the robot performs a moving task, its control system needs to first obtain the planned path generated by the path planning device 20 so that the robot can move along the planned path.
[0158] In some embodiments, the path planning device 20 is used to collect data about the robot's surrounding environment to generate a planned path, which can be pre-planned and stored in its memory so that the robot can read the planned path when performing a moving task.
[0159] In other embodiments, the planned path is obtained by the path planning device 20 through real-time path learning or real-time path planning. For example, when the robot initially moves in an unfamiliar environment, the path planning device 20 obtains the planned path through path learning; or when the robot suddenly loses the planned path during movement or encounters an unknown obstacle and needs to regenerate the planned path to avoid the obstacle, the robot can also use its own positioning and map-building capabilities to enable the path planning device 20 to perform real-time path planning, and use the planned path as the planned path for the current moving task.
[0160] In an embodiment, the planned path is composed of a plurality of path points, each of which includes its coordinate information and heading angle. In other words, the planned path can be regarded as a set of n path points or a trajectory line formed by fitting n path points. In the above step S10, the planned path obtained by the robot system can be either a global path, a local path that is part of the global path, or a path of a certain length that is intercepted / extracted from the global path. In the present application, the robot includes a plurality of path points in the obtained planned path, and each path point includes its own coordinate information and heading angle information.
[0161] The storage device is used to store at least one robot motion control program. In an embodiment, the storage device 21 is used to store at least one program, which is executable by the processing device 22 to coordinate the storage device 21 with the path planning device 20, etc., to implement the robot obstacle avoidance method described in any of the above embodiments. Here, the storage device 21 includes, but is not limited to, read-only memory (ROM), random access memory (RAM), and non-volatile RAM (NVRAM). For example, the storage device 21 includes a flash memory device or other non-volatile solid-state storage device. In some embodiments, the storage device 21 may also include memory remote from one or more processing devices 22, such as a network attached memory accessed via RF circuitry or an external port and a communication network, wherein the communication network may be the Internet, one or more intranets, local area networks, wide area networks, storage area networks, etc., or appropriate combinations thereof. The memory controller may control access to the memory by other components of the device, such as the CPU and peripheral interfaces.
[0162] The processing device 22 is connected to the storage device 21 and the path planning device 20, and is configured to implement the robot movement method shown in Figures 1 to 15 above when executing the at least one robot movement control program. In some embodiments, the processing device 22 includes one or more processors. The processing device 22 is operable to perform data read and write operations with the storage device 21. The processing device 22 includes one or more general-purpose microprocessors, one or more application-specific processors (ASICs), one or more digital signal processors (DSPs), one or more field programmable gate arrays (FPGAs), or any combination thereof. In an embodiment, the processor is configured to read and execute computer-readable instructions. In a specific implementation, the processor may primarily include a controller, an arithmetic unit (ALU), and registers. The controller is primarily responsible for decoding instructions and issuing control signals for the operations corresponding to the instructions. The ALU is primarily responsible for performing fixed-point or floating-point arithmetic operations, shift operations, and logical operations, and may also perform address operations and conversions. The registers are primarily responsible for storing register operands and intermediate operation results temporarily stored during instruction execution. In a specific implementation, the hardware architecture of the processor may be an application specific integrated circuit (ASIC) architecture, a MIPS architecture, an ARM architecture, or an NP architecture, etc.
[0163] In an embodiment, the processor may include one or more processing units, for example, the processor may include an application processor (AP), a modem processor, a graphics processing unit (GPU), an image signal processor (ISP), a controller, a video codec, a digital signal processor (DSP), a baseband processor, and / or a neural-network processing unit (NPU), etc. Different processing units may be independent devices or integrated into one or more processors.
[0164] The present application also provides a computer storage medium, a computer-readable storage medium, which stores at least one robot movement control program. When the robot movement control program is executed by the robot's processor, it implements the robot movement method described in Figures 1 to 15 and related embodiments.
[0165] 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.
[0166] 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.
[0167] In one or more exemplary aspects, the functions described in the computer program of the robot locomotion method 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 method or algorithm disclosed herein can be embodied in a processor-executable software module, wherein the processor-executable software module 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.
[0168] 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.
[0169] The present application also provides a computer program product, which, when running on a computer, enables the computer to implement the robot movement method described in Figures 1 to 15 and related embodiments. Specifically, the technical solution of the present application, or the part that contributes to the prior art, or the part 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 a number of instructions for enabling a computer device (which can be a personal computer, a server, or a network device, etc.) to execute all or part of the steps of the method described in each embodiment of the present application.
[0170] 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 robot moving method, characterized in that: The following steps are involved: When the robot moves according to the planned path and the preset motion model, it obtains the road condition information in the planned path; wherein the robot has left and right driving wheels located at the rear side of its body and at least one passive universal wheel located at the front side of its body; When it is determined that the planned path intersects with a speed bump, the planned path passing through the speed bump is corrected according to the motion model of the robot; The robot is controlled to move along the corrected planned path through the speed bump in a direction perpendicular to the speed bump.
2. The robot travel method according to claim 1, characterized in that: 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 on the front side of the passive universal wheel as the end point.
3. The robot travel method according to claim 1, characterized in that: When the robot moves according to the planned path and the preset motion model, the road condition information obtained in the planned path is the road condition information in the parking garage, and the planned path includes a path planned to be adjacent to the right or left edge of the road of the parking garage.
4. The robot travel method according to claim 1, characterized in that: The step of determining that the planned path intersects with the speed bump includes: determining that the planned path intersects with the speed bump based on the pre-marked speed bump position and the coordinate position of each path point in the planned path.
5. The robot travel method according to claim 1, characterized in that: The step of determining that the planned path intersects with the speed bump includes determining that the planned path intersects with the speed bump based on the speed bump position obtained by real-time identification of the robot during movement and the coordinate position of each path point in the planned path.
6. The robot travel method according to claim 1, characterized in that: The step of determining that the planned path intersects with the speed bump includes: when the robot moves according to the planned path and a preset motion model, if its moving trajectory intersects with the speed bump, determining that the planned path intersects with the speed bump.
7. The robot travel method according to claim 1, characterized in that: The step of correcting the planned path passing through the intersection according to the motion model of the robot comprises: Deleting multiple path points in the planned path that intersect with the speed bump; According to the motion model of the robot, and with the breakpoint close to one side of the robot as the starting point and the breakpoint away from one side of the robot as the end point, a compensation path including a speed bump path is generated and compensated to the planned path, so that the heading of each path point in the speed bump path is perpendicular to the extension direction of the speed bump.
8. The robot travel method according to claim 7, characterized in that: The step of deleting multiple path points in the planned path that intersect with the speed bump includes: determining and deleting multiple path points in the planned path that intersect with the speed bump based on the robot motion model and its turning radius.
9. The robot travel method according to claim 7, characterized in that: The distance between the starting point and the speed bump is greater than the distance between the end point and the speed bump.
10. The robot travel method according to claim 7, characterized in that: The step of compensating the generated compensation path into the planned path includes: smoothing the compensation path to correct the planned path passing through the intersection.
11. The robot travel method according to claim 1, characterized in that: When the robot is controlled to pass through the speed bump along the corrected planned path, if an obstacle is detected in the speed bump area in its travel trajectory, the robot slows down and stops to wait for the obstacle to disappear before continuing to pass through the speed bump.
12. 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 travel control of the robot following the planned path, and the control device is configured as follows: When the robot moves according to the planned path and the preset motion model, it obtains the road condition information in the planned path; wherein the robot has left and right driving wheels located at the rear side of its body and at least one passive universal wheel located at the front side of its body; When it is determined that the planned path intersects with a speed bump, the planned path passing through the speed bump is corrected according to the motion model of the robot; The robot is controlled to move along the corrected planned path through the speed bump in a direction perpendicular to the speed bump.
13. The robot according to claim 12, characterized in that: The robots include commercial cleaning robots.
14. A robot system, characterized in that: include: A storage device for storing at least one robot travel control program; A path planning device, used to collect data about the robot's surrounding environment to generate a planned path; A processing device is connected to the storage device and the path planning device, and is used to implement the robot movement method as described in any one of claims 1-11 when executing the at least one robot movement control program.
15. 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 a processor of the robot, the robot movement method as described in any one of claims 1-11 is implemented.
16. A computer program product, characterized in that When the computer program product runs on a computer, the computer is enabled to execute the robot movement method according to any one of claims 1 to 11.
Citation Information
Patent Citations
Deceleration curb-based direction checking and lane keeping system for autonomous driving vehicles
CN109070889A
Deceleration strip passing method and device
CN111568324A
Local path planning method and device, computer readable storage medium and robot
CN111752276A
Obstacle avoidance method and device, decision maker, storage medium, chip and robot
CN113741435A
Self-moving device
CN215959678U
Cited By
Path planning method, electronic equipment and storage medium
CN120084351A