robot_control
Operate physical and virtual robots from a single interface, executing actions like navigation, vacuuming, docking, and status checks with conversational AI responses.
Instructions
Unified robot control with conversational responses.
Provides a single interface for controlling physical robots, virtual robots, and specialized devices with intelligent routing and rich conversational responses. Primary: Dreame D20 Pro vacuum. Also supports Yahboom ROSMASTER, Moorebot Scout, Unitree (when hardware available), and virtual robots in Unity/VRChat.
PORTMANTEAU PATTERN RATIONALE: Instead of creating separate tools for each robot type and operation, this tool consolidates all robot control operations into a single interface. This design:
Prevents tool explosion (15+ tools -> 1 tool) while maintaining full functionality
Enables seamless switching between physical and virtual robots
Provides consistent error handling and safety protocols across all robot types
Supports conversational AI interaction with context-aware responses
Follows FastMCP 2.13+ best practices for feature-rich MCP servers
SUPPORTED ROBOT TYPES:
Dreame D20 Pro: Primary platform - LIDAR vacuum with mapping, zone cleaning, mop, auto-empty
Yahboom Robots: ROSMASTER series with AI, navigation, and optional robotic arms
Moorebot Scout: ROS1 wheeled robot
Elegoo Robots: ROS-on-PC robots with serial communication
Unitree Go2/G1: Quadrupedal robots (when hardware available)
Virtual Robots: Unity3D/VRChat robots
Hue HomeAware: Philips Hue Bridge Pro with RF-based movement detection
SUPPORTED OPERATIONS:
Universal: "get_status", "move", "stop"
Physical Robots: "return_to_dock", "stand", "sit", "walk", "sync_vbot"
Yahboom: "home_patrol", "camera_capture", "arm_move", "gripper_control", "navigate_to", "ai_query"
Elegoo: "emergency_stop" (ROS-on-PC serial communication)
Dreame: "start_auto_empty", "stop_auto_empty", "start_self_clean", "stop_self_clean", "set_suction_level", "set_water_volume", "set_mop_humidity", "clean_zone", "clean_spot", "start_mapping", "rename_room", "set_cleaning_sequence", "set_restricted_zones", "get_cleaning_history", "clear_error"
Hue HomeAware: "hue_get_movement_events", "hue_get_sensor_status", "hue_get_movement_zones"
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| x | No | Target X coordinate (meters) for navigation operations | |
| y | No | Target Y coordinate (meters) for navigation operations | |
| query | No | AI query text for multimodal analysis (Yahboom robots) | |
| theta | No | Target orientation (radians) for navigation operations | |
| zones | No | List of zone coordinates [[x1,y1,x2,y2], ...] for zone cleaning | |
| action | Yes | Operation to perform. MUST be one of the supported operations above: Universal Operations: - "get_status": Get comprehensive robot status (battery, position, sensors, capabilities) - "move": Control movement with linear/angular velocities (all mobile robots) - "stop": Emergency stop all movement (all robots) Physical Robot Operations: - "return_to_dock": Return to charging dock (vacuums only) - "stand": Stand up from sitting position (legged robots) - "sit": Sit down (legged robots) - "walk": Start walking gait (legged robots) - "sync_vbot": Synchronize virtual robot with physical robot state Yahboom Robot Operations: - "home_patrol": Start autonomous home security patrol - "camera_capture": Capture image from robot camera - "arm_move": Move robotic arm to specified joint angles - "gripper_control": Control gripper open/close/stop - "navigate_to": Navigate to specific coordinates - "ai_query": Multimodal AI query (text/vision/voice/multimodal) Dreame Vacuum Operations: - "start_auto_empty": Start automatic dust bin emptying - "stop_auto_empty": Stop automatic dust bin emptying - "start_self_clean": Start mop self-cleaning cycle - "stop_self_clean": Stop mop self-cleaning cycle - "set_suction_level": Set vacuum suction power (1-4) - "set_water_volume": Set mopping water volume (1-3) - "set_mop_humidity": Set mop pad humidity (1-3) - "clean_zone": Clean specific rectangular zones - "clean_spot": Intensive spot cleaning at coordinates - "start_mapping": Start new map creation/mapping - "rename_room": Rename a detected room - "set_cleaning_sequence": Set room cleaning order - "set_restricted_zones": Create virtual walls/restricted zones - "get_cleaning_history": Retrieve cleaning history - "clear_error": Clear error conditions | |
| linear | No | Linear velocity (m/s) for move operations. Range: -2.0 to 2.0 m/s | |
| spot_x | No | X coordinate for intensive spot cleaning | |
| spot_y | No | Y coordinate for intensive spot cleaning | |
| angular | No | Angular velocity (rad/s) for rotation. Range: -3.14 to 3.14 rad/s | |
| room_id | No | Room identifier for room-specific operations | |
| duration | No | Movement duration in seconds. Default: continuous until stopped | |
| robot_id | Yes | Unique robot identifier. MUST follow naming convention: - Physical: "scout_01", "go2_01", "g1_01", "yahboom_01", "elegoo_01", "dreame_01", "hue_01" - Virtual: "vbot_scout_01", "unity_bot_01", "vrchat_bot_01" | |
| room_name | No | New name for room renaming operations | |
| query_type | No | AI query type. MUST be "text", "vision", "voice", or "multimodal" | |
| joint_angles | No | Dictionary of joint names to target angles (degrees) for arm control | |
| mop_humidity | No | Mop pad humidity level (1-3, where 3 is maximum humidity) | |
| patrol_route | No | Name of predefined patrol route for autonomous navigation | |
| water_volume | No | Mopping water volume level (1-3, where 3 is maximum) | |
| suction_level | No | Vacuum suction power level (1-4, where 4 is maximum) | |
| gripper_action | No | Gripper action. MUST be "open", "close", or "stop" | |
| restricted_zones | No | Dictionary with 'walls' and 'zones' keys for virtual barriers | |
| cleaning_sequence | No | List of room IDs defining cleaning order [room1, room2, ...] |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||