Robot odometer detection method, device and storage medium
By computing the error between the calculated mileage and counting mileage of the computer robot during the target period and correcting it when the error accumulates to the threshold, the problem of insufficient accuracy of mileage data statistics during the robot movement is solved, and the accuracy of data statistics is improved.
Patent Information
- Application Number
- CN202411930308.6
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2024-12-25
- Publication Date
- 2025-04-04
AI Technical Summary
The statistical accuracy of the mileage data of the robot during movement is insufficient, resulting in a gradual increase in error and offset of the movement path.
By obtaining the odometer counting mileage of the robot during the target period, and calculating the mileage based on the linear speed, the mileage error is determined, and accumulated into the total mileage error value. When the total mileage error value is greater than or equal to the preset threshold value, the odometer correction operation is performed.
This avoids the cumulative increase of error values over time, resulting in shifting of movement paths, and improves the accuracy of robot mileage data statistics.
Smart Images

Figure CN119756428A_ABST
Abstract
Description
Technical Field
[0001] The present application relates to the field of robotics technology, and in particular to an odometer detection method, device and storage medium for a robot. Background Art
[0002] When a robot is moving, a wheel odometer installed on the wheel is usually used to convert the number of wheel rotations into a voltage signal, and the robot's mileage is measured based on the distance moved in one rotation of the wheel and the number of rotations.
[0003] In the related art, wheel odometers usually accumulate the displacement distance of the robot based on the rotation of the wheels. Therefore, in the process of the wheel odometer counting the robot's mileage data, the error of the mileage data will gradually increase as the robot moves, which leads to insufficient statistical accuracy of the robot's mileage data during movement.
[0004] The above contents are only used to assist in understanding the technical solution of the present application and do not constitute an admission that the above contents are prior art. Summary of the invention
[0005] The main purpose of this application is to provide a robot odometer detection method, device and storage medium, aiming to solve the technical problem of insufficient statistical accuracy of mileage data during the movement of the robot.
[0006] To achieve the above object, the present application provides a method for detecting an odometer of a robot, the method comprising the following steps:
[0007] If the error update process is triggered, the calculated mileage of the robot in the target time period is determined according to the linear speed of the robot in the target time period;
[0008] Determining a mileage error corresponding to the target period according to the calculated mileage and the counted mileage corresponding to the target period, wherein the counted mileage is determined based on an odometer;
[0009] If the mileage error is not zero, updating the total mileage error value according to the mileage error;
[0010] If the total mileage error value is greater than or equal to a preset threshold, an odometer correction action is performed.
[0011] In one embodiment, if the error update process is triggered, before the step of determining the calculated mileage of the robot in the target time period according to the linear speed of the robot in the target time period, the method further includes:
[0012] Receiving the odometer data returned by the odometer calibration, and obtaining the linear speed and the number of rotation pulses in the odometer data;
[0013] If the linear speed does not match the number of rotation pulses, the error update process is triggered.
[0014] In one embodiment, after the step of triggering the error update process if the linear speed and the number of rotation pulses do not match, the process further includes:
[0015] Obtain the previous odometer data of the odometer data;
[0016] Determining the target time period according to a receiving timestamp of the odometer data and a target timestamp of the previous odometer data;
[0017] Based on the number of rotation pulses, the counted mileage corresponding to the target time period is determined.
[0018] In one embodiment, the method further comprises:
[0019] When the odometer data is zero and the linear speed is not zero, the calculated mileage is added to the counted mileage.
[0020] In one embodiment, if the total mileage error value is greater than or equal to a preset threshold, the step of performing an odometer correction action includes:
[0021] When the total mileage error value is greater than or equal to a preset threshold, pausing the current execution task of the robot;
[0022] Resetting the odometer and removing the odometer data of the odometer;
[0023] Control the robot to restart the currently executing task.
[0024] In one embodiment, after the step of performing an odometer correction action if the total mileage error value is greater than or equal to a preset threshold, the method further includes:
[0025] Determine the calibration environment of the odometer according to the environment map and the task to be performed;
[0026] Determining a calibration distance of the calibration environment, and controlling the robot to perform a calibration action;
[0027] Obtaining a verification speed and a verification period of the robot during the verification action, and calculating a verification mileage according to the verification speed and the verification period;
[0028] The verification count mileage of the odometer is received, and the verification result of the odometer is determined according to the matching result of the verification mileage and the verification count mileage.
[0029] In one embodiment, if the error update process is triggered, the step of determining the calculated mileage of the robot in the target time period according to the linear speed of the robot in the target time period includes:
[0030] Acquire the linear velocity of the robot and determine a collection timestamp of the linear velocity;
[0031] Fitting the linear velocity based on the acquisition timestamp to generate a linear velocity fitting curve of the robot;
[0032] The linear speed fitting curve in the target time period is integrated, and the calculated mileage is obtained according to the integration result.
[0033] In addition, to achieve the above-mentioned purpose, the present application also provides a robot odometer detection device, which includes: a memory, a processor, and a computer program stored in the memory and executable on the processor, and the computer program is configured to implement the steps of the robot odometer detection method as described above.
[0034] In addition, to achieve the above-mentioned purpose, the present application also provides a storage medium, which is a computer-readable storage medium, and a computer program is stored on the storage medium. When the computer program is executed by the processor, the steps of the robot's odometer detection method as described above are implemented.
[0035] One or more technical solutions proposed in this application have at least the following technical effects:
[0036] The present application obtains the counted mileage of the robot's odometer in the target time period, and based on the robot's linear speed, calculates the expected mileage of the robot in the target time period, that is, calculates the mileage. According to the calculated mileage and the counted mileage, the mileage error corresponding to the robot in the target time period is determined, and the mileage error is accumulated into the total mileage error value, and when the total mileage error value is greater than a preset threshold, the odometer correction action is performed, thereby avoiding the error value in the robot's movement process gradually increasing with time, causing the robot's movement path to deviate, and improving the accuracy of the robot's mileage data statistics. BRIEF DESCRIPTION OF THE DRAWINGS
[0037] The accompanying drawings, which are incorporated in and constitute a part of this specification, illustrate embodiments consistent with the present application and, together with the description, serve to explain the principles of the present application.
[0038] In order to more clearly illustrate the embodiments of the present application or the technical solutions in the prior art, the drawings required for use in the embodiments or the description of the prior art will be briefly introduced below. Obviously, for ordinary technicians in this field, other drawings can be obtained based on these drawings without paying any creative labor.
[0039] Figure 1 This is a flow chart of the first embodiment of the odometer detection method of the robot of the present application;
[0040] Figure 2 This is a flow chart of a second embodiment of the odometer detection method for a robot of the present application;
[0041] Figure 3 This is a flow chart of a third embodiment of the odometer detection method for a robot of the present application;
[0042] Figure 4 This is a flow chart of a fourth embodiment of the odometer detection method for a robot of the present application;
[0043] Figure 5 This is a flowchart of a fifth embodiment of the odometer detection method for a robot of the present application;
[0044] Figure 6 It is a structural schematic diagram of an odometer detection device for a robot in a hardware operating environment involved in an embodiment of the present application.
[0045] The realization of the purpose, functional features and advantages of this application will be further explained in conjunction with embodiments and with reference to the accompanying drawings. DETAILED DESCRIPTION
[0046] It should be understood that the specific embodiments described herein are only used to explain the present application and are not used to limit the present application.
[0047] In order to better understand the above technical solution, the above technical solution will be described in detail below in conjunction with the accompanying drawings and specific implementation methods.
[0048] The main solution of the embodiment of the present application is: if the error update process is triggered, the calculated mileage of the robot in the target time period is determined according to the linear speed of the robot in the target time period; the mileage error corresponding to the target time period is determined according to the calculated mileage and the counted mileage corresponding to the target time period, wherein the counted mileage is determined based on the odometer; if the mileage error is not zero, the total mileage error value is updated according to the mileage error; if the total mileage error value is greater than or equal to a preset threshold, the odometer correction action is performed.
[0049] When a robot is moving, an odometer is usually used to measure the mileage data of the movement. Among them, since the odometer is usually based on the movement process of the robot, the displacement distance of the robot is accumulated. Therefore, in the process of the odometer counting the mileage data of the robot, the error of the mileage data will gradually increase as the robot moves, which leads to insufficient statistical accuracy of the mileage data of the robot during the movement.
[0050] The present application obtains the counted mileage of the robot's odometer in the target time period, and based on the robot's linear speed, calculates the expected mileage of the robot in the target time period, that is, calculates the mileage. According to the calculated mileage and the counted mileage, the mileage error corresponding to the robot in the target time period is determined, and the mileage error is accumulated into the total mileage error value, and when the total mileage error value is greater than a preset threshold, the odometer correction action is performed, thereby avoiding the error value in the robot's movement process gradually increasing with time, causing the robot's movement path to deviate, and improving the accuracy of the robot's mileage data statistics.
[0051] In order to better understand the above technical solution, exemplary embodiments of the present application will be described in more detail below with reference to the accompanying drawings. Although exemplary embodiments of the present application are shown in the accompanying drawings, it should be understood that the present application can be implemented in various forms and should not be limited by the embodiments described herein. On the contrary, these embodiments are provided in order to enable a more thorough understanding of the present application and to fully convey the scope of the present application to those skilled in the art.
[0052] It should be noted that the execution subject of this embodiment may be a robot control system, or a computing service device with data processing, network communication and program running functions, such as a computer, a robot, etc., or an electronic device capable of realizing the above functions, a robot odometer detection device, etc., which is not specifically limited in this embodiment. The following takes the robot control system as an example to illustrate this embodiment and the following embodiments.
[0053] Based on this, the present application embodiment provides a robot odometer detection method, referring to Figure 1 , Figure 1 This is a flow chart of the first embodiment of the odometer detection method of the robot of the present application.
[0054] In this embodiment, the robot odometer detection method includes steps S10 to S40:
[0055] Step S10: if the error update process is triggered, the calculated mileage of the robot in the target time period is determined according to the linear speed of the robot in the target time period;
[0056] In this embodiment, the robot control system can realize the action of the robot by controlling the robot to complete the task execution action of the robot in the task scene. Among them, after the robot records the mileage it has traveled through the odometer, it will feedback the odometer data of the odometer to the robot control system, so that the robot control system can determine the progress and status of the robot task execution based on the odometer. The robot control system can be deployed in the robot to control the robot to perform tasks and collect robot data information, or deployed in a server in the cloud to control the robot through the cloud, or deployed on a computer device mounted on the robot to control the robot by communicating with the robot.
[0057] Optionally, the robot control system may trigger the error update process upon detecting abnormal mileage data, or based on a preset error update time, or upon receiving an error update instruction sent by a user. The target period may be the time period from the last error update time of the robot to the current time, or may be the time period between two target times determined based on the cause of triggering the error update process.
[0058] Specifically, based on the mileage data fed back by the odometer, the robot control system can obtain the linear speed of the robot within the target time period, and calculate the expected mileage that the robot should collect based on the mileage data during the linear speed movement through the linear speed to obtain the calculated mileage.
[0059] As an optional implementation method for determining the calculated mileage, the robot control system can calculate the time length of the target period and the linear speed in the odometer data to determine the calculated mileage of the robot in the target period. Since the robot's odometer data feedback frequency is high, the robot can usually use the time difference between receiving the odometer data and receiving the last odometer data as the target period, and multiply the linear speed at the odometer feedback time in the odometer data by the time length of the target period to obtain the calculated mileage.
[0060] In one example, the robot odometer feeds back the odometer data collected in the 0.2 seconds to the robot control system every 0.2 seconds based on the preset odometer data feedback frequency. The robot control system multiplies the robot linear speed in the received odometer data by 0.2 seconds to generate the calculated mileage of the robot in the 0.2 seconds.
[0061] As another optional implementation for determining the calculated mileage, step S10 includes steps S11 to S13:
[0062] Step S11: acquiring the linear velocity of the robot and determining a collection timestamp of the linear velocity;
[0063] Step S12: fitting the linear velocity based on the acquisition timestamp to generate a linear velocity fitting curve of the robot;
[0064] Step S13: Integrate the linear speed fitting curve in the target time period, and obtain the calculated mileage according to the integration result.
[0065] In this embodiment, since the odometer feeds back the robot's linear velocity at the acquisition timestamp based on the acquisition timestamp, the robot's acquisition timestamp and the robot's linear velocity form discrete points of a two-dimensional mapping relationship. The robot control system uses the acquisition timestamp as an independent variable and can fit the linear velocity based on the discrete points to generate a linear velocity fitting curve of the robot. The linear velocity fitting curve reflects the change of the robot's linear velocity based on time.
[0066] Furthermore, based on the linear speed fitting curve of the robot generated by fitting, the robot control system can integrate the fitting curve according to the target time period, and the integration result represents the movement mileage of the robot based on the linear speed in the target time period, that is, the calculated mileage.
[0067] Exemplarily, the robot can use a wheel odometer as an odometer to collect the mileage data of the robot. The wheel odometer collects odometer data according to the rotation of the robot's wheels and other actions, and sends the odometer data back to the robot control system. The odometer data sent back by the wheel odometer each time usually includes one or more of the robot's linear velocity, angular velocity, position information, posture information, coded pulse cumulative value, verification data and timestamp. Among them. The linear velocity includes the robot's x-axis and y-axis velocities, which are used to calculate the robot's moving speed on the horizontal plane, the angular velocity includes the robot's z-axis angular velocity, which is used to calculate the robot's rotation speed, the position information includes the robot's x-axis and y-axis positions, the posture information includes the robot's yaw angle, that is, the robot's direction, and the coded pulse cumulative value represents the coded pulse cumulative value within a unit sampling time (generally 10ms). The verification data packet contains a checksum for data verification. The timestamp records the specific time when the data is sent.
[0068] Step S20: determining a mileage error corresponding to the target period according to the calculated mileage and the counted mileage corresponding to the target period, wherein the counted mileage is determined based on an odometer;
[0069] In this embodiment, based on the odometer data fed back by the odometer, the robot control system can also obtain the counted mileage of the robot in the target time period. The counted mileage is the movement mileage counted by the odometer for the robot in the target time period.
[0070] Specifically, the robot control system calculates the difference between the calculated mileage and the counted mileage based on the triggered error update process, and uses the calculation result as the mileage error. Since the calculated mileage is the expected course of the robot based on the linear speed, and the counted course is the robot mileage fed back by the odometer, the error mileage of the odometer, i.e., the mileage error, can be determined based on the difference between the calculated mileage and the counted mileage.
[0071] Step S30: if the mileage error is not zero, updating the total mileage error value according to the mileage error;
[0072] In this embodiment, after the robot control system determines the counted mileage within the target period according to the odometer, it will accumulate the counted mileage into the total mileage of the robot to determine the robot's action path and current position node. Therefore, as the robot's counted mileage accumulates, the mileage error of the odometer will gradually accumulate. Therefore, the robot control system calculates a total mileage error value based on the sum of the mileage errors, and after each calculation of the mileage error between the calculated mileage and the counted mileage, it will accumulate the mileage error into the total mileage error value to complete the update of the total mileage error value.
[0073] In one embodiment, after acquiring the odometer data, the robot control system will determine whether the odometer data and / or the counted mileage in the odometer data is zero, and whether the robot's linear speed is zero. Among them, when the robot's odometer data and counted mileage are not zero, and the robot's linear speed is not zero, it means that the odometer normally records the odometer data, and the robot control system calculates the mileage error according to the counted mileage in the odometer data, and accumulates the total mileage error value. When the odometer data and / or counted mileage are zero, and the robot's linear speed is not zero, it means that the odometer data collection of the robot during the action is abnormal, or the odometer data is missing or lost. In this case, the robot control system will use the calculated mileage calculated based on the linear speed and the target time period as the mileage error, and update it to the total mileage error value.
[0074] Optionally, when the robot linear speed is not zero and the mileage counted by the odometer is zero, the robot control system will accumulate the robot's calculated mileage. When the robot control system determines that the mileage data is zero and the linear speed is not zero, the calculated mileage is added to the total mileage difference. When the total mileage difference is greater than a preset threshold, the robot control system also determines that the detection result of the odometer is abnormal. Alternatively, when the linear speed is zero, the robot control system resets the total mileage difference to zero.
[0075] Step S40: If the total mileage error value is greater than or equal to a preset threshold, an odometer correction action is performed.
[0076] In this embodiment, to ensure the normal execution of the robot task, a preset threshold is stored in the robot control system. The preset threshold is the maximum mileage error value that the robot can accept when the total mileage error value accumulated by the robot affects the robot. When the total mileage error value is greater than or equal to the preset threshold, the robot control system will control the robot to stop moving and start to perform the odometer correction action.
[0077] As an optional implementation, step S40 includes steps S41 to S43:
[0078] Step S41: when the total mileage error value is greater than or equal to a preset threshold, pausing the current execution task of the robot;
[0079] Step S42: resetting the odometer and removing the odometer data of the odometer;
[0080] Step S43: Control the robot to restart the currently executing task.
[0081] In this embodiment, after the robot control system determines that the total mileage error value is greater than or equal to the preset threshold and suspends the robot's current task, it will calibrate the odometer by resetting the odometer. During the odometer reset process, the robot control system will remove all odometer data of the robot's mileage data to clear the robot's odometer data.
[0082] As another optional implementation, the robot control system may also scan the surrounding terrain through a laser radar sensor to determine the surrounding environmental data. By comparing the environmental data with the environmental map pre-stored in the robot control system, the robot's current position in the environmental map can be determined. The robot control system further determines the robot's action path by matching the position with the robot's current task, and calibrates the odometer based on the action path and the mileage of the action path.
[0083] The embodiment of the present application obtains the counted mileage of the robot's odometer in the target time period, and calculates the expected mileage of the robot in the target time period based on the robot's linear speed, that is, the calculated mileage. The mileage error corresponding to the robot in the target time period is determined according to the calculated mileage and the counted mileage, and the mileage error is accumulated into the total mileage error value, and when the total mileage error value is greater than a preset threshold, the odometer correction action is performed, thereby avoiding the error value in the robot's movement process from gradually increasing with time, causing the robot's movement path to deviate, and improving the accuracy of the robot's mileage data statistics.
[0084] Based on the same inventive concept, the present application also provides a second embodiment, referring to Figure 2 , Figure 2 This is a flow chart of the second embodiment of the odometer detection method of the robot of the present application.
[0085] In this embodiment, if the error update process is triggered as described in step S10, before determining the calculated mileage of the robot in the target time period according to the linear speed of the robot in the target time period, steps S01 to S02 are also included:
[0086] Step S01: receiving the odometer data returned by the odometer calibration, and obtaining the linear speed and the number of rotation pulses in the odometer data;
[0087] It should be noted that the core components of wheel odometers usually include photoelectric encoders, magnetic encoders or Hall effect sensors, etc. The equipment is installed on the axle of the robot wheel and can detect the pulse signal generated every time the wheel rotates a certain angle. Each pulse represents a fixed increment of wheel rotation, such as a certain angle or a certain proportion of the circumference.
[0088] In this embodiment, the odometer counts the number of pulse signals in the target time period, that is, the number of rotation pulses. Since each number of rotation pulses indicates that the robot has moved a fixed distance, the number of rotation pulses is directly proportional to the counted mileage based on the style of the odometer. The larger the number of rotation pulses in the odometer data, the larger the counted mileage of the robot. The robot control system can determine the counted mileage of the robot based on the number of rotation pulses in the odometer data.
[0089] Step S02: If the linear speed does not match the number of rotation pulses, the error update process is triggered.
[0090] In this embodiment, after receiving the odometer data and obtaining the number of rotation pulses in the odometer data, the robot control system will determine whether the number of rotation pulses is compatible with the linear speed, and trigger the error update process if it is not compatible. The robot control system can determine whether it matches by calculating whether the counted mileage corresponding to the number of rotation pulses is the same as the calculated mileage calculated by the linear speed. Alternatively, the robot control system can also determine that it is not compatible and trigger the error update process when the linear speed is not zero and the number of rotation pulses is zero.
[0091] In the embodiment of the present application, the robot control system receives the odometer data transmitted by the odometer, and obtains the linear speed and rotation pulse number of the robot in the odometer data, and determines whether to trigger the error update process of the odometer based on the adaptation of the linear speed and the rotation pulse number.
[0092] Since the system introduced in the second embodiment of the present application is a system used to implement the method of the first embodiment of the present application, based on the method introduced in the first embodiment of the present application, the person skilled in the art can understand the specific structure and deformation of the system, so it is not repeated here. All systems used in the method of the first embodiment of the present application belong to the scope of protection of this application.
[0093] Based on the same inventive concept, the present application also provides a third embodiment, referring to Figure 3 , Figure 3 This is a flow chart of the third embodiment of the odometer detection method for the robot of the present application.
[0094] In this embodiment, if the error update process is triggered as described in step S10, before determining the calculated mileage of the robot in the target time period according to the linear speed of the robot in the target time period, steps S14 to S16 are also included:
[0095] Step S14: obtaining the previous odometer data of the odometer data;
[0096] Step S15: determining the target time period according to the receiving timestamp of the odometer data and the target timestamp of the previous odometer data;
[0097] In this embodiment, each time the robot control system receives odometer data, it uses the time period between the receiving timestamp of the currently received odometer data and the target timestamp of the last odometer data as the target time period for calculating the robot mileage error.
[0098] Specifically, each time the robot control system receives odometer data, it marks the odometer data as the previous odometer data and removes the mark of the original previous odometer data. When the previous odometer data does not exist in the system, the robot control system saves the odometer data as the first frame of odometer data, marks it as the previous odometer data, and skips the error calculation of the odometer data.
[0099] Step S16: Determine the counted mileage corresponding to the target time period based on the number of rotation pulses.
[0100] In this embodiment, the rotation pulse number indicates the number of rotation pulse signals. Each rotation pulse number indicates that the robot has moved a fixed distance. The fixed distance corresponds to the rotation signal. The robot control system can use the product of the rotation pulse number and the fixed distance as the counted mileage in the target period.
[0101] Since the system introduced in the third embodiment of the present application is a system used to implement the method of the first embodiment of the present application, based on the method introduced in the first embodiment of the present application, the person skilled in the art can understand the specific structure and deformation of the system, so it is not repeated here. All systems used in the method of the first embodiment of the present application belong to the scope of protection of the present application.
[0102] Based on the same inventive concept, the present application also provides a fourth embodiment, referring to Figure 4 , Figure 4 This is a flow chart of the fourth embodiment of the odometer detection method of the robot of the present application.
[0103] In this embodiment, the robot odometer detection method further includes steps S17 to S18:
[0104] Step S17: Identify the odometer data;
[0105] Step S18: When the odometer data is zero and the linear speed is not zero, the calculated mileage is added to the counted mileage.
[0106] In this embodiment, the odometer data received by the robot control system may be zero or empty due to the loss or absence of the odometer data or abnormal odometer data collection. In particular, the robot control system will also determine that the odometer data is zero when it cannot recognize the odometer data or when the odometer data is missing.
[0107] Specifically, when the odometer data is zero and the robot's linear speed is not zero, it means that the robot's odometer data is wrong or missing, and the robot control system can determine that the odometer data and the linear speed are not compatible, but cannot obtain the counted mileage collected by the odometer through the odometer data. In this case, the robot control system can also add the calculated mileage to the counted mileage to complete the robot's action information in the target period when the odometer data is missing or the counted mileage is missing.
[0108] Optionally, the robot control system will calculate the mileage, determine the displacement mileage of the robot within the target time period, match the displacement mileage with the robot's execution task, and use the robot coordinates obtained from the previous odometer data as the starting point to complete the robot's movement trajectory within the target time period.
[0109] Since the system introduced in the fourth embodiment of the present application is a system used to implement the method of the first embodiment of the present application, based on the method introduced in the first embodiment of the present application, the person skilled in the art can understand the specific structure and deformation of the system, so it is not repeated here. All systems used in the method of the first embodiment of the present application belong to the scope of protection of this application.
[0110] Based on the same inventive concept, the present application also provides a fifth embodiment, referring to Figure 5 , Figure 5 This is a flow chart of the fifth embodiment of the odometer detection method for the robot of the present application.
[0111] In this embodiment, the robot odometer detection method further includes steps S51 to S54:
[0112] Step S51: determining the calibration environment of the odometer according to the environment map and the task to be performed;
[0113] Step S52: determining the calibration distance of the calibration environment, and controlling the robot to perform a calibration action;
[0114] Step S53: obtaining the verification speed and verification period of the robot during the verification action, and calculating the verification mileage according to the verification speed and the verification period;
[0115] Step S54: receiving the verification count mileage of the odometer, and determining the verification result of the odometer according to the matching result of the verification mileage and the verification count mileage.
[0116] In this embodiment, after completing the calibration of the robot odometer, the robot control system will perform a second calibration on the odometer based on the calibration to determine whether the odometer has returned to a normal working state.
[0117] Specifically, the robot control system can determine the calibration environment for the secondary calibration of the odometer based on the pre-stored map of the robot's working environment and the task to be performed by the robot. The calibration environment can be selected by the robot based on the linear movement distance of the task, or it can be pre-set in the environment map by the administrator. In this calibration environment, the robot control system can determine the calibration displacement distance of the robot by means of laser radar or visual feature encoding, and compare it with the calibration mileage of the odometer in this process. Alternatively, the robot control system can also calculate the calibration mileage by obtaining the calibration period and calibration speed, and compare the calibration mileage with the calibration count mileage.
[0118] Furthermore, when the comparison result is a match, the robot control system determines that the odometer calibration is successful and controls the robot to continue to perform the task. When the robot control system determines that the comparison result is a mismatch, the odometer needs to be calibrated again, and when the number of calibrations reaches a preset calibration threshold, a warning message is sent to the administrator terminal.
[0119] In the embodiment of the present application, after the odometer is calibrated by the robot, a secondary calibration is performed on the odometer to avoid the situation where the odometer data collection error is still large after the calibration is completed, thereby affecting the normal operation of the robot.
[0120] Since the system introduced in the fifth embodiment of the present application is a system used to implement the method of the first embodiment of the present application, based on the method introduced in the first embodiment of the present application, the person skilled in the art can understand the specific structure and deformation of the system, so it is not repeated here. All systems used in the method of the first embodiment of the present application belong to the scope of protection of the present application.
[0121] The present application provides an odometer detection device for a robot, the device comprising: at least one processor; and a memory communicatively connected to the at least one processor; wherein the memory stores instructions executable by the at least one processor, and the instructions are executed by the at least one processor so that the at least one processor can execute the odometer detection method for the robot in the above-mentioned embodiment one.
[0122] Reference below Figure 6 , which shows a schematic diagram of the structure of the odometer detection device of the robot suitable for implementing the embodiment of the present application. The odometer detection device of the robot in the embodiment of the present application may include but is not limited to mobile terminals such as mobile phones, laptop computers, digital broadcast receivers, PDAs (Personal Digital Assistants), PADs (Portable Application Descriptions), PMPs (Portable Media Players), vehicle-mounted terminals (such as vehicle-mounted navigation terminals), etc., and fixed terminals such as digital TVs, desktop computers, etc. Figure 6 The odometer detection device of the robot shown is merely an example and should not bring any limitation to the functions and scope of use of the embodiments of the present application.
[0123] like Figure 6As shown, the odometer detection device of the robot may include a processing device 1001 (e.g., a core processor, a graphics processor, etc.), which can perform various appropriate actions and processes according to a program stored in a read-only memory (ROM: Read Only Memory) 1002 or a program loaded from a storage device 1003 to a random access memory (RAM: Random Access Memory) 1004. Various programs and data required for the operation of the odometer detection device of the robot are also stored in RAM1004. The processing device 1001, ROM1002, and RAM1004 are connected to each other via a bus 1005. An input / output (I / O) interface 1006 is also connected to the bus. Typically, the following systems can be connected to the I / O interface 1006: input devices 1007 including, for example, a touch screen, a touchpad, a keyboard, a mouse, an image sensor, a microphone, an accelerometer, a gyroscope, etc.; output devices 1008 including, for example, a liquid crystal display (LCD), a speaker, a vibrator, etc.; storage devices 1003 including, for example, a magnetic tape, a hard disk, etc.; and communication devices 1009. The communication device 1009 can allow the robot's odometer detection device to communicate wirelessly or wired with other devices to exchange data. Although the figure shows the robot's odometer detection device with various systems, it should be understood that it is not required to implement or have all the systems shown. More or fewer systems may be implemented or have instead.
[0124] In particular, according to the embodiments disclosed in the present application, the process described above with reference to the flowchart can be implemented as a computer software program. For example, the embodiments disclosed in the present application include a computer program product, which includes a computer program carried on a computer-readable medium, and the computer program includes a program code for executing the method shown in the flowchart. In such an embodiment, the computer program can be downloaded and installed from a network through a communication device, or installed from a storage device 1003, or installed from a ROM 1002. When the computer program is executed by the processing device 1001, the above-mentioned functions defined in the method of the embodiment disclosed in the present application are executed.
[0125] The robot odometer detection device provided by the present application adopts the robot odometer detection method in the above embodiment, which can solve the technical problem of insufficient statistical accuracy of mileage data of the robot during movement. Compared with the prior art, the beneficial effects of the robot odometer detection device provided by the present application are the same as the beneficial effects of the robot odometer detection method provided by the above embodiment, and the other technical features of the robot odometer detection device are the same as the features disclosed in the method of the previous embodiment, which will not be repeated here.
[0126] It should be understood that the various parts disclosed in this application can be implemented by hardware, software, firmware or a combination thereof. In the description of the above embodiments, specific features, structures, materials or characteristics can be combined in any one or more embodiments or examples in a suitable manner.
[0127] The above is only a specific implementation of the present application, but the protection scope of the present application is not limited thereto. Any person skilled in the art who is familiar with the present technical field can easily think of changes or substitutions within the technical scope disclosed in the present application, which should be included in the protection scope of the present application. Therefore, the protection scope of the present application should be based on the protection scope of the claims.
[0128] The present application provides a computer-readable storage medium having computer-readable program instructions (ie, computer programs) stored thereon, and the computer-readable program instructions are used to execute the odometer detection method of the robot in the above-mentioned embodiment.
[0129] The computer-readable storage medium provided in the present application may be, for example, a USB flash drive, but is not limited to electrical, magnetic, optical, electromagnetic, infrared, or semiconductor systems, systems or devices, or any combination of the above. More specific examples of computer-readable storage media may include, but are not limited to: an electrical connection with one or more wires, a portable computer disk, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or flash memory), an optical fiber, a portable compact disk read-only memory (CD-ROM), an optical storage device, a magnetic storage device, or any suitable combination of the above. In this embodiment, the computer-readable storage medium may be any tangible medium containing or storing a program that can be used by or in combination with an instruction execution system, system or device. The program code contained on the computer-readable storage medium may be transmitted using any appropriate medium, including but not limited to: wires, optical cables, RF (Radio Frequency), etc., or any suitable combination of the above.
[0130] The computer-readable storage medium may be included in the odometer detection device of the robot; or may exist independently without being assembled into the odometer detection device of the robot.
[0131] The above-mentioned computer-readable storage medium carries one or more programs. When the above-mentioned one or more programs are executed by the odometer detection device of the robot, the odometer detection device of the robot: if the error update process is triggered, the calculated mileage of the robot in the target time period is determined according to the linear speed of the robot in the target time period; the mileage error corresponding to the target time period is determined according to the calculated mileage and the counted mileage corresponding to the target time period, wherein the counted mileage is determined based on the odometer; if the mileage error is not zero, the total mileage error value is updated according to the mileage error; if the total mileage error value is greater than or equal to a preset threshold, the odometer correction action is executed.
[0132] Computer program code for performing the operations of the present application may be written in one or more programming languages or a combination thereof, including object-oriented programming languages such as Java, Smalltalk, C++, and conventional procedural programming languages such as "C" or similar programming languages. The program code may be executed entirely on the user's computer, partially on the user's computer, as a separate software package, partially on the user's computer and partially on a remote computer, or entirely on a remote computer or server. In the case of a remote computer, the remote computer may be connected to the user's computer through any type of network, including a local area network (LAN) or a wide area network (WAN), or may be connected to an external computer (e.g., via the Internet using an Internet service provider).
[0133] The flow chart and block diagram in the accompanying drawings illustrate the possible architecture, function and operation of the system, method and computer program product according to various embodiments of the present application. In this regard, each square box in the flow chart or block diagram can represent a module, a program segment or a part of a code, and the module, the program segment or a part of the code contains one or more executable instructions for realizing the specified logical function. It should also be noted that in some alternative implementations, the functions marked in the square box can also occur in a sequence different from that marked in the accompanying drawings. For example, two square boxes represented in succession can actually be executed substantially in parallel, and they can sometimes be executed in the opposite order, depending on the functions involved. It should also be noted that each square box in the block diagram and / or flow chart, and the combination of the square boxes in the block diagram and / or flow chart can be implemented with a dedicated hardware-based system that performs a specified function or operation, or can be implemented with a combination of dedicated hardware and computer instructions.
[0134] The modules involved in the embodiments described in this application may be implemented by software or hardware, wherein the name of the module does not constitute a limitation on the unit itself in some cases.
[0135] The readable storage medium provided by the present application is a computer-readable storage medium, which stores computer-readable program instructions (i.e., computer programs) for executing the odometer detection method of the above-mentioned robot, and can solve the technical problem of insufficient statistical accuracy of mileage data of the robot during movement. Compared with the prior art, the beneficial effects of the computer-readable storage medium provided by the present application are the same as the beneficial effects of the odometer detection method of the robot provided by the above-mentioned embodiment, and will not be repeated here.
[0136] The above descriptions are only some embodiments of the present application, and are not intended to limit the patent scope of the present application. All equivalent structural changes made using the contents of the present application specification and drawings under the technical concept of the present application, or direct / indirect applications in other related technical fields are included in the patent protection scope of the present application.
Claims
1. A robot odometer detection method, characterized in that: The method comprises the following steps: If the error update process is triggered, the calculated mileage of the robot in the target time period is determined according to the linear speed of the robot in the target time period; Determining a mileage error corresponding to the target period according to the calculated mileage and the counted mileage corresponding to the target period, wherein the counted mileage is determined based on an odometer; If the mileage error is not zero, updating the total mileage error value according to the mileage error; If the total mileage error value is greater than or equal to a preset threshold, an odometer correction action is performed.
2. The method according to claim 1, characterized in that If the error update process is triggered, before the step of determining the calculated mileage of the robot in the target time period according to the linear speed of the robot in the target time period, the method further includes: Receiving the odometer data returned by the odometer calibration, and obtaining the linear speed and the number of rotation pulses in the odometer data; If the linear speed does not match the number of rotation pulses, the error update process is triggered.
3. The method according to claim 2, characterized in that After the step of triggering the error update process if the linear speed and the number of rotation pulses do not match, the method further includes: Obtain the previous odometer data of the odometer data; Determining the target time period according to a receiving timestamp of the odometer data and a target timestamp of the previous odometer data; Based on the number of rotation pulses, the counted mileage corresponding to the target time period is determined.
4. The method according to claim 2, characterized in that The method further comprises: When the odometer data is zero and the linear speed is not zero, the calculated mileage is added to the counted mileage.
5. The method according to claim 1, characterized in that If the total mileage error value is greater than or equal to a preset threshold, the step of performing an odometer correction action includes: When the total mileage error value is greater than or equal to a preset threshold, pausing the current execution task of the robot; Resetting the odometer and removing the odometer data of the odometer; Control the robot to restart the currently executing task.
6. The method according to claim 1, characterized in that After the step of executing the odometer correction action if the total mileage error value is greater than or equal to the preset threshold, the method further includes: Determine the calibration environment of the odometer according to the environment map and the task to be performed; Determining a calibration distance of the calibration environment, and controlling the robot to perform a calibration action; Obtaining a verification speed and a verification period of the robot during the verification action, and calculating a verification mileage according to the verification speed and the verification period; The verification count mileage of the odometer is received, and the verification result of the odometer is determined according to the matching result of the verification mileage and the verification count mileage.
7. The method according to claim 1, characterized in that If the error update process is triggered, the step of determining the calculated mileage of the robot in the target time period according to the linear speed of the robot in the target time period includes: Acquire the linear velocity of the robot and determine a collection timestamp of the linear velocity; Fitting the linear velocity based on the acquisition timestamp to generate a linear velocity fitting curve of the robot; The linear speed fitting curve in the target time period is integrated, and the calculated mileage is obtained according to the integration result.
8. A robot odometer detection device, characterized in that: The device comprises: a memory, a processor, and a computer program stored in the memory and executable on the processor, wherein the computer program is configured to implement the steps of the odometer detection method for a robot according to any one of claims 1 to 7.
9. A storage medium, characterized in that: The storage medium is a computer-readable storage medium, and a computer program is stored on the storage medium. When the computer program is executed by a processor, the steps of the robot odometer detection method according to any one of claims 1 to 7 are implemented.