Difference between revisions of "Antenna Tracker"
Markgriffin (talk | contribs) |
|||
(11 intermediate revisions by 3 users not shown) | |||
Line 1: | Line 1: | ||
An antenna tracker follows an aircraft in flight to keep a high-gain directional antenna locked on to it. This is particularly useful for live video feeds. The | <categorytree style="float:right; clear:right; margin-left:1ex; border: 1px solid gray; padding: 0.7ex;" mode=pages>Tools</categorytree> | ||
__TOC__ | |||
An antenna tracker is a hardware/software solution that follows an aircraft in flight to keep a high-gain directional antenna locked on to it. This is particularly useful for live video feeds. The software estimates the pan/azimuth/Theta and tilt/elevation/Psi angles based on information contained in the GPS and NAVIGATION telemetry messages, which are available through the IVY software bus. | |||
== '''Basic Example''' == | == '''Basic Example''' == | ||
The ''ant_track.c'' code in the | The basic ''ant_track.c'' code can be found in the ~/paparazzi/sw/ground_segment/cockpit folder. | ||
To use it, | To use it, | ||
1. Open a terminal window and go to the "/sw/ground_segment/cockpit/" folder. | 1. Open a terminal window and go to the "$PAPARAZZI_HOME/sw/ground_segment/cockpit/" folder. | ||
2. Compile the grout program via: | |||
$ make ant_track | |||
make ant_track | |||
3. Run it with: | |||
$ ./ant_track | |||
4. The application starts and a small GUI will appear. Click on the AUTO button. | |||
5. Launch an aircraft in paparazzi (use the simulator), wait for GPS 3D lock to be obtained, then you will see the azimuth/elevation updated on the GUI. | |||
=='''Sophisticated Pololu Based Tracker'''== | |||
The basic sourcecode has been modified to send the azimuth/elevation values through USB to a [http://www.pololu.com/catalog/category/12 Pololu servo controller]. The base program drives two servos mounted on a pan/tilt mechanism. | |||
== | ===Compile=== | ||
1. Open a terminal window and go to the "$PAPARAZZI_HOME/sw/ground_segment/cockpit/" folder. | |||
2. Compile the tracking program via: | |||
$ make ant_track_pmm | |||
3. Run it with: | |||
$ ./ant_track_pmm | |||
4. A GUI should appear. Click on AUTO. | 4. A GUI should appear. Click on AUTO. | ||
5. Launch an aircraft in paparazzi | 5. Launch an aircraft in paparazzi (to test use the simulator), wait for GPS 3D lock to be obtained, then you will see the azimuth/elevation updated on the GUI. | ||
===Commandline=== | |||
The following command line inputs are possible: | The following command line inputs are possible: | ||
--port=xxx..x | --port=xxx..x opens port xxx..x. Example --port=/dev/ttyACM0 (Default). | ||
--pan=xxx | --pan=xxx sets pan mode to 180 or 360 degrees. Example --pan=180 (Default). | ||
--zero_angle=xxx | --zero_angle=xxx set the mechanical zero angle. Default is 0 (North). | ||
--id=xx | --id=xx sets the Pololu board id. Example --id=12 (Default). | ||
--servo_acc=xxx | --servo_acc=xxx sets the servo acceleration. Example --servo_acc=3 (Default). | ||
--pan_servo=x | --pan_servo=x sets the pan/azimuth/Theta servo number. Example --pan_servo=0 (Default). | ||
--tilt_servo=x | --tilt_servo=x sets the tilt/elevation/Psi servo number. Example --tilt_servo=1 (Default). | ||
--pan_epa=xx..x | --pan_epa=xx..x sets the pan/azimuth servo's max travel (Default is 1100us). | ||
--tilt_epa=xx..x | --tilt_epa=xx..x sets the tilt/elevation servo's max travel (Default is 1100us). HINT: a negative EPA value reverses the servo direction. | ||
--pan_servo_center_pw=xx..x | --pan_servo_center_pw=xx..x sets the pan/azimuth servo's center position (Default is 1500us). | ||
--tilt_servo_center_pw=xx..x | --tilt_servo_center_pw=xx..x sets the tilt/elevation servo's center position (Default is 1500us). | ||
'''Notes:''' | '''Notes:''' | ||
The antenna tracker zero azimuth is to the NORTH (NORTH = 0, EAST = 90 WEST = -90, SOUTH = 180/0 degrees). | 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. | ||
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. | |||
NOTE: The Pololu board limits servo travel to 1000-2000 microseconds (default). Use the Pololu board setup program to change the above limits. | |||
Examples via command line: | |||
$ ./ant_track_pmm --tilt_epa=1100 | |||
sets the pulse width from 950us to 2050us (1500+(1100/2)=2050us to 1500-(1100/2)=950us). | |||
$ ./ant_track_pmm --pan_epa=-1000 | |||
sets the pulse width from 1000us to 2000 us and reverses the servo direction. | |||
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. | 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:''' | '''FOR THE 360 DEGREE PAN MODE:''' | ||
Mechanical zero (0 degrees or | Mechanical zero (0 degrees or 1500us) is to the NORTH, 90 = EAST, +-180 = SOUTH and -90 = WEST. | ||
Elevation center is 45 degrees up ( | Elevation center is 45 degrees up (1500us), 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). | 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:''' | '''FOR THE 180 DEGREE PAN MODE:''' | ||
Mechanical zero (0 degrees or | Mechanical zero (0 degrees or 1500us) is to the NORTH, 90 = EAST, -90 = WEST. | ||
Elevation center is 90 degrees up ( | Elevation center is 90 degrees up (1500us), 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. | 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. | Of course your PAN and TILT servos must be true 180 degrees servos like the Hyperion ATLAS servos for example. | ||
[[Category:Tools]] [[Category:Hardware]] [[Category:User_Documentation]] |
Latest revision as of 07:08, 24 January 2013
An antenna tracker is a hardware/software solution that follows an aircraft in flight to keep a high-gain directional antenna locked on to it. This is particularly useful for live video feeds. The software estimates the pan/azimuth/Theta and tilt/elevation/Psi angles based on information contained in the GPS and NAVIGATION telemetry messages, which are available through the IVY software bus.
Basic Example
The basic ant_track.c code can be found in the ~/paparazzi/sw/ground_segment/cockpit folder.
To use it,
1. Open a terminal window and go to the "$PAPARAZZI_HOME/sw/ground_segment/cockpit/" folder.
2. Compile the grout program via:
$ make ant_track
3. Run it with:
$ ./ant_track
4. The application starts and a small GUI will appear. Click on the AUTO button.
5. Launch an aircraft in paparazzi (use the simulator), wait for GPS 3D lock to be obtained, then you will see the azimuth/elevation updated on the GUI.
Sophisticated Pololu Based Tracker
The basic sourcecode has been modified to send the azimuth/elevation values through USB to a Pololu servo controller. The base program drives two servos mounted on a pan/tilt mechanism.
Compile
1. Open a terminal window and go to the "$PAPARAZZI_HOME/sw/ground_segment/cockpit/" folder.
2. Compile the tracking program via:
$ 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 (to test use the simulator), wait for GPS 3D lock to be obtained, then you will see the azimuth/elevation updated on the GUI.
Commandline
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/azimuth/Theta servo number. Example --pan_servo=0 (Default). --tilt_servo=x sets the tilt/elevation/Psi servo number. Example --tilt_servo=1 (Default). --pan_epa=xx..x sets the pan/azimuth servo's max travel (Default is 1100us). --tilt_epa=xx..x sets the tilt/elevation servo's max travel (Default is 1100us). HINT: a negative EPA value reverses the servo direction. --pan_servo_center_pw=xx..x sets the pan/azimuth servo's center position (Default is 1500us). --tilt_servo_center_pw=xx..x sets the tilt/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.
NOTE: The Pololu board limits servo travel to 1000-2000 microseconds (default). Use the Pololu board setup program to change the above limits.
Examples via command line:
$ ./ant_track_pmm --tilt_epa=1100
sets the pulse width from 950us to 2050us (1500+(1100/2)=2050us to 1500-(1100/2)=950us).
$ ./ant_track_pmm --pan_epa=-1000
sets the pulse width from 1000us to 2000 us and reverses the servo direction.
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 1500us) is to the NORTH, 90 = EAST, +-180 = SOUTH and -90 = WEST.
Elevation center is 45 degrees up (1500us), 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 1500us) is to the NORTH, 90 = EAST, -90 = WEST.
Elevation center is 90 degrees up (1500us), 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.