Ten years after its rst release, the Robot Operating System (ROS) is arguably the most popular software framework used to pro- gram robots. It achieved such status despite its shortcomings compared to alternatives similarly centered on manual programming and, perhaps surprisingly, to model-driven engineering (MDE) approaches. Based on our experience, we identied possible ways to leverage the accessibility of ROS and its large software ecosystem, while providing quality assurance measures through selected MDE techniques. After describing our vision on how to combine MDE and manually written code, we present the rst technical contribution in this pursuit: a family of three metamodels to respectively model ROS nodes, communication interfaces, and sys- tems. Such metamodels can be used, through the accompanying Eclipse- based tooling made publicly available, to model ROS systems of arbitrary complexity and generate with correctness guarantees the software arti- facts for their composition and deployment. Furthermore, they account for specications on these aspects by the Object Management Group (OMG), in order to be amenable to hybrid systems coupling ROS and other frameworks. We also report on our experience with a large and complex corpus of ROS software including the shortcomings of standard ROS tools and of previous eorts on ROS modeling.