Inverse Kinematics
Weight Distrobution
Engineering Design Process
Being Resourceful
Creative Problem Solving
Autodesk Inventor 2025
Arduino IDE
Bambu Studio
I like making guitar/music-related videos on my YouTube channel, Petrucciboi. For the first 4 years of making videos, I’d only used 1 or 2 stationary cameras. This works but isn’t very exciting to watch. I wanted to create a way to move my camera around in smooth, continuous motions that would help engage and inspire my audience for an affordable cost.
First, I looked at simple 1-2 degrees of freedom camera mobilizers. While these designs gave the video a smoother appearance, the motion was limited and therefore made the videos seem capped off from their full potential. Next, I looked into full 5-6 degrees of freedom robot arms. This allowed for a much greater range of motion, breaking loose of virtually any planes or axes. I researched robotic arms and chose the following joint types for my design:
Lateral (x-axis) Slide
Shoulder
Elbow
Vertical Wrist (pitch)
Horizontal Wrist (yaw)
Rotational Wrist (roll)
These axes of rotation and linear movement allowed me to move to all the types of camera positions I wanted to reach for my videos.
Robotic arms commonly use some kind of spring or similar mechanism in joints to help counteract the torque downward from gravity. This works, however when the arm moves, the center of gravity changes due to the weight at the end of the arm moving closer or further from the base pivot point. Other arms use counterweights to mitigate this problem with the only downside being increased weight. Using affordable servo motors comes with the con of having a less smooth rotation, so to prevent unwanted shaking from a change of COG and by not having a strict constraint on weight, I decided to go with the counterweight design.
I used Autodesk Inventor to design all the parts and assembly for this camera arm. I started at the camera mount and worked backward to the last arm joint. I made most of the parts modular to help make future design changes easier. One example is on the mount that connects the camera to the first joint. When first designing the part, I didn’t include much upper support for the camera, as it was already pretty well secured in the bottom half. However, through testing with the full assembly, I saw that the mount would tilt the camera slightly as it was clamped, lowering stability and changing the originally desired view. I fixed this problem with an additional cushion/brace. Below is the before and after with the extra support.
This additional “cushion” for the camera was easy to add because I had left the 4 mounting holes from the previous 2 mated parts exposed. This allowed for a simple addition to help solve an important problem.
The first problem I encountered was trying to get an effective camera clamp. I went through several designs, but each one would either be too unstable or too tight to easily remove when needed. I needed a camera mount that could switch between being loose for removing the camera and firm for when the arm was in use. This led me to think about over-centering clamp mechanisms. These function similar to the way a guitar case latch or vice grips work. I modified and simplified the mechanism into a 2 piece system with one pivot point (see below).
This system works by rotating an L bracket at the intersection to press and release pressure to the camera. Through all testing so far, this design has worked well keeping the camera secure when in use and easy to remove when done using.
The robot arm still needs X-axis movement. This will most likely utilize wheels on the base to drive the arm left and right. Another big step is getting the programming done in a user-friendly and mappable way to an audio file.
- 12/13/24
Working on and off on this project for the past year has taught me a lot about
Mechanical Engineering: I've discovered the importance and power of weight distribution and joint placement.
Electrical Engineering: I now feel more comfortable wiring up servo motors and am more familiar with driver boards.
Programming: I've learned more about inverse kinematics and how an Arduino interacts with servos through software.
With this knowledge I've gained, I've decided to switch directions on this project. I'm stopping work on this iteration and will work on version 2 throughout 2025. This version will have some more substantial design changes that I'm in the brainstorming process of right now. I'm excited to share new updates soon!
(Last updated 2/23/25)