Teleoperation Robotic Arm
Why is this important?
Consider a claw machine at an arcade. You’re able to press the button to lower the claw, and hit it again when you want to close the claw. One button can get you a long way when you’re controlling relatively simple systems that have binary actions.
Once you get to a multi degree of freedom system like a robotic arm, a button or even a host of buttons in an XBox controller isn’t enough to express what you want to do. The goal seems simple, a user wants the arm to move from point A to point B, but would need to do forward kinematics to do so, moving each actuator one at a time.
Leader and follower arms are a way to circumvent this controllability issue, as the user is able to express point B to the robot directly.
Design Iterations
I continually improved on the design to create a custom joystick to control our off-the-shelf robotic arm. The goal was to make it as lightweight and easy-to-use as possible in the allotted development time (~1month while balancing other priorities). Initially it was difficult to break away from the structure of the Trossen follower arm, but I tried to simplify the problem into what was the minimum viable product:
Reuse the same actuators and cabling
Employ mechanical hard stops to prevent cables from disconnecting while using it
Follow the overall arrangement of the actuators to match the follower arm
Besides that, I was free to design the structures to be as lightweight and small as possible. I wasn’t tied to a certain mounting scheme that Trossen had used, I could use the mounting holes on the side of the actuator instead.
When implementing hard stops so the user couldn’t control a joint on the follower arm further than its designated limit, I artificially limited each joint’s RoM to slightly less than 360 deg to reduce complexity. If I wanted to maintain the same range of motion that’s greater than 360 deg, I would think about incorporating a clockspring mechanism (similar to the ones found in driving wheels) to better control cable management along the leader arm.
Ultimately, I ended up reducing volume by 66% and weight by 57%, and it allowed the team to have a portable control arm that was easier to wield compared to an alternative option, a duplicate Trossen Arm.
Problem Deep Dive
The shoulder motor of the follower arm kept overheating after moderate use of the tele-op system. I worked with our firmware engineer to help troubleshoot the issue. In the interest of time, I swapped out the shoulder dynamixel with a new one which worked for a bit, but after moderate use again, the new motor began overheating again. We systematically went through each degree of freedom to ensure the joint angles were publishing properly. We verified that the gripper open/close, the wrist degrees of freedom, and the elbow degree of freedom were teleoperating successfully by sweeping through its full range of motion. The shoulder joint was the only joint that had two dynamixels hoisting the full weight of the arm and we tested one dynamixel at a time to find out that the arm commands were only publishing to a single dynamixel. The single dynamixel could not withstand the full load of the arm weight and payload, which makes sense why it hit its torque limit and overheated.