Files
robot-plugins/plugins/nao6-ros2.json
T

346 lines
9.8 KiB
JSON
Executable File

{
"robotId": "nao6-ros2",
"name": "NAO6 Robot (ROS2 Integration)",
"description": "NAO V6 humanoid robot with ROS2 integration. Verified working actions include speech, walking, and animations.",
"platform": "ROS2",
"version": "3.0.0",
"pluginApiVersion": "1.0",
"hriStudioVersion": ">=0.1.0",
"trustLevel": "verified",
"category": "humanoid-robot",
"manufacturer": {
"name": "SoftBank Robotics",
"website": "https://www.softbankrobotics.com/"
},
"capabilities": ["bipedal_walking", "speech_synthesis", "gestures"],
"specs": {
"dimensions": {"length": 0.275, "width": 0.311, "height": 0.574, "weight": 5.4},
"maxSpeed": 0.55,
"batteryLife": 1.5
},
"ros2Config": {
"namespace": "nao",
"nodePrefix": "hri_studio",
"defaultTopics": {
"cmd_vel": "/cmd_vel",
"speech": "/speech",
"joint_angles": "/joint_angles",
"animation": "/animation"
}
},
"actions": [
{
"id": "say_text",
"name": "Say Text",
"description": "Make the robot speak text",
"category": "speech",
"icon": "message-square",
"timeout": 10000,
"retryable": true,
"parameterSchema": {
"type": "object",
"properties": {
"text": {
"type": "string",
"title": "Text",
"description": "Text for the robot to speak"
}
},
"required": ["text"]
},
"ros2": {
"topic": "/speech",
"messageType": "std_msgs/msg/String",
"payloadMapping": {
"type": "static",
"payload": {"data": "{{text}}"}
}
}
},
{
"id": "say_with_emotion",
"name": "Say with Emotion",
"description": "Make the robot speak with emotion",
"category": "speech",
"icon": "smile",
"timeout": 10000,
"retryable": true,
"parameterSchema": {
"type": "object",
"properties": {
"text": {"type": "string", "title": "Text"},
"emotion": {"type": "string", "title": "Emotion", "enum": ["happy", "sad", "neutral"]}
},
"required": ["text"]
},
"ros2": {
"topic": "/speech",
"messageType": "std_msgs/msg/String",
"payloadMapping": {
"type": "transform",
"transformFn": "transformToEmotionSpeech"
}
}
},
{
"id": "walk_forward",
"name": "Walk Forward",
"description": "Walk forward",
"category": "movement",
"icon": "arrow-up",
"timeout": 5000,
"retryable": true,
"parameterSchema": {
"type": "object",
"properties": {
"speed": {"type": "number", "title": "Speed", "default": 0.1, "minimum": 0, "maximum": 0.55}
}
},
"ros2": {
"topic": "/cmd_vel",
"messageType": "geometry_msgs/msg/Twist",
"payloadMapping": {
"type": "static",
"payload": {"linear": {"x": 0.1, "y": 0, "z": 0}, "angular": {"x": 0, "y": 0, "z": 0}}
}
}
},
{
"id": "walk_backward",
"name": "Walk Backward",
"description": "Walk backward",
"category": "movement",
"icon": "arrow-down",
"timeout": 5000,
"retryable": true,
"parameterSchema": {"type": "object", "properties": {}},
"ros2": {
"topic": "/cmd_vel",
"messageType": "geometry_msgs/msg/Twist",
"payloadMapping": {
"type": "static",
"payload": {"linear": {"x": -0.1, "y": 0, "z": 0}, "angular": {"x": 0, "y": 0, "z": 0}}
}
}
},
{
"id": "turn_left",
"name": "Turn Left",
"description": "Turn left in place",
"category": "movement",
"icon": "corner-up-left",
"timeout": 5000,
"retryable": true,
"parameterSchema": {"type": "object", "properties": {}},
"ros2": {
"topic": "/cmd_vel",
"messageType": "geometry_msgs/msg/Twist",
"payloadMapping": {
"type": "static",
"payload": {"linear": {"x": 0, "y": 0, "z": 0}, "angular": {"x": 0, "y": 0, "z": -0.3}}
}
}
},
{
"id": "turn_right",
"name": "Turn Right",
"description": "Turn right in place",
"category": "movement",
"icon": "corner-up-right",
"timeout": 5000,
"retryable": true,
"parameterSchema": {"type": "object", "properties": {}},
"ros2": {
"topic": "/cmd_vel",
"messageType": "geometry_msgs/msg/Twist",
"payloadMapping": {
"type": "static",
"payload": {"linear": {"x": 0, "y": 0, "z": 0}, "angular": {"x": 0, "y": 0, "z": 0.3}}
}
}
},
{
"id": "stop_walking",
"name": "Stop",
"description": "Stop all robot movement",
"category": "movement",
"icon": "square",
"timeout": 1000,
"retryable": true,
"parameterSchema": {"type": "object", "properties": {}},
"ros2": {
"topic": "/cmd_vel",
"messageType": "geometry_msgs/msg/Twist",
"payloadMapping": {
"type": "static",
"payload": {"linear": {"x": 0, "y": 0, "z": 0}, "angular": {"x": 0, "y": 0, "z": 0}}
}
}
},
{
"id": "wake_up",
"name": "Wake Up",
"description": "Wake up the robot (stand up)",
"category": "movement",
"icon": "sun",
"timeout": 5000,
"retryable": true,
"parameterSchema": {"type": "object", "properties": {}},
"ros2": {
"topic": "/naoqi_driver/ALMotion/wakeUp",
"messageType": "std_msgs/msg/Empty",
"payloadMapping": {
"type": "service",
"service": "/naoqi_driver/ALMotion/wakeUp",
"args": {}
}
}
},
{
"id": "rest",
"name": "Rest",
"description": "Put robot to rest (sit down)",
"category": "movement",
"icon": "moon",
"timeout": 5000,
"retryable": true,
"parameterSchema": {"type": "object", "properties": {}},
"ros2": {
"topic": "/naoqi_driver/ALMotion/rest",
"messageType": "std_msgs/msg/Empty",
"payloadMapping": {
"type": "service",
"service": "/naoqi_driver/ALMotion/rest",
"args": {}
}
}
},
{
"id": "play_animation_bow",
"name": "Bow",
"description": "Polite bow gesture",
"category": "movement",
"icon": "user-check",
"timeout": 3000,
"retryable": true,
"parameterSchema": {"type": "object", "properties": {}},
"ros2": {
"topic": "/animation",
"messageType": "std_msgs/msg/String",
"payloadMapping": {
"type": "static",
"payload": {"data": "animations/Stand/Gestures/BowShort_1"}
}
}
},
{
"id": "play_animation_hey",
"name": "Hey",
"description": "Hey/get attention gesture",
"category": "movement",
"icon": "hand",
"timeout": 3000,
"retryable": true,
"parameterSchema": {"type": "object", "properties": {}},
"ros2": {
"topic": "/animation",
"messageType": "std_msgs/msg/String",
"payloadMapping": {
"type": "static",
"payload": {"data": "animations/Stand/Gestures/Hey_1"}
}
}
},
{
"id": "play_animation_show_floor",
"name": "Show Floor",
"description": "Show the floor gesture",
"category": "movement",
"icon": "footprints",
"timeout": 3000,
"retryable": true,
"parameterSchema": {"type": "object", "properties": {}},
"ros2": {
"topic": "/animation",
"messageType": "std_msgs/msg/String",
"payloadMapping": {
"type": "static",
"payload": {"data": "animations/Stand/Gestures/ShowFloor_1"}
}
}
},
{
"id": "play_animation_enthusiastic",
"name": "Enthusiastic",
"description": "Enthusiastic arm wave",
"category": "movement",
"icon": "sparkles",
"timeout": 3000,
"retryable": true,
"parameterSchema": {"type": "object", "properties": {}},
"ros2": {
"topic": "/animation",
"messageType": "std_msgs/msg/String",
"payloadMapping": {
"type": "static",
"payload": {"data": "animations/Stand/Gestures/Enthusiastic_4"}
}
}
},
{
"id": "play_animation_yes",
"name": "Yes (Nod)",
"description": "Nodding yes gesture",
"category": "movement",
"icon": "thumbs-up",
"timeout": 3000,
"retryable": true,
"parameterSchema": {"type": "object", "properties": {}},
"ros2": {
"topic": "/animation",
"messageType": "std_msgs/msg/String",
"payloadMapping": {
"type": "static",
"payload": {"data": "animations/Stand/Gestures/Yes_1"}
}
}
},
{
"id": "play_animation_no",
"name": "No (Head Shake)",
"description": "Head shaking no gesture",
"category": "movement",
"icon": "thumbs-down",
"timeout": 3000,
"retryable": true,
"parameterSchema": {"type": "object", "properties": {}},
"ros2": {
"topic": "/animation",
"messageType": "std_msgs/msg/String",
"payloadMapping": {
"type": "static",
"payload": {"data": "animations/Stand/Gestures/No_3"}
}
}
},
{
"id": "play_animation_idontknow",
"name": "I Don't Know",
"description": "I don't know shrug gesture",
"category": "movement",
"icon": "help-circle",
"timeout": 3000,
"retryable": true,
"parameterSchema": {"type": "object", "properties": {}},
"ros2": {
"topic": "/animation",
"messageType": "std_msgs/msg/String",
"payloadMapping": {
"type": "static",
"payload": {"data": "animations/Stand/Gestures/IDontKnow_1"}
}
}
}
]
}