Field of the Invention
The present invention relates to a dynamics calculation method, a program and a recording medium used for a mechanism analysis simulation or the like. The present invention relates, more particularly, to a dynamics calculation method and a non-transitory recording medium that records a program suitable for use in dynamics calculation of a body made up of components connected through a movable axis and components connected through a fixed axis.
Description of the Related Art
Conventionally, when designing a machine product provided with an operation mechanism, mechanism analysis simulations are performed using a calculating machine such as a computer for confirming operation of the product in advance. In a mechanism analysis simulation, a movement of a whole product is simulated by performing dynamics calculation according to forward dynamics based on a dynamics model (also referred to as “simulation model”). A designer of the product (hereinafter referred to as “user”) can analyze not only operation of the product but also interference between components included in the product and a force applied to each component by performing a mechanism analysis simulation.
In the case of a multi-axis robot constructed by connecting many components through a movable axis or fixed axis, displacement/speed/acceleration of each component varies depending on, for example, torque input to each axis, and attitude in a time sequence is determined. However, since an actual movement of the multi-axis robot is affected by gravity/inertia or the like, it is difficult for a user to design a product by predicting such an affected movement. Thus, a link mechanism analysis apparatus and a link mechanism indirect data calculation apparatus are being proposed which perform simulations to confirm operation of a multi-axis robot having a link mechanism and confirm interference with a peripheral environment (Japanese Patent Publication No. 3361007). This apparatus simulates an overall movement by performing dynamics calculation using an amount of drive or drive force as an input parameter regarding a link mechanism.
When performing a simulation using a computer, a user needs to construct a simulation model in advance by connecting many components through a movable axis or a fixed axis on a computer. A simulation model having a high degree of reusability is used when performing a simulation of a product such as a multi-axis robot system in particular in which replacement of components, change of component positions, change of a combination of components or the like frequently takes place. This model is convenient because components making up the multi-axis robot system are subdivided in advance and the user can thereby easily construct a simulation model in many patterns by only changing a combination of components as required.
However, conventionally, the more the components are subdivided to increase the degree of reusability, the more noticeably the convenience as a simulation deteriorates. That is, when the components are subdivided, the number of components combined to construct a simulation model increases. Dynamics calculation has a feature that the amount of calculation increases according to the number of components. For this reason, when a simulation model formulated by combining many components is used, the processing load placed on dynamics calculation increases, consequently increasing a time required from the start of a simulation to the result output, resulting in poor usability.
The present invention has been implemented in view of the above-described problems and it is an object of the present invention to provide a dynamics calculation method, a program and a recording medium capable of performing high accuracy dynamics calculation without increasing a processing load when performing dynamics calculation based on a dynamics model formulated by combining many components.
According to an aspect of the present invention, provided is a dynamics calculation method for calculating a movement of a body comprising a plurality of components connected through a movable axis connecting between the components movable relatively to each other and through a fixed axis connecting fixedly between the components, wherein the method comprising: formulating component body, by a control unit, such that, (1) when there are one or more components connected through fixed axes and moving dependently on a moving of a component connected through a movable axis, the control unit combines the component connected through the movable axis with the one or more components connected through fixed axes into a single component body connected through a movable axis, and, (2) when there is no component connected through a fixed axis and moving dependently on the moving of the component connected through the movable axis, the control unit sets the component connected through the movable axis as the single component body connected through the movable axis; formulating a model for dynamics calculation, by the control unit, such that, based on the component body connected through the movable axis, the control unit formulates the model for dynamics calculation; and performing, by the control unit, the dynamics calculation based on the formulated model for dynamics calculation.
According to the present invention, regarding components connected through a movable axis, a component body is formulated by combining components connected through one or more fixed axes moving dependently on a movement of the components and dynamics calculation is performed based on a model for dynamics calculation formulated using this component body. Thus, even when a dynamics model formulated by combining many components is used, it is thereby possible to perform dynamics calculation with high accuracy without increasing a processing load.
Further features of the present invention will become apparent from the following description of exemplary embodiments with reference to the attached drawings.
Preferred embodiments of the present invention will now be described in detail in accordance with the accompanying drawings.
Hereinafter, embodiments of the present invention will be described with reference to the accompanying drawings. First, an apparatus that executes simulation processing using a dynamics calculation method according to the present invention will be described using
<Simulation Apparatus>
A simulation apparatus 10 shown in
As shown in
The ROM 2 stores a control program and various types of data to be executed or referenced by the CPU 1. The RAM 3 is used as a working memory that temporarily stores various types of data generated when the CPU 1 executes a predetermined program or as a memory that temporarily stores a program currently being executed or data associated therewith. The input device 4 is a mouse or keyboard connected to the apparatus body and functions as an operator for inputting component data or indicating various control instructions on the CPU 1. The display device 5 is a display made up of a liquid crystal display panel (LCD) or CRT, and displays various screens such as “component data input screen” (see
The storage device 6 stores various types of data such as component data, component body data, model set by a user, model for dynamics calculation in addition to various control programs such as simulation processing executed by the CPU 1 (see
<Component Data Input Screen>
The user can perform a mechanism analysis simulation by executing simulation processing (see
The “component name” is a region to input a component to be newly registered as a simulation target (hereinafter referred to as “newly registered component”). The user can assign an optional name to each newly registered component. A base component, slider component, finger component or the like can be input as examples of the component name. The “component type (type information)” is a region to input as to whether the axis for connecting the newly registered component is a movable axis or fixed axis. The user inputs “movable axis” when the newly registered component is a component connected through a movable axis and “fixed axis” when the newly registered component is a component connected through a fixed axis. The “base component” is a region to input a base component to which the newly registered component is connected. Here, a component immediately preceding the newly registered component in a base end direction (conveniently called “base component” for distinction) is input. Examples of the movable axis include axis of rotation, axis of translation, spherical axis and free axis.
The “inertia, weight, position of center of gravity (inertial mass information of a component)” is a region to input a moment of inertia, weight and position of center of gravity of a newly registered component. The “relative position (position information of a component)” is a region to input relative positions of the newly registered component and the base component. A coordinate position of a component coordinate system to which the newly registered component belongs (e.g., world coordinate system, base component coordinate system, slider component coordinate system, finger component coordinate system) and a coordinate position of a component coordinate system to which the base component belongs are input as relative positions. The “inertia, weight, position of center of gravity (inertial mass information of a component)” and “relative position (position information of a component)” are used as input parameters during dynamics calculation. The “coefficient of restitution” and “coefficient of friction” are regions to input a coefficient of restitution and a coefficient of friction of the newly registered component respectively. As will be described later (see
The various types of information on the newly registered component input from the above “component data input screen” are stored in the storage device 6 as component data for each input component. That is, the component data may include a component name, component type (type information), base component, inertial mass information of the component (inertia, weight, position of center of gravity), position information (relative position) of the component and further include the coefficient of restitution and coefficient of friction.
Note that in the present specification, the “movable axis” is an axis that connects between components in a manner relatively movable to each other such as rotation, translation, spherical movement or free movement and the “fixed axis” is an axis that fixedly connects between components so as not to relatively move to each other. Examples of the movable axis include hinge joint, slider joint and universal joint. Components connected through a fixed axis move dependently on a movement of a component connected through a movable axis in the base end direction. The component side on which a reference coordinate system (world coordinate system) is set when calculating position coordinates of each component is called “base end direction (base side)” and the direction opposite to the base end direction is called “tip end direction (distal end side)”. The model structure in the tip end direction may be a closed link. In this case, when the closed link is cut, the base end direction and the tip end direction are determined.
<Simulation Processing>
Next, processing of simulating a movement of a whole body by performing dynamics calculation based on a simulation model will be described.
First, in step S1, a model set by a user is formulated according to component registration by the user (model formulation procedure). That is, a “component data input screen” (see
<Model Set by User>
Here,
In the model set by the user shown in
The component 302 is a slider component of the electrically-driven gripper placed in the base component coordinate system 301-1 and is connected to the base component coordinate system 301-1 through a movable axis of translation. That is, the component 302 is freely movable with respect to the component 301 in a horizontal direction in
The component 303 is a finger component of the electrically-driven gripper placed in the slider component coordinate system 302-1 and connected to the slider component coordinate system 302-1 through a fixed axis. The component 303 is placed with a relative position 303-2 from the origin of the slider component coordinate system 302-1 to the origin of a finger component coordinate system 303-1. That is, the relative position 303-2 is determined by a coordinate position of the finger component coordinate system to which the component 303 belongs and a coordinate position of the slider component coordinate system to which the component 302 immediately preceding the component 303 in the base end direction belongs. The center of gravity of the component 303 is a center of gravity 303-3.
The component 304 is a slider component of the electrically-driven gripper placed in the base component coordinate system 301-1 as in the case of the component 302 and connected to the base component coordinate system 301-1 through a movable axis of translation. Furthermore, the component 305 is a finger component of the electrically-driven gripper placed in the slider component coordinate system 302-1 as in the case of the component 303 and connected to the slider component coordinate system 302-1 through a fixed axis.
As described above, the component 302 and the component 304 are slider components connected to the component 301 through a movable axis of translation, and the component 303 and the component 305 are finger components connected to the component 302 and the component 304, respectively, through a fixed axis. Therefore, when some input (torque input or the like) is given to each movable axis of the component 302 and the component 304, the component 303 operates dependently on a movement of the component 302 and the component 305 operates dependently on a movement of the component 304 as operation of the model set by the user.
Returning to the description of the processing shown in
When the processing to formulate a model for dynamics calculation ends, in step S4, the model for dynamics calculation is acquired from the storage device 6 and dynamics calculation is executed based on the model for dynamics calculation (calculation procedure). In this dynamics calculation, calculation according to forward dynamics is performed. A simulation is performed along with the execution of dynamics calculation and the simulation result is displayed on the display device 5. The user can analyze operation of the product (electrically-driven gripper), interference between the components included in the product and forces applied to each component while looking the simulation result displayed on the display device 5. The user can examine or confirm operation of the designed product at the desk without the need for actually making the product experimentally.
<Processing to Formulate Model for Dynamics Calculation>
The processing to formulate a model for dynamics calculation (step S3 in
Next, it is determined whether the acquired component is connected through a fixed axis or not (step S14). Whether the acquired component is connected through a fixed axis or not depends on whether the component is connected through a fixed axis to a component in the base end direction or the world coordinate system 306 or not. When the acquired component is not connected through a fixed axis to a component in the base end direction or the world coordinate system 306 (NO in step S14), the flow jumps to a process in step S16. On the other hand, when the acquired component is connected through a fixed axis to a component in the base end direction or the world coordinate system 306 (YES in step S14), the component is determined to be a component connected through the fixed axis and a “combining process of components connected through a fixed axis” (component body generating procedure) is executed (step S15). In the case of the model set by the user shown in
In step S16, with the acquired component added, a model for dynamics calculation is formulated (formulation procedure). The formulated model for dynamics calculation is stored in the storage device 6. This model for dynamics calculation is formulated using the acquired components. However, when the component is a component for which inertial mass information and position information are combined along with the execution of the “combining process of components connected through a fixed axis” (see
<Combining Process of Component Connected Through Fixed Axis>
The combining process of components connected through a fixed axis (step S15 in
When the combining process of components connected through a fixed axis is repeated for each component connected from the base end direction to the tip end direction, the inertial mass information of the component connected through the fixed axis is combined with the inertial mass information of the component connected through the movable axis in the base end direction. On the other hand, the position information of the component connected through the fixed axis is combined with the position information of the component located in the tip end direction.
Here, the combination of the inertial mass information of the component and the position information of the component will be described. The inertial mass information of the component refers to information on three elements: weight, center of gravity and moment of inertia. A case will be described below where inertial mass information of component “A” and inertial mass information of component “B” are combined into component body “C” having new inertial mass information.
<Combination of Inertial Mass Information>
A combination of weights between the components is calculated according to expression 1 shown below.
MC=MA+MB [Expression 1]
where, M denotes a weight of the component.
A combination of centers of gravity between the components is calculated using expression 2 shown below.
where, COG denotes a center of gravity of the component.
A combination of moments of inertia between the components is calculated using a parallel axis theorem. First, when a moment of inertia with respect to the axis that passes through the center of gravity with respect to the respective components is Ig, a moment of inertia I at a position at a three-dimensional distance S=(x, y, z) parallel to this axis can be calculated according to expression 3 shown below. “E” in expression 3 is a unit matrix. “T” is a symbol representing a transpose matrix.
I=Ig+M(STSE−SST) [Expression 3]
To combine moments of inertia between the components, central axes of moments of inertia are aligned using a parallel axis theorem and summed up. The moment of inertia of component body “C” combined from the moment of inertia of component “A” and the moment of inertia of component “B” is calculated according to expression 4 shown below.
However, SAC in expression 4 is a three-dimensional distance from the center of gravity of component “A” to the center of gravity of component body “C” and SBC is a three-dimensional distance from the center of gravity of component “B” to the center of gravity of component body “C.” “E” in expression 4 is a unit matrix. “T” is a symbol representing a transposed matrix.
As described above, by combining the respective pieces of inertial mass information of component “A” and component “B,” component body “C” having new inertial mass information is generated.
<Combination of Position Information>
On the other hand, the position information of a component refers to a translation parameter and a rotational transfer parameter. For example, when position information in a three-dimensional space is expressed by a 4×4 homogeneous transformation matrix which means rotational translation, an expression for combining position information of component “A” with position information of component “B” to calculate new position information of component “B” is shown in following expression 5.
RBnew=RARBold [Expression 5]
In above expression 5, a homogeneous transformation matrix expressing a relative position from a component coordinate system in the base end direction of each component is represented by “R.” New position information of component “B” calculated by combining position information using this corresponds to the position information of component body “C.”
<Model for Dynamics Calculation>
When the aforementioned combining process of components connected through a fixed axis is repeatedly executed (steps S14 to S18), components connected through one or more fixed axes moving dependently on a movement of components connected through a movable axis are combined and one component body connected through the movable axis is generated for each component connected through the movable axis. A model for dynamics calculation is formulated by these component bodies. Thus,
In the model set by the user shown in
Since the component 302 is a component connected through the movable axis, the combining process of components connected through a fixed axis is not performed. Therefore, neither combination of inertial mass information nor combination of position information is performed. When formulating a model for dynamics calculation, first component body data having position information (401-2) combined with the position information (301-2) of the component 301 is used instead of the component data.
Since the component 303 is a component connected through the fixed axis, the component 303 is subjected to a combining process of components connected through a fixed axis. Since the base component of the component 303 is the component 302, the inertial mass information (center of gravity 303-3) of the component 303 is combined with the inertial mass information (center of gravity 302-3) of the component 302. At this time, inertial mass information of the already generated first component body data is rewritten by the inertial mass information (center of gravity 401-3) after the combination and the first component body data is updated. Note that since the component 303 has no component in the tip end direction, the position information is not combined. When formulating a model for dynamics calculation, first component body data is used which has position information (401-2) combined with the position information of the component 301 and inertial mass information (center of gravity 401-3) combined with the inertial mass information of the component 303. Thus, a first component body 401 having the new position information (401-2) and new inertial mass information (center of gravity 401-3) is generated in the model for dynamics calculation. Using second component body data, a second component body 402 having new position information (402-2) and new inertial mass information (new center of gravity 402-3) is generated in the model for dynamics calculation.
In the processing to formulate a model for dynamics calculation, for example, when no component is combined along with the execution of the combining process of components connected through a fixed axis, the model set by the user is stored in the storage device 6 as a model for dynamics calculation as is.
When dynamics calculation is performed based on a simulation model, an external force or acceleration needs to be calculated for each component making up the model. If so, dynamics calculation needs to be performed for each of the five components 301 to 305 in the model set by the user shown in
As described above, even when the user formulates a model set by the user made up of many components connected through the movable axis or fixed axis, in dynamics calculation, a model for dynamics calculation is used for which components connected through the fixed axis are combined with components connected through the movable axis and the number of components is reduced. Since dynamics calculation is performed based on the model for dynamics calculation with the reduced number of components, it is possible to reduce the time required for a simulation compared to the prior art. The user can use a simulation model having a high degree of reusability and making it easier to replace components or change positions or change a combination of components without constraints even when many components are combined. That is, the user needs not formulate a model while comparing the number of components to be combined to increase accuracy with the time required for a simulation involved in an increase in the number of components, which increases convenience in simulation through dynamics calculation.
<Second Embodiment>
When performing a simulation with repulsion or friction of components taken into consideration, a coefficient of restitution or coefficient of friction is preferably allowed to be set for each component. For example, in the case of the model set by the user shown in
The simulation processing shown in
As described above, a model set by the user having many components is used as is to calculate a repulsive force or a frictional force for each component and a model for dynamics calculation with a reduced number of components is used for dynamics calculation. In dynamics calculation, a repulsive force or frictional force or the like determined using the model set by the user can be used as input parameters. This allows the user to perform a simulation with higher accuracy by taking into account repulsion or friction of components or the like without taking much time from the start of a simulation to the result output, which is advantageous.
Other Embodiments
Embodiment(s) of the present invention can also be realized by a computer of a system or apparatus that reads out and executes computer executable instructions (e.g., one or more programs) recorded on a recording medium (which may also be referred to more fully as a ‘non-transitory computer-readable recording medium’) to perform the functions of one or more of the above-described embodiment(s) and/or that includes one or more circuits (e.g., application specific integrated circuit (ASIC)) for performing the functions of one or more of the above-described embodiment(s), and by a method performed by the computer of the system or apparatus by, for example, reading out and executing the computer executable instructions from the recording medium to perform the functions of one or more of the above-described embodiment(s) and/or controlling the one or more circuits to perform the functions of one or more of the above-described embodiment(s). The computer may comprise one or more processors (e.g., central processing unit (CPU), micro processing unit (MPU)) and may include a network of separate computers or separate processors to read out and execute the computer executable instructions. The computer executable instructions may be provided to the computer, for example, from a network or the recording medium. The recording medium may include, for example, one or more of a hard disk, a random-access memory (RAM), a read only memory (ROM), a storage of distributed computing systems, an optical disk (such as a compact disc (CD), digital versatile disc (DVD), or Blu-ray Disc (BD)™), a flash memory device, a memory card, and the like.
While the present invention has been described with reference to exemplary embodiments, it is to be understood that the invention is not limited to the disclosed exemplary embodiments. The scope of the following claims is to be accorded the broadest interpretation so as to encompass all such modifications and equivalent structures and functions.
This application claims the benefit of Japanese Patent Application No. 2014-022359, filed Feb. 7, 2014, which is hereby incorporated by reference herein in its entirety.
Number | Date | Country | Kind |
---|---|---|---|
2014-022359 | Feb 2014 | JP | national |
Number | Name | Date | Kind |
---|---|---|---|
4925312 | Onaga | May 1990 | A |
5767648 | Morel | Jun 1998 | A |
5831875 | Hirata et al. | Nov 1998 | A |
6330494 | Yamamoto | Dec 2001 | B1 |
7457698 | Danko | Nov 2008 | B2 |
8065060 | Danko | Nov 2011 | B2 |
8099184 | Schoening | Jan 2012 | B2 |
8504337 | Foster | Aug 2013 | B2 |
9183674 | Diguet | Nov 2015 | B2 |
9503704 | Ando | Nov 2016 | B2 |
Number | Date | Country |
---|---|---|
3361007 | Jan 2003 | JP |
2006-285922 | Oct 2006 | JP |
2012-226603 | Nov 2012 | JP |
Entry |
---|
Barreto, João Pedro, et al. “FED-the free body diagram method. Kinematic and dynamic modeling of a six leg robot.” Advanced Motion Control, 1998. AMC'98—Coimbra., 1998 5th International Workshop on. IEEE, 1998. |
McMillan, Scott, David E. Orin, and Robert B. McGhee. “Efficient dynamic simulation of an underwater vehicle with a robotic manipulator.” IEEE Transactions on Systems, Man, and Cybernetics 25.8 (1995): 1194-1206. |
Nobuhiro Sugimura, et al., “A Study on Product Model for Design and Analysis of Mechanical Assemblies Based on STEP,” vol. 8, No. 9, Institute of Systems, Control and Information, 1995, pp. 466-473. |
Office Action, dated Jan. 30, 2018, in corresponding Japanese Application No. 2014-022359. |
Office Action, dated Nov. 14, 2017, in corresponding Japanese Application No. 2014-022359. |
Number | Date | Country | |
---|---|---|---|
20150227653 A1 | Aug 2015 | US |