Best Practice for Robot Arm Joint Names?

I’ve built a robot with a pair of 7dof arms and as I’ve been learning as I go I have been making up names as as I go along. For the most part they’re sensible, elbow, shoulder_rotate, and so on, but one of the shoulder names is “flappy_axis” as it’s the axis you’d use if you were flapping your arms…

It makes sense to me but as I’m starting to fill out the package properly with a URDF I’m thinking it’s better to use more sensible and, ideally, the same names others would use for their robots so it’s easier for everyone to follow.

Does anyone know of a list of best practice names for different joints in an arm please?

Not a best practice, but FWIW, the joints of the UR arms are called (in order):

  • shoulder_pan_joint
  • shoulder_lift_joint
  • elbow_joint
  • wrist_1_joint
  • wrist_2_joint
  • wrist_3_joint

On the PR2, they are called (again, in order):

  • shoulder_pan_joint
  • shoulder_lift_joint
  • upper_arm_roll_joint
  • elbow_flex_joint
  • forearm_roll_joint
  • wrist_flex_joint
  • wrist_roll_joint
1 Like

Good enough for me, thanks :slight_smile:

While they look nice, upper_arm_roll_joint and similar names are not necessarily the easiest.

And as much as I like flappy_axis, I would not know where it is, even with your description :slight_smile:

Names such as joint_1, joint_2, etc and link_1, link_2, etc leave little room for ambiguity, do not need any familiarity with vendor nomenclature (UR’s elbow_joint is A4 for Franka Emika’s Panda and called U by Yaskawa Motoman for example), make for very easily reused software, abstract over all brands of robots and still uniquely identify each joint and link in a robot model.

1 Like

So for the flappy_axis, hold your arms by your side and pretend to flap your “wings” like a chicken, the shoulder axis that allows this movement towards and away from your body to the side is the flappy_axis.

A good point with joint_1, _2, _3, etc though. I’ll have a think on it.