Multiple models with a Gazebo plugin
Hello everyone,
I have a problem and I don't know how to fix it. I have an sdf file which includes multiple models within it, such as:
<include>
<uri>model://CubeBot</uri>
<name>cubebot_1</name>
<pose>0 0.117 0 -1.57 -1.57 0</pose>
</include>
<include>
<uri>model://CubeBot</uri>
<name>cubebot_2</name>
<pose>0 0.117 0 -1.57 -1.57 0</pose>
</include>
and each CubeBot model has a plugin to control it. I control their positions by using a ROS topic which communicates with Gazebo (stand-alone version). I use an array in the plugin in Gazebo to receive different reference positions from ROS, but it doesn't work. In fact when I command a CubeBot to move, (and only it), then even the other CubeBot moves, and I don't want it. Is it possible to fix this problem? I use Gazebo 2.2 and ROS indigo. Thanks a lot.
PS : plugin has been attached C:\fakepath\plugin_cubebot.cc
And these are sdf models: cubebot model C:\fakepath\model.sdf and manipulator model C:\fakepath\model.sdf
Probably both robots are listening to the same topic
Even if I use different topics, only one topic works, but both cubes move. And I don't know why.
could you update the question with the plugin you are using?
I have attached the plugin I am using. I receive messages on different ROS topics. If you have questions, just ask. Thank you.
i didn't have time to read the code in detail, but does this return different values?
std::cout << stiffness_topic << "\t" << position_topic << "\n";
Yes, stiffness and position are two different values. And for cubebot 1 I have stiffness1, position1 (topics for cubebot1), and stiffness2 , position2 for cubebot 2. But this method doesn't work. Do you have any ideas?
Can you confirm that each model receives the correct message?
I have fixed this problem in this way: