CA2043887A1 - Robot programming method - Google Patents

Robot programming method

Info

Publication number
CA2043887A1
CA2043887A1 CA002043887A CA2043887A CA2043887A1 CA 2043887 A1 CA2043887 A1 CA 2043887A1 CA 002043887 A CA002043887 A CA 002043887A CA 2043887 A CA2043887 A CA 2043887A CA 2043887 A1 CA2043887 A1 CA 2043887A1
Authority
CA
Canada
Prior art keywords
motions
robot
joints
robot body
dynamics
Prior art date
Legal status (The legal status 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 status listed.)
Abandoned
Application number
CA002043887A
Other languages
French (fr)
Inventor
Toshiyasu Kunii
Lining Sun
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
SHUKYOHOJIN KONGO ZEN SCHONZAN SHORINJI
Original Assignee
Individual
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 Individual filed Critical Individual
Publication of CA2043887A1 publication Critical patent/CA2043887A1/en
Abandoned legal-status Critical Current

Links

Landscapes

  • Manipulator (AREA)
  • Numerical Control (AREA)
  • Control By Computers (AREA)

Abstract

ABSTRACT OF THE DISCLOSURE
A robot programming method comprises analyzing the actual motions of a human being and designing a new motion based on knowledge obtained by analysis of the forces and torques acting on the joints of the human body. A robot body is divided into a plurality of independent elements, and the motion of each element when a force corresponding to a basic motion of a human being is exerted thereon is calculated using dynamics. Constraints including the articulation of the robot body and the range of movements of its joints are applied to the robot body. Forces corresponding to motions produced by the application of constraints are calculated by inverse dynamics. The motions of and forces acting on the elements of the robot body are displayed on a screen.

Description

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, . ,~
--- ,, ~ , .. - .

.

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 -- : - . : :
, ': ., - . ': ~

. . ' .
.:

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).

~ . , -, ~ . . ~
, . ~ .

Claims (2)

1. A robot programming method comprising:
dividing a human body into a plurality of segments connected by joints, each of the segments acting as a minimal unit of motion, constructing a human body model on the basis of constraints including the inherent future of each segment, the articulation of the body, and the range of the movement of each joint, and inputting the human body model into a database;
applying the actual motions of a human body to the model;
calculating the resulting motions of the model using inverse dynamics and calculating the center of gravity of each segment, the force and torque exerted on each joint, the center of gravity of the whole body, and the force and torque exerted on the center of gravity of the whole body;
choosing a plurality of basic motions from the database, and modifying physical parameters of the basic motions;
dividing the robot into a plurality of segments connected by joints and calculating the motions of each robot body segment when forces corresponding to the basic motions are applied to the robot body segments using dynamics while neglecting constraints on the articulation of the robot body and the range of movements of the robot body joints;
checking and modifying the physical constraints on the articulation of the robot body segments and the range of movements of the robot body joints; and displaying the resulting motions of the robot body on a screen.
2. A robot programming method comprising:
dividing a human body into a plurality of segments connected by joints, each of the segments acting as a minimal unit of motion, constructing a human body model on the basis of constraints including the inherent future of each segment, the articulation of the body, and the range of the movement of each joint, and inputting the human body model into a database;
applying the actual motions of a human body to the model;
calculating the resulting motions of the model using inverse dynamics and calculating the center of gravity of each segment, the force and torque exerted on each joint, the center of gravity of the whole body, and the force and torque exerted on the center of gravity of the whole body;
choosing a plurality of basic motions from the database, and modifying physical parameters of the basic motions;
dividing the robot into a plurality of segments connected by joints and calculating the motions of each robot body segment when forces corresponding to the basic motions are applied to the robot body segments using dynamics while neglecting constraints on the articulation of the robot body and the range of movements of the robot body joints;
checking and modifying physical constraints on the articulation of the robot body and the range of movements of the robot body joints;
calculating the relation between force and the motions caused by the modification of physical constraints using inverse dynamics; and displaying the results obtained by composing the motions calculated by dynamics and the forces and centers of gravity calculated by inverse dynamics.
CA002043887A 1990-12-25 1991-06-05 Robot programming method Abandoned CA2043887A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2-418254 1990-12-25
JP41825490A JPH0584679A (en) 1990-12-25 1990-12-25 Robot programming method

Publications (1)

Publication Number Publication Date
CA2043887A1 true CA2043887A1 (en) 1992-06-26

Family

ID=18526153

Family Applications (1)

Application Number Title Priority Date Filing Date
CA002043887A Abandoned CA2043887A1 (en) 1990-12-25 1991-06-05 Robot programming method

Country Status (2)

Country Link
JP (1) JPH0584679A (en)
CA (1) CA2043887A1 (en)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3790816B2 (en) 2002-02-12 2006-06-28 国立大学法人 東京大学 Motion generation method for humanoid link system
KR101098834B1 (en) * 2009-12-02 2011-12-26 한국전자통신연구원 Apparatus and method for generating motion based on dynamics

Also Published As

Publication number Publication date
JPH0584679A (en) 1993-04-06

Similar Documents

Publication Publication Date Title
US5625577A (en) Computer-implemented motion analysis method using dynamics
US5623428A (en) Method for developing computer animation
Ijspeert et al. Movement imitation with nonlinear dynamical systems in humanoid robots
US5586224A (en) Robot or numerical control programming method
Hoffmann et al. Simulation of physical systems from geometric models
EP0520099A1 (en) Applied motion analysis and design
Tilove Extending solid modeling systems for mechanism design and kinematic simulation
CA2043887A1 (en) Robot programming method
Kim et al. Adaptation of human motion capture data to humanoid robots for motion imitation using optimization
Bhatia et al. An expert system-based design of SCARA robot
CA2043883C (en) Computer-implemented motion analysis method using dynamics
CA2043902A1 (en) Method for developing computer animation
Bastidas et al. Non immersive virtual laboratory applied to robotics arms
Memişoğlu Human motion control using inverse kinematics
Sikka et al. Stiffness-based understanding and modeling of contact tasks by human demonstration
Mattar e-GRASP: Robotic Hand Modeling and Simulation Environment
CA2043888A1 (en) Method for forming a numerical control program
HRONCOVA et al. KINEMATICS OF TWO LINK MANIPULATOR IN MATLAB/SIMULINK AND MSC ADAMS/VIEW SOFTWARE.
CA2043886A1 (en) Animal training method
CA2043885A1 (en) Skill developing method
Gutierrez et al. Reflex movements for a virtual human: a biology inspired approach
Daepp Development of a multi-platform simulation for a pneumatically-actuated quadruped robot
Sobh et al. Prototyping a Robotic M anipulator and Controller
Beliveau et al. Dynamic-behavior modeler for material handling in construction
Shiakolas et al. Environment for engineering design, analysis, and simulation for education using MATLAB via the World Wide Web. II. Representative examples—System simulation and planar mechanism synthesis and analysis

Legal Events

Date Code Title Description
EEER Examination request
FZDE Discontinued
FZDE Discontinued

Effective date: 19970605