HRIM defines a encoder as
A measuring device that serves to indicate the angular position of an axis, speed and acceleration of the rotor of a motor.

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.

  • When an absolute encoder is used, the current position will be constantly transmitted, just as a normal clock will tell you the exact time.
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.
origin float rad M Zero/Started point.