Electronic device and method for controlling motions of mechanical arm using the electronic device
Granted 6 Aug 2013 · 1 office action
Current assignee: Cloud Network Technology Singapore Pte. Ltd. · originally Foxconn Technology Group
Law firm: Law firm · Log in to unlock
Attorney: Attorney · Log in to unlock
Inventors: Shen-Chun Li, Shou-Kuo Hsu, Hsien-Chuan Liang · Examiner: Mohammad Ali · AU 2127 · TC 2100
Life of the application
9 dated eventsAbstract
A method controls motions of a mechanical arm using an electronic device. The mechanical arm includes an x-axis, a y-axis, and a z-axis. The method sets a step angle of a motor installed in line with the z-axis, and predefines angles of rotation as reference points regarding orientation of the rotating arm when rotated. The method further calculates a rotation angle of the rotating arm in a polar coordinate system, calculates coordinate motions of the x-axis and the y-axis if a free end of the rotating arm orientates to one of the reference points, and calculates an offset correction value of a pole origin position of the polar coordinate system. After correcting each of the coordinate motions and the pole origin position, the method controls the mechanical arm to move, and drives the rotating arm to reach another reference point according to a multiple of the step angle.
Description
5 parts›BACKGROUND
1. Technical Field
The disclosure relates to motion control devices and methods, and more particularly to an electronic device for controlling motions of a mechanical arm and method using the electronic device.
2. Description of Related Art
Mechanical arms are frequently used in an industrial setting and are controlled by computer numerical control machine. The mechanical arm may include three principal axes of control: an x-axis, a y-axis, and a z-axis. The three principal axes are linear (i.e. they move in a straight line rather than rotate) and are at right angles to each other. Because of the linear principal axes, the mechanical arm has a limited range of motion for controlling an end-effecter attached to the arm. Generally the end-effecter cannot rotate a large range, such as 360 degrees or more than 360 degrees. This limitation causes, for example, inaccuracy in controlling the end-effecter, such as a probe, to measure a workpiece. Therefore, there is room for improvement within the art.
›BRIEF DESCRIPTION OF THE DRAWINGS
FIG. 1 is a block diagram of an exemplary embodiment of an electronic device comprising a motion control unit.
FIG. 2 is a block diagram of function modules of the motion control unit of FIG. 1 .
FIG. 3 is a flowchart illustrating an exemplary embodiment of a method of controlling motions of a mechanical arm that is connected to the electronic device.
FIG. 4 is a schematic diagram illustrating one example for rotating an end effecter in a polar coordinate system.
FIG. 5 is a schematic diagram illustrating one example for calculating an offset correction value.
›DETAILED DESCRIPTION · 1 of 3
In general, the word “module,” as used herein, refers to logic embodied in hardware or firmware, or to a collection of software instructions, written in a program language. In an exemplary embodiment, the program language may be Java or C. One or more software instructions in the modules may be embedded in firmware, such as an EPROM. The modules described herein may be implemented as either software and/or hardware modules and may be stored in any type of non-transitory computer-readable medium or other non-transitory storage device.
FIG. 1 is a block diagram of an exemplary embodiment of an electronic device 1 . In the exemplary embodiment, the electronic device 1 can be a host computer, and includes a motion control unit 10 . The motion control unit 10 is programmed to control motions of a mechanical arm 3 via a motor control card 2 . The mechanical arm 3 includes three principal axes of control: an x-axis, a y-axis, and a z-axis. The three principal axes are linear (i.e. they move in a straight line rather than rotate) and are at right angles to each other. In an exemplary embodiment, arm movement along each of the three principal axes is by its own dedicated motor (not illustrated in FIG. 1 ). The motion control unit 10 controls motions of the three principal axes by controlling the motors connected to each of the three principal axes.
In an exemplary embodiment, a rotating arm 5 has a fixed end EE 1 and a free end EE 2 , the fixed end EE 1 connects to one of the three principal axes (such as the z-axis) via a connector 4 . In one example, as illustrated in FIG. 1 , the free end EE 2 is attached to an end effecter 9 , such as a probe.
The computer 1 is further connected to a motor controller 6 . In an exemplary embodiment, the motor controller 6 may be used for converting pulse signals from the computer 1 into binary signals, and controlling a motor driver 7 to drive a motor 8 according to the binary signals. The motor 8 is installed in line with the z-axis, but is not one of the previously mentioned motors used to control the three principal axes. In the exemplary embodiment, an axis of the motor 8 is connected to the rotating arm 5 . The motor 8 drives the rotating arm 5 to manipulate the end effecter 9 , to execute a predetermined action, such as taking a measurement. A graph of the path of the rotating arm 5 moving through 360 degrees of rotation, is illustrated in FIG. 4 . As can be seen by the path, the axis of rotation allows for manipulating the end effecter 9 , such as a probe connected to the end effecter 9 , to measure predetermined points of a workpiece with a single engagement regardless of the number of turns needed.
In an exemplary embodiment, the motor 8 can be a servo motor or a step motor with the corresponding motor driver 7 . The motor controller 6 is a digital input/output controller. In the exemplary embodiment, the motor 8 is the servo motor, and the motor driver 7 is the servo motor driver.
FIG. 2 is a block diagram of function modules of the motion control unit 10 of FIG. 1 . In an exemplary embodiment, the motion control unit 10 may include a setting module 100 , a calculation module 102 , a correction module 104 , and an output module 106 . Each of the modules 100 - 106 may be a software program including one or more computerized instructions that are stored in a storage device 12 and executed by one or more processors 14 . The storage device 12 is a non-transitory computer-readable storage medium, such as CD, DVD, flash memory, and hard disk drives.
The setting module 100 is operable to set motion control parameters, and predefine angles of rotation as reference points regarding orientation of the rotating arm 5 when rotated. In the exemplary embodiment, the motion control parameters include a step angle of the motor 8 , in other words the angle of rotation the motor 8 turns when taking a single step, a step number of the motor 8 , in other words how many steps must the motor 8 take to rotate the rotating arm 5 360 degrees, and a length of the rotating arm 5 (shown as the radius R in FIG. 4 and FIG. 5 ). The reference points include at least two target points, such as a first target point (a point O in FIG. 4 and FIG. 5 ) and a second target point (a point g in FIG. 4 and FIG. 5 ) for locating the ends EE 1 and EE 2 respectively.
In the exemplary embodiment, the step angle is a rotation angle of the motor 8 taking a single step when the motor 8 receives a corresponding current pulse signal. For example, if the motor 8 must take two-hundred steps to rotate 360 degrees, then the step angle of the motor 8 can be calculated as: 360/200=1.8 degrees.
Upon the condition that the rotating arm 5 rotates and the fixed end EE 1 of the rotating arm 5 is orientated to the first target point (see the point O in FIG. 4 ), the first target point can be defined as a pole origin position of a polar coordinate system, and an oz-axis can be defined as a pole axis of the polar coordinate system. If the rotating arm 5 rotates and the free end EE 2 of the rotating arm 5 orientates to the second target point (such as the point g), the rotation angle of the rotating arm 5 can be calculated by the calculation module 102 . In the exemplary embodiment, the calculated rotation angle is a theoretical value, and the free end EE 2 of the rotating arm 5 may not be able to actually reach the second target point.
In detail, continuing with the example illustrated in FIG. 4 , the x-axis and the y-axis can be controlled to move if the fixed end of the rotating arm 5 must be moved to orientate the fixed end at the first target point. Due to coordinate values of the points O′ and O, the coordinate motions of the x-axis and the y-axis can be calculated, and the rotation angle of the rotating arm 5 also can be calculated.
For example, as illustrated in FIG. 4 , the length of the rotating arm 5 is R, the motor 8 can rotate W degrees when taking N steps, points a and b are reference points regarding orientation of the rotating arm 5 when rotated. With more steps the motor 8 can rotate the rotating arm 5 to the points c, d, e and f. However, the rotating arm 5 may not be able to accurately rotate to the second target point g because the motor 8 can only control the rotating arm 5 to rotate a number of degrees that is a multiple of the step angle.
›DETAILED DESCRIPTION · 2 of 3
To enhance motion control accuracy, the pole origin position in the polar coordinate system can be corrected. Before correcting the pole origin position, the calculation module 102 calculates an offset correction value of the pole origin position according to the calculated rotation angle and the coordinate motions. Details of calculating the offset correction value are described below and illustrated in FIG. 5 .
As illustrated in FIG. 5 , the length of the rotating arm 5 is R, the rotating arm 5 can rotate to the points a, b, c, d, e and f, and the point g is a position that the rotating arm 5 would rotate to in ideal condition. In FIG. 5 , the polar angle “aOg” equals B degrees, which is a theoretical value. The polar angle “bOg” equals A degrees, the polar angle “aOb” equals W degrees, and the step number of the motor 8 is “i” if the free end EE 2 of the rotating arm 5 rotates to the point b. So that the coordinate value of the point a in the X-Y plane is (R[ cos((i+1)w)], R[ sin((i+1)w)]), the coordinate value of the point g in the X-Y plane is (R[ cos(A+iW)], R[ sin(A+iW)]) or (R[ cos((i+1)W−B)], R[ sin((i+1)W−B)]), the coordinate value of the point b is (R[ cos(iW)], R[ sin(iW)]).
The calculation module 102 calculates a vector of the line L 1 as: {R(cos(iW))−R(cos(A+iW)), R(sin(iW))−R(sin(A+iW))}, and calculates a vector of the line L 2 as: {R(cos(iW))−R[cos((i+1)W−B], R(sin(iW))−R[ sin((i+1)W−B)]}. Each of the vectors of the lines L 1 and L 2 can be considered as the offset correction value of the pole origin position. For example, if the step angle of the motor 8 is 1.8 degrees, to rotate the rotating arm 5 to the second target point (such as the point g, the calculated rotation angle is 17.8 degrees), the motor 8 can control the rotating arm 5 to rotate 18 degrees or 16.2 degrees, which are multiples of the step angle. If the rotating arm 5 rotates 18 degrees to the second target point g, the offset correction value of the pole origin position equals the vector of the line L 1 . If the rotating arm 5 rotates 16.2 degrees to the second target point g, the offset correction value of the pole origin position equals the vector of the line L 2 .
The correction module 104 corrects the pole origin position of the polar coordinate system, and corrects each of the coordinate motions using the offset correction value.
The output module 106 outputs the motion control parameters to the mechanical arm 3 , controls the mechanical arm 3 to move according to the corrected coordinate motions, generates pulse signals according to the multiple of the step angle (i.e., 16.2 degrees or 18 degrees), and outputs the pulse signals to the motor controller 6 . The motor controller 6 converts the pulse signals into a binary signal, and transmits the binary signal to the motor driver 7 . The motor driver 7 drives the motor 8 for controlling the rotating arm 5 to rotate according to the binary signal.
In coordination with the rotation of the rotating arm 5 , the end effecter 9 can execute a predetermined action such as taking a measurement.
FIG. 3 is a flowchart illustrating an exemplary embodiment of a method of controlling motions of the mechanical arm 3 that is connected to the computer 1 . Depending on the exemplary embodiment, additional blocks may be added, others removed, and the ordering of the blocks may be changed.
In block S 300 , the setting module 100 sets motion control parameters, and predefines angles of rotation as reference points regarding orientation of the rotating arm 5 when rotated. In the exemplary embodiment, the motion control parameters include a step angle of the motor 8 , a step number of the motor 8 , and a length of the rotating arm 5 . The reference points include at least two target points, such as a first target point (the point O in FIG. 4 and FIG. 5 ) and a second target point (the point g in FIG. 4 and FIG. 5 ).
In block S 302 , the calculation module 102 calculates a rotation angle of the rotating arm 5 in a polar coordinate system, and calculates coordinate motions of the x-axis and the y-axis upon the condition that a fixed end EE 1 of the rotating arm 5 orientates to the first target point (see the point O in FIG. 4 ), and a free end of the rotating arm 5 should be oriented to the second target point (see the point g in FIG. 4 ). In the polar coordinate system, the pole axis is the oz-axis, and the pole origin position is the first target point.
Actually, in the block S 302 , the free end EE 2 of the rotating arm 5 may not be able to rotate to the second target point because the motor 8 can only control the rotating arm 5 to rotate to a degree that is a multiple of the step angle. to control the free end EE 2 of the rotating arm 5 to actually reach the second target point, the pole origin position in the polar coordinate system is corrected in following step.
In block S 304 , the calculation module 102 calculates an offset correction value of the pole origin position of the polar coordinate system according to the calculated rotation angle, the step angle of the motor 8 , and the coordinate motions. Details of calculating the offset correction value have been previously described. The correction module 104 corrects the pole origin position and each of the coordinate motions using the offset correction value.
In block S 306 , the output module 106 outputs the motion control parameters to the mechanical arm 3 , generates pulse signals according to a multiple of the step angle, and outputs the pulse signals to the motor controller 6 . The motor controller 6 converts the pulse signals into a binary signal, and transmits the binary signal to the motor driver 7 .
In block S 308 , the mechanical arm 3 moves according to the corrected coordinate motions, and the motor driver 7 drives the motor 8 for controlling the rotating arm 5 to rotate according to the binary signal. Upon the rotating arm 5 rotates, the end effecter 9 can execute a predetermined action such as taking a measurement, for example.
›DETAILED DESCRIPTION · 3 of 3
Although certain inventive embodiments of the present disclosure have been specifically described, the present disclosure is not to be construed as being limited thereto. Various changes or modifications may be made to the present disclosure without departing from the scope and spirit of the present disclosure.
Claims as granted
13 claimsLog in to read the claims of this application.
Log in to unlockClassifications
4 codes- G05B13/00
Claim changes
SoonSee which claims were amended, added or cancelled during examination, with every added and removed word marked.
The published claims of this application are not paired with the granted ones in what we hold.
File wrapper
See the full prosecution history — every USPTO and applicant action on this file, in order.
Log in to unlockDocuments
Log in to open the documents of this file: the application as filed, every office action and response, the notice of allowance.
Log in to unlockChain of title
See the full assignment history — every owner this patent has passed through, with recordation dates and reel/frame numbers.
Log in to unlock