Spring 2026
This project covers the design and implementation of the final robot arm prototype as part of my NU Robotics Club project.
This arm is based around a standardized custom actuator which was designed by a member of the project and myself in Fall 2025. The goal was to elevate the club project away from stepper motors and make a more dynamic arm that could be tele-operated more fluidly.
At the time of the design of this prototype, I had led this small project for a couple years, but progress had been slow in previous semesters. I had tried to take on less individual work to make room for new members to contribute and ensure I spent time helping them do so. However, with my graduation approaching (and the end of the project with it), I decided to take a larger roll in this design to hopefully finish it on time.
My individual contributions for this arm include designing the arm portions above the shoulder, as well as the hand. I also collaborated on the design of the actuator, did most of the actuator testing, and carried out the implementation of the arm (printing, build, software, wiring, etc.).
In the end, this project did not get wrapped up quite to the degree that I would have liked. The mobility of the arm was demonstrated in a series of videos, and the actuators seemed to deliver reasonable performance, but we did not have time for the full tele-operated demos I had hoped for.
The actuators are built around common 8308 brushless motors which were left over from another club project. The goal was to develop a low cost, mostly printed actuator. The drivers were Moteus r4.11's which were also left over from a previous project, so the bulk of the new cost of the actuators would be bearings and other hardware.
We printed most of the components, including the stator mount, for which we used a high temperature glass filled PLA which was then annealed for higher temperature resistance. In theory this should have raised it's heat deflection temperature to around 130 °C, which was high enough to handle the heat of the stator during operation.
The output plate was secured by preloading it against a pair of large 100mm OD deep groove ball bearings. A set of shoulder bolts secured the top and bottom output plates together by sandwiching the pair of bearings between them. This pre-load was designed to remove most of the play from the bearings. The shoulder bolts also serve as the posts for the planet gears, which needed to be placed slightly asymmetrically to ensure proper meshing as a result of the specific combination of gear tooth numbers chosen.
The planetary reducer has a 10:1 reduction, but as a result requires a very small sun gear and input shaft. To ensure that this part can cope with the required stress as determined by simulation, we had them machined out of a steel alloy.
The sun gear was also made of steel, but was purchased separately. This drastically simplified the manufacturing of the input shaft and made it affordable, but meant that a high strength metal adhesive was required to attach the gear after the fact.
In order to achieve a full 6 DoF for the arm, and given the fact that the wrist was limited to a single DoF for tendon routing reasons, a spherical shoulder design was adopted. To save weight further up the arm, this was implemented with a differential using a pair of the previously developed actuators, combined with a single base rotation DoF.
To further reduce inertia, the elbow actuator was placed lower down and torque was transmitted through a pair of 90 degree bevel gears to the elbow output. This also had the benefit of making the packaging of this joint neater with the round actuator placed within the round upper arm.
A small off-the-shelf actuator was used for the forearm joint, although the factory driver was removed and replaced with the more user-friendly r4.11 driver. The forearm axis is offset from the elbow in order to extend the elbow range of motion and allow the hand to reach targets closer to the base of the robot.
The implementation of the arm was relatively straightforward given that the motor drivers call all be daisy chained with power and CAN for data. Each joint can easily be addressed from Python using a CAN to serial converter to communicate with the bus. For this demo, the robot was controlled with a 3D CAD mouse which was driving the target for one of the numerical IK solvers included in the Robotics Toolbox for Python.
This was not the full tele-operated hand+arm demo that I had hoped for, but it was sufficient to show that the prototype arm seemed to meet our requirements. The arm was shown to be relatively fast, especially compared to previous stepper motor based designs, and the custom actuators worked as expected. The spherical shoulder kinematics do result in singularity issues if the arm is upright, however, which may be a reason that this arrangement is not very common.
There was no shortage of frustrating moments during this project, some of them caused by hasty wiring. Cable management was an afterthought for the most part, which caused situations like the one in the video on the right where the robot simply unplugs itself.
Given the short time frame in which this project was completed, I believe the development of the resulting prototype and set of actuators is a success. Given more time I would have liked to see more done with this design, but I am fairly confident that this arm would have been able to satisfy our goal of real-time teleoperation of arm+hand.