mirror of
https://github.com/soconnor0919/robot-plugins.git
synced 2026-05-08 06:18:55 -04:00
346 lines
9.8 KiB
JSON
Executable File
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"}
|
|
}
|
|
}
|
|
}
|
|
]
|
|
}
|