Robot, Robot Traveling Method, Robot System, and Computer Storage Medium

By correcting the robot's planning path to travel in the vertical speed bump direction, the problem of cleaning robots pouring on the speed bump is solved, and safety and work efficiency are improved.

CN119744375BActive Publication Date: 2025-07-22SPARKOZ TECH CORP
View PDF 3 Cites 0 Cited by

Patent Information

Application Number
CN202380031037.8
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2023-07-29
Publication Date
2025-07-22
Estimated Expiration
2043-07-29

AI Technical Summary

Technical Problem

Cleaning robots are prone to tilt when passing through speed bumps, especially robots with rectangular chassis and rear-wheel drive, which leads to unstable travel and inability to accurately follow the planned route.

Method used

By obtaining the road condition information in the planned path, judging that the speed bumps cross, the planned path is corrected according to the robot's motion model, so that the robot can travel vertically in the speed bumps, and control it with the left and right driving wheels located on the rear side and the passive universal wheels located on the front side.

Benefits of technology

Ensure that the robot passes through the speed bump safely, improves safety and work efficiency during the journey and avoids the risk of falling.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119744375B_ABST
    Figure CN119744375B_ABST
Patent Text Reader

Abstract

A robot, a robot traveling method, a robot system, and a computer storage medium. The method includes the following steps: when the robot travels according to a planned path and a preset motion model, it obtains road condition information in the planned path (S10); wherein, the robot has left and right drive wheels located at the rear side of its body and at least one passive universal wheel located at the front side of its body; when it is determined that the planned path intersects with a speed bump, it corrects the planned path passing through the speed bump according to the motion model of the robot (S11); and controls the robot to travel through the speed bump along the corrected planned path in a direction perpendicular to the speed bump (S12).
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present application relates to the technical field of robots, and in particular, to a robot, a robot traveling 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 scenarios to replace manual work. For example, robots replace humans to clean the floor surface.

[0003] As a machine device that automatically performs work, a robot usually needs to control its movement along a pre-planned path during task execution. Taking a cleaning robot as an example, in some scenarios, the cleaning robot needs to travel along the planned path in a straight line, turn, or arc according to a pre-set cleaning mode or real-time road conditions. However, in some application scenarios, such as a parking garage scenario, when the cleaning robot travels along the pre-planned path, it often needs to pass over a speed bump in the garage. Due to the relatively high overall height and heavy weight of the cleaning robot, it is prone to tipping over when passing over the speed bump. Summary of the Invention

[0004] In view of the above-mentioned disadvantages of the related art, the purpose of the present application is to provide a robot, a robot traveling method, a robot system, a computer storage medium, and a computer program product, which are used to solve the technical problem that a cleaning robot is prone to tipping over when passing over a speed bump.

[0005] To achieve the above object and other related objects, the first aspect of the present application provides a robot traveling method, including the following steps: when the robot travels according to a 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 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, correct the planned path passing through the speed bump according to the motion model of the robot; control the robot to travel through the speed bump along the corrected planned path in a direction perpendicular to the speed bump.

[0006] The second aspect of the present application provides a robot, including: a 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 for controlling the rotational speeds of the left and right driving wheels to achieve the traveling control of the robot following a planned path, and the control device is configured to: when the robot travels according to the planned path and a preset motion model, obtain 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, correct the planned path passing through the speed bump according to the motion model of the robot; control the robot to travel through the speed bump along the corrected planned path in a direction perpendicular to the speed bump.

[0007] The third aspect of the present application provides a robot system, including: a storage device for storing at least one robot traveling control program; a path planning device for collecting data of the environment around the robot to generate a planned path; a processing device connected to the storage device and the path planning device for implementing the robot traveling method as described in the first aspect above when executing the at least one robot traveling control program.

[0008] The fourth aspect of the present application provides a computer-readable storage medium storing at least one robot traveling control program, and when the robot traveling control program is run by a processor of the robot, it implements the robot traveling method as described in the first aspect above.

[0009] The fifth aspect of the present application discloses a computer program product, which when run on a computer, causes the computer to execute the robot traveling method as described in the first aspect of the present application.

[0010] In summary, for the robot, robot traveling method, robot system, computer storage medium, and computer program product provided by the present application, 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, and the robot is controlled to travel through the speed bump along the corrected planned path in a direction perpendicular to the speed bump. In this way, it is ensured that the robot will not tip over during the process of passing through the speed bump, and the safety and working efficiency during the traveling of the robot are improved. BRIEF DESCRIPTION OF THE DRAWINGS

[0011] The specific features involved in the present application are shown in the appended claims. The features and advantages of the invention involved in the present application can be better understood by referring to the exemplary embodiments and the drawings described in detail below. A brief description of the drawings is as follows:

[0012] Figure 1Shows a schematic diagram of the three-dimensional structure of the robot in an embodiment of the present application.

[0013] Figure 2 Shows a schematic flowchart of the robot traveling method in an embodiment of the present application.

[0014] Figure 3 Shows a schematic diagram of the planned path of the robot of the present application on a partial driving road in an embodiment.

[0015] Figure 4 Shows a schematic diagram of the planned path obtained by the robot in an embodiment of the robot traveling method of the present application.

[0016] Figure 5 Shows the present application Figure 4 Enlarged schematic diagram at point A.

[0017] Figure 6 Shows a schematic diagram of the principle of the motion model of the robot in an embodiment of the present application.

[0018] Figure 7 Shows a schematic diagram of the planned path intersecting with the speed bump in an embodiment of the present application.

[0019] Figure 8a Shows a schematic diagram of the planned path and the speed bump in an embodiment of the present application.

[0020] Figure 8b Shows the present application based on Figure 8a Schematic diagram of the traveling trajectory generated based on the planned path in the embodiment intersecting with the speed bump.

[0021] Figure 9 Shows a schematic flowchart of the robot in an embodiment of the present application modifying the planned path passing through the intersection according to its motion model.

[0022] Figure 10 Shows the present application will Figure 7 Schematic diagram after deleting multiple path points intersecting with the speed bump in the planned path in the embodiment.

[0023] Figure 11 Shows that the present application Figure 10 Schematic diagram after deleting the path points outside the contour of the speed bump in the planned path shown in the embodiment.

[0024] Figure 12a Shows a schematic diagram of the planned path passing through the speed bump in an embodiment of the present application.

[0025] Figure 12b Shows that the present application Figure 12a Schematic diagram after deleting the path points intersecting with the speed bump.

[0026] Figure 12c It is shown that the compensation path generated based on the Figure 12b endpoint and start point in is compensated to the Figure 12b schematic diagram in the planned path shown.

[0027] Figure 12d It is shown as Figure 12c the schematic diagram after smoothing the compensation path in.

[0028] Figure 12e It is shown that in an embodiment of the present application, the generated compensation path is compensated to the Figure 12a schematic diagram in.

[0029] Figure 13 It is shown as the travel control flowchart in an embodiment of the robot travel control method of the present application.

[0030] Figure 14 It is shown as Figure 12d the enlarged schematic diagram for determining multiple path points from.

[0031] Figure 15 It is shown as the schematic diagram for obtaining the travel expectation information of each passing point in an embodiment of the robot travel control method of the present application.

[0032] Figure 16 It is shown as the principle block diagram of the robot system in an embodiment of the present application. Detailed implementation manners

[0033] The following specific embodiments illustrate the implementation manners of the present application. Those skilled in the art can easily understand other advantages and effects of the present application from the content 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 the composition of modules or units, electrical, and operations 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 only defined by the published claims. The terms used herein are only for describing specific embodiments and are not intended to limit the present application.

[0034] It can be understood that, as used herein, the term "module" may refer to or include an application specific integrated circuit (ASIC), an electronic circuit, a processor (shared, dedicated, or group) that executes one or more software or firmware programs and / or memories, combinational logic circuits, and / or other suitable hardware components that provide the described functions, or may be a part of these hardware components.

[0035] In the prior art, robots often need to turn or steer according to their planned paths or due to obstacle avoidance requirements in the working scenario. To obtain better turning control, such as a smaller turning radius or faster turning agility, the chassis of the robot is often set to be circular. Commonly, for example, household floor cleaning robots or commercial hotel service robots, the two drive wheels of the robot are respectively located at both ends of the diameter of its circular chassis, thereby achieving a zero-degree in-place rotation. Even if the chassis of some specific robots is set to be rectangular or approximately rectangular, the two drive wheels under the chassis are often respectively located on opposite sides of the center line of the chassis. This is still a circular chassis concept. The advantage of doing this is that the robot can obtain better flexibility and turning control.

[0036] For some robots with specific functions, the above-mentioned circular chassis or the design of circular chassis thinking will affect the specific performance of the robot. For example, for cleaning robots (such as floor washing robots or floor scrubbing robots) applied in parking garage scenarios, in order to obtain a larger effective working area, such robots require a chassis that is roughly rectangular so as to set more or larger cleaning components (such as rotating scrubbing discs) under the chassis. In this case, if the two side drive wheels are still arranged axially in the middle of the chassis, it will greatly limit the arrangement of the cleaning components or require sacrificing the size or working area of the cleaning components; 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 at the rear side and the front side of its chassis. For example, two wheels are arranged on the opposite sides of the rear side of the chassis, and a servo wheel / steering wheel is arranged in the middle of the front side. The servo wheel provides driving force and is responsible for steering, and the two wheels at the rear side are driven wheels. Although this kind of design can reserve more space in the middle of the robot chassis, for cleaning robots, its side brushes are often arranged in front of the robot (usually on the left or right side in front of the fuselage), and since a part of the space in front of the robot has been occupied by the driving mechanism / device of the servo wheel, it will affect the full play of the cleaning function of cleaning components such as side brushes; furthermore, the servo wheel located at the front side has to bear both the steering of the robot and the weight support of the front side of the robot body and the dragging force for driving the whole machine to move, and thus it is required that the front servo wheel is as much as possible at the force application point on the front side of the fuselage. In other words, based on the above limitations, it is not easy to set the front servo wheel at a more forward position. In this way, since the turning amplitude of the robot is controlled by the turning amplitude of the servo wheel located at its front side, when the robot turns (especially when turning with a large curvature), the front part of the whole robot will have too high a speed while the rear part has a slow speed, which is not conducive to the overall stability of the robot's movement. For example, it is not conducive to crossing obstacles due to the too fast turning speed of the front part, and more importantly, it cannot follow its planned route more accurately. Especially when the robot passes over a speed bump, limited by the structure of the robot (for example, the passive universal wheels of the robot are located at the front side of the robot body and the left and right drive wheels are located at the rear side of the body), the robot is very likely to tip over. Then how to make the robot safely pass over the speed bump is an urgent problem to be solved, especially for robots with rear-wheel drive and a chassis that is roughly rectangular.

[0037] In view of this, how to prevent a robot with a non-circular chassis or a non-circular chassis thinking design from tipping over when passing over a speed bump is the technical problem to be solved by this application.

[0038] The present application discloses a robot and a robot traveling method. 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, and the robot is controlled to travel along the corrected planned path in a direction perpendicular to the speed bump. In this way, it is ensured that the robot will not tip over during the process of passing through the speed bump, improving the safety and working efficiency of the robot during the traveling process.

[0039] In the present application, the robot refers to an autonomous mobile device capable of constructing a map in a physical space, including but not limited to: one or more of a home companion mobile device, a medical mobile device, a household cleaning robot, a commercial cleaning robot, a patrol robot, etc. For example, it is a service robot (such as a cleaning robot, a patrol robot, or a robot for delivering meals / items) applied in a commercial scenario to perform a certain task or a home robot (such as a floor cleaning robot or a companion robot, etc.) applied in a home scenario to perform cleaning or entertainment tasks.

[0040] The physical space refers to the actual three-dimensional space where the robot is located, which can be described by abstract data constructed in the space coordinate system. For example, the physical space includes but not limited to a home residence, public places (such as an office, a shopping mall, a hospital, an underground parking garage, and a bank), etc. For the robot, the physical space usually refers to an indoor space, that is, the space has boundaries in the length, width, and height directions. In particular, it includes physical spaces with characteristics such as a large space range and a high degree of scene repetition, such as a shopping mall, a parking garage, and a waiting hall.

[0041] Please refer to Figure 1 , which shows a schematic three-dimensional structure diagram of the robot in an embodiment of the present application. As shown in the figure, the robot is a cleaning robot, and the cleaning robot is, for example, a device capable of performing one or more tasks such as sweeping, vacuuming, and mopping on a cleaning surface. Correspondingly, the cleaning robot is provided with one or more accessories or components such as a cleaning brush for sweeping, a mop, and a water tank for containing clean water or sewage. In the following embodiments, the robot is taken as a commercial cleaning robot as an example for description.

[0042] The surface to be cleaned refers to the floor surface, including tiles, stones, bricks, wood, concrete, carpets, and other common surfaces. The surface to be cleaned can also be referred to as a cleaning surface, a ground surface, a surface, a walking surface, etc. It should be noted that in the present application, for the convenience of description and understanding, the plane parallel to the surface to be cleaned, that is, the floor surface, is called a horizontal plane or a horizontal direction, and the plane perpendicular to the surface to be cleaned, that is, the floor surface, is called a vertical plane or a vertical direction.

[0043] Further, for the convenience of description and understanding, in the present application, the forward direction of the robot during operation is defined as the front direction (for example Figure 1 the direction indicated by arrow Q in

[0044] ). Correspondingly, the opposite direction of the forward direction during operation is defined as the rear direction. It should be understood that one side of the forward direction of the robot during operation is defined as the front side or the front end, and the side of the robot opposite to the front side or the front end is defined as the rear side or the rear end. For the convenience of distinguishing the left and right sides, the left and right are distinguished based on the forward direction of the robot during operation.

[0045] In an embodiment, the left drive wheel is disposed at the rear side of the bottom of the body 10 of the robot 1 and on the left side of the robot 1, and the right drive wheel is disposed at the rear side of the bottom of the body 10 of the robot 1 and on the right side of the robot 1. The left drive wheel and the right drive wheel are coaxially disposed and are used to drive the robot 1 to move forward or backward when driven by their respective motors, or to drive the robot 1 to turn by using the differential speed of the left and right drive motors.

[0046] In another embodiment, there are two universal wheels, which are respectively disposed at the left and right positions on the front side of the bottom of the body of the robot and are used to support the weight of the front part of the robot and cooperate with the differential speed of the left and right drive wheels to passively achieve turning of the robot. It should be understood that in other embodiments, the number of the universal wheels can be configured accordingly according to the needs of the robot. For example, on the basis of providing a passive universal wheel at the middle position on the front side of the bottom of the robot body, passive universal wheels are respectively provided at the left and right positions on its front side.

[0047] The robot may further have a control device (not shown), which is electrically coupled to the left and right drive wheels and is used to control the rotation speeds of the left and right drive wheels so as to control the robot to follow a planned path. The control device usually has a processor and a memory. In some embodiments, the control device is disposed on a circuit board (not shown) inside the body and includes a memory and a processor, etc. The memory and the processor are directly or indirectly electrically connected to achieve data transmission or interaction. For example, the memory and the processor may be electrically connected to each other through one or more communication buses or signal lines.

[0048] The control device may further include at least one driving unit, such as a left-wheel driving unit for driving the left driving wheel and a right-wheel driving unit for driving the right driving wheel. The driving unit may include one or more processors (CPUs) or microprocessing units (MCUs) dedicated to controlling the driving motor. For example, the microprocessing unit is used to convert the information or data provided by the control device into an electrical signal for controlling the driving motor, and control the rotation speed, steering, etc. of the driving motor according to the electrical signal to adjust the moving speed and moving direction of the cleaning robot. The information or data is, for example, the deflection angle determined by the control device. The processor in the driving unit may share or be independently provided with the processor in the control device. For example, the driving unit is used as a slave processing device, and the control device is used as a master device, and the driving unit performs movement control based on the control of the control device. Or the processor in the driving unit is shared with the processor in the control device. The driving unit receives the data provided by the control device through a program interface. The driving unit is used to control the driving wheel based on the movement control instruction provided by the control device.

[0049] In some embodiments, the processor includes an integrated circuit chip with signal processing capabilities; or a general-purpose processor, for example, it may be a digital signal processor (DSP), an application-specific integrated circuit (ASIC), discrete gate or transistor logic devices, discrete hardware components, which can implement or execute the various methods, steps and logic block diagrams disclosed in the embodiments of the present application. The general-purpose processor may be a microprocessor or any conventional processor, etc.

[0050] In some embodiments, the memory may include a random access memory (RAM), a read-only memory (ROM), a programmable read-only memory (PROM), an erasable programmable read-only memory (EPROM), an electrically erasable programmable read-only memory (EEPROM), etc. The memory is used to store programs (such as path planning programs, cleaning programs, etc.), and the processor executes the program after receiving an execution instruction.

[0051] A plurality of detection devices are provided on the body of the robot, which are used for the robot to detect and / or identify surrounding obstacles in the surrounding environment, so as to adjust its own moving direction and / or moving posture according to the received feedback signal, and avoid colliding with obstacles or falling off a cliff. It should be understood that according to different actual requirements, the number of the detection devices can also be set more at different positions of the robot body according to actual needs to improve the detection accuracy.

[0052] In an embodiment, the detection devices of the robot include, 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.; among them, for example, the laser sensor can determine its distance relative to an obstacle according to the time difference between the time when it emits a laser beam and the time when it receives the laser beam; another example is that the ultrasonic sensor can determine the distance of the robot relative to an obstacle according to the vibration signal of the sound wave it emits being bounced back by the obstacle; furthermore, the binocular camera device can determine the distance of the robot relative to an obstacle according to the images captured by its two cameras by using the triangulation principle; also, the infrared light projector of the ToF (Time of Flight) sensor projects infrared light outwards, 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 called an obstacle sensor. The obstacle sensor mentioned later should be understood in this way and will not be elaborated further.

[0053] Among them, an obstacle refers to an object that will block the robot on its travel path or travel trajectory; the obstacles have different types according to different environments. For example, in an indoor scene, the obstacles may be speed bumps, doors, walls, pillars, stairs, tables, chairs, cabinets, flower pots, electrical appliances and other various placed objects; in an outdoor scene, the obstacles may include buildings, public facilities, pedestrians, etc.

[0054] In one embodiment, when the robot is applied to a scene containing speed bumps such as a parking garage, in order to control the robot to safely pass or bypass the speed bump, the robot identifies the speed bump based on the detection device. For example, the robot uses the acquired image to identify the speed bump. Furthermore, the robot can determine the relative position between the identified speed bump and the robot and the position of the speed bump in the working area of the robot. For example, the robot determines the relative position between the speed bump and the robot when the robot captures the image and the position of the speed bump in the working area of the robot based on the position of the speed bump in the image.

[0055] In some embodiments, the robot can identify speed bumps in an image according to a preset neural network recognition model, or can also identify speed bumps based on the contour features and / or color features of the speed bumps. For example, the contour features include: the long side of the speed bump has obvious straight edge features, the two straight edge features are parallel to each other, and the distance between the two parallel straight edge features is 20 cm - 40 cm. The color features include: yellow or black and yellow alternating, etc.

[0056] In an embodiment, the robot uses multiple behavior patterns to effectively define the cleaning work area, where the behavior pattern is 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 behavior patterns of any given scenario based on inputs from the sensor system. Such as the robot route following pattern, turning pattern, obstacle avoidance pattern, or the edge following pattern where the robot follows the edge of an obstacle, or the wall following pattern where the robot follows a wall, or the traveling pattern where the robot travels in a "bow" shape or a "square" shape according to a preset planned path.

[0057] Please refer to Figure 2 , which shows a schematic flow chart of the robot traveling method in an embodiment of the present application. As shown in the figure, the robot traveling method of the present application includes step S10, step S11, and step S12. The robot traveling method can be executed by the control device of the robot described above or by other computer devices that can execute the robot traveling method of the present application.

[0058] In step S10, when the robot travels according to the planned path and the preset motion model, it obtains the road condition information in the planned path.

[0059] Specifically, when the robot executes the traveling task, its control device needs to first obtain the planned path so that the robot can travel along the planned path according to the preset motion model.

[0060] In an embodiment, when the robot travels in a parking garage, the planned path includes a path planned to be adjacent to the right or left edge of the road near the parking garage. Specifically, the robot plans the 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: keeping to the right or keeping to the left. For example, when the traffic rule is to keep to the right, the planned path includes a path planned to be adjacent to the right side of the road near the parking garage. Please refer to Figure 3 , which shows a schematic diagram of the planned path of the robot of the present application on a partial driving road in an embodiment. As shown in the figure, Figure 3The planned path L therein 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 of the parking garage. It should be noted that the planned path may not be planned according to the traffic rules. For example, it only needs to ensure that the planned path is adjacent to the right or left edge of the road of the parking garage.

[0061] It should be noted that the path adjacent to the right or left edge of the road of the parking garage described above may also be connected to a path at other positions such as the center of the road of the parking garage.

[0062] 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.

[0063] In other embodiments, the planned path is obtained by means of immediate path learning or immediate path planning. For example, the planned path obtained by the robot through path learning when initially traveling in an unfamiliar environment; or in a scenario where the robot suddenly loses the planned path or encounters unknown obstacles during traveling and needs to re-generate the planned path to avoid the obstacles, the robot can also perform immediate path planning in real time by virtue of its own positioning and map building capabilities, and use the planned path as the planned path for the current traveling task.

[0064] In an embodiment, the planned path is composed of multiple path points, and each path point 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 fitted by n path points. In the above step S10, the planned path obtained by the robot system can be either a global path, or a partial path within the global path, or a path of a certain length intercepted / extracted from the global path.

[0065] Please refer to Figure 4 and Figure 5 , Figure 4 which shows a schematic diagram of the planned path obtained by the robot in an embodiment of the robot traveling method of the present application. Figure 5 It is shown as Figure 4 the enlarged schematic diagram at point A in i , y i ), and the heading angle information (θ i ).

[0066] In this 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. Again, the robot can select multiple path points from the obtained planned path according to the attributes of the detection device configured by the robot. Among them, the attributes 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 determines 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; again, when the robot determines 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, for the sake of illustration, it is temporarily assumed that the robot selects 24 path points from the obtained planned path.

[0067] In one embodiment, the robot sets the step length of the path points according to the preset number of 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 large curvature, it sets the step length of the path points to be relatively small according to the determined number of 24 path points. For example, it selects path points with a step length of 5 cm for each path point.

[0068] In another embodiment, the robot sets the step length of the path points according to the preset number of 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 with a large curvature (such as a turning point) and another local planned path with a small curvature (such as an approximate straight line), then, according to the determined number of 24 path points, it sets the step length of the path points on the path with a large curvature to be relatively small, for example, it selects path points with a step length of 5 cm for each path point; according to the determined number of 24 path points, it sets the step length of the path points on the path with a small curvature to be relatively large, for example, it selects path points with a step length of 10 cm for each path point. It should be understood that the example step lengths of 5 cm or 10 cm here are intended to illustrate the relative distance between path points.

[0069] In still another embodiment, the robot sets the step length of the path points according to the preset number of path points and its preset speed. For example, when the robot is moving in a preset uniform speed mode, it can set the step length of the path points according to the preset speed. For example, it selects path points with a step length of 5 cm for each path point.

[0070] In yet another embodiment, the robot determines the step length of the path points from the planned path according to the preset number of path points and its real-time speed. For example, when the robot is moving in a relatively low-speed mode, it selects path points with a step length of 5 cm for each path point, and when it is moving in a relatively high-speed mode, it selects path points with a step length of 10 cm for each path point.

[0071] In an embodiment, the process of the robot selecting the path point step lengths of multiple path points from the obtained planned path is dynamically adjusted. For example, the path point step lengths of 24 path points are dynamically adjusted based on the curvature change of the currently obtained local planned path or the real-time speed change of the robot.

[0072] In one embodiment, the present application is based on Figure 1 the shown robot to construct a motion model. As described above Figure 1 As shown in the foregoing, in the present application, the passive caster 12 of the cleaning robot 1 is disposed at the bottom of the robot body 10 and in the middle position on the front side of the robot 1 body, and is used to support the weight of the front part of the robot 1 body 10 and cooperate with the differential speed of the left and right drive wheels 11 located at the rear side to enable the robot 1 body 10 to execute steering. In the present application, the axis midpoints of the passive caster 12 and the left and right drive wheels of the robot are collinear.

[0073] The passive caster 12 is used to support the weight of the front part of the cleaning robot and is disposed at the bottom of the body 10 of the cleaning robot 1 and in the middle position on the front side of the cleaning robot 1. Then, there is still a certain distance from the projection point of the caster 12 to the front side edge of the robot body. When the cleaning robot makes a turning motion, affected by the linear velocity of the body turning, the drive wheels 11 at the rear side of the cleaning robot, the passive caster 12 at the front side of the cleaning robot, and the front side edge of the body respectively exhibit different turning speeds (this phenomenon is more obvious on a route with a larger curvature). In order to avoid the problem of line-following accuracy caused by the excessive rotation speed of the front side of the robot body, in the present application, the motion model of the robot is a motion model starting from the axis midpoint of the left and right drive wheels and ending at the virtual point in front of the passive caster.

[0074] In an embodiment where the front caster includes two left and right casters, the motion model of the robot is a motion model starting from the axis midpoint of the left and right drive wheels and ending at the virtual point in front of the axis midpoint of the two left and right casters.

[0075] To facilitate the description of the motion model of the robot in the present application, the motion of the robot in the vertical direction (Z-axis direction) is not considered here, that is, the motion of the robot is regarded as a motion on a two-dimensional plane. On this basis, it is assumed that the left and right drive wheels at the rear side of the robot have the same steering angle and rotation speed at any time, then the motion of the left and right drive wheels of the robot can be combined into one wheel for description (taking the axis midpoint of the left and right drive wheels of the robot); in addition, in the motion model, it is assumed that the traveling speed of the robot changes slowly, and the transfer of the front and rear axle loads is ignored, and the robot body is regarded as a rigid system.

[0076] Please refer to Figure 6 , which shows a schematic diagram of the motion model principle of the robot in an 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), attitude (i.e., heading angle θ), speed (v), and steering angle (δ). As shown in the figure, when constructing the motion model of the robot in the present application, a virtual point p is selected in front of the passive caster wheel in advance, that is, the virtual point p is located between the passive caster wheel and the front edge of the robot, and the virtual point is closer to the front edge of the robot relative to the passive caster wheel. Then, the starting point o(x0, y0) of the motion model of the robot is located at the center position of the rear axle, and the end point p(x p , y p ) of the motion model of the robot is located at the virtual point in front of the passive caster wheel. The rigid body structure formed by the connection line between the starting point (x0, y0) and the end point p(x p , y p ) is the constructed motion model. The coordinate axes are parallel to the robot body. Among them, R represents the turning radius of the motion model of the robot, d represents the line distance between the starting point (x0, y0) and the end point p(x p , y p ) of the motion model of the robot, l represents the wheelbase between the left driving wheel and the right driving wheel, 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 caster wheel.

[0077] It should be understood that in the motion model of the robot in the present application, by calculating to control the speed of the end point p(x p , y p ) in the motion model (i.e., the virtual point p), and converting this speed into the control amounts of the left and right driving wheels at the rear of the robot, so as to realize the approximation degree or coincidence degree of the starting point o(x0, y0) in the motion model of the robot to each path point in the planned path. In other words, in the present application, by calculating the speed of the end point p(x p , y p ) in the motion model (i.e., the virtual point p) to control the approximation degree or coincidence degree of the starting point o(x0, y0) in the motion model to each path point in the planned path. Based on Figure 6 the motion model of the robot shown in, after the robot obtains the control input information at a certain moment, such as the speed and steering angle at the next moment, it can control the robot to move forward according to these two control amounts.

[0078] When the robot travels according to the planned path and the preset motion model, in order to ensure the safety of the robot's travel, for example, to ensure that the robot will not tip over when passing over a speed bump, the robot will obtain the road condition information in the planned path for step S11 to determine whether there is an intersection between the planned path and the speed bump.

[0079] The road condition information obtained by the robot during travel includes scene information and / or obstacle information. Among them, the scene information is, for example, the scene where the robot is located, such as the aisle attributes of supermarket shelves, warehouse shelves, indoor aisles in offices, or aisles in parking garages, such as information about the length, width, curvature, etc. of the aisle; the obstacle information is, for example, information about the type and / or position of the obstacle. In this embodiment, the aisle attributes can be pre-stored in the robot's memory, or can be detected, identified, and analyzed in real time or instantaneously based on the robot's detection device; the type classification method of the obstacle can be static obstacles or dynamic obstacles, and the type of the obstacle can also have different types according to different environments.

[0080] In one embodiment, the road condition information is the road condition information in a parking garage. Among them, the parking garage includes an indoor parking garage and / or an outdoor parking garage, etc. The road condition information in the parking garage includes the scene information of the parking garage and / or the obstacle information of the parking garage. The scene information of the parking garage includes the aisle attributes in the parking garage. The aisles in the parking garage include driving roads, parking spaces, parking garage entrances and exits, etc. The static obstacle information in the parking garage includes doors, walls, columns, stairs, charging piles, warning signs, speed bumps, and other various placed objects, etc. The dynamic obstacles in the parking garage include humans, animals, and movable devices such as robots and vehicles.

[0081] In some embodiments, the road condition information in the planned path obtained by the robot during travel can be pre-stored or determined by real-time recognition. For example, the position of the speed bump in the parking garage can be pre-stored or determined by real-time recognition. In the following embodiments, an example of obtaining the obstacle information in the planned path will be used for illustration.

[0082] In one embodiment, before the robot travels according to the planned path, it has identified the obstacles (such as speed bumps) in the working area based on the detection device and determined the positions of the obstacles. For example, when constructing a map, the robot identifies the obstacles and determines their positions. Furthermore, the robot can record / label the identified obstacles. For example, the robot labels the position where the speed bump is located on the map as a speed bump. In this embodiment, the robot obtains the pre-labeled obstacle positions during travel, for example, obtains the pre-labeled speed bump positions during travel.

[0083] In one embodiment, the robot recognizes obstacles in real time during the process of traveling along the planned path. In this embodiment, the robot obtains detection data of the surrounding environment detected by a detection device to recognize obstacles. For example, the detection device may be a laser sensor. The laser sensor emits laser beams for obstacle detection. The detection data obtained by the robot is point cloud data. The robot performs point cloud clustering on the point cloud data to group and aggregate the point cloud data of the same object to form a point cloud set. Each point cloud set can represent an obstacle and its size range. Based on the point cloud set, line segment fitting can be performed to obtain the contour information of the obstacle and determine the position of the obstacle. The detection device may also be a camera, for example. The detection data obtained is image data. The robot performs obstacle recognition based on the image data and extracts obstacle line information to obtain the contour of the obstacle and determine the position of the obstacle. In this embodiment, the robot determines the position of the obstacle by recognizing obstacles in real time during the traveling process. For example, it recognizes the speed bump and determines the position of the speed bump through the real-time monitoring of the detection device.

[0084] In one embodiment, the pre-planned path of the robot may cross the speed bump. If the planned path crossing 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 and pass through the speed bump vertically, then a robot with a non-circular chassis or a non-circular chassis design is likely to tip over when passing through the speed bump. For example, the robot shown in this application Figure 1 That is, a robot with passive caster wheels located on the front side of the robot body and left and right drive wheels located on the rear side of the body and a chassis that is generally rectangular. In view of this, before controlling the robot to pass through the speed bump, the robot also performs step S11.

[0085] 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 motion model of the robot.

[0086] In one embodiment, it is determined that the planned path intersects with the speed bump based on the pre-labeled position of the speed bump and the coordinate positions of each path point in the planned path. Specifically, in the embodiment described above, the robot obtains the pre-labeled position of the speed bump during the traveling process. When the coordinate positions of each path point in the planned path are included in the position of the speed bump, it can be determined that the planned path intersects with the speed bump. The preset angle is an angle that is not perpendicular. In the present application, the connection line of each path point included in the position of the speed bump in the planned path intersects with the speed bump, and the angle of the "intersection" does not belong to the "perpendicular" situation described in the present application. Then, the planned path passing through the speed bump needs to be corrected according to the motion model of the robot; the "perpendicular" is approximately perpendicular. For example, the included angle between the extending direction of the speed bump and the traveling direction of the robot on the speed bump (i.e., the direction of the connection line of each path point included in the position of the speed bump in the planned path) within the range of 80 degrees - 100 degrees can be regarded as the "perpendicular"; in other words, when the robot determines that the planned path intersects with the speed bump and the "intersection" belongs to the above "perpendicular" situation, such as the included angle between the extending direction of the speed bump and the traveling 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, 99 degrees, or 100 degrees, it is no longer necessary to correct the planned path passing through the speed bump according to the motion model of the robot. That is, the robot can pass through the speed bump according to the established planned path.

[0087] Please refer to Figure 7 , which shows a schematic diagram of the intersection of the planned path and the speed bump in an embodiment of the present application. As shown in the figure, the coordinate positions of path point j + 5, path point j + 6, path point j + 7, path point j + 8, and 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 within the area where the rectangular speed bump K is located. Furthermore, the robot can determine Figure 7 that the shown planned path L intersects with the speed bump K.

[0088] In another embodiment, it is determined that the planned path intersects with the speed bump based on the position of the speed bump obtained by real-time recognition during the traveling process of the robot and the coordinate positions of each path point in the planned path. Specifically, in the embodiment described above, the robot obtains the speed bump obtained by real-time recognition and determines the position of the speed bump during the traveling process. Please refer to Figure 7 again. When each path point in the planned path is included in the position of the speed bump, it can be determined that the planned path intersects with the speed bump.

[0089] In one embodiment, considering that the robot is actually an entity occupying physical space, planning a path is not equivalent to the travel trajectory corresponding to the robot's contour. Therefore, when it is directly determined based on the planned path that there is no intersection between the planned path and the speed bump, the robot may still intersect with the speed bump. For example, when the robot travels along 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.

[0090] Therefore, in the present application, the robot selects multiple path points from the obtained planned path, and also maps the robot's contour to 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 multiple path points in the planned path. In this embodiment, the robot's contour refers to the projected contour of the robot on the horizontal plane, and the robot's contour can be obtained based on the physical characteristics of the robot. The physical characteristics of the robot include but are not limited to: the shape of the robot chassis, the size of the robot body, the positional relationship between various components on the robot, etc. Figure 1 Taking the example shown, the physical characteristics of the robot may include, for example: the shape and size of the robot's shell, the positions of the left drive wheel and the right drive wheel, and the wheelbase between the two.

[0091] Furthermore, in one embodiment, the robot can map the robot's contour to each of the multiple path points according to its motion model to form the robot's travel trajectory. For example, the robot corresponds the midpoint of the model to the multiple path points according to the motion model, and maps the robot's contour based on the coordinate information and heading angle included in each path point, thereby forming the robot's travel trajectory.

[0092] In one embodiment, when the robot travels according to the planned path and the preset motion model, if its travel trajectory intersects with the speed bump, it is determined that there is an intersection between the planned path and the speed bump. Please refer to Figure 8a and Figure 8b , Figure 8a which shows a schematic diagram of the planned path and the speed bump in one embodiment of the present application, Figure 8b and Figure 8a shows a schematic diagram of the travel trajectory generated based on the planned path in the Figure 8a embodiment and the speed bump. As shown in the figure, if it is directly determined whether there is an intersection between the planned path and the speed bump based on the planned path L shown in Figure 8a and the obtained position of the speed bump, then Figure 8b the planned path L shown in Figure 8bAs shown, if the travel trajectory L2 obtained by the robot based on the planned path L Figure 8a intersects with the speed bump K, it can also be determined that the planned path L intersects with the speed bump.

[0093] When it is determined that the planned path intersects with the speed bump in the manner described above, the robot modifies the planned path passing through the speed bump according to the motion model of the robot.

[0094] In one embodiment, please refer to Figure 9 , which shows a schematic flow chart of the robot in an embodiment of the present application modifying the planned path passing through the intersection according to its motion model. As shown in the figure, the steps of modifying the planned path passing through the intersection according to the motion model of the robot include step S110 and step S111.

[0095] In step S110, the robot deletes multiple path points in the planned path that intersect with the speed bump.

[0096] 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. Please refer to Figure 10 and combine with Figure 7 , Figure 10 which shows a schematic diagram of the planned path in an embodiment of the present application after deleting multiple path points that intersect with the speed bump. As shown in the figure, Figure 7 multiple path points in Figure 10 that are located within the area where the speed bump is located in Figure 7 are deleted.

[0097] Furthermore, since the path points are the midpoints of the axes of the left and right drive wheels of the robot, after only deleting multiple path points that are located within the area where the speed bump is located, the robot may still contact the speed bump with the orientation angle of the path points of the undeleted planned path. As a result, when the robot travels on the speed bump, there may be a situation where it is not perpendicular to the speed bump. For example, Figure 10 in the shown embodiment, the path point j + 4 in the original planned path is not deleted, but when the robot is at the path point j + 4, the omnidirectional wheel of the robot may already contact the speed bump, and the robot is not perpendicular to the speed bump. In other words, the heading angle information θ of the path point j + 4 j+4 makes the robot not perpendicular to the speed bump. To ensure that the path corrected by the robot is perpendicular to the speed bump when the robot contacts the speed bump or before contact. In the following embodiments, the path points deleted by the robot include not only multiple path points that are located within the area where the speed bump is located, but also at least one path point outside the contour of the speed bump.

[0098] In one embodiment, a plurality of path points that intersect with the speed bump in the planned path are determined and deleted according to the robot motion model. In other words, the path points to be deleted that are located outside the contour of the speed bump determined based on the motion model are also regarded as the path points that intersect with the speed bump in the planned path and are deleted.

[0099] Specifically, when the motion model of the robot is at a path point outside the contour of the speed bump, it is necessary to ensure that there is no intersection between the motion model and the speed bump. If there is an intersection, the corresponding path point needs to be determined as the path point that intersects with the speed bump in the planned path and is deleted. Please refer to Figure 11 , which shows the schematic diagram of the planned path in the embodiment of the present application after deleting the path points outside the contour of the speed bump. As Figure 10 described, after deleting a plurality of path points located within the area of the speed bump, if the starting point of the robot motion model is at path point j + 2, path point j + 3, or path point j + 4, and there is an intersection between the motion model and the speed bump, then Figure 10 the intersecting path points j + 2, path point j + 3, and path point j + 4 are regarded as the plurality of path points that intersect with the speed bump in the planned path and are deleted. Figure 11

[0100] In one embodiment, the heading of the path points deleted in the above embodiment needs to be perpendicular to the speed bump. However, the heading of the breakpoints of the original planned path may deviate greatly from the heading perpendicular to the speed bump. To ensure that the robot motion model can turn from the original planned path to a direction perpendicular to the speed bump, step S1100 is further included in step S110.

[0101] In step S1100, the robot determines and deletes a plurality of path points that intersect with the speed bump in the planned path according to the robot motion model and its turning radius. In other words, the path points to be deleted that are located outside the contour of the speed bump determined based on the motion model and the turning radius can also be regarded as the plurality of path points that intersect with the speed bump in the planned path and are deleted.

[0102] After deleting the path points as described above, the robot needs to move from the breakpoint of the planned path close to the robot (such as Figure 11 the path point j + 1 in ) 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 there is no intersection between the motion model and the speed bump when the motion model is at this path point to be supplemented. Further, in this embodiment, the robot determines whether the motion model can directly turn from the breakpoint (such as Figure 11 the path point j + 1 in ) to the path point to be supplemented based on the turning radius. If it cannot be satisfied, the breakpoint of the first judgment (such as Figure 11The path point j + 1) in is also deleted, and then the robot determines whether the new breakpoint can turn to the path point to be supplemented after turning based on the new breakpoint (for example Figure 11 The path point j) in, and so on, until the motion model can turn from the new breakpoint to the path point to be supplemented after multiple turns.

[0103] Similarly, in one embodiment, if the robot needs to continue to travel 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 far from the current robot to the breakpoint of the original path based on the robot motion model and its turning radius (for example Figure 11 j + 10) in, if not, the breakpoint of the first judgment (for example Figure 11 j + 10) in also needs to be deleted, and then the robot continues to judge based on the new breakpoint (for example Figure 11 j + 11) in, and so on, until the motion model can turn from the path point to be supplemented far from the current robot to the new breakpoint.

[0104] In other embodiments, the robot may not travel along the original path after leaving the speed bump, that is, the robot replans the path after leaving the speed bump.

[0105] In one embodiment, in order to ensure that the robot can turn from the original planned path to the path points deleted in the direction perpendicular to the speed bump, the number of path points to be deleted can be determined according to one or more attributes of the path point step size of the planned path, the turning radius of the robot, the steering angle of the robot, the motion model of the robot, and the size of the robot. For example, the smaller the steering angle of the robot, or the greater the distance between the end point and the start point in the robot motion model, the larger the preset number of path points located outside the contour of the speed bump can be set. For example, the preset number can be a value preset by a technician according to the above attributes of the robot and stored in a storage device that can be obtained by the robot.

[0106] It should be noted that in other embodiments, the number of path points located outside the speed bump contour to be deleted can also be determined by means of multiple experiments by the staff. The present application does not limit the method for determining the deleted path points, as long as it can ensure the successful turning of the robot. As described above, the direction perpendicular to the speed bump 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 an absolutely strict 90-degree angle between the two directions. The "perpendicular" is approximately perpendicular. For example, the included angle between the extension direction of the speed bump and the traveling direction of the robot on the speed bump within the range of 80 degrees to 100 degrees can be regarded as the "perpendicular" described above. In other words, as long as it is ensured that the included angle between the two directions can enable the robot to pass safely, that is, the direction perpendicular to the speed bump described in the present application can deviate x degrees (such as the above-mentioned 10 degrees) to the left or right from the direction strictly perpendicular to the speed bump, where x can be obtained by means of experiments and the like.

[0107] After obtaining the planned path after deletion based on any of the above embodiments, the robot further executes step S111.

[0108] In step S111, according to the motion model of the robot, with the break point adjacent to the robot side as the starting point and the break point far from the robot side as the end point, a compensation path including the speed bump path is generated and compensated 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. In this way, the robot can be adjusted in time before passing through the speed bump to ensure that the robot passes through the speed bump vertically.

[0109] Among them, the compensation path is the path for connecting the end point and the starting point. In the embodiment, the compensation path includes the coordinate information and the heading angle of each path point. It should be understood that the path points in the compensation path are used to reflect the pose (position and attitude) of the rotation axis of the robot's motion model at this path point.

[0110] 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 motion model of the robot is at 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 path points in the planned path are continuously deleted in step S1100, the compensation path may further include a path for connecting the speed bump path and the break point. In step S111, the heading of each path point in the speed bump path refers to the traveling direction in which the motion model of the robot moves forward when the motion model is located at this path point. In other words, when the robot can accurately follow each path point, when the robot is at each path point in the speed bump path, the traveling method of the robot 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.

[0111] It should be noted that according to the foregoing, the "perpendicular" does not require the two directions to be absolutely strictly perpendicular at 90 degrees. The "perpendicular" is approximately perpendicular. For example, the included angle between the extension direction of the speed bump and the traveling direction of the robot on the speed bump within the range of 80 degrees - 100 degrees can be regarded as the "perpendicular".

[0112] The following will describe step S111 with reference to the drawings. Please refer to Figure 12a 、 Figure 12b 、and Figure 12c , Figure 12a shows a schematic diagram of the planned path passing through a speed bump in an embodiment of the present application, Figure 12b shows the schematic diagram after deleting the path points in the present application Figure 12a that cross the speed bump, Figure 12c shows the schematic diagram of compensating the compensation path generated based on the end point and the start point in the present application Figure 12b to the planned path shown in Figure 12b . As shown in the figure, path points j + 6, path points j + 7, path points j + 8, path points j + 9, path points j + 10, and path points j + 11 are path points that need to be deleted because the motion model crosses the speed bump, and path points j + 4, path points j + 5, path points j + 12, and path points j + 13 are the path points deleted in step S1100. Figure 12cThe compensation path L3 therein includes path points i, i + 1, i + 2, i + 3, i + 4, i + 5, i + 6, i + 7, i + 8, i + 9, and i + 10. Among them, path points i + 2, i + 3, i + 4, i + 5, i + 6, and i + 7 form a speed bump path, and the headings of path points i + 2, i + 3, i + 4, i + 5, i + 6, and i + 7 are all perpendicular to the speed bump.

[0113] In order to avoid problems such as unsmooth turning or excessive turning angle caused by sudden changes in the steering angle 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.

[0114] Please refer to Figure 12d , shown as Figure 12c a schematic diagram of the compensated path in after being smoothed. Here, the robot first connects multiple path points (as shown in Figure 12c ) to generate Figure 12c the compensation path L3 shown in . Then, after smoothing the compensation path L3, it forms a smooth curve - type compensation path L3 as shown in Figure 12d , that is, the correction of the planned path passing through the intersection is completed. Among them, the smooth curve - type compensation path L3 includes path points i, i + 1, i + 2, i + 3, i + 4, i + 5, i + 6, i + 7, i + 8, i + 9, i + 10, i + 11, i + 12, i + 13, and i + 14.

[0115] In another embodiment, after the robot leaves the speed bump, it may not travel along the original path, that is, the robot replans the path after leaving the speed bump. Specifically, the robot generates a compensation path including the speed bump path starting from the break point on the side close to the robot and starts replanning the path at the end path point of the compensation path (such as Figure 12e the path point i + 8 in ).

[0116] Please refer to Figure 12e and combine with Figure 12a , Figure 12e shown as the compensation path generated in one embodiment of the present application being compensated to Figure 12aAs shown in the schematic diagram, there is no need to consider the turning problem on the side away from the robot, so the breakpoints obtained by the robot in step S110 are path point j+3 and path point j+12, and 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, and then the robot can re-plan a new path from path point i+8 (not shown in the figure).

[0117] After completing the correction of the planned path passing through the speed bump based on step S11, the robot continues to execute step S12 so that the robot accurately follows the compensation path, thereby ensuring that the robot's moving direction is perpendicular to the speed bump when passing through the speed bump.

[0118] In step S12, the machine thermally controls the robot to travel through the speed bump along the corrected planned path in a direction perpendicular to the speed bump.

[0119] In the embodiment, when the robot generates a compensation path, the robot system sends the compensation path to the execution system of the robot to execute the travel control. As mentioned above, the robot is rear-wheel driven, the front wheel is a passive universal wheel, 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 route (for example, to achieve more accurate route following control or steering control). Therefore, the robot travel method of the present application also includes the step of travel control:

[0120] See also Figure 13 , which is a flow chart of the movement control of the robot movement control method of the present application in one embodiment. 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 each path point of the robot.

[0121] In this application, the robot selects multiple path points from the obtained compensation path, for example, 5-10 path points are selected in the path, see Figure 14 , displayed as Figure 12d As shown in the figure, the compensation path L3 obtained by the robot in this 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 ).

[0122] In the following embodiments, for example, the robot selects 5 path points from the obtained compensation path. For example, the 5 path points (i + 3, i + 4, i + 5, i + 6, i + 7) shown above Figure 14 . In this embodiment, the process of the step size when selecting 5 path points from the compensation path is the same as the method or process in the foregoing step S10, and will not be elaborated here.

[0123] In this application, the calculation of obtaining the travel control information of the first path point among the multiple path points needs to be completed within one calculation cycle. That is, the robot selects multiple path points from the obtained compensation path to obtain the travel expectation information for each path point it passes through, until all the calculations in the process of obtaining the travel control information of the left and right drive wheels are restricted within a preset duration, and this preset duration is one calculation cycle. In the embodiment, on the premise of the given travel speed and path point step size, the preset duration is less than the time taken by 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, at least one calculation cycle needs to be completed before reaching the next path point. In some embodiments, before the robot reaches the next path point from the current path point, multiple calculation cycles of calculations need to be completed to continuously update the calculation results in order to obtain more accurate travel control information.

[0124] To improve the calculation efficiency of the robot or save its calculation resources, the calculation process of obtaining the travel control information of the first path point among the multiple path points in the preset calculation cycle is carried out under a constraint condition. In this application, the constraint condition includes the speed interval, heading angle interval, and steering interval allowed when the robot passes through the path point.

[0125] In the embodiment, the setting of the speed interval allowed when the robot passes through the path point depends on the constraint interval of the minimum speed and the maximum speed given by the robot control system. For example, the robot control system limits the travel speed of the robot not to exceed 4 m / s; that is, the robot control system limits the travel speed interval of the robot to [0 m / s, 4 m / s]; the steering interval allowed when the robot passes through the path point is [-90°, 90°]; that is, it is required that the maximum steering of the robot during travel does not exceed 180°; the heading angle interval 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 does not exceed 360°.

[0126] In the above step S30, the robot system obtains the travel expectation information of the robot approaching each path point from the obtained compensation path. In this application, the travel expectation information refers to the ideal state of the robot when it is expected to travel at each path point in the compensation path, including information such as the pose, speed, and steering angle of the robot.

[0127] In an embodiment, the travel expectation information of the robot when approaching each path point includes expected pose information and expected control information; wherein, the expected pose information includes the coordinates and heading angle of the robot passing through the path point, and the expected control information includes the expected speed and expected steering angle of the robot passing through the path point. For example, when the robot passes through a certain path point, the expected pose information is that the coordinates of the robot reaching the path point are (x ref , y ref ) and the heading angle of the robot reaching the path point is (θ ref ); the expected control information of the robot passing through the path point is the speed (v ref ) and the steering angle (δ ref ) of the robot reaching the path point.

[0128] Please refer to Figure 15 , which shows a schematic diagram of obtaining the travel expectation information of each passing point in an embodiment of the robot travel control method of this application. As shown in the figure, since each path point in the compensation path has the coordinate information and heading angle information of this point, for example Figure 14 the coordinate information and heading angle information of the 5 path points (i + 3, i + 4, i + 5, i + 6, i + 7) shown in i+3 , y i+3 ), then the robot can regard the coordinate information and heading angle information of the above each path point as the expected pose 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 the heading angle information (θ i+3 ) of this point. Then, the expected pose information of the robot when passing 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 pose information of the robot approaching each path point by selecting multiple path points from the compensation path.

[0129] The robot system also needs to obtain the expected speed and expected steering angle of the robot passing through each of these path points. In one embodiment, the robot system can obtain the expected speed (v ref ) of the robot's movement from the compensation path pre-stored in the memory.

[0130] In another embodiment, the robot system can obtain the expected speed (v ref ) of the robot's movement from the compensation path generated in real time by the path planning layer; still taking the path point i + 3 as an example, the robot system also needs to obtain the expected speed of the robot passing through this path point i + 3, denoted as v ref i+3 .

[0131] In the movement control of the robot, when the control system does not issue a steering command to the driving wheels of the robot, the robot system expects the heading angle of the robot to remain unchanged. Therefore, in this embodiment, the expected steering angle of the robot passing through each of these path points is preset to 0°. Still taking the path point i + 3 as an example, the robot system also needs to obtain the expected speed of the robot passing through this path point i + 3, denoted as δ refi+3 , where the expected speed is denoted as δ refi+3 = 0°.

[0132] In step S31, the robot system predicts the movement prediction information of the robot passing through each path point based on a preset prediction period, the movement model of the robot, the current pose, and the movement expectation information of each path point; 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; as Figure 6 shown, the movement model of the robot is a movement model starting from the midpoint of the axes of the left and right driving wheels and ending at a virtual point in front of the passive universal wheel.

[0133] Based on Figure 6 the movement model of the robot shown, after the robot obtains the control input information at a certain moment, such as the speed and steering angle at the next moment, it can control the robot's movement according to these two control quantities.

[0134] In the embodiment shown in step S31 above, when the robot system performs the above prediction calculation, it needs to complete the prediction calculation within a preset prediction period, and the prediction period is a time. In this embodiment, the robot system obtains its own motion model, the current pose (position and heading angle) of the robot, and the travel expectation information of each path point among the multiple path points selected in step S10, and performs the prediction calculation to predict the travel prediction information of the robot passing through each path point. In this embodiment, still taking the travel prediction information of the robot approaching path point i + 3 obtained through prediction calculation as an example, the robot system obtains its own motion model, the current position (x i+2 , y i+2 ), the current heading angle (θ i+2 ), and the travel expectation information of each path point among the multiple path points selected above (x ref , y ref , θ ref , v ref , δ ref ), and performs prediction calculation to obtain the travel prediction information of the robot passing through path point i + 3 (x i+3 , y i+3 , θ i+3 , v i+3 , δ i+3 ).

[0135] The travel prediction information refers to the possible future states of the robot when traveling through the path points of the compensation path obtained through prediction calculation, including information such as the position and attitude, speed, and steering angle of the robot when traveling through the path points of the compensation path in the future. Corresponding to the above travel expectation information, in the embodiment, the travel prediction information of the robot approaching each path point in the future includes predicted pose information and predicted control information; among them, the predicted pose information includes the predicted coordinates and predicted heading angle of the robot passing through the path point obtained through prediction calculation, and the predicted control information includes the predicted speed and predicted steering angle of the robot passing through the path point obtained through prediction calculation. For example, the predicted pose information of the robot passing through path point i + 3 obtained through prediction calculation is the predicted coordinates (x i+3 , y i+3 ) of the robot reaching path point i + 3 and the predicted heading angle (θ i+3 ) of the robot reaching path point i + 3; the predicted control information of the robot passing through path point i + 3 is the predicted speed (v i+3 ) of the robot reaching path point i + 3 and the predicted steering angle (δ i+3 ).

[0136] In step S32, the robot system performs calculations on the obtained travel expectation information and the travel prediction information to obtain the travel control information of the first path point among the multiple path points.

[0137] In an embodiment, the steps for the robot system to calculate the travel control information of the multiple path points include: squaring and summing the difference between the travel expectation information and the travel prediction information, and determining the travel control information when the minimum value is obtained. During the calculation period, the robot system, based on the multiple path points selected in step S10, such as Figure 14 the 5 path points (i + 3, i + 4, i + 5, i + 6, i + 7) shown, the robot system calculates the 5 path points simultaneously, that is, by solving an objective function (such as denoted as J). Specifically, for each path point among the obtained 5 path points, the difference between the travel expectation information and the travel prediction information is calculated and squared simultaneously (the value calculated by squaring the difference is 0 when it is the smallest), and then the sum is calculated. From the objective function, when J is the smallest in the array (i.e., finding argminJ) to be used as the array A (Action) of the travel control information, then the array A is the travel control information of each of the 5 path points (i + 3, i + 4, i + 5, i + 6, i + 7), and the first group in the array A (taking the control information of the first path point i + 3 as the output) is used as the travel control information (v i+3c , δ i+3c ) of the first path point (i.e., path point i + 3).

[0138] In this embodiment, the travel control information includes speed and steering angle. In the above embodiment where the first path point is i + 3, 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 )).

[0139] In an embodiment, the steps 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 include: the travel control information of the first path point among the multiple path points is the travel control information of the virtual point in front 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 ) of the path point i + 3 obtained through calculation is mapped to the travel control information of the virtual point in front of the passive universal wheel in the motion model of the robot, and is used as the input condition for calculating the control amounts of the left and right driving wheels at the rear of the robot body.

[0140] In step S33, the left and right drive wheels of the robot are controlled according to the obtained travel control information, so as to accurately follow the obstacle avoidance route. In the embodiment, the control amounts of the left and right drive wheels at the rear side of the robot body are calculated 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 ) of the virtual point in front of the passive caster wheel of the robot is obtained. Combining the above Figure 6 -shown motion model of the robot to perform calculations to obtain the final rotational speeds (v l , v r ) of the left and right drive wheels at the rear side of the robot body, thereby realizing the control of the travel speed and steering angle of the robot.

[0141] In the above embodiment where the first path point is 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 rotational angular velocity w of the robot body, the turning radius R of the motion model of the robot, the linear distance d between the starting point (x0, y0) and the end point p(x p , y p ) of the motion model of the robot, etc. Combining the above conditions with the motion model to perform calculations, the speed control amount (v i+3l ) when the left drive wheel at the rear side of the robot body travels towards the path point i + 3, the speed control amount (v i+3r ) when the right drive wheel at the rear side of the robot body travels towards the path point i + 3, and the steering angle control amount (δ i+3l -v i+3r ) of the virtual point in front of the passive caster wheel of the robot are realized through the differential speed (v i+3r ) of the left and right drive wheels, so that the robot can be controlled to accurately follow and travel at each path point when traveling on the compensation path.

[0142] Figure 13 The embodiment of the control method shown only shows the travel control process when the robot is about to travel to the first path point. It should be understood that during the actual travel of the robot, the calculation of the above travel control process is a continuous process.

[0143] 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 period has reached a preset number of iterations or a preset calculation duration, but the optimal travel control information has not yet been obtained, output the currently optimized travel control information to ensure the smooth operation of the robot system. For example, in the embodiment of performing step S32 above, the robot system can calculate the travel control information of the multiple path points multiple times within one calculation period, and temporarily store the travel control information of a set of first path points each time it is calculated, until a set of travel control information arrays that minimize the objective function J is determined, and then output the control information of the first path point (i.e., path point i + 3); in actual implementation, if the robot system determines that the calculation performed in the calculation period has reached the preset number of iterations (such as 30 or 50 iterations), or has reached the preset calculation time (such as exceeding a time period of 0.2 s or 0.5 s), but the objective function (such as denoted as J) has not reached the minimum value yet, 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 obtained (i.e., the previously temporarily stored) as the travel control information of the first path point (i.e., path point i + 3) among the multiple path points.

[0144] In one embodiment, when the robot system calculates the travel control information for the next calculation period, the travel control information obtained in the current period is used as the initial value for the calculation of the travel control information in the next calculation period to accelerate the calculation speed of the next calculation period. In this embodiment, when the robot calculates the travel control information of the path points in the next calculation period, the travel control information of the path points will participate in the calculation of the next calculation period as the initial value when calculating the travel control information of the path points. In this way, not only is the computing resource saved, but also the accuracy of the calculation result is improved.

[0145] In another embodiment, in order to more precisely control the travel of the robot, in the calculation of obtaining the travel control information of the first path point among the multiple path points, the conditions for participation in the calculation further include the predicted acceleration information of the robot. In the above embodiment where the first path point is i + 3, the predicted acceleration information is obtained from the difference in predicted speeds between two adjacent path points. For example, path point i + 3 and its adjacent path point i + 4, that is, the way to calculate the predicted acceleration information is to sum the squares of (v i+4 -v i+3 ) to obtain the predicted acceleration information.

[0146] In the travel control of the robot, when the control system does not issue an acceleration command 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 through each of these path points is preset to 0.

[0147] In another embodiment, in order to more precisely control the travel of the robot, in the calculation of obtaining the travel control information of the first path point among the multiple path points, the conditions involved in the calculation further include the change amplitude of the predicted steering angle of the robot. In the above embodiment where the first path point is 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. For example, path point i + 3 and its adjacent path point i + 4 of path point i + 3, that is, the way to calculate the change amplitude of the predicted steering angle is the sum of the squares of (δ i+4 -δ i+3 ) to obtain the information of the change amplitude of the predicted steering angle.

[0148] In the travel control of the robot, when the control system does not issue a steering command to the driving wheels of the robot, the robot system expects the steering angle of the robot to remain unchanged. Therefore, in this embodiment, the change amplitude of the expected steering angle of the robot passing through each of these path points is preset to 0°.

[0149] In the embodiment, in the step of the robot system calculating the travel control information of the multiple path points in the robot travel control method, it further includes the step of separately intervening in the weights 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 calculate the position (i.e., coordinates x i+3 , y i+3 ) of its following each path point more precisely. Then, in this embodiment, the calculation weight of the position of the path point is adjusted to obtain a more accurate calculated value.

[0150] It should be understood that in some embodiments, the robot system separately adjusts the weight of one or more parameters among the heading angle (θ i+3 ), speed (v i+3 ), and steering angle weight (δ i+3 ) of each path point it is about to follow according to needs. In other embodiments, the robot system adjusts the weight of the predicted acceleration information or / and the change amplitude of the predicted steering angle of each path point it is about to follow according to needs.

[0151] The travel control method for the speed bump mechanism provided in this application obtains the travel expectation information and travel prediction information for each upcoming path point in the compensation path within one calculation cycle by presetting a motion model starting from the midpoint of the axes of the left and right drive wheels of the robot and ending at a virtual point in front of the passive universal wheel. Then, through calculation in combination with the above preset robot motion model, the travel control information for the nearest path point is obtained, and this control information is mapped to the travel control information for the virtual point in front of the passive universal wheel in the robot's motion model, which is used as an input condition for calculating the control amounts of the left and right drive wheels at the rear of the robot body, thereby controlling the rotational speeds of the left and right drive wheels of the robot. Through the repetition of this process, the robot can accurately follow the compensation path. This application particularly solves the problem of precise control during the travel of robots with a rectangular chassis, where the rear left and right wheels are drive wheels and the front universal wheel is a passive wheel.

[0152] In one embodiment, when controlling the robot to pass through the speed bump along the corrected planned path, when an obstacle is detected in the speed bump area of the robot's travel trajectory, in other words, when it is determined that the obstacle may pass through the speed bump area in its travel 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 corrected planned path. In one example, when the robot detects an obstacle in the speed bump area of its travel trajectory at the current path point, the robot modifies the travel control information for multiple upcoming path points to ensure that the robot can reduce its speed while accurately following the planned path so that the robot stops to wait for the obstacle to disappear.

[0153] In one embodiment, 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 less than the speed of other path points in the planned path.

[0154] The robot and robot travel method provided in this application, when it is determined that there is an intersection between the planned path and the speed bump, corrects the planned path passing through the speed bump according to the robot's motion model, and controls the robot to pass through the speed bump precisely along the corrected planned path in a direction perpendicular to the speed bump. In this way, it is ensured that the robot will not tip over during the process of passing through the speed bump, improving the safety and working efficiency during the robot's travel.

[0155] This application also discloses a robot system. Please refer to Figure 16, which shows the principle block diagram of the 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 the embodiment, the robot system is, for example, the control system of a cleaning robot (such as a commercial cleaning robot). In the embodiment, the control system of the cleaning robot may include more or fewer components than those shown in the figure, or combine certain components, or split certain components, or have different component arrangements. The components shown in the figure may be implemented by hardware or software, or a combination of software and hardware.

[0156] The path planning device 20 is used to collect data of the environment around the robot to generate a planned path; in the embodiment, when the robot is performing a traveling task, its control system needs to first obtain the planned path generated by the path planning device 20 so that the robot can travel along the planned path.

[0157] In some embodiments, the path planning device 20 for collecting data of the environment around the robot to generate a planned path can be pre-planned and stored in its memory so that the robot can read the planned path when performing a traveling task.

[0158] In other embodiments, the planned path is obtained by the path planning device 20 through immediate path learning or immediate path planning. For example, when the robot initially travels in an unfamiliar environment, the planned path obtained by the path planning device 20 through path learning; or in the scenario where the robot suddenly loses the planned path during traveling or encounters unknown obstacles and needs to re-generate a planned path to avoid the obstacles, the robot can also rely on its own positioning and map building capabilities to enable the path planning device 20 to perform immediate path planning in real time, and use the planned path as the planned path for the current traveling task.

[0159] In the embodiment, the planned path is composed of multiple path points, and each path point includes its coordinate information and orientation 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, or a partial path within the global path, or a path of a certain length intercepted / extracted from the global path. In the present application, the planned path obtained by the robot contains multiple path points, and each path point includes its own coordinate information and heading angle information.

[0160] The storage device is used to store at least one robot travel control program; in an embodiment, the storage device 21 is used to store at least one program, and the at least one program can be executed by the processing device 22 to coordinate the storage device 21 and 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), Nonvolatile RAM (NVRAM). For example, the storage device 21 includes a flash device or other non-volatile solid-state storage devices. In some embodiments, the storage device 21 may also include a memory remote from one or more processing devices 22, such as a network-attached memory accessed via an RF circuit or an external port and a communication network, where the communication network may be the Internet, one or more intranets, local area networks, wide area networks, storage area networks, etc., or a suitable combination thereof. A memory controller can control access to the memory by other components such as the CPU and the peripheral interface of the device.

[0161] The processing device 22 is connected to the storage device 21 and the path planning device 20, and is used to implement the robot travel method as shown above when executing the at least one robot travel control program. Figures 1 to 15 In some embodiments, the processing device 22 includes one or more processors. The processing device 22 can operably 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 integrated circuits (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 can be used to read and execute computer-readable instructions. In a specific implementation, the processor mainly includes a controller, an arithmetic unit, and registers. Among them, the controller is mainly responsible for instruction decoding and issuing control signals for the operations corresponding to the instructions. The arithmetic unit is mainly responsible for performing fixed-point or floating-point arithmetic operations, shift operations, and logical operations, etc., and can also perform address operations and conversions. The registers are mainly responsible for storing the register operands and intermediate operation results temporarily stored during the execution of the instructions. In a specific implementation, the hardware architecture of the processor can be an application-specific integrated circuit (ASIC) architecture, a MIPS architecture, an ARM architecture, or an NP architecture, etc.

[0162] 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. Among them, different processing units may be independent devices or integrated in one or more processors.

[0163] This application also provides a computer storage medium, a computer-readable storage medium, storing at least one robot traveling control program, and when the robot traveling control program is run by a processor of the robot, it implements the robot traveling method described in the above Figures 1 to 15 and related embodiments.

[0164] If the above functions are implemented in the form of software function units and sold or used as independent products, they can be stored in a computer-readable storage medium. Based on such an understanding, the technical solution of this application, in essence, or the part that contributes to the prior art, or a part of this technical solution, can be embodied in the form of a software product. This computer software product is stored in a storage medium and includes several instructions to enable a mobile robot installed with the storage medium to execute all or part of the steps of the methods described in various embodiments of this application.

[0165] In the embodiments provided in this application, the computer storage medium may include a read-only memory, a random access memory, an EEPROM, a CD-ROM, or other optical disc storage devices, a magnetic disk storage device, or other magnetic storage devices, a flash memory, a USB flash drive, a portable hard drive, or any other medium that can be used to store the desired program code in the form of instructions or data structures and can be accessed by a computer. Additionally, any connection may be properly referred to as a computer-readable medium. For example, if the instructions are sent from a website, a server, or other remote source using coaxial cables, fiber optic cables, twisted pairs, digital subscriber lines (DSLs), or wireless technologies such as infrared, radio, and microwave, then the coaxial cables, fiber optic cables, twisted pairs, DSLs, or wireless technologies such as infrared, radio, and microwave 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, carrier waves, signals, or other transient media, but are intended to refer to non-transient, tangible storage media. As used in the application, magnetic disks and optical discs include compact discs (CDs), laser discs, optical discs, digital versatile discs (DVDs), floppy disks, and Blu-ray discs, where magnetic disks typically reproduce data magnetically, while optical discs reproduce data optically using lasers.

[0166] In one or more exemplary aspects, the functions described by the computer program of the robot traveling method described in this application can be implemented in a manner of 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 onto a computer-readable medium. The steps of the method or algorithm disclosed in this application can be embodied by a processor-executable software module, where the processor-executable software module can be located on a tangible, non-transitory computer storage medium. The tangible, non-transitory computer storage medium can be any available medium that can be accessed by a computer.

[0167] The flowcharts and block diagrams in the accompanying drawings described in this application illustrate the possible architectures, functions, and operations of systems, methods, and computer program products according to various embodiments of this application. Based on this, each box in the flowchart or block diagram may represent a module, a program segment, or a part of code that contains one or more executable instructions for implementing the specified logical function. It should also be noted that in some alternative implementations, the functions marked in the boxes may occur in a different order than that marked in the accompanying drawings. For example, two consecutive boxes shown may actually be executed substantially in parallel, and they may sometimes be executed in the reverse order, depending on the functions involved. It should also be noted that each box in the block diagram and / or flowchart, as well as the combination of boxes in the block diagram and / or flowchart, can be implemented by a dedicated hardware-based system that performs the specified functions or operations, or can be implemented by a combination of dedicated hardware and computer instructions.

[0168] This application also provides a computer program product. When the computer program product runs on a computer, it enables the computer to implement the robot traveling method as described above Figures 1 to 15 and the method described in the related embodiments. Specifically, the technical solution of this application, in essence, or the part that contributes to the prior art, or a part of this technical solution, can be embodied in the form of a software product. This computer program product is stored in a storage medium and includes several instructions for causing a computer device (which may be a personal computer, a server, or a network device, etc.) to execute all or part of the steps of the methods described in various embodiments of this application.

[0169] The above embodiments are only illustrative of the principles and effects of this application and are not used to limit this application. Any person familiar with this technology can modify or change the above embodiments without departing from the spirit and scope of this application. Therefore, all equivalent modifications or changes made by those with ordinary knowledge in the technical field without departing from the spirit and technical ideas disclosed in this application should still be covered by the claims of this application.

Claims

1. A robot traveling method, characterized in that, Including the following steps: When the robot travels 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 drive wheels located at the rear side of its body and at least one passive universal wheel located at the front side of its body; the motion model of the robot is a motion model with the midpoint of the axes of the left and right drive wheels as the starting point and the virtual point in front of the passive universal wheel as the ending point; 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 steps of correcting the planned path passing through the intersection according to the motion model of the robot include: deleting multiple path points in the planned path that intersect with the speed bump; according to the motion model of the robot, with the break point closer to the robot as the starting point and the break point farther from the robot as the ending point, generating a compensation path including the speed bump path and compensating it into 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; Controlling the robot to travel through the speed bump along the corrected planned path in a direction perpendicular to the speed bump.

2. The robot traveling method according to claim 1, wherein When the robot travels 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 close to the right or left edge of the road adjacent to the parking garage.

3. The robot traveling method according to claim 1, characterized in that, The step of determining that the planned path intersects with a speed bump includes: determining that the planned path intersects with a speed bump according to the pre-marked position of the speed bump and the coordinate positions of each path point in the planned path.

4. The robot traveling method according to claim 1, wherein The step of determining that the planned path intersects with a speed bump includes: determining that the planned path intersects with a speed bump according to the position of the speed bump obtained by real-time recognition during the travel of the robot and the coordinate positions of each path point in the planned path.

5. The robot traveling method according to claim 1, wherein The step of determining that the planned path intersects with a speed bump includes: when the robot travels according to the planned path and the preset motion model, it is determined that the planned path intersects with the speed bump when its travel trajectory intersects with the speed bump.

6. The robot traveling method according to claim 1, wherein, 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 according to the motion model of the robot and its turning radius.

7. The robot traveling method according to claim 1, wherein The distance between the starting point and the speed bump is greater than the distance between the ending point and the speed bump.

8. The robot traveling method according to claim 1, 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.

9. The robot traveling method according to claim 1, wherein When controlling the robot to pass through the speed bump along the corrected planned path, when an obstacle is detected in the speed bump area of its travel trajectory, it decelerates and stops to wait for the obstacle to disappear and then continues to pass through the speed bump.

10. A robot, characterized in that, Including: Robot body; Left and right drive wheels located at the rear side of the robot body; At least one passive universal wheel located at the front side of the robot body; A control device for controlling the rotational speeds of the left and right drive wheels to achieve the travel control of the robot following a planned path, the control device being configured as follows: When the robot travels according to a planned path and a preset motion model, it acquires the road condition information in the planned path; wherein, the robot has left and right drive wheels located at the rear side of its body and at least one passive universal wheel located at the front side of its body; the motion model of the robot is a motion model with the midpoint of the axes of the left and right drive wheels as the starting point and a virtual point in front of the passive universal wheel as the ending point. When it is determined that the planned path intersects a speed bump, the planned path passing through the speed bump is corrected according to the motion model of the robot; the steps of correcting the planned path passing through the intersection according to the motion model of the robot include: deleting a plurality of path points in the planned path that intersect the speed bump; according to the motion model of the robot, and taking the break point closer to the robot as the starting point and the break point farther from the robot as the ending point, generating a compensation path including the speed bump path and compensating it into the planned path, so that the heading of each path point in the speed bump path is perpendicular to the extending direction of the speed bump. Controlling the robot to travel through the speed bump along the corrected planned path in a direction perpendicular to the speed bump.

11. The robot according to claim 10, characterized in that, The robot includes a commercial cleaning robot.

12. A robot system, characterized in that, Comprising: A storage device for storing at least one robot travel control program; A path planning device for collecting data of the environment around the robot to generate a planned path; A processing device, connected to the storage device and the path planning device, for implementing the robot travel method according to any one of claims 1-9 when executing the at least one robot travel control program.

13. A computer-readable storage medium, characterized in that, Storing at least one robot travel control program, and when the robot travel control program is run by a processor of the robot, it implements the robot travel method according to any one of claims 1-9.

14. A computer program product, characterized in that, When the computer program product runs on a computer, it causes the computer to execute the robot travel method according to any one of claims 1-9.

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

  • Self-moving device

    CN215959678U