ArticlePDF Available

Toolpath Generation for Robotic Flank Milling via Smoothness and Stiffness Optimization

Authors:

Abstract and Figures

Robotic flank milling has outstanding advantages in machining large-scale slender surfaces. Currently, the paths for this process are mainly generated by optimizing redundant robot degrees of freedom (DoFs) on the basis of conventional 5-axis flank milling paths. This two-step framework, however, does not enable optimal robot kinematic and dynamical performance compared to the direct generation of 6-DoF robot paths, limiting the machining efficiency and effectiveness. This paper presents an optimization method to directly generate a toolpath with six DoFs for robotic flank milling. Firstly, the kinematic model of the milling system and the representation of the 6-DoF toolpath are established. Then, the standard geometric error for flank milling that conforms to the geometric specification is defined, and an efficient algorithm based on conformal geometric algebra is proposed to solve it. On this basis, the toolpath optimization model with toolpath smoothness and robot stiffness as objective functions is established. A sequential quadratic programming algorithm is proposed to solve this highly non-linear problem based on the lexicographic order of arrays. The simulations and experiments demonstrate that the proposed method has better efficiency, robustness, and effectiveness compared with the existing methods. Due to the improvement of smoothness and stiffness, the productivity, accuracy, and finish of the machining are all enhanced.
Content may be subject to copyright.
1
Toolpath Generation for Robotic Flank Milling via
Smoothness and Stiffness Optimization

State Key Laboratory of Mechanical System and Vibration, School of Mechanical Engineering, Shanghai Jiao
Tong University, Shanghai 200240, China
School of Electromechanical Engineering, Guangdong University of Technology, Guangzhou 510006, China
Emails: cyxsjtu@sjtu.edu.cn, luyaoan@gdut.edu.cny.ding@sjtu.edu.cn
Abstract:
              
             
      

   
 
               

            

            

  

Keywords: 

2
1. Introduction
             
               
            



                
  

    




              



 

                
             





 
3


               

             




     

              
   
   
       
       

  
             
       
  


 
              

 
          

4
            
lexicographic order of
arrays,             

              

    
          
              




            


2. Background for robotic flank milling
2.1 Kinematic model of the robotic flank milling system
x
y
z
1
2
3
4
5
6
Design surface
{BCS}
{WCS}
{FCS}
{TCS}


()uC
              
5



( )
( ) ( ) FCS
FCS
BCS BCS
WCS TCS
uu=TθT C T

   
S
WCS
BC
T

S
FCS
BC
T

S
TCS
FC
T


2.2 Representation of the toolpath
 
( ) SE(3)uC
  
( ) ( )
() 1
uu
u
=

Rp
C0
 
3
()up

( ) SO(3)uR
  

()up


1
m
pw

 
R
     
( )
exp [ ]=Rω
 
3
31 2
, , ][ T
= ω
  

R

2
31
2
3
1
0
[ ] 0
0







=
ω

exp

()uR

( )
0
( ) exp [ ( )]uu=R R o


3
()uo

0SO(3)R



22
12
[ , , , ] m
T
oo
m
oo
w w w=w

()uo

()uR

i
o
w

( )
02
exp [ ( )]
() , 1,2, ,
ii
oo
u
uim
ww
=

o
RR


6
( ) ( )
exp [ ( )] ()
exp [ ( )] ( ( ))
ii
oo
uu
uu
ww

=


oo
o A o

2
2 3
1 cos ( ) ( ) sin ( )
( ( )) ( ) ( )
( ) ( )
u u u
u I u u
uu
−−
= +
o o o
A o o o
oo

 
               
12
pmm
o
+

=


w
ww
      

2.3 Singularity and stiffness index of the robot
    
           

J


1
1
6FF
=JJ


F

vL

=

J
JJ

L

v
J

J

J

     
     
    

( ) ( )
1
Tr Tr
TT
−−
=J J J J


( )
Tr





3det(1)
tt
K=C

7

11
11 11 11 2212 12
TT
tt
−−
=+C J K J J K J

11
J
 
12
J
         
v
J
 
11
K
 
22
K
 
     
11
12

=

K0
K0K

K
     


)det( tt
=C



2.4 Smooth criterion for toolpaths



u

n

12
{ , , , }
n
u u u


1221 ( ) ( )kk = +ww


( )
1
1
6
1
2
1
ij
i
n
ij
ds
==
=


( )
6
22
11
2
ij
i
n
ij
ds
==
=


( )
21
1
1
1
11
1
2 2 2 2
11
11
, 1
,
() , 2, , 1
ij
i i i i
ii
j
i
i
jj
j
nn
n
i
j j j
ii
s
s
s s s s
i
in
s s s i
sn


−−+
−−
=
==
+
=
+



( ) ( )
2
11
22
1
11
3
2
11
212
2 1 1
21
11
, 1
,
2 2 2 , 2, , 1
jj jj
j j j j
n n n n
n
ij
n
i i i i i i i i
n
j j j
i i i
ss s
ss s
s s s s i
s s s
i
n
s
i
n
 
−+


+=
−−
= + =
+
+=
+

8
( )
1
1
1
2, 1
2,
2, 2, , 1
n
ii
i
d n
si
si
s s i n
s
=
=
=+
=


1
( ) ( )
i i i
uus+
=−pp

()
j
i i
ju

=

1
k

2
k

    
1
k
 
2
k
         

1

2
     

1 1,min 2,min
1,max 1,min 2, max 2, min
2
( ) ( )
+
=
ww


0
  
1,min

1,max
   
1

w

2,min

2,max

2

3. Geometric deviation evaluation
Design surface
Envelope
surface li
pi
ni
qi
d

Envelope surface
Design surface
d

Envelope surface
Design surface
d


9
                



    







3.1 Iterative solving algorithm


( , )uvX

design
X

design
X

, 1,2, , qi
p i n=

i
p

design
X
,
define the normal line of the surface which passes through
i
p
as
i
l
, and define the intersection between
i
l
and
( , )uvX
as
i
q
. Then the normal distance
,
i
pX
d
between
i
p
and
( , )uvX
is equal to the
distance between
i
p
and
i
q
.

design
X

i
p

i
n

i
l

i i i
l p e
= n


i
q

i
l
 
0
ii
lq=


( , )
i i i
q X u v=

( , ) 0
i
f u v =


10
( , ) ( , )
ii
f u v l X u v=


( , )X u v

( , )uvX
Algorithm 1
i
q
Input 
( , )X a t
 
i
l
 
 
  
0 0 0
( , )
i i i
q X u v=


[ , ]T
low low
uv

[ , ]T
high high
uv
Output
i
q

X

i
l

1
step
k

0k

00
0( , )
i i i
f u v
while
>
k


step
k
do

k
im
 

[ v ]T
kk
u
 

11
[ , ] [ , ] [ ]
k k T k k T
i i i i step k k
u v u v k u v
++
+
 if
11
[ , ] [ , ] [ , ]
T k T T
ilo iw low high high
k
u v u v u v
++

do

11
1( , )
k
i
k
kii
f u v
++
+
 if
1kk

+
do

0.5
step step
kk=
 else do

1kk+
 end if
 else do

0.5
step step
kk=
 end if
end while
return
( , )
kk
i i i
q X u v=

i
q
 

( , )
k k k
i i i
q X u v=

X

k
i
T


( , ) ( , )
uv
k k k k k k
i i i i i i
T q u v u v e
= XX


u
X

v
X
 
( , )uvX

u

v


i
l

k
i
T

11
( ) ( )
**
*kk
i i i
F l T=

k
i
q
1
ik
q+
i
q
i
p
i
l
k
i
T
X
0
i
q
k
i
m

 
k
i
F
      
k
i
m
 
kk
ii
F m e
=
   

k
i
m

( )
3
0
10.5
k
j
k
i i j j
F e e e e
=
=

m


[ ]T
kk
uv
 
[ ( , ) ( , )][ ]
k k k k T k k
i i i iuu k k i i
u v u v u v = X X m q


k
i
q

k
i
q
    
step
k
 
11
[ , ] [ , ] [ ]
k k T k k T
i i i i step k k
u v u v k u v
++
= +
   

1 1 1
( , )
k k k
i i i
q X u v
+ + +
=

( , )
i i i
q X u v=

i
l

X



0
i
q

step
k



i
p

( )
ii ii
d= q p n


i
p

i
q

i
p

i
q

3.2 The first-order differential increment
     

i
d

12

12
12
[ , , , ]
mm
w w w +
=w
              
w
 
 
( ; , )uvXw
     
( ; , )X u vw
      
   
i
q
    
w
   
()
i
qw
  

()
i
qw


()
i
qw

( ; , )uvXw

12
1
()
( ; , ) ( ; , ) ( , ; , ) ( ; , )
,
m
i
T
m
u v u v u v u v
u v w
uv w+
+






w
qw
X w X w X w X w


12
1,, T
mm
ww
+
=


w


( ; , )
i i i
f u vw

12
1
( ; , )
( ; , ) ( ; , ) ( ; , ) ( ; , )
, , i
m
i i i
T
i i i
m
f u v
fu u
v f u v f u v f u v
vv
u w w +





+w
w
w w w w


i
f
  
0 1 2
e e e e

013
e e e e

20 3
e e e e

1 2 3
e e e e

  
,
, ( ; ) T
i i i
uv
i
w
i
f u v uv + MwM w


, 4 2uv
i
M

( )
12
4
i
mm
w +
M
    
w

, ) 0(
i i i
ufv=
   

( ; , ) 0
i i i
f u v=w


X
( ) ( )
1
, , ,
TT
Tu v u v u v w
i i i i
uv

=

 wM M M M

   
( ) ( )
12
1
,
1
,,
()
, ,
i
TT
u v u v u v w
m
i i i i
i
m
u v w w
+





− 




 

=

+
M M M M w
Mw
qw
X X X X

 
i
d

13
iii
T
ii
d
=
=
Mw
qn
n

4. Toolpath optimization model and algorithm
4.1 Optimization model


   



Problem 1:
min
max min
}
m= max{
in i


+
w

subject to ( 1,2, , , 1,2, , )
q
i n j n==

( )
1( ), ( )
i i i
f u u
=poθ

min maxi
θ θ θ

32
ii
LU
PP

min maxj
d d d

i


0
        
1 6
,,() T
i i i i
u
= =
θ θ
 
( )
ii

=θ

min

max
 

w


( )
1
f
 
 
min
θ
 
max
θ
           
   

U
P

L
P
 
min
d

max
d


()
ii

=θ



  
  





14

Problem 2:
min
ma
,x min
min


+
w

subject to ( 1,2, , , 1,2, , )
q
i n j n==

i


 
4.2 Local approximation





k


1k
=ww



i
θ

12
1j
ij
j
i
mm
i
dw
wd
+
=

==
θ θ
wθw


i j
wθ
 
1
TCP
i
j
w
=
J
θt


TCP
J

6

=


ω
v
t


j
w

[]
[] 00

=

v
tω

1()
[ ] ( )
j
i
i
u
uw
=
C
tC


[ ] so(3)ω

( ) ( )
()
0
jj
j
w
w
uuw
u

=

Rp
C
0

() j
wuR
 

     
          
 
w
     
2
TT
c = + +w H w wf
 
H
   
15

f

c

          
j
d

i
 
i
 

j
d
  
i
T
i
d = nMw

1, ,6j=


1
Tr
i tt
tt
jj
ii


=


C
C

   
j
tt i
C
     
11 j
i
J
 
12 j
i
J
 
j
i
J

11 j
i
J

12 j
i
J



dd
dd
TT
i i i
ii
ii
d
d

==

w
θ
θw
θ
θ


1 6
d d , , T
i i i i

=

θ
 
( ) ( )
1
1
Tr Tr Tr Tr
TT
TT
i
j j j
i i i
−−
−−
+

=
J J J J
J J J J


1, ,6j=

1j
i
J

j
i
J


111
jj
ii

−−
=−

JJ
JJ

 
j
i
J

j
vi
J

j
i
J


j
i
J


dd
dd
TT
i i i
ii
ii
d
d

==

w
θ
θw
θ
θ


1 6
d d , , T
i i i i

=

θ
  
1k
w
         

16
Problem 3
( )
ax min
,m
m 2in TT
 + +
ww H w wf

subject to ( 1,2, , , 1,2, , )
q
i n j n==

11
d
) ( ) d
(
T
ii
k i k
i
d
d
−−

+ +

w w w
w
θ
θ

min max1
() i
ik
d
d
+
θw
wθwθ θ

32
32
i
LU
i
iPP
i
d
d
d
d


+

w
ww

min 1 max
()
T
j k i i
d d d
+ Mwwn

1
d
()
d
T
ii
ik
id
d

+


θ
ww
w
θ

lower upper
w w w

     
w


1k
w

upper
w

lower
w

4.3 Solving process
     Problem 2        


4.3.1 Generating the initial solution

0
w




         
               


0
w

4.3.2 Obtaining the approximate boundary values
    
1,min

1,max

2,min

2,max

min
 
max
    
17
             


0
w
     
1

2

, 1, ,
iin
=


 
               
               


4.3.3 SQP based on the lexicographic order of arrays
 


 

1,min

1,max

2,min

2,max

min
 
max
       

     


             
   lexicographic order of arrays   
1i
f

2i
f

    
i
 
1k
  lexicographic order 
11 12 1
( , , , )
k
f f f
 
21 22 2
( , , , )
k
f f f

( ) ( )
( ) ( )
11 12 1 21 22 2
11 12 21 22 1 2
1 1 2 1
11 12 21 22 1 2
1 1 2 1
12
( , , , ) ( , , , )
( , , , ) ( , , , ), if , 0
( , , , ) ( , , , ), if
, otherwise
kk
kk
kk
kk
kk
kk
f f f f f f
f f f f f f f f
f f f f f f f f
ff
−−
−−
=

11 12 11 12
( ) ( )f f f f

18
Algorithm 2
Input
0
w

0
R




n

q
n

max
d

min
d

upper
w

lower
w


Output
w

i
θ

i

i

1, ,in=

j
d

1, , q
jn=



( )
1
21
old
=

0k=

max min
1 max max{ } , min{ }
jj
flag d d d d=

m x{ }2 a i
flag

=
while
( )
1old old
or
max 1 , 2 0
old old
flag flag
do

old
=

11
old
flag flag=

22
old
flag flag=

1kk=+
 
dd
i
θw

dd
ii
θ

dd
ii
θ

H

f

i
M
 while
2
min , lup oper wer
ww
do
 
w

 
1kk
= +w w w
 
i
θ

( )
1;i
fu
k
w

1, ,in

2
upper upper
=ww

2
lower lower
=ww

 
i

i

1, ,in=

j
d

1, , q
jn=



max min
1 max max{ } , min{ }
jj
flag d d d d=

m x{ }2 a i
flag

=
 if
( , 2, 1) ( , 2 , 1 )
old old old
flag flag flag flag
do
 
1,min

1,max

2,min

2,max

min

max

old

 
w

upper
w

lower
w


upper
w

lower
w

(1 )
+
 
 else do
 
2
upper upper
=ww

2
lower lower
=ww
 end if
 end while
 
2
min , lup oper wer
ww

end while
return
k
=ww
              
           
      
lexicographic order of the arrays consisting of the objective and constraint functions, not just the values
of the objective function. (2) The objective function is updated iteratively. (3) When the elements in the
19
resulting optimization variables
w
    
upper
w
 
lower
w
  
            

5. Simulations and experimental validations
             

5.1 Comparison methods
             



  



5.2 Validation of the geometric deviation


     




0
T
1
T
2
T
0
B
1
B
2
B















20

()Tu

()Bu


15
Maximum undercut: 0.17mm
Maximum overcut: 0mm

Maximum undercut: 0.26mm
Maximum overcut: 0mm

Maximum undercut: 0.02mm
Maximum overcut: 0.02mm

Maximum undercut: 0.03mm
Maximum over cut: 0.03mm

Maximum undercut: 0.02mm
Maximum overcut: 0.42mm

Maximum undercut: 0.81mm
Maximum overcut: 0.93mm




            
       


21
           

























5.3 Simulation verification of the optimization algorithm


        


6.25mm

30mm

 
10
 The robot used is ABB IRB-6660. The DenavitHartenberg (DH) parameters of it is
illustrated in  . The diagonal elements of the joint stiffness matrix are
6
[1.47,1.69,1.33,0.36,0.22,0.14] 10
       
.



















The fixed rotation matrix
0
R
is set as the rotation matrix at the starting CL of the initial solution.
22
  
30 60
q
n=
points are sampled from the design surface, and both
curves
()up
and
()uo
have 10 control points. The toolpath is sampled to
50n=
CLs.
max
d
and
min
d
are 0.085mm and -0.085mm respectively. The singularity threshold

       xpansion factor
is set to 0.05.
10.005
=
, and
5
210
=
. In DE, the number of iterations is set to 40, and the size of the population is
set to 50. The crossover probability is 0.5. Note that according to our tests, a larger iteration number does
not improve the optimization results further.


a 
d 


1


2

22



23


2

4

2

5
2

6

+

5.2410-3
7.1810-3

1
2.0310-6
10-6

2
SQP
DE
3.1110-18
3.1510-18

max{ }
i

Maximum undercut: 0.075mm
Maximum overcut: 0.087mm

Maximum undercut: 0.085mm
Maximum overcut: 0.085mm

Maximum undercut: 0.076mm
Maximum overcut: 0.039mm


23
Both optimization methods are executed on MATLAB 2022b. It shows that SQP is much more
efficient with an execution time of 5.55 minutes, while DE takes 53.00 minutes.
The iterative optimization process is illustrated in . It shows that the three indices
1
,
2
, and
max{ }
i
all decrease in both methods, but DE is less effective.     

               
( )
11
6
1
2
j
ij

=
=
 
( )
6
22
1
2
j
ij

=
=
           


1

2
010 20 30 40 50
Sampling cutter location index
3.04
3.06
3.08
3.1
3.12
3.14
3.16
10-18
The initial solution
SQP
DE
(2, 3.1610-18)
(1,31110-18)
(4, 3.1510-18)

i

i







1
3
4.99 10
3
5.30 10
3
5.26 10
3
7.18 10
2
6
1.75 10
6
2.14 10
6
2.05 10
6
6.47 10
max{ }
i
18
3.08 10
18
3.11 10
18
3.10 10
18
3.15 10

24

 

5.4 Experimental validations of the optimization algorithm
   

   




Worktable Workpiece
Cutter
Spindle
ABB
IRB6660





1 2 3 4
[ , , , ]q q q q







()up
and
()uo
have 30 control points. 
18 70
q
n=
25
points are sampled from the design surface.
max
d
and
min
d
are 0.025mm and -0.025mm respectively.
The time of iteration in DE is set to 20. All other parameters are the same as in Section 5.3.
3.5910-3
6.2910-3

1
3.5910-5
1310-5

2
4.112510-18
110-18

max{ }
i

Both optimization methods are executed on MATLAB 2022b. SQP shows greater efficiency with an
execution time of 2.11 minutes, while DE takes 21.16 minutes.
The iterative optimization process of DE and SQP is illustrated in , proving the effectiveness
of SQP. Note that as the initial solution does not satisfy the constraints, the large increase in
2
in the
third iteration step of DE leads to a feasible solution.
ii
 




1
26
                 

          

max{ }
i
 
  

K
 



1
2
max{ }
i
max{ }
i
max j
d

3
6.60 10
5
5.91 10
18
4.1230 10



3
6.40 10
5
5.51 10
18
4.1217 10



3
6.29 10
5
10.34 10
18
4.1225 10



3
3.59 10
5
3.59 10
18
4.1125 10



1

2

i

i

                

27
   



1

17.40 17.56



Sa=3.50m


Sa=5.18m


Sa=4.75m


0.1000
-0.1000
0.000
0.05
-0.05
Measured mach ining error (mm)
Average: -0.0005mm
Interval with an error below 0.05mm: 95.5048%


0.1000
-0.1000
0.000
0.05
-0.05
Measured mach ining error (mm)
Average: -0.0016mm
Interval with an error below 0.05mm: 92.0547%


Average: -0.0019mm
Interval with an error below 0.05mm: 88.2967%
0.1000
-0.1000
0.000
0.05
-0.05
Measured mach ining error (mm)
(f) Machining error distribution
with the two-step method

28
            


       

   



























6. Conclusion
     

 
        
           
            


              

            
            
  

29
Acknowledgments
             

Appendix: Basics of conformal geometric algebra

   



        
1 2 3
{ , , }e e e
   

0 1 2 3
{ , , , , }e e e e e

    
 

a

b


ab a b a b= +



000
,
00, 1, 0
, 0, 0
i j i
i
ij
e e e e e e
e e e e e e
= = =
= = =


, 1, 2,3ij

,
1,
0,
ij
ij
ij
=
=

ab

      
2 2 3 311
x e x e x e= + +x


2
02x e e
= + +xx



    

1 2 3
{ , , }e e e

30
    


x

F x e
=




*

13
*0 2
( ) ( ) ( )e e e e e
=


  

l

x


*
0
0
xl
xl
=
=


  

A

B

*
C

* * *
C A B=



References


               

      

       



31
                


          

   



               






                


            





       






         
 

           








32












    








              

       

        



            


       

             

           

       

Article
Full-text available
This paper proposes an efficient method of formulating cutter swept envelopes in five-axis milling based on conformal geometric algebra. The surface of the rotary cutter is represented as a canal surface, as the envelope of a one-parameter family of spheres. The swept envelopes generated by the general rigid motion of the cutter can be regarded as the two-parameter family of spheres. With the help of the dual representations of spheres and planes in conformal space, a point pair-based expression of the swept envelopes is formulated analytically, which represents two surfaces uniformly. By using the present method, the swept surfaces of a conical cutter, a drum-shaped cutter, and a toroidal cutter are illustrated. As an application, two types of collision detection methods for 5-axis milling are presented based on the point pair-based envelope expression. The benchmark examples demonstrate that the use of the proposed envelope expression significantly improves computational efficiency.
Article
Full-text available
Industrial robots have become a suitable alternative to machine tools due to their great flexibility, low cost, and large working space. However, the deformation and vibration caused by the cutting forces during machining result in poor machining accuracy and surface quality. In order to improve the machining performance of the robot, this paper proposes a posture optimization method for robotic milling with the redundant degree of freedom of the industrial robot. First, modal tests are conducted in the robotic workspace to obtain the parameters of the structural dynamics of the robotic milling system. Then, considering the dynamics model of the system, the optimization model based on surface location error (SLE) is proposed to obtain the optimal robotic posture. Finally, a series of experiments illustrate that pose optimization based on SLE can improve the machining accuracy and surface machining quality.
Article
Full-text available
Robotic flat-end milling of complex surfaces offers advantages such as high flexibility and high machining efficiency. In the process of planning the toolpath based on the cutter contact path, the robot functional redundancy and the tool orientation need to be solved carefully. This paper presents a posture optimization method for robotic flat-end milling. Taking the weighted sum of the machining width and the toolpath smoothness performance criterion as the objective function, an optimization model considering the joint limits and gouging avoidance is established. An efficient algorithm based on sequential quadratic programming is proposed to solve this nonconvex problem. During the execution of the algorithm, the machining width is efficiently calculated by an iterative method based on conformal geometric algebra, while its derivatives are approximated analytically. Simulations and experiments demonstrate that the presented technique can resolve the tool axis direction and the robot redundancy effectively to increase the machining width and improve the toolpath smoothness, thus reducing the time for machining and improving the surface quality.
Article
Full-text available
The chain of linear path segments is widely used in five-axis machining, but the tangential discontinuity of the path reduces machining efficiency and accuracy. This paper proposes an analytical G3 continuous corner smoothing method based on the conformal geometric algebra. Based on the locations of the tooltip point and a tool axis point, the toolpath is represented in the 6-dimensional Euclidean space. With the help of the representation of conformal transformations and circles in conformal geometric algebra, the path in the 6-dimensional space is smoothed by G3 continuous circle-based splines under the constraints of the maximum deviation error tolerance. The proposed approach can generate a smooth toolpath that passes through the discrete cutter locations given in the original linear segments analytically. The cycle time of machining is improved thanks to the small curvature and G3 continuity of the toolpath. The effectiveness and efficiency of the proposed method are validated by simulations and experiments.
Article
Industrial robot has been considered to be the most promising choice to replace traditional CNC machine tool due to its low cost, high flexibility, versatility and large workspace. However, insufficient stiffness of the robot often leads to deformations and vibrations during the machining process. To improve the machining performance of robot, a posture optimization method through controlling the functional redundancy of robot is proposed. First, considering the spindle weight-induced deformation and cutting force-induced deformation simultaneously, a comprehensive deformation index is proposed to evaluate the stiffness performance of robot posture along the robot milling trajectory. Then, ideal stiffness interval at each cutter location point is calculated by minimizing the proposed deformation index in consideration of the constraints of joint and joint velocity. Next, the kinematics performance index is taken as the optimization target, and the postures of the entire milling trajectory are optimized collaboratively within the ideal stiffness intervals. In order to approximate the global optimal solution, the genetic algorithm is used to solve the optimal robot posture. Finally, a series of simulations and experiments are carried out to verify the proposed index and robot trajectory optimization method, and the results show that the machining accuracy can be efficiently improved by the proposed method.
Article
Industrial robot's advantages in flexibility and workspace make them used increasingly in multi-axis milling process. However, because of their posture-dependent mechanical and kinematic performance, the quality of the trajectory affects the milling precision directly. Therefore, a virtual repulsive potential field (VRPF) algorithm of posture trajectory planning considering mechanical and kinematic constraints is proposed. In this algorithm, the mechanical and kinematic constraints are transformed into a VRPF, which generates virtual repulsive moment to drive the robot end effector (EE) away from the constraints boundaries. And as the tool center point (TCP) moves along a given tool path, the posture trajectory is planned under the effect of the virtual repulsive moment. Considering the constraints of the joint range, the configuration singularity, the tool orientation, the force-induced error, and the C³ continuity of joint movement, a posture trajectory planning model for general robotic multi-axis milling is established. And a VRPF function that transforms all the constraints into virtual repulsive potential energy is proposed to construct the VRPF. To describe the rotation of robot EE posture in the VRPF, a virtual dynamics model is built. And by solving the model with a proposed numerical algorithm, the robot EE posture trajectory is planned in continuous domain. To improve the quality of the planning posture trajectory, a preliminary setting method of the parameters in the VRPF algorithm is proposed. Compared with the planning algorithms in discrete space, the proposed VRPF algorithm in continuous domain shows advantages in milling quality and computing cost.
Article
Robot manipulators with 6 degree-of-freedom (DOF) have advantages of good flexibility and large working space. However, the relatively low stiffness deteriorates the machining accuracy and stability in robotic milling tasks, which restricts the widely application of robotic milling in industry. To increase the machining accuracy, taking advantage of a redundant degree of freedom of the robot, this paper presents a method to optimize the pose of the milling robot by taking the contour error as the optimization index. Firstly, the cutting forces are predicted in advance for a given milling task, and the deformations of the robot end-effector (EE) are calculated based on the stiffness model and cutting forces at all cutting locations (CLs). Secondly, the contour errors of the machined product are calculated based on the deformation errors and the tool path profile. Finally, the optimal tool poses are obtained by minimizing contour error through a discrete searching algorithm under the kinematic and smoothness constraints. Compared with optimization indexes used in existing studies, the main contributions of the proposed index lie on two aspects. First, the cutting force variances at different CLs are considered. Second, the contour accuracy is taken as a direct optimization index. Therefore, the proposed method is able to improve the form accuracy of robotic milling better than existing studies which use stiffness as the evaluation index. Simulation and experiments show that the robot trajectory optimized by the proposed method can significantly improve the machining accuracy compared with un-optimized results and existing studies.
Article
The flexible robot has more advantages over the traditional machine in the cutting process for complex surface workpiece like the 3D printing part which has less residual material. During the process, the geometric smoothness of moving joints is critically vital for machining efficiency and accuracy. The tool orientation should also be limited in certain region considering the interfering requirements for a complex workpiece. Besides, the industrial robot always has six degrees of freedom (Dof) at least, and there are redundant Dofs for robot surface machining. Therefore, a smooth machining process under the tool orientation requirements can be optimized from these redundant Dofs. In this paper, the tool posture differential vector along the tool-tip path curve is optimized firstly. The whole trajectory is numerically integrated by the optimized differential vector step by step. In every calculating step, the minimum 2-norm of the joints' differential vector along the tool path curve is set as part of the optimization object to ensure the minimal change of joints along the machining process. At the same time, a state-related optimal object for the differential vector is established to keep the tool orientation move away from the boundary of the feasible region. Combining with the above two objects, the tool posture differential vector along the tool-tip path curve in every integral step is optimized and the whole machining process trajectory is obtained by numerical integrating method.
Article
Industrial robot provides a promising alternative in free-surface milling. However, due to its low stiffness, it is difficult to guarantee the machining quality. While existing research considers mainly the influence of robot posture on stiffness, the workpiece setup's influence is equally important. In this study, to ensure the overall workpiece's robot stiffness meets the requirement of stiffness threshold in robotic milling, a method for simultaneously optimizing the robot posture and the workpiece setup is proposed. Firstly, to evaluate the robot stiffness during machining, this work presents a new stiffness index considering the robot's rotational deformation. And then, an optimization model is established to optimize both the robot redundancy and the workpiece setup, considering the constraints of joint limitation, singularity-free and collision-free. Moreover, for complex free-surface, to obtain the minimum number of posture changes of the robot and workpiece under the premise of meeting the limit of stiffness threshold, this work constructs a minimum set covering problem, which is solved by a clustering algorithm and a greedy algorithm. Finally, simulations and experimental studies are conducted to validate the effectiveness of the proposed robot stiffness index and the proposed optimization method, showing that the robot stiffness is improved during a milling process of the entire workpiece.