the visualization and optimization of the dynamic
TRANSCRIPT
The Visualization and Optimization of the Dynamic Workspace of a Delta Robot
A PLAN B PROJECT REPORT
SUBMITTED TO THE FACULTY OF THE GRADUATE SCHOOL
OF UNIVERSITY OF MINNESOTA
BY
Tiance Xia
IN PARTIAL FULFILLMENT OF THE REQUIREMENTS
FOR THE DEGREE OF
MASTER OF SCIENCE IN MECHANICAL ENGINEERING
Timothy M. Kowalewski, PhD
September, 2018
The visualization and optimization of the dynamic workspace of a Delta robot
Tiance Xia
Department of Mechanical Engineering
University of Minnesota
I. Introduction
The parallel manipulator is a mechanical system where the base and the end effector are
connected by more than one series of mechanical links. Often each series of mechanical links has
identical structure. Compared with serial manipulators, parallel manipulators achieve higher
velocities and precision of motion and support more massive payloads, at the cost of reduced
workspace. The common examples included the Stewart platform used in flight simulators (Fig.1)
and the Delta robot used in pick/pack applications. (Fig.2) For the Delta robot, its kinematics
solution and the distribution of the singularities had been studied extensively. [1][2] However, for
the dynamics analysis, although the closed form solution of the motor torque had been given, either
via the Newton-Euler method [3][4][5] or the dβAlembertβs principle [6][7][8], the structure of the
robot dynamic workspace remains understudied. The dynamic workspace indicates the region
where the end effector can move at the designated velocity and acceleration, given the robot size,
mass and the motor data. The establishment of this workspace would facilitate the end users to
choose the appropriate robot model for their task.
The overall goal of this research is to provide an improved, easy-to-use tool to assist
hobbyists, engineering students, and professional engineers in the computational design of high
performance Delta robots for their custom applications. The specific aim of this research is to
derive the dynamic solutions of the Delta robot in detail, and elucidate both the reachable
workspace and the dynamic workspace of the robot as a function of robot link length and motor
performance specifications as dictated by the readily available motor torque-speed curves.
Fig.1. The CAE 7000XR full-flight simulator. Fig.2. The ABB IRB 360 FlexPicker.
The specific contributions are 1) a re-derivation of the Delta robot dynamics using
mechanical energy conservation principles; 2) visualization of the complicated reachable and
dynamic workspaces and how they change with robot and motor parameters; 3) a software toolkit
in MATLAB with a graphical user interface (GUI) that visualizes complicated reachable and
dynamic workspaces and how they change based on simple motor parameters that a user may enter
to intuitively explore whether a specific choice of motors and link lengths will achieve the desired
performance characteristics; and 4) an example of such design analyses for a specific handheld 3D
bio-printing robot designed for medical applications in the Medical Robotics and Devices Lab.
II. Theory
The Delta robot is composed of three elements: the base, the moving platform and three
groups of connecting arms. (Fig.3a) Three active joints (motors) are placed on the base. The
connecting points of the moving platform are at the vertices of the triangle. For simplicity, the
parallelogram lower arm in the actual robot was represented by a single solid link. (Fig.3b)
Fig.3a. The assembly diagram of the Delta robot. Fig.3b. The Delta robot in Cartesian
coordinate system. The parallelogram
meant the forearm could move in both
XZ plane and YZ plane.
Because the moving platform only had three degrees of freedom for translational motion, the
following parallel conditions were always satisfied:
ππ΄1 β₯ ππΆ1
ππ΄2 β₯ ππΆ2
ππ΄3 β₯ ππΆ3
The geometric size of the robot was given by:
ππ΄1 = ππ΄2 = ππ΄3 = π
ππΆ1 = ππΆ2 = ππΆ3 = π
π΄1π΅1 = π΄2π΅2 = π΄3π΅3 = πΏ
π΅1πΆ1 = π΅2πΆ2 = π΅3πΆ3 = π
Points M and N represented the midpoint of the link, which were used for inertial analysis. In
addition, in this paper, the upper links were not allowed to go above the XY plane. Thus the arm
rotational angle π was always negative.
To make the structure clear, the establishment of the dynamic workspace had been divided
to three sections: the dynamic solution of the motor torque, the manipulator Jacobian, and the
algorithm to search the dynamic workspace.
1. Motor Torques
A. Link Dynamics
From the robot diagram (Fig.3b), the following relationships could be established:
π΄1 = (π , 0, 0)
π΅1 = (π + πΏπππ π1, 0, πΏπ πππ1)
π = (π₯π, π¦π, π§π)
πΆ1 = (π₯π + π, π¦π, π§π)
π1 =π΄1 + π΅12
= (1
2(2π + πΏπππ π1), 0,
1
2πΏπ πππ1)
π1 =π΅1 + πΆ12
= (1
2(π + πΏπππ π1 + π₯π + π),
1
2π¦π,1
2(πΏπ πππ1 + π§π))
The velocity at point π1:
π
ππ‘ππ1ββ ββ ββ ββ = (
1
2(βπΏπ πππ1 β π1Μ), 0,
1
2πΏπππ π1 β π1Μ)
The velocity at point π1:
π
ππ‘ππ1ββ ββ ββ ββ = (
1
2(βπΏπ πππ1 β π1Μ + π₯οΏ½ΜοΏ½),
1
2π¦οΏ½ΜοΏ½,1
2(πΏπππ π1 β π1Μ + π§οΏ½ΜοΏ½))
The tangential velocity at point πΆ1:
π΅1πΆ1ββ ββ ββ ββ β = (π₯π + π β π β πΏπππ π1, π¦π, π§π β πΏπ πππ1)
π£πΆ1ββββββ =π
ππ‘π΅1πΆ1ββ ββ ββ ββ β = (οΏ½ΜοΏ½π + πΏπ πππ1 β π1Μ, π¦οΏ½ΜοΏ½, π§οΏ½ΜοΏ½ β πΏπππ π1 β π1Μ)
In 3D space, the angular velocity of one point rotating around an axis was given by:
οΏ½ββοΏ½ =π Γ π£
π2
Therefore, the angular velocity of link π΅1πΆ1:
π
ππ‘ππ΅1 = ππ΅1ββ ββ ββ β =
1
π2(π΅1πΆ1ββ ββ ββ ββ β Γ π£πΆ1ββββββ )
=1
π2(
π¦π(π§οΏ½ΜοΏ½ β πΏπππ π1 β π1Μ) β (π§π β πΏπ πππ1)π¦οΏ½ΜοΏ½,
(π§π β πΏπ πππ1)(π₯οΏ½ΜοΏ½ + πΏπ πππ1 β π1Μ) β (π₯π + π β π β πΏπππ π1)(π§οΏ½ΜοΏ½ β πΏπππ π1 β π1Μ),
(π₯π + π β π β πΏπππ π1)π¦οΏ½ΜοΏ½ β π¦π(π₯οΏ½ΜοΏ½ + πΏπ πππ1 β π1Μ)
)
Let
πΎ1π = πΏπ πππ1 πΎ1π = πΏπππ π1
The differential of the rotational angle of link π΅1πΆ1 was given by:
πππ΅1
=1
π2(
π¦π(ππ§π β πΏπππ π1 β ππ1) β (π§π β πΏπ πππ1)ππ¦π,
(π§π β πΏπ πππ1)(ππ₯π + πΏπ πππ1 β ππ1) β (π₯π + π β π β πΏπππ π1)(ππ§π β πΏπππ π1 β ππ1),
(π₯π + π β π β πΏπππ π1)ππ¦π β π¦π(ππ₯π + πΏπ πππ1 β ππ1)
)
= (
πΉ1(ππ§π β πΎ1π β ππ1) β πΉ2 β ππ¦π,
πΉ2(ππ₯π + πΎ1π β ππ1) β πΉ3(ππ§π β πΎ1π β ππ1),
πΉ3 β ππ¦π β πΉ1(ππ₯π + πΎ1π β ππ1)
)
If the payload underwent an infinitesimal displacement, there would be a corresponded
position change for the link group π΄1π΅1 β π΅1πΆ1. The work needed to move the link group from its
original location was represented by:
ππΏπΊ1 = ππ΄1π΅1 +ππ΅1πΆ1
= ππ΄1π΅1,πΊπππ£ππ‘π¦ +ππ΄1π΅1,π ππ‘ππ‘πππ +ππ΅1πΆ1,πΊπππ£ππ‘π¦ +ππ΅1πΆ1,πππππ πππ‘πππ +ππ΅1πΆ1,π ππ‘ππ‘πππ
= (ππΏπ β πΏπ1π§ + πΌπΏπ1Μ β ππ1) + (πππ β πΏπ1π§ +ππππ1 β πΏπ1 + πΌπππ΅1Μ β πππ΅1)
, where πΏπ1π§ and πΏπ1π§ represented the displacement of M1 and N1 in z-direction, πΌπΏ and πΌπ
represented the moment of inertia of link π΄1π΅1 and π΅1πΆ1 rotating around the axes that went through
π΄1 and π΅1 respectively, ππ1 represented the acceleration of point π1, and ππ΅1Μ represented the
angular acceleration of link π΅1πΆ1.
ππ1 =π
ππ‘(π
ππ‘ππ1ββ ββ ββ ββ ) = (ππ1π₯, ππ1π¦, ππ1π§)
ππ΅1Μ =π
ππ‘(ππ΅1ββ ββ ββ β) = (ππ΅1π₯Μ , ππ΅1π¦Μ , ππ΅1π§Μ )
Based on the expressions of π
ππ‘ππ1ββ ββ ββ ββ and
π
ππ‘ππ1ββ ββ ββ ββ ,
πΏπ1π§ =1
2πΏπππ π1 β ππ1 =
1
2πΎ1π β ππ1
πΏπ1 = (1
2(βπΏπ πππ1 β ππ1 + ππ₯π),
1
2ππ¦π,
1
2(πΏπππ π1 β ππ1 + ππ§π))
= (1
2(βπΎ1π β ππ1 + ππ₯π),
1
2ππ¦π,
1
2(πΎ1π β ππ1 + ππ§π))
πΏπ1π§ =1
2(πΏπππ π1 β ππ1 + ππ§π) =
1
2(πΎ1π β ππ1 + ππ§π)
Therefore, the work equation could be expanded as:
ππ΄1π΅1 +ππ΅1πΆ1
= ππΏπ β1
2πΎ1π β ππ1 + πΌπΏπ1Μ β ππ1 +πππ β
1
2(πΎ1π β ππ1 + ππ§π)
+ππ [ππ1π₯ β1
2(βπΎ1π β ππ1 + ππ₯π) + ππ1π¦ β
1
2ππ¦π + ππ1π§ β
1
2(πΎ1π β ππ1 + ππ§π)]
+πΌπ [ππ΅1π₯Μ (πΉ1(ππ§π β πΎ1π β ππ1) β πΉ2 β ππ¦π)
+ ππ΅1π¦Μ (πΉ2(ππ₯π + πΎ1π β ππ1) β πΉ3(ππ§π β πΎ1π β ππ1)) +Μ
ππ΅1π§Μ (πΉ3 β ππ¦π
β πΉ1(ππ₯π + πΎ1π β ππ1))]
= (ππΏπ β1
2πΎ1π + πΌπΏπ1Μ +πππ β
1
2πΎ1π βππππ1π₯ β
1
2πΎ1π +ππππ1π§ β
1
2πΎ1π β πΌπππ΅1π₯Μ πΉ1πΎ1π
+ πΌπππ΅1π¦Μ πΉ2πΎ1π + πΌπππ΅1π¦Μ πΉ3πΎ1π β πΌπππ΅1π§Μ πΉ1πΎ1π ) ππ1
+ (ππππ1π₯ β1
2+ πΌπππ΅1π¦Μ πΉ2 β πΌπππ΅1π§Μ πΉ1)ππ₯π
+ (ππππ1π¦ β1
2β πΌπππ΅1π₯Μ πΉ2 + πΌπππ΅1π§Μ πΉ3)ππ¦π
+ (ππππ1π§ β1
2+ πΌπππ΅1π₯Μ πΉ1 β πΌπππ΅1π¦Μ πΉ3 +πππ β
1
2) ππ§π
= ππ΄ππ1 + π11ππ₯π + π12ππ¦π + π13ππ§π
The work equations for link group π΄2π΅2 β π΅2πΆ2 and link group π΄3π΅3 β π΅3πΆ3 could be
derived via same procedures. (Their positions would also change if the payload moved) To keep
the logic clear, only the final results were quoted here and the detailed expressions could be found
in the Appendix.
ππ΄2π΅2 +ππ΅2πΆ2 = ππ΅ππ2 + π21ππ₯π + π22ππ¦π + π23ππ§π
ππ΄3π΅3 +ππ΅3πΆ3 = ππΆππ3 + π31ππ₯π + π32ππ¦π + π33ππ§π
B. Payload Dynamics
The work to move the end effector for an infinitesimal displacement πΏπ was given by:
ππππ¦ππππ = πππ β πΏππ§ +ππππ β πΏπ
, where πΏπ = (ππ₯π, ππ¦π, ππ§π), πΏππ§ = ππ§π, and ππ = (πππ₯, πππ¦, πππ§).
Therefore, the payload work could be written as:
ππππ¦ππππ = πππ β ππ§π +πππππ₯ππ₯π +πππππ¦ππ¦π +πππππ§ππ§π
C. The Torque Formula
By the energy conservation principle (or the dβAlembert principle), neglecting the friction,
the work done to move the links and the payload equaled the work outputted by the three motors.
Namely,
π1ππ1 + π2ππ2 + π3ππ3 +πππ₯π‘πππππ = 0
, where π1, π2, π3 represented the torque the motor generated, and
πππ₯π‘πππππ = ππ΄1π΅1 +ππ΅1πΆ1 +ππ΄2π΅2 +ππ΅2πΆ2 +ππ΄3π΅3 +ππ΅3πΆ3 +ππππ¦ππππ
(1)
= (ππ΄ππ1 + π11ππ₯π + π12ππ¦π + π13ππ§π) + (ππ΅ππ2 + π21ππ₯π + π22ππ¦π + π23ππ§π)
+ (ππΆππ3 + π31ππ₯π + π32ππ¦π + π33ππ§π)
+ (πππ β ππ§π +πππππ₯ππ₯π +πππππ¦ππ¦π +πππππ§ππ§π)
= ππ΄ππ1 + ππ΅ππ2 + ππΆππ3 + (π11 + π21 + π31 +πππππ₯)ππ₯π
+ (π12 + π22 + π32 +πππππ¦)ππ¦π + (π13 + π23 + π33 +πππππ§ +πππ)ππ§π
= ππ΄ππ1 + ππ΅ππ2 + ππΆππ3 +π1ππ₯π + π2ππ¦π + π3ππ§π
The manipulator Jacobian, which would be derived in the next section, established the
connection between the end effector spatial velocity and the motor angular velocity. For the delta
robot, the manipulator Jacobian J was a 3-by-3 matrix since there was no rotational motion for the
moving platform. From the expression πΏοΏ½ΜοΏ½ = π± β οΏ½ΜοΏ½, the differentials of the end effector translational
displacement could be converted to the differentials of the motor rotational angles.
π₯οΏ½ΜοΏ½ = π½11π1Μ + π½12π2Μ + π½13π3Μ β ππ₯π = π½11ππ1 + π½12ππ2 + π½13ππ3
π¦οΏ½ΜοΏ½ = π½21π1Μ + π½22π2Μ + π½23π3Μ β ππ¦π = π½21ππ1 + π½22ππ2 + π½23ππ3
π§οΏ½ΜοΏ½ = π½31π1Μ + π½32π2Μ + π½33π3Μ β ππ§π = π½31ππ1 + π½32ππ2 + π½33ππ3
Therefore, the last half of equation (2) could be written as:
π1ππ₯π + π2ππ¦π + π3ππ§π
= (π1π½11 + π2π½21 + π3π½31)ππ1 + (π1π½12 + π2π½22 + π3π½32)ππ2 + (π1π½13 + π2π½23 + π3π½33)ππ3
Equation (1) held true in all circumstances. Thus the motor torques were given by:
π1 = β(ππ΄ + π1π½11 + π2π½21 + π3π½31)
π2 = β(ππ΅ + π1π½12 + π2π½22 + π3π½32)
π3 = β(ππΆ + π1π½13 + π2π½23 + π3π½33)
2. Manipulator Jacobian
A. Inverse Kinematics
The length of the forearm was constant. Namely, βπ΅ππΆπββ ββ ββ ββ = π. Thus the following equations
could be written down: (the expressions of π΅ππΆπββ ββ ββ β could be found above, and let (π β π ) = π·.)
β₯ π΅1πΆ1ββ ββ ββ ββ β β₯2= π2 = (π₯π + π· β πΏπππ π1)2+ π¦π
2 + (π§π β πΏπ πππ1)2
= π₯π2 + π·2 + πΏ2 cos2 π1 + 2π₯ππ· β 2π₯ππΏπππ π1 β 2π·πΏπππ π1 + π¦π
2 + π§π2
+ πΏ2 sin2 π1 β 2πΏπ§ππ πππ1
(2)
β β2πΏ(π₯π + π·)πππ π1 β 2πΏπ§ππ πππ1 + (π₯π2 + π¦π
2 + π§π2 + π·2 + πΏ2 + 2π₯ππ· β π
2) = 0
β π1πππ π1 + π1π πππ1 + π1 = 0
The second forearm:
β₯ π΅2πΆ2ββ ββ ββ ββ β β₯2= π2 = (π₯π β1
2π· +
1
2πΏπππ π2)
2
+ (π¦π +β3
2π· β
β3
2πΏπππ π2)
2
+ (π§π β πΏπ πππ2)2
= π₯π2 +
1
4π·2 +
1
4πΏ2 πππ 2 π2 β π₯ππ· + π₯ππΏπππ π2 β
1
2π·πΏπππ π2 + π¦π
2 +3
4π·2 +
3
4πΏ2 πππ 2 π2
+ β3π¦ππ· β β3π¦ππΏπππ π2 β3
2π·πΏπππ π2 + π§π
2 + πΏ2 π ππ2 π2 β 2πΏπ§ππ πππ2
β πΏ (π₯π β1
2π· β β3π¦π β
3
2π·) πππ π2 + (β2πΏπ§π)π πππ2
+ (π₯π2 + π¦π
2 + π§π2 + π·2 + πΏ2 β π₯ππ· + β3π¦ππ· β π
2) = 0
β π2πππ π2 + π2π πππ2 + π2 = 0
The third forearm:
β₯ π΅3πΆ3ββ ββ ββ ββ β β₯2= π2 = (π₯π β1
2π· +
1
2πΏπππ π3)
2
+ (π¦π ββ3
2π· +
β3
2πΏπππ π3)
2
+ (π§π β πΏπ πππ3)2
= π₯π2 +
1
4π·2 +
1
4πΏ2 cos2 π3 β π₯ππ· + π₯ππΏπππ π3 β
1
2π·πΏπππ π3 + π¦π
2 +3
4π·2 +
3
4πΏ2 cos2 π3
β β3π¦ππ· + β3π¦ππΏπππ π3 β3
2π·πΏπππ π3 + π§π
2 + πΏ2 sin2 π3 β 2πΏπ§ππ πππ3
β πΏ (π₯π β1
2π· + β3π¦π β
3
2π·) πππ π3 + (β2πΏπ§π)π πππ3
+ (π₯π2 + π¦π
2 + π§π2 + π·2 + πΏ2 β π₯ππ· β β3π¦ππ· β π
2) = 0
β π3πππ π3 + π3π πππ3 + π3 = 0
For equations of the form ππππ π + ππ πππ + π = 0, tangent half-angle substitution could be
applied to find the solution. Let π‘ = tan (π/2)
β πππ π =1 β π‘2
1 + π‘2, π πππ =
2π‘
1 + π‘2
β π1 β π‘2
1 + π‘2+ π
2π‘
1 + π‘2+π = 0
β π(1 β π‘2) + 2ππ‘ + π(1 + π‘2) = 0 β (π βπ)π‘2 + 2ππ‘ + (π + π) = 0
β π‘ =β2π Β± β4π2 β 4(π βπ)(π +π)
2(π βπ)=βπ Β± βπ2 β π2 +π2
π βπ
(3)
(4)
(5)
β π = 2 tanβ1 π‘
Therefore, the solutions of the robot inverse kinematics were given by:
π‘π =βππ Β±βππ
2 β ππ2 +ππ
2
ππ βππ, ππ = 2 tan
β1 π‘π
, where ππ, ππ and ππ were functions of (π₯π, π¦π, π§π). The two solutions for the rotational angle
corresponded to the elbow-out and elbow-in configuration. (Fig.4)
Fig.4. The possible link configurations of the Delta robot: the elbow-out configurations were
represented by black lines (π΄1 β π΅1 β πΆ1), and the elbow-in configurations were represented by
blue lines (π΄1 β π΅1β² β πΆ1) for conditions (a) where an elbow could be above the XY plane, the robot
base, and (b) where all elbows were below the x-y plane.
Angle Determination Logic: depending on the location of the end effector, both the elbow-
out and elbow-in configuration could be under the XY plane (Fig.4b); another circumstance was
that the elbow-out configuration exceeded the XY plane but the elbow-in configuration remained
beneath it. (Fig.4a) Since the upper link was not allowed to rotate above the XY plane, the elbow-
out configuration in Fig.4a would not be accepted. For the same reason, the circumstance where
both the elbow-out and elbow-in configuration exceeded the XY plane had not been shown here.
In order to avoid singularities during robot operation, only the elbow-out configuration was
allowed in the process of searching the reachable workspace. (This statement would be discussed
in detail later.) Thus the rotational angle choice reduced from total six to one. (Elbow-out in Fig.4b)
B. Manipulator Jacobian
The manipulator Jacobian could be calculated by taking the time derivatives of the inverse
kinematics equations. Start from equation (3):
β2πΏ(π₯οΏ½ΜοΏ½πππ π1 β π₯ππ πππ1π1Μ) + 2πΏπ·π πππ1π1Μ β 2πΏ(π§οΏ½ΜοΏ½π πππ1 + π§ππππ π1π1Μ)
+(2π₯ππ₯οΏ½ΜοΏ½ + 2π¦ππ¦οΏ½ΜοΏ½ + 2π§ππ§οΏ½ΜοΏ½ + 2π·π₯οΏ½ΜοΏ½) = 0
Rewritten as:
(β2πΏπππ π1 + 2π₯π + 2π·)π₯οΏ½ΜοΏ½ + (2π¦π)π¦οΏ½ΜοΏ½ + (β2πΏπ πππ1 + 2π§π)π§οΏ½ΜοΏ½= β(2πΏπ₯ππ πππ1 + 2πΏπ·π πππ1 β 2πΏπ§ππππ π1)π1Μ
β π11π₯οΏ½ΜοΏ½ + π12π¦οΏ½ΜοΏ½ + π13π§οΏ½ΜοΏ½ = π11π1Μ
The time derivative of equation (4):
πΏ(π₯οΏ½ΜοΏ½πππ π2 β π₯ππ πππ2π2Μ) +1
2πΏπ·π πππ2π2Μ β β3πΏ(π¦οΏ½ΜοΏ½πππ π2 β π¦ππ πππ2π2Μ) +
3
2πΏπ·π πππ2π2Μ
β 2πΏ(π§οΏ½ΜοΏ½π πππ2 + π§ππππ π2π2Μ) + (2π₯ππ₯οΏ½ΜοΏ½ + 2π¦ππ¦οΏ½ΜοΏ½ + 2π§ππ§οΏ½ΜοΏ½ β π·π₯οΏ½ΜοΏ½ + β3π·π¦οΏ½ΜοΏ½) = 0
Rewritten as:
(πΏπππ π2 + 2π₯π β π·)π₯οΏ½ΜοΏ½ + (ββ3πΏπππ π2 + 2π¦π + β3π·)π¦οΏ½ΜοΏ½ + (β2πΏπ πππ2 + 2π§π)π§οΏ½ΜοΏ½
= β(βπΏπ₯ππ πππ2 + β3πΏπ¦ππ πππ2 + 2πΏπ·π πππ2 β 2πΏπ§ππππ π2)π2Μ
β π21π₯οΏ½ΜοΏ½ + π22π¦οΏ½ΜοΏ½ + π23π§οΏ½ΜοΏ½ = π22π2Μ
The time derivative of equation (5):
πΏ(π₯οΏ½ΜοΏ½πππ π3 β π₯ππ πππ3π3Μ) +1
2πΏπ·π πππ3π3Μ + β3πΏ(π¦οΏ½ΜοΏ½πππ π3 β π¦ππ πππ3π3Μ) +
3
2πΏπ·π πππ3π3Μ
β 2πΏ(π§οΏ½ΜοΏ½π πππ3 + π§ππππ π3π3Μ) + (2π₯ππ₯οΏ½ΜοΏ½ + 2π¦ππ¦οΏ½ΜοΏ½ + 2π§ππ§οΏ½ΜοΏ½ β π·π₯οΏ½ΜοΏ½ β β3π·π¦οΏ½ΜοΏ½) = 0
Rewritten as:
(πΏπππ π3 + 2π₯π β π·)π₯οΏ½ΜοΏ½ + (β3πΏπππ π3 + 2π¦π β β3π·)π¦οΏ½ΜοΏ½ + (β2πΏπ πππ3 + 2π§π)π§οΏ½ΜοΏ½
= β(βπΏπ₯ππ πππ3 β β3πΏπ¦ππ πππ3 + 2πΏπ·π πππ3 β 2πΏπ§ππππ π3)π3Μ
β π31π₯οΏ½ΜοΏ½ + π32π¦οΏ½ΜοΏ½ + π33π§οΏ½ΜοΏ½ = π33π3Μ
Thus, the manipulator Jacobian could be written as:
[
π11 π12 π13π21 π22 π23π31 π32 π33
] [
π₯οΏ½ΜοΏ½π¦οΏ½ΜοΏ½π§οΏ½ΜοΏ½
] = [
π11 0 00 π22 00 0 π33
] [
π1Μπ2Μπ3Μ
] β ποΏ½ΜοΏ½ = π©οΏ½ΜοΏ½ β π± = π¨βππ©
C. Motor Angular Acceleration
The angular acceleration could be found by taking the derivative of the Jacobian equation.
π
ππ‘(ποΏ½ΜοΏ½) =
π
ππ‘(π©οΏ½ΜοΏ½)
οΏ½ΜοΏ½οΏ½ΜοΏ½ + π¨οΏ½ΜοΏ½ = οΏ½ΜοΏ½οΏ½ΜοΏ½ + π©οΏ½ΜοΏ½
β οΏ½ΜοΏ½ = π©βπ(οΏ½ΜοΏ½οΏ½ΜοΏ½ + π¨οΏ½ΜοΏ½ β οΏ½ΜοΏ½οΏ½ΜοΏ½)
3. The Workspace Search Algorithm
Starting from a point in space, if the end effector could move at the given speed |π£| in any
direction, its velocity vector could reach any point on a sphere with radius π = |π£|. (Here the |π£| was the task requirement set by the user.) If the velocity vector could reach the eight vertices of
the cube that circumscribed the sphere, it could reach any point on the cube and thus any point on
the sphere. (Fig.5) The coordinates of the vertices were given by:
π = [
|π£ | |π£ | |π£ | |π£ | β|π£ | β|π£ | β|π£ | β|π£ |
|π£ | |π£ | β|π£ | β|π£ | |π£ | |π£ | β|π£ | β|π£ |
|π£ | β|π£ | |π£ | β|π£ | |π£ | β|π£ | |π£ | β|π£ |
]
, where each column represented a point that the velocity vector must be able to reach. The
acceleration vertices could be formulated in the same way to generate a 3 Γ 8 matrix.
Fig.5. The velocity sphere of the moving platform and its circumscribed cube.
At each point in the reachable workspace, 8 Γ 8 = 64 combinations of moving platform velocity
and acceleration (corresponded to the cube vertices) were substituted into the torque equation and
the Jacobian equation. Then, the maximum value of the torque and angular speed calculated was
used to compare with the parameters of the actual motor installed. If the motor parameter exceeded
this maximum value, this point was inside the dynamic workspace. In other words, if the motor
could operate at the angular speed faster than the calculated maximum, and at the same time output
the torque larger than the calculated maximum, the end effector could reach all the vertices on the
velocity and acceleration cube; thus it could move at the given π£ and π of any direction.
The reachable workspace was the region where the kinematics equations had a real
solution. Also, the ππ < 0 condition and the elbow-out configuration both needed to be satisfied.
III. Results and Analysis
1. The Reachable Workspace
The reachable workspace contained all the locations the moving platform could arrive. The
kinematics equations indicated that this workspace was only impacted by the geometric size of the
robot. By modifying the robot arm length and keeping the size of the base and moving platform
constant, the following reachable workspaces could be established: (Fig.6)
Fig.6. The reachable workspaces for three combinations of upper arm and forearm of different
lengths. R = 0.06m, r = 0.017m.
As the robot arm length increased, the reachable workspace expanded, which meant the
end effector could span larger volume in space. The user could substitute various length values
(and/or base and moving platform size values) to find the appropriate reachable workspace for his
task requirement.
2. The Workspace with Angular Velocity Limits
From the manipulator Jacobian equation, it was shown that the angular speed of the motors
determined the spatial velocity of the end effector. By setting a limit on the motor rotational speed,
some regions inside the reachable workspace would be expunged since the motor could not provide
the required rotational speed for the end effector to have the ability to move in any direction in
these regions with the given (maximum) speed. The following workspace plot reflected the
influence of the motor RPM limit: (Fig.7)
Fig.7. The workspaces where the moving platform could move at |π£| = 1m/s in any direction.
L = 0.055m, l = 0.06m, R = 0.06m, r = 0.017m.
As the motor rotational speed limit decreased, the region where the end effector could move
in any direction at the given speed reduced. This region was referred to as the velocity workspace.
3. The Workspace with Torque Limits.
In the torque equations, the moving platform acceleration and the motor torques were
coupled together, which indicated that the motor torque set a limit for the region where the end
effector could move in any direction with the given (maximum) acceleration. Since the motor
rotational speed also appeared in the torque equation, one temporary assumption needed to be
made to allow the torque calculation: the motor could provide any rotational speed at the position
where the algorithm tested the torque requirement. The following workspace plot reflected the
influence of the motor torque limit: (Fig.8)
Fig.8. The workspaces where the moving platform could move at |π| = 1m/s2 in any direction.
L = 0.055m, l = 0.06m, R = 0.06m, r = 0.017m, mL = 21.3g, ml = 5.8g, mP = 250g.
The workspace in Fig.8 represented the region where the end effector could move in any
direction with the given acceleration, which was constrained by the maximum torque output of the
motor. This region was referred to as the acceleration workspace.
4. The Dynamic Workspace
In the process of constructing the acceleration workspace, the assumption that the motor
could provide any rotational speed inside this workspace was made. Since the actual motor had a
limitation on the RPM, in some regions, this assumption would not be valid. However, these
regions could be excluded by overlapping the velocity workspace onto the acceleration workspace.
(Fig.9) Inside the overlapped region, the motor could rotate at the angular speed less than its
limitation and at the same time produce the torque required. In other words, inside this overlapped
region, the end effector could move with any combination of π£ and π given, as long as they did
not exceed the user-defined limits. This region was referred to as the dynamic workspace.
Fig.9. The dynamic workspace obtained by overlapping the green velocity space and the red
acceleration workspace together. Inside the overlapped region, the end effector could move at
|π£| = 1m/s and |π| = 1m/s2 in any direction. Robot information same as that of Fig.8.
The region outside the dynamic workspace indicated one or more conditions had not been
met. For example, the region covered by the velocity workspace but not the acceleration workspace
meant that although the motor could provide the RPM required for the end effector to move with
any π£ , it could not at the same time provide the torque required for the end effector to move with
any π in its motion. By modifying the two limits (torque and angular speed), the user could
generate a dynamic workspace that covered the task requirement space, and the data (geometric
size, motor limits, link mass, etc.) could be used to aid the robot selection.
5. The GUI in Design Analysis
The efficiency of the algorithm could be improved by creating a GUI with torque limit and
angular velocity limit as input sliders. (Fig.10) Since the no-load speed and stall torque were
usually used in the motorβs technical datasheets to illustrate its capacity, for convenience, the
sliders would take these two values as input, and the actual torque and angular velocity limit in the
background calculation were chosen to be half of them, where the motor mechanical power output
reached the maximum. (Fig.11)
Fig.10. The GUI example. By dragging the two sliders, the user could set the stall torque and no-
load speed (to match with those of the actual motors). Then, click the Run button to generate a
dynamic workspace plot.
Fig.11. The motor torque-speed curve and the mechanical power curve. Point P (midpoint)
represented the actual torque and angular velocity limit values used in the calculation after the user
inputted the no-load speed and stall torque.
The primal purpose of the GUI was to rapidly compare the dynamic workspace for different
types of motor. In the following example, for the same Delta robot, three types of motor (Fig.12,
Table.1) produced various dynamics workspaces. (Fig.14) The robot geometric size and mass data
remained same as those of Fig.8 except now mP = 50g. These robot data were obtained from a
specific handheld 3D bio-printing Delta robot designed for medical applications in the Medical
Robotics and Devices Lab. (Fig.13)
Fig.12. The motors listed in Table 1.
Motor model No-load speed
[sec/60Β°] [rad/s]
Stall torque
[oz/in.] [Nm]
Retail price
[USD]
Futaba S9470SV 0.09 11.64 191.7 1.35 99.99
Savox SA-1258TG 0.08 13.09 166.6 1.18 59.99
Futaba S3003 0.19 5.51 56.8 0.40 10.99
Table.1. Motor technical specifications selection
Fig.13. The handheld 3D bio-printing Delta robot
Fig.14. The comparison of the dynamic workspaces generated from three types of motors. The T
in the legend represented the torque limit and the AV for the angular velocity limit. (Half of the
stall torque and no-load speed) The UI control buttons had been hided.
From Table 1, the Futaba S9470SV and Savox SA-1258TG motor had similar stall torque
and no-load speed. Thus the dynamic workspaces for them nearly coincided with each other. As a
comparison group, the Futaba S3003 motor provided significantly lower stall torque and no-load
speed. Therefore its corresponding dynamic workspace occupied much less volume than the other
two. Depending on the task requirement, the user could choose suitable motor to reduce cost.
6. The Role of Singularities
In the discussion of the motor rotational angle determination logic (Section II.2.A), it was
mentioned that only the elbow-out configuration in Fig.4b was accepted. If the elbow-in
configuration had also been allowed, the reachable workspace would have expanded greatly.
(Fig.15) However, if both the elbow-out and elbow-in configurations were allowed, there would
be a transition point where the upper arm and forearm formed a straight line. In this circumstance,
this link group fell into the singularity where det(J) = 0. Robot operating near the singularities
could trigger unpredictable consequences, such as losing degrees of freedom, requiring infinite
motor torque, etc. Therefore, to avoid singularities during gesture transition, the elbow-in
configuration had been expunged from the construction of the robot reachable workspace.
Fig.15. The reachable workspace comparison. The green workspace allowed both the elbow-out
and elbow-in configurations. Inside the red workspace (elbow-out configuration only), the moving
platform would not experience any singularities. R = 0.06m, r = 0.017m
While the selection of the elbow-out configuration was a specific design choice which
followed the common practice in industry, the equations (torque, manipulator Jacobian) held true
in all circumstances (both elbow-in and elbow-out).
IV. Conclusion
The dynamic solutions of the Delta robot have been derived in detail. The structure of the
reachable workspace and the dynamic workspace as a function of robot size and motor
performance specifications was visualized for a variety of practical situations. The MATLAB
toolkit with GUI provided a convenient way to compare the dynamic workspace for different
motors, enabling future users to visualize dynamic workspaces for any practical robot dimensions
or motor specifications. The dynamic workspace evaluation for a specific Delta robot designed for
medical application had been conducted and the motor influence were shown. Based on the
dynamic solutions derived and the workspace construct algorithm provided, a more user-friendly
robot design toolkit that took all the robot parameters (size, link mass, motor data, etc.) as GUI
inputs and with better (near simultaneous) calculation and graphic plotting performance could be
expected in future.
References:
[1] R.L. Williams II, βThe Delta Parallel Robot: Kinematics Solutionsβ, Internet Publication,
www.ohio.edu/people/williar4/html/pdf/DeltaKin.pdf, January 2016.
[2] LΓ³pez, M., Castillo, E., GarcΓa, G. and Bashir, A. (2006). Delta robot: Inverse, direct, and
intermediate Jacobians. Proceedings of the Institution of Mechanical Engineers, Part C: Journal of
Mechanical Engineering Science, 220(1), pp.103-109.
[3] P. Guglielmetti and R. Longchamp, "A closed form inverse dynamics model of the delta
parallel robot", IFAC Proceedings Volumes, vol. 27, no. 14, pp. 51-56, 1994.
[4] P. Guglielmetti and R. Longchamp, "Task Space Control of the Delta Parallel Robot", IFAC
Proceedings Volumes, vol. 25, no. 29, pp. 337-342, 1992.
[5] Staicu, Stefan & Carp-Ciocardia, Daniela-Craita. (2003). Dynamic analysis of Clavelβs Delta
parallel robot. Proceedings - IEEE International Conference on Robotics and Automation. 3.
10.1109/ROBOT.2003.1242230.
[6] Zhao, Y & Yang, Z & Huang, Taosheng. (2005). Inverse dynamics of delta robot based on the
principle of virtual work. Transactions of Tianjin University. 11. 268-273.
[7] Codourey, A & Burdet, Etienne. (1997). Body-oriented method for finding a linear form of the
dynamic equation of fully parallel robots. Proceedings - IEEE International Conference on
Robotics and Automation. 2. 1612 - 1618 vol.2. 10.1109/ROBOT.1997.614371.
[8] L. Tsai, "Solving the Inverse Dynamics of a Stewart-Gough Manipulator by the Principle of
Virtual Work", Journal of Mechanical Design, vol. 122, no. 1, p. 3, 2000.
Appendix
1. The Link Group 2 (π¨π βπ©π β πͺπ) Dynamics:
π΄2 = (β1
2π ,β3
2π , 0) π΅2 = (β
1
2(π + πΏπππ π2),
β3
2(π + πΏπππ π2), πΏπ πππ2)
π = (π₯π, π¦π, π§π) πΆ2 = (π₯π β1
2π, π¦π +
β3
2π, π§π)
π2 =π΄2 + π΅22
= (β1
4(2π + πΏπππ π2),
β3
4(2π + πΏπππ π2),
1
2πΏπ πππ2)
π2 = (1
2(β1
2(π + πΏπππ π2) + π₯π β
1
2π) ,
1
2(β3
2(π + πΏπππ π2) + π¦π +
β3
2π) ,
1
2(πΏπ πππ2 + π§π))
π
ππ‘ππ2ββ ββ ββ ββ β = (β
1
4(βπΏπ πππ2 β π2Μ),
β3
4(βπΏπ πππ2 β π2Μ),
1
2πΏπππ π2 β π2Μ)
π
ππ‘ππ2ββ ββ ββ ββ = (
1
2(1
2πΏπ πππ2 β π2Μ + π₯οΏ½ΜοΏ½) ,
1
2(ββ3
2πΏπ πππ2 β π2Μ + π¦οΏ½ΜοΏ½) ,
1
2(πΏπππ π2 β π2Μ + π§οΏ½ΜοΏ½))
π΅2πΆ2ββ ββ ββ ββ β = (π₯π β1
2π +
1
2(π + πΏπππ π2), π¦π +
β3
2π β
β3
2(π + πΏπππ π2), π§π β πΏπ πππ2)
π£πΆ2ββββββ =π
ππ‘π΅2πΆ2ββ ββ ββ ββ β = (π₯οΏ½ΜοΏ½ β
1
2πΏπ πππ2 β π2Μ, π¦οΏ½ΜοΏ½ +
β3
2πΏπ πππ2 β π2Μ, π§οΏ½ΜοΏ½ β πΏπππ π2 β π2Μ)
οΏ½ββοΏ½ =π Γ π£
π2
π
ππ‘ππ΅2 = ππ΅2ββ ββ ββ β =
1
π2(π΅2πΆ2ββ ββ ββ ββ β Γ π£πΆ2ββββββ )
=1
π2
(
(π¦π +
β3
2π β
β3
2(π + πΏπππ π2)) (π§οΏ½ΜοΏ½ β πΏπππ π2 β π2Μ) β (π§π β πΏπ πππ2) (π¦οΏ½ΜοΏ½ +
β3
2πΏπ πππ2 β π2Μ) ,
(π§π β πΏπ πππ2) (π₯οΏ½ΜοΏ½ β1
2πΏπ πππ2 β π2Μ) β (π₯π β
1
2π +
1
2(π + πΏπππ π2)) (π§οΏ½ΜοΏ½ β πΏπππ π2 β π2Μ),
(π₯π β1
2π +
1
2(π + πΏπππ π2))(π¦οΏ½ΜοΏ½ +
β3
2πΏπ πππ2 β π2Μ) β (π¦π +
β3
2π β
β3
2(π + πΏπππ π2))(π₯οΏ½ΜοΏ½ β
1
2πΏπ πππ2 β π2Μ)
)
Let
πΎ2π = πΏπ πππ2 πΎ2π = πΏπππ π2
πππ΅2
=1
π2
(
(π¦π +
β3
2π β
β3
2(π + πΏπππ π2)) (ππ§π β πΏπππ π2 β ππ2) β (π§π β πΏπ πππ2) (ππ¦π +
β3
2πΏπ πππ2 β ππ2) ,
(π§π β πΏπ πππ2) (ππ₯π β1
2πΏπ πππ2 β ππ2) β (π₯π β
1
2π +
1
2(π + πΏπππ π2)) (ππ§π β πΏπππ π2 β ππ2),
(π₯π β1
2π +
1
2(π + πΏπππ π2))(ππ¦π +
β3
2πΏπ πππ2 β ππ2) β (π¦π +
β3
2π β
β3
2(π + πΏπππ π2))(ππ₯π β
1
2πΏπ πππ2 β ππ2)
)
=
(
πΊ1(ππ§π β πΎ2π β ππ2) β πΊ2 (ππ¦π +
β3
2πΎ2π β ππ2) ,
πΊ2 (ππ₯π β1
2πΎ2π β ππ2) β πΊ3(ππ§π β πΎ2π β ππ2),
πΊ3 (ππ¦π +β3
2πΎ2π β ππ2) β πΊ1 (ππ₯π β
1
2πΎ2π β ππ2)
)
βππΏπΊ2 = ππ΄2π΅2 +ππ΅2πΆ2
= (ππΏπ β πΏπ2π§ + πΌπΏπ2Μ β ππ2) + (πππ β πΏπ2π§ +ππππ2 β πΏπ2 + πΌπππ΅2Μ β πππ΅2)
The acceleration at point π2 and the angular acceleration of link π΅2πΆ2 were represented by:
ππ2 =π
ππ‘(π
ππ‘ππ2ββ ββ ββ ββ ) = (ππ2π₯, ππ2π¦, ππ2π§)
ππ΅2Μ =π
ππ‘(ππ΅2ββ ββ ββ β) = (ππ΅2π₯Μ , ππ΅2π¦Μ , ππ΅2π§Μ )
πΏπ2π§ =1
2πΏπππ π2 β ππ2 =
1
2πΎ2π β ππ2
πΏπ2 = (1
2(1
2πΏπ πππ2 β ππ2 + ππ₯π) ,
1
2(ββ3
2πΏπ πππ2 β ππ2 + ππ¦π) ,
1
2(πΏπππ π2 β ππ2 + ππ§π))
= (1
2(1
2πΎ2π β ππ2 + ππ₯π) ,
1
2(ββ3
2πΎ2π β ππ2 + ππ¦π) ,
1
2(πΎ2π β ππ2 + ππ§π))
πΏπ2π§ =1
2(πΏπππ π2 β ππ2 + ππ§π) =
1
2(πΎ2π β ππ2 + ππ§π)
ππ΄2π΅2 +ππ΅2πΆ2 = ππΏπ β1
2πΎ2π β ππ2 + πΌπΏπ2Μ β ππ2 +πππ β
1
2(πΎ2π β ππ2 + ππ§π)
+ππ [ππ2π₯ (1
2(1
2πΎ2π β ππ2 + ππ₯π)) + ππ2π¦ (
1
2(ββ3
2πΎ2π β ππ2 + ππ¦π))
+ ππ2π§ (1
2(πΎ2π β ππ2 + ππ§π))]
+ πΌπ [ππ΅2π₯Μ (πΊ1(ππ§π β πΎ2π β ππ2) β πΊ2 (ππ¦π +β3
2πΎ2π β ππ2))
+ ππ΅2π¦Μ (πΊ2 (ππ₯π β1
2πΎ2π β ππ2) β πΊ3(ππ§π β πΎ2π β ππ2))
+ ππ΅2π§Μ (πΊ3 (ππ¦π +β3
2πΎ2π β ππ2) β πΊ1 (ππ₯π β
1
2πΎ2π β ππ2))]
= (ππΏπ β1
2πΎ2π + πΌπΏπ2Μ +πππ β
1
2πΎ2π +ππππ2π₯ β
1
4πΎ2π βππππ2π¦ β
β3
4πΎ2π +ππππ2π§ β
1
2πΎ2π
β πΌπππ΅2π₯Μ πΊ1πΎ2π β πΌπππ΅2π₯Μ πΊ2 ββ3
2πΎ2π β πΌπππ΅2π¦Μ πΊ2 β
1
2πΎ2π + πΌπππ΅2π¦Μ πΊ3πΎ2π
+ πΌπππ΅2π§Μ πΊ3 ββ3
2πΎ2π + πΌπππ΅2π§Μ πΊ1 β
1
2πΎ2π )ππ2
+ (ππππ2π₯ β1
2+ πΌπππ΅2π¦Μ πΊ2 β πΌπππ΅2π§Μ πΊ1)ππ₯π
+ (ππππ2π¦ β1
2β πΌπππ΅2π₯Μ πΊ2 + πΌπππ΅2π§Μ πΊ3)ππ¦π
+ (ππππ2π§ β1
2+ πΌπππ΅2π₯Μ πΊ1 β πΌπππ΅2π¦Μ πΊ3 +πππ β
1
2) ππ§π
= ππ΅ππ2 + π21ππ₯π + π22ππ¦π + π23ππ§π
2. The Link Group 3 (π¨π βπ©π β πͺπ) Dynamics:
π΄3 = ( β1
2π ,β
β3
2π , 0) π΅3 = (β
1
2(π + πΏπππ π3),β
β3
2(π + πΏπππ π3), πΏπ πππ3)
π = (π₯π, π¦π, π§π) πΆ3 = (π₯π β1
2π, π¦π β
β3
2π, π§π)
π3 =π΄3 + π΅32
= (β1
4(2π + πΏπππ π3), β
β3
4(2π + πΏπππ π3),
1
2πΏπ πππ3)
π3 = (1
2(β1
2(π + πΏπππ π3) + π₯π β
1
2π) ,
1
2(ββ3
2(π + πΏπππ π3) + π¦π β
β3
2π) ,
1
2(πΏπ πππ3 + π§π))
π
ππ‘ππ3ββ ββ ββ ββ β = (β
1
4(βπΏπ πππ3 β π3Μ), β
β3
4(βπΏπ πππ3 β π3Μ),
1
2πΏπππ π3 β π3Μ)
π
ππ‘ππ3ββ ββ ββ ββ = (
1
2(1
2πΏπ πππ3 β π3Μ + π₯οΏ½ΜοΏ½) ,
1
2(β3
2πΏπ πππ3 β π3Μ + π¦οΏ½ΜοΏ½) ,
1
2(πΏπππ π3 β π3Μ + π§οΏ½ΜοΏ½))
π΅3πΆ3ββ ββ ββ ββ β = (π₯π β1
2π +
1
2(π + πΏπππ π3), π¦π β
β3
2π +
β3
2(π + πΏπππ π3), π§π β πΏπ πππ3)
π£πΆ3ββββββ =π
ππ‘π΅3πΆ3ββ ββ ββ ββ β = (π₯οΏ½ΜοΏ½ β
1
2πΏπ πππ3 β π3Μ, π¦οΏ½ΜοΏ½ β
β3
2πΏπ πππ3 β π3Μ, π§οΏ½ΜοΏ½ β πΏπππ π3 β π3Μ)
οΏ½ββοΏ½ =π Γ π£
π2
π
ππ‘ππ΅3 = ππ΅3ββ ββ ββ β =
1
π2(π΅3πΆ3ββ ββ ββ ββ β Γ π£πΆ3ββββββ )
=1
π2
(
(π¦π β
β3
2π +
β3
2(π + πΏπππ π3)) (π§οΏ½ΜοΏ½ β πΏπππ π3 β π3Μ) β (π§π β πΏπ πππ3) (π¦οΏ½ΜοΏ½ β
β3
2πΏπ πππ3 β π3Μ) ,
(π§π β πΏπ πππ3) (π₯οΏ½ΜοΏ½ β1
2πΏπ πππ3 β π3Μ) β (π₯π β
1
2π +
1
2(π + πΏπππ π3)) (π§οΏ½ΜοΏ½ β πΏπππ π3 β π3Μ),
(π₯π β1
2π +
1
2(π + πΏπππ π3))(π¦οΏ½ΜοΏ½ β
β3
2πΏπ πππ3 β π3Μ) β (π¦π β
β3
2π +
β3
2(π + πΏπππ π3))(π₯οΏ½ΜοΏ½ β
1
2πΏπ πππ3 β π3Μ)
)
Let
πΎ3π = πΏπ πππ3 πΎ3π = πΏπππ π3
πππ΅3
=1
π2
(
(π¦π β
β3
2π +
β3
2(π + πΏπππ π3)) (ππ§π β πΏπππ π3 β ππ3) β (π§π β πΏπ πππ3) (ππ¦π β
β3
2πΏπ πππ3 β ππ3) ,
(π§π β πΏπ πππ3) (ππ₯π β1
2πΏπ πππ3 β ππ3) β (π₯π β
1
2π +
1
2(π + πΏπππ π3)) (ππ§π β πΏπππ π3 β ππ3),
(π₯π β1
2π +
1
2(π + πΏπππ π3))(ππ¦π β
β3
2πΏπ πππ3 β ππ3) β (π¦π β
β3
2π +
β3
2(π + πΏπππ π3))(ππ₯π β
1
2πΏπ πππ3 β ππ3)
)
=
(
π»1(ππ§π β πΎ3π β ππ3) β π»2 (ππ¦π β
β3
2πΎ3π β ππ3) ,
π»2 (ππ₯π β1
2πΎ3π β ππ3) β π»3(ππ§π β πΎ3π β ππ3),
π»3 (ππ¦π ββ3
2πΎ3π β ππ3) β π»1 (ππ₯π β
1
2πΎ3π β ππ3)
)
βππΏπΊ3 = ππ΄3π΅3 +ππ΅3πΆ3
= (ππΏπ β πΏπ3π§ + πΌπΏπ3Μ β ππ3) + (πππ β πΏπ3π§ +ππππ3 β πΏπ3 + πΌπππ΅3Μ β πππ΅3)
The acceleration at point π3 and the angular acceleration of link π΅3πΆ3 were represented by:
ππ3 =π
ππ‘(π
ππ‘ππ3ββ ββ ββ ββ ) = (ππ3π₯, ππ3π¦, ππ3π§)
ππ΅3Μ =π
ππ‘(ππ΅3ββ ββ ββ β) = (ππ΅3π₯Μ , ππ΅3π¦Μ , ππ΅3π§Μ )
πΏπ3π§ =1
2πΏπππ π3 β ππ3 =
1
2πΎ3π β ππ3
πΏπ3 = (1
2(1
2πΏπ πππ3 β ππ3 + ππ₯π) ,
1
2(β3
2πΏπ πππ3 β ππ3 + ππ¦π) ,
1
2(πΏπππ π3 β ππ3 + ππ§π))
= (1
2(1
2πΎ3π β ππ3 + ππ₯π) ,
1
2(β3
2πΎ3π β ππ3 + ππ¦π) ,
1
2(πΎ3π β ππ3 + ππ§π))
πΏπ3π§ =1
2(πΏπππ π3 β ππ3 + ππ§π) =
1
2(πΎ3π β ππ3 + ππ§π)
ππ΄3π΅3 +ππ΅3πΆ3 = ππΏπ β1
2πΎ3π β ππ3 + πΌπΏπ3Μ β ππ3 +πππ β
1
2(πΎ3π β ππ3 + ππ§π)
+ππ [ππ3π₯ (1
2(1
2πΎ3π β ππ3 + ππ₯π)) + ππ3π¦ (
1
2(β3
2πΎ3π β ππ3 + ππ¦π))
+ ππ3π§ (1
2(πΎ3π β ππ3 + ππ§π))]
+ πΌπ [ππ΅3π₯Μ (π»1(ππ§π β πΎ3π β ππ3) β π»2 (ππ¦π ββ3
2πΎ3π β ππ3))
+ ππ΅3π¦Μ (π»2 (ππ₯π β1
2πΎ3π β ππ3) β π»3(ππ§π β πΎ3π β ππ3))
+ ππ΅3π§Μ (π»3 (ππ¦π ββ3
2πΎ3π β ππ3) β π»1 (ππ₯π β
1
2πΎ3π β ππ3))]
= (ππΏπ β1
2πΎ3π + πΌπΏπ3Μ +πππ β
1
2πΎ3π +ππππ3π₯ β
1
4πΎ3π +ππππ3π¦ β
β3
4πΎ3π +ππππ3π§ β
1
2πΎ3π
β πΌπππ΅3π₯Μ π»1πΎ3π + πΌπππ΅3π₯Μ π»2 ββ3
2πΎ3π β πΌπππ΅3π¦Μ π»2 β
1
2πΎ3π + πΌπππ΅3π¦Μ π»3πΎ3π
β πΌπππ΅3π§Μ π»3 ββ3
2πΎ3π + πΌπππ΅3π§Μ π»1 β
1
2πΎ3π )ππ3
+ (ππππ3π₯ β1
2+ πΌπππ΅3π¦Μ π»2 β πΌπππ΅3π§Μ π»1) ππ₯π
+ (ππππ3π¦ β1
2β πΌπππ΅3π₯Μ π»2 + πΌπππ΅3π§Μ π»3) ππ¦π
+ (ππππ3π§ β1
2+ πΌπππ΅3π₯Μ π»1 β πΌπππ΅3π¦Μ π»3 +πππ β
1
2) ππ§π
= ππΆππ3 + π31ππ₯π + π32ππ¦π + π33ππ§π