Path generation method, device, robot and computer-readable storage medium

By combining the scene model and the robot model, the initial sites are determined and optimized, the necessary sites are connected, and the robot path is generated, and the problem of large workload is solved, and efficiency and flexibility are improved.

CN114637287BActive Publication Date: 2025-01-14UBTECH ROBOTICS CORP LTD
View PDF 3 Cites 0 Cited by

Patent Information

Application Number
CN202210177948.9
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2022-02-24
Publication Date
2025-01-14
Estimated Expiration
2042-02-24

AI Technical Summary

Technical Problem

When setting up the robot path, different paths need to be set for each robot and each scene, resulting in large workload and inefficient efficiency.

Method used

By combining multiple sets of configurations, the initial sites between the starting point and the end point are determined, the redundant sites are removed, and the necessary sites are connected using cubic spline curves or B splines to generate a path.

Benefits of technology

The robot generates paths independently without setting paths for each robot for each scenario, which improves the efficiency and flexibility of path generation and reduces the workload.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN114637287B_ABST
    Figure CN114637287B_ABST
Patent Text Reader

Abstract

The present application provides a path generation method, device, robot and computer-readable storage medium, which relates to the field of robot technology, wherein the method includes: based on the scene model of the current scene and the machine model corresponding to the robot, combined with multiple groups of configurations of the robot, determining multiple initial sites between the starting point and the end point in the scene model; removing redundant sites in the multiple initial sites to obtain necessary sites in the initial sites; connecting multiple necessary sites to obtain the path between the starting point and the end point. The technical solution provided by the present application determines multiple initial sites according to the starting point and the end point by the robot autonomously, optimizes the initial sites, and finally connects the optimized multiple necessary sites to obtain the path of the robot moving from the starting point to the end point. There is no need to set a path for each robot for each scene, which can solve the problem of large workload caused by setting a path for the robot, and can improve the efficiency and flexibility of the robot in generating paths.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present application relates to robotics technology, and in particular to a path generation method, device, robot and computer-readable storage medium, belonging to the field of robotics technology. Background Art

[0002] As robots continue to evolve and develop, various types of robots have emerged to adapt to different scenarios. Some robots do not need to plan paths, while others do. They can only perform corresponding operations after reaching the destination via the planned path.

[0003] In the related art, different paths need to be set for the robot for different scenarios. In the process of setting the path, the robot can complete the planning of the driving path according to the triggered operation and the received data.

[0004] However, in the process of setting the path of the robot, it is necessary to set different paths for each robot in combination with different scenarios, which results in a large workload for setting the path. Summary of the invention

[0005] In view of this, embodiments of the present application provide a path generation method, device, robot, and computer-readable storage medium to solve the problem of the large amount of work required to set the path of the robot.

[0006] In a first aspect, an embodiment of the present application provides a path generation method, the method comprising:

[0007] Based on a scene model of the current scene and a machine model corresponding to the robot, and in combination with multiple groups of configurations of the robot, determine multiple initial positions between a start point and an end point in the scene model;

[0008] Removing redundant sites from a plurality of the initial sites to obtain necessary sites from the initial sites;

[0009] A plurality of the necessary sites are connected to obtain a path between the starting point and the end point.

[0010] Optionally, the scene model based on the current scene and the machine model corresponding to the robot, combined with the multiple groups of configurations of the robot, determines multiple initial positions between the starting point and the end point in the scene model, including:

[0011] generating a random site according to a configuration space of the robot, the random site corresponding to a random configuration, the random configuration being randomly selected from the configuration space;

[0012] According to the scene model and the machine model, performing collision detection and stability detection on the posture corresponding to the random position;

[0013] If the posture corresponding to the random site does not pass the collision test and / or the stability test, continue to generate random sites until the posture corresponding to the continuously generated random sites passes the collision test and the stability test;

[0014] If the posture corresponding to the random site passes the collision detection and the stability detection, the random site is used as the first initial site, and random sites are continuously generated based on the first initial site to obtain multiple initial sites between the starting point and the end point.

[0015] Optionally, generating a random site according to the configuration space of the robot includes:

[0016] Randomly selecting a set of random configurations from the configuration space of the robot;

[0017] Determine a new configuration based on the determined last initial position and in combination with a preset step length, wherein the new configuration is the same as or similar to the random configuration;

[0018] The site corresponding to the new configuration is used as the random site.

[0019] Optionally, the scene model based on the current scene and the machine model corresponding to the robot, combined with the multiple groups of configurations of the robot, determines multiple initial positions between the starting point and the end point in the scene model, including:

[0020] Based on the scene model of the current scene and the machine model corresponding to the robot, combined with the multiple groups of configurations of the robot, a bidirectional search method is adopted to determine multiple initial positions between the starting point and the end point in the scene model.

[0021] Optionally, removing redundant sites among the plurality of initial sites to obtain necessary sites among the initial sites includes:

[0022] Generate a direction vector according to the i-th initial position and the i+1-th initial position, wherein the direction vector points from the i-th initial position to the i+1-th initial position;

[0023] Controlling the collision model corresponding to the i-th initial position to perform collision detection along the direction vector in the scene model;

[0024] If the collision model corresponding to the i-th initial position collides in the scene model, the i+1-th initial position is determined to be a necessary position, and the i+2-th initial position is determined to be a necessary position or a redundant position based on the i+1-th initial position;

[0025] If the collision model corresponding to the i-th initial site does not collide after reaching the i+1-th initial site, the i+1-th initial site is determined to be a redundant site, the i+1-th initial site is deleted, and the i+2-th initial site is determined to be a necessary site or a redundant site based on the i-th initial site until the necessary site is determined.

[0026] Optionally, the connecting of the plurality of necessary sites to obtain a path between the starting point and the end point includes:

[0027] A plurality of necessary locations are connected by cubic spline curve programming or B-spline programming to obtain a path between the starting point and the end point.

[0028] Optionally, before determining a plurality of initial positions between a start point and an end point in the scene model based on the scene model of the current scene and a machine model corresponding to the robot in combination with a plurality of groups of configurations of the robot, the method further comprises:

[0029] Get the scene image of the current scene;

[0030] voxelize the current scene according to the scene image to establish the scene model;

[0031] According to the model bodies corresponding to the various parts of the robot, a machine model corresponding to the robot is established.

[0032] In a second aspect, an embodiment of the present application provides a path generation device, the device comprising:

[0033] A determination module, configured to determine a plurality of initial positions between a start point and an end point in the scene model based on a scene model of a current scene and a machine model corresponding to the robot, in combination with a plurality of configuration groups of the robot;

[0034] A removal module, used for removing redundant sites from the plurality of initial sites to obtain necessary sites from the initial sites;

[0035] A connection module is used to connect the multiple necessary sites to obtain a path between the starting point and the end point.

[0036] Optionally, the determination module is specifically used to generate a random site according to the configuration space of the robot, wherein the random site corresponds to a random configuration, and the random configuration is randomly selected from the configuration space; according to the scene model and the machine model, collision detection and stability detection are performed on the posture corresponding to the random site; if the posture corresponding to the random site fails the collision detection and / or the stability detection, random sites are continued to be generated until the posture corresponding to the random site that continues to be generated passes the collision detection and the stability detection; if the posture corresponding to the random site passes the collision detection and the stability detection, the random site is used as the first initial site, and random sites are continued to be generated based on the first initial site to obtain multiple initial sites between the starting point and the end point.

[0037] Optionally, the determination module is further specifically used to randomly select a group of random configurations from the configuration space of the robot; determine a new configuration based on the determined last initial position and combined with a preset step size, wherein the new configuration is the same or similar to the random configuration; and use the position corresponding to the new configuration as the random position.

[0038] Optionally, the determination module is also specifically used to determine multiple initial positions between the starting point and the end point in the scene model by using a two-way search method based on the scene model of the current scene and the machine model corresponding to the robot, combined with multiple groups of configurations of the robot.

[0039] Optionally, the removal module is specifically used to generate a direction vector based on the i-th initial position and the i+1-th initial position, wherein the direction vector points from the i-th initial position to the i+1-th initial position; control the collision model corresponding to the i-th initial position, and perform collision detection along the direction vector in the scene model; if the collision model corresponding to the i-th initial position collides in the scene model, determine that the i+1-th initial position is a necessary position, and determine that the i+2-th initial position is a necessary position or a redundant position based on the i+1-th initial position; if the collision model corresponding to the i-th initial position does not collide after reaching the i+1-th initial position, determine that the i+1-th initial position is a redundant position, delete the i+1-th initial position, and determine that the i+2-th initial position is a necessary position or a redundant position based on the i-th initial position, until the necessary position is determined.

[0040] Optionally, the connection module is specifically used to connect the multiple necessary locations by adopting cubic spline curve planning or B-spline planning to obtain a path between the starting point and the end point.

[0041] Optionally, the device further comprises:

[0042] An acquisition module, used to acquire a scene image of the current scene;

[0043] A first building module, used for voxelizing the current scene according to the scene image to build the scene model;

[0044] The second building module is used to build a machine model corresponding to the robot according to the model bodies corresponding to various parts of the robot.

[0045] In a third aspect, an embodiment of the present application provides a robot comprising: a memory and a processor, wherein the memory is used to store a computer program; and the processor is used to execute the path generation method as described in the first aspect or any embodiment of the first aspect when calling the computer program.

[0046] In a fourth aspect, an embodiment of the present application provides a computer-readable storage medium having a computer program stored thereon. When the computer program is executed by a processor, the path generation method as described in the first aspect or any implementation of the first aspect is implemented.

[0047] The path generation method provided in the embodiment of the present application is based on the scene model of the current scene and the machine model corresponding to the robot, combined with the multiple groups of configurations of the robot, to determine multiple initial sites between the starting point and the end point in the scene model, and remove the redundant sites in the multiple initial sites to obtain the necessary sites in the initial sites, and finally connect the multiple necessary sites to obtain the path between the starting point and the end point. The robot autonomously determines multiple initial sites based on the starting point and the end point, optimizes the initial sites, and finally connects the optimized multiple necessary sites to obtain the path of the robot moving from the starting point to the end point. There is no need to set a path for each robot for each scene, which can solve the problem of a large workload caused by setting a path for the robot, and can improve the efficiency and flexibility of the robot in generating paths. BRIEF DESCRIPTION OF THE DRAWINGS

[0048] Figure 1 A schematic diagram of a path planning scenario provided in an embodiment of the present application;

[0049] Figure 2 A schematic flow chart of a path generation method provided in an embodiment of the present application;

[0050] Figure 3 A schematic flow chart of another path generation method provided in an embodiment of the present application;

[0051] Figure 4 A schematic diagram of the structure of a path generation device provided in an embodiment of the present application;

[0052] Figure 5A schematic diagram of the structure of a robot provided in an embodiment of the present application. DETAILED DESCRIPTION

[0053] The technical solution of the present application is described in detail with specific embodiments below. The following specific embodiments can be combined with each other, and the same or similar concepts or processes may not be described in detail in some embodiments.

[0054] First, a path planning scenario involved in a path generation method provided in an embodiment of the present application is introduced. Figure 1 , Figure 1 A schematic diagram of a path planning scenario provided in an embodiment of the present application. Figure 1 As shown, the path planning scene may include: a robot 110 and an obstacle 120 .

[0055] The robot 110 involved in the embodiment of the present application is a humanoid robot (hereinafter referred to as a robot), that is, a robot including multiple parts such as a head, a torso, arms, legs and soles (such as a large humanoid bipedal robot). Moreover, the obstacle 120 may include items such as tables, chairs, benches, refrigerators and sofas, and the embodiment of the present application does not limit the obstacle 120.

[0056] It should be noted that the robot provided in the embodiments of the present application can be used in a variety of scenarios. For the sake of simplicity, the embodiments of the present application are only described using indoor environments as examples, and the embodiments of the present application do not limit the application scenarios of the robots.

[0057] In an indoor environment, the robot can first obtain an image of the current environment through the robot's acquisition device, and then voxelize the current scene based on the acquired image to obtain a scene model corresponding to the current scene. In addition, the robot can also establish a machine model corresponding to the robot based on pre-set parameters.

[0058] Afterwards, the robot can combine the starting point and the end point in the scene model to determine the various initial positions of the robot moving from the starting point to the end point. In addition, the robot can also identify multiple initial positions, determine the redundant positions and necessary positions among the multiple initial positions, and thus remove the redundant positions and retain the necessary positions.

[0059] Finally, the robot can connect all necessary locations to obtain the path for the robot to move to the end point and complete trajectory planning.

[0060] In the process of determining the initial position, the robot can determine multiple initial positions according to the robot's posture, configuration and configuration space to ensure that the robot will not collide with obstacles in the current scene when driving to the end point.

[0061] It should be noted that in the embodiments of the present application, the robot's posture is used to represent the posture of the robot's waist and arms, and the robot's configuration is used to represent the robot's state. For example, the configuration can represent the robot's position in the scene, as well as the state of each part of the robot. The robot's configuration space can include various configurations of the robot, which is a collection of various configurations of the robot.

[0062] The following introduces a method for robot path generation to achieve the purpose of the robot autonomously generating a path in an indoor scene.

[0063] Figure 2 This is a schematic flow chart of a path generation method provided in an embodiment of the present application. As an example but not a limitation, this method can be applied to the robot in the above path planning scenario. Figure 2 , the method comprising:

[0064] Step 201: voxelize the current scene according to the acquired scene image and establish a scene model.

[0065] When planning a path, the robot needs to first model the current scene and obtain the scene model corresponding to the current scene, so that in subsequent steps, the robot can perform collision detection based on the scene model to generate a path.

[0066] Specifically, the robot can collect images of the current scene through the equipped image acquisition device to obtain the scene image of the current scene. Afterwards, the current scene is voxelized according to each collected scene image, and the envelope corresponding to each obstacle in the current scene is generated, thereby establishing a scene model corresponding to the current scene.

[0067] Among them, the image acquisition device equipped by the robot can be a binocular camera or an RGGD camera, and the embodiment of the present application does not limit the image acquisition device.

[0068] Step 202: Establish a machine model corresponding to the robot according to the model bodies corresponding to the various parts of the robot.

[0069] Similar to step 201, before generating a path, the robot needs to be modeled to obtain a machine model, so that collision detection can be performed based on the machine model and the scene model to determine whether the robot will collide during movement.

[0070] Specifically, the robot can construct a robot envelope according to the model bodies corresponding to each part, thereby establishing a machine model. For example, the robot's head and torso can adopt a rectangular parallelepiped model body, the upper arm and lower arm of the arm can adopt a capsule model body, and the thigh and calf of the leg can also adopt a capsule model body, thereby obtaining the robot's machine model.

[0071] It should be noted that the embodiment of the present application is described by taking the example of first executing step 201 and then executing step 202. In actual applications, the robot may also execute step 202 first and then step 201, or may execute step 201 and step 202 at the same time. The present application does not limit the order of executing step 201 and step 202.

[0072] Step 203: Based on the scene model of the current scene and the machine model corresponding to the robot, and in combination with the multiple configurations of the robot, multiple initial positions between the starting point and the end point in the scene model are determined.

[0073] After establishing the scene model and machine model, the robot can generate a path to the end point based on the starting point and end point in the scene, and the path generated by the robot is generated by connecting multiple locations (Waypoints).

[0074] Therefore, in the process of generating a path, the robot can first determine multiple initial locations based on the starting point and the end point, combined with the scene model, the machine model and the configuration of the robot, so that in subsequent steps, the robot can generate a path based on the multiple initial locations.

[0075] Specifically, the robot can detect the triggered operation. If the triggered operation instructs the robot to move towards the end point, the robot can determine the end point based on the operation, and then determine the current position of the robot as the starting point, and combine the robot's configuration space to generate multiple initial positions between the starting point and the end point.

[0076] Optional, see Figure 3 , step 203 may include the following steps 203a to 203d:

[0077] Step 203a: determine a random location according to the configuration space of the robot.

[0078] Among them, the random sites correspond to random configurations, which are randomly selected from the configuration space.

[0079] Specifically, after determining the starting point and the end point, the robot can randomly select a set of random configurations from the configuration space, and generate a new configuration that is consistent with or similar to the random configuration with a certain step size based on the configuration corresponding to the starting point, that is, the current configuration of the robot, so that the position corresponding to the new configuration can be determined as the random site.

[0080] Similarly, the robot can determine multiple initial positions in the process of generating a path. If the last initial position determined by the robot is the first initial position, the robot can continue to select random configurations and determine a new configuration based on the first initial position, using a process similar to the above, thereby obtaining a random position corresponding to the new configuration again, which is the second initial position.

[0081] For example, the robot's configuration at the starting point is ξ0, and the configuration at the end point is ξ g , in the process of generating the path, the configuration corresponding to the first initial site is ξ near , the random configuration selected based on the starting point or the first initial site is ξ rand , the new configuration determined based on the random configuration is ξ new , with a step size of ε.

[0082] Correspondingly, the robot can first randomly select a set of random configurations ξ from the configuration space rand , and based on the configuration ξ0 corresponding to the starting point, generate the random configuration ξ with a step size of ε rand Same or similar new configuration ξ new . Then, if the new configuration ξ new If the collision detection and stability detection in step 203b are passed, the robot can new The corresponding site is used as the first initial site.

[0083] Furthermore, the robot can determine the second initial position based on the first initial position. Specifically, the robot can randomly select a set of random configurations ξ from the configuration space. rand , and based on the configuration ξ corresponding to the first initial site near , with a step size of ε and a random configuration ξ rand Same or similar new configuration ξ new . Then, if the new configuration ξ new If the collision detection and stability detection of step 203b are also passed, the robot can new The corresponding site is used as the second initial site.

[0084] It should be noted that the above process is based on the robot determining the random position from the starting point. In actual applications, the robot can continue to generate random positions after determining multiple initial positions. If the robot has generated multiple random positions, the robot can select the latest generated initial position and combine the step length to generate a new configuration that is consistent with or close to the random configuration.

[0085] Of course, the robot can also use other methods to generate new configurations and determine random sites. The embodiments of the present application do not limit the methods for the robot to generate new configurations and determine random sites.

[0086] Step 203b: perform collision detection and stability detection on the posture corresponding to the random position according to the scene model and the machine model.

[0087] After determining a random location, the robot can obtain the posture corresponding to the random location according to the configuration corresponding to the random location, and then perform collision detection based on the posture combined with the scene model and the machine model to determine whether the robot will collide at the random location.

[0088] Moreover, the robot can also determine whether the robot can stand stably in this position based on the projection of the torso on the plane where the robot is currently standing, that is, determine the stability of the robot at this random position.

[0089] If it is determined that the robot will collide at the random position, and / or the robot is unstable at the random position, the robot may execute step 203c and continue to generate other random positions until a stable random point is obtained that will not collide.

[0090] If it is determined that the robot will not collide at the random position and the robot is in a stable state at the random position, the robot can execute step 203d, retain the random position as the initial position, and continue to generate random positions based on the initial position.

[0091] For example, the robot can use the robot arm base coordinate system and the relative position of the torso The relative position of the robot's waist relative to its feet Calculate and determine the stability of the robot. The relative position of the robot's waist relative to the soles of the feet is calculated as follows:

[0092]

[0093] Moreover, the robot can adapt to the new configuration new Solve and get the robot's double-arm end position σ new =f(ξ new ), and then the posture of each link of the robot is obtained through the forward kinematics of the manipulator, so as to obtain the posture of the robot. Then, according to the obtained posture, combined with the scene model and the machine model, it can be determined whether the robot will collide with the obstacles in the current scene to complete the external collision detection.

[0094] The forward kinematics of the robot can be established as follows: σ = f(ξ), and the end of the robot arm is denoted as tool. In this way, the relative position of the end of the robot arm to the torso can be obtained based on the forward kinematics of the arm, where the left and right arms can be denoted as and Correspondingly, the end position of the robot's arms is:

[0095]

[0096] Similarly, the robot can also determine the connecting rods that the robot needs to perform collision detection on based on the established self-collision index matrix (for example, the forearm of the robot arm only needs to detect collision with the head, torso, and thigh, while the upper arm of the robot arm does not need to perform collision detection with the torso), thereby realizing self-collision detection of the robot.

[0097] The robot's dual arms plus waist kinematics is established as follows: the waist degree of freedom (ζ, 6 dimensions) and the dual arms degree of freedom (q r and q l , both are 7-dimensional) form a 6+2*7-dimensional generalized coordinate system, that is, ξ=[ζ q r q l ], the set of all values ​​of ξ is the configuration space of the robot.

[0098] Step 203c: If the posture corresponding to the random site does not pass the collision test and / or the stability test, continue to generate random sites until the posture corresponding to the continuously generated random sites passes the collision test and the stability test.

[0099] After determining that the random site generated by the robot fails the collision detection and stability detection, the robot can generate a random configuration again, and detect whether the random site corresponding to the random configuration can pass the collision detection and stability detection, until the generated random site can pass the collision detection and stability detection.

[0100] The process of generating random sites and performing detection by the robot may refer to step 203a and step 203b, which will not be described in detail here.

[0101] Step 203d: If the posture corresponding to the random site passes the collision detection and stability detection, the random site is used as the first initial site, and random sites are continuously generated based on the first initial site to obtain multiple initial sites between the starting point and the end point.

[0102] The first initial site may be any one of the multiple initial sites, and the embodiment of the present application does not limit the first initial site.

[0103] After determining that the random position generated by the robot has passed the collision detection and stability detection, the robot can reserve the random position as the first initial position. Afterwards, the robot can continue to generate random positions based on the first initial position, and repeat the process of steps 203a to 203b to obtain multiple initial positions, thereby generating multiple initial positions between the starting point and the end point.

[0104] It should be noted that in order to improve the efficiency of the robot in generating the initial position, the robot can adopt a two-way search method, based on the scene model of the current scene and the machine model corresponding to the robot, combined with multiple sets of configurations of the robot, to determine multiple initial positions between the starting point and the end point in the scene model.

[0105] Specifically, the robot may first generate a random site based on the starting point and perform a test on the random site. If the random site does not pass the test, the robot may generate a random site based on the end point and perform a test. If the random site still does not pass the test, the robot may generate a random site based on the starting point again. If the random site generated this time passes the test, the robot may retain the random site as the first initial site and generate a random site again based on the first initial site. The above process is repeated until the minimum distance between each initial site extending from the starting point and each initial site extending from the end point is less than a preset distance threshold, thereby completing the generation of each initial site.

[0106] Step 204: remove redundant sites among the multiple initial sites to obtain necessary sites among the initial sites.

[0107] After generating each initial position, the robot can further optimize each initial position to reduce redundant paths between the starting point and the end point, thereby improving the efficiency of the robot's movement to the end point and reducing the distance the robot moves.

[0108] Optionally, the robot may generate a direction vector according to the ith initial position and the (i+1)th initial position, control the collision model corresponding to the ith initial position, and perform collision detection along the direction vector in the scene model.

[0109] Wherein, i is an integer greater than or equal to 0 and less than N, and N is the number of each generated initial position. Moreover, the generated direction vector may point from the i-th initial position to the i+1-th initial position.

[0110] Specifically, the robot can establish a direction vector according to the positions corresponding to the i-th initial position and the i+1-th initial position (such as coordinates in the scene model). Afterwards, the robot can generate a collision model based on the i-th initial position, simulate the collision model moving along the direction vector, and detect whether the collision model will collide with an obstacle in the scene model.

[0111] The collision model is a simplified version of the machine model, so as to quickly optimize multiple initial positions. For example, the collision model can be a cylinder, a cuboid, or other models similar to a robot, and the embodiment of the present application does not limit the collision model.

[0112] If the collision model corresponding to the i-th initial position collides in the scene model, that is, the collision model simulated by the robot collides in the process of moving from the i-th initial position to the i+1-th initial position, then the robot can determine that the i+1-th initial position is a necessary position, not a redundant position, and thus retain the i+1-th initial position.

[0113] Furthermore, the robot no longer performs detection based on the i-th initial site, but determines the i+2-th initial site as a necessary site or a redundant site based on the i+1-th initial site. The process of determining the i+2-th initial site as a necessary site or a redundant site is similar to the process of determining the i+1-th initial site as a necessary site or a redundant site, and will not be repeated here.

[0114] If the collision model corresponding to the i-th initial position does not collide after reaching the i+1-th initial position, that is, the collision model simulated by the robot does not collide in the process of moving from the i-th initial position to the i+1-th initial position, then the robot can determine that the i+1-th initial position is a redundant position and delete the i+1-th initial position.

[0115] Furthermore, the robot may continue to determine the i+2 th initial site as a necessary site or a redundant site based on the i th initial site until a necessary site is determined.

[0116] Step 205: Connect multiple necessary sites to obtain a path between the starting point and the end point.

[0117] After optimizing the multiple initial positions and obtaining the multiple necessary positions, the robot can connect the multiple necessary positions to draw a path between the starting point and the end point, so that the robot can move to the end point according to the drawn path.

[0118] The robot can use a variety of different methods to draw a path based on each necessary point, and the present application embodiment does not limit the method of drawing the path. For example, the robot can use cubic spline curve planning or B-spline planning to connect multiple necessary points to obtain a path between the starting point and the end point.

[0119] In summary, the path generation method provided in the embodiment of the present application is based on the scene model of the current scene and the machine model corresponding to the robot, combined with the multiple groups of configurations of the robot, to determine multiple initial positions between the starting point and the end point in the scene model, and to remove redundant positions in the multiple initial positions, to obtain the necessary positions in the initial positions, and finally to connect the multiple necessary positions to obtain the path between the starting point and the end point. The robot autonomously determines multiple initial positions according to the starting point and the end point, optimizes the initial positions, and finally connects the optimized multiple necessary positions to obtain the path of the robot moving from the starting point to the end point. There is no need to set a path for each robot for each scene, which can solve the problem of a large workload caused by setting a path for the robot, and can improve the efficiency and flexibility of the robot in generating paths.

[0120] Based on the same inventive concept, as an implementation of the above method, an embodiment of the present application provides a path generation device, and the device embodiment corresponds to the above method embodiment. For ease of reading, the present device embodiment will no longer repeat the details of the above method embodiment one by one, but it should be clear that the device in this embodiment can correspond to all the contents in the above method embodiment.

[0121] Figure 4 A schematic diagram of a path generation device provided in an embodiment of the present application is shown in FIG. Figure 4 As shown, the device provided in this embodiment includes:

[0122] A determination module 401 is used to determine a plurality of initial positions between a start point and an end point in the scene model based on a scene model of the current scene and a machine model corresponding to the robot in combination with a plurality of configuration groups of the robot;

[0123] A removal module 402 is used to remove redundant sites in the initial sites to obtain necessary sites in the initial sites;

[0124] The connection module 403 is used to connect the multiple necessary sites to obtain a path between the starting point and the end point.

[0125] Optionally, the determination module 401 is specifically used to generate a random site according to the configuration space of the robot, the random site corresponding to the random configuration, and the random configuration is randomly selected from the configuration space; according to the scene model and the machine model, collision detection and stability detection are performed on the posture corresponding to the random site; if the posture corresponding to the random site fails the collision detection and / or the stability detection, random sites are continued to be generated until the posture corresponding to the random site that continues to be generated passes the collision detection and the stability detection; if the posture corresponding to the random site passes the collision detection and the stability detection, the random site is used as the first initial site, and random sites are continued to be generated according to the first initial site to obtain multiple initial sites between the starting point and the end point.

[0126] Optionally, the determination module 401 is also specifically used to randomly select a group of random configurations from the configuration space of the robot; determine a new configuration based on the determined last initial position and a preset step size, the new configuration being the same or similar to the random configuration; and use the position corresponding to the new configuration as a random position.

[0127] Optionally, the determination module 401 is also specifically used to determine multiple initial positions between the starting point and the end point in the scene model by using a two-way search method based on the scene model of the current scene and the machine model corresponding to the robot, combined with multiple groups of configurations of the robot.

[0128] Optionally, the removal module 402 is specifically used to generate a direction vector based on the i-th initial position and the i+1-th initial position, the direction vector pointing from the i-th initial position to the i+1-th initial position; control the collision model corresponding to the i-th initial position, and perform collision detection along the direction vector in the scene model; if the collision model corresponding to the i-th initial position collides in the scene model, determine the i+1-th initial position as a necessary position, and determine the i+2-th initial position as a necessary position or a redundant position based on the i+1-th initial position; if the collision model corresponding to the i-th initial position does not collide after reaching the i+1-th initial position, determine the i+1-th initial position as a redundant position, delete the i+1-th initial position, and determine the i+2-th initial position as a necessary position or a redundant position based on the i-th initial position, until the necessary position is determined.

[0129] Optionally, the connection module 403 is specifically configured to connect the plurality of necessary locations by adopting a cubic spline curve programming or a B-spline programming method to obtain a path between the starting point and the end point.

[0130] Optionally, the device further comprises:

[0131] An acquisition module 404 is used to acquire a scene image of the current scene;

[0132] A first building module 405 is used to voxelize the current scene according to the scene image to build the scene model;

[0133] The second establishing module 406 is used to establish a machine model corresponding to the robot according to the model bodies corresponding to various parts of the robot.

[0134] In summary, the path generation device provided in the embodiment of the present application is based on the scene model of the current scene and the machine model corresponding to the robot, combined with the multiple groups of configurations of the robot, to determine multiple initial positions between the starting point and the end point in the scene model, and remove the redundant positions in the multiple initial positions to obtain the necessary positions in the initial positions, and finally connect the multiple necessary positions to obtain the path between the starting point and the end point. The robot autonomously determines multiple initial positions according to the starting point and the end point, optimizes the initial positions, and finally connects the optimized multiple necessary positions to obtain the path of the robot moving from the starting point to the end point. There is no need to set a path for each robot for each scene, which can solve the problem of large workload caused by setting a path for the robot, and can improve the efficiency and flexibility of the robot in generating paths.

[0135] The path generation device provided in this embodiment can execute the above method embodiment, and its implementation principle and technical effect are similar, which will not be repeated here.

[0136] The technicians in the relevant field can clearly understand that for the convenience and simplicity of description, only the division of the above-mentioned functional units and modules is used as an example for illustration. In practical applications, the above-mentioned function allocation can be completed by different functional units and modules as needed, that is, the internal structure of the device can be divided into different functional units or modules to complete all or part of the functions described above. The functional units and modules in the embodiment can be integrated in a processing unit, or each unit can exist physically separately, or two or more units can be integrated in one unit. The above-mentioned integrated unit can be implemented in the form of hardware or in the form of software functional units. In addition, the specific names of the functional units and modules are only for the convenience of distinguishing each other, and are not used to limit the scope of protection of this application. The specific working process of the units and modules in the above-mentioned system can refer to the corresponding process in the aforementioned method embodiment, which will not be repeated here.

[0137] Based on the same inventive concept, an embodiment of the present application also provides a robot. Figure 5 A schematic diagram of the structure of a robot provided in an embodiment of the present application is shown in FIG. Figure 5As shown, the robot provided in this embodiment includes: a memory 51 and a processor 50, the memory 51 is used to store computer programs; the processor 50 is used to execute the method described in the above method embodiment when calling the computer program 52.

[0138] The terminal device provided in this embodiment can execute the above method embodiment, and its implementation principle and technical effect are similar, which will not be repeated here.

[0139] The embodiment of the present application also provides a computer-readable storage medium on which a computer program is stored. When the computer program is executed by a processor, the method described in the above method embodiment is implemented.

[0140] If the above-mentioned integrated unit is implemented in the form of a software functional unit and sold or used as an independent product, it can be stored in a computer-readable storage medium. Based on this understanding, the present application implements all or part of the processes in the above-mentioned embodiment method, which can be completed by instructing the relevant hardware through a computer program. The computer program can be stored in a computer-readable storage medium, and the computer program can implement the steps of the above-mentioned various method embodiments when executed by the processor. Among them, the computer program includes computer program code, and the computer program code can be in source code form, object code form, executable file or some intermediate form. The computer-readable storage medium may at least include: any entity or device that can carry the computer program code to the camera / terminal device, recording medium, computer memory, read-only memory (ROM), random access memory (RAM), electric carrier signal, telecommunication signal and software distribution medium. For example, USB flash drive, mobile hard disk, disk or optical disk. In some jurisdictions, according to legislation and patent practice, computer-readable media cannot be electric carrier signals and telecommunication signals.

[0141] In the above embodiments, the description of each embodiment has its own emphasis. For parts that are not described or recorded in detail in a certain embodiment, reference can be made to the relevant descriptions of other embodiments.

[0142] Those of ordinary skill in the art will appreciate that the units and algorithm steps of each example described in conjunction with the embodiments disclosed herein can be implemented in electronic hardware, or a combination of computer software and electronic hardware. Whether these functions are performed in hardware or software depends on the specific application and design constraints of the technical solution. Professional and technical personnel can use different methods to implement the described functions for each specific application, but such implementation should not be considered to be beyond the scope of this application.

[0143] In the embodiments provided in the present application, it should be understood that the disclosed devices / equipment and methods can be implemented in other ways. For example, the device / equipment embodiments described above are merely schematic, for example, the division of the modules or units is only a logical function division, and there may be other division methods in actual implementation, such as multiple units or components can be combined or integrated into another system, or some features can be ignored or not executed. Another point is that the mutual coupling or direct coupling or communication connection shown or discussed can be through some interfaces, indirect coupling or communication connection of devices or units, which can be electrical, mechanical or other forms.

[0144] It should be understood that when used in the present specification and the appended claims, the term "comprising" indicates the presence of described features, wholes, steps, operations, elements and / or components, but does not exclude the presence or addition of one or more other features, wholes, steps, operations, elements, components and / or combinations thereof.

[0145] It should also be understood that the term “and / or” used in the specification and appended claims refers to any and all possible combinations of one or more of the associated listed items, and includes these combinations.

[0146] As used in the specification and appended claims of this application, the term "if" can be interpreted as "when" or "uponce" or "in response to determining" or "in response to detecting", depending on the context. Similarly, the phrase "if it is determined" or "if [described condition or event] is detected" can be interpreted as meaning "uponce it is determined" or "in response to determining" or "uponce [described condition or event] is detected" or "in response to detecting [described condition or event]", depending on the context.

[0147] In addition, in the description of the present application specification and the appended claims, the terms "first", "second", "third", etc. are only used to distinguish the descriptions and cannot be understood as indicating or implying relative importance.

[0148] References to "one embodiment" or "some embodiments" etc. described in the specification of this application mean that one or more embodiments of the present application include specific features, structures or characteristics described in conjunction with the embodiment. Therefore, the statements "in one embodiment", "in some embodiments", "in some other embodiments", "in some other embodiments", etc. that appear in different places in this specification do not necessarily refer to the same embodiment, but mean "one or more but not all embodiments", unless otherwise specifically emphasized in other ways. The terms "including", "comprising", "having" and their variations all mean "including but not limited to", unless otherwise specifically emphasized in other ways.

[0149] Finally, it should be noted that the above embodiments are only used to illustrate the technical solutions of the present application, rather than to limit it. Although the present application has been described in detail with reference to the aforementioned embodiments, those skilled in the art should understand that they can still modify the technical solutions described in the aforementioned embodiments, or replace some or all of the technical features therein with equivalents. However, these modifications or replacements do not cause the essence of the corresponding technical solutions to deviate from the scope of the technical solutions of the embodiments of the present application.

Claims

1. A path generation method, characterized in that: The method comprises: Based on a scene model of the current scene and a machine model corresponding to the robot, and in combination with multiple groups of configurations of the robot, a plurality of initial positions between a starting point and an end point in the scene model are determined; the robot is a humanoid robot; Removing redundant sites from a plurality of the initial sites to obtain necessary sites from the initial sites; Connecting a plurality of the necessary sites to obtain a path between the starting point and the end point; The scene model based on the current scene and the machine model corresponding to the robot, combined with the multiple groups of configurations of the robot, determines multiple initial positions between the starting point and the end point in the scene model, including: generating a random site according to a configuration space of the robot, the random site corresponding to a random configuration, the random configuration being randomly selected from the configuration space; According to the scene model and the machine model, collision detection and stability detection are performed on the posture corresponding to the random position; wherein the stability detection specifically includes: determining the stability of the robot by calculating the relative posture between the robot's dual-arm base coordinate system and the trunk, and the relative posture between the robot's waist and the soles of the feet; If the posture corresponding to the random site does not pass the collision test and / or the stability test, continue to generate random sites until the posture corresponding to the continuously generated random sites passes the collision test and the stability test; If the posture corresponding to the random site passes the collision detection and the stability detection, the random site is used as the first initial site, and random sites are continuously generated based on the first initial site to obtain multiple initial sites between the starting point and the end point.

2. The method according to claim 1, characterized in that Generating a random site according to the configuration space of the robot includes: Randomly selecting a set of random configurations from the configuration space of the robot; Determine a new configuration based on the determined last initial position and in combination with a preset step length, wherein the new configuration is the same as or similar to the random configuration; The site corresponding to the new configuration is used as the random site.

3. The method according to claim 1, characterized in that The scene model based on the current scene and the machine model corresponding to the robot, combined with the multiple groups of configurations of the robot, determines multiple initial positions between the starting point and the end point in the scene model, including: Based on the scene model of the current scene and the machine model corresponding to the robot, combined with the multiple groups of configurations of the robot, a bidirectional search method is adopted to determine multiple initial positions between the starting point and the end point in the scene model.

4. The method according to any one of claims 1 to 3, characterized in that: The connecting of the plurality of necessary sites to obtain a path between the starting point and the end point includes: A plurality of necessary locations are connected by cubic spline curve programming or B-spline programming to obtain a path between the starting point and the end point.

5. The method according to any one of claims 1 to 3, characterized in that: Before determining a plurality of initial positions between a start point and an end point in the scene model based on the scene model of the current scene and a machine model corresponding to the robot in combination with the plurality of configurations of the robot, the method further comprises: Get the scene image of the current scene; voxelize the current scene according to the scene image to establish the scene model; According to the model bodies corresponding to the various parts of the robot, a machine model corresponding to the robot is established.

6. A path generation device, characterized in that: The device comprises: A determination module, configured to determine a plurality of initial positions between a start point and an end point in the scene model based on a scene model of a current scene and a machine model corresponding to the robot, in combination with a plurality of configuration groups of the robot; the robot being a humanoid robot; A removal module, used for removing redundant sites from the plurality of initial sites to obtain necessary sites from the initial sites; A connection module, used for connecting the plurality of necessary sites to obtain a path between the starting point and the end point; The scene model based on the current scene and the machine model corresponding to the robot, combined with the multiple groups of configurations of the robot, determines multiple initial positions between the starting point and the end point in the scene model, including: generating a random site according to a configuration space of the robot, the random site corresponding to a random configuration, the random configuration being randomly selected from the configuration space; According to the scene model and the machine model, collision detection and stability detection are performed on the posture corresponding to the random position; wherein the stability detection specifically includes: determining the stability of the robot by calculating the relative posture between the robot's dual-arm base coordinate system and the trunk, and the relative posture between the robot's waist and the soles of the feet; If the posture corresponding to the random site does not pass the collision test and / or the stability test, continue to generate random sites until the posture corresponding to the continuously generated random sites passes the collision test and the stability test; If the posture corresponding to the random site passes the collision detection and the stability detection, the random site is used as the first initial site, and random sites are continuously generated based on the first initial site to obtain multiple initial sites between the starting point and the end point.

7. A robot, characterized in that: include: A memory and a processor, wherein the memory is used to store a computer program; and the processor is used to execute the method according to any one of claims 1 to 5 when calling the computer program.

8. A computer-readable storage medium having a computer program stored thereon, characterized in that: When the computer program is executed by a processor, the path generation method according to any one of claims 1 to 5 is implemented.

Citation Information

Patent Citations

  • Quadruped robot motion planning method for facing complex terrain

    CN103085070A

  • Improved method for planning paths of driverless vehicles by aid of rapidly random-exploring trees

    CN108196536A

  • Mechanical arm obstacle avoidance method and device based on three-dimensional task space constraint

    CN112223291A