Ask Your Question
0

Modify the robot_description parameter at runtime

asked 2019-01-28 05:29:41 -0500

Hello,

I am trying to put identified offsets to the nominal URDF-values of my industrial robot. Since I do not want to modify the support package of my robot, I thought a good way to insert the identified rotary and translation offsets would be to change the robot_description on the parameter server. Is there a more elegant way to fulfill my goal, or do I really have to modify the string from the robot_description parameter? Is it even possible or advisable to change values of the robot description at runtime?

Thanks for all recommendations.

edit retag flag offensive close merge delete

Comments

Is it even possible or advisable to change values of the robot description at runtime?

it's possible, but there are a whole host of potential issues with it.

I can't find them right now, but there have been discussions about this in the past. Main issue is that consumers of URDFs do not ..

gvdhoorn gravatar image gvdhoorn  ( 2019-01-28 05:49:39 -0500 )edit

.. expect the parameter (so robot_description) to ever change. So even if you update it, almost no readily available software that consumes URDF/XACRO will ever load it more than once, and will not see your updated content.

gvdhoorn gravatar image gvdhoorn  ( 2019-01-28 05:50:37 -0500 )edit

Well that sounds pretty disappointing. Are there any possibilities to include my identified URDF-Offsets, without directly changing the URDF then?

nmelchert gravatar image nmelchert  ( 2019-01-28 05:52:49 -0500 )edit

it's possible, but there are a whole host of potential issues with it.

That's what I thought. I figured that the robot description is probably loaded once by all instances, that use it (like moveit).

nmelchert gravatar image nmelchert  ( 2019-01-28 05:54:52 -0500 )edit

1 Answer

Sort by ยป oldest newest most voted
0

answered 2019-01-28 06:56:03 -0500

To close this: It seems like that modifying the URDF is the only "proper" way of modifying the robot_desription parameter, so that it can be used by any software consumer, that reads the URDF/XACRO.

The robot_calibration package does the same thing: Calibrated results are stored inside of a new modified urdf file.

edit flag offensive delete link more

Comments

You might want to take a look at the YAML support in xacro. See ros-industrial/universal_robot#371 for a prototype of how that can be used for these kind of use-cases.

gvdhoorn gravatar image gvdhoorn  ( 2019-01-28 07:26:55 -0500 )edit

Your Answer

Please start posting anonymously - your entry will be published after you log in or create a new account.

Add Answer

Question Tools

2 followers

Stats

Asked: 2019-01-28 05:29:41 -0500

Seen: 466 times

Last updated: Jan 28 '19