Control system

By using computing units and grid map technology in the control system, the inverse kinematic solution for each unit area is solved, and the problem of high computational volume in the prior art is difficult to achieve, and the rapid control capability of the robot arm is realized.

JP2025039197APending Publication Date: 2025-03-21NAGOYA ELECTRICAL EDUCATIONAL FOUNDATION +1
View PDF 1 Cites 0 Cited by

Patent Information

Application Number
JP2023146102
Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
Filing Date
2023-09-08
Publication Date
2025-03-21

AI Technical Summary

Technical Problem

The prior art has a large amount of calculation when optimizing the attitude of the robot arm, which makes it difficult to implement a fast control system.

Method used

By introducing a computing unit into the control system, a grid map is used to calculate whether there is an inverse kinematic solution in each unit area, thereby reducing the calculation amount of the control arm and achieving rapid control.

Benefits of technology

It effectively reduces the calculation amount of the control arm and improves the rapid control capability of the robot arm.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 2025039197000001_ABST
    Figure 2025039197000001_ABST
Patent Text Reader

Abstract

To provide a control system that can contribute to quick control of an arm part of a robot.SOLUTION: A robot 10 according to one embodiment comprises a moving unit 11, an arm part 13 provided in the moving unit 11 and a control device 20. The control device 20 has a calculating part 21 that calculates, for each unit region, whether or not there is a solution in inverse kinematics which the arm part 13 reaches a target position of the arm part 13, with respect to a plurality of unit regions constituting a map including a position as a candidate for a movement destination of the moving unit 11, and a selecting part 22 that selects a position of the movement destination of the moving unit 11, out of the plurality of unit regions, on the basis of a calculated result of whether or not there is the solution for each unit region.SELECTED DRAWING: Figure 2
Need to check novelty before this filing date? Find Prior Art

Description

[Technical field]

[0001] The present disclosure relates to control systems. [Background technology]

[0002] Technologies for controlling robots more accurately are being developed.

[0003] For example, Patent Document 1 discloses the following method for optimizing the posture of a mobile manipulator. The mobile manipulator sets the posture of the mobile manipulator for grasping an object to be grasped, calculates an estimate of the hand posture after the movement of the cart and the manipulator, which includes a probabilistic error, and calculates a graspable region, which is a hand posture capable of grasping the object to be grasped. The mobile manipulator then calculates a correction region having the estimate of the hand posture after the movement and the object posture of the object to be grasped as both ends of the boundary, and sets the corrected hand posture when the hand is moved and corrected within the overlapping range of the graspable region and the correction region. The mobile manipulator then optimizes the posture of the mobile manipulator using the estimate of the hand posture after the movement and the integral of the probabilistic distance of the hand posture in the margin region. [Prior art documents] [Patent documents]

[0004] [Patent Document 1] JP 2022-135512 A Summary of the Invention [Problem to be solved by the invention]

[0005] As described above, the technology described in Patent Document 1 optimizes the posture by taking into account errors caused by the movements of the cart and the manipulator. However, this technology requires a large amount of calculations for optimization, which may prevent rapid control.

[0006] The present disclosure is intended to solve such problems, and provides a control system that contributes to swift control of the arm portion of a robot. [Means for solving the problem]

[0007] A control system according to an exemplary embodiment of the present disclosure is a control system for a robot including a moving unit and an arm unit provided on the moving unit. The control system includes a calculation unit that calculates, for each of a plurality of unit areas constituting a map including candidate positions for the destination of the moving unit, whether or not there is a solution in inverse kinematics for the arm unit to reach the target position of the arm unit, and a selection unit that selects a destination position of the moving unit from among the plurality of unit areas based on the calculation result of the presence or absence of a solution for each unit area. In this way, in order to derive a solution for controlling the arm unit of the robot, it is sufficient to use the result of calculating the presence or absence of a solution using a map composed of unit areas. Therefore, the amount of calculation required for derivation can be reduced. Therefore, the control system can contribute to quickly controlling the arm unit of the robot. In addition, as an example, this control system can perform calculations using a machine learning method (for example, a method of updating a learning model by a system). Effect of the Invention

[0008] The present disclosure makes it possible to provide a control system that contributes to swift control of an arm portion of a robot. [Brief description of the drawings]

[0009] [Figure 1] FIG. 1 is a side view illustrating an example of a robot according to the present disclosure. [Diagram 2] FIG. 1 is a block diagram illustrating an example of a robot according to the present disclosure. [Figure 3A] 4 shows an example of a posture that an arm portion according to the present disclosure assumes. [Figure 3B] 11A and 11B show other examples of postures formed by the arm portion according to the present disclosure. [Figure 4A]3B is a grid map showing an example of the presence or absence of a solution for each unit area in the state of FIG. 3A. [Figure 4B] 3C is a grid map showing an example of the presence or absence of a solution in each unit area in the state of FIG. 3B. [Figure 5A] FIG. 4A shows a grid map in which solutions in which the arm part comes into contact with an obstacle have been excluded. [Figure 5B] FIG. 4B shows a grid map in which solutions in which the arm part comes into contact with an obstacle have been excluded. [Figure 6A] 11 is a grid map showing an example of the presence or absence of a solution for each unit area. [Figure 6B] The evaluation value of each unit area in the solution area of ​​FIG. 6A is shown. [Figure 7] 5 is a flowchart illustrating an example of processing of a control device according to the present disclosure. [Figure 8] FIG. 2 is a block diagram showing an example of a hardware configuration of a control device according to the present disclosure. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

[0010] Hereinafter, an embodiment of the present disclosure will be described with reference to the drawings. Note that the following description and drawings in the embodiments are omitted and simplified as appropriate for clarity of explanation. Each drawing referred to in the embodiments is merely an example for describing one or more embodiments. Not all of the features or steps shown in any one drawing are necessarily required to describe an exemplary embodiment, and some features or steps may be omitted. The order of steps described in any one drawing may be changed as appropriate.

[0011] First embodiment [Configuration Description] Fig. 1 is a diagram for explaining a robot according to an embodiment. As shown in Fig. 1, a robot 10 according to the present embodiment includes a moving unit 11 and a main body 12. The robot 10 is a standalone robot having a mobile manipulator function and is capable of autonomous operation. The robot 10 is, for example, an HSR (Human Support Robot) that supports human life, but the type of robot is not limited to this.

[0012] The moving unit 11 is a unit for moving the robot 10. For example, wheels and a motor (not shown) are provided on the underside of the moving unit 11, and the robot 10 can be moved or rotated freely on a plane by driving the motor to rotate or turn the wheels. However, the configuration of the moving unit 11 is not limited to this. The moving or rotating direction, speed, stopping, etc. of the moving unit 11 are controlled by control signals from a control device 20 inside the robot 10, which will be described later. By rotating the robot 10, the direction in which the main body 12 faces can be changed.

[0013] The main body 12 is mounted on the upper part of the moving unit 11, and has a body 121 and a head 122. The arm 13 is connected to the body 121. The arm 13 has an arm base 131, an arm main body 132, and a hand 133. The arm base 131 is supported on the front of the body 121, and can move freely within a predetermined range in the vertical direction of the body 121. The arm main body 132 is connected to the end of the arm base 131 opposite to the end on the body 121 side. In addition, the hand 133 is connected to the end of the arm main body 132 opposite to the end on the arm base 131 side. The hand 133 is a part formed to resemble a human finger, and can perform actions such as gripping or releasing an object.

[0014] The arm unit 13 is configured using a plurality of joints and links. Here, each joint has components such as an actuator, a reducer, an encoder, and a transmission mechanism, enabling the portion beyond the joint to move and rotate in any direction. These components are controlled by a control signal from the control device 20, and the arm unit 13 can perform actions such as grabbing or releasing various objects and gestures that express some meaning.

[0015] For example, a joint is provided at a location where the arm main body 132 is connected to the arm base 131, and this joint makes it possible to vary the angle between the arm main body 132 and the arm base 131. Similarly, a joint is provided at a location where the hand 133 is connected to the arm main body 132, and this joint makes it possible to vary the angle between the hand 133 and the arm main body 132.

[0016] Components such as a camera, a microphone, a speaker, or a display panel may be provided on the head 122. This enables communication between the robot 10 and humans.

[0017] Next, a system configuration of the robot 10 will be described. Fig. 2 is a block diagram for explaining an example of the system configuration of the robot. As shown in Fig. 2, the robot 10 includes a control device 20, a moving unit driving section 31, and an arm driving section 32 as a system configuration.

[0018] The control device 20 constitutes a system that controls the processing of each part of the robot 10, and is connected to each of the other components via a bus. The control device 20 controls the moving unit 11 and the arm section 13, and can cause the moving unit 11 to move the robot 10 and can also cause the arm section 13 to move and rotate. For example, in a case where the arm section 13 is to reach a target position of the arm section 13 in a predetermined target posture, the control device 20 can execute such control. The control device 20 has, as its functional configuration, a calculation section 21, a selection section 22, a drive control section 23, and a storage section 24. Each section will be described below.

[0019] The calculation unit 21 refers to a map including candidate positions for the movement destination of the mobile unit 11. The map includes within its range the area to which the mobile unit 11 is to move and the target position, and is composed of a plurality of unit areas. In this example, the map is two-dimensional, and the unit areas are squares each having the same length. On the map, the intervals between the nearest unit areas in a given direction are the same. In other words, the map is a grid map having a lattice configuration. The length of one side of the grid, which is the unit area, is set in advance according to the environment in which the robot 10 is installed, etc.

[0020] The calculation unit 21 calculates for each grid the presence or absence of a solution in inverse kinematics for the arm unit 13 to reach its target position for a plurality of grids constituting the map. That is, the calculation unit 21 checks for each grid whether the arm unit 13 can reach its target position when the mobile unit 11 has moved to a certain grid. Note that the calculation unit 21 may check for each grid whether the arm unit 13 can reach its target position in a predetermined target posture when the mobile unit 11 has moved to a certain grid, as a calculation process for the presence or absence of a solution. Based on data indicating the presence or absence of a solution calculated by the calculation unit 21 for each grid, the selection unit 22 selects a grid to which the mobile unit 11 is to move from one or more grids determined to have a solution.

[0021] As described later, the selection unit 22 can calculate, for each of a plurality of grids, the number of grids in which a solution exists among the grids located in the vicinity of the grid, as an evaluation value, based on the calculation result of the presence or absence of a solution for each grid. In this example, the grids located in the vicinity of the target grid are a total of eight grids that have at least one of the sides or points of the target grid in common (i.e., are adjacent to the target grid). However, the definition of the grids located in the vicinity is not limited to this. For example, a grid that has one of the sides in common with the target grid may be defined as a grid located in the vicinity of the target grid. Or, a grid included within a predetermined distance from the center of the target grid may be defined as a grid located in the vicinity of the target grid. However, the selection unit 22 does not necessarily need to execute the calculation process of the evaluation value.

[0022] Furthermore, when calculating the presence or absence of a solution for a plurality of grids, the calculation unit 21 may calculate the presence or absence of a solution for each grid for each of a plurality of modes classified according to the nature of the solution. Here, the plurality of modes classified according to the nature of the solution refer to modes in which different types of control are performed for each joint of the arm unit 13.

[0023] Here, an example will be described in which the mode is defined according to the angle (hereinafter defined as θ) between a vector having an end of the arm main body 132 on the arm base 131 side as a starting point and an end of the opposite end on the hand 133 side as a terminal point, and the horizontal direction. If θ is an elevation angle, θ is a positive value, and if θ is a depression angle, θ is a negative value. Two types of modes are set according to whether θ is an elevation angle or a depression angle. In other words, two types of modes are set according to whether the center of the arm base 131 in the vertical direction is higher or lower than the center of the hand 133 in the vertical direction in a predetermined target posture. Depending on whether θ is an elevation angle or a depression angle, the control performed on the joint changes, so the modes are defined separately. However, the method of dividing the modes is not limited to this. In addition, three or more types of modes may be set.

[0024] Note that when θ is 0°, that is, when the vector formed by the arm main body 132 faces the horizontal direction, θ may be determined to be an elevation angle. In other words, when θ is 0° or more, θ is determined to be an elevation angle, and when θ is less than 0°, θ is determined to be a depression angle. However, when θ is 0°, that is, when the vector formed by the arm main body 132 faces the horizontal direction, θ may be determined to be a depression angle.

[0025] Fig. 3A shows an example of a posture formed by the arm unit 13. In Fig. 3A, the angle θ with respect to the arm main body 132 is an elevation angle. In other words, in the posture shown in Fig. 3A, the center of the arm base 131 in the vertical direction is lower than the center of the hand 133 in the vertical direction. By causing the arm unit 13 to take the posture shown in Fig. 3A, it becomes possible for the hand 133 to grasp an object S at a predetermined height.

[0026] FIG. 3B shows another example of the posture formed by the arm unit 13. In FIG. 3B, the angle θ with respect to the arm main body 132 is a depression angle. In other words, in the posture shown in FIG. 3B, the center of the arm base 131 in the vertical direction is higher than the center of the hand 133 in the vertical direction. By taking the posture shown in FIG. 3B, the arm unit 13 can grasp the object S at a predetermined height with the hand 133, as in FIG. 3A. In this way, even when the arm unit 13 performs the same operation, there may be multiple solutions in the inverse kinematics as shown in FIGS. 3A and B. In this specification, the solutions shown in FIGS. 3A and B are defined as solutions of different modes.

[0027] Fig. 4A is a grid map showing an example of the presence or absence of a solution for each grid in the state of Fig. 3A. Grid map M1 shows an area in which robot 10 in Fig. 3A can move. Grid map M1 is composed of square grids with a predetermined length on each side. Grid T1 in Fig. 3A is an area including a target position where object S shown in Fig. 3A exists. At this time, on grid map M1, a set of grids having a solution for a mode in which angle θ is an elevation angle (hereinafter also referred to as mode A) is represented by a hatched solution area A1.

[0028] FIG. 4B is a grid map showing an example of the presence or absence of a solution for each grid in the state of FIG. 3B. Grid map M2 shows an area in which robot 10 in FIG. 3B can move, and is composed of square grids with a predetermined side length. Grid map M2 shows an area in the same position as grid map M1. Grid T1 is an area including a target position where object S shown in FIG. 3B exists, and shows the same position as grid T1 in FIG. 4A. At this time, on grid map M1, a set of grids having a solution for a mode in which angle θ is a depression angle (hereinafter also referred to as mode B) is represented by a hatched solution area A2.

[0029] In this way, the calculation unit 21 can calculate the presence or absence of a solution for each of a plurality of modes classified according to the nature of the solution, for each grid of the grid map.

[0030] Comparing FIG. 4A and FIG. 4B, the solution region A2 in FIG. 4B has a larger area than the solution region A1 in FIG. 4A. That is, the mode B has more solutions than the mode A. The calculation unit 21 compares the grid maps resulting from the calculation shown in FIG. 4A and FIG. 4B, and determines that the one shown in FIG. 4B has more solutions. As a result, the calculation unit 21 determines that the mode shown in FIG. 4B is more robust against positional deviations of the mobile unit 11 and the like. The calculation unit 21 selects the mode B shown in FIG. 4B. The selection unit 22 selects a grid to which the mobile unit 11 will move from one or more grids determined to have a solution in FIG. 4B, that is, the solution region A2.

[0031] Even if there are three or more modes, the calculation unit 21 can select the mode that has the largest number of solutions (i.e., the widest solution region). The selection unit 22 selects a grid to be the destination of the mobile unit 11 from one or more grids determined to have a solution in that mode.

[0032] However, the method by which the calculation unit 21 selects one mode when there are multiple modes is not limited to the above. For example, when the calculation unit 21 calculates the presence or absence of a solution for each grid of the grid map for each of the multiple modes, the calculation unit 21 may calculate the size of an area formed by grids having a solution adjacent to each other for each mode. This allows the calculation unit 21 to more accurately calculate an area of ​​a solution that is robust against positional deviations of the mobile unit 11, etc. The calculation unit 21 selects the mode in which the largest area exists based on the calculation result.

[0033] The calculation unit 21 can determine the grid for calculating the presence or absence of a solution in inverse kinematics for one or more modes based on the target position and the length of the arm unit. However, the calculation unit 21 does not necessarily need to execute this process.

[0034] For example, the calculation unit 21 can determine the range of the grid map for calculating whether or not there is a solution, based on the target position and the length of the arm unit 13. Specifically, the calculation unit 21 sets a circular area (hereinafter also referred to as a great circle area) having a center at the target position and a radius equal to the overall length of the arm unit 13 when the arm unit 13 is fully extended. Then, the calculation unit 21 may determine the range of the grid map so that no area other than the great circle area is included.

[0035] Instead of or in addition to the above process, the calculation unit 21 may determine the range of the grid map for which the presence or absence of a solution is to be calculated as follows. Specifically, the calculation unit 21 sets a circular area (hereinafter also referred to as a small circular area) centered on the target position and having a radius equal to the overall length of the arm unit 13 when the arm unit 13 is retracted to the shortest length. Then, the calculation unit 21 may determine the range of the grid map so that the small circular area is not included.

[0036] The calculation unit 21 calculates whether or not there is a solution for each of all grids included in the grid map determined as described above.

[0037] However, the calculation unit 21 may determine the range of grids for which the presence or absence of a solution is to be calculated within a preset grid map range, based on the target position and the length of the arm unit 13. In this case, the calculation unit 21 calculates the presence or absence of a solution for grids included in the determined range. However, the calculation unit 21 does not calculate the presence or absence of a solution for grids outside the determined range, even if they are within the grid map range. The method of determining the range based on the target position and the length of the arm unit 13 is as described above.

[0038] Furthermore, the calculation unit 21 may exclude areas in which the mobile unit 11 cannot move (areas other than the movable area) from the grids for which the presence or absence of a solution in inverse kinematics is calculated. The area in which the mobile unit 11 cannot move refers to an area of ​​the ground that the mobile unit 11 cannot reach due to the influence of an obstacle present in the space around the mobile unit 11, for example. The calculation unit 21 can execute this exclusion process by using data in which the position information of the obstacle is reflected in the grid map. However, the calculation unit 21 does not necessarily need to execute this exclusion process.

[0039] For example, the calculation unit 21 may determine that an area in which the mobile unit 11 cannot move is not included in the range of the grid map. The calculation unit 21 calculates the presence or absence of a solution for each of all grids included in the determined grid map. Alternatively, the calculation unit 21 may exclude an area in which the mobile unit 11 cannot move within a preset range of the grid map from the calculation target for the presence or absence of a solution. In this case, the calculation unit 21 does not calculate the presence or absence of a solution for the excluded grids even if they are within the range of the grid map, and calculates the presence or absence of a solution for grids that are within the range of the grid map and have not been excluded.

[0040] Furthermore, even if a solution exists in a certain grid, it is assumed that there is a possibility that the arm section 13 may come into contact with an obstacle when the arm section 13 operates to reach a target position with the mobile unit 11 positioned on that grid. Taking this situation into consideration, the calculation unit 21 is capable of excluding, as an invalid solution, any solution in which the arm section 13 comes into contact with an obstacle, among the solutions calculated when calculating the presence or absence of a solution for each grid for one or more modes. The calculation unit 21 is capable of executing a process of excluding this solution by using data in which the position information of the obstacle is reflected in the grid map. However, the calculation unit 21 does not necessarily have to execute this process of excluding the solution.

[0041] 5A and 5B are grid maps in which the solutions in which the arm unit 13 comes into contact with an obstacle are excluded from the solutions in FIG. 4A and 4B, respectively. In FIG. 5A, the solution area A1 is a region in which grids having solutions in which the arm unit 13 comes into contact with an obstacle are excluded, and is shown as solution area A3. In FIG. 5B, the solution area A2 is a region in which grids having solutions in which the arm unit 13 comes into contact with an obstacle are excluded, and is shown as solution area A4.

[0042] Comparing FIG. 5A and FIG. 5B, the solution region A3 in FIG. 5A has a larger area than the solution region A4 in FIG. 5B. That is, the mode A has more solutions than the mode B. The calculation unit 21 compares the grid maps resulting from the calculation shown in FIG. 5A and FIG. 5B, and determines that the one shown in FIG. 5A has more solutions. As a result, the calculation unit 21 determines that the mode shown in FIG. 5A is more robust against positional deviations of the mobile unit 11 and the like. The calculation unit 21 selects the mode A shown in FIG. 5A. The selection unit 22 selects a grid to which the mobile unit 11 will move from one or more grids determined to have a solution in FIG. 5A, that is, the solution region A3.

[0043] Even when three or more modes exist, the calculation unit 21 can calculate the presence or absence of a solution for each grid of the grid map for each mode, and can exclude solutions in which the arm unit 13 comes into contact with an obstacle. Here, the calculation unit 21 may select a mode with the largest number of solutions after the solution exclusion process is performed. Furthermore, the calculation unit 21 may calculate, for each mode, the size of an area formed by grids having solutions being adjacent to each other after the solution exclusion process is performed. Based on the calculation result, the calculation unit 21 selects the mode with the largest area.

[0044] Furthermore, when calculating the presence or absence of a solution for each grid, the calculation unit 21 may separate the degree of freedom indicating the position of the moving unit 11 as a parameter from the degrees of freedom of the coordinate system used in calculating the presence or absence of a solution. Thereafter, the calculation unit 21 performs calculation of the presence or absence of a solution using the degrees of freedom indicating the rotation angle of the moving unit 11 and the degrees of freedom related to the arm unit 13. By performing this process, the calculation unit 21 can set a small number of parameters to be calculated in calculating the presence or absence of a solution. Therefore, the calculation unit 21 can reduce the time required for calculation.

[0045] Returning to Fig. 2, the description of the control device 20 continues. The selection unit 22 selects a grid that is to be the destination position of the mobile unit 11 from among the grids that are the calculation targets, based on the calculation result of whether or not there is a solution for each grid calculated by the calculation unit 21. The selection unit 22 also selects the solution calculated by the calculation unit 21 for the selected grid.

[0046] The selection unit 22 can select grids, for example, in the following manner. Based on the calculation result of the presence or absence of a solution for each grid, the selection unit 22 calculates, for each of the multiple grids, the number of grids that have a solution among the grids adjacent to that grid, as an evaluation value. Then, based on the evaluation values ​​for the multiple grids, the selection unit 22 selects a destination position for the mobile unit 11 from among the multiple grids.

[0047] Fig. 6A is a grid map showing an example of the presence or absence of a solution for each grid. The calculation unit 21 selects one mode from a plurality of modes using the method described above, and generates a grid map M11 showing the presence or absence of a solution for that mode, as shown in Fig. 6A. However, the calculation unit 21 may generate a grid map M11 showing the presence or absence of a solution without selecting a mode.

[0048] On the grid map M11, a set of grids having a solution is represented by a hatched solution area A11. The area R1 is an area including the solution area A11. The solution area A11 may be an area excluding those solutions in which the arm unit 13 comes into contact with an obstacle, or may be an area in which the exclusion process of the solutions has not been performed.

[0049] 6B shows the evaluation value of each grid in the solution region A11 in the region R1. For each grid in the solution region A11, the selection unit 22 calculates the number of grids that have a solution among the grids adjacent to that grid as the evaluation value. For example, grid U1 in the solution region A11 has solutions in six of its eight adjacent grids. Therefore, the selection unit 22 calculates the evaluation value of grid U1 as "6". In the same manner, the selection unit 22 calculates the evaluation values ​​of the other grids in the solution region A11.

[0050] The selection unit 22 selects a destination position of the mobile unit 11 from within the solution region A11 based on the calculation result of the evaluation value shown in Fig. 6B. For example, the selection unit 22 may select one grid to be the destination position of the mobile unit 11 from among the grids having the highest evaluation value "6" in the solution region A11. In the case of Fig. 6B, the selection unit 22 can select any grid from among the three grids having an evaluation value of "6" as the destination position of the mobile unit 11.

[0051] However, the method of the selection unit 22 selecting the destination position of the mobile unit 11 is not limited to this. For example, when a predetermined threshold value for the evaluation value is set in advance according to the environment in which the robot 10 is installed, the selection unit 22 may select one grid to be the destination position of the mobile unit 11 from among grids having an evaluation value equal to or greater than the predetermined threshold. Furthermore, the method of calculating the evaluation value is not limited to the above. For example, the selection unit 22 may define the number of grids having a solution among grids having any side in common with the grid to be evaluated as the evaluation value of the grid to be evaluated. Alternatively, the selection unit 22 may define the number of grids having a solution among grids included within a predetermined distance from the center of the grid to be evaluated as the evaluation value of the grid to be evaluated.

[0052] In addition, when there are a plurality of modes and the calculation unit 21 calculates the presence or absence of a solution for each grid of the grid map for each of the plurality of modes, the selection unit 22 may select one mode instead of the calculation unit 21. Specifically, the selection unit 22 calculates an evaluation value for each grid in the solution region for each mode using the above-mentioned method. Then, the selection unit 22 may select a mode having a solution region with a grid having the highest evaluation value among the plurality of modes. Alternatively, the selection unit 22 may select a mode having a solution region with a grid having an evaluation value equal to or greater than a predetermined threshold among the plurality of modes. The selection unit 22 selects one grid to be the destination position of the mobile unit 11 from among the grids having the highest evaluation value or the grids having an evaluation value equal to or greater than a predetermined threshold in the selected mode.

[0053] As another example, the selection unit 22 may select, as a single grid to be a destination position of the mobile unit 11, a grid that is closest to the current position of the robot 10 among grids in a solution region in a grid map of a mode for which a destination position is to be selected. In addition, when there are multiple modes and the calculation unit 21 calculates the presence or absence of a solution for each grid of a grid map for each of the multiple modes, the selection unit 22 may select a mode in which a grid that is closest to the current position of the robot 10 exists among grids in the solution region. The selection unit 22 selects, in the selected mode, a grid that is closest to the current position of the robot 10 as a single grid to be a destination position of the mobile unit 11. In this case, the selection unit 22 may calculate, as the above evaluation value, the inverse of the distance between the current position of the robot 10 and a grid in the solution region, or the distance multiplied by a predetermined negative number.

[0054] The selection unit 22 may use multiple methods for calculating the evaluation value. After calculating the evaluation value for the grid for which the evaluation value is to be calculated using multiple methods, the selection unit 22 multiplies each evaluation value by a predetermined weight. Then, the selection unit 22 calculates the sum of the weighted evaluation values ​​as the final evaluation value. The selection unit 22 calculates the final evaluation value for all grids for which the evaluation value is to be calculated, and selects one grid that will be the destination position of the mobile unit 11 using any of the above selection methods using the evaluation value for the final evaluation value.

[0055] However, the selection unit 22 does not have to use the evaluation value when selecting a destination position for the mobile unit 11.

[0056] Returning to FIG. 2, the description of the control device 20 will be continued. The drive control unit 23 transmits a control signal to the moving unit drive unit 31 so that the moving unit 11 moves to the grid selected by the selection unit 22. In addition, the drive control unit 23 transmits a control signal to the arm drive unit 32 so that the arm unit 13 executes an operation according to the solution calculated by the calculation unit 21 for the grid selected by the selection unit 22 when the moving unit 11 moves to the grid selected by the selection unit 22. In other words, the drive control unit 23 transmits a control signal to the arm drive unit 32 so that the arm unit 13 reaches a target position and takes a predetermined target posture, thereby executing an operation such as grasping an object. Note that the drive control unit 23 may control the moving unit drive unit 31 and the arm drive unit 32 so that other movements of the robot 10 and operations of the arm unit 13 are performed.

[0057] The storage unit 24 stores information necessary for the processing of the calculation unit 21 and the selection unit 22, such as grid map data, position information of obstacles of the robot 10, algorithms indicating the calculation methods executed by the calculation unit 21 and the selection unit 22, threshold values ​​used for judgment, etc. However, the processing executed by at least either the calculation unit 21 or the selection unit 22 may be realized by using an AI (Artificial Intelligence) model that has undergone machine learning, instead of an algorithm.

[0058] Moreover, the position information of the obstacle used by the calculation unit 21 when excluding an area where the mobile unit 11 cannot move may be stored in the storage unit 24 as map information such as an obstacle map. Moreover, the position information of the obstacle used by the calculation unit 21 when determining whether or not the arm unit 13 will come into contact with an obstacle for an existing solution may be stored in the storage unit 24 as information such as a three-dimensional point cloud. The calculation unit 21 and the selection unit 22 execute the above-mentioned processing by appropriately referring to the information in the storage unit 24.

[0059] The control device 20 may recognize that the user has instructed the robot 10 to grasp an object at a predetermined position by acquiring, for example, imaging data acquired from a camera in the head 122 or audio data acquired from a microphone, and analyzing the acquired data. The control device 20 may also recognize that the user has instructed the robot 10 to place the object it is grasping at a predetermined position by analyzing the imaging data or audio data. When the control device 20 recognizes such an instruction from the user, it sets the instructed predetermined position as the target position of the arm unit 13. Then, the control device 20 derives a solution for the arm unit 13 to reach the target position as described above.

[0060] The moving unit driving section 31 controls the wheels and motor of the moving unit 11 in response to a control signal from the drive control section 23, thereby causing the moving unit 11 to move in a predetermined direction and rotate. The arm driving section 32 controls the joints of the arm section 13 in response to a control signal from the drive control section 23, thereby causing the arm section 13 to perform a predetermined operation.

[0061] [Explanation of the process flow] 7 is a flowchart showing an example of the processing of the control device 20, and this flowchart will be used to explain the outline of the processing of the control device 20. Note that the details of each processing are as described above, and therefore will not be explained as appropriate.

[0062] First, the calculation unit 21 judges whether or not the large circle area and the small circle area described above can be derived based on the target position and the length of the arm unit 13 (step S11). The large circle area and the small circle area are in a concentric relationship. If the large circle area and the small circle area can be derived (Yes in step S11), the calculation unit 21 generates a grid map so that the range of the grid map includes an area (hereinafter also referred to as a target area) inside the large circle area and excluding the small circle area (step S12). The grid map includes the target area and the target position where the mobile unit 11 moves. At the time when the grid map is generated, the inverse kinematic solution has not been calculated for all the grids in the grid map. In addition, in FIG. 7, the inverse kinematic solution is also described as an "IK solution", and the grid where the inverse kinematic solution has not been calculated is also described as an "IK uncalculated grid".

[0063] The calculation unit 21 selects one grid for which a solution in inverse kinematics has not been calculated from the generated grid map (step S13). The calculation unit 21 determines whether the selected grid (hereinafter, also referred to as the selected grid) is within the target region (step S14).

[0064] If the selected grid is within the target area (Yes in step S14), the calculation unit 21 determines whether or not the center of the selected grid is within the movable area of ​​the mobile unit 11 (step S15). If the center of the selected grid is within the movable area of ​​the mobile unit 11 (Yes in step S15), the calculation unit 21 calculates whether or not there is a solution in the inverse kinematics for the selected grid for each solution mode (step S16). The calculation process for whether or not there is a solution is as described above.

[0065] After the process of step S16, the calculation unit 21 judges whether or not the processes from step S13 onward have been performed on all grids in the grid map (step S17). If the selected grid is not within the target area (No in step S14) or if the center of the selected grid is not within the movable area of ​​the mobile unit 11 (No in step S15), the calculation unit 21 does not execute the calculation of whether or not there is a solution shown in step S16. In this case, the calculation unit 21 executes the judgment of step S17.

[0066] If there is a grid for which the process in step S13 and subsequent steps has not been performed (No in step S17), the calculation unit 21 selects another grid for which the solution in inverse kinematics has not been calculated in the grid map (step S13). Thereafter, the calculation unit 21 executes the process in step S14 and subsequent steps for the selected grid.

[0067] When the processing from step S13 onward has been performed on all grids (Yes in step S17), the calculation unit 21 determines whether or not there is a grid in which an inverse kinematics solution exists in at least one grid map of the mode (step S18). When there is no grid in which an inverse kinematics solution exists in any grid map of the mode (No in step S18), the calculation unit 21 determines that there is no inverse kinematics solution. The calculation unit 21 outputs the determination result to the drive control unit 23 (step S19). Even when the large circle region and the small circle region cannot be derived in step S11 (No in step S11), the calculation unit 21 determines that there is no inverse kinematics solution, and outputs the determination result to the drive control unit 23 (step S19). In this case, the drive control unit 23 does not execute control such that the arm unit 13 reaches the target position.

[0068] In step S18, if there is a grid in which an inverse kinematics solution exists in at least one mode's grid map (Yes in step S18), the calculation unit 21 identifies one grid in which an inverse kinematics solution exists in the grid map (step S20). The calculation unit 21 determines whether or not the arm unit 13 will come into contact with an obstacle when the solution calculated for the identified grid is realized (step S21). In other words, the calculation unit 21 determines whether or not the solution of the identified grid is a valid solution.

[0069] If the solution of the identified grid is not a valid solution (No in step S21), the calculation unit 21 deletes the solution to exclude it from the target of subsequent processing (step S22). After the processing of step S22, the calculation unit 21 judges whether or not the processing of step S21 and subsequent steps has been performed on all grids in each mode in which a solution in inverse kinematics exists (step S23). Note that if the solution of the identified grid is a valid solution (Yes in step S21), the calculation unit 21 does not execute the deletion of the solution shown in step S22. In this case, the calculation unit 21 executes the judgment of step S23.

[0070] If there is a grid for which the process after step S21 has not been performed among all grids in each mode for which a solution in inverse kinematics exists (No in step S23), the calculation unit 21 identifies one grid for which the process after step S21 has not been performed (step S20). Thereafter, the calculation unit 21 executes the process after step S21 for the identified grid.

[0071] When the processes from step S21 onward have been performed on all grids in each mode for which an inverse kinematics solution exists (Yes in step S23), the calculation unit 21 determines whether or not there is a grid for which an inverse kinematics solution exists (step S24). If there is no grid for which an inverse kinematics solution exists (No in step S24), the calculation unit 21 determines that there is no inverse kinematics solution. The calculation unit 21 outputs the determination result to the drive control unit 23 (step S19). In this case, the drive control unit 23 does not execute control such that the arm unit 13 reaches the target position.

[0072] If there is a grid where the inverse kinematics solution exists (Yes in step S24), the calculation unit 21 compares the number of grids where the inverse kinematics solution exists in each mode. The calculation unit 21 selects the mode where the number of grids where the solution exists is the largest (step S25).

[0073] The selection unit 22 selects one grid in which a solution for inverse kinematics exists in the grid map of the mode selected in step S25 (step S26). The selection unit 22 calculates an evaluation value in the selected grid (step S27). After the process of step S26, the selection unit 22 determines whether the process of step S27 has been performed in all grids in which a solution for inverse kinematics exists in the grid map of the selected mode (step S28).

[0074] If there is a grid for which the process in step S27 and subsequent steps has not been performed (No in step S28), the selection unit 22 identifies another grid for which the process in step S21 and subsequent steps has not been performed among all grids for which a solution in the inverse kinematics exists (step S26). Thereafter, the selection unit 22 executes the process in step S27 for the identified grid.

[0075] When the process of step S27 has been performed for all grids for which an inverse kinematic solution exists (Yes in step S28), the selection unit 22 selects the grid with the highest evaluation value and the solution of that grid. The selection unit 22 outputs information on this grid and the grid solution to the drive control unit 23 (step S29). In this case, the drive control unit 23 controls the moving unit drive unit 31 and the arm drive unit 32 based on the information on the grid solution.

[0076] [Effect description] As described above, the calculation unit 21 calculates for each grid a solution in inverse kinematics for the arm unit 13 to reach the target position of the arm unit 13 for a plurality of grids constituting a grid map including candidate positions for the destination of the mobile unit 11. The selection unit 22 selects a destination position of the mobile unit 11 from among the plurality of grids based on the calculation result of the presence or absence of a solution for each grid. By executing the above process, the control device 20 can use the result of calculating the presence or absence of a solution using a grid map composed of grids to derive a solution for controlling the arm unit 13. Therefore, the control device 20 can reduce the amount of calculation required to derive a solution. Therefore, the control device 20 can contribute to quickly controlling the arm unit of the robot.

[0077] For example, a robot with a moving function such as a mobile manipulator often uses a grid map to perform autonomous movement, etc. The control device 20 can derive a solution by repurposing the information of this grid map, so that the amount of information required for calculation can be reduced in addition to the normal operation of the robot 10.

[0078] Furthermore, the selection unit 22 may calculate, for each of the plurality of grids, the number of grids in which a solution exists among the grids located near the grid, as an evaluation value, based on the calculation result of the presence or absence of a solution for each grid. The selection unit 22 selects a destination position of the mobile unit 11 from among the plurality of grids, based on the evaluation values ​​for the plurality of grids. In this process, it is possible to select a grid in which a solution exists among the grids located near the grid, as the destination position of the mobile unit 11. Therefore, even if the destination position deviates from the planned position when the mobile unit 11 is actually moved, the control device 20 can control the arm unit 13 to reach the target position.

[0079] Generally, in a mobile manipulator, the positioning accuracy of the mobile unit 11 is lower than that of the arm unit 13. Therefore, from the viewpoint of robotics, it is highly effective to derive a robust solution that enables the arm unit 13 to operate relative to the target position even if a certain degree of error occurs in the positioning of the mobile unit 11. It can be said that the evaluation value used in the above method indicates the possibility that a robust solution exists even if an error occurs in the positioning of the mobile unit 11.

[0080] The calculation unit 21 may also calculate the presence or absence of a solution for a plurality of grids for each of a plurality of modes classified according to the nature of the solution. The calculation unit 21 or the selection unit 22 selects one mode from the plurality of modes based on the calculation result of the presence or absence of a solution for each grid in each mode. The selection unit 22 can select a destination position of the mobile unit 11 from among the plurality of grids based on the calculation result of the presence or absence of a solution for each grid in the selected one mode. In the above process, modes with different solution properties are not reflected in the calculation result for selecting the destination position of the mobile unit 11.

[0081] It is assumed that the solution modes may differ between grids located nearby (for example, adjacent) to each other. In such a case, if the position of the mobile unit 11 shifts and the mobile unit 11 moves to a grid adjacent to the original destination grid, the control device 20 needs to control the arm unit 13 in a manner different from that initially assumed. This makes it difficult for the control device 20 to control the arm unit 13 quickly. However, the control device 20 selects a mode having appropriate solution properties as described above, and selects an appropriate grid in that mode. This allows the control device 20 to derive a solution that is robust against errors such as a shift in the position of the mobile unit 11.

[0082] If the position of the mobile unit 11 shifts and the mobile unit 11 moves to a grid having a solution different from the grid of the planned destination, the control device 20 needs to change the control of the arm unit 13. Therefore, it is expected that it will take time to complete the operation of the robot 10. However, by executing the above process by the control device 20, the occurrence of such a situation is suppressed, and therefore it is possible to suppress the time required for the operation.

[0083] Furthermore, the calculation unit 21 may execute at least one of the following processes. The calculation unit 21 may determine the grid for calculating the presence or absence of a solution in terms of inverse kinematics based on the target position and the length of the arm unit. The calculation unit 21 may exclude areas in which the mobile unit 11 cannot move from the grids for which the presence or absence of a solution in the inverse kinematics is calculated. Through these processes, the calculation unit 21 can reduce the amount of calculation required for deriving a solution by excluding areas where it is considered unnecessary to calculate the solution. Therefore, the control device 20 can derive a solution at a higher speed. In particular, when the selection unit 22 calculates evaluation values ​​for grids, reducing the number of grids for which evaluation values ​​are to be calculated as much as possible is effective in terms of reducing the amount of calculation and deriving a solution at a higher speed.

[0084] Furthermore, the calculation unit 21 may exclude, as a non-solution, any solution in which the arm unit 13 comes into contact with an obstacle, among the solutions calculated when calculating the presence or absence of a solution for each grid. By executing this process, the control device 20 can derive a robust solution that can actually cause the arm unit 13 to reach the target position.

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

[0086] For example, in the case where multiple calculations are performed in any order in at least one of the calculation unit 21 and the selection unit 22, a calculation that requires a smaller amount of calculation may be performed first in time series.

[0087] For example, the map used by the control device 20 is not limited to a grid map, and any type of map may be used as long as it is applicable to the processing of the present disclosure. For example, in a two-dimensional map, the unit area may be configured with any polygon (e.g., equilateral triangle, rectangle, regular hexagon, etc.). The shape of each unit area may be the same or different, and the area of ​​each unit area may be the same or different. In addition, on the map, the interval between the nearest unit areas in a specified direction may be the same or different.

[0088] Furthermore, the map is not limited to two dimensions, and may be a map in any dimension such as one dimension or three dimensions. For example, when the map is one-dimensional, the linear map is divided into one-dimensional unit areas having a predetermined length. In this case, the robot 10 can move in the linear area shown on the map. The calculation unit 21 calculates, for each unit area, the presence or absence of a solution in inverse kinematics for the arm unit 13 to reach the target position of the arm unit 13, for each line segment that is a plurality of unit areas constituting a one-dimensional map including candidate positions of the movement destination. The selection unit 22 selects the movement destination position of the mobile unit 11 from among the plurality of unit areas based on the calculation result of the presence or absence of a solution for each unit area. Details of this process are omitted since they are the same as those described for the grid map.

[0089] The control device 20 may be mounted on a computer such as a terminal or a server that remotely controls the robot 10, instead of on the robot 10. The control device 20 may be a system mounted on a single computer, or a system distributed and mounted on multiple computers. When each part of the control device 20 is realized by multiple computers, the method of distributing each part of the control device 20 to the multiple computers is arbitrary.

[0090] In the above embodiment, the present disclosure has been described as a hardware configuration, but the present disclosure is not limited to this. The present disclosure can also be realized by causing a processor in a computer to execute a computer program to perform the processing of the control device 20 described in the above embodiment.

[0091] 8 is a block diagram showing an example of a hardware configuration of an information processing device in which the process of the control device 20 shown in the embodiment is executed. Referring to FIG. 8, the information processing device 90 includes a signal processing circuit 91, a processor 92, and a memory 93.

[0092] The signal processing circuit 91 is a circuit for processing signals in accordance with the control of the processor 92. The signal processing circuit 91 may include a communication circuit for receiving a signal from a transmitting device.

[0093] The processor 92 is connected to the memory 93, and performs the processing of the device described in the above embodiment by reading and executing a computer program from the memory 93. As an example of the processor 92, one of a CPU (Central Processing Unit), an MPU (Micro Processing Unit), an FPGA (Field-Programmable Gate Array), a DSP (Demand-Side Platform), and an ASIC (Application Specific Integrated Circuit) may be used, or a plurality of them may be used in parallel.

[0094] The memory 93 is composed of a volatile memory, a non-volatile memory, or a combination thereof. The memory 93 is not limited to one, and a plurality of memories may be provided. The volatile memory may be, for example, a RAM (Random Access Memory) such as a DRAM (Dynamic Random Access Memory) or a SRAM (Static Random Access Memory). The non-volatile memory may be, for example, a ROM (Read Only Memory) such as a PROM (Programmable Random Only Memory) or an EPROM (Erasable Programmable Read Only Memory), a flash memory, or an SSD (Solid State Drive).

[0095] The memory 93 is used to store one or more instructions. Here, the one or more instructions are stored as programs in the memory 93. The processor 92 can perform the processes described in the above-mentioned embodiments by reading these programs from the memory 93 and executing them.

[0096] The memory 93 may include a memory built into the processor 92 in addition to a memory provided outside the processor 92. The memory 93 may also include a storage device disposed away from the processors constituting the processor 92. In this case, the processor 92 can access the memory 93 via an I / O (Input / Output) interface.

[0097] As described above, one or more processors included in each device in the above-mentioned embodiments execute one or more programs including a set of instructions for causing a computer to execute the algorithm described using the drawings. By executing the programs, the information processing described in each embodiment can be realized.

[0098] The program includes instructions or software codes that, when loaded into a computer, cause 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, compact disc read-only memory (CD-ROM), digital versatile disk (DVD), Blu-ray (registered trademark) 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 propagating signals. The transitory computer-readable medium or communication medium may provide the program to the computer via a wired communication path such as electric wire and optical fiber, or via a wireless communication path.

[0099] Although the present disclosure has been described above with reference to the embodiments, the present disclosure is not limited to the above-described embodiments. Various modifications that can be understood by a person skilled in the art can be made to the configuration and details of the present disclosure within the scope of the present disclosure. [Explanation of symbols]

[0100] 10. Robot 11 Mobile Units 12 Main body 121 Body 122 Head 13 Arm section 131 arm base 132 arm main body 133 Hands 20 Control device 21 Calculation section 22 Selection section 23 Drive control unit 24 Memory unit 31: moving unit drive section 32: arm drive section

Claims

1. A control system for a robot including a moving unit and an arm unit provided on the moving unit, a calculation unit that calculates, for each of a plurality of unit areas constituting a map including candidate positions for a destination of the moving unit, whether or not there is a solution in inverse kinematics for the arm unit to reach a target position of the arm unit; a selection unit that selects a destination position of the moving unit from among the plurality of unit areas based on a calculation result of the presence or absence of a solution for each of the unit areas. Control system.

2. The selection unit is calculating, for each of the plurality of unit areas, the number of unit areas in which a solution exists among unit areas located near the unit area, as an evaluation value based on a result of the calculation of the presence or absence of a solution for each of the plurality of unit areas; selecting a destination position of the moving part from among the plurality of unit regions based on the evaluation values ​​in the plurality of unit regions; The control system of claim 1 .

3. The calculation unit is Calculating the presence or absence of the solution for each of the plurality of unit regions for each of a plurality of modes classified according to the nature of the solution, for each of the unit regions; selecting one mode from the plurality of modes based on a calculation result of the presence or absence of a solution for each of the unit regions in each of the modes; the selection unit selects a destination position of the moving unit from among the plurality of unit areas based on a calculation result of the presence or absence of a solution for each of the unit areas in the one selected mode.

3. A control system according to claim 1 or 2.

4. the calculation unit determines a unit area for which the presence or absence of a solution in inverse kinematics is calculated based on the target position and the length of the arm unit; 3. A control system according to claim 1 or 2.

5. The calculation unit excludes an area in which the moving unit cannot move from a unit area in which the presence or absence of a solution in inverse kinematics is calculated.

3. A control system according to claim 1 or 2.

Citation Information

Patent Citations

  • Posture optimization method for mobile manipulator

    JP2022135512A