text: #! /usr/bin/python
  #***********************************************************
  #* Software License Agreement (BSD License)
  #*
  #*  Copyright (c) 2009, Willow Garage, Inc.
  #*  All rights reserved.
  #*
  #*  Redistribution and use in source and binary forms, with or without
  #*  modification, are permitted provided that the following conditions
  #*  are met:
  #*
  #*   * Redistributions of source code must retain the above copyright
  #*     notice, this list of conditions and the following disclaimer.
  #*   * Redistributions in binary form must reproduce the above
  #*     copyright notice, this list of conditions and the following
  #*     disclaimer in the documentation and/or other materials provided
  #*     with the distribution.
  #*   * Neither the name of Willow Garage, Inc. nor the names of its
  #*     contributors may be used to endorse or promote products derived
  #*     from this software without specific prior written permission.
  #*
  #*  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
  #*  "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
  #*  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
  #*  FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
  #*  COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
  #*  INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
  #*  BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
  #*  LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
  #*  CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
  #*  LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
  #*  ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
  #*  POSSIBILITY OF SUCH DAMAGE.
  #* 
  #* Author: Eitan Marder-Eppstein
  #***********************************************************
  PKG = "move_base"
  NAME = "warner"
  import roslib; roslib.load_manifest(PKG)
  
  import rospy
  import sys
  
  def warner():
    rospy.init_node(NAME, anonymous=True)
    if not rospy.has_param('~string'):
      rospy.logerr("You must fill in the \"~string\" parameter to run this node, otherwise we don't know what to warn about. Exiting")
      sys.exit(-1)
  
    period = rospy.get_param('~period', 5.0)
    string = rospy.get_param('~string')
  
    r = rospy.Rate(1.0 / period)
    while not rospy.is_shutdown():
      print "%s" % string #TODO: Take this out after ROS 0.9 is released
      rospy.logwarn("%s", string)
      r.sleep()
  
  if __name__ == '__main__':
    try:
      warner()
    except rospy.ROSInterruptException: pass
  