ROS packages for Dynamic Time Warping

Dynamic Time Warping (DTW) is a method to align two sequences under certain constraints. For instance, two trajectories that are very similar but one of them performed in a longer time. The alignment should be is such way that minimizes the distance between these two sequences. Here I have done DTW between two-time series with python. I found a good c++ library for Fast Dynamic Time Warping and I developed my wrapper to make a ROS package for that. Here you can download my code at GitHub.

The number of possible warping paths through the grid is exponentially explosive. The image is taken from [1].
A good wrapping function should have following characteristics:

  • monotonicity: The alignment path does not go back in “time” index.
    The image is taken from [1]
  • continuity: The alignment path does not jump in “time” index.
    The image is taken from [1]
  • boundary conditions: The alignment path starts at the bottom left and ends at the top right.
    The image is taken from [1].
  • warping window: A good alignment path is unlikely to wander too far from the diagonal.
    The image is taken from [1].
  • slope constraint: The alignment path should not be too steep or too shallow.
    The image is taken from [1].
  • References: [1]

 

References: [1]

 

0 0 votes
Article Rating
Subscribe
Notify of
guest

This site uses Akismet to reduce spam. Learn how your comment data is processed.

0 Comments
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x