robot_virtual
Manage virtual robots in Unity or VRChat by creating, updating, deleting, and operating them. Perform tasks like loading environments, testing navigation, and syncing with physical robots.
Instructions
Virtual robot lifecycle and operations portmanteau.
PORTMANTEAU PATTERN: Consolidates virtual robot CRUD operations and virtual robotics operations into a single unified tool. This reduces tool explosion while maintaining full functionality for virtual robot management.
CRUD OPERATIONS:
create: Create/spawn and register a new virtual robot
read: Get details of an existing virtual robot
update: Modify virtual robot properties (scale, position, metadata, etc.)
delete: Remove and unregister a virtual robot
list: List all virtual robots with optional filtering
VIRTUAL ROBOT OPERATIONS:
spawn: Spawn robot in Unity/VRChat scene (alias for create)
load_environment: Load Marble/Chisel environment into scene
get_status: Get virtual robot status
get_lidar: Get virtual LiDAR scan (Unity physics raycast)
set_scale: Scale robot size (for size testing)
test_navigation: Test pathfinding in environment
sync_with_physical: Sync vbot state with physical bot
Args: operation: Operation to perform (see CRUD and Virtual Robot Operations above). robot_type: Type of robot (required for create/spawn). Examples: "scout", "go2", "g1", "robbie", "custom" robot_id: Virtual robot identifier (required for read, update, delete, get_status, etc.). Auto-generated for create/spawn if not provided. platform: Target platform ("unity" or "vrchat"). Default: "unity". position: Spawn/update position (x, y, z) for create/spawn/update. scale: Size multiplier for create/spawn/update/set_scale. metadata: Additional metadata dictionary for create/update. model_path: Path to 3D model file (.glb, .fbx, .vrm) for custom robot_type. environment: Environment name (Marble-generated) for load_environment. environment_path: Path to environment file for load_environment. project_path: Unity project path (optional, auto-detected if not provided). include_colliders: Whether to import collider meshes (default: True).
Returns: Dictionary containing operation result with robot details.
Examples: # Create a Scout vbot result = await robot_virtual( operation="create", robot_type="scout", platform="unity", position={"x": 0.0, "y": 0.0, "z": 0.0}, scale=1.0 )
# Spawn robot (alias for create)
result = await robot_virtual(
operation="spawn",
robot_type="scout",
platform="unity"
)
# Read vbot details
result = await robot_virtual(
operation="read",
robot_id="vbot_scout_01"
)
# Update vbot
result = await robot_virtual(
operation="update",
robot_id="vbot_scout_01",
scale=1.5,
position={"x": 2.0, "y": 0.0, "z": 2.0}
)
# Load environment
result = await robot_virtual(
operation="load_environment",
environment="stroheckgasse_apartment",
platform="unity"
)
# Get LiDAR scan
result = await robot_virtual(
operation="get_lidar",
robot_id="vbot_scout_01"
)
# List all vbots
result = await robot_virtual(operation="list")Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| operation | Yes | ||
| robot_type | No | ||
| robot_id | No | ||
| platform | No | unity | |
| position | No | ||
| scale | No | ||
| metadata | No | ||
| model_path | No | ||
| environment | No | ||
| environment_path | No | ||
| project_path | No | ||
| include_colliders | No |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||