robot_follower.py
Go to the documentation of this file.
00001 #!/usr/bin/env python
00002 # coding=utf-8
00003 '''
00004 跟踪的检测节点怎么写:
00005    1. 如果不同机器人的检测节点检测到了可疑机器人进入到了自己的探测区域,那么就会更新parameter server中和tf发布有关的参数;
00006    2. 相应的跟踪机器人会更新parameter server中的跟tf有关的参数,这样的话,跟踪就会启动;
00007    3. 跟踪发出的速度消息通过一个suppressor去抑制下层的navigation发出的消息;
00008    4. 当可疑机器人逃逸,跟踪失败之后,当前跟踪机器人会继续之前的巡逻任务。
00009 
00010 '''
00011 
00012 __author__ = 'Minglong Li'
00013 
00014 import rospy
00015 import math
00016 import tf
00017 import geometry_msgs.msg
00018 from nav_msgs.msg import Odometry
00019 
00020 class Robot_follower(object):
00021     def __init__(self, name):
00022         self.listener = tf.TransformListener()
00023     def robot_listener(self):
00024         '''
00025         rospy.wait_for_service('spawn')
00026         spawner = rospy.ServiceProxy('spawn', turtlesim.srv.Spawn)
00027         spawner(4, 2, 0, 'turtle2')
00028         '''
00029         robot_vel_pub = rospy.Publisher('robot_0/cmd_vel', geometry_msgs.msg.Twist, queue_size=1)
00030 
00031         rate = rospy.Rate(10.0)
00032         while not rospy.is_shutdown():
00033             try:
00034                 (trans,rot) = self.listener.lookupTransform('/robot_3', '/robot_0', rospy.Time(0))
00035             except (tf.LookupException, tf.ConnectivityException, tf.ExtrapolationException):
00036                 continue
00037             angular = 4 * math.atan2(trans[1], trans[0])
00038             linear = 0.5 * math.sqrt(trans[0] ** 2 + trans[1] ** 2)
00039             cmd = geometry_msgs.msg.Twist()
00040             cmd.linear.x = linear
00041             cmd.angular.z = angular
00042             robot_vel_pub.publish(cmd)
00043     
00044             rate.sleep()
00045 
00046     
00047 if __name__ == '__main__':
00048     rospy.init_node('robot_follower')
00049     robot_follower =  Robot_follower(rospy.get_name())
00050     robot_follower.robot_listener()
00051     rospy.spin()
00052 


micros_mars_task_alloc
Author(s): Minglong Li , Xiaodong Yi , Yanzhen Wang , Zhongxuan Cai
autogenerated on Mon Jul 1 2019 19:55:03