// Get the URDF XML from the parameter server std::string GazeboRosControlPlugin::getURDF(std::string param_name) const { std::string urdf_string; // search and wait for robot_description on param server while (urdf_string.empty()) { std::string search_param_name; if (model_nh_.searchParam(param_name, search_param_name)) { ROS_INFO_ONCE_NAMED("gazebo_ros_control", "gazebo_ros_control plugin is waiting for model" " URDF in parameter [%s] on the ROS param server.", search_param_name.c_str()); model_nh_.getParam(search_param_name, urdf_string); } else { ROS_INFO_ONCE_NAMED("gazebo_ros_control", "gazebo_ros_control plugin is waiting for model" " URDF in parameter [%s] on the ROS param server.", robot_description_.c_str()); model_nh_.getParam(param_name, urdf_string); } usleep(100000); } ROS_DEBUG_STREAM_NAMED("gazebo_ros_control", "Recieved urdf from param server, parsing..."); return urdf_string; }
// Get the URDF XML from the parameter server std::string getURDF(ros::NodeHandle &model_nh_, std::string param_name) { std::string urdf_string; std::string robot_description = "/robot_description"; // search and wait for robot_description on param server while (urdf_string.empty()) { std::string search_param_name; if (model_nh_.searchParam(param_name, search_param_name)) { ROS_INFO_ONCE_NAMED("LWRHWFRIL", "LWRHWFRIL node is waiting for model" " URDF in parameter [%s] on the ROS param server.", search_param_name.c_str()); model_nh_.getParam(search_param_name, urdf_string); } else { ROS_INFO_ONCE_NAMED("LWRHWFRIL", "LWRHWFRIL node is waiting for model" " URDF in parameter [%s] on the ROS param server.", robot_description.c_str()); model_nh_.getParam(param_name, urdf_string); } usleep(100000); } ROS_DEBUG_STREAM_NAMED("LWRHWFRIL", "Recieved urdf from param server, parsing..."); return urdf_string; }