//////////////////////////////////////////////////////////////////////////////// // Load the controller void GazeboTreasure::Load(physics::ModelPtr _model, sdf::ElementPtr _sdf) { model_ = _model; world_ = _model->GetWorld(); link_ = _model->GetLink(); link_name_ = link_->GetName(); namespace_.clear(); vel_x = vel_y = vel_yaw = 0; static_object_ = false; last_time_ = world_->GetSimTime(); terminated_ = false; // load parameters from sdf if (_sdf->HasElement("robotNamespace")) namespace_ = _sdf->GetElement("robotNamespace")->Get<std::string>(); if (_sdf->HasElement("bodyName") && _sdf->GetElement("bodyName")->GetValue()) { link_name_ = _sdf->GetElement("bodyName")->Get<std::string>(); link_ = _model->GetLink(link_name_); } if (_sdf->HasElement("staticObject") && _sdf->GetElement("staticObject")->GetValue()) { static_object_ = _sdf->GetElement("staticObject")->Get<std::string>() == "true"?true:false; } // boost::random::mt19937 rng; boost::random::random_device rng; boost::random::uniform_int_distribution<> x_rand(-40, 40); boost::random::uniform_int_distribution<> y_rand(-20, 20); double x = x_rand(rng); double y = y_rand(rng); model_->SetLinkWorldPose(math::Pose(x, y, 0.2, 0, 0, 0), link_); if (!link) { ROS_FATAL("gazebo_ros_baro plugin error: bodyName: %s does not exist\n", link_name_.c_str()); return; } // Make sure the ROS node for Gazebo has already been initialized if (!ros::isInitialized()) { ROS_FATAL_STREAM("A ROS node for Gazebo has not been initialized, unable to load plugin. " << "Load the Gazebo system plugin 'libgazebo_ros_api_plugin.so' in the gazebo_ros package)"); return; } node_handle_ = new ros::NodeHandle(namespace_); pub_score_ = node_handle_->advertise<std_msgs::String>("score", 1, true); // set latch true ros::NodeHandle param_handle(*node_handle_, "controller"); update_connection_ = event::Events::ConnectWorldUpdateBegin( boost::bind(&GazeboTreasure::Update, this)); }
//////////////////////////////////////////////////////////////////////////////// // Load the controller void GazeboPanel::Load(physics::ModelPtr _model, sdf::ElementPtr _sdf) { gzwarn << "The GazeboPanel plugin is DEPRECATED in ROS hydro." << std::endl; model_ = _model; world_ = _model->GetWorld(); link_ = _model->GetLink(); link_name_ = link_->GetName(); namespace_.clear(); terminated_ = false; // load parameters from sdf if (_sdf->HasElement("robotNamespace")) namespace_ = _sdf->GetElement("robotNamespace")->Get<std::string>(); if (_sdf->HasElement("bodyName") && _sdf->GetElement("bodyName")->GetValue()) { link_name_ = _sdf->GetElement("bodyName")->Get<std::string>(); link_ = _model->GetLink(link_name_); } if (_sdf->HasElement("jointName") && _sdf->GetElement("jointName")->GetValue()) { std::string joint_name_ = _sdf->GetElement("jointName")->Get<std::string>(); joint_ = _model->GetJoint(joint_name_); } else { joint_ = _model->GetJoint("stem_joint"); } if (!link) { ROS_FATAL("gazebo_ros_baro plugin error: bodyName: %s does not exist\n", link_name_.c_str()); return; } // Make sure the ROS node for Gazebo has already been initialized if (!ros::isInitialized()) { ROS_FATAL_STREAM("A ROS node for Gazebo has not been initialized, unable to load plugin. " << "Load the Gazebo system plugin 'libgazebo_ros_api_plugin.so' in the gazebo_ros package)"); return; } node_handle_ = new ros::NodeHandle(namespace_); pub_score_ = node_handle_->advertise<std_msgs::String>("score", 1, true); // set latch true pub_time_ = node_handle_->advertise<std_msgs::String>("remaining_time", 1); ros::NodeHandle param_handle(*node_handle_, "controller"); update_connection_ = event::Events::ConnectWorldUpdateBegin( boost::bind(&GazeboPanel::Update, this)); }
void Server::initialise(tinyxml2::XMLHandle & handle) { static bool first = true; if (!singleton_server_) { name_ = handle.ToElement()->Attribute("name"); std::string ns = name_; } tinyxml2::XMLHandle param_handle(handle.FirstChildElement("Parameters")); tinyxml2::XMLHandle tmp_handle = param_handle.FirstChild(); while (tmp_handle.ToElement()) { createParam(name_, tmp_handle); tmp_handle = tmp_handle.NextSibling(); } if (first) { HIGHLIGHT_NAMED(name_, "EXOTica Server Initialised"); first = false; } }