4. Using the Robot Arm for Romi
New to servos?
Hobby servos are small, modular actuators developed by the radio control (RC) hobby industry for remote manipulation of everything from miniature boat rudders and car steering linkages to model airplane flaps and toy parachutist release mechanisms. If you are new to servos, this series of “Engage Your Brain” blog posts has some great information to familiarize you with different types of servos available, how they work, and how to control them.
- Introduction to an introduction to servos
- Introduction to servos
- Gettin’ all up in your servos
- Servo, servo motor, servomotor
- Electrical characteristics of servos and introduction to the servo control interface
- Servo control interface in detail
- Simple hardware approach to controlling a servo
- Simple microcontroller approach to controlling a servo
- Advanced hobby servo control pulse generation using hardware PWM
- Advanced hobby servo control using only a timer and interrupts
- RC servo speed control
- Continuous-rotation servos and multi-turn servos
The Robot Arm Kit for the Romi comes with one micro servo for the gripper and two standard-sized servos for moving the arm. All three of these servos are specially modified with an additional wire that gives access to the potentiometer feedback inside the servo. The micro gripper on the end of the arm uses a rack and pinion design with the pinion gear mounted to the servo spline and opposing racks to keep the gripper paddles synchronized and parallel to each other throughout the range of motion. Lifting an object will generally cause the Romi to tilt forward, so we highly recommend using the optional second ball caster in the front of the Romi. Additionally, using a rubber band to increase the stiffness of the built-in suspension on the front ball caster can help stabilize the robot. The recommended maximum payload of the arm is 3.5 oz (100 g).
Powering the servos
All three of the servos have a nominal operating voltage of 4.8 V to 6 V. The larger lift and tilt servos can briefly draw up to around 1.8 A each when commanded to move abruptly, but the typical current draw should be under an amp each. The stall current of the micro gripper servo is approximately 0.8 A at 6 V.
The Romi chassis has multiple power options built into the battery compartment, as discussed in Section 5 of the Romi Chassis User’s Guide. If you are using the 4 battery configuration with the Romi chassis, you can power the servos from the battery voltage. Please note that using all six batteries in series can result in voltages upwards of 9 V with fully-charged NiMH batteries, so you should not power your servos directly from the batteries in this configuration. In this case you can use a step-down voltage regulator such as our 6V, 2.5A Step-Down Voltage Regulator D24V22F6 to safely power the servos.
If you use the Power Distribution Board for Romi Chassis, it defaults to getting power from all six batteries, but it can be reconfigured to be powered from four cells; see the board’s product page for more information.
Range of motion and control signals
Each of the servos used by the Robot Arm Kit for Romi has a different effective range of motion due to the arm’s geometry. Please note that it is possible to drive the servos in a way that they physically bind the arm and cause them to “fight” each other, which could result in damage to servos or the Robot Arm. Most servos are intended to be used with the 1000 µs to 2000 µs pulse width range commonly used in RC systems; however, many of them can accept a wider range of inputs and will continue responding to them accordingly (moving farther and farther from neutral until they hit their mechanical limits and possibly destroy themselves). The Robot Arm accessory takes advantage of this increased range for the gripper servo. If you followed the assembly instructions correctly, the full range of motion of the gripper servo should correspond to pulse widths from about 500 µs (fully open) to 2400 µs (fully closed). Please note that there could be some unit-to-unit variation in the servos, so if you notice some buzzing when there is no load on the servo, you might try adjusting these values.
Range of motion of the gripper on the Robot Arm for Romi.
Dimension diagram of the Micro Gripper with Position Feedback Servo. Units are mm over [inches].
Similarly, based on the assembly instructions, the full range of the lift servo should be from 1000 µs (fully raised) to 1900 µs (fully lowered), and the full range of the pivot servo should be from 1200 µs (fully down) to 1900 µs (fully up). Again, this might differ slightly due to unit-to-unit variation in the servo.
Range of motion of the height of the Robot Arm for Romi.
Range of motion of the wrist tilt on the Robot Arm for Romi.
The modified servos that come with the Robot Arm accessory have an extra optional wire that gives direct access to the feedback potentiometer inside the servo. For each servo, there is an approximately 1:1 correspondence between the servo position in milliseconds and the feedback voltage in millivolts, so for example, the feedback voltage will be around 1.5 V at the position corresponding to 1.5 ms servo pulses. You can use this to monitor the position of each servo, which could be useful for detecting if the gripper is holding an object. Also, if you are controlling the servos from a separate source like an RC receiver, you can monitor the feedback with your main controller for feedback about what the arm is doing.