Method for detecting collision direction of robot and related device
By acquiring robot motion signals through inertial sensors and determining the robot's orientation and yaw angle using accelerometers and gyroscopes, the high-cost collision direction detection problem in existing technologies is solved, achieving more efficient and accurate detection.
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2024-10-09
- Publication Date
- 2026-04-10
AI Technical Summary
In existing technologies, robot collision direction detection typically requires multiple microswitches, resulting in high costs and low detection efficiency.
The robot's motion signals are acquired by inertial sensors, and the robot's orientation and yaw angle are determined by accelerometers and gyroscopes. The collision direction is then calculated, replacing multiple microswitches.
It reduces hardware costs, improves the efficiency and accuracy of collision direction detection, and reduces the need for logic judgment of multiple micro-switch signals.
Smart Images

Figure CN121821341A_ABST
Abstract
Description
Technical Field
[0001] The embodiments of this disclosure generally relate to the field of electronic devices, and more specifically to methods and related apparatus for detecting the collision direction of a robot. Background Technology
[0002] With technological advancements, non-contact obstacle detection sensors (such as LiDAR, infrared sensors, and vision cameras) are increasingly being used in the field of robotics. These sensors can detect obstacles in real time and accurately, and react before a collision occurs, thereby protecting the safety of the robot and its surrounding environment.
[0003] Collision orientation detection for robots has significant application value. In some robotic operating environments (e.g., cleaning environments), the robot's collision orientation can be used to detect edges and obstacles in the work area to generate a systematic movement path. Therefore, accurate collision orientation detection is crucial for robot path planning. Summary of the Invention
[0004] Embodiments of this disclosure provide a method and related apparatus for detecting the collision direction of a robot.
[0005] In a first aspect of this disclosure, a method for detecting the collision direction of a robot is provided. The method includes acquiring signals of robot motion from an inertial sensor. The method further includes determining at least one of the robot's orientation and yaw angle based on the signals in the event of a collision. Furthermore, the method includes determining the robot's collision direction based on at least one of the orientation and yaw angle.
[0006] In a second aspect of this disclosure, an apparatus for detecting the collision direction of a robot is provided. The apparatus includes a signal acquisition module configured to acquire signals of robot motion from an inertial sensor; a state determination module configured to determine at least one of the robot's orientation and yaw angle based on the signals in the event of a robot collision; and a collision direction determination module configured to determine the robot's collision direction based on at least one of the orientation and yaw angle.
[0007] In a third aspect of this disclosure, a controller is provided. The controller includes at least one processor. The controller also includes memory coupled to the at least one processor and having instructions stored thereon, which, when executed by the at least one processor, cause the controller to perform the method provided according to the first aspect.
[0008] In a fourth aspect of this disclosure, a robot is provided. The robot includes inertial sensors, including accelerometers and gyroscopes. Furthermore, the robot also includes a controller provided according to a third aspect.
[0009] In a fifth aspect of this disclosure, a machine program product is provided, comprising a machine program that is executed by a processor to implement the method provided in the first aspect.
[0010] In a sixth aspect of the disclosure, a machine-readable storage medium is provided. The machine-readable storage medium stores machine-executable instructions, which are executed by a processor to implement the method provided according to a first aspect of this disclosure.
[0011] It should be understood that the description in the Summary of the Invention section is not intended to limit the key or essential features of the embodiments of this disclosure, nor is it intended to restrict the scope of this disclosure. Other features of this disclosure will become readily apparent from the following description. Attached Figure Description
[0012] The above and other features, advantages, and aspects of the embodiments of this disclosure will become more apparent from the accompanying drawings and the following detailed description. In the drawings, the same or similar reference numerals denote the same or similar elements, wherein:
[0013] Figure 1A A schematic diagram of a robot in one state, representing some embodiments of the present disclosure, is shown;
[0014] Figure 1B A schematic diagram of a robot in another state, representing some embodiments of the present disclosure, is shown;
[0015] Figure 2 A flowchart illustrating a method for detecting the collision direction of a robot, according to some embodiments of this disclosure, is shown.
[0016] Figure 3 A schematic diagram illustrating a process for detecting the collision direction of a robot, according to some embodiments of this disclosure, is shown.
[0017] Figure 4 A schematic diagram of a set of robot motion signals is shown, representing some embodiments of the present disclosure;
[0018] Figure 5 Block diagrams of apparatus for detecting the collision direction of a robot, according to some embodiments of the present disclosure, are shown; and
[0019] Figure 6 A schematic block diagram of a controller according to some embodiments of the present disclosure is shown.
[0020] In all the accompanying figures, the same or similar reference numerals denote the same or similar elements. Detailed Implementation
[0021] Embodiments of this disclosure will now be described in more detail with reference to the accompanying drawings. While some embodiments of this disclosure are shown in the drawings, it should be understood that this disclosure can be implemented in various forms and should not be construed as limited to the embodiments set forth herein. Rather, these embodiments are provided to provide a more thorough and complete understanding of this disclosure. It should be understood that the accompanying drawings and embodiments of this disclosure are for illustrative purposes only and are not intended to limit the scope of protection of this disclosure.
[0022] In the description of embodiments of this disclosure, the term "comprising" and similar terms should be understood as open-ended inclusion, i.e., "including but not limited to". The term "based on" should be understood as "at least partially based on". The term "one embodiment" or "the embodiment" should be understood as "at least one embodiment". The terms "first", "second", etc., may refer to different or the same objects. Other explicit and implicit definitions may also be included below.
[0023] As mentioned above, accurate collision direction detection is a prerequisite for robot path planning. Related technologies typically deploy multiple microswitches at different locations on the robot. When a collision occurs in a certain location, the microswitch located at that location can collect the collision signal. In this way, the robot can perform collision direction detection using microswitches. Since a robot often requires multiple microswitches surrounding it to ensure accurate collision direction detection, the cost is often quite high.
[0024] Therefore, embodiments of this disclosure provide a method for detecting the collision direction of a robot. This method acquires signals of robot motion using inertial sensors and determines the robot's state, including its orientation and yaw angle, based on these signals after a collision. The collision direction is then further determined based on this state. In this way, inertial sensors can replace multiple microswitches to detect the robot's collision direction. Furthermore, the collision direction can be determined based on signals measured by the inertial sensors, eliminating the need for logical judgments on multiple signals from multiple microswitches. Therefore, embodiments of this disclosure can save on the cost of collision direction detection and improve detection efficiency.
[0025] Figure 1A-Figure 1B Schematic diagrams of the robot 100 in different states according to some embodiments of this disclosure are shown. Figure 1A-Figure 1B As shown, the center O of robot 100 can be defined as the origin, the linear movement direction of robot 100 is the positive Y-axis (which can be called the first direction), and the direction perpendicular to the Y-axis is the X-axis direction, thus establishing a coordinate system XOY. It should be understood that the X-axis and Y-axis directions in the coordinate system XOY change as robot 100 rotates, for example, in… Figure 1AThe X-axis of robot 100 is horizontal. When the robot rotates by an angle θ, the angle between the X-axis and the horizontal direction is θ.
[0026] In some embodiments, the collision directions of the robot 100 can be classified, for example, a direction at 0-45 degrees to the positive X-axis is designated as direction 5, and a direction at 45-60 degrees to the positive X-axis is designated as direction 4, etc. Thus, it is possible to determine... Figure 1A-Figure 1B The 10 collision directions shown include directions 1-5 located in the first region and directions 6-10 located in the second region, with the first and second regions situated on opposite sides of the X-axis. It should be understood that the division of the collision regions in this embodiment is merely an example and does not constitute a limitation of this disclosure.
[0027] In some embodiments, the robot 100 can maintain linear movement along the positive Y-axis and rotate around its own center. When the robot 100 rotates, a yaw angle θ is generated. It should be understood that, for the convenience of describing the yaw angle θ below, the angle between the positive X-axis and the horizontal direction can be defined as the yaw angle θ in this disclosure. However, other definitions, such as the angle between the positive Y-axis and the vertical direction, are also within the range described by the yaw angle in this disclosure. This embodiment is merely an example. The shape of the robot 100 in this disclosure can be any polygon, and the robot 100 can have any number of possible collision directions. This disclosure does not limit this.
[0028] In some embodiments, the robot 100 may include an inertial sensor 110 and a controller 120. The inertial sensor 110 can acquire signals of the robot 100's motion. The inertial sensor 110 can then send these signals to the controller 120. In some embodiments, the inertial sensor 110 may include an accelerometer 112 and a gyroscope 114. The accelerometer 112 can be used to acquire acceleration signals, while the gyroscope 114 can be used to acquire angular velocity signals.
[0029] In some embodiments, the controller 120 may include a signal acquisition unit 122, a state determination unit 124, and a collision direction determination unit 126. The signal acquisition unit 122 may be used to acquire motion signals of the robot 100 from the inertial sensor 110. The state determination unit 124 may be used to determine at least one of the robot 100's orientation and yaw angle based on the signals in the event of a collision. The collision direction determination unit 126 may be used to determine the collision direction of the robot 100 based on at least one of the orientation and yaw angle.
[0030] In this embodiment, the controller 120 can acquire motion signals from the inertial sensor 110, and then determine the state of the robot 100 based on these signals after a collision, including the robot's orientation and yaw angle, and further determine the collision direction of the robot 100 based on this state. In this way, the inertial sensor 110 can replace multiple microswitches to reduce hardware costs, thereby detecting the collision direction of the robot 100. Furthermore, the collision direction can be determined based on the signals measured by the inertial sensor 110 without requiring logical judgments on multiple signals from multiple microswitches. Therefore, the embodiments of this disclosure can save on collision direction detection costs and improve detection efficiency.
[0031] The following will combine Figures 2 to 6 The process according to embodiments of this disclosure is described in detail. For ease of understanding, the specific data mentioned in the following description are exemplary and not intended to limit the scope of this disclosure. It should be understood that the embodiments described below may also include additional actions not shown and / or actions shown may be omitted, and the scope of this disclosure is not limited in this respect.
[0032] Figure 2 A flowchart of a method 200 for detecting the collision direction of a robot, according to some embodiments of the present disclosure, is shown. In some embodiments, method 200 may be performed by controller 120. It should be understood that although the following description refers to controller 120 as the execution entity, method 200 may also be performed by other devices. Method 200 may also include additional actions not shown and / or actions shown may be omitted, and the scope of the present disclosure is not limited in this respect.
[0033] At point 202, signals of robot motion are acquired from inertial sensors. In some embodiments, signals associated with linear movement or rotation of the robot 100 can be acquired via inertial sensor 110 mounted on the robot 100. It should be understood that the signals acquired by inertial sensor 110 will fluctuate accordingly when the robot's speed changes or when rotation occurs. Therefore, the motion signals of the robot 100 can be used by controller 120 to analyze the motion state of the robot 100.
[0034] At point 204, in the event of a collision, at least one of the robot's orientation and yaw angle is determined based on the signal. In some embodiments, after a collision, the motion signal of the robot 100 exhibits a significant change, such as spikes or fluctuations. Therefore, the controller 120 can determine the state of the robot 100 at the time of the collision, including its orientation and yaw angle, based on the signal. The orientation, for example, indicates whether the first region (i.e., directions 1-5) is in the positive Y-axis direction, or whether the second region (i.e., directions 6-10) is in the positive Y-axis direction. The yaw angle can be, for example, [missing information]. Figure 1B The yaw angle θ is shown in the figure.
[0035] At point 206, the collision direction of the robot is determined based on at least one of orientation and yaw angle. In some embodiments, after the controller 120 detects the state of the robot 100, such as its orientation and yaw angle, it can determine the collision direction of the robot based on that state. It should be understood that after determining the state of the robot 100, the controller 120 can determine which collision directions are most likely to contact the edge of the work surface, thereby determining the collision direction of the robot 100.
[0036] In the embodiments of this disclosure, inertial sensors acquire signals of robot motion, and after a collision, the robot's state, including its orientation and yaw angle, is determined based on these signals. Furthermore, the collision direction is further determined based on this state. This approach allows the use of inertial sensors to replace multiple microswitches, reducing hardware costs and enabling the detection of the robot's collision direction. Moreover, the collision direction can be determined solely from the signals measured by the inertial sensors, eliminating the need for logical judgments on multiple signals from various microswitches. Therefore, the embodiments of this disclosure save on collision direction detection costs and improve detection efficiency.
[0037] Figure 3 A schematic diagram of a process 300 for detecting the collision direction of a robot, according to some embodiments of the present disclosure, is shown. In some embodiments, in the robot 100 shown in FIG1, process 300 may be executed by controller 120. It should be understood that although the following description refers to controller 120 as the executing entity, process 300 may also be executed by other devices. Process 300 may also include additional actions not shown and / or actions shown may be omitted, and the scope of the present disclosure is not limited in this respect.
[0038] like Figure 3As shown, to avoid using multiple microswitches with higher hardware costs, this disclosure employs an inertial sensor 301 to achieve collision direction detection for the robot. In some embodiments, the inertial sensor 301 may be a sensor that utilizes the effect of inertia generated by the robot 100 in motion or transient motion to detect information such as object acceleration, angular velocity, and direction. In some embodiments, the inertial sensor 301 may include an accelerometer and a gyroscope, wherein the accelerometer is used to acquire acceleration signals 302, and the gyroscope is used to acquire gyroscope signals 303 (i.e., angular velocity signals). In some embodiments, the robot 100 may be a window cleaning robot for performing window cleaning operations. This disclosure does not limit the use of the robot 100.
[0039] In some embodiments, a low-pass filter 304 can be used to process the acceleration signal 302 to remove high-frequency noise from the robot 100 itself. This noise may originate from circuit noise, mechanical vibration, etc. By setting the filtering frequency band, the low-pass filter 304 can allow only low-frequency signals to pass through, while attenuating or blocking high-frequency noise, thereby obtaining the acceleration signals of the robot 100 in the X-axis, Y-axis, and Z-axis directions, respectively. The Z-axis is the axis perpendicular to the plane of the XOY coordinate system. In this way, the accuracy of the acceleration signals of the robot 100 in different directions can be improved, thereby improving the efficiency and accuracy of collision direction detection.
[0040] In some embodiments, the controller 120 can determine the maximum and minimum values of an acceleration signal (referred to as a first acceleration signal) of the robot in the Y-axis direction (referred to as a first direction). Then, the controller 120 can determine the orientation of the robot 100 based on the maximum and minimum values respectively. For example, if the orientation of the robot 100 is determined using a first region (i.e., directions 1-5), and a minimum value is detected first, the controller 120 can determine that the orientation of the robot 100 is the positive Y-axis direction (referred to as a first orientation). Conversely, if a maximum value is detected first, the controller 120 can determine that the orientation of the robot 100 is the opposite Y-axis direction (referred to as a second orientation).
[0041] In this way, the orientation of robot 100 can be determined solely based on the acceleration signal along the Y-axis, thereby further determining the approximate area of robot collision. For example, if robot 100 is oriented in the positive Y-axis direction when the collision occurs, the possible collision directions of robot 100 can be determined to be directions 1-5 in the first region. If robot 100 is oriented in the opposite Y-axis direction when the collision occurs, the possible collision directions of robot 100 can be determined to be directions 6-10 in the second region.
[0042] In some embodiments, the noise-removed Y-axis acceleration signal can be averaged 305. For example, the controller 120 can calculate multiple average values over multiple time intervals based on the Y-axis acceleration signal and perform curve fitting on the multiple average values to establish an average curve. Then, the controller 120 can establish an envelope 306 based on the average curve and a threshold, including an upper envelope obtained by adding an upper threshold (which may be called a first threshold) to the Y-axis value of the average curve and a lower envelope obtained by subtracting a lower threshold (which may be called a second threshold) from the Y-axis value of the average curve.
[0043] Then, the controller 120 performs extreme value judgment 307 based on the mean curve and envelope 306. If the first extreme value in the mean curve is a minimum value below the lower envelope, the controller 120 executes 308 to determine directions 1-5 of the first region as possible collision directions. Conversely, if the first extreme value in the mean curve is a maximum value above the upper envelope, the controller 120 executes 309 to determine directions 6-10 of the second region as possible collision directions. In this way, envelope detection can be performed on the acceleration signal in the Y-axis direction, thereby quickly locating extreme values and determining possible collision directions, thus improving detection efficiency.
[0044] In some embodiments, a low-pass filter 311 can also be used to process the acceleration signal 302 to filter out motion or collision signals and high-frequency noise, retaining only the gravity signals in the X and Y axes. Optionally, the low-pass filter 311 may have a lower cutoff frequency (e.g., 1 Hz) than the low-pass filter 304 to extract the gravity signal. The controller 120 can then calculate the yaw angle 312 based on the gravity signal using the following formula:
[0045] θ=arctan2(filteredAccX,filteredAccY)*180 / PI (1)
[0046] Where filteredAccX represents the acceleration in the X-axis direction (which can be called the second gravity signal), and filteredAccY represents the acceleration in the Y-axis direction (which can be called the first gravity signal). In this way, the yaw angle of the robot 100 can be obtained only from the gravity signal in the acceleration signal, thereby improving the efficiency of collision direction detection.
[0047] In some embodiments, the controller 120 can process the gyroscope signal 303 using a low-pass filter 313 to remove high-frequency noise from the robot 100 itself, thereby obtaining the rotation angle 314 of the robot 100 around the Z-axis. In some embodiments, when it is determined that the robot 100 has rotated, the controller 120 can determine the rotation angle 314 of the robot 100 based on the integral of the angular velocity in the filtered gyroscope signal over the time of rotation of the robot 100. In this way, the angle of rotation of the robot 100 can be accurately detected based on the gyroscope, thereby improving the accuracy of collision direction detection.
[0048] In some embodiments, when the robot 100 is moving in a straight line, the controller 120 can determine the yaw angle of the robot 100 before rotation (referred to as the first yaw angle) based on the acceleration signal. Then, after the robot 100 rotates, the controller 120 can determine the angle of rotation, i.e., the rotation angle 314, of the robot 100 based on the gyroscope signal 303. Further, the controller 120 can determine the yaw angle of the robot 100 after rotation (referred to as the second yaw angle) based on the yaw angle before rotation and the angle of rotation. It should be understood that during the rotation of the robot 100, the gyroscope can more accurately determine the rotation angle, thereby improving the accuracy of the yaw angle of the robot 100 during its rotation.
[0049] In some embodiments, the rotation angle 314 can be a vector angle related to the rotation direction 315 of the robot 100, and the controller 120 can determine the rotation direction 315 of the robot 100 based on the vector angle. For example, if the rotation angle 314 is a negative vector angle (referred to as a first vector angle), the controller 120 can determine that the rotation direction 315 of the robot is clockwise; if the rotation angle 314 is a positive vector angle (referred to as a second vector angle), the controller 120 can determine that the rotation direction 315 of the robot is counterclockwise; if the absolute value of the rotation angle 314 is lower than an angle threshold (e.g., the absolute value of the rotation angle is 0), it can be determined that the robot has not rotated. In this way, the rotation direction 315 of the robot 100 can be determined quickly.
[0050] In some embodiments, after a collision 310 is detected, the controller 120 can combine the results of the extreme value judgment 307, yaw angle 312, rotation angle 314, and rotation direction 315 to comprehensively determine the robot's collision direction 316. For example, the controller 120 can first determine the collision area corresponding to the robot 100's orientation based on the results of the extreme value judgment 307. Taking the first area (i.e., direction 1-direction 5) as an example, after determining the first area, the controller 120 can further determine the robot 100's final yaw angle based on the yaw angle 312, rotation angle 314, and rotation direction 315, and then select the most likely collision direction from directions 1-direction 5. For example, in Figure 1B In this process, directions 1 and 5 are selected as the most likely collision directions. This method allows the collision direction of robot 100 to be determined based on multiple dimensions, thereby improving the accuracy of the collision direction.
[0051] In some embodiments, the controller 120 can use the current collision direction as the previous collision direction 317, and combine the previous collision direction 317 with the aforementioned conditions to determine the collision direction for the next collision. This method can improve the accuracy of collision direction detection. The following will refer to... Figure 4 Further explanation on how to determine the collision direction of the robot 316.
[0052] Figure 4 A schematic diagram of a set of robot motion signals 400 according to some embodiments of this disclosure is shown. Figure 4 As shown, from top to bottom, the graphs are: acceleration signal diagram a, upper and lower envelope diagram b, collision direction indication diagram c, and yaw angle variation diagram d (hereinafter referred to as Figure a, Figure b, Figure c, and Figure d, respectively). In Figure a, curve 1 represents the acceleration variation of robot 100 along the X-axis, curve 2 represents the acceleration variation of robot 100 along the Y-axis, and curve 3 represents the acceleration variation of robot 100 along the Z-axis; in Figure b, dashed line 4 represents the upper envelope of robot 100's Y-axis acceleration, and dashed line 5 represents the lower envelope of robot 100's Y-axis acceleration; Figure c shows the collisions that occurred at which time points and in which directions; and Figure d shows the change of robot 100's yaw angle over time and the prediction of the collision direction.
[0053] like Figure 4As shown, for example, within the time interval of 400-500, Figure a detects acceleration fluctuations on the Y-axis. Referring to Figure b, the maximum value is detected by the envelope first, so the controller 120 can determine that the robot 100 has collided within the time interval of 400-500 (reflected in Figure c), and that the robot's orientation is in the opposite direction of the Y-axis, with possible collision directions being direction 6-direction 10. Combining Figure d, the deflection angle hardly changed before the collision occurred, so it can be determined that the robot 100 did not rotate before the collision, but moved in a straight line. In summary, the collision direction of the robot 100 within the time interval of 400-500 can be concluded to be direction 8.
[0054] For example, within the time interval 700-800, Figure a detects acceleration fluctuations on the Y-axis. Referring to Figure b, the minimum value is detected by the envelope first, so the controller 120 can determine that the robot 100 collided within the time interval 700-800 (reflected in Figure c), and the robot 100's orientation is in the positive Y-axis direction, with possible collision directions being direction 1-direction 5. Combining Figure d, it can be observed that the deflection angle gradually increases before the collision, thus it can be determined that the robot rotated counterclockwise before the collision. Therefore, the controller 120 can determine that the possible collision direction of the robot 100 is direction 1 or direction 4. Considering that the robot 100 was moving in a straight line in the opposite direction of the Y-axis before the collision event within the time interval 700-800, direction 4 can be ruled out. In summary, it can be concluded that the collision direction of the robot 100 within the time interval 700-800 is direction 1.
[0055] Figure 5 A block diagram of a device 500 for detecting the collision direction of a robot, according to some embodiments of this disclosure, is shown. Figure 5 As shown, the device 500 includes a signal acquisition module 502 configured to acquire signals of robot motion from an inertial sensor. The device 500 also includes a state determination module 504 configured to determine at least one of the robot's orientation and yaw angle based on the signals in the event of a robot collision. Furthermore, the device 500 includes a collision direction determination module 506 configured to determine the robot's collision direction based on at least one of the orientation and yaw angle.
[0056] In some embodiments, the inertial sensor includes an accelerometer, the signal includes an acceleration signal acquired by the accelerometer, and the device 500 further includes an orientation determination module configured to determine, based on the acceleration signal, a first acceleration signal of the robot in a first direction, wherein the first direction is the direction of movement of the robot; determine a maximum and a minimum value of the first acceleration signal; and determine a first orientation of the robot based on the maximum value, and determine a second orientation of the robot based on the minimum value, wherein the first orientation is opposite to the second orientation.
[0057] In some embodiments, the apparatus 500 further includes an extremum determination module configured to: establish a mean curve based on multiple average values of the first acceleration signal over multiple time intervals; establish an upper envelope of the first acceleration signal based on the mean curve and a first threshold; establish a lower envelope of the first acceleration signal based on the mean curve and a second threshold; determine a maximum value of the first acceleration signal based on the upper envelope; and determine a minimum value of the first acceleration signal based on the lower envelope.
[0058] In some embodiments, the collision direction determination module 506 is further configured to determine the direction of the first region as the collision direction of the robot when the robot is facing a first orientation; and to determine the direction of the second region as the collision direction of the robot when the robot is facing a second orientation, wherein the first region and the second region are located on opposite sides of a centerline, the centerline being perpendicular to the first direction and passing through the center of the robot.
[0059] In some embodiments, the inertial sensor includes an accelerometer, the signal includes an acceleration signal acquired by the accelerometer, and the device 500 further includes a yaw angle determination module configured to determine a first gravity signal of the robot in a first direction and a second gravity signal perpendicular to the first direction based on the acceleration signal, wherein the first direction is the direction of movement of the robot; and to determine the yaw angle of the robot based on the first gravity signal and the second gravity signal.
[0060] In some embodiments, the inertial sensor includes a gyroscope, the signal includes an angular velocity signal acquired by the gyroscope, and the device 500 further includes a rotation angle determination module configured to determine the time of robot rotation when the robot rotates; and to determine the rotation angle of the robot based on the angular velocity signal and the time of robot rotation.
[0061] In some embodiments, the rotation angle is a vector angle related to the rotation direction of the robot, and the rotation angle determination module is further configured to determine that the rotation direction of the robot is clockwise when the rotation angle is a first vector angle; to determine that the rotation direction of the robot is counterclockwise when the rotation angle is a second vector angle, wherein the directions of the first vector angle and the second vector angle are opposite; and to determine that the robot has not rotated when the absolute value of the rotation angle is less than an angle threshold.
[0062] In some embodiments, the inertial sensor includes an accelerometer and a gyroscope, the signal includes an acceleration signal acquired by the accelerometer and an angular velocity signal acquired by the gyroscope, and the yaw angle determination module is further configured to determine a first yaw angle of the robot based on the acceleration signal of the robot in the moving state when the robot is in a moving state; determine a rotation angle of the robot based on the gyroscope signal of the robot in the rotating state when the robot enters a rotating state from the moving state; and determine a second yaw angle of the robot after rotation based on the first yaw angle and the rotation angle.
[0063] In some embodiments, the orientation determination module is further configured to determine a first acceleration signal of the robot in a first direction, the first direction being the robot's direction of movement, based on the acceleration signal; and to determine the robot's orientation in the first direction based on the first acceleration signal.
[0064] In some embodiments, the yaw angle determination module is further configured to determine the robot's gravity signal from the angular velocity signal using a low-pass filter of a preset frequency; and to determine the robot's first yaw angle based on the gravity signal.
[0065] It is understood that the apparatus 500 of this disclosure can achieve at least one of the many advantages that the methods or processes described above can achieve. For example, the apparatus 500 can acquire signals of robot motion via inertial sensors and determine the robot's state, including its orientation and yaw angle, based on these signals after a collision, thereby further determining the robot's collision direction based on this state. In this way, inertial sensors can be used instead of multiple microswitches to detect the robot's collision direction. Furthermore, the collision direction can be determined based on the signals measured by the inertial sensors without requiring logical judgments on multiple signals from multiple microswitches. Therefore, embodiments of this disclosure can save on the cost of collision direction detection and improve detection efficiency.
[0066] Figure 6 A schematic block diagram of a controller 600 that can be used to implement embodiments of the present disclosure is shown. In some embodiments, the controller 600 is used to implement the controller 120 shown in the robot 100 of FIG1. Figure 6 As shown, the controller 600 includes a processor 601, which can perform various appropriate actions and processes based on machine program instructions loaded into random access memory (RAM) 603 according to machine program instructions stored in read-only memory (ROM) 602. The RAM 603 may also store various programs and data required for the operation of the controller 600. The processor 601, ROM 602, and RAM 603 are interconnected via a bus 604. An input / output (I / O) interface 605 is also connected to the bus 604.
[0067] The various processes and procedures described above, such as method 300 and process 400, can be executed by processor 601. For example, in some embodiments, method 300 and process 400 may be implemented as machine software programs tangibly contained in a machine-readable medium. In some embodiments, part or all of the machine program may be loaded into and / or installed onto controller 600 via ROM 602. When the machine program is loaded into RAM 603 and executed by processor 601, one or more actions of method 300 and process 400 described above may be performed.
[0068] This disclosure can be a method, apparatus, system, and / or machine program product. A machine program product may include a machine-readable storage medium loaded with machine-readable program instructions for performing various aspects of this disclosure.
[0069] Machine-readable storage media can be tangible devices capable of holding and storing instructions for use by an instruction execution device. Machine-readable storage media can be, for example—but not limited to—electrical storage devices, magnetic storage devices, optical storage devices, electromagnetic storage devices, semiconductor storage devices, or any suitable combination of the foregoing. More specific examples (a non-exhaustive list) of machine-readable storage media include: random access memory (RAM), read-only memory (ROM), erasable programmable read-only memory (EPROM or flash memory), static random access memory (SRAM), and any suitable combination of the foregoing. As used herein, machine-readable storage media is not to be construed as transient signals themselves, such as radio waves or other freely propagating electromagnetic waves, electromagnetic waves propagating through waveguides or other transmission media (e.g., light pulses through fiber optic cables), or electrical signals transmitted through wires.
[0070] The machine-readable program instructions described herein can be downloaded from machine-readable storage media to various computing / processing devices, or downloaded via a network, such as the Internet, local area network, wide area network, and / or wireless network, to external machines or external storage devices. The network may include copper cables, fiber optic cables, wireless transmission, routers, firewalls, switches, gateway machines, and / or edge servers. A network adapter card or network interface in each computing / processing device receives the machine-readable program instructions from the network and forwards them to the machine-readable storage media within the respective computing / processing device.
[0071] Machine program instructions used to perform the operations of this disclosure may be assembly instructions, instruction set architecture (ISA) instructions, machine instructions, machine-dependent instructions, microcode, firmware instructions, state setting data, or source code or object code written in any combination of one or more programming languages, including object-oriented programming languages such as Smalltalk, C++, etc., and conventional procedural programming languages such as "C" or similar languages. Machine-readable program instructions may be executed entirely on the user machine, partially on the user machine, as a standalone software package, partially on the user machine and partially on a remote machine, or entirely on a remote machine or server. In cases involving remote machines, the remote machine may be connected to the user machine via any type of network—including a local area network (LAN) or a wide area network (WAN)—or may be connected to an external machine (e.g., via the Internet using an Internet service provider). In some embodiments, electronic circuitry, such as programmable logic circuitry, field-programmable gate arrays (FPGAs), or programmable logic arrays (PLAs), is personalized by utilizing state information from the machine-readable program instructions to implement various aspects of this disclosure.
[0072] Various aspects of this disclosure are described herein with reference to flowchart illustrations and / or block diagrams of methods, apparatus (systems), and machine program products according to embodiments of this disclosure. It should be understood that each block of the flowchart illustrations and / or block diagrams, and combinations of blocks in the flowchart illustrations and / or block diagrams, can be implemented by machine-readable program instructions.
[0073] These machine-readable program instructions can be provided to the processing unit of a general-purpose machine, a special-purpose machine, or other programmable data processing apparatus to produce a machine such that, when executed by the processing unit of the machine or other programmable data processing apparatus, they create means for implementing the functions / actions specified in one or more blocks of the flowchart and / or block diagram. These machine-readable program instructions can also be stored in a machine-readable storage medium that causes a machine, programmable data processing apparatus, and / or other device to operate in a particular manner. Thus, the machine-readable medium storing the instructions comprises an article of manufacture that includes instructions for implementing aspects of the functions / actions specified in one or more blocks of the flowchart and / or block diagram.
[0074] Machine-readable program instructions may also be loaded onto a machine, other programmable data processing apparatus, or other equipment to cause a series of operational steps to be performed on the machine, other programmable data processing apparatus, or other equipment to produce a machine-implemented process, thereby causing the instructions executed on the machine, other programmable data processing apparatus, or other equipment to perform the functions / actions specified in one or more boxes of a flowchart and / or block diagram.
[0075] The flowcharts and block diagrams in the accompanying drawings illustrate the architecture, functionality, and operation of possible implementations of systems, methods, and machine program products according to various embodiments of the present disclosure. In this regard, each block in a flowchart or block diagram may represent a module, segment, or portion of an instruction, which contains one or more executable instructions for implementing a specified logical function. In some alternative implementations, the functions marked in the blocks may occur in a different order than those marked in the drawings. For example, two consecutive blocks may actually be executed substantially in parallel, and they may sometimes be executed in reverse order, depending on the functions involved. It should also be noted that each block in the block diagrams and / or flowcharts, and combinations of blocks in the block diagrams and / or flowcharts, may be implemented using a dedicated hardware-based system that performs the specified function or action, or using a combination of dedicated hardware and machine instructions.
[0076] The various embodiments of this disclosure have been described above. These descriptions are exemplary and not exhaustive, nor are they limited to the disclosed embodiments. Many modifications and variations will be apparent to those skilled in the art without departing from the scope and spirit of the described embodiments. The terminology used herein is chosen to best explain the principles, practical application, or technical improvements to the technology in the market, or to enable others skilled in the art to understand the embodiments disclosed herein.
Claims
1. A method (200) for detecting the collision direction of a robot, comprising: The robot motion signal (202) is obtained from the inertial sensor; In the event of a collision, at least one of the robot's orientation and yaw angle is determined (204) based on the signal; as well as The collision direction of the robot is determined (206) based on at least one of the orientation and the yaw angle.
2. The method (200) of claim 1, wherein the inertial sensor comprises an accelerometer, the signal comprises an acceleration signal acquired by the accelerometer, and determining (204) at least one of the robot's orientation and yaw angle based on the signal comprises: Based on the acceleration signal, a first acceleration signal of the robot in a first direction is determined, wherein the first direction is the direction of movement of the robot; Determine the maximum and minimum values of the first acceleration signal; as well as Based on the minimum value, a first orientation of the robot is determined, and based on the maximum value, a second orientation of the robot is determined, wherein the first orientation is opposite to the second orientation.
3. The method (200) according to claim 2, wherein determining the maximum and minimum values of the first acceleration signal comprises: A mean curve is established based on the multiple average values of the first acceleration signal over multiple time intervals. Based on the mean curve and the first threshold, the upper envelope of the first acceleration signal is established, and based on the mean curve and the second threshold, the lower envelope of the first acceleration signal is established. as well as Based on the upper envelope, the maximum value of the first acceleration signal is determined, and based on the lower envelope, the minimum value of the first acceleration signal is determined.
4. The method (200) according to claim 2 or 3, wherein determining (206) the collision direction of the robot based on at least one of the orientation and the yaw angle comprises: When the robot is facing the first orientation, the direction of the first region is determined as the collision direction of the robot; as well as When the robot is facing the second orientation, the direction of the second region is determined as the collision direction of the robot, wherein the first region and the second region are located on opposite sides of a centerline, the centerline being perpendicular to the first direction and passing through the center of the robot.
5. The method (200) of claim 1, wherein the inertial sensor comprises an accelerometer, the signal comprises an acceleration signal acquired by the accelerometer, and determining (204) at least one of the robot's orientation and yaw angle based on the signal comprises: Based on the acceleration signal, a first gravity signal and a second gravity signal perpendicular to the first direction are determined for the robot, wherein the first direction is the robot's direction of movement; and The yaw angle of the robot is determined based on the first gravity signal and the second gravity signal.
6. The method (200) of claim 1, wherein the inertial sensor comprises a gyroscope, the signal comprises an angular velocity signal acquired by the gyroscope, and determining (204) at least one of the robot's orientation and yaw angle based on the signal comprises: When the robot rotates, the duration of the rotation is determined. as well as The rotation angle of the robot is determined based on the angular velocity signal and the time of the robot's rotation.
7. The method (200) of claim 6, wherein the rotation angle is a vector angle related to the rotation direction of the robot, and determining (204) at least one of the robot's orientation and yaw angle based on the signal further comprises: When the rotation angle is the first vector angle, the rotation direction of the robot is determined to be clockwise; When the rotation angle is the second vector angle, the rotation direction of the robot is determined to be counterclockwise, wherein the directions of the first vector angle and the second vector angle are opposite; and If the absolute value of the rotation angle is lower than the angle threshold, it is determined that the robot has not rotated.
8. The method (200) of claim 1, wherein the inertial sensor comprises an accelerometer and a gyroscope, the signal comprises an acceleration signal acquired by the accelerometer and an angular velocity signal acquired by the gyroscope, and determining (204) at least one of the robot's orientation and yaw angle based on the signal comprises: When the robot is in a moving state, the first yaw angle of the robot is determined based on the acceleration signal of the robot in the moving state; When the robot enters a rotating state from the moving state, the rotation angle of the robot is determined based on the gyroscope signal of the robot in the rotating state; as well as Based on the first yaw angle and the rotation angle, the second yaw angle of the robot after rotation is determined.
9. The method (200) of claim 8, wherein determining (204) at least one of the robot's orientation and yaw angle based on the signal further comprises: Based on the acceleration signal, a first acceleration signal of the robot in a first direction is determined, where the first direction is the direction of movement of the robot; as well as Based on the first acceleration signal, the robot's orientation in the first direction is determined.
10. The method (200) of claim 8, wherein determining the first yaw angle of the robot based on the robot's acceleration signal in the moving state comprises: The robot's gravity signal is determined from the angular velocity signal using a low-pass filter with a preset frequency. as well as Based on the gravity signal, the first yaw angle of the robot is determined.
11. The method (200) according to claim 1, wherein the robot is used to perform window cleaning operations.
12. A device (500) for detecting the collision direction of a robot, comprising: The signal acquisition module (502) is configured to acquire signals of the robot's motion from an inertial sensor; The state determination module (504) is configured to determine at least one of the robot's orientation and yaw angle based on the signal in the event of a collision with the robot. as well as The collision direction determination module (506) is configured to determine the collision direction of the robot based on at least one of the orientation and yaw angle.
13. A controller (120), comprising: At least one processor; as well as A memory coupled to the at least one processor and having instructions stored thereon, which, when executed by the at least one processor, cause the controller to perform the method according to any one of claims 1 to 11.
14. A robot (100), comprising: An inertial sensor (110) includes an accelerometer (112) and a gyroscope (114); as well as The controller (120) according to claim 13.
15. A machine program product comprising a machine program that is executed by a processor to implement the method according to any one of claims 1 to 11.