Open lrapetti opened 5 years ago
In the IMU case, the name of the port opened is given by https://github.com/robotology/yarp/blob/24eb21146091e4cc3d5bba0856f1ab8fe9b202df/src/libYARP_dev/src/devices/ServerInertial/ServerInertial.cpp#L316 , so it should used the one specified in https://github.com/robotology/icub-model-generator/blob/master/simmechanics/data/icub2_5/conf/gazebo_icub_inertial.ini#L3 . Again, I suspect that something strange is happening in https://github.com/robotology/gazebo-yarp-plugins/blob/06255f1a1b30580b74e237449ba2be79836d2a62/libraries/singleton/src/ConfHelpers.cc#L126, so it may be worth to add a few debug prints or checkpoints there.
I more or less have a similar issue. In fact, if I run Gezebo, spawn a model and then close it after a while. Then sometimes, when I want to run the Gazebo again with the same model I get this error after spawning the model:
[ERROR] |yarp.os.Port|/syntroSim/left_arm/rpc:i| Port /syntroSim/left_arm/rpc:i failed to activate at tcp://10.240.2.41:10002/ (address conflict)
The solution so far is just to restart the machine. I use robotology-superbuild on Windows 11.
@lrapetti commented on Thu Mar 14 2019
I found out that when using two
icub
models in a single world (such as explained intwo_icubs_standup_world
), in the second model (iCub_0
) theinertial
port can not be opened (while all the other ports are opended correctly for both the models with the proper prefixiCub/
oriCub_0
).Here is the error I see in the terminal:
observation: it seems to me that it is opening a the port for the first model
iCub/inertial
, and then for the second model it tries again to open theinertial
port with the same prefix and it fails withaddress conflict
. Instead, the port for the second model should be open with the different prefix:iCub_0/inertial
.and here is the list of the ports opened for the two robots:
iCub
(35 ports)iCub_0
(34 ports)The same thing doesn't happen when directly multiple models in Gazebo (without passing torugh a
world
)@lrapetti commented on Thu Mar 14 2019
This seems to be confirmed by the fact that even if no model with name
iCub
is used, the inertial port is opened anyway withiCub
prefix:@lrapetti commented on Fri Jul 12 2019
The problem seems to apply only when the models are opened trough gazebo world (see https://github.com/robotology/gazebo-yarp-plugins/issues/436#issue-467462300 and https://github.com/robotology/gazebo-yarp-plugins/issues/436#issuecomment-510926834)