Obstacle avoidance method, system and liquid transfer robot
By optimizing control parameters and path planning algorithms, building and expanding the cuboid envelope, and performing collision detection at the path segment, the problem of difficult collision avoidance in path planning by pipetting robots is solved, and efficient path planning and obstacle avoidance effects are achieved when the equipment computing power is limited.
Patent Information
- Application Number
- CN202411908720.8
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2024-12-24
- Publication Date
- 2025-04-04
AI Technical Summary
It is difficult for existing pipetting robots to effectively avoid collisions with other objects in the workspace during path planning, especially when the equipment has limited computing power, resulting in experimental failure and loss.
By designing control parameters, optimizing path planning algorithms, building a cuboid envelope and expanding its size, dividing path segments and performing collision detection at each segment, ensuring that the robot can effectively avoid obstacles during path planning.
It realizes the generation of relatively optimal paths under the computing power limit of the equipment, ensuring that the pipetting robot avoids collisions with other objects in the workspace while requiring real-time, reducing the risk of experiment failure.
Smart Images

Figure CN119759105A_ABST
Abstract
Description
Technical Field
[0001] The present application relates to the field of mechanical automation, and more specifically, to an obstacle avoidance method, system and liquid transfer robot. Background Art
[0002] In automated laboratories, pipetting robots are widely used for liquid handling operations. In order to conduct experiments, pipetting robots are usually required to automatically perform operations such as sample transfer, reagent distribution, and liquid mixing on the operating table in the workstation. Before the experiment, the required samples and consumables are automatically placed in conjunction with other automated equipment; during the experiment, the robot will automatically reach the designated location to perform corresponding operations on the liquid.
[0003] When the robot reaches the corresponding position, it may collide with containers containing other samples or other equipment installed in the workstation, resulting in experimental failure and loss. Due to the limited computing power of current laboratory equipment, it is not possible to run highly complex path planning and collision detection algorithms. Summary of the invention
[0004] In order to solve the above technical problems, the present application provides an obstacle avoidance method, system and pipetting robot. By designing control parameters, a relatively optimal path under the premise of equipment computing power limitation is obtained. The generated path meets the real-time requirements while ensuring that the robot itself does not collide with other objects in the working space.
[0005] Specifically, the technical solution of this application is as follows:
[0006] In a first aspect, the present application discloses an obstacle avoidance method, comprising: performing collision detection on a preselected path during path planning; specifically comprising:
[0007] Set the control parameters according to the computing power of the equipment supporting the pipetting robot;
[0008] Constructing a cuboid envelope for all objects in the working area; based on the cuboid envelope, extending its length, width and height outward to a certain thickness; the thickness is proportional to the control parameter;
[0009] Obtain a path between any two adjacent path nodes, and divide the path into a number of path segments based on a preset step length, wherein the step length is proportional to the control parameter D;
[0010] At the beginning and end of each path segment, collision detection is performed on the expanded objects; if there is no collision in both detections, the path segment is considered to be obstacle-free; otherwise, the path planning is re-performed.
[0011] In some implementations, before performing collision detection on the preselected path, the following steps are also included:
[0012] Collecting the spatial position and size information of all objects in the working area of the pipetting robot to construct a spatial model; obtaining the position of each joint of the pipetting robot in the spatial model in real time and recording it as the current position;
[0013] Determine whether there is a straight feasible path between the current position and the target position at different height layers; if so, control the pipetting robot to move to the specified height layer and move along the straight feasible path; otherwise, control the pipetting robot to move to the highest layer in the space model and perform path planning based on a heuristic path planning algorithm.
[0014] In some embodiments, the step of determining whether there is a straight feasible path between the current position and the target position at different altitude layers comprises the following steps:
[0015] Finding any height within the working area based on the binary method; projecting a connecting line between the current position and the target position onto a plane at any height;
[0016] The projection of the connecting line at any height is used as a pre-selected path for collision detection; if there is no collision, the current altitude layer is used as the designated altitude layer, and the corresponding pre-selected path is used as a straight line feasible path;
[0017] If there is a collision on the path, the search continues until all heights are searched, and it is considered that there is no straight line feasible path between the current position and the target position.
[0018] In some embodiments, the collision detection of the expanded object is performed at the beginning and end of each path segment; including: judging whether the moving object and the non-moving object on the path intersect at the beginning and end positions of the path segment through a three-dimensional separation axis detection method.
[0019] In some implementations, the process of performing collision detection on the preselected path during the path planning process further includes the following steps:
[0020] If the two objects intersect, it is determined whether the moving object meets the intrusion condition of the non-moving object; if the intrusion condition is not met, it is considered that the two objects collide; if the intrusion condition is met, it is considered that the two objects do not collide.
[0021] In a second aspect, the present application further discloses an obstacle avoidance system, comprising: a collision detection module, for performing collision detection on a preselected path during path planning;
[0022] Specifically, it includes: setting a submodule for setting control parameters according to the computing power of the equipment supporting the pipetting robot;
[0023] The extended submodule is used to construct a cuboid envelope for all objects in the working area;
[0024] The expansion submodule is further used to expand the length, width and height of the rectangular parallelepiped outward to a certain thickness based on the rectangular parallelepiped envelope; the thickness is proportional to the control parameter;
[0025] A division submodule, used for obtaining a path between any two adjacent path nodes, and dividing the path into a plurality of path segments based on a preset step length, wherein the step length is proportional to the control parameter;
[0026] The detection submodule is used to perform collision detection on the expanded objects at the beginning and end of each path segment; if there is no collision in both detections, it is considered that there is no obstacle in the path segment; otherwise, the path planning is re-performed.
[0027] In some embodiments, the obstacle avoidance system further includes:
[0028] A model building module is used to collect the spatial position and size information of all objects in the working area of the pipetting robot and build a spatial model;
[0029] A position acquisition module, used to acquire the position of each joint of the pipetting robot in the space model in real time and record it as the current position;
[0030] A path planning module is used to determine whether there is a straight feasible path between the current position and the target position at different height levels; a movement control module is used to control the liquid transfer robot to move to a specified height level and move along the straight feasible path if there is one;
[0031] The mobile control module is further used to control the pipetting robot to move to the highest layer in the space model if it does not exist; the path planning module is further used to perform path planning based on a heuristic path planning algorithm.
[0032] In some implementations, the path planning module specifically includes:
[0033] A search submodule, used for searching any height within the working area based on a binary search method;
[0034] A projection submodule, used for projecting a connection line between the current position and the target position onto a plane at any height;
[0035] The collision detection module is further used to perform collision detection using the projection of the connecting line at any height as a preselected path; if there is no collision, the current altitude layer is used as the designated altitude layer, and the corresponding preselected path is used as a straight line feasible path;
[0036] The search submodule is further configured to continue searching if there is a collision on the path, until all heights are searched and it is considered that there is no straight feasible path between the current position and the target position.
[0037] In some embodiments, the detection submodule is specifically used to: determine whether the moving object and the non-moving object on the path intersect at the beginning and end positions of the path segment by a three-dimensional separation axis detection method.
[0038] The detection submodule is also used to determine whether the moving object meets the intrusion condition of the non-moving object if the two objects intersect; if the intrusion condition is not met, it is considered that the two objects have collided, and if the intrusion condition is met, it is considered that the two objects have not collided.
[0039] In a third aspect, the present application also discloses a pipetting robot, comprising an obstacle avoidance system according to any one of the above-mentioned embodiments.
[0040] Compared with the prior art, the present invention has at least one of the following beneficial effects:
[0041] 1. The obstacle avoidance method proposed in this application includes setting the control parameter D according to the computing power of the equipment supporting the pipetting robot, which is determined based on comprehensive factors such as the actual equipment performance, processor computing power, and required response time. This application only needs to adjust a small number of parameters to control the overall computing amount of the obstacle avoidance method to adapt to the computing power of different platforms, thereby meeting the real-time requirements at the controller level and achieving a complete path within the specified response time of the control software.
[0042] 2. In the obstacle avoidance method proposed in the present application, an algorithm process for modifying the object size is added in the collision detection step, which ensures that when the control parameter D is relatively large relative to the size of the object itself, the obstacle avoidance method proposed in the present invention can meet the basic safety requirements, at the expense of the minimum distance between the robot itself and other objects in the workspace, to ensure that no actual collision occurs due to too low algorithm accuracy.
[0043] 3. The obstacle avoidance method proposed in this application includes calculation steps of different complexity of routes corresponding to multiple stages. Under the condition of meeting the real-time requirements, a path planning algorithm for simple routes is applied, that is, determining whether there is a straight feasible path between the current position and the target position at different height layers; if so, the pipetting robot is controlled to move to the specified height layer and move along the straight feasible path. When a simple path cannot be achieved, a more complex path planning is called, that is, the pipetting robot is controlled to move to the highest layer in the space model, and path planning is performed based on a heuristic path planning algorithm. Therefore, in simple scenarios, this method of the present application can avoid complex calculations, further reduce computing power consumption, and obtain better results. BRIEF DESCRIPTION OF THE DRAWINGS
[0044] The preferred implementation scheme will be described below in a clear and understandable manner with reference to the accompanying drawings to further illustrate the above-mentioned characteristics, technical features, advantages and implementation methods of the present application.
[0045] Figure 1 A flowchart of an embodiment of an obstacle avoidance method provided by the present application;
[0046] Figure 2 A schematic diagram of performing collision detection at the beginning and end of a path segment in one embodiment of the present application;
[0047] Figure 3 A flowchart of another embodiment of an obstacle avoidance method provided by the present application;
[0048] Figure 4 This is a schematic diagram of the structure of a liquid transfer robot in one embodiment of the present application;
[0049] Figure 5 A schematic diagram of a method for moving a straight line feasible path between a current position and a target position of a liquid transfer robot in one embodiment of the present application;
[0050] Figure 6 A schematic diagram of a method for moving a liquid transfer robot between a current position and a target position based on a heuristic path planning algorithm in one embodiment of the present application. DETAILED DESCRIPTION
[0051] In the following description, specific details such as specific system structures, technologies, etc. are provided for the purpose of illustration rather than limitation, so as to provide a thorough understanding of the embodiments of the present application. However, it should be clear to those skilled in the art that the present application may also be implemented in other embodiments without these specific details. In other cases, detailed descriptions of well-known systems, devices, circuits, and methods are omitted to prevent unnecessary details from obstructing the description of the present application.
[0052] It should be understood that when used in this specification and the appended claims, the term "comprising" indicates the presence of the described features, integers, steps, operations, elements and / or components, but does not exclude the presence or addition of one or more other features, integers, steps, operations, elements, components and / or collections.
[0053] In order to simplify the drawings, only the parts related to the invention are schematically shown in each figure, and they do not represent the actual structure of the product. In addition, in order to simplify the drawings and facilitate understanding, in some figures, only one of the parts with the same structure or function is schematically drawn or marked. In this article, "one" not only means "only one", but also means "more than one".
[0054] It should be further understood that the term “and / or” used in the specification and appended claims refers to any combination and all possible combinations of one or more of the associated listed items, and includes these combinations.
[0055] In this document, it should be noted that, unless otherwise clearly specified and limited, the terms "installed", "connected", and "connected" should be understood in a broad sense, for example, it can be a fixed connection, a detachable connection, or an integral connection; it can be a mechanical connection or an electrical connection; it can be a direct connection or an indirect connection through an intermediate medium, or it can be the internal communication of two components. For ordinary technicians in this field, the specific meanings of the above terms in this application can be understood according to specific circumstances.
[0056] In a specific implementation, the terminal device described in the embodiments of the present application includes, but is not limited to, other portable devices such as mobile phones, laptop computers, tutoring machines, or tablet computers with touch-sensitive surfaces (e.g., touch screen displays and / or touch pads). It should also be understood that in some embodiments, the terminal device is not a portable communication device, but a desktop computer with a touch-sensitive surface (e.g., touch screen displays and / or touch pads).
[0057] In addition, in the description of the present application, the terms "first", "second", etc. are only used to distinguish the description and cannot be understood as indicating or implying relative importance.
[0058] In order to more clearly illustrate the embodiments of the present application or the technical solutions in the prior art, the specific implementation methods of the present application will be described below with reference to the accompanying drawings. Obviously, the drawings described below are only some embodiments of the present application. For ordinary technicians in this field, other drawings and other implementation methods can be obtained based on these drawings without creative work.
[0059] At present, after receiving the moving instruction, the common pipetting station robot first models its own working area through the placement information of the samples on the given table, and implements a collision detection method based on the modeling information. After that, all the path points to the target position are obtained based on the current position through the path planning method, and it is ensured that any position on the entire path can be judged based on the collision detection method that the robot does not collide with other objects. Finally, move to the target position in sequence according to the path points. For example, the European patent with patent number EP2918378B1 discloses a path planning method for a pipetting station robot, which checks whether there is a collision on the straight line segment from the current position to the target position. If no collision occurs, it moves straight to the target position. Otherwise, a heuristic path planning algorithm is used to generate multiple available paths, and then screen them one by one according to certain rules (including three-dimensional joint motion strategy, selecting a suitable height to generate a planar motion path, etc.) to obtain the final result.
[0060] In the above process, the method of generating path points determines the effect of the overall obstacle avoidance method, and generally has the following disadvantages:
[0061] (1) Offline planning is difficult to implement: On a controller platform with weak computing performance, the general path planning method is highly complex and computationally intensive, making it difficult to meet the real-time requirements of online planning. As a result, the complete path can only be planned before movement.
[0062] (2) There is still a certain risk of collision: General path planning methods usually have a computational complexity that grows at least exponentially with increasing accuracy. In order to control the time consumption within a certain range, a common practice is to reduce the accuracy. However, too low accuracy may lead to collision risks.
[0063] (3) The algorithm is highly complex and requires high computing power from the equipment, resulting in high system investment costs and difficulty in promotion.
[0064] (4) The paths obtained are mostly suboptimal solutions: There is a high probability of collision on a straight path. However, in most cases, a collision-avoiding path can be found by making simple changes. The general path planning method with reduced accuracy may not be able to find the optimal solution.
[0065] The technical problem to be solved by the present invention is to provide an automatic obstacle avoidance computer algorithm applied to a pipetting station robot, which can obtain a relatively optimal path under the premise of computing power limitation. The generated path meets the real-time requirements while ensuring that the robot itself does not collide with other objects in the working space.
[0066] An embodiment of an obstacle avoidance method provided by the present application includes the following steps:
[0067] S100: During the path planning process, collision detection is performed on the pre-selected path. Figure 1 , specifically including the following steps:
[0068] S110. Set control parameter D according to the computing power of the device supporting the pipetting robot.
[0069] S120, construct a cuboid envelope for all objects in the working area. Based on the cuboid envelope, its length, width and height are extended outward by a certain thickness. The thickness is proportional to the control parameter D.
[0070] S130, obtaining a path between any two adjacent path nodes, and dividing the path into a plurality of path segments based on a preset step length, where the step length is proportional to the control parameter D.
[0071] S140: Perform collision detection on the expanded object at the beginning and end of each path segment. If there is no collision in both detections, it is considered that there is no obstacle in the path segment. Otherwise, re-plan the path.
[0072] Specifically, the control parameter D is a constant parameter used to control the calculation accuracy of the obstacle avoidance method described in this application. It is determined by relevant technical personnel based on comprehensive factors such as the performance of the device actually used, the computing power of the processor, and the required response time. The larger the value of the control parameter D is set, the smaller the total calculation amount of the algorithm operation is, and the lower the collision detection accuracy is. On the contrary, the smaller the value of the control parameter D is set, the larger the total calculation amount of the algorithm operation is, and the higher the collision detection accuracy is.
[0073] In one implementation of this embodiment, the important parameters of the algorithm are all related to the control parameter D. Only a small amount of parameter adjustment (adjustment of the control parameter D) is required to control the overall computational load of the obstacle avoidance method to adapt to the computing power of different platforms, thereby meeting the real-time requirements at the controller level and achieving a complete path within the specified response time of the control software.
[0074] Specifically, the expansion thickness of the envelope is proportional to the control parameter D. The step size of the divided path segments is proportional to the control parameter D. It is easy to obtain that: the larger the value of the control parameter D is set, the greater the expansion thickness of the envelope, the larger the step size of the divided path segments, the fewer the number of divided path segments, the smaller the total calculation amount, and the lower the collision detection accuracy. Conversely, the smaller the value of the control parameter D is set, the smaller the expansion thickness of the envelope, the smaller the step size of the divided path segments, the more the number of divided path segments, the larger the total calculation amount, and the higher the collision detection accuracy.
[0075] An envelope is a fully enclosed three-dimensional structure. In this application, constructing a rectangular envelope for all objects in the working area means giving certain "rectangular" properties to irregular objects in the current space. For example, a minimum rectangular parallelepiped that can accommodate the target object can be constructed by extracting the outer contour of the target object. The extracted minimum rectangular parallelepiped is used as the envelope of the target object. In this application, since the target objects that the pipetting robot needs to move are mostly approximately rectangular in shape, the envelope type is set to a rectangular parallelepiped. In other application scenarios, the shape of the envelope can also be set to other shapes such as a cylinder and a sphere. This application does not make specific restrictions.
[0076] Preferably, the object envelope construction can be realized based on the oriented bounding box technology. An oriented bounding box (OBB) is a type of bounding box commonly used in computer graphics and geometric processing. It is a bounding box with the smallest volume. The size and direction of the bounding box can be determined according to the geometric shape of the model. It does not need to be perpendicular to the coordinate axis and the direction is arbitrary. In the collision detection task, when the object is in any direction or rotated, the OBB can more tightly surround the rotating object and reduce the blank space.
[0077] Based on the above embodiment, the present application provides another embodiment of the obstacle avoidance method, wherein the step S140: performing collision detection on the expanded object at the beginning and end of each path segment, specifically comprising: judging whether the moving object and the non-moving object on the path intersect at the beginning and end of the path segment by a three-dimensional separation axis detection method.
[0078] When the pipetting robot is moving, the robot's mechanical arm and the object grasped by the robot are moving objects, and the objects that do not move relative to the working area are non-moving objects.
[0079] The three-dimensional separation axis detection method (Separating Axis Theorem, SAT) is an algorithm for detecting whether two convex shapes collide in three-dimensional space. The core idea is that if two convex shapes do not intersect, then there must be at least one axis so that the projections of the two shapes on the axis do not overlap. On the contrary, if such an axis cannot be found, the two shapes must intersect. Of course, other existing collision detection methods can also be used to achieve the technical effect of collision judgment in this embodiment.
[0080] Since the shape of the object / 3D model is irregular, even if the envelopes corresponding to two objects overlap, it may be a relative problem between the two objects, and it does not mean that the two objects collide. However, when the envelopes corresponding to the two objects do not overlap, it is certain that there is no collision between the objects, so a large number of non-intersecting elements can be excluded.
[0081] In collision detection, objects are checked for collision at the beginning and end of each path segment. This application uses an interval detection method, which reduces the amount of data to be processed compared to real-time monitoring and can save computing power to a large extent. However, since only a limited number of points can be monitored, there is still a possibility of collision at other locations between the two points. Figure 2 As shown, Figure 2 A schematic diagram of performing collision detection at the beginning and end of a path segment in one embodiment of the present application; Figure 2 A moving object moves from point A to point B in a path segment. There is no collision detection in the middle distance, but there is still a collision in fact. In order to avoid this situation. The present application expands the length, width and height of the rectangular envelope outward by a certain thickness, that is, on the basis of the expansion of the rectangular envelope, increases the spacing distance of the bilateral thickness by at least D / (2√2) to avoid this situation to the greatest extent. After the expansion, the envelope only needs to perform collision detection at the beginning and the end of the path segment, and there is no need to detect the middle distance of the path segment to determine whether there is a collision on the entire path segment.
[0082] In one implementation of this embodiment, step S120 specifically includes: on the basis of the rectangular parallelepiped envelope, the length, width and height of one of the moving object or the non-moving object on the path are expanded outward by a first thickness. The value of the first thickness is not less than D / (2√2). Optionally, the value of the first thickness is equal to D / (2√2). Or the value of the first thickness is equal to D / n1(0 <n1<2√2)。
[0083] Step S130 specifically includes: obtaining a path between any two adjacent path nodes, and dividing the path into a plurality of path segments based on a preset step length, wherein the value of the step length is not greater than D. Optionally, the value of the step length is equal to m1*D(0 <m1<1)。
[0084] In another implementation of this embodiment, step S120 specifically includes: on the basis of the rectangular parallelepiped envelope, the length, width and height of both the moving object and the non-moving object on the path are expanded outward by a second thickness on both sides. The value of the second thickness is not less than D / (4√2). Optionally, the value of the second thickness is equal to D / (4√2). Or the value of the second thickness is equal to D / n2(0 <n2<4√2)。
[0085] Step S130 specifically includes: obtaining a path between any two adjacent path nodes, and dividing the path into a plurality of path segments based on a preset step length, wherein the value of the step length is not greater than D. Optionally, the value of the step length is equal to the D value.
[0086] In the above embodiment, the values of n1, m1, and n2 are pre-set by relevant technical personnel based on actual conditions and can be set as fixed parameters. During debugging, only the control parameter D needs to be changed to change the collision detection accuracy of the system to adapt to the computing power of different platforms.
[0087] In other embodiments of the present application, refer to the attached specification. Figure 3 As shown, the present application provides another embodiment of an obstacle avoidance method, comprising the steps of:
[0088] S1. Collect the spatial position and size information of all objects in the working area of the pipetting robot and build a spatial model.
[0089] Specifically, after receiving the movement instruction, the pipetting station robot first models its own work area based on the placement information of the samples on the given table. Or, it accepts the modeling information of the current work area collected by other equipment or systems. Model construction can be assisted by equipment such as radar point cloud or depth camera, which is not specifically limited in this application.
[0090] S2. Acquire the position of each joint of the pipetting robot in the space model in real time and record it as the current position.
[0091] For details, please refer to the attached manual. Figure 4 As shown in the figure, the schematic diagram of the liquid transfer robot is attached to the instruction manual. Figure 4 As shown, the entire space includes a box, and a number of irregular objects are placed at the bottom of the box, such as a reagent library, a test tube rack, a culture plate, a pipette tip rack, etc. The pipette robot is fixed to the box by one or more methods such as hanging or hanging arm installation, and moves the position through the slide rail joint or the mechanical arm joint. The pipette robot is also equipped with a pipette gun or a mechanical claw for clamping and moving the target object.
[0092] S3, determining whether there is a straight feasible path between the current position and the target position at different height layers. If so, controlling the liquid transfer robot to move to a specified height layer and move along the straight feasible path.
[0093] For details, please refer to the attached manual. Figure 5 shown. Figure 5 A schematic diagram of a moving method for a linear feasible path between the current position and the target position is shown. The cube in the figure is the envelope of the object. Given the current position a and the target position c, the path between a and c is b. Between the upper and lower limits of the working area, a suitable height value Z_III is found by dichotomy so that the pipetting robot can first move directly upward to the height Z_III, and then move straight along the path b direction at the height Z_III to the top of the target position c. Then the pipetting robot is controlled to move directly downward to the target position c.
[0094] In one implementation of this embodiment, step S3 specifically includes:
[0095] S31, searching for any height in the working area based on the binary search method, and projecting a connecting line between the current position and the target position onto a plane at any height.
[0096] S32, using the projection of the connecting line at any height as a pre-selected path for collision detection. If there is no collision, the current altitude layer is used as the designated altitude layer, and the corresponding pre-selected path is used as a straight line feasible path.
[0097] S33. If there is a collision on the path, continue searching until all heights are searched and it is considered that there is no straight line feasible path between the current position and the target position.
[0098] Specifically, when searching for path height, the binary search method can be used to quickly narrow the search range. In each iteration, the midpoint of the calculation interval is equal to (upper limit + lower limit) / 2. When performing the operation, the default setting is that the number of obstacles in the half of the height close to the lower limit is greater than the half of the height close to the upper limit, so the weight of the downward search can be set higher. After each iteration of the binary search method, the length of the interval where the target is located is halved. If it is found in N iterations that a straight line feasible path from the start point to the end point has been found at the target height, the iteration is stopped.
[0099] S4. If there is no straight feasible path, control the pipetting robot to move to the highest layer in the space model, and perform path planning based on a heuristic path planning algorithm.
[0100] Specifically, if the binary method does not find a suitable height, the pipetting robot is controlled to move to the highest height in the space model, which is the same as the upper limit height in the working area. After moving to the highest height, the robot moves in sequence according to a path planning algorithm, such as a path given by a heuristic path planning algorithm, and finally reaches directly above the target position. Then it moves directly below to the target position.
[0101] If a safe path does not exist in step S4, it is determined that the target location cannot be reached.
[0102] Unless otherwise specified, the spatial position in all the steps refers to the X, Y, and Z coordinate values of the fixed Cartesian coordinate system of the corresponding object and the rotational posture on the corresponding axis (given in mathematical form, such as a rotation matrix), and the size information refers to the length, width, and height of the rectangular envelope of the object. In this embodiment, the spatial position and size information of the object obtained in step S1 cannot be changed in all the steps, and changes due to any reason outside the steps (such as object transportation) are allowed.
[0103] In steps S3 and S4, the process of path finding or path planning not only needs to find a path from the starting point to the end point, but also needs to ensure that the path meets specific constraints, such as not crossing certain prohibited areas or not contacting specific objects. Therefore, this embodiment adds a collision detection algorithm to the process of path finding or path planning in steps S3 and S4, that is, step S100 in the above embodiment: during the path planning process, the pre-selected path is subjected to collision detection. Collision detection ensures that the planned path will not collide with obstacles or other objects. In some cases, even if the path planning has been completed, real-time collision detection is still required so that a quick response can be made and the path can be adjusted when encountering unforeseen obstacles.
[0104] In steps S3 and S4, the straight line from Pi to P(i+1) is Li. Given a control parameter D, the bilateral length, width, and height of all objects in the working area are temporarily increased by D / (2√2). Li is divided into several path segments according to the step value = D. The number of path segments is CEIL(|Li| / D). The collision between the robot and all objects in the working area is detected at the endpoints of each small segment. It is not difficult to find that since OBB is a convex polyhedron, increasing the size according to the above method can ensure that for any D <= |Li|, only at least two points need to be checked to ensure that the robot has no collision at any point on Li. The above |Li| and CEIL(X) respectively represent the length of Li and the rounding up of the real number X. The technical details of a specific obstacle avoidance method are the same as those in the above embodiment, and will not be repeated in this embodiment.
[0105] Based on the above embodiment, this embodiment provides another embodiment of an obstacle avoidance method, wherein the joint position obtained in step S2 needs to meet the following conditions:
[0106] (1) The spatial position of each robot component can be uniquely determined through the joint position, and the robot itself can be spatially modeled by combining the size information of each robot component.
[0107] (2) The spatial position of each component of the robot at any time is only related to the joint position at the corresponding time, and has nothing to do with the joint position information at other times.
[0108] The above conditions ensure the reliability of the robot's position acquisition and the consistency of its state.
[0109] This embodiment provides another embodiment of an obstacle avoidance method, based on the above embodiment, wherein step S100: performing collision detection on a preselected path during path planning. It also includes the following steps:
[0110] S150: If the two objects intersect, determine whether the moving object meets the intrusion condition of the non-moving object. If the intrusion condition is not met, it is considered that the two objects collide; if the intrusion condition is met, it is considered that the two objects do not collide.
[0111] Based on the above embodiment, in steps S3 and S4, it is recorded that the moving path consists of N points (N>=2), namely P1, P2,..., PN (the current position is P1, and the target position is PN). Then a certain path can be safely passed, specifically referring to that the robot does not collide with any other object in the working area at any point on the straight line from Pi to P(i+1) (entering the interior of the object in a specified manner is allowed).
[0112] In steps S3 and S4, the method for detecting the collision between the robot and an object in the working area at a point on the route is to construct a corresponding directed bounding box according to the corresponding size and spatial position, and determine whether the two intersect by a three-dimensional separation axis detection method. If they intersect, the direction from Pi to P(i+1) is used to determine whether the robot's intrusion into the object meets the conditions for entering the interior of the object. For most objects, intrusion into the object is allowed only when moving up and down. If the conditions are not met, it is determined that the robot has collided with the object in the working area, otherwise it is determined that no collision has occurred.
[0113] In steps S3 and S4, the robot usually moves downward to the last waypoint. If the target position is blocked directly above, it is necessary to specify an additional fixed robot entry and exit method after the waypoints are generated in steps S3 and S4, and enter under the obstruction after executing the movement steps according to the waypoints generated in steps S3 and S4.
[0114] This embodiment provides another embodiment of an obstacle avoidance method. Based on any of the above embodiments, in step S4, performing path planning based on a heuristic path planning algorithm specifically includes the following details:
[0115] S41. With the current position a located at the projection position of the highest XY plane parallel to the Z axis as the origin, the constant path planning accuracy P input in advance as the grid side length, and the same positive direction as the XY axis, a plane grid coordinate system parallel to the XY plane is established, and the coordinates of the grid points on the grid are recorded as (NX, NY), where NX and NY are integers, (0, 0) represents the origin, and the target position c located at the projection position of the highest XY plane parallel to the Z axis is recorded as point E. Figure 6 . Figure 6 A schematic diagram of a method for moving a liquid transfer robot between a current position and a target position based on a heuristic path planning algorithm in one embodiment of the present application.
[0116] S42, starting from (0,0) and moving outward, a slightly modified A* search algorithm is used to perform collision detection while searching for paths, and calculate whether the grid point is reachable. Let the heuristic function H(NP) be the Manhattan distance from the spatial position of the grid point NP to the point E, set two sets OPEN and CLOSE to store the grid point coordinates, parent grid point coordinates, starting point distance and end point distance, add the element [(0,0),(0,0),0,H((0,0))] to the OPEN set, and execute the search steps:
[0117] S421. Select the set element with the smallest starting point distance + end point distance in the OPEN set, take out and record the element Q. If the OPEN set is empty, the output path does not exist and the algorithm process stops.
[0118] S422, check whether the CLOSE set already contains an element with the same grid coordinates as Q, if so, go to step S421.
[0119] S423, check the Manhattan distance between the spatial position corresponding to the grid point coordinates in Q and E, if it is less than 2*P, go to step S426.
[0120] S424. Let the grid point coordinates stored in Q be (NXQ, NYQ) and the starting point distance be DQ. Use the above straight line collision detection method to detect collisions for the four straight line routes corresponding to (NXQ, NYQ) to (NXQ-1, NYQ), (NXQ+1, NYQ), (NXQ, NYQ-1), and (NXQ, NYQ+1). If no collision occurs, let the grid point be Q' and add the element [Q', Q, DQ, H(Q')] to the set OPEN.
[0121] S425. Go to step S421.
[0122] S426. Use the above straight line collision detection method to check whether a collision occurs on the straight line E from the position corresponding to the grid point coordinates in Q. If a collision occurs, go to step S421.
[0123] S427. Establish a grid point list corresponding to the output path, add the grid point coordinates in Q, take out the element corresponding to the parent grid point coordinates in Q in the CLOSE set and re-use it as Q, recursively add the grid point coordinates in Q until Q contains the same grid point coordinates and parent grid point coordinates, and finally reverse the list to output the path point column represented by grid point coordinates.
[0124] S43. Perform a path simplification step on the grid point sequence obtained in step S42. Note that the grid point sequence contains N grid points, the initial value of the variable RIP is N, and the initial value of the variable RIQ is N-2.
[0125] S431. If RIQ<1, end the process.
[0126] S432, using the above straight line collision detection method to check whether a collision occurs on the straight line from the spatial position corresponding to the RIQth grid point in the grid point column to the spatial position corresponding to the RIPth grid point; if no collision occurs, delete the RIP-1th node.
[0127] S433, reduce RIP and RIQ by 1 respectively, and go to step S431.
[0128] S44. Remap the grid points in the grid column back to the spatial position according to the method of establishing the grid coordinate system in step S41 to obtain a path that allows the robot to safely reach the target position. Given the control parameter D and the path planning accuracy P, step S42 can calculate the shortest route on the grid, and step S43 can convert the grid route into a spatial route to further shorten the moving distance.
[0129] In one implementation of the present embodiment, in step S4, the OPEN set in the A* search algorithm is stored in a priority queue data structure, so that the time complexity of algorithm step S41 can be reduced from O(V^2) to O(V*log V), where V is the total number of grid points searched by the algorithm, which is approximately proportional to the total number of grid points in the working area and approximately inversely proportional to the path planning accuracy P.
[0130] In another implementation of this embodiment, in step S4, the CLOSE set in the A* search algorithm is stored in a hash table data structure, with the grid point coordinates of the element record as the key, so that the time complexity of algorithm step S42 can be reduced from O(V^2) to O(V), where V is the total number of grid points searched by the algorithm.
[0131] Optionally, in step S4, the time consumed in calculating the path is positively correlated with the path result finally outputted, and the longest time consumed in calculating the path can be determined by constructing a scenario in which a very long distance needs to be traveled between the starting point and the end point.
[0132] Based on the same technical concept, the present application also discloses an obstacle avoidance system, which can be used to implement any of the above obstacle avoidance methods. Specifically, an obstacle avoidance system embodiment of the present application includes:
[0133] The collision detection module is used to perform collision detection on the pre-selected path during the path planning process.
[0134] Specifically including: setting a submodule, used to set control parameters according to the computing power of the equipment supporting the pipetting robot.
[0135] The extended submodule is used to construct a rectangular envelope for all objects in the working area.
[0136] The expansion submodule is further used to expand the length, width and height of the rectangular parallelepiped outward by a certain thickness based on the rectangular parallelepiped envelope, and the thickness is proportional to the control parameter.
[0137] The division submodule is used to obtain a path between any two adjacent path nodes and divide the path into a number of path segments based on a preset step length, where the step length is proportional to the control parameter.
[0138] The detection submodule is used to perform collision detection on the expanded objects at the beginning and end of each path segment. If there is no collision in both detections, it is considered that there is no obstacle in the path segment. Otherwise, the path planning is re-performed.
[0139] Another embodiment of an obstacle avoidance system provided by the present application, based on the above system embodiment, the obstacle avoidance system further includes:
[0140] The model building module is used to collect the spatial position and size information of all objects in the working area of the pipetting robot and build a spatial model.
[0141] The position acquisition module is used to acquire the position of each joint of the pipetting robot in the space model in real time and record it as the current position.
[0142] The path planning module is used to determine whether there is a straight feasible path between the current position and the target position at different height levels. The movement control module is used to control the liquid transfer robot to move to a specified height level and move along the straight feasible path if there is one.
[0143] The mobile control module is further used to control the liquid transfer robot to move to the highest layer in the space model if the layer does not exist. The path planning module is further used to perform path planning based on a heuristic path planning algorithm.
[0144] Specifically, the mobile control module is used to analyze the position, speed, and torque information of each joint of the actuator such as the robotic arm per unit time according to the mobile steps generated by the path planning module, that is, the corresponding movements required to execute the movement. Mobile control can be completed by issuing control instructions such as mobile position and speed according to the communication protocol.
[0145] Another embodiment of an obstacle avoidance system provided by the present application, based on the above system embodiment, the path planning module specifically includes:
[0146] The search submodule is used to search for any height in the working area based on the binary search method.
[0147] The projection submodule is used to project the connection line between the current position and the target position onto a plane at any height.
[0148] The collision detection module is also used to perform collision detection using the projection of the connecting line at any height as a pre-selected path. If there is no collision, the current altitude layer is used as the designated altitude layer, and the corresponding pre-selected path is used as a straight line feasible path.
[0149] The search submodule is further configured to continue searching if there is a collision on the path, until all heights are searched and it is considered that there is no straight feasible path between the current position and the target position.
[0150] The detection submodule is specifically used to: determine whether the moving object and the non-moving object on the path intersect at the beginning and end positions of the path segment by a three-dimensional separation axis detection method.
[0151] The detection submodule is also used to determine whether the moving object meets the intrusion condition of the non-moving object if the two objects intersect. If the intrusion condition is not met, it is considered that the two objects collide, and if the intrusion condition is met, it is considered that the two objects do not collide.
[0152] Another embodiment of an obstacle avoidance system provided in the present application specifically includes: before the robot starts working, samples to be operated (usually liquids) and their containers are placed in sequence in the working area of the robot.
[0153] The model building module obtains the size and placement layout of each sample and its container in the robot's working area, as well as the size and spatial position of other objects in the working area.
[0154] The path planning module inputs the robot workflow, and the control software automatically calculates the corresponding robot actual execution instructions based on the given process and the working area information obtained by the model building module. Each movement instruction only contains the target position information.
[0155] The mobile control module controls the robot to execute the instructions calculated by the path planning module in sequence:
[0156] When executing a moving instruction, the moving control module infers the size and position information of objects in the current working area based on the information input by the step model building module and the previous instruction execution results, calculates the intermediate path points according to the obstacle avoidance method proposed in the present invention, and moves to the target position in sequence according to the path points.
[0157] The mobile control module is also used to execute other instructions, such as controlling a pipette or a robotic gripper to grab, ship and place objects.
[0158] Optionally, the model building module records the layout of samples and their containers, specifically referring to the operable containers and their stored sample information stacked in sequence by height in one or more fixed placement slots that match the container sizes in the robot's working area, and performs simple geometric calculations based on the size of the containers themselves to obtain the spatial positions of all samples and their containers in the working area.
[0159] Other objects in the working area will not change in size or spatial position during the entire workflow, but some objects have fixed slots for placing one or more samples and their containers, and part of the robot may move into such objects.
[0160] Preferably, the model building module records the size of any object including at least the length, width and height of the rectangular envelope of the object, and records the spatial position of other objects in the working area including at least the spatial position of the center point of the object.
[0161] In some other implementations of this embodiment, the mobile control module is also used to execute other instructions, such as controlling a pipette or a mechanical gripper to grab and place objects and other robot workflows, including specific samples and their containers on designated placement slots (for example: the first row and first column of the top well plate in slot number one), and specific action names (for example: aspirating 100uL of water in the well). The meaning of such a process is to perform a specific action after reaching the designated position, and the description of any process does not involve the spatial position of the robot or any object in the working area.
[0162] All movement instructions in the path planning module only contain the target position. The starting position of the movement is the current spatial position of the robot. When the process is executed normally, the current spatial position is the spatial position of the robot after executing the previous instruction. When the process is abnormally intervened, the current spatial position can be any position in the working area that does not collide with other objects.
[0163] The path planning module performs path planning based on a heuristic path planning algorithm. When the mobile control module moves sequentially according to the path points, the path that the robot finally moves to is intuitively represented as a broken line segment, which includes multiple motor start and stop actions. Furthermore, changing the corner joints of the broken line segments to fillets with a radius not exceeding D / (2√2) can minimize this situation, and there is no need to recheck whether there is a collision on the fillet route.
[0164] The system disclosed in this application sets control parameters according to the computing power of the equipment supporting the pipetting robot, which is determined based on comprehensive factors such as the actual equipment performance, processor computing power, and required response time. This application only needs to adjust a small number of parameters to control the overall computing amount of the obstacle avoidance method to adapt to the computing power of different platforms, thereby meeting the real-time requirements at the controller level and achieving a complete path within the specified response time of the control software.
[0165] In the obstacle avoidance method proposed in the present application, an algorithm process for modifying the object size is added in the collision detection step, which ensures that when the control parameter D is relatively large relative to the size of the object itself, the obstacle avoidance method proposed in the present invention can meet the basic safety requirements, at the expense of the minimum distance between the robot itself and other objects in the workspace, to ensure that no actual collision will occur due to algorithm accuracy.
[0166] Based on the same concept, the present application also discloses a liquid transfer robot, including an obstacle avoidance system as described in any one of the above embodiments. The obstacle avoidance method, system and liquid transfer robot of the present application have the same technical concept, and the technical details of the embodiments of the two are applicable to each other. To reduce repetition, they will not be repeated here.
[0167] Those skilled in the art can clearly understand that, for the convenience and simplicity of description, only the division of the above-mentioned program modules is used as an example for illustration. In actual applications, the above-mentioned functions can be assigned to different program modules as needed, that is, the internal structure of the device can be divided into different program units or modules to complete all or part of the functions described above. The program modules in the embodiment can be integrated into a processing unit, or each unit can exist physically separately, or two or more units can be integrated into a processing unit, and the above-mentioned integrated unit can be implemented in the form of hardware or in the form of software program units. In addition, the specific names of the program modules are only for the convenience of distinguishing each other, and are not used to limit the scope of protection of this application.
[0168] Although the preferred embodiments of the present application have been described, those skilled in the art may make other changes and modifications to these embodiments once they have learned the basic creative concept. Therefore, the appended claims are intended to be interpreted as including the preferred embodiments and all changes and modifications falling within the scope of the present application.
Claims
1. An obstacle avoidance method, applied to a liquid transfer robot, characterized in that: include: During the path planning process, collision detection is performed on the pre-selected path; specifically, the following steps are included: Set the control parameters according to the computing power of the equipment supporting the pipetting robot; Constructing a cuboid envelope for all objects in the working area; based on the cuboid envelope, extending its length, width and height outward to a certain thickness; the thickness is proportional to the control parameter; Obtaining a path between any two adjacent path nodes, and dividing the path into a plurality of path segments based on a preset step length, wherein the step length is proportional to the control parameter; At the beginning and end of each path segment, collision detection is performed on the expanded objects; if there is no collision in both detections, the path segment is considered to be obstacle-free; otherwise, the path planning is re-performed.
2. An obstacle avoidance method as claimed in claim 1, characterized in that: Before performing collision detection on the preselected path, the following steps are also included: Collecting the spatial position and size information of all objects in the working area of the pipetting robot to construct a spatial model; obtaining the position of each joint of the pipetting robot in the spatial model in real time and recording it as the current position; Determine whether there is a straight line feasible path between the current position and the target position at different altitude layers; If it exists, the pipetting robot is controlled to move to the specified height layer and move along the linear feasible path; otherwise, the pipetting robot is controlled to move to the highest layer in the space model and path planning is performed based on a heuristic path planning algorithm.
3. An obstacle avoidance method as claimed in claim 2, characterized in that: The step of determining whether there is a straight line feasible path between the current position and the target position at different altitude layers; The steps include: Finding any height within the working area based on the binary method; projecting a connecting line between the current position and the target position onto a plane at any height; The projection of the connecting line at any height is used as a pre-selected path for collision detection; if there is no collision, the current altitude layer is used as the designated altitude layer, and the corresponding pre-selected path is used as a straight line feasible path; If there is a collision on the path, the search continues until all heights are searched, and it is considered that there is no straight line feasible path between the current position and the target position.
4. The obstacle avoidance method according to claim 1, characterized in that: The method of performing collision detection on the expanded object at the beginning and end of each path segment includes: judging whether the moving object and the non-moving object on the path intersect at the beginning and end of the path segment by a three-dimensional separation axis detection method.
5. An obstacle avoidance method as claimed in claim 1 or 4, characterized in that: The process of path planning includes performing collision detection on the pre-selected path; and further includes the following steps: If the two objects intersect, it is determined whether the moving object meets the intrusion condition of the non-moving object; if the intrusion condition is not met, it is considered that the two objects collide; if the intrusion condition is met, it is considered that the two objects do not collide.
6. An obstacle avoidance system, characterized in that: include: A collision detection module is used to perform collision detection on the pre-selected path during the path planning process; Specifically, it includes: setting a submodule for setting control parameters according to the computing power of the equipment supporting the pipetting robot; The extended submodule is used to construct a cuboid envelope for all objects in the working area; The expansion submodule is further used to expand the length, width and height of the rectangular parallelepiped outward to a certain thickness based on the rectangular parallelepiped envelope; the thickness is proportional to the control parameter; A division submodule, used for obtaining a path between any two adjacent path nodes, and dividing the path into a plurality of path segments based on a preset step length, wherein the step length is proportional to the control parameter; The detection submodule is used to perform collision detection on the expanded objects at the beginning and end of each path segment; if there is no collision in both detections, the path segment is considered to have no obstacles; otherwise, the path planning is re-performed.
7. An obstacle avoidance system as claimed in claim 6, characterized in that: Also includes: A model building module is used to collect the spatial position and size information of all objects in the working area of the pipetting robot and build a spatial model; A position acquisition module, used to acquire the position of each joint of the pipetting robot in the space model in real time and record it as the current position; A path planning module is used to determine whether there is a straight line feasible path between the current position and the target position at different altitude levels; A mobile control module, for controlling the liquid transfer robot to move to a specified height layer and move along the linear feasible path if present; The mobile control module is further used to control the pipetting robot to move to the highest layer in the space model if it does not exist; the path planning module is further used to perform path planning based on a heuristic path planning algorithm.
8. An obstacle avoidance system as claimed in claim 7, characterized in that: The path planning module specifically includes: A search submodule, used for searching any height within the working area based on a binary search method; A projection submodule, used for projecting a connection line between the current position and the target position onto a plane at any height; The collision detection module is further used to perform collision detection using the projection of the connecting line at any height as a preselected path; if there is no collision, the current altitude layer is used as the designated altitude layer, and the corresponding preselected path is used as a straight line feasible path; The search submodule is further configured to continue searching if there is a collision on the path, until all heights are searched and it is considered that there is no straight feasible path between the current position and the target position.
9. An obstacle avoidance system as claimed in claim 6, characterized in that: The detection submodule is specifically used to: determine whether the moving object and the non-moving object on the path intersect at the beginning and end of the path segment by a three-dimensional separation axis detection method; The detection submodule is also used to determine whether the moving object meets the intrusion condition of the non-moving object if the two objects intersect; if the intrusion condition is not met, it is considered that the two objects have collided, and if the intrusion condition is met, it is considered that the two objects have not collided.
10. A liquid transfer robot, characterized in that: An obstacle avoidance system comprising any one of claims 6-9.
Citation Information
Patent Citations
Process for finding a path in an automated handling system, and handling system with corresponding control module for finding a path
EP2918378B1
Cited By
Method, system and medium for automatic online calibration of a water quality analyzer
CN122612503A