Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Diary: make ergoCub walk in Gazebo #122

Closed
xela-95 opened this issue Mar 15, 2024 · 66 comments
Closed

Diary: make ergoCub walk in Gazebo #122

xela-95 opened this issue Mar 15, 2024 · 66 comments
Assignees

Comments

@xela-95
Copy link
Member

xela-95 commented Mar 15, 2024

This issue will track all the technical details concerning #94.

Using walking-controllers release v0.8.0 (latest): https://github.com/robotology/walking-controllers/releases/tag/v0.8.0

@xela-95 xela-95 self-assigned this Mar 15, 2024
@xela-95
Copy link
Member Author

xela-95 commented Mar 15, 2024

Conda environment for development

mamba create -n walking  -c robotology -c conda-forge \
bipedal-locomotion-framework \
idyntree \
yarp \
icub-contrib-common \
icub-main \
osqp-eigen \
qpoases \
libunicycle-footstep-planner \
libgz-sim8 \
whole-body-estimators \
icub-models \
ycm-cmake-modules \
ninja pkg-config cmake compilers clang clang-tools clang-format include-what-you-use catch2 

@xela-95
Copy link
Member Author

xela-95 commented Mar 15, 2024

Since in the walking controller tutorial I should launch gazebo classic with:

export YARP_CLOCK=/clock
gazebo -slibgazebo_yarp_clock.so

I think this is no more possible on Gazebo. Should I update the world SDF used in #103 adding the clock plugin?

CC @traversaro

@xela-95
Copy link
Member Author

xela-95 commented Mar 15, 2024

Since in the walking controller tutorial I should launch gazebo classic with:

export YARP_CLOCK=/clock
gazebo -slibgazebo_yarp_clock.so

I think this is no more possible on Gazebo. Should I update the world SDF used in #103 adding the clock plugin?

By doing this, the port that gets registered is registration name /IITICUBLAP218/gz/377448/clock instead of simply /clock 🤔

@xela-95
Copy link
Member Author

xela-95 commented Mar 15, 2024

By doing this, the port that gets registered is registration name /IITICUBLAP218/gz/377448/clock instead of simply /clock 🤔

The issue was caused by the YARP_CLOCK environment variable. If I do not set it the /clock port is opened and can be read.

@xela-95
Copy link
Member Author

xela-95 commented Mar 15, 2024

I'm at step 4/7 of the walking-controllers tutorial.

The command:

yarprobotinterface --config conf/launch_wholebodydynamics_ecub.xml  

referring to https://github.com/icub-tech-iit/ergocub-software/blob/335ed25cab5ff24ccdc4647b4ea318e0f5f9f305/urdf/ergoCub/conf/launch_wholebodydynamics_ecub.xml#L4.

The output logs are the following:

Details
[ERROR] |yarp.os.Property| cannot read from yarprobotinterface.ini
[DEBUG] Reading file /home/acroci/ergocub_ws/install/share/ergoCub/conf/launch_wholebodydynamics_ecub.xml
[WARNING] Invalid syntax while loading /home/acroci/ergocub_ws/install/share/ergoCub/conf/launch_wholebodydynamics_ecub.xml at line 1 . Expected document of type robot . Found devices
[DEBUG] yarprobotinterface: using xml parser for DTD v3.x
[DEBUG] Reading file /home/acroci/ergocub_ws/install/share/ergoCub/conf/launch_wholebodydynamics_ecub.xml
[INFO] Yarprobotinterface was started using the following enable_tags: 
[INFO] Yarprobotinterface was started using the following disable_tags: 
[DEBUG] List of all enable attributes found in the include tags: 
[DEBUG] List of all disable attributes found in the include tags: 
[DEBUG] Preprocessor complete in:  0.000169277 s
[WARNING] Invalid syntax while loading  at line 4 . "robot" element should contain the "portprefix" attribute. Using "name" attribute
[WARNING] *************************************************************************************
* yarprobotinterface 'portprefix' parameter does not follow convention,  *
* it MUST start with a leading '/' since it is used as the full prefix port name    *
*     name:    full port prefix name with leading '/',  e.g.  /robotName      *
* A temporary automatic fix will be done for you, but please fix your config file   *
*************************************************************************************
[INFO] |yarp.os.Port|/ergoCubGazeboV1/yarprobotinterface| Port /ergoCubGazeboV1/yarprobotinterface active at tcp://10.240.2.19:10046/
[INFO] startup phase starting...
[INFO] Opening device torso_mc with parameters [("robotName" = "ergoCubGazeboV1"), ("remote" = "/ergocubSim/torso"), ("local" = "/wholeBodyDynamics/torso")]
[DEBUG] |yarp.dev.PolyDriver|torso_mc| Parameters are (device remote_controlboard) (id torso_mc) (local "/wholeBodyDynamics/torso") (remote "/ergocubSim/torso") (robotName ergoCubGazeboV1)
[INFO] |yarp.os.Port|/wholeBodyDynamics/torso/rpc:o| Port /wholeBodyDynamics/torso/rpc:o active at tcp://10.240.2.19:10047/
[INFO] |yarp.os.Port|/wholeBodyDynamics/torso/command:o| Port /wholeBodyDynamics/torso/command:o active at tcp://10.240.2.19:10048/
[INFO] |yarp.os.Port|/wholeBodyDynamics/torso/stateExt:i| Port /wholeBodyDynamics/torso/stateExt:i active at tcp://10.240.2.19:10049/
[INFO] |yarp.os.impl.PortCoreOutputUnit|/wholeBodyDynamics/torso/rpc:o| Sending output from /wholeBodyDynamics/torso/rpc:o to /ergocubSim/torso/rpc:i using tcp
[INFO] |yarp.os.impl.PortCoreOutputUnit|/wholeBodyDynamics/torso/command:o| Sending output from /wholeBodyDynamics/torso/command:o to /ergocubSim/torso/command:i using udp
[INFO] |yarp.os.impl.PortCoreInputUnit|/wholeBodyDynamics/torso/stateExt:i| Receiving input from /ergocubSim/torso/stateExt:o to /wholeBodyDynamics/torso/stateExt:i using udp
[INFO] |yarp.dev.PolyDriver|torso_mc| Created device <remote_controlboard>. See C++ class RemoteControlBoard for documentation.
[INFO] Opening device left_arm_mc with parameters [("robotName" = "ergoCubGazeboV1"), ("remote" = "/ergocubSim/left_arm"), ("local" = "/wholeBodyDynamics/left_arm")]
[DEBUG] |yarp.dev.PolyDriver|left_arm_mc| Parameters are (device remote_controlboard) (id left_arm_mc) (local "/wholeBodyDynamics/left_arm") (remote "/ergocubSim/left_arm") (robotName ergoCubGazeboV1)
[INFO] |yarp.os.Port|/wholeBodyDynamics/left_arm/rpc:o| Port /wholeBodyDynamics/left_arm/rpc:o active at tcp://10.240.2.19:10050/
[INFO] |yarp.os.Port|/wholeBodyDynamics/left_arm/command:o| Port /wholeBodyDynamics/left_arm/command:o active at tcp://10.240.2.19:10051/
[INFO] |yarp.os.Port|/wholeBodyDynamics/left_arm/stateExt:i| Port /wholeBodyDynamics/left_arm/stateExt:i active at tcp://10.240.2.19:10052/
[INFO] |yarp.os.impl.PortCoreOutputUnit|/wholeBodyDynamics/left_arm/rpc:o| Sending output from /wholeBodyDynamics/left_arm/rpc:o to /ergocubSim/left_arm/rpc:i using tcp
[INFO] |yarp.os.impl.PortCoreOutputUnit|/wholeBodyDynamics/left_arm/command:o| Sending output from /wholeBodyDynamics/left_arm/command:o to /ergocubSim/left_arm/command:i using udp
[INFO] |yarp.os.impl.PortCoreInputUnit|/wholeBodyDynamics/left_arm/stateExt:i| Receiving input from /ergocubSim/left_arm/stateExt:o to /wholeBodyDynamics/left_arm/stateExt:i using udp
[INFO] |yarp.dev.PolyDriver|left_arm_mc| Created device <remote_controlboard>. See C++ class RemoteControlBoard for documentation.
[INFO] Opening device right_arm_mc with parameters [("robotName" = "ergoCubGazeboV1"), ("remote" = "/ergocubSim/right_arm"), ("local" = "/wholeBodyDynamics/right_arm")]
[DEBUG] |yarp.dev.PolyDriver|right_arm_mc| Parameters are (device remote_controlboard) (id right_arm_mc) (local "/wholeBodyDynamics/right_arm") (remote "/ergocubSim/right_arm") (robotName ergoCubGazeboV1)
[INFO] |yarp.os.Port|/wholeBodyDynamics/right_arm/rpc:o| Port /wholeBodyDynamics/right_arm/rpc:o active at tcp://10.240.2.19:10053/
[INFO] |yarp.os.Port|/wholeBodyDynamics/right_arm/command:o| Port /wholeBodyDynamics/right_arm/command:o active at tcp://10.240.2.19:10054/
[INFO] |yarp.os.Port|/wholeBodyDynamics/right_arm/stateExt:i| Port /wholeBodyDynamics/right_arm/stateExt:i active at tcp://10.240.2.19:10055/
[INFO] |yarp.os.impl.PortCoreOutputUnit|/wholeBodyDynamics/right_arm/rpc:o| Sending output from /wholeBodyDynamics/right_arm/rpc:o to /ergocubSim/right_arm/rpc:i using tcp
[INFO] |yarp.os.impl.PortCoreOutputUnit|/wholeBodyDynamics/right_arm/command:o| Sending output from /wholeBodyDynamics/right_arm/command:o to /ergocubSim/right_arm/command:i using udp
[INFO] |yarp.os.impl.PortCoreInputUnit|/wholeBodyDynamics/right_arm/stateExt:i| Receiving input from /ergocubSim/right_arm/stateExt:o to /wholeBodyDynamics/right_arm/stateExt:i using udp
[INFO] |yarp.dev.PolyDriver|right_arm_mc| Created device <remote_controlboard>. See C++ class RemoteControlBoard for documentation.
[INFO] Opening device left_leg_mc with parameters [("robotName" = "ergoCubGazeboV1"), ("remote" = "/ergocubSim/left_leg"), ("local" = "/wholeBodyDynamics/left_leg")]
[DEBUG] |yarp.dev.PolyDriver|left_leg_mc| Parameters are (device remote_controlboard) (id left_leg_mc) (local "/wholeBodyDynamics/left_leg") (remote "/ergocubSim/left_leg") (robotName ergoCubGazeboV1)
[INFO] |yarp.os.Port|/wholeBodyDynamics/left_leg/rpc:o| Port /wholeBodyDynamics/left_leg/rpc:o active at tcp://10.240.2.19:10056/
[INFO] |yarp.os.Port|/wholeBodyDynamics/left_leg/command:o| Port /wholeBodyDynamics/left_leg/command:o active at tcp://10.240.2.19:10057/
[INFO] |yarp.os.Port|/wholeBodyDynamics/left_leg/stateExt:i| Port /wholeBodyDynamics/left_leg/stateExt:i active at tcp://10.240.2.19:10058/
[INFO] |yarp.os.impl.PortCoreOutputUnit|/wholeBodyDynamics/left_leg/rpc:o| Sending output from /wholeBodyDynamics/left_leg/rpc:o to /ergocubSim/left_leg/rpc:i using tcp
[INFO] |yarp.os.impl.PortCoreOutputUnit|/wholeBodyDynamics/left_leg/command:o| Sending output from /wholeBodyDynamics/left_leg/command:o to /ergocubSim/left_leg/command:i using udp
[INFO] |yarp.os.impl.PortCoreInputUnit|/wholeBodyDynamics/left_leg/stateExt:i| Receiving input from /ergocubSim/left_leg/stateExt:o to /wholeBodyDynamics/left_leg/stateExt:i using udp
[INFO] |yarp.dev.PolyDriver|left_leg_mc| Created device <remote_controlboard>. See C++ class RemoteControlBoard for documentation.
[INFO] Opening device right_leg_mc with parameters [("robotName" = "ergoCubGazeboV1"), ("remote" = "/ergocubSim/right_leg"), ("local" = "/wholeBodyDynamics/right_leg")]
[DEBUG] |yarp.dev.PolyDriver|right_leg_mc| Parameters are (device remote_controlboard) (id right_leg_mc) (local "/wholeBodyDynamics/right_leg") (remote "/ergocubSim/right_leg") (robotName ergoCubGazeboV1)
[INFO] |yarp.os.Port|/wholeBodyDynamics/right_leg/rpc:o| Port /wholeBodyDynamics/right_leg/rpc:o active at tcp://10.240.2.19:10059/
[INFO] |yarp.os.Port|/wholeBodyDynamics/right_leg/command:o| Port /wholeBodyDynamics/right_leg/command:o active at tcp://10.240.2.19:10060/
[INFO] |yarp.os.Port|/wholeBodyDynamics/right_leg/stateExt:i| Port /wholeBodyDynamics/right_leg/stateExt:i active at tcp://10.240.2.19:10061/
[INFO] |yarp.os.impl.PortCoreOutputUnit|/wholeBodyDynamics/right_leg/rpc:o| Sending output from /wholeBodyDynamics/right_leg/rpc:o to /ergocubSim/right_leg/rpc:i using tcp
[INFO] |yarp.os.impl.PortCoreOutputUnit|/wholeBodyDynamics/right_leg/command:o| Sending output from /wholeBodyDynamics/right_leg/command:o to /ergocubSim/right_leg/command:i using udp
[INFO] |yarp.os.impl.PortCoreInputUnit|/wholeBodyDynamics/right_leg/stateExt:i| Receiving input from /ergocubSim/right_leg/stateExt:o to /wholeBodyDynamics/right_leg/stateExt:i using udp
[INFO] |yarp.dev.PolyDriver|right_leg_mc| Created device <remote_controlboard>. See C++ class RemoteControlBoard for documentation.
[INFO] Opening device head_mc with parameters [("robotName" = "ergoCubGazeboV1"), ("remote" = "/ergocubSim/head"), ("local" = "/wholeBodyDynamics/head")]
[DEBUG] |yarp.dev.PolyDriver|head_mc| Parameters are (device remote_controlboard) (id head_mc) (local "/wholeBodyDynamics/head") (remote "/ergocubSim/head") (robotName ergoCubGazeboV1)
[INFO] |yarp.os.Port|/wholeBodyDynamics/head/rpc:o| Port /wholeBodyDynamics/head/rpc:o active at tcp://10.240.2.19:10062/
[INFO] |yarp.os.Port|/wholeBodyDynamics/head/command:o| Port /wholeBodyDynamics/head/command:o active at tcp://10.240.2.19:10063/
[INFO] |yarp.os.Port|/wholeBodyDynamics/head/stateExt:i| Port /wholeBodyDynamics/head/stateExt:i active at tcp://10.240.2.19:10064/
[INFO] |yarp.os.impl.PortCoreOutputUnit|/wholeBodyDynamics/head/rpc:o| Sending output from /wholeBodyDynamics/head/rpc:o to /ergocubSim/head/rpc:i using tcp
[INFO] |yarp.os.impl.PortCoreOutputUnit|/wholeBodyDynamics/head/command:o| Sending output from /wholeBodyDynamics/head/command:o to /ergocubSim/head/command:i using udp
[INFO] |yarp.os.impl.PortCoreInputUnit|/wholeBodyDynamics/head/stateExt:i| Receiving input from /ergocubSim/head/stateExt:o to /wholeBodyDynamics/head/stateExt:i using udp
[INFO] |yarp.dev.PolyDriver|head_mc| Created device <remote_controlboard>. See C++ class RemoteControlBoard for documentation.
[INFO] Opening device head_inertial_hardware_device with parameters [("robotName" = "ergoCubGazeboV1"), ("remote" = "/ergocubSim/head/inertials"), ("local" = "/wholeBodyDynamics/imu")]
[DEBUG] |yarp.dev.PolyDriver|head_inertial_hardware_device| Parameters are (device multipleanalogsensorsclient) (id head_inertial_hardware_device) (local "/wholeBodyDynamics/imu") (remote "/ergocubSim/head/inertials") (robotName ergoCubGazeboV1)
[INFO] |yarp.os.Port|/wholeBodyDynamics/imu/rpc:i| Port /wholeBodyDynamics/imu/rpc:i active at tcp://10.240.2.19:10065/
[INFO] |yarp.os.Port|/wholeBodyDynamics/imu/measures:i| Port /wholeBodyDynamics/imu/measures:i active at tcp://10.240.2.19:10066/
[INFO] |yarp.os.impl.PortCoreOutputUnit|/wholeBodyDynamics/imu/rpc:i| Sending output from /wholeBodyDynamics/imu/rpc:i to /ergocubSim/head/inertials/rpc:o using tcp
[INFO] |yarp.os.impl.PortCoreInputUnit|/wholeBodyDynamics/imu/measures:i| Receiving input from /ergocubSim/head/inertials/measures:o to /wholeBodyDynamics/imu/measures:i using tcp
[DEBUG] |yarp.device.multipleanalogsensorsclient| Open complete
[INFO] |yarp.dev.PolyDriver|head_inertial_hardware_device| Created device <multipleanalogsensorsclient>. See C++ class MultipleAnalogSensorsClient for documentation.
[INFO] Opening device waist_inertial_hardware_device with parameters [("robotName" = "ergoCubGazeboV1"), ("remote" = "/ergocubSim/waist/inertials"), ("local" = "/wholeBodyDynamics/waist_imu")]
[DEBUG] |yarp.dev.PolyDriver|waist_inertial_hardware_device| Parameters are (device multipleanalogsensorsclient) (id waist_inertial_hardware_device) (local "/wholeBodyDynamics/waist_imu") (remote "/ergocubSim/waist/inertials") (robotName ergoCubGazeboV1)
[INFO] |yarp.os.Port|/wholeBodyDynamics/waist_imu/rpc:i| Port /wholeBodyDynamics/waist_imu/rpc:i active at tcp://10.240.2.19:10067/
[INFO] |yarp.os.Port|/wholeBodyDynamics/waist_imu/measures:i| Port /wholeBodyDynamics/waist_imu/measures:i active at tcp://10.240.2.19:10068/
[INFO] |yarp.os.impl.PortCoreOutputUnit|/wholeBodyDynamics/waist_imu/rpc:i| Sending output from /wholeBodyDynamics/waist_imu/rpc:i to /ergocubSim/waist/inertials/rpc:o using tcp
[INFO] |yarp.os.impl.PortCoreInputUnit|/wholeBodyDynamics/waist_imu/measures:i| Receiving input from /ergocubSim/waist/inertials/measures:o to /wholeBodyDynamics/waist_imu/measures:i using tcp
[DEBUG] |yarp.device.multipleanalogsensorsclient| Open complete
[INFO] |yarp.dev.PolyDriver|waist_inertial_hardware_device| Created device <multipleanalogsensorsclient>. See C++ class MultipleAnalogSensorsClient for documentation.
[INFO] Opening device ergocub_left_arm_ft with parameters [("robotName" = "ergoCubGazeboV1"), ("remote" = "/ergocubSim/left_arm/FT"), ("local" = "/wholeBodyDynamics/left_arm_ft_sensor")]
[DEBUG] |yarp.dev.PolyDriver|ergocub_left_arm_ft| Parameters are (device multipleanalogsensorsclient) (id ergocub_left_arm_ft) (local "/wholeBodyDynamics/left_arm_ft_sensor") (remote "/ergocubSim/left_arm/FT") (robotName ergoCubGazeboV1)
[INFO] |yarp.os.Port|/wholeBodyDynamics/left_arm_ft_sensor/rpc:i| Port /wholeBodyDynamics/left_arm_ft_sensor/rpc:i active at tcp://10.240.2.19:10069/
[INFO] |yarp.os.Port|/wholeBodyDynamics/left_arm_ft_sensor/measures:i| Port /wholeBodyDynamics/left_arm_ft_sensor/measures:i active at tcp://10.240.2.19:10070/
[INFO] |yarp.os.impl.PortCoreOutputUnit|/wholeBodyDynamics/left_arm_ft_sensor/rpc:i| Sending output from /wholeBodyDynamics/left_arm_ft_sensor/rpc:i to /ergocubSim/left_arm/FT/rpc:o using tcp
[INFO] |yarp.os.impl.PortCoreInputUnit|/wholeBodyDynamics/left_arm_ft_sensor/measures:i| Receiving input from /ergocubSim/left_arm/FT/measures:o to /wholeBodyDynamics/left_arm_ft_sensor/measures:i using tcp
[DEBUG] |yarp.device.multipleanalogsensorsclient| Open complete
[INFO] |yarp.dev.PolyDriver|ergocub_left_arm_ft| Created device <multipleanalogsensorsclient>. See C++ class MultipleAnalogSensorsClient for documentation.
[INFO] Opening device ergocub_right_arm_ft with parameters [("robotName" = "ergoCubGazeboV1"), ("remote" = "/ergocubSim/right_arm/FT"), ("local" = "/wholeBodyDynamics/right_arm_ft_sensor")]
[DEBUG] |yarp.dev.PolyDriver|ergocub_right_arm_ft| Parameters are (device multipleanalogsensorsclient) (id ergocub_right_arm_ft) (local "/wholeBodyDynamics/right_arm_ft_sensor") (remote "/ergocubSim/right_arm/FT") (robotName ergoCubGazeboV1)
[INFO] |yarp.os.Port|/wholeBodyDynamics/right_arm_ft_sensor/rpc:i| Port /wholeBodyDynamics/right_arm_ft_sensor/rpc:i active at tcp://10.240.2.19:10071/
[INFO] |yarp.os.Port|/wholeBodyDynamics/right_arm_ft_sensor/measures:i| Port /wholeBodyDynamics/right_arm_ft_sensor/measures:i active at tcp://10.240.2.19:10072/
[INFO] |yarp.os.impl.PortCoreOutputUnit|/wholeBodyDynamics/right_arm_ft_sensor/rpc:i| Sending output from /wholeBodyDynamics/right_arm_ft_sensor/rpc:i to /ergocubSim/right_arm/FT/rpc:o using tcp
[INFO] |yarp.os.impl.PortCoreInputUnit|/wholeBodyDynamics/right_arm_ft_sensor/measures:i| Receiving input from /ergocubSim/right_arm/FT/measures:o to /wholeBodyDynamics/right_arm_ft_sensor/measures:i using tcp
[DEBUG] |yarp.device.multipleanalogsensorsclient| Open complete
[INFO] |yarp.dev.PolyDriver|ergocub_right_arm_ft| Created device <multipleanalogsensorsclient>. See C++ class MultipleAnalogSensorsClient for documentation.
[INFO] Opening device ergocub_left_leg_ft with parameters [("robotName" = "ergoCubGazeboV1"), ("remote" = "/ergocubSim/left_leg/FT"), ("local" = "/wholeBodyDynamics/left_leg_ft_sensor")]
[DEBUG] |yarp.dev.PolyDriver|ergocub_left_leg_ft| Parameters are (device multipleanalogsensorsclient) (id ergocub_left_leg_ft) (local "/wholeBodyDynamics/left_leg_ft_sensor") (remote "/ergocubSim/left_leg/FT") (robotName ergoCubGazeboV1)
[INFO] |yarp.os.Port|/wholeBodyDynamics/left_leg_ft_sensor/rpc:i| Port /wholeBodyDynamics/left_leg_ft_sensor/rpc:i active at tcp://10.240.2.19:10073/
[INFO] |yarp.os.Port|/wholeBodyDynamics/left_leg_ft_sensor/measures:i| Port /wholeBodyDynamics/left_leg_ft_sensor/measures:i active at tcp://10.240.2.19:10074/
[INFO] |yarp.os.impl.PortCoreOutputUnit|/wholeBodyDynamics/left_leg_ft_sensor/rpc:i| Sending output from /wholeBodyDynamics/left_leg_ft_sensor/rpc:i to /ergocubSim/left_leg/FT/rpc:o using tcp
[INFO] |yarp.os.impl.PortCoreInputUnit|/wholeBodyDynamics/left_leg_ft_sensor/measures:i| Receiving input from /ergocubSim/left_leg/FT/measures:o to /wholeBodyDynamics/left_leg_ft_sensor/measures:i using tcp
[DEBUG] |yarp.device.multipleanalogsensorsclient| Open complete
[INFO] |yarp.dev.PolyDriver|ergocub_left_leg_ft| Created device <multipleanalogsensorsclient>. See C++ class MultipleAnalogSensorsClient for documentation.
[INFO] Opening device ergocub_right_leg_ft with parameters [("robotName" = "ergoCubGazeboV1"), ("remote" = "/ergocubSim/right_leg/FT"), ("local" = "/wholeBodyDynamics/right_leg_ft_sensor")]
[DEBUG] |yarp.dev.PolyDriver|ergocub_right_leg_ft| Parameters are (device multipleanalogsensorsclient) (id ergocub_right_leg_ft) (local "/wholeBodyDynamics/right_leg_ft_sensor") (remote "/ergocubSim/right_leg/FT") (robotName ergoCubGazeboV1)
[INFO] |yarp.os.Port|/wholeBodyDynamics/right_leg_ft_sensor/rpc:i| Port /wholeBodyDynamics/right_leg_ft_sensor/rpc:i active at tcp://10.240.2.19:10075/
[INFO] |yarp.os.Port|/wholeBodyDynamics/right_leg_ft_sensor/measures:i| Port /wholeBodyDynamics/right_leg_ft_sensor/measures:i active at tcp://10.240.2.19:10076/
[INFO] |yarp.os.impl.PortCoreOutputUnit|/wholeBodyDynamics/right_leg_ft_sensor/rpc:i| Sending output from /wholeBodyDynamics/right_leg_ft_sensor/rpc:i to /ergocubSim/right_leg/FT/rpc:o using tcp
[INFO] |yarp.os.impl.PortCoreInputUnit|/wholeBodyDynamics/right_leg_ft_sensor/measures:i| Receiving input from /ergocubSim/right_leg/FT/measures:o to /wholeBodyDynamics/right_leg_ft_sensor/measures:i using tcp
[DEBUG] |yarp.device.multipleanalogsensorsclient| Open complete
[INFO] |yarp.dev.PolyDriver|ergocub_right_leg_ft| Created device <multipleanalogsensorsclient>. See C++ class MultipleAnalogSensorsClient for documentation.
[INFO] Opening device wholebodydynamics with parameters [("robotName" = "ergoCubGazeboV1"), ("axesNames" = "(torso_roll,torso_pitch,torso_yaw,l_shoulder_pitch,l_shoulder_roll,l_shoulder_yaw,l_elbow,l_wrist_pitch,l_wrist_yaw,r_shoulder_pitch,r_shoulder_roll,r_shoulder_yaw,r_elbow,r_wrist_pitch,r_wrist_yaw,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)"), ("modelFile" = "model.urdf"), ("fixedFrameGravity" = "(0,0,-9.81)"), ("defaultContactFrames" = "(l_hand_palm,r_hand_palm,root_link,l_foot_front,l_foot_rear,r_foot_front,r_foot_rear,l_upper_leg,r_upper_leg)"), ("imuFrameName" = "head_imu_0"), ("useJointVelocity" = "true"), ("useJointAcceleration" = "true"), ("imuFilterCutoffInHz" = "3.0"), ("forceTorqueFilterCutoffInHz" = "3.0"), ("jointVelFilterCutoffInHz" = "3.0"), ("jointAccFilterCutoffInHz" = "3.0"), ("startWithZeroFTSensorOffsets" = "true"), ("useSkinForContacts" = "false"), ("publishNetExternalWrenches" = "true"), ("disableSensorReadCheckAtStartup" = "true"), ("GRAVITY_COMPENSATION" [group] = "(enableGravityCompensation true) (gravityCompensationBaseLink root_link) (gravityCompensationAxesNames (torso_roll,torso_pitch,torso_yaw,l_shoulder_pitch,l_shoulder_roll,l_shoulder_yaw,l_elbow,r_shoulder_pitch,r_shoulder_roll,r_shoulder_yaw,r_elbow))"), ("HW_USE_MAS_IMU" [group] = "(accelerometer head_imu_0) (gyroscope head_imu_0)"), ("WBD_OUTPUT_EXTERNAL_WRENCH_PORTS" [group] = "(/wholeBodyDynamics/left_foot_front/cartesianEndEffectorWrench:o (l_foot_front,l_sole,l_sole)) (/wholeBodyDynamics/left_foot_rear/cartesianEndEffectorWrench:o (l_foot_rear,l_sole,l_sole)) (/wholeBodyDynamics/right_foot_front/cartesianEndEffectorWrench:o (r_foot_front,r_sole,r_sole)) (/wholeBodyDynamics/right_foot_rear/cartesianEndEffectorWrench:o (r_foot_rear,r_sole,r_sole)) (/wholeBodyDynamics/left_arm/cartesianEndEffectorWrench:o (l_hand_palm,l_hand_palm,root_link)) (/wholeBodyDynamics/right_arm/cartesianEndEffectorWrench:o (r_hand_palm,r_hand_palm,root_link))"), ("multipleAnalogSensorsNames" [group] = "(SixAxisForceTorqueSensorsNames ("l_arm_ft", "r_arm_ft", "l_leg_ft", "r_leg_ft", "l_foot_front_ft", "r_foot_front_ft", "l_foot_rear_ft", "r_foot_rear_ft"))")]
[DEBUG] |yarp.dev.PolyDriver|wholebodydynamics| Parameters are (GRAVITY_COMPENSATION (enableGravityCompensation true) (gravityCompensationBaseLink root_link) (gravityCompensationAxesNames (torso_roll torso_pitch torso_yaw l_shoulder_pitch l_shoulder_roll l_shoulder_yaw l_elbow r_shoulder_pitch r_shoulder_roll r_shoulder_yaw r_elbow))) (HW_USE_MAS_IMU (accelerometer head_imu_0) (gyroscope head_imu_0)) (WBD_OUTPUT_EXTERNAL_WRENCH_PORTS ("/wholeBodyDynamics/left_foot_front/cartesianEndEffectorWrench:o" (l_foot_front l_sole l_sole)) ("/wholeBodyDynamics/left_foot_rear/cartesianEndEffectorWrench:o" (l_foot_rear l_sole l_sole)) ("/wholeBodyDynamics/right_foot_front/cartesianEndEffectorWrench:o" (r_foot_front r_sole r_sole)) ("/wholeBodyDynamics/right_foot_rear/cartesianEndEffectorWrench:o" (r_foot_rear r_sole r_sole)) ("/wholeBodyDynamics/left_arm/cartesianEndEffectorWrench:o" (l_hand_palm l_hand_palm root_link)) ("/wholeBodyDynamics/right_arm/cartesianEndEffectorWrench:o" (r_hand_palm r_hand_palm root_link))) (axesNames (torso_roll torso_pitch torso_yaw l_shoulder_pitch l_shoulder_roll l_shoulder_yaw l_elbow l_wrist_pitch l_wrist_yaw r_shoulder_pitch r_shoulder_roll r_shoulder_yaw r_elbow r_wrist_pitch r_wrist_yaw 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)) (defaultContactFrames (l_hand_palm r_hand_palm root_link l_foot_front l_foot_rear r_foot_front r_foot_rear l_upper_leg r_upper_leg)) (device wholebodydynamics) (disableSensorReadCheckAtStartup true) (fixedFrameGravity (0 0 -9.81000000000000049738)) (forceTorqueFilterCutoffInHz 3.0) (id wholebodydynamics) (imuFilterCutoffInHz 3.0) (imuFrameName head_imu_0) (jointAccFilterCutoffInHz 3.0) (jointVelFilterCutoffInHz 3.0) (modelFile model.urdf) (multipleAnalogSensorsNames (SixAxisForceTorqueSensorsNames (l_arm_ft r_arm_ft l_leg_ft r_leg_ft l_foot_front_ft r_foot_front_ft l_foot_rear_ft r_foot_rear_ft))) (publishNetExternalWrenches true) (robotName ergoCubGazeboV1) (startWithZeroFTSensorOffsets true) (useJointAcceleration true) (useJointVelocity true) (useSkinForContacts false)
[DEBUG] wholeBodyDynamics Statistics: Opening estimator.
[INFO] wholeBodyDynamics : Loading model from  
I/O warning : failed to load external entity ""
[ERROR] ModelLoader :: loadModelFromFile : Error in parsing model from URDF.
[ERROR] ExtWrenchesAndJointTorquesEstimator :: loadModelAndSensorsFromFileWithSpecifiedDOFs : Error in parsing from URDF.
[INFO] wholeBodyDynamics : impossible to create ExtWrenchesAndJointTorquesEstimator from file  model.urdf  ( full path:    ) 
[ERROR] wholeBodyDynamics: Problem in opening estimator object.
[ERROR] |yarp.dev.PolyDriver|wholebodydynamics| Driver <wholebodydynamics> was found but could not open
[WARNING] Cannot open device wholebodydynamics
[WARNING] Cannot open device wholebodydynamics
[WARNING] There was some problem opening one or more devices. Please check the log and your configuration
[ERROR] One or more devices failed opening... see previous log messages for more info
[INFO] Closing device wholebodydynamics
[INFO] Closing device ergocub_right_leg_ft
[INFO] |yarp.os.impl.PortCoreInputUnit|/wholeBodyDynamics/right_leg_ft_sensor/measures:i| Removing input from /ergocubSim/right_leg/FT/measures:o to /wholeBodyDynamics/right_leg_ft_sensor/measures:i
[INFO] |yarp.os.impl.PortCoreOutputUnit|/wholeBodyDynamics/right_leg_ft_sensor/rpc:i| Removing output from /wholeBodyDynamics/right_leg_ft_sensor/rpc:i to /ergocubSim/right_leg/FT/rpc:o
[DEBUG] |yarp.device.multipleanalogsensorsclient| Close complete
[INFO] Closing device ergocub_left_leg_ft
[INFO] |yarp.os.impl.PortCoreInputUnit|/wholeBodyDynamics/left_leg_ft_sensor/measures:i| Removing input from /ergocubSim/left_leg/FT/measures:o to /wholeBodyDynamics/left_leg_ft_sensor/measures:i
[INFO] |yarp.os.impl.PortCoreOutputUnit|/wholeBodyDynamics/left_leg_ft_sensor/rpc:i| Removing output from /wholeBodyDynamics/left_leg_ft_sensor/rpc:i to /ergocubSim/left_leg/FT/rpc:o
[DEBUG] |yarp.device.multipleanalogsensorsclient| Close complete
[INFO] Closing device ergocub_right_arm_ft
[INFO] |yarp.os.impl.PortCoreInputUnit|/wholeBodyDynamics/right_arm_ft_sensor/measures:i| Removing input from /ergocubSim/right_arm/FT/measures:o to /wholeBodyDynamics/right_arm_ft_sensor/measures:i
[INFO] |yarp.os.impl.PortCoreOutputUnit|/wholeBodyDynamics/right_arm_ft_sensor/rpc:i| Removing output from /wholeBodyDynamics/right_arm_ft_sensor/rpc:i to /ergocubSim/right_arm/FT/rpc:o
[DEBUG] |yarp.device.multipleanalogsensorsclient| Close complete
[INFO] Closing device ergocub_left_arm_ft
[INFO] |yarp.os.impl.PortCoreInputUnit|/wholeBodyDynamics/left_arm_ft_sensor/measures:i| Removing input from /ergocubSim/left_arm/FT/measures:o to /wholeBodyDynamics/left_arm_ft_sensor/measures:i
[INFO] |yarp.os.impl.PortCoreOutputUnit|/wholeBodyDynamics/left_arm_ft_sensor/rpc:i| Removing output from /wholeBodyDynamics/left_arm_ft_sensor/rpc:i to /ergocubSim/left_arm/FT/rpc:o
[DEBUG] |yarp.device.multipleanalogsensorsclient| Close complete
[INFO] Closing device waist_inertial_hardware_device
[INFO] |yarp.os.impl.PortCoreInputUnit|/wholeBodyDynamics/waist_imu/measures:i| Removing input from /ergocubSim/waist/inertials/measures:o to /wholeBodyDynamics/waist_imu/measures:i
[INFO] |yarp.os.impl.PortCoreOutputUnit|/wholeBodyDynamics/waist_imu/rpc:i| Removing output from /wholeBodyDynamics/waist_imu/rpc:i to /ergocubSim/waist/inertials/rpc:o
[DEBUG] |yarp.device.multipleanalogsensorsclient| Close complete
[INFO] Closing device head_inertial_hardware_device
[INFO] |yarp.os.impl.PortCoreInputUnit|/wholeBodyDynamics/imu/measures:i| Removing input from /ergocubSim/head/inertials/measures:o to /wholeBodyDynamics/imu/measures:i
[INFO] |yarp.os.impl.PortCoreOutputUnit|/wholeBodyDynamics/imu/rpc:i| Removing output from /wholeBodyDynamics/imu/rpc:i to /ergocubSim/head/inertials/rpc:o
[DEBUG] |yarp.device.multipleanalogsensorsclient| Close complete
[INFO] Closing device head_mc
[INFO] |yarp.os.impl.PortCoreOutputUnit|/wholeBodyDynamics/head/rpc:o| Removing output from /wholeBodyDynamics/head/rpc:o to /ergocubSim/head/rpc:i
[INFO] |yarp.os.impl.PortCoreOutputUnit|/wholeBodyDynamics/head/command:o| output for route /wholeBodyDynamics/head/command:o->udp->/ergocubSim/head/command:i asking other side to close by out-of-band means
[INFO] |yarp.os.impl.PortCoreOutputUnit|/wholeBodyDynamics/head/command:o| Removing output from /wholeBodyDynamics/head/command:o to /ergocubSim/head/command:i
[INFO] |yarp.os.impl.PortCoreInputUnit|/wholeBodyDynamics/head/stateExt:i| Removing input from /ergocubSim/head/stateExt:o to /wholeBodyDynamics/head/stateExt:i
[INFO] Closing device right_leg_mc
[INFO] |yarp.os.impl.PortCoreOutputUnit|/wholeBodyDynamics/right_leg/rpc:o| Removing output from /wholeBodyDynamics/right_leg/rpc:o to /ergocubSim/right_leg/rpc:i
[INFO] |yarp.os.impl.PortCoreOutputUnit|/wholeBodyDynamics/right_leg/command:o| output for route /wholeBodyDynamics/right_leg/command:o->udp->/ergocubSim/right_leg/command:i asking other side to close by out-of-band means
[INFO] |yarp.os.impl.PortCoreOutputUnit|/wholeBodyDynamics/right_leg/command:o| Removing output from /wholeBodyDynamics/right_leg/command:o to /ergocubSim/right_leg/command:i
[INFO] |yarp.os.impl.PortCoreInputUnit|/wholeBodyDynamics/right_leg/stateExt:i| Removing input from /ergocubSim/right_leg/stateExt:o to /wholeBodyDynamics/right_leg/stateExt:i
[INFO] Closing device left_leg_mc
[INFO] |yarp.os.impl.PortCoreOutputUnit|/wholeBodyDynamics/left_leg/rpc:o| Removing output from /wholeBodyDynamics/left_leg/rpc:o to /ergocubSim/left_leg/rpc:i
[INFO] |yarp.os.impl.PortCoreOutputUnit|/wholeBodyDynamics/left_leg/command:o| output for route /wholeBodyDynamics/left_leg/command:o->udp->/ergocubSim/left_leg/command:i asking other side to close by out-of-band means
[INFO] |yarp.os.impl.PortCoreOutputUnit|/wholeBodyDynamics/left_leg/command:o| Removing output from /wholeBodyDynamics/left_leg/command:o to /ergocubSim/left_leg/command:i
[INFO] |yarp.os.impl.PortCoreInputUnit|/wholeBodyDynamics/left_leg/stateExt:i| Removing input from /ergocubSim/left_leg/stateExt:o to /wholeBodyDynamics/left_leg/stateExt:i
[INFO] Closing device right_arm_mc
[INFO] |yarp.os.impl.PortCoreOutputUnit|/wholeBodyDynamics/right_arm/rpc:o| Removing output from /wholeBodyDynamics/right_arm/rpc:o to /ergocubSim/right_arm/rpc:i
[INFO] |yarp.os.impl.PortCoreOutputUnit|/wholeBodyDynamics/right_arm/command:o| output for route /wholeBodyDynamics/right_arm/command:o->udp->/ergocubSim/right_arm/command:i asking other side to close by out-of-band means
[INFO] |yarp.os.impl.PortCoreOutputUnit|/wholeBodyDynamics/right_arm/command:o| Removing output from /wholeBodyDynamics/right_arm/command:o to /ergocubSim/right_arm/command:i
[INFO] |yarp.os.impl.PortCoreInputUnit|/wholeBodyDynamics/right_arm/stateExt:i| Removing input from /ergocubSim/right_arm/stateExt:o to /wholeBodyDynamics/right_arm/stateExt:i
[INFO] Closing device left_arm_mc
[INFO] |yarp.os.impl.PortCoreOutputUnit|/wholeBodyDynamics/left_arm/rpc:o| Removing output from /wholeBodyDynamics/left_arm/rpc:o to /ergocubSim/left_arm/rpc:i
[INFO] |yarp.os.impl.PortCoreOutputUnit|/wholeBodyDynamics/left_arm/command:o| output for route /wholeBodyDynamics/left_arm/command:o->udp->/ergocubSim/left_arm/command:i asking other side to close by out-of-band means
[INFO] |yarp.os.impl.PortCoreOutputUnit|/wholeBodyDynamics/left_arm/command:o| Removing output from /wholeBodyDynamics/left_arm/command:o to /ergocubSim/left_arm/command:i
[INFO] |yarp.os.impl.PortCoreInputUnit|/wholeBodyDynamics/left_arm/stateExt:i| Removing input from /ergocubSim/left_arm/stateExt:o to /wholeBodyDynamics/left_arm/stateExt:i
[INFO] Closing device torso_mc
[INFO] |yarp.os.impl.PortCoreOutputUnit|/wholeBodyDynamics/torso/rpc:o| Removing output from /wholeBodyDynamics/torso/rpc:o to /ergocubSim/torso/rpc:i
[INFO] |yarp.os.impl.PortCoreOutputUnit|/wholeBodyDynamics/torso/command:o| output for route /wholeBodyDynamics/torso/command:o->udp->/ergocubSim/torso/command:i asking other side to close by out-of-band means
[INFO] |yarp.os.impl.PortCoreOutputUnit|/wholeBodyDynamics/torso/command:o| Removing output from /wholeBodyDynamics/torso/command:o to /ergocubSim/torso/command:i
[INFO] |yarp.os.impl.PortCoreInputUnit|/wholeBodyDynamics/torso/stateExt:i| Removing input from /ergocubSim/torso/stateExt:o to /wholeBodyDynamics/torso/stateExt:i
[ERROR] Error in startup phase... see previous messages for more info
[WARNING] Interrupt # 1 # received.
[INFO] Interrupt received. Stopping all running threads.
[INFO] interrupt1 phase starting...
[INFO] interrupt1 phase finished.
[INFO] shutdown phase starting...
[INFO] Entering action level 2 of phase shutdown
[INFO] Executing detach action, level 2 on device wholebodydynamics with parameters []
[ERROR] wholebodydynamics is neither a wrapper nor a multiplewrapper, therefore it cannot have detach actions
[ERROR] Cannot run detach action on device wholebodydynamics
[INFO] All actions for action level 2 of shutdown phase started. Waiting for unfinished actions.
[INFO] All actions for action level 2 of shutdown phase finished.
[WARNING] There was some problem running actions for shutdown phase . Please check the log and your configuration
[INFO] Closing device wholebodydynamics
[INFO] Closing device ergocub_right_leg_ft
[INFO] Closing device ergocub_left_leg_ft
[INFO] Closing device ergocub_right_arm_ft
[INFO] Closing device ergocub_left_arm_ft
[INFO] Closing device waist_inertial_hardware_device
[INFO] Closing device head_inertial_hardware_device
[INFO] Closing device head_mc
[INFO] Closing device right_leg_mc
[INFO] Closing device left_leg_mc
[INFO] Closing device right_arm_mc
[INFO] Closing device left_arm_mc
[INFO] Closing device torso_mc
[INFO] shutdown phase finished.
[ERROR] Error in shutdown phase... see previous messages for more info
[INFO] |yarp.os.RFModule| RFModule failed to open.

@xela-95
Copy link
Member Author

xela-95 commented Mar 15, 2024

CC @S-Dafarra

@traversaro
Copy link
Member

It seems that wholebodydynamics is not able to start, in particular this line:

[INFO] wholeBodyDynamics : impossible to create ExtWrenchesAndJointTorquesEstimator from file  model.urdf  ( full path:    ) 

suggest that it was not able to find the model. Did you set YARP_ROBOT_NAME ?

@traversaro
Copy link
Member

This feature may be relevant:

@xela-95
Copy link
Member Author

xela-95 commented Mar 18, 2024

It seems that wholebodydynamics is not able to start, in particular this line:

[INFO] wholeBodyDynamics : impossible to create ExtWrenchesAndJointTorquesEstimator from file  model.urdf  ( full path:    ) 

suggest that it was not able to find the model. Did you set YARP_ROBOT_NAME ?

In Step 1, I've done export YARP_ROBOT_NAME="ergoCubGazeboV1". We are using the model in the folder named ergoCubGazeboV1_1. But also trying to update the YARP_ROBOT_NAME variable to this name produces the same error

The value of YARP_DATA_DIRS is the following:

:<CONDA_PREFIX>/share/ICUBcontrib:<CONDA_PREFIX>/share/iCub:<CONDA_PREFIX>/share/iCub:<CONDA_PREFIX>/share/yarp

@traversaro
Copy link
Member

To debug more easily that logic, can you run the yarp resource find model.urdf command and check its output? By the way, it seems that somehow <CONDA_PREFIX>/share/ergoCub is missing from YARP_DATA_DIRS, not sure why.

@traversaro
Copy link
Member

Ahh, probably you did not installed ergocub-software as you are using your local model?

@xela-95
Copy link
Member Author

xela-95 commented Mar 18, 2024

Ahh, probably you did not installed ergocub-software as you are using your local model?

Yep exactly! Do I have to install it and update some of the variables?

@xela-95
Copy link
Member Author

xela-95 commented Mar 18, 2024

This is the output of yarp resource find model.urdf (having set YARP_ROBOT_NAME="ergoCubGazeboV1_1"):

[DEBUG] |yarp.os.ResourceFinder| configuring
[DEBUG] |yarp.os.ResourceFinder| finding file [from]
[DEBUG] |yarp.os.ResourceFinder| checking [/home/acroci/ergocub_ws/install/share/ergoCub/conf/from] (pwd)
[DEBUG] |yarp.os.ResourceFinder| checking [/home/acroci/.config/yarp/robots/ergoCubGazeboV1_1] (robot YARP_CONFIG_HOME)
[DEBUG] |yarp.os.ResourceFinder| checking [/home/acroci/.local/share/yarp/robots/ergoCubGazeboV1_1] (robot YARP_DATA_HOME)
[DEBUG] |yarp.os.ResourceFinder| checking [/etc/xdg/xdg-ubuntu/yarp/robots/ergoCubGazeboV1_1] (robot YARP_CONFIG_DIRS)
[DEBUG] |yarp.os.ResourceFinder| checking [/etc/xdg/yarp/robots/ergoCubGazeboV1_1] (robot YARP_CONFIG_DIRS)
[DEBUG] |yarp.os.ResourceFinder| checking [robots/ergoCubGazeboV1_1] (robot YARP_DATA_DIRS)
[DEBUG] |yarp.os.ResourceFinder| checking [/home/acroci/mambaforge/envs/walking/share/ICUBcontrib/robots/ergoCubGazeboV1_1] (robot YARP_DATA_DIRS)
[DEBUG] |yarp.os.ResourceFinder| found /home/acroci/mambaforge/envs/walking/share/ICUBcontrib/robots/ergoCubGazeboV1_1
[DEBUG] |yarp.os.ResourceFinder| checking [/home/acroci/mambaforge/envs/walking/share/iCub/robots/ergoCubGazeboV1_1] (robot YARP_DATA_DIRS)
[DEBUG] |yarp.os.ResourceFinder| checking [/home/acroci/mambaforge/envs/walking/share/yarp/robots/ergoCubGazeboV1_1] (robot YARP_DATA_DIRS)
[DEBUG] |yarp.os.ResourceFinder| checking [config/path.d] (robot path.d YARP_DATA_DIRS)
[DEBUG] |yarp.os.ResourceFinder| checking [/home/acroci/mambaforge/envs/walking/share/ICUBcontrib/config/path.d] (robot path.d YARP_DATA_DIRS)
[DEBUG] |yarp.os.ResourceFinder| checking [/home/acroci/mambaforge/envs/walking/share/iCub/config/path.d] (robot path.d YARP_DATA_DIRS)
[DEBUG] |yarp.os.ResourceFinder| checking [/home/acroci/mambaforge/envs/walking/share/yarp/config/path.d] (robot path.d YARP_DATA_DIRS)
[DEBUG] |yarp.os.ResourceFinder| found /home/acroci/mambaforge/envs/walking/share/yarp/config/path.d
[DEBUG] |yarp.os.ResourceFinder| checking [/home/acroci/mambaforge/envs/walking/share/BipedalLocomotionFramework/robots/ergoCubGazeboV1_1] (robot yarp.d)
[DEBUG] |yarp.os.ResourceFinder| checking [/home/acroci/mambaforge/envs/walking/share/ICUBcontrib/robots/ergoCubGazeboV1_1/from] (robot)
[DEBUG] |yarp.os.ResourceFinder| checking [/home/acroci/.config/yarp/from] (YARP_CONFIG_HOME)
[DEBUG] |yarp.os.ResourceFinder| checking [/home/acroci/.local/share/yarp/from] (YARP_DATA_HOME)
[DEBUG] |yarp.os.ResourceFinder| checking [/etc/xdg/xdg-ubuntu/yarp/from] (YARP_CONFIG_DIRS)
[DEBUG] |yarp.os.ResourceFinder| checking [/etc/xdg/yarp/from] (YARP_CONFIG_DIRS)
[DEBUG] |yarp.os.ResourceFinder| checking [from] (YARP_DATA_DIRS)
[DEBUG] |yarp.os.ResourceFinder| checking [/home/acroci/mambaforge/envs/walking/share/ICUBcontrib/from] (YARP_DATA_DIRS)
[DEBUG] |yarp.os.ResourceFinder| checking [/home/acroci/mambaforge/envs/walking/share/iCub/from] (YARP_DATA_DIRS)
[DEBUG] |yarp.os.ResourceFinder| checking [/home/acroci/mambaforge/envs/walking/share/yarp/from] (YARP_DATA_DIRS)
[DEBUG] |yarp.os.ResourceFinder| checking [/home/acroci/mambaforge/envs/walking/share/BipedalLocomotionFramework/from] (yarp.d)
[DEBUG] |yarp.os.ResourceFinder| did not find from
""

@traversaro
Copy link
Member

Probably you can just add the install/share/ergoCub folder from the ergocub_ws to YARP_DATA_DIRS, so the YARP facilities to find files can find the model.urdf of the model. If necessary you can add it there by copying it from ergocub-software .

@xela-95
Copy link
Member Author

xela-95 commented Mar 18, 2024

Probably you can just add the install/share/ergoCub folder from the ergocub_ws to YARP_DATA_DIRS, so the YARP facilities to find files can find the model.urdf of the model. If necessary you can add it there by copying it from ergocub-software .

By adding that to YARP_DATA_DIRS made yarprobotinterface find the URDF file. Since all the modifications I've done for gz-sim-yarp-plugins are in the SDF file version of model, is there a way to load that file or should I convert it back to a URDF?

Details
yarprobotinterface --config launch_wholebodydynamics_ecub.xml                                                       ✔  walking   10:14:44  
[ERROR] |yarp.os.Property| cannot read from yarprobotinterface.ini
[DEBUG] Reading file /home/acroci/ergocub_ws/install/share/ergoCub/conf/launch_wholebodydynamics_ecub.xml
[WARNING] Invalid syntax while loading /home/acroci/ergocub_ws/install/share/ergoCub/conf/launch_wholebodydynamics_ecub.xml at line 1 . Expected document of type robot . Found devices
[DEBUG] yarprobotinterface: using xml parser for DTD v3.x
[DEBUG] Reading file /home/acroci/ergocub_ws/install/share/ergoCub/conf/launch_wholebodydynamics_ecub.xml
[INFO] Yarprobotinterface was started using the following enable_tags: 
[INFO] Yarprobotinterface was started using the following disable_tags: 
[DEBUG] List of all enable attributes found in the include tags: 
[DEBUG] List of all disable attributes found in the include tags: 
[DEBUG] Preprocessor complete in:  0.00037384 s
[WARNING] Invalid syntax while loading  at line 4 . "robot" element should contain the "portprefix" attribute. Using "name" attribute
[WARNING] *************************************************************************************
* yarprobotinterface 'portprefix' parameter does not follow convention,  *
* it MUST start with a leading '/' since it is used as the full prefix port name    *
*     name:    full port prefix name with leading '/',  e.g.  /robotName      *
* A temporary automatic fix will be done for you, but please fix your config file   *
*************************************************************************************
[INFO] |yarp.os.Port|/ergoCubGazeboV1/yarprobotinterface| Port /ergoCubGazeboV1/yarprobotinterface active at tcp://192.168.220.201:10002/
[INFO] startup phase starting...
[INFO] Opening device torso_mc with parameters [("robotName" = "ergoCubGazeboV1"), ("remote" = "/ergocubSim/torso"), ("local" = "/wholeBodyDynamics/torso")]
[DEBUG] |yarp.dev.PolyDriver|torso_mc| Parameters are (device remote_controlboard) (id torso_mc) (local "/wholeBodyDynamics/torso") (remote "/ergocubSim/torso") (robotName ergoCubGazeboV1)
[INFO] |yarp.os.Port|/wholeBodyDynamics/torso/rpc:o| Port /wholeBodyDynamics/torso/rpc:o active at tcp://192.168.220.201:10003/
[INFO] |yarp.os.Port|/wholeBodyDynamics/torso/command:o| Port /wholeBodyDynamics/torso/command:o active at tcp://192.168.220.201:10004/
[INFO] |yarp.os.Port|/wholeBodyDynamics/torso/stateExt:i| Port /wholeBodyDynamics/torso/stateExt:i active at tcp://192.168.220.201:10005/
[INFO] |yarp.os.impl.PortCoreOutputUnit|/wholeBodyDynamics/torso/rpc:o| Sending output from /wholeBodyDynamics/torso/rpc:o to /ergocubSim/torso/rpc:i using tcp
[INFO] |yarp.os.impl.PortCoreOutputUnit|/wholeBodyDynamics/torso/command:o| Sending output from /wholeBodyDynamics/torso/command:o to /ergocubSim/torso/command:i using udp
[INFO] |yarp.os.impl.PortCoreInputUnit|/wholeBodyDynamics/torso/stateExt:i| Receiving input from /ergocubSim/torso/stateExt:o to /wholeBodyDynamics/torso/stateExt:i using udp
[INFO] |yarp.dev.PolyDriver|torso_mc| Created device <remote_controlboard>. See C++ class RemoteControlBoard for documentation.
[INFO] Opening device left_arm_mc with parameters [("robotName" = "ergoCubGazeboV1"), ("remote" = "/ergocubSim/left_arm"), ("local" = "/wholeBodyDynamics/left_arm")]
[DEBUG] |yarp.dev.PolyDriver|left_arm_mc| Parameters are (device remote_controlboard) (id left_arm_mc) (local "/wholeBodyDynamics/left_arm") (remote "/ergocubSim/left_arm") (robotName ergoCubGazeboV1)
[INFO] |yarp.os.Port|/wholeBodyDynamics/left_arm/rpc:o| Port /wholeBodyDynamics/left_arm/rpc:o active at tcp://192.168.220.201:10006/
[INFO] |yarp.os.Port|/wholeBodyDynamics/left_arm/command:o| Port /wholeBodyDynamics/left_arm/command:o active at tcp://192.168.220.201:10007/
[INFO] |yarp.os.Port|/wholeBodyDynamics/left_arm/stateExt:i| Port /wholeBodyDynamics/left_arm/stateExt:i active at tcp://192.168.220.201:10008/
[INFO] |yarp.os.impl.PortCoreOutputUnit|/wholeBodyDynamics/left_arm/rpc:o| Sending output from /wholeBodyDynamics/left_arm/rpc:o to /ergocubSim/left_arm/rpc:i using tcp
[INFO] |yarp.os.impl.PortCoreOutputUnit|/wholeBodyDynamics/left_arm/command:o| Sending output from /wholeBodyDynamics/left_arm/command:o to /ergocubSim/left_arm/command:i using udp
[INFO] |yarp.os.impl.PortCoreInputUnit|/wholeBodyDynamics/left_arm/stateExt:i| Receiving input from /ergocubSim/left_arm/stateExt:o to /wholeBodyDynamics/left_arm/stateExt:i using udp
[INFO] |yarp.dev.PolyDriver|left_arm_mc| Created device <remote_controlboard>. See C++ class RemoteControlBoard for documentation.
[INFO] Opening device right_arm_mc with parameters [("robotName" = "ergoCubGazeboV1"), ("remote" = "/ergocubSim/right_arm"), ("local" = "/wholeBodyDynamics/right_arm")]
[DEBUG] |yarp.dev.PolyDriver|right_arm_mc| Parameters are (device remote_controlboard) (id right_arm_mc) (local "/wholeBodyDynamics/right_arm") (remote "/ergocubSim/right_arm") (robotName ergoCubGazeboV1)
[INFO] |yarp.os.Port|/wholeBodyDynamics/right_arm/rpc:o| Port /wholeBodyDynamics/right_arm/rpc:o active at tcp://192.168.220.201:10009/
[INFO] |yarp.os.Port|/wholeBodyDynamics/right_arm/command:o| Port /wholeBodyDynamics/right_arm/command:o active at tcp://192.168.220.201:10010/
[INFO] |yarp.os.Port|/wholeBodyDynamics/right_arm/stateExt:i| Port /wholeBodyDynamics/right_arm/stateExt:i active at tcp://192.168.220.201:10011/
[INFO] |yarp.os.impl.PortCoreOutputUnit|/wholeBodyDynamics/right_arm/rpc:o| Sending output from /wholeBodyDynamics/right_arm/rpc:o to /ergocubSim/right_arm/rpc:i using tcp
[INFO] |yarp.os.impl.PortCoreOutputUnit|/wholeBodyDynamics/right_arm/command:o| Sending output from /wholeBodyDynamics/right_arm/command:o to /ergocubSim/right_arm/command:i using udp
[INFO] |yarp.os.impl.PortCoreInputUnit|/wholeBodyDynamics/right_arm/stateExt:i| Receiving input from /ergocubSim/right_arm/stateExt:o to /wholeBodyDynamics/right_arm/stateExt:i using udp
[INFO] |yarp.dev.PolyDriver|right_arm_mc| Created device <remote_controlboard>. See C++ class RemoteControlBoard for documentation.
[INFO] Opening device left_leg_mc with parameters [("robotName" = "ergoCubGazeboV1"), ("remote" = "/ergocubSim/left_leg"), ("local" = "/wholeBodyDynamics/left_leg")]
[DEBUG] |yarp.dev.PolyDriver|left_leg_mc| Parameters are (device remote_controlboard) (id left_leg_mc) (local "/wholeBodyDynamics/left_leg") (remote "/ergocubSim/left_leg") (robotName ergoCubGazeboV1)
[INFO] |yarp.os.Port|/wholeBodyDynamics/left_leg/rpc:o| Port /wholeBodyDynamics/left_leg/rpc:o active at tcp://192.168.220.201:10012/
[INFO] |yarp.os.Port|/wholeBodyDynamics/left_leg/command:o| Port /wholeBodyDynamics/left_leg/command:o active at tcp://192.168.220.201:10013/
[INFO] |yarp.os.Port|/wholeBodyDynamics/left_leg/stateExt:i| Port /wholeBodyDynamics/left_leg/stateExt:i active at tcp://192.168.220.201:10014/
[INFO] |yarp.os.impl.PortCoreOutputUnit|/wholeBodyDynamics/left_leg/rpc:o| Sending output from /wholeBodyDynamics/left_leg/rpc:o to /ergocubSim/left_leg/rpc:i using tcp
[INFO] |yarp.os.impl.PortCoreOutputUnit|/wholeBodyDynamics/left_leg/command:o| Sending output from /wholeBodyDynamics/left_leg/command:o to /ergocubSim/left_leg/command:i using udp
[INFO] |yarp.os.impl.PortCoreInputUnit|/wholeBodyDynamics/left_leg/stateExt:i| Receiving input from /ergocubSim/left_leg/stateExt:o to /wholeBodyDynamics/left_leg/stateExt:i using udp
[INFO] |yarp.dev.PolyDriver|left_leg_mc| Created device <remote_controlboard>. See C++ class RemoteControlBoard for documentation.
[INFO] Opening device right_leg_mc with parameters [("robotName" = "ergoCubGazeboV1"), ("remote" = "/ergocubSim/right_leg"), ("local" = "/wholeBodyDynamics/right_leg")]
[DEBUG] |yarp.dev.PolyDriver|right_leg_mc| Parameters are (device remote_controlboard) (id right_leg_mc) (local "/wholeBodyDynamics/right_leg") (remote "/ergocubSim/right_leg") (robotName ergoCubGazeboV1)
[INFO] |yarp.os.Port|/wholeBodyDynamics/right_leg/rpc:o| Port /wholeBodyDynamics/right_leg/rpc:o active at tcp://192.168.220.201:10015/
[INFO] |yarp.os.Port|/wholeBodyDynamics/right_leg/command:o| Port /wholeBodyDynamics/right_leg/command:o active at tcp://192.168.220.201:10016/
[INFO] |yarp.os.Port|/wholeBodyDynamics/right_leg/stateExt:i| Port /wholeBodyDynamics/right_leg/stateExt:i active at tcp://192.168.220.201:10017/
[INFO] |yarp.os.impl.PortCoreOutputUnit|/wholeBodyDynamics/right_leg/rpc:o| Sending output from /wholeBodyDynamics/right_leg/rpc:o to /ergocubSim/right_leg/rpc:i using tcp
[INFO] |yarp.os.impl.PortCoreOutputUnit|/wholeBodyDynamics/right_leg/command:o| Sending output from /wholeBodyDynamics/right_leg/command:o to /ergocubSim/right_leg/command:i using udp
[INFO] |yarp.os.impl.PortCoreInputUnit|/wholeBodyDynamics/right_leg/stateExt:i| Receiving input from /ergocubSim/right_leg/stateExt:o to /wholeBodyDynamics/right_leg/stateExt:i using udp
[INFO] |yarp.dev.PolyDriver|right_leg_mc| Created device <remote_controlboard>. See C++ class RemoteControlBoard for documentation.
[INFO] Opening device head_mc with parameters [("robotName" = "ergoCubGazeboV1"), ("remote" = "/ergocubSim/head"), ("local" = "/wholeBodyDynamics/head")]
[DEBUG] |yarp.dev.PolyDriver|head_mc| Parameters are (device remote_controlboard) (id head_mc) (local "/wholeBodyDynamics/head") (remote "/ergocubSim/head") (robotName ergoCubGazeboV1)
[INFO] |yarp.os.Port|/wholeBodyDynamics/head/rpc:o| Port /wholeBodyDynamics/head/rpc:o active at tcp://192.168.220.201:10018/
[INFO] |yarp.os.Port|/wholeBodyDynamics/head/command:o| Port /wholeBodyDynamics/head/command:o active at tcp://192.168.220.201:10019/
[INFO] |yarp.os.Port|/wholeBodyDynamics/head/stateExt:i| Port /wholeBodyDynamics/head/stateExt:i active at tcp://192.168.220.201:10020/
[INFO] |yarp.os.impl.PortCoreOutputUnit|/wholeBodyDynamics/head/rpc:o| Sending output from /wholeBodyDynamics/head/rpc:o to /ergocubSim/head/rpc:i using tcp
[INFO] |yarp.os.impl.PortCoreOutputUnit|/wholeBodyDynamics/head/command:o| Sending output from /wholeBodyDynamics/head/command:o to /ergocubSim/head/command:i using udp
[INFO] |yarp.os.impl.PortCoreInputUnit|/wholeBodyDynamics/head/stateExt:i| Receiving input from /ergocubSim/head/stateExt:o to /wholeBodyDynamics/head/stateExt:i using udp
[INFO] |yarp.dev.PolyDriver|head_mc| Created device <remote_controlboard>. See C++ class RemoteControlBoard for documentation.
[INFO] Opening device head_inertial_hardware_device with parameters [("robotName" = "ergoCubGazeboV1"), ("remote" = "/ergocubSim/head/inertials"), ("local" = "/wholeBodyDynamics/imu")]
[DEBUG] |yarp.dev.PolyDriver|head_inertial_hardware_device| Parameters are (device multipleanalogsensorsclient) (id head_inertial_hardware_device) (local "/wholeBodyDynamics/imu") (remote "/ergocubSim/head/inertials") (robotName ergoCubGazeboV1)
[INFO] |yarp.os.Port|/wholeBodyDynamics/imu/rpc:i| Port /wholeBodyDynamics/imu/rpc:i active at tcp://192.168.220.201:10021/
[INFO] |yarp.os.Port|/wholeBodyDynamics/imu/measures:i| Port /wholeBodyDynamics/imu/measures:i active at tcp://192.168.220.201:10022/
[INFO] |yarp.os.impl.PortCoreOutputUnit|/wholeBodyDynamics/imu/rpc:i| Sending output from /wholeBodyDynamics/imu/rpc:i to /ergocubSim/head/inertials/rpc:o using tcp
[INFO] |yarp.os.impl.PortCoreInputUnit|/wholeBodyDynamics/imu/measures:i| Receiving input from /ergocubSim/head/inertials/measures:o to /wholeBodyDynamics/imu/measures:i using tcp
[DEBUG] |yarp.device.multipleanalogsensorsclient| Open complete
[INFO] |yarp.dev.PolyDriver|head_inertial_hardware_device| Created device <multipleanalogsensorsclient>. See C++ class MultipleAnalogSensorsClient for documentation.
[INFO] Opening device waist_inertial_hardware_device with parameters [("robotName" = "ergoCubGazeboV1"), ("remote" = "/ergocubSim/waist/inertials"), ("local" = "/wholeBodyDynamics/waist_imu")]
[DEBUG] |yarp.dev.PolyDriver|waist_inertial_hardware_device| Parameters are (device multipleanalogsensorsclient) (id waist_inertial_hardware_device) (local "/wholeBodyDynamics/waist_imu") (remote "/ergocubSim/waist/inertials") (robotName ergoCubGazeboV1)
[INFO] |yarp.os.Port|/wholeBodyDynamics/waist_imu/rpc:i| Port /wholeBodyDynamics/waist_imu/rpc:i active at tcp://192.168.220.201:10023/
[INFO] |yarp.os.Port|/wholeBodyDynamics/waist_imu/measures:i| Port /wholeBodyDynamics/waist_imu/measures:i active at tcp://192.168.220.201:10024/
[INFO] |yarp.os.impl.PortCoreOutputUnit|/wholeBodyDynamics/waist_imu/rpc:i| Sending output from /wholeBodyDynamics/waist_imu/rpc:i to /ergocubSim/waist/inertials/rpc:o using tcp
[INFO] |yarp.os.impl.PortCoreInputUnit|/wholeBodyDynamics/waist_imu/measures:i| Receiving input from /ergocubSim/waist/inertials/measures:o to /wholeBodyDynamics/waist_imu/measures:i using tcp
[DEBUG] |yarp.device.multipleanalogsensorsclient| Open complete
[INFO] |yarp.dev.PolyDriver|waist_inertial_hardware_device| Created device <multipleanalogsensorsclient>. See C++ class MultipleAnalogSensorsClient for documentation.
[INFO] Opening device ergocub_left_arm_ft with parameters [("robotName" = "ergoCubGazeboV1"), ("remote" = "/ergocubSim/left_arm/FT"), ("local" = "/wholeBodyDynamics/left_arm_ft_sensor")]
[DEBUG] |yarp.dev.PolyDriver|ergocub_left_arm_ft| Parameters are (device multipleanalogsensorsclient) (id ergocub_left_arm_ft) (local "/wholeBodyDynamics/left_arm_ft_sensor") (remote "/ergocubSim/left_arm/FT") (robotName ergoCubGazeboV1)
[INFO] |yarp.os.Port|/wholeBodyDynamics/left_arm_ft_sensor/rpc:i| Port /wholeBodyDynamics/left_arm_ft_sensor/rpc:i active at tcp://192.168.220.201:10025/
[INFO] |yarp.os.Port|/wholeBodyDynamics/left_arm_ft_sensor/measures:i| Port /wholeBodyDynamics/left_arm_ft_sensor/measures:i active at tcp://192.168.220.201:10026/
[INFO] |yarp.os.impl.PortCoreOutputUnit|/wholeBodyDynamics/left_arm_ft_sensor/rpc:i| Sending output from /wholeBodyDynamics/left_arm_ft_sensor/rpc:i to /ergocubSim/left_arm/FT/rpc:o using tcp
[INFO] |yarp.os.impl.PortCoreInputUnit|/wholeBodyDynamics/left_arm_ft_sensor/measures:i| Receiving input from /ergocubSim/left_arm/FT/measures:o to /wholeBodyDynamics/left_arm_ft_sensor/measures:i using tcp
[DEBUG] |yarp.device.multipleanalogsensorsclient| Open complete
[INFO] |yarp.dev.PolyDriver|ergocub_left_arm_ft| Created device <multipleanalogsensorsclient>. See C++ class MultipleAnalogSensorsClient for documentation.
[INFO] Opening device ergocub_right_arm_ft with parameters [("robotName" = "ergoCubGazeboV1"), ("remote" = "/ergocubSim/right_arm/FT"), ("local" = "/wholeBodyDynamics/right_arm_ft_sensor")]
[DEBUG] |yarp.dev.PolyDriver|ergocub_right_arm_ft| Parameters are (device multipleanalogsensorsclient) (id ergocub_right_arm_ft) (local "/wholeBodyDynamics/right_arm_ft_sensor") (remote "/ergocubSim/right_arm/FT") (robotName ergoCubGazeboV1)
[INFO] |yarp.os.Port|/wholeBodyDynamics/right_arm_ft_sensor/rpc:i| Port /wholeBodyDynamics/right_arm_ft_sensor/rpc:i active at tcp://192.168.220.201:10027/
[INFO] |yarp.os.Port|/wholeBodyDynamics/right_arm_ft_sensor/measures:i| Port /wholeBodyDynamics/right_arm_ft_sensor/measures:i active at tcp://192.168.220.201:10028/
[INFO] |yarp.os.impl.PortCoreOutputUnit|/wholeBodyDynamics/right_arm_ft_sensor/rpc:i| Sending output from /wholeBodyDynamics/right_arm_ft_sensor/rpc:i to /ergocubSim/right_arm/FT/rpc:o using tcp
[INFO] |yarp.os.impl.PortCoreInputUnit|/wholeBodyDynamics/right_arm_ft_sensor/measures:i| Receiving input from /ergocubSim/right_arm/FT/measures:o to /wholeBodyDynamics/right_arm_ft_sensor/measures:i using tcp
[DEBUG] |yarp.device.multipleanalogsensorsclient| Open complete
[INFO] |yarp.dev.PolyDriver|ergocub_right_arm_ft| Created device <multipleanalogsensorsclient>. See C++ class MultipleAnalogSensorsClient for documentation.
[INFO] Opening device ergocub_left_leg_ft with parameters [("robotName" = "ergoCubGazeboV1"), ("remote" = "/ergocubSim/left_leg/FT"), ("local" = "/wholeBodyDynamics/left_leg_ft_sensor")]
[DEBUG] |yarp.dev.PolyDriver|ergocub_left_leg_ft| Parameters are (device multipleanalogsensorsclient) (id ergocub_left_leg_ft) (local "/wholeBodyDynamics/left_leg_ft_sensor") (remote "/ergocubSim/left_leg/FT") (robotName ergoCubGazeboV1)
[INFO] |yarp.os.Port|/wholeBodyDynamics/left_leg_ft_sensor/rpc:i| Port /wholeBodyDynamics/left_leg_ft_sensor/rpc:i active at tcp://192.168.220.201:10029/
[INFO] |yarp.os.Port|/wholeBodyDynamics/left_leg_ft_sensor/measures:i| Port /wholeBodyDynamics/left_leg_ft_sensor/measures:i active at tcp://192.168.220.201:10030/
[INFO] |yarp.os.impl.PortCoreOutputUnit|/wholeBodyDynamics/left_leg_ft_sensor/rpc:i| Sending output from /wholeBodyDynamics/left_leg_ft_sensor/rpc:i to /ergocubSim/left_leg/FT/rpc:o using tcp
[INFO] |yarp.os.impl.PortCoreInputUnit|/wholeBodyDynamics/left_leg_ft_sensor/measures:i| Receiving input from /ergocubSim/left_leg/FT/measures:o to /wholeBodyDynamics/left_leg_ft_sensor/measures:i using tcp
[DEBUG] |yarp.device.multipleanalogsensorsclient| Open complete
[INFO] |yarp.dev.PolyDriver|ergocub_left_leg_ft| Created device <multipleanalogsensorsclient>. See C++ class MultipleAnalogSensorsClient for documentation.
[INFO] Opening device ergocub_right_leg_ft with parameters [("robotName" = "ergoCubGazeboV1"), ("remote" = "/ergocubSim/right_leg/FT"), ("local" = "/wholeBodyDynamics/right_leg_ft_sensor")]
[DEBUG] |yarp.dev.PolyDriver|ergocub_right_leg_ft| Parameters are (device multipleanalogsensorsclient) (id ergocub_right_leg_ft) (local "/wholeBodyDynamics/right_leg_ft_sensor") (remote "/ergocubSim/right_leg/FT") (robotName ergoCubGazeboV1)
[INFO] |yarp.os.Port|/wholeBodyDynamics/right_leg_ft_sensor/rpc:i| Port /wholeBodyDynamics/right_leg_ft_sensor/rpc:i active at tcp://192.168.220.201:10031/
[INFO] |yarp.os.Port|/wholeBodyDynamics/right_leg_ft_sensor/measures:i| Port /wholeBodyDynamics/right_leg_ft_sensor/measures:i active at tcp://192.168.220.201:10032/
[INFO] |yarp.os.impl.PortCoreOutputUnit|/wholeBodyDynamics/right_leg_ft_sensor/rpc:i| Sending output from /wholeBodyDynamics/right_leg_ft_sensor/rpc:i to /ergocubSim/right_leg/FT/rpc:o using tcp
[INFO] |yarp.os.impl.PortCoreInputUnit|/wholeBodyDynamics/right_leg_ft_sensor/measures:i| Receiving input from /ergocubSim/right_leg/FT/measures:o to /wholeBodyDynamics/right_leg_ft_sensor/measures:i using tcp
[DEBUG] |yarp.device.multipleanalogsensorsclient| Open complete
[INFO] |yarp.dev.PolyDriver|ergocub_right_leg_ft| Created device <multipleanalogsensorsclient>. See C++ class MultipleAnalogSensorsClient for documentation.
[INFO] Opening device wholebodydynamics with parameters [("robotName" = "ergoCubGazeboV1"), ("axesNames" = "(torso_roll,torso_pitch,torso_yaw,l_shoulder_pitch,l_shoulder_roll,l_shoulder_yaw,l_elbow,l_wrist_pitch,l_wrist_yaw,r_shoulder_pitch,r_shoulder_roll,r_shoulder_yaw,r_elbow,r_wrist_pitch,r_wrist_yaw,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)"), ("modelFile" = "model.urdf"), ("fixedFrameGravity" = "(0,0,-9.81)"), ("defaultContactFrames" = "(l_hand_palm,r_hand_palm,root_link,l_foot_front,l_foot_rear,r_foot_front,r_foot_rear,l_upper_leg,r_upper_leg)"), ("imuFrameName" = "head_imu_0"), ("useJointVelocity" = "true"), ("useJointAcceleration" = "true"), ("imuFilterCutoffInHz" = "3.0"), ("forceTorqueFilterCutoffInHz" = "3.0"), ("jointVelFilterCutoffInHz" = "3.0"), ("jointAccFilterCutoffInHz" = "3.0"), ("startWithZeroFTSensorOffsets" = "true"), ("useSkinForContacts" = "false"), ("publishNetExternalWrenches" = "true"), ("disableSensorReadCheckAtStartup" = "true"), ("GRAVITY_COMPENSATION" [group] = "(enableGravityCompensation true) (gravityCompensationBaseLink root_link) (gravityCompensationAxesNames (torso_roll,torso_pitch,torso_yaw,l_shoulder_pitch,l_shoulder_roll,l_shoulder_yaw,l_elbow,r_shoulder_pitch,r_shoulder_roll,r_shoulder_yaw,r_elbow))"), ("HW_USE_MAS_IMU" [group] = "(accelerometer head_imu_0) (gyroscope head_imu_0)"), ("WBD_OUTPUT_EXTERNAL_WRENCH_PORTS" [group] = "(/wholeBodyDynamics/left_foot_front/cartesianEndEffectorWrench:o (l_foot_front,l_sole,l_sole)) (/wholeBodyDynamics/left_foot_rear/cartesianEndEffectorWrench:o (l_foot_rear,l_sole,l_sole)) (/wholeBodyDynamics/right_foot_front/cartesianEndEffectorWrench:o (r_foot_front,r_sole,r_sole)) (/wholeBodyDynamics/right_foot_rear/cartesianEndEffectorWrench:o (r_foot_rear,r_sole,r_sole)) (/wholeBodyDynamics/left_arm/cartesianEndEffectorWrench:o (l_hand_palm,l_hand_palm,root_link)) (/wholeBodyDynamics/right_arm/cartesianEndEffectorWrench:o (r_hand_palm,r_hand_palm,root_link))"), ("multipleAnalogSensorsNames" [group] = "(SixAxisForceTorqueSensorsNames ("l_arm_ft", "r_arm_ft", "l_leg_ft", "r_leg_ft", "l_foot_front_ft", "r_foot_front_ft", "l_foot_rear_ft", "r_foot_rear_ft"))")]
[DEBUG] |yarp.dev.PolyDriver|wholebodydynamics| Parameters are (GRAVITY_COMPENSATION (enableGravityCompensation true) (gravityCompensationBaseLink root_link) (gravityCompensationAxesNames (torso_roll torso_pitch torso_yaw l_shoulder_pitch l_shoulder_roll l_shoulder_yaw l_elbow r_shoulder_pitch r_shoulder_roll r_shoulder_yaw r_elbow))) (HW_USE_MAS_IMU (accelerometer head_imu_0) (gyroscope head_imu_0)) (WBD_OUTPUT_EXTERNAL_WRENCH_PORTS ("/wholeBodyDynamics/left_foot_front/cartesianEndEffectorWrench:o" (l_foot_front l_sole l_sole)) ("/wholeBodyDynamics/left_foot_rear/cartesianEndEffectorWrench:o" (l_foot_rear l_sole l_sole)) ("/wholeBodyDynamics/right_foot_front/cartesianEndEffectorWrench:o" (r_foot_front r_sole r_sole)) ("/wholeBodyDynamics/right_foot_rear/cartesianEndEffectorWrench:o" (r_foot_rear r_sole r_sole)) ("/wholeBodyDynamics/left_arm/cartesianEndEffectorWrench:o" (l_hand_palm l_hand_palm root_link)) ("/wholeBodyDynamics/right_arm/cartesianEndEffectorWrench:o" (r_hand_palm r_hand_palm root_link))) (axesNames (torso_roll torso_pitch torso_yaw l_shoulder_pitch l_shoulder_roll l_shoulder_yaw l_elbow l_wrist_pitch l_wrist_yaw r_shoulder_pitch r_shoulder_roll r_shoulder_yaw r_elbow r_wrist_pitch r_wrist_yaw 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)) (defaultContactFrames (l_hand_palm r_hand_palm root_link l_foot_front l_foot_rear r_foot_front r_foot_rear l_upper_leg r_upper_leg)) (device wholebodydynamics) (disableSensorReadCheckAtStartup true) (fixedFrameGravity (0 0 -9.81000000000000049738)) (forceTorqueFilterCutoffInHz 3.0) (id wholebodydynamics) (imuFilterCutoffInHz 3.0) (imuFrameName head_imu_0) (jointAccFilterCutoffInHz 3.0) (jointVelFilterCutoffInHz 3.0) (modelFile model.urdf) (multipleAnalogSensorsNames (SixAxisForceTorqueSensorsNames (l_arm_ft r_arm_ft l_leg_ft r_leg_ft l_foot_front_ft r_foot_front_ft l_foot_rear_ft r_foot_rear_ft))) (publishNetExternalWrenches true) (robotName ergoCubGazeboV1) (startWithZeroFTSensorOffsets true) (useJointAcceleration true) (useJointVelocity true) (useSkinForContacts false)
[DEBUG] wholeBodyDynamics Statistics: Opening estimator.
[INFO] wholeBodyDynamics : Loading model from  /home/acroci/ergocub_ws/install/share/ergoCub/robots/ergoCubGazeboV1_1/model.urdf
[DEBUG] wholeBodyDynamics Statistics: Estimator opened in  0.0436089 s.
[DEBUG] wholeBodyDynamics Statistics: Loading settings from configuration files.
[WARNING] wholeBodyDynamics : The devicePeriodInSeconds parameter is not found. The default one is used. Period: 0.01 seconds.
[WARNING] wholeBodyDynamics: estimateVelocityAccelerationOptionName bool parameter missing, please specify it.
[WARNING] wholeBodyDynamics: setting estimateVelocityAccelerationOptionName to the default value of true, but this is a deprecated behaviour that will be removed in the future.
[INFO] wholeBodyDynamics : Using the following filter cutoff frequencies,
[INFO] wholeBodyDynamics: imuFilterCutoffInHz:  3  Hz.
[INFO] wholeBodyDynamics: forceTorqueFilterCutoffInHz:  3  Hz.
[INFO] wholeBodyDynamics: jointVelFilterCutoffInHz:  3  Hz.
[INFO] wholeBodyDynamics: jointAccFilterCutoffInHz:  3  Hz.
[INFO] wholeBodyDynamics: setting startWithZeroFTSensorOffsets was set to true , FT sensor offsets will be automatically reset to zero.
[DEBUG] wholeBodyDynamics Statistics: Settings loaded in  0.00482774 s.
[DEBUG] wholeBodyDynamics Statistics: Opening RPC port.
[INFO] |yarp.os.Port|/wholeBodyDynamics/rpc| Port /wholeBodyDynamics/rpc active at tcp://192.168.220.201:10076/
[DEBUG] wholeBodyDynamics Statistics: RPC port opened in  0.0118909 s.
[DEBUG] wholeBodyDynamics Statistics: Opening settings port.
[INFO] |yarp.os.Port|/wholeBodyDynamics/settings| Port /wholeBodyDynamics/settings active at tcp://192.168.220.201:10077/
[DEBUG] wholeBodyDynamics Statistics: Settings port opened in  0.0105045 s.
[DEBUG] wholeBodyDynamics Statistics: Opening remapper control board.
[DEBUG] |yarp.dev.PolyDriver|controlboardremapper| Parameters are (axesNames (torso_roll torso_pitch torso_yaw l_shoulder_pitch l_shoulder_roll l_shoulder_yaw l_elbow l_wrist_pitch l_wrist_yaw r_shoulder_pitch r_shoulder_roll r_shoulder_yaw r_elbow r_wrist_pitch r_wrist_yaw 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 controlboardremapper)
[INFO] |yarp.dev.PolyDriver|controlboardremapper| Created device <controlboardremapper>. See C++ class ControlBoardRemapper for documentation.
[DEBUG] wholeBodyDynamics Statistics: Remapper control board opened in  0.0315394 s.
[DEBUG] wholeBodyDynamics Statistics: Opening remapper virtual sensors.
[DEBUG] |yarp.dev.PolyDriver|virtualAnalogRemapper| Parameters are (axesNames (torso_roll torso_pitch torso_yaw l_shoulder_pitch l_shoulder_roll l_shoulder_yaw l_elbow l_wrist_pitch l_wrist_yaw r_shoulder_pitch r_shoulder_roll r_shoulder_yaw r_elbow r_wrist_pitch r_wrist_yaw 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 virtualAnalogRemapper)
[INFO] |yarp.dev.PolyDriver|virtualAnalogRemapper| Created device <virtualAnalogRemapper>. See C++ class yarp::dev::VirtualAnalogRemapper for documentation.
[DEBUG] wholeBodyDynamics Statistics: Remapper virtual sensors opened in  0.0356421 s.
[DEBUG] wholeBodyDynamics Statistics: Opening contact frames.
[DEBUG] wholeBodyDynamics Statistics: Contact frames opened in  0.00120759 s.
[DEBUG] wholeBodyDynamics Statistics: Opening external wrenches ports.
[INFO] |yarp.os.Port|/wholeBodyDynamics/left_foot_front/cartesianEndEffectorWrench:o| Port /wholeBodyDynamics/left_foot_front/cartesianEndEffectorWrench:o active at tcp://192.168.220.201:10078/
[INFO] |yarp.os.Port|/wholeBodyDynamics/left_foot_rear/cartesianEndEffectorWrench:o| Port /wholeBodyDynamics/left_foot_rear/cartesianEndEffectorWrench:o active at tcp://192.168.220.201:10079/
[INFO] |yarp.os.Port|/wholeBodyDynamics/right_foot_front/cartesianEndEffectorWrench:o| Port /wholeBodyDynamics/right_foot_front/cartesianEndEffectorWrench:o active at tcp://192.168.220.201:10080/
[INFO] |yarp.os.Port|/wholeBodyDynamics/right_foot_rear/cartesianEndEffectorWrench:o| Port /wholeBodyDynamics/right_foot_rear/cartesianEndEffectorWrench:o active at tcp://192.168.220.201:10081/
[INFO] |yarp.os.Port|/wholeBodyDynamics/left_arm/cartesianEndEffectorWrench:o| Port /wholeBodyDynamics/left_arm/cartesianEndEffectorWrench:o active at tcp://192.168.220.201:10082/
[INFO] |yarp.os.Port|/wholeBodyDynamics/right_arm/cartesianEndEffectorWrench:o| Port /wholeBodyDynamics/right_arm/cartesianEndEffectorWrench:o active at tcp://192.168.220.201:10083/
[INFO] |yarp.os.Port|/wholeBodyDynamics/netExternalWrenches:o| Port /wholeBodyDynamics/netExternalWrenches:o active at tcp://192.168.220.201:10084/
[DEBUG] wholeBodyDynamics Statistics: External port wrenches opened in  0.0822914 s.
[DEBUG] wholeBodyDynamics Statistics: Opening multiple analog sensors remapper.
[DEBUG] |yarp.dev.PolyDriver|multipleanalogsensorsremapper| Parameters are (SixAxisForceTorqueSensorsNames (l_arm_ft r_arm_ft l_leg_ft r_leg_ft l_foot_front_ft r_foot_front_ft l_foot_rear_ft r_foot_rear_ft)) (device multipleanalogsensorsremapper)
[INFO] |yarp.dev.PolyDriver|multipleanalogsensorsremapper| Created device <multipleanalogsensorsremapper>. See C++ class MultipleAnalogSensorsRemapper for documentation.
[DEBUG] wholeBodyDynamics Statistics: Multiple analog sensors remapper opened in  0.031405 s.
[DEBUG] wholeBodyDynamics Statistics: Configuration finished. Waiting attachAll to be called.
[INFO] |yarp.dev.PolyDriver|wholebodydynamics| Created device <wholebodydynamics>. See C++ class yarp::dev::WholeBodyDynamicsDevice for documentation.
[INFO] Entering action level 15 of phase startup
[INFO] Executing attach action, level 15 on device wholebodydynamics with parameters [("networks" = "(left_leg right_leg torso right_arm left_arm imu waist_imu left_arm_ft_sensor right_arm_ft_sensor left_leg_ft_sensor right_leg_ft_sensor)"), ("left_leg" = "left_leg_mc"), ("right_leg" = "right_leg_mc"), ("torso" = "torso_mc"), ("right_arm" = "right_arm_mc"), ("left_arm" = "left_arm_mc"), ("imu" = "head_inertial_hardware_device"), ("waist_imu" = "waist_inertial_hardware_device"), ("left_arm_ft_sensor" = "ergocub_left_arm_ft"), ("right_arm_ft_sensor" = "ergocub_right_arm_ft"), ("left_leg_ft_sensor" = "ergocub_left_leg_ft"), ("right_leg_ft_sensor" = "ergocub_right_leg_ft")]
[DEBUG] wholeBodyDynamics Statistics: attachAll started. Attaching all control board.
[DEBUG] wholeBodyDynamics Statistics: Attaching all control board took  0.0112236 s.
[DEBUG] wholeBodyDynamics Statistics: Attaching all virtual analog sensors.
[DEBUG] wholeBodyDynamics Statistics: Attaching all virtual analog sensors took  2.88486e-05 s.
[DEBUG] wholeBodyDynamics Statistics: Attaching all FTs.
[INFO] Starting attach MAS and analog ft
[DEBUG] wholeBodyDynamicsDevice :: number of devices that could contain FT sensors found  4 where analog are  0  and MAS are  4
[DEBUG] wholeBodyDynamics Statistics: Attaching all Fts took  0.000238895 s.
[DEBUG] wholeBodyDynamics Statistics: Attaching all IMUs.
[INFO] wholeBodyDynamics : Found one IMU multipleAnalogSensor device with accelerometer  head_imu_0  and gyroscope  head_imu_0
[DEBUG] wholeBodyDynamics Statistics: Attaching all IMUs took  4.41074e-05 s.
[DEBUG] wholeBodyDynamics Statistics: Calibrating offsets.
[DEBUG] wholeBodyDynamics Statistics: Calibrating took  3.09944e-06 s.
[DEBUG] wholeBodyDynamics Statistics: Starting
[INFO] All actions for action level 15 of startup phase started. Waiting for unfinished actions.
[INFO] All actions for action level 15 of startup phase finished.
[INFO] startup phase finished.
[INFO] run phase starting...
[DEBUG] yarprobotinterface running happily
[WARNING] wholeBodyDynamics warning : joint velocities was not readed correctly
[WARNING] wholeBodyDynamics warning : joint accelerations was not readed correctly
[WARNING] wholeBodyDynamics warning : joint velocities was not readed correctly
[WARNING] wholeBodyDynamics warning : joint accelerations was not readed correctly
[WARNING] wholeBodyDynamics warning : joint velocities was not readed correctly
[WARNING] wholeBodyDynamics warning : joint accelerations was not readed correctly
[WARNING] wholeBodyDynamics warning : joint velocities was not readed correctly
[WARNING] wholeBodyDynamics warning : joint accelerations was not readed correctly
[WARNING] wholeBodyDynamics warning : joint velocities was not readed correctly
[WARNING] wholeBodyDynamics warning : joint accelerations was not readed correctly

@traversaro
Copy link
Member

Since all the modifications I've done for gz-sim-yarp-plugins are in the SDF file version of model, is there a way to load that file or should I convert it back to a URDF?

iDynTree (the underlying library used by the wholebodydynamics module used to estimate external forces and by the walking controller) does not support loading SDF, see robotology/idyntree#481 . However, as your modifications did not changed the kinematic and dynamics parameters of the models, I think it is sufficient to use the corresponding URDF used to create the SDF.

@xela-95
Copy link
Member Author

xela-95 commented Mar 18, 2024

✅ Step 5/7

I could run:

yarp rpc /wholeBodyDynamics/rpc
>> resetOffset all

receiving the Response: [ok] answer.

@xela-95
Copy link
Member Author

xela-95 commented Mar 18, 2024

Step 6/7

When I launched the walking module with:

YARP_CLOCK=/clock WalkingModule

I got the following response:

[INFO] |yarp.os.Port|/IITICUBLAP218/WalkingModule/91069/clock:i| Port /IITICUBLAP218/WalkingModule/91069/clock:i active at tcp://192.168.220.201:10085/
[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|/IITICUBLAP218/WalkingModule/91069/clock:i| Receiving input from /clock to /IITICUBLAP218/WalkingModule/91069/clock:i using tcp
[ERROR] |yarp.os.Property| cannot read from dcm_walking_with_joypad.ini
[ERROR] [getiDynTreeVectorFixSizeFromSearchable] Missing field  goal_port_scaling
[ERROR] [WalkingModule::configure] Failed while reading goal_port_scaling.
[INFO] |yarp.os.RFModule| RFModule failed to open.
[WARNING] |yarp.os.NetworkClock| Destroying network clock
[INFO] |yarp.os.Network| Success: port-to-port persistent connection added.
[INFO] |yarp.os.impl.PortCoreInputUnit|/IITICUBLAP218/WalkingModule/91069/clock:i| Removing input from /clock to /IITICUBLAP218/WalkingModule/91069/clock:i

from https://github.com/robotology/walking-controllers/blob/39fb59969e0219f50e63b39664839f7ed02559af/src/WalkingModule/src/Module.cpp#L151

@xela-95
Copy link
Member Author

xela-95 commented Mar 18, 2024

Step 6/7

When I launched the walking module with:

YARP_CLOCK=/clock WalkingModule

I got the following response:

[INFO] |yarp.os.Port|/IITICUBLAP218/WalkingModule/91069/clock:i| Port /IITICUBLAP218/WalkingModule/91069/clock:i active at tcp://192.168.220.201:10085/
[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|/IITICUBLAP218/WalkingModule/91069/clock:i| Receiving input from /clock to /IITICUBLAP218/WalkingModule/91069/clock:i using tcp
[ERROR] |yarp.os.Property| cannot read from dcm_walking_with_joypad.ini
[ERROR] [getiDynTreeVectorFixSizeFromSearchable] Missing field  goal_port_scaling
[ERROR] [WalkingModule::configure] Failed while reading goal_port_scaling.
[INFO] |yarp.os.RFModule| RFModule failed to open.
[WARNING] |yarp.os.NetworkClock| Destroying network clock
[INFO] |yarp.os.Network| Success: port-to-port persistent connection added.
[INFO] |yarp.os.impl.PortCoreInputUnit|/IITICUBLAP218/WalkingModule/91069/clock:i| Removing input from /clock to /IITICUBLAP218/WalkingModule/91069/clock:i

from https://github.com/robotology/walking-controllers/blob/39fb59969e0219f50e63b39664839f7ed02559af/src/WalkingModule/src/Module.cpp#L151

Solved, just missed to source a setup file I use to configure needed environment variables. Now I get:

[INFO] |yarp.os.Port|/IITICUBLAP218/WalkingModule/101245/clock:i| Port /IITICUBLAP218/WalkingModule/101245/clock:i active at tcp://192.168.220.201:10087/
[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|/IITICUBLAP218/WalkingModule/101245/clock:i| Receiving input from /clock to /IITICUBLAP218/WalkingModule/101245/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 ("/ergocubSim/torso" "/ergocubSim/left_arm" "/ergocubSim/right_arm" "/ergocubSim/left_leg" "/ergocubSim/right_leg"))
[DEBUG] |yarp.dev.PolyDriver|remote_controlboard| Parameters are (device remote_controlboard) (local "/walking-coordinator/remoteControlBoard/ergocubSim/torso") (remote "/ergocubSim/torso") (writeStrict on)
[INFO] |yarp.device.remote_controlboard| RemoteControlBoard is ENABLING the writeStrict option for all commands
[INFO] |yarp.os.Port|/walking-coordinator/remoteControlBoard/ergocubSim/torso/rpc:o| Port /walking-coordinator/remoteControlBoard/ergocubSim/torso/rpc:o active at tcp://192.168.220.201:10088/
[INFO] |yarp.os.Port|/walking-coordinator/remoteControlBoard/ergocubSim/torso/command:o| Port /walking-coordinator/remoteControlBoard/ergocubSim/torso/command:o active at tcp://192.168.220.201:10089/
[INFO] |yarp.os.Port|/walking-coordinator/remoteControlBoard/ergocubSim/torso/stateExt:i| Port /walking-coordinator/remoteControlBoard/ergocubSim/torso/stateExt:i active at tcp://192.168.220.201:10090/
[INFO] |yarp.os.impl.PortCoreOutputUnit|/walking-coordinator/remoteControlBoard/ergocubSim/torso/rpc:o| Sending output from /walking-coordinator/remoteControlBoard/ergocubSim/torso/rpc:o to /ergocubSim/torso/rpc:i using tcp
[INFO] |yarp.os.impl.PortCoreOutputUnit|/walking-coordinator/remoteControlBoard/ergocubSim/torso/command:o| Sending output from /walking-coordinator/remoteControlBoard/ergocubSim/torso/command:o to /ergocubSim/torso/command:i using udp
[INFO] |yarp.os.impl.PortCoreInputUnit|/walking-coordinator/remoteControlBoard/ergocubSim/torso/stateExt:i| Receiving input from /ergocubSim/torso/stateExt:o to /walking-coordinator/remoteControlBoard/ergocubSim/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/ergocubSim/left_arm") (remote "/ergocubSim/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/ergocubSim/left_arm/rpc:o| Port /walking-coordinator/remoteControlBoard/ergocubSim/left_arm/rpc:o active at tcp://192.168.220.201:10091/
[INFO] |yarp.os.Port|/walking-coordinator/remoteControlBoard/ergocubSim/left_arm/command:o| Port /walking-coordinator/remoteControlBoard/ergocubSim/left_arm/command:o active at tcp://192.168.220.201:10092/
[INFO] |yarp.os.Port|/walking-coordinator/remoteControlBoard/ergocubSim/left_arm/stateExt:i| Port /walking-coordinator/remoteControlBoard/ergocubSim/left_arm/stateExt:i active at tcp://192.168.220.201:10093/
[INFO] |yarp.os.impl.PortCoreOutputUnit|/walking-coordinator/remoteControlBoard/ergocubSim/left_arm/rpc:o| Sending output from /walking-coordinator/remoteControlBoard/ergocubSim/left_arm/rpc:o to /ergocubSim/left_arm/rpc:i using tcp
[INFO] |yarp.os.impl.PortCoreOutputUnit|/walking-coordinator/remoteControlBoard/ergocubSim/left_arm/command:o| Sending output from /walking-coordinator/remoteControlBoard/ergocubSim/left_arm/command:o to /ergocubSim/left_arm/command:i using udp
[INFO] |yarp.os.impl.PortCoreInputUnit|/walking-coordinator/remoteControlBoard/ergocubSim/left_arm/stateExt:i| Receiving input from /ergocubSim/left_arm/stateExt:o to /walking-coordinator/remoteControlBoard/ergocubSim/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/ergocubSim/right_arm") (remote "/ergocubSim/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/ergocubSim/right_arm/rpc:o| Port /walking-coordinator/remoteControlBoard/ergocubSim/right_arm/rpc:o active at tcp://192.168.220.201:10094/
[INFO] |yarp.os.Port|/walking-coordinator/remoteControlBoard/ergocubSim/right_arm/command:o| Port /walking-coordinator/remoteControlBoard/ergocubSim/right_arm/command:o active at tcp://192.168.220.201:10095/
[INFO] |yarp.os.Port|/walking-coordinator/remoteControlBoard/ergocubSim/right_arm/stateExt:i| Port /walking-coordinator/remoteControlBoard/ergocubSim/right_arm/stateExt:i active at tcp://192.168.220.201:10096/
[INFO] |yarp.os.impl.PortCoreOutputUnit|/walking-coordinator/remoteControlBoard/ergocubSim/right_arm/rpc:o| Sending output from /walking-coordinator/remoteControlBoard/ergocubSim/right_arm/rpc:o to /ergocubSim/right_arm/rpc:i using tcp
[INFO] |yarp.os.impl.PortCoreOutputUnit|/walking-coordinator/remoteControlBoard/ergocubSim/right_arm/command:o| Sending output from /walking-coordinator/remoteControlBoard/ergocubSim/right_arm/command:o to /ergocubSim/right_arm/command:i using udp
[INFO] |yarp.os.impl.PortCoreInputUnit|/walking-coordinator/remoteControlBoard/ergocubSim/right_arm/stateExt:i| Receiving input from /ergocubSim/right_arm/stateExt:o to /walking-coordinator/remoteControlBoard/ergocubSim/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/ergocubSim/left_leg") (remote "/ergocubSim/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/ergocubSim/left_leg/rpc:o| Port /walking-coordinator/remoteControlBoard/ergocubSim/left_leg/rpc:o active at tcp://192.168.220.201:10097/
[INFO] |yarp.os.Port|/walking-coordinator/remoteControlBoard/ergocubSim/left_leg/command:o| Port /walking-coordinator/remoteControlBoard/ergocubSim/left_leg/command:o active at tcp://192.168.220.201:10098/
[INFO] |yarp.os.Port|/walking-coordinator/remoteControlBoard/ergocubSim/left_leg/stateExt:i| Port /walking-coordinator/remoteControlBoard/ergocubSim/left_leg/stateExt:i active at tcp://192.168.220.201:10099/
[INFO] |yarp.os.impl.PortCoreOutputUnit|/walking-coordinator/remoteControlBoard/ergocubSim/left_leg/rpc:o| Sending output from /walking-coordinator/remoteControlBoard/ergocubSim/left_leg/rpc:o to /ergocubSim/left_leg/rpc:i using tcp
[INFO] |yarp.os.impl.PortCoreOutputUnit|/walking-coordinator/remoteControlBoard/ergocubSim/left_leg/command:o| Sending output from /walking-coordinator/remoteControlBoard/ergocubSim/left_leg/command:o to /ergocubSim/left_leg/command:i using udp
[INFO] |yarp.os.impl.PortCoreInputUnit|/walking-coordinator/remoteControlBoard/ergocubSim/left_leg/stateExt:i| Receiving input from /ergocubSim/left_leg/stateExt:o to /walking-coordinator/remoteControlBoard/ergocubSim/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/ergocubSim/right_leg") (remote "/ergocubSim/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/ergocubSim/right_leg/rpc:o| Port /walking-coordinator/remoteControlBoard/ergocubSim/right_leg/rpc:o active at tcp://192.168.220.201:10100/
[INFO] |yarp.os.Port|/walking-coordinator/remoteControlBoard/ergocubSim/right_leg/command:o| Port /walking-coordinator/remoteControlBoard/ergocubSim/right_leg/command:o active at tcp://192.168.220.201:10101/
[INFO] |yarp.os.Port|/walking-coordinator/remoteControlBoard/ergocubSim/right_leg/stateExt:i| Port /walking-coordinator/remoteControlBoard/ergocubSim/right_leg/stateExt:i active at tcp://192.168.220.201:10102/
[INFO] |yarp.os.impl.PortCoreOutputUnit|/walking-coordinator/remoteControlBoard/ergocubSim/right_leg/rpc:o| Sending output from /walking-coordinator/remoteControlBoard/ergocubSim/right_leg/rpc:o to /ergocubSim/right_leg/rpc:i using tcp
[INFO] |yarp.os.impl.PortCoreOutputUnit|/walking-coordinator/remoteControlBoard/ergocubSim/right_leg/command:o| Sending output from /walking-coordinator/remoteControlBoard/ergocubSim/right_leg/command:o to /ergocubSim/right_leg/command:i using udp
[INFO] |yarp.os.impl.PortCoreInputUnit|/walking-coordinator/remoteControlBoard/ergocubSim/right_leg/stateExt:i| Receiving input from /ergocubSim/right_leg/stateExt:o to /walking-coordinator/remoteControlBoard/ergocubSim/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] [configure] Unable to read encoders.
[ERROR] [WalkingModule::configure] Unable to configure the robot.
[INFO] |yarp.os.RFModule| RFModule failed to open.
[INFO] |yarp.os.impl.PortCoreOutputUnit|/walking-coordinator/remoteControlBoard/ergocubSim/torso/rpc:o| Removing output from /walking-coordinator/remoteControlBoard/ergocubSim/torso/rpc:o to /ergocubSim/torso/rpc:i
[INFO] |yarp.os.impl.PortCoreOutputUnit|/walking-coordinator/remoteControlBoard/ergocubSim/torso/command:o| output for route /walking-coordinator/remoteControlBoard/ergocubSim/torso/command:o->udp->/ergocubSim/torso/command:i asking other side to close by out-of-band means
[INFO] |yarp.os.impl.PortCoreOutputUnit|/walking-coordinator/remoteControlBoard/ergocubSim/torso/command:o| Removing output from /walking-coordinator/remoteControlBoard/ergocubSim/torso/command:o to /ergocubSim/torso/command:i
[INFO] |yarp.os.impl.PortCoreInputUnit|/walking-coordinator/remoteControlBoard/ergocubSim/torso/stateExt:i| Removing input from /ergocubSim/torso/stateExt:o to /walking-coordinator/remoteControlBoard/ergocubSim/torso/stateExt:i
[INFO] |yarp.os.impl.PortCoreOutputUnit|/walking-coordinator/remoteControlBoard/ergocubSim/left_arm/rpc:o| Removing output from /walking-coordinator/remoteControlBoard/ergocubSim/left_arm/rpc:o to /ergocubSim/left_arm/rpc:i
[INFO] |yarp.os.impl.PortCoreOutputUnit|/walking-coordinator/remoteControlBoard/ergocubSim/left_arm/command:o| output for route /walking-coordinator/remoteControlBoard/ergocubSim/left_arm/command:o->udp->/ergocubSim/left_arm/command:i asking other side to close by out-of-band means
[INFO] |yarp.os.impl.PortCoreOutputUnit|/walking-coordinator/remoteControlBoard/ergocubSim/left_arm/command:o| Removing output from /walking-coordinator/remoteControlBoard/ergocubSim/left_arm/command:o to /ergocubSim/left_arm/command:i
[INFO] |yarp.os.impl.PortCoreInputUnit|/walking-coordinator/remoteControlBoard/ergocubSim/left_arm/stateExt:i| Removing input from /ergocubSim/left_arm/stateExt:o to /walking-coordinator/remoteControlBoard/ergocubSim/left_arm/stateExt:i
[INFO] |yarp.os.impl.PortCoreOutputUnit|/walking-coordinator/remoteControlBoard/ergocubSim/right_arm/rpc:o| Removing output from /walking-coordinator/remoteControlBoard/ergocubSim/right_arm/rpc:o to /ergocubSim/right_arm/rpc:i
[INFO] |yarp.os.impl.PortCoreOutputUnit|/walking-coordinator/remoteControlBoard/ergocubSim/right_arm/command:o| output for route /walking-coordinator/remoteControlBoard/ergocubSim/right_arm/command:o->udp->/ergocubSim/right_arm/command:i asking other side to close by out-of-band means
[INFO] |yarp.os.impl.PortCoreOutputUnit|/walking-coordinator/remoteControlBoard/ergocubSim/right_arm/command:o| Removing output from /walking-coordinator/remoteControlBoard/ergocubSim/right_arm/command:o to /ergocubSim/right_arm/command:i
[INFO] |yarp.os.impl.PortCoreInputUnit|/walking-coordinator/remoteControlBoard/ergocubSim/right_arm/stateExt:i| Removing input from /ergocubSim/right_arm/stateExt:o to /walking-coordinator/remoteControlBoard/ergocubSim/right_arm/stateExt:i
[INFO] |yarp.os.impl.PortCoreOutputUnit|/walking-coordinator/remoteControlBoard/ergocubSim/left_leg/rpc:o| Removing output from /walking-coordinator/remoteControlBoard/ergocubSim/left_leg/rpc:o to /ergocubSim/left_leg/rpc:i
[INFO] |yarp.os.impl.PortCoreOutputUnit|/walking-coordinator/remoteControlBoard/ergocubSim/left_leg/command:o| output for route /walking-coordinator/remoteControlBoard/ergocubSim/left_leg/command:o->udp->/ergocubSim/left_leg/command:i asking other side to close by out-of-band means
[INFO] |yarp.os.impl.PortCoreOutputUnit|/walking-coordinator/remoteControlBoard/ergocubSim/left_leg/command:o| Removing output from /walking-coordinator/remoteControlBoard/ergocubSim/left_leg/command:o to /ergocubSim/left_leg/command:i
[INFO] |yarp.os.impl.PortCoreInputUnit|/walking-coordinator/remoteControlBoard/ergocubSim/left_leg/stateExt:i| Removing input from /ergocubSim/left_leg/stateExt:o to /walking-coordinator/remoteControlBoard/ergocubSim/left_leg/stateExt:i
[INFO] |yarp.os.impl.PortCoreOutputUnit|/walking-coordinator/remoteControlBoard/ergocubSim/right_leg/rpc:o| Removing output from /walking-coordinator/remoteControlBoard/ergocubSim/right_leg/rpc:o to /ergocubSim/right_leg/rpc:i
[INFO] |yarp.os.impl.PortCoreOutputUnit|/walking-coordinator/remoteControlBoard/ergocubSim/right_leg/command:o| output for route /walking-coordinator/remoteControlBoard/ergocubSim/right_leg/command:o->udp->/ergocubSim/right_leg/command:i asking other side to close by out-of-band means
[INFO] |yarp.os.impl.PortCoreOutputUnit|/walking-coordinator/remoteControlBoard/ergocubSim/right_leg/command:o| Removing output from /walking-coordinator/remoteControlBoard/ergocubSim/right_leg/command:o to /ergocubSim/right_leg/command:i
[INFO] |yarp.os.impl.PortCoreInputUnit|/walking-coordinator/remoteControlBoard/ergocubSim/right_leg/stateExt:i| Removing input from /ergocubSim/right_leg/stateExt:o to /walking-coordinator/remoteControlBoard/ergocubSim/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|/IITICUBLAP218/WalkingModule/101245/clock:i| Removing input from /clock to /IITICUBLAP218/WalkingModule/101245/clock:i

@xela-95
Copy link
Member Author

xela-95 commented Mar 18, 2024

The error is raised from https://github.com/robotology/walking-controllers/blob/v0.8.0/src/RobotInterface/src/Helper.cpp#L391-L401 and it is due to the fact that the getEncoderSpeeds method is not yet implemented in the controlboard plugin.

@xela-95
Copy link
Member Author

xela-95 commented Mar 18, 2024

✅ Step 6/7

After #123 was merged the WalkingModule started by invoking it just by launching WalkingModule in a terminal.

It produced the following logs:

WalkingModule
[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 ("/ergocubSim/torso" "/ergocubSim/left_arm" "/ergocubSim/right_arm" "/ergocubSim/left_leg" "/ergocubSim/right_leg"))
[DEBUG] |yarp.dev.PolyDriver|remote_controlboard| Parameters are (device remote_controlboard) (local "/walking-coordinator/remoteControlBoard/ergocubSim/torso") (remote "/ergocubSim/torso") (writeStrict on)
[INFO] |yarp.device.remote_controlboard| RemoteControlBoard is ENABLING the writeStrict option for all commands
[INFO] |yarp.os.Port|/walking-coordinator/remoteControlBoard/ergocubSim/torso/rpc:o| Port /walking-coordinator/remoteControlBoard/ergocubSim/torso/rpc:o active at tcp://192.168.220.201:10088/
[INFO] |yarp.os.Port|/walking-coordinator/remoteControlBoard/ergocubSim/torso/command:o| Port /walking-coordinator/remoteControlBoard/ergocubSim/torso/command:o active at tcp://192.168.220.201:10089/
[INFO] |yarp.os.Port|/walking-coordinator/remoteControlBoard/ergocubSim/torso/stateExt:i| Port /walking-coordinator/remoteControlBoard/ergocubSim/torso/stateExt:i active at tcp://192.168.220.201:10090/
[INFO] |yarp.os.impl.PortCoreOutputUnit|/walking-coordinator/remoteControlBoard/ergocubSim/torso/rpc:o| Sending output from /walking-coordinator/remoteControlBoard/ergocubSim/torso/rpc:o to /ergocubSim/torso/rpc:i using tcp
[INFO] |yarp.os.impl.PortCoreOutputUnit|/walking-coordinator/remoteControlBoard/ergocubSim/torso/command:o| Sending output from /walking-coordinator/remoteControlBoard/ergocubSim/torso/command:o to /ergocubSim/torso/command:i using udp
[INFO] |yarp.os.impl.PortCoreInputUnit|/walking-coordinator/remoteControlBoard/ergocubSim/torso/stateExt:i| Receiving input from /ergocubSim/torso/stateExt:o to /walking-coordinator/remoteControlBoard/ergocubSim/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/ergocubSim/left_arm") (remote "/ergocubSim/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/ergocubSim/left_arm/rpc:o| Port /walking-coordinator/remoteControlBoard/ergocubSim/left_arm/rpc:o active at tcp://192.168.220.201:10091/
[INFO] |yarp.os.Port|/walking-coordinator/remoteControlBoard/ergocubSim/left_arm/command:o| Port /walking-coordinator/remoteControlBoard/ergocubSim/left_arm/command:o active at tcp://192.168.220.201:10092/
[INFO] |yarp.os.Port|/walking-coordinator/remoteControlBoard/ergocubSim/left_arm/stateExt:i| Port /walking-coordinator/remoteControlBoard/ergocubSim/left_arm/stateExt:i active at tcp://192.168.220.201:10093/
[INFO] |yarp.os.impl.PortCoreOutputUnit|/walking-coordinator/remoteControlBoard/ergocubSim/left_arm/rpc:o| Sending output from /walking-coordinator/remoteControlBoard/ergocubSim/left_arm/rpc:o to /ergocubSim/left_arm/rpc:i using tcp
[INFO] |yarp.os.impl.PortCoreOutputUnit|/walking-coordinator/remoteControlBoard/ergocubSim/left_arm/command:o| Sending output from /walking-coordinator/remoteControlBoard/ergocubSim/left_arm/command:o to /ergocubSim/left_arm/command:i using udp
[INFO] |yarp.os.impl.PortCoreInputUnit|/walking-coordinator/remoteControlBoard/ergocubSim/left_arm/stateExt:i| Receiving input from /ergocubSim/left_arm/stateExt:o to /walking-coordinator/remoteControlBoard/ergocubSim/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/ergocubSim/right_arm") (remote "/ergocubSim/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/ergocubSim/right_arm/rpc:o| Port /walking-coordinator/remoteControlBoard/ergocubSim/right_arm/rpc:o active at tcp://192.168.220.201:10094/
[INFO] |yarp.os.Port|/walking-coordinator/remoteControlBoard/ergocubSim/right_arm/command:o| Port /walking-coordinator/remoteControlBoard/ergocubSim/right_arm/command:o active at tcp://192.168.220.201:10095/
[INFO] |yarp.os.Port|/walking-coordinator/remoteControlBoard/ergocubSim/right_arm/stateExt:i| Port /walking-coordinator/remoteControlBoard/ergocubSim/right_arm/stateExt:i active at tcp://192.168.220.201:10096/
[INFO] |yarp.os.impl.PortCoreOutputUnit|/walking-coordinator/remoteControlBoard/ergocubSim/right_arm/rpc:o| Sending output from /walking-coordinator/remoteControlBoard/ergocubSim/right_arm/rpc:o to /ergocubSim/right_arm/rpc:i using tcp
[INFO] |yarp.os.impl.PortCoreOutputUnit|/walking-coordinator/remoteControlBoard/ergocubSim/right_arm/command:o| Sending output from /walking-coordinator/remoteControlBoard/ergocubSim/right_arm/command:o to /ergocubSim/right_arm/command:i using udp
[INFO] |yarp.os.impl.PortCoreInputUnit|/walking-coordinator/remoteControlBoard/ergocubSim/right_arm/stateExt:i| Receiving input from /ergocubSim/right_arm/stateExt:o to /walking-coordinator/remoteControlBoard/ergocubSim/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/ergocubSim/left_leg") (remote "/ergocubSim/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/ergocubSim/left_leg/rpc:o| Port /walking-coordinator/remoteControlBoard/ergocubSim/left_leg/rpc:o active at tcp://192.168.220.201:10097/
[INFO] |yarp.os.Port|/walking-coordinator/remoteControlBoard/ergocubSim/left_leg/command:o| Port /walking-coordinator/remoteControlBoard/ergocubSim/left_leg/command:o active at tcp://192.168.220.201:10098/
[INFO] |yarp.os.Port|/walking-coordinator/remoteControlBoard/ergocubSim/left_leg/stateExt:i| Port /walking-coordinator/remoteControlBoard/ergocubSim/left_leg/stateExt:i active at tcp://192.168.220.201:10099/
[INFO] |yarp.os.impl.PortCoreOutputUnit|/walking-coordinator/remoteControlBoard/ergocubSim/left_leg/rpc:o| Sending output from /walking-coordinator/remoteControlBoard/ergocubSim/left_leg/rpc:o to /ergocubSim/left_leg/rpc:i using tcp
[INFO] |yarp.os.impl.PortCoreOutputUnit|/walking-coordinator/remoteControlBoard/ergocubSim/left_leg/command:o| Sending output from /walking-coordinator/remoteControlBoard/ergocubSim/left_leg/command:o to /ergocubSim/left_leg/command:i using udp
[INFO] |yarp.os.impl.PortCoreInputUnit|/walking-coordinator/remoteControlBoard/ergocubSim/left_leg/stateExt:i| Receiving input from /ergocubSim/left_leg/stateExt:o to /walking-coordinator/remoteControlBoard/ergocubSim/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/ergocubSim/right_leg") (remote "/ergocubSim/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/ergocubSim/right_leg/rpc:o| Port /walking-coordinator/remoteControlBoard/ergocubSim/right_leg/rpc:o active at tcp://192.168.220.201:10100/
[INFO] |yarp.os.Port|/walking-coordinator/remoteControlBoard/ergocubSim/right_leg/command:o| Port /walking-coordinator/remoteControlBoard/ergocubSim/right_leg/command:o active at tcp://192.168.220.201:10101/
[INFO] |yarp.os.Port|/walking-coordinator/remoteControlBoard/ergocubSim/right_leg/stateExt:i| Port /walking-coordinator/remoteControlBoard/ergocubSim/right_leg/stateExt:i active at tcp://192.168.220.201:10102/
[INFO] |yarp.os.impl.PortCoreOutputUnit|/walking-coordinator/remoteControlBoard/ergocubSim/right_leg/rpc:o| Sending output from /walking-coordinator/remoteControlBoard/ergocubSim/right_leg/rpc:o to /ergocubSim/right_leg/rpc:i using tcp
[INFO] |yarp.os.impl.PortCoreOutputUnit|/walking-coordinator/remoteControlBoard/ergocubSim/right_leg/command:o| Sending output from /walking-coordinator/remoteControlBoard/ergocubSim/right_leg/command:o to /ergocubSim/right_leg/command:i using udp
[INFO] |yarp.os.impl.PortCoreInputUnit|/walking-coordinator/remoteControlBoard/ergocubSim/right_leg/stateExt:i| Receiving input from /ergocubSim/right_leg/stateExt:o to /walking-coordinator/remoteControlBoard/ergocubSim/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.
[INFO] |yarp.os.Port|/walking-coordinator/left_foot_front/cartesianEndEffectorWrench:i| Port /walking-coordinator/left_foot_front/cartesianEndEffectorWrench:i active at tcp://192.168.220.201:10109/
[INFO] |yarp.os.impl.PortCoreInputUnit|/walking-coordinator/left_foot_front/cartesianEndEffectorWrench:i| Receiving input from /wholeBodyDynamics/left_foot_front/cartesianEndEffectorWrench:o to /walking-coordinator/left_foot_front/cartesianEndEffectorWrench:i using tcp
[INFO] |yarp.os.Port|/walking-coordinator/left_foot_rear/cartesianEndEffectorWrench:i| Port /walking-coordinator/left_foot_rear/cartesianEndEffectorWrench:i active at tcp://192.168.220.201:10110/
[INFO] |yarp.os.impl.PortCoreInputUnit|/walking-coordinator/left_foot_rear/cartesianEndEffectorWrench:i| Receiving input from /wholeBodyDynamics/left_foot_rear/cartesianEndEffectorWrench:o to /walking-coordinator/left_foot_rear/cartesianEndEffectorWrench:i using tcp
[INFO] |yarp.os.Port|/walking-coordinator/right_foot_front/cartesianEndEffectorWrench:i| Port /walking-coordinator/right_foot_front/cartesianEndEffectorWrench:i active at tcp://192.168.220.201:10111/
[INFO] |yarp.os.impl.PortCoreInputUnit|/walking-coordinator/right_foot_front/cartesianEndEffectorWrench:i| Receiving input from /wholeBodyDynamics/right_foot_front/cartesianEndEffectorWrench:o to /walking-coordinator/right_foot_front/cartesianEndEffectorWrench:i using tcp
[INFO] |yarp.os.Port|/walking-coordinator/right_foot_rear/cartesianEndEffectorWrench:i| Port /walking-coordinator/right_foot_rear/cartesianEndEffectorWrench:i active at tcp://192.168.220.201:10112/
[INFO] |yarp.os.impl.PortCoreInputUnit|/walking-coordinator/right_foot_rear/cartesianEndEffectorWrench:i| Receiving input from /wholeBodyDynamics/right_foot_rear/cartesianEndEffectorWrench:o to /walking-coordinator/right_foot_rear/cartesianEndEffectorWrench:i using tcp
[INFO] [WalkingModule::setRobotModel] The model is found in:  /home/acroci/ergocub_ws/install/share/ergoCub/robots/ergoCubGazeboV1_1/model.urdf
[INFO] |yarp.os.Port|/walking-coordinator/rpc| Port /walking-coordinator/rpc active at tcp://192.168.220.201:10113/
[INFO] |yarp.os.Port|/walking-coordinator/goal:i| Port /walking-coordinator/goal:i active at tcp://192.168.220.201:10114/
[INFO] |yarp.os.Port|/walking-coordinator/freeSpaceEllipse:in| Port /walking-coordinator/freeSpaceEllipse:in active at tcp://192.168.220.201:10115/
[2024-03-18 13:10:25.435] [thread: 227422] [blf] [info] [QPInverseKinematics::initialize] 'verbosity' not found. The following parameter will be used 'false'.
[2024-03-18 13:10:25.435] [thread: 227422] [blf] [info] [SE3Task::initialize]  [IK-SE3Task - Frame name:  r_sole] Unable to find the mask parameter. The default value is used: true true true.
[2024-03-18 13:10:25.435] [thread: 227422] [blf] [info] [SE3Task::initialize]  [IK-SE3Task - Frame name:  r_sole] Unable to find the use_orientation_exogenous_feedback parameter. The default value is used: false.
[2024-03-18 13:10:25.435] [thread: 227422] [blf] [info] [SE3Task::initialize]  [IK-SE3Task - Frame name:  r_sole] Unable to find the use_position_exogenous_feedback parameter. The default value is used: false.
[2024-03-18 13:10:25.435] [thread: 227422] [blf] [info] [SE3Task::initialize]  [IK-SE3Task - Frame name:  l_sole] Unable to find the mask parameter. The default value is used: true true true.
[2024-03-18 13:10:25.435] [thread: 227422] [blf] [info] [SE3Task::initialize]  [IK-SE3Task - Frame name:  l_sole] Unable to find the use_orientation_exogenous_feedback parameter. The default value is used: false.
[2024-03-18 13:10:25.435] [thread: 227422] [blf] [info] [SE3Task::initialize]  [IK-SE3Task - Frame name:  l_sole] Unable to find the use_position_exogenous_feedback parameter. The default value is used: false.
[2024-03-18 13:10:25.435] [thread: 227422] [blf] [info] [BLFIK::initialize] ====== QPInverseKinematics class ======
The optimization problem is composed by the following tasks:
	 - root_task: IK-R3Task - Frame name: root_link Mask: false false true. Priority: 0.
	 - joint_regularization_task: Joint tracking task Priority: 1.
	 - torso_task: SO3Task Optimal Control Element - Frame name: chest. Priority: 1.
	 - left_foot_task: IK-SE3Task - Frame name: l_sole Mask: true true true. Use exogenous feedback position: false. Use exogenous feedback orientation: false. Priority: 0.
	 - right_foot_task: IK-SE3Task - Frame name: r_sole Mask: true true true. Use exogenous feedback position: false. Use exogenous feedback orientation: false. Priority: 0.
	 - com_task: CoMTask Mask: true true false Priority: 0.
Note: The lower is the integer associated to the priority, the higher is the priority.
==========================

[INFO] Loading custom PIDs
[INFO] Parsing DEFAULT PID group.
[INFO] DEFAULT PID successfully loaded
[INFO] |yarp.os.Port|/walking-coordinator/logger/data:o| Port /walking-coordinator/logger/data:o active at tcp://192.168.220.201:10116/
[INFO] [WalkingModule::configure] Ready to play! Please prepare the robot.

@xela-95
Copy link
Member Author

xela-95 commented Mar 18, 2024

Step 7/7

I then tried the last step, giving commands to the walking module with yarp rpc /walking-coordinator/rpc.

The result to the first command, prepareRobot was the following:

q desired IK     7.90808   0.0515361 -0.00774795    -3.39176     19.4153    -12.9109     40.5797    -3.39175     19.4128    -12.9106     40.5803     5.43723    0.871996    -0.20733    -34.1722    -20.7114   -0.913073     5.45065    0.902982   -0.217773    -34.2003    -20.7262   -0.912138
[ERROR] [RobotInterface::checkMotionDone] The timer is expired but the joint  r_knee  has an error of  0.260427  radians
[ERROR] [WalkingModule::updateModule] Unable to check if the motion is done

Then by asking again to prepareRobot the result was:

[INFO] [WalkingModule::updateModule] Try to prepare again
q desired IK     7.90808   0.0515361 -0.00774795    -3.39176     19.4153    -12.9109     40.5797    -3.39175     19.4128    -12.9106     40.5803     5.43723    0.871996    -0.20733    -34.1722    -20.7114   -0.913073     5.45065    0.902982   -0.217773    -34.2003    -20.7262   -0.912138
[INFO] [WalkingModule::updateModule] rootlink offset  0.0457547 .
[INFO] [WalkingModule::updateModule] The robot is prepared.

Then when I asked for startWalking I got an error:

[2024-03-18 14:35:52.899] [thread: 242499] [blf] [error] [GlobalCoPEvaluator::advance] Zero contacts are active, the CoP is not valid.
[ERROR] [WalkingModule::computeGlobalCoP] Unable to compute the global CoP.
[ERROR] [WalkingModule::updateModule] Unable to compute the global CoP.

I don't know why the prepareRobot is not always working, maybe there are some control gains to be adjusted.

While for the startWalking error I think this is due to #122 (comment)

@xela-95
Copy link
Member Author

xela-95 commented Mar 18, 2024

Here's a video of the prepareRobot action:

2024-03-18_14-34-32.mp4

@S-Dafarra
Copy link
Collaborator

I don't know why the prepareRobot is not always working, maybe there are some control gains to be adjusted.

It is possible, yes. It checks that the robot is in the desired position considering the settling time we set. See https://github.com/robotology/walking-controllers/blob/edc8984998043c98182f726e17822deb2a7b1915/src/RobotInterface/src/Helper.cpp#L980

@xela-95
Copy link
Member Author

xela-95 commented Mar 18, 2024

I don't know why the prepareRobot is not always working, maybe there are some control gains to be adjusted.

It is possible, yes. It checks that the robot is in the desired position considering the settling time we set. See https://github.com/robotology/walking-controllers/blob/edc8984998043c98182f726e17822deb2a7b1915/src/RobotInterface/src/Helper.cpp#L980

Clear, thanks!

BTW the method that is failing during the startWalking phase comes from the blf method advance of class GlobalCoPEvaluator : https://github.com/ami-iit/bipedal-locomotion-framework/blob/1e9cb3f78b122952a5d4af7b020110911d65ab90/src/Contacts/src/GlobalCoPEvaluator.cpp#L86-L178

@S-Dafarra
Copy link
Collaborator

BTW the method that is failing during the startWalking phase comes from the blf method advance of class GlobalCoPEvaluator : https://github.com/ami-iit/bipedal-locomotion-framework/blob/1e9cb3f78b122952a5d4af7b020110911d65ab90/src/Contacts/src/GlobalCoPEvaluator.cpp#L86-L178

Yes it means that neither of the two local cop is acceptable, either because the normal component is too small, or because the cop is too far from the foot boundaries

1 similar comment
@S-Dafarra

This comment was marked as duplicate.

@xela-95
Copy link
Member Author

xela-95 commented Mar 18, 2024

I'm getting a curios behavior in my last tests: when preparing the robot it is always returning a Response: [ok] but it logs the error that [ERROR] [RobotInterface::checkMotionDone] The timer is expired but the joint r_elbow has an error of 0.355696 radians. and it writes this sometimes for r_elbow and sometimes for l_elbow.

By connecting to the robot the yarpmotorgui, I saw that the range of the elbow joints is somehow restricted to the position reached with the prepareRobot, so maybe the prepare fails because even if it is asking for a certain joint position, the controlboard see the joint having reached its limit.

P.S. is it correct that the return message from the rpc command prepareRobot is OK even if the action did not succeed?

Screenshot from 2024-03-18 16-19-38

Screenshot from 2024-03-18 16-21-13

@xela-95
Copy link
Member Author

xela-95 commented Mar 19, 2024

Thank to @traversaro the issue of FTs and IMUs not communicating was solved. This was due to the fact there were some gazebo plugins missing:

<plugin
  filename="gz-sim-forcetorque-system"
  name="gz::sim::systems::ForceTorque">
</plugin>
<plugin
  filename="gz-sim-imu-system"
  name="gz::sim::systems::Imu">
</plugin>

Now I can read measurements via yarp read.

The /wholeBodyDynamics/right_foot_front/cartesianEndEffectorWrench:o reports:

1.06954221966386464615 47.879756222723536041 131.967328336028657532 -6.80291645844825865197 -4.59942486510437120728 2.04004190919274908111

When trying to do setGoal to make the robot walk I'm still getting the blf error [blf] [error] [GlobalCoPEvaluator::advance] Zero contacts are active, the CoP is not valid. and then the WalkingModule stops.

@traversaro
Copy link
Member

traversaro commented Mar 19, 2024

Thank to @traversaro the issue of FTs and IMUs not communicating was solved. This was due to the fact there were some gazebo plugins missing:

We should at least print an error if that is the case.

@xela-95
Copy link
Member Author

xela-95 commented Mar 19, 2024

Physics engine configurations

http://sdformat.org/spec?ver=1.11&elem=physics

Despite the SDF specifications has the type attribute for the <physics> element, Gazebo only supports DART and preliminary support for Bullet.

https://gazebosim.org/docs/harmonic/comparison#physics
https://gazebosim.org/api/sim/8/physics.html

Moreover for DART it is possible to choose what collision detector to use among (fcl, dart, ode and bullet): http://sdformat.org/spec?ver=1.11&elem=physics#dart_collision_detector

Engine: DART (default)

For these simulations the element <max_contacts>, regulating the max number of contact points between two bodies, has been set to 4.

collision_detector Result
fcl (default) Some steps performed and then fell down.
ode Some steps performed and then fell down. Simulation slower than tcl case.
dart Cannot be used with collision meshes, only with simple shapes. It gives the error: Error [DARTCollide.cpp:1649] [DARTCollisionDetector] Attempting to check for an unsupported shape pair: [MeshShape] - [BoxShape]. Returning false.
bullet Unstable behavior. It wasn't able to do any steps before getting the blf error for the CoP

Videos:

FCL

cd_fcl.mp4

ODE

cd_ode.mp4

Bullet

cd_bullet.mp4

@xela-95
Copy link
Member Author

xela-95 commented Mar 19, 2024

As @S-Dafarra pointed out, the weird behavior for which the prepareRobot does not work the first time can be due to the clock not being appropriately synchronized. I'm looking into it.

@xela-95
Copy link
Member Author

xela-95 commented Mar 19, 2024

We should at least print an error if that is the case.

Agree, I have to understand how to check if that plugins are available in the world.

@traversaro
Copy link
Member

You may want to update your libode package version, during the weekend we fixed some critical bugs (see conda-forge/libode-feedstock#22 and conda-forge/libode-feedstock#23).

@traversaro
Copy link
Member

fcl (default)

I am not sure this is true. If you see https://github.com/gazebosim/gz-sim/blob/gz-sim8/tutorials/physics.md?plain=1#L100, there they report that ode is the default collision detector, and I was expecting that as that is what is tested in gz-physics tests (https://github.com/gazebosim/gz-physics/blob/7d30e47fb61fe4db9cba460717a3910df9deabee/dartsim/src/WorldFeatures_TEST.cc#L87).
Probably sdformat reports the default in Gazebo Classic, while the default in gz-sim/gz-physics is different.

Can you open an issue in https://github.com/gazebosim/gz-sim to report the issue? Thanks!

@traversaro
Copy link
Member

(By the way, can you enable visualization of contacts in this videos?) Thanks!

@xela-95
Copy link
Member Author

xela-95 commented Mar 19, 2024

You may want to update your libode package version, during the weekend we fixed some critical bugs (see conda-forge/libode-feedstock#22 and conda-forge/libode-feedstock#23).

is the latest libode version the 0.16.2? https://anaconda.org/conda-forge/libode

@traversaro
Copy link
Member

Yes, but the fix is in the latest build, i.e. 14, so make sure to have installed libode==0.16.2=*_14 , just updating libode should install the latest build

@xela-95
Copy link
Member Author

xela-95 commented Mar 19, 2024

Can you open an issue in https://github.com/gazebosim/gz-sim to report the issue? Thanks!

Done here: gazebosim/gz-sim#2338

@xela-95
Copy link
Member Author

xela-95 commented Mar 20, 2024

One of the major issues now is to guarantee that the Gazebo clock is set as Yarp clock on the /clock port, otherwise the control and the simulator will run at different speed.

Here are my attempts:

  • By setting the environment variable YARP_CLOCK when I launch gazebo with gz sim example.workd --verbose Gazebo remains stuck (with a black GUI) logging:
[INFO] |yarp.os.Port|/IITICUBLAP218/gz/79976/clock:i| Port /IITICUBLAP218/gz/79976/clock:i active at tcp://10.240.2.19:10002/
[INFO] |yarp.os.Network| Success: port-to-port persistent connection added.
[ERROR] |yarp.os.NetworkClock| Cannot find time port "/clock" or a time topic "/clock@"
[INFO] |yarp.os.Time| Waiting for clock server to start broadcasting data ...
[INFO] |yarp.os.Time| Waiting for clock server to start broadcasting data ...
  • If I just try to set YARP_CLOCK when launching the WalkingModule by launching it with: YARP_CLOCK=/clock WalkingModule I got:
[INFO] |yarp.os.Port|/IITICUBLAP218/WalkingModule/82982/clock:i| Port /IITICUBLAP218/WalkingModule/82982/clock:i active at tcp://10.240.2.19:10085/
[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|/IITICUBLAP218/WalkingModule/82982/clock:i| Receiving input from /clock to /IITICUBLAP218/WalkingModule/82982/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 ("/ergocubSim/torso" "/ergocubSim/left_arm" "/ergocubSim/right_arm" "/ergocubSim/left_leg" "/ergocubSim/right_leg"))
[DEBUG] |yarp.dev.PolyDriver|remote_controlboard| Parameters are (device remote_controlboard) (local "/walking-coordinator/remoteControlBoard/ergocubSim/torso") (remote "/ergocubSim/torso") (writeStrict on)
[INFO] |yarp.device.remote_controlboard| RemoteControlBoard is ENABLING the writeStrict option for all commands
[INFO] |yarp.os.Port|/walking-coordinator/remoteControlBoard/ergocubSim/torso/rpc:o| Port /walking-coordinator/remoteControlBoard/ergocubSim/torso/rpc:o active at tcp://10.240.2.19:10086/
[INFO] |yarp.os.Port|/walking-coordinator/remoteControlBoard/ergocubSim/torso/command:o| Port /walking-coordinator/remoteControlBoard/ergocubSim/torso/command:o active at tcp://10.240.2.19:10087/
[INFO] |yarp.os.Port|/walking-coordinator/remoteControlBoard/ergocubSim/torso/stateExt:i| Port /walking-coordinator/remoteControlBoard/ergocubSim/torso/stateExt:i active at tcp://10.240.2.19:10088/
[INFO] |yarp.os.impl.PortCoreOutputUnit|/walking-coordinator/remoteControlBoard/ergocubSim/torso/rpc:o| Sending output from /walking-coordinator/remoteControlBoard/ergocubSim/torso/rpc:o to /ergocubSim/torso/rpc:i using tcp
[INFO] |yarp.os.impl.PortCoreOutputUnit|/walking-coordinator/remoteControlBoard/ergocubSim/torso/command:o| Sending output from /walking-coordinator/remoteControlBoard/ergocubSim/torso/command:o to /ergocubSim/torso/command:i using udp
[INFO] |yarp.os.impl.PortCoreInputUnit|/walking-coordinator/remoteControlBoard/ergocubSim/torso/stateExt:i| Receiving input from /ergocubSim/torso/stateExt:o to /walking-coordinator/remoteControlBoard/ergocubSim/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/ergocubSim/left_arm") (remote "/ergocubSim/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/ergocubSim/left_arm/rpc:o| Port /walking-coordinator/remoteControlBoard/ergocubSim/left_arm/rpc:o active at tcp://10.240.2.19:10089/
[INFO] |yarp.os.Port|/walking-coordinator/remoteControlBoard/ergocubSim/left_arm/command:o| Port /walking-coordinator/remoteControlBoard/ergocubSim/left_arm/command:o active at tcp://10.240.2.19:10090/
[INFO] |yarp.os.Port|/walking-coordinator/remoteControlBoard/ergocubSim/left_arm/stateExt:i| Port /walking-coordinator/remoteControlBoard/ergocubSim/left_arm/stateExt:i active at tcp://10.240.2.19:10091/
[INFO] |yarp.os.impl.PortCoreOutputUnit|/walking-coordinator/remoteControlBoard/ergocubSim/left_arm/rpc:o| Sending output from /walking-coordinator/remoteControlBoard/ergocubSim/left_arm/rpc:o to /ergocubSim/left_arm/rpc:i using tcp
[INFO] |yarp.os.impl.PortCoreOutputUnit|/walking-coordinator/remoteControlBoard/ergocubSim/left_arm/command:o| Sending output from /walking-coordinator/remoteControlBoard/ergocubSim/left_arm/command:o to /ergocubSim/left_arm/command:i using udp
[INFO] |yarp.os.impl.PortCoreInputUnit|/walking-coordinator/remoteControlBoard/ergocubSim/left_arm/stateExt:i| Receiving input from /ergocubSim/left_arm/stateExt:o to /walking-coordinator/remoteControlBoard/ergocubSim/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/ergocubSim/right_arm") (remote "/ergocubSim/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/ergocubSim/right_arm/rpc:o| Port /walking-coordinator/remoteControlBoard/ergocubSim/right_arm/rpc:o active at tcp://10.240.2.19:10092/
[INFO] |yarp.os.Port|/walking-coordinator/remoteControlBoard/ergocubSim/right_arm/command:o| Port /walking-coordinator/remoteControlBoard/ergocubSim/right_arm/command:o active at tcp://10.240.2.19:10093/
[INFO] |yarp.os.Port|/walking-coordinator/remoteControlBoard/ergocubSim/right_arm/stateExt:i| Port /walking-coordinator/remoteControlBoard/ergocubSim/right_arm/stateExt:i active at tcp://10.240.2.19:10094/
[INFO] |yarp.os.impl.PortCoreOutputUnit|/walking-coordinator/remoteControlBoard/ergocubSim/right_arm/rpc:o| Sending output from /walking-coordinator/remoteControlBoard/ergocubSim/right_arm/rpc:o to /ergocubSim/right_arm/rpc:i using tcp
[INFO] |yarp.os.impl.PortCoreOutputUnit|/walking-coordinator/remoteControlBoard/ergocubSim/right_arm/command:o| Sending output from /walking-coordinator/remoteControlBoard/ergocubSim/right_arm/command:o to /ergocubSim/right_arm/command:i using udp
[INFO] |yarp.os.impl.PortCoreInputUnit|/walking-coordinator/remoteControlBoard/ergocubSim/right_arm/stateExt:i| Receiving input from /ergocubSim/right_arm/stateExt:o to /walking-coordinator/remoteControlBoard/ergocubSim/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/ergocubSim/left_leg") (remote "/ergocubSim/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/ergocubSim/left_leg/rpc:o| Port /walking-coordinator/remoteControlBoard/ergocubSim/left_leg/rpc:o active at tcp://10.240.2.19:10095/
[INFO] |yarp.os.Port|/walking-coordinator/remoteControlBoard/ergocubSim/left_leg/command:o| Port /walking-coordinator/remoteControlBoard/ergocubSim/left_leg/command:o active at tcp://10.240.2.19:10096/
[INFO] |yarp.os.Port|/walking-coordinator/remoteControlBoard/ergocubSim/left_leg/stateExt:i| Port /walking-coordinator/remoteControlBoard/ergocubSim/left_leg/stateExt:i active at tcp://10.240.2.19:10097/
[INFO] |yarp.os.impl.PortCoreOutputUnit|/walking-coordinator/remoteControlBoard/ergocubSim/left_leg/rpc:o| Sending output from /walking-coordinator/remoteControlBoard/ergocubSim/left_leg/rpc:o to /ergocubSim/left_leg/rpc:i using tcp
[INFO] |yarp.os.impl.PortCoreOutputUnit|/walking-coordinator/remoteControlBoard/ergocubSim/left_leg/command:o| Sending output from /walking-coordinator/remoteControlBoard/ergocubSim/left_leg/command:o to /ergocubSim/left_leg/command:i using udp
[INFO] |yarp.os.impl.PortCoreInputUnit|/walking-coordinator/remoteControlBoard/ergocubSim/left_leg/stateExt:i| Receiving input from /ergocubSim/left_leg/stateExt:o to /walking-coordinator/remoteControlBoard/ergocubSim/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/ergocubSim/right_leg") (remote "/ergocubSim/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/ergocubSim/right_leg/rpc:o| Port /walking-coordinator/remoteControlBoard/ergocubSim/right_leg/rpc:o active at tcp://10.240.2.19:10098/
[INFO] |yarp.os.Port|/walking-coordinator/remoteControlBoard/ergocubSim/right_leg/command:o| Port /walking-coordinator/remoteControlBoard/ergocubSim/right_leg/command:o active at tcp://10.240.2.19:10099/
[INFO] |yarp.os.Port|/walking-coordinator/remoteControlBoard/ergocubSim/right_leg/stateExt:i| Port /walking-coordinator/remoteControlBoard/ergocubSim/right_leg/stateExt:i active at tcp://10.240.2.19:10100/
[INFO] |yarp.os.impl.PortCoreOutputUnit|/walking-coordinator/remoteControlBoard/ergocubSim/right_leg/rpc:o| Sending output from /walking-coordinator/remoteControlBoard/ergocubSim/right_leg/rpc:o to /ergocubSim/right_leg/rpc:i using tcp
[INFO] |yarp.os.impl.PortCoreOutputUnit|/walking-coordinator/remoteControlBoard/ergocubSim/right_leg/command:o| Sending output from /walking-coordinator/remoteControlBoard/ergocubSim/right_leg/command:o to /ergocubSim/right_leg/command:i using udp
[INFO] |yarp.os.impl.PortCoreInputUnit|/walking-coordinator/remoteControlBoard/ergocubSim/right_leg/stateExt:i| Receiving input from /ergocubSim/right_leg/stateExt:o to /walking-coordinator/remoteControlBoard/ergocubSim/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] [configure] Unable to read encoders.
[ERROR] [WalkingModule::configure] Unable to configure the robot.
[INFO] |yarp.os.RFModule| RFModule failed to open.
[INFO] |yarp.os.impl.PortCoreOutputUnit|/walking-coordinator/remoteControlBoard/ergocubSim/torso/rpc:o| Removing output from /walking-coordinator/remoteControlBoard/ergocubSim/torso/rpc:o to /ergocubSim/torso/rpc:i
[INFO] |yarp.os.impl.PortCoreOutputUnit|/walking-coordinator/remoteControlBoard/ergocubSim/torso/command:o| output for route /walking-coordinator/remoteControlBoard/ergocubSim/torso/command:o->udp->/ergocubSim/torso/command:i asking other side to close by out-of-band means
[INFO] |yarp.os.impl.PortCoreOutputUnit|/walking-coordinator/remoteControlBoard/ergocubSim/torso/command:o| Removing output from /walking-coordinator/remoteControlBoard/ergocubSim/torso/command:o to /ergocubSim/torso/command:i
[INFO] |yarp.os.impl.PortCoreInputUnit|/walking-coordinator/remoteControlBoard/ergocubSim/torso/stateExt:i| Removing input from /ergocubSim/torso/stateExt:o to /walking-coordinator/remoteControlBoard/ergocubSim/torso/stateExt:i
[INFO] |yarp.os.impl.PortCoreOutputUnit|/walking-coordinator/remoteControlBoard/ergocubSim/left_arm/rpc:o| Removing output from /walking-coordinator/remoteControlBoard/ergocubSim/left_arm/rpc:o to /ergocubSim/left_arm/rpc:i
[INFO] |yarp.os.impl.PortCoreOutputUnit|/walking-coordinator/remoteControlBoard/ergocubSim/left_arm/command:o| output for route /walking-coordinator/remoteControlBoard/ergocubSim/left_arm/command:o->udp->/ergocubSim/left_arm/command:i asking other side to close by out-of-band means
[INFO] |yarp.os.impl.PortCoreOutputUnit|/walking-coordinator/remoteControlBoard/ergocubSim/left_arm/command:o| Removing output from /walking-coordinator/remoteControlBoard/ergocubSim/left_arm/command:o to /ergocubSim/left_arm/command:i
[INFO] |yarp.os.impl.PortCoreInputUnit|/walking-coordinator/remoteControlBoard/ergocubSim/left_arm/stateExt:i| Removing input from /ergocubSim/left_arm/stateExt:o to /walking-coordinator/remoteControlBoard/ergocubSim/left_arm/stateExt:i
[INFO] |yarp.os.impl.PortCoreOutputUnit|/walking-coordinator/remoteControlBoard/ergocubSim/right_arm/rpc:o| Removing output from /walking-coordinator/remoteControlBoard/ergocubSim/right_arm/rpc:o to /ergocubSim/right_arm/rpc:i
[INFO] |yarp.os.impl.PortCoreOutputUnit|/walking-coordinator/remoteControlBoard/ergocubSim/right_arm/command:o| output for route /walking-coordinator/remoteControlBoard/ergocubSim/right_arm/command:o->udp->/ergocubSim/right_arm/command:i asking other side to close by out-of-band means
[INFO] |yarp.os.impl.PortCoreOutputUnit|/walking-coordinator/remoteControlBoard/ergocubSim/right_arm/command:o| Removing output from /walking-coordinator/remoteControlBoard/ergocubSim/right_arm/command:o to /ergocubSim/right_arm/command:i
[INFO] |yarp.os.impl.PortCoreInputUnit|/walking-coordinator/remoteControlBoard/ergocubSim/right_arm/stateExt:i| Removing input from /ergocubSim/right_arm/stateExt:o to /walking-coordinator/remoteControlBoard/ergocubSim/right_arm/stateExt:i
[INFO] |yarp.os.impl.PortCoreOutputUnit|/walking-coordinator/remoteControlBoard/ergocubSim/left_leg/rpc:o| Removing output from /walking-coordinator/remoteControlBoard/ergocubSim/left_leg/rpc:o to /ergocubSim/left_leg/rpc:i
[INFO] |yarp.os.impl.PortCoreOutputUnit|/walking-coordinator/remoteControlBoard/ergocubSim/left_leg/command:o| output for route /walking-coordinator/remoteControlBoard/ergocubSim/left_leg/command:o->udp->/ergocubSim/left_leg/command:i asking other side to close by out-of-band means
[INFO] |yarp.os.impl.PortCoreOutputUnit|/walking-coordinator/remoteControlBoard/ergocubSim/left_leg/command:o| Removing output from /walking-coordinator/remoteControlBoard/ergocubSim/left_leg/command:o to /ergocubSim/left_leg/command:i
[INFO] |yarp.os.impl.PortCoreInputUnit|/walking-coordinator/remoteControlBoard/ergocubSim/left_leg/stateExt:i| Removing input from /ergocubSim/left_leg/stateExt:o to /walking-coordinator/remoteControlBoard/ergocubSim/left_leg/stateExt:i
[INFO] |yarp.os.impl.PortCoreOutputUnit|/walking-coordinator/remoteControlBoard/ergocubSim/right_leg/rpc:o| Removing output from /walking-coordinator/remoteControlBoard/ergocubSim/right_leg/rpc:o to /ergocubSim/right_leg/rpc:i
[INFO] |yarp.os.impl.PortCoreOutputUnit|/walking-coordinator/remoteControlBoard/ergocubSim/right_leg/command:o| output for route /walking-coordinator/remoteControlBoard/ergocubSim/right_leg/command:o->udp->/ergocubSim/right_leg/command:i asking other side to close by out-of-band means
[INFO] |yarp.os.impl.PortCoreOutputUnit|/walking-coordinator/remoteControlBoard/ergocubSim/right_leg/command:o| Removing output from /walking-coordinator/remoteControlBoard/ergocubSim/right_leg/command:o to /ergocubSim/right_leg/command:i
[INFO] |yarp.os.impl.PortCoreInputUnit|/walking-coordinator/remoteControlBoard/ergocubSim/right_leg/stateExt:i| Removing input from /ergocubSim/right_leg/stateExt:o to /walking-coordinator/remoteControlBoard/ergocubSim/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|/IITICUBLAP218/WalkingModule/82982/clock:i| Removing input from /clock to /IITICUBLAP218/WalkingModule/82982/clock:i

and then stops. I think this is the right path, I'm investigating the error of the WalkingModule

@traversaro
Copy link
Member

By setting the environment variable YARP_CLOCK when I launch gazebo with gz sim example.workd --verbose Gazebo remains stuck (with a black GUI) logging:

This is probably a bug, ideally if the network clock is set we should avoid requiring the clock in the plugin that publish it, can you open an issue for that?

@xela-95
Copy link
Member Author

xela-95 commented Mar 20, 2024

This is probably a bug, ideally if the network clock is set we should avoid requiring the clock in the plugin that publish it, can you open an issue for that?

Sorry I'm not sure to have fully understood, can you rephrase?

@xela-95
Copy link
Member Author

xela-95 commented Mar 20, 2024

[ERROR] [configure] Unable to read encoders.

This error comes from https://github.com/robotology/walking-controllers/blob/edc8984998043c98182f726e17822deb2a7b1915/src/RobotInterface/src/Helper.cpp#L391-L401

The strange thing is that when I tried logging when the getEncoders and getEncoderSpeeds method si invoked, the method never logged anything.

bool ControlBoardDriver::getEncoders(double* encs)
{
if (!encs)
{
yError() << "Error while getting encoders: encs array is null";
return false;
}
for (int i = 0; i < m_controlBoardData->joints.size(); i++)
{
if (!ControlBoardDriver::getEncoder(i, &encs[i]))
{
return false;
}
}
return true;
}

@xela-95
Copy link
Member Author

xela-95 commented Mar 20, 2024

I've also made an attempt by launching the yarprobotinterface using the YARP_CLOCK variable and this is what I got:

Logs
[INFO] |yarp.os.Port|/IITICUBLAP218/yarprobotinterface/32264/clock:i| Port /IITICUBLAP218/yarprobotinterface/32264/clock:i active at tcp://10.240.2.19:10045/
[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|/IITICUBLAP218/yarprobotinterface/32264/clock:i| Receiving input from /clock to /IITICUBLAP218/yarprobotinterface/32264/clock:i using tcp
[ERROR] |yarp.os.Property| cannot read from yarprobotinterface.ini
[DEBUG] Reading file /home/acroci/ergocub_ws/install/share/ergoCub/conf/launch_wholebodydynamics_ecub.xml
[WARNING] Invalid syntax while loading /home/acroci/ergocub_ws/install/share/ergoCub/conf/launch_wholebodydynamics_ecub.xml at line 1 . Expected document of type robot . Found devices
[DEBUG] yarprobotinterface: using xml parser for DTD v3.x
[DEBUG] Reading file /home/acroci/ergocub_ws/install/share/ergoCub/conf/launch_wholebodydynamics_ecub.xml
[INFO] Yarprobotinterface was started using the following enable_tags: 
[INFO] Yarprobotinterface was started using the following disable_tags: 
[DEBUG] List of all enable attributes found in the include tags: 
[DEBUG] List of all disable attributes found in the include tags: 
[DEBUG] Preprocessor complete in:  0 s
[WARNING] Invalid syntax while loading  at line 4 . "robot" element should contain the "portprefix" attribute. Using "name" attribute
[WARNING] *************************************************************************************
* yarprobotinterface 'portprefix' parameter does not follow convention,  *
* it MUST start with a leading '/' since it is used as the full prefix port name    *
*     name:    full port prefix name with leading '/',  e.g.  /robotName      *
* A temporary automatic fix will be done for you, but please fix your config file   *
*************************************************************************************
[INFO] |yarp.os.Port|/ergoCubGazeboV1/yarprobotinterface| Port /ergoCubGazeboV1/yarprobotinterface active at tcp://10.240.2.19:10046/
[INFO] startup phase starting...
[INFO] Opening device torso_mc with parameters [("robotName" = "ergoCubGazeboV1"), ("remote" = "/ergocubSim/torso"), ("local" = "/wholeBodyDynamics/torso")]
[DEBUG] |yarp.dev.PolyDriver|torso_mc| Parameters are (device remote_controlboard) (id torso_mc) (local "/wholeBodyDynamics/torso") (remote "/ergocubSim/torso") (robotName ergoCubGazeboV1)
[INFO] |yarp.os.Port|/wholeBodyDynamics/torso/rpc:o| Port /wholeBodyDynamics/torso/rpc:o active at tcp://10.240.2.19:10047/
[INFO] |yarp.os.Port|/wholeBodyDynamics/torso/command:o| Port /wholeBodyDynamics/torso/command:o active at tcp://10.240.2.19:10048/
[INFO] |yarp.os.Port|/wholeBodyDynamics/torso/stateExt:i| Port /wholeBodyDynamics/torso/stateExt:i active at tcp://10.240.2.19:10049/
[INFO] |yarp.os.impl.PortCoreOutputUnit|/wholeBodyDynamics/torso/rpc:o| Sending output from /wholeBodyDynamics/torso/rpc:o to /ergocubSim/torso/rpc:i using tcp
[INFO] |yarp.os.impl.PortCoreOutputUnit|/wholeBodyDynamics/torso/command:o| Sending output from /wholeBodyDynamics/torso/command:o to /ergocubSim/torso/command:i using udp
[INFO] |yarp.os.impl.PortCoreInputUnit|/wholeBodyDynamics/torso/stateExt:i| Receiving input from /ergocubSim/torso/stateExt:o to /wholeBodyDynamics/torso/stateExt:i using udp
[INFO] |yarp.dev.PolyDriver|torso_mc| Created device <remote_controlboard>. See C++ class RemoteControlBoard for documentation.
[INFO] Opening device left_arm_mc with parameters [("robotName" = "ergoCubGazeboV1"), ("remote" = "/ergocubSim/left_arm"), ("local" = "/wholeBodyDynamics/left_arm")]
[DEBUG] |yarp.dev.PolyDriver|left_arm_mc| Parameters are (device remote_controlboard) (id left_arm_mc) (local "/wholeBodyDynamics/left_arm") (remote "/ergocubSim/left_arm") (robotName ergoCubGazeboV1)
[INFO] |yarp.os.Port|/wholeBodyDynamics/left_arm/rpc:o| Port /wholeBodyDynamics/left_arm/rpc:o active at tcp://10.240.2.19:10050/
[INFO] |yarp.os.Port|/wholeBodyDynamics/left_arm/command:o| Port /wholeBodyDynamics/left_arm/command:o active at tcp://10.240.2.19:10051/
[INFO] |yarp.os.Port|/wholeBodyDynamics/left_arm/stateExt:i| Port /wholeBodyDynamics/left_arm/stateExt:i active at tcp://10.240.2.19:10052/
[INFO] |yarp.os.impl.PortCoreOutputUnit|/wholeBodyDynamics/left_arm/rpc:o| Sending output from /wholeBodyDynamics/left_arm/rpc:o to /ergocubSim/left_arm/rpc:i using tcp
[INFO] |yarp.os.impl.PortCoreOutputUnit|/wholeBodyDynamics/left_arm/command:o| Sending output from /wholeBodyDynamics/left_arm/command:o to /ergocubSim/left_arm/command:i using udp
[INFO] |yarp.os.impl.PortCoreInputUnit|/wholeBodyDynamics/left_arm/stateExt:i| Receiving input from /ergocubSim/left_arm/stateExt:o to /wholeBodyDynamics/left_arm/stateExt:i using udp
[INFO] |yarp.dev.PolyDriver|left_arm_mc| Created device <remote_controlboard>. See C++ class RemoteControlBoard for documentation.
[INFO] Opening device right_arm_mc with parameters [("robotName" = "ergoCubGazeboV1"), ("remote" = "/ergocubSim/right_arm"), ("local" = "/wholeBodyDynamics/right_arm")]
[DEBUG] |yarp.dev.PolyDriver|right_arm_mc| Parameters are (device remote_controlboard) (id right_arm_mc) (local "/wholeBodyDynamics/right_arm") (remote "/ergocubSim/right_arm") (robotName ergoCubGazeboV1)
[INFO] |yarp.os.Port|/wholeBodyDynamics/right_arm/rpc:o| Port /wholeBodyDynamics/right_arm/rpc:o active at tcp://10.240.2.19:10053/
[INFO] |yarp.os.Port|/wholeBodyDynamics/right_arm/command:o| Port /wholeBodyDynamics/right_arm/command:o active at tcp://10.240.2.19:10054/
[INFO] |yarp.os.Port|/wholeBodyDynamics/right_arm/stateExt:i| Port /wholeBodyDynamics/right_arm/stateExt:i active at tcp://10.240.2.19:10055/
[INFO] |yarp.os.impl.PortCoreOutputUnit|/wholeBodyDynamics/right_arm/rpc:o| Sending output from /wholeBodyDynamics/right_arm/rpc:o to /ergocubSim/right_arm/rpc:i using tcp
[INFO] |yarp.os.impl.PortCoreOutputUnit|/wholeBodyDynamics/right_arm/command:o| Sending output from /wholeBodyDynamics/right_arm/command:o to /ergocubSim/right_arm/command:i using udp
[INFO] |yarp.os.impl.PortCoreInputUnit|/wholeBodyDynamics/right_arm/stateExt:i| Receiving input from /ergocubSim/right_arm/stateExt:o to /wholeBodyDynamics/right_arm/stateExt:i using udp
[INFO] |yarp.dev.PolyDriver|right_arm_mc| Created device <remote_controlboard>. See C++ class RemoteControlBoard for documentation.
[INFO] Opening device left_leg_mc with parameters [("robotName" = "ergoCubGazeboV1"), ("remote" = "/ergocubSim/left_leg"), ("local" = "/wholeBodyDynamics/left_leg")]
[DEBUG] |yarp.dev.PolyDriver|left_leg_mc| Parameters are (device remote_controlboard) (id left_leg_mc) (local "/wholeBodyDynamics/left_leg") (remote "/ergocubSim/left_leg") (robotName ergoCubGazeboV1)
[INFO] |yarp.os.Port|/wholeBodyDynamics/left_leg/rpc:o| Port /wholeBodyDynamics/left_leg/rpc:o active at tcp://10.240.2.19:10056/
[INFO] |yarp.os.Port|/wholeBodyDynamics/left_leg/command:o| Port /wholeBodyDynamics/left_leg/command:o active at tcp://10.240.2.19:10057/
[INFO] |yarp.os.Port|/wholeBodyDynamics/left_leg/stateExt:i| Port /wholeBodyDynamics/left_leg/stateExt:i active at tcp://10.240.2.19:10058/
[INFO] |yarp.os.impl.PortCoreOutputUnit|/wholeBodyDynamics/left_leg/rpc:o| Sending output from /wholeBodyDynamics/left_leg/rpc:o to /ergocubSim/left_leg/rpc:i using tcp
[INFO] |yarp.os.impl.PortCoreOutputUnit|/wholeBodyDynamics/left_leg/command:o| Sending output from /wholeBodyDynamics/left_leg/command:o to /ergocubSim/left_leg/command:i using udp
[INFO] |yarp.os.impl.PortCoreInputUnit|/wholeBodyDynamics/left_leg/stateExt:i| Receiving input from /ergocubSim/left_leg/stateExt:o to /wholeBodyDynamics/left_leg/stateExt:i using udp
[INFO] |yarp.dev.PolyDriver|left_leg_mc| Created device <remote_controlboard>. See C++ class RemoteControlBoard for documentation.
[INFO] Opening device right_leg_mc with parameters [("robotName" = "ergoCubGazeboV1"), ("remote" = "/ergocubSim/right_leg"), ("local" = "/wholeBodyDynamics/right_leg")]
[DEBUG] |yarp.dev.PolyDriver|right_leg_mc| Parameters are (device remote_controlboard) (id right_leg_mc) (local "/wholeBodyDynamics/right_leg") (remote "/ergocubSim/right_leg") (robotName ergoCubGazeboV1)
[INFO] |yarp.os.Port|/wholeBodyDynamics/right_leg/rpc:o| Port /wholeBodyDynamics/right_leg/rpc:o active at tcp://10.240.2.19:10059/
[INFO] |yarp.os.Port|/wholeBodyDynamics/right_leg/command:o| Port /wholeBodyDynamics/right_leg/command:o active at tcp://10.240.2.19:10060/
[INFO] |yarp.os.Port|/wholeBodyDynamics/right_leg/stateExt:i| Port /wholeBodyDynamics/right_leg/stateExt:i active at tcp://10.240.2.19:10061/
[INFO] |yarp.os.impl.PortCoreOutputUnit|/wholeBodyDynamics/right_leg/rpc:o| Sending output from /wholeBodyDynamics/right_leg/rpc:o to /ergocubSim/right_leg/rpc:i using tcp
[INFO] |yarp.os.impl.PortCoreOutputUnit|/wholeBodyDynamics/right_leg/command:o| Sending output from /wholeBodyDynamics/right_leg/command:o to /ergocubSim/right_leg/command:i using udp
[INFO] |yarp.os.impl.PortCoreInputUnit|/wholeBodyDynamics/right_leg/stateExt:i| Receiving input from /ergocubSim/right_leg/stateExt:o to /wholeBodyDynamics/right_leg/stateExt:i using udp
[INFO] |yarp.dev.PolyDriver|right_leg_mc| Created device <remote_controlboard>. See C++ class RemoteControlBoard for documentation.
[INFO] Opening device head_mc with parameters [("robotName" = "ergoCubGazeboV1"), ("remote" = "/ergocubSim/head"), ("local" = "/wholeBodyDynamics/head")]
[DEBUG] |yarp.dev.PolyDriver|head_mc| Parameters are (device remote_controlboard) (id head_mc) (local "/wholeBodyDynamics/head") (remote "/ergocubSim/head") (robotName ergoCubGazeboV1)
[INFO] |yarp.os.Port|/wholeBodyDynamics/head/rpc:o| Port /wholeBodyDynamics/head/rpc:o active at tcp://10.240.2.19:10062/
[INFO] |yarp.os.Port|/wholeBodyDynamics/head/command:o| Port /wholeBodyDynamics/head/command:o active at tcp://10.240.2.19:10063/
[INFO] |yarp.os.Port|/wholeBodyDynamics/head/stateExt:i| Port /wholeBodyDynamics/head/stateExt:i active at tcp://10.240.2.19:10064/
[INFO] |yarp.os.impl.PortCoreOutputUnit|/wholeBodyDynamics/head/rpc:o| Sending output from /wholeBodyDynamics/head/rpc:o to /ergocubSim/head/rpc:i using tcp
[INFO] |yarp.os.impl.PortCoreOutputUnit|/wholeBodyDynamics/head/command:o| Sending output from /wholeBodyDynamics/head/command:o to /ergocubSim/head/command:i using udp
[INFO] |yarp.os.impl.PortCoreInputUnit|/wholeBodyDynamics/head/stateExt:i| Receiving input from /ergocubSim/head/stateExt:o to /wholeBodyDynamics/head/stateExt:i using udp
[INFO] |yarp.dev.PolyDriver|head_mc| Created device <remote_controlboard>. See C++ class RemoteControlBoard for documentation.
[INFO] Opening device head_inertial_hardware_device with parameters [("robotName" = "ergoCubGazeboV1"), ("remote" = "/ergocubSim/head/inertials"), ("local" = "/wholeBodyDynamics/imu")]
[DEBUG] |yarp.dev.PolyDriver|head_inertial_hardware_device| Parameters are (device multipleanalogsensorsclient) (id head_inertial_hardware_device) (local "/wholeBodyDynamics/imu") (remote "/ergocubSim/head/inertials") (robotName ergoCubGazeboV1)
[INFO] |yarp.os.Port|/wholeBodyDynamics/imu/rpc:i| Port /wholeBodyDynamics/imu/rpc:i active at tcp://10.240.2.19:10065/
[INFO] |yarp.os.Port|/wholeBodyDynamics/imu/measures:i| Port /wholeBodyDynamics/imu/measures:i active at tcp://10.240.2.19:10066/
[INFO] |yarp.os.impl.PortCoreOutputUnit|/wholeBodyDynamics/imu/rpc:i| Sending output from /wholeBodyDynamics/imu/rpc:i to /ergocubSim/head/inertials/rpc:o using tcp
[INFO] |yarp.os.impl.PortCoreInputUnit|/wholeBodyDynamics/imu/measures:i| Receiving input from /ergocubSim/head/inertials/measures:o to /wholeBodyDynamics/imu/measures:i using tcp
[DEBUG] |yarp.device.multipleanalogsensorsclient| Open complete
[INFO] |yarp.dev.PolyDriver|head_inertial_hardware_device| Created device <multipleanalogsensorsclient>. See C++ class MultipleAnalogSensorsClient for documentation.
[INFO] Opening device waist_inertial_hardware_device with parameters [("robotName" = "ergoCubGazeboV1"), ("remote" = "/ergocubSim/waist/inertials"), ("local" = "/wholeBodyDynamics/waist_imu")]
[DEBUG] |yarp.dev.PolyDriver|waist_inertial_hardware_device| Parameters are (device multipleanalogsensorsclient) (id waist_inertial_hardware_device) (local "/wholeBodyDynamics/waist_imu") (remote "/ergocubSim/waist/inertials") (robotName ergoCubGazeboV1)
[INFO] |yarp.os.Port|/wholeBodyDynamics/waist_imu/rpc:i| Port /wholeBodyDynamics/waist_imu/rpc:i active at tcp://10.240.2.19:10067/
[INFO] |yarp.os.Port|/wholeBodyDynamics/waist_imu/measures:i| Port /wholeBodyDynamics/waist_imu/measures:i active at tcp://10.240.2.19:10068/
[INFO] |yarp.os.impl.PortCoreOutputUnit|/wholeBodyDynamics/waist_imu/rpc:i| Sending output from /wholeBodyDynamics/waist_imu/rpc:i to /ergocubSim/waist/inertials/rpc:o using tcp
[INFO] |yarp.os.impl.PortCoreInputUnit|/wholeBodyDynamics/waist_imu/measures:i| Receiving input from /ergocubSim/waist/inertials/measures:o to /wholeBodyDynamics/waist_imu/measures:i using tcp
[DEBUG] |yarp.device.multipleanalogsensorsclient| Open complete
[INFO] |yarp.dev.PolyDriver|waist_inertial_hardware_device| Created device <multipleanalogsensorsclient>. See C++ class MultipleAnalogSensorsClient for documentation.
[INFO] Opening device ergocub_left_arm_ft with parameters [("robotName" = "ergoCubGazeboV1"), ("remote" = "/ergocubSim/left_arm/FT"), ("local" = "/wholeBodyDynamics/left_arm_ft_sensor")]
[DEBUG] |yarp.dev.PolyDriver|ergocub_left_arm_ft| Parameters are (device multipleanalogsensorsclient) (id ergocub_left_arm_ft) (local "/wholeBodyDynamics/left_arm_ft_sensor") (remote "/ergocubSim/left_arm/FT") (robotName ergoCubGazeboV1)
[INFO] |yarp.os.Port|/wholeBodyDynamics/left_arm_ft_sensor/rpc:i| Port /wholeBodyDynamics/left_arm_ft_sensor/rpc:i active at tcp://10.240.2.19:10069/
[INFO] |yarp.os.Port|/wholeBodyDynamics/left_arm_ft_sensor/measures:i| Port /wholeBodyDynamics/left_arm_ft_sensor/measures:i active at tcp://10.240.2.19:10070/
[INFO] |yarp.os.impl.PortCoreOutputUnit|/wholeBodyDynamics/left_arm_ft_sensor/rpc:i| Sending output from /wholeBodyDynamics/left_arm_ft_sensor/rpc:i to /ergocubSim/left_arm/FT/rpc:o using tcp
[INFO] |yarp.os.impl.PortCoreInputUnit|/wholeBodyDynamics/left_arm_ft_sensor/measures:i| Receiving input from /ergocubSim/left_arm/FT/measures:o to /wholeBodyDynamics/left_arm_ft_sensor/measures:i using tcp
[DEBUG] |yarp.device.multipleanalogsensorsclient| Open complete
[INFO] |yarp.dev.PolyDriver|ergocub_left_arm_ft| Created device <multipleanalogsensorsclient>. See C++ class MultipleAnalogSensorsClient for documentation.
[INFO] Opening device ergocub_right_arm_ft with parameters [("robotName" = "ergoCubGazeboV1"), ("remote" = "/ergocubSim/right_arm/FT"), ("local" = "/wholeBodyDynamics/right_arm_ft_sensor")]
[DEBUG] |yarp.dev.PolyDriver|ergocub_right_arm_ft| Parameters are (device multipleanalogsensorsclient) (id ergocub_right_arm_ft) (local "/wholeBodyDynamics/right_arm_ft_sensor") (remote "/ergocubSim/right_arm/FT") (robotName ergoCubGazeboV1)
[INFO] |yarp.os.Port|/wholeBodyDynamics/right_arm_ft_sensor/rpc:i| Port /wholeBodyDynamics/right_arm_ft_sensor/rpc:i active at tcp://10.240.2.19:10071/
[INFO] |yarp.os.Port|/wholeBodyDynamics/right_arm_ft_sensor/measures:i| Port /wholeBodyDynamics/right_arm_ft_sensor/measures:i active at tcp://10.240.2.19:10072/
[INFO] |yarp.os.impl.PortCoreOutputUnit|/wholeBodyDynamics/right_arm_ft_sensor/rpc:i| Sending output from /wholeBodyDynamics/right_arm_ft_sensor/rpc:i to /ergocubSim/right_arm/FT/rpc:o using tcp
[INFO] |yarp.os.impl.PortCoreInputUnit|/wholeBodyDynamics/right_arm_ft_sensor/measures:i| Receiving input from /ergocubSim/right_arm/FT/measures:o to /wholeBodyDynamics/right_arm_ft_sensor/measures:i using tcp
[DEBUG] |yarp.device.multipleanalogsensorsclient| Open complete
[INFO] |yarp.dev.PolyDriver|ergocub_right_arm_ft| Created device <multipleanalogsensorsclient>. See C++ class MultipleAnalogSensorsClient for documentation.
[INFO] Opening device ergocub_left_leg_ft with parameters [("robotName" = "ergoCubGazeboV1"), ("remote" = "/ergocubSim/left_leg/FT"), ("local" = "/wholeBodyDynamics/left_leg_ft_sensor")]
[DEBUG] |yarp.dev.PolyDriver|ergocub_left_leg_ft| Parameters are (device multipleanalogsensorsclient) (id ergocub_left_leg_ft) (local "/wholeBodyDynamics/left_leg_ft_sensor") (remote "/ergocubSim/left_leg/FT") (robotName ergoCubGazeboV1)
[INFO] |yarp.os.Port|/wholeBodyDynamics/left_leg_ft_sensor/rpc:i| Port /wholeBodyDynamics/left_leg_ft_sensor/rpc:i active at tcp://10.240.2.19:10073/
[INFO] |yarp.os.Port|/wholeBodyDynamics/left_leg_ft_sensor/measures:i| Port /wholeBodyDynamics/left_leg_ft_sensor/measures:i active at tcp://10.240.2.19:10074/
[INFO] |yarp.os.impl.PortCoreOutputUnit|/wholeBodyDynamics/left_leg_ft_sensor/rpc:i| Sending output from /wholeBodyDynamics/left_leg_ft_sensor/rpc:i to /ergocubSim/left_leg/FT/rpc:o using tcp
[INFO] |yarp.os.impl.PortCoreInputUnit|/wholeBodyDynamics/left_leg_ft_sensor/measures:i| Receiving input from /ergocubSim/left_leg/FT/measures:o to /wholeBodyDynamics/left_leg_ft_sensor/measures:i using tcp
[DEBUG] |yarp.device.multipleanalogsensorsclient| Open complete
[INFO] |yarp.dev.PolyDriver|ergocub_left_leg_ft| Created device <multipleanalogsensorsclient>. See C++ class MultipleAnalogSensorsClient for documentation.
[INFO] Opening device ergocub_right_leg_ft with parameters [("robotName" = "ergoCubGazeboV1"), ("remote" = "/ergocubSim/right_leg/FT"), ("local" = "/wholeBodyDynamics/right_leg_ft_sensor")]
[DEBUG] |yarp.dev.PolyDriver|ergocub_right_leg_ft| Parameters are (device multipleanalogsensorsclient) (id ergocub_right_leg_ft) (local "/wholeBodyDynamics/right_leg_ft_sensor") (remote "/ergocubSim/right_leg/FT") (robotName ergoCubGazeboV1)
[INFO] |yarp.os.Port|/wholeBodyDynamics/right_leg_ft_sensor/rpc:i| Port /wholeBodyDynamics/right_leg_ft_sensor/rpc:i active at tcp://10.240.2.19:10075/
[INFO] |yarp.os.Port|/wholeBodyDynamics/right_leg_ft_sensor/measures:i| Port /wholeBodyDynamics/right_leg_ft_sensor/measures:i active at tcp://10.240.2.19:10076/
[INFO] |yarp.os.impl.PortCoreOutputUnit|/wholeBodyDynamics/right_leg_ft_sensor/rpc:i| Sending output from /wholeBodyDynamics/right_leg_ft_sensor/rpc:i to /ergocubSim/right_leg/FT/rpc:o using tcp
[INFO] |yarp.os.impl.PortCoreInputUnit|/wholeBodyDynamics/right_leg_ft_sensor/measures:i| Receiving input from /ergocubSim/right_leg/FT/measures:o to /wholeBodyDynamics/right_leg_ft_sensor/measures:i using tcp
[DEBUG] |yarp.device.multipleanalogsensorsclient| Open complete
[INFO] |yarp.dev.PolyDriver|ergocub_right_leg_ft| Created device <multipleanalogsensorsclient>. See C++ class MultipleAnalogSensorsClient for documentation.
[INFO] Opening device wholebodydynamics with parameters [("robotName" = "ergoCubGazeboV1"), ("axesNames" = "(torso_roll,torso_pitch,torso_yaw,l_shoulder_pitch,l_shoulder_roll,l_shoulder_yaw,l_elbow,l_wrist_pitch,l_wrist_yaw,r_shoulder_pitch,r_shoulder_roll,r_shoulder_yaw,r_elbow,r_wrist_pitch,r_wrist_yaw,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)"), ("modelFile" = "model.urdf"), ("fixedFrameGravity" = "(0,0,-9.81)"), ("defaultContactFrames" = "(l_hand_palm,r_hand_palm,root_link,l_foot_front,l_foot_rear,r_foot_front,r_foot_rear,l_upper_leg,r_upper_leg)"), ("imuFrameName" = "head_imu_0"), ("useJointVelocity" = "true"), ("useJointAcceleration" = "true"), ("imuFilterCutoffInHz" = "3.0"), ("forceTorqueFilterCutoffInHz" = "3.0"), ("jointVelFilterCutoffInHz" = "3.0"), ("jointAccFilterCutoffInHz" = "3.0"), ("startWithZeroFTSensorOffsets" = "true"), ("useSkinForContacts" = "false"), ("publishNetExternalWrenches" = "true"), ("disableSensorReadCheckAtStartup" = "true"), ("GRAVITY_COMPENSATION" [group] = "(enableGravityCompensation true) (gravityCompensationBaseLink root_link) (gravityCompensationAxesNames (torso_roll,torso_pitch,torso_yaw,l_shoulder_pitch,l_shoulder_roll,l_shoulder_yaw,l_elbow,r_shoulder_pitch,r_shoulder_roll,r_shoulder_yaw,r_elbow))"), ("HW_USE_MAS_IMU" [group] = "(accelerometer head_imu_0) (gyroscope head_imu_0)"), ("WBD_OUTPUT_EXTERNAL_WRENCH_PORTS" [group] = "(/wholeBodyDynamics/left_foot_front/cartesianEndEffectorWrench:o (l_foot_front,l_sole,l_sole)) (/wholeBodyDynamics/left_foot_rear/cartesianEndEffectorWrench:o (l_foot_rear,l_sole,l_sole)) (/wholeBodyDynamics/right_foot_front/cartesianEndEffectorWrench:o (r_foot_front,r_sole,r_sole)) (/wholeBodyDynamics/right_foot_rear/cartesianEndEffectorWrench:o (r_foot_rear,r_sole,r_sole)) (/wholeBodyDynamics/left_arm/cartesianEndEffectorWrench:o (l_hand_palm,l_hand_palm,root_link)) (/wholeBodyDynamics/right_arm/cartesianEndEffectorWrench:o (r_hand_palm,r_hand_palm,root_link))"), ("multipleAnalogSensorsNames" [group] = "(SixAxisForceTorqueSensorsNames ("l_arm_ft", "r_arm_ft", "l_leg_ft", "r_leg_ft", "l_foot_front_ft", "r_foot_front_ft", "l_foot_rear_ft", "r_foot_rear_ft"))")]
[DEBUG] |yarp.dev.PolyDriver|wholebodydynamics| Parameters are (GRAVITY_COMPENSATION (enableGravityCompensation true) (gravityCompensationBaseLink root_link) (gravityCompensationAxesNames (torso_roll torso_pitch torso_yaw l_shoulder_pitch l_shoulder_roll l_shoulder_yaw l_elbow r_shoulder_pitch r_shoulder_roll r_shoulder_yaw r_elbow))) (HW_USE_MAS_IMU (accelerometer head_imu_0) (gyroscope head_imu_0)) (WBD_OUTPUT_EXTERNAL_WRENCH_PORTS ("/wholeBodyDynamics/left_foot_front/cartesianEndEffectorWrench:o" (l_foot_front l_sole l_sole)) ("/wholeBodyDynamics/left_foot_rear/cartesianEndEffectorWrench:o" (l_foot_rear l_sole l_sole)) ("/wholeBodyDynamics/right_foot_front/cartesianEndEffectorWrench:o" (r_foot_front r_sole r_sole)) ("/wholeBodyDynamics/right_foot_rear/cartesianEndEffectorWrench:o" (r_foot_rear r_sole r_sole)) ("/wholeBodyDynamics/left_arm/cartesianEndEffectorWrench:o" (l_hand_palm l_hand_palm root_link)) ("/wholeBodyDynamics/right_arm/cartesianEndEffectorWrench:o" (r_hand_palm r_hand_palm root_link))) (axesNames (torso_roll torso_pitch torso_yaw l_shoulder_pitch l_shoulder_roll l_shoulder_yaw l_elbow l_wrist_pitch l_wrist_yaw r_shoulder_pitch r_shoulder_roll r_shoulder_yaw r_elbow r_wrist_pitch r_wrist_yaw 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)) (defaultContactFrames (l_hand_palm r_hand_palm root_link l_foot_front l_foot_rear r_foot_front r_foot_rear l_upper_leg r_upper_leg)) (device wholebodydynamics) (disableSensorReadCheckAtStartup true) (fixedFrameGravity (0 0 -9.81000000000000049738)) (forceTorqueFilterCutoffInHz 3.0) (id wholebodydynamics) (imuFilterCutoffInHz 3.0) (imuFrameName head_imu_0) (jointAccFilterCutoffInHz 3.0) (jointVelFilterCutoffInHz 3.0) (modelFile model.urdf) (multipleAnalogSensorsNames (SixAxisForceTorqueSensorsNames (l_arm_ft r_arm_ft l_leg_ft r_leg_ft l_foot_front_ft r_foot_front_ft l_foot_rear_ft r_foot_rear_ft))) (publishNetExternalWrenches true) (robotName ergoCubGazeboV1) (startWithZeroFTSensorOffsets true) (useJointAcceleration true) (useJointVelocity true) (useSkinForContacts false)
[DEBUG] wholeBodyDynamics Statistics: Opening estimator.
[INFO] wholeBodyDynamics : Loading model from  /home/acroci/ergocub_ws/install/share/ergoCub/robots/ergoCubGazeboV1_1/model.urdf
[DEBUG] wholeBodyDynamics Statistics: Estimator opened in  6e+06 s.
[DEBUG] wholeBodyDynamics Statistics: Loading settings from configuration files.
[WARNING] wholeBodyDynamics : The devicePeriodInSeconds parameter is not found. The default one is used. Period: 0.01 seconds.
[WARNING] wholeBodyDynamics: estimateVelocityAccelerationOptionName bool parameter missing, please specify it.
[WARNING] wholeBodyDynamics: setting estimateVelocityAccelerationOptionName to the default value of true, but this is a deprecated behaviour that will be removed in the future.
[INFO] wholeBodyDynamics : Using the following filter cutoff frequencies,
[INFO] wholeBodyDynamics: imuFilterCutoffInHz:  3  Hz.
[INFO] wholeBodyDynamics: forceTorqueFilterCutoffInHz:  3  Hz.
[INFO] wholeBodyDynamics: jointVelFilterCutoffInHz:  3  Hz.
[INFO] wholeBodyDynamics: jointAccFilterCutoffInHz:  3  Hz.
[INFO] wholeBodyDynamics: setting startWithZeroFTSensorOffsets was set to true , FT sensor offsets will be automatically reset to zero.
[DEBUG] wholeBodyDynamics Statistics: Settings loaded in  0 s.
[DEBUG] wholeBodyDynamics Statistics: Opening RPC port.
[INFO] |yarp.os.Port|/wholeBodyDynamics/rpc| Port /wholeBodyDynamics/rpc active at tcp://10.240.2.19:10077/
[DEBUG] wholeBodyDynamics Statistics: RPC port opened in  2e+06 s.
[DEBUG] wholeBodyDynamics Statistics: Opening settings port.
[INFO] |yarp.os.Port|/wholeBodyDynamics/settings| Port /wholeBodyDynamics/settings active at tcp://10.240.2.19:10078/
[DEBUG] wholeBodyDynamics Statistics: Settings port opened in  1e+06 s.
[DEBUG] wholeBodyDynamics Statistics: Opening remapper control board.
[DEBUG] |yarp.dev.PolyDriver|controlboardremapper| Parameters are (axesNames (torso_roll torso_pitch torso_yaw l_shoulder_pitch l_shoulder_roll l_shoulder_yaw l_elbow l_wrist_pitch l_wrist_yaw r_shoulder_pitch r_shoulder_roll r_shoulder_yaw r_elbow r_wrist_pitch r_wrist_yaw 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 controlboardremapper)
[INFO] |yarp.dev.PolyDriver|controlboardremapper| Created device <controlboardremapper>. See C++ class ControlBoardRemapper for documentation.
[DEBUG] wholeBodyDynamics Statistics: Remapper control board opened in  5e+06 s.
[DEBUG] wholeBodyDynamics Statistics: Opening remapper virtual sensors.
[DEBUG] |yarp.dev.PolyDriver|virtualAnalogRemapper| Parameters are (axesNames (torso_roll torso_pitch torso_yaw l_shoulder_pitch l_shoulder_roll l_shoulder_yaw l_elbow l_wrist_pitch l_wrist_yaw r_shoulder_pitch r_shoulder_roll r_shoulder_yaw r_elbow r_wrist_pitch r_wrist_yaw 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 virtualAnalogRemapper)
[INFO] |yarp.dev.PolyDriver|virtualAnalogRemapper| Created device <virtualAnalogRemapper>. See C++ class yarp::dev::VirtualAnalogRemapper for documentation.
[DEBUG] wholeBodyDynamics Statistics: Remapper virtual sensors opened in  4e+06 s.
[DEBUG] wholeBodyDynamics Statistics: Opening contact frames.
[DEBUG] wholeBodyDynamics Statistics: Contact frames opened in  0 s.
[DEBUG] wholeBodyDynamics Statistics: Opening external wrenches ports.
[INFO] |yarp.os.Port|/wholeBodyDynamics/left_foot_front/cartesianEndEffectorWrench:o| Port /wholeBodyDynamics/left_foot_front/cartesianEndEffectorWrench:o active at tcp://10.240.2.19:10079/
[INFO] |yarp.os.Port|/wholeBodyDynamics/left_foot_rear/cartesianEndEffectorWrench:o| Port /wholeBodyDynamics/left_foot_rear/cartesianEndEffectorWrench:o active at tcp://10.240.2.19:10080/
[INFO] |yarp.os.Port|/wholeBodyDynamics/right_foot_front/cartesianEndEffectorWrench:o| Port /wholeBodyDynamics/right_foot_front/cartesianEndEffectorWrench:o active at tcp://10.240.2.19:10081/
[INFO] |yarp.os.Port|/wholeBodyDynamics/right_foot_rear/cartesianEndEffectorWrench:o| Port /wholeBodyDynamics/right_foot_rear/cartesianEndEffectorWrench:o active at tcp://10.240.2.19:10082/
[INFO] |yarp.os.Port|/wholeBodyDynamics/left_arm/cartesianEndEffectorWrench:o| Port /wholeBodyDynamics/left_arm/cartesianEndEffectorWrench:o active at tcp://10.240.2.19:10083/
[INFO] |yarp.os.Port|/wholeBodyDynamics/right_arm/cartesianEndEffectorWrench:o| Port /wholeBodyDynamics/right_arm/cartesianEndEffectorWrench:o active at tcp://10.240.2.19:10084/
[INFO] |yarp.os.Port|/wholeBodyDynamics/netExternalWrenches:o| Port /wholeBodyDynamics/netExternalWrenches:o active at tcp://10.240.2.19:10085/
[DEBUG] wholeBodyDynamics Statistics: External port wrenches opened in  1.1e+07 s.
[DEBUG] wholeBodyDynamics Statistics: Opening multiple analog sensors remapper.
[DEBUG] |yarp.dev.PolyDriver|multipleanalogsensorsremapper| Parameters are (SixAxisForceTorqueSensorsNames (l_arm_ft r_arm_ft l_leg_ft r_leg_ft l_foot_front_ft r_foot_front_ft l_foot_rear_ft r_foot_rear_ft)) (device multipleanalogsensorsremapper)
[INFO] |yarp.dev.PolyDriver|multipleanalogsensorsremapper| Created device <multipleanalogsensorsremapper>. See C++ class MultipleAnalogSensorsRemapper for documentation.
[DEBUG] wholeBodyDynamics Statistics: Multiple analog sensors remapper opened in  4e+06 s.
[DEBUG] wholeBodyDynamics Statistics: Configuration finished. Waiting attachAll to be called.
[INFO] |yarp.dev.PolyDriver|wholebodydynamics| Created device <wholebodydynamics>. See C++ class yarp::dev::WholeBodyDynamicsDevice for documentation.
[INFO] Entering action level 15 of phase startup
[INFO] Executing attach action, level 15 on device wholebodydynamics with parameters [("networks" = "(left_leg right_leg torso right_arm left_arm imu waist_imu left_arm_ft_sensor right_arm_ft_sensor left_leg_ft_sensor right_leg_ft_sensor)"), ("left_leg" = "left_leg_mc"), ("right_leg" = "right_leg_mc"), ("torso" = "torso_mc"), ("right_arm" = "right_arm_mc"), ("left_arm" = "left_arm_mc"), ("imu" = "head_inertial_hardware_device"), ("waist_imu" = "waist_inertial_hardware_device"), ("left_arm_ft_sensor" = "ergocub_left_arm_ft"), ("right_arm_ft_sensor" = "ergocub_right_arm_ft"), ("left_leg_ft_sensor" = "ergocub_left_leg_ft"), ("right_leg_ft_sensor" = "ergocub_right_leg_ft")]
[DEBUG] wholeBodyDynamics Statistics: attachAll started. Attaching all control board.
[DEBUG] wholeBodyDynamics Statistics: Attaching all control board took  1e+06 s.
[DEBUG] wholeBodyDynamics Statistics: Attaching all virtual analog sensors.
[DEBUG] wholeBodyDynamics Statistics: Attaching all virtual analog sensors took  0 s.
[DEBUG] wholeBodyDynamics Statistics: Attaching all FTs.
[INFO] Starting attach MAS and analog ft
[DEBUG] wholeBodyDynamicsDevice :: number of devices that could contain FT sensors found  4 where analog are  0  and MAS are  4
[DEBUG] wholeBodyDynamics Statistics: Attaching all Fts took  0 s.
[DEBUG] wholeBodyDynamics Statistics: Attaching all IMUs.
[INFO] wholeBodyDynamics : Found one IMU multipleAnalogSensor device with accelerometer  head_imu_0  and gyroscope  head_imu_0
[DEBUG] wholeBodyDynamics Statistics: Attaching all IMUs took  0 s.
[DEBUG] wholeBodyDynamics Statistics: Calibrating offsets.
[DEBUG] wholeBodyDynamics Statistics: Calibrating took  0 s.
[DEBUG] wholeBodyDynamics Statistics: Starting
[INFO] All actions for action level 15 of startup phase started. Waiting for unfinished actions.
[WARNING] wholeBodyDynamics warning : joint positions was not readed correctly
[INFO] All actions for action level 15 of startup phase finished.
[WARNING] wholeBodyDynamics warning : joint velocities was not readed correctly
[WARNING] wholeBodyDynamics warning : joint accelerations was not readed correctly
[INFO] startup phase finished.
[INFO] run phase starting...
[ERROR] |yarp.device.multipleanalogsensorsclient| No data received in the last 3000000.000000 seconds, timeout enabled.
[ERROR] |yarp.device.multipleanalogsensorsclient| Sensor of type SixAxisForceTorqueSensors with index 0 has non-MAS_OK status.
[ERROR] |yarp.device.multipleanalogsensorsclient| No data received in the last 3000000.000000 seconds, timeout enabled.
[ERROR] |yarp.device.multipleanalogsensorsclient| Sensor of type SixAxisForceTorqueSensors with index 2 has non-MAS_OK status.
[ERROR] |yarp.device.multipleanalogsensorsclient| Sensor of type SixAxisForceTorqueSensors with index 1 has non-MAS_OK status.
[ERROR] |yarp.device.multipleanalogsensorsclient| Sensor of type SixAxisForceTorqueSensors with index 0 has non-MAS_OK status.
[ERROR] |yarp.device.multipleanalogsensorsclient| No data received in the last 2000000.000000 seconds, timeout enabled.
[ERROR] |yarp.device.multipleanalogsensorsclient| Sensor of type SixAxisForceTorqueSensors with index 0 has non-MAS_OK status.
[DEBUG] yarprobotinterface running happily
[ERROR] |yarp.device.multipleanalogsensorsclient| No data received in the last 3000000.000000 seconds, timeout enabled.
[ERROR] |yarp.device.multipleanalogsensorsclient| Sensor of type ThreeAxisLinearAccelerometers with index 0 has non-MAS_OK status.
[ERROR] |yarp.device.multipleanalogsensorsclient| Sensor of type ThreeAxisGyroscopes with index 0 has non-MAS_OK status.
[DEBUG] yarprobotinterface running happily

@xela-95
Copy link
Member Author

xela-95 commented Mar 20, 2024

Thanks to @traversaro we found out that the format of the timestamps published on the /clock port by the clock plugin is not what the Yarp Clock and the other modules were expecting.

We found this by comparing the signal through yarp read ... /clock with a second clock created through:

YARP_CLOCK=/clock2 yarp clock /clock2 

By reading this clock the format is seconds nanoseconds like: 63 936749458

I then updated the clock plugin to use this format and then done the walking tutorial being careful to launch both yarprobotinterface and Walking module with the YARP_CLOCK environment variable set to /clock.

Here's a video of the result 🥳

2024-03-20_15-04-57.mp4

The simulation is slow (sim2real ratio of 10-30 %) but that's matter for future plugins optimizations :)

@xela-95
Copy link
Member Author

xela-95 commented Mar 20, 2024

CC @S-Dafarra @GiulioRomualdi let me know if you note something strange in the simulation or if you want me to try change some simulation settings :)

@traversaro
Copy link
Member

The simulation is slow (sim2real ratio of 10-30 %) but that's matter for future plugins optimizations :)

My guess is that is not something plugin-related, but rather that the model is quite complex. Probably once we integrate the plugin in the ergoCub creo generation pipeline we can also test the minContact model.

@xela-95
Copy link
Member Author

xela-95 commented Mar 20, 2024

My guess is that is not something plugin-related, but rather that the model is quite complex.

Why do you think that? Certainly the plugins I've written have large space for optimizations 😅 but I don't know what is their impact on the overall simulation (it will be useful to understand it BTW).

Probably once we integrate the plugin in the ergoCub creo generation pipeline we can also test the minContact model.

Yep that's for sure!

@S-Dafarra
Copy link
Collaborator

In my opinion, some possible investigation routes could be:

  • how fast does it go without the visualization?
  • are the collisions active? If so, what about removing them all manually except those in the feet?
  • is it possible to chop away part of the robot (like the head and the forearms) and check how much of an improvement it is?

@xela-95
Copy link
Member Author

xela-95 commented Mar 20, 2024

I've tried to change physics engine: in addition to Dartsim, bullet and bullet-featherstone are the ones officially supported.

By launching gazebo with

gz sim example.world --physics-engine gz-physics-bullet-plugin --verbose

Gazebo crashes with the following logs:

Details
[Wrn] [Physics.cc:1191] Model's parent entity [8] not found on world / model map.
[Wrn] [Physics.cc:1242] Link's parent entity [9] not found on model map.
[Wrn] [Physics.cc:1242] Link's parent entity [9] not found on model map.
[Wrn] [Physics.cc:1242] Link's parent entity [9] not found on model map.
[Wrn] [Physics.cc:1242] Link's parent entity [9] not found on model map.
[Wrn] [Physics.cc:1242] Link's parent entity [9] not found on model map.
[Wrn] [Physics.cc:1242] Link's parent entity [9] not found on model map.
[Wrn] [Physics.cc:1242] Link's parent entity [9] not found on model map.
[Wrn] [Physics.cc:1242] Link's parent entity [9] not found on model map.
[Wrn] [Physics.cc:1242] Link's parent entity [9] not found on model map.
[Wrn] [Physics.cc:1242] Link's parent entity [9] not found on model map.
[Wrn] [Physics.cc:1242] Link's parent entity [9] not found on model map.
[Wrn] [Physics.cc:1242] Link's parent entity [9] not found on model map.
[Wrn] [Physics.cc:1242] Link's parent entity [9] not found on model map.
[Wrn] [Physics.cc:1242] Link's parent entity [9] not found on model map.
[Wrn] [Physics.cc:1242] Link's parent entity [9] not found on model map.
[Wrn] [Physics.cc:1242] Link's parent entity [9] not found on model map.
[Wrn] [Physics.cc:1242] Link's parent entity [9] not found on model map.
[Wrn] [Physics.cc:1242] Link's parent entity [9] not found on model map.
[Wrn] [Physics.cc:1242] Link's parent entity [9] not found on model map.
[Wrn] [Physics.cc:1242] Link's parent entity [9] not found on model map.
[Wrn] [Physics.cc:1242] Link's parent entity [9] not found on model map.
[Wrn] [Physics.cc:1242] Link's parent entity [9] not found on model map.
[Wrn] [Physics.cc:1242] Link's parent entity [9] not found on model map.
[Wrn] [Physics.cc:1242] Link's parent entity [9] not found on model map.
[Wrn] [Physics.cc:1242] Link's parent entity [9] not found on model map.
[Wrn] [Physics.cc:1242] Link's parent entity [9] not found on model map.
[Wrn] [Physics.cc:1242] Link's parent entity [9] not found on model map.
[Wrn] [Physics.cc:1242] Link's parent entity [9] not found on model map.
[Wrn] [Physics.cc:1242] Link's parent entity [9] not found on model map.
[Wrn] [Physics.cc:1242] Link's parent entity [9] not found on model map.
[Wrn] [Physics.cc:1242] Link's parent entity [9] not found on model map.
[Wrn] [Physics.cc:1242] Link's parent entity [9] not found on model map.
[Wrn] [Physics.cc:1242] Link's parent entity [9] not found on model map.
[Wrn] [Physics.cc:1242] Link's parent entity [9] not found on model map.
[Wrn] [Physics.cc:1242] Link's parent entity [9] not found on model map.
[Wrn] [Physics.cc:1242] Link's parent entity [9] not found on model map.
[Wrn] [Physics.cc:1242] Link's parent entity [9] not found on model map.
[Wrn] [Physics.cc:1242] Link's parent entity [9] not found on model map.
[Wrn] [Physics.cc:1242] Link's parent entity [9] not found on model map.
[Wrn] [Physics.cc:1242] Link's parent entity [9] not found on model map.
[Wrn] [Physics.cc:1242] Link's parent entity [9] not found on model map.
[Wrn] [Physics.cc:1242] Link's parent entity [9] not found on model map.
[Wrn] [Physics.cc:1242] Link's parent entity [9] not found on model map.
[Wrn] [Physics.cc:1242] Link's parent entity [9] not found on model map.
[Wrn] [Physics.cc:1242] Link's parent entity [9] not found on model map.
[Wrn] [Physics.cc:1242] Link's parent entity [9] not found on model map.
[Wrn] [Physics.cc:1242] Link's parent entity [9] not found on model map.
[Wrn] [Physics.cc:1242] Link's parent entity [9] not found on model map.
[Wrn] [Physics.cc:1242] Link's parent entity [9] not found on model map.
[Wrn] [Physics.cc:1242] Link's parent entity [9] not found on model map.
[Wrn] [Physics.cc:1242] Link's parent entity [9] not found on model map.
[Wrn] [Physics.cc:1242] Link's parent entity [9] not found on model map.
[Wrn] [Physics.cc:1242] Link's parent entity [9] not found on model map.
[Wrn] [Physics.cc:1242] Link's parent entity [9] not found on model map.
[Wrn] [Physics.cc:1242] Link's parent entity [9] not found on model map.
[Wrn] [Physics.cc:1242] Link's parent entity [9] not found on model map.
[Wrn] [Physics.cc:1242] Link's parent entity [9] not found on model map.
[Wrn] [Physics.cc:1242] Link's parent entity [9] not found on model map.
[Wrn] [Physics.cc:1242] Link's parent entity [9] not found on model map.
[Wrn] [Physics.cc:1242] Link's parent entity [9] not found on model map.
[Wrn] [Physics.cc:1242] Link's parent entity [9] not found on model map.
[Wrn] [Physics.cc:1242] Link's parent entity [9] not found on model map.
[Wrn] [Physics.cc:1242] Link's parent entity [9] not found on model map.
[Wrn] [Physics.cc:1242] Link's parent entity [9] not found on model map.
[Wrn] [Physics.cc:1242] Link's parent entity [9] not found on model map.
[Wrn] [Physics.cc:1242] Link's parent entity [9] not found on model map.
[Wrn] [Physics.cc:1352] Collision's parent entity [10] not found on link map.
[Wrn] [Physics.cc:1352] Collision's parent entity [13] not found on link map.
[Wrn] [Physics.cc:1352] Collision's parent entity [16] not found on link map.
[Wrn] [Physics.cc:1352] Collision's parent entity [19] not found on link map.
[Wrn] [Physics.cc:1352] Collision's parent entity [22] not found on link map.
[Wrn] [Physics.cc:1352] Collision's parent entity [25] not found on link map.
[Wrn] [Physics.cc:1352] Collision's parent entity [28] not found on link map.
[Wrn] [Physics.cc:1352] Collision's parent entity [31] not found on link map.
[Wrn] [Physics.cc:1352] Collision's parent entity [34] not found on link map.
[Wrn] [Physics.cc:1352] Collision's parent entity [38] not found on link map.
[Wrn] [Physics.cc:1352] Collision's parent entity [42] not found on link map.
[Wrn] [Physics.cc:1352] Collision's parent entity [45] not found on link map.
[Wrn] [Physics.cc:1352] Collision's parent entity [48] not found on link map.
[Wrn] [Physics.cc:1352] Collision's parent entity [51] not found on link map.
[Wrn] [Physics.cc:1352] Collision's parent entity [54] not found on link map.
[Wrn] [Physics.cc:1352] Collision's parent entity [57] not found on link map.
[Wrn] [Physics.cc:1352] Collision's parent entity [60] not found on link map.
[Wrn] [Physics.cc:1352] Collision's parent entity [63] not found on link map.
[Wrn] [Physics.cc:1352] Collision's parent entity [67] not found on link map.
[Wrn] [Physics.cc:1352] Collision's parent entity [71] not found on link map.
[Wrn] [Physics.cc:1352] Collision's parent entity [75] not found on link map.
[Wrn] [Physics.cc:1352] Collision's parent entity [78] not found on link map.
[Wrn] [Physics.cc:1352] Collision's parent entity [81] not found on link map.
[Wrn] [Physics.cc:1352] Collision's parent entity [84] not found on link map.
[Wrn] [Physics.cc:1352] Collision's parent entity [87] not found on link map.
[Wrn] [Physics.cc:1352] Collision's parent entity [90] not found on link map.
[Wrn] [Physics.cc:1352] Collision's parent entity [93] not found on link map.
[Wrn] [Physics.cc:1352] Collision's parent entity [96] not found on link map.
[Wrn] [Physics.cc:1352] Collision's parent entity [99] not found on link map.
[Wrn] [Physics.cc:1352] Collision's parent entity [102] not found on link map.
[Wrn] [Physics.cc:1352] Collision's parent entity [105] not found on link map.
[Wrn] [Physics.cc:1352] Collision's parent entity [108] not found on link map.
[Wrn] [Physics.cc:1352] Collision's parent entity [111] not found on link map.
[Wrn] [Physics.cc:1352] Collision's parent entity [114] not found on link map.
[Wrn] [Physics.cc:1352] Collision's parent entity [117] not found on link map.
[Wrn] [Physics.cc:1352] Collision's parent entity [120] not found on link map.
[Wrn] [Physics.cc:1352] Collision's parent entity [123] not found on link map.
[Wrn] [Physics.cc:1352] Collision's parent entity [126] not found on link map.
[Wrn] [Physics.cc:1352] Collision's parent entity [129] not found on link map.
[Wrn] [Physics.cc:1352] Collision's parent entity [132] not found on link map.
[Wrn] [Physics.cc:1352] Collision's parent entity [135] not found on link map.
[Wrn] [Physics.cc:1352] Collision's parent entity [138] not found on link map.
[Wrn] [Physics.cc:1352] Collision's parent entity [141] not found on link map.
[Wrn] [Physics.cc:1352] Collision's parent entity [144] not found on link map.
[Wrn] [Physics.cc:1352] Collision's parent entity [147] not found on link map.
[Wrn] [Physics.cc:1352] Collision's parent entity [152] not found on link map.
[Wrn] [Physics.cc:1352] Collision's parent entity [157] not found on link map.
[Wrn] [Physics.cc:1352] Collision's parent entity [160] not found on link map.
[Wrn] [Physics.cc:1352] Collision's parent entity [163] not found on link map.
[Wrn] [Physics.cc:1352] Collision's parent entity [166] not found on link map.
[Wrn] [Physics.cc:1352] Collision's parent entity [169] not found on link map.
[Wrn] [Physics.cc:1352] Collision's parent entity [172] not found on link map.
[Wrn] [Physics.cc:1352] Collision's parent entity [175] not found on link map.
[Wrn] [Physics.cc:1352] Collision's parent entity [178] not found on link map.
[Wrn] [Physics.cc:1352] Collision's parent entity [181] not found on link map.
[Wrn] [Physics.cc:1352] Collision's parent entity [184] not found on link map.
[Wrn] [Physics.cc:1352] Collision's parent entity [187] not found on link map.
[Wrn] [Physics.cc:1352] Collision's parent entity [190] not found on link map.
[Wrn] [Physics.cc:1352] Collision's parent entity [193] not found on link map.
[Wrn] [Physics.cc:1352] Collision's parent entity [196] not found on link map.
[Wrn] [Physics.cc:1352] Collision's parent entity [199] not found on link map.
[Wrn] [Physics.cc:1352] Collision's parent entity [202] not found on link map.
[Wrn] [Physics.cc:1352] Collision's parent entity [205] not found on link map.
[Wrn] [Physics.cc:1352] Collision's parent entity [208] not found on link map.
[Wrn] [Physics.cc:1352] Collision's parent entity [211] not found on link map.
[Wrn] [Physics.cc:1352] Collision's parent entity [214] not found on link map.
[Err] [Physics.cc:1651] Joint's parent model entity [9] not found on model map.
[Err] [Physics.cc:1651] Joint's parent model entity [9] not found on model map.
[Err] [Physics.cc:1651] Joint's parent model entity [9] not found on model map.
[Err] [Physics.cc:1651] Joint's parent model entity [9] not found on model map.
[Err] [Physics.cc:1651] Joint's parent model entity [9] not found on model map.
[Err] [Physics.cc:1651] Joint's parent model entity [9] not found on model map.
[Err] [Physics.cc:1651] Joint's parent model entity [9[GUI] [Msg] Loading plugin [gz-rendering-ogre2]
] not found on model map.
[Err] [Physics.cc:1651] Joint's parent model entity [9] not found on model map.
[Err] [Physics.cc:1651] Joint's parent model entity [9] not found on model map.
[Err] [Physics.cc:1651] Joint's parent model entity [9] not found on model map.
[Err] [Physics.cc:1651] Joint's parent model entity [9] not found on model map.
[Err] [Physics.cc:1651] Joint's parent model entity [9] not found on model map.
[Err] [Physics.cc:1651] Joint's parent model entity [9] not found on model map.
[Err] [Physics.cc:1651] Joint's parent model entity [9] not found on model map.
[GUI] [Msg] Loading plugin [gz-rendering-ogre2]
[Err] [Physics.cc:1651] Joint's parent model entity [9] not found on model map.
[Err] [Physics.cc:1651] Joint's parent model entity [9] not found on model map.
[Err] [Physics.cc:1651] Joint's parent model entity [9] not found on model map.
[Err] [Physics.cc:1651] Joint's parent model entity [9] not found on model map.
[GUI] [Msg] Loading plugin [gz-rendering-ogre2]
[Err] [Physics.cc:1651] Joint's parent model entity [9] not found on model map.
[Err] [Physics.cc:1651] Joint's parent model entity [9] not found on model map.
[Err] [Physics.cc:1651] Joint's parent model entity [9] not found on model map.
[Err] [Physics.cc:1651] Joint's parent model entity [9] not found on model map.
[GUI] [Msg] Loading plugin [gz-rendering-ogre2]
[Err] [Physics.cc:1651] Joint's parent model entity [9] not found on model map.
[Err] [Physics.cc:1651] Joint's parent model entity [9] not found on model map.
[Err] [Physics.cc:1651] Joint's parent model entity [9] not found on model map.
[Err] [Physics.cc:1651] Joint's parent model entity [9] not found on model map.
[GUI] [Msg] Loading plugin [gz-rendering-ogre2]
[Err] [Physics.cc:1651] Joint's parent model entity [9] not found on model map.
[Err] [Physics.cc:1651] Joint's parent model entity [9] not found on model map.
[Err] [Physics.cc:1651] Joint's parent model entity [9] not found on model map.
[Err] [Physics.cc:1651] Joint's parent model entity [9] not found on model map.
[Err] [Physics.cc:1651] Joint's parent model entity [9] not found on model map.
[Err] [Physics.cc:1651] Joint's parent model entity [9] not found on model map.
[Err] [Physics.cc:1651] Joint's parent model entity [9] not found on model map.
[Err] [Physics.cc:1651] Joint's parent model entity [9] not found on model map.
[Err] [Physics.cc:1651] Joint's parent model entity [9] not found on model map.
[Err] [Physics.cc:1651] Joint's parent model entity [9] not found on model map.
[Err] [Physics.cc:1651] Joint's parent model entity [9] not found on model map.
[Err] [Physics.cc:1651] Joint's parent model entity [9] not found on model map.
[Err] [Physics.cc:1651] Joint's parent model entity [9] not found on model map.
[GUI] [Msg] Loading plugin [gz-rendering-ogre2]
[Err] [Physics.cc:1651] Joint's parent model entity [9] not found on model map.
[Err] [Physics.cc:1651] Joint's parent model entity [9] not found on model map.
[Err] [Physics.cc:1651] Joint's parent model entity [9] not found on model map.
[Err] [Physics.cc:1651] Joint's parent model entity [9] not found on model map.
[Err] [Physics.cc:1651] Joint's parent model entity [9] not found on model map.
[Err] [Physics.cc:1651] Joint's parent model entity [9] not found on model map.
[GUI] [Msg] Move to service on [/gui/move_to]
[Err] [Physics.cc:1651] Joint's parent model entity [9] not found on model map.
[Err] [Physics.cc:1651] Joint's parent model entity [9] not found on model map.
[GUI] [Msg] Follow service on [/gui/follow]
[Err] [Physics.cc:1651] Joint's parent model entity [9] not found on model map.
[Err] [Physics.cc:1651] Joint's parent model entity [9] not found on model map.
[Err] [Physics.cc:1651] Joint's parent model entity [9] not found on model map.
[GUI] [Msg] Move to pose service on [/gui/move_to/pose]
[Err] [Physics.cc:1651] Joint's parent model entity [9] not found on model map.
[Err] [Physics.cc:1651] Joint's parent model entity [9] not found on model map.
[Err] [Physics.cc:1651] Joint's parent model entity [9] not found on model map.
[GUI] [Msg] Camera pose topic advertised on [/gui/camera/pose]
[Err] [Physics.cc:1651] Joint's parent model entity [9] not found on model map.
[Err] [Physics.cc:1651] Joint's parent model entity [9] not found on model map.
[Err] [Physics.cc:1651] Joint's parent model entity [9] not found on model map.
[GUI] [Msg] Follow offset service on [/gui/follow/offset]
[Err] [Physics.cc:1651] Joint's parent model entity [9] not found on model map.
[GUI] [Msg] Loading plugin [gz-rendering-ogre2]
[Err] [Physics.cc:1651] Joint's parent model entity [9] not found on model map.
[Err] [Physics.cc:1651] Joint's parent model entity [9] not found on model map.
[Err] [Physics.cc:1651] Joint's parent model entity [9] not found on model map.
[Err] [Physics.cc:1651] Joint's parent model entity [9] not found on model map.
[Err] [Physics.cc:1651] Joint's parent model entity [9] not found on model map.
[Err] [Physics.cc:1651] Joint's parent model entity [9] not found on model map.
[Err] [Physics.cc:1651] Joint's parent model entity [[GUI] [Msg] Loading plugin [gz-rendering-ogre2]
9] not found on model map.
[Err] [Physics.cc:1651] Joint's parent model entity [9] not found on model map.
[GUI] [Msg] Loading plugin [gz-rendering-ogre2]
[Err] [Physics.cc:2930] Internal error: link [10] not in entity map
[Err] [Physics.cc:2930] Internal error: link [13] not in entity map
[Err] [Physics.cc:2930] Internal error: link [16] not in entity map
[Err] [Physics.cc:2930] Internal error: link [19] not in entity map
[Err] [Physics.cc:2930] Internal error: link [22] not in entity map
[Err] [Physics.cc:2930] Internal error: link [25] not in entity map
[Err] [Physics.cc:2930] Internal error: link [28] not in entity map
[Err] [Physics.cc:2930] Internal error: link [31] not in entity map
[Err] [Physics.cc:2930] Internal error: link [34] not in entity map
[Err] [Physics.cc:2930] Internal error: link [38] not in entity map
[Err] [Physics.cc:2930] Internal error: link [42] not in entity map
[Err] [Physics.cc:2930] Internal error: link [45] not in entity map
[Err] [Physics.cc:2930] Internal error: link [48] not in entity map
[Err] [Physics.cc:2930] Internal error: link [51] not in entity map
[Err] [Physics.cc:2930] Internal error: link [54] not in entity map
[Err] [Physics.cc:2930] Internal error: link [57] not in entity map
[Err] [Physics.cc:2930] Internal error: link [60] not in entity map
[Err] [Physics.cc:2930] Internal error: link [63] not in entity map
[Err] [Physics.cc:2930] Internal error: link [67] not in entity map
[Err] [Physics.cc:2930] Internal error: link [71] not in entity map
[Err] [Physics.cc:2930] Internal error: link [75] not in entity map
[Err] [Physics.cc:2930] Internal error: link [78] not in entity map
[Err] [Physics.cc:2930] Internal error: link [81] not in entity map
[Err] [Physics.cc:2930] Internal error: link [84] not in entity map
[Err] [Physics.cc:2930] Internal error: link [87] not in entity map
[Err] [Physics.cc:2930] Internal error: link [90] not in entity map
[Err] [Physics.cc:2930] Internal error: link [93] not in entity map
[Err] [Physics.cc:2930] Internal error: link [96] not in entity map
[Err] [Physics.cc:2930] Internal error: link [99] not in entity map
[Err] [Physics.cc:2930] Internal error: link [102] not in entity map
[Err] [Physics.cc:2930] Internal error: link [105] not in entity map
[Err] [Physics.cc:2930] Internal error: link [108] not in entity map
[Err] [Physics.cc:2930] Internal error: link [111] not in entity map
[Err] [Physics.cc:2930] Internal error: link [114] not in entity map
[Err] [Physics.cc:2930] Internal error: link [117] not in entity map
[Err] [Physics.cc:2930] Internal error: link [120] not in entity map
[Err] [Physics.cc:2930] Internal error: link [123] not in entity map
[Err] [Physics.cc:2930] Internal error: link [126] not in entity map
[Err] [Physics.cc:2930] Internal error: link [129] not in entity map
[Err] [Physics.cc:2930] Internal error: link [132] not in entity map
[Err] [Physics.cc:2930] Internal error: link [135] not in entity map
[Err] [Physics.cc:2930] Internal error: link [138] not in entity map
[Err] [Physics.cc:2930] Internal error: link [141] not in entity map
[Err] [Physics.cc:2930] Internal error: link [144] not in entity map
[Err] [Physics.cc:2930] Internal error: link [147] not in entity map
[Err] [Physics.cc:2930] Internal error: link [152] not in entity map
[Err] [Physics.cc:2930] Internal error: link [157] not in entity map
[Err] [Physics.cc:2930] Internal error: link [160] not in entity map
[Err] [Physics.cc:2930] Internal error: link [163] not in entity map
[Err] [Physics.cc:2930] Internal error: link [166] not in entity map
[Err] [Physics.cc:2930] Internal error: link [169] not in entity map
[Err] [Physics.cc:2930] Internal error: link [172] not in entity map
[Err] [Physics.cc:2930] Internal error: link [175] not in entity map
[Err] [Physics.cc:2930] Internal error: link [178] not in entity map
[Err] [Physics.cc:2930] Internal error: link [181] not in entity map
[Err] [Physics.cc:2930] Internal error: link [184] not in entity map
[Err] [Physics.cc:2930] Internal error: link [187] not in entity map
[Err] [Physics.cc:2930] Internal error: link [190] not in entity map
[Err] [Physics.cc:2930] Internal error: link [193] not in entity map
[Err] [Physics.cc:2930] Internal error: link [196] not in entity map
[Err] [Physics.cc:2930] Internal error: link [199] not in entity map
[Err] [Physics.cc:2930] Internal error: link [202] not in entity map
[Err] [Physics.cc:2930] Internal error: link [205] not in entity map
[Err] [Physics.cc:2930] Internal error: link [208] not in entity map
[Err] [Physics.cc:2930] Internal error: link [211] not in entity map
[Err] [Physics.cc:2930] Internal error: link [214] not in entity map
terminate called recursively
[Msg] Loading plugin [gz-rendering-ogre2]
terminate called recursively
terminate called recursively
terminate called recursively
Stack trace (most recent call last) in thread 300336:
[GUI] [Msg] Loading plugin [gz-rendering-ogre2]

@traversaro
Copy link
Member

Gazebo crashes with the following logs:

Cool, probably it make sense to check this happens without any plugin, and then report the issue in gz-sim .

@xela-95
Copy link
Member Author

xela-95 commented Mar 20, 2024

In my opinion, some possible investigation routes could be:

* how fast does it go without the visualization?

* are the collisions active? If so, what about removing them all manually except those in the feet?

* is it possible to chop away part of the robot (like the head and the forearms) and check how much of an improvement it is?

I think I can close this issue since its acceptance criteria have been met.

I will open a new issue to track how the simulation changes by following these investigation routes.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants