I'm tracking the position of a vehicle along a certain trajectory using the Kalman filter and we have odometry data provided to us which gives the x-position of the vehicle, y-position of the vehicle and orientation of the vehicle. This is calculated based on the wheelticks and is relative to the inertial origin of coordinates. We also have data which tells us about the number of received wheel impulses from each of the wheels.

  1. What exactly are the differences between wheel ticks and wheel impulses? Does wheel impulse mean the wheel speed (rpm)?
  2. If steering angle data (Averaged steering wheel angle) is additionally available, can this also be used to calculate velocity and position?
  • 1
    $\begingroup$ when you were a child, did you ever attach a piece of cardboard to the front fork of your bicycle so that the wheel spokes would make a clicking sound when the front wheel turned? ... that is very similar to the tick sensor $\endgroup$
    – jsotola
    Sep 12, 2019 at 2:45
  • $\begingroup$ Nicely explained. So the tick sensor basically counts the notches on a toothed ring on the wheel as it rotates and gives this as some pulsed data to the ECU (Higher the speed, larger the number of notches counted), where it calculates velocity from this data. Is this understanding correct? $\endgroup$
    – surajr
    Sep 12, 2019 at 9:38
  • $\begingroup$ @jsotola - Nice answer! Could you please copy your comment into an answer, so OP can accept it? $\endgroup$
    – Chuck
    Sep 12, 2019 at 12:44
  • $\begingroup$ @surajr - I haven't heard of "wheel impulses" as a term before. Could you please link the datasheet for the sensor you have that is providing you with this information? $\endgroup$
    – Chuck
    Sep 12, 2019 at 12:46
  • $\begingroup$ @Chuck - Unfortunately, we received only a data file (HDF5 format) and a signal list description at the uni from an external supplier. And some of this data contained values termed Wheel Impulses and Wheel Pulses for each of the wheels in it. If it helps, I can attach the link to the data file and the Python Code for reading it $\endgroup$
    – surajr
    Sep 12, 2019 at 13:18

1 Answer 1


Regarding question 2, you can use steering angle for velocity (directional speed) estimation, but Ackermann steering results in a heading that is a function of starting orientation, steering angle, speed, and time.

Ackermann-steered vehicles are always turning along the tangent of a circle, where the circle's radius is set by the steering angle. As the vehicle moves, the steering angle sets the radius of curvature and then the vehicle speed causes you to traverse some arc length, which results in your new heading.

It's not enough to just know what the steering angle is currently, you've got to integrate the entire path. If the radius of curvature is such that the circle being traversed has a circumference of 1 meter, and you drive 1 meter, then the current heading is equal to the starting heading. If the circumference is 2 meters and you drive 1 meter then your current heading is the opposite of your starting heading, etc.

  • $\begingroup$ In essence, we must know the speed of the vehicle (Magnitude component) and we calculate the direction component of velocity from the above Ackermann steering method. $\endgroup$
    – surajr
    Sep 12, 2019 at 15:16
  • $\begingroup$ What does it exactly mean to integrate the entire path? Does it mean to consider the entire circumference of the circle traced from the arc? $\endgroup$
    – surajr
    Sep 12, 2019 at 15:17
  • $\begingroup$ @surajr - I mean you've got to convert steering angle to a radius of curvature (which is based on steering angle and the vehicle's wheel base), and then calculate your change in heading based on the arc length that is traversed ($s = r\theta$, so you're looking at $\Delta \theta = \Delta s/r$). You have to do this incrementally at each time step and sum the increments as opposed to, e.g., taking the average steering angle and applying the average vehicle speed. $\endgroup$
    – Chuck
    Sep 12, 2019 at 15:36
  • $\begingroup$ We use the arc length definition to relate steering angle 's', the radius of the wheel base 'r' to calculate the arc length '๐œƒ'. Should it not be ฮ”๐œƒ=ฮ”๐‘ /๐‘Ÿ? We do this incrementally meaning, we check the value of ฮ”๐œƒ for each time step of the sensor that we receive a steering angle value and sum these values? $\endgroup$
    – surajr
    Sep 12, 2019 at 16:04
  • $\begingroup$ @surajr - Yes, sorry I corrected it. Yeah, at each step you'd count your wheel encoder ticks and figure how far you've traveled ($\Delta s$) based on ticks per revolution and wheel radius, figure the radius of curvature $r$, and get the incremental heading change and add that to your running total. $\endgroup$
    – Chuck
    Sep 12, 2019 at 16:14

Your Answer

By clicking โ€œPost Your Answerโ€, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.