Robot control method
By re-determining the power and stabilizing the limbs in the robot, and combining image processing and sending modules, the control problem of the robot when limbs fail in complex environments is solved, achieving stable motion and safety improvement.
Patent Information
- Application Number
- CN202510134334.6
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2025-02-06
- Publication Date
- 2025-04-29
AI Technical Summary
There is a lack of effective robot control methods in the prior art, especially when the operating environment is complex and the limbs are ineffective, it is difficult to keep the robot in a stable state of motion.
By re-determining the power limb and stabilizing limb in the robot's limb, the power limb is responsible for driving the robot's movement, while stabilizing the limb maintains the robot's smooth movement. At the same time, using the image acquisition, processing and sending modules, key images in the environment are extracted and sent to remote devices to achieve effective environmental monitoring and control.
It realizes maintaining stable movement in the case of robot limb failure, reducing out-of-control situations, improving equipment safety, and simplifying control instructions on a single limb, reducing control complexity.
Smart Images

Figure CN119897857A_ABST
Abstract
Description
Technical Field
[0001] The present disclosure relates to the field of robot technology, and in particular to a control method of a robot. Background Art
[0002] The robot has a biological appearance and can imitate biological behavior to perform specific tasks. For example, the robot is a bionic robot turtle, which has a turtle-like appearance and can move on land, on the surface of water, underwater and other environments. It can be used in the exploration and monitoring of terrestrial and aquatic environments, search and rescue, cleaning and other scenarios.
[0003] Due to the complex and changeable operating environment and the precision and complexity of the robot's own control mechanism, the robot may experience abnormalities during operation. For example, in an underwater environment, the robot may be hit by creatures such as fish, or encounter terrain obstacles, making it difficult to use conventional control methods. In related technologies, the control method for robots needs to be improved, especially the lack of effective control methods in abnormal situations. Summary of the invention
[0004] The present disclosure provides a robot control method, a robot control device, a program product, an electronic device and a robot, so as to improve the control method in the related art at least to a certain extent.
[0005] According to a first aspect of the present disclosure, a control method for a robot is provided, wherein the robot comprises a body, and a plurality of limbs arranged on the body, each limb having at least one degree of freedom, and the robot changes its posture through the movement of the limbs; the method comprises: when there is at least one failed limb among the limbs of the robot, redetermining a power limb and a stable limb among the plurality of limbs according to the distribution position of the failed limb on the robot; the failed limb refers to a limb in which at least one degree of freedom is failed; and adjusting the posture of the stable limb according to the postures of other limbs other than the stable limb, so that the robot maintains stable movement driven by the power limb.
[0006] According to a second aspect of the present disclosure, a robot control method is provided, the method comprising: acquiring a plurality of frames of images taken of an environment in which the robot is located; extracting a key image containing a preset object from the plurality of frames of images; and sending the key image to a remote device.
[0007] According to a third aspect of the present disclosure, a control device of a robot is provided, wherein the robot comprises a body, and a plurality of limbs arranged on the body, each limb having at least one degree of freedom, and the robot changes its posture through the movement of the limbs; the device comprises: a limb division module, configured to, when there is at least one failed limb among the limbs of the robot, redefine a power limb and a stable limb among the plurality of limbs according to the distribution position of the failed limb on the robot; the failed limb refers to a limb in which at least one degree of freedom has failed; and a stable limb control module, configured to adjust the posture of the stable limb according to the postures of other limbs other than the stable limb, so that the robot maintains smooth movement driven by the power limb.
[0008] According to a fourth aspect of the present disclosure, a control device for a robot is provided, the device comprising: an image acquisition module, configured to acquire multiple frames of images taken of the environment in which the robot is located; an image processing module, configured to extract a key image containing a preset object from the multiple frames of images; and a sending module, configured to send the key image to a remote device.
[0009] According to a fifth aspect of the present disclosure, a computer program product is provided, including a computer program, wherein when the computer program is executed by a processor, the method of the first or second aspect and possible implementation manners thereof are implemented.
[0010] According to a sixth aspect of the present disclosure, an electronic device is provided, comprising: a processor; and a memory for storing executable instructions of the processor; wherein the processor is configured to execute the method of the first or second aspect and its possible implementation method by executing the executable instructions.
[0011] According to a seventh aspect of the present disclosure, a robot is provided, comprising: a body, and a processor and a memory located in the body, wherein the memory is used to store executable instructions of the processor; the processor is configured to execute the method of the first or second aspect and possible implementation thereof by executing the executable instructions.
[0012] The technical solution disclosed in this disclosure has the following beneficial effects:
[0013] A control method is provided in the case of limb failure of the robot. By redefining the power limb and the stabilizing limb, the limbs are divided into two parts, wherein the power limb is used to drive the robot to move, and the stabilizing limb is used to keep the robot stable. On the one hand, the robot can maintain stable movement to a certain extent in the case of limb failure, so that it can return to the designated location and even continue to work. The situation of robot out of control is reduced and the safety of the equipment is improved. On the other hand, there is no need to perform power and stabilization functions on each limb at the same time, which simplifies the control instructions on a single limb and reduces the control complexity. BRIEF DESCRIPTION OF THE DRAWINGS
[0014] Figure 1 A system architecture diagram in this exemplary embodiment is shown;
[0015] Figure 2 A schematic diagram showing a robot in this exemplary embodiment;
[0016] Figure 3 A flowchart showing a method for controlling a robot in this exemplary embodiment;
[0017] Figure 4 A schematic diagram showing a method of extracting a key image in this exemplary embodiment;
[0018] Figure 5 A flowchart showing another method for controlling a robot in this exemplary embodiment;
[0019] Figure 6 A schematic diagram showing the structure of a control device of a robot in this exemplary embodiment;
[0020] Figure 7 A schematic diagram showing the structure of another robot control device in this exemplary embodiment;
[0021] Figure 8 A schematic structural diagram of a robot in this exemplary embodiment is shown. DETAILED DESCRIPTION
[0022] Exemplary embodiments of the present disclosure will be described more fully hereinafter with reference to the accompanying drawings.
[0023] The accompanying drawings are schematic diagrams of the present disclosure and are not necessarily drawn to scale. Some of the block diagrams shown in the accompanying drawings may be functional entities and do not necessarily correspond to physically or logically independent entities. These functional entities can be implemented in software form, or in hardware modules or integrated circuits, or in networks, processors or microcontrollers. The embodiments can be implemented in various forms and should not be construed as being limited to the examples set forth herein. The features, structures or characteristics described in the present disclosure may be combined in one or more embodiments in any suitable manner. In the description below, many specific details are provided to provide a full description of the embodiments of the present disclosure. However, those skilled in the art should appreciate that one or more specific details may be omitted when implementing the technical solution of the present disclosure, or one or more specific details may be replaced by other methods, components, devices, steps, etc.
[0024] The operating environment of the robot is complex and changeable, and its own control mechanism is precise and complex. For these reasons, abnormalities may occur in the operation of the robot. For example, in an underwater environment, the robot may be hit by creatures such as fish, or encounter terrain obstacles, or its own limbs may fail, resulting in partial limb failure, making it difficult to control the movement in the usual way. Alternatively, the operating environment has poor network conditions, resulting in communication barriers between the robot and the background equipment, so that the background equipment cannot normally receive information from the robot. In the related art, the control method for the robot needs to be improved, especially the lack of effective control methods under abnormal conditions.
[0025] In view of one or more of the above problems, exemplary embodiments of the present disclosure provide a control method of a robot.
[0026] Figure 1 The system architecture in this exemplary embodiment is shown. The system architecture may include a remote device 100 and a robot 200, which may be connected via a wired or wireless communication link for data transmission. Among them, the robot 200 may be an electronic device with any biological appearance, such as a bionic robot turtle. The remote device 100 is used to receive information sent by the robot 200, such as information about the robot 200 exploring and monitoring the environment (such as images or videos taken of the environment), the robot 200's own status information, etc., and can also be used to remotely control the robot 200, such as sending movement instructions, stay instructions, return instructions, etc. to the robot 200. Exemplarily, the remote device 100 may be a mobile phone, tablet computer, personal computer, controller supporting the robot 200, and other devices used by the user.
[0027] In one embodiment, the robot includes a body and a plurality of limbs disposed on the body. Figure 2As shown, the robot 200 may be a bionic robot turtle, including a body 250 and four limbs disposed on the body 250, namely a left forelimb 210, a right forelimb 220, a left hindlimb 230, and a right hindlimb 240. Each limb has one or more degrees of freedom, such as each limb of the bionic robot turtle has three joints, Figure 2 , the left forelimb 210 has a first joint 2101, a second joint 2102, and a third joint 2103, each of which has one degree of freedom (or more specifically, one degree of rotational freedom, Figure 2 The rotational freedom of each joint is shown, and the rotational freedom of different joints corresponds to different rotation planes, such as the first joint 2101 controls the yaw angle of the left forelimb 210, the second joint 2102 controls the pitch angle of the left forelimb 210, and the third joint 2103 controls the roll angle of the left forelimb 210), that is, each limb has three degrees of freedom. The robot 200 changes its posture through the movement of the limbs, including but not limited to the following movements: moving forward, backward, floating, diving, turning, posture changes (such as tilting to the left, tilting to the right, etc.). Of course, in addition to the limbs, the robot 200 can also include other motion mechanisms, such as a propeller with a propulsion function, a water tank with floating and diving functions, a head and a tail that can be used to control the direction, wheels or tracks that can be used to travel on land, and so on.
[0028] Figure 3 A flow chart of a robot control method is shown, which may include the following steps S310 to S330:
[0029] Step S310, when there is at least one disabled limb among the limbs of the robot, re-determine the power limb and the stabilizing limb among the multiple limbs according to the distribution position of the disabled limb on the robot; the disabled limb refers to a limb with at least one disabled degree of freedom;
[0030] Step S320, adjusting the posture of the stabilizing limb according to the postures of the limbs other than the stabilizing limb, so that the robot can maintain stable movement driven by the power limb.
[0031] based on Figure 3 The method provides a control method in the case of limb failure of the robot. By redefining the power limb and the stabilizing limb, the limbs are divided into two parts, wherein the power limb is used to drive the robot to move, and the stabilizing limb is used to keep the robot stable. On the one hand, the robot can maintain stable movement to a certain extent in the case of limb failure, so that it can return to the designated location and even continue working. It reduces the situation of robot out of control and improves the safety of the equipment. On the other hand, there is no need to perform power and stabilization functions on each limb at the same time, which simplifies the control instructions on a single limb and reduces the control complexity.
[0032] Below Figure 3 Provide detailed instructions for each step.
[0033] refer to Figure 3 In step S310, when there is at least one failed limb among the limbs of the robot, the power limb and the stabilizing limb are re-determined among the multiple limbs according to the distribution position of the failed limb on the robot; a failed limb refers to a limb in which at least one degree of freedom fails.
[0034] For example, if any degree of freedom of a limb fails, the limb is considered a failed limb. Alternatively, if a specified degree of freedom of a limb fails, the limb is considered a failed limb. The specified degree of freedom may be a degree of freedom used to generate a driving effect, such as Figure 2 The first joint 2101 of the left forelimb 210 rotates in degrees of freedom. If the specified degree of freedom of the limb fails, the limb loses its driving function and becomes a failed limb. Alternatively, if all degrees of freedom of the limb fail, the limb is a failed limb. Limbs other than the failed limb are valid limbs. Exemplarily, limbs are divided into failed limbs and valid limbs. Failed limbs include completely failed limbs and partially failed limbs, wherein a completely failed limb means that all degrees of freedom of the limb fail; a partially failed limb means that at least one degree of freedom of the limb is valid and at least one degree of freedom fails. Power limbs and stable limbs can be determined in valid limbs, and stable limbs can also be determined in partially failed limbs; alternatively, if some degrees of freedom in a partially failed limb are not failed, and the degrees of freedom that are not failed can just provide the required power, then power limbs and stable limbs can also be determined in partially failed limbs.
[0035] Exemplary, reference Figure 2 For the robot 200 shown, if the left forelimb 210 fails, the right forelimb 220 or the right hindlimb 240 can be used as a stabilizing limb, and other effective limbs can be used as power limbs.
[0036] Continue to refer Figure 3 In step S320, the posture of the stabilizing limb is adjusted according to the postures of the limbs other than the stabilizing limb, so that the robot can maintain stable movement driven by the power limb.
[0037] The power limbs can be controlled to perform preset actions to drive the robot to move. The preset action refers to the action that generates the power to move. Taking the bionic robot turtle as an example, the preset action can be the action of paddling in a specific direction (such as behind the robot), such as Figure 2 The action produced by the movement of the first joint 2101 in .
[0038] In the case of a robot with a disabled limb, when the robot needs to move, the power limb performs a preset action to generate a driving effect and drive the robot to move. No other limbs (such as stable limbs) are required to perform the preset action.
[0039] When the posture of each limb changes, it will affect the center of gravity of the robot and may cause the center of gravity to shift, which in turn causes the robot to deflect, tilt, etc., and easily lose control. By adjusting the posture of the stable limbs, the posture of each limb is relatively balanced, and the center of gravity of the robot is controlled within a predetermined range, so that the robot as a whole maintains a stable and balanced posture. Among them, the predetermined range can be a range of a circular, spherical or other shape, with the geometric center of the robot as the center and a certain size (such as a radius). The size can be determined based on experience, specific circumstances, the size of the robot, etc., to ensure that when the center of gravity of the robot is within the predetermined range, the robot as a whole can remain stable and will not tilt significantly in a certain direction.
[0040] In one embodiment, the mass distribution of other limbs can be analyzed according to the posture of other limbs other than the stable limbs, and the stable limbs can be adjusted to the corresponding posture according to the analysis result of the mass distribution, so that the mass distribution of the stable limbs can balance the mass distribution of other limbs. Exemplarily, the first center of gravity offset can be calculated by analyzing the mass distribution of other limbs, which refers to the degree of the center of gravity of the robot caused by other limbs without considering the stable limbs. In order to keep the robot balanced, the second center of gravity offset caused by the stable limbs should be in an opposite relationship to the first center of gravity offset (such as the same value and opposite direction), that is, the corresponding second center of gravity offset can be determined according to the first center of gravity offset. The posture of the stable limb is adjusted according to the second center of gravity offset, so that the stable limb can cause the second center of gravity offset. When the posture of any one or more other limbs changes, the stable limb is controlled to perform corresponding posture adjustments in real time to always control the stability of the center of gravity position of the robot, so that the robot can maintain stable movement without losing control.
[0041] The following describes the control method in the presence of failed limbs according to different distribution situations of failed limbs.
[0042] In one embodiment, the robot's multiple limbs are distributed on both sides of the robot's body. Figure 2 As shown, the four limbs of the robot 200 are respectively distributed on the left and right sides of the body 250. Alternatively, the limbs of a robot having six limbs, eight limbs, etc. are usually distributed on both sides of the body. The above-mentioned redetermining of the power limb and the stabilizing limb among the multiple limbs according to the distribution position of the failed limbs on the robot may include the following steps:
[0043] If there is at least one valid limb on both sides of the robot body, then at least one valid limb on both sides of the body is determined to be a powered limb; a valid limb is a limb other than a disabled limb.
[0044] If there are effective limbs on both sides of the fuselage, at least one effective limb can be determined as a power limb on each side of the fuselage, so that driving force is generated on both sides of the fuselage during movement, which is convenient for maintaining balance and stability. For example, one or more pairs (i.e., two, four, six, etc.) of effective limbs with a symmetrical relationship can be determined on both sides of the fuselage as power limbs. In this way, when the power limbs perform the preset action, the center of gravity of the robot is avoided from shifting or tilting due to the asymmetry of the distribution of the power limbs.
[0045] In addition, the stable limbs can be determined according to the distribution of the failed limbs, such as determining the stable limbs among the effective limbs other than the powered limbs, or adding the partially failed limbs (i.e., the failed limbs with at least one effective degree of freedom) to the stable limbs.
[0046] In one embodiment, the above-mentioned determining at least one effective limb on both sides of the fuselage as a power limb may include the following steps:
[0047] If there are two or more valid limbs on at least one side of the fuselage, a stable limb is determined from the valid limbs distributed on a different side of the fuselage from the failed limb.
[0048] Among them, there are two or more effective limbs on at least one side of the fuselage, which means that under the premise of retaining at least one effective limb as a power limb on both sides of the fuselage, other effective limbs are left as stable limbs. Therefore, the stable limb can be determined from the effective limbs distributed on the different side of the fuselage from the ineffective limb. In addition, the effective limbs other than the stable limbs can be determined as power limbs.
[0049] In one embodiment, among the valid limbs distributed on different sides of the fuselage from the invalid limb, the valid limb that has a symmetrical relationship with the invalid limb can be determined as a stable limb. The symmetrical relationship may include one or more of a mirror symmetry relationship, an axisymmetric relationship, and a central symmetry relationship. For example, referring to Figure 2 As shown, if the left forelimb 210 of the robot 200 fails, the right forelimb 220 having a mirror symmetry relationship with the left forelimb 210 can be used as a stabilizing limb, or the right hindlimb 240 having a central symmetry relationship with the left forelimb 210 can be used as a stabilizing limb, or both the right forelimb 220 and the right hindlimb 240 can be used as stabilizing limbs. Since the stabilizing limb has a symmetrical relationship with the failed limb, it is convenient to balance the posture of the failed limb by adjusting the posture of the stabilizing limb.
[0050] In one embodiment, the above-mentioned re-determining the power limb and the stable limb among the multiple limbs according to the distribution position of the disabled limb on the robot may also include the following steps:
[0051] If there are two or more valid limbs on at least one side of the fuselage, the same number of stable limbs as the invalid limbs are determined from the valid limbs distributed on the different side of the fuselage.
[0052] That is, if there are k inoperative limbs, then the corresponding k stable limbs are determined. In the case where the number of stable limbs is the same as the inoperative limbs, the inoperative limbs can be better balanced by the stable limbs.
[0053] Exemplarily, if there are failed limbs on both sides of the fuselage, such as k1 failed limbs on the first side (such as the left side) and k2 failed limbs on the second side (such as the right side), k1 stable limbs can be determined on the second side of the fuselage to balance the k1 failed limbs on the first side, and k2 stable limbs can be determined on the first side of the fuselage to balance the k2 failed limbs on the second side.
[0054] In one embodiment, if there are multiple failed limbs on the first side of the fuselage, a corresponding stable limb may be determined on the second side of the fuselage according to the position distribution of the multiple failed limbs. For example, the center of gravity of the multiple failed limbs may be determined according to the position distribution of the multiple failed limbs, or the multiple failed limbs may be equivalent to one failed limb (the equivalent failed limb may be a failed limb that does not actually exist, and its center of gravity may be equivalent to the center of gravity of the multiple failed limbs), and a corresponding stable limb may be determined on the second side of the fuselage according to the center of gravity position or the position of the equivalent failed limb. By determining a stable limb at a suitable position, multiple failed limbs may be balanced.
[0055] In one embodiment, the disabled limb may not be used as a stabilizing limb, thereby reducing the use of the disabled limb and lowering the control complexity.
[0056] When the stable limbs are determined among the effective limbs by one or more of the above methods, the effective limbs other than the stable limbs can be used as power limbs, thus retaining more limbs to provide power.
[0057] In one embodiment, the above-mentioned redetermining of the power limb and the stable limb among the multiple limbs according to the distribution position of the failed limb on the robot may include the following steps:
[0058] If all limbs on the first side of the fuselage are inoperative limbs, a power limb is determined from the effective limbs on the second side of the fuselage, and a stabilizing limb is determined according to the effective degrees of freedom of the inoperative limb.
[0059] Among them, the limbs on the first side of the fuselage are all inoperative limbs, which means that the first side cannot provide power, and it is necessary to determine the powered limbs from the effective limbs on the second side of the fuselage. And the limbs on the first side all have inoperative degrees of freedom and cannot fully adjust their postures. Considering that during the movement of the robot, the powered limbs on the second side perform preset actions in real time, and their postures will change frequently. In order to maintain the balance of the robot, it is necessary to determine which effective degrees of freedom the inoperative limbs have, which determines the range in which the inoperative limbs can adjust their postures, and then determine the stable limbs from the inoperative limbs with effective degrees of freedom, and the stable limbs can be determined from the effective limbs. Exemplarily, the effective limbs on the second side of the fuselage can all be used as powered limbs, and the inoperative limbs with effective degrees of freedom can all be used as stable limbs.
[0060] The following takes a robot with four limbs as an example to further explain how to determine the power limb and the stabilizing limb in different limb failure situations.
[0061] In one embodiment, if the robot has a failed limb: assuming that the left forelimb fails (including complete failure or partial failure), the left hind limb, right forelimb, and right hind limb are not failed, and there are effective limbs on both sides of the fuselage, and there are two or more effective limbs on at least one side of the fuselage, a stable limb can be determined from the effective limbs (i.e., right forelimb and right hind limb) distributed on different sides of the fuselage from the failed limb. The right forelimb has a mirror symmetry relationship with the failed left forelimb, and the right hind limb has a central symmetry relationship with the failed left forelimb. One of the right forelimb and the right hind limb can be selected as a stable limb. The remaining two effective limbs are used as power limbs. It can be seen that the power limbs include one effective limb on each side of the left and right sides of the fuselage. During the movement of the robot, the two power limbs symmetrically perform preset actions and balance each other. The failed limb is balanced by the stable limb. In this way, the robot is easy to maintain balance and stability as a whole.
[0062] In another embodiment, if the robot has two invalid limbs on different sides: assuming that the left forelimb and the right forelimb have partial degrees of freedom invalid, and the left hind limb and the right hind limb have not invalidated, the situation that there are valid limbs on both sides of the fuselage is satisfied, but the situation that there are two or more valid limbs on at least one side of the fuselage is not satisfied. At least one valid limb can be determined as a power limb on each side of the fuselage, that is, the left hind limb and the right hind limb are used as power limbs, and the remaining left forelimb and the right forelimb are used as stable limbs, and the left hind limb and the right hind limb are controlled to perform preset actions symmetrically to drive the robot to move, and the posture is adjusted by using the degrees of freedom of the left forelimb and the right forelimb that have not invalidated to maintain the stability of the center of gravity. Assuming that the left forelimb is completely invalid, the right forelimb is partially invalid, and the left hind limb and the right hind limb are not invalidated, the left hind limb and the right hind limb can be used as power limbs, and the right forelimb can be used as a stable limb, and the left hind limb and the right hind limb can be controlled to perform preset actions symmetrically to drive the robot to move, and the posture is adjusted by using the degrees of freedom of the invalid right forelimb to maintain the stability of the center of gravity.
[0063] In another embodiment, if the left forelimb and the right forelimb of the robot are completely inoperative, but the left hind limb and the right hind limb are not inoperative, one of the left hind limb and the right hind limb can be used as a power limb, and the other as a stabilizing limb. The power limb drives the robot to move, and the posture of the stabilizing limb is adjusted to keep the robot as a whole stable.
[0064] In another embodiment, if the robot has two limbs that fail on the same side: assuming that the left forelimb and the left hind limb fail, and the right forelimb and the right hind limb do not fail, the limbs on the first side (i.e., the left side) of the fuselage are all failed limbs. The stable limb can be determined according to the effective degrees of freedom of the failed limb. If the effective degrees of freedom of the left forelimb and the left hind limb are more, sufficient to adjust the posture to maintain balance, the left forelimb and the left hind limb can be used as stable limbs, and the non-failed right forelimb and right hind limb can be used as power limbs, which can provide more power. Alternatively, if the effective degrees of freedom of the left forelimb and the left hind limb are less, insufficient to adjust the posture to maintain balance, the left forelimb, the left hind limb, and one of the right forelimb and the right hind limb can be used as a stable limb to give priority to balance and stability, and the other of the right forelimb and the right hind limb can be used as a power limb.
[0065] In another embodiment, if the robot has three inoperative limbs: assume that the left forelimb, left hind limb, and right forelimb are all inoperative, and the right hind limb is not inoperative. Since there is only one effective limb, the effective limb is used as the power limb. According to the effective degree of freedom of the inoperative limb, it is judged whether the inoperative limb can provide sufficient stabilization. If it can, the three inoperative limbs are used as stabilizing limbs. The center of gravity is stabilized by the three inoperative limbs, and the power for movement is provided by the one power limb. If the inoperative limb cannot provide sufficient stabilization, the robot cannot move by itself and needs to be recovered by manpower.
[0066] In another embodiment, if the robot has four disabled limbs, that is, all limbs are disabled, no limb can provide power, the robot cannot move on its own, and human recovery is required.
[0067] The following is a further explanation of the posture control method for stabilizing the limbs.
[0068] In one embodiment, if the stable limb and the disabled limb have a symmetrical relationship, the above-mentioned adjusting the posture of the stable limb according to the posture of other limbs other than the stable limb may include the following steps:
[0069] According to a first posture of the inoperative limb, the stabilizing limb is adjusted to a second posture symmetrical to the first posture.
[0070] Exemplarily, if the stable limb and the ineffective limb are in a mirror-symmetrical relationship with respect to the central axis plane of the robot's body (the central axis plane passes through the central axis and is perpendicular to the horizontal plane), the first posture can be symmetrically transformed according to the central axis plane to obtain a second posture. For example, the first posture can be decomposed into a first component on the central axis plane and a second component perpendicular to the central axis plane, the second component is inverted (i.e., the value remains unchanged, the direction is inverted), and a second reverse component is obtained, and the first component and the second reverse component are combined to form a second posture. If the stable limb and the ineffective limb are in a centrally symmetrical relationship with respect to the center (such as the geometric center) of the robot, the first posture can be symmetrically transformed according to the center to obtain a second posture, such as each component of the first posture can be inverted to obtain a second posture. When the second posture is determined, the stable limb is adjusted to the second posture. In this way, the stable limb can balance the ineffective limb.
[0071] In one embodiment, the above-mentioned adjusting the stable limb to a second posture symmetrical to the first posture according to the first posture of the disabled limb may include the following steps:
[0072] Acquire a first signal for driving the disabled limb to make a first posture;
[0073] According to the first signal and the symmetrical relationship between the ineffective limb and the stable limb, the signal used to drive the stable limb is adjusted to a second signal, so that the stable limb makes a second posture under the second signal.
[0074] Among them, the first signal can be the current, voltage and other signals of the driver of the failed limb, indicating the current signal, and the second signal can be the current, voltage and other signals of the driver of the stable limb, indicating the target signal for adjustment, that is, the signal driving the stable limb needs to be adjusted to the second signal.
[0075] Each limb may include multiple degrees of freedom, and different signals may drive the movement of different degrees of freedom. Exemplarily, the first signal includes multiple first sub-signals, each corresponding to the multiple degrees of freedom. According to the symmetric relationship between the failed limb and the stable limb, it is determined whether the degrees of freedom of the failed limb are in the same direction or in the opposite direction as the degrees of freedom of the stable limb, thereby determining the second sub-signal corresponding to the first sub-signal (the second sub-signal has the same value as the first sub-signal, and the same or opposite direction), and obtaining a second signal including multiple second sub-signals. For example, refer to Figure 2 For the robot 200 shown in the figure, if the left forelimb 210 fails, the motor signal of the three degrees of freedom of the left forelimb 210 (i.e., the first signal), such as the current signal, is detected online. According to the motor signal, the motor of the three degrees of freedom of the right hind limb 240, which serves as a stabilizing limb, is adjusted to the second signal, so that the motor signal of the three degrees of freedom of the right hind limb 240 is consistent with or close to the motor signal of the three degrees of freedom of the left forelimb 210. In this way, the second posture of the right hind limb 240 has a symmetrical relationship with the first posture of the left forelimb 210, and can stabilize the center of gravity of the robot 200.
[0076] In one embodiment, adjusting the posture of the stabilizing limb according to the posture of other limbs other than the stabilizing limb may include the following steps:
[0077] According to the first posture of the failed limb and the asymmetric relationship between the failed limb and the stable limb, the stable limb is adjusted to a third posture.
[0078] Among them, the failed limb and the stable limb may not be completely symmetrical, such as Figure 2 The positions of the left forelimb 210 and the right hindlimb 240 shown in the figure satisfy the central symmetry relationship, but the shapes, weights, etc. of the two are not completely consistent, indicating that there is a certain asymmetric relationship between the two. In the case where the failed limb makes a first posture, if the stable limb is adjusted to a second posture symmetrical thereto, the stable limb may not be able to fully balance the failed limb. Therefore, a third posture can be determined according to the first posture of the failed limb and the asymmetric relationship between the failed limb and the stable limb, and the stable limb can be adjusted to the third posture, and the third posture may not be completely symmetrical with the first posture. Exemplarily, the center of gravity position of the failed limb is determined according to the first posture of the failed limb, and the target center of gravity position of the stable limb is determined, such as a symmetrical position of the center of gravity position of the failed limb. According to the asymmetric relationship between the failed limb and the stable limb and the target center of gravity position, the stable limb is adjusted to the third posture. In the third posture, the stable limb can fully balance the failed limb.
[0079] In one embodiment, the robot control method may further include the following steps:
[0080] Acquire multiple frames of images of the robot's environment;
[0081] Extracting a key image containing a preset object from multiple frame images;
[0082] Sends a key image to a remote device.
[0083] The above-mentioned multiple frames of images can be videos, multiple frames of images taken continuously, multiple frames of images taken at intervals, etc. The robot can be provided with a shooting unit, such as a camera, an image sensor, an image signal processor and other related components, so that the robot can shoot multiple frames of images of the surrounding environment during operation. And send them to a remote device, so that the user can see the environment of the robot on the remote device.
[0084] The distance between the robot and the remote device may be far, and the communication conditions between the two may be poor. For example, the robot is in a water environment, and the electromagnetic waves used for the signal transmission mechanism are affected by the water, which is not conducive to the propagation of communication signals. Or after the robot finishes collecting the video, it floats to the surface of the water to send the video to the remote device. When the network speed on the water surface is poor, it affects the normal transmission. Based on these factors, it may be difficult for the robot to successfully send the above-mentioned multiple frames of images, such as it is difficult to send the video it has taken. This exemplary embodiment extracts a key image containing a preset object from the multiple frames of images, and sends the key image to the remote device to replace the initial multiple frames of images. The preset object can be any object other than the background, such as a creature, an obstacle, etc. in the captured image. The preset object in the image can be determined by target detection, object recognition, etc., and the key image containing the preset object can be extracted. Compared with the initial image or video, the number of key images may be reduced (for example, if only some frames in the initial image contain preset objects, the number of key images is less than the number of initial images), or the image size may be reduced (for example, the key image can be a partial image captured from the initial image, and its image size is smaller than the initial image). Therefore, the data volume of the key image is small and it is easy to send successfully under poor communication conditions, thereby ensuring the interaction of key information.
[0085] In one embodiment, the above-mentioned extracting a key image containing a preset object from multiple frames of images may include the following steps:
[0086] Detecting a preset object in at least one frame of the image to be processed among the multiple frames of images;
[0087] If multiple preset objects are detected in the image to be processed, multiple key images are extracted from the image to be processed, and each key image contains one preset object.
[0088] The image to be processed may include any one or more frames of the above-mentioned multiple frames. For example, each frame of the image may be used as the image to be processed to detect the preset object. Alternatively, an intermittent detection method may be adopted, such as determining one frame of the image to be processed in every five frames of the image to detect the preset object.
[0089] In one implementation, a target detection method may be used to take all targets detected from the image to be processed as preset objects.
[0090] In one implementation, the background may be detected in the image to be processed, and image elements in the image having a large contrast with the background may be detected, and the image elements may be used as preset objects.
[0091] Figure 4 The example shows that when multiple preset objects are detected in the image to be processed, local area images of each preset object can be intercepted to form key images, so that each key image contains one preset object. For example, when 8 preset objects are detected from the image to be processed, 8 key images can be intercepted from the image to be processed, and each key image contains a corresponding preset object.
[0092] In one embodiment, if only one preset object is detected in the image to be processed, the image to be processed can be used as a key image containing the preset object, or a local area image containing the preset object can be captured from the image to be processed as a key image.
[0093] In one implementation, the sending of the key image to the remote device may include the following steps:
[0094] Determining a priority coefficient of the key image according to a recognition result of a preset object in the key image;
[0095] The key image is sent to the remote device according to the priority factor.
[0096] Among them, the recognition result for the preset object in the key image can be the result of identifying which species (or object) the preset object belongs to. The recognition result can indicate what important information is contained in the key image, thereby determining the priority coefficient. The key image is sent to the remote device according to the priority coefficient, and the key image with a high priority coefficient is sent first. For example, the key images can be put into a sending queue in order from high to low priority coefficients, and the key images are sent in sequence through the sending queue, so that the remote device end receives the key images with high priority coefficients first, ensuring the timely interaction of important information.
[0097] In one implementation, the above-mentioned determining the priority coefficient of the key image according to the recognition result of the preset object in the key image may include the following steps:
[0098] Comparing the preset object in the key image with one or more known objects to determine a confidence level, and if the confidence level reaches a preset value, determining the preset object to be a target known object among the known objects, and determining the key image to be a first key image;
[0099] The priority coefficient of the first key image is determined according to the weight coefficient and confidence level corresponding to the target known object.
[0100] Among them, the known object can be a pre-set known species (or object). For example, the user can set the species that may be encountered in the environment as known species according to the working environment of the robot, and provide images, text descriptions, codes and other information for each known species for easy comparison. The preset object in the key image is compared with the known object to determine whether the preset object belongs to a known object. The confidence is used to characterize the degree of match between the preset object and the known object. For example, the similarity between the key image containing the preset object and the standard image containing the known object can be calculated, and the similarity is the confidence.
[0101] Exemplarily, the preset object in the key image can be compared with each known object to obtain the comparison confidence between the preset object and each known object. If the maximum confidence reaches the preset value, the preset object is determined to be the target known object corresponding to the maximum confidence, that is, the confidence of the comparison between the preset object and the target known object is the maximum confidence. The preset value can be determined based on experience or specific circumstances, such as 50%, 60%, 70%, etc. The maximum confidence indicates the degree of match between the preset object and the most similar target known object among the known objects. If the maximum confidence reaches the preset value, it means that the preset object has a high degree of match with the target known object, and it can be determined that the preset object is the target known object.
[0102] In addition, the key image can be determined as the first key image, and the first key image is a key image containing a known object. For the first key image, the priority coefficient can be determined according to the weight coefficient and confidence (i.e., the above-mentioned maximum confidence) corresponding to the target known object. Among them, each known object can have a preset weight coefficient, such as can be set by the user according to the importance of different known objects, such as some species pose a security threat and need to be discovered in time, and a larger weight coefficient can be set for these species, and some species are more common and the security threat is very low, and a smaller weight coefficient can be set for these species. Exemplarily, the weight coefficient can be multiplied, added, and the average or weighted value can be calculated with the confidence, or these calculation results can be further normalized to obtain the priority coefficient of the first key image.
[0103] For example, for Figure 4Among the eight preset objects extracted from the image shown, assuming that the contrast confidence between the triangle preset object and the known object is a1=0.85, the triangle is a known object, and the corresponding weight coefficient b1=0.9 for the known object, and the priority coefficient of the first key image 1 containing the triangle is b1×a1=0.9*0.85=0.765. The contrast confidence between the square preset object and the known object is a2=1, the square is a known object, and the corresponding weight coefficient b2=0.8 for the known object, and the priority coefficient of the first key image 2 containing the square is b2×a2=0.8*1=0.8. The contrast confidence between the heptagon preset object and the known object is a3=0.88, the heptagon is a known object, and the corresponding weight coefficient b3=0.7 for the known object, and the priority coefficient of the first key image 3 containing the heptagon is b3×a3=0.7*0.88=0.616. The comparison confidence a4 between the diamond preset object and the known object is 0.95, so the diamond is a known object, and the weight coefficient b4 corresponding to the known object is 0.68. The priority coefficient of the first key image 4 containing the diamond is b4×a4=0.68*0.95=0.646.
[0104] In one implementation, the priority coefficient of the first key image may also be determined only according to the weight coefficient corresponding to the known target object, such as using the weight coefficient or the normalized weight coefficient corresponding to the known target object as the priority coefficient of the first key image.
[0105] In one implementation, the above-mentioned determining the priority coefficient of the key image according to the recognition result of the preset object in the key image may include the following steps:
[0106] Comparing the preset object in the key image with one or more known objects to determine a confidence level, and if the confidence level does not reach a preset value, determining that the preset object is an unknown object, and determining that the key image is a second key image;
[0107] The priority coefficient of the second key image is determined according to the weight coefficient and the confidence level corresponding to the color of the preset object.
[0108] If the confidence of the comparison between the preset object and any known object does not reach the preset value, it means that the preset object is not similar to any known object, and the preset object can be determined to be an unknown object.
[0109] In addition, the key image can be determined to be the second key image, and the second key image is a key image containing an unknown object. For the second key image, the priority coefficient can be determined according to the weight coefficient and confidence corresponding to the color of the preset object (which can be the maximum confidence among the confidences of the preset object compared with each known object). Among them, each color can have a preset weight coefficient, such as can be set by the user according to the various colors that may appear in the robot working environment and the conditions corresponding to different colors. For example, red species are relatively rare, and a larger weight coefficient can be set for red. Green species are more common, and a smaller weight coefficient can be set for green. Black unknown species are likely to be misidentified, and a very small weight coefficient can be set for black. Considering that the preset object may contain multiple colors, the main color of the preset object can be extracted, and the weight coefficient corresponding to the main color can be obtained to calculate the priority coefficient. Exemplarily, the weight coefficient can be multiplied, added, averaged or weighted by the confidence, or these calculation results can be further normalized to obtain the priority coefficient of the second key image.
[0110] For example, the weight coefficient d1 for red, the weight coefficient d2 for blue, the weight coefficient d3 for yellow, the weight coefficient d4 for green, and the weight coefficient d5 for black can be preset to be 0.9, 0.8, 0.72, 0.6, and 0.72, respectively. Figure 4 Among the eight preset objects extracted from the image shown, assuming that the pentagonal preset object has a maximum confidence of c1=0.48 in the confidence compared with the known objects, the pentagon is determined to be an unknown object, the color of the pentagon is yellow, and the corresponding weight coefficient d3=0.72, then the priority coefficient of the second key image 1 containing the pentagon is c1×d3=0.48*0.72=0.3456. Assuming that the elliptical preset object has a maximum confidence of c2=0.42 in the confidence compared with the known objects, the ellipse is determined to be an unknown object, the color of the ellipse is red, and the corresponding weight coefficient d1=0.9, then the priority coefficient of the second key image 2 containing the ellipse is c2×d1=0.42*0.9=0.378. Assuming that the octagonal preset object has a maximum confidence c3=0.48 in the confidence compared with the known object, the octagon is determined to be an unknown object, the color of the octagon is blue, and the corresponding weight coefficient d2=0.8, then the priority coefficient of the second key image 3 containing the octagon is c3×d2=0.48*0.8=0.384. Assuming that the cylindrical preset object has a maximum confidence c4=0.32 in the confidence compared with the known object, the cylinder is determined to be an unknown object, the color of the cylinder is green, and the corresponding weight coefficient d4=0.6, then the priority coefficient of the second key image 4 containing the cylinder is c4×d4=0.32*0.6=0.192.
[0111] In one implementation, the priority coefficient of the second key image may also be determined only according to the weight coefficient corresponding to the color of the preset object, such as using the weight coefficient corresponding to the color of the preset object or the normalized weight coefficient as the priority coefficient of the second key image.
[0112] In one embodiment, the key images include key images of different image categories, such as a first key image and a second key image, which belong to a known object image category and an unknown object image category, respectively. Accordingly, sending the key images to the remote device according to the priority coefficient may include the following steps:
[0113] According to the transmission index of each image category, the key images in each image category are sent to the remote device according to the priority coefficient.
[0114] Among them, the transmission index refers to an index for sending key images, which is used to limit the process of sending key images, such as the number of transmitted images, the amount of transmitted image data, etc. The transmission index can be determined according to the communication conditions, such as when the communication conditions are poor, the transmission index is low. Or, the transmission index can be set in advance. Exemplarily, in each image category, the key images of the number of transmitted images can be sent in the order of priority coefficients from high to low. For example, it is determined that the number of image transmissions of the first key image is n1, and the number of image transmissions of the second key image is n2. In the first key image, n1 first key images are sent in the order of priority coefficients from high to low. For example, in the case of n1=3, based on the above example, the three first key images 2, 1, and 4 can be sent. In the second key image, n2 second key images are sent in the order of priority coefficients from high to low. For example, in the case of n2=2, based on the above example, the two second key images 3 and 2 can be sent.
[0115] In one embodiment, the sending of the key image to the remote device may include: classifying the key image into corresponding image categories according to the recognition result of the preset object in the key image; and sending the key image in each image category to the remote device according to the transmission index of each image category. In this way, the transmission of the key image can be controlled separately for different image categories to ensure information exchange of different image categories.
[0116] In one implementation, the sending of the key image to the remote device may include the following steps:
[0117] When the communication status between the robot and the remote device does not satisfy the first preset condition, the key image is sent to the remote device.
[0118] The communication status between the robot and the remote device can be characterized by one or more communication parameters, such as data transmission rate, packet loss rate, response speed, etc. The first preset condition can be determined based on experience or specific circumstances. If the communication status meets the first preset condition, it means that the communication status is good, and if the communication status does not meet the first preset condition, it means that the communication status is poor. If the first preset condition is not met, a key image is sent to the remote device instead of an initial image or video to reduce the amount of data transmission and improve the success rate of sending.
[0119] In one embodiment, the robot control method may further include the following steps: when the communication status between the robot and the remote device meets the first preset condition, sending a video containing multiple frames of images to the remote device. That is, when the communication status is good, the original video can be sent to ensure the integrity of the information.
[0120] In one embodiment, sending the key image to the remote device comprises the following steps:
[0121] The target clarity is determined according to the communication status between the robot and the remote device, and a key image of the target clarity is sent to the remote device.
[0122] For example, if the communication condition does not meet the first preset condition but meets the second preset condition, the first definition is used as the target definition; if the communication condition does not meet the second preset condition but meets the third preset condition, the second definition is used as the target definition. As the communication condition gradually decreases, the adopted target definition gradually decreases. When sending the key image, the key image is converted to the target definition and sent. This makes the key image adapt to the communication condition and improves the sending success rate.
[0123] Figure 5 The flow chart of another robot control method in an exemplary embodiment of the present disclosure is shown, which may include the following steps:
[0124] Step S510, obtaining multiple frames of images taken of the environment in which the robot is located;
[0125] Step S520, extracting a key image containing a preset object from the multiple frames of images;
[0126] Step S530: sending the key image to the remote device.
[0127] based on Figure 5The method extracts key images containing preset objects from multiple frames of images and sends the key images to the remote device to replace the initial multiple frames of images. Compared with the initial images or videos, the number of key images may be reduced or the image size may be reduced. Therefore, the data volume of the key images is small and they are easy to send successfully under poor communication conditions, thereby ensuring the interaction of key information.
[0128] The exemplary embodiment of the present disclosure also provides a control device for a robot, the robot comprising a body and a plurality of limbs disposed on the body, each limb having at least one degree of freedom, and the robot changes its posture through the movement of the limbs. Figure 6 As shown, the robot control device 600 may include the following program modules:
[0129] The limb classification module 610 is configured to, when there is at least one disabled limb among the limbs of the robot, redetermine the power limb and the stable limb among the multiple limbs according to the distribution position of the disabled limb on the robot; the disabled limb refers to a limb with at least one disabled degree of freedom;
[0130] The stabilizing limb control module 620 is configured to adjust the posture of the stabilizing limb according to the postures of other limbs except the stabilizing limb, so that the robot can maintain stable movement driven by the power limb.
[0131] In one embodiment, the redetermining of the power limb and the stabilizing limb among the plurality of limbs according to the distribution position of the disabled limb on the robot comprises:
[0132] If there is at least one valid limb on both sides of the robot body, at least one valid limb on both sides of the body is determined as the power limb; the valid limb is a limb other than the invalid limb, that is, a non-invalid limb.
[0133] In one embodiment, determining at least one of the effective limbs on both sides of the fuselage as the power limb includes: if there are two or more effective limbs on at least one side of the fuselage, among the effective limbs distributed on different sides of the fuselage, determining the effective limb that has a symmetrical relationship with the failed limb as the stable limb; and determining the effective limbs other than the stable limb as the power limb.
[0134] In one embodiment, the redetermining of the power limbs and the stabilizing limbs among the multiple limbs according to the distribution position of the failed limbs on the robot also includes: if there are two or more valid limbs on at least one side of the fuselage, determining the same number of stabilizing limbs as the failed limbs among the valid limbs distributed on different sides of the fuselage.
[0135] In one embodiment, the method of redetermining the powered limbs and the stabilizing limbs among the multiple limbs according to the distribution positions of the failed limbs on the robot includes: if the limbs on the first side of the fuselage are all the failed limbs, then determining the powered limbs among the valid limbs on the second side of the fuselage, and determining the stabilizing limbs according to the valid degrees of freedom of the failed limbs.
[0136] In one embodiment, adjusting the posture of the stabilizing limb according to the posture of other limbs other than the stabilizing limb includes: adjusting the stabilizing limb to a second posture symmetrical to the first posture of the failed limb according to the first posture of the failed limb; or adjusting the stabilizing limb to a third posture according to the first posture of the failed limb and the asymmetric relationship between the failed limb and the stabilizing limb.
[0137] In one embodiment, the robot control device 600 further includes:
[0138] An image acquisition module is configured to acquire multiple frames of images taken of the environment in which the robot is located;
[0139] An image processing module, configured to extract a key image containing a preset object from the multiple frames of images;
[0140] The sending module is configured to send the key image to a remote device.
[0141] In one embodiment, extracting a key image containing a preset object from the multiple frames of images includes: detecting a preset object in at least one frame of an image to be processed among the multiple frames of images; if multiple preset objects are detected in the image to be processed, extracting multiple key images from the image to be processed, each key image containing one of the preset objects.
[0142] In one implementation, the sending the key image to the remote device includes: determining a priority coefficient of the key image according to a recognition result of a preset object in the key image; and sending the key image to the remote device according to the priority coefficient.
[0143] In one embodiment, determining the priority coefficient of the key image based on the recognition result of the preset object in the key image includes: comparing the preset object in the key image with one or more known objects to determine the confidence level, and if the confidence level reaches a preset value, determining that the preset object is a target known object among the known objects, and determining that the key image is the first key image; determining the priority coefficient of the first key image based on the weight coefficient corresponding to the target known object and the confidence level.
[0144] In one embodiment, determining the priority coefficient of the key image based on the recognition result of the preset object in the key image includes: comparing the preset object in the key image with one or more known objects to determine the confidence level, if the confidence level does not reach the preset value, determining that the preset object is an unknown object, and determining that the key image is a second key image; determining the priority coefficient of the second key image based on the weight coefficient corresponding to the color of the preset object and the confidence level.
[0145] In one embodiment, the key images include key images of different image categories; sending the key images to the remote device according to the priority coefficient includes: sending the key images in each image category to the remote device according to the priority coefficient based on the transmission indicators of each image category.
[0146] In one embodiment, sending the key image to the remote device includes: sending the key image to the remote device when the communication status between the robot and the remote device does not meet a first preset condition; the sending module is also configured to: send a video containing the multiple frames of images to the remote device when the communication status between the robot and the remote device meets a first preset condition.
[0147] In one implementation, sending the key image to a remote device includes: determining target clarity according to a communication status between the robot and the remote device, and sending the key image of the target clarity to the remote device.
[0148] The exemplary embodiment of the present disclosure also provides another robot control device. Figure 7 As shown, the robot control device 700 may include the following program modules:
[0149] The image acquisition module 710 is configured to acquire multiple frames of images of the environment in which the robot is located;
[0150] An image processing module 720 is configured to extract a key image containing a preset object from the multiple frames of images;
[0151] The sending module 730 is configured to send the key image to a remote device.
[0152] The specific details of each part of the above-mentioned device have been described in detail in the implementation method of the method part. The undisclosed details can be found in the implementation method of the method part, so they will not be repeated here.
[0153] It should be noted that, although several modules or units of the device for action execution are mentioned in the above detailed description, this division is not mandatory. In fact, according to the exemplary embodiments of the present disclosure, the features and functions of two or more modules or units described above can be embodied in one module or unit. Conversely, the features and functions of one module or unit described above can be further divided into multiple modules or units to be embodied.
[0154] The exemplary embodiments of the present disclosure also provide a computer program product, which includes a computer program, and the computer program implements the above method when executed by a processor.
[0155] In one embodiment, the computer program product may be a tangible product containing a computer program, such as a computer-readable storage medium storing a computer program. The readable storage medium may be a storage medium based on electrical, magnetic, optical, electromagnetic, infrared, or other signals, including but not limited to: random access memory (RAM), read-only memory (ROM), magnetic tape, floppy disk, flash memory (Flash), mechanical hard disk (HDD), solid-state drive (SSD), and the like. Exemplarily, the computer program product may be implemented as a non-volatile storage medium storing a computer program, such as a read-only memory, a NAND flash memory, and the like.
[0156] In one embodiment, the computer program product may be an intangible product including a computer program. Exemplarily, the computer program product may be implemented as a virtual digital product, such as a digital file storing an executable file, an installation package, etc. of the computer program.
[0157] The code of the computer program can be written in one or more programming languages. Programming languages such as C language, Java, C++, etc. The program code can be executed entirely on the user computing device, or partially on the user computing device, or as a separate software package, or partially on the user computing device and partially on a remote computing device, or entirely on a remote computing device or server. In the case of a remote computing device, the remote computing device can be connected to the user computing device through any type of network, such as a local area network (LAN), a wide area network (WAN), etc., or can be connected to an external computing device (e.g., an Internet connection provided by an operator).
[0158] Computer programs can be carried or transmitted through electrical, magnetic, optical, electromagnetic, infrared and other signals. Electronic devices can convert signals carrying computer programs into digital signals, and then run the computer programs. When a computer program is running on an electronic device, its code is used to enable the electronic device to execute (more specifically, it can enable the processor of the electronic device to execute) the method steps of various exemplary embodiments of the present disclosure, such as the following steps: Step S310, when there is at least one failed limb among the limbs of the robot, according to the distribution position of the failed limb on the robot, the power limb and the stable limb are re-determined among the multiple limbs; a failed limb refers to a limb with at least one failed degree of freedom; Step S320, according to the posture of other limbs other than the stable limb, the posture of the stable limb is adjusted so that the robot maintains stable movement driven by the powered limb.
[0159] By implementing the above method steps through a computer program, a control method is provided in the event of limb failure of the robot. By redefining the power limb and the stabilizing limb, the limbs are divided into different roles, wherein the power limb is used to drive the robot to move, and the stabilizing limb is used to keep the robot stable. On the one hand, the robot can maintain stable movement to a certain extent in the event of limb failure, so that it can return to the designated location and even continue working. The situation of robot out of control is reduced and the safety of the equipment is improved. On the other hand, there is no need to perform power and stabilization functions on each limb at the same time, which simplifies the control instructions on a single limb and reduces the complexity of control.
[0160] The exemplary embodiment of the present disclosure also provides a robot, which may be the above-mentioned Figure 1 or Figure 2 The robot 200 shown in FIG. 200 may be a bionic device. Figure 8 Further explanation of the robot.
[0161] refer to Figure 8 As shown, the robot 800 may include a body 810, and a processor 820 and a memory 830 located in the body 810. The memory 830 is used to store executable instructions of the processor 820; the processor 820 is configured to execute the method steps of various exemplary embodiments of the present disclosure by executing the executable instructions.
[0162] In one embodiment, the body 810 includes a body and a plurality of limbs disposed on the body, each limb has at least one degree of freedom, and the robot 800 changes its posture through the movement of the limbs.
[0163] In one embodiment, the memory 830 may include a volatile memory, such as a RAM, a cache unit, and may also include a non-volatile memory, such as a ROM. The memory 830 may also include one or more program modules, such program modules include but are not limited to: an operating system, one or more application programs, other program modules, and program data, each of which or a combination thereof may include the implementation of a network environment. For example, the program module may include each module in the above-mentioned device.
[0164] In one embodiment, the processor 820 may include one or more processing units, for example: the processor 820 may include an AP (Application Processor), a modem processor, a GPU (Graphics Processing Unit), an ISP (Image Signal Processor), a controller, an encoder, a decoder, a DSP (Digital Signal Processor), a baseband processor and / or an NPU (Neural-Network Processing Unit) and other processing units.
[0165] The processor 820 can be used to execute executable instructions stored in the memory 830, such as executing the following steps: Step S310, when there is at least one failed limb among the limbs of the robot, redetermine the power limb and the stable limb among multiple limbs according to the distribution position of the failed limb on the robot; a failed limb refers to a limb in which at least one degree of freedom is failed; Step S320, according to the postures of other limbs other than the stable limb, adjust the posture of the stable limb so that the robot maintains stable movement driven by the power limb.
[0166] By executing the above method steps through the processor 820, a control method is provided in the case of limb failure of the robot. By redetermining the power limb and the stabilizing limb, the limbs are divided into different tasks, wherein the power limb is used to drive the robot to move, and the stabilizing limb is used to keep the robot stable. On the one hand, the robot can maintain stable movement to a certain extent in the case of limb failure, so that it can return to the designated location and even continue working. The situation of robot out of control is reduced and the safety of the equipment is improved. On the other hand, there is no need to perform power and stabilization functions on each limb at the same time, which simplifies the control instructions on a single limb and reduces the complexity of control.
[0167] In one embodiment, the robot 800 may further include a bus for realizing connections between different components of the robot 800 , which may include a data bus, an address bus, and a control bus.
[0168] In one embodiment, the robot 800 may also include an I / O (input / output) interface, and the robot 800 may communicate with one or more external devices (eg, a keyboard, a mouse, an external controller, etc.) through the I / O interface.
[0169] In one embodiment, the robot 800 may further include a network adapter, and the robot 800 may communicate with one or more networks through the network adapter. For example, the network adapter may provide mobile communication solutions such as 3G / 4G / 5G, or wireless communication solutions such as wireless LAN, Bluetooth, near field communication, etc. The network adapter may communicate with other modules of the robot 800 through a bus.
[0170] In addition, other hardware and / or software modules may be provided in the robot 800, including but not limited to: microcode, device drivers, redundant processors, external disk drive arrays, tape drives, and data backup storage systems.
[0171] As can be seen from the above, the technical solution of the present disclosure can be implemented as a method, an apparatus, a system, a computer program product, a storage medium, an electronic device, etc. Those skilled in the art can understand that various aspects of the present disclosure can be specifically implemented in the following forms, namely: a complete hardware implementation, a complete software implementation (including firmware, microcode, etc.), or an implementation combining hardware and software, such as being respectively referred to as a "circuit", "module" or "system".
[0172] It should be understood that the present disclosure is not limited to the specific method steps or structures described above and shown in the accompanying drawings, and various modifications and changes can be made without departing from the scope thereof. Those skilled in the art will easily think of other embodiments based on the specific embodiments provided by the present disclosure. Therefore, the specific embodiments provided by the present disclosure are only exemplary, and the scope and spirit of the present disclosure are indicated by the claims, and any variations, uses or adaptive changes of the present disclosure should be covered, which follow the general principles of the present disclosure and include common knowledge or customary technical means in the technical field that are not disclosed in the present disclosure.
Claims
1. A robot control method, characterized in that: The robot comprises a body, and a plurality of limbs arranged on the body, each limb having at least one degree of freedom, and the robot changes its posture through the movement of the limbs; the method comprises: When there is at least one disabled limb among the limbs of the robot, a power limb and a stable limb are re-determined among the multiple limbs according to the distribution position of the disabled limb on the robot; the disabled limb refers to a limb with at least one disabled degree of freedom; According to the postures of limbs other than the stabilizing limb, the posture of the stabilizing limb is adjusted so that the robot can maintain stable movement driven by the power limb.
2. The method according to claim 1, characterized in that The method of re-determining a power limb and a stable limb among the plurality of limbs according to the distribution position of the failed limb on the robot comprises: If there is at least one valid limb on both sides of the robot body, at least one valid limb on both sides of the body is determined as the power limb; the valid limb is a non-failed limb other than the failed limb.
3. The method according to claim 2, characterized in that The step of respectively determining at least one of the effective limbs on both sides of the fuselage as the power limb comprises: If there are two or more effective limbs on at least one side of the fuselage, among the effective limbs distributed on different sides of the fuselage from the ineffective limb, the effective limb having a symmetrical relationship with the ineffective limb is determined as the stable limb; An effective limb other than the stable limb is determined as the dynamic limb.
4. The method according to any one of claims 2 to 3, characterized in that: The method of redetermining the power limb and the stable limb among the plurality of limbs according to the distribution position of the failed limb on the robot further includes: If there are two or more valid limbs on at least one side of the fuselage, the same number of stable limbs as the invalid limbs are determined from the valid limbs distributed on the different side of the fuselage.
5. The method according to claim 1, characterized in that The method of re-determining a power limb and a stable limb among the plurality of limbs according to the distribution position of the failed limb on the robot comprises: If all the limbs on the first side of the fuselage are the disabled limbs, the power limb is determined from the valid limbs on the second side of the fuselage, and the stabilizing limb is determined according to the effective degrees of freedom of the disabled limbs.
6. The method according to any one of claims 1 to 5, characterized in that The step of adjusting the posture of the stabilizing limb according to the posture of other limbs other than the stabilizing limb comprises: According to the first posture of the disabled limb, the stable limb is adjusted to a second posture symmetrical to the first posture; or According to the first posture of the disabled limb and the asymmetric relationship between the disabled limb and the stable limb, the stable limb is adjusted to a third posture.
7. The method according to any one of claims 1 to 6, characterized in that The method further comprises: Acquire multiple frames of images taken of the environment where the robot is located; Detecting a preset object in at least one frame of the image to be processed among the multiple frames of images; If a plurality of preset objects are detected in the image to be processed, extracting a plurality of key images from the image to be processed, each key image containing one of the preset objects; The key image is sent to a remote device.
8. The method according to claim 7, characterized in that The sending the key image to the remote device comprises: Determining a priority coefficient of the key image according to recognition of a preset object in the key image; the key image includes key images of different image categories; According to the transmission index of each image category, the key images in each image category are sent to the remote device according to the priority coefficient.
9. The method according to claim 8, characterized in that The step of determining the priority coefficient of the key image according to the recognition result of the preset object in the key image includes: Comparing the preset object in the key image with one or more known objects to determine a confidence level, and if the confidence level reaches a preset value, determining that the preset object is a target known object among the known objects, and determining that the key image is a first key image; Determining a priority coefficient of the first key image according to a weight coefficient corresponding to the target known object and the confidence level; Or the determining the priority coefficient of the key image according to the recognition result of the preset object in the key image includes: Comparing the preset object in the key image with one or more known objects to determine a confidence level, and if the confidence level does not reach a preset value, determining that the preset object is an unknown object, and determining that the key image is a second key image; The priority coefficient of the second key image is determined according to the weight coefficient corresponding to the color of the preset object and the confidence level.
10. The method according to any one of claims 7 to 9, characterized in that: The sending the key image to the remote device comprises: When the communication status between the robot and the remote device does not satisfy a first preset condition, sending the key image to the remote device; The method further comprises: When the communication status between the robot and the remote device satisfies a first preset condition, sending a video including the multiple frames of images to the remote device; or The sending the key image to the remote device comprises: The target definition is determined according to the communication status between the robot and the remote device, and the key image of the target definition is sent to the remote device.