Over the past few days we’ve made some exciting locomotion advancements. Connor created Sights motor wrapper plugins for RoboClaw and Roboteq motor controllers, Alex authored a new servo controller for the arm, and Jack jerry-rigged a system to run multiple motor wrappers at once. The following video highlights the fruits of our labours.
After this short test we made a few minor changes to the servo ranges in these positions. Then, satisfied with our success, we all went home excited to come in the next day and work on fixing the presets to work within those new ranges as well as more granular arm control.
So that day rolls around and find myself testing new preset targets in Pololu Maestro Control Centre and calculating their corresponding positions for the code while Gerrie connected the gripper servos.
The Pololu Maestro Control Centre uses simple sliders to set a servo’s target within its defined range, meaning you can use it to (albeit slowly and unintuitively) move the arm to any allowable position. So, during a lull in my work, I started testing the arm’s capabilities with Gerrie. We slid in a fresh power tool battery and put the arm through its paces.
It was amazing! The arm had fantastic reach at its full extension, which it could hold without breaking a sweat. The gripper was extremely powerful, which we tested by pulling a tight cap off a pen. Looking around the room for something more difficult to test, we found a glue stick from which we could pull the cap.
While Gerrie offered one end to the robot like an unfestive Christmas cracker, I closed the gripper around the lid.
Without warning, the arm collapsed into its home position. Gerrie and I exchanged dumbfounded looks before flicking the emergency switch to disconnect power to all servos. The next few minutes were spent debugging and discussing the issue. Since we couldn’t find any issues on the surface, we reconnected the power and enabled the servos. They seemed to receive power, but were unable to lift their own weight – weight they had no problem shifting only moments before.
With this confirmation, we began diving deeper to find the root of our problems. Still reluctant to spend the time opening up the robot, we switched out the Pololu Maestro servo controller (which is accessible outside the robot) to no avail – but we didn’t think it was the issue anyway, since it was still connected and functioning normally as reported by my computer. I could even get position information from the servos.
To bypass the electronics inside the robot entirely, we connected a 2 cell lithium polymer battery to the servo controller – and the arm worked again. The issue was inside the robot. So we popped the lid to examine the power supply electronics. Almost immediately the problem became clear – not by sight or sound, but by smell. It was the UBEC, the universal battery eliminator circuit powering the Pololu Maestro Servo Controller.
We posited that the combined strain of the two gripper servos gripping the glue stick cap while the wrist, elbow and shoulder servos maintained their position against the force of pulling the glue stick from the grip drew too much current from the UBEC, far beyond its continuous current rating of 5A and peak output of 8A.
Gerrie called the supplier of the servos, who he had talked to a few days prior, to discuss options. As it turns out, this is a common, and still relatively unsolved, issue in the field. There aren’t many battery eliminator circuits up to the task, save for the BEC Pro by Castle Creations that we are currently investigating, with a peak output of 20A and a continuous output of 13-15A at our battery input voltages of 18V.
Fortunately, the temporary fix was already found. Using the LiPo battery we had used to diagnose the problem earlier, we can use the arm just fine. This does impact the elegance of our original single battery solution as well as reduce the benefits of avoiding LiPo batteries, but it is only temporary until we are able to purchase an UBEC that can handle the powerful arm we have created. Even so, the battery voltage dips below 3.3V per cell when multiple servos are moving.
An interesting addendum: Only the 7.2V rail of the UBEC is fried. On a hunch I gave this UBEC to the S.A.R.T. RMRC team who were able to use it successfully when set to 12 V, despite the 7.2V output being completely unusable. It’s not something I would completely trust though, but it’s good that it gets them going.
I was talking with Graham later, and it turns out this UBEC was only ever used in the 12V configuration until we used it in the Series M. It may mean that the 7.2V electronics were always faulty and never fully tested until Gerrie and I overloaded it.
An interesting addendum to your interesting addendum: While the UBEC appeared to still work for 12V, when powering the motors on our Bender robot, we noticed it could no longer turn on carpet, even with a fully charged battery, and even more interestingly, the robot began to get progressively slower as it moved, it would slow to a crawl after about 20 seconds of operation. This would reset when the UBEC cooled down a bit. So the 12v out of the UBEC was fried too, just less obviously so 😀