1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131
|
Autopilot
CRRCSim works out of the box with the Crossbow MNAV autopilot. The required
changes to the autopilot have not yet made it into the main autopilot source
tree, but a precompiled Windows prerelease version (Autopilot-CRRCSim) is
available on the Crossbow MNAV autopilot Sourceforge site at
http://sourceforge.net/project/showfiles.php?group_id=146680.
Full autopilot functionality is currently only supported on Windows because
the Crossbow MNAV autopilot's ground station is only available for Windows
(although all other components of the system are cross-platform). The ground
station runs with various degrees of success with different versions of
Wine, but a better long-term solution is to port the Crossbow MNAV ground
station to a cross-platform windowing toolkit.
Basic Usage
1. Download and unzip Autopilot-CRRCSim from the the Crossbow MNAV
autopilot Sourceforge site at
http://sourceforge.net/project/showfiles.php?group_id=146680.
2. Right-click on the GrounddStaion <sic> shortcut in the
Autopilot-CRRCSim root directory, and fix "Target" and "Start in" to reflect
the directory into which you unzipped Autopilot-CRRCSim.
3. Plug in joystick (The USB InterLink Controller by Futaba is convenient
because it is much like a normal RC controller).
4. Run GrounddStaion using the shortcut in the Autopilot-CRRCSim root directory.
5. Double-click on "Load Map" and choose "CRRC - Davis Field".
6. Choose GUI->3D Display.
7. In the CRRCSim window that comes up, hit ESC, then choose
Options->Controls. Choose input method to be Joystick, press Configure...,
choose what channel corresponds to Aileron, Elevator, and Throttle (Rudder
is not used), and click Calibrate to calibrate the joystick. Once you exit
out of the controls windows, hit ESC again to remove the menu bar at the top
and unpause the display.
8. Back in the ground station, choose Autopilot->Start Local Autopilot.
The autopilot will come up in a terminal window.
9. Maximize the throttle control on your joystick.
10. Back in the ground station, choose Simulator->Start Simulator. The
simulator will come up in a terminal window.
11. Looking at the ground station and 3D display, fly airplane to a decent
altitude (you shouldn't have to actually touch the controls if the throttle
is maximized because it will go up on its own).
12. With the focus on the 3D display, hit F1 and then 1 to engage the
autopilot (at any time, F1 and then 2 will disengage it and return to flying
the airplane manually).
13. Back in the ground station, double-click on locations on the map in
the ground station to choose waypoints, and then double-click "Upload Waypoints".
14. "Clear Waypoints", choose waypoints, "Upload Waypoints" as desired.
Using a Different Input Device
The basic usage instructions given above are not dependent on joystick
usage. Any other CRRCSim-supported input device may be used instead; just
select the input device of your choice in the 3D display's input device
dialog.
Note About the Cygwin DLL
The autopilot as compiled for Windows (avionics.exe) uses the Cygwin DLL. If
you have Cygwin installed on your computer, use your existing Cygwin DLL
instead of the one in the Autopilot-CRRCSim distribution (delete the one in
the distribution and copy yours in its place, or just delete the one in the
distribution if your Cygwin DLL is in your PATH), as it appears that
programs using some different versions of the Cygwin DLL cannot run at the
same time. This should not require you to recompile the autopilot, as the
Cygwin DLL has not changed so as to break compatibility in a long time.
Advanced Usage
The Autopilot-CRRCSim combination is designed to be capable of testing new
autopilot control laws, etc, in both a hardware-in-the-loop configuration
and a full-desktop-simulation configuration.
Communication Arrangement
* CRRCSim in simulator mode (no GUI) exchanges state data and servo
commands with autopilot.
* CRRCSim in 3D display mode (no simulation) exchanges operator commands
and state data with ground station.
* Ground station forwards operator commands from 3D display (converted
to servo format) to autopilot, and forwards state data from autopilot to 3D
display.
* The upshot: You can fly any of the following using the same ground
station, 3D display, and joystick: real airplane with real autopilot
hardware, real autopilot hardware using state data from simulator, autopilot
and simulator on the same PC. You can also fly a real airplane (with real
autopilot hardware) using an RC transmitter and the same ground station and
3D display (using autopilot options differing by removing "-unav off" and
"-uplinkservo on").
Running the Autopilot on Separate Hardware
* Compile autopilot for hardware and OS as necessary (See TODDNOTES.TXT
in Autopilot-CRRCSim's modified MNAV autopilot source for details about
compiling the autopilot on a variety of platforms).
* See MNAV.bat in the ground station directory, in particular the line
that begins with "avionics". You'll want to run the same command on your
other hardware, modifying the -ip and -simip parameters to be the IP
addresses of your ground station and simulator computers.
Running the Simulator on Separate Hardware
* Compile CRRCSim as necessary.
o In the current Autopilot-CRRCSim release, the CRRCSim source is
separated; copy the modified files into the CRRCSim source directory before
compiling.
o When compiling CRRCSim on Windows (using Dev-C++), compile it as
"Win32 Console" to make it so that you can quit CRRCSim in no-gui simulator
mode (otherwise it runs in the background).
* See crrcsim-sim.bat in the ground station directory, in particular the
line that begins with "crrcsim". You'll want to run the same command on your
other hardware, modifying the inputMethod.mnav.device in crrcsim-sim.xml as
described in mnav.txt.
Using a Different Autopilot
The interfaces used for CRRCSim to communicate with the Crossbow MNAV
autopilot are very general; see mnav.txt for more details.
Todd R. Templeton, 1/30/2007
|