Project: engagement_generation

License: BSD

Dependencies:

Used by: None

All Packages

engagement_generation Documentation

engagement_generation: Generating Engagement Behaviors in Human-Robot Interaction

Human-robot engagement generation package developed at Worcester Polytechnic Institute by Aaron Holroyd et al.
Currently contains the generation node that is responsible for generating directed gaze, mutual facial gaze, adjacency pairs, and backchannels during an interaction.

engagement is "the process by which two (or more) participants establish, maintain and end their perceived connection during interactions they jointly undertake" (Sidner, C.; Lee, C.; Kidd, C.; Lesh, N.; and Rich, C. 2005. Explorations in Engagement for Humans and Robots. Artificial Intelligence 166(1-2): 140-164).

ROS API

List of nodes:

  • engagement_generation/generation

generation

The generation node consumes EBML and other messages as seen below to generate the engagement behaviors directed gaze, mutual facial gaze, adjacency pairs, and backchannels. The engagement recognition node is then informed of each connection event as it is executed in order to determine if the human responded or not. The results of each EBML execution are then returned to the node which called the generation node.

Usage

$ generation [standard ROS args]

ROS topics

Subscribes to:

Topics pertaining to actors performing engagement behaviors

  • "recognition/human/directed_gaze": [engagement_msgs::HumanDirectedGaze] A human is directing our gaze.
  • "recognition/human/directed_gaze": [engagement_msgs::HumanMutualFacialGaze] A human is attempting mutual facial gaze.
  • "recognition/human/directed_gaze": [engagement_msgs::HumanBackchannel] A human backchanneled.

Topics pertaining to objects and their locations in the world

  • "vision/entity_position": [engagement_msgs::EntityPosition] The entity given is at the position given.

Topics pertaining to what the robot is currectly doing

  • "performing/look": [engagement_msgs::Performance] Notification of where the robot is looking.

Topics pertaining to what the realizer is executing

  • "bml/performing": [engagement_msgs::BMLPerformance] The bml behavior and its sync point which is currently being executed
  • "bml/emit": [engagement_msgs::BMLEmit] Notification that an emit tag has fired

Topics pertaining to what collaboration is doing

  • "generation/lock_gaze": [engagement_msgs::Flag] Lock the gaze so it is not used by generation.

Publishes to:

  • "generation/tried_gaze": [engagement_msgs::Entity] Inform the rest of the system that the given Entity should be looked at.

ROS services

  • "generation/turn_fragment": [engagement_srvs::ExecTurnFragment] The goal is to complete the given actions with engagement behaviors added, the success state is returned
  • "generation/set_gaze": [engagment_srvs::ChangeGaze] The goal is to change where the robot is looking. This can have a lock, target, or timeout, or any combination there of. The success state is returned.

ROS parameters

Reads the following parameters from the parameter server

  • "generation/conf/debug_level": [string] The verbosity used for debug print statements (anything with a log level <= verbosity will be printed when in Debug mode).
  • "generation/conf/logger_type": [string] The type of logger, System or ROS.
  • "generation/conf/run_full": [boolean] True to run the full generation node, false to run it in degraded mode.
  • "generation/conf/reliability/speech": [double] The channel reliability of speech.
  • "generation/conf/reliability/gaze": [double] The channel reliability of gaze.
  • "generation/conf/reliability/directed_gaze": [double] The channel reliability of a directed gaze.
  • "generation/conf/reliability/directed_gaze_pointing": [double] The channel reliability of directed gaze with pointing.
  • "generation/conf/robot/shoulder_length": [double] The distance from the center of the neck to the center of the robot's shoulder.
  • "generation/conf/robot/shoulder_height": [double] The distance from the floor to the center of the robot's shoulder.
  • "generation/conf/robot/arm_length": [double] The distance from the center of the robots shoulder to the tip of it's finger.
  • "generation/conf/robot/head_height": [double] The distance from the floor to the center of the head.
  • "generation/conf/constant/gaze_cost_factor": [double] The cost factor of changing the gaze in a reference.
  • "generation/conf/constant/point_cost_factor": [double] The cost factor of changing the pointing location in a reference.
  • "generation/conf/constant/gaze_distractor_distance": [double] The distance that an object must be away from the referenced object in order to not be a gaze distractor.
  • "generation/conf/constant/pointing_distractor_distance": [double] The distance that an object must be away from the referenced object in order to not be a pointing distractor.
  • "generation/conf/constant/glance_delay_factor": [double] The factor to multiply the MTBCE by to determine how often to glance up.
  • "generation/conf/glance_duration_ms": [int] The number of milliseconds that the robot will look at the human for a glance.
  • "generation/conf/glance_delay_max": [int] The maximum time between glances, regardless of the MTBCE.
  • "generation/conf/glance_delay_min": [int] The minimum time between glances, regardless of the MTBCE.

.launch files

This section describes the launch file used for launching this node:

  • "generation.launch": Used to launch the generation node. Contains all the parameters used for the generation node.
  • "degraded_gen.launch": Used to launch the generation node in degraded mode. Contains all the parameters used for the generation node and sets it to degraded mode.

Usage

$ roslaunch generation.launch

Usage

$ roslaunch degraded_gen.launch


engagement_generation
Author(s): Aaron Holroyd (aholroyd (at) wpi (dot) edu)
autogenerated on Fri Sep 9 10:35:40 2011