# $Id: README,v 1.6 2001/10/15 00:40:17 tramm Exp $

The Logitech Wingman is an inexpensive control device for flying
the UAV prototype.  It has four axes of real control, which is
fine for a no-collective helicopter such as the LM-110.  There
appears to be fairly large dead zones in the controls, which
seems very bad.  On the throttle this means that there is linear
control from 0% to 50%, then a band of no change, followed by
a linear increase up to 100%.  On the cyclic this can make it
easier to avoid inadvertent control mixing, but otherwise
might be a problem.

In order to start up the driver, it appears that the these modules must
be loaded in this order:

	usbcore
	usb-uhci
	hid
	joydev

The usbdevfs does not need to be mounted.  Then the joystick should be
plugged in.  This maps the joystick device to /dev/input/js0.  
We have a symlink from /dev/js0 to /dev/input/js0 for backwards
compatability with the old joystick devices.

The axes are:

0:	Left/Right cyclic (left is less)	-24000		24000
1:	Fore/Aft cyclic (fore in less)		-22000		21000
2:	Anti-torque (left is less)		-19000		18000
3:	Throttle (up is less)			-24000		16200
	Note: Deadband of several mm at 0
4:	Left/Right cyclic trim (left is less)	-32767		32767
5:	Fore/Aft cyclic trim hat (fore is less)	-32767		32767


The seven buttons are mapped as:

0:	Trigger -- Force-release trim
1:	Left anti-torque trim
2:	Right anti-torque trim
3:	Camera down
4:	Camera up
5:	Engine kill
6:	Unmapped

The "force release trim" setting is a better system.  Hit the trigger
to set the zero-trim position at the current the cyclic and anti-torque
rotor.  No more control inputs will be accepted from each control
until they pass through zero.  So the technique is to set the control
surfaces where you want them, hit the trigger and return the stick
to the center.  Then it will work normally.

The anti-torque has its own zero-trim selection.  Button #2 will latch
the tail rotor.

The trim settings right now require the user to hit the button repeatedly.
It would be nice to have it repeat periodically instead.  I'm not sure
how to do so right now.



The prototype UAV has the following servo arrangement:

0:	Left/Right cyclic
1:	Fore/Aft cyclic
2:	Throttle
3:	Anti-torque rotor


This gives us the following mapping:

Axes 0: LR		-> Servo 0 reversed
Axes 1: FA		-> Servo 1 reversed
Axes 2: Throttle	-> Servo 2 normal
Axes 3: Tail rotor	-> Servo 3 reversed


Control curves are in progress.  Right now all the controls are "linear"
in that they cause the same amount of control deflection for each
unit of motion.
