원클릭으로
urdf-robot-model
Create robot models using URDF with proper links, joints, visual geometry, collision shapes, and physical properties
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
메뉴
Create robot models using URDF with proper links, joints, visual geometry, collision shapes, and physical properties
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
SOC 직업 분류 기준
| name | urdf-robot-model |
| description | Create robot models using URDF with proper links, joints, visual geometry, collision shapes, and physical properties |
| domain | authoring |
| version | 1.0.0 |
| created | "2025-11-29T00:00:00.000Z" |
| triggers | ["Creating new robot URDF files","Adding physical properties to robot models","Debugging URDF parsing errors","Converting robot designs to URDF format"] |
| learned_from | ["Module 2 Chapter 9 Robot Description (2025-11-29)"] |
Think like a robotics mechanical engineer who designs robot models for simulation. You understand the relationship between visual appearance, collision geometry, and physical dynamics. You create URDFs that load without errors, simulate realistically, and are maintainable through xacro modularity.
Before creating or modifying any URDF, ask yourself:
Q: What is the kinematic chain of this robot?
Q: What joint types are needed?
Q: Does every link have mass and inertia?
Q: Are collision shapes simpler than visual shapes?
Q: Is the origin at the correct location?
Q: Are all rotations in radians (not degrees)?
<link name="base_link">
<!-- Visual: What you see -->
<visual>
<geometry><box size="0.3 0.2 0.1"/></geometry>
<material name="blue"/>
</visual>
<!-- Collision: What physics uses -->
<collision>
<geometry><box size="0.3 0.2 0.1"/></geometry>
</collision>
<!-- Inertial: How it responds to forces -->
<inertial>
<mass value="5.0"/>
<inertia ixx="0.01" ixy="0" ixz="0" iyy="0.02" iyz="0" izz="0.03"/>
</inertial>
</link>
Missing any element causes problems:
<joint name="wheel_joint" type="continuous">
<parent link="base_link"/>
<child link="wheel_link"/>
<!-- Origin: Where child attaches relative to parent -->
<origin xyz="0 0.15 0" rpy="1.5708 0 0"/>
<!-- Axis: Direction of rotation/translation -->
<axis xyz="0 0 1"/>
</joint>
Common mistakes:
Box (dimensions a, b, c; mass m):
ixx = m/12 * (b² + c²)
iyy = m/12 * (a² + c²)
izz = m/12 * (a² + b²)
Cylinder (radius r, length h; mass m):
ixx = iyy = m/12 * (3r² + h²)
izz = m/2 * r²
Sphere (radius r; mass m):
ixx = iyy = izz = 2/5 * m * r²
# Check URDF syntax
check_urdf robot.urdf
# Visualize in RViz
ros2 launch urdf_tutorial display.launch.py model:=robot.urdf
# Expected output for valid URDF:
# robot name is: my_robot
# ---------- Successfully Coverage [6] link(s) ----------
<?xml version="1.0"?>
<robot name="diff_drive">
<!-- Base -->
<link name="base_link">
<visual><geometry><box size="0.3 0.2 0.1"/></geometry></visual>
<collision><geometry><box size="0.3 0.2 0.1"/></geometry></collision>
<inertial>
<mass value="5.0"/>
<inertia ixx="0.02" ixy="0" ixz="0" iyy="0.03" iyz="0" izz="0.04"/>
</inertial>
</link>
<!-- Left Wheel -->
<link name="left_wheel">
<visual><geometry><cylinder radius="0.05" length="0.02"/></geometry></visual>
<collision><geometry><cylinder radius="0.05" length="0.02"/></geometry></collision>
<inertial>
<mass value="0.5"/>
<inertia ixx="0.0003" ixy="0" ixz="0" iyy="0.0003" iyz="0" izz="0.0006"/>
</inertial>
</link>
<joint name="left_wheel_joint" type="continuous">
<parent link="base_link"/>
<child link="left_wheel"/>
<origin xyz="0 0.11 -0.03" rpy="-1.5708 0 0"/>
<axis xyz="0 0 1"/>
</joint>
<!-- Right Wheel (similar, opposite y) -->
<!-- Caster (sphere, fixed joint) -->
</robot>
<link name="camera_link">
<visual><geometry><box size="0.02 0.04 0.02"/></geometry></visual>
<collision><geometry><box size="0.02 0.04 0.02"/></geometry></collision>
<inertial>
<mass value="0.1"/>
<inertia ixx="0.00001" ixy="0" ixz="0" iyy="0.00001" iyz="0" izz="0.00001"/>
</inertial>
</link>
<joint name="camera_joint" type="fixed">
<parent link="base_link"/>
<child link="camera_link"/>
<origin xyz="0.15 0 0.05" rpy="0 0 0"/>
</joint>
Before finalizing any URDF:
check_urdf passes without errorsThis skill is used by:
content-implementer agent when generating Module 2 lessonsDependencies:
gazebo-world-builder - for placing robots in worldssensor-simulation - for adding sensors to robotsros2-gazebo-bridge - for controlling robots from ROS 2Creates assessments with varied question types (MCQ, code-completion, debugging, projects) aligned to learning objectives with meaningful distractors based on common misconceptions. Activate when educators design quizzes, exams, or tests measuring understanding; need questions at appropriate cognitive levels (Bloom's taxonomy); want balanced cognitive distribution (60%+ non-recall); or require rubrics for open-ended questions. Generates MCQs with diagnostic distractors, code-writing prompts, debugging challenges, and project-based assessments targeting deep understanding.
Integrate OpenAI ChatKit framework with custom backend and AI agents. Handles ChatKit server implementation, React component integration, context injection, and conversation persistence.
This skill should be used when scaffolding complex concepts for learners. It applies cognitive load architecture principles to break down concepts into digestible pieces while respecting learning science limits.
Docusaurus file naming, syntax, and structure conventions for RoboLearn platform
This skill should be used when deploying a Docusaurus site to GitHub Pages. It automates the configuration, building, and deployment process, handling GitHub Pages setup, environment configuration, and CI/CD automation. Includes local validation before GitHub Actions triggering.
Design simulation worlds using SDF with ground planes, models, physics configuration, and lighting