- The paper is deals with a balance controller that explicitly handles pushes
- Similar to previous trajectory library work by the authors, the method uses a library of optimal trajectories, and a method called neighboring optimal control to generate near optimal policies
- Two optimizations are used in sequence: first SNOPT, a parametric nonlinear optimization method, and then DDP to further refine the policy
- They use a form of pruning to keep the trajectory library small
- Compare against a couple of other methods: LQR, and an optimal one
- This paper deals only with balancing, not walking, controls a torque at the foot (which is symmetric), and knee
- “DDP is a second order gradient method and it can converge to a better solution if the starting trajectory is good, otherwise the convergence is slow or it may even fail. Parametric nonlinear programming methods have been used to solve trajectory optimization problems. We find they are generally more robust in terms of finding a solution than DDP.”
- “SNOPT is a general-purpose system for constrained optimization using a sparse sequential quadratic programming (SQP) method.
- This is used to generate starting trajectories (not clear what this means to me)

- For constant pushes, initial joint angles and velocities are all zero
- For constant pushes, the robot eventually leans into the pushes and attains zero joint torque
- In order to return to standing after the push terminates, initial conditions with nonzero joint angles are also considered; they make a library by dividing the 2 push variables (location and magnitude) over a grid.
- Seems pushes are always horizontally oriented

- DDP is used to refine the trajectories produced by SNOPT
- There is an adaptive method that defines the boundaries on the cells of trajectory libraries so performance is guaranteed to a certain bound
- At this point its not clear how they make that computation

- They compare the performance to an optimal controller – I’m not sure what that is though (is it just a policy computed live instead of from the library?)
- Unfortunately, the paper really lacks details (its an IROS paper and is 6 pages with references, really a 5 page paper). Hard to really do anything with what is outlined here unless there is an ARXIV or some other extended version.

Advertisements
(function(){var c=function(){var a=document.getElementById("crt-596194241");window.Criteo?(a.parentNode.style.setProperty("display","inline-block","important"),a.style.setProperty("display","block","important"),window.Criteo.DisplayAcceptableAdIfAdblocked({zoneid:388248,containerid:"crt-596194241",collapseContainerIfNotAdblocked:!0,callifnotadblocked:function(){a.style.setProperty("display","none","important");a.style.setProperty("visbility","hidden","important")}})):(a.style.setProperty("display","none","important"),a.style.setProperty("visibility","hidden","important"))};if(window.Criteo)c();else{if(!__ATA.criteo.script){var b=document.createElement("script");b.src="//static.criteo.net/js/ld/publishertag.js";b.onload=function(){for(var a=0;a<__ATA.criteo.cmd.length;a++){var b=__ATA.criteo.cmd[a];"function"===typeof b&&b()}};(document.head||document.getElementsByTagName("head")[0]).appendChild(b);__ATA.criteo.script=b}__ATA.criteo.cmd.push(c)}})();
(function(){var c=function(){var a=document.getElementById("crt-924167231");window.Criteo?(a.parentNode.style.setProperty("display","inline-block","important"),a.style.setProperty("display","block","important"),window.Criteo.DisplayAcceptableAdIfAdblocked({zoneid:837497,containerid:"crt-924167231",collapseContainerIfNotAdblocked:!0,callifnotadblocked:function(){a.style.setProperty("display","none","important");a.style.setProperty("visbility","hidden","important")}})):(a.style.setProperty("display","none","important"),a.style.setProperty("visibility","hidden","important"))};if(window.Criteo)c();else{if(!__ATA.criteo.script){var b=document.createElement("script");b.src="//static.criteo.net/js/ld/publishertag.js";b.onload=function(){for(var a=0;a<__ATA.criteo.cmd.length;a++){var b=__ATA.criteo.cmd[a];"function"===typeof b&&b()}};(document.head||document.getElementsByTagName("head")[0]).appendChild(b);__ATA.criteo.script=b}__ATA.criteo.cmd.push(c)}})();