Bird
Raised Fist0
ROSframework~5 mins

Joint types (revolute, prismatic, fixed, continuous) in ROS

Choose your learning style10 modes available

Start learning this pattern below

Jump into concepts and practice - no test required

or
Recommended
Test this pattern10 questions across easy, medium, and hard to know if this pattern is strong
Introduction

Joints connect parts of a robot and let them move in specific ways. Different joint types let robots bend, slide, or stay still.

When you want a robot arm to bend like an elbow (use revolute).
When you want a part to slide back and forth like a drawer (use prismatic).
When two parts should not move relative to each other (use fixed).
When a joint can rotate endlessly like a wheel (use continuous).
Syntax
ROS
joint_type: revolute | prismatic | fixed | continuous

Specify the joint type in your robot's URDF or configuration file.

Each type controls how the connected parts move.

Examples
This joint rotates around one axis, like a door hinge.
ROS
joint_type: revolute
This joint slides along one axis, like a drawer.
ROS
joint_type: prismatic
This joint does not move; it locks two parts together.
ROS
joint_type: fixed
This joint rotates endlessly, like a wheel on a car.
ROS
joint_type: continuous
Sample Program

This URDF snippet defines a simple robot with two parts connected by a revolute joint named 'elbow_joint'. The joint rotates around the z-axis and can move between -90 and 90 degrees.

ROS
<?xml version="1.0"?>
<robot name="simple_robot">
  <link name="base_link"/>
  <link name="arm_link"/>

  <joint name="elbow_joint" type="revolute">
    <parent link="base_link"/>
    <child link="arm_link"/>
    <axis xyz="0 0 1"/>
    <limit lower="-1.57" upper="1.57" effort="10" velocity="1"/>
  </joint>
</robot>
OutputSuccess
Important Notes

Revolute joints rotate around a fixed axis.

Prismatic joints slide along a fixed axis.

Fixed joints do not allow any movement.

Continuous joints rotate endlessly without limits.

Summary

Joints control how robot parts move together.

Use revolute for bending, prismatic for sliding, fixed for no movement, and continuous for endless rotation.

Choosing the right joint type helps your robot move as you want.

Practice

(1/5)
1. Which joint type in ROS allows a robot part to rotate around a single axis but only within a limited angle range?
easy
A. Continuous joint
B. Prismatic joint
C. Revolute joint
D. Fixed joint

Solution

  1. Step 1: Understand revolute joint behavior

    A revolute joint allows rotation around one axis but restricts the angle to a limited range, like a door hinge.
  2. Step 2: Compare with other joint types

    Prismatic joints slide linearly, fixed joints do not move, and continuous joints rotate endlessly without limits.
  3. Final Answer:

    Revolute joint -> Option C
  4. Quick Check:

    Rotation with limits = Revolute joint [OK]
Hint: Rotation with angle limits means revolute joint [OK]
Common Mistakes:
  • Confusing continuous joint with revolute
  • Thinking fixed joint allows rotation
  • Mixing prismatic sliding with rotation
2. Which of the following is the correct XML tag to define a fixed joint in a ROS URDF file?
easy
A.
B.
C.
D.

Solution

  1. Step 1: Recall URDF joint type syntax

    In URDF, the joint type is specified inside the <joint> tag with the attribute type set to the joint kind.
  2. Step 2: Match fixed joint syntax

    The fixed joint uses type="fixed" exactly as shown in .
  3. Final Answer:

    <joint type="fixed"> -> Option A
  4. Quick Check:

    Fixed joint tag = <joint type="fixed"> [OK]
Hint: Fixed joint uses type="fixed" in URDF tag [OK]
Common Mistakes:
  • Using continuous or revolute instead of fixed
  • Omitting the type attribute
  • Using incorrect tag names
3. Given this URDF snippet for a joint:
<joint name="wheel_joint" type="continuous">
  <parent link="base_link"/>
  <child link="wheel_link"/>
</joint>
What behavior will this joint produce in the robot?
medium
A. The wheel_link will rotate but only within a limited angle
B. The wheel_link will slide linearly relative to base_link
C. The wheel_link will not move relative to base_link
D. The wheel_link will rotate endlessly relative to base_link

Solution

  1. Step 1: Identify joint type from URDF

    The joint type is "continuous", which means unlimited rotation around one axis.
  2. Step 2: Understand continuous joint behavior

    Continuous joints allow endless rotation, like a wheel spinning freely without angle limits.
  3. Final Answer:

    The wheel_link will rotate endlessly relative to base_link -> Option D
  4. Quick Check:

    Continuous joint = endless rotation [OK]
Hint: Continuous joint means unlimited rotation [OK]
Common Mistakes:
  • Thinking continuous means sliding
  • Confusing continuous with revolute
  • Assuming no movement for continuous
4. You wrote this URDF joint definition:
<joint name="slider" type="prismatric">
  <parent link="base"/>
  <child link="slider_link"/>
</joint>
But the robot simulation shows an error and the joint does not work. What is the problem?
medium
A. The parent and child links are reversed
B. The joint type "prismatric" is misspelled
C. The joint name "slider" is invalid
D. The joint tag is missing the axis element

Solution

  1. Step 1: Check joint type spelling

    The type attribute is "prismatric", which is a typo. The correct spelling is "prismatic".
  2. Step 2: Understand impact of typo

    ROS URDF parser does not recognize "prismatric" and throws an error, preventing joint creation.
  3. Final Answer:

    The joint type "prismatric" is misspelled -> Option B
  4. Quick Check:

    Typo in joint type causes error [OK]
Hint: Check spelling of joint types carefully [OK]
Common Mistakes:
  • Ignoring typos in joint type
  • Assuming missing axis causes syntax error
  • Confusing parent and child links
5. You want to design a robot arm that can bend at the elbow, slide the forearm in and out, and rotate the wrist endlessly. Which combination of joint types should you use in ROS?
hard
A. Revolute for elbow, prismatic for forearm, continuous for wrist
B. Fixed for elbow, prismatic for forearm, revolute for wrist
C. Continuous for elbow, fixed for forearm, prismatic for wrist
D. Prismatic for elbow, revolute for forearm, fixed for wrist

Solution

  1. Step 1: Match joint types to desired motions

    Bending at elbow means rotation with limits -> revolute joint. Sliding forearm means linear motion -> prismatic joint. Endless wrist rotation -> continuous joint.
  2. Step 2: Verify option matches all requirements

    Revolute for elbow, prismatic for forearm, continuous for wrist correctly assigns revolute to elbow, prismatic to forearm, and continuous to wrist.
  3. Final Answer:

    Revolute for elbow, prismatic for forearm, continuous for wrist -> Option A
  4. Quick Check:

    Bend=Revolute, Slide=Prismatic, Endless rotate=Continuous [OK]
Hint: Match motion type: bend=revolute, slide=prismatic, spin=continuous [OK]
Common Mistakes:
  • Using fixed joint where movement is needed
  • Mixing prismatic and revolute roles
  • Choosing continuous for limited rotation