0% found this document useful (0 votes)
220 views

Setting Up SITL On Windows - Dev Documentation

This document describes how to set up SITL (Software in the Loop simulation) on Windows using Cygwin to run ArduPilot simulations. The key steps are to install Cygwin, download MAVProxy for Windows, and run sim_vehicle.py from the ArduPilot directory in Cygwin to start the simulation. Additional GCSs like Mission Planner can then connect to view and control the simulated vehicle. FlightGear can also be used for 3D visualization of the simulation.
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
220 views

Setting Up SITL On Windows - Dev Documentation

This document describes how to set up SITL (Software in the Loop simulation) on Windows using Cygwin to run ArduPilot simulations. The key steps are to install Cygwin, download MAVProxy for Windows, and run sim_vehicle.py from the ArduPilot directory in Cygwin to start the simulation. Additional GCSs like Mission Planner can then connect to view and control the simulated vehicle. FlightGear can also be used for 3D visualization of the simulation.
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 13

MENU

Docs » Simulation » SITL Simulator (Software in the Loop) » Setting Up SITL »


Setting up SITL on Windows

Setting up SITL on Windows


SITL was originally developed on Linux, but can also be built and run natively Windows. It can also be
run on a virtual machine (Linux) hosted on Windows, Mac OSX, or Linux.

This article shows how to build and run SITL (Software In The Loop) natively on Windows using
Cygwin. These commands were tested on Windows 10 with MAVProxy and Copter-4.0.0-dev.

/
MENU

MAVProxy Map: Guiding a SimulatedCopter

Installation steps
Install Cygwin as described here
Download MAVProxy for Windows (latest build), install the executable including accepting the
license and all default installation options

 Tip

Make sure that Cygwin is in your PATH. As for troubleshooting, you may add a Windows
environment variable called CYGWIN_HOME in your path pointing to your c:cygwinbin (if you
installed at “C:”). You may check it by doing a Right-click on “My Computer” -> Properties ->
/
MENU Advanced -> Environment Variables.

Running SITL
1. Open a Cygwin64 terminal from the start menu
2. Navigate to one of the vehicle directories (in this case Copter) and call sim_vehicle.py to start
SITL. If you get a windows security alert for the the rewall, allow the connection.

cd ~/ardupilot/ArduCopter
../Tools/autotest/sim_vehicle.py --map --console

3. SITL and MAVProxy will start. MAVProxy displays three windows:

A command prompt in which you enter commands to SITL


A Console which displays current status and messages
A map that shows the current position of the vehicle and can be used (via right-click) to
control vehicle movement and missions.

 Tip

/
MENU It is useful to arrange the windows as shown above, so you can observe the status and send
commands at the same time.

4. Send commands to SITL from the command prompt and observe the results on the map.

Change to GUIDED mode, arm the throttle, and then takeoff:

mode guided
arm throttle
takeoff 40

Watch the altitude increase on the console.

 Note

Takeoff must start within 15 seconds of arming, or the motors will disarm.

Change to CIRCLE mode and set the radius to 2000cm

rc 3 1500
mode circle
param set circle_radius 2000

Watch the copter circle on the map.


When you’re ready to land you can set the mode to RTL (or LAND):

mode rtl

/
MENU This is a very basic example. For links to more information on what you can do with SITL and
MAVProxy see the section: Next Steps.

 Tip

Use batch les to simplify the running of SITL down to a single double-click. See here for some
examples.

FlightGear 3D View (Optional)

FlightGear Flight Simulator can also be used as a viewer to display a 3D simulation of the vehicle and
its surroundings. This provides a much better visualization than the 2D maps and HUD ight displays
provided by MAVProxy and Mission Planner.

/
MENU

FlightGear:Simulated Copter at KSFO (click for larger view).

SITL outputs FlightGear compatible state information on UDP port 5503. We highly recommend you
start FlightGear before starting SITL (although this is not a requirement, it has been found to
improve stability in some systems).

The main steps are:

1. Download FlightGear 3.4.0

 Warning

At time
of writing version 3.4.0 is required on Windows.
/
MENU
2. Open a new command prompt and run the appropriate batch le for your vehicle in
/ardupilot/Tools/autotest/: fg_plane_view.bat (Plane) and fg_quad_view.bat (Copter).

This will start FlightGear.


3. Start SITL in Cygwin in the normal way. In this case we’re specifying the start location as San
Francisco airport (KSFO) as this is an interesting airport with lots to see:

sim_vehicle.py -L KSFO

 Note

FlightGear will always initially start by loading scenery at


KSFO (this is hard-coded into the batch le) but will switch to the scenery for the
simulated location once SITL is started.

 Tip

If the vehicle appear to be hovering in space (no


scenery) then FlightGear does not have any scenery les for the selected location. Choose a
new location!

You can now takeoff and y the vehicle as normal for Copter or Plane, observing the vehicle
movement including pitch, yaw and roll.

Connecting with another GCS


You can attach multiple additional ground control stations to SITL from MAVProxy. The simulated
vehicle can then be controlled and viewed through any attached GCS.
/
MENU First use the output command on the MAVProxy command prompt to determine where MAVProxy
is sending packets:

GUIDED> output
GUIDED> 2 outputs
0: 127.0.0.1:14550
1: 127.0.0.1:14551

This tells us that we can connect Mission Planner to either UDP port 14550 or 14551, as shown on
the dialog below.

Mission Planner: Connecting to a UDPPort

 Tip

We could connect APM Planner 2 to the remaining port. If we needed a third port, we could add it
as shown:
/
MENU GUIDED> output add 127.0.0.1:14553

Mission Planner can then be used to control the simulated vehicle in exactly the same way as though
it were a real vehicle. We can reproduce the previous “takeoff-circle-land” example as shown below:

1. Change to GUIDED mode, arm the throttle, and then takeoff

Open the FLIGHT DATA screen and select the Actions tab on the bottom left. This is where
we can change the mode and set commands.

Mission Planner: Actions Tab (Set Mode, Arm/Disarm)

Select Guided in the Mode selection list and then press the Set Mode button.
Select the Arm/Disarm button
Right-click on the map and select Takeoff. Then enter the desired takeoff altitude

/
MENU

Mission Planner Map: Takeoff Command

 Note

Takeoff must start within 15 seconds of arming, or the motors will disarm.

2. Change to CIRCLE mode on the Action tab and watch the copter circle on the map.
3. You can change the circle radius in the CONFIG/TUNING screen. Select Full Parameters List,
then the Find button and search for CIRCLE_MODE . When you’ve changed the value press the
Write Params button to save them to the vehicle.
4. When you’re ready to land you can set the mode to RTL.

Running SITL with a GCS without MAVProxy


It is also possible to interact with SITL without using MAVProxy at all using ArduCopter.elf (in the
ArduCopter directory).

Run the le in the Cygwin Terminal, specifying a home position and vehicle model as shown below:

/
MENU hamis_000@XPS12ultra ~/ardupilot/ArduCopter
$ ./ArduCopter.elf --home -35,149,584,270 --model quad
Started model quad at -35,149,584,270 at speed 1.0
Starting sketch 'ArduCopter'
Starting SITL input
bind port 5760 for 0
Serial port 0 on TCP port 5760
Waiting for connection ....

The command output shows that you can connect to SITL using TCP/IP at port 5760.

In Mission Planner we rst change the link type to TCP and then press the Connect button. Click
through the remote host and remote Port prompts as these default to the correct values.

/
MENU Mission Planner: Connecting toSITL using TCP

Mission Planner will then connect and can be used just as before.

 Tip

ArduCopter.elf has other startup options, which you can use using the -h command line
parameter:

./ArduCopter.elf -h

Updating ArduPilot
See advice on this wiki page regarding how to “Rebase” on ArduPilot’s master branch.

Updating MAVProxy
 Warning

The MAVProxy 1.4.19 *installer does not properly remove all parts of preceding installations.
Before installing a new version you must rst delete the old directory: C*:\Program Files
(x86)\MAVProxy\**.

Download and Install MAVProxy for Windows (this link always points to the latest version!)

Next steps
SITL and MAVProxy can do a whole lot more than shown here, including manually guiding the
vehicle, and creating and running missions. To nd out more:
/
MENU Read the MAVProxy documentation.
See Using SITL for ArduPilot Testing for guidance on ying and testing with SITL.

Troubleshooting

Some users have reported build errors related to Windows not setting paths correctly. For more
information see this issue.

You might also like