← SharkNinja

Camera-Based Joint Angle Measurement

Overview

A robot arm's encoders report where its motors think the joints are, but that isn't always where the joints actually end up. I built a desktop tool that uses a camera to measure the arm's real joint angles, drives the arm to a set of commanded angles, and writes a report comparing the commanded, encoder, and camera-measured angles side by side. It measures joint angles to an accuracy of about 0.1°.

Problem

Goals

How It Works

A printed fiducial target is fixed to the base and to each link of the arm. After a one-time camera calibration, the tool finds each target in the image, works out its position and orientation, and computes the angle between neighboring links from how the targets are rotated relative to each other.

The same window also drives the arm. It steps the arm through a list of commanded angles, waits for each joint to settle, takes a measurement, and saves everything to a report at the end of the run.

The app's Calibration tab, with the camera controls across the top and the calibration board, shots, solve and calibration file panels below
The app's Calibration tab. The three tabs take you from camera calibration to setup to a full test run

Key Features

Results

The tool measures the arm's joint angles to an accuracy of about 0.1°, giving the team a quick, repeatable way to see how closely the arm follows its commands.