Method, device and electronic device for determining swing path of robot foot end
Patent Information
- Application Number
- CN202210940168.5
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2022-08-05
- Publication Date
- 2025-07-29
- Estimated Expiration
- 2042-08-05
Smart Images

Figure CN115328125B_ABST
Abstract
Description
Technical Field
[0001] The present invention relates to the field of artificial intelligence technology, and in particular, to a method, device and electronic device for determining a robot path. Background Art
[0002] During the process of a robot walking autonomously, due to the lack of visual perception ability, it is unable to detect the height of a step. Therefore, in the task of climbing stairs, the swinging leg of the robot will inevitably collide with the step during movement. The accidental collision will have a greater impact on the movement state of the robot and ultimately lead to the failure of the stair-climbing task. Summary of the Invention
[0003] The present invention provides a method, device and electronic device for determining the swinging path of a robot foot end, so as to solve the problem that the robot is prone to collision when climbing stairs in the prior art.
[0004] The present invention provides a method for determining the swinging path of a robot foot end, including: [[ID=!7]]
[0005] When the robot climbs a step, determining the starting point of the swinging leg during the movement of the robot;
[0006] Obtaining the outward swing distance of the swinging leg, where the outward swing distance is the distance that the swinging leg moves laterally;
[0007] Determining the movement trajectory of the swinging leg during movement based on the starting point and the outward swing distance.
[0008] According to an embodiment provided by the present invention, the determining the movement trajectory of the swinging leg during movement based on the starting point and the outward swing distance includes:
[0009] Determining the expected landing point of the swinging leg according to the starting point and the preset body movement speed;
[0010] Determining the highest point according to the starting point, the expected landing point, and the outward swing distance;
[0011] Determining the movement trajectory based on the starting point, the expected landing point, and the highest point.
[0012] According to an embodiment provided by the present invention, the determining the highest point according to the starting point, the expected landing point, and the outward swing distance includes:
[0013] Determining the highest point as:
[0014]
[0015] where, (x m , y m , z mThe coordinates of the highest point are (x0, y0, z0), the coordinates of the starting point are (x0, y0, z0), Δz is the swing height of the swing leg, Δy is the outward swing distance, and n is 0 or 1.
[0016] According to an embodiment provided by the present invention, when the swing leg is on the left side, n is 0, and when the swing leg is on the right side, n is 1.
[0017] According to an embodiment provided by the present invention, the movement trajectory is a function of function, where:
[0018] function, where:
[0019] where is the phase when the swing leg moves.
[0020] According to an embodiment provided by the present invention, the above method further includes: when the robot moves, adjusting the horizontal attitude of the robot to be parallel to the step slope.
[0021] The present invention also provides a device for determining the swing path of the robot foot end, including:
[0022] A position determination module for determining the starting point of the swing leg when the robot climbs the steps;
[0023] A distance acquisition module for acquiring the outward swing distance of the swing leg, where the outward swing distance is the distance of the lateral movement of the swing leg;
[0024] A trajectory planning module for determining the movement trajectory when the swing leg moves based on the starting point and the outward swing distance.
[0025] The present invention also provides an electronic device, including a memory, a processor, and a computer program stored on the memory and executable on the processor. When the processor executes the program, it implements the method for determining the swing path of the robot foot end as described in any one of the above.
[0026] The present invention also provides a non-transitory computer-readable storage medium, on which a computer program is stored. When the computer program is executed by a processor, it implements the method for determining the swing path of the robot foot end as described in any one of the above.
[0027] The present invention also provides a computer program product, including a computer program. When the computer program is executed by a processor, it implements the method for determining the swing path of the robot foot end as described in any one of the above.
[0028] In an embodiment of the present invention, when the robot climbs stairs, the movement trajectory of the robot during movement is determined according to the starting point and the highest point of the swinging leg of the robot, as well as the outward swing distance of the swinging leg. The outward swing distance is the distance of the lateral movement of the swinging leg, which increases the lateral movement distance of the swinging leg, thereby increasing the swinging space and reducing the collision between the foot end of the robot and the stairs. BRIEF DESCRIPTION OF THE DRAWINGS
[0029] In order to more clearly illustrate the technical solutions in the present invention or the prior art, the following will briefly introduce the drawings required for use in the description of the embodiments or the prior art. Obviously, the drawings in the following description are some embodiments of the present invention. For those of ordinary skill in the art, without creative efforts, other drawings can also be obtained based on these drawings.
[0030] Figure 1 is a schematic flowchart of the method provided by the present invention;
[0031] Figure 2 is one of the schematic diagrams of the movement trajectory in the method for determining the swinging path of the robot foot end provided by the present invention;
[0032] Figure 3 is a schematic diagram of the robot posture in the method for determining the swinging path of the robot foot end provided by the present invention;
[0033] Figure 4 is the second schematic diagram of the movement trajectory in the method for determining the swinging path of the robot foot end provided by the present invention;
[0034] Figure 5 is a schematic structural diagram of the device for determining the swinging path of the robot foot end provided by the present invention;
[0035] Figure 6 is a schematic structural diagram of the electronic device provided by the present invention. DETAILED DESCRIPTION OF THE EMBODIMENTS
[0036] To make the objectives, technical solutions, and advantages of the present invention clearer, the following will clearly and completely describe the technical solutions in the present invention in conjunction with the drawings in the present invention. Obviously, the described embodiments are some, but not all, of the embodiments of the present invention. Based on the embodiments in the present invention, all other embodiments obtained by those of ordinary skill in the art without creative efforts fall within the scope of protection of the present invention.
[0037] The block diagrams shown in the drawings are only functional entities and do not necessarily correspond to physically independent entities. That is, these functional entities can be implemented in software form, or in one or more hardware modules or integrated circuits, or in different networks and / or processor devices and / or microcontroller devices.
[0038] The flowcharts shown in the accompanying drawings are only illustrative and not necessarily include all the contents and operations / steps, nor are they necessarily executed in the order described. For example, some operations / steps can be decomposed, while some operations / steps can be combined or partially combined. Therefore, the actual execution order may change according to the actual situation.
[0039] In this specification, terms such as "first", "second", "third", etc. are only used as labels and do not limit the quantity or order of their objects.
[0040] The method, device, and electronic device for determining the swing path of the robot foot end according to the present invention will be described below with reference to the accompanying drawings.
[0041] The embodiments of the present invention first provide a method for determining the swing path of the robot foot end. Exemplarily, this method for determining the swing path of the robot foot end can be applied to various electronic devices such as mobile phones, tablet computers, laptop computers, augmented reality devices, virtual reality devices, wearable intelligent devices, etc., and can also be applied to robots capable of autonomous walking, such as quadruped robots and other electronic devices. This embodiment does not make special limitations in this regard.
[0042] As Figure 1 shown, this method for determining the swing path of the robot foot end may include the following steps:
[0043] Step 10: When the robot climbs stairs, determine the starting point of the swinging leg when the robot moves.
[0044] Multiple walking modes of the robot can be set in advance, such as flat ground walking, climbing stairs, etc. According to the user's settings, the robot can switch between multiple walking modes. When the user sets the walking mode of the robot to climbing stairs, the robot can switch to the climbing stairs mode.
[0045] When climbing stairs, the swinging leg refers to the leg that is moving in the robot. Taking a quadruped robot as an example, usually when one leg moves, the other three legs act as support legs to maintain the balance of the robot's body. The starting point of the swinging leg is the coordinate of the position where the endpoint of the swinging leg is located when it starts to swing.
[0046] According to the starting point and the preset body movement speed, the expected landing point of the robot's swinging leg can be determined. Exemplarily, according to the current starting point of the robot's swinging leg, the corresponding expected landing point can be calculated through the raibert algorithm. This algorithm calculates the expected landing point (x d , y d , z d ) of the swinging leg based on the lateral speed and forward speed of the robot at the instant when the swinging leg lifts. The specific formula is as follows:
[0047]
[0048] Among them, and are respectively the forward speed and the lateral speed of the robot at the instant of lifting the leg, which are calculated by reading the acceleration during movement through the acceleration sensor of the robot. T st is the duration of the stance phase, which can be set as a constant, or the duration of the stance phase of the previous step, and is the preset initial value at the first step. k vx and k vy are respectively the gain coefficients of the speed differences in the forward and lateral directions, and are respectively the expected movement speeds of the robot at the instant of lifting the leg, that is, the body movement speeds. The coordinates of the expected landing point calculated by this algorithm will change with the real-time speed of the robot. The greater the speed, the larger the stride; the smaller the speed, the smaller the stride; when the speed is zero, it is treading in place.
[0049] Step 20: Obtain the outward swing distance of the swinging leg, and the outward swing distance is the distance that the swinging leg moves laterally.
[0050] The outward swing distance is the distance added to the lateral movement of the robot, which can be set manually according to experience. The robot can obtain the preset outward swing distance and plan the movement trajectory through this outward swing distance.
[0051] Step 30: Determine the movement trajectory of the swinging leg based on the starting point and the outward swing distance.
[0052] According to the starting point and the outward swing distance, the highest point of the movement of the robot's swinging leg can be determined first. Exemplarily, the forward direction of the robot is the positive x direction, the vertical upward direction is the positive z axis direction, and the y axis is the direction that satisfies the right-hand coordinate system. In this coordinate system, the relationship between the starting point, the expected landing point and the highest point is as follows:
[0053]
[0054] Among them, (x m , y m , z m ) is the coordinate of the highest point, (x0, y0, z0) is the coordinate of the starting point, Δz is the swing height of the swinging leg, Δy is the outward swing distance, and n is 0 or 1.
[0055] The x-direction value of the highest point is the midpoint between the initial point and the desired landing point, and the lateral y-direction value is increased by the swing distance based on the midpoint between the starting point and the desired landing point. Exemplarily, in the above coordinate system, when the swinging leg is the right leg, n is 1, and when the swinging leg is the left leg, n is 0. That is, when the left leg swings, the y-direction of the highest point increases by the swing distance, and when the left leg swings, the y-negative direction of the highest point increases by the swing distance.
[0056] z0 is the value in the vertical direction of the starting point, which is initially the negative value of the height of the robot from the ground. Δz can be determined manually according to the attributes of the robot.
[0057] Based on the known initial point and known quantities such as the desired movement speed of the robot, the desired landing point of the robot can be calculated. Then, the above formula (2) is used to calculate the highest point, and then the corresponding trajectory curve, that is, the movement trajectory of the swinging leg, can be determined using the initial point, the highest point, and the desired landing point.
[0058] To increase the flexibility of the movement trajectory, in this embodiment, the swinging process during the movement of the robot is divided into two swinging stages, and different movement trajectories are determined for these two swinging stages respectively. It should be understood that the movement trajectories between the two swinging stages need to maintain continuity.
[0059] Exemplarily, when the phase of the swinging stage is normalized to between 0 and 1, the movement process of the robot can include two swinging stages, the stage with the phase between 0 and 0.5 and the stage with the phase between 0.5 and 1. For example, the movement trajectories of these two swinging stages can satisfy:
[0060]
[0061] Among them, is the phase when the swinging leg moves. In the first swinging stage in, the movement trajectory is a curve about . On this curve, the swinging leg moves slowly on the basis of approaching the highest point, so as to move forward while maintaining the height and increase the swinging amplitude. In the second swinging stage in, the movement trajectory is a curve about . Usually, the collision occurs within the range from the initial point being lifted to the highest point. Through the curve type of the above first stage in this embodiment, the space under the curve can be increased, thereby reducing the problem of collision.
[0062] Specifically, after determining the curve types of the two swinging stages, the movement trajectory can be:
[0063]
[0064] Among them, (xt , y t , z t ) is the coordinate of the swinging leg corresponding to the phase . Among them, f1 and f2 are quadratic functions with respect to the starting point, the highest point, and the desired landing point. Combining the above formulas (3) and (4), the coordinates corresponding to each phase can be calculated, that is, the movement trajectory. Specifically, f1 is a quadratic function with respect to and these three points. Among them, is the phase corresponding to the starting point, is the phase of the swinging leg at the highest point, is the phase of the swinging leg at the landing point. By solving f1 through these three points, the movement trajectory of the swinging leg in the y direction can be obtained. Similarly, f2 is a quadratic function with respect to and these three points. By solving this quadratic function through these three points, f2 can be determined, that is, the movement trajectory in the z direction.
[0065] After determining the movement trajectory, the robot can determine the coordinates corresponding to each phase according to the movement trajectory, so as to move. During the movement of the robot, the coordinate changes of the end point of the swinging leg are as Figure 2 shown. Curve 20 is the curve graph of the swinging trajectory when the swinging leg is the left leg. It can be seen that curve 20 increases a certain distance in the y direction (i.e., the outward swing distance), increasing the swing amplitude of the swinging leg, and the space inside curve 20 increases, which can more effectively avoid collisions with the steps.
[0066] Exemplarily, when the robot moves, it can adjust the motion posture of the robot according to the step slope. For example, adjust the motion posture of the robot to a posture parallel to the step slope. Usually, the robot maintains a horizontal posture during movement, as Figure 3 shown in (a). When the robot 30 climbs the step 31, the body maintains a horizontal posture. It is more stable when the body height is relatively low. When climbing the step, the motion posture of the robot is adjusted to a posture parallel to the step slope, as Figure 3 shown in (b). The step slope in the step 31 is as shown in the plane 32. In the posture where the motion posture of the robot is parallel to the slope 32 of the step, the movable space of the swinging leg of the robot increases, which can more effectively avoid collisions. For example, according to the height of the step, the angle between the slope 32 and the horizontal direction can be determined, so as to adjust the running posture of the robot to be approximately parallel to this slope 32.
[0067] Exemplarily, take a quadruped robot as an example. The quadruped robot moves from flat ground to a step at a desired speed of 0.25 m / s using a trot gait. By using a proportional-derivative control method to track the trajectory of the swing leg, the movement trajectory of the swing leg of the quadruped robot during movement can be obtained, as Figure 4 shown. From Figure 4 the movement trajectory of the foot tip in
[0068] it can be seen that the movement process of the swing leg changes regularly without sudden position changes due to force. The quadruped robot successfully climbs multiple steps in a stable posture and completes the task of climbing high steps.
[0069] As Figure 5 shown, the device 50 for determining the swing path of the robot foot tip may include: a position determination module 51, configured to determine the starting point of the swing leg when the robot climbs a step; a distance acquisition module 52, configured to acquire the outward swing distance of the swing leg, where the outward swing distance is the distance that the swing leg moves laterally; a trajectory planning module 53, configured to determine the movement trajectory of the swing leg based on the starting point and the outward swing distance.
[0070] In an embodiment of the present invention, the trajectory planning module 53 may specifically include: a landing point determination module, configured to determine the desired landing point of the swing leg according to the starting point and the preset movement speed of the body; a highest point determination module, configured to determine the highest point according to the starting point, the desired landing point, and the outward swing distance; a trajectory determination module, configured to determine the movement trajectory based on the starting point, the desired landing point, and the highest point.
[0071] In an embodiment of the present invention, the highest point determination module is specifically configured to: determine the highest point as:
[0072]
[0073] where (x m , y m , z m ) are the coordinates of the highest point, (x0, y0, z0) are the coordinates of the starting point, Δz is the swing height of the swing leg, Δy is the outward swing distance, and n is 0 or 1.
[0074] In an embodiment of the present invention, when the swinging leg is on the left side, n is 0, and when the swinging leg is on the right side, n is 1.
[0075] In an embodiment of the present invention, the movement trajectory is a function of , where:
[0076] where is the phase when the swinging leg moves.
[0077] In an embodiment of the present invention, the above-mentioned robot foot end swinging path determination device 50 further includes: an attitude adjustment module, configured to adjust the movement attitude of the robot to be parallel to the step slope when the robot moves.
[0078] Figure 6 An exemplary structural schematic diagram of an electronic device is shown in Figure 6 As shown, the electronic device may include: a processor 610, a communication interface 620, a memory 630, and a communication bus 640. Among them, the processor 610, the communication interface 620, and the memory 630 complete mutual communication through the communication bus 640. The processor 610 can call the logical instructions in the memory 630 to execute the robot path determination method, which includes: in the case where the robot climbs stairs, determining the starting point of the swinging leg when the robot moves; obtaining the outward swing distance of the swinging leg, where the outward swing distance is the distance that the swinging leg moves laterally; and determining the movement trajectory of the swinging leg based on the starting point and the outward swing distance.
[0079] In an exemplary embodiment, the processor 610 can call the logical instructions in the memory 630 to execute: determining the expected landing point of the swinging leg according to the starting point and the preset body movement speed; determining the highest point according to the starting point, the expected landing point, and the outward swing distance; and determining the movement trajectory based on the starting point, the expected landing point, and the highest point.
[0080] In an exemplary embodiment, the processor 610 can also call the logical instructions in the memory 630 to execute: determining the highest point as:
[0081]
[0082] where, (x m , y m , z m) are the coordinates of the highest point, (x0, y0, z0) are the coordinates of the starting point, Δz is the swing height of the swing leg, Δy is the outward swing distance, and n is 0 or 1.
[0083] In an exemplary embodiment, the processor 610 may call the logic instructions in the memory 630 and may also execute: n is 0 when the swing leg is on the left side, and n is 1 when the swing leg is on the right side.
[0084] In an exemplary embodiment, the processor 610 may call the logic instructions in the memory 630 and may also execute: determining that the movement trajectory is a function of , where:
[0085] where, is the phase when the swing leg moves.
[0086] In an exemplary embodiment, the processor 610 may call the logic instructions in the memory 630 and may also execute: when the robot moves, adjusting the motion posture of the robot to be parallel to the step slope.
[0087] In addition, when the logic instructions in the above-mentioned memory 630 are implemented in the form of a software functional unit and sold or used as an independent product, they may be stored in a computer-readable storage medium. Based on such an understanding, the technical solution of the present invention, in essence, or the part that contributes to the prior art, or a part of this technical solution, may be embodied in the form of a software product. This computer software product is stored in a storage medium and includes several instructions for causing a computer device (which may be a personal computer, a server, or a network device, etc.) to execute all or part of the steps of the methods described in various embodiments of the present invention. The foregoing storage medium includes: various media such as a USB flash drive, a mobile hard disk, a read-only memory (ROM, Read-Only Memory), a random access memory (RAM, Random Access Memory), a magnetic disk, or an optical disc that can store program codes.
[0088] On the other hand, the present invention also provides a computer program product. The computer program product includes a computer program. The computer program can be stored on a non-transitory computer-readable storage medium. When the computer program is executed by a processor, the computer can execute the robot foot-end swing path determination method provided by the above-mentioned various methods. The method includes: in the case where the robot climbs stairs, determining the starting point of the swing leg when the robot moves; obtaining the outward swing distance of the swing leg, where the outward swing distance is the distance that the swing leg moves laterally; and determining the movement trajectory when the swing leg moves based on the starting point and the outward swing distance.
[0089] In another aspect, the present invention also provides a non-transitory computer-readable storage medium, on which a computer program is stored. When the computer program is executed by a processor, it is configured to implement the method for determining the swing path of the robot's foot end provided by the above various methods. The method includes: in the case where the robot climbs stairs, determining the starting point of the swinging leg when the robot moves; obtaining the outward swing distance of the swinging leg, where the outward swing distance is the distance that the swinging leg moves laterally; and determining the movement trajectory of the swinging leg when moving based on the starting point and the outward swing distance.
[0090] The device embodiments described above are merely illustrative. The units described as separate components may or may not be physically separated, and the components shown as units may or may not be physical units, that is, they may be located in one place, or may be distributed to multiple network units. Some or all of the modules can be selected according to actual needs to achieve the purpose of the solution of this embodiment. A person of ordinary skill in the art can understand and implement it without creative effort.
[0091] Through the description of the above embodiments, those skilled in the art can clearly understand that each embodiment can be implemented by means of software plus a necessary general hardware platform, and of course, it can also be implemented by hardware. Based on this understanding, the above technical solutions, in essence, or the part that contributes to the prior art, can be embodied in the form of a software product. The computer software product can be stored in a computer-readable storage medium, such as ROM / RAM, magnetic disk, optical disc, etc., and includes several instructions for causing a computer device (which can be a personal computer, a server, or a network device, etc.) to execute the methods described in each embodiment or some parts of the embodiments.
[0092] Finally, it should be noted that the above embodiments are only used to illustrate the technical solutions of the present invention, and are not intended to limit them; although the present invention has been described in detail with reference to the foregoing embodiments, those of ordinary skill in the art should understand that they can still modify the technical solutions described in the foregoing embodiments, or perform equivalent replacements for some of the technical features; and these modifications or replacements do not cause the essence of the corresponding technical solutions to deviate from the spirit and scope of the technical solutions of the embodiments of the present invention.
Claims
1. A method for determining the swing path of a robot's foot end, characterized in that, Including: When the robot climbs stairs, determining the starting point of the swinging leg during the movement of the robot; Obtaining the outward swing distance of the swinging leg, where the outward swing distance is the distance that the swinging leg moves laterally; Determining the movement trajectory of the swinging leg during movement based on the starting point and the outward swing distance; The determining the movement trajectory of the swinging leg during movement based on the starting point and the outward swing distance includes: Determining the expected landing point of the swinging leg according to the starting point and the preset body movement speed; Determining the highest point according to the starting point, the expected landing point, and the outward swing distance; Determining the movement trajectory based on the starting point, the expected landing point, and the highest point; The determining the highest point according to the starting point, the expected landing point, and the outward swing distance includes: Determining the highest point as: Among them, (x m , y m , z m ) are the coordinates of the highest point, (x0, y0, z0) are the coordinates of the starting point, Δz is the swing height of the swinging leg, Δy is the outward swing distance, and n is 0 or 1; When the swinging leg is on the left side, n is 0, and when the swinging leg is on the right side, n is 1.
2. The method for determining the swing path of the robot foot end according to claim 1, characterized in that, The moving trajectory is related to a function of, where: Among them, is the phase when the swinging leg moves after normalization processing.
3. The method for determining the swing path of the robot foot end according to claim 1, characterized in that Also including: When the robot moves, adjusting the movement posture of the robot to a horizontal posture; When the robot climbs stairs, adjusting the movement posture of the robot to be parallel to the stair slope; The stair slope is an inclined plane formed by the position where the robot currently touches the ground and the plane of the upper step on the ground where it touches.
4. A device for determining the swinging path of the robot foot end, characterized in that, Including: A position determination module, configured to determine the starting point of the swinging leg during the movement of the robot when the robot climbs stairs; A distance acquisition module, configured to acquire the outward swing distance of the swinging leg, where the outward swing distance is the distance that the swinging leg moves laterally; A trajectory planning module, configured to determine the movement trajectory of the swinging leg during movement based on the starting point and the outward swing distance; The trajectory planning module is specifically configured to: determine the expected landing point of the swinging leg according to the starting point and the preset body movement speed; Determine the highest point according to the starting point, the expected landing point, and the outward swing distance; Determine the movement trajectory based on the starting point, the expected landing point, and the highest point; The trajectory planning module is specifically configured to: Determine the highest point as: Among them, (x m , y m , z m ) are the coordinates of the highest point, (x0, y0, z0) are the coordinates of the starting point, Δz is the swing height of the swinging leg, Δy is the outward swing distance, and n is 0 or 1; When the swinging leg is on the left side, n is 0, and when the swinging leg is on the right side, n is 1.
5. An electronic device, comprising a memory, a processor, and a computer program stored on the memory and executable on the processor, characterized in that, When the processor executes the program, it implements the method for determining the swinging path of the robot foot end according to any one of claims 1 to 3.
6. A non-transitory computer-readable storage medium having a computer program stored thereon, characterized in that, When the computer program is executed by the processor, it implements the method for determining the swinging path of the robot foot end according to any one of claims 1 to 3.
7. A computer program product, comprising a computer program, characterized in that, When the computer program is executed by the processor, it implements the method for determining the swinging path of the robot foot end according to any one of claims 1 to 3.
Citation Information
Patent Citations
Method for planning quadruped robot foot end swinging track
CN107065907A
Minimum Jerk index swing trajectory planning method
CN113771046A