Share this

How much do you know about motor odometers?

2026-04-06 04:34:08 · · #1

For robots to achieve intelligent movement, they must rely on autonomous positioning and navigation technology, which includes localization, mapping, and path planning. In the autonomous positioning and navigation solutions provided by SLAMTEC, positioning is primarily achieved through data from LiDAR and odometry. While LiDAR can correct odometry errors within a certain range, in certain special environments (such as when the effective points scanned by LiDAR are limited), the accuracy of the odometry can still affect the positioning results. Therefore, for robots requiring autonomous positioning and navigation, the accuracy of the motor odometry plays a crucial role in the robot's positioning precision.

The choice of odometer should not be overlooked.

To ensure the effectiveness of the odometer, choosing the right odometer is crucial. Currently, commonly used robot chassis motor encoders are classified according to their implementation principle, including photoelectric encoders and Hall encoders; and according to their encoding method, including incremental and absolute types.

For SLAMware-based robot chassis, the odometry resolution needs to be below 1mm, and the total error cannot exceed 5%. If it exceeds this value, the robot will not be able to perform positioning and navigation functions properly. Therefore, regardless of the encoder chosen, it must meet the required accuracy. The following formula can be used as a reference:

(2π / number of encoder pulses per revolution) × wheel radius ≤ 0.001 meters. Note: Wheel radius is in meters.

System motor response process

(Taking a two-wheel differential motor as an example)

Every delta interval, SLAMWARECore sends the speeds of the left and right wheels to the chassis, with forward speeds being positive and backward speeds being negative, i.e., SET_BASE_MOTOR (0x40). The chassis then replies with the current accumulated values ​​of the left and right wheel odometers, i.e., GET_BASE_MOTOR_DATA (0x31).

Please note that the odometer reading increases regardless of whether the wheel is moving forward or backward, because SLAMWARECore distinguishes between forward and backward movement when issuing speed.

SLAMWARECore sends a SET_BASE_MOTOR request message, with the speed unit being mm/s.

So, how do we determine the accuracy of odometry positioning data? Here's where RoboStudio, a scalable robot management and development application software, comes in.

First, let's do the preparatory work:

Before debugging, find a suitable testing area with clear boundaries, such as a rectangular empty room. Install RoboStudio and connect it to the robot (such as SDPMini). RoboStudio download links and online documentation can be found on the SLAMTEC website.

Methods for debugging odometer accuracy testing using RoboStudio:

1. Position the robot several meters away from a straight wall, facing the wall, as shown in the figure below.

2. Clear the previously created map by clicking "Clear Map." The robot's current area will then be rebuilt. After the current area is rebuilt, you can click "Pause Map Building" to stop map updates. Finally, you can enable "Pause Positioning." Enabling this will disable laser positioning and use only odometry data for positioning.

3. Control the robot to move forward toward the wall and observe whether the laser point coincides with the wall. If it does, it proves that the odometer is relatively accurate.

If the laser dot extends beyond the wall, it indicates that the odometer reading reported by the chassis is greater than the actual distance traveled, and the odometer reading is too high.

If the laser point is inside the wall, it proves that the odometer data reported by the chassis is less than the actual distance traveled, and the odometer reading is too low.

If the laser point coincides with the wall, you can continue to control the robot to move backward and turn left and right to see if the laser point matches the surrounding environment.

Accordingly, taking the SDPmini as an example, the odometer test results are as follows:

1. Odometer data is normal (ODOMETER_EST_PULSE_PER_METER in SDPmini chassis firmware is the original value)

2. The odometer data is too high (ODOMETER_EST_PULSE_PER_METER in the SDPmini chassis firmware is less than the original value), and the video shows the odometer reading being significantly higher.

3. The odometer data is too low (the ODOMETER_EST_PULSE_PER_METER in the SDPmini chassis firmware is greater than the original value), and the video shows the odometer reading being significantly lower than expected.

Disclaimer: This article is a reprint. If it involves copyright issues, please contact us promptly for deletion (QQ: 2737591964 ) . We apologize for any inconvenience.

Read next

CATDOLL Dolly Hybrid Silicone Head

The hybrid silicone head is crafted using a soft silicone base combined with a reinforced scalp section, allowing durab...

Articles 2026-02-22
CATDOLL 136CM Seina

CATDOLL 136CM Seina

Articles
2026-02-22
CATDOLL 166CM Hanako TPE

CATDOLL 166CM Hanako TPE

Articles
2026-02-22
CATDOLL 123CM Olivia TPE

CATDOLL 123CM Olivia TPE

Articles
2026-02-22