As an engineer and amateur videographer, I often struggled to capture dynamic shots without a second camera operator, finding that stationary tripods produced static footage that failed to capture the depth of my work. To solve this, I designed the Robotic Camera Motion System (RCMS), a 4-axis app-controlled rig that acts as a fully autonomous robotic cameraman capable of executing every shot type I require with precision. This device has completely solved my production challenges, fulfilling the design brief so effectively that it has now permanently replaced my standard tripod and will become an integral part of my project documenting moving forward.
Experience smooth camera movement with a fully custom app designed from scratch to put advanced features like target tracking and multi-point keyframing right at your fingertips. Driven by five high-torque stepper motors, the RCMS delivers incredibly nimble yet ultra-smooth footage that rivals professional equipment, all while remaining whisper-quiet and costing a fraction of the price. The system is engineered for all-day reliability, running off standard quick-swap Milwaukee M18 batteries for multi-hour operation, and is managed by an energy-efficient triple-fan active cooling system that ensures the electronics stay cool and efficient during even the longest extended shoots.
Built to adapt to any environment, the system features an easy-to-use retractable belt reel that allows you to set up on any track length from 1 foot to 20 feet in mere seconds. It is equipped with a universal standard tripod mount capable of carrying everything from a smartphone or GoPro up to a full-size DSLR, making it the perfect tool for any creator. Whether executing high-speed action tracking or slow-motion time-lapses, the system adapts to your needs with built-in safety features like limit switches and an instant software E-Stop, ensuring your gear is always protected while capturing the perfect shot.
This project was a four-month iterative process that evolved through several distinct prototypes to solve issues with noise and precision. My initial concept used servos and 3D-printed V-wheels running on a friction-drive system, but it suffered from severe limitations in maneuverability and speed. The servos lacked the smooth slow-speed control required for cinematography, but they also lacked the high-speed capability needed for dynamic zoomed-in shots. Furthermore, the design prioritized compactness to a fault, making it lack maneuverability for more complex shots.
I transitioned to stepper motors for their locking torque and precise open-loop control. This second prototype was a major leap forward and functioned much closer to the final version, featuring all the same axis movements (Pan, Tilt, and Roll) as the finished product. However, it still relied on the friction drive wheels which have inherent speed inconsistencies because the wheel contacts the rail at multiple diameters simultaneously. Relying on friction also meant that any slippage resulted in the robot losing its position entirely, so I decided that a complete redesign of the drive system was necessary.
One of the core design decisions was to use readily available 1-inch square aluminum tubing so the track could be cheaply extended to any length. However, to ensure the trolley remained stable and secure, I rotated the square tubing 45 degrees into a diamond orientation. This allows the V-wheels to ride securely on the corners of the tubing rather than the flat faces. This geometry naturally centers the trolley and provides superior constraints against rotation, ensuring the camera remains perfectly steady even when the rail is angled.
To solve the slippage issues of friction drives, I implemented a belt drive system, but with a unique inversion of standard mechanics. Unlike 3D printers or traditional sliders where the motor is stationary and pulls a moving belt, the RCMS uses a stationary belt while the motor travels inside the trolley. The trolley effectively crawls along the fixed belt which allows all the expensive electronics and motors to be contained within the single moving unit, leaving the track as just a passive piece of metal.
Since the belt is stationary, I needed a way to manage the belt length for different track sizes. I designed a custom retractable belt reel integrated directly into the trolley. The belt is anchored at the ends of the track and the trolley contains a spool mechanism with a locking lever. You simply unspool the belt to the length of your rail, clip it in, and flip the lever to lock it. This lever engages an idler pulley that forces the belt into recessed teeth and locks it securely at the correct tension.
During testing, I also discovered that using two stepper motors to drive the trolley caused them to fight each other due to minor timing variances. This fighting actually reduced torque and caused stuttering which ruined the footage. The final design utilizes a single larger stepper motor which runs smoother and provides ample power to move the 9.5lb assembly.
For the main pan and tilt axes, I moved away from direct gear drives because standard 3D printed gears often have play between the teeth which causes jitter in the video. Instead, I implemented a belt drive system for these axes which ensures constant contact between the motor and the pulley, eliminating backlash entirely for ultra-smooth movement. However, for the roll axis, I continued to utilize gears instead of a belt drive due to the lower torque requirements. Additionally, the roll axis utilizes a higher gear ratio which, through testing, appeared to eliminate the backlash issues found in the other rotation axes.
To facilitate the connection between the drive components and the structural arms, I designed a specific "rotated square" interface driven by manufacturing constraints. Since 3D printers produce the most accurate and strong parts when features are printed normal to the build plate, I split the gear and the arm into two separate parts rather than printing them as one. The gear features a square axle protruding from its face which fits perfectly into a matching square cavity in the arm, allowing both components to be printed in their optimal flat orientations. Once assembled, screws lock the two parts together to transfer the torque, resulting in a zero-backlash joint that is easy to assemble, incredibly rigid, and geometrically precise.
To ensure professional footage, the rotation axes needed to be rigid enough to hold a DSLR-sized camera but smooth enough to prevent jitter. I came up with a DIY solution using two ground-polished washers with mirror finishes. These washers are sandwiched with high-performance lithium grease inside a hollow cavity in the pulley which creates a hydraulic-like film that eliminates axial play and wobble while allowing incredibly smooth rotation. This effectively mimics the performance of an expensive precision thrust bearing at a fraction of the cost.
The switch to the stepper motor system necessitated a complicated electrical situation, as I wanted to ensure that the electrical system as a whole could be self-contained within the device. Previously, I had been running components off a breadboard for staging, but this setup became a liability. The "spider web" of loose wires made the system fragile, and I actually shorted out a number of ESP32 units and drivers during testing due to accidental cross-connections. These factors pushed me to move quickly away from prototyping boards to a permanent, soldered solution that could be trusted for reliable field operation.
To consolidate this complex wiring, I designed a custom Printed Circuit Board. The system runs on Milwaukee M18 batteries, so I integrated a buck converter directly onto the board to step the 20V down to 5V for the ESP32 logic while feeding raw power to the motors. I specifically designed the board with thicker traces for these high-power sections to handle the amperage without voltage droops. Crucially, I also spaced the stepper motor plug-in points and drivers as far apart as possible on the board. In early tests, the high-frequency signals from closely bundled wires caused cross-EMF interference, leading to motor stuttering that was visible in the video footage. This physical separation ensures clean signal transmission and perfectly smooth motor operation.
To house this PCB, I designed a custom removable electrical box that attaches to the bottom of the trolley. Unlike my previous prototype which had the electronics built into the chassis, this modular box allows me to easily remove the entire brain of the robot for maintenance or firmware updates. This enclosure is also integral to the thermal management system. Stepper drivers generate significant heat, so the box features a flow-through design where a large intake fan blows cool air directly across the driver heatsinks, while exhaust fans immediately vent the hot air out. This directed airflow prevents the thermal shutdowns I experienced during earlier long-duration tests.
While the mechanical engineering was significant, the software component of this project was an equally massive undertaking. I designed and built the control application entirely from scratch using MIT App Inventor, handling everything from the backend ladder logic to the front-end User Experience (UX). This wasn't a template job; every single interaction had to be created, and I leveraged generative AI tools to create over 80 custom, consistent icons for the interface. The result is an app that feels intuitive and professional, hiding the complex mathematics of the robot behind a cohesive User Interface (UI).
The app is not just a remote control; it is part of a bi-directional communication loop with the robot. When the "Measure Track" command is sent, the robot physically drives to the limit switches, calculates the distance in steps, and then transmits that data back to the app to populate the interface. The app also supports dynamic variable adjustments, allowing me to tweak the rotation speed or drive speed mid-movement. This fluid communication ensures that the robot and the phone are always in sync, providing a level of responsiveness that feels like a high-end consumer product rather than a prototype.
The core functionality of the app revolves around its intelligent tracking modes. Using the "Target Orbit" feature, I can input the distance of an object, and the app uses trigonometry to automatically adjust the pan and tilt angles as the trolley moves, keeping the subject perfectly centered. For more creative freedom, I built a Keyframe system that allows me to manually jog the robot to up to four distinct positions and save them. The software then generates a smooth, interpolated path between these points, allowing for complex, multi-axis cinematic moves that replicate the work of a professional camera crew.
The RCMS is now a fully functional tool that I use for my videography. It successfully meets all my original design criteria to be extendable, autonomous, and capable of producing smooth cinematic footage. That being said, I have plans for future upgrades. I am currently exploring phone-based IMU tracking, where the camera mimics the movement of my phone, as well as a potential mini version using bus servo motors for lighter-weight travel applications.