mirror of
https://github.com/soconnor0919/robot-plugins.git
synced 2026-02-04 23:46:33 -05:00
Update NAO6 ROS2 plugin definition
This commit is contained in:
@@ -8,20 +8,17 @@
|
|||||||
"hriStudioVersion": ">=0.1.0",
|
"hriStudioVersion": ">=0.1.0",
|
||||||
"trustLevel": "verified",
|
"trustLevel": "verified",
|
||||||
"category": "humanoid-robot",
|
"category": "humanoid-robot",
|
||||||
|
|
||||||
"manufacturer": {
|
"manufacturer": {
|
||||||
"name": "SoftBank Robotics",
|
"name": "SoftBank Robotics",
|
||||||
"website": "https://www.softbankrobotics.com/",
|
"website": "https://www.softbankrobotics.com/",
|
||||||
"support": "https://developer.softbankrobotics.com/"
|
"support": "https://developer.softbankrobotics.com/"
|
||||||
},
|
},
|
||||||
|
|
||||||
"documentation": {
|
"documentation": {
|
||||||
"mainUrl": "https://developer.softbankrobotics.com/nao6/nao-documentation",
|
"mainUrl": "https://developer.softbankrobotics.com/nao6/nao-documentation",
|
||||||
"apiReference": "https://github.com/ros-naoqi/naoqi_driver2",
|
"apiReference": "https://github.com/ros-naoqi/naoqi_driver2",
|
||||||
"wikiUrl": "https://en.wikipedia.org/wiki/Nao_(robot)",
|
"wikiUrl": "https://en.wikipedia.org/wiki/Nao_(robot)",
|
||||||
"videoUrl": "https://www.youtube.com/watch?v=nNbj2G3GmAg"
|
"videoUrl": "https://www.youtube.com/watch?v=nNbj2G3GmAg"
|
||||||
},
|
},
|
||||||
|
|
||||||
"assets": {
|
"assets": {
|
||||||
"thumbnailUrl": "assets/nao6-ros2/thumb.png",
|
"thumbnailUrl": "assets/nao6-ros2/thumb.png",
|
||||||
"images": {
|
"images": {
|
||||||
@@ -38,7 +35,6 @@
|
|||||||
"url": "https://github.com/ros-naoqi/nao_robot/raw/master/nao_description/urdf/nao.urdf"
|
"url": "https://github.com/ros-naoqi/nao_robot/raw/master/nao_description/urdf/nao.urdf"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
"specs": {
|
"specs": {
|
||||||
"dimensions": {
|
"dimensions": {
|
||||||
"length": 0.275,
|
"length": 0.275,
|
||||||
@@ -60,28 +56,26 @@
|
|||||||
"maxSpeed": 0.55,
|
"maxSpeed": 0.55,
|
||||||
"batteryLife": 1.5
|
"batteryLife": 1.5
|
||||||
},
|
},
|
||||||
|
|
||||||
"ros2Config": {
|
"ros2Config": {
|
||||||
"namespace": "nao",
|
"namespace": "nao",
|
||||||
"nodePrefix": "hri_studio",
|
"nodePrefix": "hri_studio",
|
||||||
"defaultTopics": {
|
"defaultTopics": {
|
||||||
"cmd_vel": "/cmd_vel",
|
"cmd_vel": "/cmd_vel",
|
||||||
"odom": "/odom",
|
"odom": "/odom",
|
||||||
"joint_states": "/joint_states",
|
"joint_states": "/naoqi_driver/joint_states",
|
||||||
"joint_angles": "/joint_angles",
|
"joint_angles": "/joint_angles",
|
||||||
"camera_front": "/camera/front/image_raw",
|
"camera_front": "/naoqi_driver/camera/front/image_raw",
|
||||||
"camera_bottom": "/camera/bottom/image_raw",
|
"camera_bottom": "/naoqi_driver/camera/bottom/image_raw",
|
||||||
"imu": "/imu/torso",
|
"imu": "/naoqi_driver/imu/torso",
|
||||||
"speech": "/speech",
|
"speech": "/speech",
|
||||||
"bumper": "/bumper",
|
"bumper": "/naoqi_driver/bumper",
|
||||||
"hand_touch": "/hand_touch",
|
"hand_touch": "/naoqi_driver/hand_touch",
|
||||||
"head_touch": "/head_touch",
|
"head_touch": "/naoqi_driver/head_touch",
|
||||||
"sonar_left": "/sonar/left",
|
"sonar_left": "/naoqi_driver/sonar/left",
|
||||||
"sonar_right": "/sonar/right",
|
"sonar_right": "/naoqi_driver/sonar/right",
|
||||||
"info": "/info"
|
"info": "/naoqi_driver/info"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
"actions": [
|
"actions": [
|
||||||
{
|
{
|
||||||
"id": "walk_velocity",
|
"id": "walk_velocity",
|
||||||
@@ -109,7 +103,10 @@
|
|||||||
"description": "Angular velocity in rad/s"
|
"description": "Angular velocity in rad/s"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"required": ["linear", "angular"]
|
"required": [
|
||||||
|
"linear",
|
||||||
|
"angular"
|
||||||
|
]
|
||||||
},
|
},
|
||||||
"ros2": {
|
"ros2": {
|
||||||
"messageType": "geometry_msgs/msg/Twist",
|
"messageType": "geometry_msgs/msg/Twist",
|
||||||
@@ -152,7 +149,9 @@
|
|||||||
"description": "Duration to walk in seconds (0 = indefinite)"
|
"description": "Duration to walk in seconds (0 = indefinite)"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"required": ["speed"]
|
"required": [
|
||||||
|
"speed"
|
||||||
|
]
|
||||||
},
|
},
|
||||||
"ros2": {
|
"ros2": {
|
||||||
"messageType": "geometry_msgs/msg/Twist",
|
"messageType": "geometry_msgs/msg/Twist",
|
||||||
@@ -160,8 +159,16 @@
|
|||||||
"payloadMapping": {
|
"payloadMapping": {
|
||||||
"type": "static",
|
"type": "static",
|
||||||
"payload": {
|
"payload": {
|
||||||
"linear": { "x": "{{speed}}", "y": 0, "z": 0 },
|
"linear": {
|
||||||
"angular": { "x": 0, "y": 0, "z": 0 }
|
"x": "{{speed}}",
|
||||||
|
"y": 0,
|
||||||
|
"z": 0
|
||||||
|
},
|
||||||
|
"angular": {
|
||||||
|
"x": 0,
|
||||||
|
"y": 0,
|
||||||
|
"z": 0
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -192,7 +199,9 @@
|
|||||||
"description": "Duration to walk in seconds (0 = indefinite)"
|
"description": "Duration to walk in seconds (0 = indefinite)"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"required": ["speed"]
|
"required": [
|
||||||
|
"speed"
|
||||||
|
]
|
||||||
},
|
},
|
||||||
"ros2": {
|
"ros2": {
|
||||||
"messageType": "geometry_msgs/msg/Twist",
|
"messageType": "geometry_msgs/msg/Twist",
|
||||||
@@ -200,8 +209,16 @@
|
|||||||
"payloadMapping": {
|
"payloadMapping": {
|
||||||
"type": "static",
|
"type": "static",
|
||||||
"payload": {
|
"payload": {
|
||||||
"linear": { "x": "-{{speed}}", "y": 0, "z": 0 },
|
"linear": {
|
||||||
"angular": { "x": 0, "y": 0, "z": 0 }
|
"x": "-{{speed}}",
|
||||||
|
"y": 0,
|
||||||
|
"z": 0
|
||||||
|
},
|
||||||
|
"angular": {
|
||||||
|
"x": 0,
|
||||||
|
"y": 0,
|
||||||
|
"z": 0
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -232,7 +249,9 @@
|
|||||||
"description": "Duration to turn in seconds (0 = indefinite)"
|
"description": "Duration to turn in seconds (0 = indefinite)"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"required": ["speed"]
|
"required": [
|
||||||
|
"speed"
|
||||||
|
]
|
||||||
},
|
},
|
||||||
"ros2": {
|
"ros2": {
|
||||||
"messageType": "geometry_msgs/msg/Twist",
|
"messageType": "geometry_msgs/msg/Twist",
|
||||||
@@ -240,8 +259,16 @@
|
|||||||
"payloadMapping": {
|
"payloadMapping": {
|
||||||
"type": "static",
|
"type": "static",
|
||||||
"payload": {
|
"payload": {
|
||||||
"linear": { "x": 0, "y": 0, "z": 0 },
|
"linear": {
|
||||||
"angular": { "x": 0, "y": 0, "z": "{{speed}}" }
|
"x": 0,
|
||||||
|
"y": 0,
|
||||||
|
"z": 0
|
||||||
|
},
|
||||||
|
"angular": {
|
||||||
|
"x": 0,
|
||||||
|
"y": 0,
|
||||||
|
"z": "{{speed}}"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -272,7 +299,9 @@
|
|||||||
"description": "Duration to turn in seconds (0 = indefinite)"
|
"description": "Duration to turn in seconds (0 = indefinite)"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"required": ["speed"]
|
"required": [
|
||||||
|
"speed"
|
||||||
|
]
|
||||||
},
|
},
|
||||||
"ros2": {
|
"ros2": {
|
||||||
"messageType": "geometry_msgs/msg/Twist",
|
"messageType": "geometry_msgs/msg/Twist",
|
||||||
@@ -280,8 +309,16 @@
|
|||||||
"payloadMapping": {
|
"payloadMapping": {
|
||||||
"type": "static",
|
"type": "static",
|
||||||
"payload": {
|
"payload": {
|
||||||
"linear": { "x": 0, "y": 0, "z": 0 },
|
"linear": {
|
||||||
"angular": { "x": 0, "y": 0, "z": "-{{speed}}" }
|
"x": 0,
|
||||||
|
"y": 0,
|
||||||
|
"z": 0
|
||||||
|
},
|
||||||
|
"angular": {
|
||||||
|
"x": 0,
|
||||||
|
"y": 0,
|
||||||
|
"z": "-{{speed}}"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -305,8 +342,16 @@
|
|||||||
"payloadMapping": {
|
"payloadMapping": {
|
||||||
"type": "static",
|
"type": "static",
|
||||||
"payload": {
|
"payload": {
|
||||||
"linear": { "x": 0.0, "y": 0.0, "z": 0.0 },
|
"linear": {
|
||||||
"angular": { "x": 0.0, "y": 0.0, "z": 0.0 }
|
"x": 0.0,
|
||||||
|
"y": 0.0,
|
||||||
|
"z": 0.0
|
||||||
|
},
|
||||||
|
"angular": {
|
||||||
|
"x": 0.0,
|
||||||
|
"y": 0.0,
|
||||||
|
"z": 0.0
|
||||||
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"qos": {
|
"qos": {
|
||||||
@@ -334,7 +379,9 @@
|
|||||||
"description": "Text to speak"
|
"description": "Text to speak"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"required": ["text"]
|
"required": [
|
||||||
|
"text"
|
||||||
|
]
|
||||||
},
|
},
|
||||||
"ros2": {
|
"ros2": {
|
||||||
"messageType": "std_msgs/msg/String",
|
"messageType": "std_msgs/msg/String",
|
||||||
@@ -367,7 +414,13 @@
|
|||||||
},
|
},
|
||||||
"emotion": {
|
"emotion": {
|
||||||
"type": "string",
|
"type": "string",
|
||||||
"enum": ["neutral", "happy", "sad", "excited", "calm"],
|
"enum": [
|
||||||
|
"neutral",
|
||||||
|
"happy",
|
||||||
|
"sad",
|
||||||
|
"excited",
|
||||||
|
"calm"
|
||||||
|
],
|
||||||
"default": "neutral",
|
"default": "neutral",
|
||||||
"description": "Emotional tone for speech"
|
"description": "Emotional tone for speech"
|
||||||
},
|
},
|
||||||
@@ -379,7 +432,9 @@
|
|||||||
"description": "Speech speed multiplier"
|
"description": "Speech speed multiplier"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"required": ["text"]
|
"required": [
|
||||||
|
"text"
|
||||||
|
]
|
||||||
},
|
},
|
||||||
"ros2": {
|
"ros2": {
|
||||||
"messageType": "std_msgs/msg/String",
|
"messageType": "std_msgs/msg/String",
|
||||||
@@ -411,7 +466,9 @@
|
|||||||
"description": "Volume level (0.0 = silent, 1.0 = maximum)"
|
"description": "Volume level (0.0 = silent, 1.0 = maximum)"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"required": ["volume"]
|
"required": [
|
||||||
|
"volume"
|
||||||
|
]
|
||||||
},
|
},
|
||||||
"ros2": {
|
"ros2": {
|
||||||
"messageType": "std_msgs/msg/Float32",
|
"messageType": "std_msgs/msg/Float32",
|
||||||
@@ -452,7 +509,9 @@
|
|||||||
"description": "Speech language"
|
"description": "Speech language"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"required": ["language"]
|
"required": [
|
||||||
|
"language"
|
||||||
|
]
|
||||||
},
|
},
|
||||||
"ros2": {
|
"ros2": {
|
||||||
"messageType": "std_msgs/msg/String",
|
"messageType": "std_msgs/msg/String",
|
||||||
@@ -498,7 +557,10 @@
|
|||||||
"description": "Movement speed (0.1 = slow, 1.0 = fast)"
|
"description": "Movement speed (0.1 = slow, 1.0 = fast)"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"required": ["yaw", "pitch"]
|
"required": [
|
||||||
|
"yaw",
|
||||||
|
"pitch"
|
||||||
|
]
|
||||||
},
|
},
|
||||||
"ros2": {
|
"ros2": {
|
||||||
"messageType": "naoqi_bridge_msgs/msg/JointAnglesWithSpeed",
|
"messageType": "naoqi_bridge_msgs/msg/JointAnglesWithSpeed",
|
||||||
@@ -506,8 +568,14 @@
|
|||||||
"payloadMapping": {
|
"payloadMapping": {
|
||||||
"type": "static",
|
"type": "static",
|
||||||
"payload": {
|
"payload": {
|
||||||
"joint_names": ["HeadYaw", "HeadPitch"],
|
"joint_names": [
|
||||||
"joint_angles": ["{{yaw}}", "{{pitch}}"],
|
"HeadYaw",
|
||||||
|
"HeadPitch"
|
||||||
|
],
|
||||||
|
"joint_angles": [
|
||||||
|
"{{yaw}}",
|
||||||
|
"{{pitch}}"
|
||||||
|
],
|
||||||
"speed": "{{speed}}"
|
"speed": "{{speed}}"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -526,7 +594,10 @@
|
|||||||
"properties": {
|
"properties": {
|
||||||
"arm": {
|
"arm": {
|
||||||
"type": "string",
|
"type": "string",
|
||||||
"enum": ["left", "right"],
|
"enum": [
|
||||||
|
"left",
|
||||||
|
"right"
|
||||||
|
],
|
||||||
"default": "right",
|
"default": "right",
|
||||||
"description": "Which arm to control"
|
"description": "Which arm to control"
|
||||||
},
|
},
|
||||||
@@ -653,7 +724,10 @@
|
|||||||
"description": "Movement speed (fraction of max)"
|
"description": "Movement speed (fraction of max)"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"required": ["joint_name", "angle"]
|
"required": [
|
||||||
|
"joint_name",
|
||||||
|
"angle"
|
||||||
|
]
|
||||||
},
|
},
|
||||||
"ros2": {
|
"ros2": {
|
||||||
"messageType": "naoqi_bridge_msgs/msg/JointAnglesWithSpeed",
|
"messageType": "naoqi_bridge_msgs/msg/JointAnglesWithSpeed",
|
||||||
@@ -697,7 +771,10 @@
|
|||||||
"description": "Movement speed fraction"
|
"description": "Movement speed fraction"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"required": ["yaw", "pitch"]
|
"required": [
|
||||||
|
"yaw",
|
||||||
|
"pitch"
|
||||||
|
]
|
||||||
},
|
},
|
||||||
"ros2": {
|
"ros2": {
|
||||||
"messageType": "naoqi_bridge_msgs/msg/JointAnglesWithSpeed",
|
"messageType": "naoqi_bridge_msgs/msg/JointAnglesWithSpeed",
|
||||||
@@ -721,16 +798,21 @@
|
|||||||
"properties": {
|
"properties": {
|
||||||
"camera": {
|
"camera": {
|
||||||
"type": "string",
|
"type": "string",
|
||||||
"enum": ["front", "bottom"],
|
"enum": [
|
||||||
|
"front",
|
||||||
|
"bottom"
|
||||||
|
],
|
||||||
"default": "front",
|
"default": "front",
|
||||||
"description": "Camera to use"
|
"description": "Camera to use"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"required": ["camera"]
|
"required": [
|
||||||
|
"camera"
|
||||||
|
]
|
||||||
},
|
},
|
||||||
"ros2": {
|
"ros2": {
|
||||||
"messageType": "sensor_msgs/msg/Image",
|
"messageType": "sensor_msgs/msg/Image",
|
||||||
"topic": "/camera/{camera}/image_raw",
|
"topic": "/naoqi_driver/camera/{camera}/image_raw",
|
||||||
"payloadMapping": {
|
"payloadMapping": {
|
||||||
"type": "transform",
|
"type": "transform",
|
||||||
"transformFn": "getCameraImage"
|
"transformFn": "getCameraImage"
|
||||||
@@ -756,7 +838,7 @@
|
|||||||
},
|
},
|
||||||
"ros2": {
|
"ros2": {
|
||||||
"messageType": "sensor_msgs/msg/JointState",
|
"messageType": "sensor_msgs/msg/JointState",
|
||||||
"topic": "/joint_states",
|
"topic": "/naoqi_driver/joint_states",
|
||||||
"payloadMapping": {
|
"payloadMapping": {
|
||||||
"type": "transform",
|
"type": "transform",
|
||||||
"transformFn": "getJointStates"
|
"transformFn": "getJointStates"
|
||||||
@@ -782,7 +864,7 @@
|
|||||||
},
|
},
|
||||||
"ros2": {
|
"ros2": {
|
||||||
"messageType": "sensor_msgs/msg/Imu",
|
"messageType": "sensor_msgs/msg/Imu",
|
||||||
"topic": "/imu/torso",
|
"topic": "/naoqi_driver/imu/torso",
|
||||||
"payloadMapping": {
|
"payloadMapping": {
|
||||||
"type": "transform",
|
"type": "transform",
|
||||||
"transformFn": "getImuData"
|
"transformFn": "getImuData"
|
||||||
@@ -808,7 +890,7 @@
|
|||||||
},
|
},
|
||||||
"ros2": {
|
"ros2": {
|
||||||
"messageType": "naoqi_bridge_msgs/msg/Bumper",
|
"messageType": "naoqi_bridge_msgs/msg/Bumper",
|
||||||
"topic": "/bumper",
|
"topic": "/naoqi_driver/bumper",
|
||||||
"payloadMapping": {
|
"payloadMapping": {
|
||||||
"type": "transform",
|
"type": "transform",
|
||||||
"transformFn": "getBumperStatus"
|
"transformFn": "getBumperStatus"
|
||||||
@@ -828,16 +910,21 @@
|
|||||||
"properties": {
|
"properties": {
|
||||||
"sensor_type": {
|
"sensor_type": {
|
||||||
"type": "string",
|
"type": "string",
|
||||||
"enum": ["hand", "head"],
|
"enum": [
|
||||||
|
"hand",
|
||||||
|
"head"
|
||||||
|
],
|
||||||
"default": "hand",
|
"default": "hand",
|
||||||
"description": "Touch sensor type to read"
|
"description": "Touch sensor type to read"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"required": ["sensor_type"]
|
"required": [
|
||||||
|
"sensor_type"
|
||||||
|
]
|
||||||
},
|
},
|
||||||
"ros2": {
|
"ros2": {
|
||||||
"messageType": "naoqi_bridge_msgs/msg/HandTouch",
|
"messageType": "naoqi_bridge_msgs/msg/HandTouch",
|
||||||
"topic": "/{sensor_type}_touch",
|
"topic": "/naoqi_driver/{sensor_type}_touch",
|
||||||
"payloadMapping": {
|
"payloadMapping": {
|
||||||
"type": "transform",
|
"type": "transform",
|
||||||
"transformFn": "getTouchSensors"
|
"transformFn": "getTouchSensors"
|
||||||
@@ -857,16 +944,22 @@
|
|||||||
"properties": {
|
"properties": {
|
||||||
"sensor": {
|
"sensor": {
|
||||||
"type": "string",
|
"type": "string",
|
||||||
"enum": ["left", "right", "both"],
|
"enum": [
|
||||||
|
"left",
|
||||||
|
"right",
|
||||||
|
"both"
|
||||||
|
],
|
||||||
"default": "both",
|
"default": "both",
|
||||||
"description": "Sonar sensor to read"
|
"description": "Sonar sensor to read"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"required": ["sensor"]
|
"required": [
|
||||||
|
"sensor"
|
||||||
|
]
|
||||||
},
|
},
|
||||||
"ros2": {
|
"ros2": {
|
||||||
"messageType": "sensor_msgs/msg/Range",
|
"messageType": "sensor_msgs/msg/Range",
|
||||||
"topic": "/sonar/{sensor}",
|
"topic": "/naoqi_driver/sonar/{sensor}",
|
||||||
"payloadMapping": {
|
"payloadMapping": {
|
||||||
"type": "transform",
|
"type": "transform",
|
||||||
"transformFn": "getSonarRange"
|
"transformFn": "getSonarRange"
|
||||||
@@ -888,7 +981,7 @@
|
|||||||
},
|
},
|
||||||
"ros2": {
|
"ros2": {
|
||||||
"messageType": "naoqi_bridge_msgs/msg/RobotInfo",
|
"messageType": "naoqi_bridge_msgs/msg/RobotInfo",
|
||||||
"topic": "/info",
|
"topic": "/naoqi_driver/info",
|
||||||
"payloadMapping": {
|
"payloadMapping": {
|
||||||
"type": "transform",
|
"type": "transform",
|
||||||
"transformFn": "getRobotInfo"
|
"transformFn": "getRobotInfo"
|
||||||
@@ -896,4 +989,4 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user