Files
robot-plugins/plugins/nao-humanoid.json

316 lines
8.7 KiB
JSON

{
"robotId": "nao-humanoid",
"name": "NAO Humanoid Robot",
"description": "Autonomous, programmable humanoid robot designed for education, research, and human-robot interaction studies",
"platform": "NAOqi",
"version": "1.0.0",
"pluginApiVersion": "1.0",
"hriStudioVersion": ">=0.1.0",
"trustLevel": "verified",
"category": "humanoid-robot",
"manufacturer": {
"name": "SoftBank Robotics",
"website": "https://www.softbankrobotics.com/",
"support": "https://developer.softbankrobotics.com/"
},
"documentation": {
"mainUrl": "https://developer.softbankrobotics.com/nao6/nao-documentation",
"apiReference": "https://developer.softbankrobotics.com/nao6/naoqi-developer-guide",
"wikiUrl": "https://en.wikipedia.org/wiki/Nao_(robot)",
"videoUrl": "https://www.youtube.com/watch?v=nNbj2G3GmAg"
},
"assets": {
"thumbnailUrl": "assets/nao-humanoid/thumb.png",
"images": {
"main": "assets/nao-humanoid/main.jpg",
"angles": {
"front": "assets/nao-humanoid/front.png",
"side": "assets/nao-humanoid/side.png",
"back": "assets/nao-humanoid/back.png"
},
"logo": "assets/nao-humanoid/logo.png"
},
"model": {
"format": "URDF",
"url": "https://github.com/ros-naoqi/nao_robot/raw/master/nao_description/urdf/nao.urdf"
}
},
"specs": {
"dimensions": {
"length": 0.275,
"width": 0.311,
"height": 0.574,
"weight": 5.4
},
"capabilities": ["bipedal_walking", "speech_synthesis", "speech_recognition", "computer_vision", "gestures", "led_control"],
"maxSpeed": 0.55,
"batteryLife": 1.5
},
"naoqiConfig": {
"defaultIP": "nao.local",
"defaultPort": 9559,
"modules": ["ALMotion", "ALTextToSpeech", "ALSpeechRecognition", "ALLeds", "ALAnimationPlayer", "ALBehaviorManager"]
},
"actions": [
{
"id": "say_text",
"name": "Say Text",
"description": "Make the robot speak using text-to-speech",
"category": "interaction",
"icon": "volume-2",
"timeout": 15000,
"retryable": true,
"parameterSchema": {
"type": "object",
"properties": {
"text": {
"type": "string",
"default": "Hello, I am NAO!",
"description": "Text to speak"
},
"volume": {
"type": "number",
"minimum": 0.1,
"maximum": 1.0,
"default": 0.7,
"description": "Speech volume (0.1 to 1.0)"
},
"speed": {
"type": "number",
"minimum": 50,
"maximum": 400,
"default": 100,
"description": "Speech speed in words per minute"
}
},
"required": ["text"]
},
"naoqi": {
"module": "ALTextToSpeech",
"method": "say",
"parameters": ["text"]
}
},
{
"id": "walk_to_position",
"name": "Walk to Position",
"description": "Walk to a specific position relative to current location",
"category": "movement",
"icon": "footprints",
"timeout": 30000,
"retryable": true,
"parameterSchema": {
"type": "object",
"properties": {
"x": {
"type": "number",
"minimum": -2.0,
"maximum": 2.0,
"default": 0.5,
"description": "Forward distance in meters"
},
"y": {
"type": "number",
"minimum": -1.0,
"maximum": 1.0,
"default": 0.0,
"description": "Sideways distance in meters (left is positive)"
},
"theta": {
"type": "number",
"minimum": -3.14159,
"maximum": 3.14159,
"default": 0.0,
"description": "Turn angle in radians"
}
},
"required": ["x", "y", "theta"]
},
"naoqi": {
"module": "ALMotion",
"method": "walkTo",
"parameters": ["x", "y", "theta"]
}
},
{
"id": "play_animation",
"name": "Play Animation",
"description": "Play a predefined animation or gesture",
"category": "interaction",
"icon": "zap",
"timeout": 20000,
"retryable": true,
"parameterSchema": {
"type": "object",
"properties": {
"animation": {
"type": "string",
"enum": ["Hello", "Goodbye", "Excited", "Thinking", "Clap", "Dance", "BowShort", "WipeForehead"],
"default": "Hello",
"description": "Animation to play"
}
},
"required": ["animation"]
},
"naoqi": {
"module": "ALAnimationPlayer",
"method": "run",
"parameters": ["animations/Stand/Gestures/{animation}"]
}
},
{
"id": "set_led_color",
"name": "Set LED Color",
"description": "Change the color of NAO's eye LEDs",
"category": "interaction",
"icon": "lightbulb",
"timeout": 5000,
"retryable": true,
"parameterSchema": {
"type": "object",
"properties": {
"color": {
"type": "string",
"enum": ["red", "green", "blue", "yellow", "magenta", "cyan", "white", "orange", "pink"],
"default": "blue",
"description": "LED color"
},
"intensity": {
"type": "number",
"minimum": 0.0,
"maximum": 1.0,
"default": 1.0,
"description": "LED brightness (0.0 to 1.0)"
}
},
"required": ["color"]
},
"naoqi": {
"module": "ALLeds",
"method": "fadeRGB",
"parameters": ["FaceLeds", "color", "intensity", 1.0]
}
},
{
"id": "sit_down",
"name": "Sit Down",
"description": "Make the robot sit down",
"category": "movement",
"icon": "minus-square",
"timeout": 10000,
"retryable": true,
"parameterSchema": {
"type": "object",
"properties": {},
"required": []
},
"naoqi": {
"module": "ALMotion",
"method": "rest",
"parameters": []
}
},
{
"id": "stand_up",
"name": "Stand Up",
"description": "Make the robot stand up from sitting position",
"category": "movement",
"icon": "plus-square",
"timeout": 10000,
"retryable": true,
"parameterSchema": {
"type": "object",
"properties": {},
"required": []
},
"naoqi": {
"module": "ALMotion",
"method": "wakeUp",
"parameters": []
}
},
{
"id": "listen_for_speech",
"name": "Listen for Speech",
"description": "Listen for specific words or phrases",
"category": "sensors",
"icon": "mic",
"timeout": 30000,
"retryable": true,
"parameterSchema": {
"type": "object",
"properties": {
"vocabulary": {
"type": "array",
"items": {
"type": "string"
},
"default": ["yes", "no", "hello", "goodbye"],
"description": "Words to listen for"
},
"confidence": {
"type": "number",
"minimum": 0.3,
"maximum": 1.0,
"default": 0.5,
"description": "Minimum confidence threshold"
}
},
"required": ["vocabulary"]
},
"naoqi": {
"module": "ALSpeechRecognition",
"method": "setVocabulary",
"parameters": ["vocabulary", "confidence"]
}
},
{
"id": "turn_head",
"name": "Turn Head",
"description": "Turn the robot's head to look in a specific direction",
"category": "movement",
"icon": "rotate-ccw",
"timeout": 5000,
"retryable": true,
"parameterSchema": {
"type": "object",
"properties": {
"yaw": {
"type": "number",
"minimum": -2.0857,
"maximum": 2.0857,
"default": 0.0,
"description": "Head yaw angle in radians (left-right)"
},
"pitch": {
"type": "number",
"minimum": -0.6720,
"maximum": 0.5149,
"default": 0.0,
"description": "Head pitch angle in radians (up-down)"
},
"speed": {
"type": "number",
"minimum": 0.1,
"maximum": 1.0,
"default": 0.3,
"description": "Movement speed fraction"
}
},
"required": ["yaw", "pitch"]
},
"naoqi": {
"module": "ALMotion",
"method": "setAngles",
"parameters": [["HeadYaw", "HeadPitch"], ["yaw", "pitch"], "speed"]
}
}
]
}