Robot control system, robot control method, and program

JP2025027492AActive Publication Date: 2025-02-28TOYOTA JIDOSHA KK
View PDF 5 Cites 0 Cited by

Patent Information

Application Number
JP2023132244
Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
Filing Date
2023-08-15
Publication Date
2025-02-28
Estimated Expiration
2043-08-15

AI Technical Summary

Benefits of technology

【0008】 本発明により、液体入りの容器を保持しているロボットの移動を制御する新たな技術が提供される。

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 2025027492000001_ABST
    Figure 2025027492000001_ABST
Patent Text Reader

Abstract

To provide a novel art which controls movement of a robot holding a container containing a liquid.SOLUTION: A robot 100 holds a container 10 containing a liquid 20 with an arm 120. A robot control system predicts displacement of the liquid 20 in the container 10 and gradually increases a speed of the robot 100 while controlling impedance in a horizontal direction of the arm 120 on the basis of the prediction. The prediction of the displacement of the liquid 20 is performed by using a machine learning model.SELECTED DRAWING: Figure 1
Need to check novelty before this filing date? Find Prior Art

Description

[Technical field]

[0001] The present invention relates to a robot control system, a robot control method, and a program. [Background technology]

[0002] Robots equipped with arms capable of holding objects have been developed. For example, Patent Document 1 discloses a robot that can smoothly hand over an object it is holding to a user. [Prior art documents] [Patent documents]

[0003] [Patent Document 1] Patent Publication No. 2021-171900 Summary of the Invention [Problem to be solved by the invention]

[0004] Patent Document 1 does not mention controlling the movement of a robot in a case where the robot holds a container containing liquid. The present invention provides a new technology for controlling the movement of a robot holding a container containing liquid. [Means for solving the problem]

[0005] The robot control system of the present invention has an impedance control unit that predicts the displacement of liquid in a container that will occur when a robot holding a container with an arm is moving at a first speed and the speed of the robot is changed to a second speed faster than the first speed, and controls the magnitude of the horizontal impedance of the arm based on the result of the prediction, and a movement control unit that changes the speed of the robot to the second speed in response to a decrease in the horizontal impedance of the arm.

[0006] A robot control method according to the present invention is executed by a computer and includes an impedance control step of predicting a displacement of liquid in a container that occurs when a robot holding a container by an arm moves at a first speed and the speed of the robot is changed to a second speed faster than the first speed, and controlling a magnitude of impedance in a horizontal direction of the arm based on a result of the prediction, and a movement control step of changing the speed of the robot to the second speed in response to a decrease in the impedance in the horizontal direction of the arm.

[0007] The program of the present invention causes a computer to execute an impedance control step of predicting the displacement of liquid in a container that will occur when a robot holding a container with an arm is moving at a first speed and the speed of the robot is changed to a second speed faster than the first speed, and controlling the magnitude of the horizontal impedance of the arm based on the result of the prediction, and a movement control step of changing the speed of the robot to the second speed in response to a decrease in the horizontal impedance of the arm. Effect of the Invention

[0008] The present invention provides a new technique for controlling the movement of a robot holding a container containing liquid. [Brief description of the drawings]

[0009] [Figure 1] FIG. 2 is a diagram illustrating an example of an outline of the operation of the robot control system according to the embodiment. [Diagram 2] FIG. 2 is a diagram illustrating an example of a functional configuration of a robot control system. [Diagram 3] FIG. 2 is a block diagram illustrating a hardware configuration of a computer that realizes the robot control system. [Figure 4] FIG. 2 is a block diagram illustrating a hardware configuration of the robot. [Diagram 5]1 is a flowchart illustrating a flow of a process executed by a robot control system according to an embodiment. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

[0010] Hereinafter, an embodiment of the present disclosure will be described in detail with reference to the drawings. In each drawing, the same or corresponding elements are given the same reference numerals, and duplicated explanations are omitted as necessary for clarity of explanation. Furthermore, unless otherwise specified, predetermined values ​​such as predetermined values ​​and threshold values ​​are stored in advance in a storage device accessible from a system or device that uses the values. Furthermore, unless otherwise specified, the storage unit is composed of one or more arbitrary number of storage devices.

[0011] <Summary> Fig. 1 is a diagram illustrating an example of an outline of the operation of a robot control system according to an embodiment. Fig. 1 shows an example of the operation of the robot control system. The operation of the robot control system is not limited to the operation shown in Fig. 1. The robot control system can also be called a robot control device.

[0012] The robot 100 is a robot controlled by a robot control system. The robot 100 is configured to be movable. For example, the robot 100 has a running part 110 including wheels, caterpillar tracks, and the like.

[0013] The robot 100 further includes an arm 120. The arm 120 includes a holder 130 capable of holding an object. The holder 130 is configured, for example, to be able to grip an object. In another example, the holder 130 is configured so that an object can be placed thereon.

[0014] In this embodiment, the robot 100 holds the container 10 containing the liquid 20 in the holder 130. The container 10 is any container capable of holding a liquid, such as a glass, a mug, or a flask. The liquid 20 is any liquid, such as water or alcohol. The container 10 is not sealed. Therefore, the liquid 20 may spill from the container 10.

[0015] The robot control system moves the robot 100 to a destination point while preventing the liquid 20 from spilling out of the container 10, with the container 10 held by the holder 130. Here, if a target speed is set for the robot 100, the robot control system makes the speed of the robot 100 approach the target speed under the condition that the liquid 20 does not spill out of the container 10. On the other hand, if a target speed is not set for the robot 100, for example, the robot control system makes the speed of the robot 100 as fast as possible under the condition that the liquid 20 does not spill out of the container 10. Hereinafter, unless otherwise specified, it is assumed that a target speed is set for the robot 100.

[0016] Here, the smaller the impedance of the arm 120 in the horizontal direction, the less likely the liquid 20 in the container 10 held by the arm 120 will vibrate due to acceleration / deceleration accompanying the movement of the robot 100. Therefore, by reducing the impedance of the arm 120 in the horizontal direction, the liquid 20 is less likely to spill out of the container 10.

[0017] On the other hand, the smaller the impedance of the arm 120 in the horizontal direction, the slower the speed that can be set for the robot 100. Therefore, the impedance of the arm 120 in the horizontal direction must be determined taking into consideration the speed of the robot 100. Specifically, it is preferable that the impedance of the arm 120 in the horizontal direction be set to be as small as possible within the limit at which the robot 100 can move at a desired speed.

[0018] Therefore, the robot control system gradually decreases the impedance of the arm 120 in the horizontal direction while moving the robot 100 around the starting point, and gradually increases the speed of the robot 100. In this way, the speed of the robot 100 can be increased while preventing the liquid 20 from spilling from the container 10.

[0019] More specifically, the robot control system determines whether the speed of the robot 100 has reached a target speed, and predicts the displacement of the liquid 20 relative to the container 10 that will occur if the speed of the robot 100 is made faster than the current speed. By predicting the displacement of the liquid 20 relative to the container 10, it is possible to predict whether the liquid 20 will spill from the container 10. Here, information indicating the target speed of the robot 100 is stored in advance in, for example, a storage unit accessible from the robot control system.

[0020] If the speed of the robot 100 has not reached the target speed and it is predicted that the liquid 20 will not spill from the container 10 even if the speed of the robot 100 is made faster than the current speed, the robot control system decreases the impedance in the horizontal direction of the arm 120. Furthermore, the robot control system makes the speed of the robot 100 faster than the current speed. Note that if it is predicted that the liquid 20 will spill from the container 10 if the speed of the robot 100 is made faster than the current speed, the robot control system may increase the impedance in the horizontal direction of the arm 120.

[0021] If the speed of the robot 100 has reached the target speed, or if making the robot 100 faster than the current speed is predicted to cause the liquid 20 to spill from the container 10, the robot control system moves the robot 100 to the destination at the current speed.

[0022] The robot control system 200 according to the embodiment will be described in more detail below.

[0023] <Example of functional configuration> Fig. 2 is a diagram illustrating an example of the functional configuration of a robot control system. In the example of Fig. 2, the robot control system 200 has a movement control unit 210 and an impedance control unit 220. The movement control unit 210 controls the movement of the robot 100. The impedance control unit 220 controls the magnitude of the impedance of the arm 120 in the horizontal direction.

[0024] More specifically, the impedance control unit 220 predicts the displacement of the liquid 20 relative to the container 10 that occurs when the speed of the robot 100 is made faster than the current speed, and controls the horizontal impedance of the arm 120 based on the result of the prediction. For example, when it is predicted that the liquid 20 will not spill from the container 10 even if the speed of the robot 100 is made faster than the current speed, the impedance control unit 220 reduces the horizontal impedance of the arm 120. In response to the impedance control unit 220 reducing the horizontal impedance of the arm 120, the movement control unit 210 makes the speed of the robot 100 faster than the current speed.

[0025] As described above, there may be a case where a target speed is determined for the robot 100. In this case, the impedance control unit 220 reduces the horizontal impedance of the arm 120 when it is predicted that the liquid 20 will not spill from the container 10 even if the speed of the robot 100 is increased beyond the current speed, and the speed of the robot 100 is less than the target speed.

[0026] <Example of Hardware Configuration of Robot Control System 200> Each functional component of the robot control system 200 may be realized by hardware that realizes each functional component (e.g., hardwired electronic circuitry, etc.), or may be realized by a combination of hardware and software (e.g., a combination of an electronic circuitry and a program that controls it, etc.). Below, a further explanation will be given of the case where each functional component of the robot control system 200 is realized by a combination of hardware and software.

[0027] 3 is a block diagram illustrating an example of a hardware configuration of a computer 500 that realizes the robot control system 200. The computer 500 is any computer. For example, the computer 500 is an integrated circuit mounted on the robot 100 or a mobile terminal. The integrated circuit is, for example, a SoC (System on Chip) or a SiP (System in Package). The mobile terminal is, for example, a smartphone or a tablet terminal.

[0028] Alternatively, the computer 500 may be, for example, a PC (Personal Computer), a server machine, or a mobile terminal that is provided outside the robot 100. When the computer 500 is provided outside the robot 100, for example, the computer 500 controls the robot 100 by communicating with the robot 100 via a network.

[0029] The computer 500 may be a dedicated computer designed to implement the robot control system 200, or may be a general-purpose computer.

[0030] For example, by installing a specific application on the computer 500, each function of the robot control system 200 is realized by the computer 500. The application is configured with a program for realizing each functional component of the robot control system 200. The method of acquiring the program is arbitrary. For example, the program can be acquired from a storage medium (such as a DVD disk or a USB memory) in which the program is stored. Alternatively, for example, the program can be acquired by downloading the program from a server device that manages the storage device in which the program is stored.

[0031] The computer 500 has a bus 502, a processor 504, a memory 506, a storage device 508, an input / output interface 510, and a network interface 512. The bus 502 is a data transmission path for the processor 504, the memory 506, the storage device 508, the input / output interface 510, and the network interface 512 to transmit and receive data to and from each other. However, the method of connecting the processor 504 and other components to each other is not limited to a bus connection.

[0032] The processor 504 is one of various processors such as a central processing unit (CPU), a graphics processing unit (GPU), or a field-programmable gate array (FPGA). The memory 506 is a main storage device realized using a random access memory (RAM) or the like. The storage device 508 is an auxiliary storage device realized using a hard disk, a solid state drive (SSD), a memory card, a RAM, or a read only memory (ROM) or the like.

[0033] The input / output interface 510 is an interface for connecting the computer 500 to an input / output device. For example, an input device such as a keyboard and an output device such as a display device are connected to the input / output interface 510. In addition, for example, various sensors provided in the robot 100 are connected to the input / output interface 510.

[0034] The network interface 512 is an interface for connecting the computer 500 to a network. This network may be a LAN (Local Area Network) or a WAN (Wide Area Network).

[0035] The storage device 508 stores a program (a program that realizes the above-mentioned application) that realizes each functional component of the robot control system 200. The processor 504 reads this program into the memory 506 and executes it to realize each functional component of the robot control system 200. In addition, the storage device 508 may store various other information necessary for controlling the robot 100, such as a target speed of the robot 100, for example.

[0036] The robot control system 200 may be realized by one computer 500, or may be realized by multiple computers 500. In the latter case, the configurations of the computers 500 do not need to be the same, and may be different from each other.

[0037] <Example of the hardware configuration of the robot 100> 4 is a block diagram illustrating an example of a hardware configuration of the robot 100. In the example of FIG.

[0038] The robot 100 includes a running unit 110, an arm 120, an environmental sensor 140, a monitoring sensor 150, and a computer 500. The running unit 110 is a hardware element for moving the robot 100. For example, the running unit 110 includes wheels 112 and an actuator 114. The actuator 114 controls the direction and rotation speed of the wheels 112 based on a control signal received from the computer 500. This allows the robot 100 to move in a desired direction and at a desired speed.

[0039] The arm 120 is a hardware element for holding an object, etc. The arm 120 has an actuator 122 and a six-axis force sensor 124. The actuator 122 controls the movement of the arm 120, the attitude of the arm 120, and the impedance of the arm 120, based on a control signal received from the computer 500. The six-axis force sensor 124 detects the load in each of three mutually perpendicular axial directions and the moment around each of the three axes.

[0040] The arm 120 further has a holding unit 130. The holding unit 130 has an actuator 132 and a six-axis force sensor 134. The actuator 132 controls the operation of the holding unit 130 and the attitude of the holding unit 130 based on a control signal received from the computer 500. The six-axis force sensor 134, like the six-axis force sensor 124, detects loads in three mutually perpendicular axial directions and moments around each of the three axes.

[0041] The environmental sensor 140 is used to sense the environment around the robot 100. For example, the environmental sensor 140 is a camera or a distance measurement sensor. For example, the distance measurement sensor is a lidar or a depth camera. The sensing data generated by the environmental sensor 140 is used for, for example, detecting obstacles and estimating the self-position of the robot 100.

[0042] The monitoring sensor 150 is used to monitor the state of the container 10 and the liquid 20. For example, as described below, whether or not the liquid 20 will spill from the container 10 is predicted based on the distance between the liquid level of the liquid 20 and the upper end of the container 10. In this case, the monitoring sensor 150 is, for example, a camera or a distance sensor whose sensing range includes the liquid level of the liquid 20 and the upper end of the container 10.

[0043] Each sensor provided in the robot 100 generates sensing data representing the result of sensing. Each sensing data is transmitted to the computer 500.

[0044] <Processing flow> 5 is a flowchart illustrating the flow of processing executed by the robot control system 200 according to the embodiment. Steps S102 to S108 constitute a loop process L1. The loop process L1 is repeatedly executed while a predetermined repetition condition is satisfied.

[0045] When a target speed is set for the robot 100, the repetition condition is that both of the first condition, "the displacement of the liquid 20 relative to the container 10 that occurs when the speed of the robot 100 is made faster than the current speed, satisfies a predetermined condition," and the second condition, "the speed of the robot 100 is less than the target speed," are satisfied. On the other hand, when a target speed is not set for the robot 100, the repetition condition is that the first condition is satisfied.

[0046] In S102, the impedance control unit 220 determines whether or not the repetition condition is satisfied. If the repetition condition is satisfied, the impedance control unit 220 reduces the impedance of the arm 120 in the horizontal direction (S104). Furthermore, the movement control unit 210 increases the speed of the robot 100 (S106). Since S108 is the end of the loop process L1, the process in FIG. 5 transitions to S102.

[0047] If the repetition condition is not satisfied in S102, the robot control system 200 ends the execution of the loop process L1. Then, the movement control unit 210 moves the robot 100 toward the destination point at the current speed (S110).

[0048] <Processing before starting movement of the robot 100> The robot control system 200 sets the impedance of the arm 120 in the vertical direction so that the arm 120 can hold the container 10 horizontally. To this end, the robot control system 200 estimates the weight and moment applied to the arm 120 by the container 10. Here, the weight and moment can be estimated using, for example, sensing data obtained from a six-axis force sensor 134 provided in the holding unit 130. Note that various existing methods can be used as a specific method for estimating the weight and moment applied to the robot arm using the sensing data.

[0049] The robot control system 200 sets the impedance of the arm 120 in the vertical direction so as to keep the container 10 horizontal, based on the weight and moment applied to the holder 130. Here, "keeping the container 10 horizontal" means, for example, keeping the top surface of the container 10 horizontal, or keeping the bottom surface of the container 10 horizontal.

[0050] Here, when only the aspect of keeping the container 10 horizontal is taken into consideration, it is preferable to maximize the impedance in the vertical direction of the arm 120. However, if the impedance in the vertical direction of the arm 120 is made too large, it becomes difficult to move the arm 120 flexibly.

[0051] Therefore, for example, the robot control system 200 reduces the impedance of the arm 120 in the vertical direction to the extent that the container 10 can be kept horizontal. This allows the arm 120 to move flexibly while keeping the container 10 horizontal.

[0052] In addition, various existing methods can be used as a specific method for calculating the magnitude of the vertical impedance required to keep an object held by the robot's arm horizontal, based on the weight and moment applied to the robot's arm.

[0053] <Determining whether the repetition condition is satisfied: S102> The impedance control unit 220 determines whether or not a predetermined repetition condition is satisfied (S102). As described above, when a target speed is set for the robot 100, the repetition condition is that both a first condition that "the displacement of the liquid 20 relative to the container 10, which occurs when the speed of the robot 100 is made faster than the current speed, satisfies a predetermined condition" and a second condition that "the speed of the robot 100 is less than the target speed" are satisfied.

[0054] The impedance control unit 220 determines whether or not the speed currently set for the robot 100 (in other words, the speed most recently set for the robot 100 by the movement control unit 210) is less than the target speed for the robot 100. This makes it possible to determine whether or not the second condition is satisfied.

[0055] A method for determining whether or not the first condition is satisfied will be described below.

[0056] As described above, the first condition is a condition that "the displacement of the liquid 20 relative to the container 10, which occurs when the speed of the robot 100 is made faster than the current speed, satisfies a predetermined condition." The predetermined condition regarding the displacement of the liquid 20 represents a condition that is satisfied, for example, when the liquid 20 does not spill from the container 10. In this case, the first condition can also be expressed as "the liquid 20 does not spill from the container 10 even if the speed of the robot 100 is made faster than the current speed."

[0057] When the speed of the robot 100 is increased, the surface of the liquid 20 is more likely to vibrate. Therefore, in a situation where the distance between the surface of the liquid 20 and the upper end of the container 10 is small, if the speed of the robot 100 is increased from the current speed, there is a high probability that the liquid 20 will spill out of the container 10. In other words, in a situation where the distance between the surface of the liquid 20 and the upper end of the container 10 is sufficiently large, there is a low probability that the liquid 20 will spill out of the container 10 even if the speed of the robot 100 is increased from the current speed.

[0058] Therefore, for example, a condition regarding the relationship between the liquid level of the liquid 20 and the container 10 is defined as a more specific condition expressing the first condition. For example, the first condition is defined as "the distance between the liquid level of the liquid 20 and the upper end of the container 10 is equal to or greater than a threshold value." Another example of the first condition is defined as "the ratio of the height of the liquid level of the liquid 20 to the depth of the container 10 is equal to or less than a threshold value." Here, the depth of the container 10 can be expressed as the height of the upper end of the container 10 with the bottom surface of the container 10 as a reference. Also, the height of the liquid level of the liquid 20 can be expressed with the bottom surface of the container 10 as a reference.

[0059] Here, the threshold value used in the first condition is preferably determined based on the speed of the robot 100. This is because the faster the speed of the robot 100, the longer the distance between the surface of the liquid 20 and the upper end of the container 10 is preferably.

[0060] Therefore, for example, information associating the speed of the robot 100 with a threshold value (hereinafter, threshold value information) is stored in advance in a storage unit accessible from the impedance control unit 220. The impedance control unit 220 acquires a threshold value corresponding to the speed to be next set for the robot 100 by the movement control unit 210 from the threshold value information.

[0061] For example, assume that the current speed of the robot 100 is s, and the value to be added next to the speed of the robot 100 by the movement control unit 210 is a. In this case, the impedance control unit 220 acquires the threshold value associated with s+a in the threshold value information. In this way, the robot control system 200 can predict whether the liquid 20 will spill from the container 10 when the speed of the robot 100 is set to s+a.

[0062] Here, in order to determine whether the first condition is satisfied, the impedance control unit 220 uses sensing data obtained from the monitoring sensor 150. For example, the monitoring sensor 150 is a camera. The camera simultaneously captures images of the inner wall of the container 10 and the liquid surface of the liquid 20. The impedance control unit 220 uses a captured image generated as a result of the capture to calculate a value required for determining whether the first condition is satisfied.

[0063] When the first condition that "the distance between the level of the liquid 20 and the upper end of the container 10 is equal to or greater than a threshold value" is used, the value required to determine whether the first condition is met is the distance between the level of the liquid 20 and the upper end of the container 10. On the other hand, when the first condition that "the ratio of the height of the level of the liquid 20 to the depth of the container 10 is equal to or less than a threshold value" is used, the values ​​required to determine whether the first condition is met are the depth of the container 10 and the height of the level of the liquid 20.

[0064] Here, when the surface of the liquid 20 is vibrating, the surface of the liquid 20 is not horizontal, and therefore the distance between the surface of the liquid 20 and the upper end of the container 10 varies depending on the position. Therefore, for example, the impedance control unit 220 calculates the distance between the surface of the liquid 20 and the upper end of the container 10 for a plurality of locations, and uses a statistical value (for example, a maximum value or an average value) of the plurality of calculated distances as the distance between the surface of the liquid 20 and the upper end of the container 10. The same applies to the case where the height of the surface of the liquid 20 is calculated.

[0065] Furthermore, when the level of the liquid 20 is vibrating, the distance between the level of the liquid 20 and the upper end of the container 10 changes over time. Therefore, for example, the impedance control unit 220 acquires a plurality of captured images from the camera, and calculates the distance between the level of the liquid 20 and the upper end of the container 10 for each captured image. Then, the impedance control unit 220 uses a statistical value (for example, a maximum value or an average value) of the plurality of calculated distances as the distance between the level of the liquid 20 and the upper end of the container 10. The same applies to the height of the level of the liquid 20.

[0066] The calculation of the distance between the liquid level of the liquid 20 and the upper end of the container 10 may be performed using a machine learning model. In this case, the impedance control unit 220 has a machine learning model (hereinafter referred to as the calculation model) that is pre-trained to calculate the distance between the liquid level of the liquid 20 and the upper end of the container 10.

[0067] The calculation model is pre-trained using a plurality of training data. The training data includes, for example, a captured image in which the inner wall of the container and the liquid in the container are captured as input data. The training data also includes data indicating the distance between the liquid level of the liquid and the upper end of the container as correct output data (ground-trugh data). Here, various existing techniques can be used for the technique of training a machine learning model using a pair of input data and correct output data.

[0068] The monitoring sensor 150 used to grasp the relationship between the upper end of the container 10 and the height of the liquid level of the liquid 20 is not limited to a camera. For example, the monitoring sensor 150 may be a distance measuring sensor such as a lidar.

[0069] <Horizontal impedance control: S104> When the repetition condition is satisfied, the impedance control unit 220 decreases the horizontal impedance of the arm 120 (S104). For example, the impedance control unit 220 controls the arm 120 so that the magnitude of the horizontal impedance of the arm 120 becomes smaller by a predetermined reduction amount a than the current value. In addition, for example, the impedance control unit 220 controls the arm 120 so that the horizontal impedance of the arm 120 becomes a value obtained by multiplying the current value by a predetermined reduction ratio b (0 < b < 1). Here, existing techniques can be used for the technique of setting the horizontal impedance of the robot arm to a desired value.

[0070] The impedance reduction amount a and the reduction ratio b may or may not be constant values. In the latter case, for example, the impedance control unit 220 reduces the reduction amount a and the reduction ratio b as the number of times the process of reducing the impedance in the horizontal direction of the arm 120 is executed increases. Alternatively, for example, the impedance control unit 220 reduces the reduction amount a and the reduction ratio b as the current speed of the robot 100 increases. In this way, the impedance in the horizontal direction of the arm 120 can be adjusted more finely as the speed of the robot 100 increases (in other words, as the probability of the liquid 20 spilling from the container 10 increases).

[0071] <Controlling the speed of the robot 100: S106> In response to the process of decreasing the impedance of the arm 120 in the horizontal direction, the movement control unit 210 makes the speed of the robot 100 faster than the current speed (S106). For example, the movement control unit 210 controls the speed of the robot 100 so that the speed of the robot 100 is greater than the current speed by a predetermined increase amount c (c>0). In another example, the movement control unit 210 controls the speed of the robot 100 so that the speed of the robot 100 is a value obtained by multiplying the current speed by a predetermined increase ratio d (d>1). Here, existing technology can be used as the technology for setting the robot speed to a desired speed.

[0072] The amount of increase c and the increase ratio d of the speed may or may not be constant values. In the latter case, for example, the movement control unit 210 reduces the amount of increase c and the increase ratio d as the number of times the process of increasing the speed of the robot 100 is executed increases. Alternatively, for example, the movement control unit 210 reduces the amount of increase c and the increase ratio d as the current speed of the robot 100 increases. In this way, the speed of the robot 100 can be adjusted more finely as the speed of the robot 100 increases (in other words, as the probability of the liquid 20 spilling from the container 10 increases).

[0073] <Move to destination: S110> When the speed of the robot 100 reaches the target speed, or when it is predicted that the liquid 20 will spill from the container 10 if the speed of the robot 100 is made faster than the current speed, the movement control unit 210 moves the robot 100 to the destination point at the current speed (S110). Here, various existing technologies can be used as a technology for moving the robot to the destination point at a predetermined speed.

[0074] For example, the robot control system 200 acquires a prepared environmental map and information indicating the location of a destination point on the environmental map. The robot control system 200 also determines a movement path from the current position of the robot 100 to the destination point based on the current position of the robot 100 on the environmental map and the destination point. The robot control system 200 then moves the robot 100 along the determined movement path.

[0075] In order to move the robot 100 along the determined path, the robot control system 200 estimates the self-position of the robot 100 by using sensing data obtained from the environmental sensor 140. Then, the robot control system 200 controls the movement direction of the robot 100 based on the current position and the movement path of the robot 100.

[0076] In addition, the robot control system 200 detects obstacles not shown on the environmental map by using the sensing data obtained from the environmental sensor 140. Then, the robot control system 200 corrects the movement path of the robot 100 based on the current position of the robot 100 and the position of the obstacle.

[0077] Furthermore, the robot control system 200 may update the environmental map while moving the robot 100 by using a technique such as SLAM (Simultaneous Localization and Mapping).

[0078] The movement control unit 210 does not need to move the robot 100 at a constant speed at all times, and may temporarily decelerate the robot 100 as necessary. For example, the movement control unit 210 decelerates the robot 100 when avoiding an obstacle or passing through a place where there is a step.

[0079] The program includes a set of instructions (or software code) that, when loaded into a computer, causes the computer to perform one or more functions described in the embodiments. The program may be stored in a non-transitory computer-readable medium or a tangible storage medium. By way of example and not limitation, the computer-readable medium or tangible storage medium includes random-access memory (RAM), read-only memory (ROM), flash memory, solid-state drive (SSD) or other memory technology, CD-ROM, digital versatile disc (DVD), Blu-ray® disk or other optical disk storage, magnetic cassette, magnetic tape, magnetic disk storage or other magnetic storage device. The program may be transmitted on a transitory computer-readable medium or communication medium. By way of example and not limitation, the transitory computer-readable medium or communication medium includes electrical, optical, acoustic, or other forms of propagated signals.

[0080] The present invention is not limited to the above-described embodiment, and can be modified as appropriate without departing from the spirit and scope of the present invention. [Explanation of symbols]

[0081] 10 containers 20 liquid 100 Robots 110 Running part 112 Wheels 114 Actuator 120 Arm 122 Actuator 124 6-axis force sensor 130 Holding part 132 Actuator 134 6-axis force sensor 140 Environmental Sensor 150 Monitoring Sensor 200 Robot Control System 210 Movement control section 220 Impedance control section 500 Computers 502 Bus 504 Processor 506 Memory 508 Storage Devices 510 Input / Output Interface 512 Network Interface

Claims

1. an impedance control unit that predicts a displacement of liquid in the container that occurs when a speed of the robot holding a container with an arm is changed to a second speed faster than the first speed while the robot is moving at a first speed, and controls a magnitude of the impedance of the arm in a horizontal direction based on a result of the prediction; a movement control unit that changes the speed of the robot to the second speed in response to a decrease in the horizontal impedance of the arm.

2. 2. The robot control system according to claim 1, wherein the impedance control unit predicts whether or not the liquid in the container will spill from the container based on a prediction of a displacement of the liquid in the container, and controls a magnitude of the horizontal impedance of the arm based on a result of the prediction.

3. 3. The robot control system of claim 2, wherein the impedance control unit reduces the horizontal impedance of the arm when it is predicted that the liquid in the container will not spill out of the container when the speed of the robot is changed from the first speed to the second speed.

4. 4. The robot control system of claim 2, wherein the impedance control unit increases the horizontal impedance of the arm when it is predicted that liquid in the container will spill out of the container when the speed of the robot is changed from the first speed to the second speed.

5. 4. The robot control system of claim 2, wherein the movement control unit moves the robot to the destination point at the current speed when the current speed of the robot is equal to or greater than the target speed, or when it is predicted that the liquid will spill from the container if the speed of the robot is made faster than the current speed.

6. The robot control system according to claim 2 or 3, wherein the impedance control unit predicts whether or not the liquid will spill from the container based on a distance between a liquid level of the liquid and an upper end of the container.

7. The robot control system according to claim 6 , wherein the impedance control unit calculates a distance between the liquid level of the liquid and the upper end of the container by using a captured image in which the liquid level of the liquid and the upper end of the container are captured.

8. 4. The robot control system according to claim 2, wherein the impedance control unit determines a magnitude of the impedance of the arm in the vertical direction based on a weight and a moment acting on the arm.

9. an impedance control step of predicting a displacement of liquid in the container that occurs when the speed of the robot holding a container by an arm is changed to a second speed faster than the first speed while the robot is moving at a first speed, and controlling a magnitude of the impedance of the arm in the horizontal direction based on a result of the prediction; and a movement control step of changing a speed of the robot to the second speed in response to a decrease in the impedance of the arm in the horizontal direction.

10. an impedance control step of predicting a displacement of liquid in the container that occurs when the speed of the robot holding a container with an arm is changed to a second speed faster than the first speed while the robot is moving at a first speed, and controlling the impedance of the arm in the horizontal direction based on the result of the prediction; A movement control step of changing the speed of the robot to the second speed in response to a decrease in the impedance of the arm in the horizontal direction.

Citation Information

Patent Citations

  • Flexible joint manipulator using functional fluid

    JP2004195576A

  • Dispenser and dispensing method

    JP2008051578A

  • Controller and machine learning apparatus

    JP2019034836A

  • Robot

    JP2021171900A

  • Device and method for controlling robot arm, robot and program

    WO2007080733A1