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
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.
joint_type: revolute
joint_type: prismatic
joint_type: fixed
joint_type: continuous
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.
<?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>
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.
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
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]
- Confusing continuous joint with revolute
- Thinking fixed joint allows rotation
- Mixing prismatic sliding with rotation
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]
- Using continuous or revolute instead of fixed
- Omitting the type attribute
- Using incorrect tag names
<joint name="wheel_joint" type="continuous"> <parent link="base_link"/> <child link="wheel_link"/> </joint>What behavior will this joint produce in the robot?
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]
- Thinking continuous means sliding
- Confusing continuous with revolute
- Assuming no movement for continuous
<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?
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]
- Ignoring typos in joint type
- Assuming missing axis causes syntax error
- Confusing parent and child links
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]
- Using fixed joint where movement is needed
- Mixing prismatic and revolute roles
- Choosing continuous for limited rotation
Ready to prove it?
Pass the test and this pattern moves unknown
