WO2023166561A1 - 移動経路設定方法 - Google Patents

移動経路設定方法 Download PDF

Info

Publication number
WO2023166561A1
WO2023166561A1 PCT/JP2022/008605 JP2022008605W WO2023166561A1 WO 2023166561 A1 WO2023166561 A1 WO 2023166561A1 JP 2022008605 W JP2022008605 W JP 2022008605W WO 2023166561 A1 WO2023166561 A1 WO 2023166561A1
Authority
WO
WIPO (PCT)
Prior art keywords
motion vector
movement
setting
area
movement path
Prior art date
Application number
PCT/JP2022/008605
Other languages
English (en)
French (fr)
Inventor
慧 高谷
Original Assignee
日本電気株式会社
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 日本電気株式会社 filed Critical 日本電気株式会社
Priority to PCT/JP2022/008605 priority Critical patent/WO2023166561A1/ja
Publication of WO2023166561A1 publication Critical patent/WO2023166561A1/ja

Links

Images

Classifications

    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/10Programme-controlled manipulators characterised by positioning means for manipulator elements

Definitions

  • the present invention relates to a moving route setting method, a moving route setting device, and a program.
  • Patent Literature 1 describes a method of searching for a movement route for the purpose of allowing a robot to perform safe and efficient work. Specifically, Patent Literature 1 describes setting grids in map information, setting vectors representing obstacle areas and vehicle movement directions in each grid, and searching for a route based on this information.
  • an object of the present invention is a moving route setting method that can solve the above-described problem that it is difficult to set a moving route for a moving object that is more optimal and safer. is to provide
  • a moving route setting method which is one embodiment of the present invention, comprises: Divide the space in which the moving body can move into each area, setting a motion vector for the movement of the moving object for each region based on information about objects existing in the space that hinder the movement of the moving object; When calculating a movement path of a mobile object in space so as to satisfy a preset condition, the movement path is calculated based on the motion vector set for each area and the distance of the area to the object. do, take the configuration.
  • the moving route setting device which is one embodiment of the present invention includes: a space dividing unit that divides the space in which the moving body can move into regions; a motion vector setting unit that sets a motion vector for the movement of the moving body based on information about an object existing in the space that hinders movement of the moving body for each of the regions; When calculating a movement path of a mobile object in space so as to satisfy a preset condition, the movement path is calculated based on the motion vector set for each area and the distance of the area to the object. a moving route calculation unit that with take the configuration.
  • a program that is one embodiment of the present invention is information processing equipment, Divide the space in which the moving body can move into each area, setting a motion vector for the movement of the moving object for each region based on information about objects existing in the space that hinder the movement of the moving object; When calculating a movement path of a mobile object in space so as to satisfy a preset condition, the movement path is calculated based on the motion vector set for each area and the distance of the area to the object. do, to carry out the process, take the configuration.
  • FIG. 1 is a block diagram showing the configuration of a robot control system according to Embodiment 1 of the present invention
  • FIG. FIG. 2 is a diagram showing an example of a workspace of the robot disclosed in FIG. 1
  • FIG. 2 is a block diagram showing the configuration of the robot work planning device disclosed in FIG. 1
  • FIG. FIG. 2 is a diagram showing a state of processing by the robot work planning device disclosed in FIG. 1
  • FIG. FIG. 2 is a diagram showing a state of processing by the robot work planning device disclosed in FIG. 1
  • FIG. FIG. 2 is a diagram showing a state of processing by the robot work planning device disclosed in FIG. 1
  • FIG. 2 is a flow chart showing the operation of the robot work planning device disclosed in FIG. 1
  • FIG. 1 is a block diagram showing the configuration of a robot control system according to Embodiment 1 of the present invention
  • FIG. FIG. 2 is a diagram showing an example of a workspace of the robot disclosed in FIG. 1
  • FIG. 2 is a block diagram showing the
  • FIG. 5 is a block diagram showing the hardware configuration of a route setting device according to Embodiment 2 of the present invention
  • FIG. 4 is a block diagram showing the configuration of a route setting device according to Embodiment 2 of the present invention
  • 9 is a flow chart showing the operation of the route setting device according to Embodiment 2 of the present invention
  • FIG. 1 to 2 are diagrams for explaining the configuration of the robot control system
  • FIGS. 3 to 7 are diagrams for explaining the processing operations of the robot control system.
  • FIG. 1 shows the configuration of a robot control system 1 according to the first embodiment.
  • the robot control system 1 mainly includes a measurement device 10 , a robot work planning device 20 , a robot controller 30 and a robot 40 .
  • the robot control system 1 sets the movement path of the robot 40 (robot arm hand 41), which is a mobile body, in order to safely and appropriately solve the robot work planning problem.
  • FIG. 2 is a diagram showing an example of a robot work planning problem to be solved in the robot control system 1 according to the first embodiment. Specifically, in the robot control system 1, the robot arm tip 41 of the robot 40 is moved in the space R shown in FIG. , gripping the transported objects 1 and 2, transporting the gripped transported objects 1 and 2, and joining them to the transported object target position (releasing the grip at the target position). Carry out a transportation plan including
  • the robot work planning device 20 may make an overall plan for transporting the plurality of objects, and then give a planning command to the robot controller 30. , a plan command is given to the robot controller 30 to cause the robot 40 to carry out the plan, and then a transportation plan for another object to be transported may be carried out.
  • the robot task planning problem to be handled by the robot control system 1 is not limited to being performed in the space R as shown in FIG.
  • the robot work problem is not limited to the installation of obstacles and transport objects as shown in FIG. 2, and any shape, arrangement, and number of obstacles and transport objects may be installed.
  • the space R may be a space of any shape, and is not limited to three dimensions, and may be a two-dimensional space or a one-dimensional space. Each configuration will be described below.
  • the measuring device 10 is composed of one or more sensors consisting of a camera, a range sensor, a sonar, or a combination thereof for detecting the state within the work space R where the robot 40 works.
  • what is actually measured by the measuring device 10 in the space R is the position of the transported object.
  • position information representing the position and shape of obstacles can be given to the robot work planning device 20 as constants and stored in advance at the time of system design.
  • the measuring device 10 supplies the measurement signal thus measured to the robot work planning device 20 .
  • the measuring device 10 is assumed to be a fixed-point camera in the space R of the robot work planning problem shown in FIG.
  • the measuring device 10 may be a self-propelled or flying device that moves within the work space in order to cope with such a situation. sensors (including drones).
  • the measurement device 10 may include sensors provided on the robot 40, sensors provided on other objects in the work space, and the like.
  • the measurement device 10 may include a sensor that detects sound within the workspace R to accommodate such situations.
  • the measuring device 10 may include various sensors that detect the state within the work space R, and may include sensors provided at arbitrary locations.
  • the robot work planning device 20 Based on the measurement signals received from the measuring device 10, the robot work planning device 20 performs simple tasks that can be accepted by the robot 40, such as "grab the transported object 1" and "release the grip of the transported object 1". is generated for each discrete time step (time step) t (hereinafter referred to as a task sequence), and is supplied to the robot controller 30 as a planning command. For example, in the robot work planning problem shown in FIG.
  • the robot controller 30 that receives the planning command executes each joint of the robot arm necessary to execute the planning command. Calculate the angle change of
  • the planning command may also include information on angle changes of each joint of the robot arm, in which case the amount of calculations that the robot controller 30 must perform will be reduced. The details of the configuration of the robot work planning device 20 will be described later.
  • the robot controller 30 generates input information for controlling the robot 40 based on the planning command received from the robot work planning device 20 and supplies the input information to the robot 40 .
  • the information included in the planning command is the position of the hand 41 of the robot 40 in the three-dimensional space at each discrete time step t, and a plurality of (single) It is information of a high degree of abstraction, such as which of the transported objects is gripped or whether any transported object is not gripped.
  • information of torque applied to each joint angle of the robot 40 is required as input information. Therefore, the robot controller 30 calculates specific torque input information to be given to the robot 40 necessary to realize an abstract state at each discrete time step t specified by the planning command, and uses this as input information. , to the robot 40 .
  • FIG. 3 is a block diagram showing the configuration of the robot work planning device 20
  • FIGS. 4 to 6 are diagrams showing the processing of the robot work planning device 20, and FIG. will be described with reference to the flow chart shown in FIG.
  • the robot work planning device 20 is composed of one or more information processing devices each having an arithmetic device and a storage device. Then, as shown in FIG. 3, the robot work planning device 20 includes a basic optimization problem construction unit 21, an initial space mesh decomposition unit 22, a motion vector information setting unit 23, a space mesh integration unit 24, an optimization objective function additional adjustment A unit 25 and an optimization calculation execution unit 26 are provided.
  • Each function of the basic optimization problem construction unit 21, the initial space mesh decomposition unit 22, the motion vector information setting unit 23, the space mesh integration unit 24, the optimization objective function addition adjustment unit 25, and the optimization calculation execution unit 26 performs an operation It can be realized by the device executing a program for realizing each function stored in the storage device. Each configuration will be described in detail below.
  • the basic optimization problem construction unit 21 constructs a robot work plan as a basic optimization problem based on the measurement signal supplied from the measuring device 10 .
  • a basic optimization problem must have two elements, constraint C and objective function J.
  • Constraint C is a set of constraint expressions that represent conditions that the entire system that plans the motion of the robot 40 should satisfy.
  • a constraint expression included in this constraint C there is a constraint expression by Expression 1 below, which expresses the target of the work to be executed by the robot.
  • the variables shown in Equation 3 in Equation 1 are the target position coordinates of each of the two transported objects.
  • the symbol shown in Equation 4 in Equation 1 is the L2 norm of vector v.
  • Equation 3 For the case where it is necessary to appropriately set the variables shown in Equation 3 according to the system environment. This may be the case, for example, in placing transported objects in defined positions on trays arbitrarily placed by a person. At this time, the variables in Expression 3 must be appropriately set according to the position and attitude of the arbitrarily arranged tray. In such a case, the measurement signal supplied from the measurement device 10 is used by the basic optimization problem construction unit 21 .
  • the above constraint equation is only an example, and the number of transported objects may be one or three or more. may be used to rewrite the above constraint equations. In any case, satisfying the above constraints requires that the two vehicles execute their solutions and eventually transition to the goal state.
  • Constraint C also includes constraints such as the following equation (5) regarding the motion space (movable range) of the robot, such as that the hand of the robot arm must move within a certain area.
  • Equation 6 the variables shown in Equation 6 are the position coordinates of the robot arm hand 41 in the three-dimensional space at the discrete time step t, and the variables shown in Equation 7 are the respective coordinates in the three-dimensional space of Equation 6.
  • Constraint C also includes a constraint on the initial condition (initial position) of the transported object as shown in Equation (8).
  • Equation 9 is the three-dimensional position coordinates of the two transported objects at the first planned time.
  • Expression 10 is the position coordinates of the transported object included in the measurement information supplied from the measuring device 10 .
  • Constraint C also includes the dynamics constraint of the hand of the robot arm as shown in Equation (11).
  • Equation 12 are the position coordinates at the discrete time step t of the hand of the robot arm, as in the constraints described above.
  • the variables shown in Equation 13 represent the input vector at the discrete time step t of the hand of the robot arm.
  • the size of the input given to the robot arm hand 41 may be limited for safety reasons.
  • the possible values of each variable in the equation (13) should be restricted as in the following equation (14).
  • Equation 15 are vectors representing the minimum and maximum values of each component of the input vector that can be given to the robot arm hand 41 .
  • Constraints C also include the dynamics constraints of the transport object.
  • a specific formula for this is the following Formula 16.
  • Equation 17 are the same as in the constraints above. From the definitions of these vectors and the latter two of the above constraint equations, it can be seen that the variables shown in Equation 18 are the velocity vectors of the robot arm hand and the transported object at the discrete time step t.
  • Formula 19 is a real number variable having a value of 0 or more, and is named a switching variable.
  • Equation 20 When this switching variable is given by Equation 20, the first constraint of the above constraints holds regardless of what vector Equation 18 is. On the other hand, if this switching variable becomes Equation 21, then the first of the constraints above requires that Equation 22 holds. Therefore, in the case of Equation 21, the transported object moves with the same velocity vector as the hand of the robot arm. In other words, it can be said that Expression 23, which is a switching variable, expresses whether or not the hand of the robot arm is gripping the transported object.
  • the second constraint of the above constraint equation is that when the switching variable is Equation 20, Equation 24 is required, and when the switching variable is Equation 21, the above constraint equation is Considering this together with the first constraint, the formula 25 is required.
  • the above constraint (set of) requires the transported object 1 to be stationary at the discrete time step t when the robot arm end is not gripping the transported object 1, and the robot arm end 41 does not grasp the transported object 1 , the transported object 1 is requested to move together with the robot arm hand 41 . That is, the above constraints represent the dynamics of the transported object.
  • the switching variable represented by Equation 23 was defined as a continuous variable having a value of 0 or more in order to configure the optimization problem using only continuous variables.
  • the parameter representing the discrete time interval will be described in detail in the concrete example of the objective function J below.
  • Constraint C also includes a constraint that expresses the grippable region using switching variables. Such a constraint is, for example, concretely represented by Equation 26 below.
  • Equation 27 is a parameter having a positive value representing the size of the grippable region, and the user sets a desired value.
  • Equation 28 the switching variable is given by Equation 28 depending on its domain.
  • Equation 29 is obtained, that is, at a discrete time step t where the distance between the robot arm tip and the transported object 1 is within Equation 27, the switching variables are given by Equation 20 or Equation 21. It can be understood that both values can be taken. Therefore, by calculating a solution that satisfies the above constraints and causing the robot 40 to execute the solution, the end of the robot arm can sufficiently approach the transported object 1 before grasping it. A similar restriction is also configured for the transported object 2 .
  • Constraints C also include the dynamics constraints of the transport object. Such constraints are expressed as in Equation 30.
  • Equation 31 are the position coordinates of the robot arm hand 41 at the discrete time step t, which are the same as those in the constraints described above.
  • the variable shown in Equation 32 is the position coordinates of the center of the obstacle, and the variable shown in Equation 33 is the radius of the obstacle approximated by a three-dimensional spherical shape. Considering the above constraints, it is required that the robot arm tip 41 always exists at a position other than inside the obstacle.
  • the objective function J for example, in order to minimize the path length of the movement path of the hand of the robot, it is conceivable to set the path length as a minimization objective function.
  • the path length in a mathematical formula, the following formula 34 can be considered.
  • Equation 35 the variables shown in Equation 35 are the position coordinates of the robot arm hand 41 in the three-dimensional space at the discrete time step t, and ⁇ t is the discrete time interval. That is, it is a quantity representing how many seconds in the real world the time interval between the discrete time step t and the discrete time step t+1 corresponds to. As the discrete time interval .delta.t is set smaller, a more precise solution can be expected in terms of time, but generally the calculation time increases. Therefore, it is necessary to set an appropriate ⁇ t manually or by an automatic method using a computer, depending on the desired time accuracy of the solution and the desired computation time.
  • the ⁇ t automatic setting method using a computer includes, for example, the following.
  • Optimization calculation is performed using each of these .delta.t, among them, .delta.t for which a solution can be obtained within a desired calculation time is extracted, and among them, the smallest .delta.t is selected as an appropriate .delta.t.
  • Grid Search method such as judgment.
  • the symbol shown in Equation 4 in Equation 34 which is the objective function J, is the L2 norm of vector v.
  • Equation 36 in Equation 34 above is the path length objective function at discrete time step t
  • the sum of Equation 36 for all discrete time steps t to be planned that is, the number Equation 37 is the overall objective function J of the current robot motion plan.
  • the objective function J given here is only an example, and even in other examples and this embodiment, other objective functions may be defined if the contents and preconditions to be emphasized in planning are different. good.
  • the time sum (equation 39) of the magnitude of the input vector (equation 38) given to the robot arm hand 41 may be used as the objective function instead of the above equation 37.
  • the basic optimization problem construction unit 21 sets the constraint C and the objective function J as described above, and supplies them to the optimization objective function additional adjustment unit 25 .
  • the initial space mesh decomposing unit 22 (space dividing unit) divides the robot work space R into meshes, that is, into a plurality of regions (step S2), information G1, G2, . . . , Gn to the motion vector information setting unit 23 .
  • step S2 space dividing unit
  • information G1, G2, . . . , Gn to the motion vector information setting unit 23 .
  • specific examples of the functions executed by the initial space mesh decomposing unit 22 will be described by dividing them into two cases.
  • the robot arm tip 41 grasps the transported object placed on the left side of the obstacle in the center of FIG. 4 and transports it while avoiding collision with the wall of the obstacle. , releasing the grip after placing the conveyed object in place on the right side of the wall of the obstacle.
  • FIG. 4 only one transported object is depicted, and the transported object is transported from the left side to the right side of the wall, but multiple transported objects may be transported at the same time. Also, some of these transported objects may be transported from the right side of the obstacle to the left side, and the following description can be applied as it is in such cases.
  • the robot arm tip 41 When the robot arm tip 41 is located at a position whose height from the floor is lower than the height of the wall of the obstacle, the robot arm tip 41 moves vertically with respect to the floor as much as possible to clear the obstacle. It becomes possible to avoid collisions with walls of objects.
  • the robot arm tip 41 exists at a position higher than the height of the wall from the floor, the robot arm tip 41 moves horizontally with respect to the floor as much as possible to avoid obstacles. It is possible to safely carry an object from the left side to the right side of the wall while avoiding collision with the wall.
  • the above-mentioned boundary surface on which the desirable motion vector information of the robot changes discontinuously is a horizontal plane in space whose height from the floor is the height of the obstacle. Therefore, in the case of this problem, in the space mesh decomposition by the initial space mesh decomposition unit 22, the three-dimensional working space of the robot arm consists of a region G1 whose height from the floor is higher than the height of the wall, and the height from the floor is the height of the wall. It will be divided into two grids of lower height areas G2.
  • the grid information G1 and G2 supplied from the initial space mesh decomposing unit 22 to the motion vector information setting unit 23 are specifically expressed by the three-dimensional axes of x, y, and z of each grid as shown in the following equation (40). They are the lower and upper limits in each direction.
  • each value of each grid information may be substituted with the lower and upper limits of the movable area of the robot in the x, y, and z directions.
  • h is the wall height of the obstacle.
  • G1 and G2 are both rectangular regions as described above, but the shape of the grid generated by the initial spatial mesh decomposition unit 22 does not matter as long as the respective grids do not overlap. It may not be rectangular, but may be spherical or elliptical. In any case, it is sufficient that the movable area of the robot is partitioned into multiple (or singular) grids by some mathematical expression.
  • the space R is automatically divided into meshes by the initial space mesh decomposition unit 22 by formulating the mesh setting rules as described above or modeling by machine learning. can be done.
  • the initial space mesh decomposing unit 22 uses computer-based machine learning or the like to generate grids G1, G2, . . . A mesh decomposition consisting of G20 is performed.
  • the reason for using a grid as small as possible here is that if the grid is too large, a motion vector field with low accuracy will be generated when grid integration is performed by the spatial mesh integration unit 24, which will be described later. This is because Here, the low-precision motion vector field is, for example, a case where collision with an obstacle cannot be avoided even if the robot arm moves according to the motion vector field. For this reason, in the case of a problem having a complicated obstacle arrangement or the like, grids G1, G2, . . . A mesh decomposition consisting of G20 may be performed.
  • the initial space mesh decomposition unit 22 extracts information G1, G2, . . . , Gn to the motion vector information setting unit 23 .
  • the motion vector information setting unit 23 stores the grids G1, G2, . . . , Gn, in a form corresponding to each grid, appropriate robot motion vector information V1, V2, . . . , Vn are set (step S3). Then, the motion vector information setting unit 23 supplies the grids G1, G2, . . . , Gn and motion vector information V1, V2, . . . , Vn. Motion vector information V1, V2, . . . , Vn are each composed of three elements as described below.
  • the motion vector information V1 has some vector v1 as one element.
  • the dimension of this vector may be changed depending on the problem, but since the problem shown in FIG . Be natural.
  • the motion vector information V1 has type as the second element. This is either inner or cross. Depending on whether inner or cross is selected as this type, the formulation when adding the motion vector field potential to the objective function later changes, which will be described later.
  • the motion vector information V1 has order as the third element. order is set to 1, 2, or none. As for order, this setting also changes the formulation of the subsequent motion vector field potential, which will be discussed later.
  • the motion vector information setting unit 23 generates a motion vector field potential J1 as expressed by the following equation (42), which is later added to the objective function J supplied from the basic optimization problem construction unit 21. Become.
  • Expression 45 is a function that becomes 1 when the robot's hand is inside the grid G1, and becomes 0 otherwise.
  • a sigmoid function such as Equation 46 below can be considered.
  • Equation 47 is the position vector of the robot arm tip 41
  • Equation 48 is the x component of Equation 47 (the same applies to the y and z components).
  • the variables shown in Equation 49 are the minimum and maximum values of the x, y, and z coordinates of the points included in the grids G1 and G2, as described above.
  • the sigmoid function ⁇ (x) is a function defined as in Equation 50.
  • a in Equation 50 is a parameter with a positive value that is appropriately set.
  • the value of a is set to a value as large as possible to the extent that the numerical calculations during the optimization calculations do not diverge. Similar to the method of automatically setting the discrete time interval ⁇ t described above, this is a setting of a that can obtain a solution with a certain accuracy within a desired calculation time by executing an optimization calculation on a trial basis using a plurality of a. The one with the largest value should be selected.
  • the motion vector field potential J1 that prefers movement in the x-axis direction is Can be set. If 1 is selected as the order while keeping the above setting of v1, the direction of J1 is the horizontal rightward velocity vector in FIG. 4, and the horizontal leftward velocity vector is not preferred. If such settings are made, for example, when the transported object 1 is transported to the target state, it can be transported appropriately by following the motion vector field set in this way. After releasing the grip, when moving toward the grippable area of the transported object 2, a horizontal rightward velocity vector in FIG. 4 is required, but such a motion direction does not follow the motion vector field.
  • the motion vector information setting unit 23 forms a motion vector field in a direction substantially parallel to the surface of the obstacle.
  • the motion vector information setting unit 23 can automatically set the motion vector field potential J1 by formulating the method described above or modeling it by machine learning.
  • FIG. 6 it is assumed that there is a rectangular obstacle in the space R and the space R is divided into grids. At this time, first, the surfaces of the obstacles that are in contact with each grid or that exist inside each grid are considered. At this time, if multiple obstacle surfaces are in contact with or embedded in a single grid, the obstacle surface with the largest contact area or internal surface area is defined as the obstacle surface corresponding to the grid. . Then, as shown in FIG. 6, the normal line n of the surface of the obstacle corresponding to each grid is obtained. By using this vector, motion vector information can be automatically set as follows.
  • the grid from which the normal vector of the surface of the obstacle is obtained is Gi, and the motion vector information on the grid is Vi.
  • the above normal vector n is set as a vector included in Vi.
  • the motion vector field potential J i shown in the following equation (56) is formed and added to the objective function J supplied from the basic optimization problem construction unit 21 .
  • Expression 58 is a function when the robot arm tip 41 exists inside the grid Gi at the discrete time step t, and is 0 otherwise. A specific form of mathematical expression of such a function may be one using a sigmoid function as described above.
  • this vector is a vector orthogonal to the normal line n of the surface of the obstacle. This means that the direction perpendicular to the vector n is preferred as the velocity vector of the robot arm tip 41 . That is, a direction substantially parallel to the outer surface of the obstacle is set as the direction of the velocity vector.
  • the vector n is the normal vector of the surface of the obstacle
  • the movement direction robot arm
  • the velocity vector of the arm 41 can be taught to the solver that actually solves the optimization problem.
  • the motion vector information setting unit 23 generates outputs V1, V2, . . . , Vn, and the information thereof and each of the grids G1, G2, . . . , Gn are combined and supplied to the spatial mesh integration unit 24 .
  • the spatial mesh integration unit 24 compares all the vectors set by the motion vector information setting unit 23 between grids, and if it is determined that there is a grid that can be integrated (Yes in step S4 ), and integrate the grids (step S5). Specifically, the spatial mesh integration unit 24 compares a certain grid Gi with an adjacent grid Gi, and if the difference in the direction (inclination) of the vectors included in their motion vector information is within a certain threshold, Considering that the vectors can be identified, the adjacent grids Gi and Gj are integrated to form a new grid Gi'. At this time, as the vector contained in the motion vector information Vj' therein, it is assumed that the average value vector of the respective vectors of Gi and Gj is taken. However, such integration operations are not performed between adjacent grids with different types or orders. Therefore, when integration is performed, the information of the original two grids should be copied as the type and order of the motion vector information of the newly generated grid.
  • the grid and motion vector information G1, G2, . . . , Gn, V1, V2, . . . , Vn to the optimization objective function additional adjustment unit 25 .
  • the optimization objective function addition adjustment unit 25 adds the grid and motion vector supplied from the spatial mesh integration unit 24 in addition to the objective function J and the constraint C supplied from the basic optimization problem construction unit 21.
  • Information G1, G2, . . . , Gn, V1, V2, . . . , Vn, the potential for requesting the robot 40 to perform a desired motion is reconstructed to form a new optimization problem (step S6).
  • Equation (56) By adding this motion vector field potential to the objective function J constructed by the basic optimization problem constructing unit 21, the final objective function J' with consideration of the motion vector field is constructed. In this way, the objective function J' and the constraint C are generated as a new optimization problem, and information about them is supplied to the optimization calculation execution unit 26.
  • the optimization objective function addition adjustment unit 25 sets a number such as 10 5 which is sufficiently large in terms of numerical calculation.
  • the weight A of the motion vector field potential corresponding to the grid existing in the area away from the obstacle is set small.
  • the original basic optimal This is because having a velocity vector that follows the objective function J of the transformation problem enables calculation of a more natural robot arm tip behavior.
  • the optimization objective function addition adjustment unit 25 sets a number such as 10 ⁇ 5 which is sufficiently small in terms of numerical calculation.
  • the optimization objective function addition adjustment unit 25 changes the weight A of the motion vector field potential set in the grid according to the distance between the robot arm hand 41 and the obstacle. The closer the distance is, the higher the weight A of the motion vector field potential set to the grid is.
  • the method of setting the weight A described above can be executed by the optimization objective function addition adjustment unit 25 by formulating the method described above or modeling it by machine learning.
  • Equation 61 the weight A j of the motion vector field potential of the i-th grid is expressed by Equation 61 can be defined as an expression
  • the reason for setting A i in this way is the same as the weight A of the motion vector field potential in the setting example described above.
  • the weight according to the motion vector field increases.
  • the weight according to the motion vector field decreases exponentially.
  • the optimization calculation execution unit 26 uses the objective function J′ and the constraint C supplied from the optimization objective function addition/adjustment unit 25 to execute optimization calculations for planning tasks and motions of the robot. (step S7).
  • a constant real-time threshold value T cal [seconds] is set, and if a feasible solution is obtained within this threshold value T cal [seconds], that solution is supplied to the robot controller 30 .
  • T cal [seconds] a constant real-time threshold value
  • this readjustment of the size of A i may be performed manually by a human based on the idea described above, or may be automatically adjusted using machine learning by a computer. In any case, this adjustment is performed until the optimization calculation execution unit 26 obtains a feasible solution within the threshold T [seconds].
  • the motion vector information setting unit 23 generates motion vector information, the potential corresponding to each grid is generated, and the optimization objective function addition/adjustment unit 25 adds the potential to the objective function J.
  • a similar potential may be added directly to the objective function J in the motion vector information setting unit 23 .
  • FIG. 8 and 9 are block diagrams showing the configuration of the moving route setting device according to the second embodiment
  • FIG. 10 is a flow chart showing the operation of the moving route setting device.
  • an outline of the configuration of the moving route setting device and the moving route setting method described in the above-described embodiments is shown.
  • the movement route setting device 100 is configured by a general information processing device, and has, as an example, the following hardware configuration.
  • - CPU Central Processing Unit
  • ROM Read Only Memory
  • RAM Random Access Memory
  • Program group 104 loaded into RAM 103
  • Storage device 105 for storing program group 104
  • a drive device 106 that reads and writes from/to a storage medium 110 external to the information processing device
  • Communication interface 107 connected to communication network 111 outside the information processing apparatus
  • Input/output interface 108 for inputting/outputting data
  • a bus 109 connecting each component
  • the movement route setting device 100 constructs the space dividing unit 121, the motion vector setting unit 122, and the movement route calculation unit 123 shown in FIG. can be equipped with
  • the program group 104 is stored in the storage device 105 or the ROM 102 in advance, for example, and is loaded into the RAM 103 and executed by the CPU 101 as necessary.
  • the program group 104 may be supplied to the CPU 101 via the communication network 111 or may be stored in the storage medium 110 in advance, and the drive device 106 may read the program and supply it to the CPU 101 .
  • the space dividing unit 121, the motion vector setting unit 122, and the movement path calculating unit 123 described above may be constructed by dedicated electronic circuits for realizing such means.
  • FIG. 8 shows an example of the hardware configuration of the information processing device that is the moving route setting device 100, and the hardware configuration of the information processing device is not limited to the case described above.
  • the information processing apparatus may be composed of part of the above-described configuration, such as not having the drive device 106 .
  • the moving route setting device 100 performs the moving route setting method shown in the flow chart of FIG. Execute.
  • the moving route setting device 100 dividing the space in which the moving body can move into regions (step S101); setting a motion vector along which the moving body moves for each of the regions based on information about objects existing in the space that hinder movement of the moving body (step S102); When calculating a movement path of a mobile object in space so as to satisfy a preset condition, the movement path is calculated based on the motion vector set for each area and the distance of the area to the object. (step S103), Execute the process.
  • Non-transitory computer readable media include various types of tangible storage media.
  • Examples of non-transitory computer-readable media include magnetic recording media (e.g., flexible discs, magnetic tapes, hard disk drives), magneto-optical recording media (e.g., magneto-optical discs), CD-ROMs (Read Only Memory), CD-Rs, CD-R/W, semiconductor memory (eg mask ROM, PROM (Programmable ROM), EPROM (Erasable PROM), flash ROM, RAM (Random Access Memory)).
  • the program may also be delivered to the computer on various types of transitory computer readable medium. Examples of transitory computer-readable media include electrical signals, optical signals, and electromagnetic waves. Transitory computer-readable media can deliver the program to the computer via wired channels, such as wires and optical fibers, or wireless channels.
  • At least one of the functions of the space dividing unit 121, the motion vector setting unit 122, and the movement path calculating unit 123 described above is executed by an information processing apparatus installed and connected anywhere on the network. may be implemented in so-called cloud computing.
  • (Appendix 9) a space dividing unit that divides the space in which the moving body can move into regions; a motion vector setting unit that sets a motion vector for the movement of the moving body based on information about an object existing in the space that hinders movement of the moving body for each of the regions; When calculating a movement path of a mobile object in space so as to satisfy a preset condition, the movement path is calculated based on the motion vector set for each area and the distance of the area to the object.
  • a moving route calculation unit that A movement path setting device with a (Appendix 10) The movement route setting device according to appendix 9, The movement path calculation unit calculates the movement path based on the motion vector by changing the weight of the motion vector set in the area according to the distance of the area to the object.
  • Movement path setting device (Appendix 11) The movement route setting device according to appendix 9 or 10, The movement path calculation unit increases the weight of the motion vector set in the area as the distance of the area to the object decreases, and calculates the movement path based on the motion vector. Movement path setting device. (Appendix 12) The movement route setting device according to any one of Appendices 9 to 11, The motion vector setting unit sets the motion vector for each region based on the shape of the object. Movement path setting device. (Appendix 13) The movement route setting device according to appendix 12, When the object is positioned within the area, the motion vector setting unit sets the motion vector of the area in a direction substantially parallel to the outer surface of the object. Movement path setting device.
  • the movement route setting device sets the motion vector of the region based on the information of the object when the object is located within the region, and sets the motion vector of the region based on the information of the object when the object is not located within the region. and setting the motion vector of the region based on the motion vector set in the other adjacent region; Movement path setting device.
  • the motion vector setting unit integrates the mutually adjacent regions into one based on the motion vectors of the respective regions adjacent to each other, and after integration based on the motion vectors of the respective regions before integration setting the motion vector for the region of Movement path setting device.
  • the moving route setting device integrates the mutually adjacent regions into one when a difference in the direction of the motion vector of each of the mutually adjacent regions is within a preset range. setting the motion vector of the integrated region based on the motion vector of each of the regions; Movement path setting device.
  • Information processing equipment Divide the space in which the moving body can move into each area, setting a motion vector for the movement of the moving object for each region based on information about objects existing in the space that hinder the movement of the moving object; When calculating a movement path of a mobile object in space so as to satisfy a preset condition, the movement path is calculated based on the motion vector set for each area and the distance of the area to the object.
  • a computer-readable storage medium storing a program for executing processing.

Abstract

本開示の移動経路設定装置100は、移動体が移動可能な空間内を各領域に分割する空間分割部121と、領域毎に空間内に存在する移動体の移動を妨げる物体の情報に基づいて移動体が移動する動作ベクトルを設定する動作ベクトル設定部122と、予め設定された条件を満たすよう空間内における移動体の移動経路を計算する際に、領域毎に設定された動作ベクトルと、領域の物体に対する距離と、に基づいて移動経路を計算する移動経路計算部と、を備える。

Description

移動経路設定方法
 本発明は、移動経路設定方法、移動経路設定装置、プログラムに関する。
 近年、ロボットが作業する環境が増え、ロボットの移動経路を適切に設定することが要求されている。例えば、特許文献1に、ロボットに安全かつ効率的な作業を行わせることを目的とした移動経路の探索方法が記載されている。具体的に、特許文献1では、地図情報にグリッドを設定し、各グリッドに障害物領域や車両の移動方向を表すベクトルを設定し、これらの情報を基に経路を探索することが記載されている。
特開2010-191502号公報
 しかしながら、上述した特許文献1の方法では、予めグリッドに設定されたベクトルに従って移動体の移動経路を探索しているため、設定する移動経路の自由度が低く、より最適性と安全性が両立した移動経路を設定することが難しい、という問題が生じる。
 このため、本発明の目的は、上述した課題である、より最適性と安全性とが両立した移動体の移動経路を設定することが困難である、ことを解決することができる移動経路設定方法を提供することにある。
 本発明の一形態である移動経路設定方法は、
 移動体が移動可能な空間内を各領域に分割し、
 前記領域毎に、空間内に存在する移動体の移動を妨げる物体の情報に基づいて、移動体が移動する動作ベクトルを設定し、
 予め設定された条件を満たすよう空間内における移動体の移動経路を計算する際に、前記領域毎に設定された前記動作ベクトルと、前記領域の前記物体に対する距離と、に基づいて移動経路を計算する、
という構成をとる。
 また、本発明の一形態である移動経路設定装置は、
 移動体が移動可能な空間内を各領域に分割する空間分割部と、
 前記領域毎に、空間内に存在する移動体の移動を妨げる物体の情報に基づいて、移動体が移動する動作ベクトルを設定する動作ベクトル設定部と、
 予め設定された条件を満たすよう空間内における移動体の移動経路を計算する際に、前記領域毎に設定された前記動作ベクトルと、前記領域の前記物体に対する距離と、に基づいて移動経路を計算する移動経路計算部と、
を備えた、
という構成をとる。
 また、本発明の一形態であるプログラムは、
 情報処理装置に、
 移動体が移動可能な空間内を各領域に分割し、
 前記領域毎に、空間内に存在する移動体の移動を妨げる物体の情報に基づいて、移動体が移動する動作ベクトルを設定し、
 予め設定された条件を満たすよう空間内における移動体の移動経路を計算する際に、前記領域毎に設定された前記動作ベクトルと、前記領域の前記物体に対する距離と、に基づいて移動経路を計算する、
処理を実行させる、
という構成をとる。
 本発明は、以上のように構成されることにより、より最適性と安全性とが両立した移動体の移動経路を設定することができる。
本発明の実施形態1におけるロボット制御システムの構成を示すブロック図である。 図1に開示したロボットの作業空間の一例を示す図である。 図1に開示したロボット作業計画装置の構成を示すブロック図である。 図1に開示したロボット作業計画装置による処理の様子を示す図である。 図1に開示したロボット作業計画装置による処理の様子を示す図である。 図1に開示したロボット作業計画装置による処理の様子を示す図である。 図1に開示したロボット作業計画装置の動作を示すフローチャートである。 本発明の実施形態2における経路設定装置のハードウェア構成を示すブロック図である。 本発明の実施形態2における経路設定装置の構成を示すブロック図である。 本発明の実施形態2における経路設定装置の動作を示すフローチャートである。
 <実施形態1>
 本発明の第1の実施形態を、図1乃至図7を参照して説明する。図1乃至図2は、ロボット制御システムの構成を説明するための図であり、図3乃至図7は、ロボット制御システムの処理動作を説明するための図である。
[全体構成]
 図1は、実施形態1におけるロボット制御システム1の構成を示す。ロボット制御システム1は、主に、計測装置10と、ロボット作業計画装置20と、ロボットコントローラ30と、ロボット40を備える。ロボット制御システム1は、以下に説明するように、ロボット作業計画問題を安全かつ適切に解決すべく、移動体であるロボット40(ロボットアーム手先41)の移動経路を設定するものである。
 図2は、実施形態1におけるロボット制御システム1において解決すべきロボット作業計画問題の一例を示す図である。具体的に、ロボット制御システム1では、図2に示す空間Rにおいて、ロボット40のロボットアーム手先41を、当該ロボットアーム手先41の移動を妨げる物体である障害物との衝突回避を行いながら移動させ、運搬物体1,2を把持し、さらに把持した運搬物体1,2を運搬して運搬物体目標位置に接合(目標位置において把持を解除)させるよう、ロボット作業計画装置20が、移動経路の設定を含む運搬計画を行う。
 なお、運搬物体は、図2に示すように、複数個存在してもよく、1つであってもよい。そして、ロボット作業計画装置20は、運搬物体が複数である場合には、複数個の運搬物体の運搬の全体計画を行ってから、ロボットコントローラ30に計画指令を与えてもよく、1つの運搬物体の運搬計画を行い、ロボットコントローラ30に計画指令を与えてロボット40にその計画を実行させてから別の運搬物体の運搬計画を行う、という逐次的に計画を行ってもよい。また、ロボット制御システム1が対応するロボット作業計画問題は、図2に示すような空間Rで行われることに限定されない。例えば、ロボット作業問題は、図2に示すような障害物や運搬物体が設置されていることに限定されず、いかなる形状、配置、個数の障害物や運搬物体が設置されていてもよい。また、空間Rは、いかなる形状の空間であってもよく、また、3次元に限定されず、2次元空間や1次元空間であってもよい。以下、各構成について説明する。
 計測装置10は、ロボット40が作業を実行する作業空間R内の状態を検出するカメラ、測域センサ、ソナーまたはこれらの組み合わせ、からなる1又は複数のセンサで構成される。ここで、本実施形態では、空間Rにおいて計測装置10で実際に計測するものは、運搬物体の位置である。つまり、作業空間Rにおいては、障害物は移動しないため、計測装置10で障害物の位置を作業計画の度に計測する必要はない。このため、システム設計時に予め障害物の位置や形状を表す位置情報を、定数としてロボット作業計画装置20に与えて記憶しておくことができる。但し、障害物がロボット作業計画を行う度に変化する場合なども考えられ、そのような場合は、障害物の位置も計測装置10を用いて計測する必要がある。計測装置10は、このようにして計測した計測信号をロボット作業計画装置20に供給する。
 なお、計測装置10は、図2に示したロボット作業計画問題の空間Rにおいては、定点カメラを想定している。一方で、例えば、移動する障害物を移動する計測装置を用いて計測し続ける必要がある場合には、かかる状況に対応すべく、計測装置10は、作業空間内で移動する自走式又は飛行式のセンサ(ドローンを含む)であってもよい。また、問題によっては、ロボット40が運搬物体などを把持などする際に、過大な力を加えてしまい、運搬物体などを損傷させてしまうおそれがある場合もある。こうした状況に対応するために、計測装置10は、ロボット40に設けられたセンサ、及び作業空間内の他の物体に設けられたセンサなどを含んでもよい。また、作業計画問題によっては、ロボット40の作業空間内に人間が出入りする場合も考えられる。このような状況においては、人間の出入りを検知し、ロボット40が人間に衝突するといったことを回避する必要がある。このような状況に対応するために、計測装置10は、作業空間R内の音を検出するセンサを含んでもよい。以上のように、計測装置10は、作業空間R内の状態を検出する種々のセンサであって、任意の場所に設けられたセンサを含んでもよい。
 ロボット作業計画装置20は、計測装置10から受け取った計測信号に基づき、「運搬物体1を把持せよ」、「運搬物体1の把持を解除せよ」等のようなロボット40が受付可能な単純なタスクを、離散時刻ステップ(タイムステップ)t毎に指定する、離散時間ごとの命令の集合(以降、タスク・シーケンスと呼ぶ)を生成し、計画指令としてロボットコントローラ30に供給する。例えば、図2に示したロボット作業計画問題において、運搬物体1の運搬計画を行った結果の計画指令としては、「離散時刻ステップt=1で、ロボットアーム手先は運搬物体1近傍の位置座標まで移動しろ。」、「離散時刻ステップt=2で、ロボットアーム手先は運搬物体1を把持せよ。」、「離散時刻ステップt=3で、ロボットアーム手先は運搬物体1を運搬物体1の目標位置へ運搬せよ。」、「離散時刻ステップt=4で、ロボットアーム手先は運搬物体1の目標位置にて運搬物体1の把持を解除せよ。」といったようなタスク・シーケンスが考えられる。このように、計画指令は、ロボットアーム手先41が行う単純なタスク指令の時間的な羅列であるため、それを受けたロボットコントローラ30は、計画指令を実行するために必要なロボットアームの各関節の角度変化などを計算する。ただし、計画指令は、ロボットアームの各関節の角度変化に関する情報などを含んでも良く、その場合はロボットコントローラ30で計算しなくてはならない内容が減少することとなる。なお、ロボット作業計画装置20の構成の詳細については後述する。
 ロボットコントローラ30は、ロボット作業計画装置20から受け取った計画指令に基づき、ロボット40を制御する為の入力情報を生成し、ロボット40に供給する。例えば、本実施形態においては、計画指令に含まれる情報は、各離散時刻ステップtにおいて、ロボット40の手先41が、3次元空間上のどの位置に存在し、また、複数(単数でも構わない)の運搬物体の内、どの運搬物体を把持しているか、またはどの運搬物体も把持していないか、といった抽象度の高い情報である。但し、実際のロボット40を制御するためには、入力情報として、ロボット40の各関節角に与えるトルクの情報が必要となる。そこで、ロボットコントローラ30では、計画指令で指定された各離散時刻ステップtにおける抽象的な状態を実現するために必要な、ロボット40に与える具体的なトルク入力情報を算出し、これを入力情報として、ロボット40に供給する流れとなる。
 [ロボット作業計画装置の構成と動作]
 次に、上述したロボット作業計画装置20の構成と動作についてさらに説明する。ここでは、図3のロボット作業計画装置20の構成を示すブロック図と、図4乃至図6のロボット作業計画装置20の処理の様子を示す図と、図7のロボット作業計画装置20の動作を示すフローチャートと、を参照して説明する。
 ロボット作業計画装置20は、演算装置と記憶装置とを備えた1台又は複数台の情報処理装置にて構成される。そして、ロボット作業計画装置20は、図3に示すように、基本最適化問題構成部21、初期空間メッシュ分解部22、動作ベクトル情報設定部23、空間メッシュ統合部24、最適化目的関数追加調整部25、最適化計算実行部26、を備える。基本最適化問題構成部21、初期空間メッシュ分解部22、動作ベクトル情報設定部23、空間メッシュ統合部24、最適化目的関数追加調整部25、最適化計算実行部26、の各機能は、演算装置が記憶装置に格納された各機能を実現するためのプログラムを実行することにより実現することができる。以下、各構成について詳述する。
 基本最適化問題構成部21は、計測装置10から供給された計測信号に基づき、ロボットの作業計画を基本的な最適化問題として構成する。ここで、基本的な最適化問題は、制約Cと、目的関数Jの2要素を有する必要があり、まず、制約Cと目的関数Jが設定せれる(ステップS1)。なお、基本的な最適化問題においては、時間は離散化されており、離散時刻ステップtは、t=1,...,Tの全Tステップから構成されることとする。
 制約Cは、ロボット40の動作を計画するシステム全体が満たすべき条件を表す制約式の集合である。この制約Cに含まれる制約式の一例として、ロボットに実行させる作業の目標を表す下記数1式による制約式がある。
 ここで、数1式中の下記数2式で示す変数は、それぞれシステムに存在する2つの運搬物体の計画上の最終離散時刻ステップt=Tにおける3次元位置座標である。
 また、数1式中の数3式に示す変数は、2つの運搬物体それぞれの目標位置座標である。
 また、数1式中の数4式に示す記号は、はベクトルvのL2ノルムである。
 ここで、システムの環境等に合わせて、数3式に示す変数を適切に設定する必要がある場合を考える。これは例えば、人が恣意的に配置したトレイの上の、規定の位置に運搬物体を配膳する場合が考えられる。このとき、数3式の変数は、恣意的に配置したトレイの位置・姿勢に対応して適切に設定されなくてはならない。このような場合は、計測装置10から供給された計測信号が基本最適化問題構成部21で利用される。また、上記の制約式はあくまで一例であり、運搬物体の数は1つ、または3つ以上でも構わないし、運搬物体のオイラー角姿勢の3つの次元まで考慮した、全6次元空間上の距離を用いて上記の制約式を書き直しても構わない。いずれにせよ、上記の制約を充足することで、2つの運搬物体がその解を実行し、最終的に目標状態に遷移する、ということが必要である。
 制約Cとしては、他にも、ロボットアームの手先は一定の領域内を移動しなくてはならない、といったようなロボットの動作スペース(可動範囲)に関する下記数5式ようなの制約も含む。
 ここで、数6式に示す変数は、ロボットアーム手先41の離散時刻ステップtにおける3次元空間上の位置座標であり、数7式に示す変数は、それぞれ数6式の3次元空間上の各成分が取り得る値の下限・上限を表しているベクトルである。
 また、これ以降、離散時刻ステップtを含む数式は、全ての離散時刻ステップt=1,...,Tにおいて成立するものであるとする。
 また、制約Cは、数8式に示すような運搬物体の初期条件(初期位置)に関する制約も含む。
 ここで、数9式は、2つの運搬物体の計画上の最初の時刻における3次元位置座標である。数10式は、計測装置10から供給された計測情報に含まれる運搬物体の位置座標である。
 計測装置10で計測した運搬物体を、その目標位置に運搬する計画を行うため、上記の制約式は、基本的な最適化問題における初期条件と言える。そして、最初の離散時刻ステップt=0において、計測情報にある運搬物体が配置されている位置から始まり、かつ、上述の目標状態を表す制約を充足する解をロボット40に実行させることで、計測した運搬物体を、計測した位置から目標状態まで運搬する移動経路、および把持・把持解除のタイミングを計画する。
 また、制約Cは、数11式に示すようなロボットアーム手先のダイナミクス制約を含む。
 ここで、数12式に示す変数は、先述の制約におけるものと同様で、ロボットアーム手先の離散時刻ステップtにおける位置座標である。数13式に示す変数は、ロボットアーム手先の離散時刻ステップtにおける入力ベクトルを表している。
 実施形態によっては、安全性の為に、ロボットアーム手先41に与える入力の大きさに制限を設ける場合がある。そのような場合は、下記数14式のように、数13式の各変数の取り得る値を制限すればよいこととなる。
 ここで、数15式に示す変数は、それぞれロボットアーム手先41に与えることのできる入力ベクトルの各成分の最小値および最大値を表すベクトルである。
 また、制約Cは、運搬物体のダイナミクス制約を含む。その具体的な数式は、下記数16式のようなものが挙げられる。
 ここで、数17式の変数は、上述の制約におけるものと同様である。これらのベクトルの定義、および上記制約式の後半2つから、数18式に示す変数が、ロボットアーム手先および運搬物体の離散時刻ステップtにおける速度ベクトルであることがわかる。
 数19式は、0以上の値を持つ実数変数であり、スイッチング変数と名付けられる。
 このスイッチング変数が、数20式となる場合、上記の制約式の1番目の制約は、数18式がいかなるベクトルになろうと成立する。他方、このスイッチング変数が、数21式となる場合、上記の制約式の1番目の制約は、数22式が成立することを要請する。従って、数21式の場合は、運搬物体はロボットアーム手先と同じ速度ベクトルで移動することとなる。つまり、スイッチング変数である数23式は、ロボットアーム手先が運搬物体を把持しているか否かを表していると言える。
 以上を踏まえると、上記の制約式の2番目の制約は、スイッチング変数が数20式となる場合は、数24式を要請し、スイッチング変数が数21式となる場合は、上記の制約式の1番目の制約と合わせて考えることで、数25式を要請していることとなる。
 即ち、上記の制約(の集合)は、ロボットアーム手先が運搬物体1を把持していない離散時刻ステップtにおいては、運搬物体1には静止することを要請し、ロボットアーム手先41が運搬物体1を把持している離散時刻ステップtにおいては、運搬物体1にロボットアーム手先41と共に移動する事を要請する。即ち、上記の制約は、運搬物体のダイナミクスを表していることとなる。
 本実施形態では、連続変数のみで最適化問題を構成するために、数23式で表されるスイッチング変数は、0以上の値を持つ連続変数として定義したが、0又は1の値のみを持ち得るバイナリ変数として定義されてもよい。また、運搬物体2に関しても、上記と同様の変数定義、制約を構成する。なお、離散時刻間隔を表すパラメータであるが、これについては以下の目的関数Jの具体例において、詳細に説明を行う。
 また、制約Cは、スイッチング変数を用いた把持可能領域を表す制約を含む。かかる制約は、例えば、具体的に、下記数26式のように表される。
 ここで、数17式及び数19式に示す変数は、上述した制約におけるものと同様である。また、数27式に示す変数は、把持可能領域の大きさを表す正の値を有するパラメータであり、ユーザが所望の値を設定することとなる。
 ここで、上述のように、数21式となる離散時刻ステップtにおいては、運搬物体1は、ロボットアーム手先41に把持されていることとなるが、上記の制約を見ると、数28式となるとき、すなわち、ロボットアーム手先41と運搬物体1との距離が、数27式以内の領域に存在しない離散時刻ステップtにおいては、数20式となることを要請している事が理解される。ここで、スイッチング変数はその定義域によって、数28式であることとなる。
 他方、数29式となる時、即ち、ロボットアーム手先と運搬物体1との距離が数27式以内の領域に存在する離散時刻ステップtにおいては、スイッチング変数は、数20式または数21式のどちらの値も取れることが理解できる。従って、上記の制約を充足する解を算出し、ロボット40に実行させることで、ロボットアーム手先は十分に運搬物体1に近づいた上で把持を実行することができる。また、同様の制約を運搬物体2についても構成する。
 また、制約Cは、運搬物体のダイナミクス制約を含む。かかる制約は、数30式のように表される。
 ここで、数31式に示す変数は、上述の制約におけるものと同様で、ロボットアーム手先41の離散時刻ステップtにおける位置座標である。数32式に示す変数は、障害物の中心の位置座標であり、数33式に示す変数は、障害物を3次元球形状で近似した場合の、その半径である。上記の制約を考慮することで、ロボットアーム手先41は、常に障害物の内部以外の位置に存在することが要請される。
 次に、目的関数Jの具体例を説明する。目的関数Jとしては、例えば、ロボットの手先の移動経路の経路長を最小化するため、経路長を最小化目的関数として設定することが考えられる。経路長の数式での表現の具体例としては、下記数34式のようなものが考えられる。
 ここで、数35式に示す変数は、ロボットアーム手先41の離散時刻ステップtにおける3次元空間上の位置座標であり、δtは、離散時間間隔である。即ち、離散時刻ステップtと離散時刻ステップt+1の間の時間間隔が、現実世界における何秒に相当するか、を表す量である。離散時間間隔δtを小さく設定するほど、得られる解として時間的に精緻なものが期待できるが、一般に計算時間が増大する。したがって、所望の解の時間精度、および所望の計算時間に応じて、適切なδtを、人手またはコンピュータを用いた自動手法によって設定する必要がある。
 ここで、コンピュータを用いたδt自動設定手法とは、例えば、次のようなものが挙げられる。まず複数のδtを用意する。これは例えば、δt=0.1,δt=0.2,...,δt10=1.0といった、等差数列等を用意すればよい。これらの各々のδtを用いて最適化計算を実行し、それらの中で、解が所望の計算時間以内に求められるδtを抽出し、またそれらの中で最もδtの小さなものが適切なδtと判定する、などのGrid Search的な手法が挙げられる。なお、目的関数Jである上記数34式中の数4式に示す記号は、ベクトルvのL2ノルムである。また、上記数34式中の数36式は、離散時刻ステップtにおける経路長目的関数であるため、この数36式を、計画対象の全ての離散時刻ステップtに関して和をとったもの、即ち数37式が、今回のロボット動作計画の全体の目的関数Jとなる。
 ここで挙げた目的関数Jはあくまで一例であり、他の実施例や本実施形態であっても計画で重要視したい内容や前提条件などが異なる場合においては、他の目的関数を定義してもよい。例えば、本実施例においても、上記の数37式ではなく、ロボットアーム手先41に与える入力ベクトルの大きさ(数38式)の時間和(数39式)を目的関数として用いても構わない。
 以上のように、基本最適化問題構成部21では、上述のような、制約Cと目的関数Jを設定し、それらを最適化目的関数追加調整部25に供給する。
 初期空間メッシュ分解部22(空間分割部)は、上述したように既知のシステム環境や計測装置10から供給された計測信号に基づき、ロボット作業空間Rをメッシュ状つまり複数の領域に分割し(ステップS2)、生成したメッシュを構成する各領域である各グリッドに関する情報G1,G2,...,Gnを動作ベクトル情報設定部23に供給する。ここでは、初期空間メッシュ分解部22にて実行される機能の具体例を2つのケースに分けて記述する。
 まず、図4を参照して、1つ目の具体的手法について説明する。まず、図4で想定している問題は、図4の中央の障害物の左側に配置されている運搬物体をロボットアーム手先41で把持し、障害物の壁との衝突を回避しながら運搬し、障害物の壁の右側の所定の位置に運搬物体を配置した後に把持を解除する、という問題である。図4では、運搬物体は一つしか描かれておらず、また運搬物体は、壁の左側から右側へ運搬されるものとしたが、複数の運搬物体の運搬計画を同時に行ってもよい。また、それらの運搬物体の内、幾つかは障害物の右側から左側に運搬されてもよく、そのような場合も以降の説明をそのまま適用できる。
 このような運搬問題の場合、上述したロボット40のロボットアーム手先41の望ましい動作ベクトル情報が不連続に変化する境界面に関して、以下のことが考えられる。ロボットアーム手先41が、床からの高さが障害物の壁の高さより低い位置に存在する場合は、ロボットアーム手先41は、可能な限り床に対して鉛直方向の移動を行うことで、障害物の壁との衝突を回避することが可能になる。また、ロボットアーム手先41が、床からの高さが壁の高さより高い位置に存在する場合は、ロボットアーム手先41は、可能な限り床に対して水平方向の移動を行うことで、障害物である壁との衝突を回避しながら安全に壁の左側から右側へと物体の運搬を行うことが可能になる。すなわち、上述したロボットの望ましい動作ベクトル情報が不連続に変化する境界面とは、床からの高さが障害物の高さである空間上の水平面であることがわかる。従って、この問題の場合、初期空間メッシュ分解部22による空間メッシュ分解では、ロボットアームの3次元作業空間は、床からの高さが壁の高さより高い領域G1、床からの高さが壁の高さより低い領域G2の二つのグリッドに分割されることとなる。そして、初期空間メッシュ分解部22から動作ベクトル情報設定部23に供給されるグリッド情報G1,G2は、具体的に下記数40式のように、それぞれのグリッドのx,y,zの3次元軸それぞれの方向の下限および上限値となる。
 上記の例の場合、各グリッド情報の各値には、それぞれ、ロボットの可動領域のx,y,zそれぞれの方向の下限および上限値が代入されればよく、また数41式となり、ここでhは障害物の壁の高さである。今回の例では、上述のようにG1,G2はいずれも矩形領域であるが、初期空間メッシュ分解部22で生成されるグリッドの形状は、それぞれのグリッドが重なりを持たなければ問題ないため、必ずしも矩形でなくてもよく、球形や楕円形でもよい。いずれにせよ、何等かの数学的表現によって、ロボットの可動領域が複数の(または単数の)グリッドに仕切られていればよい。
 なお、図4に示すようなメッシュ分解方法は、上述したようなメッシュ設定ルールを数式化したり機械学習によりモデル化することで、初期空間メッシュ分解部22により自動的に空間Rをメッシュ分割することができる。
 次に、図4で想定した同じ問題における自動分割の他の例を説明する。この例では、初期空間メッシュ分解部22は、コンピュータによる機械学習などを用いて、図5に示すように、可能な限り小さな領域であるグリッドG1,G2,...G20からなるメッシュ分解を行う。ここで可能な限り小さいグリッドを用いる理由としては、グリッドが大きすぎる場合には、後述する空間メッシュ統合部24にて、グリッド統合を行った際に、精度の低い動作ベクトル場が生成されてしまうことになるためである。ここで精度の低い動作ベクトル場とは、例えば、その動作ベクトル場に従ってロボットアームが動作したとしても、障害物との衝突を避けられない場合、などである。このため、複雑な障害物配置などを有する問題の場合には、本例の図5に示すように、可能な限り小さな領域であるグリッドG1,G2,...G20からなるメッシュ分解を行うとよい。
 そして、初期空間メッシュ分解部22は、上記のようにして生成されたメッシュを構成する各グリッド(領域)に関する情報G1,G2,...,Gnを、動作ベクトル情報設定部23に供給する。
 動作ベクトル情報設定部23(動作ベクトル設定部)は、初期空間メッシュ分解部22から供給された各グリッドG1,G2,...,Gn上に、それぞれのグリッドに対応する形で、適切なロボットの動作ベクトル情報V1,V2,...,Vnを設定する(ステップS3)。そして、動作ベクトル情報設定部23は、空間メッシュ統合部24及び最適化目的関数追加調整部25に、グリッドG1,G2,...,Gnと、各グリッドに対応する動作ベクトル情報V1,V2,...,Vnを供給する。動作ベクトル情報V1,V2,...,Vnは、それぞれが、次に述べるように3つの要素から構成される。
 動作ベクトル情報V1は、1つの要素として、何等かのベクトルvを有する。このベクトルの次元は、問題によって変化させてよいが、今回取り上げている図4に示す問題は3次元空間上のロボット動作計画問題であるため、このベクトルvも3次元ベクトルで設定することが自然である。
 動作ベクトル情報V1は、2つ目の要素としてtypeを有する。これはinnerまたはcrossのいずれかである。このtypeとしてinnerとcrossのどちらを選択するかによって、後に目的関数に動作ベクトル場ポテンシャルを追加する際のフォーミュレーションが変化するが、それについては後述する。
 動作ベクトル情報V1は、3つ目の要素としてorderを有する。orderは1または2またはnoneが設定される。orderに関しても、この設定によって後の動作ベクトル場ポテンシャルのフォーミュレーションが変化するが、それに関しては後述する。
 ここで、動作ベクトル情報設定部23による動作ベクトルを設定する一例を説明する。この例では、空間R内の障害物の位置や形状に応じて、初期空間メッシュ分解部22から供給された各グリッドG1,G2,...,Gn上に、所望のロボットの動作方向を教示する動作ベクトル情報を設定することとなる。例えば、図4に示した二つのベクトルV1,V2が、具体的な動作ベクトル情報の設定例である。V1は、障害物の上側領域G1での動作ベクトル情報である。この領域G1では、運搬物体が障害物の上側を通る際は、図の水平方向に移動する必要があることがわかる。そこで、V1の要素の1つであるベクトルvとして、x成分が1で、他の成分が0であるベクトル、即ちv=(1,0,0)を設定する。また、typeとしてはinnerを、orderは2を設定する。そして、動作ベクトル情報設定部23は、下記数42式の様な動作ベクトル場ポテンシャルJを生成し、これは後に基本最適化問題構成部21から供給された目的関数Jに追加されることになる。
 ここで、数43式に示す変数は、ロボットアーム手先41の3次元位置ベクトル、速度ベクトルであり、数44式に示す変数は正の定数である。このパラメータAに関しては、後に最適化目的関数追加調整部25にて必要に応じて調整が行われるため、ここでは全てのグリッドにおいてA=1とするなど、適当な値を設定すれば良い。
 また、数45式は、ロボット手先がグリッドG1内部に存在する場合に1となり、それ以外の場合は0となる関数である。そのような関数の数学的表現の具体例としては、下記数46式のようなシグモイド関数を用いたものが考えられる。
 ここで、数47式に示す変数は、ロボットアーム手先41の位置ベクトルであり、数48式は数47式のx成分である(y,z成分に関しても同様)。数49式に示す変数は、上述した通り、グリッドG1,G2に含まれる点のx,y,z各座標の最小値および最大値である。またシグモイド関数σ(x)は、数50式のように定義される関数である。
 ここで、数50式におけるaは、適当に設定される正の値を持つパラメータである。このaの値としては、最適化計算時の数値計算が発散しない程度に、可能な限り大きい値を設定する。これは先述の、離散時刻間隔δtの自動設定手法のように、複数のaを用いて試行的に最適化計算を実行し、所望の計算時間以内に一定の精度の解を得られるaの設定の中で、最も値の大きいものを選択すればよい。
 そして、上述したように構成される動作ベクトル場ポテンシャルJを、最小化目的関数に追加すると、ロボットアーム手先41がグリッドG1内部に存在する時は、数51式の最大化が図られることになる。これはすなわち、そのような離散時刻ステップtにおいては、ロボットアーム手先41の速度ベクトル(数52式)として、x方向の成分がノンゼロで、他の成分はゼロであるベクトル、即ち数53式のような速度ベクトル(数54式)が指向されることを意味する。
 ここで、この設定における、上述したtypeとorderについて解説する。まずtypeとしてinnerを選択したことで、ロボットアーム手先41の速度ベクトルと、V1に含まれるベクトルvの内積(数55)が計算され、orderとして2を選択したことで、その内積の2乗が計算され、Jが構成される。この時、内積の二乗を取ることの理由は後述する。
 そのようにすることで、x軸方向の移動であれば、xが増大する方向でも、逆に減少する方向でも、どちらでも構わないが、x軸方向の移動を好む動作ベクトル場ポテンシャルJを設定できる。仮に、上記のvの設定のままで、orderとして1を選択すると、Jが指向するのは、図4の水平右向きの速度ベクトルであり、水平左向きの速度ベクトルは好まれなくなる。そのように設定してしまうと、例えば、運搬物体1を目標状態へと運搬する際は、そのように設定した動作ベクトル場に従うことで好適に運搬が行えるが、運搬物体1をその目標状態において把持解除した後、次に運搬物体2の把持可能領域に向かう際に、図4の水平右向きの速度ベクトルが必要となるが、そのような動作方向は、動作ベクトル場に従わない動作方向となってしまう。同様に考え、V2に関しては、vとして、z成分が1で、他の成分が0であるベクトル、即ち、v~(0,0,1)を設定し、typeとしてはinnerを、orderは2を設定すれば良いことがわかる。このように、動作ベクトル情報設定部23では、障害物の表面に対して略平行となる方向の動作ベクトル場が構成されることとなる。
 なお、動作ベクトル情報設定部23では、上述したような手法を数式化したり機械学習によりモデル化することで、自動的に動作ベクトル場ポテンシャルJを設定することができる。
 次に、動作ベクトル情報設定部23にて、障害物の形状・配置から、動作ベクトルを自動設定する手法の他の例を説明する。ここでは、図6に示すように、空間R内に矩形の障害物が存在し、空間Rが各グリッドに分割されていることとする。このとき、まず、それぞれのグリッドが接している、あるいは、それぞれのグリッドの内部に存在する障害物の表面を考える。この時、一つのグリッドに複数の障害物の表面が接している、または内在している場合は、最も接面積または内在表面積の大きい障害物表面を、当該グリッドに対応する障害物表面と定義する。そして、図6に示すように、それぞれのグリッドに対応する障害物の表面の法線nが求められる。このベクトルを利用することで、以下のように自動的に動作ベクトル情報を設定できることとなる。
 具体的に、図6に示すように、障害物の表面の法線ベクトルを求めたグリッドをGi、そのグリッドでの動作ベクトル情報Viとする。このとき、まず、Viに含まれるベクトルとしては、先ほどの法線ベクトルnを設定する。次に、typeとしてはcrossを、orderとしてはnoneを設定する。そのように設定することで、下記数56式に示す動作ベクトル場ポテンシャルJが形成され、基本最適化問題構成部21から供給された目的関数Jに追加されることになる。
 ここで、数57式に示す変数は、上述した制約における定義と同様に、離散時刻ステップtにおけるロボットアーム手先41の位置ベクトルおよび速度ベクトルであり、Aは正の定数であり、数4式に表される記号はベクトルvのL2ノルムを表し、v×uは、ベクトルv,uの外積を表す。パラメータAに関しては、後に最適化目的関数追加調整部25にて、必要に応じて調整が行われるため、ここでは全てのグリッドにおいてA=1とするなど適当な値を設定すれば良い。また、数58式は、離散時刻ステップtにおいてロボットアーム手先41がグリッドGi内部に存在する場合にとなり、それ以外の場合は0となる関数である。そのような関数の数学的表現の具体形は、上述同様にシグモイド関数を用いたものが考えられる。
 上記数56式のポテンシャルの最小化を図ることによって、ロボットアーム手先41がグリッドGi内部に存在する時は、数59式の最大化が図られる。ここで、外積の定義から、このベクトル(数60式)は、障害物の表面の法線nと直交するベクトルとなる。これはすなわち、ロボットアーム手先41の速度ベクトルとしては、ベクトルnと直交する方向が好まれる、ということである。つまり、速度ベクトルの方向として、障害物の外面に略平行な方向が設定されることとなる。
 ベクトルnは、障害物の表面の法線ベクトルであることから、このような動作ベクトル場ポテンシャル(数56式)に基づき、最適化問題を解くことで、障害物に衝突しない移動方向(ロボットアーム手先41の速度ベクトル)を、実際に最適化問題を解くソルバーに教示できるのである。このような動作ベクトル情報設定法を用いることで、内部に障害物表面を有するグリッドに関しては、自動的に動作ベクトル情報を設定できる。
 次に、内部に障害物表面を有さないグリッドにおける動作ベクトル情報の自動設定法の具体例を述べる。内部に障害物表面を有さないが、隣接するグリッドには動作ベクトル情報が設定されているようなグリッドを考える。例えば、図6のGjのようなグリッドである。このようなグリッドに対して、そのグリッドと隣接し、動作ベクトル情報を有しているグリッドの動作ベクトル情報をコピーするとする。ただしこの時、複数の隣接グリッド上にそれぞれ動作ベクトル情報が存在する場合は、ベクトルとしてはそれらの平均値ベクトル(各成分の平均値をとったベクトル)を設定し、type=cross、order=noneと設定すれば良い。この設定操作によって、動作ベクトル情報を有するグリッドが増加する。次にまた、今ある動作ベクトル情報を持つグリッドに隣接するグリッドに対して、同様に動作ベクトル情報を設定する。この設定操作を繰り返すことで、最終的に、全てのグリッド上に動作ベクトル情報を自動設定することが可能である。
 以上のように、動作ベクトル情報設定部23は、何らかのベクトルv、および、そのベクトルに基づき適切な動作ベクトル場ポテンシャルを構成するための情報type、orderから成るアウトプットV1,V2,...,Vnを出力し、それらの情報と、初期空間メッシュ分解部22から供給された各グリッドG1,G2,...,Gnの情報を合わせて、空間メッシュ統合部24に供給することとなる。
 空間メッシュ統合部24(動作ベクトル設定部)は、動作ベクトル情報設定部23で設定された全ベクトルに対してグリッド間で比較を行い、統合できるグリッドがあると判断されれば(ステップS4でYes)、グリッドを統合する(ステップS5)。具体的に、空間メッシュ統合部24は、あるグリッドGiと隣り合うグリッドGiを比較し、それらの動作ベクトル情報に含まれるベクトルの方向(傾き)の差が一定の閾値以内であれば、それらのベクトルは同一視できると考え、隣り合うグリッドGiおよびGjを統合して、新たな一つのグリッドGi’とする。その際、その内部の動作ベクトル情報Vj’に含まれるベクトルとしては、Gi,Gjのそれぞれのベクトルの平均値ベクトルを取るとする。但し、typeまたはorderが異なる隣接するグリッド間では、そういった統合操作は行わないとする。従って、統合を行う場合は、新たに生成されたグリッドの動作ベクトル情報のtypeおよびorderとしては、元の2グリッドのそれらの情報をコピーすればよい。
 ただし、上記で説明したように、初期空間メッシュ分解部22で適切な大きさのグリッドからなるメッシュに既に分割されているのであれば、この空間メッシュ統合部24によるプロセスは行わなくてもよい。
 上述のようにして、新たに生成された(または全く変化していなくても構わないが)、グリッドおよび動作ベクトル情報G1,G2,...,Gn,V1,V2,...,Vnを、最適化目的関数追加調整部25に供給する。
 最適化目的関数追加調整部25(移動経路計算部)は、基本最適化問題構成部21から供給された目的関数Jおよび制約Cに加えて、空間メッシュ統合部24から供給されたグリッドおよび動作ベクトル情報G1,G2,...,Gn,V1,V2,...,Vnを基に、ロボット40に所望の動作を要請するポテンシャルを再構成し、新たな最適化問題を構成する(ステップS6)。ここで、動作ベクトル場に近い動作をロボットに要請する動作ベクトル場ポテンシャルの数学的表現の具体例は、数56式で説明したものである。この動作ベクトル場ポテンシャルを、基本最適化問題構成部21で構成された目的関数Jに加えることで、最終的な、動作ベクトル場を加味した目的関数J’が構成される。こうして、新たな最適化問題として、目的関数J’および上記制約Cが生成され、それらの情報が最適化計算実行部26に供給される。
 ここで、最適化目的関数追加調整部25による、数56式で説明した、各グリッド上で定義された動作ベクトル場ポテンシャルに含まれるパラメータA、の設定方法について説明する。まず、一例として、ロボットアーム手先41が障害物の近傍に存在する離散時刻ステップtにおいては、上述した動作ベクトル場に従う速度ベクトルでロボットアーム手先41を移動させることが重要となる。そこで、障害物の近辺に存在するグリッドにおいては、対応する動作ベクトル場ポテンシャルの重みAを大きく設定することとなる。このため、最適化目的関数追加調整部25は、例えば、10といったような、数値計算上十分大きい値を持つ数を設定する。
 一方で、障害物から離れた領域に存在するグリッドに対応する動作ベクトル場ポテンシャルの重みAについては、小さく設定することとなる。この理由は、ロボットアーム手先41が障害物から十分離れている離散時刻ステップtにおいては、上述した動作ベクトル場に従う速度ベクトルで移動する事よりも、冗長な移動経路を移動しない、本来の基本最適化問題の目的関数Jに従う速度ベクトルを有する方が、自然なロボットアーム手先の挙動を算出できるからである。このため、最適化目的関数追加調整部25は、例えば、10-5といったような、数値計算上十分小さい値を持つ数を設定する。
 このように、最適化目的関数追加調整部25は、グリッドに設定された動作ベクトル場ポテンシャルの重みAを、ロボットアーム手先41と障害物との距離に応じて変化させ、特に、障害物との距離が近くなるほど、そのグリッドに設定された動作ベクトル場ポテンシャルの重みAを高い値に設定している。そして、上記のように設定することで、障害物の近傍でロボットアーム手先41が動作する場合は、その動作方向は、障害物との衝突を避けるよう設定した動作ベクトル場に強く従うようになり、障害物遠方でロボットアームの手先が動作する場合は、その動作方向は動作ベクトル場から特に影響を受けず、冗長な移動を行わない最適な移動経路を選択できるようになる。
 なお、上述した重みAの設定手法は、上述したような方法を数式化したり機械学習によりモデル化することで、最適化目的関数追加調整部25により実行することができる。
 次に、最適化目的関数追加調整部25による上述した重みAの設定手法の他の例を説明する。ここでは、例えば、i番目グリッドの中心座標と障害物の中心座標との間の距離をrと定義するとき、次のようにi番目グリッドの動作ベクトル場ポテンシャルの重みAを、数61式のように定義できる。
 ここで、Lは、計画対象のシステムの特徴的な長さスケール、例えば、計画対象のシステムが一辺1mの直方体形状なら、L=1等と設定すればよい。また、rは、数62式で定義される、離散時刻ステップtにおける、ロボットアーム手先41と障害物中心Xobsの間の距離である。
 このようにAを設定する理由は、上述した設定例における動作ベクトル場ポテンシャルの重みAと同様である。つまり、離散時刻ステップtにおいて、障害物の近傍にロボットアーム手先41が存在する場合、動作ベクトル場に従う重みは大きくなる。他方、離散時刻ステップtにおいて、障害物近傍にロボットアーム手先41が存在しない場合、動作ベクトル場に従う重みは指数関数的に小さくなる。このように設定することで、障害物近傍でロボットアームの手先が動作する場合は、その動作方向は、障害物との衝突を避けるよう設定した動作ベクトル場に強く従うこととなり、障害物遠方でロボットアームの手先が動作する場合は、その動作方向は動作ベクトル場から特に影響を受けず、冗長な移動を行わない最適な移動経路を選択できる。
 最適化計算実行部26(移動経路計算部)は、最適化目的関数追加調整部25から供給された目的関数J’および制約Cを用いて、ロボットのタスクおよび動作を計画する最適化計算を実行する(ステップS7)。ここで、一定の実時間閾値Tcal[秒]を設定し、この閾値Tcal[秒]以内に実行可能解が得られた場合は、その解をロボットコントローラ30に供給する。他方、この閾値Tcal[秒]以内に実行可能解が得られなかった場合は、各グリッドにおける動作ベクトル場の重みAの設定が適切でなかったと考えられるため、最適化目的関数追加調整部25に戻り、Aの大きさを調整する。ここで、このAの大きさの再調整は、上記で説明した考えに基づき、人間が手動で行っても良いし、あるいはコンピュータによる機械学習を用いて自動調整しても良い。いずれの場合も、この調整は、最適化計算実行部26で閾値T[秒]以内に実行可能解が得られるまで行われる。
 なお、上記では、動作ベクトル情報設定部23にて動作ベクトル情報を生成すると共に各グリッドに対応するポテンシャルを生成し、最適化目的関数追加調整部25にて、目的関数Jに追加する、という方法を説明したが、動作ベクトル情報設定部23にて、直接的に目的関数Jに同様のポテンシャルを追加してもよい。
 <実施形態2>
 次に、本開示の第2の実施形態を、図8乃至図10を参照して説明する。図8乃至図9は、実施形態2における移動経路設定装置の構成を示すブロック図であり、図10は、移動経路設定装置の動作を示すフローチャートである。なお、本実施形態では、上述した実施形態で説明した移動経路設定装置及び移動経路設定方法の構成の概略を示している。
 まず、図8を参照して、本実施形態における移動経路設定装置100のハードウェア構成を説明する。移動経路設定装置100は、一般的な情報処理装置にて構成されており、一例として、以下のようなハードウェア構成を装備している。
 ・CPU(Central Processing Unit)101(演算装置)
 ・ROM(Read Only Memory)102(記憶装置)
 ・RAM(Random Access Memory)103(記憶装置)
 ・RAM103にロードされるプログラム群104
 ・プログラム群104を格納する記憶装置105
 ・情報処理装置外部の記憶媒体110の読み書きを行うドライブ装置106
 ・情報処理装置外部の通信ネットワーク111と接続する通信インタフェース107
 ・データの入出力を行う入出力インタフェース108
 ・各構成要素を接続するバス109
 そして、移動経路設定装置100は、プログラム群104をCPU101が取得して当該CPU101が実行することで、図9に示す空間分割部121と動作ベクトル設定部122と移動経路計算部123とを構築して装備することができる。なお、プログラム群104は、例えば、予め記憶装置105やROM102に格納されており、必要に応じてCPU101がRAM103にロードして実行する。また、プログラム群104は、通信ネットワーク111を介してCPU101に供給されてもよいし、予め記憶媒体110に格納されており、ドライブ装置106が該プログラムを読み出してCPU101に供給してもよい。但し、上述した空間分割部121と動作ベクトル設定部122と移動経路計算部123とは、かかる手段を実現させるための専用の電子回路で構築されるものであってもよい。
 なお、図8は、移動経路設定装置100である情報処理装置のハードウェア構成の一例を示しており、情報処理装置のハードウェア構成は上述した場合に限定されない。例えば、情報処理装置は、ドライブ装置106を有さないなど、上述した構成の一部から構成されてもよい。
 そして、移動経路設定装置100は、上述したようにプログラムによって構築された空間分割部121と動作ベクトル設定部122と移動経路計算部123との機能により、図10のフローチャートに示す移動経路設定方法を実行する。
 図10に示すように、移動経路設定装置100は、
 移動体が移動可能な空間内を各領域に分割し(ステップS101)、
 前記領域毎に、空間内に存在する移動体の移動を妨げる物体の情報に基づいて、移動体が移動する動作ベクトルを設定し(ステップS102)、
 予め設定された条件を満たすよう空間内における移動体の移動経路を計算する際に、前記領域毎に設定された前記動作ベクトルと、前記領域の前記物体に対する距離と、に基づいて移動経路を計算する(ステップS103)、
という処理を実行する。
 本開示は、以上のように構成されることにより、より最適性と安全性とが両立した移動体の移動経路を設定することができる。
 なお、上述したプログラムは、様々なタイプの非一時的なコンピュータ可読媒体(non-transitory computer readable medium)を用いて格納され、コンピュータに供給することができる。非一時的なコンピュータ可読媒体は、様々なタイプの実体のある記録媒体(tangible storage medium)を含む。非一時的なコンピュータ可読媒体の例は、磁気記録媒体(例えばフレキシブルディスク、磁気テープ、ハードディスクドライブ)、光磁気記録媒体(例えば光磁気ディスク)、CD-ROM(Read Only Memory)、CD-R、CD-R/W、半導体メモリ(例えば、マスクROM、PROM(Programmable ROM)、EPROM(Erasable PROM)、フラッシュROM、RAM(Random Access Memory))を含む。また、プログラムは、様々なタイプの一時的なコンピュータ可読媒体(transitory computer readable medium)によってコンピュータに供給されてもよい。一時的なコンピュータ可読媒体の例は、電気信号、光信号、及び電磁波を含む。一時的なコンピュータ可読媒体は、電線及び光ファイバ等の有線通信路、又は無線通信路を介して、プログラムをコンピュータに供給できる。
 以上、上記実施形態等を参照して本願発明を説明したが、本願発明は、上述した実施形態に限定されるものではない。本願発明の構成や詳細には、本願発明の範囲内で当業者が理解しうる様々な変更をすることができる。また、上述した空間分割部121と動作ベクトル設定部122と移動経路計算部123との機能のうちの少なくとも一以上の機能は、ネットワーク上のいかなる場所に設置され接続された情報処理装置で実行されてもよく、つまり、いわゆるクラウドコンピューティングで実行されてもよい。
 <付記>
 上記実施形態の一部又は全部は、以下の付記のようにも記載されうる。以下、本発明における移動経路設定方法、移動経路設定装置、プログラムの構成の概略を説明する。但し、本発明は、以下の構成に限定されない。
(付記1)
 移動体が移動可能な空間内を各領域に分割し、
 前記領域毎に、空間内に存在する移動体の移動を妨げる物体の情報に基づいて、移動体が移動する動作ベクトルを設定し、
 予め設定された条件を満たすよう空間内における移動体の移動経路を計算する際に、前記領域毎に設定された前記動作ベクトルと、前記領域の前記物体に対する距離と、に基づいて移動経路を計算する、
移動経路設定方法。
(付記2)
 付記1に記載の移動経路設定方法であって、
 前記領域の前記物体に対する距離に応じて当該領域に設定された前記動作ベクトルの重みを変化させて、当該動作ベクトルに基づいて移動経路を計算する、
移動経路設定方法。
(付記3)
 付記1又は2に記載の移動経路設定方法であって、
 前記領域の前記物体に対する距離が近いほど、当該領域に設定された前記動作ベクトルの重みを高くして、当該動作ベクトルに基づいて移動経路を計算する、
移動経路設定方法。
(付記4)
 付記1乃至3のいずれかに記載の移動経路設定方法であって、
 前記物体の形状に基づいて、前記領域毎の前記動作ベクトルを設定する、
移動経路設定方法。
(付記5)
 付記4に記載の移動経路設定方法であって、
 前記領域内に前記物体が位置している場合に、当該領域の前記動作ベクトルを、当該物体の外面に略平行な方向に設定する、
移動経路設定方法。
(付記6)
 付記1乃至5のいずれかに記載の移動経路設定方法であって、
 前記領域内に前記物体が位置している場合に、当該領域の前記動作ベクトルを前記物体の情報に基づいて設定し、前記領域内に前記物体が位置していない場合に、当該領域の前記動作ベクトルを隣接する他の前記領域に設定された前記動作ベクトルに基づいて設定する、
移動経路設定方法。
(付記7)
 付記1乃至6のいずれかに記載の移動経路設定方法であって、
 相互に隣接する前記領域それぞれの前記動作ベクトルに基づいて、相互に隣接する前記領域を1つに統合し、統合前の前記領域それぞれの前記動作ベクトルに基づいて統合後の前記領域の前記動作ベクトルを設定する、
移動経路設定方法。
(付記8)
 付記7に記載の移動経路設定方法であって、
 相互に隣接する前記領域それぞれの前記動作ベクトルの方向の差が予め設定された範囲内である場合に、相互に隣接する前記領域を1つに統合し、統合前の前記領域それぞれの前記動作ベクトルに基づいて統合後の前記領域の前記動作ベクトルを設定する、
移動経路設定方法。
(付記9)
 移動体が移動可能な空間内を各領域に分割する空間分割部と、
 前記領域毎に、空間内に存在する移動体の移動を妨げる物体の情報に基づいて、移動体が移動する動作ベクトルを設定する動作ベクトル設定部と、
 予め設定された条件を満たすよう空間内における移動体の移動経路を計算する際に、前記領域毎に設定された前記動作ベクトルと、前記領域の前記物体に対する距離と、に基づいて移動経路を計算する移動経路計算部と、
を備えた移動経路設定装置。
(付記10)
 付記9に記載の移動経路設定装置であって、
 前記移動経路計算部は、前記領域の前記物体に対する距離に応じて当該領域に設定された前記動作ベクトルの重みを変化させて、当該動作ベクトルに基づいて移動経路を計算する、
移動経路設定装置。
(付記11)
 付記9又は10に記載の移動経路設定装置であって、
 前記移動経路計算部は、前記領域の前記物体に対する距離が近いほど、当該領域に設定された前記動作ベクトルの重みを高くして、当該動作ベクトルに基づいて移動経路を計算する、
移動経路設定装置。
(付記12)
 付記9乃至11のいずれかに記載の移動経路設定装置であって、
 前記動作ベクトル設定部は、前記物体の形状に基づいて、前記領域毎の前記動作ベクトルを設定する、
移動経路設定装置。
(付記13)
 付記12に記載の移動経路設定装置であって、
 前記動作ベクトル設定部は、前記領域内に前記物体が位置している場合に、当該領域の前記動作ベクトルを、当該物体の外面に略平行な方向に設定する、
移動経路設定装置。
(付記14)
 付記9乃至13のいずれかに記載の移動経路設定装置であって、
 前記動作ベクトル設定部は、前記領域内に前記物体が位置している場合に、当該領域の前記動作ベクトルを前記物体の情報に基づいて設定し、前記領域内に前記物体が位置していない場合に、当該領域の前記動作ベクトルを隣接する他の前記領域に設定された前記動作ベクトルに基づいて設定する、
移動経路設定装置。
(付記15)
 付記9乃至13のいずれかに記載の移動経路設定装置であって、
 前記動作ベクトル設定部は、相互に隣接する前記領域それぞれの前記動作ベクトルに基づいて、相互に隣接する前記領域を1つに統合し、統合前の前記領域それぞれの前記動作ベクトルに基づいて統合後の前記領域の前記動作ベクトルを設定する、
移動経路設定装置。
(付記16)
 付記15に記載の移動経路設定装置であって、
 前記動作ベクトル設定部は、相互に隣接する前記領域それぞれの前記動作ベクトルの方向の差が予め設定された範囲内である場合に、相互に隣接する前記領域を1つに統合し、統合前の前記領域それぞれの前記動作ベクトルに基づいて統合後の前記領域の前記動作ベクトルを設定する、
移動経路設定装置。
(付記17)
 情報処理装置に、
 移動体が移動可能な空間内を各領域に分割し、
 前記領域毎に、空間内に存在する移動体の移動を妨げる物体の情報に基づいて、移動体が移動する動作ベクトルを設定し、
 予め設定された条件を満たすよう空間内における移動体の移動経路を計算する際に、前記領域毎に設定された前記動作ベクトルと、前記領域の前記物体に対する距離と、に基づいて移動経路を計算する、
処理を実行させるためのプログラムを記憶したコンピュータにて読み取り可能な記憶媒体。
10 計測装置
20 ロボット作業計画装置
21 基本最適化問題構成部
22 初期空間メッシュ分解部
23 動作ベクトル情報設定部
24 空間メッシュ統合部
25 最適化目的関数追加調整部
26 最適化計算実行部
30 ロボットコントローラ
40 ロボット
41 ロボットアーム手先
100 移動経路設定装置
101 CPU
102 ROM
103 RAM
104 プログラム群
105 記憶装置
106 ドライブ装置
107 通信インタフェース
108 入出力インタフェース
109 バス
110 記憶媒体
111 通信ネットワーク
121 空間分割部
122 動作ベクトル設定部
123 移動経路計算部
 

Claims (17)

  1.  移動体が移動可能な空間内を各領域に分割し、
     前記領域毎に、空間内に存在する移動体の移動を妨げる物体の情報に基づいて、移動体が移動する動作ベクトルを設定し、
     予め設定された条件を満たすよう空間内における移動体の移動経路を計算する際に、前記領域毎に設定された前記動作ベクトルと、前記領域の前記物体に対する距離と、に基づいて移動経路を計算する、
    移動経路設定方法。
  2.  請求項1に記載の移動経路設定方法であって、
     前記領域の前記物体に対する距離に応じて当該領域に設定された前記動作ベクトルの重みを変化させて、当該動作ベクトルに基づいて移動経路を計算する、
    移動経路設定方法。
  3.  請求項1又は2に記載の移動経路設定方法であって、
     前記領域の前記物体に対する距離が近いほど、当該領域に設定された前記動作ベクトルの重みを高くして、当該動作ベクトルに基づいて移動経路を計算する、
    移動経路設定方法。
  4.  請求項1乃至3のいずれかに記載の移動経路設定方法であって、
     前記物体の形状に基づいて、前記領域毎の前記動作ベクトルを設定する、
    移動経路設定方法。
  5.  請求項4に記載の移動経路設定方法であって、
     前記領域内に前記物体が位置している場合に、当該領域の前記動作ベクトルを、当該物体の外面に略平行な方向に設定する、
    移動経路設定方法。
  6.  請求項1乃至5のいずれかに記載の移動経路設定方法であって、
     前記領域内に前記物体が位置している場合に、当該領域の前記動作ベクトルを前記物体の情報に基づいて設定し、前記領域内に前記物体が位置していない場合に、当該領域の前記動作ベクトルを隣接する他の前記領域に設定された前記動作ベクトルに基づいて設定する、
    移動経路設定方法。
  7.  請求項1乃至6のいずれかに記載の移動経路設定方法であって、
     相互に隣接する前記領域それぞれの前記動作ベクトルに基づいて、相互に隣接する前記領域を1つに統合し、統合前の前記領域それぞれの前記動作ベクトルに基づいて統合後の前記領域の前記動作ベクトルを設定する、
    移動経路設定方法。
  8.  請求項7に記載の移動経路設定方法であって、
     相互に隣接する前記領域それぞれの前記動作ベクトルの方向の差が予め設定された範囲内である場合に、相互に隣接する前記領域を1つに統合し、統合前の前記領域それぞれの前記動作ベクトルに基づいて統合後の前記領域の前記動作ベクトルを設定する、
    移動経路設定方法。
  9.  移動体が移動可能な空間内を各領域に分割する空間分割部と、
     前記領域毎に、空間内に存在する移動体の移動を妨げる物体の情報に基づいて、移動体が移動する動作ベクトルを設定する動作ベクトル設定部と、
     予め設定された条件を満たすよう空間内における移動体の移動経路を計算する際に、前記領域毎に設定された前記動作ベクトルと、前記領域の前記物体に対する距離と、に基づいて移動経路を計算する移動経路計算部と、
    を備えた移動経路設定装置。
  10.  請求項9に記載の移動経路設定装置であって、
     前記移動経路計算部は、前記領域の前記物体に対する距離に応じて当該領域に設定された前記動作ベクトルの重みを変化させて、当該動作ベクトルに基づいて移動経路を計算する、
    移動経路設定装置。
  11.  請求項9又は10に記載の移動経路設定装置であって、
     前記移動経路計算部は、前記領域の前記物体に対する距離が近いほど、当該領域に設定された前記動作ベクトルの重みを高くして、当該動作ベクトルに基づいて移動経路を計算する、
    移動経路設定装置。
  12.  請求項9乃至11のいずれかに記載の移動経路設定装置であって、
     前記動作ベクトル設定部は、前記物体の形状に基づいて、前記領域毎の前記動作ベクトルを設定する、
    移動経路設定装置。
  13.  請求項12に記載の移動経路設定装置であって、
     前記動作ベクトル設定部は、前記領域内に前記物体が位置している場合に、当該領域の前記動作ベクトルを、当該物体の外面に略平行な方向に設定する、
    移動経路設定装置。
  14.  請求項9乃至13のいずれかに記載の移動経路設定装置であって、
     前記動作ベクトル設定部は、前記領域内に前記物体が位置している場合に、当該領域の前記動作ベクトルを前記物体の情報に基づいて設定し、前記領域内に前記物体が位置していない場合に、当該領域の前記動作ベクトルを隣接する他の前記領域に設定された前記動作ベクトルに基づいて設定する、
    移動経路設定装置。
  15.  請求項9乃至13のいずれかに記載の移動経路設定装置であって、
     前記動作ベクトル設定部は、相互に隣接する前記領域それぞれの前記動作ベクトルに基づいて、相互に隣接する前記領域を1つに統合し、統合前の前記領域それぞれの前記動作ベクトルに基づいて統合後の前記領域の前記動作ベクトルを設定する、
    移動経路設定装置。
  16.  請求項15に記載の移動経路設定装置であって、
     前記動作ベクトル設定部は、相互に隣接する前記領域それぞれの前記動作ベクトルの方向の差が予め設定された範囲内である場合に、相互に隣接する前記領域を1つに統合し、統合前の前記領域それぞれの前記動作ベクトルに基づいて統合後の前記領域の前記動作ベクトルを設定する、
    移動経路設定装置。
  17.  情報処理装置に、
     移動体が移動可能な空間内を各領域に分割し、
     前記領域毎に、空間内に存在する移動体の移動を妨げる物体の情報に基づいて、移動体が移動する動作ベクトルを設定し、
     予め設定された条件を満たすよう空間内における移動体の移動経路を計算する際に、前記領域毎に設定された前記動作ベクトルと、前記領域の前記物体に対する距離と、に基づいて移動経路を計算する、
    処理を実行させるためのプログラムを記憶したコンピュータにて読み取り可能な記憶媒体。
     
PCT/JP2022/008605 2022-03-01 2022-03-01 移動経路設定方法 WO2023166561A1 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/JP2022/008605 WO2023166561A1 (ja) 2022-03-01 2022-03-01 移動経路設定方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2022/008605 WO2023166561A1 (ja) 2022-03-01 2022-03-01 移動経路設定方法

Publications (1)

Publication Number Publication Date
WO2023166561A1 true WO2023166561A1 (ja) 2023-09-07

Family

ID=87883170

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2022/008605 WO2023166561A1 (ja) 2022-03-01 2022-03-01 移動経路設定方法

Country Status (1)

Country Link
WO (1) WO2023166561A1 (ja)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010152684A (ja) * 2008-12-25 2010-07-08 Toshiba Corp 移動体軌道生成方法および移動体軌道生成装置
JP2010191502A (ja) * 2009-02-16 2010-09-02 Toyota Motor Corp 移動ロボット制御システム、経路探索方法、経路探索プログラム
JP2018185633A (ja) * 2017-04-25 2018-11-22 トヨタ自動車株式会社 自律移動体
US20190361431A1 (en) * 2018-05-28 2019-11-28 Korea Institute Of Science And Technology Mobile robot control apparatus and method for compensating input delay time
JP7004475B1 (ja) * 2020-11-13 2022-01-21 三菱電機株式会社 経路生成システム、経路生成方法、経路生成プログラム、及び自律移動体

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010152684A (ja) * 2008-12-25 2010-07-08 Toshiba Corp 移動体軌道生成方法および移動体軌道生成装置
JP2010191502A (ja) * 2009-02-16 2010-09-02 Toyota Motor Corp 移動ロボット制御システム、経路探索方法、経路探索プログラム
JP2018185633A (ja) * 2017-04-25 2018-11-22 トヨタ自動車株式会社 自律移動体
US20190361431A1 (en) * 2018-05-28 2019-11-28 Korea Institute Of Science And Technology Mobile robot control apparatus and method for compensating input delay time
JP7004475B1 (ja) * 2020-11-13 2022-01-21 三菱電機株式会社 経路生成システム、経路生成方法、経路生成プログラム、及び自律移動体

Similar Documents

Publication Publication Date Title
US11065762B2 (en) Robot work system and method of controlling robot work system
US11813753B2 (en) Collision avoidance motion planning method for industrial robot
US11292132B2 (en) Robot path planning method with static and dynamic collision avoidance in an uncertain environment
EP0967055B1 (en) Method of and apparatus for determining optimum delivery route for articles
Santos et al. A nonlinear model predictive control for the position tracking of cable-driven parallel robots
CN114072254A (zh) 不确定环境中利用静态和动态碰撞规避的机器人路径规划方法
Pambudi et al. Simulation design of trajectory planning robot manipulator
Yahya et al. Artificial neural networks aided solution to the problem of geometrically bounded singularities and joint limits prevention of a three dimensional planar redundant manipulator
Zhong et al. Image-based flight control of unmanned aerial vehicles (UAVs) for material handling in custom manufacturing
Muñoz‐Vázquez et al. Predefined‐time control of cooperative manipulators
Yasuda et al. Cooperative transportation robot system using risk-sensitive stochastic control
CN111830825A (zh) 机械的自动驾驶控制方法以及系统
WO2023166561A1 (ja) 移動経路設定方法
Iftikhar et al. Nonlinear model predictive control of an overhead laboratory-scale gantry crane with obstacle avoidance
JP2018185747A (ja) 非線形システムの制御方法、二足歩行ロボットの制御装置、二足歩行ロボットの制御方法及びそのプログラム
Bayona et al. Optimization of trajectory generation for automatic guided vehicles by genetic algorithms
JP4377792B2 (ja) 配車計画作成装置、配車計画作成方法、コンピュータプログラム、及びコンピュータ読み取り可能な記録媒体
Hurni et al. A pseudospectral optimal motion planner for autonomous unmanned vehicles
Zhao et al. Bi-criteria acceleration level obstacle avoidance of redundant manipulator
Ataka et al. Magnetic-field-inspired navigation for robots in complex and unknown environments
US11872704B2 (en) Dynamic motion planning system
Sun et al. A Fuzzy Cluster-based Framework for Robot-Environment Collision Reaction
Sotiropoulos et al. Rapid motion planning algorithm for optimal UVMS interventions in semi-structured environments using GPUs
Shvalb et al. Motion in potential field and navigation function
Watanabe et al. Optimal trajectory generation of a drone for wheelchair tracking using mixed-integer programming

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 22929709

Country of ref document: EP

Kind code of ref document: A1