Вы находитесь на странице: 1из 73

Fun

 With  a  Symmetric  Bricard  Mechanism  


Introduction  
This  article  looks  at  a  few  features  of  a  conservative,  symmetric,  6R  Bricard  
mechanism  model  with  zero  potential  and  constant  kinetic  energy.  Only  the  special  
case  of  zero  momentum  is  considered,  which  effectively  immobilizes  the  
mechanism’s  barycentric  frame  and  produces  a  “single  degree  of  freedom”  (DOF)  
model.  The  Bricard  mechanism  model  has  a  single  characteristic  constraint  equation  
that  allows  its  six  joint  angles  and  their  first  time  derivatives  to  be  expressed  
analytically  in  terms  of  a  parametric  variable   θ  and  its  first  time  derivative   θ .  The  
( )
model’s  constant  kinetic  energy  equation   T θ ,θ = C  allows   θ  to  be  evaluated  for  
!
any   θ ,  which  may  be  numerically  integrated  to  obtain  !θ (t ) .  The  equation  

( ( )) ( )
12
θ = ± C T θ ,θ = 1  provides  a  simple  way  to  evaluate   θ ,  where   T θ ,θ = 1  
! !
corresponds  to  the  kinetic  energy  evaluated  at  !θ = 1 .  

 
Figure  1.  Symmetric,  floating  Bricard  mechanism  with  internal  joint  angles  at  90°.  

Figure  1  shows  an  orthographic  3D  CAD  image  of  a  floating,  seven-­‐DOF  symmetric  
Bricard  mechanism,  which,  according  to  Grubler’s  mobility  criteria,  should  have  
only  six  DOF.  The  over-­‐constrained  model  is  composed  of  six  rigid  links,  each  with  
an  ideal  revolute  joint  at  both  ends.  Each  link’s  two  joint  axes  are  perpendicular  to  
its  centerline  and  to  each  other.  Connecting  the  six  links  end-­‐to-­‐end  as  shown  in      
Fig.  1  makes  for  some  interesting  kinematics.  

©  2013  Roger  A.  Wehage  


Symmetric Bricard Mechanism

Figure  1  illustrates  the  configuration  where  the  link  centerlines  lie  along  edges  of  an  
imaginary  cube.  The  mechanism’s  barycentric  Cartesian  frame  !b ,  located  in  the  
center  of  the  image,  remains  fixed  in  space  when  the  spatial  momentum  is  zero.  

The  hexagon  of  colored  vectors  connecting  the  link  centers  and  centers  of  mass  
represents  one  form  of  progression  around  the  mechanism’s  kinematic  loop.  The  
link  centers  of  mass  in  this  symmetric  mechanism  remain  in  the  barycentric  frame’s  
x-­‐y  plane  for  all  configurations,  making  it  easier  to  specify  their  spatial  locations  as  a  
function  of   θ .  (Right-­‐handed  Cartesian  frames  are  color  coded  with  red  x-­‐axis,  green  
y-­‐axis,  and  blue  z-­‐axis  for  easier  identification.)  Placing  reference  frames  at  the  link  
centers  of  mass  means  that  their  origins  also  remain  in  the  barycentric  frame’s  x-­‐y  
plane  for  all  configurations.  In  addition,  the  reference  frame  origins  and  centers  of  
mass  remain  equidistant  from  the  barycentric  frame’s  origin  for  all  configurations.  
Specifying  the  orientation  of  each  link’s  reference  frame  relative  to  the  barycentric  
frame  is  somewhat  complicated  and  will  be  a  major  subject  of  this  article.  

Some  Preliminaries  
Disclaimer  
This  development  is  based  on  the  pioneering  work  of  many,  dating  as  far  back  as  the  
eighteenth  and  nineteenth  centuries.  For  the  most  part,  this  article  contains  nothing  
new,  and  the  sources  are  too  numerous  to  list.  Thus  few  references  are  included,  
which  is  probably  safe,  because  most  of  the  original  researchers  are  unlikely  to  
complain.  Readers  who  need  more  information  are  encouraged  to  consult  the  
Internet.  And  if  when  you  find  mistakes,  please  let  me  know.  

Why  this  article?  


A  few  years  ago  I  had  set  up  a  robust,  double-­‐precision  multibody  dynamics  model  
of  this  symmetric  Bricard  mechanism  with  zero  potential  and  constant  kinetic  
energy.  Starting  the  simulation  from  rest  in  the  configuration  shown  in  Fig.  1,  I  
applied  an  impulsive  torque  inside  one  joint  to  give  it  some  kinetic  energy.  Then  I  
simulated  it  articulating  for  1,000  hours  using  the  numerical  integration  program  
DE  developed  by  Shampine  and  Gordon.  The  numerical  integration  was  performed  
with  !10−12  absolute  and  zero  relative  error  settings.  At  the  end  of  the  1000  hour  
simulation,  total  energy  had  remained  constant  to  within  one  part  per  million.  In  
addition,  the  mechanism  had  drifted  less  than  one  kilometer  and  rotated  less  than  
one  revolution.  These  results  verified  that  linear  and  angular  momentum  had  
remained  nearly  zero  and  total  energy  nearly  constant.  (In  an  exact  solution,  total  
linear  and  angular  momentum  would  have  remained  zero,  and  the  barycentric  
frame  would  not  have  moved.  And  total  energy  would  have  remained  constant.  )  

© 2013 Roger A. Wehage 2 raw915 (at) gmail.com


Symmetric Bricard Mechanism

A  nice  screen  saver?    


An  easier  approach  to  modeling  and  simulating  a  floating  mechanism  of  this  sort  
would  be  to  pick  one  link  as  its  base,  reference  that  link  to  the  inertial  frame  through  
six  DOF,  and  compute  the  kinematics  and  kinetics  of  the  remaining  five  links  relative  
to  it.  Here  we  reference  the  mechanism’s  floating  barycentric  frame  to  the  inertial  
frame  and  reference  all  six  links  to  it.  A  nice  feature  of  this  approach  is  that  fixing  
the  barycentric  frame  to  ground  does  not  immobilize  any  link,  yet  still  effectively  
removes  six  DOF.  A  bad  feature  is  that  referencing  all  links  to  the  barycentric  frame  
is  not  a  straightforward  process.    And  yet  another  nice  feature  is  that  this  method  
exposes  inherent  symmetries  that  might  otherwise  go  unnoticed,  some  of  which  are  
apparent  in  Fig.  1.  

So  how  about  that  screen  saver?  Imagine  the  barycentric  frame  as  a  pedestal  upon  
which  the  Bricard  mechanism  is  mounted.  When  a  conservative  version  is  started  
up,  it  will  keep  going  and  going  and  going  like  the  Energizer  Bunny.  For  added  
variety,  the  barycentric  frame  could  be  freed  up,  giving  the  mechanism  additional  
rotational  and  translational  DOF.  To  avoid  getting  lost  in  space,  the  frame’s  origin  
could  be  constrained  to  bounce  off  the  interior  walls  of  a  3D  box.    

This  article  describes  how  the  spatial  motion  of  a  conservative,  “seven  DOF,”  
symmetric  Bricard  mechanism  with  zero  potential  energy  may  be  modeled  and  
simulated  without  setting  up  and  solving  its  equations  of  motion.  Imposing  zero  
momentum  and  constant  kinetic  energy  constraints  just  makes  it  easier  to  illustrate  
some  properties  of  this  mechanism.  

Once  a  set  of  parameters  has  been  provided,  its  kinetic  energy  may  be  set  to  any  
constant,  positive  value.  And  with  the  barycentric  frame  fixed  to  ground,  the  first  
time  derivative  of  joint  angles  may  be  evaluated.  In  addition,  the  spatial  position  and  
orientation  of  all  six  bodies  relative  to  the  barycentric  frame  may  be  computed.  This  
last  feature  is  especially  useful  when  animating  the  articulating  mechanism,  such  as  
for  a  screen  saver.  

When  referenced  to  its  fixed  barycentric  frame,  the  number  of  configurations  
needed  to  represent  the  mechanism  to  within  any  specified  tolerance  is  finite,  which  
means  that  the  same  finite  number  of  velocities  may  be  computed  from  the  kinetic  
energy  equation.  This  equation  provides  a  unique  functional  relationship  between  
the  single  parametric  angle   θ  and  its  derivative   θ  for  all  possible  configurations.  

When  simulating  the  floating  Bricard  mechanism  by  numerically  integrating  its  
equations  of  motion,  the   θ  and   θ  obtained  from  this  solution  could  be  compared  
with  the  corresponding   θ  and   θ  obtained  from  the  invariant  equations.  
Discrepancies  between  the   θ  and   θ  values  obtained  from  numerical  integration  

© 2013 Roger A. Wehage 3 raw915 (at) gmail.com


Symmetric Bricard Mechanism

may  be  associated  with  modeling  errors  or  errors  related  to  uncoupling  the  
equations  and  numerically  integrating  the  variables.  Assuming  that  the  dynamics  
model  and  the  uncoupling  processes  are  correct,  then  discrepancies  can  still  result,  
because  the  barycentric  frame  may  gradually  drift  relative  to  the  inertial  frame,  
allowing  the  mechanism  to  translate  and  rotate  in  space.  Barycentric  frame  drift  
violates  the  six  invariant  linear  and  angular  momentum  equations.  Some  drift  is  
inevitable  when  the  invariant  equations  are  not  imposed,  because  the  numerical  
integration  is  only  an  approximation  process.  Regardless  of  the  specified  integration  
error  tolerance,  exact  numerical  solutions  cannot  be  obtained  without  the  invariant  
constraints.  In  the  long  run,  accuracy  is  limited  by  numerical  round-­‐off  errors.  

Acknowledgements  
The  simulations,  images,  and  plots  for  this  article  were  obtained  on  a  2009  MacBook  
Pro  running  OS  X  10.6.8.  Vectorworks  2010,  http://www.vectorworks.net/  was  the  
CAD  program  used  to  generate  the  various  images.  Inkscape,  http://inkscape.org/  
running  in  XQuartz,  http://xquartz.macosforge.org/landing/  was  used  to  set  up  and  
modify  some  of  the  images.  Maxima  http://maxima.sourceforge.net/  was  used  to  
symbolically  process  the  kinematic  loop  equations.  GNU  Octave  
http://www.gnu.org/software/octave/  was  used  to  solve  the  equations.  And  
Gnuplot  http://www.gnuplot.info/  was  used  to  produce  the  plots.  

Preliminary  kinematics  
The  woes  of  numerical  methods  
Six  highly  nonlinear  constraint  equations,  expressed  in  terms  of  six  revolute  joint  
variables,  are  required  to  define  the  Bricard  mechanism’s  kinematics.  Bricard  called  
this  and  similar  mechanisms  paradoxical,  because  figuring  out  their  correct  mobility  
is  difficult.  http://math.aalto.fi/~arponen/my_stuff/rapoversio_bricard.pdf    

The  mechanism’s  six-­‐by-­‐six  constraint  Jacobian  matrix,  expressed  in  terms  of  its  six  
joint  variables,  has  a  rank  of  5,  which  gives  it  one  internal  DOF.  However,  the  
slightest  of  geometrical  errors  will  cause  the  matrix  to  have  a  rank  of  6  and  prevent  
articulation.  This  happens  because  even  the  slightest  of  errors  in  aligning  or  
positioning  the  joints  will  prevent  the  mechanism  from  assembling  or  articulating,  
unless  the  joints  are  given  sufficient  clearances  or  the  links  are  flexible.  In  this  
development,  all  bodies  are  assumed  to  be  rigid  and  zero-­‐clearance  joints  are  
assumed  perfectly  aligned,  so  technically  the  links  will  be  able  to  articulate  relative  
to  each  other.  However,  numerical  errors  are  always  lurking.  

Thus,  in  the  presence  of  numerical  round-­‐off  errors  and  constraint  violations,  even  
when  the  zero-­‐clearance  joints  are  perfectly  aligned,  some  multibody  dynamics  

© 2013 Roger A. Wehage 4 raw915 (at) gmail.com


Symmetric Bricard Mechanism

programs  may  get  the  wrong  solution.  Rank-­‐revealing  numerical  methods,  such  as  
Gaussian  Elimination  with  Complete  Pivoting,  may  find  an  incorrect  rank  for  
Jacobian  matrices  associated  with  constraints  of  this  type.  Research  related  to  these  
issues  has  been  performed  but  will  not  be  discussed  here.  It  suffices  to  say  that  
incorrect  processing  of  kinematic  constraint  equations  may  cause  dynamic  
simulations  to  fail  or  give  unexpected,  possibly  undetected,  unreliable  results.  

But,  as  will  become  apparent  in  the  next  section,  we’ll  not  have  to  deal  with  such  
issues  here.  

Dissecting  the  kinematic  constraint  equations  


The  constraint  simplifications  described  in  this  article  would  generally  not  be  
performed  for  machine  design  and  analysis  purposes,  either  because  the  processes  
are  too  complicated  or  because  such  simplifications  don’t  exist.  The  constraints  for  
this  symmetric  mechanism  were  simplified  to  provide  some  insight  into  the  model’s  
kinematic  and  kinetic  properties.  

The  symmetric  Bricard  mechanism’s  loop  constraint  equations  are  complicated,  but  
a  few  simple  equations  among  its  six  joint  variables  may  be  extracted  using  a  
symbolic  processor,  such  as  Maxima.  When  the  model  is  set  up  symmetrically,  as  
illustrated  in  Fig.  1,  and  the  joint  variables  are  numbered  sequentially  around  the  
loop  from  0  to  5  and  labeled   θ i , i = 0,...,5 ,  then  two  sets  of  constraints  on  these  
variables,  namely   θ 0 = θ 2 = θ 4  and   θ1 = θ 3 = θ 5 ,  are  immediately  identified.  

These  constrains  then  eliminate  four  DOF  from  the  model  and  leave  only  two  unique  
variables,  labeled   θ e  and   θ o ,  where  the   e  and   o  subscripts  stand  for  the  respective  
even  and  odd-­‐numbered  indices  associated  with  the  joints  and  links.  Examples  in  
this  paper  will  often  use  various  numerical  indices  associated  with  the  even  and  
odd-­‐numbered  variables  and  links,  such  as   θ 0  and   θ 5 ,  in  place   θ e  and   θ o .  

Maxima  extracted  one  more  equation  

  (1+ cosθ e )(1+ cosθ o ) = 1     (1)  

from  the  loop  equations,  which  is  this  mechanism’s  characteristic  equation.  With  the  
other  four  constraints  implied,  Eq.  (1)  is  what  makes  the  model  perform  as  it  does.  
The  expanded  kinematic  loop  constraint  equations  could  fill  many  pages,  but  they  
essentially  boil  down  to  this  one  simple  characteristic  equation.  

Thus  Eq.  (1)  is  the  heart  of  this  development.  It  shows  the  exact  kinematic  
relationship  between   θ e  and   θ o ,  between   θ 0  and   θ 5 ,  or  between  any  pair  of  even  
and  odd-­‐numbered  joint  variables,  even  when  the  two  joints  are  not  common  to  the  

© 2013 Roger A. Wehage 5 raw915 (at) gmail.com


Symmetric Bricard Mechanism

same  link.  In  essence,  Eq.  (1)  allows  the  introduction  of  a  single  parametric  variable  
θ  to  represent  the  entire  mechanism’s  internal  kinematics,  because,  as  will  be  
discovered  shortly,  it  constrains  each  of  the   θ e  and   θ o  variables  to  lie  within  the  
limits  of   ± 2π 3  radians.  Therefore  no  single  joint  variable  can  be  suitable  for  
representing  all  configurations.  

The  barycentric  frame  


Figure  1  illustrates  just  one  of  an  infinite  but  repeatable  number  of  possible  
configurations  that  the  floating  Bricard  mechanism  may  take.  In  this  configuration,  
the  links  are  oriented  relative  to  each  other  such  that  their  centerlines  lie  along  six  
edges  of  an  imaginary  cube.  That  is,  the  connecting  joint  angle  in  each  pair  of  
adjacent  links  is  set  at  90°,  so  the  adjacent  link  centerlines  are  at  right  angles  to  each  
other,  as  in  a  cube.  Thus  the  six  links  do  not  lie  in  a  plane  as  the  orthographic  image  
might  at  first  suggest,  but  the  rainbow  of  six  vectors  connecting  their  centers  of  
mass  and  forming  the  hexagon  do,  and  variations  of  these  six  vectors  will  remain  in  
this  plane  for  all  configurations.  

The  plane  containing  the  six  long  vectors  is  the  plane  of  symmetry,  the  barycentric  
plane  to  which  a  Cartesian  coordinate  frame   b  has  been  attached  at  the  
mechanism’s  geometrical  center  as  shown  in  Fig.  1.  The  red  x  and  green  y-­‐axes  of  
frame   b  lie  in  the  barycentric  plane,  and  the  blue  z-­‐axis  is  perpendicular  to  it.  The  z-­‐
axis  then  lies  on  the  mechanism’s  axis  of  symmetry.    

When  all  six  links  have  identical  dimensions,  have  centers  of  mass  at  their  
geometrical  centers,  and  have  principal  inertia  axes  aligned  with  the  body-­‐fixed  
frames  at  their  centers,  then  the  Bricard  mechanism’s  combined  inertia,  which  is  its  
barycentric  inertia,  is  centered  on  frame   b .  In  essence,  for  all  configurations,  the  
floating  mechanism’s  center  of  mass  lies  at  the  origin  of  frame   b ,  and  its  principal  
inertia  axes  are  aligned  with  these  axes.  Thus  the  articulating  mechanism’s  6  by  6  
inertia  matrix,  referenced  to  and  expressed  in  barycentric  coordinates,  is  diagonal  
for  all  configurations.  

A  bit  on  spatial  velocity  


The  links,  numbered  from  0  to  5,  are  associated  with  the  respective  color-­‐coded  and  
numbered  joints.  The  symbol g  denotes  a  Cartesian  frame  that  represents  ground  or  
an  inertial  frame.  Let  the  6  by  1  column  matrix    

⎡ t b ⎤
=⎢ b ⎥    
gb,b
  v b
(2)  
gb,b
⎢ ω gb ⎥
⎣ ⎦

© 2013 Roger A. Wehage 6 raw915 (at) gmail.com


Symmetric Bricard Mechanism

represent  the  spatial  velocity  of  barycentric  frame   b ,  and  let    

⎡ t b ⎤ ⎡ t b ⎤ ⎡ t b ⎤
=⎢ b ⎥ + ⎢ bi,b ⎥ = ⎢ gi,b ⎥    
gb,b
  v b
=v b
+v
b
(3)  
gi,b gb,b bi,b
⎢ ω gb ⎥ ⎢ ωb ⎥ ⎢ ω gib ⎥
⎣ ⎦ ⎣ bi ⎦ ⎣ ⎦

represent  the  spatial  velocity  of  the  ith  link.  

The  general  symbol   tijb ,b  represents  the  linear  or  translational  velocity  of  frame  ! j  
!
relative  to  frame  !i  at  the  common  points  identified  by  the  symbol  !b  following  the  
comma.  That  is,  all  linear  velocities  are  taken  at  points  that  instantaneously  coincide  
with  the  origin  of  frame  !b .  The  superscript  !b indicates  that  the  coordinates  are  
expressed  in  frame  !b .  In  a  similar  manner,  the  general  symbol   ω bij  represents  the  
!
angular  or  rotational  velocity  of  frame  ! j  relative  to  frame  !i ,  and  the  superscript  
!b indicates  that  the  coordinates  are  expressed  in  frame  !b .  Thus  each  spatial  velocity  
is  expressed  in  the  coordinates  of  frame   b  and  referenced  to  its  origin,  as  indicated  
by  the   b  superscript  and  the   b  subscript  following  the  comma.  

Spatial  momentum  
Total  spatial  momentum  of  the  mechanism  is  given  as  
5
b
pb,b = ∑ M i,bb
bb b
vgi,b
i=0

( )
5
= ∑ M i,bb
bb b
vgb,b + vbi,b
b

  i=0
    (4)  
⎛ 5 bb ⎞ b
5

⎜⎝ ∑ M i,bb ⎟⎠ vgb,b + ∑ M i,bb vbi,b


bb b

i=0 i=0
5
= M b,bb
bb b
vgb,b + ∑ M i,bb
bb b
vbi,b
i=0

= ∑ i=0 M i,bb
5
The  6  by  6  diagonal  matrix   M b,bb
bb bb
 represents  the  mechanism’s  second-­‐
order  barycentric  inertia  tensor,  expressed  at  the  origin  of  its  barycentric  frame  !b  
and  in  its  coordinates,  and  the  6  by  1  column  matrix   pb,b
b
 represents  its  spatial  
momentum,  also  expressed  at  the  origin  of  frame  !b  and  in  its  coordinates.  

When  the  spatial  momentum  is  zero  


The  conservative  Bricard  mechanism  model  discussed  in  this  paper  assumes  
that pb,b
b
 is  constant  after  having  been  given  some  energy  by  applying  one  or  more  

© 2013 Roger A. Wehage 7 raw915 (at) gmail.com


Symmetric Bricard Mechanism

impulsive  forces  or  torques.  Or   pb,b b


 may  simply  be  assigned  any  desired  value.  One  
interesting  and  unique  possibility  is  to  apply  equal  and  opposite  activation  impulses  
or  torques  inside  one  or  more  of  the  joints  or  between  links,  which  introduces  
kinetic  energy  while  keeping   pb,b b
 constant,  or  zero  if  it  was  zero  to  begin  with.  Or  
b
pb,b  could  just  be  set  to  zero,  as  will  be  done  here.  

When  the  spatial  momentum  is  set  to  zero,  Eq.  (4)  yields  
5
  bb
M b,bb b
vgb,b = − ∑ M i,bb
bb b
vbi,b     (5)  
i=0

When  the  mechanism’s  spatial  momentum  is  zero,  it  must  not  drift  through  space  
nor  rotate  about  any  axis.  In  essence,  its  barycentric  frame   b  must  not  move,  which  
means  that   vgb,b
b
= 0  and  

5
  ∑M bb b
v
i,bb bi,b = 0     (6)  
i=0

Since  the  barycentric  frame  does  not  move  when   pb,b b


 is  zero,  it  becomes  an  inertial  
frame.  Equation  (6)  requires  that  the  six  constrained,  articulating  links  move  
relative  to  each  other  and  the  stationary  barycentric  frame   b  such  that  their  
individual  spatial  momentums  sum  to  zero  for  all  allowable  configurations.  In  this  
development  we  assume  that  the  mechanism  moves  relative  to  the  barycentric  
frame   b  in  a  specific  way  and  later  verify  that  Eq.  (6)  is  satisfied.  

The  constant  kinetic  energy  constraint  


Maintaining  constant  momentum  is  a  big  demand  for  the  Bricard  mechanism,  but  
what  if  it  must  also  satisfy  the  constant  kinetic  energy  constraint  

1 5 bT bb b
  T= ∑ vbi,b M i,bbvbi,b = C    
2 i=0
(7)  

which  now  makes  a  total  of  seven  velocity  constraints,  the  same  as  its  DOF?  
Equation  (6)  handles  the  mechanism’s  six  floating  velocity  components,  and  Eq.  (7)  
takes  care  of  the  single  internal  velocity  component.  

© 2013 Roger A. Wehage 8 raw915 (at) gmail.com


Symmetric Bricard Mechanism

Elements  of  the  Bricard  mechanism  model  


Six  links  and  a  hexagon  

 
Figure  2.  The  even  and  odd-­‐numbered  links  that  form  the  Bricard  mechanism.  

Figure  2  shows  the  six  links  of  the  Bricard  mechanism  laid  out  for  easy  visualization.  
Each  link  has  a  Cartesian  coordinate  reference  frame  attached  at  its  geometrical  
center,  which  is  also  its  center  of  mass.  The  respective  x,  y,  and  z-­‐axes  of  each  
coordinate  frame  are  colored  red,  green,  and  blue  for  easy  identification.  The  green  
y-­‐axes  of  all  frames  are  aligned  along  the  link  centerlines.  Thus  all  y-­‐axes  in  the  
assembled  configuration  (refer  to  Fig.  1)  align  with  a  positive  traversal  around  the  
mechanism’s  kinematic  loop;  they  also  represent  a  positive  circuit  around  the  
barycentric  frame’s  blue  z-­‐axis.  

Coordinate  systems  attached  at  the  pin  and  hinge  ends  of  the  links  are  oriented  so  
that  the  even  and  odd-­‐numbered  joint  angles   θe  and   θo  are  zero  when  adjacent  links  
! !
form  a  straight  line.  The  included  angles   π − θe  and   π − θo  are  sometimes  used  in  
! !
equations  instead  of   θe  and   θo .  Since   θe  and   θo  can  take  on  values  between  !±2π 3 ,  
! ! ! !
these  included  angles  have  values  between  !π 3  and  !5π 3 .  Figure  1  shows  included  
angles  of  !π 2 ,  and  two  upcoming  examples  will  show  included  angles  of   π  and  !π 3  
for  joint  angles  of  zero  and  !2π 3 .  When   θe  or   θo  are  less  than  zero,  the  mechanism  
! !
essentially  turns  inside  out,  and  the  included  link  angles  become  greater  than   π .  

© 2013 Roger A. Wehage 9 raw915 (at) gmail.com


Symmetric Bricard Mechanism

 
Figure  3.  Vectors  joining  adjacent  link  centers  of  mass  in  the  barycentric  frame’s  x-­‐y  
plane.  

As  noted  earlier,  when  the  conservative  mechanism  has  zero  spatial  momentum,  its  
barycentric  frame  remains  fixed  in  space  as  the  bodies  articulate  around  it.  The  link  
centers  of  mass  remain  in  the  barycentric  frame’s  x-­‐y  plane,  and  they  undulate  
about  six  central  points  spaced  at  60°  intervals  on  a  circle  of  varying  radius  and  
centered  on  the  blue  z-­‐axis.  Figure  3  shows  six  equal-­‐length  vectors  with  their  heads  
and  tails  located  at  the  link  centers  of  mass  for  the  configuration  shown  in  Fig.  1,  so  
these  vectors  also  lie  in  the  barycentric  frame’s  x-­‐y  plane.  

The  six  corners  of  the  hexagon  in  Fig.  3  identify  central  points  about  which  the  
centers-­‐of-­‐mass  will  undulate  in  the  barycentric  plane.  What  this  means,  as  will  be  
illustrated  shortly,  is  that  the  six  link  centers  of  mass  don’t  remain  stationary  in  the  
barycentric  plane,  but  move  along  small  arc-­‐like  paths  in  the  plane  as  the  
mechanism  articulates.  We  won’t  draw  out  these  paths,  but  later  figures  will  show  
points  at  both  ends  of  these  short  curves.  And,  as  mentioned  earlier,  the  six  corners  
of  the  hexagon  in  Fig.  3  identify  the  center  points  of  these  curves.      

Let     represent  the  length  of  each  link,  which  is  the  distance  between  adjacent  
revolute  joint  axes.  Then,  for  the  configuration  in  Fig.  1,  each  edge  of  the  hexagon  in  
Fig.  3  is  the  hypotenuse  of  a  right  triangle  with  equal  leg  lengths  of    2 .  Thus  each  
vector  has  a  length  of   ( )
2 / 2  .  The  geometry  in  Fig.  3  also  indicates  that  each  link’s  
center  of  mass  is   r = ( )
2 / 2   away  from  the  barycentric  frame’s  origin,  which  is  at  
the  center  of  a  radius   r  circle  containing  all  six  points.  Equations  to  evaluate  the  
circle  radius   r  and  the  lengths,   e  and   o ,  of  the  even  and  odd-­‐numbered  vectors  
! !
for  all  configurations  will  be  derived  later.  

© 2013 Roger A. Wehage 10 raw915 (at) gmail.com


Symmetric Bricard Mechanism

Figure  3  also  shows  that  the  barycentric  frame’s  red  x-­‐axis  is  perpendicular  to  and  
points  toward  the  midpoint  of  the  long  red  vector,  and  it  is  perpendicular  to  and  
points  away  from  the  midpoint  of  the  cyan  vector.  Orienting  the  barycentric  frame’s  
x  and  y-­‐axes  relative  to  the  Bricard  mechanism  is  arbitrary,  but  the  orientation  will  
not  change  once  set.  Thus  the  red  x-­‐axis  will  remain  perpendicular  to  and  centered  
on  the  long  red  and  cyan  vectors  for  all  configurations.  However,  as  will  be  seen  
shortly,  the  six  vectors  will  continually  change  magnitude  and  position  as  the  
mechanism  articulates,  but  each  vector’s  direction  and  orientation  will  remain  fixed  
relative  to  the  barycentric  frame.  And  all  vectors  will  remain  in  the  barycentric  
frame’s  x-­‐y  plane  for  all  configurations.  

Views  tangent  to  the  barycentric  plane  

 
Figure  4.  Side  view  of  Bricard  mechanism  looking  down  the  long  red  vector.  

 
Figure  5.  Skewed  side  view  of  Bricard  mechanism  showing  all  six  links  and  joints.  

Figures  4  and  5  show  the  Bricard  mechanism  viewed  tangent  to  its  barycentric  
plane,  which  is  horizontal  in  these  images.  The  orthographic  view  in  Fig.  4  is  looking  
straight  down  the  long  red  vector  from  its  tail  end  and  straight  down  the  cyan  vector  
from  its  head  end.  These  figures  show  another  symmetric  property  of  the  
mechanism,  where  centers  of  the  even-­‐numbered  red,  green,  and  blue  joints  are  
equidistant  below  the  barycentric  frame’s  x-­‐y  plane,  and  centers  of  the  odd-­‐
numbered  yellow,  cyan,  and  magenta  joints  are  equidistant  above  it.  As  the  
mechanism  articulates,  the  two  sets  of  joints  will  periodically  swap  positions,  the  
even-­‐numbered  joints  either  above  or  below  the  x-­‐y  plane,  the  odd-­‐numbered  joints  
always  on  the  opposite  side,  and  the  two  sets  of  joints  always  equidistant  from  the  
plane.  At  those  configurations  where  the  two  sets  of  joints  are  just  swapping  
positions,  the  centers  of  all  six  joints  will  also  lie  in  the  barycentric  frame’s  x-­‐y  plane.  
Two  examples  of  such  configurations  are  shown  later.  

© 2013 Roger A. Wehage 11 raw915 (at) gmail.com


Symmetric Bricard Mechanism

Two  flavors  of  links  


The  six  links  in  Fig.  2  are  not  all  kinematically  identical.  Consider  the  three  even-­‐
numbered  links  in  the  upper,  right  part  of  the  figure.  Moving  from  the  frame  
attached  to  the  red,  green,  or  blue  pin  end  of  each  link  to  the  respective  frame  
attached  to  the  yellow,  cyan,  or  magenta  hinge  end  requires  a  90°  twist  to  the  left  
around  each  link’s  centerline.  In  a  similar  manner,  for  the  three  links  in  the  lower,  
left  part  of  the  figure,  moving  from  the  frame  attached  to  the  yellow,  cyan,  or  
magenta  pin  end  of  each  link  to  the  respective  frame  attached  to  the  green,  blue,  or  
red  hinge  end  requires  a  90°  twist  to  the  right  around  each  link’s  centerline.  The  
different  sets  of  hinge-­‐end  orientations  are  required  to  maintain  symmetry  in  the  
constraint  equations,  and  the  different  orientations  are  assumed  to  have  no  effect  on  
the  links’  inertia  properties.  The  frame  at  the  pin  end  of  each  link  has  the  same  
orientation  as  the  link’s  reference  frame  at  its  center,  but  the  frame  at  the  opposite  
end  has  a  different  orientation  as  a  result  of  the  above  twists.    

From  a  cube  to  a  triangle  and  a  new  hexagon  

 
Figure  6.  Top  view  of  Bricard  mechanism  with   θ e = 0  and   θ o = 2π 3 .  

Figure  6  shows  another  Bricard  mechanism  configuration  where  the  centerlines  of  
all  links  and  the  centers  of  all  joints  lie  in  the  barycentric  frame’s  x-­‐y  plane.  In  this  
case,  the  red,  green,  and  blue  joint  angles   θ e  are  zero,  and  the  yellow,  cyan,  and  
magenta  joint  angles   θ o  are   2π / 3  radians  or  120°.  This  value  for   θ o  is  as  large  as  
any  joint  angle  can  get,  and  it  will  be  shown  later  that  each  angle  can  range  between  
±2π / 3  radians  or   ±120° .  In  this  configuration,  the  long  red,  green,  and  blue  vectors  
lie  along  the  link  centerlines,  and  the  shorter  yellow,  cyan,  and  magenta  vectors  
subtend  the  respective  yellow,  cyan,  and  magenta  joint  angles,  each  to  form  one  side  
of  an  equilateral  triangle  whose  edge  lengths  are    2 .  These  lengths  may  be  verified  
by  inspecting  Fig.  6.  

© 2013 Roger A. Wehage 12 raw915 (at) gmail.com


Symmetric Bricard Mechanism

 
Figure  7.  Vectors  joining  adjacent  link  centers  of  mass  in  the  barycentric  frame’s  x-­‐y  
plane.  

Figure  7  shows  the  six  long  vectors  that  connect  the  centers  of  mass  in  the  
barycentric  plane  of  the  mechanism  in  Fig.  6.  The  barycentric  frame’s  red  x-­‐axis  is  
still  orthogonal  to  and  centered  on  the  red  and  cyan  vectors  as  before,  and  the  six  
vectors  still  have  the  same  angular  orientations,  but  their  magnitudes  and  positions  
have  changed.  Where  in  the  previous  example  each  vector  had  a  magnitude  of  
( )
2 / 2  ,  now  the  long  red,  green,  and  blue  vectors  have  a  magnitude  of    ,  and  the  
yellow,  cyan,  and  magenta  vectors  have  a  magnitude  of    / 2 .  The  radius  of  the  mass-­‐
center  circle  (to  the  corners  of  the  hexagon)  has  also  increased  from   r = 6 12  to  
r = 7 /12 .  These  are  the  extreme  values  of   r .  A  formula  for  computing   r  for  all  
configurations  will  be  derived  later,  and   r  will  be  plotted  as  a  function  of   θ .  

Another  triangle  and  hexagon  

 
Figure  8.  Top  view  of  Bricard  mechanism  with   θ e = 2π 3  and   θ o = 0 .  

© 2013 Roger A. Wehage 13 raw915 (at) gmail.com


Symmetric Bricard Mechanism

Figure  8  shows  a  third  Bricard  mechanism  configuration  where  the  centerlines  of  all  
links  and  the  centers  of  all  joints  again  lie  in  the  barycentric  frame’s  x-­‐y  plane.  Now  
the  even-­‐numbered  red,  green,  and  blue  joints  have  positive  angles  of   θ e = 2π / 3  
radians  or  120°,  and  the  odd-­‐numbered  yellow,  cyan,  and  magenta  joints  have  
angles  of   θ o = 0 .  In  this  case  the  red,  green,  and  blue  vectors  have  a  magnitude  of  
 / 2 ,  and  the  yellow,  cyan,  and  magenta  vectors  have  a  magnitude  of    .  

 
Figure  9.  Vectors  joining  adjacent  link  centers  of  mass  in  the  barycentric  frame’s  x-­‐y  
plane.  

Figure  9  shows  how  the  six  long  vectors  are  laid  out  relative  to  the  barycentric  
frame  for  the  configuration  in  Fig.  8.  Again,  these  vectors  have  the  same  orientation  
relative  to  the  barycentric  frame,  and  only  their  lengths  and  symmetric  positions  
have  changed.  

Comparing  the  three  configurations  

 
Figure  10.  Overlaid  vectors  for  the  Bricard  mechanism  configurations  in  Figs.  1,  6,  
and  8.  

© 2013 Roger A. Wehage 14 raw915 (at) gmail.com


Symmetric Bricard Mechanism

The  hexagons  formed  by  the  six  vectors  connecting  the  link  centers  and  centers  of  
mass  for  the  Bricard  mechanism  configurations  shown  in  Figs.  1,  6,  and  8  are  
overlaid  in  Fig.  10  for  comparison.  The  link  centers  of  mass  do  not  circulate  around  
the  barycentric  frame’s  blue  z-­‐axis,  but  undulate  within  small  regions  in  its  x-­‐y  plane  
as  suggested  by  the  figure.  From  the  earlier  calculations,  the  centers  of  mass  are  
( )
seen  to  move  radially  no  more  than   7 /12 − 6 /12  = 0.0566 .  The  
circumferential  movement  of  these  points  is  a  little  more  difficult  to  quantify,  but  
the  corners  of  the  hexagons  in  Figs.  7  and  9  represent  the  extremes.  The  
superimposed  images  in  Fig.  10  suggest  that  these  points  move  back  and  forth  along  
small  arc-­‐like  segments  spaced  at  60°  intervals  around  the  barycentric  frame’s  z-­‐
axis.  

Parameterizing  the  equations,  the  recipe  


The  six  conservation-­‐of-­‐spatial-­‐momentum  equations  and  the  single  kinetic-­‐energy  
equation  are  sufficient  to  express  the  Bricard  mechanism’s  six  articulating  body  
velocities  in  terms  of  a  single  parametric  angle  variable   θ  and  its  first  time  
derivative   θ .  The  examples  given  here  are  for  a  mechanism  with  zero  spatial  
momentum,  so  the  barycentric  frame  remains  fixed  in  space  as  the  mechanism  
articulates.  Thus  the  absolute  spatial  displacement  and  velocity  of  each  link  in  the  
conservative  model  are  expressed  relative  to  the  fixed  barycentric  frame  in  terms  of  
θ  and   θ .  

Equations  for  expressing  the  mechanism’s  even  and  odd-­‐numbered  joint  angles,  
θ e and   θ o ,  and  their  first  time  derivatives  in  terms  of   θ  and   θ  are  derived  later,  but  
the  process  might  go  as  follows.  To  start  the  analysis,  require  that  the  spatial  
momentum  be  zero  and  set  a  positive  value  for  the  kinetic  energy.  Since  the  
barycentric  frame  !b  is  fixed,  let  it  replace  the  global  inertial  frame  !g .  

First  specify  an  initial  value  for   θ  and  evaluate   θ e and   θ o .  With   θ e and   θ o  known,  
assemble  the  mechanism  relative  to  its  barycentric  frame;  obtain  equations  to  
evaluate   θe and   θo  as  functions  of   θ e ,   θ o ,  and   θ ;  express  the  spatial  velocity  of  each  
link  relative  to  the  barycentric  frame  in  terms  of   θ e ,   θ o ,   θe ,  and   θo ;  and  use  these  
equations  to  express  the  kinetic  energy  in  terms  of   θ e ,   θ o ,  and   θ  and  solve  this  
equation  for   θ .  

Then  with   θ  known,  numerically  integrate  it  to  get  the  next  value  for   θ  and  repeat  
the  process.  Using  numerical  integration  to  obtain  the  next  value  of   θ  is  useful,  
because  the  conservation  equations  do  not  indicate  how   θ  should  evolve  over  time,  
given  current  values  for   θ  and   θ .  However,  if  synchronizing   θ  with  time  is  not  
important,  then  any  value  for   θ  may  be  used  for  the  next  step.  

© 2013 Roger A. Wehage 15 raw915 (at) gmail.com


Symmetric Bricard Mechanism

Normalized  parametric  velocity  


The  problem  with  the  above  method  is  that  the  Bricard  mechanism  is  subject  to  
some  complex  constraint  equations,  and  it  may  be  cumbersome  and  expensive  to  
symbolically  process  the  necessary  relationships  among  its  variables.  Simulating  the  
Bricard  mechanism  with  constant  kinetic  energy  means  that  a  symbolic  equation  for  
its  kinetic  energy,  expressed  in  terms  of   θ  and   θ ,  must  be  formed  and  solved  for   θ  
for  each   θ .  Then   θ  may  be  evaluated  and  numerically  integrated  to  get  the  next  
value  for   θ .    

There  are  some  issues  associated  with  symbolically  solving  for   θ  from  the  kinetic  
energy  equation.  First,  this  equation  is  somewhat  complex,  making  it  difficult  to  
isolate  and  solve  for   θ .  Second,  the  parametric  variable   θ  is  not  natural  to  the  
model,  and  the  slopes  of  various  intermediate  quantities  that  multiply  with   θ  are  
discontinuous  at  transition  points  between  the  equations  relating   θ e and   θ o  to   θ .  

It  turns  out  to  be  easier  and  more  efficient  to  give   θ  a  normalized  value  of   θ = 1  for  
any  value  of   θ  and  then  solve  for  the  normalized  kinetic  energy   T (θ ,θ = 1) .  Now  
T (θ ,θ = 1)  will  generally  not  be  equal  to  the  desired  constant   T (θ ,θ ) = C ,  but  the  
two  quantities  are  related  as  

  T (θ ,θ ) = θ 2T (θ ,θ = 1)     (8)  

 from  which   θ  may  be  solved  for  as  

  θ = ± T (θ ,θ ) T (θ ,θ = 1)     (9)  

Equation  (8)  holds  because  each  spatial  velocity   vbi,b b


 in  Eq.  (7)  is  proportional  to  the  
scalar   θ .  Thus   T (θ ,θ )  in  Eq.  (7)  is  proportional  to  the  scalar   θ 2 ,  and   θ 2  may  be  
factored  out.    

The  sign  on   θ  in  Eq.  (9)  is  set  according  to  whether   θ  is  to  be  increasing  or  
decreasing  with  time.  The  values  computed  for   θ  from  Eq.  (9)  will  be  referred  to  as  
the  scaled   θ ,  and  the  slope  of  its  curve  as  a  function  of   θ  will  be  discontinuous.  
Curves  for  normalized  quantities  that  depend  linearly  on   θ ,  but  have  been  
evaluated  using  the  normalized   θ = 1  for  the  purpose  of  computing   T (θ ,θ = 1) ,  will  
also  have  discontinuous  slopes.  As  noted  earlier,  these  slopes  are  discontinuous  
because  second  derivatives  of  the  parametric  equations  relating   θ e  and   θ o  to   θ  are  
discontinuous  at  the  transition  points.  These  discontinuities  will  be  discussed  later.  

© 2013 Roger A. Wehage 16 raw915 (at) gmail.com


Symmetric Bricard Mechanism

However,  rescaling  the  normalized  curves  with  discontinuous  slopes  by  the  scaled  
θ  curve  with  discontinuous  slope  generates  new  scaled  curves  with  continuous  
slopes  and  provides  values  that  would  have  been  used  to  evaluate  the  desired  
constant   T (θ ,θ )  if   θ  were  known.  Plots  of  the  various  normalized  and  scaled  
quantities  involved  in  computing   T (θ ,θ = 1)  and   T (θ ,θ )  will  be  presented  as  a  
function  of   θ  for  comparison  purposes.  

The  resulting  differences  between  normalized  and  scaled  curves  are  sometimes  
striking,  especially  the  scaled  curve  for   θ .  It  should  be  expected  that  all  curves  used  
to  evaluate   T (θ ,θ )  have  continuous  slopes,  because  the  kinetic  energy  is  constant,  
which  clearly  has  a  continuous  slope.  But  before  these  curves  are  obtained,  it  will  be  
useful  to  take  a  closer  look  at  the  Bricard  mechanism.  

Building  a  symmetric  Bricard  mechanism  


Displacement  across  an  odd-­‐numbered  joint  

 
Figure  11.  Section  of  the  Bricard  mechanism  with  even  and  odd-­‐numbered  links,  
and  odd-­‐numbered  connecting  joint.  

This  discussion  will  show  how  adjacent  Cartesian  reference  frames  on  links  are  
related  to  each  other  through  their  connecting  revolute  joints.  Figure  11  shows  two  
links  connected  by  an  odd-­‐numbered  joint  1  (yellow),  with  an  even-­‐numbered  link  0  
(red/yellow)  on  the  right  and  an  odd-­‐numbered  link  1  (yellow/green)  on  the  left.  
The  matrix  product    

  Deo = Ty (  / 2 ) Ry ( −π / 2 ) Rz (θ o ) Ty (  / 2 )     (10)  

© 2013 Roger A. Wehage 17 raw915 (at) gmail.com


Symmetric Bricard Mechanism

represents  the  spatial  displacement  from  the  middle  reference  frame  attached  to  the  
even-­‐numbered  link  (red/yellow)  on  the  right  to  the  middle  reference  frame  
attached  to  the  odd-­‐numbered  link  (yellow/green)  on  the  left.  The  spatial  
transformation   Ty (  / 2 )  means  translate  (along  the  green  y-­‐axis)  half  the  distance  
along  the  even-­‐numbered  (red/yellow)  link’s  centerline,   Ry ( −π / 2 )  means  rotate  by  
−π / 2  around  the  centerline  of  the  even-­‐numbered  (red/yellow)  link  (again  around  
the  green  y-­‐axis),   Rz (θ o )  means  rotate  by   θ o  around  the  blue  z-­‐axes  of  the  odd-­‐
numbered  (yellow)  joint,  and   Ty (  / 2 )  means  translate  half  the  distance  along  the  
odd-­‐numbered  (yellow/green)  link’s  centerline  (another  green  y-­‐axis.)  These  
displacement  matrices  represent  how  the  middle  frame  on  the  odd-­‐numbered  link  
(yellow/green)  would  be  displaced  away  from  the  middle  frame  on  the  even-­‐
numbered  link  (red/yellow)  into  its  relative  spatial  position  shown  in  Fig.  11.  

Displacement  across  an  even-­‐numbered  joint  

 
Figure  12.  Section  of  the  Bricard  mechanism  with  odd  and  even-­‐numbered  links,  
and  even-­‐numbered  connecting  joint.  

Similar  to  the  previous  discussion,  Fig.  12  shows  two  links  connected  by  an  even-­‐
numbered  (green)  joint,  with  an  odd-­‐numbered  (yellow/green)  link  on  the  right  and  
an  even-­‐numbered  (green/cyan)  link  on  the  left.  In  this  case  the  product    

  Doe = Ty (  / 2 ) Ry (π / 2 ) Rz (θ e ) Ty (  / 2 )     (11)  

represents  the  spatial  displacement  from  the  middle  frame  of  the  odd-­‐numbered  
link  (yellow/green)  on  the  right  to  the  middle  frame  of  the  even-­‐numbered  link  
(green/cyan)  on  the  left,  where  the  only  difference  between  Eqs.  (10)  and  (11)  is  
that   Ry (π / 2 )  in  Eq.  (11)  means  rotate  by   π / 2  radians  around  the  centerline  of  the  
odd-­‐numbered  link  (yellow/green).  

© 2013 Roger A. Wehage 18 raw915 (at) gmail.com


Symmetric Bricard Mechanism

The  expanded  displacement  matrices  


Equation  (10)  is  expanded  into  4  by  4  matrix  form  as  

Deo = Ty (  / 2 ) Ry ( −π / 2 ) Rz (θ o ) Ty (  / 2 )

  ⎡ 1 0 0 0 ⎤⎡ 1 0 0 0 ⎤⎡ 1 0 0 0 ⎤⎡ 1 0 0 0 ⎤    (12)  
⎢ ⎥⎢ ⎥ ⎢ 0 cosθ − sin θ o

0 ⎥⎢ 0 ⎥
0 1 0 0 0 0 0 −1 ⎥ ⎢ 1 0 0
=⎢ ⎥⎢ ⎢ ⎥
o

⎢ /2 0 1 0 ⎥⎢ 0 0 1 0 ⎥ ⎢ 0 sin θ o cosθ o 0 ⎥⎢  / 2 0 1 0 ⎥


⎢ 0 ⎥⎢ ⎢ ⎥⎢
⎣ 0 0 1 ⎦⎣ 0 1 0 0 ⎥⎦ ⎢ 0 0 0 1 ⎥⎦ ⎣ 0 0 0 1 ⎥


⎡ 1 0 0 0 ⎤
⎢ ⎥ ⎡
0 0 0 −1⎥=⎢ 1 0 ⎤
= ⎢⎢ ⎥
(1+ cos θ o)  / 2 sin θo cosθ o 0 ⎥ ⎢ t eo
e
R eo ⎥
⎢ ⎥ ⎣ ⎦
⎢⎣ − sin θ o  / 2 cosθ o − sin θ o 0 ⎥

From  Eq.  (12)  the  translational  and  rotational  parts  of  this  spatial  displacement  are  
identified  as  

⎡ 0 ⎤
⎢ ⎥
  e
t eo = ⎢ (1+ cosθ o )  / 2 ⎥       (13)  
⎢ − sin θ  / 2 ⎥
⎣ o

and  

⎡ 0 0 −1 ⎤
  ⎢ ⎥
R = ⎢ sin θ o
eo
cosθ o 0 ⎥       (14)  
⎢ cosθ o − sin θ o 0 ⎥
⎣ ⎦

In  a  similar  manner  Eq.  (11)  gives  

Doe = Ty (  / 2 ) Ry (π / 2 ) Rz (θ e ) Ty (  / 2 )

⎡ 1 0 0 0 ⎤⎡ 1 0 0 0 ⎤⎡ 1 0 0 0 ⎤⎡ 1 0 0 0 ⎤
⎢ ⎥⎢ ⎥⎢ 0 cosθ e − sin θ e

0 ⎥⎢ 0 ⎥
=⎢
0 1 0 0 ⎥⎢ 0 0 0 1 ⎥⎢ ⎢ 1 0 0 ⎥
⎢ /2 0 1 0 ⎥⎢ 0 0 1 0 ⎥⎢ 0 sin θ e cosθ e 0 ⎥⎢  / 2 0 1 0 ⎥
  ⎢ 0 0 0 1 ⎥⎢ 0 −1 0 0 ⎥⎢ ⎥⎢ ⎥     (15)  
⎣ ⎦⎣ ⎦ ⎢⎣ 0 0 0 1 ⎥⎦ ⎣ 0 0 0 1 ⎦
⎡ 1 0 0 0 ⎤
⎢ ⎥ ⎡
0 0 0 1 ⎥=⎢ 1 0 ⎤
= ⎢⎢ ⎥
(1+ cosθ e )  / 2 sinθ e cosθ e 0 ⎥ ⎢ t oe
o
R oe ⎥
⎢ ⎥ ⎣ ⎦
⎢⎣ sin θ e / 2 − cosθ e sin θ e 0 ⎥

© 2013 Roger A. Wehage 19 raw915 (at) gmail.com


Symmetric Bricard Mechanism

where  

⎡ 0 ⎤
⎢ ⎥
  t o
oe = ⎢ (1+ cosθ e )  / 2 ⎥     (16)  
⎢ sin θ e / 2 ⎥
⎣ ⎦

and  

⎡ 0 0 1 ⎤
⎢ ⎥
  R = ⎢ sin θ e
oe
cosθ e 0 ⎥     (17)  
⎢ − cosθ e sin θ e 0 ⎥
⎣ ⎦

The  translation  matrix   t eo


e
 in  Eq.  (13)  is  in  the  even-­‐numbered  link’s  coordinate  
system,  so  its  x-­‐component  is  zero  because  joint  rotation  takes  place  around  an  axis  
parallel  to  the  even-­‐numbered  frame’s  x-­‐axis.  The  z-­‐displacement  component  is  
positive,  because  the  link’s  local  z-­‐axis  points  to  the  left  and  the  rotation  is  to  the  
left.  The  y-­‐displacement  component  is  also  positive,  because  the  y-­‐axis  points  
forward  and  the  displacement  is  in  this  direction.  

The  direction  cosine  matrix   R eo  is  a  little  more  interesting.  The  third  column  shows  
that  the  z-­‐axis  of  the  even-­‐numbered  frame  is  projected  onto  the  x-­‐axis  of  the  odd-­‐
numbered  frame,  which  can  be  verified  by  inspection.  The  first  and  second  columns  
show  how  the  y  and  z-­‐axes  of  the  even-­‐numbered  frame  are  projected  onto  the  x  
and  y-­‐axes  of  the  odd-­‐numbered  frame.  

One  third  of  the  loop  displacement  


As  a  mental  exercise,  carry  out  the  symbolic  product  

⎡ 1 0 ⎤⎡ 1 0 ⎤
Deo Doe = ⎢ e ⎥⎢ o ⎥
⎢⎣ t eo R eo ⎥ ⎢ t oe R oe ⎥
⎦⎣ ⎦
      (18)  
⎡ 1 0 ⎤
=⎢ e ⎥
⎢⎣ t eo + R t oe
eo o
R R oe
eo
⎥⎦

To  save  space  let   ce = cosθ e ,   se = sin θ e ,   co = cosθ o ,  and   so = sin θ o .  Thus  

© 2013 Roger A. Wehage 20 raw915 (at) gmail.com


Symmetric Bricard Mechanism

⎡ 0 0 −1 ⎤ ⎡ 0 0 1 ⎤
⎢ ⎥⎢ ⎥
R R = ⎢ so
eo oe
co 0 ⎥ ⎢ se ce 0 ⎥
⎢ co −so 0 ⎥ ⎢ −ce se 0 ⎥
⎣ ⎦⎣ ⎦
      (19)  
⎡ ce −se 0 ⎤
⎢ ⎥
= ⎢ co se co ce so ⎥
⎢ −s s −so ce co ⎥
⎣ o e

and  

⎡ 0 ⎤ ⎡ 0 −1 ⎤ ⎡
0 0 ⎤
⎢ ⎥ ⎢ ⎥⎢ ⎥
e
t eo + R eo t oe
o
= ⎢ (1+ co )  / 2 ⎥ + ⎢ so 0 ⎥ ⎢ (1+ ce )  / 2
co ⎥
⎢ −s  / 2 ⎥ ⎢ co −so 0 ⎥ ⎢ se  / 2 ⎥
⎣ o
⎦ ⎣ ⎦⎣ ⎦
⎛⎡ 0 ⎤ ⎡ 0 0 −1 ⎤ ⎡ 0 ⎤⎞
  ⎜⎢ ⎥ ⎢ ⎥⎢ ⎥     (20)  
= ⎜ ⎢ 1+ co ⎥ + ⎢ so co 0 ⎥ ⎢ 1+ ce ⎥⎟⎟  / 2
⎜ ⎢ −so ⎥ ⎢ co −so 0 ⎥ ⎢ se ⎥⎟⎠
⎝⎣ ⎦ ⎣ ⎦⎣ ⎦
⎛⎡ ⎤ ⎡ −se ⎤⎞
0
⎜⎢ ⎥ ⎢ ⎥⎟
= ⎜ ⎢ 1+ co ⎥ + ⎢ co (1+ ce ) ⎥⎟  / 2
⎜ ⎢ −s
⎜⎝ ⎣ ⎥ ⎢ −s (1+ c ) ⎥⎟
o
⎦ ⎢⎣ o e ⎥⎦⎟⎠

More  on  the  characteristic  equation  


The  product   Deo Doe  goes  one-­‐third  of  the  way  around  the  Bricard  mechanism,  and  
as  noted  earlier,  the  other  two  sections  that  make  up  the  remaining  two-­‐thirds  of  
the  mechanism  are  identical  to  the  first  section.  Thus  the  product   ( Deo Doe )  goes  full  
3

circle  and  comes  back  to  the  starting  point.  Returning  to  the  kinematic  starting  point  
yields  a  null  spatial  displacement  equation  

  ( Deo Doe )3 = I     (21)  

from  which  the  kinematic  loop  constraint  equations  may  be  extracted.  It  is  a  chore  
to  expand  and  reduce  this  product  into  meaningful  constraint  equations,  so  it  was  
set  up  in  Maxima  and  simplified.  A  common  occurrence  after  symbolic  expansion  
and  reduction,  which  has  been  reported  more  than  once  in  the  literature,  is  the  
characteristic  equation  presented  in  Eq.  (1)  and  repeated  here  for  reference  as  

  (1+ ce )(1+ co ) = 1     (22)  

© 2013 Roger A. Wehage 21 raw915 (at) gmail.com


Symmetric Bricard Mechanism

This  simple  equation  controls  the  complete  internal  kinematics  of  the  complex  
Bricard  mechanism.  Now  how  can  it  be  used?  First,  rearrange  Eq.  (22)  into  

−co
  ce =     (23)  
1+ co
and  
−ce
  co =     (24)  
1+ ce
Then  solve  for  
⎛ −co ⎞
  θ e = ± cos −1 ⎜     (25)  
⎝ 1+ co ⎟⎠
and  
⎛ −ce ⎞
  θ o = ± cos −1 ⎜     (26)  
⎝ 1+ ce ⎟⎠

The  sign  ambiguity  in  these  last  two  equations  comes  because   cos x = cos ( −x ) .  

The  parametric  equations  


There  is  a  problem  using  Eq.  (25)  or  (26)  to  represent  all  solutions  to  Eq.  (22)  or  to  
represent  a  continuous  progression  of  the  Bricard  mechanism’s  articulation,  
because   −2π /3 ≤ θe ≤ 2π /3  and   −2π /3 ≤ θo ≤ 2π /3 .  An  independent  parametric  
! !
variable   θ  is  introduced  to  obtain  a  continuous  representation  of  the  mechanism  
and  to  avoid  problems  evaluating   θ e  or   θ o .  In  terms  of   θ ,  the  following  assignments  

pi ⎛ − sin θ ⎞
θ e = −θ + θ o = cos −1 ⎜ 0 ≤θ < π
⎝ 1+ sin θ ⎟⎠
; ;
2
3pi ⎛ sin θ ⎞
θ o = −θ + θ e = − cos −1 ⎜ π ≤ θ < 2π
⎝ 1− sin θ ⎟⎠
; ;
2
      (27)  
5 pi ⎛ − sin θ ⎞
θe = θ − θ o = − cos ⎜ −1
2π ≤ θ < 3π
⎝ 1+ sin θ ⎟⎠
; ;
2
7 pi ⎛ sin θ ⎞
θo = θ − θ e = cos −1 ⎜ 3π ≤ θ < 4π
⎝ 1− sin θ ⎟⎠
; ;
2

describe  a  full  cycle  of  the  Bricard  mechanism  and  cover  all  possible  internal  
configurations.  

© 2013 Roger A. Wehage 22 raw915 (at) gmail.com


Symmetric Bricard Mechanism

 
Figure  13.   θ e  and   θ o  for  one  complete  cycle  of  the  Bricard  mechanism.  

Figure  13  shows  the  resulting  even  and  odd-­‐numbered  joint  angles  plotted  over  the  
domain  of   0 ≤ θ < 4π ,  which  represents  one  complete  cycle  of  the  Bricard  
mechanism,  starting  and  ending  with  the  configuration  shown  in  Fig.  1.  The  values  
for   θ e  and   θ o  repeat  outside  the  domain  of   θ  in  Fig.  13.  The  graphs  show  that  the  
curves  and  their  slopes  are  continuous  across  the  four  boundary  intervals.  Now  with  
θ e  and   θ o  known  for   0 ≤ θ < 4π ,  it  is  possible  to  express  all  configurations  of  the  
Bricard  mechanism  in  terms  of  just  one  independent  variable   θ .  

While  these  curves  and  their  first  derivatives  are  continuous  across  the  transitions,  
their  second  derivatives  are  not.  This  is  easily  verified  by  differentiating  the  
equations  in  Eq.  (27)  twice  with  respect  to   θ .  Thus  we  will  find  later  that  plots  of   θ  
and  various  quantities  expressed  in  terms  of  normalized  !θ = 1  as  a  function  of   θ  
have  discontinuous  slopes.  These  discontinuities  have  some  interesting  
ramifications  that  will  be  discussed  later.  

Calculating  joint  mobility  numbers  


Kinematicians  often  refer  to  a  mechanism’s  DOF  as  its  mobility.  For  example,  a  
mechanism  with  three  DOF  has  a  mobility  of  three,  which  one  might  also  refer  to  as  
its  mobility  number.  What  is  the  meaning  of  a  mobility  number?  What  are  the  

© 2013 Roger A. Wehage 23 raw915 (at) gmail.com


Symmetric Bricard Mechanism

differences  between  mechanisms  with  mobility  number  zero  versus  three  versus  
six?  Might  one  imagine  that  a  mechanism  with  more  mobility  is  more  dexterous,  like  
the  robot’s  dexterous  end  effector?  

What  about  the  joints  that  make  up  a  mechanism?  When  effort  is  put  into  some  joint  
of  a  mechanism,  it  may  be  easy  to  induce  displacement  or  motion,  but  when  effort  is  
put  into  some  other  joint  it  may  be  difficult  or  impossible  to  induce  any  
displacement  or  motion.  We  might  relate  the  ability  of  a  joint  to  control  the  
mechanism  it  is  in  by  the  mechanical  advantage  afforded  its  DOF;  high  mechanical  
advantage  requires  less  effort  and  low  mechanical  advantage  requires  more  effort  to  
accomplish  its  tasks.  But  computing  mechanical  advantage  requires  specifying  
input/output  relationships.  

There  is  a  more  generic  qualitative  method  obtained  by  expressing  a  joint’s  mobility  
number.  A  mechanism  with  mobility  number  !d ,  which  stands  for  its  DOF,  is  said  to  
have  an  abstract  !d -­‐dimensional  manifold  with  !d  orthogonal  tangent  directions  
along  which  motion  is  allowed.  Now  if  the  mechanism  is  composed  of  !n  joint  DOF,  
represented  by  a  total  of  !n  translational,  rotational,  and  generalized  variables,  then  
each  variable  must  in  some  way  contribute  to  the  mechanism’s  mobility.  For  if  not  
one  single  joint  variable  were  allowed  to  change,  then  surely  the  mechanism  must  
have  zero  mobility  and  a  zero  mobility  number.  

It  seems  that  each  joint’s  DOF  should  somehow  be  related  to  the  mechanism’s  
constraint  manifold.  For  example,  if  a  joint  DOF  were  tangent  to  the  constraint  
manifold,  it  should  have  maximum  mobility,  and  if  it  were  orthogonal  to  the  
manifold,  it  should  have  zero  mobility.  Thus  a  joint’s  DOF  could  be  assigned  a  
mobility  number  related  to  its  direction  cosine  or  orientation  relative  to  the  
constraint  manifold.  Squaring  each  variable’s  direction  cosine  would  then  provide  
mobility  numbers  between  zero  and  one.  Using  this  approach,  what  would  be  the  
sum  of  all  joint  mobility  numbers  in  a  mechanism?  Perhaps  it  is  the  mechanism’s  
mobility  number  or  DOF,  which  is  also  the  dimension  of  its  constraint  manifold.  

Is  there  a  reliable  and  repeatable  method  for  assigning  such  joint  mobility  numbers?  
Suppose  that  !A  represents  an  !m  by  !n  Jacobian  matrix  with  rank  !n − d .  Then  !A  has  
an  !n  by  !d  null-­‐space  matrix  !N  with  full  column  rank  such  that  !AN = 0 .  The  !d  
columns  of  !N  span  the  tangent  space  of  the  constraint  manifold.  Applying  Gram-­‐
Schmidt  orthogonalization  to  the  !d  columns  of  !N  yields  an  orthonormal  matrix  !V ,  
where  its  !d  orthonormal  columns  also  span  the  manifold’s  tangent  space.  

The  inner  product  of  the  ! jth  column  of  !V  with  itself  is  1,  which  is  also  the  mobility  
number  associated  with  the  ! jth  orthogonal  tangent  direction  of  the  constraint  
manifold.  The  sum  of  all  !d  such  inner  products  is  !d ,  which  is  the  mechanism’s  
mobility  number.  Likewise,  the  inner  product  of  the  !ith row  of  !V  with  itself  is  less  

© 2013 Roger A. Wehage 24 raw915 (at) gmail.com


Symmetric Bricard Mechanism

than  or  equal  to  1,  and  this  corresponds  to  the  mobility  number  of  the  !ith  joint  
variable.  By  this  definition,  the  sum  of  all  !n  such  inner  products  or  joint  mobility  
numbers  is  also  !d ,  which  is  the  mechanism’s  mobility  number  and  the  dimension  of  
its  constraint  manifold.  

With  this  definition,  each  joint  variable’s  mobility  number,  the  square  of  its  direction  
cosine,  is  related  to  its  degree  of  alignment  with  the  constraint  manifold.  If  a  joint’s  
mobility  number  is  1,  its  angle  relative  to  the  constraint  manifold  surface  is  zero,  if  
the  mobility  number  is  !1/2 ,  its  angle  is  45°,  and  if  0,  its  angle  is  90°.  Independent  
joint  variables  will  have  higher  mobility  numbers  and  dependent  variables  will  have  
lower  mobility  numbers.  

For  the  mechanism  configuration  shown  in  Fig.  1,  the  normalized  null-­‐space  matrix  
is  
T
  ⎡ 6 6 6 6 6 6 6 6 6 6 6 6 ⎤⎥     (28)  
⎣⎢ ⎦

Squaring  the  norms  of  the  rows  in  Eq.  (28)  gives  the  joint  mobility  numbers  
T
  ⎡ 1 6 1 6 1 6 1 6 1 6 1 6 ⎤     (29)  
⎣ ⎦

and  they  add  up  to  unity  as  expected.  When  the  mobility  numbers  are  all  equal,  all  
variables  are  equally  independent  and  dependent,  and  there  is  no  preference  for  
which  one  to  select  as  independent.  The  Bricard  mechanism’s  joint  mobility  
numbers  will  all  be  equal  whenever   θ e = ±π / 2  and   θ o = ±π / 2 .  Inspecting  Fig.  13  
reveals  that  this  happens  on  the   ±nπ  boundaries  of   θ  where   n  is  any  integer.  The  
transition  points  at   ±nπ  in  Eq.  (27)  were  selected  at  configurations  where  all  joint  
mobility  numbers  are  equal.  

Now  consider  the  Bricard  mechanism  configuration  shown  in  Fig.  6.  It  corresponds  
to   θ = π 2  in  Fig.  13  where   θ e = 0  and   θ o = 2π / 3 .  The  normalized  null-­‐space  matrix  
for  this  configuration  is  
T
  ⎡ 3 3 0 3 3 0 3 3 0 ⎤⎥     (30)  
⎢⎣ ⎦

and  the  mobility  numbers  are  


T
  ⎡ 1 3 0 1 3 0 1 3 0 ⎤     (31)  
⎣ ⎦

© 2013 Roger A. Wehage 25 raw915 (at) gmail.com


Symmetric Bricard Mechanism

Equation  (31)  shows  that  the  odd-­‐numbered  joint  variables  have  zero  mobility.  This  
means  that  these  variables  will  have  no  ability  to  control  the  mechanism  and  must  
be  dependent.  It  also  means  that  these  joints  have  zero  mechanical  advantage  
relative  to  the  other  variables.  

Inspecting  Fig.  6  reveals  that  the  odd-­‐numbered  joints  are  at  the  corners  of  the  
equilateral  triangle,  and  the  even-­‐numbered  joints,  which  are  orthogonal  to  the  odd-­‐
numbered  joints,  will  block  any  attempted  rotation  of  the  links.  In  essence,  the  three  
sides  of  the  triangle  appear  rigid  to  the  odd-­‐numbered  joints.  

The  situation  is  different  for  the  even-­‐numbered  joints.  In  this  case,  rotating  any  one  
of  these  joints  will  cause  the  three  sides  of  the  triangle  to  start  bending  in  their  
centers  and  start  the  three  odd-­‐numbered  angles  to  gradually  change  magnitude.    

Look  back  at  Fig.  13  and  compare  the  two  curves  around  the   θ = π 2  point.  In  fact,  
compare  the  two  curves  at  each   θ = ( 2n − 1) π 2  point  where   n  is  any  integer.  

The  Bricard  mechanism  shown  in  Fig.  8  has  joint  values  of   θ e = 2π / 3  and   θ o = 0 .  
The  normalized  null-­‐space  matrix  and  mobility  numbers  in  this  case  are  
T
  ⎡ 0 3 3 0 3 3 0 3 3 ⎤⎥     (32)  
⎣⎢ ⎦

and  
T
  ⎡ 0 1 3 0 1 3 0 1 3 ⎤     (33)  
⎣ ⎦

According  to  the  plot  in  Fig.  13,  this  configuration  occurs  at   θ = 7π 2 .  The  role  of  
even  and  odd-­‐numbered  joint  variables  has  reversed.  

Simple  method  to  evaluate  joint  mobility  numbers  


Since  Eq.  (1)  is  the  only  constraint  among  the  even  and  odd-­‐numbered  variables,  
differentiating  it  gives  

  (1+ ce ) soθo + (1+ co ) seθe = 0     (34)  

and  shows  that   θe  and   θo  are  elements  of  the  null-­‐space  matrix,  which  may  be  
expressed  as  
T
  q = ⎡ θe θo θe θo θe θo ⎤     (35)  
⎣ ⎦

© 2013 Roger A. Wehage 26 raw915 (at) gmail.com


Symmetric Bricard Mechanism

Thus  !Aq = 0  shows  that  !q  also  represents  the  null  space  of  !A ,  and  when  normalized  
to  unity  yields  the  desired  normalized  null-­‐space  matrix.  Thus  we  have  a  simple  way  
of  obtaining  a  plot  of  joint  mobility  numbers  as  a  function  of   θ .  

 
Figure  14.  Even  and  odd-­‐numbered  joint  mobility  numbers.  

For  all   0 ≤ θ < 4π ,  setting  either   θe  or   θo  to  unity  as  appropriate,  evaluating  the  
other  quantity  using  Eq.  (34),  normalizing  the  resulting  matrix  in  Eq.  (35),  and  
squaring  each  entry  gives  the  mobility  numbers  of  the  Bricard  mechanism’s  even  
and  odd-­‐numbered  joint  variables.  These  mobility  numbers  are  seen  to  range  
between  zero  and  one-­‐third,  as  the  examples  showed.  The  plot  shows  the  relative  
degree  of  independence  and  dependence  of  each  variable.  A  variable  will  be  highly  
dependent  when  its  mobility  number  is  near  zero,  and  in  these  situations  it  must  not  
be  used  as  an  independent  variable.  The  domain  divisions  shown  in  Eq.  (27)  were  
selected  to  insure  that  the  independent  variable’s  mobility  number  was  at  least  1/6  
and  would  range  from  1/6  to  1/3.  

Assembling  the  Bricard  mechanism  


Preliminaries  
We  have  shown  that  all  values  for   θ e  and   θ o  may  be  expressed  as  a  function  of   θ ,  as  
represented  by  the  curves  in  Fig.  13.  And  all  values  for   θe  and   θo  may  be  expressed  

© 2013 Roger A. Wehage 27 raw915 (at) gmail.com


Symmetric Bricard Mechanism

as  functions  of   θ  and   θ  by  differentiating  the  equations  in  Eq.  (27).  We  will  obtain  
these  values  later,  but  the  interesting  fact  is  that  all  of  these  quantities  may  be  
obtained  without  assembling  the  mechanism,  evaluating  its  loop  constraint  
equations  and  Jacobian  matrix,  or  solving  the  loop  velocity  equations.  However,  we  
may  wish  to  correctly  position  the  links  for  other  purposes  such  as  animating  the  
mechanism  or  evaluating  its  spatial  velocities  and  momentum.  

Three  thirds  make  a  whole  


Obtaining  spatial  displacements  of  the  links  relative  to  the  barycentric  frame  is  not  
intuitive  or  easy  and  will  require  some  additional  development.  We  start  by  
knowing  the  position,  orientation,  and  magnitude  of  the  six  vectors  that  connect  the  
link  reference  frame  origins  and  form  the  hexagon.  Thus  the  reference  frame  origin  
positions  relative  to  the  barycentric  frame  !b  are  known.  What  remains  is  to  specify  
the  orientation  of  the  six  link  reference  frames  relative  to  frame  !b .  Developing  those  
equations  will  take  some  effort.  

Earlier  we  showed  in  Eq.  (18)  that  a  spatial  displacement   Deo Doe  from  the  origin  of  
one  even-­‐numbered  link  to  the  origin  of  the  next  even-­‐numbered  link  could  be  
expressed.  Then  we  indicated  in  Eq.  (21)  that   ( Deo Doe ) = I  takes  us  full  circle  
3

around  the  loop.  This  shows  that  the  mechanism  may  be  divided  into  three  identical  
segments  by  slicing  through  the  center  of  each  even-­‐numbered  link.  Imagine  that  we  
first  evaluate  the  displacement  for  just  one  pair  of  links.  Then  rotate  a  copy  by  120°  
around  the  barycentric  frame’s  z-­‐axis  and  reattach  the  adjacent  even-­‐numbered  link  
components.  In  a  similar  manner,  rotate  a  second  copy  by  -­‐120°  around  the  
barycentric  frame’s  z-­‐axis  and  again  reattach  the  adjacent  even-­‐numbered  link  
components.  With  this,  we  have  assembled  the  entire  mechanism.  

Given  Eq.  (22),  the  loop  constraint  equations  don’t  have  to  be  evaluated,  so  only  the  
spatial  displacement  matrices   Dbe  and   Dbo  from  the  barycentric  frame  !b  out  to  the  
respective  even  and  odd-­‐numbered  link  reference  frames  !e  and  !o  are  required.  We  
b b
already  know  the  linear  part  of  these  displacements  as   t be  and   t bo ,  so  only  the  
! !
b b
orientation  parts  !Rbe  and  !Rbo  remain  to  be  evaluated.  Matrices   t be  and   t bo  
! !
represent  coordinates  in  frame  !b  of  position  or  translation  vectors  from  its  origin  to  
origins  of  the  particular  even  and  odd-­‐numbered  link  reference  frames.  Matrices  !Rbe  
and  !Rbo  represent  direction  cosine  matrices  relating  orientation  of  the  particular  
even  and  odd-­‐numbered  link  reference  frames  relative  to  frame  !b .  Once  these  
quantities  have  been  evaluated  for  the  first  segment,  copies  may  be  rotated  around  
the  barycentric  frame’s  z-­‐axis  by  ±120°  to  obtain  the  remaining  four  displacement  
matrices.  

© 2013 Roger A. Wehage 28 raw915 (at) gmail.com


Symmetric Bricard Mechanism

Examples  of  one-­‐third  mechanism  segments  

 
Figure  15.  Section  of  the  Bricard  mechanism  common  to  red  and  yellow  vectors.  

Figure  15  shows  a  section  of  the  Bricard  mechanism  positioned  relative  to  
barycentric  frame  !b .  The  lower  two  links  are  used  to  illustrate  the  relative  spatial  
displacement  from  the  center  of  an  odd-­‐numbered  link  5  (magenta/red)  through  an  
even-­‐numbered  joint  (red)  to  the  center  of  an  even-­‐numbered  link  0  (red/yellow).  
The  long  red  vector  between  the  two  frame  origins  and  link  centers  of  mass  
represents  the  translational  component  of  this  displacement.  The  upper  two  links  
are  used  to  illustrate  the  relative  displacement  from  the  center  of  an  even-­‐
numbered  link  0  (red/yellow)  through  an  odd-­‐numbered  joint  (yellow)  to  the  
center  of  an  odd-­‐numbered  link  1  (yellow/green).  The  long  yellow  vector  between  
the  two  frame  origins  and  link  centers  of  mass  represents  the  translational  
component  of  this  displacement.  These  two  spatial  displacements  in  sequence  
represent  one-­‐third  of  the  circuit  around  the  Bricard  mechanism,  which  
corresponds  to  an  angular  displacement  of   2π / 3  radians  around  the  barycentric  
frame’s  z-­‐axis.  

We  have  selected  the  odd-­‐numbered  link  5  (magenta/red)  and  even-­‐numbered  link  


0  (red/yellow)  pair  instead  of  the  even  and  odd-­‐numbered  links  0  and  1  for  the  
following  development.  This  is  because  they  are  centered  on  the  barycentric  frame’s  
red  x-­‐axis.  The  advantage  of  this  symmetric  pair  is  that  setting  up  the  displacement  
matrices   Db0  and   Db5  will  be  very  similar,  requiring  less  effort  in  the  long  run.  Thus  
! !

© 2013 Roger A. Wehage 29 raw915 (at) gmail.com


Symmetric Bricard Mechanism

our  sequential  transformation  for  the  one-­‐third  segment  would  be   Doe Deo  instead  of  
!
the  previous   DeoDoe .  In  terms  of  the  actual  links  in  Fig.  15  it  would  be   D50D01 where  
! !
links  5  (magenta/red),  0  (red/yellow),  and  1  (yellow/green)  are  involved.    

 
Figure  16.  Section  of  the  Bricard  mechanism  showing  long  green  and  cyan  vectors.  

Figure  16  shows  a  different  segment  of  the  Bricard  mechanism.  It  is  basically  a  
rotated  copy  of  the  first  segment  shown  in  Fig.  15,  where  the  colors  have  been  
changed  to  represent  different  links  1  (yellow/green),  2  (green/cyan),  and  
3(cyan/blue),  different  joints,  and  different  connecting  vectors.  This  segment  is  
rotated   2π / 3  radians  around  the  barycentric  frame’s  blue  z-­‐axis  from  the  segment  
in  Fig.  15.  The  relative  even  and  odd-­‐numbered  joint  displacements  in  this  segment  
are  identical  to  those  in  the  first  segment,  and  the  green  and  cyan  vector  lengths  are  
the  same  as  the  respective  red  and  yellow  vector  lengths.  In  essence  every  local  
property  of  the  rotated  copy  matches  the  original.  The  only  difference  is  that  the  
links,  frames,  and  vectors  in  the  rotated  version  have  different  absolute  spatial  
displacements  relative  to  the  barycentric  frame  !b .  

A  second  copy  of  the  links,  joints,  and  vectors  in  Fig.  15  would  be  rotated  by   −2π / 3  
radians  around  the  barycentric  frame’s  blue  z-­‐axis  to  form  the  third  segment  of  the  
Bricard  mechanism.  

© 2013 Roger A. Wehage 30 raw915 (at) gmail.com


Symmetric Bricard Mechanism

Referencing  links  to  the  barycentric  frame  b  


Setting  up  to  displace  link  0  relative  to  frame  b  

 
Figure  17.  Starting  position  for  displacing  link  0  (red/yellow)  relative  to  barycentric  
frame  !b .  

Figure  17  shows  the  starting  configuration  for  positioning  the  assembled  part  of  the  
mechanism  in  Fig.  15,  consisting  of  link  5  (magenta/red),  link  0  (red/yellow),  and  
link  1  (yellow/green),  relative  to  the  barycentric  frame  !b .  Frame  !b  is  not  apparent  
in  the  image,  because  the  frames  attached  to  the  red-­‐joint  ends  of  links  5  
(magenta/red)  and  0  (red/yellow)  are  sitting  on  top  of  it.  Frame  !b  is  oriented  so  
that  its  red  x-­‐axis  points  toward  the  center  of  the  long  red  vector  and  its  blue  z-­‐axis  
points  upward.  For  this  assembly  process,  the  long  red  and  yellow  vectors  are  fixed  
relative  to  frame  !b ,  and  they  lie  in  its  x-­‐y  plane  as  indicated  in  Fig.  3.  

In  the  ensuing  assembly  process,  the  link  trio  will  be  translated  and  rotated  together  
until  particular  origins  of  the  three  link  reference  frames  align  with  ends  of  the  two  
long  vectors.  Once  these  origins  are  aligned  with  the  vectors,  this  group  of  links  will  
be  correctly  positioned  and  oriented  relative  to  the  barycentric  frame  !b .  This  is  true  
because  tips  of  the  two  vectors  define  three  vertices  of  a  triangle  or  three  points  not  
on  a  straight  line,  which  is  sufficient  to  position  and  orient  objects  in  space.  

The  trick  to  setting  up  this  displacement  is  to  first  insert  a  floating  frame   f  inside  
the  red  joint  common  to  links  5  (magenta/red)  and  0  (red/yellow),  where  both  links  
are  allowed  to  rotate  relative  to  frame   f  around  their  common  blue  z-­‐axes,  but  only  
in  a  specific  way.  In  Fig.  17  the  red-­‐joint  ends  of  links  5  and  0  hide  this  floating  
frame   f ,  which  initially  coincides  with  frame  !b .  Thus  the  red  x-­‐axis  of  frame   f  
points  toward  the  center  of  the  long  red  vector  and  its  blue  x-­‐axis  points  upward.  As  
this  group  of  links  is  moved  into  place,  the  red  and  blue  axes  of  frame   f  will  remain  
in  the  x-­‐z  plane  of  frame  !b ,  and  the  green  y-­‐axes  of  frames  !b  and   f  will  remain  
parallel  and  maintain  the  same  orientation.  

© 2013 Roger A. Wehage 31 raw915 (at) gmail.com


Symmetric Bricard Mechanism

Refer  to  Fig.  15  to  see  where  this  group  of  links  will  end  up  relative  to  frames  !b  and  
f  after  performing  the  series  of  spatial  displacements  described  next.  Specifically  
note  the  position  and  orientation  of  the  long  red  vector  relative  to  frame  !b  and  the  
position  and  orientation  of  the  red-­‐joint  end  of  links  5  and  0  relative  to  the  long  red  
vector.  It  will  be  helpful  to  periodically  refer  back  to  Fig.  15  as  we  go  through  the  
following  discussion.  

Initially  the  axes  of  floating  frame   f  align  with  those  of  the  frame  attached  to  the  
red-­‐joint  end  of  link  0  (red/yellow).  To  obtain  the  final  configuration,  link  0  
(red/yellow)  and  link  1  (yellow/green)  must  be  rotated  together  relative  to  frame  
f  so  that  their  two  red-­‐joint  frames  become  centered  on  frame   f .  Thus,  after  the  
three-­‐link  combination  has  been  displaced  to  its  final  spatial  position  and  
orientation  relative  to  the  barycentric  frame,  it  will  have  been  rotated  by   θ 0 2 = π 4  
radians  (in  this  example)  relative  to  the  floating  frame   f  about  its  blue  z-­‐axis.  

In  summary,  the  origin  of  floating  frame   f  will  have  been  translated  in  the  
barycentric  frame’s  x-­‐z  plane  along  its  red  x-­‐axis,  and  frame   f  will  then  have  been  
rotated  around  its  green  y-­‐axis.  Referring  back  to  Fig.  15,  imagine  the  final  position  
and  orientation  of  frame   f ,  centered  between  the  two  red-­‐joint  ends  of  links  5  and  
0.  Its  green  y-­‐axis  will  be  parallel  to  the  green  y-­‐axis  of  frame  !b ,  and  its  blue  z-­‐axis  
will  be  aligned  with  the  blue  z-­‐axes  of  the  two  red-­‐joint  ends.  

Four  spatial  displacements  for  link  0  


The  process  of  lining  up  the  three  link-­‐frame  origins  with  the  fixed  arrow  tips  is  
somewhat  involved.  It  consists  of  performing  four  sequential  spatial  displacements  
in  this  order:   Tx ( r cos ( β 0 2 )) ,   Ry (φ0 ) ,   Tx ((  2 ) sin (θ 0 2 )) ,  and   Rz (θ 0 2 ) .  

The  first  displacement   Tx ( r cos ( β 0 2 ))  translates  the  origin  of  frame   f  relative  to  
frame  !b  by  the  distance   r cos ( β 0 2 )  along  the  common  red  x-­‐axes  of  frames  !b  and  
f .  See  Fig.  32  for  the  definition  of  !r  and   β0 ,  where   β0  corresponds  to   βe  in  that  
! ! !
figure.  Translating  frame   f  causes  the  three  links  to  also  translate  with  it.  After  this  
translation,  according  to  Fig.  15,  the  origin  of  frame   f  will  lie  on  the  center  of  the  
long  red  vector  with  its  green  y-­‐axis  aligned  with  the  long  red  vector  and  its  blue  z-­‐
axis  pointing  upward,  parallel  to  the  blue  z-­‐axis  of  frame  !b .  

The  second  displacement   Ry (φ0 )  rotates  frame   f  around  its  green  y-­‐axis  (also  
around  the  long  red  vector)  by  an  angle   φ0  that  must  be  determined.  Again  the  three  
!
links  rotate  with  frame   f .  An  equation  to  evaluate   φ0  will  be  developed  later.  
!

© 2013 Roger A. Wehage 32 raw915 (at) gmail.com


Symmetric Bricard Mechanism

The  third  displacement   Tx ((  2 ) sin (θ 0 2 ))  translates  the  origin  of  frame   f  and  the  
three  links  along  its  red  x-­‐axis  a  distance  of  

  (  2 ) sin (θ 0 2 ) = (  2 ) cos ((π − θ 0 ) 2 )     (36)  

Refer  back  to  Fig.  15  to  see  where  this  distance  comes  from.  Note  that  the  long  red  
vector  forms  the  base  of  an  isosceles  triangle,  where  the  other  two  sides  each  have  
length  ! 2  and  the  angle  between  them  is   π − θ0 .  Thus  the  perpendicular  distance  
!
from  the  center  of  the  long  red  vector  to  the  center  of  the  common  red  joints  is  
(  2 ) sin (θ 0 2 ) ,  and  this  distance  may  be  negative  when  !θ0 < 0 .  
At  this  point  the  floating  frame   f  will  have  been  properly  displaced  relative  to  the  
barycentric  frame  !b ,  but  its  axes  coincide  with  those  of  the  frame  in  the  red-­‐joint  
attached  to  link  0  (red/yellow).  The  two  red-­‐joint  frames  attached  to  links  must  be  
centered  on  frame   f ,  so  the  three-­‐link  combination  must  be  rotated  around  the  
blue  z-­‐axis  of  frame   f  by   θ0 2 .  The  final  rotation   Rz (θ 0 2 )  accomplishes  this.  
!
In  the  illustrations  for  this  discussion,  the  angle  between  the  two  link-­‐fixed  frames  
that  form  the  red  joint  is   θ 0 = π 2  radians  around  their  common  z-­‐axes,  which  is  the  
value  set  for  the  example  in  Fig.  1.  As  noted  earlier,  this  angle  could  take  on  any  
value  between   ± 2π 3  radians,  depending  on  the  configuration  being  assembled  for  
the  particular  value  of  !0 ≤ θ < 4π .  Likewise  the  angle  between  the  two  link-­‐fixed  
frames  that  form  the  yellow  joint  is   θ1 = π 2  radians,  and  this  angle  could  also  take  
on  any  value  (subject  to  the  constraint  between   θ 0  and   θ1 )  between   ± 2π 3  radians,  
also  depending  on  the  value  of  !0 ≤ θ < 4π .  

While  the  sequential  spatial  displacement  process  described  above  effectively  


places  all  three  links  into  position  relative  to  frame  !b  for  any  value  of  !0 ≤ θ < 4π ,  it  
is  intended  only  to  place  link  0  (red/yellow)  into  position.  The  four  steps  needed  to  
place  link  0  (red/yellow)  into  position  in  any  configuration  are  the  same;  only  the  
joint  angles  and  the  length  and  position  of  the  long  red  and  yellow  vectors  are  
different  for  different  values  of   θ .  The  joint  displacements  and  the  length,  position,  
and  orientation  of  the  two  long  vectors  can  be  determined  for  any  value  of   θ  
without  knowing  the  link  locations  and  orientations.  The  only  unknown  quantity  
remaining  to  be  determined  is   φ0 ,  and  its  equation  will  be  developed  next.  
!

© 2013 Roger A. Wehage 33 raw915 (at) gmail.com


Symmetric Bricard Mechanism

Obtaining  the  equation  to  evaluate  !φ0  


The  angle   φ0  cannot  be  evaluated  using  results  of  the  spatial  displacements  
!
performed  in  the  order  described  above.  To  identify  an  equation  suitable  for  
computing   φ0 ,  the  three  links  first  have  to  be  placed  into  a  different  starting  
!
position.  Then,  after  the  equation  for   φ0  has  been  identified,  the  spatial  
!
displacements  can  take  place  in  the  order  described  earlier.  Figure  18  will  illustrate  
how   φ0  is  evaluated,  and  Fig.  19  will  show  a  plot  of   φ0  for  all  values  of  the  parametric  
! !
variable  !0 ≤ θ < 4π .  Then  Figs.  20  to  23  will  illustrate  the  four  steps  described  
earlier  for  displacing  the  links  to  their  final  spatial  position  relative  to  the  
barycentric  frame  !b  for  the  configuration  shown  in  Fig.  1.    

 
Figure  18.  Temporary  configurations  for  determining  the  rotation  angle   φ0 .  

To  help  evaluate  the  rotation  angle   φ0  from  the  geometry  of  the  three  links  in  Fig.  
18,  two  configurations  are  shown,  where  the  centers  of  link  5  (magenta/red)  and  
link  0  (red/yellow)  coincide  with  the  respective  tail  and  head  ends  of  the  long  red  
vector.  The  figure  illustrates  the  spatial  orientation  of  the  links  relative  to  
barycentric  frame  !b  and  the  long  red  and  yellow  vectors  before  and  after  rotation  
by   φ0  around  the  long  red  vector.  In  the  orientation  before  rotation,  the  center  of  
link  1  (yellow/green)  is  below  the  barycentric  frame’s  x-­‐y  plane  and  is  not  close  to  
the  head  of  the  long  yellow  vector.  (Unfortunately  this  is  difficult  to  see  in  the  image,  
but  notice  that  its  green  end  is  substantially  below  its  yellow  end.)  In  the  orientation  
after  rotation,  the  center  of  link  1  (yellow/green)  has  been  rotated  upward  by  angle  
φ0  so  it  then  coincides  with  the  head  of  the  yellow  vector.  (Now  the  green  end  of  link  

© 2013 Roger A. Wehage 34 raw915 (at) gmail.com


Symmetric Bricard Mechanism

1  has  been  swung  upward  relative  to  its  yellow  end.)  In  this  orientation,  the  centers  
of  all  three  links  are  in  their  final  positions  in  the  x-­‐y  plane  of  frame  !b ,  which  means  
that  this  three-­‐link  section  of  the  Bricard  mechanism  is  in  its  final  spatial  position  
relative  to  frame  !b .  

To  determine   φ0 ,  a  vector  from  the  center  of  link  0  (red/yellow)  to  the  center  of  link  
1  (yellow/green)  is  first  expressed  in  the  red  joint’s  floating  frame   f  coordinates,  
which  is  centered  in  the  red  joint  in  this  case.  Then  frame   f  and  this  vector  are  
rotated  by   φ0  around  its  green  y-­‐axis  and  the  long  red  vector,  which  is  also  oriented  
with  and  parallel  to  the  barycentric  frame’s  green  y-­‐axis.  

Let  

⎡ cos (θ 2 ) − sin (θ 2 ) 0 ⎤ ⎡ ⎤
⎢ 0 0
⎥⎢ 0 ⎥
v 0 = ⎢ sin (θ 0 2 ) cos (θ 0 2 ) 0 ⎥ ⎢  2
f

⎢ ⎥
⎢⎣ 0 0 1 ⎥⎦ ⎢⎣ 0 ⎥⎦
      (37)  
⎡ − sin (θ 2 ) ⎤
⎢ 0

= ⎢ cos (θ 0 2 ) ⎥  2
⎢ ⎥
⎢⎣ 0 ⎥⎦

represent  coordinates  of  the  vector  from  the  center  of  link  0  (red/yellow)  to  the  
center  of  joint  1  (yellow)  in  floating  frame   f .  This  transformation  by   θ0 2  around  
!
the  blue  z-­‐axis  is  required,  because  the  red  joint  is  centered  on  frame   f ,  and  the  
frame  attached  to  the  red-­‐joint  end  of  link  0  (red/yellow)  has  been  rotated  away  
from  frame   f  about  their  common  blue  z-­‐axes  by  that  amount.  

In  a  similar  manner  let  

⎡ cos (θ 2 ) − sin (θ 2 ) 0 ⎤ ⎡ ⎡ cosθ1 − sin θ1 0 ⎤ ⎡ 0 ⎤


⎢ 0 0
⎥ ⎢ 0 0 −1 ⎤⎥ ⎢ ⎥⎢ ⎥
v 1 = ⎢ sin (θ 0 2 ) cos (θ 0 2 ) 0 ⎥ 0 1 0 ⎢ sin θ1 cosθ1 0 ⎥ ⎢  2
f

⎢ ⎥
⎢ ⎥ ⎢
⎢⎣ 0 0 1 ⎥⎦ ⎢⎣ 1 0 0 ⎥⎦ ⎣ 0 0 1 ⎥⎦ ⎢⎣ 0 ⎥⎦
     (38)  
⎡ − sin (θ 2 ) cosθ ⎤
⎢ 0 1

= ⎢ cos (θ 0 2 ) cosθ1 ⎥ 2
⎢ ⎥
⎢⎣ − sin θ1 ⎥⎦

© 2013 Roger A. Wehage 35 raw915 (at) gmail.com


Symmetric Bricard Mechanism

represent  coordinates  of  the  vector  from  the  center  of  joint  1  (yellow)  to  the  center  
of  link  1  (yellow/green),  also  in  floating  frame   f .  The  first  transformation  results  
for  the  same  reason  as  in  the  first  case.  The  second  transformation  results,  because  
the  joint  reference  frame  for  the  yellow-­‐joint  end  of  link  0  (red/yellow)  has  been  
rotated  by  !− π 2  radians  about  the  common  green  y-­‐axes  lying  along  the  link  0  
(red/yellow)  centerline.  The  third  transformation  results  because  link  1  
(yellow/green)  has  been  rotated  about  the  yellow  joint’s  blue  z-­‐axes  by  angle   θ1 .  
!
The  vector  being  transformed  in  this  case  lies  along  the  centerline  of  link  1  
(yellow/green)  and  has  only  the  single  nonzero  y-­‐coordinate  ! 2  in  the  link  frame.  

Coordinates  of  the  desired  vector  are  then  the  sum  of  these  two  matrices  or  
f
v 01 = v 0f + v 1f
⎡ − sin (θ 2 ) ⎤ ⎡ − sin (θ 2 ) cosθ ⎤
⎢ 0
⎥ ⎢ 0 1

  = ⎢ cos (θ 0 2 ) ⎥  2 + ⎢ cos (θ 0 2 ) cosθ1 ⎥  2     (39)  
⎢ ⎥ ⎢ ⎥
⎢⎣ 0 ⎥⎦ ⎢⎣ − sin θ1 ⎥⎦
⎡ − sin (θ 2 ) (1+ cosθ ) ⎤
⎢ 0 1

= ⎢ cos (θ 0 2 ) (1+ cosθ1 ) ⎥ 2
⎢ ⎥
⎢⎣ − sin θ1 ⎥⎦

To  find  the  rotation  angle   φ0 ,  use   Ry (φ0 )  to  rotate  the  link  combination  around  the  
common  long  red  vector  and  green  y-­‐axis  of  frame  ! f  to  bring  the  link-­‐1  
(yellow/green)  reference  frame  origin  into  alignment  with  the  arrowhead  end  of  the  
long  yellow  vector.  This  rotation  is  equivalent  to  the  matrix  product   v b01 = Ry (φ0 ) v 01
f
 
or  

sin φ0 ⎤ ⎢ − sin (θ 0 2 ) (1+ cosθ1 ) ⎢ ( )


⎡ cosφ0 ⎡ ⎤ ⎡ sin φ sin θ − cosφ sin (θ 2 ) (1+ cosθ ) ⎤
0
  ⎢ ⎥ ⎥ 0 0 0 1
⎥    (40)  
⎢ 0 1 0 ⎥ ⎢ cos (θ 0 2 ) (1+ cosθ1 ) ⎥ 2 = ⎢ cos (θ 0 2 ) (1+ cosθ1 ) ⎥ 2
⎢ − sin φ0 0 cosφ0 ⎥ ⎢⎢ − sin θ1

⎥⎦
⎢ ⎥
⎣ ⎦⎣ ⎢⎣ 0 ⎥⎦

In  essence,   v 01
f
 has  been  rotated  by   φ0  around  the  y-­‐axis  of  frame  ! f  to  zero  out  its  z-­‐
component.  Thus  the  third  equation  in  Eq.  (40)  is  used  to  obtain  

sin θ1
  tan φ0 =     (41)  
sin (θ 0 2 ) (1+ cosθ1 )

© 2013 Roger A. Wehage 36 raw915 (at) gmail.com


Symmetric Bricard Mechanism

Equation  (41)  has  two  problems  in  that  the  denominator  may  go  to  zero,  and  the  
correct  quadrant  for  determining   φ0  cannot  be  determined.  However,  the  angle   φ0  
can  be  determined  correctly  using  the  programming-­‐style  function  

  φ0 = atan2 ( sin θ1 ,sin (θ 0 2 ) (1+ cosθ1 ))     (42)  

to  avoid  dividing  by  zero  and  to  identify  the  correct  quadrant.  

There  is  also  one  more  condition  to  consider.  As   θ  progresses  from  0  to   4π  radians,  
φ0  will  execute  a  full  360°  rotation,  starting  at  54.74°  for  the  configuration  shown  in  
Fig.  1  and  ending  at  414.74°,  again  at  the  configuration  in  Fig.  1.  The  atan2  function  
is  designed  to  find  angles  between   ±π  and  cannot  give  a  continuous  curve  for   φ0  
over  the  full  domain  of   θ .  Thus  additional  logic  

  φ0 = φ0 + 2π ; 3π 2 ≤ θ < 4π     (43)  

is  required  to  adjust  the  results  from  the  atan2  function  to  give  a  continuous  curve  
for   φ0 .  A  continuous  plot  of   φ0  will  be  shown  after  looking  at  some  examples.  

Checking  the  equation  to  evaluate  !φ0  


To  test  Eq.  (42),  consider  the  three  example  configurations  shown  in  Figs.  1,  6,  and  
8.  In  Fig.  1,  the  angles  are   θ 0 = θ1 = π 2 .  Substituting  these  values  into  Eq.  (42)  gives  

  (
φ0 = atan2 1, 2 2 )     (44)  
= 54.74°

As  can  be  verified  from  Fig.  4  or  Fig.  20,  the  links  must  be  rotated  around  the  
floating  frame’s  green  y-­‐axis  by   φ0 = 54.74°  so  that  the  center  point  of  link  1  
(yellow/green)  moves  into  the  barycentric  frame’s  x-­‐y  plane.  

In  Fig.  6,   θ 0 = 0  and   θ1 = 2π 3 .  Substituting  these  values  into  Eq.  (42)  gives  

 
φ0 = atan2 ( 3 2,0 )     (45)  
= 90°

In  this  case,  Fig.  6  shows  that  the  links  must  be  rotated  around  the  floating  frame’s  
green  y-­‐axis  by   φ0 = 90°  so  that  the  center  point  of  link  1  moves  into  the  barycentric  
frame’s  x-­‐y  plane.  

In  Fig.  8,   θ1 = 0  and   θ 0 = 2π 3 .  Substituting  these  values  into  Eq.  (42)  gives  

© 2013 Roger A. Wehage 37 raw915 (at) gmail.com


Symmetric Bricard Mechanism

 
φ0 = atan2 0, 3 ( )     (46)  
= 0°

Inspecting  Fig.  8  reveals  that  the  center  point  of  link  1  is  already  in  the  barycentric  
frame’s  x-­‐y  plane  with  the  floating  frame’s  blue  z-­‐axis  pointing  upward,  so  the  
bodies  need  no  rotation.  (In  reality,  as  shown  in  Fig.  19  below,  the  bodies  were  
rotated  to  360°,  but  the  atan2  function  was  unable  to  detect  this.)  

 
Figure  19.  Rotation  angle   φ0  of  the  floating  frame   f  centered  in  joint  0.  

Figure  19  shows  the  rotation  angle   φ0  around  the  green  y-­‐axis  of  floating  frame  ! f ,  
centered  in  joint  0,  for  one  complete  cycle  of  the  Bricard  mechanism.  The  angle   φ0  
starts  at  54.74°,  which  corresponds  to  the  configuration  in  Fig.  1,  and  ends  at  
414.74°  =  54.74°  +  360°,  which  again  corresponds  to  the  configuration  in  Fig.  1.  The  
configuration  in  Fig.  6  is  at   θ = π 2  radians,  and  the  plot  shows  that   φ0  is  90°,  which  
was  computed  above.  The  configuration  in  Fig.  8  occurs  at   θ = 7π 2  radians,  and  the  
plot  shows  that   φ0  is  360°,  which  was  evaluated  as  0°  in  the  above  calculation.  

© 2013 Roger A. Wehage 38 raw915 (at) gmail.com


Symmetric Bricard Mechanism

Illustrating  the  four  spatial  displacements  

 
Figure  20.  First  translation  for  placing  link  0  (red/yellow).  

Figure  20  shows  the  first  step  in  the  assembly  process  where  the  image  of  the  
displaced  segment  was  superimposed  on  the  image  of  the  original  configuration  in  
Fig.  17  to  illustrate  the  relative  spatial  displacement.  The  floating  frame  ! f  and  the  
three  links  were  translated  along  its  red  x-­‐axis  until  its  origin  intersected  the  long  
red  vector.  (Refer  again  to  Fig.  15.)  The  distance  translated  is   r cos ( β 0 2 ) .  (Again  see  
Fig.  32  for  the  definition  of   β e  and   β o ,  where   β 0  is  an  instance  of   β e ,  corresponding  
to  an  even-­‐numbered  joint  and  link.  Equations  to  evaluate   r  and   β 0  are  derived  
later.)  In  this  configuration  the  floating  frame’s  green  y-­‐axis  now  aligns  with  and  
points  in  the  direction  of  the  long  red  vector.  

 
Figure  21.  First  rotation  by   φ0  for  placing  link  0  (red/yellow).  

© 2013 Roger A. Wehage 39 raw915 (at) gmail.com


Symmetric Bricard Mechanism

Figure  21  shows  the  next  step  in  relocating  the  links,  with  the  previous  and  new  
positions  superimposed.  For  example,  the  magenta  end  of  link  5  (magenta/red)  is  
now  rotated  upward  relative  to  its  original  position  about  the  centerline  of  link  0  
(red/yellow)  by  the  angle   φ0 ,  which  is  not  shown  in  the  figure.  

 
Figure  22.  Second  translation  for  placing  link  0  (red/yellow).  

Figure  22  shows  the  next  configuration  superimposed  on  the  previous  one  from  Fig.  
21.  The  floating  frame  ! f  and  the  three  links  are  now  translated  a  distance  of  
(  2 ) sin (θ 0 2 )  along  its  red  x-­‐axis,  which  is  still  aligned  with  the  centerline  of  link  5  
(magenta/red).  The  red  x-­‐axis  of  frame  ! f  is  barely  visible  in  Fig.  22,  because  it  is  
hidden  by  the  green  y-­‐axis  of  the  red-­‐joint  frame  of  link  5  (magenta/red).  

 
Figure  23.  Second  rotation  for  placing  link  0  (red/yellow).  

© 2013 Roger A. Wehage 40 raw915 (at) gmail.com


Symmetric Bricard Mechanism

Figure  23  shows  the  final  step  in  relocating  the  links,  where  the  previous  and  new  
positions  are  again  shown.  The  mechanism  has  now  been  rotated   θ 0 2  radians  
relative  to  frame  ! f  around  the  common  blue  z-­‐axes  in  the  red  joint,  which  
corresponds  to   π 4  radians  in  this  example.  Frame  ! f  was  not  rotated,  so  its  red  x-­‐
axis  remains  orthogonal  to  the  long  red  vector.  Effectively  the  red-­‐joint  frame  
attached  to  link  0  (red/yellow)  has  been  rotated   θ 0 2  radians  away  from  frame  ! f ,  
and  the  red  joint  frame  attached  to  link  5  (magenta/red)  has  been  rotated   −θ 0 2  
radians  away  from  frame  ! f .  After  this  second  rotation,  the  centers  of  links  5,  0,  and  
1  in  Fig.  23  coincide  with  appropriate  ends  of  the  red  and  yellow  vectors,  just  as  
they  do  in  the  temporary  configuration  in  Fig.  18  and  in  Fig.  1.  

Verifying  the  link  spatial  displacement  equation  


The  matrix  product  

  Tx ( r cos ( β 0 2 )) Ry (φ0 ) Tx ((  2 ) sin (θ 0 2 )) Rz (θ 0 2 )     (47)  

represents  the  sequence  of  displacements  described  in  Figs.  20  to  23.  Equation  (47)  
is  expanded  as  

⎡ 1 0 0 0 ⎤⎡ 1 0 0 0 ⎤⎡ 1 0 0 0 ⎤⎡ 1 0 0 0 ⎤
⎢ ⎥⎢ ⎥⎢ ⎥ ⎢ 0 cos (θ 2 ) − sin (θ 2 ) ⎥
  ⎢ r cos ( β 0 2 ) 1 0 0 ⎥ ⎢ 0 cosφ0 sin φ0 ⎥ ⎢ (  2 ) sin (θ 0 2 )
=    (48)  
0 1 0 0 ⎥⎢ 0 0 0 ⎥
⎢ 0 ⎥⎥
⎢ 0 0 1 0 ⎥⎢ 0 0 1 0 ⎥⎢ 0 0 1 0 ⎥ ⎢ 0 sin (θ 0 2 ) cos (θ 0 2 )
⎢ ⎥⎢ ⎥
0 cosφ0 ⎥ ⎢⎢ ⎥
⎢⎣ 0 0 0 1 ⎥⎦ ⎢⎣ 0 − sin φ0 ⎦⎣ 0 0 0 1 ⎥⎦ ⎢ 0 0 0 1 ⎥⎦

⎡ 1 0 0 0 ⎤
⎢ ⎥
⎢ r cos ( β 0 2 ) + cos φ 0 (  2 ) sin (θ 0 2 ) cos φ 0 cos (θ 0 2 ) − cos φ 0 sin (θ 0 2 ) sin φ0 ⎥
⎢ 0 sin (θ 0 2 ) cos (θ 0 2 ) 0 ⎥⎥


⎢⎣ − sin φ0 (  2 ) sin (θ 0 2 ) − sin φ0 cos (θ 0 2 ) sin φ0 sin (θ 0 2 ) cosφ0 ⎥⎥

Equation  (48)  describes  where  the  coordinate  frame  attached  to  the  red  joint-­‐end  
on  link  0  (red/yellow)  will  be  located  relative  to  the  barycentric  frame   b .  However,  
it  does  not  describe  the  position  and  orientation  of  the  reference  frame  attached  to  
link  0  (red/yellow)  at  its  center  of  mass  relative  to  frame   b .  Additional  
transformations  would  be  needed  to  express  the  displacement  of  link  0’s  reference  
frame  relative  to  frame   b .  

To  check  this  displacement,  consider  the  example  shown  in  Fig.  1.  Set    = 1 ,  
r = 2 2 ,   θ 0 = π 2 ,    0 = cos (θ 0 2 ) = 2 2 ,   β 0 = 2sin −1 (  0 2r ) = 2sin −1 (1 2 ) = π 3 ,  
cosφ0 = 3 3 ,  and   sin φ0 = 6 3 .  Substituting  these  quantities  into  Eq.  (48)  gives  

© 2013 Roger A. Wehage 41 raw915 (at) gmail.com


Symmetric Bricard Mechanism

⎡ 1 0 0 0 ⎤
⎢ ⎥ ⎡ 1 0 0 0 ⎤
⎢ 6 3 6 6 − 6 6 6 3 ⎥ ⎢ 0.816 0.408 −0.408 0.816 ⎥
  ⎢ ⎥=⎢ ⎥  (49)  
⎢ 0 2 2 2 2 0 ⎥ ⎢ 0 0.707 0.707 0 ⎥
⎢ − ⎢ ⎥
⎢⎣ 3 6 − 3 3 3 3 3 3 ⎥⎥ ⎣ −0.289 −0.577 0.577 0.577 ⎦

Refer  back  to  Figs.  1,  4,  and  5  to  verify  that  these  numbers  look  reasonable.  The  
bottom  three  entries  in  the  first  column  of  the  matrix  in  Eq.  (49)  locate  the  red  
joint’s  center  relative  to  barycentric  frame  !b  and  in  its  coordinates.  The  figures  
show  that  the  joint  lies  in  the  barycentric  plane,  so  the  y-­‐component  is  zero  as  
expected.  The  figures  also  indicate  that  the  z-­‐component  is  negative,  the  x-­‐
component  is  positive,  and  the  magnitudes  look  reasonable  when  referring  to  Fig.  4.  

The  bottom  three  entries  of  the  fourth  column  in  Eq.  (49)  indicate  the  red  joint’s  
blue  z-­‐axis  projection  onto  frame  !b  axes.  Figure  1  shows  that  this  vector  lies  in  the  
barycentric  frame’s  x-­‐z  plane,  so  its  projection  onto  the  y-­‐axis  is  zero,  and  Figs.  4  and  
5  show  that  its  projection  onto  the  x  and  z-­‐  axes  are  positive  and  reasonable.  

The  bottom  three  entries  of  the  second  and  third  columns  in  Eq.  (49)  indicate  red  x-­‐
axis  and  green  y-­‐axis  projections  of  the  red  joint  (of  link  0  (red/yellow))  onto  the  
barycentric  frame’s  three  axes.  The  numbers  for  the  red  x-­‐axis  vector  are  a  bit  more  
difficult  to  verify,  because  a  green  y-­‐axis  vector  from  another  frame  has  hidden  the  
red  x-­‐axis  vector.  But  this  red  x-­‐axis  vector  points  up  and  to  the  right  in  Fig.  1,  so  the  
x  and  y  components  in  column  two  look  reasonable.  And  the  green  y-­‐axis  points  up  
and  to  the  left  in  Fig.  1,  so  the  x  and  y  components  in  column  three  also  look  
reasonable.  Verifying  the  z-­‐components  in  these  columns  is  a  bit  more  difficult.  
Figure  4  shows  that  the  red  joint  is  below  the  barycentric  frame’s  x-­‐y  plane,  so  its  
visible  green  y-­‐axis  in  Fig.  4  is  pointing  upward  toward  this  plane  and  has  a  positive  
z-­‐component.  In  a  similar  manner,  the  red  joint’s  hidden  red  x-­‐axis  is  aligned  with  
the  centerline  of  link  5  (magenta/red)  and  pointing  away  from  barycentric  frame’s  
x-­‐y  plane,  so  it  has  a  negative  z-­‐component.  

© 2013 Roger A. Wehage 42 raw915 (at) gmail.com


Symmetric Bricard Mechanism

Illustrating  the  spatial  displacements  for  link  5  (magenta/red)  

 
Figure  24.  Initial  configuration  for  placing  link  5  (magenta/red).  

A  similar  sequence  of  operations  is  performed  using  links  4,  5,  and  0  instead  of  links  
5,  0,  and  1  to  place  link  5  (magenta/red)  relative  to  the  barycentric  frame.  In  
general,  there  would  be  no  need  to  position  link  5  (magenta/red)  using  the  same  
method  as  described  above,  because  it  could  be  placed  relative  to  link  0  
(red/yellow)  using  the  connecting  red  joint’s  angular  displacement.  But  placing  link  
5  (magenta/red)  using  techniques  similar  to  the  previous  method  will  show  how  its  
absolute  displacement  and  velocity  may  be  evaluated  directly,  independent  of  link  0.  
And  doing  this  will  provide  some  other  benefits  as  discussed  later.  

Once  the  absolute  displacement  and  velocity  of  links  0  and  5  have  been  evaluated,  
the  absolute  displacement  and  velocity  of  the  other  links  may  be  evaluated  by  
rotating  copies  of  these  two  links  and  their  displacements  and  velocities  by   ± 2π 3  
around  the  barycentric  frame’s  blue  z-­‐axis.  Because  the  kinematics  of  each  pair  of  
links  is  based  on  the  same  relative  displacements  and  velocities,  this  approach  
avoids  extra  overhead.  

© 2013 Roger A. Wehage 43 raw915 (at) gmail.com


Symmetric Bricard Mechanism

Figure  24  shows  the  section  of  the  Bricard  mechanism  composed  of  links  4,  5,  and  0  
with  internal  joint  angle  values  corresponding  to  those  in  Fig.  1.  This  three-­‐link  
combination  is  set  up  so  that  frame  ! f  and  the  red-­‐joint  frame  attached  to  link  5  
(magenta/red)  are  initially  aligned  with  frame  !b .  The  known  and  fixed  positions  
and  orientations  of  the  long  magenta  and  red  vectors  are  also  shown  relative  to  
frame  !b .  

In  this  example,  the  coordinate  frame  of  the  red  joint  attached  to  link  5  
(magenta/red)  is  initially  aligned  with  that  joint’s  floating  frame   f ,  and  both  frames  
are  aligned  with  the  barycentric  coordinate  frame   b .  This  is  the  starting  
configuration  shown  in  Fig.  24.  Just  as  in  the  previous  example,  the  red  x-­‐axes  of  the  
two  frames  in  the  red  joint  point  toward  the  center  of  the  long  red  vector.  The  long  
magenta  and  red  vectors  are  used  in  this  example,  because  they  will  connect  the  
centers  of  links  4,  5,  and  0.  

 
Figure  25.  First  translation  for  placing  link  5  (magenta/red).  

Figure  25  shows  the  first  adjustment  step,  where  the  bodies  are  translated  by  
r cos ( β 0 2 )  along  the  floating  frame’s  red  x-­‐axis  until  its  origin  lies  on  the  long  red  
vector.  The  previous  configuration  in  Fig.  24  is  also  shown  for  reference.  

© 2013 Roger A. Wehage 44 raw915 (at) gmail.com


Symmetric Bricard Mechanism

 
Figure  26.  First  rotation  for  placing  link  5  (magenta/red).  

In  Fig.  26  the  same   φ0  used  in  the  previous  example  rotates  the  bodies,  because  it  is  
the  same  frame  ! f  in  the  red  joint  used  to  rotate  link  0.  This  rotation  has  now  
brought  the  center  of  link  4  (blue/magenta)  closer  to  the  tail  of  the  magenta  vector.  

 
Figure  27.  Second  translation  for  placing  link  5  (magenta/red).  

© 2013 Roger A. Wehage 45 raw915 (at) gmail.com


Symmetric Bricard Mechanism

In  Fig.  27  the  bodies  are  translated  along  the  floating  frame’s  red  x-­‐axis  a  distance  of  
(  2 ) sin (θ 0 2 ) ,  which  is  also  the  same  distance  used  in  the  previous  example.  In  fact,  
the  relative  displacements  in  Figs.  25-­‐27  are  the  same  as  those  used  in  the  first  
example  in  Figs.  20  to  22  to  place  link  0  (red/yellow).  

 
Figure  28.  Second  rotation  for  placing  link  5  (magenta/red).  

Only  the  spatial  displacement  in  the  final  step  shown  in  Fig.  28  differs  from  the  
previous  example.  In  the  final  step  of  that  example  in  Fig.  23,  the  bodies  were  
rotated  relative  to  frame  ! f  by   θ 0 2 .  In  Fig.  28,  the  bodies  are  rotated  relative  to  
frame  ! f  by   − θ 0 2 .  The  origins  of  the  center  frames  on  the  three  links  now  coincide  
with  the  appropriate  heads  and  tails  of  the  long  magenta  and  red  vectors.  The  
spatial  displacement  of  link  5  (magenta/red)  at  its  red  joint  end  relative  to  the  
barycentric  frame   b  is  obtained  by  replacing   Rz (θ 0 2 )  with   Rz ( − θ 0 2 )  in  Eq.  (47).  
Just  as  was  noted  for  link  0  (red/yellow),  this  displacement  does  not  describe  the  
position  and  orientation  of  the  reference  frame  attached  to  link  5  (magenta/red/)  at  
its  center  of  mass.  Additional  transformations  are  required  to  express  the  
displacement  of  link  5’s  reference  frame  relative  to  frame  !b .  

Evaluating  other  displacement  quantities  


Evaluate  distance  between  link  reference  frames  
Now  that  a  method  is  available  to  directly  position  and  orient  the  six  links  relative  to  
the  barycentric  frame  for  any  value  of   θ ,  the  rest  of  the  kinematics  is  relatively  

© 2013 Roger A. Wehage 46 raw915 (at) gmail.com


Symmetric Bricard Mechanism

straightforward.  However,  the  quantities  needed  to  place  the  bodies  into  their  
correct  locations  for  any  value  of   θ  still  have  to  be  evaluated.  

The  assembled  mechanism  in  Figs.  1,  4-­‐6,  and  8  show  that  each  vector  representing  
one  edge  of  the  hexagon  is  also  the  base  of  an  isosceles  or  equilateral  triangle,  where  
the  other  two  sides  have  a  length  of    2 .  Since  the  even  or  odd-­‐numbered  joint  
angle  opposite  the  respective  even  or  odd-­‐numbered  vector  at  the  triangle’s  base  is  
known,  the  corresponding  vector’s  length  may  be  obtained  as  

 e = sin ( (π − θ e ) 2 ) = cos (θ e 2 )
      (50)  
 o = sin ( (π − θ o ) 2 ) = cos (θ o 2 )

 
Figure  29.  Normalized  length  of  even  and  odd-­‐numbered  vectors  connecting  link  
centers  for    = 1 .  

Figure  29  shows  plots  of    e  and    o  representing  the  length  of  vectors  subtending  
the  respective  even  and  odd-­‐numbered  joint  angles  for    = 1 .  These  vectors  range  in  
magnitude  from    2  to    .  

© 2013 Roger A. Wehage 47 raw915 (at) gmail.com


Symmetric Bricard Mechanism

Evaluate  radius  of  link  centers  in  barycentric  frame  

 
Figure  30.  Layout  for  determining  the  radius   r  of  link  centers.  

The  radius   r  of  the  circle  containing  the  six  mass  centers  is  evaluated  next.  An  
equilateral  triangle  was  drawn  in  black  around  the  outer  edges  of  the  hexagon  
shown  in  Fig.  7.  (A  similar  equilateral  triangle  with  the  same  orientation  may  be  
drawn  around  each  hexagon  no  matter  what  configuration  the  Bricard  mechanism  
takes.  For  example,  compare  the  superimposed  triangles  in  Fig.  10.)  

Consider  the  larger  right  triangle  in  Fig.  30  with  its  top  leg  labeled  x  and  its  divided  
vertical  leg  extending  to  the  lower  corner  of  the  large  equilateral  triangle.  The  upper  
part  of  this  vertical  leg  has  a  length  of    e 2  and  the  lower  part  has  a  length  of    o .  
(The  roles  of    e  and    o  could  be  reversed  and  yield  the  same  results.)  The  two  
segments  are  equal  in  this  example,  but  in  general  they  are  not.  Regardless  of  their  
relative  size,  the  lower  angle  of  this  triangle  is  always   π 6 ,  because  it  is  half  of  the  
equilateral  triangle’s  angle  of   π 3 .  From  this  triangle  is  obtained  the  relationship  

  x ⎛π⎞ 3     (51)  
= tan ⎜ ⎟ =
e 2 + o ⎝ 6⎠ 3

Then  the  smaller  right  triangle  with   r  as  its  hypotenuse  and   x  and    e 2  as  its  two  
legs  yields  
r 2 = x 2 + 2e 4
= (  e 2 +  o ) 3 + 2e 4
2

      (52)  
= ( 2e + 2o +  e o ) 3

(
= (  e +  o ) −  e o
2
)3
or  
  r= (( +  ) −   ) 3    
e o
2
e o
(53)  

© 2013 Roger A. Wehage 48 raw915 (at) gmail.com


Symmetric Bricard Mechanism

 
Figure  31.  Normalized  radius   r  of  link  reference  frames  and  mass  centers  for    = 1 .  

Figure  31  shows  how  the  radius   r  varies  in  a  somewhat  sinusoidal  fashion,  ranging  
from  a  minimum  of   6 12  when  all  six  joint  angles  have  values  of   ± π 2  radians  to  
a  maximum  of   7 12  when  three  of  the  angles  are  zero  and  the  other  three  are  
± 2π 3  radians.  

Evaluate  subtended  angles  to  adjacent-­‐link  vectors  

 
Figure  32.  Layout  for  determining  subtended  angles   β e  and   β o .  

Referring  to  Fig.  32  with   r ,    e ,  and    o  known,  the  subtended  angles   β e  and   β o  may  
be  determined  from    
⎛ ⎞
β e = 2sin −1 ⎜ e ⎟
  ⎝ 2r ⎠     (54)  
⎛ ⎞
β o = 2sin −1 ⎜ o ⎟ = 2π 3 − β e
⎝ 2r ⎠

© 2013 Roger A. Wehage 49 raw915 (at) gmail.com


Symmetric Bricard Mechanism

 
Figure  33.  Subtended  angles   β e  and   β o .  

Figure  33  shows  the  subtended  angles  in  the  center-­‐of-­‐mass  circle  for  all  possible  
mechanism  configurations.  For  any  value  of   θ  it  is  easily  verified  that  
β e + β o = 2π 3 ,  which  corresponds  to  one  third  of  the  Bricard  mechanism,  one  third  
of  the  hexagon,  and  one  third  of  the  center-­‐of-­‐mass  circle.  

Evaluate  position  of  link  centers  


Coordinates  of  the  six  vectors  locating  the  link  centers  of  mass  relative  to  the  
barycentric  frame   b  are  expressed  in  this  frame  as  

⎡ cβ 0 ⎤ ⎡ −cβ − 3sβ ⎤ ⎡ −cβ + 3sβ ⎤


⎢ ⎥ r⎢ ⎥ r⎢ ⎥
0 0 0 0
b
r b0 = r ⎢ sβ 0 ⎥;
b
r b2 = ⎢ 3cβ 0 − sβ 0 ⎥; r bb 4 = ⎢ − 3cβ − sβ ⎥
⎢ 0 ⎥ 2⎢ ⎥ 2⎢ 0 0

  ⎣ ⎦ ⎢⎣ 0 ⎥⎦ ⎢⎣ 0 ⎥⎦  (55)  
⎡ cβ 0 ⎤ ⎡ −cβ + 3sβ ⎤ ⎡ −cβ − 3sβ ⎤
⎢ ⎥ r⎢ ⎥ r⎢ ⎥
0 0 0 0
b
r b5 = r ⎢ −sβ 0 ⎥; r b1 = ⎢
b
3cβ 0 + sβ 0 ⎥; r b 3 = ⎢ − 3cβ + sβ
b

⎢ 0 ⎥ 2⎢ ⎥ 2⎢ 0 0

⎣ ⎦ ⎢⎣ 0 ⎥⎦ ⎢⎣ 0 ⎥⎦

where   cβ 0 = cos ( β 0 2 )  and   sβ 0 = sin ( β 0 2 ) .  (The  symbol  !r  was  used  in  Eq.  (55)  to  
represent  coordinates  of  translation  or  position  vectors  instead  of  !t  introduced  
earlier.  This  discrepancy  results  from  associating  !r  with  the  circle  radius  symbol  !r  

© 2013 Roger A. Wehage 50 raw915 (at) gmail.com


Symmetric Bricard Mechanism

of  link  centers  in  the  barycentric  plane.)  All  six  vectors  are  expressed  in  terms  of  just  
two  variables   r  and   β 0 ,  which  makes  it  easier  and  more  efficient  to  evaluate  their  
coordinates  and  first  time  derivatives.  As  indicated  in  Fig.  32,  coordinates  of   r b0 b
 and  
b
r b5  are  simply  reflections  of  each  other  around  the  barycentric  frame’s  red  x-­‐axis.  
Coordinates  of  the  other  four  vectors  are  obtained  by  rotating  copies  of   r b0
b
 and   r b5
b
 
by   ± 2π 3  radians  around  the  barycentric  frame’s  blue  z-­‐axis.  It  is  easy  to  verify  
from  Eq.  (55)  that  


5
  i=0
rbib = 0     (56)  

Evaluate  first  time  derivatives  


Time  derivative  of  position  vectors  
Since  the  barycentric  frame   b  is  not  moving  in  this  development,  coordinates  of  the  
position  vectors  in  Eq.  (55)  may  be  differentiated  directly  yielding  

⎡ −sβ 0 ⎤ ⎡ −sβ 0 ⎤
⎢ ⎥ ⎢ ⎥
b b
r b0
r r b5
r
r b0 = r + ⎢ cβ 0 ⎥ β0 ; r b5 = r + ⎢ −cβ 0 ⎥ β0
b b

r 2⎢ ⎥ r 2⎢ ⎥
⎣ 0 ⎦ ⎣ 0 ⎦
⎡ sβ − 3cβ ⎤ ⎡ sβ + 3cβ ⎤
 
b
r b2
r ⎢ 0 0
⎥ ⎢
b
r b1
r
0 0
⎥     (57)  
r b2 = r + ⎢ − 3sβ − cβ ⎥ β0 ; r b1 = r + ⎢ − 3sβ + cβ ⎥ β0
b b

r 4⎢ 0 0
⎥ r 4⎢ 0 0

⎢⎣ 0 ⎥⎦ ⎢⎣ 0 ⎥⎦
⎡ sβ + 3cβ ⎤ ⎡ sβ − 3cβ ⎤
r bb 4 r⎢ ⎥ ⎢
r bb 3 ⎥
0 0 0 0
r
r bb 4 = r + ⎢ 3sβ − cβ ⎥ β0 ; r bb 3 = r + ⎢ 3sβ + cβ ⎥ β0
r 4⎢ 0 0
⎥ r 4⎢ 0 0

⎢⎣ 0 ⎥⎦ ⎢⎣ 0 ⎥⎦

Differentiating  Eq.  (56)  also  gives  


5
  i=0
rbib = 0     (58)  

Time  derivative  of  joint  angles  


Equation  (57)  expresses  the  translational  velocities  relative  to  the  barycentric  frame  
b  in  terms  of   r  and   β0 ,  which  must  be  evaluated  in  terms  of   θ .  To  express  
quantities  in  terms  of   θ ,  first  differentiate  Eq.  (22)  with  respect  to  time  as  

  (1+ ce ) soθo + (1+ co ) seθe = 0     (59)  

© 2013 Roger A. Wehage 51 raw915 (at) gmail.com


Symmetric Bricard Mechanism

Then  use  Eq.  (59)  to  express  derivatives  of  the  equations  in  Eq.  (27)  in  terms  of   θ  as  

θe = − θ; θo =


(1+ co ) se θ; 0 ≤θ < π
(1+ ce ) so
θo = − θ; θe =
(1+ ce ) so θ; π ≤ θ < 2π
  (1+ co ) se     (60)  

θe = θ; θo = −


(1+ co ) se θ; 2π ≤ θ < 3π
(1+ ce ) so
θo = θ; θe = −
(1+ ce ) so θ; 3π ≤ θ < 4π
(1+ co ) se

Applying  the  constant  kinetic  energy  constraint  


The  challenge  is  to  evaluate   θ  for  each   θ ,  given  a  value  for  the  constant  kinetic  
energy,   T (θ ,θ ) = C .  A  value  for   θ  could  be  obtained  from   T (θ ,θ )  if  a  simple  
equation  was  available,  but  the  equation  is  rather  complex,  and  manipulating  it  to  
isolate   θ  can  be  avoided.  An  easier  approach  is  to  first  set   θ = 1  and  evaluate  a  
normalized  kinetic  energy   T (θ ,θ = 1) .  Then,  since   T (θ ,θ )  is  proportional  to   θ 2 ,  Eq.  
(9)  may  be  used  to  obtain   θ .  

Figure  34.   θ  for  Bricard  mechanism  model  and  constant  kinetic  energy   T (θ ,θ ) .  

© 2013 Roger A. Wehage 52 raw915 (at) gmail.com


Symmetric Bricard Mechanism

Figure  34  shows  a  typical  plot  of  scaled   θ  for  constant  kinetic  energy  with  specified  
mass  and  moments  of  inertia.  The  actual  parameter  values  are  not  important  for  this  
illustration.  An  interesting  feature  of  the  scaled   θ  as  a  function  of   θ  in  Fig.  34  is  that  
its  slope  is  not  continuous.  As  discussed  earlier,  the  reason  for  this  lack  of  continuity  
in  slope  is  that   θ  is  not  a  natural  variable  to  the  Bricard  mechanism;  it  was  
introduced  as  a  parametric  quantity  to  simplify  evaluating  the  joint  angles.  

While  the  slope  of  the  scaled   θ  curve  in  Fig.  34  is  not  continuous,  the  slopes  of  all  
other  velocity  curves  based  on  this  scaled  quantity  must  be  continuous.  Since  all  
other  scaled  quantities  are  used  to  compute  constant  kinetic  energy  over  the  
Bricard  mechanism’s  full  cycle,  and  because  the  slope  of  a  constant  curve  is  
continuous,  these  curves  must  have  continuous  slopes.  

Figure  35.  Normalized  and  scaled  values  for   θe  and   θo .  

Figure  35  shows  scaled  plots  of   θe  and   θo  superimposed  on  normalized  plots  of   θe  
and   θo  evaluated  using   θ = 1 .  The  scaled   θ  curve  in  Fig.  34  was  multiplied  with  the  
normalized   θe  and   θo  curves  in  Fig.  35  to  obtain  the  smooth,  scaled   θe  and   θo  
curves.  The  scaled   θ  and  normalized   θe  and   θo  curves  each  have  discontinuous  
slopes,  but  when  multiplied  together  to  evaluate  the  scaled   θe  and   θo  curves,  the  
discontinuities  have  mysteriously  canceled  out,  giving  the  smooth  results.  These  
smooth,  scaled  curves  are  what  would  have  been  used  to  evaluate  the  smooth,  
constant   T (θ ,θ )  curve  if   θ  were  known.  

© 2013 Roger A. Wehage 53 raw915 (at) gmail.com


Symmetric Bricard Mechanism

Time  derivative  of  other  intermediate  quantities  


Next,  the  translational  velocity  of  each  link’s  center  of  mass  is  expressed  relative  to  

frame  !b .  Let   rb0  denote  the  vector  from  the  origin  of  frame  !b  to  the  reference  frame  

origin  of  link  0  (red/yellow).  The  angle   β e 2  gives  the  angle  of  vector   rb0  relative  to  

the  barycentric  frame’s  fixed  red  x-­‐axis.  Thus   βe  gives  the  rotational  rate  of   rb0  

around  the  barycentric  frame’s  blue  z-­‐axis.  The  length   r  of   rb0  also  changes,  
requiring  that   r  be  evaluated  as  well.  To  find   r ,  differentiate   3r 2 = 2e + 2o +  e o ,  
obtained  from  Eq.  (52),  to  get  

  r =
( 2 e +  o )  e + ( 2 o +  e )  o     (61)  
6r

Then  differentiate  Eq.  (50)  to  obtain  

−sin (θ e 2 ) 
 e = θe
2
      (62)  
 o =
−sin (θ o 2 ) θo
2

Figure  36.  Normalized  and  scaled  values  for    e  and    o .  

© 2013 Roger A. Wehage 54 raw915 (at) gmail.com


Symmetric Bricard Mechanism

Figure  36  shows  scaled  plots  of    e  and    o  superimposed  on  normalized  plots  of    e  
and    o  evaluated  using   θ = 1 .  Just  as  was  done  for  the  previous  case,  the  scaled   θ  
curve  in  Fig.  34  was  multiplied  with  the  normalized    e  and    o  curves  in  Fig.  36  to  
obtain  the  scaled    e  and    o  curves.  And  again  the  discontinuities  in  slopes  have  
canceled  out  to  give  smooth  results.  These  smooth  scaled  curves  are  what  would  
have  been  used  to  evaluate   T (θ ,θ )  if   θ  were  known.  

 
Figure  37.  Normalized  and  scaled  values  for   r .  

With    e  and    o  known,  Eq.  (61)  is  used  to  evaluate  the  time  derivative  of  the  center-­‐
of-­‐mass  circle  radius   r .  Figure  37  shows  the  scaled   r  superimposed  on  the  
normalized  plot.  In  this  case,  both  curves  appear  to  have  continuous  slopes,  because  
the  discontinuities  in  slopes  occur  where   r = 0 .  

With    e  and   r  known,  differentiate    e = 2r sin ( β e 2 )  from  Eq.  (54)  to  obtain  

   e = (  e r ) r + r cos ( β e 2 ) βe     (63)  

and  solve  for   βe  as  

 e − (  e r ) r
  βe =     (64)  
r cos ( β e 2 )

© 2013 Roger A. Wehage 55 raw915 (at) gmail.com


Symmetric Bricard Mechanism

A  similar  equation  for   βo  may  be  obtained  as  

 o − (  o r ) r
  βo = = − βe     (65)  
r cos ( β o 2 )

The  last  identity  in  Eq.  (65)  comes  from  differentiating   β o = 2π 3 − β e  in  Eq.  (54).  

Figure  38.  Normalized  and  scaled  values  for   βe  and   βo .  

Figure  38  shows  scaled  plots  of   βe  and   βo  superimposed  on  their  normalized  plots.  
Again  multiplying  the  normalized  curves  with  the  scaled   θ  curve  in  Fig.  34  has  
given  scaled  curves  with  continuous  slopes  in  Fig.  38.  

Angular  velocity  of  the  links  


To  determine  the  Bricard  mechanism’s  motion  from  its  specified  constant  kinetic  
energy,  the  equation  for   T (θ ,θ )  must  be  developed  so  that  it  can  be  used  to  solve  
for   θ .  The  linear  velocity  of  each  link’s  center  of  mass  was  already  developed,  but  
the  angular  velocity  of  the  even  and  odd-­‐numbered  links  still  needs  to  be  
determined.  The  direction  cosine  matrix  

© 2013 Roger A. Wehage 56 raw915 (at) gmail.com


Symmetric Bricard Mechanism

  Rb0 = Ry (φ0 ) Rz (θ 0 2 )     (66)  

is  extracted  from  Eq.  (47)  and  differentiated  with  respect  to  time  to  express  the  
angular  velocity  of  link  0  (red/yellow)  relative  to  the  barycentric  frame  !b  as  

R b0 = R y (φ0 ) Rz (θ 0 2 ) + Ry (φ0 ) R z (θ 0 2 )
= ω bfb Ry (φ0 ) Rz (θ 0 2 ) + Ry (φ0 )ω ff 0 Rz (θ 0 2 )
      (67)  
( )
= ω bfb + ω bf 0 Ry (φ0 ) Rz (θ 0 2 )
= ω b0
b
Rb0

In  Eq.  (67)   ω bfb  is  the  angular  velocity  of  the  frame   f  in  red  joint  0  relative  to  frame  
b ,  and   ω bf 0  is  the  angular  velocity  of  link  0  (red/yellow)  relative  to  frame   f .  Thus  

  ω b0
b
= ω bfb + ω bf 0     (68)  

expresses  the  angular  velocity  of  link  0  (red/yellow)  relative  to  frame   b .  In  earlier  
discussions  it  was  noted  that  the  y-­‐axis  of  frame   f  in  red  joint  0  remains  oriented  
with  the  barycentric  frame’s  y-­‐axis,  so  

⎡ 0 ⎤
⎢ ⎥
  ω =ω = ⎢
b
bf
f
bf φ0 ⎥     (69)  
⎢ 0 ⎥⎦

In  a  similar  manner,  the  blue  z-­‐axes  of  frame  ! f  and  the  link  0  (red/yellow)  
reference  frame  have  the  same  orientation,  so    

⎡ 0 ⎤
⎢ ⎥
  ω ff 0 = ω 0f 0 = ⎢ 0 ⎥     (70)  
⎢ θ0 2 ⎥
⎣ ⎦

Transforming   ω ff 0  to  frame   b  gives  

© 2013 Roger A. Wehage 57 raw915 (at) gmail.com


Symmetric Bricard Mechanism

ω bf 0 = Ry (φ0 )ω ff 0
⎡ cosφ0 0 sin φ0 ⎤ ⎡ 0 ⎤
⎢ ⎥⎢ ⎥
  =⎢ 0 1 0 ⎥ ⎢ 0 ⎥     (71)  
⎢ − sin φ0 0 cosφ0 ⎥ ⎢⎣ θ0 2 ⎥⎦
⎣ ⎦
⎡ sin φ θ 2 ⎤
⎢ 0 0

=⎢ 0 ⎥
⎢ cosφ θ 2 ⎥
⎣ 0 0

Combining  Eqs.  (69)  and  (71)  then  yields  

⎡ sin φ θ 2 ⎤
⎢ 0 0

  ω b0
b
=⎢ φ0 ⎥     (72)  
⎢ ⎥
⎢⎣ cosφ0 θ0 2 ⎥⎦

The  only  difference  between  the  absolute  angular  velocities  of  links  0  and  5  is  that  
link  0  (red/yellow)  rotates  at   θ0 2  radians/second  relative  to  frame   f ,  and  link  5  
(magenta/red)  rotates  at   − θ0 2  radians/second  relative  to  it.  Thus  

⎡ − sin φ θ 2 ⎤
⎢ 0 0

  ω b5
b
=⎢ 
φ0 ⎥     (73)  
⎢ ⎥
⎢⎣ − cosφ0 θ0 2 ⎥⎦

Rotational  velocities  of  the  remaining  links  are  simply  copies  of   ω b0
b
 and   ω b5
b
 rotated  
by   ± 2π 3  radians  about  the  barycentric  frame’s  blue  z-­‐axis.  Since  copies  of  links  0  
and  5  were  also  rotated  by   ± 2π 3  radians  about  the  barycentric  frame’s  z-­‐axis  to  
position  the  other  four  links,  their  local  angular  velocity  vectors  align  with  their  
local  inertia  matrices,  just  like  they  do  with  links  0  and  5.  

The  even  and  odd-­‐numbered  links  have  identical  local  inertia  matrices,  are  
symmetrical  about  their  centerlines,  and  have  principal  inertia  axes  aligned  with  
their  reference  frame  axes.  With  these  requirements,  all  six  links  have  the  same  
constant,  diagonal  local  inertia  matrix   J ,  where  its  first  and  third  components  are  
equal.  

Using  the  local  angular  velocities  

© 2013 Roger A. Wehage 58 raw915 (at) gmail.com


Symmetric Bricard Mechanism

ω b0
0
= RzT (θ 0 2 ) RyT (φ0 )ω b0
b

⎡ cos (θ 2 ) sin (θ 2 ) 0 ⎤ ⎡ cosφ 0 − sin φ0 ⎤ ⎡⎢ sin φ0 θ0 2 ⎤⎥


⎢ 0 0
⎥⎢ 0

  = ⎢ − sin (θ 0 2 ) cos (θ 0 2 ) 0 ⎥ ⎢ 0 1 0 ⎥⎢ φ0 ⎥    (74)  
⎢ ⎥⎢
1 ⎥⎦ ⎣ sin φ0 0 cosφ0 ⎥ ⎢ cosφ θ 2 ⎥⎥

⎢⎣ 0 0 ⎦⎣ 0 0

⎡ sin (θ 2 )φ ⎤
⎢ 0 0

= ⎢ cos (θ 0 2 )φ0 ⎥
⎢ ⎥
⎢ θ0 2 ⎥
⎣ ⎦

and  

ω b5
5
= RyT ( − π 2 ) RzT ( −θ 0 2 ) RyT (φ0 )ω b5
b

⎡ 0 0 1 ⎤ ⎡ cos (θ 0 2 ) − sin (θ 0 2 ) 0 ⎤ ⎡ cosφ0 0 − sin φ0 ⎤ ⎡⎢ − sin φ0 θ0 2 ⎤⎥


  ⎢ ⎥⎢ ⎥  (75)  
= ⎢ 0 1 0 ⎥ ⎢ sin (θ 0 2 ) cos (θ 0 2 ) 0 ⎥ ⎢ 0 1 0 ⎥ ⎢ 
φ ⎥
⎢ ⎥ 0

⎢⎣ −1 0 0 ⎥⎦ ⎢⎢ ⎥⎢
1 ⎥⎦ ⎣ sin φ0 0 cosφ0 ⎥ ⎢⎢ − cosφ θ 2 ⎥⎥
⎣ 0 0 ⎦⎣ 0 0

⎡ − θ0 2 ⎤
⎢ ⎥
= ⎢ cos (θ 0 2 )φ0 ⎥
⎢ ⎥
⎢ sin (θ 0 2 )φ0 ⎥
⎣ ⎦

each  link  may  be  verified  to  have  the  same  rotational  kinetic  energy.  The  extra  
transformation  in  Eq.  (75)  compared  to  Eq.  (74)  is  necessary  because  the  reference  
frame  for  link  5  (magenta/red)  has  a  different  orientation  than  the  frame  in  the  red  
joint  attached  to  link  5  (magenta/red).  (Refer  to  Fig.  2.)  

Kinetic  energy  equations  


The  Bricard  mechanism’s  total  kinetic  energy  is  expressed  initially  as  

1 5 bT b 1 5 iT i
  T = m ∑ r bi r bi + ∑ ω bi Jω bi     (76)  
2 i=0 2 i=0

From  Eq.  (57)  it  follows  that  

© 2013 Roger A. Wehage 59 raw915 (at) gmail.com


Symmetric Bricard Mechanism

bT b
r b0 r b0 r2  2 r2
r r =
bT
b0
b
b0 r2 + β 0 = r2 + β02
r2 4 4
  bT b
    (77)  
r b5 r b5 r2 r2
r r =
bT
b5
b
b5 r + β02 = r2 + β02
2

r2 4 4

Equations  (77)  and  earlier  discussions  show  that  the  linear  component  of  kinetic  
energy  of  each  link  is  the  same,  and  so  is  the  angular  component  of  kinetic  energy  
for  each  link  as  indicated  in  the  previous  discussion.  Thus  Eq.  (76)  simplifies  to  

⎛ r2 ⎞
  T = 3m ⎜ r2 + β02 ⎟ + 3ω b0
0T
Jω b0
0
    (78)  
⎝ 4 ⎠

Equation  (78)  is  implicitly  quadratic  in   θ  and  could  be  symbolically  manipulated  to  
solve  for   θ .  However,  as  noted  earlier,  it  will  be  easier  to  set   θ = 1  and  use  
normalized  quantities  in  Eq.  (78)  to  first  evaluate   T (θ ,θ = 1) ,  and  then  use  Eq.  (9)  to  
solve  for   θ  and  scale  the  normalized  quantities  to  their  true  values,  if  they  are  even  
needed.  

To  evaluate  the  normalized  kinetic  energy   T (θ ,θ = 1)  based  on  Eq.  (78),  start  with  
the  normalized   θ = 1  and  use  Eq.  (60)  to  get  

θ0 = − 1; θ5 =
(1+ cosθ 5 ) sinθ 0 ; 0 ≤θ < π
(1+ cosθ 0 ) sinθ 5
θ5 = − 1; θ0 =
(1+ cosθ 0 ) sinθ 5 ; π ≤ θ < 2π
(1+ cosθ 5 ) sinθ 0
      (79)  
θ0 = 1; θ5 = −
(1+ cosθ 5 ) sinθ 0 ; 2π ≤ θ < 3π
(1+ cosθ 0 ) sinθ 5
θ5 = 1; θ0 = −
(1+ cosθ 0 ) sinθ 5 ; 3π ≤ θ < 4π
(1+ cosθ 5 ) sinθ 0
Then  use  Eq.  (62)  to  evaluate  the  normalized    0  and    5 ,  use  Eq.  (61)  to  evaluate  the  
normalized   r ,  and  use  Eq.  (64)  to  evaluate  the  normalized   β .   0

Time  derivative  of  !φ0  


Evaluating  the  angular  velocity  of  link  0  also  requires  a  normalized  value  for   φ0 ,  
which  may  be  obtained  by  differentiating  Eq.  (41)  with   θ1  replaced  by   θ 5  to  get  

© 2013 Roger A. Wehage 60 raw915 (at) gmail.com


Symmetric Bricard Mechanism

sin (θ 0 2 ) (1+ cosθ 5 ) cosθ 5θ5 − sin θ 5 ( cos (θ 0 2 ) (1+ cosθ 5 ) 2 θ0 − sin (θ 0 2 ) sin θ 5θ5 )
φ0 = cos 2 φ0
sin 2 (θ 0 2 ) (1+ cosθ 5 )
2

(sin (θ 2 )(1+ cosθ ) cosθ + sin 2 θ 5 sin (θ 0 2 ))θ5 − ( sin θ 5 cos (θ 0 2 ) (1+ cosθ 5 ) 2 )θ0
  = cos 2 φ0    (80)  
0 5 5

sin 2 (θ 0 2 ) (1+ cosθ 5 )


2

sin (θ 0 2 )θ5 − ( sin θ 5 cos (θ 0 2 ) 2 )θ0


= cos 2 φ0
sin 2 (θ 0 2 ) (1+ cosθ 5 )
cos 2 φ0 ⎛ sin θ 5 ⎞
= ⎜ θ5 − θ0 ⎟
sin (θ 0 2 ) (1+ cosθ 5 ) ⎝ 2 tan (θ 0 2 ) ⎠

Now  there  is  a  problem  with  Eq.  (80),  because   θ 0  can  go  to  zero  and  cause  a  divide  
by  0.  Thus  an  alternate  equation  for   φ0  is  required  for  situations  where   θ 0  is  close  to  
zero.  This  may  be  obtained  by  differentiating  

1 sin (θ 0 2 ) (1+ cosθ 5 )


  =     (81)  
tan φ0 sin θ 5

Equation  (81)  is  just  the  inverse  of  Eq.  (41)  with   θ 5  substituted  for   θ1 ,  and  it  is  valid  
for  small  values  of   θ 0 ,  because,  as  Fig.  13  shows,   θ 5  is  far  from  zero  when   θ 0  is  close  
to  zero.  Differentiating  Eq.  (81)  gives  

( )
⎛ sin θ 5 ( cos (θ 0 2 ) (1+ cosθ 5 ) 2 )θ0 − sin (θ 0 2 ) sin θ 5θ5 − sin (θ 0 2 ) (1+ cosθ 5 ) cosθ 5θ5 ⎞
φ0 = − sin 2 φ0 ⎜ ⎟
⎜⎝ sin 2 θ 5 ⎟⎠
  sin 2 φ0  (82)  
=
sin 2 θ 5
(
(sin2 θ 5 sin (θ 0 2 ) + sin (θ 0 2 )(1+ cosθ 5 ) cosθ 5 )θ5 − (sinθ 5 cos (θ 0 2 )(1+ cosθ 5 ) 2 )θ0 )
sin 2 φ0 (1+ cosθ 5 ) ⎛  sin θ 5 cos (θ 0 2 ) θ ⎞
=
sin 2 θ 5 ⎜⎝ sin (θ 0 2 )θ 5 − 2
0⎟

The  logic  for  selecting  the  correct  equation  to  evaluate   φ0  is  then  given  as  

sin 2 φ0 (1+ cosθ 5 ) ⎛ 5 − sin θ 5 cos (θ 0 2 ) θ0 ⎞ ;



φ0 =
sin θ 5
2 ⎜⎝ sin (θ 0 2 )θ
2 ⎟⎠ 0 ≤θ < π

cos 2 φ0 ⎛ sin θ 5 ⎞
φ0 = ⎜ θ5 − θ0 ⎟ ; π ≤ θ < 2π
sin (θ 0 2 ) (1+ cosθ 5 ) ⎝ 2 tan (θ 0 2 ) ⎠
      (83)  
sin 2 φ0 (1+ cosθ 5 ) ⎛ 5 − sin θ 5 cos (θ 0 2 ) θ0 ⎞ ; 2π ≤ θ < 3π
φ0 =
sin θ 5
2 ⎜⎝ sin (θ 0 2 )θ
2 ⎟⎠

cos 2 φ0 ⎛ sin θ 5 ⎞
φ0 = ⎜ θ5 − θ0 ⎟ ; 3π ≤ θ < 4π
sin (θ 0 2 ) (1+ cosθ 5 ) ⎝ 2 tan (θ 0 2 ) ⎠

© 2013 Roger A. Wehage 61 raw915 (at) gmail.com


Symmetric Bricard Mechanism

Figure  39.  Normalized  and  scaled  values  for   φ0 .  

Figure  39  shows  the  normalized  values  for   φ0  based  on  the  normalized   θ = 1  and  the  
corresponding  scaled  values  based  on  the  scaled   θ .  Compare  the  values  of  the  
normalized  curve  in  Fig.  39  with  the  slope  of  the   φ0  curve  in  Fig.  21.  Note  that  it  is  
!
the  discontinuous  normalized  curve  that  matches  the  slope  of  the   φ0  curve  in  Fig.  21,  
!
not  the  scaled  curve.  The  reason  for  this  is  that   θ  is  the  parametric  quantity  whose  
time  derivative   θ  does  not  represent  a  natural  progression  of  any  of  the  
mechanism’s  joint  variables  through  time.  

With  this  current  normalized  value  for   φ0 ,  all  normalized  quantities  are  available  to  
evaluate  the  normalized  kinetic  energy  in  Eq.  (78),  which  is  then  used  in  Eq.  (9)  to  
evaluate  the  scaled   θ .  Then   θ  is  numerically  integrated  to  get  the  next  value  for   θ ,  
if  desired,  and  the  process  repeats.  A  nice  feature  of  this  method  is  that  no  scaled  
velocity  quantity  except   θ  is  needed  to  simulate  the  Bricard  mechanism.  

Summary  of  steps  for  simulating  the  Bricard  mechanism  


The  following  steps  summarize  a  minimum  set  of  operations  that  must  be  
performed  to  simulate  the  Bricard  mechanism.  

© 2013 Roger A. Wehage 62 raw915 (at) gmail.com


Symmetric Bricard Mechanism

1. Set  a  constant  value  for   T (θ ,θ ) .  


2. Set  an  initial  value  for   θ .  
3. Evaluate   θ 0  and   θ 5  using  Eq.  (27).  
4. Evaluate   φ0  using  Eq.  (42).  
5. Evaluate    0  and    5  using  Eq.  (50).  
6. Evaluate   r  using  Eq.  (53).  
7. Evaluate   β 0  using  Eq.  (54).  
8. Evaluate  normalized   θ0  and   θ5  using  Eq.  (79).  
9. Evaluate  normalized    0  and    5  using  Eq.  (62).  
10. Evaluate  normalized   r  using  Eq.  (61).  
11. Evaluate  normalized   β0  using  Eq.  (64).  
12. Evaluate  normalized   φ0  using  Eq.  (80)  or  Eq.  (82).  
13. Evaluate  normalized   ω b0 0
 using  Eq.  (74).  
14. Evaluate  normalized   T (θ ,θ = 1)  using  Eq.  (78).  
15. Evaluate  scaled   θ  using  Eq.  (9).  
16. Numerically  integrate  scaled   θ ,  if  desired,  to  get  next  value  for   θ .  
17. Stop  when  finished  or  return  to  Step  3.  

The  scaled   θ can  be  multiplied  with  normalized  quantities,  and  other  scaled  
quantities  can  be  evaluated  in  terms  of  the  scaled   θ  if  needed  for  output.  Quantities  
depending  only  on   θ  can  also  be  directly  evaluated  for  output  if  desired.  

Animating  the  Bricard  mechanism  


Evaluating  the  link  position  vectors  
When  a  Bricard  mechanism  animation  is  desired,  such  as  for  a  screen  saver,  each  
link’s  graphics  would  be  referenced  to  the  barycentric  frame   b .  The  absolute  
position  of  the  six  frames  in  barycentric  frame   b  coordinates  would  be  evaluated  
using  Eq.  (55).  To  reduce  the  number  of  multiplications,  the  equations  in  Eq.  (55)  
are  modified  to  

⎡ rcβ 0

⎤ ⎡ rxb0 ⎤
⎥ ⎢ ⎥

( )
⎢ − (1 2 ) rxb0 − 3 2 ryb0



( )
⎢ − (1 2 ) rxb0 + 3 2 ryb0


=⎢ ⎥; = ⎢ − 3 2 r − (1 2 ) r ⎥
= ⎢ rsβ 0 ⎥ = ⎢ ryb0 ⎥ ; ( )
3 2 rxb0 − (1 2 ) ryb0 ( )
b b
r b0 r b2 r bb 4
  ⎢ 0 ⎥ ⎢ 0 ⎥
⎢ ⎥ ⎢ xb0 yb0 ⎥     (84)  
⎣ ⎦ ⎣ ⎦ ⎢ ⎥ ⎢ ⎥
⎣ 0 ⎦ ⎣ 0 ⎦

⎡ rxb0




( )
⎢ − (1 2 ) rxb0 + 3 2 ryb0



( )
⎢ − (1 2 ) rxb0 − 3 2 ryb0


r b1 = ⎢ ⎥; r b 3 = ⎢ − 3 2 r + (1 2 ) r ⎥
= ⎢ −ryb0
( )
3 2 rxb0 + (1 2 ) ryb0 ( )
b b b
r b5 ⎥; ⎢ ⎥ ⎢ ⎥
⎢ ⎥
xb0 yb0

⎣ 0 ⎦ ⎢ ⎥ ⎢ ⎥
⎣ 0 ⎦ ⎣ 0 ⎦

© 2013 Roger A. Wehage 63 raw915 (at) gmail.com


Symmetric Bricard Mechanism

Equation  (84)  shows  that  only  six  multiplications  are  required  to  evaluate  the  six  
position  vectors.  

Link  direction  cosine  matrices  


The  link  orientations  are  best  represented  using  normalized  quaternions  or  Euler  
parameters.  Graphics  packages  such  as  OpenGL  will  take  normalized  quaternions  
directly  as  input  to  evaluate  their  direction  cosine  matrices,  so  no  additional  
processing  has  to  be  performed.  Example  direction  cosine  matrices  for  links  0  and  5  
are  expanded  to  help  verify  the  quaternion  relationships.  Equation  (66)  gives  the  
direction  cosine  matrix  for  link  0  (red/yellow)  as  

Rb0 = Ry (φ0 ) Rz (θ 0 2 )

⎡ cosφ0 0 sin φ0 ⎤ ⎡ cos (θ 0 2 ) − sin (θ 0 2 ) 0 ⎤


⎢ ⎥⎢ ⎥
  =⎢ 0 1 0 ⎥ ⎢ sin (θ 0 2 ) cos (θ 0 2 ) 0 ⎥     (85)  
⎢ − sin φ0 0 cosφ0 ⎥ ⎢ ⎥
⎣ ⎦ ⎢⎣ 0 0 1 ⎥⎦
⎡ cosφ cos (θ 2 ) − cosφ sin (θ 2 ) sin φ ⎤
⎢ 0 0 0 0 0

= ⎢ sin (θ 0 2 ) cos (θ 0 2 ) 0 ⎥
⎢ ⎥
⎢ − sin φ0 cos (θ 0 2 ) sin φ0 sin (θ 0 2 ) cosφ0 ⎥
⎣ ⎦

and  the  direction  cosine  matrix  for  link  5  (magenta/red)  is  

Rb5 = Ry (φ0 ) Rz ( −θ 0 2 ) Ry ( −π 2 )
      (86)  
⎡ cosφ0 0 sin φ0 ⎤ ⎡ cos ( − θ 0 2 ) − sin ( − θ 0 2 ) 0 ⎤ ⎡ cos ( −π 2 ) 0 − sin ( −π 2 ) ⎤
⎢ ⎥⎢ ⎥⎢ ⎥
=⎢ 0 1 0 ⎥ ⎢ sin ( − θ 0 2 ) cos ( − θ 0 2 ) 0 ⎥ ⎢ 0 1 0 ⎥
⎢ − sin φ0 0 cosφ0 ⎥ ⎢ ⎥ ⎢ sin −π 2 0 cos −π 2
( ) ( ) ⎥
⎣ ⎦ ⎢⎣ 0 0 1 ⎥⎦ ⎢⎣ ⎥⎦
⎡ sin φ cosφ0 sin (θ 0 2 ) − cosφ0 cos (θ 0 2 ) ⎤
⎢ 0

=⎢ 0 cos (θ 0 2 ) sin (θ 0 2 ) ⎥
⎢ ⎥
⎢ cosφ0 − sin φ0 sin (θ 0 2 ) sin φ0 cos (θ 0 2 ) ⎥
⎣ ⎦

(Refer  to  Fig.  2  to  see  why  the  third  transformation  is  required  in  Eq.  (86).)  The  
orientation  of  links  2  and  1  are  obtained  by  rotating  copies  of  links  0  and  5  by   2π 3  
radians  around  the  barycentric  frame’s  z-­‐axis  using  the  direction  cosine  matrix  

© 2013 Roger A. Wehage 64 raw915 (at) gmail.com


Symmetric Bricard Mechanism

⎡ cos ( 2π 3) − sin ( 2π 3) 0 ⎤
⎢ ⎥
Rz ( 2π 3) = ⎢ sin ( 2π 3) cos ( 2π 3) 0 ⎥
⎢ ⎥
⎢⎣ 0 0 1 ⎥⎦
      (87)  
⎡ −1 2 − 3 2 0 ⎤
⎢ ⎥
=⎢ 3 2 12 0 ⎥
⎢ ⎥
⎢⎣ 0 0 1 ⎥⎦

This  matrix  was  also  used  to  rotate  copies  of  the  position  vectors  in  Eq.  (84).  
Applying  this  matrix  to  the  previous  direction  cosine  matrices  gives  

Rb2 = Rz ( 2π 3) Rb0
      (88)  
Rb1 = Rz ( 2π 3) Rb5

The  direction  cosine  matrices  for  links  4  and  3  are  obtained  by  rotating  links  0  and  5  
by   − 2π 3  radians  around  the  barycentric  frame’s  z-­‐axis.  They  are  represented  as  

Rb 4 = Rz ( −2π 3) Rb0
      (89)  
Rb 3 = Rz ( −2π 3) Rb5

Using  normalized  quaternions  for  increased  efficiency  


When  normalized  quaternions  are  used,  there  is  no  need  to  evaluate  direction  
cosine  matrices,  because  the  quaternions  can  be  obtained  directly  with  fewer  
operations.  Let   q1  and   q 2  be  quaternions  representing  direction  cosine  matrices   R1  
 
and   R 2  where   R12 = R1 R 2 .  Then  

⎡ q12 ⎤ ⎡ q10 −q11 −q12 −q13 ⎤ ⎡ q02 ⎤


⎢ 0
⎥ ⎢ ⎥⎢ ⎥
⎢ q112 ⎥ ⎢ q11 q10 −q13 q12 ⎥ ⎢ q12 ⎥
  ⎢ ⎥=⎢ ⎥⎢ ⎥     (90)  
⎢ q12
2 ⎥ ⎢ q12 q13 q10 −q11 ⎥ ⎢ q22 ⎥
⎢ 12 ⎥ ⎢ ⎥⎢ ⎥
⎢⎣ q3 ⎥ ⎢ q13 −q12 q11 q10 ⎥ ⎢ q32 ⎥
⎦ ⎣ ⎦⎣ ⎦

is  the  quaternion  representing  the  rotation  described  by   R12 .  The  two  quaternions  
representing  the  orientation  of  link  0  (red/yellow)  are  

© 2013 Roger A. Wehage 65 raw915 (at) gmail.com


Symmetric Bricard Mechanism

⎡ cos (φ 2 ) ⎤
⎢ 0

⎢ 0 ⎥
  q bf = ⎢ ⎥     (91)  
 ⎢ sin (φ0 2 ) ⎥
⎢ 0 ⎥
⎣ ⎦

and  

⎡ cos (θ 4 ) ⎤
⎢ 0

⎢ 0 ⎥
  qf0 =⎢ ⎥     (92)  
 0
⎢ ⎥
⎢ sin (θ 0 4 ) ⎥
⎣ ⎦

where   f  corresponds  to  the  floating  frame  in  the  red  joint  0.  Recall  that  quaternions  
are  based  on  half-­‐angles.  Substituting  Eqs.  (91)  and  (92)  for  the  quaternions  in  Eq.  
(90)  gives  

⎡ q0b0 ⎤ ⎡⎢ cos (φ0 2 ) 0 − sin (φ0 2 ) 0 ⎤⎡


⎥ ⎢ cos (θ 0 4 )

⎢ ⎥ ⎥
⎢ q1 ⎥ ⎢
b0
0 cos (φ0 2 ) 0 sin (φ0 2 ) ⎥ ⎢ 0 ⎥
⎢ ⎥ = ⎢ ⎥⎢ ⎥
⎢ q2 ⎥ ⎢ sin (φ0 2 )
b0
0 cos (φ0 2 ) 0 ⎥⎢ 0

cos (φ0 2 ) ⎥ ⎢⎣ sin (θ 0 4 )
⎢ ⎥ ⎢ ⎥
⎢⎣ q3b0 ⎥ ⎢
⎦ ⎣ 0 − sin (φ0 2 ) 0 ⎥


   (93)  
⎡ cos (φ0 2 ) cos (θ 0 4 ) ⎤
⎢ ⎥
⎢ sin (φ0 2 ) sin (θ 0 4 ) ⎥
=⎢ ⎥
⎢ sin (φ0 2 ) cos (θ 0 4 ) ⎥
⎢ ⎥
⎢⎣ cos (φ0 2 ) sin (θ 0 4 ) ⎥

To  check  Eq.  (93),  let   θ 0 4 = 22.5°  and   φ0 2 = 27.37°  for  the  Bricard  mechanism  
configuration  in  Fig.  1,  giving  

⎡ q0b0 ⎤ ⎡⎢ cos (φ0 2 ) cos (θ 0 4 ) ⎤


⎢ ⎥ ⎥ ⎡ 0.888 * 0.924 ⎤ ⎡ 0.821 ⎤
⎢ q1b0 ⎥ ⎢ sin (φ0 2 ) sin (θ 0 4 ) ⎥ ⎢ 0.460 * 0.383
⎥ ⎢
0.176

  ⎢ ⎥=⎢ ⎥=⎢ ⎥=⎢ ⎥     (94)  
⎢ q2b0 ⎥ ⎢ sin (φ0 2 ) cos (θ 0 4 ) ⎥ ⎢ 0.460 * 0.924 ⎥ ⎢ 0.425 ⎥
⎢ ⎥ ⎢ ⎥ ⎢ ⎥ ⎢ ⎥
cos (φ0 2 ) sin (θ 0 4 ) ⎥ ⎣
0.888 * 0.383 ⎦ ⎣ 0.340 ⎦
⎢⎣ q3b0 ⎥ ⎢
⎦ ⎣ ⎦

© 2013 Roger A. Wehage 66 raw915 (at) gmail.com


Symmetric Bricard Mechanism

The  direction  cosine  matrix  for  this  quaternion  has  the  form  



b0 2
( b0 2
)
⎢ 2 ( q0 ) + ( q1 ) − 1 2 ( q1 q2 − q0 q3 )
b0 b0 b0 b0
2 ( q1b0 q3b0 + q0b0 q2b0 )



  b0
⎢ ( 2
)
R = ⎢ 2 ( q1b0 q2b0 + q0b0 q3b0 ) 2 ( q0b0 ) + ( q2b0 ) − 1 2 ( q2b0 q3b0 − q0b0 q1b0 )
2
⎥     (95)  


⎢ 2 ( q1 q3 − q0 q2 )

b0 b0 b0 b0 2 2
(
2 ( q2b0 q3b0 + q0b0 q1b0 ) 2 ( q0b0 ) + ( q3b0 ) − 1 ) ⎥

Substituting  the  values  from  Eq.  (94)  into  Eq.  (95)  gives  the  entries  in  Eq.  (49)  to  
within  round-­‐off  error.  

To  simplify  evaluating  quaternions  for  the  link  5  (magenta/red)  transformation  


matrix  in  Eq.  (86),  it  can  be  written  in  partitioned  form  as  

  ( )
Rb5 = Ry (φ0 ) Rz ( −θ 0 2 ) Ry ( −π 2 )     (96)  

(Refer  again  to  Fig.  2  to  see  why  the  third  transformation  is  required  in  Eq.  (96).)  
With  this  partitioning,  it  follows  that  the  quaternions  

⎡ q0b* ⎤ ⎡⎢ cos (φ0 2 ) 0 − sin (φ0 2 ) 0 ⎤⎡


⎥ ⎢ cos (θ 0 4 )

⎢ ⎥ ⎥
⎢ q1 ⎥
b* ⎢ 0 cos (φ0 2 ) 0 sin (φ0 2 ) ⎥ ⎢ 0 ⎥
⎢ ⎥ = ⎢ ⎥⎢ ⎥
⎢ q2 ⎥ ⎢ sin (φ0 2 )
b*
0 cos (φ0 2 ) 0 ⎥⎢ 0

cos (φ0 2 ) ⎥ ⎢⎣ − sin (θ 0 4 )
⎢ ⎥ ⎢ ⎥
⎢⎣ q3b* ⎥ ⎢
⎦ ⎣ 0 − sin (φ0 2 ) 0 ⎥
⎦     (97)  
  ⎦
⎡ cos (φ0 2 ) cos (θ 0 4 ) ⎤ ⎡ q0b0 ⎤
⎢ ⎥ ⎢ ⎥
⎢ − sin (φ0 2 ) sin (θ 0 4 ) ⎥ ⎢ −q1b0 ⎥
=⎢ ⎥=⎢ ⎥
⎢ sin (φ0 2 ) cos (θ 0 4 ) ⎥ ⎢ q2b0 ⎥
⎢ ⎥ ⎢ ⎥
⎢⎣ − cos (φ0 2 ) sin (θ 0 4 ) ⎥ ⎢⎣ −q3b0 ⎥

represent   Ry (φ0 ) Rz ( −θ 0 2 ) ,  and   q b5  is  evaluated  as  


© 2013 Roger A. Wehage 67 raw915 (at) gmail.com


Symmetric Bricard Mechanism

⎡ q0b5 ⎤ ⎡ q0b* −q1b* −q2b* −q3b* ⎤ ⎡ cos ( − π 4 ) ⎤


⎢ ⎥ ⎢ ⎥⎢ ⎥
⎢ q1b5 ⎥ ⎢ q1b* q0b* −q3b* q2b* ⎥ ⎢ 0 ⎥
⎢ ⎥=⎢ ⎥⎢ ⎥
⎢ q2b5 ⎥ ⎢ q2b* q3b* q0b* −q1 ⎥ ⎢ sin ( − π 4 ) ⎥
b*

⎢ ⎥ ⎢ ⎥
⎢⎣ q3b5 ⎥ ⎢ q3b* −q2b* q1b* q0b* ⎥ ⎢⎣ 0 ⎥

⎦ ⎣ ⎦
⎡ q0b0 q1b0 −q2b0 q3b0 ⎤ ⎡ ⎤
⎢ ⎥⎢ 2 2

  ⎢ −q1b0 q0b0 q3b0 q2 ⎥ ⎢
b0     (98)  
0 ⎥
=⎢ ⎥⎢ ⎥
⎢ q2b0 −q3b0 q0b0 q1 ⎥ ⎢ − 2 2
b0

⎢ ⎥
⎢⎣ −q3b0 −q2b0 −q1b0 q0b0 ⎥ ⎢⎣ 0 ⎥


⎡ q0b0 + q2b0 ⎤
⎢ ⎥
⎢ −q1b0 − q3b0 ⎥
=⎢ ⎥ 2 2
⎢ q2b0 − q0b0 ⎥
⎢ ⎥
⎢⎣ −q3b0 + q1b0 ⎥

Equation  (98)  requires  only  four  multiplications.  

The  transformations  in  Eq.  (88)  may  be  carried  out  in  a  similar  manner.  For  
example,  the  quaternions  for  links  2  and  1  are  

⎡ cos (π 3) 0 0 − sin (π 3) ⎤ ⎡ q0b0 ⎤ ⎢



q0b0 2 − ( ) ⎤
3 2 q3b0 ⎥
⎢ ⎥⎢ ⎥ ⎢ ⎥
  ⎢ 0 cos ( π 3) − sin ( π 3) 0 ⎥ ⎢ q1b0 ⎥ ⎢ q1b0 2−( )
3 2 q2b0 ⎥    (99)  
q =⎢
b2
⎥⎢ ⎥=⎢ ⎥
 ⎢ 0 sin (π 3) cos (π 3) 0 ⎥ ⎢ q2b0 ⎥ ⎢ q2b0 2+( )
3 2 q1b0 ⎥
⎢ ⎥ ⎢ b0 ⎥ ⎢ ⎥
⎢⎣ sin (π 3) cos (π 3) ⎥ ⎢⎣ q3
2+(
0 0
⎦ ⎥⎦ ⎢
⎢⎣
q3b0 )
3 2 q0b0 ⎥
⎥⎦

and  

⎡ cos (π 3) 0 0 − sin (π 3) ⎤ ⎡ q0b5 ⎤ ⎢



q0b5 2 − ( ) ⎤
3 2 q3b5 ⎥
⎢ ⎥⎢ ⎥ ⎢ ⎥
  ⎢ 0 cos ( π 3) − sin ( π 3) 0 ⎥ ⎢ q1b5 ⎥ ⎢ q1b5 2−( )
3 2 q2b5 ⎥  (100)  
q b1 = ⎢ ⎥⎢ ⎥=⎢ ⎥
 ⎢ 0 sin (π 3) cos (π 3) 0 ⎥ ⎢ q2b5 ⎥ ⎢ q2b5 2+( )
3 2 q1b5 ⎥
⎢ ⎥ ⎢ b5 ⎥ ⎢ ⎥
⎢⎣ sin (π 3) cos (π 3) ⎥ ⎢⎣ q3
2+(
0 0
⎦ ⎥⎦ ⎢
⎢⎣
q3b5 )
3 2 q0b5 ⎥
⎥⎦

Similar  quaternions  for  links  4  and  3  are  

© 2013 Roger A. Wehage 68 raw915 (at) gmail.com


Symmetric Bricard Mechanism

⎡ cos ( −π 3) 0 0 − sin ( −π 3) ⎤ ⎡ q0b0 ⎤ ⎢



q0b0 2 + ( ) ⎤
3 2 q3b0 ⎥
⎢ ⎥⎢ ⎥ ⎢ ⎥
  ⎢ 0 cos ( −π 3) − sin ( −π 3) 0 ⎥ ⎢ q1b0 ⎥ ⎢ q1b0 2+( )
3 2 q2b0 ⎥  (101)  
qb 4 =⎢ ⎥⎢ ⎥=⎢ ⎥
 ⎢ 0 sin ( −π 3) cos ( −π 3) 0 ⎥ ⎢ q2b0 ⎥ ⎢ q2b0 2−( )
3 2 q1b0 ⎥
⎢ ⎥ ⎢ b0 ⎥ ⎢ ⎥
⎢⎣ sin ( −π 3) cos ( −π 3) ⎥ ⎢⎣ q3
2−(
0 0
⎦ ⎥⎦ ⎢
⎢⎣
q3b0 )
3 2 q0b0 ⎥
⎥⎦

and  

⎡ cos ( −π 3) 0 0 − sin ( −π 3) ⎤ ⎡ q0b5 ⎤ ⎢



q0b5 2 + ( ) ⎤
3 2 q3b5 ⎥
⎢ ⎥⎢ ⎥ ⎢ ⎥
  ⎢ 0 cos ( − π 3) − sin ( − π 3) 0 ⎥ ⎢ q1b5 ⎥ ⎢ qb5
1 2+( )
3 2 q2b5 ⎥  (102)  
qb 3 = ⎢ ⎥⎢ ⎥=⎢ ⎥
 ⎢ 0 sin ( −π 3) cos ( −π 3) 0 ⎥ ⎢ q2b5 ⎥ ⎢ q2b5 2−( )
3 2 q1b5 ⎥
⎢ ⎥ ⎢ b5 ⎥ ⎢ ⎥
⎢⎣ sin ( −π 3) cos ( −π 3) ⎥ ⎢⎣ q3
2−(
0 0
⎦ ⎥⎦ ⎢
⎢⎣
q3b5 )
3 2 q0b5 ⎥
⎥⎦

Equations  (101)  and  (102)  require  no  multiplications,  because  they  use  the  same  
quantities  as  evaluated  in  Eqs.  (99)  and  (100).  Equations  (97)  and  (98)  each  require  
four  multiplications,  not  counting  the  trig  function  evaluations,  so  the  number  of  
multiplications  for  the  six  links  averages  to  four  per  quaternion.  This  is  substantially  
less  than  first  forming  direction  cosine  matrices  and  then  converting  them  to  
quaternions.  

To  check  the  validity  of  these  quaternions,  consider  the  Bricard  mechanism  
configuration  shown  in  Fig.  6  where   φ0 = π 2  and   θ 0 = 0 .  Equation  (85)  gives  

⎡ 0 0 1 ⎤
  R = Ry (φ0 ) Rz (θ 0 2 ) = ⎢ 0 1 0 ⎥    
b0
(103)  
⎢ ⎥
⎢⎣ −1 0 0 ⎥⎦

and  Eq.  (86)  gives  

⎡ 0 0 1 ⎤ ⎡ 0 0 −1 ⎤ ⎡ 1 0 0 ⎤
  R = Ry (φ0 ) Rz ( −θ 0 2 ) Ry ( −π 2 ) = ⎢ 0 1 0 ⎥ ⎢ 0 1 0 ⎥ = ⎢ 0 1 0 ⎥    (104)  
b5
⎢ ⎥⎢ ⎥ ⎢ ⎥
⎢⎣ −1 0 0 ⎥⎦ ⎢⎣ 1 0 0 ⎥⎦ ⎢⎣ 0 0 1 ⎥⎦

From  Eqs.  (93)  and  (98),  the  quaternions  for  links  0  and  5  are  

© 2013 Roger A. Wehage 69 raw915 (at) gmail.com


Symmetric Bricard Mechanism

⎡ cos (φ0 2 ) cos (θ 0 4 ) ⎤ ⎡


⎢ ⎥ ⎢ 2 2 ⎤

⎢ sin (φ0 2 ) sin (θ 0 4 ) ⎥ ⎢ 0 ⎥
  q b0 = ⎢ ⎥=⎢ ⎥     (105)  
 ⎢ sin (φ0 2 ) cos (θ 0 4 ) ⎥ ⎢ 2 2 ⎥
⎢ ⎥
⎢⎣ cos (φ0 2 ) sin (θ 0 4 ) ⎥ ⎢⎣ 0 ⎥⎦

and  

⎡ q0b0 + q2b0 ⎤ ⎡
⎢ ⎥ 2 2+ 2 2 ⎤ ⎡ 1 ⎤
⎢ ⎥ ⎢ ⎥
⎢ −q1b0 − q3b0 ⎥ ⎢ 0 ⎥ 0
  q b5 = ⎢ ⎥ 2 2=⎢ ⎥ 2 2 = ⎢⎢ ⎥    

(106)  
 ⎢ q2 − q0 ⎥
b0 b0
⎢ 2 2− 2 2 ⎥ 0
⎢ ⎥ ⎢ ⎥ ⎢ 0 ⎥
−q3b0 + q1b0 ⎥ ⎣ 0 ⎦ ⎣ ⎦
⎢⎣ ⎦

Substituting  Eq.  (105)  into  Eq.  (95)  gives  



(
b0 2 b0 2
)
⎢ 2 ( q0 ) + ( q1 ) − 1 2 ( q1 q2 − q0 q3 )
b0 b0 b0 b0
2 ( q1b0 q3b0 + q0b0 q2b0 )



b0

2
( 2
)
R = ⎢ 2 ( q1b0 q2b0 + q0b0 q3b0 ) 2 ( q0b0 ) + ( q2b0 ) − 1 2 ( q2b0 q3b0 − q0b0 q1b0 ) ⎥

 

⎢ 2 ( q1 q3 − q0 q2 )

b0 b0 b0 b0
(
2 ( q2b0 q3b0 + q0b0 q1b0 ) 2 ( q0b0 ) + ( q3b0 ) − 1
2 2
) ⎥

⎦     (107)  
⎡ ⎤
( ) ( )
2 2
⎢ 2 2 2 −1 0 2 2 2 ⎥
⎢ ⎥ ⎡ 0 0 1 ⎤
( ) ⎥=⎢ 0 1 0 ⎥
2
=⎢ 0 4 2 2 −1 0
⎢ ⎥ ⎢ −1 0 0 ⎥
⎥ ⎢⎣ ⎥⎦

( ) ( )
2 2

⎢⎣ −2 2 2 0 2 2 2 −1 ⎥

Equation  (107)  agrees  with  Eq.  (103),  and  clearly  Eq.  (106)  yields  Eq.  (104).  

Now,  rotating  copies  of  links  0  and  5  around  the  barycentric  frame’s  z-­‐axis  by   2π 3  
gives  the  direction  cosine  matrices  

⎡ cos ( 2π 3) − sin ( 2π 3) 0 ⎤ ⎡ ⎡ −1 2 ⎤
⎢ ⎥ 0 0 1 ⎤ ⎢ 0 − 3 2 ⎥    (108)  
 
Rb2 = Rz ( 2π 3) Rb0 = ⎢ sin ( 2π 3) cos ( 2π 3) 0 ⎥ ⎢ 0 1 0 ⎥ = ⎢ 0 −1 2 3 2 ⎥
⎢ ⎥ ⎢⎢ −1 0 0 ⎥⎥ ⎢ ⎥
⎢⎣ 0 0 1 ⎥⎦ ⎣ ⎦ ⎢⎣ −1 0 0 ⎥⎦

and  

© 2013 Roger A. Wehage 70 raw915 (at) gmail.com


Symmetric Bricard Mechanism

⎡ cos ( 2π 3) − sin ( 2π 3) 0 ⎤ ⎡ ⎡ ⎤
⎢ ⎥ 1 0 0 ⎤ ⎢ −1 2 − 3 2 0 ⎥
  Rb1 = Rz ( 2π 3) Rb5 = ⎢ sin ( 2π 3) cos ( 2π 3) 0 ⎥ ⎢ 0 1 0 ⎥ = ⎢ 3 2 −1 2 0 ⎥
   (109)  
⎢ ⎥ ⎢ ⎥ ⎢ ⎥
⎢⎣ 0 0 1 ⎥⎦ ⎢⎣ 0 0 1 ⎥⎦ ⎢⎣ 0 0 1 ⎥⎦

From  Eqs.  (99)  and  (100)  the  quaternions  for  links  2  and  1  are  


⎢ q0b0 2 − ( ) ⎤
3 2 q3b0 ⎥ ⎡
2 4 ⎤
⎢ ⎥ ⎢ ⎥
⎢ q1b0 2−( )
3 2 q2b0 ⎥ ⎢ − 6 4 ⎥
  q b2 = ⎢ ⎥=⎢ ⎥     (110)  
 ⎢ q2b0 2+( )
3 2 q1 ⎥
b0 ⎢ 2 4 ⎥
⎢ ⎥ ⎢ ⎥
⎢ q3b0 2+( 3 2 q0)
b0 ⎥ ⎢

6 4 ⎥

⎢⎣ ⎥⎦

and  


⎢ q0b5 2 − ( ) ⎤
3 2 q3b5 ⎥
⎡ 12 ⎤
⎢ b5 ⎥
⎢ q1b5 2−( )
3 2 q2 ⎥ ⎢ 0 ⎥
q b1 = ⎢ ⎢ ⎥  
  ⎥=⎢  (111)  
2+( ) ⎥
 ⎢ q2b5 3 2 q1 ⎥ ⎢ 0 ⎥
b5

⎢ ⎥ ⎢ 3 2 ⎥
⎢ q3b5 2+( )
3 2 q0b5 ⎥ ⎣ ⎦
⎢⎣ ⎥⎦

The  direction  cosines  for  links  2  and  1  based  on  these  quaternions  are  



(b2 2 b2 2
)
⎢ 2 ( q0 ) + ( q1 ) − 1 2 ( q1 q2 − q0 q3 )
b2 b2 b2 b2
2 ( q1b2 q3b2 + q0b2 q2b2 )



⎢ ( 2 2
)
Rb2 = ⎢ 2 ( q1b2 q2b2 + q0b2 q3b2 ) 2 ( q0b2 ) + ( q2b2 ) − 1 2 ( q2b2 q3b2 − q0b2 q1b2 ) ⎥


⎢ 2 ( q1 q3 − q0 q2 )

b2 b2 b2 b2
( 2
)
2 ( q2b2 q3b2 + q0b2 q1b2 ) 2 ( q0b2 ) + ( q3b2 ) − 1
2 ⎥

  ⎡
((
2
) (
⎢ 2 2 4 + − 6 4 −1

2
)) (
2 − 6 4 2 4− 2 4 6 4 ) 2 (− 6 4 6 4 + 2 4 2 4 )

⎥  (112)  


( ) 2 (( 2 4 ) + ( 2 4 ) ) − 1 2 ( 2 4 6 4 + 2 4 6 4 ) ⎥
2 2
= ⎢ 2 − 6 4 2 4+ 2 4 6 4 ⎥
⎢ ⎥
(
⎢ 2 − 6 4 6 4− 2 4 2 4 ) 2 ( 2 4 6 4 − 2 4 6 4 ) 2 (( 2 4 ) + ( 6 4 ) ) − 1 ⎥
2 2

⎢⎣ ⎥⎦
⎡ 0 − 3 2 −1 2 ⎤
⎢ ⎥
=⎢ 0 −1 2 3 2 ⎥
⎢ ⎥
⎢⎣ −1 0 0 ⎥⎦

© 2013 Roger A. Wehage 71 raw915 (at) gmail.com


Symmetric Bricard Mechanism

and  



(
⎢ 2 ( q0 ) + ( q1 ) − 1
b1 2 b1 2
) 2 ( q1b1q2b1 − q0b1q3b1 ) 2 ( q1b1q3b1 + q0b1q2b1 )



Rb1 = ⎢ 2 ( q1b1q2b1 + q0b1q3b1 )

2
(
2 ( q0b1 ) + ( q2b1 ) − 1
2
)
2 ( q2b1q3b1 − q0b1q1b1 ) ⎥


⎢ 2 ( q1 q3 − q0 q2 )

b1 b1 b1 b1
2 ( q2b1q3b1 + q0b1q1b1 )
2
(
2 ( q0b1 ) + ( q3b1 ) − 1
2
) ⎥

 

⎢ 2 (1 2 ) − 1
2
(
2 −1 2 3 2 ) 0

⎥     (113)  
⎢ ⎥
(
=⎢ 2 12 3 2 ) 2 (1 2 ) − 1
2
0 ⎥
⎢ ⎥

⎢⎣
0 0 (
2 (1 2 ) +
2
( 3 2 ))
2
−1 ⎥
⎥⎦
⎡ −1 2 − 3 2 0 ⎤
⎢ ⎥
= ⎢ 3 2 −1 2 0 ⎥
⎢ ⎥
⎢⎣ 0 0 1 ⎥⎦

The  quaternions  for  links  4  and  3  may  be  verified  in  a  similar  manner.  

Verifying  that  total  spatial  momentum  is  zero  


This  section  verifies  that   ∑ i=0 M i,bb
5
bb b
vbi,b = 0  in  Eq.  (6).  Consider  the  combined  spatial  
momentum  of  links  5  and  0  as  
b
pb5,b + pb0,b
b
= Tb5b−T pb5,5
b
+ Tb0b−T pb0,0
b

= Tb5b−T M 5,55
bb b
vb5,5 + Tb0b−T M 0,00
bb 0
vb0,0
⎡ I 0 ⎤ ⎡ m r b5 ⎤ ⎡ I 0 ⎤ ⎡ m r b0 ⎤
b b

=⎢ b ⎥ ⎢ ⎥+⎢ b ⎥ ⎢ ⎥
  ⎢⎣ r b5 I ⎥ ⎢ Rb5 Jω 5 ⎥ ⎢ r b0 I ⎥ ⎢ Rb0 Jω 0 ⎥     (114)  
⎦⎣ b5
⎦ ⎣ ⎦⎣ b0


⎢ m r b5
b
+ r b0
b
( ) ⎤

=⎢ ⎥
b5 5 b0 0 b b b
(
⎢⎣ R Jω b5 + R Jω b0 + m r b5 r b5 + r b0 r b0
b
) ⎥⎦

The  transformations  in  (114)  moved  spatial  momentum  from  the  origins  of  link  
frames  0  and  5  to  the  origin  of  barycentric  frame  !b .  The  3  by  1  matrix   r b5
b
+ r b0
b
 has  
no  z-­‐component,  so  it  represents  a  vector  in  the  barycentric  frame’s  x-­‐y  plane.  
Rotating  copies  of  this  matrix  by   ± 2π 3  radians  around  the  barycentric  frame’s  z-­‐
axis  yields  three  matrices  representing  vectors  in  the  x-­‐y  plane  whose  entries  sum  
to  zero.  Thus  the  linear  component  of  momentum  is  verified  to  be  zero.  That  this  
linear  component  of  momentum  is  zero  may  also  be  verified  directly  using  Eq.  (58).  

© 2013 Roger A. Wehage 72 raw915 (at) gmail.com


Symmetric Bricard Mechanism

The  entries  in  

⎡ 0 0 −ry ⎤ ⎡ rx ⎤ ⎡ 0 0 ry ⎤ ⎡ rx ⎤


⎢ ⎥⎢ ⎥ ⎢ ⎥⎢ ⎥
r b5
b
r b5
b
+ r b0
b
r b0
b
=⎢ 0 0 −rx ⎥ ⎢ − ry ⎥+⎢ 0 0 −rx ⎥ ⎢ ry ⎥
⎢ ⎥ ⎥ ⎢ −r ⎥
⎢⎣ ry rx 0 ⎥ ⎢⎣ 0 ⎦ ⎢⎣ y rx 0 ⎥ ⎢⎣ 0 ⎥
⎦    
  ⎦ ⎦ (115)  
⎡ 0 ⎤ ⎡ 0 ⎤
⎢ ⎥ ⎢ ⎥
=⎢ 0 ⎥=⎢ 0 ⎥
⎢ ry rx − rx ry − ry rx + rx ry ⎥ ⎢⎣ 0 ⎥⎦
⎣ ⎦

may  be  verified  by  looking  at  Eqs.  (55)  and  (57).  Equation  (115)  shows  that  the  
second  part  of  the  Bricard  mechanism’s  angular  momentum  is  zero,  because  
rotating  copies  of  this  zero-­‐length  vector  to  represent  the  other  four  links  still  gives  
zero.  

Transforming  the  first  part  of  the  angular  momentum  in  Eq.  (114)  to  frame   f  
centered  in  the  red  joint  0  gives  

R f 5 Jω b5
5
+ R f 0 Jω b0
0
= Rz ( −θ 0 2 ) Ry ( −π 2 ) Jω b5
5
+ Rz (θ 0 2 ) Jω b0
0

⎡ 0 sin (θ 2 ) − cos (θ 2 ) ⎤⎡ − J aθ0 2 ⎤


⎢ 0 0
⎥⎢ ⎥
= ⎢ 0 cos (θ 0 2 ) sin (θ 0 2 ) ⎥ ⎢ J r cos (θ 0 2 )φ0 ⎥
⎢ ⎥⎢ ⎥
⎢⎣ 1 0 0 ⎥⎦ ⎢⎣ J a sin (θ 0 2 )φ0 ⎥⎦
      (116)  
⎡ cos (θ 2 ) − sin (θ 2 ) 0 ⎤ ⎡ J a sin (θ 0 2 )φ0 ⎤
⎢ 0 0
⎥⎢ ⎥
+ ⎢ sin (θ 0 2 ) cos (θ 0 2 ) 0 ⎥ ⎢ J r cos (θ 0 2 )φ0 ⎥
⎢ ⎥⎢ ⎥
⎢⎣ 0 0 1 ⎥⎦ ⎢⎣ J a θ0 2 ⎥

⎡ 0 ⎤
⎢ ⎥
= ⎢ 2 ( J r cos (θ 0 2 ) + J a sin 2 (θ 0 2 ))φ0
2

⎢ ⎥
⎣ 0 ⎦

(Refer  again  to  Fig.  2  as  to  why  the  extra   Ry ( −π 2 )  transformation  is  required  in  Eq.  
(116).)  Multiplying  Eq.  (116)  by   Ry (φ0 )  to  transform  the  angular  momentum  to  
barycentric  frame   b  coordinates  gives  the  same  results.  Because  the  z-­‐component  
of  this  momentum  vector  is  zero,  it  lies  in  the  barycentric  frame’s  x-­‐y  plane,  so  
rotating  copies  of  it  by   ± 2π 3  radians  around  the  barycentric  frame’s  z-­‐axis  to  
represent  the  other  four  links  yields  three  vectors  in  the  x-­‐y  plane  that  add  to  zero.  
With  this  last  result,  the  Bricard  mechanism’s  total  spatial  momentum  has  been  
verified  to  be  zero  as  claimed  in  Eq.  (6).  

© 2013 Roger A. Wehage 73 raw915 (at) gmail.com

Вам также может понравиться