Antenna Tracker

From PaparazziUAV
Revision as of 10:34, 28 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 input arguments 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.