Drive-by-wire or teleoperated systems feel very unnatural to use because they lack the natural feedback the operator receives when turning a steering, presuring an object in his or her hands, or pressing on a pedal. This lack of feedback is uncomfortable in many situations, to outright dangerous in others. Yet force feedback is reasonably simple to implement.
Force feedback requires simply that the force opposing the actuator at the remote location be measured and transmitted back to the operator. Then at the operator end, a motor coupled to the command mechanism (typically a joystick or steering) is used to "push it back", thus recreating the resistance encounted at the remote location into the operator's hand or foot.
Measuring pressure is typically the most difficult variable to measure, normally requiring expensive pressure sensors or strain gauges. A low-cost, yet effective method is to sense the current consumed by the motor and assume that this current is proportional to the pressure applied by the motor. All roboteq controllers feature current sensing for each of the two motors that can be attached to them. The current value can be read using a short querry on the controller's RS232 port.
A typical drive by wire application, or a teleoperated system as for the egg example above, will be configured as shown in the figure below:
The system is composed of two sets of motors, controllers and potentiometers. On the Actuator Side, the controller is configured in position mode, using the potentiometer to capture the actual position. The Actuator Side controller can be any of the Roboteq models depending on the power required.
That controller will receive destination position information from the RS232 port and move the motors in the necessary direction to reach that destination.
The controller on the Operator Side is configured for operation in open loop. While the motor and potentiometer are mechanically coupled, they are considered entirely separately. The potentiometer is used to capture the position at which the operator has moved the command. It is fed into the controller from which it is converted from analog into digital and then sent via the RS232 to the controller on the Actuator Side.
A MicroBasic script on the Actuator Side controller will send the measured current to the Operator controller. That current value will be multiplied by an experimentally determined value to compute the power and direction to be sent as a command to the Operator Side controller. Power will then be applied to the Motor 2 to push in the direction opposite of this applied by the human operator. The motor must not be too powerful (or a resistor must be added in series to it) since the force that is applied by the operator is not very large. The smallest Roboteq controllers would be adequate for this purpose.