Joints connect parts of a robot and let them move in specific ways. Different joint types let robots bend, slide, or stay still.
Joint types (revolute, prismatic, fixed, continuous) in ROS
Start learning this pattern below
Jump into concepts and practice - no test required
or
Test this pattern10 questions across easy, medium, and hard to know if this pattern is strong
Introduction
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
ROS
joint_type: revolute
ROS
joint_type: prismatic
ROS
joint_type: fixed
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>
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. Which joint type in ROS allows a robot part to rotate around a single axis but only within a limited angle range?
easy
Solution
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.Step 2: Compare with other joint types
Prismatic joints slide linearly, fixed joints do not move, and continuous joints rotate endlessly without limits.Final Answer:
Revolute joint -> Option CQuick 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
Solution
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.Step 2: Match fixed joint syntax
The fixed joint uses type="fixed" exactly as shown in .Final Answer:
<joint type="fixed"> -> Option AQuick 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
Solution
Step 1: Identify joint type from URDF
The joint type is "continuous", which means unlimited rotation around one axis.Step 2: Understand continuous joint behavior
Continuous joints allow endless rotation, like a wheel spinning freely without angle limits.Final Answer:
The wheel_link will rotate endlessly relative to base_link -> Option DQuick 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
Solution
Step 1: Check joint type spelling
The type attribute is "prismatric", which is a typo. The correct spelling is "prismatic".Step 2: Understand impact of typo
ROS URDF parser does not recognize "prismatric" and throws an error, preventing joint creation.Final Answer:
The joint type "prismatric" is misspelled -> Option BQuick 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
Solution
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.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.Final Answer:
Revolute for elbow, prismatic for forearm, continuous for wrist -> Option AQuick 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
