[best practice] Packaging config (including .launch) files

support packages in ROS-Industrial actually serve a rather narrow purpose: they’re an extension to the regular _description packages. Extension, as _description packages typically only contain files for a single robot.

Industrial robot OEMs tend to have (very) well developed product portfolios with accompanying naming schemes. Robots are grouped into series (or models) and variants within those series, where product names contain letter and digit combinations to indicate which series a particular variant belongs to and how it relates to other variants in that series.

Robot support packages try to exploit this organisation by storing as much as possible all variants of a single series in the same package, as opposed to creating individual _description packages per variant.

Apart from avoiding an explosion of the number of packages, variants within a series can typically also share geometry, leading to reduced package sizes.

As an example: the Fanuc LR Mate 200iC has (or had at the time that support package was created) a total of 9 variants. All of those are supported by the fanuc_lrmate200ic_support package with separate .launch, .yaml and .xacro files. If each variant were supported by its own _description package, we’d have 9 packages for this series alone (and that’s without the MoveIt packages and plugins). And as each variant can share a significant number of its meshes with others, for most variants only link_2 and link_4 meshes are distributed, the rest is reused from the base model.

1 Like