12 #include <ros/console.h> 13 #include <gazebo_msgs/ModelState.h> 14 #include <gazebo_msgs/ModelStates.h> 15 #include <gazebo_msgs/SetModelState.h> 16 #include <gazebo_msgs/GetModelState.h> 21 #include <unordered_map> 23 std::unordered_map<std::string, gazebo_msgs::ModelState>
world_data;
25 bool set_model_state(gazebo_msgs::SetModelState::Request& req, gazebo_msgs::SetModelState::Response& res) {
26 world_data[req.model_state.model_name] = req.model_state;
31 bool get_model_state(gazebo_msgs::GetModelState::Request& req, gazebo_msgs::GetModelState::Response& res) {
33 res.twist =
world_data.at(req.model_name).twist;
38 int main(
int argc,
char** argv) {
39 ros::init(argc, argv,
"gazebo_mock");
42 ros::ServiceServer setter_service = nh.advertiseService(
"/gazebo/set_model_state",
set_model_state);
43 ros::ServiceServer getter_service = nh.advertiseService(
"/gazebo/get_model_state",
get_model_state);
45 ros::Publisher pub = nh.advertise<gazebo_msgs::ModelStates>(
"/gazebo/model_states", 1,
true);
47 gazebo_msgs::ModelStates empty_msg;
49 pub.publish(empty_msg);
int main(int argc, char **argv)
Collection of data converters between ROS and local formats.
std::unordered_map< std::string, gazebo_msgs::ModelState > world_data
bool set_model_state(gazebo_msgs::SetModelState::Request &req, gazebo_msgs::SetModelState::Response &res)
bool get_model_state(gazebo_msgs::GetModelState::Request &req, gazebo_msgs::GetModelState::Response &res)