Motion Platform Links

Vehicles and Stuff

 

Component Info

Electric Motors

Speed Controllers

Batteries

Adhesives

Ball & Sockets Joints

Bearings

Gears

Chains & Sprockets

Shaft Collars

Shaft Steel

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Component Search

Component Information

Plans Order

Power Calculator

Contact

Conditions

DIY Control Loading (Force Feedback)

DIY Force Feedback Test Rig

 Simple proof-of-concept DIY force feedback test rig

Introduction

Different System Approaches

Attempt 1

Attempt 2

Attempt 3

Software

Test Rig

Effects and Impressions So Far

Way Forward

 

 

Test Rig

 

To test the approach I've modified my simple SideWinder joystick. (I've ordered a flight yoke which I'll try to modify as a more finished project when it arrives - delivery date keeps pushing out). Two Hitec HS-815BB servos are connected one to each axis by bent coat-hanger wire sprung links. This looks pretty basic but the engineering behaviour is sound and is sufficient for testing the behaviour of the system. The link and servo arm positioning is important as the line of action of the forces on the joystick must be maintained so that they maintain a roughly constant moment arm about the stick pivot point - I haven't quite managed this but it's close enough for testing.

 

The servos are driven by a Pololu Serial 16-Servo Controller which is driven directly via a serial port from the PC software (the link is to their 8-servo unit which should also work).

 

I also found that removing the internal return springs from within the joystick makes for a better calibration and final response from the system.

 

 

System Behaviour

 

For someone who hasn't used a force feedback joystick before the effects are interesting and a bit of an eye-opener. With the control loader deactivated the joystick is quite floppy (I removed the built-in return springs), when the software is activated the servos come on and it turns into a much stiffer damped control stick.

 

The basic unloaded motion is heavier (more damping) than the original joystick feel - it is much more difficult than before to flip the stick from one extreme to the other (as if there's nothing attached to it). With the aircraft stationary the elevator weight pulls the stick forward and it requires a pull on the stick to bring the elevators level. During takeoff as the runway speed picks up the elevator lift builds and holding the elevator level becomes lighter, however pulling the stick back at rotation to bring the nose up brings on a noticeable force reaction as the elevator starts to generate lift. In the air adjusting the trim eases the holding loads wherever the stick is.

 

DIY Force Feeback Output Trace

Sample output trace - aileron lift & stall buffeting during left/right banking manoeuvres

Aileron aerodynamic effects are similar, left-right movement of the stick is heavier when the aircraft in the air. I've also programmed the lift coefficients to peak at control surface deflections of about 11° at which point they stall and buffeting comes on (see NASA). I think my 11° is probably slightly low but this is easily adjusted in the coding. I'm not an aerodynamicist so am not sure about the accuracy of this behaviour but I thought I'd add it to see. So an extreme control movement generates a building force reaction which then drops of with buffeting as the aerofoil stalls - you can effectively feel where the ailerons are.

 

All the control surfaces become quite strongly self-centering when the aircraft is in flight, even though the centering springs in the joystick have been removed.

 

Interesting effects arise when you put the aircraft into a steep climb and feel the stick become progressively lighter as the airspeed drops right off. Going into a steep nose down orientation brings load back onto the control stick rapidly as the air speed picks up quickly in the dive.

 

Series Servo ControllerI haven't added full aircraft stall effect yet although elevator stall and full stall seem to coincide a bit..

 

Landing approach is interesting - the controls feel progressively lighter as the speed drops to landing speed although the elevator weight starts to become noticeable. As the gear goes down the air buffeting comes on and is maintained proportional to airspeed squared - diminishing as the aircraft runs out on the runway and the speed drops. The sudden spike in G-force at touchdown comes through as a snatch in the elevator movement and if you touch down one wheel first the resulting sharp roll acceleration comes through in the aileron axis - you can feel how good your landing was!

 

 

Overall I'm quite pleased with the effects. It's difficult to show feedback forces visually but here's a couple of movie clips - one showing the system doing its elevator calibration cycle and the other showing gear buffeting coming on and then back off again as the gear is lowered then raised (in level flight).

 

Elevator Calibration Clip      Gear Buffeting Clip

 

So what's not so good - other than mechanical shortcomings of the crude test rig (slightly asymmetrical loading effects and weak mechanical links) there are two issues mainly. The first is the servo behaviour - when holding load they buzz slightly (probably at the position feedback loop processing speed) and this propagates through the links to the stick. The effect is mild however and is quickly forgotten but it would be nice to remove it completely.

 

The other is a natural by-product of my method of reading the current control position from the sim's internal data. There is a time delay in the stick movement being reported in the sim and then by FSUIPC to the control loading software. This looks as if it is about 0.2s. The effect of this is that the servo position can never match exactly the control stick position - it will lag it by a small distance related to how fast the stick is moving - in effect this speed related delay introduces an effective base damping force to the system response. I would like this to be less than it is so that the unloaded response is lighter, however to do this I need to eliminate or reduce the stick position data transmission delay. I don't think the effect is noticeable in-flight because the small damping force is swamped by the other system forces, but on the ground it is. One solution is to monitor stick position independently and directly pass the data to the loading software bypassing the flight sim.

 

The Way Forward

 

Overall the system behaviour is certainly good enough to attempt an implementation on a bought flight yoke, and I would also like to try a rudder implementation. The question of how a more powerful system might be implemented for a full size flight stick is interesting. I think a solution using more powerful stepper motors in a similar open-loop system has good potential. Stepper motor drives  can be quite inexpensive and are effective in open loop situations and if I can find a micro stepping motor controller that can be driven directly though a serial port by the control loader software the beta software could be used without much modification.

 

The approach to control loading could allow DIY'ers greater flexibility in customising builds for their own pits by allowing a range of more powerful motors to be used. The driver hardware is also very straightforward with all of the "clever" stuff being handled by the control loader software. There is also clarity in how the force feedback effects are being generated and I should be able to modify this if requested.

 

A further advantage of the method is the way in which the stick position can be controlled over its full range by the control loading software. This allows effects to be programmed such as getting one stick to follow the position of another without the need for a mechanical linkage between them, or for driving stick position in response to, say, autopilot manoeuvring actions.

 

 

© This site is copyrighted, If you'd like more information or have any comments please contact me at

 

Copyright © 2006-2008 BFF Design Ltd All Rights Reserved.