{"shas":[["2d3fca1a7717beb829523d22d0d3694b022fb067","96a8f0e5b2f9154c5f2f7a14ddd7c4c2debef9ca@gmail.com","Added debugging of kinematic vs dynamic singularities into the\nLController. Looks like that is one of the fundamental issues: dynamic\nsingularities are not necessarily sufficient for determinig infeasible\ntask directions. Need more research on this question.\n\nAlso tidied up the opspace controllers a bit: put (even more)\nexperimental ones into other_controllers.{h,c}pp for now.","Roland Philippsen"],["01d0cf450d9165e4eb6e1cebec6701263d66a708","96a8f0e5b2f9154c5f2f7a14ddd7c4c2debef9ca@gmail.com","Setup for testing the difference between kinematic and dynamic\nsingularities. Tried some ideas:\n- algebraic regularization: invert \"j * ainv * j.trans() + epsilon *\n  ident\" instead of the usual... did not work, but maybe we just have\n  to find a better way to determine epsilon.\n- thought about disabling task directions based on the singular values\n  of \"j * j.trans\" or \"jstar * jstar.trans\"... promising, but need to\n  work out the math on paper first.\n- next step: use kinematic singularity detection to disable tasks,\n  rely on safe fallback behavior when that happens. will need to\n  implement a minimal behavior infrastructure for that though, in\n  order to properly switch and re-init a task set.","Roland Philippsen"]],"repo":"poftwaresatent/utaustin-wbc","actor":"poftwaresatent","ref":"refs/heads/master","size":2,"head":"01d0cf450d9165e4eb6e1cebec6701263d66a708","actor_gravatar":"616b4346fdabc9744a7f23e3c4fc8237","push_id":25320341}