@@ -0,0 +1,2423 @@
+#!/usr/bin/env python%0A# Software License Agreement (BSD License)%0A#%0A# Copyright (c) 2008, Willow Garage, Inc.%0A# All rights reserved.%0A#%0A# Redistribution and use in source and binary forms, with or without%0A# modification, are permitted provided that the following conditions%0A# are met:%0A#%0A#  * Redistributions of source code must retain the above copyright%0A#    notice, this list of conditions and the following disclaimer.%0A#  * Redistributions in binary form must reproduce the above%0A#    copyright notice, this list of conditions and the following%0A#    disclaimer in the documentation and/or other materials provided%0A#    with the distribution.%0A#  * Neither the name of Willow Garage, Inc. nor the names of its%0A#    contributors may be used to endorse or promote products derived%0A#    from this software without specific prior written permission.%0A#%0A# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS%0A# %22AS IS%22 AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT%0A# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS%0A# FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE%0A# COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,%0A# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,%0A# BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;%0A# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER%0A# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT%0A# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN%0A# ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE%0A# POSSIBILITY OF SUCH DAMAGE.%0A#%0A# Revision $Id$%0A%0A## Simple talker demo that listens to std_msgs/Strings published %0A## to the 'chatter' topic%0A%0Aimport rospy%0Aimport os%0Afrom std_msgs.msg import String%0A%0Adef callback(data):%0A    os.system(%22rosrun jaco_demo cartesian_workout.py jaco 0.5 0 0.2 1 0 0 0%22)%0A%0Adef listener():%0A%0A    # In ROS, nodes are uniquely named. If two nodes with the same%0A    # node are launched, the previous one is kicked off. The%0A    # anonymous=True flag means that rospy will choose a unique%0A    # name for our 'talker' node so that multiple talkers can%0A    # run simultaneously.%0A    rospy.init_node('listener', anonymous=True)%0A%0A    rospy.Subscriber(%22chatter%22, String, callback)%0A%0A    # spin() simply keeps python from exiting until this node is stopped%0A    rospy.spin()%0A%0Aif __name__ == '__main__':%0A    listener()%0A

Create listener.py