Mobile robot, mobile control device, method and program
Patent Information
- Application Number
- JP2023546710
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Filing Date
- 2021-09-13
- Publication Date
- 2025-03-05
- Estimated Expiration
- 2041-09-13
AI Technical Summary
【0011】 本発明によれば、ロボット間の通信量を抑えながら、ロボット間の衝突回避と通信維持を行うことができる。
Smart Images

Figure 0007639926000004 
Figure 0007639926000005 
Figure 0007639926000006
Abstract
Description
[Technical field]
[0001] The present invention relates to a mobile robot, a mobile control device, and a method thereof. program This relates to the technical field. [Background technology]
[0002] A system in which multiple robots work in cooperation is called a multi-agent system. In a multi-agent system, the robots communicate with each other to achieve coordinated behavior. Among the cooperative behaviors, actions to keep the robots safe include avoiding collisions between robots and maintaining communication. In Non-Patent Document 1, in order to avoid collisions between robots, the distance between robots is set to a predetermined safe distance D s In order to avoid getting too close and to maintain communication, the distance between the robots is set to a predetermined effective communication distance D. c We disclose a technique for controlling the movement of each robot so that they do not get too far apart. This technique assumes that each robot knows the position and speed of the other robots in real time. [Prior art documents] [Non-patent literature]
[0003] [Non-Patent Document 1] Multi-objective compositions for collision-free connectivity maintenance in teams of mobile robots. Wang, L., Ames, A. D, & Egerstedt, M. In Decision and Control (CDC), 2016 IEEE 55th Conference on, pages 2659-2664, 2016. IEEE. [Non-Patent Document 2] A. Shinnoh, NY Chong and G. Lee, "Communication packet loss concealment for pattern generation with robotic swarms," 2015 IEEE International Conference on Advanced Intelligent Mechatronics (AIM), 2015, pp. 537-542, doi: 10.1109 / AIM.2015.7222590. Summary of the Invention [Problem to be solved by the invention]
[0004] When many robots communicate simultaneously in a single space, the amount of communication in the space becomes enormous. This causes packet collisions that result in packet loss, making real-time communication difficult.
[0005] In addition, the premise disclosed in Non-Patent Document 1, that is, that each robot knows the position and speed of other robots in real time, no longer holds true. Therefore, the technology disclosed in Non-Patent Document 1 cannot avoid collisions and maintain communication when the number of robots increases. Non-Patent Document 2 discloses a technique for predicting current information from information acquired by a robot when information about another robot cannot be acquired due to a communication failure. However, with this technique, the position and speed of the other robot acquired when communication fails are predictions. With this technique, if the prediction is incorrect, collision avoidance and communication maintenance may not be achieved.
[0006] One of the objectives of the present disclosure is to provide a mobile robot, a mobile control device, a method, and program The purpose of this project is to provide [Means for solving the problem]
[0007] (1) The present disclosure relates to a mobile robot that includes a control unit that performs movement control to move in a desired direction while remaining within a movable area that represents an area in which the robot itself and another robot can communicate without colliding, and a movable area calculation unit that calculates, based on a state of the robot itself and a state of the other robot, a first area in which the robot itself and another robot will not collide, a second area in which the robot itself and another robot can communicate, and the movable area where the first area and the second area overlap.
[0008] (2) The present disclosure relates to a movement control device that includes a movable area calculation unit that calculates, based on a state of a first robot and a state of a second robot, a first area in which the first robot and the second robot will not collide, a second area in which the first robot and the second robot can communicate, and the movable area in which the first area and the second area overlap.
[0009] (3) The present disclosure is a method for performing movement control to move in a desired direction while remaining within a movable area that represents an area in which the robot and another robot can communicate without colliding, and for calculating, from the state of the robot and the state of the other robot, a first area in which the robot and another robot will not collide, a second area in which the robot and another robot can communicate, and the movable area where the first area and the second area overlap.
[0010] (4) The present disclosure is a storage medium that stores a program that executes a process of performing movement control to move in a desired direction while remaining within a movable area that represents an area in which the robot and another robot can communicate without colliding, and calculating, from the state of the robot and the state of the other robot, a first area in which the robot and another robot will not collide, a second area in which the robot and another robot can communicate, and the movable area where the first area and the second area overlap. Effect of the Invention
[0011] According to the present invention, it is possible to avoid collisions between robots and maintain communication while suppressing the amount of communication between the robots. [Brief description of the drawings]
[0012] [Figure 1] 1 is a schematic diagram of a system according to a first embodiment. [Diagram 2] 1 is a schematic block diagram of a robot according to an embodiment of the present invention. [Diagram 3] FIG. 4 is a diagram showing an example of information data according to the embodiment; [Figure 4] FIG. 4 is a conceptual diagram illustrating an example of a movable area according to the present embodiment. [Diagram 5] FIG. 11 is a conceptual diagram illustrating another example of a movable area according to the embodiment. [Figure 6] 4 is a flowchart of one cycle of each robot according to the present embodiment. [Figure 7] FIG. 11 is a diagram illustrating an example of movement of a plurality of robots according to the present embodiment. [Figure 8] 11 is a flowchart showing the processing of a robot whose movement has been impeded according to the present embodiment. [Figure 9] 10 is a flowchart showing a process of a robot that receives data that needs to be returned according to the present embodiment. [Figure 10] 10 is a flowchart showing a process of a robot that receives data that does not require a reply according to the present embodiment. [Figure 11] FIG. 11 is a schematic block diagram of a robot according to a second embodiment. [Figure 12] FIG. 2 is a schematic block diagram of a mobile control device according to each embodiment. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
[0013] First Embodiment FIG. 1 is a schematic diagram of a system according to the first embodiment. In this figure, the system has a robot A, a robot B, and a robot C. The robots A, B, and C (each of which is called a robot 1) are each capable of moving and communicating with each other. S1The area surrounded by the solid line MA represents the area where robot A can move and will not collide with robot B. S2 The area surrounded by the dashed line MA is the area where robot B can move and will not collide with robot A. C1 The area surrounded by the dashed line MA represents the area where communication between Robot A and Robot B is possible. C2 The area surrounded by indicates the area where communication between Robot A and Robot C is possible.
[0014] Each robot 1 stores a movable area within which it can move. The movable area is an area within which the robots do not collide with each other and can communicate with each other. In other words, the movable area represents an area within which a robot can move without colliding with other robots and without losing communication with the other robots. However, the movable area may also represent an area within which a robot can move without colliding with other robots and without losing communication with the system. Even if two robots in a system cannot communicate directly with each other, communication in the system will not be lost if they can communicate via one or more other robots. In FIG. 1, a robot A is located in a movable area MA A The robot B stores the movable area MA B Remember. If robot A can maintain communication with robots B and C, communication with the entire system can be maintained. In this case, the movable area MA A For example, in the area MA S1 , area MA C1 , and area MA C2 In other words, the movable area MA A is the area in which robot A can communicate with robots B and C without colliding with robot B. B For example, in the area MA S2 , and area MA C1 In other words, the movable area MA Bis the area in which robot B can communicate with robot A without colliding with robot A.
[0015] The robot 1 performs movement control to move in a desired direction while remaining within the stored movable area. The robot 1 judges whether or not it needs to communicate with other robots 1. The robot 1 communicates with other robots and calculates the movable area from the received information of the other robots. For example, robot A compares robots B and C and determines that it is necessary to communicate with robot C, which restricts the movement of robot A. Robot A communicates with another robot C, and calculates the movable area of robot A from the information of the other robot C received. In FIG. 1, the area in which robot A and robot C can communicate with each other by moving is the area MA received last time. C2 The area MA' received this time C2 As a result, the robot A moves to the movable area MA A In the area MA' C2 The movable area MA' that is created by the movement of A (Area hatched with vertical lines) to create a large movable area (area MA S1 , area MA C1 , and the area MA' C2 overlapping area), which may allow for a wider range of movement.
[0016] 2 is a schematic block diagram of a robot according to this embodiment. One robot 1 in the system includes a movable area storage unit 10, a control unit 11, a driving unit 12, a communication determination unit 13, a communication unit 14, and a movable area calculation unit 15. In addition to these components, the robot 1 may include at least one of the components that a robot has, such as a driving unit that moves the robot 1, an imaging unit such as a camera, an output unit that outputs sound and display, and a gripping unit that grips an object.
[0017] The movable area storage unit 10 stores an area in which the robot 1 can move. The movable area may be, for example, within a circle with a radius of 5 and a center point at the coordinate (10,0), or an area that is a distance of 2 or more away from a line that passes through the point (7,0) and has an inclination of 60 degrees, or an area in which these areas overlap. The coordinates are a coordinate system that the robot 1 recognizes in advance, and the inclination may be the deviation angle of the polar coordinates (the angle between the x-axis and the line). The unit of length of the coordinates may be meters or centimeters. If the robot 1 can move three-dimensionally, the movable area may be, for example, within a sphere with a radius of 5 and a center point at the coordinate (10,0), or an area that is a distance of 2 or more away from a plane that passes through the point (7,0) and is perpendicular to the vector (1,1,1), or an area in which these areas overlap. The way in which the movable area is represented is not limited to a circle, a sphere, a straight line, or a flat plane, but may be a polygon, a curved surface, an ellipse, a polyhedron, or the like.
[0018] The movable area is configured so that the robot 1 can maintain communication with the other robots 1 without colliding with them by remaining within its own movable area. Details of the movable area will be described later when explaining the movable area calculation unit 15. When each robot 1 needs to maintain communication with two or more other robots 1 without colliding with them, the movable area storage unit 10 stores, for each other robot 1, an area in which communication can be maintained without colliding with the other robots 1 as the movable area. In this case, for example, a tag that identifies the other robots 1 is attached to the movable area.
[0019] For example, assume that the multi-agent system has three robots, robot A, robot B, and robot C, each of which is a robot 1. In this case, the information stored in the movable area storage unit 10 in robot A is, for example, (B, Q), (C, Q'). Here, B and C in the first item in parentheses are tags indicating robot B and robot C, respectively. Q in the second item is the movable area for robot A, and indicates the area in which robot A can communicate with robot B without colliding with robot B. Q' is the movable area for robot A, and indicates the area in which robot A can communicate with robot C without colliding with robot C. Therefore, information (B, Q) indicates that in order for robot A to maintain communication with robot B without colliding with robot B, robot A must remain within movable area Q. Information (C, Q') indicates that in order for robot A to maintain communication with robot C without colliding with robot C, robot A must remain within movable area Q'.
[0020] The control unit 11 controls the movement of the robot 1. For example, the control unit 11 calculates a control input for controlling the robot 1 to move to a destination. For example, the control input is the coordinates of the destination of the robot 1. Furthermore, the control unit 11 corrects the control input so that the robot 1 stays within the movable area stored in the movable area storage unit 10. The correction of the control input so that the robot 1 stays within the area can be realized by regarding the boundary line (or surface) between the inside and outside of the movable area as an obstacle and applying an algorithm to avoid the obstacle.
[0021] As a specific example, assume that the information stored in the movable area storage unit 10 is (B, Q) (C, Q') (D, Q'') for robot A. The control unit 11 determines the control input so that robot A stays within all of the stored movable areas. In other words, the control unit 11 determines the control input so that robot A stays in the area indicated by areas Q, Q', and Q''. The driving unit 12 is driven by control based on a control input from the control unit 11 to move the robot 1. The driving unit 12 can also be said to be a steering device or a propulsion device. The driving unit 12 is, for example, a motor, a wheel, a shaft, a screw, etc.
[0022] The communication determination unit 13 determines whether or not robot A needs to communicate with other robots 1. The criterion for this determination (also referred to as the judgment criterion) is whether or not the movable area of robot A needs to be updated. As will be described later, when communication is performed between multiple robots 1, the movable area of each robot 1 is updated. Therefore, the communication determination unit 13 determines that it is necessary to communicate with other robots (for example, robots B, C, and D) at the time when it becomes necessary to update the movable area of a robot (for example, robot A) that is the target of control by the control unit 11.
[0023] For ease of explanation, the robot controlled by the control unit 11 is assumed to be "robot A." However, the process executed by the control unit in robot A is also executed in the other robots (for example, robot B, robot C, and robot D) in the same manner. The criterion for determining whether the movable area of robot A needs to be updated is, for example, an evaluation value that indicates the degree to which the movement of robot A is restricted due to the constraint of staying within the movable area of robot A. At this time, the communication determination unit 13 receives from the control unit 11 a control input for robot A to move to the destination and a control input after the control input has been corrected to stay within the movable area. Then, the communication determination unit 13 sets an evaluation value that indicates the difference between the original control input and the corrected control input.
[0024] An example of the evaluation method and the judgment criteria will be described using a specific example. Assume that the original control input vector is u and the corrected control input vector is u'. At this time, the communication determination unit 13 calculates an evaluation value representing the difference between the two control inputs, for example, by ||u-u'|| (||a|| represents the magnitude (2-norm) of a). Then, when the evaluation value is greater than a predetermined reference value, the communication determination unit 13 determines that movement is significantly restricted due to the movable area, and determines that communication is necessary. In other cases, that is, when the difference between the original control input and the corrected control input is equal to or less than the reference value, the communication determination unit 13 determines that communication is not necessary. Therefore, the predetermined reference represents a reference for determining whether communication is necessary (i.e., whether communication is necessary or not).
[0025] In addition to determining whether communication is necessary, the communication determination unit 13 may also determine which of the other robots 1 the robot A needs to communicate with. This determination may be performed, for example, in the following procedure. First, the communication determination unit 13 executes processing according to the same algorithm as that used by the control unit 11 to calculate the control input. When it is determined that communication is necessary, the communication determination unit 13 recalculates the corrected control input for each of the other robots 1 (for example, robot B, robot C, and robot D) by ignoring the movable area corresponding to the other robot A. For example, when ignoring the movable area corresponding to robot B, the communication determination unit 13 of robot A ignores area Q for robot B and calculates, as the corrected control input, a control input such that robot A stays in the area represented by area Q' for robot C and area Q'' for robot D. The communication determination unit 13 similarly calculates the corrected control input for each case when ignoring the movable areas corresponding to robots C and D. Then, the communication determination unit 13 compares the original control input with the corrected control input calculated while ignoring each robot 1. The communication determination unit 13 identifies the robot 1 that was ignored when the difference between the original control input and the corrected control input is the smallest as the robot 1 with which communication is required.
[0026] For example, suppose the original control input is (2,0) and the corrected control input is (1,0). Furthermore, suppose this corrected control input is information for robot A to stay in the area represented by areas Q, Q', and Q'' (the area where areas Q, Q', and Q'' overlap). Suppose the movable area storage unit 10 stores (B,Q), (C,Q'), and (D,Q''). At this time, the communication judgment unit 13 calculates the control input for robot A to stay in the area represented by area Q' for robot C and area Q'' for robot D. The communication judgment unit 13 calculates the control input for robot A to stay in the area represented by area Q for robot B and area Q'' for robot D. The communication judgment unit 13 calculates the control input for robot A to stay in the area represented by area Q for robot B and area Q' for robot C. The control inputs calculated as a result of such processing are (1,0), (1.5,0), and (1,0), respectively. In this case, the control input (1.5,0) is closest to the original control input (2,0). Therefore, the communication judgment unit 13 transmits information to robot C, which was not considered when calculating (1.5,0). Here, calculating the corrected control input for robot A while ignoring the movable area for a certain robot 1 (for example, robot C) is equivalent to communicating with robot C, updating the movable area for robot A, and confirming what the movement of robot A will be if the updated movable area does not impede the movement of robot A. Therefore, the fact that the original control input for robot A and the corrected control input when robot C is ignored are closest indicates that updating the movable area corresponding to robot C is likely to minimize the impediment of the movement of robot A.
[0027] The communication unit 14 transmits and receives information with other robots 1 (for example, robot B, robot C, and robot D). The communication unit 14 transmits information when the communication judgment unit 13 judges that communication is necessary. Meanwhile, the communication unit 14 is always in a state where it can receive information. The information data communicated (hereinafter referred to as "communication data") is information necessary for calculating the movable area, and one example is a tag representing the destination robot 1, the position and speed of the transmitting robot 1, and a flag indicating the need for a reply.
[0028] FIG. 3 is a diagram showing an example of communication data according to the present embodiment. In the example shown in this figure, the communication data includes information indicating the position, orientation, and speed of the transmitting robot 1, and a flag indicating whether or not a reply is necessary. In addition, the communication data is linked to a tag representing the transmitting robot 1.
[0029] Let us explain the elements of information. The tag representing the destination robot 1 is used to identify the communication partner. In the case of wireless communication, information transmitted by the communication unit 14 in the transmitting robot 1 reaches all robots 1 within the effective communication distance from the transmitting robot 1. For this reason, the transmitting robot 1 assigns a tag representing the destination robot 1 to the communication data. The communication unit 14 in the receiving robot 1 checks the tag for the destination, and if it is addressed to itself, accepts the communication data, and if not, rejects (ignores) the communication data, thereby realizing transmission and reception with a specific partner.
[0030] The position and speed of the robot 1 are information used in calculating the movable area. However, the information necessary for calculating the movable area is determined according to the motion model of the robot 1. Specifically, when a certain area is set, the information necessary for determining whether or not it is possible to remain within the area is the information necessary for calculating the movable area. For example, assume that robot 1 has a motion model that allows it to stop instantly on the spot. In this case, the information required to calculate the movable area is position. This is because if the set movable area includes the position of robot 1, robot 1 can remain in the movable area by stopping immediately at that position. Conversely, robot 1 cannot stay within the movable area if the set movable area does not include the position of robot 1. Therefore, if robot 1 has information on the position of robot 1, it can determine whether it can stay in the movable area based on whether the movable area includes that position.
[0031] On the other hand, if the robot 1 has a motion model that takes time to stop, the information required to calculate how far it will move until it stops is the position and speed. In this case, for example, the communication determination unit 13 determines whether it can stay within the movable area set by the following procedure. First, the communication determination unit 13 calculates a trajectory from the current position and speed until the robot 1 applies the brakes and stops. If the movable area includes the entire trajectory, the communication determination unit 13 determines that the robot 1 can stay within this movable area. Therefore, the communication determination unit 13 can determine whether the robot 1 can stay within the movable area from the information on the position and speed of the robot 1. In a robot 1 having a more complicated motion model, information on the acceleration of the robot 1 may be required as information to be communicated.
[0032] The flag indicating the need for a reply is information that represents one of two values, true or false. The communication judgment unit 13 in the robot 1 that receives the information judges that a reply is necessary if the flag is true, and that a reply is not necessary if the flag is false. When the robot 1 receives information, if the flag indicating the need for a reply in the information data is true, the communication unit 14 in the robot 1 transmits the information to the robot 1 that sent it. This information transmission is performed regardless of the judgment of the communication judgment unit 13. In other words, even if the communication judgment unit 13 judges that there is no need to transmit information, if the received data requires a reply, the communication unit 14 transmits the information.
[0033] The value of the flag indicating the need for a reply is determined as follows: 1) When the communication determining unit 13 determines that it is necessary to transmit information and transmits the information, the value of the flag is true. 2) When sending information in response to received data, the value of the flag is false. In 2), the information is sent without a reply because the current transmission itself is a reply and no further communication is required. Also, the communication unit 14 discards the received data that has already been replied to when the reply is completed.
[0034] The movable area calculation unit 15 calculates, for example, a movable area for robot A from the information received by the communication unit 14, and updates the area stored in the movable area storage unit 10 with the calculated movable area. The algorithm (process) for calculating the movable area has the states of the multiple robots 1 as input, and outputs, for example, the movable area for robot A. It is assumed that the algorithm (process) for calculating the movable area of each robot 1 is the same. In other words, it is assumed that the algorithm returns the same output for the same input. In other words, it is assumed that the algorithm does not have randomness. The algorithm (process) for calculating the movable area may be different between the multiple robots.
[0035] An example of an algorithm for calculating the movable area will be described below. The movable area calculation unit 15 executes processing in accordance with the algorithm (processing procedure). The inputs to the algorithm are the state of the robot itself (for example, robot A) and the state of the received robot 1 (for example, robot C). Here, the state of robot 1 is information such as position and speed contained in the communication data as described above with reference to Fig. 3. This information represents the robot information required to calculate the movable area of robot A. The movable area calculation unit 15 calculates the movable area for avoiding collisions and the movable area for maintaining communication from the input information. The conditions for each movable area are as follows.
[0036] -Conditions for the movable area to avoid collisions Safety distance D s An area that has two areas that are at least 100mm apart, and in each area only one robot 1 can remain. However, the distance between the areas refers to the shortest distance between two points selected one by one from within each area. -Conditions for the area of movement required to maintain communication The distance between any two points in the area is the effective communication distance D c An area that is below this and where both robots 1 can remain.
[0037] Safety distance D s and communication distance D c The definition of is as follows. The distance between robots 1 and 2 is the safe distance D s If the distance between the robots is equal to or greater than the effective communication distance D, no collision will occur. c When the collision-free movable area condition is satisfied, the distance between the two robots 1 and 2 is equal to or less than D. s In addition, when the conditions for the movable area for maintaining communication are satisfied, the distance between the two robots 1 and the condition is D c Communication will be maintained because:
[0038] In the algorithm for calculating the movable area, the movable area for avoiding collisions and the movable area for maintaining communication are calculated, and the overlapping area of these is calculated as the movable area. However, this is not limited to this, and in cases where there is no need to maintain communication with the other robot 1, the movable area for avoiding collisions may be output as the movable area. Furthermore, each calculated movable area satisfies the respective conditions and does not hinder the movement of the robot 1 as much as possible. A control barrier function, for example, can be used as a reference value for the degree to which movement is likely to be hindered. The control barrier function has a function called a barrier function, and when this barrier function is 0 or greater, the desired constraint is satisfied. Also, the larger the value of the barrier function, the more room there is until the constraint condition is reached.
[0039] An example of an algorithm for calculating a movable area will be described using a specific example. Assume that the robot can stop instantly and can move freely in any direction. In this case, the state of the robot 1 to be input may be only the position of the robot 1. Also, assume that the barrier function is a barrier function B(x,o) for obstacle avoidance.
[0040]
number
[0041] Here, x represents the position of the robot 1, o represents the position of the obstacle, and ||xo|| represents the distance between the robot 1 and the obstacle. Using the value calculated according to the process represented by this barrier function, the movable area calculation unit 15 determines an evaluation value representing the degree to which the movement of the robot 1 is hindered as follows:
[0042]
number
[0043] X represents the entire space in which robot 1 can move. Q represents a candidate for the movable area. Furthermore, x1 and x2 represent the respective positions of the two robots 1. This evaluation value represents the shorter of the shortest distances that the two robots 1 can take to get out of area Q. Therefore, when the movable area is updated to Q, in the shortest movement, one of the robots 1 will reach the edge of the movable area when it has moved the distance equal to the evaluation value, and will be hindered from moving because it will remain within the area. If the evaluation value is small, in the worst case, the movement of robot 1 will be immediately hindered, and if the evaluation value is large, even in the worst case, the movement of robot 1 will not be hindered.
[0044] The movable area calculation unit 15 can calculate the movable area that least likely impedes the movement of the robot 1 even in the worst case by solving the following optimization problem using an algorithm (processing procedure) for calculating the movable area.
[0045]
number
[0046] Here, the set Φ is a set of movable areas that satisfy the above movable area conditions. In this example, the states x1 and x2 of the robot 1 represent only the position, and the barrier function represents the distance between the obstacle and the robot 1. However, this is not limiting, and these settings may be changed according to the motion model of the robot 1. Even if the settings are changed, the movable area calculation unit 15 can calculate the optimal movable area by solving the above optimization problem in the same way.
[0047] In one example of this embodiment, the solutions to the respective optimization problems are determined as follows. FIG. 4 is a conceptual diagram showing an example of a movable area according to this embodiment. This diagram shows the optimal movable area to avoid collisions. Robot A and robot B are separated by a distance (D s The area that is more than 1 / 2 away is set as the movable area to avoid collision.
[0048] FIG. 5 is a conceptual diagram showing another example of a movable area according to this embodiment. This diagram shows an optimal movable area for maintaining communication. Robot A and robot B are located in a circle with a diameter D c The area within the circle (sphere) is set as the movable area for maintaining communication.
[0049] The movable area calculation unit 15 outputs the area where the two areas in Fig. 4 and Fig. 5 overlap as the movable area according to an algorithm (processing procedure) for calculating the movable area. For example, the processing procedure is as follows: B , and area MA S1 and area MA C1 This is the same as the process of outputting the overlapping area as a movable area.
[0050] 6 is a flowchart of one cycle of each robot 1 according to this embodiment. Each robot 1 continues to move in real time, and continues to repeat the flow of one cycle of the flowchart until it is stopped by being switched off or the like.
[0051] The control flow of the robot 1 will be described with reference to FIG. First, the control unit 11 in the robot 1 determines a control input for movement (step S101). At this time, the control unit 11 reads the movable area stored in the movable area storage unit 10, and determines the control input so that the robot 1 can stay in the read movable area. Next, the communication unit 14 checks whether there is communication data (illustrated in FIG. 3, also referred to as "received data") transmitted by another robot (step S102).
[0052] If there is received data (Yes in step S102), the movable area calculation unit 15 calculates a movable area based on the state of the robot 1 (i.e., the opponent robot) included in the received data and the current state of the own robot 1 (step S103). The movable area calculation unit 15 stores the calculated movable area in the movable area storage unit 10 (step S104). The communication unit 14 also refers to the received data (illustrated in FIG. 3) and checks whether a reply is necessary (step S105). If a reply is necessary (Yes in step S105), the communication unit 14 transmits information about the robot 1 (illustrated in FIG. 3) to the other robots (step S107). After that, the robot 1 ends one cycle of the flow (return to step S101). If a reply is necessary (No in step S105), the robot 1 ends one cycle of the flow (return to step S101).
[0053] On the other hand, if there is no received data (illustrated in FIG. 3) (No in step S102), the communication determination unit 13 determines whether or not it is necessary to transmit information about the robot 1 to the other robots (step S106). If it is necessary to transmit information (Yes in step S106), the communication unit 14 transmits information about the robot 1 to the other robots (step S107). Thereafter, the robot 1 ends one cycle of the flow (return to step S101). If it is not necessary to transmit information (No in step S106), the robot 1 ends one cycle of the flow (return to step S101).
[0054] A flow of achieving collision avoidance with a small number of communications in this embodiment will be described using a specific example.
[0055] FIG. 7 is a diagram showing an example of the movement of multiple robots according to this embodiment. FIG. 7 shows a flow where two robots A and B (robot 1) cross each other. The area hatched with diagonal lines to the left and the area hatched with diagonal lines to the right represent the movable areas of the two robots A and B, respectively. This movable area is a distance (D s / 2) or more away. 7A to 7F are arranged in chronological order, and each of 7A to 7F shows the position and movable area of robots A and B at that time. The arrows in 7A to 7F show the moving directions of robots A and B. Although omitted in FIG. 7, the movable area is actually divided into a circle outside the illustrated area. This reflects the movable area for maintaining communication, but in this example it is omitted because it does not affect the movement of robots A and B.
[0056] In the example shown in 7A of FIG. 7, robot A is moving in the direction of the position of robot B. Robot B is moving in the direction of the position of robot A. For convenience, the movable area of 7A is calculated from the positions of robots A and B in 7A. In other words, the dashed dotted line is the line segment M71 connecting the positions of the two robots A and B, and the dashed line L71 is the orthogonal bisector of the line segment M71, and the movable area is the distance (D s / 2) or more away.
[0057] In the example shown in 7B of Fig. 7, the movement of both robot A and robot B is beginning to be hindered in order for robots A and B to remain within their respective movable areas. The original control inputs are represented by dotted arrows D722 and D724, and the corrected (actual) control inputs to remain within the movable area are represented by arrows D721 and D723. Robot A in the upper left wants to move to the lower right, but in order to remain within the movable area, it moves to the upper right along the solid line L721 that represents the boundary of the area.
[0058] In 7C of Fig. 7, two robots A and B are approaching the boundary of the movable area, and are therefore barely able to move in the directions of arrows D732 and D734, respectively. At this time, the difference between the original control input and the corrected control input becomes larger than the reference value, and communication occurs between robots A and B. In the example of 7C, the original control inputs of robots A and B are represented by arrows D732 and D734, respectively. The corrected control inputs of robots A and B are represented by arrows D731 and D733, respectively.
[0059] Here, it is assumed that the difference between the original control input and the corrected control input becomes larger than the reference value in robot B before robot A, and the communication determination unit 13 determines that communication is necessary. The flow of processing in robot B at this time is shown in FIG. 8. The part shown in the solid line frame and solid lines in FIG. 8 is the processing executed in robot B at the upper left. Specifically, robot B performs the processes of steps S101, S102, S106, and S107.
[0060] The actual time for one cycle of the flow of robots A and B is short. Therefore, after robot B finishes its processing, robot A receives the information transmitted by robot B. The processing of robot A at this time is shown in FIG. 9. The part enclosed in a solid line and indicated by a solid line in FIG. 9 is the processing executed by robot A at the bottom right. Specifically, robot A performs the processing of steps S101, S102, S103, S104, S105, and S107. After the processing of robot A in Fig. 9 is completed, robot B receives the information transmitted by robot A. The processing of robot B at this time is shown in Fig. 10. The part enclosed in a solid line and indicated by a solid line in Fig. 10 is the processing executed by robot B in the upper left. Specifically, robot B performs the processing of steps S101, S102, S103, S104, and S105.
[0061] These communication processes are short compared to the movement speeds of robots A and B, so there is no need to consider the movements of robots A and B during the communication time. Robot B and robot A calculate the movable area using the positions of the two robots A and B as input. The algorithm for calculating the movable area produces one output for a certain input. Therefore, the two robots A and B calculate the same movable area and update the movable area stored in the movable area storage unit 10 to the calculated movable area.
[0062] 7D in Fig. 7 shows the movable areas at the timing after two round-trip communications have been performed. In the example shown in 7D, the movable areas of two robots A and B have been updated. In 7E of Fig. 7, two robots A and B are approaching the boundary of the updated movable area, and movement in the direction of arrow D754 and the direction of arrow D752, respectively, is hindered. At this time, the difference between the original control input represented by arrows D752 and D754 and the corrected control input represented by arrows D751 and D753 becomes larger than the reference value, so robot A and robot B communicate with each other. Therefore, back-and-forth communication occurs again between robot A and robot B. Then, the movable areas of robot A and robot B are updated. 7F in Fig. 7 shows the state after the movable areas have been updated. The two robots A and B can move in the desired direction without being hindered by the movable areas. As described above, in the example shown in FIG. 7, the two robots A and B do not collide with each other through a total of three round-trip communications.
[0063] Thus, in this embodiment, the control unit 11 performs movement control to move in a desired direction while remaining within a movable area that represents an area in which the robot can communicate with the other robot without colliding with each other. The movable area calculation unit 15 calculates a first area in which the robot can communicate with the other robot without colliding with each other, a second area in which the robot can communicate with the other robot, and a movable area where the first area and the second area overlap, based on the state of the robot and the state of the other robot. As a result, in the system according to this embodiment, it is possible to avoid collisions between the robots 1 and maintain communication while suppressing the amount of communication between the robots 1.
[0064] In this embodiment, the movable area storage unit 10 stores the movable area within which the robot 1 can move. The control unit 11 controls the movement of the robot 1 so that the robot 1 moves in a desired direction while remaining within the movable area. The communication determination unit 13 determines whether communication with at least one other robot 1 is necessary based on the state of the other robots 1 and the state of the robot 1. When the communication determination unit 13 determines that communication is necessary, the communication unit 14 communicates with the other robot 1. The movable area calculation unit 15 calculates the movable area from the received information of the other robots. As a result, in the system according to this embodiment, it is possible to avoid collisions between the robots 1 and maintain communication while suppressing the amount of communication between the robots 1.
[0065] In this embodiment, the movable area calculation unit 15 calculates either the first area or the second area, or both, from the state of the other robot 1 and the state of the robot itself received by the communication unit 14, and calculates an area where either or both of the calculated areas overlap as the movable area. Here, the first area is an area that has two areas separated by a safe distance or more, and where only one robot 1 can stay in each area (a movable area to avoid collision). The second area is an area where the distance between any two points in the area is equal to or less than the effective communication distance, and where both of the two robots 1 can stay (a movable area to maintain communication).
[0066] In this embodiment, the control unit 11 calculates a control input for moving to the destination. The communication determination unit 13 compares a first control input (control input before correction) in the case where the constraint of staying within the movable area is removed with a second control input (control input after correction) in the case where the robot stays within the movable area, and determines whether communication with at least one of the other robots is necessary based on the comparison result.
[0067] This may allow the robot 1 to expand its movement range while suppressing the amount of communication between the robots 1 and allowing a plurality of robots 1 to maintain communication without colliding with each other.
[0068] Furthermore, in this embodiment, the communication determination unit 13 determines that communication with at least one other robot 1 is necessary when the difference between the first control input and the second control input is greater than a threshold value.
[0069] Furthermore, in this embodiment, the movable area calculation unit 15 calculates the movable area of the robot 1 based on the state of the other robot 1 and the state of the robot 1, and stores the calculated movable area in the movable area storage unit 10. When it is determined that communication is necessary, the communication determination unit 13 identifies the other robot 1 that most restricts the movable area of the robot 1. The communication determination unit 13 instructs the communication unit 14 to communicate with the identified other robot. The communication unit 14 communicates with the other robot 1 identified by the communication determination unit 13.
[0070] This allows the robot 1 to avoid collisions and maintain communication between the robots 1 while reducing the amount of communication between the robots 1, and may be able to maximize the range of movement based on the results received from the other identified robots 1.
[0071] <Second embodiment> The second embodiment will be described below. 11 is a schematic block diagram of a robot 1a according to the second embodiment. The robot 1a is different from the robot 1 of the first embodiment in that the communication unit 14 is replaced with a communication unit 14a.
[0072] The communication unit 14a in the second embodiment exchanges the following communication data. Specifically, the communication data is information such as a tag representing the destination robot 1, the position and speed of the transmitting robot 1, a flag indicating the need for a reply, and a movable area. The communication data may include information different from the information described above. The communication data does not necessarily need to include all of the data described above. The communication data in the second embodiment includes the communication data as described above in the first embodiment and a "movable area." The data on the movable area is used when returning a response, and is not used at any other time.
[0073] A specific process will be described. When the robot 1a judges that communication is necessary by the communication judgment unit 13 and transmits information, the movable area in the communication data may be blank. The robot 1a that receives this communication data calculates the movable area by executing a process similar to that shown in the first embodiment. Then, when replying, the robot 1a includes the calculated movable area in the communication data, and conversely, sets the information on the position and speed of the transmitting robot 1a to blank before transmitting the communication data. The robot 1a (for example, the communication unit 14a, but it may also be the movable area calculation unit 15) that receives this communication data stores the movable area in the received communication data in the movable area storage unit 10 and updates the movable area. In other words, by communicating the movable area calculated by one robot 1a to the other robot 1a, the other robot 1a does not need to calculate its own movable area. The other robot 1a updates its movable area with the movable area in the received communication data.
[0074] The data representing the movable area may be, for example, the vertices of a polygon recorded in a clockwise order, the center coordinates of a circle, or the point through which a line passes and its inclination. The area represented by the vertices of a polygon is the internal area when the vertices in the data are connected in order. The area represented by the center coordinates of a circle is the diameter D centered on the center coordinates in the data. c The area indicated by the point and the slope of the line is a distance (D s / 2) or more away.
[0075] Thus, in this embodiment, the communication unit 14a acquires communication data including the movable area of the other robot 1a, and stores this movable area in the movable area storage unit 10. As a result, in the system according to this embodiment, when updating the movable area, it is sufficient for at least one robot 1a to calculate the movable area, and the movable area can be updated efficiently.
[0076] <Third embodiment> In the third embodiment, the setting of the movable area is expanded. In the first and second embodiments, the movable area is assumed to be an area that does not change with time. In the third embodiment, the movable area is assumed to be an area that changes with time. Also, in each embodiment, the movable area may be a mixture of an area that does not change and an area that changes with time. Also, the movable area may be set to one of these areas at a certain point in time, and the other area or both areas may be set at another point in time.
[0077] For example, a circular movable area that changes over time is expressed by the center coordinates and the moving speed of the center coordinates. For example, in the xy coordinate system, the center coordinates are (0,0) and the speed of the center coordinates is (1m / s,0m / s). This is the diameter D that moves 1m per second from the origin (0,0) in the positive direction of the x axis. c represents the movable area within the circle. Note that m is meters and m / s is meters per second. In addition, for example, a movable area represented by a straight line can be expressed as changing over time by adding an angular velocity to the point through which the line passes and the inclination of the line. This means that the line rotates by the angular velocity as time passes, centered on the point through which the line passes. This rotation changes the inclination of the line, and this expresses the change over time of the movable area.
[0078] A movable area that changes with time is useful when the movement direction of the robot 1 and the robot 1a can be predicted to some extent, for example when the robots 1 and 1a move in formation. In other words, if the movable area that changes with time is calculated so as not to impede the predicted movement of the robots 1 and 1a, communication is unnecessary as long as the robots 1 and 1a move as predicted. As a result, the amount of communication is reduced.
[0079] Fig. 12 is a schematic block diagram of a movement control device S1 according to each embodiment. The movement control device S1 is mounted on a robot. The movement control device S1 may have at least one of the components of Fig. 2 or Fig. 11 or other components in addition to the components of Fig. 12. The movable area calculation unit 15 calculates, from the state of the first robot and the state of the second robot, a first area in which the first robot and the second robot will not collide, a second area in which the first robot and the second robot can communicate, and the movable area where the first area and the second area overlap.
[0080] In each of the above embodiments, the robot may transmit information to the other robot to adjust the movable area or adjust or stop the communication range. For example, the first robot may transmit information to the other second robot inquiring whether the second robot can move in the direction of the first robot, and if the second robot can move in that direction, the first robot may move the second robot in that direction. The first robot may also instruct the other second robot to expand its communication range in the direction of the position of the first robot or the control input, for example by expanding the communication range (strengthening the radio waves, increasing the number of antennas) or changing the direction of the radio wave beam.
[0081] The first robot may also transmit information to the other second robot inquiring whether to end communication, and if communication is to be ended, may stop communication with the second robot. This allows the first robot to set a movable area ignoring the other second robot with which communication has been stopped, and may enable the first robot to expand its range of movement. Thereafter, when the first robot and the other second robot get closer to each other (for example, when the radio wave strength becomes stronger than when communication was stopped), communication may be resumed.
[0082] The functions of the robot and the movement control device S1 in the above-mentioned embodiment may be realized by a computer. In that case, a program for realizing the functions of this device may be recorded in a computer-readable recording medium, and the program recorded in the recording medium may be read into a computer system and executed to realize the functions. The term "computer system" as used herein includes hardware such as an OS (operating system) and peripheral devices. The term "computer-readable recording medium" refers to portable media such as flexible disks, optical magnetic disks, ROMs (Read Only Memory), and CD-ROMs (compact disc read-only memory), and storage devices such as hard disks built into a computer system. Furthermore, the term "computer-readable recording medium" may include a medium that dynamically holds a program for a short period of time, such as a communication line when a program is transmitted via a network such as the Internet or a communication line such as a telephone line, and a medium that holds a program for a certain period of time, such as a volatile memory inside a computer system that is a server or client in that case. The above-mentioned program may be a program for realizing part of the above-mentioned functions, or may be a program that can realize the above-mentioned functions in combination with a program already recorded in the computer system.
[0083] The above program may also be transmitted from a computer system in which the program is stored in a storage device or the like to another computer system via a transmission medium, or by transmission waves in the transmission medium. Here, the "transmission medium" that transmits the program refers to a medium that has the function of transmitting information, such as a network (communication network) such as the Internet or a communication line (communication line) such as a telephone line. The above program may also be for realizing part of the above-mentioned functions. Furthermore, it may be a so-called difference file (difference program) that can realize the above-mentioned functions in combination with a program already recorded in the computer system. Furthermore, each component of the robot 1, 1a, and the movement control device S1 may be realized by a plurality of devices. The plurality of devices may realize each component by performing communication. The plurality of devices may include a user terminal.
[0084] Although an embodiment of the present invention has been described in detail above with reference to the drawings, the specific configuration is not limited to this embodiment, and designs that do not deviate from the gist of the present invention are also included. [Industrial Applicability]
[0085] The present disclosure can be used, for example, in mobile robots, management systems for mobile robots, cars, ships, airplanes, submarines, drones, or integrated circuits mounted thereon (e.g., CPUs (Central Processing Units) and communication chips) or programs executed thereon. [Explanation of symbols]
[0086] 1, 1a, A, B, C... robot, 10... movable area storage unit, 11... control unit, 13... communication determination unit, 14, 14a... communication unit, 15... movable area calculation unit
Claims
1. a control unit that performs movement control for moving in a desired direction while remaining within a movable area that represents an area in which the self robot and another robot can communicate with each other without colliding with each other; a movable area calculation unit that calculates, based on a state of the own robot and a state of the other robot, a first area in which the own robot and the other robot will not collide, a second area in which the own robot and the other robot can communicate with each other, and the movable area in which the first area and the second area overlap; a communication determination unit that determines whether communication with at least one of the other robots is necessary based on a state of the robot itself and a state of the other robots; a communication unit that communicates with at least one of the other robots when the communication determination unit determines that communication is necessary; A mobile robot comprising:
2. a control unit that performs movement control for moving in a desired direction while remaining within a movable area that represents an area in which the self robot and another robot can communicate with each other without colliding with each other; a movable area calculation unit that calculates, based on a state of the own robot and a state of the other robot, a first area in which the own robot and the other robot will not collide, a second area in which the own robot and the other robot can communicate with each other, and the movable area in which the first area and the second area overlap; Equipped with the first area has two areas separated by a safe distance or more, and each area is allowed to contain only one robot; The second area is an area in which the distance between any two points within the area is equal to or less than the effective communication distance and in which both robots can remain. Mobile robot.
3. The control unit calculates a control input for moving to the destination, The communication determination unit compares a first control input in a case where the restriction of staying within the movable area is removed with a second control input in a case where the robot stays within the movable area, and determines whether communication with at least one of the other robots is necessary based on a comparison result. The mobile robot of claim 1 .
4. The communication determination unit determines that communication with at least one of the other robots is necessary when a difference between a first control input and a second control input is greater than a threshold value. The mobile robot according to claim 3.
5. When it is determined that communication is necessary, the communication determination unit identifies the other robot that most restricts the movable area of the own robot, The communication unit communicates with the other robot identified by the communication determination unit. The mobile robot of claim 1 .
6. The control unit calculates a control input for moving to the destination, The communication determination unit identifies, for each other robot, the other robot with which communication is required, based on a control input when the other robot is excluded. The mobile robot according to claim 5.
7. a movable area calculation unit that calculates, based on a state of the first robot and a state of the second robot, a first area in which the first robot and the second robot will not collide, a second area in which the first robot and the second robot can communicate with each other, and a movable area in which the first area and the second area overlap; a communication determination unit that determines whether or not communication with at least one of the second robots is necessary based on a state of the first robot and a state of the second robot; a communication unit that communicates with at least one of the second robots when the communication determination unit determines that communication is necessary; A mobile control device comprising:
8. performing movement control for moving in a desired direction while remaining within a movable area that represents an area in which the robot itself and the other robots can communicate with each other without colliding with each other; calculating a first area in which the host robot and the other robot will not collide with each other, a second area in which the host robot and the other robot can communicate with each other, and the movable area in which the first area and the second area overlap, based on a state of the host robot and a state of the other robot; determining whether communication with at least one of the other robots is necessary based on a state of the own robot and a state of the other robots; When it is determined that communication is necessary, the robot communicates with at least one of the other robots. method.
9. performing movement control for moving in a desired direction while remaining within a movable area that represents an area in which the robot itself and the other robots can communicate with each other without colliding with each other; executing a process of calculating a first area in which the own robot and the other robot will not collide with each other, a second area in which the own robot and the other robot can communicate with each other, and the movable area in which the first area and the second area overlap, based on a state of the own robot and a state of the other robot; determining whether communication with at least one of the other robots is necessary based on a state of the own robot and a state of the other robots; When it is determined that communication is necessary, the robot communicates with at least one of the other robots. program.
10. a movable area calculation unit that calculates, based on a state of the first robot and a state of the second robot, a first area in which the first robot and the second robot will not collide, a second area in which the first robot and the second robot can communicate with each other, and a movable area in which the first area and the second area overlap, the first area has two areas separated by a safe distance or more, and each area is allowed to contain only one robot; The second area is an area in which the distance between any two points within the area is equal to or less than the effective communication distance and in which both robots can remain. Mobile control device.
Citation Information
Patent Citations
Robot controller, robot control system, and robot control method
JP2019003510A
Group robot system and method of controlling same
KR101450843B1