robotology / walking-controllers

Bipedal locomotion software for the humanoid robot platform iCub.
BSD 3-Clause "New" or "Revised" License
121 stars 46 forks source link

WalkingModule not running with iCubGazeboV3 #103

Closed lrapetti closed 2 years ago

lrapetti commented 2 years ago

Trying to follow the documentation in https://github.com/robotology/walking-controllers#computer-how-to-run-the-simulation, with the iCubGazeboV3 model (setting export YARP_ROBOT_NAME=iCubGazeboV3), it is failing with the following message:

$YARP_CLOCK=/clock WalkingModule
[INFO] |yarp.os.Port|/iiticublap163.iit.local/WalkingModule/3223/clock:i| Port /iiticublap163.iit.local/WalkingModule/3223/clock:i active at tcp://10.240.9.80:10124/
[INFO] |yarp.os.Network| Success: port-to-port persistent connection added.
[INFO] |yarp.os.Time| Waiting for clock server to start broadcasting data ...
[INFO] |yarp.os.impl.PortCoreInputUnit|/iiticublap163.iit.local/WalkingModule/3223/clock:i| Receiving input from /clock to /iiticublap163.iit.local/WalkingModule/3223/clock:i using tcp
[DEBUG] |yarp.dev.PolyDriver|remotecontrolboardremapper| Parameters are (REMOTE_CONTROLBOARD_OPTIONS (writeStrict on)) (axesNames (torso_pitch torso_roll torso_yaw l_shoulder_pitch l_shoulder_roll l_shoulder_yaw l_elbow r_shoulder_pitch r_shoulder_roll r_shoulder_yaw r_elbow l_hip_pitch l_hip_roll l_hip_yaw l_knee l_ankle_pitch l_ankle_roll r_hip_pitch r_hip_roll r_hip_yaw r_knee r_ankle_pitch r_ankle_roll)) (device remotecontrolboardremapper) (localPortPrefix "/walking-coordinator/remoteControlBoard") (remoteControlBoards ("/icubSim/torso" "/icubSim/left_arm" "/icubSim/right_arm" "/icubSim/left_leg" "/icubSim/right_leg"))
[DEBUG] |yarp.dev.PolyDriver|remote_controlboard| Parameters are (device remote_controlboard) (local "/walking-coordinator/remoteControlBoard/icubSim/torso") (remote "/icubSim/torso") (writeStrict on)
[INFO] |yarp.device.remote_controlboard| RemoteControlBoard is ENABLING the writeStrict option for all commands
[INFO] |yarp.os.Port|/walking-coordinator/remoteControlBoard/icubSim/torso/rpc:o| Port /walking-coordinator/remoteControlBoard/icubSim/torso/rpc:o active at tcp://10.240.9.80:10108/
[INFO] |yarp.os.Port|/walking-coordinator/remoteControlBoard/icubSim/torso/command:o| Port /walking-coordinator/remoteControlBoard/icubSim/torso/command:o active at tcp://10.240.9.80:10109/
[INFO] |yarp.os.Port|/walking-coordinator/remoteControlBoard/icubSim/torso/stateExt:i| Port /walking-coordinator/remoteControlBoard/icubSim/torso/stateExt:i active at tcp://10.240.9.80:10110/
[INFO] |yarp.os.impl.PortCoreOutputUnit|/walking-coordinator/remoteControlBoard/icubSim/torso/rpc:o| Sending output from /walking-coordinator/remoteControlBoard/icubSim/torso/rpc:o to /icubSim/torso/rpc:i using tcp
[INFO] |yarp.os.impl.PortCoreOutputUnit|/walking-coordinator/remoteControlBoard/icubSim/torso/command:o| Sending output from /walking-coordinator/remoteControlBoard/icubSim/torso/command:o to /icubSim/torso/command:i using udp
[INFO] |yarp.os.impl.PortCoreInputUnit|/walking-coordinator/remoteControlBoard/icubSim/torso/stateExt:i| Receiving input from /icubSim/torso/stateExt:o to /walking-coordinator/remoteControlBoard/icubSim/torso/stateExt:i using udp
[INFO] |yarp.dev.PolyDriver|remote_controlboard| Created device <remote_controlboard>. See C++ class RemoteControlBoard for documentation.
[DEBUG] |yarp.dev.PolyDriver|remote_controlboard| Parameters are (device remote_controlboard) (local "/walking-coordinator/remoteControlBoard/icubSim/left_arm") (remote "/icubSim/left_arm") (writeStrict on)
[INFO] |yarp.device.remote_controlboard| RemoteControlBoard is ENABLING the writeStrict option for all commands
[INFO] |yarp.os.Port|/walking-coordinator/remoteControlBoard/icubSim/left_arm/rpc:o| Port /walking-coordinator/remoteControlBoard/icubSim/left_arm/rpc:o active at tcp://10.240.9.80:10111/
[INFO] |yarp.os.Port|/walking-coordinator/remoteControlBoard/icubSim/left_arm/command:o| Port /walking-coordinator/remoteControlBoard/icubSim/left_arm/command:o active at tcp://10.240.9.80:10112/
[INFO] |yarp.os.Port|/walking-coordinator/remoteControlBoard/icubSim/left_arm/stateExt:i| Port /walking-coordinator/remoteControlBoard/icubSim/left_arm/stateExt:i active at tcp://10.240.9.80:10113/
[INFO] |yarp.os.impl.PortCoreOutputUnit|/walking-coordinator/remoteControlBoard/icubSim/left_arm/rpc:o| Sending output from /walking-coordinator/remoteControlBoard/icubSim/left_arm/rpc:o to /icubSim/left_arm/rpc:i using tcp
[INFO] |yarp.os.impl.PortCoreOutputUnit|/walking-coordinator/remoteControlBoard/icubSim/left_arm/command:o| Sending output from /walking-coordinator/remoteControlBoard/icubSim/left_arm/command:o to /icubSim/left_arm/command:i using udp
[INFO] |yarp.os.impl.PortCoreInputUnit|/walking-coordinator/remoteControlBoard/icubSim/left_arm/stateExt:i| Receiving input from /icubSim/left_arm/stateExt:o to /walking-coordinator/remoteControlBoard/icubSim/left_arm/stateExt:i using udp
[INFO] |yarp.dev.PolyDriver|remote_controlboard| Created device <remote_controlboard>. See C++ class RemoteControlBoard for documentation.
[DEBUG] |yarp.dev.PolyDriver|remote_controlboard| Parameters are (device remote_controlboard) (local "/walking-coordinator/remoteControlBoard/icubSim/right_arm") (remote "/icubSim/right_arm") (writeStrict on)
[INFO] |yarp.device.remote_controlboard| RemoteControlBoard is ENABLING the writeStrict option for all commands
[INFO] |yarp.os.Port|/walking-coordinator/remoteControlBoard/icubSim/right_arm/rpc:o| Port /walking-coordinator/remoteControlBoard/icubSim/right_arm/rpc:o active at tcp://10.240.9.80:10114/
[INFO] |yarp.os.Port|/walking-coordinator/remoteControlBoard/icubSim/right_arm/command:o| Port /walking-coordinator/remoteControlBoard/icubSim/right_arm/command:o active at tcp://10.240.9.80:10115/
[INFO] |yarp.os.Port|/walking-coordinator/remoteControlBoard/icubSim/right_arm/stateExt:i| Port /walking-coordinator/remoteControlBoard/icubSim/right_arm/stateExt:i active at tcp://10.240.9.80:10116/
[INFO] |yarp.os.impl.PortCoreOutputUnit|/walking-coordinator/remoteControlBoard/icubSim/right_arm/rpc:o| Sending output from /walking-coordinator/remoteControlBoard/icubSim/right_arm/rpc:o to /icubSim/right_arm/rpc:i using tcp
[INFO] |yarp.os.impl.PortCoreOutputUnit|/walking-coordinator/remoteControlBoard/icubSim/right_arm/command:o| Sending output from /walking-coordinator/remoteControlBoard/icubSim/right_arm/command:o to /icubSim/right_arm/command:i using udp
[INFO] |yarp.os.impl.PortCoreInputUnit|/walking-coordinator/remoteControlBoard/icubSim/right_arm/stateExt:i| Receiving input from /icubSim/right_arm/stateExt:o to /walking-coordinator/remoteControlBoard/icubSim/right_arm/stateExt:i using udp
[INFO] |yarp.dev.PolyDriver|remote_controlboard| Created device <remote_controlboard>. See C++ class RemoteControlBoard for documentation.
[DEBUG] |yarp.dev.PolyDriver|remote_controlboard| Parameters are (device remote_controlboard) (local "/walking-coordinator/remoteControlBoard/icubSim/left_leg") (remote "/icubSim/left_leg") (writeStrict on)
[INFO] |yarp.device.remote_controlboard| RemoteControlBoard is ENABLING the writeStrict option for all commands
[INFO] |yarp.os.Port|/walking-coordinator/remoteControlBoard/icubSim/left_leg/rpc:o| Port /walking-coordinator/remoteControlBoard/icubSim/left_leg/rpc:o active at tcp://10.240.9.80:10117/
[INFO] |yarp.os.Port|/walking-coordinator/remoteControlBoard/icubSim/left_leg/command:o| Port /walking-coordinator/remoteControlBoard/icubSim/left_leg/command:o active at tcp://10.240.9.80:10118/
[INFO] |yarp.os.Port|/walking-coordinator/remoteControlBoard/icubSim/left_leg/stateExt:i| Port /walking-coordinator/remoteControlBoard/icubSim/left_leg/stateExt:i active at tcp://10.240.9.80:10119/
[INFO] |yarp.os.impl.PortCoreOutputUnit|/walking-coordinator/remoteControlBoard/icubSim/left_leg/rpc:o| Sending output from /walking-coordinator/remoteControlBoard/icubSim/left_leg/rpc:o to /icubSim/left_leg/rpc:i using tcp
[INFO] |yarp.os.impl.PortCoreOutputUnit|/walking-coordinator/remoteControlBoard/icubSim/left_leg/command:o| Sending output from /walking-coordinator/remoteControlBoard/icubSim/left_leg/command:o to /icubSim/left_leg/command:i using udp
[INFO] |yarp.os.impl.PortCoreInputUnit|/walking-coordinator/remoteControlBoard/icubSim/left_leg/stateExt:i| Receiving input from /icubSim/left_leg/stateExt:o to /walking-coordinator/remoteControlBoard/icubSim/left_leg/stateExt:i using udp
[INFO] |yarp.dev.PolyDriver|remote_controlboard| Created device <remote_controlboard>. See C++ class RemoteControlBoard for documentation.
[DEBUG] |yarp.dev.PolyDriver|remote_controlboard| Parameters are (device remote_controlboard) (local "/walking-coordinator/remoteControlBoard/icubSim/right_leg") (remote "/icubSim/right_leg") (writeStrict on)
[INFO] |yarp.device.remote_controlboard| RemoteControlBoard is ENABLING the writeStrict option for all commands
[INFO] |yarp.os.Port|/walking-coordinator/remoteControlBoard/icubSim/right_leg/rpc:o| Port /walking-coordinator/remoteControlBoard/icubSim/right_leg/rpc:o active at tcp://10.240.9.80:10120/
[INFO] |yarp.os.Port|/walking-coordinator/remoteControlBoard/icubSim/right_leg/command:o| Port /walking-coordinator/remoteControlBoard/icubSim/right_leg/command:o active at tcp://10.240.9.80:10121/
[INFO] |yarp.os.Port|/walking-coordinator/remoteControlBoard/icubSim/right_leg/stateExt:i| Port /walking-coordinator/remoteControlBoard/icubSim/right_leg/stateExt:i active at tcp://10.240.9.80:10122/
[INFO] |yarp.os.impl.PortCoreOutputUnit|/walking-coordinator/remoteControlBoard/icubSim/right_leg/rpc:o| Sending output from /walking-coordinator/remoteControlBoard/icubSim/right_leg/rpc:o to /icubSim/right_leg/rpc:i using tcp
[INFO] |yarp.os.impl.PortCoreOutputUnit|/walking-coordinator/remoteControlBoard/icubSim/right_leg/command:o| Sending output from /walking-coordinator/remoteControlBoard/icubSim/right_leg/command:o to /icubSim/right_leg/command:i using udp
[INFO] |yarp.os.impl.PortCoreInputUnit|/walking-coordinator/remoteControlBoard/icubSim/right_leg/stateExt:i| Receiving input from /icubSim/right_leg/stateExt:o to /walking-coordinator/remoteControlBoard/icubSim/right_leg/stateExt:i using udp
[INFO] |yarp.dev.PolyDriver|remote_controlboard| Created device <remote_controlboard>. See C++ class RemoteControlBoard for documentation.
[INFO] |yarp.dev.PolyDriver|remotecontrolboardremapper| Created device <remotecontrolboardremapper>. See C++ class RemoteControlBoardRemapper for documentation.
[ERROR] [getStringFromSearchable] Missing field  leftFootWrenchInputPort_name
[ERROR] [RobotInterface::configureForceTorqueSensors] Unable to get the string from searchable.
[ERROR] [WalkingModule::configure] Unable to configure the Force Torque sensors.
[INFO] |yarp.os.RFModule| RFModule failed to open.
[INFO] |yarp.os.impl.PortCoreOutputUnit|/walking-coordinator/remoteControlBoard/icubSim/torso/rpc:o| Removing output from /walking-coordinator/remoteControlBoard/icubSim/torso/rpc:o to /icubSim/torso/rpc:i
[INFO] |yarp.os.impl.PortCoreOutputUnit|/walking-coordinator/remoteControlBoard/icubSim/torso/command:o| output for route /walking-coordinator/remoteControlBoard/icubSim/torso/command:o->udp->/icubSim/torso/command:i asking other side to close by out-of-band means
[INFO] |yarp.os.impl.PortCoreOutputUnit|/walking-coordinator/remoteControlBoard/icubSim/torso/command:o| Removing output from /walking-coordinator/remoteControlBoard/icubSim/torso/command:o to /icubSim/torso/command:i
[INFO] |yarp.os.impl.PortCoreInputUnit|/walking-coordinator/remoteControlBoard/icubSim/torso/stateExt:i| Removing input from /icubSim/torso/stateExt:o to /walking-coordinator/remoteControlBoard/icubSim/torso/stateExt:i
[INFO] |yarp.os.impl.PortCoreOutputUnit|/walking-coordinator/remoteControlBoard/icubSim/left_arm/rpc:o| Removing output from /walking-coordinator/remoteControlBoard/icubSim/left_arm/rpc:o to /icubSim/left_arm/rpc:i
[INFO] |yarp.os.impl.PortCoreOutputUnit|/walking-coordinator/remoteControlBoard/icubSim/left_arm/command:o| output for route /walking-coordinator/remoteControlBoard/icubSim/left_arm/command:o->udp->/icubSim/left_arm/command:i asking other side to close by out-of-band means
[INFO] |yarp.os.impl.PortCoreOutputUnit|/walking-coordinator/remoteControlBoard/icubSim/left_arm/command:o| Removing output from /walking-coordinator/remoteControlBoard/icubSim/left_arm/command:o to /icubSim/left_arm/command:i
[INFO] |yarp.os.impl.PortCoreInputUnit|/walking-coordinator/remoteControlBoard/icubSim/left_arm/stateExt:i| Removing input from /icubSim/left_arm/stateExt:o to /walking-coordinator/remoteControlBoard/icubSim/left_arm/stateExt:i
[INFO] |yarp.os.impl.PortCoreOutputUnit|/walking-coordinator/remoteControlBoard/icubSim/right_arm/rpc:o| Removing output from /walking-coordinator/remoteControlBoard/icubSim/right_arm/rpc:o to /icubSim/right_arm/rpc:i
[INFO] |yarp.os.impl.PortCoreOutputUnit|/walking-coordinator/remoteControlBoard/icubSim/right_arm/command:o| output for route /walking-coordinator/remoteControlBoard/icubSim/right_arm/command:o->udp->/icubSim/right_arm/command:i asking other side to close by out-of-band means
[INFO] |yarp.os.impl.PortCoreOutputUnit|/walking-coordinator/remoteControlBoard/icubSim/right_arm/command:o| Removing output from /walking-coordinator/remoteControlBoard/icubSim/right_arm/command:o to /icubSim/right_arm/command:i
[INFO] |yarp.os.impl.PortCoreInputUnit|/walking-coordinator/remoteControlBoard/icubSim/right_arm/stateExt:i| Removing input from /icubSim/right_arm/stateExt:o to /walking-coordinator/remoteControlBoard/icubSim/right_arm/stateExt:i
[INFO] |yarp.os.impl.PortCoreOutputUnit|/walking-coordinator/remoteControlBoard/icubSim/left_leg/rpc:o| Removing output from /walking-coordinator/remoteControlBoard/icubSim/left_leg/rpc:o to /icubSim/left_leg/rpc:i
[INFO] |yarp.os.impl.PortCoreOutputUnit|/walking-coordinator/remoteControlBoard/icubSim/left_leg/command:o| output for route /walking-coordinator/remoteControlBoard/icubSim/left_leg/command:o->udp->/icubSim/left_leg/command:i asking other side to close by out-of-band means
[INFO] |yarp.os.impl.PortCoreOutputUnit|/walking-coordinator/remoteControlBoard/icubSim/left_leg/command:o| Removing output from /walking-coordinator/remoteControlBoard/icubSim/left_leg/command:o to /icubSim/left_leg/command:i
[INFO] |yarp.os.impl.PortCoreInputUnit|/walking-coordinator/remoteControlBoard/icubSim/left_leg/stateExt:i| Removing input from /icubSim/left_leg/stateExt:o to /walking-coordinator/remoteControlBoard/icubSim/left_leg/stateExt:i
[INFO] |yarp.os.impl.PortCoreOutputUnit|/walking-coordinator/remoteControlBoard/icubSim/right_leg/rpc:o| Removing output from /walking-coordinator/remoteControlBoard/icubSim/right_leg/rpc:o to /icubSim/right_leg/rpc:i
[INFO] |yarp.os.impl.PortCoreOutputUnit|/walking-coordinator/remoteControlBoard/icubSim/right_leg/command:o| output for route /walking-coordinator/remoteControlBoard/icubSim/right_leg/command:o->udp->/icubSim/right_leg/command:i asking other side to close by out-of-band means
[INFO] |yarp.os.impl.PortCoreOutputUnit|/walking-coordinator/remoteControlBoard/icubSim/right_leg/command:o| Removing output from /walking-coordinator/remoteControlBoard/icubSim/right_leg/command:o to /icubSim/right_leg/command:i
[INFO] |yarp.os.impl.PortCoreInputUnit|/walking-coordinator/remoteControlBoard/icubSim/right_leg/stateExt:i| Removing input from /icubSim/right_leg/stateExt:o to /walking-coordinator/remoteControlBoard/icubSim/right_leg/stateExt:i
[WARNING] |yarp.os.NetworkClock| Destroying network clock
[INFO] |yarp.os.Network| Success: port-to-port persistent connection added.
[INFO] |yarp.os.impl.PortCoreInputUnit|/iiticublap163.iit.local/WalkingModule/3223/clock:i| Removing input from /clock to /iiticublap163.iit.local/WalkingModule/3223/clock:i
lrapetti commented 2 years ago

In particular the problem seems to be

[ERROR] [getStringFromSearchable] Missing field  leftFootWrenchInputPort_name
[ERROR] [RobotInterface::configureForceTorqueSensors] Unable to get the string from searchable.
[ERROR] [WalkingModule::configure] Unable to configure the Force Torque sensors.

cc @S-Dafarra @mebbaid @GiulioRomualdi

GiulioRomualdi commented 2 years ago

I think you're running an old version of the walking. leftFootWrenchInputPort_name does not exists anymore after https://github.com/robotology/walking-controllers/commit/1d11f0b6718ef3b26dc5a69ca105b2a5606d5173 try to pull master and compile again

lrapetti commented 2 years ago

Thanks, I spot the problem. I was in master but the WalkingModule was not compiled because WALKING_CONTROLLERS_COMPILE_WalkingModule was off since WALKING_CONTROLLERS_HAS_UnicyclePlanner was not found.

GiulioRomualdi commented 2 years ago

Also UnicyclePlanner should be in master. Once the transition to blf will be completed the cmake logic implemented in this repo will be changed and this kind of error will not appear anymore

lrapetti commented 2 years ago

Also UnicyclePlanner should be in master. Once the transition to blf will be completed the cmake logic implemented in this repo will be changed and this kind of error will not appear anymore

Nice! In order to fix it I have recompiled UnicyclePlanner in master but it didn't fix the issue. In order to fix it I have to remove the walking-controllers build repository and recompile it. After doing that everything was working properly! Thanks