Skip to main content
  1. Technical Projects/

3D Rotational Coordinate Optimization

·
kinematics dynamics Lie optimization matlab

Update: At time of writing, this work was somewhat early stage. While it is explained briefly here, it is detailed in depth in Chapter 3 of my masters thesis.

Background

My masters advisor, Prof. Ross L. Hatton, found that choice of body coordinates impacts system stability, from a mathematical point of view. The optimal choice of coordinates, termed Minimum Perturbation Coordinates, is a particularly stable coordinate choice for robot systems.

The goal of this project (in collaboration with several other OSU robotics students) was to execute dynamic gaits (running, jumping) on Agility Robotics’ Cassie. Optimization of the robot’s rotational coordinates is necessary to effectively reconcile differences in the optimal robot trajectory and the learned motor commands. This was my role for the project.

The Project

Based on methods (and verified against) a previous conference paper, I implemented a coordinate optimizer for the 3D rotation group, SO(3). In essence, it chooses body coordinates (with respect to configuration) such that moving the robot’s actuators minimally rotates the body of the robot.

The SO(3) coordinate optimizer is highly general-purpose; it can support (in theory) robot systems with an arbitrary number of actuators, in any configuration. The objective function is defined over an N-dimensional hypercube mesh, and integrated with quadrature integration. The optimal transform is found as a set of weights on piecewise-linear basis functions, defined over the mesh.

Current Status and Future Work

The optimizer is complete, and produces minimum-perturbation coordinates for supplied systems. As an example, note the change in displacement for a test gait on a reaction-wheel satellite, in minimum perturbation coordinates:

Displacement Change
Resultant displacement, in original and optimal coordinates.

At time of writing, I’ve integrated the SO(3) coordinate optimizer into sysplotter, the Laboratory for Robotics and Applied Mechanics’ application for geometric-mechanical tools. This will allow for the study of complex systems on SO(3), with the addition of preexisting computation and visualization tools.

OSU-LRAM/GeometricSystemPlotter

MATLAB
11
10