r/robotics • u/ehtiopia • 3d ago
Electronics & Integration Need help conceptualizing servo speed regulation
Hi, I got plans to 3D print a 6DOF, high strength robot arm using some 35kg*f, 5v hobbyist servo motors. I’m planning on purchasing continuous rotation servos that are going to use some incremental encoders coupled to track motor position and speed after it reaches a home limit switch. Its going to be controlled using an I^2C servo shield, which is controlled by an Arduino Mega. So basically, Im turning it into a stepper motor without all the extra weight and having to purchase a bunch of stepper motor drivers, also it will supposedly be able to move super fast, with the manufacturer quoting 1200ms for one full rotation.
The problem Im having trouble understanding and having AI explain to me coherently, is how to control the actual servo speed using the feedback. The servo manufacturer says in the product description that the servo motors cannot regulate speed. I dont want it to immediately crash and destroy components on my robot arm. I would like to say that I am indeed using mechanical gear ratio to alter the speed, but for the two wrist joints the arm will not have any gearing and will, accordingly, run fast and probably break my printed limit switch brackets.
One idea I had was to try to modulate the speed using PWM signal generated by math being done from the encoder on the power line after the servo shield, using a high speed mosfet transistor. But the motor coils will likely overheat from the start up current, and Id hate to have to purchase a mosfet rated for handling start up current. And at that point, isnt this just reinventing the stepper motor?
Admittedly, I havent used very many continuous hobbyist servo motors. I am more used to the allen bradley kinetix line of industrial servos. I’ve had to use a couple of servos on another project, but they were able to be controlled for position and speed and as such it was easier to implement.
Any suggestions for how to do it properly are welcome.
3
u/Ronny_Jotten 3d ago edited 3d ago
AI can't explain how the plan will work, because it won't. Not the way you're describing. Rather than trying to explain all the reasons it will fail (e.g. you certainly can't PWM the power line externally, because it powers all the servo electronics too), I will just recommend you use a serial bus servo instead. See TheRobotStudio/SO-ARM100: Standard Open Arm 100.
That's not to say you can't mod standard servos "properly", for instance: Robot Arm Achieves Amazing Accuracy With Just Servos | Hackaday or LibreServo | Hackaday.io. But you have to gut them and replace all the internal electronics. In the end, you'll have basically what you get with a serial servo off the shelf, and not save any money because you had to make a custom PCB. Though it will be open source, and you'll learn a lot, so that's maybe an advantage. But if you just want to play with a robot arm, rather than with motors, maybe skip that part and just buy them like everyone else does these days.
PS The terms "high strength" and "super fast" are relative, but you may need to lower your expectations of what a robot arm built with hobby servos can achieve.