A robot arm comprising a joint mechanism for articulating one limb of the arm relative to another limb of the arm about two non-parallel rotation axes (20, 21), the mechanism comprising: an intermediate carrier attached to a first one of the limbs by a first revolute joint having a first rotation axis and to a second one of the limbs by a second revolute joint having a second rotation axis; a first drive gear disposed about the first rotation axis, the first drive gear being fast with the carrier; a second drive gear disposed about the second rotation axis, the second drive gear being fast with the second one of the limbs; a first drive shaft for driving the first drive gear to rotate about the first rotation axis, the first drive shaft extending along the first one of the limbs and having a first shaft gear thereon, the first shaft gear being arranged to engage the first drive gear; a second drive shaft for driving the second drive gear to rotate about the second rotation axis, the second drive shaft extending along the first one of the limbs and having a second shaft gear thereon; an intermediate gear train borne by the carrier and coupling the second shaft gear to the second drive gear, the intermediate gear train comprising a first intermediate gear disposed about the first rotation axis, the first intermediate gear being arranged to engage the second shaft gear; and a control unit arranged to respond to command signals commanding motion of the robot arm by driving the first and second drive shafts (26, 27) to rotate, the control unit being configured to, when the robot arm is commanded to articulate about the first axis without articulating about the second axis, drive the first shaft to rotate to cause articulation about the first axis and also drive the second shaft to rotate in such a way as to negate parasitic articulation about the second axis. an intermediate carrier attached to a first one of the limbs by a first revolute joint having a first rotation axis and to a second one of the limbs by a second revolute joint having a second rotation axis; a first drive gear disposed about the first rotation axis, the first drive gear being fast with the carrier; a second drive gear disposed about the second rotation axis, the second drive gear being fast with the second one of the limbs; a first drive shaft for driving the first drive gear to rotate about the first rotation axis, the first drive shaft extending along the first one of the limbs and having a first shaft gear thereon, the first shaft gear being arranged to engage the first drive gear; a second drive shaft for driving the second drive gear to rotate about the second rotation axis, the second drive shaft extending along the first one of the limbs and having a second shaft gear thereon; an intermediate gear train borne by the carrier and coupling the second shaft gear to the second drive gear, the intermediate gear train comprising a first intermediate gear disposed about the first rotation axis, the first intermediate gear being arranged to engage the second shaft gear; and a control unit arranged to respond to command signals commanding motion of the robot arm by driving the first and second drive shafts (26, 27) to rotate, the control unit being configured to, when the robot arm is commanded to articulate about the first axis without articulating about the second axis, drive the first shaft to rotate to cause articulation about the first axis and also drive the second shaft to rotate in such a way as to negate parasitic articulation about the second axis.