US20070030271A1 - Robot controller and robot control method using spline interpolation - Google Patents
Robot controller and robot control method using spline interpolation Download PDFInfo
- Publication number
- US20070030271A1 US20070030271A1 US11/499,813 US49981306A US2007030271A1 US 20070030271 A1 US20070030271 A1 US 20070030271A1 US 49981306 A US49981306 A US 49981306A US 2007030271 A1 US2007030271 A1 US 2007030271A1
- Authority
- US
- United States
- Prior art keywords
- spline curve
- curve segment
- straight line
- angle
- tangent vectors
- 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
Links
Images
Classifications
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Programme-controlled manipulators
- B25J9/16—Programme controls
- B25J9/1656—Programme controls characterised by programming, planning systems for manipulators
- B25J9/1664—Programme controls characterised by programming, planning systems for manipulators characterised by motion, path, trajectory planning
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/30—Nc systems
- G05B2219/34—Director, elements to supervisory
- G05B2219/34135—Spline
Landscapes
- Engineering & Computer Science (AREA)
- Robotics (AREA)
- Mechanical Engineering (AREA)
- Numerical Control (AREA)
- Manipulator (AREA)
Abstract
A determining unit determines tangent vectors at one and the other end of one spline curve segment of each section such that a length of each tangent vector is proportional to that of a first straight line connecting one end and the other end of the one spline curve segment, and that the tangent vectors at one end and the other end of the one spline curve segment are directed to divide, by a predetermined ratio, a first angle and a second angle, respectively. The first angle is formed by the first straight line and an extension of a second straight line connecting one and the other ends of a previous spline curve segment. The second angle is formed by the fist straight line and an extension of a third straight line connecting one and the other ends of a next spline curve segment.
Description
- This application is based on Japanese Patent Application 2005-228089 filed on Aug. 5, 2005. This application claims the benefit of priority from the Japanese Patent Application, so that the descriptions of which are all incorporated herein by reference.
- The present invention relates to robot controllers and robot control methods, which are capable of performing spline interpolation on a plurality of command points given at intervals, thereby determining a trajectory of one end of a robot arm.
- Playback robots are normally designed such that a teaching box teaches a robot controller a plurality of command points of one end of a robot arm (manipulator); these command points include a starting point, an endpoint, and intermediate points therebetween. To the one end of the manipulator, a mechanical hand is attached. The robot controller is programmed to execute interpolation on the taught command points to determine a trajectory passing through the command points. Next, the robot controller is programmed to lubricously move the one end of the robot arm along the determined trajectory.
- As methods of interpolation on a plurality of command points, a spline interpolation method using spline function is in common use today. Some of examples of the spline interpolation method are disclosed in Japanese Unexamined Patent Publications No. S64-081012 and No. H07-064620.
- When the variation range of a parameter t is set to a range from 0 to 1, spline interpolation method is designed to:
- divide the variation range into a plurality of sections (segments);
- interpolate curves in the sections by different polynomials, respectively; and
- link the curves to define a spline curve within the range from 0 to 1.
- A curve in each section, referred to as “spline curve segment” hereinafter, is defined to meet a plurality of conditions at both ends thereof; these conditions are associated with positions and tangent vectors at both ends of each spline curve segment.
- Specifically, the adjacent spline curve segments are linked to one another to meet the following (A) to (C) conditions to obtain a lubricous spline curve (trajectory) passing through the command points in the order from the starting point to the endpoint:
- The condition (A) is that the positions at one ends of adjacent spline curve segments coincide with each other; these one ends constitute a knot between the adjacent spline curve segments
- The condition (B) is that the tangent vectors at one ends of adjacent spline curve segments coincide with each other
- The condition (C) is that the rates of tangent vectors at one ends of adjacent spline curve segments coincide with each other
- As set forth above, upon teaching of a plurality of command points the one end of the robot arm, the conventional robot controller determines a lubricous spline curve sequentially passing through the command points.
- If an interval between one pair of adjacent command points is shorter than another interval between another pair of adjacent command points, a spline curve segment in the corresponding short interval may be looped as illustrated in
FIG. 9 . Otherwise if all intervals have the same length, there can be no looped spline curve segments. - At a spline curve segment corresponding to part, which is desired to be gently curved in a substantially linear fashion, of a trajectory to be obtained, the interval of adjacent command points corresponding to the spline curve segment can be set to be relatively longer than another interval corresponding to another part of the trajectory.
- At a spline curve segment corresponding to part, which is desired to be sharply curved, of a trajectory to be obtained, the interval of adjacent command points corresponding to the spline curve segment need be set to be relatively shorter than another interval corresponding to another part of the trajectory.
- As set forth above, in order to obtain a spline curve without looped portions in a case where a desired trajectory of one end of a robot arm includes at least one gently curved part and at least one sharply curved part, it is necessary to teach a robot controller a plurality of command points in such a manner that:
- at least one interval of a pair of adjacent command points corresponding to the at least one gently curved part is shorter to be identical to at least one interval of another pair of adjacent command points corresponding to the at least one sharply curved part.
- This means that it is required to teach the robot controller a large number of command points in order to obtain a spline curve without looped portions. This may take a long time to perform the command point teaching operation, thereby deteriorating the efficiency of determining a trajectory of one end of a robot arm.
- In view of the background, an object of an aspect of the present invention is to provide robot controllers and robot control methods, which are capable of obtaining a spline curve without looped portions even if a plurality command points are different from each other in length.
- According to one aspect of the present invention, there is provided a controller for determining a spline curve as a trajectory of a predetermined movable portion of a robot body. The controller includes an interpolating unit configured to sequentially interpolate spline curve segments respectively in sections corresponding to intervals between command points. The controller also includes a tangent vector determining unit configured to determine tangent vectors at one and the other end of one spline curve segment of each of the sections such that a length of each of the tangent vectors is proportional to that of a first straight line connecting one end and the other end of the one spline curve segment, and that the tangent vectors at one end and the other end of the one spline curve segment are directed to divide, by a predetermined ratio, a first angle and a second angle, respectively. The first angle is formed by the first straight line and an extension of a second straight line connecting one and the other ends of a previous spline curve segment. The second angle is formed by the fist straight line and an extension of a third straight line connecting one and the other ends of a next spline curve segment. The controller further includes a linking unit configured to link the spline curve segments such that a direction of one of the tangent vectors at the one end of the one spline curve segment is substantially the same as that of one of the tangent vectors at the same end of the previous spline curve segment, and that a direction of the other of the tangent vectors at the other end of the one spline curve segment is substantially the same as that of one of the tangent vectors at the same end of the next spline curve segment.
- According to one aspect of the present invention, there is provided a program product embedded in a memory of a controller for determining a spline curve as a trajectory of a predetermined movable portion of a robot body. The program product includes first means for instructing a controller to sequentially interpolate spline curve segments respectively in sections corresponding to intervals between command points. The program product also includes second means for instructing a controller to determine tangent vectors at one and the other end of one spline curve segment of each of the sections such that a length of each of the tangent vectors is proportional to that of a first straight line connecting one end and the other end of the one spline curve segment, and that the tangent vectors at one end and the other end of the one spline curve segment are directed to divide, by a predetermined ratio, a first angle and a second angle, respectively. The first angle is formed by the first straight line and an extension of a second straight line connecting one and the other ends of a previous spline curve segment. The second angle is formed by the fist straight line and an extension of a third straight line connecting one and the other ends of a next spline curve segment. The program product further includes third means for causing a controller to link the spline curve segments such that a direction of one of the tangent vectors at the one end of the one spline curve segment is substantially the same as that of one of the tangent vectors at the same end of the previous spline curve segment, and that a direction of the other of the tangent vectors at the other end of the one spline curve segment is substantially the same as that of one of the tangent vectors at the same end of the next spline curve segment.
- According to a further aspect of the present invention, there is provided a method of determining a spline curve as a trajectory of a predetermined movable portion of a robot body. The method includes sequentially interpolate spline curve segments respectively in sections corresponding to intervals between command points. The method also includes determining tangent vectors at one and the other end of one spline curve segment of each of the sections such that a length of each of the tangent vectors is proportional to that of a first straight line connecting one end and the other end of the one spline curve segment, and that the tangent vectors at one end and the other end of the one spline curve segment are directed to divide, by a predetermined ratio, a first angle and a second angle, respectively. The first angle is formed by the first straight line and an extension of a second straight line connecting one and the other ends of a previous spline curve segment. The second angle is formed by the fist straight line and an extension of a third straight line connecting one and the other ends of a next spline curve segment. The method further includes linking the spline curve segments such that a direction of one of the tangent vectors at the one end of the one spline curve segment is substantially the same as that of one of the tangent vectors at the same end of the previous spline curve segment, and that a direction of the other of the tangent vectors at the other end of the one spline curve segment is substantially the same as that of one of the tangent vectors at the same end of the next spline curve segment.
- Other objects and aspects of the invention will become apparent from the following description of embodiments with reference to the accompanying drawings in which:
-
FIG. 1 is a perspective view schematically illustrating an example of the hardware configuration of a robot according to a first embodiment of the present invention; -
FIG. 2 is a block diagram schematically illustrating an example of the system configuration of the robot illustrated inFIG. 1 ; -
FIG. 3 is a view schematically illustrating examples of velocity pattern and motion angle pattern to be used by the controller illustrated inFIGS. 1 and 2 ; -
FIG. 4 is a view schematically illustrating an example of a trajectory containing a plurality of command points according to the embodiment; -
FIG. 5 is a view schematically illustrating tangent vectors at ends of spline curve segments according to the embodiment; -
FIG. 6 is an enlarged view schematically illustrating the relationship between a unit vector inside the first term of each of equations [14] and [15] and that inside the second term thereof according to the embodiment; -
FIG. 7 is an enlarged view schematically illustrating the relationship between a unit vector inside the first term of each of equations [16] and [17] and that inside the second term thereof according to the embodiment; -
FIG. 8 is a flowchart schematically illustrating operations to be executed by a controller illustrated inFIG. 1 ; and -
FIG. 9 is a trajectory containing a plurality of command points according to a related art of the present invention. - An embodiment of the present invention will be described hereinafter with reference to the FIGS. 1 to 6.
- A robot (robot arm) R according to the embodiment includes a
robot body 1, acontroller 2 for controlling therobot body 1, and ateaching pendant 3 as a teaching box for thecontroller 2. Therobot body 1 is electrically connected to thecontroller 2, and thecontroller 2 is electrically connected to theteaching pendant 3 through a cable. - As illustrated in
FIG. 1 , therobot body 1 as a control target for thecontroller 2 is designed as, for example, a vertical articulated robot. - Specifically, the
robot body 1 is composed of a substantially cylindrical-shaped base 4 mounted on a horizontal plane, and a substantially cylindrical-shape shoulder joint 5 mounted on the base 4 such that the center axial direction of theshoulder joint 5 is orthogonal to the center axial direction of the base 4. Theshoulder joint 5 is configured to be horizontally rotatable on the base 4 about a center axis thereof. - The
robot body 1 is also composed of a pair of upper arms (upper arm joints) 6. One ends of the pair ofupper arms 6 are pivotally supported by both ends of theshoulder joint 5 about the center axis thereof in the vertical direction corresponding to the center axial direction of the base 4. - The
robot body 1 is composed of a lower arm (lower arm joint) 7 pivotally supported by the other ends of theupper arms 6 in the vertical direction corresponding to the center axial direction of the base 4. - The lower arm 7 includes a
base 7 a and anarm body 7 b extending from thebase 7 a and rotatably supported thereby about the extending direction. The tip end of thearm body 7 b is forked. - The
robot body 1 is composed of a substantially cylindrical-shaped wrist joint 8 inserted between the forked ends of thearm body 7 b and pivotally supported thereby in the vertical direction corresponding to the center axial direction of the base 4. - The
wrist joint 8 is formed with aflange 9 projecting therefrom. Theflange 9 has a tip end to be rotatable about the projecting direction such that the tip end permits the mounting of a mechanical hand (mechanical gripper) that can grip various types of tools. Thetip end 9 a of theflange 9 will be also referred to as “hand joint” hereinafter. - The robot R also includes a number of
motors 10 as actuators. For example, in the embodiment, DC (Direct Current) servo motors can be preferably used as themotors 10. - Specifically, the base 4 is integrated with at least one of the
motors 10 and a rotation transmission system (not shown) that transfers rotation of at least one of themotors 10 to theshoulder joint 5 to horizontally rotate it. - The
shoulder joint 5 is integrated with at least one of themotors 10 and a rotation transmission system (not shown) that transfers rotation of at least one of themotors 10 to theupper arms 6 to vertically pivot them together with each other. - The
upper arm joints 6 are integrated with at least one of themotors 10 and a rotation transmission system (not shown) that transfers rotation of at least one of themotors 10 to the lower arm joint 7 to vertically pivot it. Thebase 7 a of the lower arm joint 7 is integrated with at least one of themotors 10 and a rotation transmission system (not shown) that transfers rotation of at least one of themotors 10 to thearm body 7 b of the lower arm joint 7 to rotate about the extending direction. - The
arm body 7 b is integrated with at least one of themotors 10 and a rotation transmission system (not shown) that transfers rotation of at least one of themotors 10 to the wrist joint 8 to vertically pivot. Theflange 9 is integrated with at least one of themotors 10 and a rotation transmission system (not shown) that transfers rotation of at least one of themotors 10 to its hand joint 9 a (together with the mechanical hand) to rotate about the projecting direction of theflange 9. - As illustrated in
FIG. 2 , thecontroller 2 includes aCPU 11 serving as a control unit, drivecircuits 12 for driving themotors 10, a detectingcircuit 13, a ROM (Read Only Memory, such as an EEPROM, flash ROM, or the like) 14, a RAM (Random Access Memory) 15, and an interface (I/F) 16. Theelements 12 to 16 are electrically connected to theCPU 11. - The
ROM 14 has stored therein system programs that cause theCPU 11 to control the system resources of the robot R. - The
RAM 15 has stored therein a robot motion program and the like. - The I/
F 16 is designed to be electrically connectable to theteaching pendant 3. - Note that, in
FIG. 2 , theshoulder joint 5, theupper arm joints 6, the lower arm joint 7, thewrist joint 8, and the hand joint 9 a of theflange 9 are collectively illustrated as a movable part by one block to whichreference numerals reference numeral 10 is assigned. - The detecting
circuit 13 is operative to detect the current position and the current angular velocity of each of thejoint portions - Specifically, a
rotary encoder 17 is attached to, for example, the rotating shaft of each of themotors 10, and is electrically connected to the detectingcircuit 13. - The
rotary encoder 17 serves as both a position sensor and a speed sensor. Specifically, therotary encoder 17 is configured to output digital pulses that correspond to incremental angular motion (revolution) of the rotating shaft of each of themotors 10. The pulse signal consisting of the train of the digital pulses is given to the detectingcircuit 13. - The detecting
circuit 13 is operative to detect, based on the pulse signal sent from each of therotary encoders 17, the current position of the rotating shaft of each of themotors 10, and therefore, the current position of each of thejoint portions - In addition, the detecting
circuit 13 is operative to: - count the number of the pulses in the pulse signal input from each of the
rotary encoders 17 per unit of time; and - detect, based on the counted result, the current angular velocity of the rotating shaft of each of the
motors 10, and therefore, the current angular velocity of each of thejoint portions - The detecting
circuit 13 is also operative to give each of thedrive circuits 12 and theCPU 11 information indicative of the current position and current angular velocity of each of thejoint portions - each of the
drive circuits 12 is operative to: - compare a position command value and an angular velocity command value for motion of each of the
movable parts CPU 11, with the current position and current angular velocity of each of thejoint portions detection circuit 13, respectively; and - supply, to each of the corresponding
motors 10, a drive current depending on the deviation between the position command value for motion of each of thejoint portions joint portions motors 10. - This allows the predetermined center position of the
tip end 9 a of theflange 9 corresponding to one end of therobot body 1 to move along a trajectory passing through the command points corresponding to the position command values. This makes it possible for therobot body 1 to carry out various jobs. - In the robot motion program to be stored in the
RAM 15, parameters including a velocity coefficient and an acceleration/deceleration coefficient of each of themotors 10 have been previously recorded. - The velocity coefficient is defined as the proportion of the maximum velocity of the arm's motion to a maximum permissible velocity of each of the
motors 10. The acceleration/deceleration coefficient is also defined as the proportion of the acceleration/deceleration of the arm's motion to a maximum permissible acceleration/deceleration of each of themotors 10. - The maximum permissible velocity and the maximum permissible acceleration/deceleration have been determined in view of the performance of each of the
motors 10 and that of each of the rotation transmission systems for transferring rotation of at least one of themotors 10 to corresponding one of the joints on the conditions that the load torque of each of themotors 10 will not exceed a maximum permissible torque thereof. - The
CPU 11 is operative to apply a velocity pattern of the motion of the one end of therobot body 1 from its start position to its end position to a trapezoidal pattern using the parameters recorded in the motion program, thereby determining a trapezoidal velocity pattern of the motion of the one end of therobot body 1. - In addition, the
CPU 11 is operative to: - calculate an angular velocity and a position (location) of each joint of the
robot body 1 based on the determined trapezoidal velocity pattern every elapse of a predetermined period; and - give the calculated angular velocity and position to the
drive circuit 12 as the angular velocity command value and the position command value. - Specifically as illustrated by (a) of
FIG. 3 , the trapezoidal velocity pattern is composed of a first portion corresponding to an acceleration phase during a period T1, a second portion corresponding to a constant-velocity phase with a maximum velocity during a period T2, and a third portion corresponding to a deceleration phase T3 during a period T3. A pattern of a motion angle (position) corresponding to the trapezoidal velocity pattern illustrated by (a) ofFIG. 3 is illustrated by (b) ofFIG. 3 . - In the motion angle pattern illustrated by (b) of
FIG. 3 , the motion angle of a joint at a point “tn” in time is represented by θn, and the motion angle of the joint at a point “t(n+1)” in time after a lapse of Δt from the point “tn” in time is represented by “θ(n+1)”. - The angle variation after lapse of Δt corresponds to the angler velocity, represented by “V(n+1)”, of the joint at a point “t(n+1)” in time. The angular velocity V(n+1) is used as the angular velocity command value at the point “tn” in time. The angular velocity command value (the angular velocity V(n+1)) is fed to the
drive circuit 12. - In addition, the motion angle θ(n+1) of the joint at the point t(n+1) in time after a lapse of Δt from the point “tn” in time can be obtained by adding the product of the angular velocity V(n+1) at the point t(n+1) in time and Δt to the motion angle θ(n) of the joint at the point t(n) in time.
- Thus, during the interval of time between the point of motion start and the point of motion end, the angle of each joint every elapse of the sampling period Δt can be calculated in the following way. Each time one sampling period Δt elapses after the point of motion start, the angular velocity of each joint at a next sampling point (a point in time after lapse of the time interval Δt from the present point in time) is calculated in accordance with the velocity pattern. The calculated velocity is multiplied by the sampling period Δt. The previous and latest multiplication resultant values are added. The result of the addition indicates the angle of joint every elapse of the sampling period Δt. Information of the calculated angle of the joint is fed to the
drive circuit 12. - Note that how to calculate an angular velocity and a position (location) of each joint of the
robot body 1 has been include in, for example, U.S. Patent Publication No. U.S. Pat. No. 6,127,792. Because the U.S. patent is assigned to the same assignee as that of this application, disclosures of which are incorporated herein by reference. - The
teaching pendant 3 is designed to a handheld device composed of an input unit, a display unit, a memory unit, and a computing, which allow execution of basic functions, such as program start function, trajectory teaching function, machine lock functions, error message displaying functions, and the like. This handheld configuration of theteaching pendant 3 allows an operator to control therobot body 1 through thecontroller 2 while observing the motion of therobot body 1. - Specifically, in the embodiment, information indicative of a desired trajectory of the one end of the
robot body 1 is given to thecontroller 3 by teaching tasks of theteaching pendant 3. - The teaching tasks include a task of sequentially teaching the controller 2 a plurality of command points of the one end of the manipulator R; these command points pass through the desired trajectory, and include a starting point, an endpoint, and intermediate points therebetween.
- The teaching tasks also include a task of teaching a desired pose of the one end of the
robot body 1 at each of the command points. - The
controller 2 receives the taught command points and the desired pose of the one end of therobot body 1 at each of the command points, and stores them in theRAM 15. - In actually making the
robot body 1 move, thecontroller 2 is programmed to: - execute interpolation on the taught command points to determine a trajectory passing through the command points in the order from the starting point to the endpoint; and
- lubricously move the one end of the
robot body 1 along the determined trajectory. - Note that, in the embodiment, as illustrated in
FIG. 1 , a robot coordinate system (X, Y, Z) is established independently of the motion of the one end of therobot body 1. - For example, the robot coordinate system (X, Y, Z) is, for example, established such that the Z axis thereof coincides with the center axis of the base 4.
- In addition, in the embodiment, a fixed three-dimensional coordinate system is established dependently on the motion of the one end of
robot body 1, in other words, the hand mounted thereto. The three-dimensional coordinate system has the origin corresponding to the center position of thetip end 9 a of theflange 9, which will be referred to as “hand coordinate system (xH, yH, zH)”. - Specifically, the position of the one end of the
robot body 1 is represented by where the origin of the hand coordinate system (xH, yH, zH) (the center position of thetip end 9 a of the flange 9) is located on the robot coordinate system (X, Y, Z). - In addition, the pose of the one end of the
robot body 1 is defined by, on the robot coordinate system, orientations of unit vectors on predetermined two axes in the three axes of the hand coordinate system (xH, yH, zH). Thecontroller 2 is also operative to execute interpolation on the poses of the one end of therobot body 1 at the command points to determine a locus corresponding to the poses of the one end of therobot body 1 at the command points; and - lubricously move the one end of the
robot body 1 such that the pose of the one end of therobot body 1 lubricously varies along the determined locus. - In the embodiment, as methods of interpolation on the plurality of command points, a spline interpolation method using spline function is used. As an example of the spline interpolation method according to the embodiment will be described in reference with
FIG. 4 . - In
FIG. 4 , R0, R1, . . . , R(k−1), Rk, R(k+1), . . . , Rn−1, Rn respectively represent a (n+1) number of command points, the R0 represents the starting point, and the Rn represents the endpoint. Note that “n” is an integer equal to or more than 2, and “k” is an integer equal to or more than 1, and less than n. - In addition, curves G1, G2, . . . , G(k−1), Gk, G(k+1), . . . , Gn−1, Gn each of which links between a section formed by corresponding adjacent command points represent spline curve segments. The spline curve segments G1 to Gn are defined to interpolate corresponding sections by different polynomials, respectively. The spline interpolation method defines a spline curve by spline curve segment function corresponding to each of the spline curve segments.
- Specifically, each point on each of the spline curve segments can be defined as a point on the three-dimensional robot coordinate system (X, Y, Z) by the following cubic polynomials [1] to [3]:
X(t)=a 3 t 3 +a 2 t 2 +a 1 t+a [1]
Y(t)=b 3 t 3 +b 2 t 2 +b 1 t+b [2]
Z(t)=c 3 t 3 +c 2 t 2 +c 1 t+c [3] - where t is a parameter set to a range from 0 to 1.
- Combine the cubic polynomials [1] to [3] allows a position of each point on each spline curve segment to be therefore defined by the following cubic general polynomial (spline curve segment function) [4]:
{right arrow over (P)}(t) {right arrow over (A)}t 3 +{right arrow over (B)}t 2 +{right arrow over (C)}t+{right arrow over (D)} [4] - where {right arrow over (P)} represents a position on each spline curve segment, {right arrow over (A)}, {right arrow over (B)}, {right arrow over (C)}, {right arrow over (D)} represent vector coefficients, respectively.
- Solving the vector coefficients {right arrow over (A)}, {right arrow over (B)}, {right arrow over (C)}, {right arrow over (D)} of the spline curve segment Gk, the following equations [9] to [12] can be obtained.
- Specifically, because a position of a starting-point side command point of the k-th spline curve segment Gk can be assumed to “R(k−1)”, and that of the endpoint side command point thereof can be assumed to “R(k)”, position vectors of the both ends of the k-th spline curve segment Gk can be represented by {right arrow over (P)}(k−1) and {right arrow over (P)}k.
- Then, the position vectors {right arrow over (P)}(k−1) and {right arrow over (P)}(k) of the both ends of the spline curve segment Gk should meet the following equations:
{right arrow over (P)}(0)={right arrow over (A)}0={right arrow over (P)}(k−1) [5]
{right arrow over (P)}(1)={right arrow over (A)}+{right arrow over (B)}+{right arrow over (C)}+{right arrow over (D)}={right arrow over (P)}k [6] - where 0≦t≦1
- In addition, the tangent vectors at the position R(k−1) at a starting-point side command point and the position R(k) at the endpin side command point are given by {right arrow over (P)}′(t)=3{right arrow over (A)}t2+2
B t+{right arrow over (C)} that can be obtained by differentiating the equation [4] with respect to t. Assuming that the tangent vectors at the position R(k−1) at a starting-point side command point and the position R(k) at the endpoint side command point are represented by {right arrow over (T)}(k−1) and {right arrow over (T)}k, the following equations are established:
{right arrow over (P)}′(0)={right arrow over (A)}={right arrow over (T)}(k−1) [7]
{right arrow over (P)}′(1)=3{right arrow over (A)}+2B +{right arrow over (C)}={right arrow over (T)}k [8] - The above equations [5] to [8] allow the vector coefficients {right arrow over (A)}, {right arrow over (B)}, {right arrow over (C)}, {right arrow over (D)} of the spline curve to be represented by the following equations [9] to [12]:
{right arrow over (A)}=2{right arrow over (P)}(k−1)−2{right arrow over (P)}k+{right arrow over (T)}(k−1)+{right arrow over (T)}(k) [9]
{right arrow over (B)}=3{right arrow over (P)}k−3{right arrow over (P)}(k−1)−2{right arrow over (T)}(k−1)−{right arrow over (T)}(k) [10]
{right arrow over (C)}={right arrow over (T)}(k−1) [11]
{right arrow over (D)}={right arrow over (P)}(k−1) [12] - The equations [9] to [12] allow the equation [4] to be represented by the following general equation [13]:
{right arrow over (P)}(t)={2({right arrow over (P)}(k−1)t+{right arrow over (T)}( k−1)+{right arrow over (T)}k}·t 3+
{{3({right arrow over (P)}k−{right arrow over (P)}(k−1)t−2{right arrow over (T)}(k−1)−{right arrow over (T)}k}t 2+
{right arrow over (T)}(k−1)·t+{right arrow over (P)}( k−1) [13] - As described above, when one section is defined to one interval between adjacent command points, the spline curve segment in each section is represented by the general equation [13].
- Specifically, the spline curve segments are determined such that the tangent vectors {right arrow over (T)}(k−1) and {right arrow over (T)}k meet the following first to third conditions:
- the first condition is that the positions at one ends of adjacent spline curve segments coincide with each other; these one ends constitute a knot between the adjacent spline curve segments
- the second condition is that:
-
- the magnitude (length) of each of tangent vectors at both ends (position of a starting-point side command point and that of an endpoint side command point) of one spline curve segment is determined to be proportional to the length of a first straight line connecting the both ends of one spline curve segment,
- the tangent vectors at both ends of one spline curve segment are directed to divide in substantially half a first angle and a second angle, respectively; this first angle is formed by the first straight line and a second straight line connecting both ends of the previous spline curve segment, and this second angle is formed by the fist straight line and a third straight line connecting both ends of the next spline curve segment,
- the third condition is that the direction of a tangent vector at a position of a starting-point side command point of one spline curve segment is substantially the same as that of a tangent vector at a position of an endpoint side command point of the previous spline curve segment and as that of a tangent vector at a position of a starting-point side command point of the next spline curve segment
- Next, the first to third conditions will be described in detail by taking the second spline curve segment (k=2; a section between the starting-point side command point R1 and the endpoint side command point R2). Note that
FIG. 5 enlarges the range between the command point R3 and the command point R1 and displays it. - In
FIG. 5 , the straight line connecting between the both ends (the command points R0 and R1) of the first spline curve segment (k=1) is represented by L1, and the straight line connecting between the both ends (the command points R1 and R2) of the second spline curve segment (k=2) is represented by L2. Similarly, the straight line connecting between the both ends (the command points R2 and R3) of the second spline curve segment (k=2) is represented by L3. - The tangent vectors at both ends (the starting-pint side and endpoint side command points R0 and R1) of the first spline curve segment G1 are represented by a starting-point side tangent vector {right arrow over (T)}1 s and an endpoint side tangent vector {right arrow over (T)}1 e.
- Similarly, the tangent vectors at both ends (the starting-point side and endpoint side command points R1 and R2) of the second spline curve segment G2 are represented by a starting-point side tangent vector {right arrow over (T)}2 s and an endpoint side tangent vector {right arrow over (T)}2 e. In addition, the tangent vectors at both ends (the starting-point side and endpoint side command points R2 and R3) of the third spline curve segment G3 are represented by a starting-point side tangent vector {right arrow over (T)}3 s and an endpoint side tangent vector {right arrow over (T)}3 e.
- In the embodiment, the endpoint side tangent vector {right arrow over (T)}1 e of the first spline curve segment G1, the starting-point side tangent vector {right arrow over (T)}2 s of the second spline curve segment G2, and the endpoint side tangent vector {right arrow over (T)}2 e of the second spline curve segment G2 can be represented by the following equations (14) to (16). Similarly, the starting-point side tangent vector {right arrow over (T)}3 s of the third spline curve segment G3 and the endpoint side tangent vector {right arrow over (T)}3 e of the third spline curve segment G3 can be represented by the following equations (17) and (18):
- Note that, because there is no previous spline curve segment of the starting-point side tangent vector {right arrow over (T)}1 s of the first spline curve segment G1, the magnitude of the starting-point side tangent vector {right arrow over (T)}1 s is set to the product of the length of the first straight line L1 and a proportional constant “r”. The direction of the starting-point side tangent vector {right arrow over (T)}1 s is set to be the same as that of the first straight line L1.
- In the equations [14] to [18], the “r” is a proportional constant whose value is equal to that of the proportional constant “r” used by obtaining the magnitude of the starting-point side tangent vector {right arrow over (T)}1 s. In the embodiment, the value of the proportional constant “r” is set to “1”.
- In the equations [14] to [18], the symbols {right arrow over (P)}0, {right arrow over (P)}1, {right arrow over (P)}2, {right arrow over (P)}3 each with an arrow are position vectors at the command points R0, R1, R2, and R3, respectively.
- For this reason, in the equations [14] and [15], the first term inside the parenthesis represents a unit vector {right arrow over (L)} 1 whose direction is the same as that of the first straight line L1, and the second term thereinside represents a unit vector {right arrow over (L)} 2 whose direction is the same as that of the second straight line L2.
- Similarly, in the equations [16] and [17], the first term inside the parentheses represents a unit vector {right arrow over (L)} 2 whose direction is the same as that of the second straight line L2, and the second term thereinside represents a unit vector {right arrow over (L)} 3 whose direction is the same as that of the third straight line L3.
- Calculation of the equations inside the parentheses in the equations [14] and [15] allows the sum of the unit vector {right arrow over (L)} 1 and the unit vector {right arrow over (L)} 2 to be obtained. As illustrated in
FIG. 6 , the sum of the unit vector {right arrow over (L)} 1 and the unit vector {right arrow over (L)} 2 represents a unit vector {right arrow over (b)} 1 on the bisector of an angle α formed by an extension of the first straight line L1 and the second straight line L2. Multiplication of the unit vector {right arrow over (b)} 1 by an actual number, such as ½ (0.5) permits the bisector of the angle α formed by the extension of the first straight line L1 and the second straight line L2 to be calculated. - Similarly, calculation of the equations inside the parentheses in the equations [16] and [17] allows the sum of the unit vector {right arrow over (L)} 2 and the unit vector {right arrow over (L)} 3 to be obtained. As illustrated in
FIG. 7 , the sum of the unit vector {right arrow over (L)} 2 and the unit vector {right arrow over (L)} 3 represents a unit vector {right arrow over (b)}2 on the bisector of an angle β formed by an extension of the second straight line L2 and the third straight line L3 to be calculated. Multiplication of the unit vector {right arrow over (b)} 2 by an actual number, such as ½ (0.5) permits the bisector of the angle β formed by the extension of the second straight line L2 and the third straight line L3 to be calculated. - As set forth above, calculations using the equations [14] to [18] allow the starting-point side tangent vector and the endpoint side tangent vector for each of the spline curve segments to be obtained.
- Thereafter, as set forth above, the four spline parameters {right arrow over (A)}, {right arrow over (B)}, {right arrow over (C)}, {right arrow over (D)} of each of the spline curve segments are obtained using the starting-point side tangent vector and the endpoint side tangent vector of each of the spline curve segments. Thus, the spline curve segment function (cubic general polynomial) having the following characteristics can be obtained:
- the first characteristic is that the direction of the starting-point side tangent vector of each of the spline curve segments is substantially the same as that of the endpoint side tangent vector of the previous spline curve segment
- the second characteristic is that the direction of the endpoint side tangent vector of each of the spline curve segments is substantially the same as that of the starting-point side tangent vector of the next spline curve segment
- This allows the spline curve (spline function) lubricously continuing at each of the command points (knots) to be obtained.
- Next, operations of the
controller 2 for causing therobot body 1 to carry out various jobs will be described hereinafter. - Before causing the robot R to carry out various tasks, an operator uses the
teaching pendant 3 to actually move therobot body 1 under control of thecontroller 2, thereby teaching thecontroller 2 the command points of the one end (tip end 9 a of the flange 9) of therobot body 1 and a desired pose of the one end of therobot body 1 at each of the command points. The command points are determined for a desired trajectory and include a starting point, an endpoint, and intermediate points. The command points taught by theteaching pendant 3 are stored in theRAM 15 by theCPU 11. - Note that the descriptions associated with the control of the pose at each command point will be omitted to simplify the descriptions of the operations of the
controller 2. - When a start command is input from the
teaching pendant 3 to thecontroller 2 for example, theCPU 11 of thecontroller 2 reads out the command points from theRAM 15 in step S1, and determines tangent vectors at the starting point and those at the endpoint in step S2. - In this determination in step S2, the tangent vector at the starting point is set to have the direction similar to that of a straight line connecting between the starting point and the next command point, and have the length proportional to that of the straight line. Similarly, the tangent vector at the endpoint is set to have the direction similar to that of a straight line connecting between the endpoint and the previous command point, and have the length proportional to that of the straight line. Note that the direction and length of the tangent vectors at each of the starting point and endpoint is not limited to those set forth above. Specifically, the direction and length of the tangent vectors at each of the starting point and endpoint can be determined with consideration given to the directions and lengths of the remaining tangent vectors. According to the circumstances, the length of the tangent vectors at each of the starting point and endpoint can be set to zero.
- Next, the
CPU 11 of thecontroller 2 divides the range between the starting point and the endpoint at the intermediate points into a plurality of sections (segments), and calculates the starting-point side tangent vector and the endpoint side tangent vector for each of the sections in accordance with the equations [14] to [18] in step S3. - Subsequently, the
CPU 11 obtains the vector coefficients {right arrow over (A)}, {right arrow over (B)}, {right arrow over (C)}, {right arrow over (D)} of the cubic general polynomial (spline curve function; see the equation [4]) defining a spline curve segment of each of the sections in accordance with the equations [9] to [12] in step S4. - The cubic general polynomial (spline curve function) and the obtained vector coefficients {right arrow over (A)}, {right arrow over (B)}, {right arrow over (C)}, {right arrow over (D)} link provide the spline curve lubricously linking all of the command points from its starting point to its endpoint.
- Thereafter, the
CPU 11 differentiates the equation [13] with reference to “t” (0≦t≦1) to obtain an equation, and integrates the obtained equation from 0 to 1, thereby obtaining the total distance of the spline curve from the starting point to the endpoint in step S5. - Because the obtained total distance of the spline curve means the travel distance of the one end of the
robot body 1 from the starting point to the endpoint, theCPU 11 creates the trapezoidal velocity pattern illustrated by (a) ofFIG. 3 in step S6. - As set forth above, the trapezoidal velocity pattern is defined such that the locus of the velocity change of the one end of the
robot body 1 has substantially a trapezoidal shape. Specifically, the trapezoidal velocity pattern is composed of: - a first portion corresponding to an acceleration phase during a period T1;
- a second portion corresponding to a constant-velocity phase with a maximum velocity during a period T2; and
- a third portion corresponding to a deceleration phase T3 during a period T3.
- Thereafter, the
CPU 11 calculates the moving distance of the one end of therobot body 1 within every constant sampling period based on the trapezoidal velocity pattern in step S7. In addition, in step S7, theCPU 11 adds the moving distance within a current sampling period to that within the previous sampling period to obtain the end position of the movement of the one end of therobot body 1 on the spline curve within the current sampling period. Moreover, in step S7, theCPU 11 calculates the pose of the one end of therobot body 1. - Next, the
CPU 11 calculates the angular velocity and the location of each joint of therobot body 1 required to move the one end of therobot arm 1 from its motion start position to its the end position of the movement thereof within the corresponding sampling period in step S8. Subsequently theCPU 11 outputs the calculated angular velocity and the location of each joint of therobot 1 as the angular velocity command value and the position command value to thedrive circuit 12 in step S9. - Next, the
CPU 11 determines whether the end position of the one end of therobot body 1 reaches the endpoint entered by the operator as the command point. - If it is determined that the end position of the one end of the
robot body 1 does not reach the endpoint entered by the operator as the command point (the determination in step S10 is NO), theCPU 11 returns to step S7. Then, theCPU 11 repeatedly executes the tasks of steps S7 to S10 until it is determined that the end position of the one end of therobot body 1 reaches the endpoint entered. - Thus, if it is determined that the end position of the one end of the
robot body 1 reaches the endpoint entered by the operator as the command point (the determination in step S10 is YES), theCPU 11 determines that the one end of therobot body 1 has completely reached to the endpoint. - As described above, according to the embodiment, in order to obtain a lubricous spline curve (trajectory) without loop portions, the spline curve segments are determined such that the tangent vectors of both ends of each spline curve segment meet conditions associated with their directions independently of the following conditions:
- the tangent vectors at one ends of adjacent spline curve segments coincide with each other
- the rates of tangent vectors at one ends of adjacent spline curve segments coincide with each other
- That is, the inventor of the present invention has found that appearance of loop portions is probably attributable to the conditions set forth above.
- Thus, in the embodiment of the present invention, adoption of new conditions associated with their directions independently of the conditions associated with the coincidences of the adjacent spline curve segments themselves and of their rates allows obtaining a lubricous spline curve (trajectory) without loop portions.
- Particularly, according to the embodiment, the
controller 2 is configured to determine the tangent vector at both ends (command points) of a spline curve segment of each section such that: - the magnitude of each of the tangent vectors at both ends of a spline curve segment is proportional to the length of a first straight line connecting the both ends of one spline curve segment;
- the tangent vector at one end of one spline curve segment is directed to divide in half a first angle formed by the first straight line and an extension of a second straight line connecting both ends of the previous spline curve segment; and
- the tangent vector at the other end of one spline curve segment is directed to divide in half a second angle formed by an extension of the first straight line and a third straight line connecting both ends of the next spline curve segment.
- This can prevent loop portions from appearing in the created spline curve (trajectory) even if the command points are different from each other in length.
- This is because:
- (1) the starting-point side tangent vector of one starting-side end of each spline curve segment is so determined as to be directed more closely toward the endpoint-side end of each spline cure segment
- (2) since the magnitudes of the starting-point side tangent vector and the endpoint-side tangent vector of each spline curve segment are identical to each other and proportional to the magnitude of a straight line connecting both ends of each spline curve segment, when an angle formed by the starting-point side tangent vector of each spline curve segment and an extension of a straight line connecting both ends of the previous spline curve segment is identical to that formed by the starting-point side tangent vector and a straight line connecting both ends of each spline curve segment, adjacent spline curve segments are similar to each other.
- It is possible to mathematically prove that the embodiment of the present invention allows obtaining a spline curve without loop portions.
- In the embodiment, the tangent vectors at both ends (command points) of a spline curve segment of each section are determined such that:
- the tangent vector at one end of one spline curve segment is directed to divide in half a first angle; this first angle is formed by the first straight line and an extension of a second straight line connecting both ends of the previous spline curve segment; and
- the tangent vector at the other end of one spline curve segment is directed to divide in half a second angle, this second angle is formed by an extension of the first straight line and a third straight line connecting both ends of the next spline curve segment.
- However, the present invention is not limited to the structure.
- Specifically, the tangent vectors at both ends (command points) of a spline curve segment of each section can be determined such that:
- the tangent vector at one end of one spline curve segment is directed to divide, by a predetermined ratio, a first angle; this first angle is formed by the first straight line and an extension of a second straight line connecting both ends of the previous spline curve segment; and
- the tangent vector at the other end of one spline curve segment is directed to divide, by a predetermined ratio, a second angle; this second angle is formed by an extension of the first straight line and a third straight line connecting both ends of the next spline curve segment.
- In the embodiment, the proportional constant “r” is not limited to “1”. It is possible to prevent a spline curve from containing loop portions provided that the proportional constant “r” is within a predetermined range.
- The present invention can be applied to various types of robots without limiting such a vertical articulated robot.
- In addition, those skilled in the art will appreciate that the present invention is capable of being distributed as program products, for example, the programs stored in the
RAM 15 in a variety of forms. It is also important to note that the present invention applies equally regardless of the particular type of signal bearing media used to actually carry out the distribution. Examples of suitable signal bearing media include recordable type media such as CD-ROMs and DVD-ROMs, and transmission type media such as digital and analog communications links. - While there has been described what is at present considered to be the embodiments and their modifications of the present invention, it will be understood that various modifications which are not described yet may be made therein, and it is intended to cover in the appended claims all such modifications as fall within the true spirit and scope of the invention.
Claims (6)
1. A controller for determining a spline curve as a trajectory of a predetermined movable portion of a robot body, the controller comprising:
an interpolating unit configured to sequentially interpolate spline curve segments respectively in sections corresponding to intervals between command points;
a tangent vector determining unit configured to determine tangent vectors at one and the other end of one spline curve segment of each of the sections such that:
a length of each of the tangent vectors is proportional to that of a first straight line connecting one end and the other end of the one spline curve segment; and
the tangent vectors at one end and the other end of the one spline curve segment are directed to divide, by a predetermined ratio, a first angle and a second angle, respectively, the first angle being formed by the first straight line and an extension of a second straight line connecting one and the other ends of a previous spline curve segment, the second angle being formed by the fist straight line and an extension of a third straight line connecting one and the other ends of a next spline curve segment; and
a linking unit configured to link the spline curve segments such that:
a direction of one of the tangent vectors at the one end of the one spline curve segment is substantially the same as that of one of the tangent vectors at the same end of the previous spline curve segment; and
a direction of the other of the tangent vectors at the other end of the one spline curve segment is substantially the same as that of one of the tangent vectors at the same end of the next spline curve segment.
2. A controller for sequentially interpolating spline curve segments according to claim 1 , wherein the tangent vectors at one end and the other end of the one spline curve segment are directed to divide in half the first angle and the second angle, respectively.
3. A program product embedded in a memory of a controller for determining a spline curve as a trajectory of a predetermined movable portion of a robot body, the program product comprising:
first means for instructing a controller to sequentially interpolate spline curve segments respectively in sections corresponding to intervals between command points;
second means for instructing a controller to determine tangent vectors at one and the other end of one spline curve segment of each of the sections such that:
a length of each of the tangent vectors is proportional to that of a first straight line connecting one end and the other end of the one spline curve segment; and
the tangent vectors at one end and the other end of the one spline curve segment are directed to divide, by a predetermined ratio, a first angle and a second angle, respectively, the first angle being formed by the first straight line and an extension of a second straight line connecting one and the other ends of a previous spline curve segment, the second angle being formed by the fist straight line and an extension of a third straight line connecting one and the other ends of a next spline curve segment; and
third means for causing a controller to link the spline curve segments such that:
a direction of one of the tangent vectors at the one end of the one spline curve segment is substantially the same as that of one of the tangent vectors at the same end of the previous spline curve segment; and
a direction of the other of the tangent vectors at the other end of the one spline curve segment is substantially the same as that of one of the tangent vectors at the same end of the next spline curve segment.
4. A program product according to claim 3 , wherein the tangent vectors at one end and the other end of the one spline curve segment are directed to divide in half the first angle and the second angle, respectively.
5. A method of determining a spline curve as a trajectory of a predetermined movable portion of a robot body, the method comprising:
sequentially interpolate spline curve segments respectively in sections corresponding to intervals between command points;
determining tangent vectors at one and the other end of one spline curve segment of each of the sections such that:
a length of each of the tangent vectors is proportional to that of a first straight line connecting one end and the other end of the one spline curve segment; and
the tangent vectors at one end and the other end of the one spline curve segment are directed to divide, by a predetermined ratio, a first angle and a second angle, respectively, the first angle being formed by the first straight line and an extension of a second straight line connecting one and the other ends of a previous spline curve segment, the second angle being formed by the fist straight line and an extension of a third straight line connecting one and the other ends of a next spline curve segment; and
linking the spline curve segments such that:
a direction of one of the tangent vectors at the one end of the one spline curve segment is substantially the same as that of one of the tangent vectors at the same end of the previous spline curve segment; and
a direction of the other of the tangent vectors at the other end of the one spline curve segment is substantially the same as that of one of the tangent vectors at the same end of the next spline curve segment.
6. A method according to claim 5 , wherein the tangent vectors at one end and the other end of the one spline curve segment are directed to divide in half the first angle and the second angle, respectively.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005228089A JP4736607B2 (en) | 2005-08-05 | 2005-08-05 | Robot controller |
JP2005-228089 | 2005-08-05 |
Publications (1)
Publication Number | Publication Date |
---|---|
US20070030271A1 true US20070030271A1 (en) | 2007-02-08 |
Family
ID=37717218
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US11/499,813 Abandoned US20070030271A1 (en) | 2005-08-05 | 2006-08-07 | Robot controller and robot control method using spline interpolation |
Country Status (3)
Country | Link |
---|---|
US (1) | US20070030271A1 (en) |
JP (1) | JP4736607B2 (en) |
DE (1) | DE102006036601A1 (en) |
Cited By (26)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2144127A1 (en) * | 2008-07-08 | 2010-01-13 | Siemens Aktiengesellschaft | Method for synchronising a collector of a handling device, application of the method, data storage medium, control device, handling device and composite of a handling device and control device |
EP2255931A2 (en) | 2009-05-29 | 2010-12-01 | KUKA Roboter GmbH | Method and device for controlling a manipulator |
CN103317507A (en) * | 2013-06-07 | 2013-09-25 | 浙江工业大学 | Chinese teaching method of manipulator motion controller |
US20140142754A1 (en) * | 2011-07-27 | 2014-05-22 | Abb Technology Ag | System for commanding a robot |
CN103907068A (en) * | 2011-09-02 | 2014-07-02 | 布鲁克斯自动化公司 | Time-optimal trajectories for robotic transfer devices |
CN105171743A (en) * | 2015-07-29 | 2015-12-23 | 浙江理工大学 | Movement track planning method for tail end of stacking manipulator |
CN107717985A (en) * | 2017-09-22 | 2018-02-23 | 深圳星河智能科技有限公司 | A kind of space multi straight smooth motion control method applied to six axis robot arm |
CN107735226A (en) * | 2015-06-25 | 2018-02-23 | 库卡罗伯特有限公司 | Default track is crossed using robot |
CN107728619A (en) * | 2017-10-16 | 2018-02-23 | 邦鼓思电子科技(上海)有限公司 | A kind of planing method for robot teaching path |
US9925662B1 (en) * | 2015-06-28 | 2018-03-27 | X Development Llc | Generating a trained robot path based on physical manipulation of the robot and based on training user interface input(s) associated with the physical manipulation |
CN109093624A (en) * | 2018-09-11 | 2018-12-28 | 福建(泉州)哈工大工程技术研究院 | A kind of Continuous interpolation program project of motion control of mechanical arm complex curve |
CN109176504A (en) * | 2018-08-09 | 2019-01-11 | 深圳蓝胖子机器人有限公司 | Robot Path method and device for planning |
US10207404B2 (en) * | 2017-02-09 | 2019-02-19 | X Development Llc | Generating a robot control policy from demonstrations collected via kinesthetic teaching of a robot |
CN109434840A (en) * | 2018-12-25 | 2019-03-08 | 珞石(山东)智能科技有限公司 | A kind of robot free path generation method based on spline curve |
CN109500813A (en) * | 2018-11-29 | 2019-03-22 | 亿嘉和科技股份有限公司 | A kind of infrared fast inspection method of power station crusing robot |
CN109623820A (en) * | 2018-12-25 | 2019-04-16 | 哈工大机器人(合肥)国际创新研究院 | A kind of robot space tracking transition method |
KR20190112643A (en) * | 2018-03-26 | 2019-10-07 | 니혼 덴산 가부시키가이샤 | Robot control apparatus, robot control method, and program |
CN111267093A (en) * | 2019-11-05 | 2020-06-12 | 广州霞光技研有限公司 | Method for realizing continuous track control of SCARA robot |
US20200189099A1 (en) * | 2017-09-15 | 2020-06-18 | Google Llc | Improvements related to generating a robot control policy from demonstrations collected via kinesthetic teaching of a robot |
CN111347419A (en) * | 2018-12-24 | 2020-06-30 | 深圳市优必选科技有限公司 | Robot motion control method and device and terminal equipment |
US20200387150A1 (en) * | 2016-10-12 | 2020-12-10 | Sisu Devices Llc | Robotic programming and motion control |
CN112276911A (en) * | 2020-11-10 | 2021-01-29 | 安徽省六安恒源机械有限公司 | Grab arm type trash cleaning robot motion control system |
CN113325807A (en) * | 2021-08-02 | 2021-08-31 | 杭州爱科科技股份有限公司 | Method, device, equipment and medium for controlling cutting movement speed |
US11203117B2 (en) * | 2017-10-20 | 2021-12-21 | Keylex Corporation | Teaching data generation system for vertical multi-joint robot |
US11254003B1 (en) * | 2019-04-18 | 2022-02-22 | Intrinsic Innovation Llc | Enhanced robot path planning |
US11458626B2 (en) * | 2018-02-05 | 2022-10-04 | Canon Kabushiki Kaisha | Trajectory generating method, and trajectory generating apparatus |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100834023B1 (en) | 2007-06-19 | 2008-05-30 | 주식회사 이오테크닉스 | Method of manufacturing curve-shape using laser |
JP2009237710A (en) * | 2008-03-26 | 2009-10-15 | Murata Mach Ltd | Motion control device for conveyance device |
DE102008029657A1 (en) | 2008-06-24 | 2009-12-31 | Technische Universität Carolo-Wilhelmina Zu Braunschweig | Position-controlled mechanism and method for controlling mechanisms movable in multiple degrees of freedom of movement |
JP5565302B2 (en) * | 2010-12-27 | 2014-08-06 | 株式会社デンソーウェーブ | Robot control apparatus and robot posture interpolation method |
CN102794767B (en) * | 2012-08-31 | 2014-09-24 | 江南大学 | B spline track planning method of robot joint space guided by vision |
JP5845228B2 (en) | 2013-10-23 | 2016-01-20 | ファナック株式会社 | Tool path curving device |
JP5790840B2 (en) * | 2014-06-10 | 2015-10-07 | 株式会社デンソーウェーブ | Robot control apparatus and robot posture interpolation method |
CN106041941B (en) * | 2016-06-20 | 2018-04-06 | 广州视源电子科技股份有限公司 | The method for planning track and device of a kind of mechanical arm |
EP3650181B1 (en) * | 2017-07-05 | 2022-06-15 | Omron Corporation | Route output method, route output system and route output program |
JP7047525B2 (en) * | 2018-03-26 | 2022-04-05 | 日本電産株式会社 | Robot control device, robot control method, program |
CN111687838B (en) * | 2020-05-29 | 2023-10-13 | 深圳科瑞技术股份有限公司 | Online compensation method, system and storage medium for track following error of manipulator |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4423481A (en) * | 1981-05-26 | 1983-12-27 | Rca Corporation | Numerically controlled method of machining cams and other parts |
US5723961A (en) * | 1995-07-17 | 1998-03-03 | Mitsubishi Denki Kabushiki Kaisha | Numerical control apparatus having spline interpolating function |
US6782306B2 (en) * | 1999-12-16 | 2004-08-24 | Siemens Energy & Automation | Motion control system and method utilizing spline interpolation |
USRE39907E1 (en) * | 1998-09-08 | 2007-11-06 | Hurco Companies, Inc. | Tolerance based motion control system |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH01255010A (en) * | 1988-04-05 | 1989-10-11 | Mitsubishi Electric Corp | Curve interpolating device |
JPH10228306A (en) * | 1997-02-17 | 1998-08-25 | Fanuc Ltd | Method for interpolating free curve in numerical controller |
JP3366213B2 (en) * | 1997-02-26 | 2003-01-14 | 三菱電機株式会社 | Curve minute line differentiation method and numerical controller having spline interpolation function |
-
2005
- 2005-08-05 JP JP2005228089A patent/JP4736607B2/en not_active Expired - Fee Related
-
2006
- 2006-08-04 DE DE102006036601A patent/DE102006036601A1/en not_active Ceased
- 2006-08-07 US US11/499,813 patent/US20070030271A1/en not_active Abandoned
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4423481A (en) * | 1981-05-26 | 1983-12-27 | Rca Corporation | Numerically controlled method of machining cams and other parts |
US5723961A (en) * | 1995-07-17 | 1998-03-03 | Mitsubishi Denki Kabushiki Kaisha | Numerical control apparatus having spline interpolating function |
USRE39907E1 (en) * | 1998-09-08 | 2007-11-06 | Hurco Companies, Inc. | Tolerance based motion control system |
US6782306B2 (en) * | 1999-12-16 | 2004-08-24 | Siemens Energy & Automation | Motion control system and method utilizing spline interpolation |
Cited By (39)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8386069B2 (en) | 2008-07-08 | 2013-02-26 | Siemens Aktiengesellschaft | Method of synchronizing a pickup of a handling device, a computer readable medium and a control device |
EP2144127A1 (en) * | 2008-07-08 | 2010-01-13 | Siemens Aktiengesellschaft | Method for synchronising a collector of a handling device, application of the method, data storage medium, control device, handling device and composite of a handling device and control device |
US8774965B2 (en) * | 2009-05-29 | 2014-07-08 | Kuka Laboratories Gmbh | Method and device for controlling a manipulator |
DE102009023307A1 (en) | 2009-05-29 | 2010-12-02 | Kuka Roboter Gmbh | Method and device for controlling a manipulator |
US20100305753A1 (en) * | 2009-05-29 | 2010-12-02 | Kuka Roboter Gmbh | Method And Device For Controlling A Manipulator |
CN101898358A (en) * | 2009-05-29 | 2010-12-01 | 库卡机器人有限公司 | Be used to control the method and the device of manipulator |
EP2255931A2 (en) | 2009-05-29 | 2010-12-01 | KUKA Roboter GmbH | Method and device for controlling a manipulator |
US20140142754A1 (en) * | 2011-07-27 | 2014-05-22 | Abb Technology Ag | System for commanding a robot |
US9254567B2 (en) * | 2011-07-27 | 2016-02-09 | Abb Technology Ag | System for commanding a robot |
CN103907068A (en) * | 2011-09-02 | 2014-07-02 | 布鲁克斯自动化公司 | Time-optimal trajectories for robotic transfer devices |
CN103317507A (en) * | 2013-06-07 | 2013-09-25 | 浙江工业大学 | Chinese teaching method of manipulator motion controller |
CN107735226A (en) * | 2015-06-25 | 2018-02-23 | 库卡罗伯特有限公司 | Default track is crossed using robot |
US9925662B1 (en) * | 2015-06-28 | 2018-03-27 | X Development Llc | Generating a trained robot path based on physical manipulation of the robot and based on training user interface input(s) associated with the physical manipulation |
CN105171743A (en) * | 2015-07-29 | 2015-12-23 | 浙江理工大学 | Movement track planning method for tail end of stacking manipulator |
US20200387150A1 (en) * | 2016-10-12 | 2020-12-10 | Sisu Devices Llc | Robotic programming and motion control |
US10207404B2 (en) * | 2017-02-09 | 2019-02-19 | X Development Llc | Generating a robot control policy from demonstrations collected via kinesthetic teaching of a robot |
US11872699B2 (en) | 2017-02-09 | 2024-01-16 | Google Llc | Generating a robot control policy from demonstrations collected via kinesthetic teaching of a robot |
US11554485B2 (en) * | 2017-02-09 | 2023-01-17 | X Development Llc | Generating a robot control policy from demonstrations collected via kinesthetic teaching of a robot |
US10391632B2 (en) * | 2017-02-09 | 2019-08-27 | X Development Llc | Generating a robot control policy from demonstrations collected via kinesthetic teaching of a robot |
US20200189099A1 (en) * | 2017-09-15 | 2020-06-18 | Google Llc | Improvements related to generating a robot control policy from demonstrations collected via kinesthetic teaching of a robot |
US11565412B2 (en) * | 2017-09-15 | 2023-01-31 | Google Llc | Generating a robot control policy from demonstrations collected via kinesthetic teaching of a robot |
CN107717985A (en) * | 2017-09-22 | 2018-02-23 | 深圳星河智能科技有限公司 | A kind of space multi straight smooth motion control method applied to six axis robot arm |
CN107728619A (en) * | 2017-10-16 | 2018-02-23 | 邦鼓思电子科技(上海)有限公司 | A kind of planing method for robot teaching path |
US11203117B2 (en) * | 2017-10-20 | 2021-12-21 | Keylex Corporation | Teaching data generation system for vertical multi-joint robot |
US11458626B2 (en) * | 2018-02-05 | 2022-10-04 | Canon Kabushiki Kaisha | Trajectory generating method, and trajectory generating apparatus |
KR102323069B1 (en) * | 2018-03-26 | 2021-11-08 | 니혼 덴산 가부시키가이샤 | Robot control apparatus, robot control method, and program |
KR20190112643A (en) * | 2018-03-26 | 2019-10-07 | 니혼 덴산 가부시키가이샤 | Robot control apparatus, robot control method, and program |
CN110355752A (en) * | 2018-03-26 | 2019-10-22 | 日本电产株式会社 | Robot controller, robot control method and storage medium |
US11185981B2 (en) * | 2018-03-26 | 2021-11-30 | Nidec Corporation | Robot control apparatus, robot control method, and program |
CN109176504A (en) * | 2018-08-09 | 2019-01-11 | 深圳蓝胖子机器人有限公司 | Robot Path method and device for planning |
CN109093624A (en) * | 2018-09-11 | 2018-12-28 | 福建(泉州)哈工大工程技术研究院 | A kind of Continuous interpolation program project of motion control of mechanical arm complex curve |
CN109500813A (en) * | 2018-11-29 | 2019-03-22 | 亿嘉和科技股份有限公司 | A kind of infrared fast inspection method of power station crusing robot |
CN111347419A (en) * | 2018-12-24 | 2020-06-30 | 深圳市优必选科技有限公司 | Robot motion control method and device and terminal equipment |
CN109623820A (en) * | 2018-12-25 | 2019-04-16 | 哈工大机器人(合肥)国际创新研究院 | A kind of robot space tracking transition method |
CN109434840A (en) * | 2018-12-25 | 2019-03-08 | 珞石(山东)智能科技有限公司 | A kind of robot free path generation method based on spline curve |
US11254003B1 (en) * | 2019-04-18 | 2022-02-22 | Intrinsic Innovation Llc | Enhanced robot path planning |
CN111267093A (en) * | 2019-11-05 | 2020-06-12 | 广州霞光技研有限公司 | Method for realizing continuous track control of SCARA robot |
CN112276911A (en) * | 2020-11-10 | 2021-01-29 | 安徽省六安恒源机械有限公司 | Grab arm type trash cleaning robot motion control system |
CN113325807A (en) * | 2021-08-02 | 2021-08-31 | 杭州爱科科技股份有限公司 | Method, device, equipment and medium for controlling cutting movement speed |
Also Published As
Publication number | Publication date |
---|---|
JP4736607B2 (en) | 2011-07-27 |
JP2007042021A (en) | 2007-02-15 |
DE102006036601A1 (en) | 2007-03-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20070030271A1 (en) | Robot controller and robot control method using spline interpolation | |
EP0086950B1 (en) | Method of controlling an industrial robot | |
JP6659096B2 (en) | Robot device control method and robot device | |
US6826450B2 (en) | Robot controller | |
JP3207728B2 (en) | Control method of redundant manipulator | |
JP5743495B2 (en) | Robot controller | |
JP6700669B2 (en) | Control method, robot device, program, recording medium, and article manufacturing method | |
US6127792A (en) | Control apparatus for robot | |
JPH079606B2 (en) | Robot controller | |
WO2006022201A1 (en) | Robot evaluation system and evaluation method | |
WO1989008878A1 (en) | Method of controlling tool attitude of a robot | |
Süberkrüb et al. | Feel the tension: Manipulation of deformable linear objects in environments with fixtures using force information | |
JP6697544B2 (en) | Optimizer and vertical articulated robot equipped with the same | |
JP5708091B2 (en) | Robot control method and robot control apparatus | |
JP6862604B2 (en) | Inertia parameter identification system and inertial parameter identification method for vertical articulated robots, and control device and control method for vertical articulated robots | |
JP5803179B2 (en) | Robot control method and robot control apparatus | |
US20230035296A1 (en) | Method of suppressing vibrations of a robot arm with external objects | |
JP3748454B2 (en) | Industrial robot controller | |
JPS62199383A (en) | Control system of robot | |
JPH06312392A (en) | Control device for multi-joint robot | |
JP3218553B2 (en) | Robot system control method and device | |
JPH11198072A (en) | Minimum time speed controller for robot | |
KR20040034167A (en) | The method of control- ling straight-line movement of vertical multi-joint six-axis manipulator | |
JP3588956B2 (en) | Robot controller | |
JP5343725B2 (en) | Robot controller |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: DENSO WAVE INCORPORATED, JAPAN Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:KAMIYA, KOJI;REEL/FRAME:018166/0641 Effective date: 20060801 |
|
STCB | Information on status: application discontinuation |
Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION |