A method for automatically acquiring instructions for actuators to perform basic robotic movements.
The method automates the acquisition of robot actuator instructions through trial operations and learning, addressing the challenge of managing robots with diverse specifications, enhancing efficiency and uniform control.
Patent Information
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- KDDI CORP
- Filing Date
- 2024-12-10
- Publication Date
- 2026-06-08
AI Technical Summary
Existing systems struggle to efficiently manage robots with diverse specifications, requiring manual labor to prepare control instructions due to unknown or varied robot specifications, making appropriate management difficult.
A method for automatically acquiring instructions for robot actuators by performing trial operations, accessing sensors and actuators, enumerating control input combinations, and identifying optimal movements, even with unknown mechanical configurations, using a dongle and server system to learn and acquire optimal control configurations.
Enables efficient and appropriate management of robots with various specifications by automatically acquiring optimal control inputs, reducing manual labor and ensuring uniform control across diverse robots.
Smart Images

Figure 0007871359000017 
Figure 0007871359000018 
Figure 0007871359000019
Abstract
Description
Technical Field
[0001] The present invention relates to a method for automatically acquiring instructions for an actuator to perform basic operations of a robot.
Background Art
[0002] In the field of IoT (Internet of Things), robots are being utilized. In Patent Document 1 (Title of the Invention: Method and System for Detection in an Industrial Internet of Things Data Collection Environment Using a Large Amount of Data Sets), remote control and autonomous operation of robots and drones are performed for the purpose of data collection (IoT) in an industrial environment. In Patent Document 2 (Title of the Invention: Autonomous Learning Type Robot Device and Method for Generating Operations of an Autonomous Learning Type Robot Device), learning of the operations of a robot hand according to the environment is performed by communicating with a robot. In Non-Patent Document 1, for example, systematic errors of odometry according to individual road surface environments such as carpets indoors and pavements outdoors are recorded in advance as a road surface environment map, and this map is used at the time of estimating the actual position during actual robot running, thereby realizing odometry robust to the road surface environment.
Prior Art Documents
Patent Documents
[0003]
Patent Document 1
Patent Document 2
Non-Patent Documents
[0004]
Non-Patent Document 1
Summary of the Invention
Problems to be Solved by the Invention
[0005] In the prior art as described above, on the side of the platform which is a system for managing a group of robots, it was premised that the specifications of the robots were known. Under this premise, for example, a group of robots to be managed from the platform side are distributed in various sites such as various stores, and in a situation where there can be various specifications (specifications determined by the robot manufacturer and its model number, etc.) for each individual robot, appropriate management could not be performed. That is, when it is premised that the specifications of the robots are known, when there are a wide variety of robot specifications, a lot of labor is required to prepare control instructions, etc. manually for each robot specification, and appropriate management was difficult.
[0006] Specifically, as an example of the robot specifications, only robots of the vehicle type that move on tires are known, and among the many and various types of robots that correspond to such vehicle type robots, if the individual conditions such as the size of the tires are unknown as the specifications, even when trying to control the robot movement, which is an elemental operation when realizing the task to be requested to this robot, it is unknown how the robot will move no matter how it is controlled, so appropriate control and management were impossible.
[0007] In view of the problems of the above prior art, an object of the present invention is to provide a method capable of appropriately managing robots by enabling automatic acquisition of instructions for basic operation of the robots even in a situation where there are various robot specifications.
Means for Solving the Problems
[0008] To achieve the above objective, the present invention provides a method for automatically acquiring instructions to an actuator for performing basic operations on a robot that moves by a moving mechanism driven by an actuator, the first feature of which is that the robot is made to perform a trial operation by ensuring access to sensors that perceive the outside world (S1, S2), ensuring access to control inputs to each of the plurality of actuator elements constituting the actuator (S1, S2), enumerating combinations of whether or not there is a control input to each of the plurality of actuator elements and the type of signal of the control input (S41), and performing a control input to the actuator for each of the enumerated combinations (S45), thereby making the robot perform a trial operation, identifying the robot's movement before and after the trial operation using the output of the sensor before and after the trial operation (S43, S46, S47), selecting from the robot's movement in each of the enumerated combinations that corresponds to a basic operation (S51), and automatically acquiring the combination corresponding to the selected basic operation as an instruction to the actuator for performing the basic operation on the robot.
[0009] Furthermore, in order to achieve the above objective, the present invention is a method for automatically acquiring instructions to a plurality of actuators for causing a robot that moves by a moving mechanism driven by a plurality of actuators to perform basic operations, wherein, with respect to another robot having the same specifications as the robot, the basic operations and the instructions to the plurality of actuators for causing the other robot to perform the basic operations are known as templates, and the operation log of the robot is acquired (S27) by linking the presence or absence of control input to each of the plurality of actuator elements, the type of signal of the control input, and the movement information of the robot before and after the individual operations performed by the robot, with respect to the specified information. The operation log is acquired (S27), and the operation log and the template are used for learning (S28), thereby automatically acquiring the specified information for the presence or absence of control input to each of the plurality of actuator elements and the type of signal of the control input as the optimal setting for realizing the basic operations. [Effects of the Invention]
[0010] According to the first feature described above, by enumerating combinations of whether or not control input is provided to each of the multiple actuator elements and the type of control input signal, and then performing a trial operation of the robot, and selecting the robot's movements before and after the trial operation that correspond to the basic operation, it is possible to automatically acquire the control input configuration to the multiple actuator elements necessary for the robot to realize the basic operation, even if the configuration of the movement mechanism after the actuator elements is unknown as part of the robot's specifications. Therefore, efficient and appropriate management can be performed even in situations where there are various robot specifications.
[0011] According to the second feature described above, instead of obtaining information by performing trial operations on the robot in the first feature described above, operation logs related to the individual movements of the robot are acquired, and by learning using these operation logs and templates for other robots with common specifications, it is possible to automatically acquire the optimal control input configuration for multiple actuator elements necessary for the robot to perform basic operations, based on the premise of common specifications. Therefore, assuming that template information for other robots with common specifications is already known, efficient and appropriate management can be performed even in situations where there are various robot specifications. [Brief explanation of the drawing]
[0012] [Figure 1] This is an overall configuration diagram of an automated motion acquisition system according to one embodiment. [Figure 2] This is a configuration diagram of a robot, dongle, and server for an automated motion acquisition system according to one embodiment. [Figure 3] This is a flowchart showing the operation of an automated motion acquisition system according to one embodiment. [Figure 4] This is a flowchart showing the details of the processing of the basic operation acquisition unit according to one embodiment (i.e., the details of step S3 in Figure 3). [Figure 5]This figure shows one example of the configuration of an actuator and a moving mechanism in a robot. [Figure 6] Examples EX1 to EX4 are diagrams illustrating the explanations of each step in Figure 4. [Figure 7] Examples EX5 to EX8 are shown, illustrating the explanations of each step in Figure 4. [Figure 8] This figure shows an example of recording operations in JSON format. [Figure 9] This is a functional block diagram of a robot and server in an automated motion acquisition system according to another embodiment. [Figure 10] This is a flowchart of the operation of an automated motion acquisition system according to another embodiment. [Figure 11] This flowchart shows the details of the learning process by the learning unit according to one embodiment (details of step S28 in Figure 10). [Modes for carrying out the invention]
[0013] Figure 1 is an overall configuration diagram of an automated motion acquisition system according to one embodiment. The automated motion acquisition system 100 comprises a robot 10 and a server 50. The robot 10 and the server 50 are able to communicate with each other via a network NW such as the Internet. The robot 10 is placed in a field F (for example, a store, which can be indoors or outdoors) where the robot 10 operates, and has a sensor 15 consisting of a camera or the like for recognizing the field F, and a mobility mechanism 17 consisting of wheels or the like. The robot 10 is also fitted with a detachable dongle 30.
[0014] Figure 2 is a configuration diagram of a robot 10, dongle 30, and server 50 of an automatic motion acquisition system 100 according to one embodiment. The robot 10 comprises, in terms of its hardware configuration, a first processor 11 composed of a CPU (Central Processing Unit) and a GPU (Graphics Processing Unit), a first RAM 12 as a primary storage device composed of volatile memory that provides a workspace to the first processor 11, a first ROM 13 as a secondary storage device composed of non-volatile memory that stores programs executed by the first processor 11 and various data, a first communication interface (IF) 14 composed of a network interface card that handles wired and / or wireless communication functions, a sensor 15 composed of a camera and / or LiDAR sensor for recognizing field F, an actuator 16 such as a motor, a movement mechanism 17 composed of wheels that receive driving force from the actuator 16 and enable the robot 10 to move within field F, a first input / output interface (IF) 18 composed of a USB port that allows various peripheral devices (guest devices) to be connected to the robot 10, and a first bus BS1 that handles data transmission and reception between these hardware components.
[0015] The dongle 30 comprises, in terms of its hardware configuration, a second input / output interface 35 configured as a USB port or the like, which allows the dongle 30 to be connected to a host device such as the robot 10 as a guest device; a second processor 31 configured as a CPU (Central Processing Unit) and a GPU (Graphics Processing Unit); a second RAM 32 configured as a primary storage device such as volatile memory that provides a workspace for the second processor 31; a second ROM 33 configured as a secondary storage device such as non-volatile memory that stores programs and various data; a second communication interface (IF) 34 configured as a network interface card or the like that handles wired and / or wireless communication functions; and a second bus BS2 that handles data transmission and reception between these hardware components.
[0016] The server 50, in terms of its hardware configuration, has the same general computer configuration as the robot 10 and dongle 30 described above (however, the robot 10 has additional components such as sensors 15, actuators 16, and a movement mechanism 17 to enable autonomous movement). Specifically, the server 50 includes a third processor 51 composed of a CPU (Central Processing Unit) and a GPU (Graphics Processing Unit), a third RAM 52 as a primary storage device composed of volatile memory that provides a workspace for the third processor 51, a third ROM 53 as a secondary storage device composed of non-volatile memory that stores programs and various data, a third communication interface (IF) 54 composed of a network interface card that handles wired and / or wireless communication functions, a third input / output interface 55 composed of USB ports that enable connection of various input / output devices (keyboard, mouse, display, etc.), and a third bus BS3 that handles data transmission and reception between these hardware components.
[0017] As described later (step S1 in Figure 3), in this embodiment, the dongle 30 is connected to the robot 10 by connecting the first input / output interface 18 and the second input / output interface 35. As schematically shown by line L2, after this connection, the preparation program (PG) P21 and the basic operation acquisition program (PG) P22 stored in the second ROM 33 of the dongle 30 are read onto the second RAM 32 and executed by the second processor 31, thereby realizing the functional configuration of the control unit 20. In this case, the dongle 30 may not have its own battery and may receive power from the battery of the robot 10 to operate the second processor 31, etc., and realize this functional configuration, or the dongle 30 may independently supply power to the second processor 31, etc., of the dongle 30 and operate it.
[0018] As a variation, the control unit 20 may be implemented not by the second processor 31 of the dongle 30, but by the first processor 11 of the robot 10, as schematically shown by line L1. That is, after connection, the preparation program (PG) P21 and the basic operation acquisition program (PG) P22 stored in the second ROM 33 of the dongle 30 are loaded onto the first RAM 12 of the robot 10 and executed by the first processor 11 of the robot 10, thereby realizing the control unit 20. In this variation, the second processor 31 and the second RAM 32 may be omitted from the configuration of the dongle 30. Similarly, as a further variation, the control unit 20 may be implemented by the third processor 51 of the server 50 sending control commands via the network NW, and the second processor 31 of the dongle 30 or the first processor 11 of the robot 10 receives these control commands and realizes control processing. (In other words, instead of storing the preparation program P21 and the basic operation acquisition program P22 in the second ROM 33 of the dongle 30, these programs (control commands) may be transmitted from the server 50 to the robot 10 and the dongle 30, thereby realizing the control unit 20 under the control of the server 50.)
[0019] The control unit 20 comprises a preparation unit 21 and a basic operation acquisition unit 22 as a functional block configuration. The preparation unit 21 is realized when the second processor 31 (or the first processor 11 in the modified example) executes a preparation program P21, and following this process, the basic operation acquisition unit 22 is realized when the second processor 31 (or the first processor 11 in the modified example) executes a basic operation acquisition program P22. The basic operation acquisition unit 22 further comprises a reference point determination unit 23, an operation trial unit 24, and a basic operation selection unit 25.
[0020] In addition, in a configuration where the robot 10 does not have a first communication interface 14 (a configuration partially omitted from Figure 2), the robot 10 alone does not have the ability to communicate with the outside world. However, in an embodiment where the robot 10 acquires the ability to communicate with the outside world by utilizing the second communication interface 34 when the dongle 30 is connected, it is also possible.
[0021] Figure 3 is a flowchart of the operation of an automated motion acquisition system 100 according to one embodiment. In step S1, the manager of the robot 10 located in field F connects the dongle 30 to the robot 10 and then proceeds to step S2.
[0022] In order to connect the dongle 30 in step S1, the administrator or other relevant person will first power on the robot 10, have the first processor 11 read and execute the robot control OS (operating system) stored in the first ROM 13, and have the robot 10's sensors 15 and actuators 16 enter a standby state waiting for a control command (triggered by the connection of the dongle 30). In step S1, the administrator or other relevant person will connect the dongle 30 to the robot 10 while it is in this standby state.
[0023] In step S2, the connection of the dongle 30 in step S1 triggers the second processor 31 (first processor 11 in the modified example) to read and execute the preparation program P21, causing the preparation unit 21 to perform various preparation processes before proceeding to step S3. The preparation processes in step S2 are (1) network settings, (2) hardware discovery, and (3) control application settings, which are as follows.
[0024] (1) Regarding network settings, by activating the first communication interface 14 or the second communication interface 34, the robot 10 and dongle 30 and the server 50 are made able to communicate via the network NW under the direction of the control unit 20.
[0025] (2) With regard to hardware discovery, the control unit 20 discovers and makes accessible the sensor 15, which consists of a camera and / or LiDAR, and the actuator 16.
[0026] Regarding the sensor 15, for example, if it is connected and implemented as a USB device in the robot 10, its existence can be discovered and made accessible using the standard OS function for discovering USB devices (such as the lsusb command). Regarding the actuator 16, for example, if it is connected and implemented in the robot 10 via a general-purpose input / output port (GPIO), power can be supplied to each of the multiple pins of the GPIO, and each pin that is confirmed to be powered can be identified as corresponding to the actuator 16 (there may be multiple actuators) and recognized as accessible.
[0027] In this embodiment, it is assumed that the configurations of the actuator 16 and the moving mechanism 17 are unknown. Therefore, step S1 only confirms the existence of individual actuators 16 (there may be multiple actuators) by checking the power supply to the pins.
[0028] (3) Regarding the control application settings, in accordance with the results of the hardware discovery described above, a predetermined control application (device driver, etc.) corresponding to each piece of hardware is read from a server or the like that distributes the application on the network NW, so that each piece of hardware can be controlled by the control unit 20. For LiDAR sensors and the like that make up the sensor 15, after reading the control application, an initialization process such as coordinate calibration may be performed.
[0029] In step S2, once the preparations by the preparation unit 21 are complete, in step S3, the basic motion acquisition unit 22 experimentally controls the robot 10 and organizes the results to acquire information about the robot 10's basic movements. This basic motion information is then transmitted to the server 50 via the network NW before proceeding to step S4.
[0030] In step S4, the server 50 sends a command to the robot 10 to execute a predetermined task using the basic movements acquired in step S3, and the flow shown in Figure 3 is terminated when the robot 10 executes the predetermined task. The predetermined task can consist of a sequence of one or more predetermined instructions (which may include conditional statements and repetitive controls) executed by the robot 10, such as moving the robot 10 or transporting an object. The predetermined basic movements acquired in step S3 should be pre-set so that the predetermined task to be executed by the robot 10 in step S4 can be realized in whole or in part by a predetermined combination of these basic movements.
[0031] For example, if the predetermined task to be performed by the robot 10 in step S4 involves the movement of the robot 10 (for example, a task of monitoring while moving within field F, or transporting an object by moving within field F), then in step S3, the robot 10 should acquire four basic movements, such as forward movement, marching, turning right, and turning left, as basic movements for achieving movement along an arbitrary trajectory, as described later. The basic movements may include not only movement such as forward movement, backward movement, turning right, and turning left, but also movements of other movable parts such as arms.
[0032] Thus, in step S4, as a predetermined task, the server 50 sends a combination of basic operation commands to the robot 10 to realize the trajectory, for example, to have the robot 10 move from its current location to a predetermined destination within field F. The robot 10 then follows a sequence of basic operations along the trajectory to realize the movement task. Furthermore, by acquiring the basic operations through the operation trials up to step S3 immediately before requesting the robot 10 to perform the predetermined task in step S4, it is possible to effectively confirm and understand the operating state of the robot 10 and the state of the operating environment immediately before task execution.
[0033] Figure 4 is a flowchart showing the details of the processing of the basic motion acquisition unit 22 according to one embodiment (i.e., the details of step S3 in Figure 3). As shown by the configuration of the functional block corresponding to the right side of each step, steps S31 and S32 in Figure 4 are steps in which the reference point determination unit 23 determines a reference point (a reference point for defining the position of the robot 10 as coordinates within the field F), steps S41 to S49 are steps in which the motion trial unit 24 controls the robot 10 using the determined reference point to perform a trial motion within the field F and records the result, and steps S51 to S53 are steps in which the basic motion selection unit 25 organizes the trial results of the motion trial unit 24 and extracts information regarding the basic motion of the robot 10.
[0034] The following describes each step in Figure 4. As described above, the main operating entity for each step is the reference point determination unit 23, the operation trial unit 24, or the basic operation selection unit 25 (i.e., the first processor 11 or the second processor 31 executing each module of the basic operation acquisition program P22). Therefore, for the sake of simplicity, we will omit mentioning the main operating entity and only describe the processing content.
[0035] The following explanation will focus on a case where, as shown in Figure 5 as a schematic example (a schematic example of the robot 10 as seen from above when placed on the ground of field F), the robot 10 is composed of a four-wheeled vehicle-type robot as its mobility mechanism 17, and there are four possible configurations of the actuator 16 and the mobility mechanism 17 as described below (1) to (4).
[0036] (1) Actuator A1 acts as the first actuator 16 and drives the left front wheel W1 of the four wheels as the first moving mechanism 17. (2) Actuator A2 acts as the second actuator 16 and drives the right front wheel W2 of the four wheels as the second moving mechanism 17. (3) Actuator A3 acts as the third actuator 16 and drives the left rear wheel W3 of the four wheels as the third moving mechanism 17. (4) Actuator A4 acts as the fourth actuator 16 and drives the right rear wheel W4 of the four wheels as the fourth moving mechanism 17.
[0037] It should be noted that, at the start of the flow in Figure 4, the control unit 20 is unable to know the individual conditions of the robot 10. For example, the control unit 20 is unaware of conditions such as how many wheels there are, where they are located on the robot 10, and the diameter of each wheel's tire (conditions related to the mechanical configuration of the moving mechanism 17), as well as the correspondence between the actuator 16 and the moving mechanism 17 that it drives.
[0038] In the example shown in Figure 5, during the preparation process of the preparation unit 21 (step S2 in Figure 3), the only thing known to the control unit 20 is that there are four actuators A1 to A4 that can be controlled as actuators 16. On the other hand, although each of the four actuators A1 to A4 drives one of the moving mechanism 17, the specific correspondence of which of the wheels W1 to W4 shown in Figure 5 each actuator drives is unknown to the control unit 20. Furthermore, the information that the moving mechanism 17 is specifically composed of the wheels W1 to W4 as shown in Figure 5 is also unknown to the control unit 20.
[0039] In the flow chart of Figure 4 of this embodiment, starting from a state where only the existence of multiple control targets as actuators 16, for example, as four actuators A1 to A4 as shown in Figure 5, is known (the relationship of drives and mechanical configuration of the moving mechanism 17 beyond actuator 16 are unknown), it is possible to acquire information as the basic operation of the robot 10, which is how the robot 10 can be moved by driving the four actuators A1 to A4 in what manner.
[0040] As an example of explanation, the following constraints shall be imposed. (a) The four actuators A1 to A4 drive one of the wheels and are capable of at least forward or reverse rotation control. (b) The basic movements to be acquired shall consist of four basic movements for moving the robot 10: forward, backward, right turn, and left turn.
[0041] Assuming the above constraints are in place, the steps in Figure 4 will now be explained. Figures 6 and 7 correspond to the examples of actuators 16 and movement mechanisms 17 of the robot 10 in Figure 5, and are designated as Examples EX1-EX4 and EX5-EX8, respectively, illustrating the explanation of each step in Figure 4. These will be referred to as appropriate below.
[0042] In step S31, the sensor 15, which serves as a means of recognizing field F, is activated, and the sensor output (recognition result of field F) is received and analyzed to search for objects around the robot 10, before proceeding to step S32.
[0043] For example, if sensor 15 is a LiDAR, the LiDAR, which has been enabled in the control application settings, can be activated, laser light can be shone on it to acquire point cloud information of the surrounding area (field F) as sensor output, preprocessing such as ground removal can be performed on the point cloud information, and the point cloud information can be clustered to detect objects. Any existing method can be used for object detection from point cloud information, for example, the method described in Non-Patent Document 2 below may be used. [Non-Patent Literature 2] Development of a real-time surrounding environment recognition system using LiDAR for autonomous driving
[0044] In step S32, a reference point is determined from the results of step S31, and the coordinates of the robot 10 (which is stationary) are determined based on this reference point before proceeding to step S41. These coordinates may be defined as two-dimensional coordinates defined on the plane of field F, either as Cartesian coordinates (x,y) or their corresponding polar coordinates (r,θ).
[0045] The reference point can be determined by selecting an object from the object detection results in step S31 that satisfies the following two conditions. For the second condition, the object should be located within a threshold range from the position (and orientation) of sensor 15. • It must be a cylinder or sphere that can reliably acquire its position. • The robot 10 is within a distance where it can be detected even when it is in motion.
[0046] If no object satisfying the above conditions exists, an environmental landmark may be used as the reference point. For landmark detection, existing methods such as those described in Non-Patent Document 3 below can be used. [Non-Patent Document 3] Development of an autonomous mobile robot equipped with a vision system
[0047] In example EX1 of Figure 6, an example is shown in which a cylindrical object is used as the reference point rf within the measurement range R of the sensor 15 of the robot 10, as an example of steps S31 and S32.
[0048] Steps S41 to S49 take on a flow structure in which the internal steps S42 to S48 are repeated until all combinations of each actuator 16 (four actuators A1, A2, A3, and A4 in the example in Figure 5) and their respective rotation directions (forward or reverse) are processed, as formally shown in the surrounding repeating steps S41 and S49. When there are generally n actuators 16, the number of combinations is as follows: the number of combinations of selecting i actuators from all n actuators. n C i The number of combinations of selecting either forward rotation or reverse rotation for the i actuators is 2. i This is the sum of the products of each i (i=1,2,...,n-1,n).
[0049]
number
[0050] In the example of n=4 in Figure 5, each of these combinations would be as follows: Rotate actuator A1 in the forward direction (→This example is EX3 in Figure 6). Reverse actuator A1 Rotate actuator A2 forward. Reverse actuator A2 : Rotate actuator A1 forward and actuator A2 forward. Reverse actuator A1 and rotate actuator A2 forward. :
[0051] The significance of this combination is as follows: As mentioned above, given the presence of n actuators 16, it is unclear how the moving mechanism 17 is mechanically arranged and which of the n actuators 16 drives which part of the moving mechanism 17. Therefore, it is necessary to prepare a comprehensive set of combinations as described above and test run the robot 10 for each combination.
[0052] In step S41, the system selects the combinations of actuator 16(s)(s) and rotation direction selection for which processing is incomplete, and then proceeds to step S42.
[0053] In step S42, the output of sensor 15 is analyzed to measure the position of the reference point (r0, θ0) in polar coordinates, and then the process proceeds to step S43. This measurement can be performed using an existing method (Non-Patent Literature 4) as follows, for example. [Non-Patent Document 4] Proposal of a distance correction algorithm for LIDAR that takes robot movement into consideration
[0054] (1) Measure the distance r0 from the LiDAR point cloud information to the reference point. (2) Define the local coordinate system of robot 10. Y-axis: The axis is defined as the center of the sensor's acquisition range, with the laser beam irradiation direction being considered positive. X-axis: Perpendicular to the Y-axis, with the rightward direction being positive. (3) Measure the inclination θ0 relative to the X-axis.
[0055] In step S43, the initial position (x0, y0) of the robot 10 in Cartesian coordinates (the initial position before attempting to move the robot 10 as a test run in step S45, which will be described later) is calculated, and then the process proceeds to step S44. That is, in order to determine the position of the robot 10 as seen from the reference point (r0, θ0) obtained in step S42, the reference point (r0, θ0) is replaced with the origin, and the initial position (x0, y0) can be calculated using the following numbers.
[0056]
number
[0057] Example EX2 in Figure 6 shows an example in which the initial coordinates (x0, y0) of the robot 10 in Cartesian coordinates were calculated from the results of measuring the polar coordinate position (r0, θ0) of the reference point rf from the steps S42 and S43 described above.
[0058] In step S44, for the combination of actuator 16 and its rotation direction selected in step S41, the corresponding signal input port is selected in order to actually input a drive control signal to the actuator 16, and then the process proceeds to step S45.
[0059] In step S45, a test run of the robot 10 is attempted by driving the actuator 16 by a fixed amount according to the selection, and then the process proceeds to step S46. This drive only needs to be a fixed amount, such as one full rotation, relative to the selected rotation direction (forward or reverse). (Note that if multiple actuators 16 are selected, each of them is driven simultaneously in its corresponding rotation direction. Actuators 16 that are not selected may simply be left to rotate freely. That is, even if it is possible to control the drive to apply a brake (braking force) to the unselected actuators 16, the signal input for such brake control may not be applied.)
[0060] In step S46, the position (x1, y1) of the robot 10 after the movement trial in step S45 is calculated, and then the process proceeds to step S47. This calculation is done by calculating the reference point position (r1, θ1) after the movement trial in the same way as in step S42 before the movement trial, and then calculating the position (x1, y1) of the robot 10 after the movement trial using the following formula, in the same way as in step S43 before the movement trial. Example EX4 in Figure 6 is an example of how to calculate the position (x1, y1) after the movement trial.
[0061]
number
[0062] In step S47, the actions performed during the given number of trials are recorded, and then the process proceeds to step S48. For example, the actions can be recorded by associating each piece of information in the following format. • Number of trials: k=1~Σ n C i ×2 i (As mentioned above, we take the sum "Σ" for i=1,2,...,n-1,n) • Initial position: Reference point and initial position of robot 10 • Position after trial run: Reference point and position of robot 10 after trial run • Driving modes of each actuator: Rotation angle: A fixed value, such as 1 rotation. Rotation direction: Forward / Reverse / Freewheeling if not selected
[0063] The record of this operation can be recorded, for example, as data in JSON format, which is an existing method. Figure 8 shows an example of operation recording in JSON format for the case of n=4 (the configuration of the example in Figure 5).
[0064] In step S48, for the actuator 16 rotationally controlled in step S45, by rotationally controlling it in the direction opposite to that in step S45 (if it was forward rotation, then reverse rotation; if it was reverse rotation, then forward rotation), an attempt is made to move the robot 10 in the direction opposite to that in step S45, and then the process proceeds to step S49. (For example, if in step S45 the actuator A1 was rotated one revolution in the forward rotation direction, then in step S48 the actuator A1 is rotated one revolution in the reverse rotation direction.) The significance of step S48 is to return the robot 10 to its original position (approximately the original position) each time it actually moves during the movement trial in step S45, so as to prevent the sensor 15 from losing sight of an object such as a reference point that is significantly separated from the original position or the robot colliding with an immovable location such as a wall during the movement trial (a state where a proper movement trial cannot be performed) while continuously attempting various movement trials. In a situation where such prevention is not necessary, step S48 may be omitted.
[0065] In step S49, it is determined whether all the combinations (Σ n C i ×2 i ways) in step S41 have been selected. If all have been selected and the operation trial and its recording are completed, the process proceeds to step S51. If there are any unfinished ones, the process returns to step S41 and the processing for the unfinished combinations continues.
[0066] In step S51, after selecting the basic operations from the operation records (Σ n C i ×2 i ways of all combinations) in the series of steps S47 above, the process proceeds to step S52. As described above, if, for example, four types such as the forward movement, backward movement, right rotation, and left rotation of the robot 10 are selected and defined as the basic operations, for these four types of basic operations, the optimal ones can be selected from among all the Σ n C i ×2 i ways of the control modes of the actuator 16 as follows.
[0067] (1)...Selection of basic forward movement (1A) Action M of robot 10 in trial count k k The following two conditions are used to evaluate and select a candidate for forward movement. The following formula is used to determine if the distance in the Y-axis direction is decreasing. y1 - y0 < 0 • Changes in distance along the X-axis are within the acceptable range f The following formula determines whether the value falls within the (acceptable threshold) range. | x1-x0 | <th f Furthermore, as disclosed in the aforementioned Non-Patent Document 1 (Odometry for Calibrating Systematic Errors Based on Road Surface Environment Maps), even if forward movement is successful, systematic errors in odometry remain, therefore the allowable value th f It is desirable to set a value close to 0.
[0068] (1B) Operation M k Distance traveled d k This is calculated using the following formula. Note that by using the determination in (1A) above and this distance calculation, even if the diameter of the tires on the wheels constituting the moving mechanism 17 and the arrangement of the actuators 17 (and their corresponding relationship as control targets for each of the moving mechanism 17) are unknown, it is possible to narrow down the basic operation corresponding to forward movement (the drive method of the actuators 17 that realize this operation).
[0069]
number
[0070] (1C) Operation M, which narrowed down the candidates in (1A) above. k From among these, in order to select the most effective movement as a basic forward movement, the movement M with the longest travel distance is determined by the following formula. f Choose this as the next step.
[0071]
number
[0072] (2)...Selection of basic backward movement (2A) Action M of robot 10 in trial count k k The following two conditions are used to determine the candidate for the backward movement. The following formula determines whether the distance in the Y-axis direction is increasing. (This is the reverse of the determination for forward movement.) y1 - y0 > 0 • Changes in distance along the X-axis are within the acceptable range f The following formula determines whether the position is within the (acceptable threshold) range. (Same judgment as for forward movement) | x1-x0 | <th f
[0073] (2B) Operation M k Distance traveled d k This is calculated using the same formula as (1B) for the forward movement case.
[0074] (2C) Operation M, which narrowed down the candidates in (2A) above. k From among these, (similar to the case of moving forward) to select the most effective movement as a basic backward movement, the movement M with the longest travel distance is determined by the following formula. b Choose to retreat.
[0075]
number
[0076] Examples EX5 and EX6 in Figure 7 show forward and backward movements that were selected as the most effective using the above method, respectively.
[0077] (3)...Selection of the basic maneuver of turning to the right (3A) Operation M k Change in posture dθ of robot 10 k This is calculated using the following formula. dθ k =θ1-θ0 (3B) In order to select the most effective movement as a right turn as a basic movement, the change in the attitude of the robot 10, dθ, is calculated using the following formula. k(Right turn corresponds to positive) is the largest movement M r Select this as a right turn.
[0078]
number
[0079] (4)...Selection of the basic maneuver of turning left (4A) Operation M k Change in posture dθ of robot 10 k This is calculated using the same formula as (3A) for the case of a right turn. (4B) In order to select the most effective movement as a left turn as a basic movement, the change in the attitude of the robot 10 dθ is calculated using the following formula. k (Right turn corresponds to positive) The smallest movement M l Select this as a left turn.
[0080]
number
[0081] Examples EX7 and EX8 in Figure 7 show right and left turn actions, respectively, that were selected as the most effective using the above method.
[0082] In step S52, the change in the position of the robot 10 for each of the optimal basic movements selected in step S51 (the change in each component of the Cartesian coordinate (x,y) and the change in the attitude θ in polar coordinate (r,θ)) is calculated as follows, and then the process proceeds to step S53.
[0083]
number
[0084] In step S53, the calculated change amounts for each basic movement and the strings used to instruct the robot 10 to perform each basic movement (strings representing the content of the basic movement) are linked together as follows and sent to the server 50, where they are stored.
[0085]
number
[0086] As described above, with respect to the robot 10, even if there are multiple actuators 16 to be controlled, and even if the specific details of the mechanical drive mechanism 17 are unknown, the system can automatically acquire the drive mode of the actuators 16 corresponding to the basic movements of the robot 10 by performing comprehensive motion trials and selecting the optimal one from the results. Therefore, even in situations where robots 10 with various specifications exist in various sites, it becomes possible to effectively control and manage the robot 10 without the hassle of manually defining a control method according to the individual specifications of the robot 10.
[0087] The following explains various supplementary, additional, and alternative matters.
[0088] (1) For example, the following can be applied to the above embodiments of the present invention. That is, in a situation where robots 10 with various specifications exist at various sites, by distributing a common dongle 30 in advance and having the person in charge at each site connect this dongle 30 to the robot 10, it becomes possible to remotely control the various robots 10 to execute tasks uniformly from the server 50 as a platform. Accordingly, it becomes possible to eliminate the need for robot control engineers to travel to each site each time to customize the control of the robots 10 in order to execute customized tasks at each site, thereby saving energy resources required for human travel and reducing carbon dioxide emissions, thus contributing to Goal 13 of the United Nations Sustainable Development Goals (SDGs), "Take urgent action to combat climate change and its impacts."
[0089] (2) In the embodiments described above, it is known that the robot 10 is, for example, a vehicle-type robot, and a comprehensive trial operation was attempted for the unknown actuators 16 (multiple) and moving mechanism 17, assuming that the actuators 16 (multiple) include individual actuators that drive wheels. If the specifications of the robot 10 are narrowed down to a certain range in advance, this comprehensive trial operation may be limited to that range. For example, if the robot 10 is a vehicle-type robot, then the comprehensive trial operation described above is "k=1~Σ n C i ×2 i The trial operation k for each iteration was performed for i=1,2,...,n, but if it is known that the robot 10 as a vehicle-type robot is either three-wheeled or four-wheeled, the trial operation may be limited to i=1,2,3,4, etc.
[0090] (3) In the embodiments of the configuration and flow shown in Figures 2 to 4 above, the automatic motion acquisition system 100 uses the connection of a dongle 30 to the robot 10 as a trigger to have the robot perform various trial operations and analyze the results in order to acquire the basic operations of the robot 10. In another embodiment, instead of connecting a dongle 30 to the robot 10 and having it perform trial operations, the robot 10 may be made to perform various actual tasks in a field F (for example, a store or warehouse, etc.) as usual (for example, transporting goods, hereinafter referred to as "actual tasks"), and the operation logs obtained in these actual tasks may be collected and analyzed in the server 50 to acquire the basic operations of the robot 10.
[0091] Figure 9 is a functional block diagram of the robot 10 (which may have a dongle 30 connected to it) and server 50 in the automatic motion acquisition system 100 according to this other embodiment, and Figure 10 is a flowchart of the operation of the automatic motion acquisition system 100 according to this other embodiment. The robot 10 (or dongle 30) is equipped with a storage unit 27 that stores the operation log of the robot 10, and the server 50 is equipped with a learning unit 28 that acquires the basic operation of the robot 10 by acquiring the stored operation log and performing learning. In the embodiment of Figure 9, the hardware configuration of the robot 10 and server 50 is the same as in Figure 2, and the storage unit 27 can be realized by the first ROM 13 of the robot 10 (or the second ROM 33 of the dongle 30), and the learning unit 28 can be realized by a third processor 51 that reads a corresponding predetermined learning program into the third RAM 53 and executes it. The steps in Figure 10 will be described below.
[0092] The significance and prerequisites for using learning in this embodiment are as follows. <1> Since operation logs generally consist of a vast amount of data, it is possible to acquire the optimal basic operation through learning. <2> The system uses the motion logs of robots with the same specifications as robots that have already acquired basic movements in the past. Learning can be used to compensate for differences in basic movements due to manufacturing errors (slight errors such as wheel position and diameter) in the target robot (which may have a dongle 30 connected as a trigger for learning using motion logs). <3> As a prerequisite, when the robot being trained moves (i.e., when motion logs are being collected), only one of the basic movements is used.
[0093] In step S27, the robot 10 is made to perform a real task in field F for a certain period of time, and the operation log is collected and stored in the storage unit 27. After this operation log is sent to the learning unit 28 of the server 50 via the network NW, the process proceeds to step S28. The transmission and reception of the operation log is handled by the robot 10's first communication IF14 (or the dongle 30's second communication IF34) and the server 50's third communication IF54. The collection and transmission of the operation log in step S27, or the transmission of the collected operation log in step S27, may be triggered by the connection of the dongle 30 to the robot 10. That is, the connection of the dongle 30 to the robot 10 may trigger the transmission of the collected operation log to the server 50, thereby starting the learning process in the server 50 (next step S28).
[0094] Although Figure 9 shows only one robot 10, it is also possible to acquire operation logs from multiple robots 10 and send all of them to the learning unit 28 of the server 50. (In this case, the specifications of the multiple robots 10 should be the same.)
[0095] The operation log is obtained to include the same information as in the embodiments shown in Figures 2 to 4 (referred to as the first embodiment, and another embodiment shown in Figures 9 and 10 (and Figure 11, which will be described later) as the second embodiment). That is, by replacing the trial operation in each k of the first embodiment with the individual operation of the actual task (an individual operation as a result of a single control command to the actuator 16), the operation log L={Log(k)|k=1,2,3,…} is obtained as linked information as follows. ·Individual operation: k=1,2,3,… • Initial position before this individual operation: Reference point and initial position of robot 10 • Position after this individual action: Reference point and the position of robot 10 after the individual action. • Driving modes of each actuator: Rotation angle: A fixed value, such as 1 rotation. Rotation direction: Forward / Reverse / Freewheeling if not selected
[0096] In step S28, the learning unit 28 acquires the basic operation by performing learning using the operation log L collected in step S27 as described above, and the flow in Figure 10 ends. Since the operation log L is generally enormous in quantity, the basic operation can be acquired as the optimal solution by performing learning. Alternatively, the basic operation may be acquired on a rule basis by applying the same processing as in the first embodiment (same processing as in the basic operation selection unit 25) to the operation log L. Figure 11 is a flowchart showing the details of learning by the learning unit 28 according to one embodiment (i.e., the details of step S28 in Figure 10). The steps in Figure 11 will be described below. Regarding each step S281 to S285 in Figure 11, the operating entity is the learning unit 28 (the third processor 51 of the server 50 that realizes the learning unit 28 by executing a predetermined learning program), so we will omit mentioning this operating entity and only describe the processing content in each step.
[0097] For illustrative purposes, the specifications and basic operations of the robot 10 to be studied are assumed to be the same as those described in the first embodiment. Specifically, the robot 10 to be studied is a four-wheeled vehicle-type robot as shown in Figure 5, and its basic operations are forward, backward, right turn, and left turn.
[0098] In step S281, the change is calculated from the motion log L (the motion log L collected in step S27 of Figure 10), and the process proceeds to step S282. Specifically, the change in the robot 10's motion d Log(k) for the kth time is calculated from the individual motion log Log(k) for each time k=1,2,3,... as follows. (As mentioned above, this is a common explanatory example for the first and second embodiments, so the variables in the following explanation are also the same as those explained in formulas 2 to 10 and in Figures 6 and 7 for the first embodiment. In other words, newly appearing variables are defined from variables that have already been explained.)
[0099]
number
[0100] At step S281, it is unclear which basic operation the operation log belongs to, so the changes dx, dy, and dθ for all variables are calculated as described above.
[0101] In step S282, the change in the operation log L, d Log(k), is clustered using unsupervised learning, and the cluster center of each cluster is found before proceeding to step S283. For unsupervised learning to implement clustering, for example, the k-means method (k-means algorithm) can be used. If it is necessary to set the number of clusters in advance, this may be done. For example, in this example there are four basic operations, so the number of clusters may be set to four. Any existing method may be used to obtain appropriate clustering results with the k-means method, for example, the initial values may be set using the method described in Non-Patent Document 5 below. [Non-Patent Literature 5] Takashi Onoda; Miho Sakai; Seiji Yamada. Performance Comparison of k-means Method Based on Differences in Initial Value Setting Method. : Proceedings of the 27th Fuzzy Systems Symposium, Japan Society for Fuzzy Theory and Intelligent Informatics. Japan Society for Fuzzy Theory and Intelligent Informatics, 2011. pp. 55-55.
[0102] Each cluster in the clustering result is C i Let i=1,2,... (in this example there are four clusters C1, C2, C3, C4), and the cluster center dL Ci This can be calculated as follows: |C i | is cluster C i This is the number of elements.
[0103]
number
[0104] In step S283, each cluster C i After matching the basic operation (which is prepared in advance as a template for the basic operation), the process proceeds to step S284. Specifically, the basic operation defined in advance as a template matches each cluster C i cluster-centered dL Ci The two are matched using Euclidean distance. In this example, the basic operation template is obtained by applying the first embodiment to a robot of the same specifications in step S53 of Figure 4, and the basic operation M f M b M r M l The amount of change dM f dM b dM r dM l Since this is required as a template, each cluster-centered dL Ci (i=1,2,3,4) can be matched as follows.
[0105]
number
[0106] In this example, it is assumed that each of the four clusters and each basic operation are matched as follows.
[0107]
number
[0108] In step S284, the operation log with the largest change in the basic operation and within each of the matched clusters is selected, and then the process proceeds to step S285. In this example, the selection can be made as follows.
[0109]
number
[0110] The selection method in the above example is the same as the method for selecting the most effective operation described in the first embodiment above. (From the definition in Equation 11, dy k = y1-y0, and for example, forward movement is (1A) as described above, "y1-y0<0" (i.e., dy k <0) means that the Y-axis direction is contracting, and dy is a negative value. k The case where is minimized corresponds to moving forward the largest distance. On the other hand, backward movement is the opposite, and as mentioned above, dy is a positive value as (2A). k The case where this is maximized corresponds to retreating the largest distance.) In other words, the basic movement that is deemed optimal according to a pre-prepared template (a template that provides definitions for each basic movement and the amount of change in each basic movement (movement of the robot 10), and is output in step S53 of Figure 4) should be selected in step S284 of this second embodiment. (That is, the selection in step S284 of the second embodiment is for each cluster C iThe operation logs may be targeted and selected in the same manner as the processing of the basic operation selection unit 25 in the first embodiment.) For example, in this explanatory example, when selecting operations that do not involve movement in the x-axis direction with respect to forward and backward movement, the determination is made by tolerance value (the aforementioned tolerance value th) in the same manner as in the first embodiment. f You can also narrow down the selection criteria by adding a check to ensure that the selection is within a certain range (acceptable threshold).
[0111] In step S285, the operation log with the largest change amount selected in step S284 above is saved as the basic operation, and the flow in Figure 11 is terminated. That is, the result output and saving in step S285 is (formally) the same as in step S53 in Figure 4, and the change amount of the operation log is saved in association with the string for giving instructions to the robot 10. In this example, four basic operations are saved as follows.
[0112]
number
[0113] (4) As described above, the first embodiment may be implemented for a robot 10A to obtain information regarding its basic operation, and the second embodiment may be implemented for another robot 10B having the same specifications as robot 10A to learn the optimal control commands to realize the basic operation from its operation log.
[0114] For example, both robots 10A and 10B are four-wheeled vehicle-type robots as shown in Figure 5. In robot 10A, the tire sizes of all four wheels W1, W2, W3, and W4 are the same (e.g., radius r), and in robot 10B, the specifications are the same (actuators A1, A2, A3, and A4 are arranged in the same way). However, if the administrator changes the tires to suit the usage environment, for example, by making the left and right front wheels W1 and W2 slightly larger (e.g., radius 1.2r) and the left and right rear wheels W3 and W4 slightly smaller (e.g., radius 0.8r), then the optimal control mode for achieving basic movements such as forward, backward, right turn, and left turn may differ between robots 10A and 10B. If the movement mechanism is even more complex (e.g., in the case of six-wheeled or eight-wheeled vehicle-type robots), it is conceivable that the optimal control mode for achieving basic movements may differ even between robots 10A and 10B with the same specifications. The first and second embodiments of the present invention can also address such cases. [Explanation of Symbols]
[0115] 100...Automatic motion acquisition system, 10...Robot, 30...Dongle, 50...Server, 20...Control unit, 21...Preparation unit, 22...Basic motion acquisition unit, 27...Memory unit, 28...Learning unit
Claims
1. A method for automatically acquiring instructions to a plurality of actuators for performing basic operations on a robot that moves using a moving mechanism driven by a plurality of actuators, With respect to another robot having the same specifications as the aforementioned robot, the basic operation and the instructions to multiple actuators for performing that basic operation on the other robot are known as templates. The operation log of the robot is acquired (S27) by linking the presence or absence of control input to each of the plurality of actuators, the specified signal type of the control input when there is a control input, and the movement information of the robot before and after the individual operation performed by the robot when the control input to the actuator is performed based on the specified information. By learning using the operation log and the template (S28), the system automatically acquires information on whether or not a control input is present to each of the multiple actuators, and the type of signal specified for the control input when one is present, in order to achieve the optimal basic operation. The method is characterized in that the moving mechanism is a wheel, and the type of control input signal to each of the plurality of actuators includes one that causes the corresponding wheel to rotate forward or backward via drive control of the actuator.
2. The method according to claim 1, characterized in that the learning (S28) includes classifying the operation logs into clusters corresponding to each of the basic operations included in the template (S281, S282), and selecting the optimal one for realizing the basic operation from the operation logs of each classified cluster (S284).
3. The method according to 2, characterized in that classifying into the aforementioned clusters (S281, S282) includes classifying each individual operation constituting the operation log by unsupervised learning based on the robot's movement information before and after the individual operation (S282).
4. The method according to any one of 1 to 3, characterized in that a method for automatically acquiring instructions to the actuator is performed as a trigger when a dongle is connected to the robot (S1).
5. The method according to claim 2, characterized in that the basic movements of the robot include forward movement, backward movement, right turn, or left turn among the movements of the robot on a plane.
6. When selecting the corresponding basic operation as forward, backward, right turn, or left turn (S284, S285), From the operation logs for each cluster, select those that are determined to correspond to forward movement, backward movement, rightward turn, or leftward turn, The method according to claim 5, characterized in that, in the case of one of forward, backward, right turn, or left turn, if there are multiple options for the selected option, the option that maximizes the corresponding travel distance or change in attitude is selected as the most effective.