Closed ruca03 closed 7 months ago
I've had the same problem with iron
. I think ros2_control
has made a breaking change recently.
Same problem with the e_puck demo and ROS humble:
[spawner-7] [INFO] [1707298270.095655670] [spawner_diffdrive_controller]: Waiting for '/controller_manager' services to be available
[spawner-8] [INFO] [1707298270.106261863] [spawner_joint_state_broadcaster]: Waiting for '/controller_manager' services to be available
Same problem here:
Can you try the patch proposed in #894 and let me know if that helps?
Hi, @omichel.
I did your sugegstion. While it stops the error message "Waiting for ... to be available" the robots dont move.
The Webots log shows:
INFO: 'abbirb4600' extern controller: Waiting for local or remote connection on port 1234 targeting robot named 'abbirb4600'. INFO: conveyor_belt: Starting controller: /home/rui/.ros/webotsR2023b/webots/projects/objects/factory/conveyors/controllers/conveyor_belt/conveyor_belt -0.17 0 INFO: 'Ros2Supervisor' extern controller: Waiting for local or remote connection on port 1234 targeting robot named 'Ros2Supervisor'. INFO: 'abbirb4600' extern controller: connected. INFO: 'Ros2Supervisor' extern controller: connected. INFO: 'UR5e' extern controller: Waiting for local or remote connection on port 1234 targeting robot named 'UR5e'. INFO: 'UR5e' extern controller: connected. WARNING: Contact joints between materials 'default' and 'default' will only be created for the 10 deepest contact points instead of all the 90 contact points. WARNING: Contact joints between materials 'default' and 'default' will only be created for the 10 deepest contact points instead of all the 21 contact points.
And the terminal when i run ros2 launch webots_ros2_universal_robot multirobot_launch.py
shows:
[INFO] [launch]: All log files can be found below /home/rui/.ros/log/2024-02-08-15-43-50-895216-rui-REPLANT-18004
[INFO] [launch]: Default logging verbosity is set to INFO
WARNING: No valid Webots directory specified in `ROS2_WEBOTS_HOME` and `WEBOTS_HOME`, fallback to default installation folder /home/rui/.ros/webotsR2023b/webots.
[INFO] [webots-1]: process started with pid [18005]
[INFO] [ros2_supervisor.py-2]: process started with pid [18007]
[INFO] [webots_controller_UR5e-3]: process started with pid [18010]
[INFO] [webots_controller_abbirb4600-4]: process started with pid [18013]
[INFO] [ros2-5]: process started with pid [18015]
[webots_controller_UR5e-3] The specified robot is not in the list of robots with <extern> controllers, retrying for another 50 seconds...
[webots_controller_abbirb4600-4] The specified robot is not in the list of robots with <extern> controllers, retrying for another 50 seconds...
[ros2_supervisor.py-2] The specified robot is not in the list of robots with <extern> controllers, retrying for another 50 seconds...
[webots_controller_UR5e-3] The Webots simulation world is not yet ready, pending until loading is done...
[webots_controller_abbirb4600-4] The Webots simulation world is not yet ready, pending until loading is done...
[ros2_supervisor.py-2] The Webots simulation world is not yet ready, pending until loading is done...
[webots_controller_abbirb4600-4] [INFO] [1707407038.230590805] [resource_manager]: Initialize hardware 'WebotsControl'
[webots_controller_abbirb4600-4] [INFO] [1707407038.230821465] [resource_manager]: Successful initialization of hardware 'WebotsControl'
[webots_controller_abbirb4600-4] [INFO] [1707407038.231043607] [resource_manager]: 'configure' hardware 'WebotsControl'
[webots_controller_abbirb4600-4] [INFO] [1707407038.231060032] [resource_manager]: Successful 'configure' of hardware 'WebotsControl'
[webots_controller_abbirb4600-4] [INFO] [1707407038.231074364] [resource_manager]: 'activate' hardware 'WebotsControl'
[webots_controller_abbirb4600-4] [INFO] [1707407038.231079585] [resource_manager]: Successful 'activate' of hardware 'WebotsControl'
[webots_controller_abbirb4600-4] [INFO] [1707407038.235500788] [abb.controller_manager]: Subscribing to '~/robot_description' topic for robot description file.
[webots_controller_abbirb4600-4] [INFO] [1707407038.236073859] [abb.abbirb4600]: Controller successfully connected to robot in Webots simulation.
[ros2_supervisor.py-2] [WARN] [1707407038.415912712] [Ros2Supervisor.Ros2Supervisor]: The URDF Spawner is deprecated. It will be replaced by a new PROTOSpawner in the future. See https://github.com/cyberbotics/webots_ros2/issues/818 for more information.
[ros2_supervisor.py-2] [INFO] [1707407038.694156319] [Ros2Supervisor.Ros2Supervisor]: Ros2Supervisor has imported the URDF robot named "UR5e".
[INFO] [ur5e_controller-6]: process started with pid [18086]
[INFO] [abb_controller-7]: process started with pid [18088]
[INFO] [ros2_control_node-8]: process started with pid [18090]
[INFO] [ros2_control_node-9]: process started with pid [18092]
[INFO] [ros2_control_node-10]: process started with pid [18094]
[INFO] [ros2_control_node-11]: process started with pid [18096]
[ros2_control_node-9] [WARN] [1707407038.727792944] [controller_manager]: 'update_rate' parameter not set, using default value.
[ros2_control_node-9] [INFO] [1707407038.727924904] [controller_manager]: Subscribing to '~/robot_description' topic for robot description file.
[ros2_control_node-9] [INFO] [1707407038.728784460] [controller_manager]: update rate is 100 Hz
[ros2_control_node-9] [INFO] [1707407038.728917604] [controller_manager]: RT kernel is recommended for better performance
[ros2_control_node-11] [WARN] [1707407038.733139987] [controller_manager]: 'update_rate' parameter not set, using default value.
[ros2_control_node-11] [INFO] [1707407038.733226851] [controller_manager]: Subscribing to '~/robot_description' topic for robot description file.
[ros2_control_node-8] [WARN] [1707407038.733706203] [controller_manager]: 'update_rate' parameter not set, using default value.
[ros2_control_node-8] [INFO] [1707407038.733786422] [controller_manager]: Subscribing to '~/robot_description' topic for robot description file.
[ros2_control_node-11] [INFO] [1707407038.733912854] [controller_manager]: update rate is 100 Hz
[ros2_control_node-11] [INFO] [1707407038.734054210] [controller_manager]: RT kernel is recommended for better performance
[ros2_control_node-8] [INFO] [1707407038.734532091] [controller_manager]: update rate is 100 Hz
[ros2_control_node-8] [INFO] [1707407038.734626828] [controller_manager]: RT kernel is recommended for better performance
[ros2_control_node-10] [WARN] [1707407038.735623685] [controller_manager]: 'update_rate' parameter not set, using default value.
[ros2_control_node-10] [INFO] [1707407038.735772225] [controller_manager]: Subscribing to '~/robot_description' topic for robot description file.
[ros2_control_node-10] [INFO] [1707407038.744208227] [controller_manager]: update rate is 100 Hz
[ros2_control_node-10] [INFO] [1707407038.744383942] [controller_manager]: RT kernel is recommended for better performance
[INFO] [ros2-5]: process has finished cleanly [pid 18015]
[ur5e_controller-6] [INFO] [1707407039.047889641] [ur5e.ur5e_controller]: Waiting for action server to be ready...
[abb_controller-7] [INFO] [1707407039.047921095] [abb.abb_controller]: Waiting for action server to be ready...
[webots_controller_UR5e-3] [INFO] [1707407039.703054183] [resource_manager]: Initialize hardware 'WebotsControl'
[webots_controller_UR5e-3] [INFO] [1707407039.703248802] [resource_manager]: Successful initialization of hardware 'WebotsControl'
[webots_controller_UR5e-3] [INFO] [1707407039.703420684] [resource_manager]: 'configure' hardware 'WebotsControl'
[webots_controller_UR5e-3] [INFO] [1707407039.703430431] [resource_manager]: Successful 'configure' of hardware 'WebotsControl'
[webots_controller_UR5e-3] [INFO] [1707407039.703442747] [resource_manager]: 'activate' hardware 'WebotsControl'
[webots_controller_UR5e-3] [INFO] [1707407039.703447273] [resource_manager]: Successful 'activate' of hardware 'WebotsControl'
[webots_controller_UR5e-3] [INFO] [1707407039.708499371] [ur5e.controller_manager]: Subscribing to '~/robot_description' topic for robot description file.
[webots_controller_UR5e-3] [INFO] [1707407039.709177077] [ur5e.UR5e]: Controller successfully connected to robot in Webots simulation.
I'm wondering if ros-controls/ros2_control#1169 might be the culprit. It says it is API breaking.
Fails for me too, on Ubuntu 22.04 , WSL2, humble.
I installed using apt
the packages ros-humble-ros2-control
and ros-humble-ros2-controllers
so I get ros2_control v2.37.0 (That's what I get when trying ros2 pkg xml ros2_control
I wish there was a fix or workaround @omichel .. Webots is so nice but I need to use ros2_control
Based on my analysis, the problem is the robot_description
topic has no publishers. The controller_manager
services that are being polled for are not made available until a message is published on this topic. So I think something is failing which prevents the robot_description
publisher from being created.
I've also tried loading the URDF directly into the resource manager, which I believe bypasses the need to subscribe to robot_description
and makes the services available immediately, but I've not got it to work without error.
I wish there was a fix or workaround @omichel .. Webots is so nice but I need to use ros2_control
you may build n use ros2_control 2.36.1 for now
How to update our systems with the new changes? Doing a:
$sudo apt update
$sudo apt upgrade
does show that the repository to webots_ros2 is checked but no update is downloaded.
How to update our systems with the new changes? Doing a:
$sudo apt update $sudo apt upgrade
does show that the repository to webots_ros2 is checked but no update is downloaded.
You won't see an update until the next version release. If you want to use this fix now, you need to either clone webots_ros2
or include it as a submodule in your ros2 workspace and compile it yourself. You'll also want to remove the version of webots_ros2
installed with apt
.
And there is any estimated time for the next release?
Now that all the tests are passing on all ROS2 distributions, @Yadunund may be able to bump a release. A PR for this was prepared a long time ago in #839 and @Yadunund also prepared one in #892. Not sure from which we should re-start.
If CI is working on all distro we should continue with #839 imo
If CI is working on all distro we should continue with #839 imo
I agree. Can you take the lead on this since @ygoumaz is not working on the project any more?
If CI is working on all distro we should continue with #839 imo
I agree. Can you take the lead on this since @ygoumaz is not working on the project any more?
Sure. But I'm likely to have time only next week or so.
Describe the Bug I installed the webots from the source files and when i run:
ros2 pkg xml webots_ros2 | grep version
It returns:<version>2023.1.1</version>
I start the demo with
ros2 launch webots_ros2_universal_robot multirobot_launch.py
. While both arms spawn and the conveyor starts to move with the soda can on top, both arms remain frozen.The only warnings the webots console gives is when the soda can touches the arm:
WARNING: Contact joints between materials 'default' and 'default' will only be created for the 10 deepest contact points instead of all the 12 contact points.
For what i could understand the controllers and the robots arent communicating with each other. Do you guys know what is happening or can you guys tell me what I'm doing wrong?
The terminal used to launch the demo gives the following response:
And these are the ros2 services that are available with
ros2 service list
: