Longhorn Cam Synthesis

Cam Synthesis

To synthesize the cam, we wanted to be able to input any image file that contains a closed-loop, continuous shape and automatically generate a cam profiles for the image. To do so, we built a Matlab script that processes the image file, traces a continuous path around the outer boundary of shape, and then generates the required cam-profile. The script, camProfileGeneration.m, is linked here and can also be found in our Github repository

As an example, here is a sample showing the cam generation around the Longhorn shape:

First, the path around the shape is traced (shown in green around the image on the right). The vectors for the x and y positions along the path are stored.


The x and y vectors from the previous step, relative to the center of the image, are normalized to run between (-1,1) and scaled by the aspect ratio of the image. They are treated as local changes from the nominal radius of the cam, 2.15 inches, and plotted against theta.

The resolution of the cam is driven by the number of points in the vector. Essentially,

The change in cam radius is plotted as a function of theta to validate that the cam design will be accurate. Based on the plot, it seems reasonable that the cam profile is correct.

The change from the nominal cam radius is then scaled to run through the full spring travel of each prismatic joint, 1.5 inches, and then added to the nominal cam radius.

Lastly, the cam profile is plotted. The center of rotation is at the origin of the plot. The XYZ profile data is stored in a tab-delimited text file.


The tab-delimited text file of cam profile data is imported into Solidworks using Tools > Import Curve from XYZ Points.

The sketches are then exported as DXF files for laser cutting at the Longhorn Maker Studio.

Exporting to DXF file causes some quality losses as the DXF format linearizes some of the curves. With more time, further investigation would have been performed to determine how to preserve the profile quality. 


To the right is an image of our three pairs of cams (X cams on the left, Y cams on the right) alongside the two followers. From top to bottom, the first pair draws a longhorn, the second pair draws a circle, and the third pair draws a diamond.