RosMessage - FCSCinCyberSpace/icra2024-unity GitHub Wiki

ROS Messages

Conversation with Customer

Messages used to interact between the robot and the customer.

Message Definition

[interactive_customer_service/Conversation]
string type
string detail

The type is a fixed string. One of several different strings will be set.

Topic List

No Topic Name Direction Description
1 /interactive_customer_service/
message/customer
Customer ⇒ Robot Message from the customer to the robot.
2 /interactive_customer_service/
message/robot
Robot ⇒ Customer Message from the robot to the customer.

Event List

For details on events, please refer to the following table.

No Event Direction type detail Description
1 Send Are_you_ready? Customer ⇒ "Are_you_ready?" (blank) This is sent at the start of the session and is sent periodically until I_am_ready is returned.
2 Send I_am_ready Robot ⇒ "I_am_ready" (blank) Send when ready.
3 Message from Customer Customer ⇒ "customer_message" free text Set a free speech text (e.g., "I want a canned coffee.
I think it was a kind of blue color, if I remember correctly.",
"Yes","No","I don't know") in the detail field.
4 Message from Robot Robot ⇒ "robot_message" free text Set a free speech text (e.g., "There are two products. Is it 350 ml?") in the detail field.
More than 1000 characters will be truncated.
Depending on the timing of the transmission, the message processing may fail and return a "Bad timing" message(see below).
5 Robot message succeeded Customer ⇒ "robot_message_succeeded" (robot message) Sent when the message is accepted.
6 Robot message failed Customer ⇒ "robot_message_failed" "Bad timing:(robot message)" Sent when the robot sent a message at a bad timing.
7 Take an item Robot ⇒ "take_item" product name Send when you want to take the product from shelves.
The robot can also take another item off the shelf when it is holding an item.
Depending on the timing of the transmission, the message processing may fail and return a "Bad timing" message(see below).
8 Take item succeeded Customer ⇒ "take_item_succeeded" (product name) Sent when the message is accepted.
9 Take item failed Customer ⇒ "take_item_failed" "Bad timing:(product name)"
or
"Item not found:(product name)"
Sent when the product could not be taken.
10 Give an item Robot ⇒ "give_item" (blank) Send when you want to give the product to the customer.
Depending on the timing of the transmission, the message processing may fail and return a "Bad timing" message(see below).
11 Give item succeeded Customer ⇒ "give_item_succeeded" (blank) Sent when the message is accepted.
12 Give item failed Customer ⇒ "give_item_failed" "Bad timing"
or
"You have nothing"
Sent when the product could not be given.
13 Succeeded the task Customer ⇒ "Task_succeeded" (blank) Sent when the task is successfully completed.
14 Failed the task Customer ⇒ "Task_failed" "Wrong product" Sent when the wrong product is placed.
15 Time is up Customer ⇒ "Task_failed" "Time_is_up" Sent when the task is terminated incomplete due to time expiration.
16 All tasks finished Customer ⇒ "Mission_complete" (blank) Sent when all tasks have been completed.
17 Send Give_up Robot ⇒ "Give_up" (blank) Send when you want to give up the task.
It is possible to give up after the "Are_you_ready?" is sent until the task judgment is completed.
18 Give up Customer ⇒ "Task_failed" "Give_up" Sent when the task is terminated incomplete due to "Give_up".

Note: Customer ⇒: from the customer to the robot, Robot ⇒: from the robot to the customer
Note: Bad timing: "Bad timing" refers to situations such as when there are unprocessed robot messages, when either the robot or the customer is speaking, or when the robot is moving to pick up an item. Before sending "I_am_ready" is also bad timing.

Image presented by Customer

Messages to send an image presented by the customer.
After task start, the image sent once, but not always.

Message Definition

Use [sensor_msgs/Image]. See below.
https://docs.ros.org/en/noetic/api/sensor_msgs/html/msg/Image.html

Topic List

No Topic Name Direction Description
1 /interactive_customer_service/
/customer_image
Customer ⇒ Robot Sent only once after the task starts.

Robot Status

Messages used to notify the robot's state.
This message is sent at regular intervals.

Message Definition

[interactive_customer_service/RobotStatus]
string state
bool   speaking
string grasped_item

One of three states ("standby", "in_conversation", or "moving") is set to the state.

  • "standby": until the robot returns I_am_ready.
  • "in_conversation": the robot is in front of the customer.
  • "moving": the robot is moving.

The speaking is true when either the robot or the customer is speaking.
The name of the item grasped by the robot is set in the grasped_item.

Topic List

No Topic Name Direction Description
1 /interactive_customer_service/
robot_status
Customer ⇒ Robot Sent the robot's status at regular intervals.
⚠️ **GitHub.com Fallback** ⚠️