Dynamic reconfiguration of URDF's of a robot

asked 2021-12-15 06:51:12 -0500

Dr.Duesentrieb gravatar image

Hi fellow robotic engineers!

Im facing a problem considering a modal "robot", where the robot is rather an intelligent table to which you stick modules which then help in the assembly of products. The exat way this should work is not important :D

The problem we are facing is whether we can change the URDF of the system at runtime. It must be possible to connect and disconnect modules at runtime and add or delete there URDF from those of the whole system.

Just to give you an impression, a module could be a small table with a robot arm on it which can be simply sticked and thus connected into the master table. When this happens, the URDF of the table must be extended by the URDF of the module. When the module is taken away the URDF of the whole system must be reduced by the URDF of the module.

We have a concept to transfer the URDFs network wise, we just have no idea how ros could manipulate the URDFs at runtime. The answer must not be in respect to any specific OS or even ros version. Right now it should preferably be regarded to ros noetic or foxy(ROS2).

I would greatly appreciate if you have any input or idea how this could be conceptionally done with ros.

Thank you!

edit retag flag offensive close merge delete


This has come up multiple times, and in many discussions. I'd really advise searching for "dynamic urdf" or "updateable urdf" with Google (append site:answers.ros.org) or even directly on ROS Discourse.

One context in which it comes up is "tool switching" with industrial robots. Your application sounds almost identical.

The problem challenge is not changing the parameter at runtime (as that's perfectly possible). It's making sure (somehow) that all consumers of that data are aware of the change, are able to update their internal state, and, as that's typically important for things like environment representations, they all have a consistent shared view of that environment representation (ie: urdf / robot model / whatever).

ROS 2 already uses a topic to publish "the robot description", so technically this solves the "distribute updates to the URDF to consumers" part. The rest is however left completely implicit (ie: achieve ...(more)

gvdhoorn gravatar image gvdhoorn  ( 2021-12-16 14:24:41 -0500 )edit