Advertisement
Guest User

Untitled

a guest
Sep 9th, 2020
111
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.87 KB | None | 0 0
  1. #include <move_base/move_base.h>
  2. #include <move_base_msgs/MoveBaseAction.h>
  3. #include <actionlib/client/simple_action_client.h>
  4. #include <actionlib/client/connection_monitor.h>
  5. #include <visualization_msgs/MarkerArray.h>
  6. #include <tf2_geometry_msgs/tf2_geometry_msgs.h>
  7. #include <gazebo_msgs/ModelStates.h>
  8. #include <gazebo_msgs/GetWorldProperties.h>
  9. #include <gazebo_msgs/GetModelProperties.h>
  10. #include <gazebo_msgs/GetModelState.h>
  11. #include <iostream>
  12.  
  13. int main(int argc, char** argv){
  14.   ROS_INFO_STREAM("starting robot_controller");
  15.   ros::init(argc, argv, "robot_controller");
  16.  
  17.   ros::NodeHandle n;
  18.   ros::ServiceClient _getWorldPropertiesClient;
  19.   gazebo_msgs::GetWorldProperties _getWorldProperties;
  20.   ros::ServiceClient _getModelPropertiesClient;
  21.   gazebo_msgs::GetModelProperties _getModelProperties;
  22.   ros::ServiceClient _getModelStateClient;
  23.   gazebo_msgs::GetModelState _getModelState;
  24.  
  25.   _getWorldPropertiesClient = n.serviceClient<gazebo_msgs::GetWorldProperties>("/gazebo/get_world_properties");
  26.   _getModelPropertiesClient = n.serviceClient<gazebo_msgs::GetModelProperties>("/gazebo/get_model_properties");
  27.   _getModelStateClient = n.serviceClient<gazebo_msgs::GetModelProperties>("/gazebo/get_model_state");
  28.  
  29.   _getWorldPropertiesClient.call(_getWorldProperties);
  30.   std::vector<std::string> model_names = _getWorldProperties.response.model_names;
  31.  
  32.   for(auto&& model_name: model_names){
  33.     if(model_name!=""){
  34.       _getModelProperties.request.model_name = model_name;
  35.       _getModelPropertiesClient.call(_getModelProperties);
  36.       std::string relative_entity_name = _getModelProperties.response.body_names.at(0);
  37.  
  38.       _getModelState.request.model_name = model_name;
  39.       _getModelState.request.relative_entity_name = relative_entity_name;
  40.       _getModelStateClient.call(_getModelState);
  41.  
  42.     }
  43.   }
  44.  
  45.   while(ros::ok()){
  46.     ros::spin();
  47.   }
  48. }
  49.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement