ROBOT CONTROL SYSTEM, CONTROL DEVICE, AND ROBOT CONTROL METHOD
The robot control system efficiently determines potential collisions by analyzing vertex positions and enlarged buffers, ensuring safe robot movement and obstacle avoidance.
Patent Information
- Application Number
- JP2021060229
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Filing Date
- 2021-03-31
- Publication Date
- 2024-12-10
- Estimated Expiration
- 2041-03-31
AI Technical Summary
Existing technologies face inefficiencies in determining the presence or absence of collisions during robot movement, particularly in dynamic environments.
A robot control system that utilizes a control device to identify the positions of a robot's vertices before and after movement, creating rectangular parallelepipeds to assess potential collisions by checking for obstacles within enlarged buffers around these shapes, and adjusting movement accordingly.
Efficiently determines the likelihood of collisions by analyzing potential collision areas, allowing the robot to move safely without obstacles, and providing warnings or stopping movement when necessary.
Smart Images

Figure 0007597369000001 
Figure 0007597369000002 
Figure 0007597369000003
Abstract
Description
[Technical field]
[0001] The present invention relates to a technique for controlling various robots, and more particularly to a technique for determining whether or not a robot will collide with another object while moving. [Background technology]
[0002] Technologies for avoiding collisions between robots have been known for some time. For example, JP 2019-123022 A (Patent Document 1) discloses a robot control device and an automatic assembly system. According to Patent Document 1, the robot control device inputs the motion state of the worker from a sensor. Then, the robot control device calculates the positions and speed vectors of the robot and the worker from the motion state of the robot and the motion state of the worker, generates risk determination areas (areas for stopping the robot, areas for retreating, and areas for decelerating) around the robot and the worker, determines the risk from the overlap of the generated risk determination area of the robot and the risk determination area of the worker, generates a collision avoidance trajectory for avoiding collisions between the robot and the worker from the result of the determination, and controls the robot based on the generated collision avoidance trajectory. [Prior art documents] [Patent documents]
[0003] [Patent Document 1] JP 2019-123022 A Summary of the Invention [Problem to be solved by the invention]
[0004] An object of the present invention is to provide a technique for efficiently determining whether or not a collision occurs during the movement of a robot. [Means for solving the problem]
[0005] According to one aspect of the present invention, there is provided a robot control system including a robot and a control device. The control device identifies a position of another object, identifies a second rectangular parallelepiped that contains a first rectangular parallelepiped that includes positions of multiple vertices of the robot before movement and positions of multiple vertices of the robot after movement, and moves the robot when there is no other object within the second rectangular parallelepiped. Effect of the Invention
[0006] As described above, according to the present invention, a technique for efficiently determining whether or not a collision occurs during the movement of a robot is provided. [Brief description of the drawings]
[0007] [Figure 1] 1 is a block diagram showing an overall configuration of a robot control system according to a first embodiment. [Diagram 2] FIG. 2 is an image diagram showing a method of collision determination according to the first embodiment. [Diagram 3] 5 is a flowchart showing information processing for collision determination according to the first embodiment. [Figure 4] FIG. 11 is an image diagram showing a method of collision determination according to the second embodiment. [Diagram 5] 10 is a flowchart showing information processing for collision determination according to a second embodiment. [Figure 6] 13 is a flowchart showing information processing for collision determination according to the fifth embodiment. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
[0008] Hereinafter, an embodiment of the present invention will be described with reference to the drawings. In the following description, the same components are denoted by the same reference numerals. Their names and functions are also the same. Therefore, detailed description thereof will not be repeated. <First embodiment> <Overall configuration of the robot control system>
[0009] First, the overall configuration of a robot control system 1 according to this embodiment will be described with reference to Fig. 1. The robot control system 1 includes, as main devices, a robot 200, a camera 300, and a control device 100 for controlling the operation of the robot 200 based on images captured by the camera 300. The robot control system 1 is applied to, for example, a production site in a factory, and is configured to cause the robot 200 to execute a predetermined task (work) at the production site.
[0010] The control device 100 mainly includes a CPU 110, a memory 120, a display 130, an operation unit 140, a speaker 150, and a communication interface 160. The CPU 110 controls the robot 200 and each unit of the control device 100 by executing a program stored in the memory 120. For example, the CPU 110 executes a program stored in the memory 120 and performs various information processing, which will be described later, by referring to various types of data.
[0011] The memory 120 is realized by various RAMs, various ROMs, etc. The memory 120 stores programs executed by the CPU 110 and data generated by the execution of the programs by the CPU 110, such as the operating state, current position, and target position of the robot 200.
[0012] The display 130 displays text and images based on signals from the CPU 110 .
[0013] An operation unit 140 receives instructions from a user and inputs them to the CPU 110 .
[0014] The speaker 150 outputs various sounds based on signals from the CPU 110 .
[0015] The display 130, the operation unit 140, and the speaker 150 may be realized by other terminals.
[0016] The communication interface 160 exchanges various data with other devices such as the robot 200 and the camera 300 via a communication cable, wireless LAN, or the like.
[0017] In this way, the CPU 110 of the control device 100, in accordance with the robot control program in the memory 120, obtains the area occupied in space by the workpiece to be worked on (specified by its position, shape and / or size, etc.) and the area occupied in space by obstacles (specified by its position, shape and / or size, etc.) based on image data from the camera 300 via the communication interface 160, and outputs various operation commands to the robot 200 via the communication interface 160.
[0018] In the following, the base position of the robot arm is referred to as the position of the robot 200, and the combination of angles of all the joints of the robot arm is referred to as the posture of the robot 200. <Operational Overview of Robot Control System>
[0019] Next, a method of determining whether or not the robot 200 according to this embodiment will be described with reference to FIG.
[0020] In this embodiment, referring to FIG. 2(A), the control device 100 acquires the current position and / or posture of the robot 200 (posture: 1) and the posture after movement (posture: 2) from the robot or a control device that controls the position and / or posture of the robot based on the control data of the task.
[0021] The control device 100 calculates the current position of each vertex of the robot 200 based on the current posture (posture: 1) of the robot 200. Note that each vertex of the robot 200 is set to a protruding portion of the outer circumferential surface of the robot 200. The control device 100 calculates the position of each vertex after the movement of the robot 200 based on the posture (posture: 2) of the robot 200 after the movement.
[0022] With reference to FIG. 2(B), the control device 100 defines a first rectangular parallelepiped that contains all of the vertices before and after the movement.
[0023] 2(C), the control device 100 defines a second rectangular parallelepiped that contains the first rectangular parallelepiped. The second rectangular parallelepiped contains the first rectangular parallelepiped and is one size larger than the first rectangular parallelepiped. For example, the control device 100 defines the second rectangular parallelepiped as a rectangular parallelepiped in which each side of the first rectangular parallelepiped is longer by the length of the movement distance of the first rectangular parallelepiped.
[0024] The control device 100 identifies the position of another obstacle based on the image from the camera 300, and judges whether or not the obstacle exists within the second rectangular parallelepiped. If an obstacle exists within the second rectangular parallelepiped, the control device 100 judges that there is a high possibility that the robot 200 will collide with the obstacle during movement, and outputs a warning, whereas if no obstacle exists within the second rectangular parallelepiped, the control device 100 judges that there is a low possibility that the robot 200 will collide with the obstacle during movement, and permits the movement of the robot 200. <Information processing by the control device 100>
[0025] Next, information processing by the control device 100 in this embodiment will be described in detail with reference to Figures 2 and 3. The CPU 110 of the control device 100 reads out, for example, a program for a task to be executed next according to the program in the memory 120, and executes the following processing.
[0026] First, the CPU 110 acquires the current position and / or posture (posture: 1) of the robot 200 from the robot 200 (step S102).
[0027] The CPU 110 refers to the control data of the task in the memory 120 and acquires the posture (posture: 2) of the robot 200 after the movement (step S104).
[0028] The CPU 110 causes the camera 300 to capture an image of the surroundings of the robot 200, and stores the captured image in the memory 120 (step S106).
[0029] Based on the captured image, the CPU 110 identifies the presence or absence of an obstacle, the position of the obstacle, and the area occupied by the obstacle (step S108).
[0030] The CPU 110 identifies the three-dimensional coordinates of multiple vertices of a polygon representing the shape of the robot 200 based on the current posture (posture: 1) of the robot 200 (step S110). For example, the CPU 110 identifies position coordinates of protruding parts of the outer periphery of the robot 200, such as the position (XT1, YT1, ZT1) of the vertex T at the top of the robot 200 and the position (XR1, YR1, ZR1) of the vertex R at the left end of the robot 200.
[0031] The CPU 110 identifies the three-dimensional positions of multiple vertices of the robot 200 based on the posture (posture: 2) after the robot 200 moves (step S112). For example, the CPU 110 identifies the position coordinates of protruding parts of the outer periphery of the robot 200, such as the position (XT2, YT2, ZT2) of the vertex T at the top of the robot 200 and the position (XR2, YR2, ZR2) of the vertex R at the left end of the robot 200.
[0032] The CPU 110 creates a first rectangular parallelepiped that includes all vertices of the current posture (posture: 1) of the robot 200 and all vertices of the posture (posture: 2) after the robot 200 has moved (step S114).
[0033] The CPU 110 creates a second rectangular parallelepiped that contains the first rectangular parallelepiped with a buffer provided. In this embodiment, the CPU 110 calculates the distance between the current posture (posture: 1) and the posture after movement (posture: 2) for each vertex of the robot 200, and selects the longest distance. The CPU 110 forms a second rectangular parallelepiped by lengthening each side of the first rectangular parallelepiped by the corresponding distance (step S116).
[0034] The CPU 110 determines whether or not an obstacle exists inside the second rectangular parallelepiped (step S118).
[0035] If no obstacle is present inside the second rectangular parallelepiped (NO in step S120), the CPU 110 starts the movement of the robot 200 (step S122).
[0036] If an obstacle is present inside the second rectangular parallelepiped (YES in step S120), CPU 110 stops the movement of robot 200 and notifies other devices or the like of error information via communication interface 160 (step S124). CPU 110 may output the error information from display 130 or speaker 150. <Second embodiment>
[0037] In the above embodiment, whether or not the robot 200 will collide with an obstacle is determined based on a second rectangular parallelepiped that contains a first rectangular parallelepiped that includes vertices of the current position and / or posture (posture: 1) of the robot 200 and vertices of the position and / or posture after movement (posture: 2). In the present embodiment, even if it is determined that an obstacle exists within the second rectangular parallelepiped, it is further determined again whether or not the robot 200 will collide with an obstacle based on a rectangular parallelepiped based on the vertices of the current position (posture: 1) and the vertices of the position during movement, or a rectangular parallelepiped based on the vertices of the position during movement and the vertices of the position after movement (posture: 2).
[0038] First, referring to FIG. 4(A), in this embodiment, the control device 100 calculates the current position of each vertex of the robot 200, the position of each vertex during movement, and the position of each vertex after movement based on the current posture of the robot 200 (posture: 1), the posture of the robot 200 while moving (posture: 1-1), the posture of the robot 200 while moving (posture: 1-2), and the posture after movement (posture: 2).
[0039] Referring to FIG. 4(B), the control device 100 defines a third rectangular parallelepiped that includes all of the current vertices of the robot 200 and all of the vertices during movement, defines a fifth rectangular parallelepiped that includes all of the vertices of the robot 200 during movement and all of the vertices while moving, and defines a seventh rectangular parallelepiped that includes all of the vertices of the robot 200 during movement and all of the vertices after the movement.
[0040] 4(C), the control device 100 defines a fourth rectangular parallelepiped that contains the third rectangular parallelepiped, a sixth rectangular parallelepiped that contains the fifth rectangular parallelepiped, and an eighth rectangular parallelepiped that contains the seventh rectangular parallelepiped. The fourth, sixth, and eighth rectangular parallelepipeds contain the third, fifth, and seventh rectangular parallelepipeds and are one size larger than the third, fifth, and seventh rectangular parallelepipeds.
[0041] Then, the control device 100 identifies the position of another obstacle based on the image from the camera 300, and judges whether or not the obstacle is present within the fourth, sixth, or eighth rectangular parallelepiped. If the obstacle is not present inside any of the fourth, sixth, or eighth rectangular parallelepipeds, the control device 100 judges that there is a low possibility of collision, and permits the movement of the robot 200. If the obstacle is present inside any of the fourth, sixth, or eighth rectangular parallelepipeds, the control device 100 judges that there is a high possibility that the robot 200 will collide with the obstacle during movement, and performs processing such as stopping the movement and notifying other systems of that fact.
[0042] The following describes the process when an obstacle is present within the second rectangular parallelepiped, that is, the process when the answer is YES in step S120 in Fig. 3. CPU 110 executes the following process according to the program in memory 120.
[0043] 4 and 5, the CPU 110 identifies a first posture (posture: 1-1) and a second posture (posture: 1-2) during the movement of the robot 200 as positions or timing between the current position (posture: 1) of the robot 200 and the position after the movement (posture: 2) (step S130).
[0044] The CPU 110 calculates the position of each vertex of the robot 200 based on the first posture (posture: 1-1) during the movement of the robot 200 (step S132).
[0045] The CPU 110 calculates the position of each vertex of the robot 200 based on the second posture (posture: 1-2) during the movement of the robot 200 (step S134).
[0046] The CPU 110 creates a third rectangular parallelepiped that includes all of the vertices of the current position (posture: 1) of the robot 200 and all of the vertices of the first position (posture: 1-1) during the movement of the robot 200 (step S136).
[0047] The CPU 110 defines a fourth rectangular parallelepiped that contains the third rectangular parallelepiped (step S138). The fourth rectangular parallelepiped contains the third rectangular parallelepiped and is one size larger than the third rectangular parallelepiped. For example, the CPU 110 defines the fourth rectangular parallelepiped as a rectangular parallelepiped in which each side of the third rectangular parallelepiped is extended by the longest distance among the distances from the current position (posture: 1) to the first position (posture: 1-1).
[0048] CPU 110 identifies the position of another obstacle based on the image from camera 300, and determines whether or not the obstacle exists within the fourth rectangular parallelepiped (step S140).
[0049] The CPU 110 defines a fifth rectangular parallelepiped that includes all of the vertices of the first position (posture: 1-1) during the movement of the robot 200 and all of the vertices of the second position (posture: 1-2) during the movement of the robot 200 (step S142).
[0050] The CPU 110 defines a sixth rectangular parallelepiped that contains the fifth rectangular parallelepiped (step S144). The sixth rectangular parallelepiped contains the fifth rectangular parallelepiped and is one size larger than the fifth rectangular parallelepiped.
[0051] CPU 110 identifies the position of another obstacle based on the image from camera 300, and determines whether or not the obstacle exists within the sixth rectangular parallelepiped (step S146).
[0052] The CPU 110 defines a seventh rectangular parallelepiped that includes all of the vertices of the second position (posture: 1-2) during the movement of the robot 200 and all of the vertices of the position (posture: 2) after the movement of the robot 200 (step S148).
[0053] The CPU 110 defines an eighth rectangular parallelepiped that contains the seventh rectangular parallelepiped (step S150). The eighth rectangular parallelepiped contains the seventh rectangular parallelepiped and is one size larger than the seventh rectangular parallelepiped.
[0054] CPU 110 identifies the position of another obstacle based on the image from camera 300, and determines whether or not the obstacle exists within the eighth rectangular parallelepiped (step S152).
[0055] If there is no obstacle within the fourth rectangular parallelepiped, no obstacle within the sixth rectangular parallelepiped, and no obstacle within the eighth rectangular parallelepiped (NO in step S154), the CPU 110 determines that there is a low possibility that the robot 200 will collide with an obstacle, and allows the robot 200 to move (step S156).
[0056] If an obstacle is present within the fourth rectangular parallelepiped (YES in step S154), CPU 110 further divides the area between the current position (posture: 1) and the first position (posture: 1-1) during movement to define a rectangular parallelepiped (step S158), and determines whether an obstacle is present within the rectangular parallelepiped (step S160).
[0057] If an obstacle is present within the sixth rectangular parallelepiped (YES in step S154), CPU 110 further divides the area between the first position (posture: 1-1) during movement and the second position (posture: 1-2) during movement to define a rectangular parallelepiped (step S158), and determines whether an obstacle is present within the rectangular parallelepiped (step S160).
[0058] If an obstacle is present within the eighth rectangular parallelepiped (YES in step S154), CPU 110 further divides the area between the second position (posture: 1-2) during movement and the position after the movement (posture: 2) to define a rectangular parallelepiped (step S158), and determines whether an obstacle is present within the rectangular parallelepiped (step S160).
[0059] In this way, if it is determined that no obstacles exist within any of the rectangular parallelepipeds (YES in step S160), the CPU 110 determines that the robot 200 is unlikely to collide with an obstacle, and allows the robot 200 to move (step S156).
[0060] Conversely, for a rectangular parallelepiped determined to collide, CPU 110 repeats collision determination while dividing the corresponding movement path (step S164). If the possibility of collision with an obstacle remains even after a predetermined division step, CPU 110 performs processing such as stopping movement and notifying other systems (step S166).
[0061] The condition for terminating the division process may be to set an upper limit on the number of divisions, or to end the process when the movement distance (maximum value) of each joint between before and after the movement and the angle (maximum value) of each joint falls below a certain threshold value.
[0062] Here, the distance between the current position (posture: 1) and the position after movement (posture: 2) is divided into two points or timings, i.e., a first position during movement (posture: 1-1) and a second position during movement (posture: 1-2), but it may also be divided into one point or timing, or into three or more points or timings.
[0063] Alternatively, the posture and movement path may be divided so that the movement distance is within a preset distance, and collision detection may be performed sequentially. Specifically, when moving the robot from posture 1 to posture 2, the movement path may be divided into predetermined units (for example, postures 1.1, 1.2, 1.3 ... 1.9 may be created before collision confirmation), and the robot may move to posture 2 while performing collision detection at postures 1.1, 1.2, and 1.3. <Third embodiment>
[0064] In the above embodiment, the control device 100 extends the lengths of the sides of the first, third, fifth, and seventh rectangular parallelepipeds based on the movement distance of the vertex that has moved the most to generate the second, fourth, sixth, and eighth rectangular parallelepipeds. However, the method of providing buffers around the first, third, fifth, and seventh rectangular parallelepipeds is not particularly limited.
[0065] For example, the CPU 110 of the control device 100 may convert the first, third, fifth, and seventh rectangular prisms into second, fourth, sixth, and eighth rectangular prisms by extending the length of each side based on the travel distance of any vertex at the tip of the robot 200.
[0066] Alternatively, the CPU 110 of the control device 100 may extend the first, third, fifth, and seventh rectangular prisms a predetermined percentage in the positive or negative direction of the X-axis, a predetermined percentage in the positive or negative direction of the Y-axis, and a predetermined percentage in the positive or negative direction of the Z-axis, depending on the rotation angle of the robot 200, to form the second, fourth, sixth, and eighth rectangular prisms. <Fourth embodiment>
[0067] In the above embodiment, the presence, position, and area of other objects are identified using the camera 300. However, the method of identifying the position and area of other objects is not limited to the above method. For example, it is not limited to the form using the camera 300. The positions and postures of each part, tool, and other robots related to the currently executed task may be registered in the memory 120.
[0068] In this case, in step S108, CPU 110 acquires the positions, postures, and existing areas of each part, tool, and robot from memory 120. Alternatively, in step S406, CPU 110 acquires the positions, postures, and existing areas of each part, tool, and robot from another device such as a robot via communication interface 160. Then, CPU 110 determines whether each part, tool, and robot is inside the second rectangular parallelepiped (step S118).
[0069] Of course, while CPU 110 determines the location of other objects from the image of camera 300, CPU 110 may also determine the location of other objects based on data from memory 120 or other devices. <Fifth embodiment>
[0070] Furthermore, other objects or obstacles may move or change their posture. For example, the robot control system 1 may include a plurality of robots 200, 200, .... More specifically, in this embodiment, the CPU 110 of the control device 100 reads out, for example, a program for a task to be executed next according to the program in the memory 120, and executes the process shown in FIG.
[0071] First, the CPU 110 acquires the current position and / or posture (posture: 1) of the first robot 200 from the first robot 200 (step S502).
[0072] The CPU 110 refers to the task control data in the memory 120 and acquires the post-movement position and posture (posture: 2) of the first robot 200 (step S504).
[0073] The CPU 110 identifies the three-dimensional coordinates of a plurality of vertices of a polygon representing the shape of the first robot 200 based on the current position and posture (posture: 1) of the first robot 200 (step S510).
[0074] The CPU 110 identifies the three-dimensional positions of a plurality of vertices of the second robot 200 based on the position and posture (posture: 2) after the second robot 200 has moved (step S512).
[0075] The CPU 110 creates a first rectangular parallelepiped that includes all vertices of the current posture (posture: 1) of the first robot 200 and all vertices of the posture (posture: 2) after the first robot 200 has moved (step S514).
[0076] CPU 110 creates a second rectangular parallelepiped that contains the first rectangular parallelepiped with a buffer provided (step S516).
[0077] In this embodiment, this process is also performed for the second robot 200 and the third robot 200 (steps S502 to S516).
[0078] The CPU 110 determines whether or not the second rectangular parallelepipeds of the robots interfere with each other (step S518).
[0079] If the second rectangular parallelepipeds of the robots do not interfere with each other (NO in step S520), CPU 110 starts the movement of robot 200 (step S522).
[0080] If the second rectangular parallelepipeds of the robots interfere with each other (YES in step S420), CPU 110 stops the movement of robot 200 and notifies other devices or the like of error information via communication interface 160 (step S424). CPU 110 may output the error information from display 130 or speaker 150.
[0081] As in the second embodiment, when the second rectangular parallelepipeds of the robots interfere with each other (YES in step S420), the CPU 110 creates third, fifth, and seventh rectangular parallelepipeds for each robot based on the vertices during the movement as shown in FIG. 5 (steps S136, S142, and S148). The CPU 110 creates fourth, sixth, and eighth rectangular parallelepipeds that contain them (steps S138, S144, and S150). The CPU 110 determines whether the third rectangular parallelepipeds of the robots interfere with each other (step S140), whether the fifth rectangular parallelepipeds of the robots interfere with each other (step S146), and whether the seventh rectangular parallelepipeds of the robots interfere with each other (step S152). Then, if the fourth, sixth, and eighth rectangular parallelepipeds of each robot do not interfere with each other (NO in step S154), CPU 110 starts the movement of robot 200 (step S156).
[0082] If the fourth, sixth, and eighth rectangular parallelepipeds of each robot interfere with each other (YES in step S154), CPU 110 creates further rectangular parallelepipeds based on vertices during the movement of the interfering rectangular parallelepipeds, and repeats the determination of whether or not there is interference (step S158 and subsequent steps). Sixth embodiment
[0083] Some or all of the roles of the devices such as the control device 100 and the robot 200 in the robot control system 1 of the above embodiment may be performed by other devices. For example, some of the roles of the control device 100 may be performed by the robot 200, the role of the control device 100 may be performed by multiple personal computers, or the information processing of the control device 100 may be performed by a server on a cloud. <Summary>
[0084] In the above embodiment, a robot control system is provided that includes a robot and a control device. The control device identifies the position of another object, identifies a second rectangular parallelepiped that contains a first rectangular parallelepiped that includes the positions of multiple vertices of the robot before movement and the positions of multiple vertices of the robot after movement, and moves the robot when there is no other object within the second rectangular parallelepiped.
[0085] Preferably, when there is another object within the second cuboid, the control device identifies a fourth cuboid including a third cuboid containing the positions of the multiple vertices of the robot before movement and the positions of the multiple vertices of the robot while moving, identifies a sixth cuboid including a fifth cuboid containing the positions of the multiple vertices of the robot while moving and the positions of the multiple vertices of the robot after movement, and moves the robot when there is no other object within either the fourth or sixth cuboid.
[0086] Preferably, when there is another object in the fourth cuboid, the control device creates a cuboid for the vertices obtained by further dividing the area between before movement and during movement, and allows the robot to move if there is no other object within the cuboid, and when there is another object in the sixth cuboid, the control device creates a further cuboid for the vertices obtained by further dividing the area between during movement and after movement, and allows the robot to move if there is no other object within the cuboid.
[0087] Preferably, when there is another object within the rectangular parallelepiped after being divided the predetermined number of times, the control device outputs predetermined information without moving the robot.
[0088] Preferably, the other object is a second robot. The control device determines the position of the other object by acquiring the position of the second robot.
[0089] Preferably, the robot control system further comprises a camera, and the control device determines the position of the other object based on an image from the camera.
[0090] In the above embodiment, a control device is provided that includes a communication interface for communicating with a robot, a memory, and a processor. The processor identifies the position of another object, identifies a second rectangular parallelepiped that contains a first rectangular parallelepiped that includes the positions of multiple vertices of the robot before movement and the positions of multiple vertices of the robot after movement, and moves the robot when there is no other object within the second rectangular parallelepiped.
[0091] In the above embodiment, a method for controlling a robot is provided, comprising the steps of: a step in which a control device identifies the position of another object; a step in which a second rectangular prism that contains a first rectangular prism that includes the positions of multiple vertices of the robot before movement and the positions of multiple vertices of the robot after movement; and a step in which the robot moves if there is no other object within the second rectangular prism.
[0092] The embodiments disclosed herein should be considered to be illustrative and not restrictive in all respects. The scope of the present invention is defined by the claims, not the above description, and is intended to include all modifications within the scope and meaning equivalent to the claims. [Explanation of symbols]
[0093] 1: Robot control system 100: Control device 110: CPU 120: Memory 130: Display 140:Operation unit 150: Speaker 160: Communication interface 200: Robot 300: Camera
Claims
1. Robots and a control device; The control device includes: Identify the area of space occupied by other objects, A robot control system which identifies a first rectangular parallelepiped that contains the positions of multiple vertices of the robot before movement and the positions of the multiple vertices of the robot after movement, identifies a second rectangular parallelepiped that contains the single first rectangular parallelepiped and is larger than the single first rectangular parallelepiped by a predetermined amount, and moves the robot if the other object is not present within the second rectangular parallelepiped.
2. When the other object is present within the second rectangular parallelepiped, the control device Identifying a fourth rectangular parallelepiped including a third rectangular parallelepiped including positions of a plurality of vertices of the robot before the movement and positions of the plurality of vertices of the robot during the movement; Identifying a sixth rectangular parallelepiped including a fifth rectangular parallelepiped including positions of a plurality of vertices of the robot during movement and positions of the plurality of vertices of the robot after the movement; The robot control system according to claim 1 , wherein the robot is moved when the other object is not present within either the fourth or sixth rectangular parallelepiped.
3. The control device includes: If the other object is present in the fourth rectangular parallelepiped, a rectangular parallelepiped is created with respect to vertices obtained by further dividing the area between before the movement and during the movement, and if the other object is not present in the rectangular parallelepiped, the movement of the robot is permitted; The robot control system according to claim 2, further comprising: a robot control unit that, when the other object is present in the sixth rectangular parallelepiped, creates a further rectangular parallelepiped for vertices obtained by further dividing the area between during the movement and after the movement, and moves the robot when the other object is not present within the further rectangular parallelepiped.
4. 4. The robot control system according to claim 3, wherein the control device outputs predetermined information without moving the robot when the other object is present within the rectangular parallelepiped after the rectangular parallelepiped has been divided a predetermined number of times.
5. the other object is a second robot, 5. A robot control system according to claim 1, wherein the area occupied in the space is a second rectangular prism that contains a first rectangular prism that includes the positions of multiple vertices of the second robot before movement and the positions of the multiple vertices of the second robot after movement.
6. Equipped with a camera, The robot control system according to claim 1 , wherein the control device identifies a position of the other object based on an image from the camera.
7. a communication interface for communicating with the robot; Memory, a processor; The processor, Locate other objects, A control device that identifies a first rectangular parallelepiped that contains the positions of multiple vertices of the robot before movement and the positions of the multiple vertices of the robot after movement, identifies a second rectangular parallelepiped that contains the single first rectangular parallelepiped and is larger than the single first rectangular parallelepiped by a predetermined amount, and moves the robot if the other object is not present within the second rectangular parallelepiped.
8. a controller determining a location of the other object; Identifying a first rectangular parallelepiped that includes positions of a plurality of vertices of the robot before movement and positions of the plurality of vertices of the robot after movement; Identifying a second rectangular parallelepiped that contains the one first rectangular parallelepiped and is larger than the one first rectangular parallelepiped by a predetermined amount; and moving the robot when the other object is not present within the second rectangular parallelepiped.
Citation Information
Patent Citations
Robot system and robot control method
JP2018149627A
Interference determination method, interference determination system, and computer program
JP2019025621A
Interference determination method, interference determination system, and computer program
JP2019084649A
Robot control device and automatic assembly system
JP2019123022A
Visual-based obstacle detection method and apparatus for mobile robot
US20150314443A1
