Skip to content

Commit 22c9880

Browse files
committed
if time-segment is not aligned, need to fix the data, adjust time and segment-time to exact position
1 parent 7309fa2 commit 22c9880

File tree

1 file changed

+11
-4
lines changed

1 file changed

+11
-4
lines changed

irteus/irtutil.l

+11-4
Original file line numberDiff line numberDiff line change
@@ -294,11 +294,18 @@
294294
(setq position (send self :interpolation))
295295
(incf time dt)
296296
(setq segment-time (- time (if (= segment 0) 0 (nth (1- segment) time-list))))
297-
(when (> time (nth segment time-list))
298-
(setq segment-time (- time (nth segment time-list)))
299-
(incf segment))
297+
(when (eps> time (nth segment time-list) (* 0.1 dt))
298+
;; if time-segment is not aligned, need to fix the data (see https://github.com/jsk-ros-pkg/jsk_pr2eus/issues/457)
299+
(while (and (< segment segment-num) (eps> time (nth segment time-list) (* 0.1 dt)))
300+
(setq segment-time (- time (nth segment time-list)))
301+
(incf segment)))
300302
(when (>= segment segment-num)
301-
(setq position (car (last position-list)))
303+
;; adjust time and segment-time to exact position
304+
(setq segment (1- segment-num))
305+
(setq time (car (last time-list)))
306+
(setq segment-time (- time (if (= segment 0) 0 (nth (1- segment) time-list))))
307+
;; re-calculate :interpolation
308+
(setq position (send self :interpolation))
302309
(send self :reset))
303310
position))
304311
)

0 commit comments

Comments
 (0)