Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034 import roslib
00035 roslib.load_manifest('opencv_tests')
00036
00037 import sys
00038 import time
00039 import math
00040 import rospy
00041 import cv
00042
00043 import sensor_msgs.msg
00044 from opencv_latest.cv_bridge import CvBridge
00045
00046 class source:
00047
00048 def __init__(self):
00049 self.pub = rospy.Publisher("/opencv_tests/images", sensor_msgs.msg.Image)
00050
00051 def spin(self):
00052 time.sleep(1.0)
00053 started = time.time()
00054 counter = 0
00055 cvim = cv.CreateImage((640,480), cv.IPL_DEPTH_8U, 1)
00056 ball_xv = 10
00057 ball_yv = 10
00058 ball_x = 100
00059 ball_y = 100
00060
00061 cvb = CvBridge()
00062
00063 while not rospy.core.is_shutdown():
00064
00065 cv.Set(cvim, 0)
00066 cv.Circle(cvim, (ball_x, ball_y), 10, 255, -1)
00067
00068 ball_x += ball_xv
00069 ball_y += ball_yv
00070 if ball_x in [10, 630]:
00071 ball_xv = -ball_xv
00072 if ball_y in [10, 470]:
00073 ball_yv = -ball_yv
00074
00075 self.pub.publish(cvb.cv_to_imgmsg(cvim))
00076
00077 time.sleep(0.03)
00078
00079 def main(args):
00080 s = source()
00081 rospy.init_node('source')
00082 try:
00083 s.spin()
00084 rospy.spin()
00085 outcome = 'test completed'
00086 except KeyboardInterrupt:
00087 print "shutting down"
00088 outcome = 'keyboard interrupt'
00089 rospy.core.signal_shutdown(outcome)
00090
00091 if __name__ == '__main__':
00092 main(sys.argv)