Skip to content

Add Melissa & Doug ABC/123 wooden block set #7

Description

@siddhss5

Goal

Add the full 50-block Melissa & Doug Wooden ABC/123 Blocks set to prl_assets.

Block specs

  • 50 one-inch (25.4mm) cubes
  • Wooden, hand-painted with letters, numbers, and pictures
  • Colors: red, blue, green, yellow, natural wood backgrounds
  • Mass: ~15g per block

MuJoCo properties

  • Geom: box with half-extents [0.0127, 0.0127, 0.0127]
  • Friction: 0.8 (wood-on-wood)
  • Each block is a separate object type (block_A, block_B, ..., block_1, block_2, ...) or a single wooden_block type with texture variants

Texture pipeline

Step 1: Photograph the real blocks

  • Photograph each face of each block (6 faces × 50 blocks = 300 photos)
  • Use a consistent setup: white background, even lighting, overhead camera
  • Name files: block_A_front.jpg, block_A_back.jpg, etc.

Step 2: Create UV-mapped textures

  • Stitch the 6 face photos into a cube unwrap texture (cross layout)
  • Script to automate: crop, align, compose into single PNG per block
  • Output: block_A.png, block_B.png, etc.

Step 3: Create MuJoCo assets

  • One XML per block (or one XML with material variants)
  • meta.yaml with geometric properties (box, 0.0127m half-extents)
  • Register textures as MuJoCo texture + material assets

Step 4: Verify

  • Load all 50 in a scene, check grasping with Robotiq
  • Verify stacking stability in physics mode
  • Check that TSR grasp_box() works for the small size

Design questions

  • One type or 50 types? A single wooden_block type with 50 instances (same physics, different textures) is simpler. But block_A, block_B etc. allows asking the robot "pick up the letter A" which is more interesting for demos.
  • Grasp feasibility: 25.4mm is small for the Robotiq 2F-140 (min opening ~0mm, max 140mm). Should work but may need tuned grasp TSR tolerances.

Use cases

  • Stacking demos (build a tower, spell a word)
  • Sorting (by color, by letter vs number)
  • LLM-driven tasks ("spell HELLO", "stack the vowels")

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions