Joseph Blom

Resume

Code Link

Franka Emika Admittance Control

Project

In systems where a human works closely with a robot, enabling the robot to respond to user input—rather than following fixed trajectories—can be a major advantage. Admittance control is one approach to this. Unlike impedance control, which allows physical movement of the robot, admittance control senses user-applied force and converts it into motion commands. Though the theory is well understood, real-world implementation (here on a Franka Emika Research Arm) involves nearly an endless amount of nuance

Hardware

A Franka Emika robotic arm is used with an Axia80-M8 force/torque sensor mounted at the end-effector. A handle is attached to the sensor to allow user interaction. The sensor data is passed through a low-pass filter to reduce noise.

System Diagram Method

The force/torque sensor provides the primary input. After compensating for gravity and transforming the measured wrench into the robot’s end-effector frame, this signal is passed to a virtual dynamics system.

The system simulates a mass-damper model, using user-defined virtual mass and damping values to compute desired acceleration based on the input force. This accounts for how much the robot should move per Newton of input force.

The resulting 6-DOF end-effector accelerations (X, Y, Z, Roll, Pitch, Yaw) are converted to joint accelerations via a weighted pseudoinverse of the robot’s Jacobian. These are then used in inverse dynamics to compute the required joint torques, which are applied as control commands.

Technologies

Controls, C++, Libfranka, Dynamics

Year

2025