Hi there! So our team is making plans to build a robot for demonstration purposes, and one of the ideas we are playing with is swerve drive. We have never actually built a swerve system before, so I realize it will probably take some time to work out the kinks, but it sounds like fun!
Anyway, one big question I have is: Could a stepper motor (or servo motor, I’ve heard it both ways) be used to handle the rotation of the wheel modules, instead of an FP/CIM/Window Motor and a potentiometer?
I realize that it couldn’t be used in competition (unless the rules on motors change), but since this is a demo bot, that won’t be a problem.
I don’t know much about servo motors, but be careful that you have enough output torque to turn your modules. A fully loaded module with roughtop tread will take a fair amount of torque to turn.
As Chris said, it takes a lot of torque, and the experience using pots is good experience for a build season. Personally, I tend to want to overpower a system and have to compensate in software, and not have to struggle with power issues.
I’d be hesitant to use a stepper motor (assuming you mean without any additional position feedback); they’re can be good for controlling velocity and can control position in low-load scenarios, but if the motor is prevented from turning (pushed against a wall or something), your program won’t have any way to know the motor is not in fact turning. Also, steppers require special controller circuitry, so you would have to figure out how to interface with that.
In regards to a servo, there’s no reason why you couldn’t use one, as long as you found one with enough torque, as has been said. Note, however, that a servo is just a motor and potentiometer anyway, the only difference is the sensor and control circuitry are contained in the motor shell (at least for most of the hobby servos, there are ones with external controllers as well), so by attaching a potentiometer to a motor, you are effectively creating a large servo. The difference being that you have to code the control algorithm yourself, which could be a pro (ability to tweak PID parameters) or con (have to go through the work of tuning the system, perhaps reduced response time), depending on your requirements.
A servo is the proper motor for this positioning job (as it is for most robot motions), and is what one would use in an FRC robot if one could. When FRC robots use a gearmotor and feedback pot/encoder to do positioning in FRC, we are doing what some would call a “poor man’s servo,” but a real one would be superior. As mentioned already, make sure you size the servo with sufficient torque to do the steering job at the rotational speed you desire. Consider all the accumulated friction in your system, and the torque required when the robot is stationary and the wheels are loaded on a high-friction surface.
I personally would much rather write my own feedback loops than use the ones embedded in a hobby servo. Hobby servo control loops, unless designed with adaptive controllers (which I highly doubt and aren’t in the standard analog servos) have to be tuned for stability over the entire range of loads that you will apply as compared to the exact load that you are going to apply to the motor. For example, if you attach an analog hobby servo to a large block, it won’t go to the goal nearly as fast as you could achieve with a custom tuned loop. You can also apply information of the surroundings (254’s kicker pullback loop took the battery power into account) to a custom loop, while the servo will have no hope of compensating for that out of the box.
Evan,
You may have gathered from the above discussion that servo and stepper are not interchangeable terms. Servos of the type we use generally have less (sometimes much less) than 360 degrees of rotation. Servos have their uses but hobby servos are meant for low torque/low power.
If you are looking for a nice motor for crab drive steering and don’t care about FRC rules, the Globe motors worked very well. With any luck, First will be able to convince Globe to donate in the future. The Globe is a small motor with a transmission attached. It has relatively high torque and slow speed and doesn’t draw a great deal of current. Add a pot or some other feedback to the system and you will be able to control steering just fine.
The window motors also served many teams very well this year. Some have reported that the Jaguars were unfavorable for driving these motors but that the Victors did a good job. We used windows with Victors this year.
I utilized the globe motors on my senior design project at Northeastern and would throw a word of caution that these motors are almost impossible to find outside of FIRST. From what I’ve been told, globe stopped making these motors over 3 years ago, and have been working from inventory up until now.
You may be able to find some globes laying around your shop, or ask another team if they have any spares, but it looks to me that the globe motor we’re all familiar with in FIRST, is not coming back.
I assume since he was talking outside of FRC restrictions, he was not talking about “hobby” servos such as those allowed in FIRST, or those with less than a 360 range. A genuine industrial servomotor can have unlimited range and ample torque for this job, and would easily outperfom a gearmotor on pot feedback with homemade software. There is a reason they are almost always used for robotic and positioning jobs. I guess it depends on what caliber of servomotor he has access to and could consider for his project.
Globe is still a great company and they do make the motors but not the same part number. It appears that Globe updated it’s production to allow customers to custom order motor transmission combos. In so doing they changed the part number structure. Now you can order the motor coupled to a transmission with a specific output shaft. These motors also abound in surplus outlets and are sometimes listed as satellite feed motors.
As others have mentioned a servo motor and stepper motor are not interchangeable terms, but just to clarify: a servo motor has positional feedback sensors and a control loop to maintain a specific position, a stepper motor has no positional feedback but rather moves in controlled increments.
When you attach a potentiometer or an encoder (or…) to any motor system and then control its position with a control loop it becomes a servo.
In 2002 (if memory serves) my team used hobby servos and hobby motors to make a demo serve-drive robot with the Edu-Robot system supplied with the KOP that year. If you want something full-size you can probably find industrial servos that will do the job out of the box. If you’re looking to gain relevant FIRST experience (which is always good) I would definitely go with window motors and potentiometer feedback with a custom control loop.
Thanks for all the replies, and clarifications on the difference between steppers and servos.
My main purpose for utilizing a servo was to try to reduce the number of parts and/or systems required in the system. But seeing as industrial servos are quite expensive, I think we will be using a window motor/encoder system (if we end up going with swerve drive, the decision has not been made yet.