skinManager failing to open in Simulation #698
-
Hello everyone! I am working with a iCub simulator and I am trying to launch skinManager for my simulation being my problem very similar to the one in robotology/icub-main#492. However in my case I am launching correctly the skinManager:
Here is the error that I am receiving: [INFO] |yarp.os.Port|/skinManager/rpc| Port /skinManager/rpc active at tcp://172.21.244.8:10080/
[INFO] |yarp.os.Port|/skinManager/monitor:o| Port /skinManager/monitor:o active at tcp://172.21.244.8:10081/
[INFO] |yarp.os.Port|/skinManager/info:o| Port /skinManager/info:o active at tcp://172.21.244.8:10082/
2 input ports found in the configuration file
[INFO] Input port: /icubSim/skin/left_hand -> Output port: /icubSim/skin/left_hand_comp
[INFO] |yarp.os.Port|/icubSim/skin/left_hand_comp| Port /icubSim/skin/left_hand_comp active at tcp://172.21.244.8:10083/
[DEBUG] |yarp.dev.PolyDriver|analogsensorclient| Parameters are (device analogsensorclient) (local "/skinManager0/input") (remote "/icubSim/skin/left_hand") (robot icubSim)
[WARNING] |yarp.device.analogsensorclient| The 'inertial' device is deprecated in favour of 'multipleanalogsensorsclient'
[WARNING] |yarp.device.analogsensorclient| The old device is no longer supported, and it will be deprecated in YARP 3.7 and removed in YARP 4.
[WARNING] |yarp.device.analogsensorclient| Please update your scripts.
[INFO] |yarp.os.Port|/skinManager0/input| Port /skinManager0/input active at tcp://172.21.244.8:10084/
[INFO] |yarp.os.Port|/skinManager0/input/rpc:o| Port /skinManager0/input/rpc:o active at tcp://172.21.244.8:10085/
[INFO] |yarp.os.impl.PortCoreInputUnit|/skinManager0/input| Receiving input from /icubSim/skin/left_hand to /skinManager0/input using udp
[ERROR] |yarp.device.analogsensorclient| AnalogSensorClient::open() error could not connect to /icubSim/skin/left_hand/rpc:i
[ERROR] |yarp.dev.PolyDriver|analogsensorclient| Driver <analogsensorclient> was found but could not open
[INFO] |yarp.os.impl.PortCoreInputUnit|/skinManager0/input| Removing input from /icubSim/skin/left_hand to /skinManager0/input
[INFO] [/icubSim/skin/left_hand]: Device not available.
[INFO] Input port: /icubSim/skin/right_hand -> Output port: /icubSim/skin/right_hand_comp
[INFO] |yarp.os.Port|/icubSim/skin/right_hand_comp| Port /icubSim/skin/right_hand_comp active at tcp://172.21.244.8:10086/
[DEBUG] |yarp.dev.PolyDriver|analogsensorclient| Parameters are (device analogsensorclient) (local "/skinManager1/input") (remote "/icubSim/skin/right_hand") (robot icubSim)
[WARNING] |yarp.device.analogsensorclient| The 'inertial' device is deprecated in favour of 'multipleanalogsensorsclient'
[WARNING] |yarp.device.analogsensorclient| The old device is no longer supported, and it will be deprecated in YARP 3.7 and removed in YARP 4.
[WARNING] |yarp.device.analogsensorclient| Please update your scripts.
[INFO] |yarp.os.Port|/skinManager1/input| Port /skinManager1/input active at tcp://172.21.244.8:10087/
[INFO] |yarp.os.Port|/skinManager1/input/rpc:o| Port /skinManager1/input/rpc:o active at tcp://172.21.244.8:10088/
[INFO] |yarp.os.impl.PortCoreInputUnit|/skinManager1/input| Receiving input from /icubSim/skin/right_hand to /skinManager1/input using udp
[ERROR] |yarp.device.analogsensorclient| AnalogSensorClient::open() error could not connect to /icubSim/skin/right_hand/rpc:i
[ERROR] |yarp.dev.PolyDriver|analogsensorclient| Driver <analogsensorclient> was found but could not open
[INFO] |yarp.os.impl.PortCoreInputUnit|/skinManager1/input| Removing input from /icubSim/skin/right_hand to /skinManager1/input
[INFO] [/icubSim/skin/right_hand]: Device not available.
[ERROR] [CompensationThread] Compensator /icubSim/skin/left_hand did not open correctly. Removing the port.
[ERROR] [CompensationThread] Compensator /icubSim/skin/right_hand did not open correctly. Removing the port.
[ERROR] [CompensationThread] No input port left. Stopping the thread.
[ERROR] |yarp.os.impl.ThreadImpl| A thread failed to start with error code: 0
[ERROR] [SkinManager] Could not start the compensator thread.
[INFO] |yarp.os.RFModule| RFModule failed to open. Note: I have a skin plugin working in my simulation available here https://github.com/maxymczech/gazebo-yarp-plugins/tree/master. However, the skin ports are only outputting zeros at the moment (do not know the reason yet). Thank you! |
Beta Was this translation helpful? Give feedback.
Replies: 2 comments 1 reply
-
As of now, there's no official skin service on our Gazebo models. There are experimental services made available by the community as the one you've been using. The skin service is required to implement the server part (i.e., |
Beta Was this translation helpful? Give feedback.
-
Hello @pattacini ! Thank you for your answer! It would be extremely beneficial for me if I could launch the skinManager module in simulation though. Do you have any new recommendations on the best way that I could achieve this? |
Beta Was this translation helpful? Give feedback.
As I said earlier, the
skinManager
opens up a device driver to receive skin information from the HW.Look at https://github.com/robotology/icub-main/blob/50d273ca9ba2fa1af54209c3dc5c96876ba2ffc0/src/modules/skinManager/src/compensator.cpp#L69-L83.
The reading from the HW is proxied via a YARP network, whose client is handled by
skinManager
, whereas the server side needs to be handled by your plugin.In particular, the device driver must implement the
IAanalogSensor
interface.On the physical robot, this part is managed via the
skinWrapper
.