RosMessage - PartnerRobotChallengeVirtual/human-navigation-ros GitHub Wiki

ROS Messages

Operate HSR

Operate a robot by subscribing and publishing several ROS topics.
For details please see the following wiki.
https://github.com/PartnerRobotChallengeVirtual/common-unity/wiki/RosTopics

Messages from/to the moderator

Sending and receiving of event messages between the moderator and the robot are performed using original ROS messages (human_navigation/HumanNaviMsg).

[human_navigation/HumanNaviMsg]
string message
string detail
No Topic Name Direction Message Type Description
1 /human_navigation/message/to_robot SIGVerse ⇒ human_navigation/HumanNaviMsg Event message from Robot to Avatar
2 /human_navigation/message/to_moderator ROS ⇒ human_navigation/HumanNaviMsg Event message from Avatar to Robot

Note: SIGVerse ⇒: SIGVerse to User's ROS Node, ROS ⇒: User's ROS Node to SIGVerse

For details of event messages please see the following table.

No Event Direction message detail
1 Send Are_you_ready? Moderator ⇒ Are_you_ready? (blank)
2 Send I_am_ready Robot ⇒ I_am_ready (blank)
3 Request of guidance message Moderator ⇒ Guidance_request (blank)
4 End of session Robot ⇒ Task_finished (blank)
5 Go to next session Moderator ⇒ Go_to_next_session (blank)
6 Send Give_up Robot ⇒ Give_up (blank)
7 Give up Moderator ⇒ Task_failed Give_up
8 Time is up Moderator ⇒ Task_failed Time_is_up
9 Succeeded the task Moderator ⇒ Task_succeeded (blank)
10 All tasks finished Moderator ⇒ Mission_complete (blank)
11 Request of avatar status Robot ⇒ Get_avatar_status (blank)
12 Request of object status Robot ⇒ Get_object_status (blank)
13 Request of speech state Robot ⇒ Get_speech_state (blank)
14 TTS is running Moderator ⇒ Speech_state Is_speaking
15 TTS is not running Moderator ⇒ Speech_state Is_not_speaking
16 TTS started an utterance Moderator ⇒ Speech_result Started
17 TTS finished an utterance Moderator ⇒ Speech_result Finished

Note: Moderator ⇒: Moderator to Robot, Robot ⇒: Robot to Moderator

Task information

The task information is sent from the moderator. The environment, objects to manipulate, and the destination to place the target object are included in the task information.

No Topic Name Direction Message Type Description
1 /human_navigation/message/task_info SIGVerse ⇒ human_navigation/HumanNaviTaskInfo Information needed to perform the task

Note: SIGVerse ⇒: SIGVerse to User's ROS Node, ROS ⇒: User's ROS Node to SIGVerse

[human_navigation/HumanNaviTaskInfo]
string environment_id
HumanNaviObjectInfo target_object
HumanNaviDestination destination
HumanNaviObjectInfo[] non_target_objects
HumanNaviObjectInfo[] furniture
No Name Description
1 environment_id Room layout ID
2 target_object Label, position, and orientation of the target object
3 destination Anchor position, orientation, and size of designated area to place the target object
4 non_target_objects Label, position, and orientation of objects excepting the target object
5 furniture Label, position, and orientation of furniture objects
[human_navigation/HumanNaviObjectInfo]
string name
geometry_msgs/Point position
geometry_msgs/Quaternion orientation
No Name Description
1 name Label name of the object
2 position Position of the object in the ROS coordinate system
3 orientation orientation of the object in the ROS coordinate system
[human_navigation/HumanNaviDestination]
geometry_msgs/Point position
geometry_msgs/Quaternion orientation
geometry_msgs/Point size
No Name Description
1 position Anchor position of the destination in the ROS coordinate system
2 orientation Orientation of the destination in the ROS coordinate system
3 size Area size of the destination

Guidance message

The natural language instructions are provided audibly and visually to the test subject by sending the guidance message. The number of characters used in the instruction should not exceed 400.
Although the size of characters in message board effect in Unity is automatically adjusted according to the number of characters, please be careful the size of a text area in the message board effect if you send long sentences with a lot of large characters (i.e., capital letters).
The robot can give instructions at any time.

No Topic Name Direction Message Type Description
1 /human_navigation/message/guidance_message Robot ⇒ human_navigation/HumanNaviGuidanceMsg Instruction statement and display target

Note: SIGVerse ⇒: SIGVerse to User's ROS Node, ROS ⇒: User's ROS Node to SIGVerse

[human_navigation/HumanNaviGuidanceMsg]
string message
string display_type
string source_language
string target_language
No Name Description
1 message Instruction statement by natural language
2 display_type Target message boards to show the instruction statement for the test subject "All" : instruction is shown above the robot and in the HMD of the test subject "RobotOnly" : instruction is shown only above the robot "AvatarOnly" : instruction is shown only in the HMD "None" : instructions are provided to the test subject only verbally
3 source_language Blank. If you want to translate, set ISO-639-1 language code (e.g. "en").
4 target_language Blank. If you want to translate, set ISO-639-1 language code (e.g. "ja").

Avatar status

The robot can receive the current status of the avatar by sending "Get_avatar_status" message to the moderator.

[human_navigation/HumanNaviAvatarStatus]
geometry_msgs/Pose head
geometry_msgs/Pose body
geometry_msgs/Pose left_hand
geometry_msgs/Pose right_hand
string object_in_left_hand
string object_in_right_hand
bool is_target_object_in_left_hand
bool is_target_object_in_right_hand
No Name Description
1 head Position and orientation of Avatar's head
2 body Position and orientation of Avatar's chest (EthanSpine2)
2 left_hand Position and orientation of Avatar's left hand
3 right_hand Position and orientation of Avatar's right hand
3 object_in_left_hand Label of the object in the left hand
3 object_in_right_hand Label of the obkect in the right hand
3 is_target_object_in_left_hand Whether the object in left hand is the target object
3 is_target_object_in_right_hand Whether the object in right hand is the target object

Object status

The robot can receive the current status of the objects by sending "Get_object_status" message to the moderator.

HumanNaviObjectInfo target_object
HumanNaviObjectInfo[] non_target_objects
No Name Description
1 target_object Label, position, and orientation of the target object
2 non_target_objects Label, position, and orientation of objects excepting the target object