Efficient Contact-Based Trajectory Optimisation
via Approximated Derivatives
(website still under creation)

David Russell1,   Rafael Papallas1,   Aykut Özgün Önol2,   Mehmet Dogar1

1University of Leeds - School of Computing
2Toyota Research Institute

Video Code GUI and Data
We present TrajOptKP (Trajectory Optimisation with Key-points), a novel yet simple method of speeding up trajectory optimisation through approximated derivatives. TrajOptKP is a general method that can be applied to many trajectory optimisation algorithms.

Abstract

Gradient-based trajectory optimisation is a powerful tool for robotic manipulation, enabling complex manipulation tasks to be solved. However, these optimisers take significant time for contact-interaction tasks, particularly in cluttered scenes. A large contributor to this is that calculating dynamics derivatives via numerical methods, such as finite-differencing, is computationally time-consuming when querying expensive physics simulators. In this paper, we propose a general method of speeding up trajectory optimisation by only calculating dynamics gradients at key-points with a computationally expensive method (finite-differencing or automatic-differentiation) and then using cheap linear interpolation in-between for the remaining derivatives. The result is a significant decrease in trajectory optimisation times without affecting the quality of the final solution noticeably.


Video Summary


Contact-implicit manipulation tasks

Here are a few example of contact-based manipulation tasks solved with trajectory optimisation. We show the final converged trajectories generated by our method, TrajOptKP, on the left compared with the baseline on the right. In all instances our method is able to find a similar final solution to the baseline, whilst significantly reducing the optimisation time.


Push moderate clutter (Simulator = MuJoCo, Optimiser = iLQR, Gradients = finite-differencing): Push a green cylinder to a goal location (green silhouette) through clutter (red obstacles).

TrajOptKP, optimisation time: 7.1 s

Baseline, optimisation time: 123.1 s

Box sweep (Simulator = MuJoCo, Optimiser = iLQR, Gradients = finite-differencing): Sweep a heavy box to a goal location (green silhouette).

TrajOptKP, optimisation time: 2.5 s

Baseline, optimisation time: 19.9 s

Sphere push forward (Simulator = Drake, Optimiser = iLQR, Gradients = automatic-differentiation): Slide a sphere forwards to a goal pose. Task provided by Vince Kurtz from this repository.

Ours, optimisation time: 15.7 s

Baseline, optimisation time: 110.2 s

Box slide (Simulator = MuJoCo, Optimiser = SCVX, Gradients = finite-differencing): Slide a box to a goal location (green silhouette). Task provided by Aykut Önol from this repository.

TrajOptKP, optimisation time: 14.0 s

Baseline, optimisation time: 22.0 s


Locomotion

Our key-point methods also work for contact-implicit locomotion trajectory optimisation. We ran two different locomotion tasks using MPC and our key-point methods. Our key-point methods enable one of two ideas, either maintaining the same control frequency and extending the optimisation horizon, or, maintaining the same optimisation horizon and running MPC at a higher control frequency.


Walker locomotion (Simulator = MuJoCo, Optimiser = iLQR, Gradients = finite-differencing): Keep walker model upright at a target height whilst moving forward at some target velocity. MPC control, optimisation horizon = 80 time-steps.

TrajOptKP (MPC-live)

Baseline (MPC-live)


Mini-cheetah locomotion (Simulator = Drake, Optimiser = iLQR, Gradients = automatic-differentiation): Keep mini-cheetah body upright whilst moving forward at some target velocity. Task provided by Vince Kurtz from this repository.

TrajOptKP, optimisation time: 375 s

Baseline, optimisation time: 1101 s

Contact

Feel free to reach out with questions about this work! For questions specific about the codebase/implementation, please direct them towards David Russell.

Ackowledgments

Thank you to Vince Kurtz for providing his implementation of iLQR in Python using Drake's automatic differentiation and support understanding his repository.

BibTeX


    @article{Rusell_TrajOptKP_2024,
      title          = {Efficient Contact-based Trajectory Optimisation via Approximated Derivatives},
      author         = {Russell, David and Papallas, Rafael and \"{O}nol, Aykut \"{O}zg\"{u}n and Dogar, Mehmet},
      journal        = {ToBeConfirmed},
      year           = {2024},
    }