ros-industrial / universal_robot

ROS-Industrial Universal Robots support (https://wiki.ros.org/universal_robot)
1.08k stars 1.03k forks source link

Consider templated yaml for simulation control yaml #144

Open mikepurvis opened 9 years ago

mikepurvis commented 9 years ago

For the purposes of composability, having support for a prefix in the URDF macro is terrific. However, for the purposes of simulating on the composed robot, it would be great if the simulation controller configuration files were similarly templated, eg:

https://github.com/ros-industrial/universal_robot/blob/hydro-devel/ur_gazebo/controller/arm_controller_ur10.yaml

If there'd be interest in merging this, I can prepare a PR. The basic idea would be to replace arm_controller_ur10.yaml with arm_controller_ur10.yaml.em, and generate (using catkin's em_expand arm_controller_ur10.yaml at build time. Both the generated and original one would be installed with the ur_gazebo package, so that other robots using one or more prefixed arms could easily produce simulation configs without having to manually clone in these files.

Obviously the same would be done for UR5. There would be no reason to give the moveit configs the same treatment, as a composed robot should have a new moveit config created from scratch regardless.

Thoughts?

fmessmer commented 9 years ago

Are you experiencing any particular problems simulating the URs in a composed robot which is why you want to change the parameters?

To be honest, I don't know the catkin feature em_expand. Feel free to propose a PR for discussing your suggestion ...as long as it simplyfies or improves this repository/usability...the community is happy to have it ;-)

mikepurvis commented 9 years ago

The issue is that when you use the prefix, shoulder_pan_joint becomes, for example, left_shoulder_pan_joint, so the composed robot ends up needing to have a duplicate of the simulator controller configuration file. This is not the end of the world, but it would be great to be able to just render an appropriate simulator config with a CMake line as easily as one can render a prefixed URDF.

fmessmer commented 9 years ago

@mikepurvis As there are currently several issues about configurability (e.g. arm_prefix or the tolerances), I tried to find an example for the em_expand feature, but I could not find any. Could you point me to an example where em_expand is used? Thanks!

gavanderhoorn commented 6 years ago

There is now support for substitution args in the roslaunch rosparam tag.

That would make what @mikepurvis suggests possible without resorting to template expansion.