Note : Les descriptions sont présentées dans la langue officielle dans laquelle elles ont été soumises.
2~3~87
ROBOT PROGRAMMING METHOD
BACKGROUND OF THE INVENTION
This invention relates to a method for programming a
robot to imitate the motions of a human being or animal under
the control of a computer.
Recently, lndustrial robots have come to be used in
various fields to perform a wide variety of physical motions.
Programming a robot lnvolves a process known as teaching. ~ne
teaching method is an on-line programming method known a
~teaching plzyback" in which the motions of a human are
directly taught to the robot. Another method is an off-line
programming method in which the motions of a human being are
simulated by a computer.
In the teaching playback method, a person moves a robot
in accordance with a working sequence by manual control. This
method is widely adopted because it is easy to perform, but it
has the disadvantage that the operation of the robot must be
stopped during the teaching process, thereby lowerlng the
working efficiency of the robot. The off-line programming
method is useful when a high working efficiency is required,
because the programming can be performed without stopping the
operatlon of the robot.
Generally, in the off-line programming method, the
contents of tracks and movement scheduled by environmental
models are descrlbed by a robot programming language. the
contents are ascertained by motion simulation, and fine
ad~ustment of the contents is 1ater performed at the work
:' -
,
' .. : .. . . ~ ' -: :
site. Thus, the off-line programming method is very
complicated. Since the environmental models include
geometrical information such as configurations, dimensions,
positions, and postures of the work piece and peripheral
equipment, physical parameters such as materials and weights,
and technical information such as functions, service, and
usage, a programmer must schedule the working sequence by
using such complex environmental models.
In order to control a robot to perform the motions of a
human being, it is necessary to analyze the motions of a human
being and then design motions to be performed by the robot.
In the past, since inaccurate knowledge based on the intuition
of the motion analyst was used to design robot motions, the
resulting motions of the robot were unsatisfactory.
Furthermore, since kinematics, which describes motions in
terms of positions, velocities, and accelerations, was used to
analyæe and deslgn motions, the design process was very
dlfficult.
In addition, while it is desirable to design the motions
of a robot using a method have real time response,
conventional off-line programming methods have no real tlme
response because they requlre the ascertainment of the
contents of motlons by means of motion simulation and fine
ad~ustment at the work site, which requires trial and error.
Another method known as dynamics is also applled to robot
programming. Dynamics provldes the motlons of an ob~ect based
~ on the relation between movement and forces. If dynamics is
t applied to robot programming, it is posslble to program
`f --2
.
. :-- . . . . . - . .. .: : . .: .
.. : : .. .. :. -.: ::. . ;. ::: .. .: : : . : -
:. : -, . - . . -. . ..
,: : - . . . . . .-. . , .:
. - ~ - .,.
2 ~ 7
complex behavior with minimal control. Furthermore, robot
programming utilizing dynamics can design new motions which
can never be obtained using kinematics.
However, in order to program the motions of a robot using
dynamics, it is necessary to have data on parameters such as
the moments of inertia, centers of mass, joint friction, and
muscle/ligament elasticity of the human body, whlch are
difflcult to measure. Without such data, dynamics provides
unsatisfactory results similar to those obtained using
kinematics. Thus, it has been impossible to reproduce all the
motions of the human body by conventional robot programming
methods utilizing dynamics.
Furthermore, programming methods utilizing dynamics are
not suitable because of their computational complexity, since
when n is the number of segments constituting the human body
and acting as mlnimal units of motion, the computational
complexlty O~f~n)) becomes a function O(n~) of n', and thus is
very large, so calculation requires a long time.
A robot programming method having a computational
complexity of O~n) has been proposed. However, this method is
appllcable only when there are no rotations of ~oints about
the principal axes.
SUMMARY OF THE INVENTION
It is an object of the present invention to provide an
lmproved robot programming method utilizing dynamics which can
program complicated working sequences.
It ls another ob~ect of the present invention to provide
.
.: .
- ,
~, .~ -
. . -
2 0 ~ 7
an improved robot programming method which can produce new
motions of a robot using knowledge based on analysis using
dynamics of actual motions of the human body.
It is yet another object of the present invention to
provide a robot programming method which enables a programmer
to develop a new motion in an interactive manner without
relying on trial and error or the intuition of the programmer.
In a robot programming method according to the present
invention, basic motions of a human being are analyzed to
obtain data on dynamic parameters including the forces and
torque exerted on joints of the human body, and this data is
put into a database. A programmer then accesses the database
and modifies the data, and a computer provides the programmer
with feedback in real time on the result of constraints in
terms of constrained motions and the result of inverse
dynamics in terms of forces. The programmer can design new
motions in an interactive manner by repeating the above
processes until satisfactory results are obtained.
The computational complexity of the motion analyzing
method employed in the present invention is a function O(n) of
the number of segments n, so the computational complexity is
much less than with conventional programming methods.
Furthermore, the present method can produce natural motions of
a robot.
BRIEF DESCRIPTION OF THE DRAWIN~S
Figure 1 is a flow chart of a robot programming method
according to the present invention.
- . . . . - ~ .
: - : ' : - '
- .
. ' ~ ' ' . ' ' - . ' ~. ' ' ~
. . . ~ . :
- . . , - : - ' -
-
2 ~
Figures 2(a) - 2(c) are control graphs for motion design
showing an example of the forces exerted on a joint.
DESCRIPTION OF THE PREFERRED EMBODIMENTS
Figures 1 is a flow chart of the method of the present
invention. It includes the following steps.
(1) Constructing a model of the human body;
(2) Applying the actual motions of a human to the model;
(3) Analyzing the resulting motions of the model;
(4) Designing new motions;
(5) Applying dynamics;
(6) Applying constraints;
(7) Applying inverse dynamics; and
(8) Displaying the result.
In the first step (constructing a model), the human body
is divided into a plurality of segments connected by joints,
each of the segments acting as a minimal unit of motion. A
model is then constructed on the basis of constraints
including the nature of each segment, the articulation of the
body, and the range of movement of the joints connecting the
segments. Data defining the model is stored in a computer as
a database.
In the second step (applying actual motions), a film is
taken of the actual motions of a human, and for each frame of
the film, the positions of the body parts of the human are
quantified and input to the computer. This data is applied to
the model, and the computer calculates the position, velocity,
-5-
. ,~
-
-- ,, ~ , .. - .
.
20~3~7
and acceleration of each segment of the model. When the human
is simultaneously filmed from a plurality of directions, the
analysis in the next step can be executed more concretely.
In the third step (analyzing the motions of the model),
the motions of the segments determined in the second step are
analyzed using inverse dynamics to determine the center of
gravity of each body segment, the force and torque exerted on
each joint, the position of the center of gravity of the whole
body, and the force and torque exerted on the center of
gravity of the whole body. This data is then put into the
database.
Next, a method for programming a robot to perform a new
motion on the based on the results of the preceding analysis
will be described.
In the fourth step (designing new motions), a programmer
chooses a plurality of basic motions from the database. One
way of quantitatively representing the motions is by means of
control graphs showing the forces acting on one of the joints
of the model as a function of time. Figures 2(a) - 2(c) are
control graphs of the forces acting on the left elbow of a
golfer in the directions of x, y, and z orthogonal axes as a
function of time. The data constituting the control graphs is
stored in the database. The two forces exerted on any given
~oint are equal in magnitude and opposite in direction. A
complicated motion is represented by a plurality of graphs.
The control graphs for motions of other body segments can be
deslgned in the same manner as for the illustrated control
graphs for the left elbow.
~ .
2~38~7
On the basis of th~ control graphs, a program for a robot
is created. In this case, physical parameters lnvolvlng
scaling up or down of the abscissa or ordinate of ~he control
graphs are modified in accordance with the dimenslons and
material of a work piece to be handled by the rotor and the
working range of the robot.
In the fifth step (application of dynamics), the motion
of each segment of the robot is calculated on the basls of the
forces corresponding to the basic motions selected by the
developer and the dynamic equations governing movement of the
segment. Although the segments of the robot body are in fact
connected with one another by joints, in order to simplify the
calculations, it is assumed for the moment that each segment
of the robot is independent of the other segments.
The linear acceleration of each segment is calculated
using Newton's equation of motion, and the angular
acceleration of each segment is calculated using Euler's
e~uations. Once the linear and angular accelerations are
obtained, they are integrated a first time to find velocities
and integrated a second time to find positions.
In the sixth step (application of constraints), the
articulation of the segments of the robot and the range of the
movements of its joints are checked for each of the motions
calculated ln the fifth step. The process of applying
constraints starts at a segment referred to as a root segment,
and the position and the orientation of each segment in a
subclass of the root segment are checked sequentially. Here,
two types of checks are performed. One is a check whether a
--7--
-- : - . : :
, ': ., - . ': ~
. . ' .
.:
2~387
subclass segment is always connected to lts superclass
segment. The other is a check whether the movement of each
joint exceeds a specified range. If the subclass segment is
not connected to its superclass segment as shown in Figure
4~a), the subclass segment is translated until it becomes
connected to its superclass segment. If the movement of each
segment joint exceeds the specified range, the movement of the
joint is adjusted to be within the range by rotation.
In the seventh step (application of inverse dynamics),
Lagrange equations which describe the relationship between
forces and movement are used to calculate the forces exerted
on each joint of the robot body.
If the desired results are not at first obtained, the ~th
- 7th steps can be repeated, and the new motions can be
developed in an interactive manner.
In the eighth step (displaying the result), the new
motlons which have been partially or completely designed are
displayed on the screen.
In the present invention, since the sequence is executed
by a simple llne feedback algorithm, the computatlonal
complexity of the inverse dynamics becomes a function O(n) of
the number of segments n.
Furthermore, the present invention makes it possible for
a programmer to design a new motion of a robot in an
interactive manner using a computer without re~uiring trial
and error or the intuitlon of the programmer.
As mentioned above, the robot programming method
according to the present invention comprises the steps of
2~3~7
analyzing the basic motions of a human being and forming a new
robot program using dynamics~ The analysis of the basic
motions of a human being is achieved in three steps:
constructing a model, applying the actual motions of a human
being to the model, and analyzing the resulting motions of the
model. ~he formation of the program is achieved in three
steps: application of dynamics, application of constraints,
and application of inverse dynamics. In the step of applying
dynamics, the robot body is divided into a plurality of
independent segments connected by joints, and the motion of
each segment is calculated independently of the other segments
using Newton's equation of motion and Euler's equations. In
the step of applying constraints, the articulation of the
robot body and the range of mo~ement of the joints are
checked. In the step of applying inverse dynamics, the forces
modified by the constraints and generating new forces are
calculated. Thus, the whole computational complexity becomes
O~n).
~ . , -, ~ . . ~
, . ~ .