mirror of
https://github.com/soconnor0919/hristudio.git
synced 2025-12-11 22:54:45 -05:00
feat: Introduce dedicated participant, experiment, and trial detail/edit pages, enable MinIO, and refactor dashboard navigation.
This commit is contained in:
927
plugin_dump.json
Normal file
927
plugin_dump.json
Normal file
@@ -0,0 +1,927 @@
|
||||
jsonb_pretty
|
||||
---------------------------------------------------------------------------------------
|
||||
[ +
|
||||
{ +
|
||||
"id": "walk_velocity", +
|
||||
"icon": "navigation", +
|
||||
"name": "Walk with Velocity", +
|
||||
"ros2": { +
|
||||
"qos": { +
|
||||
"depth": 1, +
|
||||
"history": "keep_last", +
|
||||
"durability": "volatile", +
|
||||
"reliability": "reliable" +
|
||||
}, +
|
||||
"topic": "/cmd_vel", +
|
||||
"messageType": "geometry_msgs/msg/Twist", +
|
||||
"payloadMapping": { +
|
||||
"type": "transform", +
|
||||
"transformFn": "transformToTwist" +
|
||||
} +
|
||||
}, +
|
||||
"timeout": 5000, +
|
||||
"category": "movement", +
|
||||
"retryable": true, +
|
||||
"description": "Control robot walking with linear and angular velocities", +
|
||||
"parameterSchema": { +
|
||||
"type": "object", +
|
||||
"required": [ +
|
||||
"linear", +
|
||||
"angular" +
|
||||
], +
|
||||
"properties": { +
|
||||
"linear": { +
|
||||
"type": "number", +
|
||||
"default": 0, +
|
||||
"maximum": 0.55, +
|
||||
"minimum": -0.55, +
|
||||
"description": "Forward velocity in m/s" +
|
||||
}, +
|
||||
"angular": { +
|
||||
"type": "number", +
|
||||
"default": 0, +
|
||||
"maximum": 2, +
|
||||
"minimum": -2, +
|
||||
"description": "Angular velocity in rad/s" +
|
||||
} +
|
||||
} +
|
||||
} +
|
||||
}, +
|
||||
{ +
|
||||
"id": "walk_forward", +
|
||||
"icon": "arrow-up", +
|
||||
"name": "Walk Forward", +
|
||||
"ros2": { +
|
||||
"topic": "/cmd_vel", +
|
||||
"messageType": "geometry_msgs/msg/Twist", +
|
||||
"payloadMapping": { +
|
||||
"type": "static", +
|
||||
"payload": { +
|
||||
"linear": { +
|
||||
"x": "{{speed}}", +
|
||||
"y": 0, +
|
||||
"z": 0 +
|
||||
}, +
|
||||
"angular": { +
|
||||
"x": 0, +
|
||||
"y": 0, +
|
||||
"z": 0 +
|
||||
} +
|
||||
} +
|
||||
} +
|
||||
}, +
|
||||
"timeout": 30000, +
|
||||
"category": "movement", +
|
||||
"retryable": true, +
|
||||
"description": "Make the robot walk forward at specified speed", +
|
||||
"parameterSchema": { +
|
||||
"type": "object", +
|
||||
"required": [ +
|
||||
"speed" +
|
||||
], +
|
||||
"properties": { +
|
||||
"speed": { +
|
||||
"type": "number", +
|
||||
"default": 0.1, +
|
||||
"maximum": 0.3, +
|
||||
"minimum": 0.01, +
|
||||
"description": "Walking speed in m/s" +
|
||||
}, +
|
||||
"duration": { +
|
||||
"type": "number", +
|
||||
"default": 0, +
|
||||
"maximum": 30, +
|
||||
"minimum": 0, +
|
||||
"description": "Duration to walk in seconds (0 = indefinite)" +
|
||||
} +
|
||||
} +
|
||||
} +
|
||||
}, +
|
||||
{ +
|
||||
"id": "walk_backward", +
|
||||
"icon": "arrow-down", +
|
||||
"name": "Walk Backward", +
|
||||
"ros2": { +
|
||||
"topic": "/cmd_vel", +
|
||||
"messageType": "geometry_msgs/msg/Twist", +
|
||||
"payloadMapping": { +
|
||||
"type": "static", +
|
||||
"payload": { +
|
||||
"linear": { +
|
||||
"x": "-{{speed}}", +
|
||||
"y": 0, +
|
||||
"z": 0 +
|
||||
}, +
|
||||
"angular": { +
|
||||
"x": 0, +
|
||||
"y": 0, +
|
||||
"z": 0 +
|
||||
} +
|
||||
} +
|
||||
} +
|
||||
}, +
|
||||
"timeout": 30000, +
|
||||
"category": "movement", +
|
||||
"retryable": true, +
|
||||
"description": "Make the robot walk backward at specified speed", +
|
||||
"parameterSchema": { +
|
||||
"type": "object", +
|
||||
"required": [ +
|
||||
"speed" +
|
||||
], +
|
||||
"properties": { +
|
||||
"speed": { +
|
||||
"type": "number", +
|
||||
"default": 0.1, +
|
||||
"maximum": 0.3, +
|
||||
"minimum": 0.01, +
|
||||
"description": "Walking speed in m/s" +
|
||||
}, +
|
||||
"duration": { +
|
||||
"type": "number", +
|
||||
"default": 0, +
|
||||
"maximum": 30, +
|
||||
"minimum": 0, +
|
||||
"description": "Duration to walk in seconds (0 = indefinite)" +
|
||||
} +
|
||||
} +
|
||||
} +
|
||||
}, +
|
||||
{ +
|
||||
"id": "turn_left", +
|
||||
"icon": "rotate-ccw", +
|
||||
"name": "Turn Left", +
|
||||
"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": "{{speed}}" +
|
||||
} +
|
||||
} +
|
||||
} +
|
||||
}, +
|
||||
"timeout": 30000, +
|
||||
"category": "movement", +
|
||||
"retryable": true, +
|
||||
"description": "Make the robot turn left at specified angular speed", +
|
||||
"parameterSchema": { +
|
||||
"type": "object", +
|
||||
"required": [ +
|
||||
"speed" +
|
||||
], +
|
||||
"properties": { +
|
||||
"speed": { +
|
||||
"type": "number", +
|
||||
"default": 0.3, +
|
||||
"maximum": 1, +
|
||||
"minimum": 0.1, +
|
||||
"description": "Angular speed in rad/s" +
|
||||
}, +
|
||||
"duration": { +
|
||||
"type": "number", +
|
||||
"default": 0, +
|
||||
"maximum": 30, +
|
||||
"minimum": 0, +
|
||||
"description": "Duration to turn in seconds (0 = indefinite)" +
|
||||
} +
|
||||
} +
|
||||
} +
|
||||
}, +
|
||||
{ +
|
||||
"id": "turn_right", +
|
||||
"icon": "rotate-cw", +
|
||||
"name": "Turn Right", +
|
||||
"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": "-{{speed}}" +
|
||||
} +
|
||||
} +
|
||||
} +
|
||||
}, +
|
||||
"timeout": 30000, +
|
||||
"category": "movement", +
|
||||
"retryable": true, +
|
||||
"description": "Make the robot turn right at specified angular speed", +
|
||||
"parameterSchema": { +
|
||||
"type": "object", +
|
||||
"required": [ +
|
||||
"speed" +
|
||||
], +
|
||||
"properties": { +
|
||||
"speed": { +
|
||||
"type": "number", +
|
||||
"default": 0.3, +
|
||||
"maximum": 1, +
|
||||
"minimum": 0.1, +
|
||||
"description": "Angular speed in rad/s" +
|
||||
}, +
|
||||
"duration": { +
|
||||
"type": "number", +
|
||||
"default": 0, +
|
||||
"maximum": 30, +
|
||||
"minimum": 0, +
|
||||
"description": "Duration to turn in seconds (0 = indefinite)" +
|
||||
} +
|
||||
} +
|
||||
} +
|
||||
}, +
|
||||
{ +
|
||||
"id": "stop_walking", +
|
||||
"icon": "square", +
|
||||
"name": "Stop Walking", +
|
||||
"ros2": { +
|
||||
"qos": { +
|
||||
"depth": 1, +
|
||||
"history": "keep_last", +
|
||||
"durability": "volatile", +
|
||||
"reliability": "reliable" +
|
||||
}, +
|
||||
"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 +
|
||||
} +
|
||||
} +
|
||||
} +
|
||||
}, +
|
||||
"timeout": 3000, +
|
||||
"category": "movement", +
|
||||
"retryable": false, +
|
||||
"description": "Immediately stop robot movement", +
|
||||
"parameterSchema": { +
|
||||
"type": "object", +
|
||||
"required": [ +
|
||||
], +
|
||||
"properties": { +
|
||||
} +
|
||||
} +
|
||||
}, +
|
||||
{ +
|
||||
"id": "say_text", +
|
||||
"icon": "volume-2", +
|
||||
"name": "Say Text", +
|
||||
"ros2": { +
|
||||
"qos": { +
|
||||
"durability": "volatile", +
|
||||
"reliability": "reliable" +
|
||||
}, +
|
||||
"topic": "/speech", +
|
||||
"messageType": "std_msgs/msg/String", +
|
||||
"payloadMapping": { +
|
||||
"type": "transform", +
|
||||
"transformFn": "transformToStringMessage" +
|
||||
} +
|
||||
}, +
|
||||
"timeout": 15000, +
|
||||
"category": "interaction", +
|
||||
"retryable": true, +
|
||||
"description": "Make the robot speak using text-to-speech", +
|
||||
"parameterSchema": { +
|
||||
"type": "object", +
|
||||
"required": [ +
|
||||
"text" +
|
||||
], +
|
||||
"properties": { +
|
||||
"text": { +
|
||||
"type": "string", +
|
||||
"default": "Hello from NAO!", +
|
||||
"description": "Text to speak" +
|
||||
} +
|
||||
} +
|
||||
} +
|
||||
}, +
|
||||
{ +
|
||||
"id": "say_with_emotion", +
|
||||
"icon": "heart", +
|
||||
"name": "Say Text with Emotion", +
|
||||
"ros2": { +
|
||||
"topic": "/speech", +
|
||||
"messageType": "std_msgs/msg/String", +
|
||||
"payloadMapping": { +
|
||||
"type": "static", +
|
||||
"payload": { +
|
||||
"data": "\\rspd={{speed}}\\\\rst={{emotion}}\\{{text}}" +
|
||||
} +
|
||||
} +
|
||||
}, +
|
||||
"timeout": 15000, +
|
||||
"category": "interaction", +
|
||||
"retryable": true, +
|
||||
"description": "Speak text with emotional expression using SSML-like markup",+
|
||||
"parameterSchema": { +
|
||||
"type": "object", +
|
||||
"required": [ +
|
||||
"text" +
|
||||
], +
|
||||
"properties": { +
|
||||
"text": { +
|
||||
"type": "string", +
|
||||
"default": "Hello! I'm feeling great today!", +
|
||||
"description": "Text for the robot to speak" +
|
||||
}, +
|
||||
"speed": { +
|
||||
"type": "number", +
|
||||
"default": 1, +
|
||||
"maximum": 2, +
|
||||
"minimum": 0.5, +
|
||||
"description": "Speech speed multiplier" +
|
||||
}, +
|
||||
"emotion": { +
|
||||
"enum": [ +
|
||||
"neutral", +
|
||||
"happy", +
|
||||
"sad", +
|
||||
"excited", +
|
||||
"calm" +
|
||||
], +
|
||||
"type": "string", +
|
||||
"default": "neutral", +
|
||||
"description": "Emotional tone for speech" +
|
||||
} +
|
||||
} +
|
||||
} +
|
||||
}, +
|
||||
{ +
|
||||
"id": "set_volume", +
|
||||
"icon": "volume-x", +
|
||||
"name": "Set Volume", +
|
||||
"ros2": { +
|
||||
"topic": "/audio_volume", +
|
||||
"messageType": "std_msgs/msg/Float32", +
|
||||
"payloadMapping": { +
|
||||
"type": "static", +
|
||||
"payload": { +
|
||||
"data": "{{volume}}" +
|
||||
} +
|
||||
} +
|
||||
}, +
|
||||
"timeout": 5000, +
|
||||
"category": "interaction", +
|
||||
"retryable": true, +
|
||||
"description": "Adjust the robot's audio volume level", +
|
||||
"parameterSchema": { +
|
||||
"type": "object", +
|
||||
"required": [ +
|
||||
"volume" +
|
||||
], +
|
||||
"properties": { +
|
||||
"volume": { +
|
||||
"type": "number", +
|
||||
"default": 0.5, +
|
||||
"maximum": 1, +
|
||||
"minimum": 0, +
|
||||
"description": "Volume level (0.0 = silent, 1.0 = maximum)" +
|
||||
} +
|
||||
} +
|
||||
} +
|
||||
}, +
|
||||
{ +
|
||||
"id": "set_language", +
|
||||
"icon": "globe", +
|
||||
"name": "Set Language", +
|
||||
"ros2": { +
|
||||
"topic": "/set_language", +
|
||||
"messageType": "std_msgs/msg/String", +
|
||||
"payloadMapping": { +
|
||||
"type": "static", +
|
||||
"payload": { +
|
||||
"data": "{{language}}" +
|
||||
} +
|
||||
} +
|
||||
}, +
|
||||
"timeout": 5000, +
|
||||
"category": "interaction", +
|
||||
"retryable": true, +
|
||||
"description": "Change the robot's speech language", +
|
||||
"parameterSchema": { +
|
||||
"type": "object", +
|
||||
"required": [ +
|
||||
"language" +
|
||||
], +
|
||||
"properties": { +
|
||||
"language": { +
|
||||
"enum": [ +
|
||||
"en-US", +
|
||||
"en-GB", +
|
||||
"fr-FR", +
|
||||
"de-DE", +
|
||||
"es-ES", +
|
||||
"it-IT", +
|
||||
"ja-JP", +
|
||||
"ko-KR", +
|
||||
"zh-CN" +
|
||||
], +
|
||||
"type": "string", +
|
||||
"default": "en-US", +
|
||||
"description": "Speech language" +
|
||||
} +
|
||||
} +
|
||||
} +
|
||||
}, +
|
||||
{ +
|
||||
"id": "move_head", +
|
||||
"icon": "eye", +
|
||||
"name": "Move Head", +
|
||||
"ros2": { +
|
||||
"topic": "/joint_angles", +
|
||||
"messageType": "naoqi_bridge_msgs/msg/JointAnglesWithSpeed", +
|
||||
"payloadMapping": { +
|
||||
"type": "static", +
|
||||
"payload": { +
|
||||
"speed": "{{speed}}", +
|
||||
"joint_names": [ +
|
||||
"HeadYaw", +
|
||||
"HeadPitch" +
|
||||
], +
|
||||
"joint_angles": [ +
|
||||
"{{yaw}}", +
|
||||
"{{pitch}}" +
|
||||
] +
|
||||
} +
|
||||
} +
|
||||
}, +
|
||||
"timeout": 10000, +
|
||||
"category": "movement", +
|
||||
"retryable": true, +
|
||||
"description": "Control head orientation (yaw and pitch)", +
|
||||
"parameterSchema": { +
|
||||
"type": "object", +
|
||||
"required": [ +
|
||||
"yaw", +
|
||||
"pitch" +
|
||||
], +
|
||||
"properties": { +
|
||||
"yaw": { +
|
||||
"type": "number", +
|
||||
"default": 0, +
|
||||
"maximum": 2.09, +
|
||||
"minimum": -2.09, +
|
||||
"description": "Head yaw angle in radians" +
|
||||
}, +
|
||||
"pitch": { +
|
||||
"type": "number", +
|
||||
"default": 0, +
|
||||
"maximum": 0.51, +
|
||||
"minimum": -0.67, +
|
||||
"description": "Head pitch angle in radians" +
|
||||
}, +
|
||||
"speed": { +
|
||||
"type": "number", +
|
||||
"default": 0.3, +
|
||||
"maximum": 1, +
|
||||
"minimum": 0.1, +
|
||||
"description": "Movement speed (0.1 = slow, 1.0 = fast)" +
|
||||
} +
|
||||
} +
|
||||
} +
|
||||
}, +
|
||||
{ +
|
||||
"id": "move_arm", +
|
||||
"icon": "hand", +
|
||||
"name": "Move Arm", +
|
||||
"ros2": { +
|
||||
"topic": "/joint_angles", +
|
||||
"messageType": "naoqi_bridge_msgs/msg/JointAnglesWithSpeed", +
|
||||
"payloadMapping": { +
|
||||
"type": "static", +
|
||||
"payload": { +
|
||||
"speed": "{{speed}}", +
|
||||
"joint_names": [ +
|
||||
"{{arm === 'left' ? 'L' : 'R'}}ShoulderPitch", +
|
||||
"{{arm === 'left' ? 'L' : 'R'}}ShoulderRoll", +
|
||||
"{{arm === 'left' ? 'L' : 'R'}}ElbowYaw", +
|
||||
"{{arm === 'left' ? 'L' : 'R'}}ElbowRoll" +
|
||||
], +
|
||||
"joint_angles": [ +
|
||||
"{{shoulder_pitch}}", +
|
||||
"{{shoulder_roll}}", +
|
||||
"{{elbow_yaw}}", +
|
||||
"{{elbow_roll}}" +
|
||||
] +
|
||||
} +
|
||||
} +
|
||||
}, +
|
||||
"timeout": 10000, +
|
||||
"category": "movement", +
|
||||
"retryable": true, +
|
||||
"description": "Control arm joint positions", +
|
||||
"parameterSchema": { +
|
||||
"type": "object", +
|
||||
"required": [ +
|
||||
"arm", +
|
||||
"shoulder_pitch", +
|
||||
"shoulder_roll", +
|
||||
"elbow_yaw", +
|
||||
"elbow_roll" +
|
||||
], +
|
||||
"properties": { +
|
||||
"arm": { +
|
||||
"enum": [ +
|
||||
"left", +
|
||||
"right" +
|
||||
], +
|
||||
"type": "string", +
|
||||
"default": "right", +
|
||||
"description": "Which arm to control" +
|
||||
}, +
|
||||
"speed": { +
|
||||
"type": "number", +
|
||||
"default": 0.3, +
|
||||
"maximum": 1, +
|
||||
"minimum": 0.1, +
|
||||
"description": "Movement speed (0.1 = slow, 1.0 = fast)" +
|
||||
}, +
|
||||
"elbow_yaw": { +
|
||||
"type": "number", +
|
||||
"default": 0, +
|
||||
"maximum": 2.09, +
|
||||
"minimum": -2.09, +
|
||||
"description": "Elbow yaw angle in radians" +
|
||||
}, +
|
||||
"elbow_roll": { +
|
||||
"type": "number", +
|
||||
"default": -0.5, +
|
||||
"maximum": -0.03, +
|
||||
"minimum": -1.54, +
|
||||
"description": "Elbow roll angle in radians" +
|
||||
}, +
|
||||
"shoulder_roll": { +
|
||||
"type": "number", +
|
||||
"default": 0.2, +
|
||||
"maximum": 1.33, +
|
||||
"minimum": -0.31, +
|
||||
"description": "Shoulder roll angle in radians" +
|
||||
}, +
|
||||
"shoulder_pitch": { +
|
||||
"type": "number", +
|
||||
"default": 1.4, +
|
||||
"maximum": 2.09, +
|
||||
"minimum": -2.09, +
|
||||
"description": "Shoulder pitch angle in radians" +
|
||||
} +
|
||||
} +
|
||||
} +
|
||||
}, +
|
||||
{ +
|
||||
"id": "set_joint_angle", +
|
||||
"icon": "settings", +
|
||||
"name": "Set Joint Angle", +
|
||||
"ros2": { +
|
||||
"topic": "/joint_angles", +
|
||||
"messageType": "naoqi_bridge_msgs/msg/JointAnglesWithSpeed", +
|
||||
"payloadMapping": { +
|
||||
"type": "transform", +
|
||||
"transformFn": "transformToJointAngles" +
|
||||
} +
|
||||
}, +
|
||||
"timeout": 10000, +
|
||||
"category": "movement", +
|
||||
"retryable": true, +
|
||||
"description": "Control individual joint angles", +
|
||||
"parameterSchema": { +
|
||||
"type": "object", +
|
||||
"required": [ +
|
||||
"joint_name", +
|
||||
"angle" +
|
||||
], +
|
||||
"properties": { +
|
||||
"angle": { +
|
||||
"type": "number", +
|
||||
"default": 0, +
|
||||
"maximum": 3.14159, +
|
||||
"minimum": -3.14159, +
|
||||
"description": "Target angle in radians" +
|
||||
}, +
|
||||
"speed": { +
|
||||
"type": "number", +
|
||||
"default": 0.2, +
|
||||
"maximum": 1, +
|
||||
"minimum": 0.01, +
|
||||
"description": "Movement speed (fraction of max)" +
|
||||
}, +
|
||||
"joint_name": { +
|
||||
"enum": [ +
|
||||
"HeadYaw", +
|
||||
"HeadPitch", +
|
||||
"LShoulderPitch", +
|
||||
"LShoulderRoll", +
|
||||
"LElbowYaw", +
|
||||
"LElbowRoll", +
|
||||
"LWristYaw", +
|
||||
"RShoulderPitch", +
|
||||
"RShoulderRoll", +
|
||||
"RElbowYaw", +
|
||||
"RElbowRoll", +
|
||||
"RWristYaw", +
|
||||
"LHipYawPitch", +
|
||||
"LHipRoll", +
|
||||
"LHipPitch", +
|
||||
"LKneePitch", +
|
||||
"LAnklePitch", +
|
||||
"LAnkleRoll", +
|
||||
"RHipRoll", +
|
||||
"RHipPitch", +
|
||||
"RKneePitch", +
|
||||
"RAnklePitch", +
|
||||
"RAnkleRoll" +
|
||||
], +
|
||||
"type": "string", +
|
||||
"default": "HeadYaw", +
|
||||
"description": "Joint to control" +
|
||||
} +
|
||||
} +
|
||||
} +
|
||||
}, +
|
||||
{ +
|
||||
"id": "turn_head", +
|
||||
"icon": "rotate-ccw", +
|
||||
"name": "Turn Head", +
|
||||
"ros2": { +
|
||||
"topic": "/joint_angles", +
|
||||
"messageType": "naoqi_bridge_msgs/msg/JointAnglesWithSpeed", +
|
||||
"payloadMapping": { +
|
||||
"type": "transform", +
|
||||
"transformFn": "transformToHeadMovement" +
|
||||
} +
|
||||
}, +
|
||||
"timeout": 8000, +
|
||||
"category": "movement", +
|
||||
"retryable": true, +
|
||||
"description": "Control head orientation", +
|
||||
"parameterSchema": { +
|
||||
"type": "object", +
|
||||
"required": [ +
|
||||
"yaw", +
|
||||
"pitch" +
|
||||
], +
|
||||
"properties": { +
|
||||
"yaw": { +
|
||||
"type": "number", +
|
||||
"default": 0, +
|
||||
"maximum": 2.0857, +
|
||||
"minimum": -2.0857, +
|
||||
"description": "Head yaw angle in radians (left-right)" +
|
||||
}, +
|
||||
"pitch": { +
|
||||
"type": "number", +
|
||||
"default": 0, +
|
||||
"maximum": 0.5149, +
|
||||
"minimum": -0.672, +
|
||||
"description": "Head pitch angle in radians (up-down)" +
|
||||
}, +
|
||||
"speed": { +
|
||||
"type": "number", +
|
||||
"default": 0.3, +
|
||||
"maximum": 1, +
|
||||
"minimum": 0.1, +
|
||||
"description": "Movement speed fraction" +
|
||||
} +
|
||||
} +
|
||||
} +
|
||||
}, +
|
||||
{ +
|
||||
"id": "get_camera_image", +
|
||||
"icon": "camera", +
|
||||
"name": "Get Camera Image", +
|
||||
"ros2": { +
|
||||
"qos": { +
|
||||
"durability": "volatile", +
|
||||
"reliability": "reliable" +
|
||||
}, +
|
||||
"topic": "/camera/{camera}/image_raw", +
|
||||
"messageType": "sensor_msgs/msg/Image", +
|
||||
"payloadMapping": { +
|
||||
"type": "transform", +
|
||||
"transformFn": "getCameraImage" +
|
||||
} +
|
||||
}, +
|
||||
"timeout": 5000, +
|
||||
"category": "sensors", +
|
||||
"retryable": true, +
|
||||
"description": "Capture image from front or bottom camera", +
|
||||
"parameterSchema": { +
|
||||
"type": "object", +
|
||||
"required": [ +
|
||||
"camera" +
|
||||
], +
|
||||
"properties": { +
|
||||
"camera": { +
|
||||
"enum": [ +
|
||||
"front", +
|
||||
"bottom" +
|
||||
], +
|
||||
"type": "string", +
|
||||
"default": "front", +
|
||||
"description": "Camera to use" +
|
||||
} +
|
||||
} +
|
||||
} +
|
||||
}, +
|
||||
{ +
|
||||
"id": "get_joint_states", +
|
||||
"icon": "activity", +
|
||||
"name": "Get Joint States", +
|
||||
"ros2": { +
|
||||
"qos": { +
|
||||
"durability": "volatile", +
|
||||
"reliability": "reliable" +
|
||||
}, +
|
||||
"topic": "/joint_states", +
|
||||
"messageType": "sensor_msgs/msg/JointState", +
|
||||
"payloadMapping": { +
|
||||
"type": "transform", +
|
||||
"transformFn": "getJointStates" +
|
||||
} +
|
||||
}, +
|
||||
"timeout": 3000, +
|
||||
"category": "sensors", +
|
||||
"retryable": true, +
|
||||
"description": "Read current joint positions and velocities", +
|
||||
"parameterSchema": { +
|
||||
"type": "object", +
|
||||
"required": [ +
|
||||
], +
|
||||
"properties": { +
|
||||
} +
|
||||
} +
|
||||
}, +
|
||||
{ +
|
||||
"id": "get_imu_data", +
|
||||
"icon": "compass", +
|
||||
"name": "Get IMU Data", +
|
||||
"ros2": { +
|
||||
"qos": { +
|
||||
"durability": "volatile", +
|
||||
"reliability": "reliable" +
|
||||
}, +
|
||||
"topic": "/imu/torso", +
|
||||
"messageType": "sensor_msgs/msg/Imu", +
|
||||
"payloadMapping": { +
|
||||
"type": "transform", +
|
||||
"transformFn": "getImuData" +
|
||||
} +
|
||||
}, +
|
||||
"timeout": 3000, +
|
||||
"category": "sensors", +
|
||||
"retryable": true, +
|
||||
"description": "Read inertial measurement unit data from torso", +
|
||||
"parameterSchema": { +
|
||||
"type": "object", +
|
||||
"required": [ +
|
||||
], +
|
||||
"properties": { +
|
||||
} +
|
||||
} +
|
||||
}, +
|
||||
{ +
|
||||
"id": "get_bumper_status", +
|
||||
"icon": "zap", +
|
||||
"name": "Get Bumper Status", +
|
||||
"ros2": { +
|
||||
"topic": "/bumper", +
|
||||
"messageType": "naoqi_bridge_msgs/msg/Bumper", +
|
||||
"payloadMapping": { +
|
||||
"type": "transform", +
|
||||
"transformFn": "getBumperStatus" +
|
||||
} +
|
||||
}, +
|
||||
"timeout": 3000, +
|
||||
"category": "sensors", +
|
||||
"retryable": true, +
|
||||
"description": "Read foot bumper contact sensors", +
|
||||
"parameterSchema": { +
|
||||
"type": "object", +
|
||||
"required": [ +
|
||||
], +
|
||||
"properties": { +
|
||||
} +
|
||||
} +
|
||||
}, +
|
||||
{ +
|
||||
"id": "get_touch_sensors", +
|
||||
"icon": "hand", +
|
||||
"name": "Get Touch Sensors", +
|
||||
"ros2": { +
|
||||
"topic": "/{sensor_type}_touch", +
|
||||
"messageType": "naoqi_bridge_msgs/msg/HandTouch", +
|
||||
"payloadMapping": { +
|
||||
"type": "transform", +
|
||||
"transformFn": "getTouchSensors" +
|
||||
} +
|
||||
}, +
|
||||
"timeout": 3000, +
|
||||
"category": "sensors", +
|
||||
"retryable": true, +
|
||||
"description": "Read hand and head touch sensor states", +
|
||||
"parameterSchema": { +
|
||||
"type": "object", +
|
||||
"required": [ +
|
||||
"sensor_type" +
|
||||
], +
|
||||
"properties": { +
|
||||
"sensor_type": { +
|
||||
"enum": [ +
|
||||
"hand", +
|
||||
"head" +
|
||||
], +
|
||||
"type": "string", +
|
||||
"default": "hand", +
|
||||
"description": "Touch sensor type to read" +
|
||||
} +
|
||||
} +
|
||||
} +
|
||||
}, +
|
||||
{ +
|
||||
"id": "get_sonar_range", +
|
||||
"icon": "radio", +
|
||||
"name": "Get Sonar Range", +
|
||||
"ros2": { +
|
||||
"topic": "/sonar/{sensor}", +
|
||||
"messageType": "sensor_msgs/msg/Range", +
|
||||
"payloadMapping": { +
|
||||
"type": "transform", +
|
||||
"transformFn": "getSonarRange" +
|
||||
} +
|
||||
}, +
|
||||
"timeout": 3000, +
|
||||
"category": "sensors", +
|
||||
"retryable": true, +
|
||||
"description": "Read ultrasonic range sensor data", +
|
||||
"parameterSchema": { +
|
||||
"type": "object", +
|
||||
"required": [ +
|
||||
"sensor" +
|
||||
], +
|
||||
"properties": { +
|
||||
"sensor": { +
|
||||
"enum": [ +
|
||||
"left", +
|
||||
"right", +
|
||||
"both" +
|
||||
], +
|
||||
"type": "string", +
|
||||
"default": "both", +
|
||||
"description": "Sonar sensor to read" +
|
||||
} +
|
||||
} +
|
||||
} +
|
||||
}, +
|
||||
{ +
|
||||
"id": "get_robot_info", +
|
||||
"icon": "info", +
|
||||
"name": "Get Robot Info", +
|
||||
"ros2": { +
|
||||
"topic": "/info", +
|
||||
"messageType": "naoqi_bridge_msgs/msg/RobotInfo", +
|
||||
"payloadMapping": { +
|
||||
"type": "transform", +
|
||||
"transformFn": "getRobotInfo" +
|
||||
} +
|
||||
}, +
|
||||
"timeout": 3000, +
|
||||
"category": "sensors", +
|
||||
"retryable": true, +
|
||||
"description": "Read general robot information and status", +
|
||||
"parameterSchema": { +
|
||||
"type": "object", +
|
||||
"required": [ +
|
||||
], +
|
||||
"properties": { +
|
||||
} +
|
||||
} +
|
||||
} +
|
||||
]
|
||||
(1 row)
|
||||
|
||||
Reference in New Issue
Block a user