HALRI
Humanoid robots represent one of the most exciting frontiers in modern robotics. While their popularity is often fueled by science fiction, their design is also grounded in practical reasoning. Since humans have shaped the built environment around their own form and range of motion, robots with human like features are naturally well suited to operate within these environments.
​
This project draws inspiration from the LIMS2-AMBIDEX arm developed by Koreatech Lab, which uses metal wires and pulleys to transmit force from motors located higher up the arm to joints farther down. My design achieves a similar effect using shafts and gears. The key principle behind this approach is to relocate the motors, which are the heaviest components of the system, to the upper sections of the arm, where movement is more limited.
​
By keeping the motors closer to the base, the arm benefits from reduced rotational inertia, which enhances both precision and acceleration. Additionally, lowering the weight at the distal ends prevents the compounding effect of excess mass along the arm, thereby increasing the maximum payload capacity. This design philosophy mirrors real world engineering trade offs between mobility, control, and efficiency in robotic systems.
Electronics and design
All parts designed in CAD were printed from standard PLA on a Bambu Lab X1C (pictured below). 3D printing was the only viable way to produce and prototype the arm. Parts were split up carefully and designed with the direction of print in mind to account for the anisotropic nature of FDM printing. In the future more advanced filaments may be used to increase strength and dimensional stability. The stepper motors are Nema 23x113 Bipolar motors from a DIY CNC router kit, the kit also included the motor controllers and power supplies. The microcontroller is an off brand Arduino. Brass threaded inserts were used for repeated maintenance and increased strength. In addition several tapped aluminum rods were ordered at custom lengths to improve strength in areas with high stress.


Custom bearings
The nature of the design called for a large number of bearings of specific sizes. Ordering these bearings online would have been prohibitively expensive. In addition the bearings would add significant weight to the design and the larger diameter bearings would have maximum force thresholds that far exceed the design requirements, making them inefficient. Finally in many cases the bearings would simply be too bulky for the design. For these reasons it was decided that custom bearings would be designed and built for the project. The inspiration for this decision came from this video. 4mm bearing balls were ordered and custom parametric design profiles were used for the bearing spacers and the races, making the addition of bearing races to any part easy and future proof. By integrating the bearing races for both radial and thrust bearings into the existing parts, it was possible to make the design far more compact then it otherwise would have been, especially in areas like the joint side miter gears on the motor shafts, where four elements that need to rotate independently are placed within each other. The shoulder joint required a large number of combined loading bearings due to the heavily dynamic nature of the expected load, even if the shoulder housing was considered static. By making the combined loading bearings one sided, then spacing the two sides of the bearing as far apart on a given shaft as possible, the moment strength of the design could be increased significantly without introducing redundancy. Shaft keys with threaded inserts were tightened using setscrews within slots on the parts. This allowed the various components to "clamp" axially, which served to preload the bearings and account for any stacking tolerances introduced by the 3D printing process. Below is a combined loading bearing printed to test the design. Simplified flat bearing races give the bearing balls four surfaces of contact while maintaining a design that is unlikely to seize even with imperfect tolerances and can be printed at almost any angle. The outer bearing is the thrust bearing and the inner one is the radial bearing

Initial sketch of design
This is an initial two-point exploded view perspective sketched on paper. The motors for the first four stages are not included in this sketch but the design of the forearm, wrist, and 1 DOF hand can be seen. The shoulder and elbow use rolling point joints (discussed later) and the wrist uses a standard robotics wrist joint. The design of the wrist joint was later changed to a 3 dimensional inverse parallelogram joint similar to the LIMS2 wrist, but in this case controlled by the relative motion of concentric shafts. The reason for the change was to avoid singularities likely to occur due to the poor layout of the axes in the standard robotics wrist.

Exploded CAD of shoulder joint
In this exploded view of the CAD for the shoulder joint, the hypoid gears for the first four axes can be seen clearly. Hypoid gears were used because they have a high torque ratio (around 7 in this case), and allow for the stepper motors to be packed tightly, they are also back drivable for force feedback and complex closed loop control in the future. The hypoid gears are connected to four concentric shafts that transmit the motion into the shoulder joint. The joint itself is a 3 dimensional rolling point joint of my own design. This is similar to the elbow joint in the LIMS2 manipulator, but uses gears instead of wire and channels to achieve the motion. The benefit of such a design is that all three axes of the shoulder joint have 360 degrees of motion, and axes 1 and 3 can rotate continuously. This high amount of flexibility will allow the robot to replicate all poses within the human range of motion, opening possibilities for training.

Initial motion testing
This video shows the first motion test of the partially constructed shoulder joint. Axis 1 controls the shoulder joint housing containing the miter and spur gears. Axis 2 rotates the shoulder joint linkage which moves the rolling point joint. Axis 3 and 4 rotate the two spur gears, in the completed assembly, axis 3 will control the 3rd shoulder axis, and axis 4 will control the elbow joint with two more miter gears and a belt.

Current shoulder joint assembly
Currently the other half of the shoulder joint has been mounted, and the final shoulder miter gears are being installed to complete axis 3. The next steps are completing the CAD for the upper arm and ordering the small wrist and hand stepper motors, belts, and other electronics. The wires for these stepper motors will run through the innermost shaft, and two sliprings will be used to ensure that axis 1 and 3 of the shoulder can still rotate continuously without risking wire damage.

Setbacks and potential changes
There have been many setbacks and consequences of design decisions made during this project. The largest of which is the sub optimal backlash in the system. Because the force is being transferred through several gears and shafts from the motors to the joints, it is easy for tolerances to stack. This issue is exacerbated by the generally poor tolerances of 3d printing, and the decision to use custom integrated bearings. Even with preloading, the bearings still have more play than initially predicted. This has lead to significantly more backlash than desired. This appears to be more of an issue with the method used to produce the components and perhaps the low level design of certain features such as the bearings races and shaft keys. Real robot arms often use complicated gearing layouts with minimal backlash, so the overall design is still sound. One potential way to account for this issue is to replace the gears with capstan drives, This would mean the arm is no longer able to rotate continuously but it may cut down on the backlash significantly by removing the backlash introduced by gear tooth tolerances. Several designs like the one linked above exist for capstan equivalents to spur gears, but miter gear examples are far less common. However rudimentary testing suggest it may be possible.