A method of slip detection
Patent Information
- Application Number
- CN202310201160.1
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2023-02-28
- Publication Date
- 2026-09-11
- Estimated Expiration
- 2043-02-28
AI Technical Summary
然而,机器人在实际工作的过程中,可能会遇到运动打滑的情况
[0018]This application addresses the problems of high cost and complex detection process associated with using positioning devices to detect slippage in existing technologies. It also solves the inaccuracy of detection results caused by directly determining robot slippage based on rotational or translational information. This application utilizes environmental information detected by its onboard sensors to more accurately locate its position within the environment, obtaining accurate reference data. By combining rotational and translational slippage detection results, it provides a simpler and more accurate way to determine whether the robot has slipped. This application effectively improves the accuracy and efficiency of robot slippage detection.
Smart Images

Figure CN116237982B_ABST
Abstract
Description
Technical Field
[0001] This application relates to the technical field of smart home appliances, and more specifically, to a slip detection method. Background Technology
[0002] As mobile robots become increasingly intelligent, various types of robots are being used in multiple industries, such as composite robots in industry, automated guided vehicles in logistics, food delivery robots in the service industry, and robotic vacuum cleaners in the home. These robots bring great convenience to our lives. However, during actual operation, robots may encounter slippage. On the one hand, slippage may cause the robot to misjudge its own position, affecting its autonomous map-building work; on the other hand, slippage may cause the robot to become stuck in a fixed position or area, unable to perform normal cleaning or transport tasks.
[0003] Several existing technologies disclose methods for determining robot slippage, such as comparing the speeds of the robot's drive wheels and driven wheels; or calculating the difference between the robot's actual position change and the mileage recorded by an odometer to determine if the robot is slipping. However, this method requires the robot to be equipped with an additional positioning device to obtain position information. Furthermore, the results obtained using these methods are not accurate enough. Therefore, we need a more accurate method for determining whether a robot is slipping. Summary of the Invention
[0004] The purpose of this application is to provide a slip detection method that combines rotational slip detection and translational slip detection to more accurately determine whether the robot is slipping. At the same time, it can achieve precise positioning of the robot in its environment without the need for GPS or other positioning instruments, effectively saving the manufacturing and maintenance costs of the robot. Moreover, the slip detection method provided by this application is simpler and more effective.
[0005] The embodiments of this application are implemented as follows:
[0006] The first aspect of this application provides a slippage detection method applied to a robot. The robot is equipped with sensors, an inertial navigation device, and an odometer. The sensors are used to detect environmental information around the robot, the inertial navigation device is used to detect the robot's rotation angle information, and the odometer is used to generate odometer information synchronized with the movement of the corresponding drive wheels. The method includes: determining the robot's position change information based on environmental information and odometer information; determining whether the robot has experienced translational slippage based on the position change information; determining the robot's rotational change information based on the rotation angle information; determining whether the robot has experienced rotational slippage based on the rotational change information; and determining whether the robot is in a slippage state based on whether the robot has experienced translational slippage and / or rotational slippage.
[0007] In one embodiment, determining the robot's position change information based on environmental information and odometry information includes: calculating the observed position vector corresponding to a first time period based on environmental information; the first time period is at least one; calculating the odometry position vector corresponding to the first time period based on odometry information; and for each first time period, calculating the magnitude of the difference between the observed position vector and the odometry position vector.
[0008] In one embodiment, based on environmental information, calculating an observation position vector corresponding to at least one first time period includes: determining the robot's observation position at each endpoint time based on environmental information corresponding to multiple sampling times; wherein each first time period corresponds to two endpoint times; and for each first time period, calculating the observation position vector corresponding to the first time period based on the observation positions corresponding to the two endpoint times respectively.
[0009] In one embodiment, the odometer position vector corresponding to the first time period is calculated based on the odometer information, including: finding two target timestamps adjacent to each endpoint time based on the timestamp queue in the odometer information and the two endpoint times corresponding to each first time period; for each endpoint time, calculating the target odometer position corresponding to each endpoint time by interpolation based on the odometer positions corresponding to the two target timestamps respectively; and for each first time period, calculating the odometer position vector between the two target odometer positions based on the target odometer positions corresponding to the two endpoint times respectively.
[0010] In one embodiment, determining whether the robot has slipped during translation based on position change information includes: calculating the sum of the moduli of the position vector differences corresponding to all first time periods; and determining whether the robot has slipped during translation based on the sum of the moduli and a preset translation distance threshold.
[0011] In one embodiment, the rotation angle information includes a first rotation angular velocity. Before determining the robot's rotation change information based on the rotation angle information, the method further includes: acquiring the first rotation angular velocity according to a preset sampling frequency; and calculating the second rotation angular velocity generated by the robot's two drive wheels at the same preset sampling frequency based on the odometry information.
[0012] In one embodiment, determining the robot's rotation change information based on rotation angle information includes: calculating the absolute value of the difference between rotation angle velocities at a preset sampling frequency based on a first rotation angle velocity and a second rotation angle velocity, as a first absolute value; and for each sampling period, calculating the absolute value of the difference between rotation angles corresponding to the sampling period based on the scaling factor corresponding to the sampling period and the first absolute value, as a second absolute value.
[0013] In one embodiment, determining whether the robot has experienced rotational slippage based on rotational change information includes: calculating the sum of all second absolute values within a second time period; the second time period includes at least one sampling period; and determining whether the robot has experienced rotational slippage based on the sum of the second absolute values and a preset rotation angle threshold.
[0014] In one embodiment, after determining whether the robot is in a slipping state based on whether the robot experiences translational slippage and / or rotational slippage, the method further includes: acquiring the running data of the robot's two drive wheels during the movement process; and determining whether the robot is in an abnormal operating state based on the running data.
[0015] In one embodiment, the operating data includes the motor corresponding to each drive wheel and the current value output in the operating state. Determining whether the robot is in an abnormal operating state includes: determining whether the robot is in an abnormal operating state based on whether the maximum change amplitude of the current value within a preset time exceeds a preset current threshold.
[0016] Regarding the determination of infringement, this application utilizes inertial navigation equipment and odometer data to compare the robot's pose changes derived from sensors such as vision or lasers. Within a preset time range, it can determine whether the robot is in a slipping state. At the same time, it assists in monitoring current changes to identify slipping states in special application scenarios, such as when the robot is stuck by an obstacle or is in an abnormal normal operation state with the drive wheels spinning freely. This can prove infringement.
[0017] The advantages of this application compared to the prior art are:
[0018] This application addresses the problems of high cost and complex detection process associated with using positioning devices to detect slippage in existing technologies. It also solves the inaccuracy of detection results caused by directly determining robot slippage based on rotational or translational information. This application utilizes environmental information detected by its onboard sensors to more accurately locate its position within the environment, obtaining accurate reference data. By combining rotational and translational slippage detection results, it provides a simpler and more accurate way to determine whether the robot has slipped. This application effectively improves the accuracy and efficiency of robot slippage detection. Attached Figure Description
[0019] To more clearly illustrate the technical solutions of the embodiments of this application, the accompanying drawings used in the embodiments will be briefly introduced below. It should be understood that the following drawings only show some embodiments of this application and should not be regarded as a limitation of the scope. For those skilled in the art, other related drawings can be obtained based on these drawings without creative effort.
[0020] Figure 1 This is a schematic diagram of the structure of a robot provided in one embodiment of this application;
[0021] Figure 2 A schematic flowchart of a slip detection method provided in an embodiment of this application;
[0022] Figure 3 This is a schematic flowchart of a slip detection method provided in an embodiment of this application.
[0023] Reference numerals: 1-Robot; 11-Optometer; 12-Inertial navigation device; 13-Sensor; 14-Processor; 15-Memory. Detailed Implementation
[0024] The technical solutions in the embodiments of this application will now be described with reference to the accompanying drawings.
[0025] Similar reference numerals and letters in the following figures indicate similar items; therefore, once an item is defined in one figure, it does not need to be further defined and explained in subsequent figures. Furthermore, in the description of this application, terms such as "first," "second," etc., are used only to distinguish descriptions and should not be construed as indicating or implying relative importance.
[0026] The technical solution of this application will now be clearly and completely described with reference to the accompanying drawings.
[0027] Please see Figure 1 , Figure 1 This is a schematic diagram of the structure of a robot provided in one embodiment of this application. Figure 1 As shown, robot 1 translates or rotates by controlling the rotation of its drive wheels. The robot includes an odometer 11 mounted on the drive wheels, an inertial navigation device 12, at least one sensor 13, at least one processor 14, and a memory 15. Figure 1 Taking a processor 14 and a sensor 13 as an example, the sensor 13 is used to detect environmental information around the robot 1, the inertial navigation device 12 is used to detect the rotation angle information of the robot 1, and the odometer 11 is used to generate odometer information synchronized with the movement of the corresponding drive wheel. The processor 14 and the memory 15 are connected via a bus, and the memory 15 stores instructions that can be executed by at least one processor 14. The instructions are executed by at least one processor 14 to cause at least one processor 14 to perform the slippage detection method as described in the following embodiment.
[0028] In one application, the robot acquires environmental information detected by sensors in real time during its movement. Based on this environmental information at different times, it obtains the robot's positional changes over a certain period. The robot also analyzes and compares this information with odometry data to determine if the positional changes obtained from the odometry data are consistent with those obtained from the environmental information, thus determining whether the robot has experienced translational slippage. Additionally, the robot uses inertial navigation equipment to acquire rotational changes during a certain period and analyzes and compares this information with odometry data to determine if the rotational changes obtained from the odometry data are consistent with those obtained from the inertial navigation equipment, thus determining whether the robot has experienced rotational slippage. Finally, the robot determines whether it is in a slipping state based on the results of the translational and rotational slippage assessments, or further considers changes in the output parameters of the motors corresponding to the drive wheels during robot operation to determine whether the robot is in an abnormal operating state.
[0029] Please see Figure 2 , Figure 2 This is a schematic flowchart illustrating a slip detection method provided in one embodiment of this application. This method is applied to robots, such as... Figure 2 As shown, the method includes the following steps.
[0030] S110: Determine the robot's position change information based on environmental information and odometry information.
[0031] Environmental information refers to the information detected and collected in real time by the sensors mounted on the robot during its movement. These sensors can be laser sensors, 3D TOF sensors, cameras, or webcams. Odometry information refers to the information collected by the odometer mounted on the robot's drive wheels as the wheels rotate. In this step, both the odometer and the sensors acquire motion-related data in real time at their respective fixed sampling frequencies. The robot determines the first position change information occurring within a specified time period based on the environmental information, and determines the second position change information occurring within the specified time period based on the odometer information. The position change information can be a position change vector, or other information characterizing the robot's position change such as a position change distance value. This application selects a position change vector as the preferred embodiment for position change information.
[0032] S120: Based on position change information, determine whether the robot has slipped during translation.
[0033] In this step, the robot performs a cumulative comparison or a direct comparison based on the first position change information and the second position change information. If the specified time period corresponds to a long duration, the robot can directly compare the first and second position change information for a single specified time period, and determine whether the robot has experienced translational slippage based on whether the two position change information differ significantly. If the specified time period corresponds to a short duration, the robot can calculate the difference between the first and second position change information for each specified time period, and accumulate the differences across multiple specified time periods to determine whether the robot has experienced translational slippage based on the accumulated difference.
[0034] S130: Determine the robot's rotational changes based on the rotation angle information.
[0035] Rotation angle information refers to the first rotational angular velocity obtained by the robot during its movement through inertial navigation equipment at a fixed sampling frequency. The robot also calculates its second rotational angular velocity at the same sampling frequency using odometry information. Rotation angle information can also be information characterizing the robot's rotational changes, such as the amount of angular change that occurs within a specified time period. In this application, rotational angular velocity is used as a preferred embodiment for rotation angle information. In this step, the robot can calculate two rotational angle changes corresponding to a specified sampling period based on the two rotational angle information, and use these rotational angle changes as rotational change information; alternatively, the robot can calculate the difference or absolute value of the difference between the two rotational angle information, and then, based on this difference or absolute value, calculate the rotational angle difference or absolute value corresponding to the specified sampling period, using this rotational angle difference as rotational change information.
[0036] S140: Based on rotational change information, determine whether the robot is experiencing rotational slippage.
[0037] In this step, the robot can directly compare the rotational change information corresponding to a specified sampling period to determine whether it has experienced rotational slippage. The robot can also accumulate rotational change information corresponding to multiple specified sampling periods to obtain rotational change information over a longer period, and determine whether the robot has experienced rotational slippage based on this change information.
[0038] S150: Determine whether the robot is in a slipping state based on whether the robot experiences translational slippage and / or rotational slippage.
[0039] In this step, the robot determines whether it is slipping based on preset judgment conditions, including whether translational slippage or rotational slippage occurs. Depending on the robot's operating environment and electrical control conditions, designers can pre-set "AND / OR" conditions to determine whether the robot is slipping. When the judgment condition is "AND," the robot is considered to be slipping as soon as either translational or rotational slippage occurs; when the judgment condition is "AND," the robot needs to experience both translational and rotational slippage simultaneously to be considered to be slipping.
[0040] For cases where the judgment condition is "and", when there is only a minor slippage problem such as rotational slippage or translational slippage, the robot can directly adjust the output parameters of the corresponding motor of the drive wheel through electronic control, or optimize the slippage position in a timely manner based on a pre-set program. For example, if a mopping robot experiences minor slippage while performing mopping work, the robot will not directly determine that it is in a slipping state. However, it can reduce or even stop adding water to the mopping parts to dry the slippery floor based on a pre-set electronic control program, or increase the output parameters of the drive wheel motor based on the electronic control program to increase the friction between the robot's drive wheel and the ground, allowing the robot to move away from the slipping position in time. After continuous movement for a period of time, it can then make a comprehensive judgment on whether it is in a slipping state.
[0041] Please see Figure 3 , Figure 3 This is a schematic flowchart illustrating a slip detection method provided in one embodiment of this application. This method is applied to robots, such as... Figure 3 As shown, the method includes the following steps.
[0042] S211: Calculate the observation location vector corresponding to the first time period based on environmental information.
[0043] In this step, the robot determines its position change in the first time period based on environmental information detected by at least one sensor at a fixed sampling frequency over multiple sampling times. This position change is the observed position vector corresponding to the first time period. There is at least one first time period, and each first time period corresponds to two endpoint times, each endpoint time being a sampling time.
[0044] This step includes the following tasks: The robot determines the environmental information corresponding to each endpoint time based on the environmental information corresponding to at least two endpoint times and multiple sampling times for at least one first time period, and then determines the robot's observation position at each endpoint time. After determining the observation position for each endpoint time, the robot calculates the observation position vector corresponding to all first time periods. For each first time period, based on the observation positions s1 and s2 corresponding to the two endpoint times t1 and t2 respectively, the robot calculates the observation position vector S = s1 - s2 for the first time period.
[0045] Among them, environmental information can be two-dimensional laser point cloud data detected by the robot through infrared laser sensors, three-dimensional laser point cloud data obtained by the robot through 3D TOF sensors, or environmental feature information obtained by the robot based on image information captured by cameras or webcams, combined with optical flow methods or other feature point extraction matching methods.
[0046] S212: Calculate the odometer position vector corresponding to the first time period based on odometer information.
[0047] Typically, the observation position calculated by the robot based on environmental information detected by sensors varies depending on the type of sensor used. This is because different sensors have different detection accuracy, detection methods, or sampling frequencies, but the sampling frequency of various sensors is generally lower than that of the odometry. Therefore, when the robot calculates the odometry position vector corresponding to each first time period based on the odometry information for comparison or difference calculation in subsequent steps, it should perform time synchronization processing on the odometry position corresponding to the timestamp based on the two endpoint times corresponding to each first time period in step S211 and the timestamp queue in the odometry information.
[0048] To ensure data accuracy after time synchronization, designers typically select the sampling frequency of the data for interpolation. In one embodiment, the robot uses odometry information with a higher sampling frequency as the interpolation object based on a preset program.
[0049] This step includes the following tasks: Based on the timestamp queue in the odometry information and the two endpoint times corresponding to each first time period, the robot finds two target timestamps t adjacent to each endpoint time t. m and t nThis is recorded as a set of target timestamps corresponding to an endpoint time. Then, for each endpoint time, the robot determines two odometry positions based on the odometry information corresponding to the two target timestamps. After determining the odometry positions corresponding to the target timestamps, the robot calculates the target odometry positions corresponding to each endpoint time using interpolation, based on the odometry positions corresponding to each set of target timestamps, the specific time corresponding to each set of target timestamps, and the endpoint time. Finally, for each first time period, the robot calculates the odometry position vector S′ = s1′ - s2′ between the two target odometry positions s1′ and s2′ corresponding to the two endpoint times t1 and t2, respectively.
[0050] Two target timestamps t adjacent to each endpoint time t m and t n Its specific time points are on both sides of the endpoint time, that is, satisfying t∈[t m ,t n The robot can calculate the odometry position or odometry pose corresponding to the endpoint time using uniform interpolation or angular spherical interpolation, but is not limited to these interpolation methods. When acquiring odometry information containing timestamps, the acquired data structure can be a doubly queue, or other data structures that facilitate data processing, deleting head elements from the array, and adding tail elements, to achieve first-in-first-out (FIFO) operation of the queue.
[0051] S213: For each first time period, calculate the magnitude of the position vector difference based on the observed position vector and the odometer position vector.
[0052] In this step, after calculating the observation position vector S and the odometry position vector S′ corresponding to at least one first time period, the robot calculates the modulus ‖SS′‖ of the position vector difference corresponding to each first time period, so as to calculate the sum of the modulus in subsequent steps, and determine whether the robot has experienced translational slippage based on the sum.
[0053] S214: Calculate the sum of the moduli based on the moduli of the position vector differences corresponding to all the first time periods.
[0054] In this step, the robot accumulates the magnitudes of the position vector differences corresponding to all the first time periods and calculates the sum of the magnitudes, i.e., ΔPosition=∑ i ‖SS′‖ i This allows the robot to obtain information on displacement changes over a longer period, enabling it to more accurately determine whether translational slippage has occurred in subsequent steps based on the sum of the modulus, ΔPosition.
[0055] S215: Based on the sum of the moduli and the preset translation distance threshold, determine whether the robot has experienced translation slippage.
[0056] In this step, after the robot accumulates the sum of the magnitudes of the position vector differences corresponding to all first time periods over a relatively long period, it compares the sum of the magnitudes with a preset translation threshold. This determines whether there is a significant difference between the motion change of the robot's drive wheels detected by the odometry and the actual position change of the robot observed by the sensors. If the sum of the magnitudes, ΔPosition, exceeds the preset translation threshold, it indicates that the robot's actual position has not changed correspondingly while the drive wheels are continuously moving, and the robot is experiencing translational slippage. If the sum of the magnitudes, ΔPosition, is less than or equal to the preset translation threshold, it indicates that the robot's actual position has changed correspondingly while the drive wheels are continuously moving, and the robot is moving normally without significant translational slippage.
[0057] Considering that both the observation position and the odometry position will have measurement and calculation errors, in the above steps, the robot needs to accumulate the magnitude of the position vector difference corresponding to multiple first time periods to accurately determine whether the robot has slipped during translation, and avoid misjudgment based on short-term position change information.
[0058] In other embodiments of this application, the robot may further define multiple first time periods based on multiple timestamps in the odometry information, and determine the two endpoint times constituting each first time period and their corresponding odometry positions, and calculate the odometry position vector corresponding to each first time period. Then, the robot performs time synchronization processing on the data based on each endpoint time, the observation time corresponding to the environmental information, and the observation position corresponding to each observation time: it finds two observation times adjacent to each endpoint time, performs interpolation calculation based on the two adjacent observation times, the observation positions corresponding to the adjacent observation times, and the endpoint time to obtain the observation position corresponding to the endpoint time, and then calculates the observation position vector corresponding to each first time period.
[0059] S221: Obtain the first rotational angular velocity according to the preset sampling frequency.
[0060] The first rotational angular velocity ω1 refers to the rotational angle information obtained by the robot during its movement using its own inertial navigation device at a preset sampling frequency. The robot obtains the first rotational angular velocity corresponding to each sampling time according to the preset sampling frequency, so that the robot can calculate the angular velocity difference based on the first rotational angular velocity ω1 in subsequent steps and determine whether rotational slippage has occurred.
[0061] S222: Based on odometry information, calculate the second rotational angular velocity generated by the robot's two drive wheels at the same preset sampling frequency.
[0062] In this step, the robot obtains the degrees of the odometer encoder at the same preset sampling frequency, and then obtains the rotational angular velocity generated between the two drive wheels of the robot during the movement through kinematic calculation, which is the second rotational angular velocity ω2, to ensure that the sampling time corresponding to the second rotational angular velocity ω2 is synchronized with that of the first rotational angular velocity ω1.
[0063] Typically, inertial navigation devices have relatively high sampling frequencies, making them backward compatible with odometry encoders that have lower sampling frequencies. If the sampling frequencies of the two cannot be unified, then data synchronization is required. If the odometry cannot obtain encoder degrees based on the same preset sampling frequency, the robot interpolates the sampling time corresponding to the first rotational angular velocity with the odometry angular velocities corresponding to multiple timestamps calculated based on the odometry information to obtain the odometry angular velocity corresponding to the same sampling time after interpolation, which is the second rotational angular velocity ω2.
[0064] S223: Based on the first rotational angular velocity and the second rotational angular velocity, calculate the absolute value of the difference in rotational angular velocity at a preset sampling frequency, and use it as the first absolute value.
[0065] Considering the difference between the two rotational angular velocities at each sampling time, and given the real-time changes in the robot's motion that can be positive or negative, the robot is prone to canceling each other out during the accumulation of differences. In this step, the robot needs to calculate the absolute value of the difference as the first absolute value to prevent the angular velocity differences from canceling each other out and causing subsequent errors in the robot's judgment regarding rotational slippage.
[0066] In this step, the robot calculates the absolute value of the difference between the first rotational angular velocity ω1 and the second rotational angular velocity ω2 corresponding to the same sampling time, and records it as the first absolute value. The calculation formula is ω3=|ω1-ω2|.
[0067] S224: For each sampling period, based on the scaling factor and the first absolute value corresponding to the sampling period, calculate the absolute value of the rotation angle difference corresponding to the sampling period, and use it as the second absolute value.
[0068] Because both inertial navigation devices and odometry have measurement errors during the robot's actual movement, the measurement results, or the corresponding calculated rotational angular velocity, will fluctuate, making it impossible to pre-set the threshold for comparing the difference in rotational angular velocities. Furthermore, due to the existence of measurement errors, directly judging whether the robot has experienced rotational slippage based on a single frame of sensor data is unreliable. Therefore, the robot needs to accumulate the difference between two rotational angular velocities over a longer period (a second time period including multiple sampling periods).
[0069] Therefore, in this step, after calculating the first absolute value, the robot multiplies the first absolute value by the scaling factor k corresponding to the sampling period to obtain a second absolute value kω3, which is similar to the integral of the absolute value function of the angular velocity difference.
[0070] S225: Calculate the sum of all second absolute values within the second time period.
[0071] The second time period includes at least one sampling period. Since the duration of each sampling period is typically short, to accurately determine whether the robot has experienced rotational slippage based on rotational change information, the robot needs to accumulate the sum of the second absolute values corresponding to all sampling periods within the longer second time period.
[0072] It is important to note that, in order for the robot to accurately determine whether it is slipping based on the detection results of translational and rotational slippage in subsequent steps, the time periods corresponding to the sum of vector magnitudes and the sum of the second absolute values used by the robot to determine whether it has experienced rotational or translational slippage should be consistent. For example, the second time period includes all of the first time periods, and the absolute value of the difference between the sum of the durations of the first time periods and the duration of the second time period does not exceed a preset duration threshold.
[0073] S226: Based on the sum of the second absolute values and the preset rotation angle threshold, determine whether the robot is experiencing rotational slippage.
[0074] In this step, the robot compares the sum of the second absolute values with a preset rotation angle threshold to determine whether the rotation angle change calculated based on the drive wheel motion data matches the actual rotation angle change during the robot's movement. If the sum of the second absolute values is less than or equal to the preset rotation angle threshold, it indicates that the robot's normal movement has not resulted in significant rotational slippage. If the sum of the second absolute values is greater than the preset rotation angle threshold, it indicates that the expected rotation angle change of the robot's drive wheels differs significantly from the actual rotation angle change during the robot's movement, and the robot experienced rotational slippage during the second time period.
[0075] The robot determines whether translational slippage or rotational slippage has occurred based on odometer data, rotation angle data, or environmental data collected within the same time period. Therefore, in other embodiments of this application, the order of determining translational slippage and rotational slippage, or the execution order of steps S211-S215 and steps S221-S226, can be interchanged. The robot determines whether translational slippage or rotational slippage has occurred during movement based on the collected data within the same time period, and then executes step S230 to comprehensively determine whether the robot is in a slipping state.
[0076] S230: Determine whether the robot is in a slipping state based on whether the robot experiences translational slippage and / or rotational slippage.
[0077] In practical applications, robots are usually judged by "or" conditions. That is, if the robot experiences rotational slippage or translational slippage, it is considered to be in a slipping state, as shown in Table 1a.
[0078] Table 1a - "or" formula
[0079] 0 0 0 0 1 1 1 0 1 1 1 1
[0080] In special working conditions, the robot can automatically resolve minor slippage issues through its electronic control program. In this step, the robot's criteria for determining slippage need to be strengthened. The robot can use an "AND" condition, meaning it will only be considered to be in a slippage state if it experiences both rotational and translational slippage simultaneously, as shown in Table 1b.
[0081] Table 1b and the connection formula
[0082] 0 0 0 0 1 0 1 0 0 1 1 1
[0083] S241: Acquire the running data of the robot's two drive wheels during the movement process.
[0084] When the robot is in normal motion, the output parameters of the motors used for the drive wheels remain within the normal range for a relatively long period, or the numerical changes in the output parameters are relatively stable. If the robot encounters obstacles that increase its motion resistance, or if it experiences slippage due to insufficient friction between the drive wheels and the ground, the robot is in an abnormal motion state. The output parameters of the motors corresponding to the drive wheels may change significantly within a short period of time. Therefore, in this step, the robot acquires the operational data of the two drive wheels during their movement, namely the real-time output parameters of the motors corresponding to the drive wheels, such as output current and output power, to further determine whether the robot is in an abnormal operating state in subsequent steps.
[0085] S242: Based on operational data, determine whether the robot is in an abnormal operating state.
[0086] In one embodiment, the operational data includes the motor corresponding to each drive wheel and the current value output during operation. In this step, the robot determines whether it is in an abnormal operating state based on whether the maximum change amplitude of the output current value within a preset time period exceeds a preset current threshold. Additionally, the robot can also combine changes in motor output parameters to clarify the reason for the abnormal movement state, facilitating the robot to perform corresponding tasks based on the cause and quickly restore it to normal operation.
[0087] If the robot's movement time is short or the robot's working environment is complex, the robot may misjudge the detection results of translational slippage or rotational slippage in the initial steps. Therefore, after step S230, the robot performs steps S241 to S242 to further accurately determine whether the robot is in an abnormal operating state such as being stuck by an obstacle, being on a smooth surface, or having its drive wheels spinning freely, in order to ensure the accuracy of the robot's slippage detection (in some special application scenarios, the abnormal operating state of the robot being stuck by an obstacle, being on a slippery surface, or having its drive wheels spinning freely is also referred to as "slippage").
[0088] This application addresses the problems of high cost and complex detection process associated with using positioning devices to detect slippage in existing technologies. It also solves the problem of inaccurate detection results caused by directly determining whether robot 1 is slipping based on rotational or movement information. The robot 1 in this application does not require expensive positioning equipment; it can accurately locate its position in its environment by using environmental information detected by its onboard sensors 13, thus obtaining accurate reference data. The robot 1 in this application calculates and accumulates the absolute values of the differences between the rotational angular velocities determined by the inertial navigation device 12 and the odometer 11 at the same sampling frequency over a certain time interval. It also calculates and accumulates the magnitudes of the position change vectors determined by the sensors 13 and the odometer 11, and further combines this with changes in the motor's output parameters to comprehensively determine whether robot 1 is slipping or in an abnormal operating state, thereby improving the robot 1's operating efficiency, detection efficiency, and detection accuracy.
[0089] The above description is merely a preferred embodiment of this application and is not intended to limit this application. Various modifications and variations can be made to this application by those skilled in the art. Any modifications, equivalent substitutions, improvements, etc., made within the spirit and principles of this application should be included within the protection scope of this application.
Claims
1. A method of slip detection, characterized by, The method is applied to a robot equipped with sensors, an inertial navigation device, and an odometer. The sensors are used to detect environmental information around the robot, the inertial navigation device is used to detect the robot's rotation angle information, and the odometer is used to generate odometer information synchronized with the movement of the corresponding drive wheels. The method includes: Based on the environmental information, calculate the observation location vector corresponding to the first time period; the first time period can be at least one. Based on the odometer information, calculate the odometer position vector corresponding to the first time period; For each of the first time periods, the magnitude of the difference between the position vectors is calculated based on the observed position vector and the odometer position vector; Calculate the sum of the magnitudes based on the magnitudes of the position vector differences corresponding to all the first time periods; Based on the sum of the moduli and the preset translation distance threshold, it is determined whether the robot has experienced translational slippage; The first rotational angular velocity is obtained according to the preset sampling frequency; Based on the odometer information, calculate the second rotational angular velocity generated by the two drive wheels of the robot at the same preset sampling frequency; based on the first rotational angular velocity and the second rotational angular velocity, calculate the absolute value of the difference between the rotational angular velocities at the preset sampling frequency, and use it as the first absolute value; For each sampling period, based on the scaling factor corresponding to the sampling period and the first absolute value, the absolute value of the rotation angle difference corresponding to the sampling period is calculated and used as the second absolute value; Calculate the sum of all the second absolute values within the second time period; the second time period includes at least one of the sampling periods. Based on the sum of the second absolute values and the preset rotation angle threshold, it is determined whether the robot has experienced rotational slippage; Whether the robot is in a slipping state is determined based on whether the robot experiences translational slippage and / or rotational slippage.
2. The slip detection method according to claim 1, characterized by, The step of calculating at least one observation location vector corresponding to a first time period based on the environmental information includes: Based on the environmental information corresponding to multiple sampling times, the observation position of the robot at the endpoint time is determined; wherein, each first time period corresponds to two endpoint times; For each of the first time periods, the observation position vector corresponding to the first time period is calculated based on the observation positions corresponding to the two endpoint times.
3. The slippage detection method according to claim 1, characterized in that, The step of calculating the odometer position vector corresponding to the same first time period based on the odometer information includes: Based on the timestamp queue in the odometer information and the two endpoint times corresponding to each first time period, find two target timestamps adjacent to each endpoint time; For each endpoint time, the target odometer position corresponding to each endpoint time is calculated by interpolation based on the odometer positions corresponding to the two target timestamps. For each of the first time periods, based on the target odometer positions corresponding to the two endpoint times, calculate the odometer position vector between the two target odometer positions.
4. The slippage detection method according to claim 1, characterized in that, After determining whether the robot is in a slipping state based on whether the robot experiences translational slippage and / or rotational slippage, the process includes: Acquire the operational data of the robot's two drive wheels during their movement; Based on the operational data, it is determined whether the robot is in an abnormal operating state.
5. The slippage detection method according to claim 4, characterized in that, The operational data includes the current value output by the motor corresponding to each drive wheel during operation. Determining whether the robot is in an abnormal operating state includes: The robot is determined to be in an abnormal operating state based on whether the maximum change in the current value within a preset time period exceeds a preset current threshold.
Citation Information
Patent Citations
Wheeled robot slipping and jamming detection system and method
CN111037609A
Submarine cable fault detection method using temperature prediction
CN113255166A
Robot, robot slipping processing method and device and readable storage medium
CN115685236A