Franka Robotics’ 7-axis arm is one of the most common robots in manipulation research, and it exists in two generations: the Franka Research 3 (FR3), the current model, and the Panda, its predecessor — now end-of-life, but still the robot underneath a large body of published research, courseware, and hardware already in labs. Both share the same fundamental mechanism and the same distinctive silhouette; FR3 updates the joint limits, torque sensing, and control electronics.
The mechanism
Seven revolute joints in series give the arm seven degrees of freedom — one more than
the six a manipulator strictly needs to reach an arbitrary pose, which is what lets it
thread itself around obstacles a 6-axis arm would have to reconfigure for. The optional
Franka Hand adds a two-finger parallel gripper at the flange. The two finger joints in
the URDF are not independently actuated: the second one carries a mimic constraint on the
first, matching the real hardware’s single gripper motor driving both fingers symmetrically.
Panda and FR3 use this mechanism unchanged — the only upstream difference is each robot’s
own joint limits.
Choosing a variant
Four combinations, in two independent choices:
- FR3 or Panda — FR3 is the model Franka Robotics currently sells and supports; Panda is end-of-life. Pick FR3 unless you specifically need the older robot.
- Arm only, or with gripper — the bare 7-axis arm, or the same arm with the two-finger Franka Hand attached at the flange.
About these files — read before importing
These files are not URDFs. franka_ros publishes both Panda and FR3 as .urdf.xacro:
templates that build the robot through macro expansion rather than literal XML. This gallery
entry links directly to the official
franka_ros xacro tree — unmodified, exactly
as Franka Robotics publishes it. ARMOR expands the macros itself after downloading, so
Open in ARMOR gives you a working robot; nothing here is a pre-baked derivative of
Franka Robotics’ files.
Each variant bundles its top-level xacro file together with every xacro and YAML file it includes and every mesh those includes reference, so importing it pulls in one complete, self-contained set of files rather than an incomplete one.