Exemple #1
0
int main(int argc, char **argv)
{
  ros::init(argc, argv, _name);
  n=(ros::NodeHandle*)new(ros::NodeHandle);
  
  init_randomization_seed();
  
  chatter_pub = n->advertise<ws_referee::custom>("player_out", 1);
  marker_pub = n->advertise<visualization_msgs::Marker>("hamid_marker", 1);

  br =(tf::TransformBroadcaster*)new (tf::TransformBroadcaster);
  listener= (tf::TransformListener*) new (tf::TransformListener);


  
  
   init_randomization_seed();
  _pos_x=-5;
  _pos_y=-4;

//set teransformation 
  ros::Time t = ros::Time::now();
  transform.setOrigin( tf::Vector3(_pos_x, _pos_y, 0.0) );
  transform.setRotation( tf::Quaternion(0,0,0,1));
  br->sendTransform(tf::StampedTransform(transform, t, "world", "tf_"+_name));

  tf::Transform tf_tmp;
  tf_tmp.setOrigin( tf::Vector3(0, 0.0, 0.0) );
  tf_tmp.setRotation( tf::Quaternion(0,0,0,1)); 
  br->sendTransform(tf::StampedTransform(tf_tmp, t, "tf_" + _name, "tf_tmp" + _name));

  ros::spinOnce();
  ros::Duration(0.3).sleep();

  //at time now
  transform.setOrigin( tf::Vector3(_pos_x, _pos_y, 0.0) );
  transform.setRotation( tf::Quaternion(0, 0, 0, 1) );
  br->sendTransform(tf::StampedTransform(transform, ros::Time::now(), "world", "tf_" + _name ));

  tf_tmp.setOrigin( tf::Vector3(0, 0.0, 0.0) );
  tf_tmp.setRotation( tf::Quaternion(0, 0, 0, 1) );
  br->sendTransform(tf::StampedTransform(tf_tmp, ros::Time::now(), "tf_" + _name, "tf_tmp" + _name ));
  
  client= (ros::ServiceClient*) new (ros::ServiceClient);
  *client = n->serviceClient<ws_referee::MovePlayerTo>("move_player_"+_police_player);
  
	
  ros::ServiceServer service = n->advertiseService("move_player_" + _police_player, serviceCallback);
  ros::Subscriber sub = n->subscribe("player_in", 1, chatterCallback);
  ros::Rate loop_rate(2);

  ROS_INFO("%s: Hamid Node Started", _name.c_str());

  int count = 0;
  ros::MultiThreadedSpinner spinner(4); // Use 4 threads
  spinner.spin(); // spin() will not return until the node has been shutdown

  
  //while (ros::ok())
  //{
    //ros::spinOnce();
    //loop_rate.sleep();
    //++count;
  //}


  return 0;
}
Exemple #2
0
int main(int argc, char **argv)
{

	ros::init(argc, argv, _name);
	ros::NodeHandle n;

	//init the randomizer
	init_randomization_seed();

	chatter_pub = n.advertise<ws_referee::custom>("player_out", 1);
	marker_pub = n.advertise<visualization_msgs::Marker>("mike_marker", 1);


	//Allocate the broadcaster and listener
	br = (tf::TransformBroadcaster*) new (tf::TransformBroadcaster);
	listener = (tf::TransformListener*) new (tf::TransformListener);

	_pos_x = -5;
	_pos_y = 1; //to be read from a param

	ros::Duration(0.3).sleep();


	ros::Time t = ros::Time::now();
	//Send the transformation
	transform.setOrigin( tf::Vector3(_pos_x, _pos_y, 0.0) );
	transform.setRotation( tf::Quaternion(0, 0, 0, 1) );
	br->sendTransform(tf::StampedTransform(transform, t, "world", "tf_" + _name));

	tf::Transform tf_tmp;
	tf_tmp.setOrigin( tf::Vector3(0, 0.0, 0.0) );
	tf_tmp.setRotation( tf::Quaternion(0, 0, 0, 1) );
	br->sendTransform(tf::StampedTransform(tf_tmp, t, "tf_" + _name, "tf_tmp" + _name));

	ros::spinOnce();
	ros::Duration(0.3).sleep();

	//at time now
	transform.setOrigin( tf::Vector3(_pos_x, _pos_y, 0.0) );
	transform.setRotation( tf::Quaternion(0, 0, 0, 1) );
	br->sendTransform(tf::StampedTransform(transform, ros::Time::now(), "world", "tf_" + _name));

	tf_tmp.setOrigin( tf::Vector3(0, 0.0, 0.0) );
	tf_tmp.setRotation( tf::Quaternion(0, 0, 0, 1) );
	br->sendTransform(tf::StampedTransform(tf_tmp, ros::Time::now(), "tf_" + _name, "tf_tmp" + _name));



	ros::ServiceServer service = n.advertiseService("move_player_" + _policed_player, serviceCallback);
	ros::Subscriber sub = n.subscribe("player_in", 1, chatterCallback);
	ros::Rate loop_rate(2);

	ROS_INFO("%s: node started",_name.c_str());
	int count = 0;
	while (ros::ok())
	{
		ros::spinOnce();
		loop_rate.sleep();
		++count;
	}


	return 0;
}