So, apart from the common requirements (ID, Status, Power, Specs and Simulation, detailed in HRIM component model section), all enconders will contain a topic referring to publishing movements values.
There are two types of encoders as far as coding is concerned: incremental coding and absolute coding. The difference between incremental and absolute encoders is analogous to the difference between a chronometer and a clock:
A chronometer measures the time of increase that elapses between its start and its end, very similar to what an increment encoder supplies a known number of impulses relative to a total of movements. If you knew the exact time when you started the clock, you can tell what time it will be later by adding the elapsed time of the timer. To control the position, adding the increment pulses to a known initial position will measure the current position.
|HRIM component model: Encoder|
|/hrim_sensor_encoder_<instance_id>/id||hrim_generic_msgs/msg/ID.msg||topic (Sub)||M||Component identification.|
|/hrim_sensor_encoder_<instance_id>/status||hrim_generic_msgs/msg/Status.msg||topic (Sub)||M||How the module is working.|
|/hrim_sensor_encoder_<instance_id>/power||hrim_generic_msgs/msg/Power.msg||topic (Sub)||M||Describes the power supply type and give the information about the module power consumption.|
|/hrim_sensor_encoder_<instance_id>/specs_comm||hrim_generic_msgs/msg/SpecsCommunication.msg||topic (Sub)||M||Published the capabilities in term of communicaction that the component offers.|
|/hrim_sensor_encoder_<instance_id>/state_comm||hrim_generic_msgs/msg/StateCommunication.msg||topic (Sub)||M||Published the resources that the component is using at the moment.|
|/hrim_sensor_encoder_<instance_id>/module_3d||hrim_generic_msgs/msg/Simulation3D.msg||topic (Sub)||M||Ask for the 3D model of the HRIM component.|
|/hrim_sensor_encoder_<instance_id>/module_urdf||hrim_generic_msgs/msg/SimulationURDF.msg||topic (Sub)||M||Ask for the information of,3D model of the HRIM component.|
|/hrim_sensor_encoder_<instance_id>/specs||hrim_sensor_encoder_msgs/msg/SpecsEncoder.msg||topic (Sub)||M||Device features.|
|/hrim_sensor_encoder_<instance_id>/encoder||hrim_sensor_encoder_msgs/msg/Encoder.msg||topic (Sub)||M||Check the position, velocity or/and acceleration of the electric motor.|
|/hrim_sensor_encoder_<instance_id>/reconfiguration||hrim_sensor_imu_msgs/msg/Reconfiguration.msg||topic (Sub)||O||Dynamic reconfiguration of H-ROS systems. The integration of an IMU sensor is needed.|