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; }
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; }