ROS node to control the different missions conducted by the house bot Rodney. It also controls some of the simple jobs.
Once you have the node built you can run the rodney robot by launching the rodney.launch file.
Topics:
missions/mission_request
:
Subscribes using MonitorStatestd_msgs/String
A request to carry out a robot mission or simple jobmissions/mission_cancel
:
Subscribesstd_msgs/String
A request to cancel the current robot missionmissions/acknowledge
:
Subscribessts_msgs/Empty
An acknowledgement by a user that the mission can move onspeech/to_speak
:
Publishesspeech/voice
A message with either text containing the words to speak or wav containing the path of the wav file to playrobot_face/text_out
:
Publishesstd_msgs/String
Text for the robot face to animate the lips tomissions/mission_complete
:
Publishesstd_msgs/String
Message indicating that the current mission completedcommands/lidar_enable
:
Publishesstd_msgs/Bool
Message indicating if the LIDAR should be enabled or not
Action Clients:
head_control_node
: To request movement of the headface_recognition
: To request and obtain the result of a face recognition scan on an image from the cameramove_base
: To reuest that the base is navigated to a new location
Service Clients:
stop_motor
: To disable the LIDARstart_motor
: To enable the LIDAR
Parameters:
/servo/index0/pan/min
: minimum range for the head pan servo. Default value = -(pi/2.0)/servo/index0/pan/max
: Maximum range for the head pan servo. Default value = pi/2.0/servo/index0/tilt/min
: Minimum range for the head tilt servo. Default value = -(pi/2.0)/servo/index0/tilt/max
: Maximum range for the head tilt servo. Default value = pi/2.0/head/position/pan
: The pan position that the head will move to when a task is complete (default positon). Default value = 0.0/head/position/tilt
: The tilt position that the head will move to when a task is complete (default positon). Default value = 0.0~head/view_step/pan
: The increment that the pan servo will move for each scan. Default value = 0.436332~head/view_step/tilt
: The increment that the tile servo will move for each scan. Default value = 0.436332~head/manual_view_step/pan
: Pan step value to move the camera in manual mode. Default = 0.174533~head/manual_view_step/tilt
: Tilt step value to move the camera in manual mode. Default = 0.174533~head/user_position/pan
: Pan position that the head will move to for user input. Default value = 0.0~head/user_position/tilt
: Tilt position that the head will move to for user input. Default value = -0.5
State Machines:
The top level state machine contains the following states
WAITING
:
Is a monitor state for the /missions/mission_request topicPREPARE
:
A state that examines a request and either actions a job or hands control to a mission sub state machineREPORT
:
A state that reports that a mission is completeDEFAULT_HEAD_POSITION
:
A SimpleActionState that returns the head/camera to the default positionMOVE_HEAD
:
A SimpleActionState that request sthe head/camera be moved
MISSION1
:
A sub state machine responsible for controlling mission 1, "take a message to.."PREPARE_MISSION
:
A state that loads the given waypoint filePREPARE_FOR_HEAD_MOVE
:
A state which sets up the next required position of the head/cameraMOVE_HEAD
:
A SimpleActionState that requests the head/camera be movedSCAN_FOR_FACES
:
A SimpleActionState that requests the faces recognition operation be carried out on the current image from the cameraCHECK_FOR_SUBJECT
:
A state that checks subjects seen by the camera to the ID of the subject we are searching for. If the subject is seen the message is deliveredWAIT_FOR_USER
:
State that waits for the acknowledge message or timesout after 60 secondsDEFAULT_HEAD_POISTION
:
A SimpleActionState that returns the head/camera to the default positionPREPARE_TO_MOVE
:
A state machine that constructs a nav goal for the MOVE stateMOVE
:
A SimpleActionState that moves the robot base to the given nav goal
MISSION2
:
A sub state machine responsible for controlling mission 2, "greet who you recognise"PREPARE_FOR_MOVEMENT_GRT
:
A state which sets up the next required position of the head/cameraMOVE_HEAD_GRT
:
A SimpleActionState that requests the head/camera be movedSCAN_FOR_FACES
:
A SimpleActionState that requests the faces recognition operation be carried out on the current image from the cameraGREETING
:
A state responsible for forming the response to any faces recognised
MISSION4
: A sub state machine responsible for controlling mission 4, "go home"PREPARE_MISSION
:
A state that loads a given waypoint file and extracts the home location and positionDEFAULT_HEAD_POSITION
:
A SimpleActionState that returns the head/camera to the default positionMOVE
:
A SimpleActionState that moves the robot base to the given nav goal (home position)
Software source and object files are licensed under the Apache License, Version 2.0. See the License for the specific language governing permissions and limitations under the License.