Gravity, Friction, and Inertia Cancellation of Backdrivable Robotic Arm

ME-294 Poster.pptx.png

If all internal forces can be identified and accounted for, pushing on the end effector of a backdrivable robot can be made to feel like moving a near massless object in zero gravity, despite the fact that the robot itself has a large mass, friction in each joint and kinematic constraints that would otherwise change the direction of motion.

In my research at Tufts I am currently investigating a method through which human pose can be identified by a collaborative robot by looking at the configuration dependent inertia of the human-robot team. If the dynamics of the robot can be cancelled out entirely, then the apparent endpoint inertia can be mapped back to an estimate of the human’s pose.

Gravity, Friction and Inertia Cancellation on the backdrivable cobot I built (I removed joints 5 and 6 for this project)

Gravity, Friction and Inertia Cancellation on the backdrivable cobot I built (I removed joints 5 and 6 for this project)

The first and simplest force acting on the robot is that of gravity. Measurements from each joint encoder can be used with a kinematic model of the robot to estimate the effective lever arm acting on each joint as a result of gravity. Because I designed this robot myself I had access to the complete CAD files which include everything down to encoders and motor materials so the masses and COM location estimates were taken directly from CAD at first and then tuned slightly to account for the weights of cables and fasteners.

The control scheme is run in open loop, meaning that the robot uses its encoders to get its configuration, calculates required torques to maintain stability and then sends current setpoint commands to the BLDC driver boards to achieve a desired torque. This loop runs continuously at ~1000 Hz.

Here you can see my robot passing the potato chip test. Despite the fact that the lower arm of the robot has a mass of ~6kg the gravity cancellation technique allows the link to be lifted and lowered using less force than is required to break a potato chip.

This same technique can be extended to multiple joints in a kinematic chain. This allows the arm to remain stable in any arbitrary configuration while actively canceling out the forces of gravity.

The next force to account for is that of friction acting on each joint. While the arm is constructed with backdrivability in mind there remains some friction inside the gearboxes and motors. If a model of viscous damping is assumed, which is generally a fair assumption within the low velocity regime, then the force of friction should be directly proportional to movement speed.

This assumption is extremely convenient because only a single parameter β must be identified for each joint. These values can be identified experimentally by adding torque to the system as a function of velocity*β . Starting with a low value of β, the control loop is run and disturbed by an outside force. β is slowly increased until any disturbance causes instability, at which the last stable value is saved as the final value for β for each joint.

The video below demonstrates a properly tuned joint

While perfect gravity and friction cancellation make it easy to move around the robot, the inertial forces of the links acting on one another cause impulses to the end effector to result in nonlinear movement. If the goal is to turn the end effector of the robot into a ball in zero gravity, then the inertial effects of each link must be cancelled out. This is where things get difficult.

inertia cancel fig.PNG

The dynamics of even a “simplified” 3DOF robot moving in 3D space are sufficiently complicated that obtaining a closed form analytical solution to the equations of motion by hand is nearly impossible. In order to obtain a closed form EOM I modeled the system in SymPy which is an open source Python symbolic manipulation toolkit. I used a formulation of Lagrangian Dynamics known as Kane’s Method to solve the equations, including viscous damping in the forcing function and parameters for input forces in the x y and z direction acting on the end effector of the robot. Pictured on the right is the obtained mass matrix.

The advantage of obtaining a closed form solution over numerical integration is that the the EOM can be used to generate an exact state estimate at any arbitrary point in time given any set of initial conditions without needing to solve recursively. This is especially important in a situation where high bandwidth real time control is a requirement.

Comparing the effects of different values of friction for the elbow joint.

Comparing the effects of different values of friction for the elbow joint.

Displaying motion in an OpenGL visualization I made to help debug.

Displaying motion in an OpenGL visualization I made to help debug.

Once EOMs are obtained, the last step is to determine the virtual inertia of the end effector as a function of joint states. Because the EOMs include forces in the world frame x, y and z directions acting on the end effector, calculating displacement as a function of a differential force in each direction can be used to find this inertia. Finally, the cartesian forces required to continue moving the end effector in a straight line after an initial disturbance are determined from these inertia values before being converted to joint torques using the manipulator jacobian. Unfortunately, kinematic limits near the vertical singularity cause certain motion within that region to result in zero displacement and therefore infinite endpoint inertia. These specific situations are avoided by turning off inertia cancellation once the end effector leaves a bounded region of the workspace.

Previous
Previous

Robotic Arm Control with Deep Reinforcement Learning

Next
Next

Design and Fabrication of 6DOF Cobot