Antenna Tracker

From PaparazziUAV
Revision as of 01:05, 29 November 2010 by Markgriffin (talk | contribs)
Jump to navigation Jump to search

Basic Example

The ant_track.c code in the paparazzi3/sw/ground_segment/cockpit folder estimates the azimuth and elevation angles based on the information contained in the GPS and NAVIGATION telemetry messages through the IVY bus.

To use it,

1. Open a terminal window and go to the "/sw/ground_segment/cockpit/" folder.

2. Compile it with:

make ant_track

3. Run it with:

./ant_track

4. A GUI should appear. Click on AUTO.

5. Launch an aircraft in paparazzi (use the simulator) and you will see the azimuth/elevation updated on the GUI.


Sophisticated Pololu Based Tracker

The basic code has been modified to send the azimuth/elevation values through USB to the Pololu servo controller.

To use it,

1. Open a terminal window and go to the "/sw/ground_segment/cockpit/" folder.

2. Compile it with:

make ant_track_pmm

3. Run it with:

./ant_track_pmm

4. A GUI should appear. Click on AUTO.

5. Launch an aircraft in paparazzi and you will see the azimuth/elevation updated on the GUI.


The following command line inputs are possible:

--port=xxx..x' opens port xxx..x, example --port=/dev/ttyACM0 (Default).
--pan=xxx' sets pan mode to 180 or 360 degrees. Example --pan=180 (Default).
--zero_angle=xxx' set the mechanical zero angle. Default is 0 (North).
--id=xx' sets the Pololu board id. Example --id=12 (Default).
--servo_acc=xxx' sets the servo acceleration. Example --servo_acc=3 (Default).
--pan_servo=x' sets the pan (Theta) servo number. Example --pan_servo=0 (Default).
--tilt_servo=x' sets the tilt (Psi) servo number.Example --tilt_servo=1 (Default).
--pan_epa=xx..x' sets the Azimuth servo's max travel (Default is 1100us).
--tilt_epa=xx..x' sets the elevation servo's max travel (Default is 1100us). HINT: a negative value EPA value reverses the servo direction.
--pan_servo_center_pw=xx..x' sets the Azimuth servo's center position (Default is 1500us).
--tilt_servo_center_pw=xx..x' sets the elevation servo's center position (Default is 1500us).

Notes:

The antenna tracker zero azimuth is to the NORTH (NORTH = 0, EAST = 90 WEST = -90, SOUTH = 180/0 degrees).

The elevation zero is totally horizontal, 90 is up and 180 is to the back.

The servo used must be able to do 180 degrees in order to get full 360 degree coverage from the tracker.


WARNING: The Pololu board limits servo travel to 1000-2000 microseconds.

WARNING: Use the Pololu board setup program to change the above limits.


Example: --tilt_epa=1100 sets the PW from 950 to 2050 microseconds.

Example: --pan_epa=-1000 sets the PW from 1000 to 2000 microseconds and reverses the servo direction.


An EPA of 1100 sets the servo travel from 1500+(1100/2)=2050us to 1500-(1100/2)=950us.

Use programmable servos like the Hyperion Atlas. You can also use the proportional 360 degree GWS S125-1T as the Theta (Azimuth) servo or the mighty but expensive Futaba S5801.


FOR THE 360 DEGREE PAN MODE:

Mechanical zero (0 degrees or 1500 ms) is to the NORTH, 90 = EAST, +-180 = SOUTH and -90 = WEST.

Elevation center is 45 degrees up (1500ms), 0 degrees = horizontal, 90 degrees is vertical (up).

Of course use this mode if your PAN servo can do a full 360 degrees rotation (GWS S125-1T for example).


FOR THE 180 DEGREE PAN MODE:

Mechanical zero (0 degrees or 1500 ms) is to the NORTH, 90 = EAST, -90 = WEST.

Elevation center is 90 degrees up (1500ms), 0 degrees = horizontal, 180 degrees is horizontal to the opposite side.

When the azimuth is > 90 or < -90 the azimuth and elevation servos swap sides to obtain the full 360 degree coverage.

Of course your PAN and TILT servos must be true 180 degrees servos like the Hyperion ATLAS servos for example.