After Anboto, the latest and second release of the Hardware Robot Information Model, Beriain, is no longer a platform specific information model, but a platform independent representation of that information model. It also brings a command line tool to generate/clean/list/show models. View on github.
Robot technologies have advanced exponentially in the last decade but integrators, robot developers and users keep facing the same big hurdle: incompatibility among different robot components.
Robot manufacturers are using different interfaces, and this hampers communication among robot components. Typically, robot hardware needs to send or receive orders to operate. A servomotor, for example, waits for movement orders. In a similar manner, a camera sends pictures in a specific format either proactively or from external requests. In robotics, the way this interaction is made, the content of it, does still lack a standard.Manufacturers are in the need of a shared set of principles to follow when designing the interfaces of their hardware devices. HRIM aims to be this common set of rules each device has to meet in order to achieve interoperability among them.
After Anboto, the latest and second release of HRIM is Beriain. The main change in Beriain is that HRIM is no longer a platform specific information model, but a platform independent representation of that information model. Meaning the model can now be implemented in many different platforms.
In the previous release, Anboto, HRIM made use of ROS's base communication packages (namely std_msgs and geometry_msgs), depending on packages not necessarily contemplated on other platforms. Now, in Beriain, this dependency has been removed by translating the necessary data structures to our XML representation, therefore depending on nothing but the basic structures provided by ROS 2.0. This paves the way for implementations of HRIM on other future platforms.
Beriain also comes with a command line tool to interact with HRIM's XML models; to generate the (for now only) ROS 2.0 implementation of different components, visualize the contents of the models, list existing models, etc.