Simulation

From PaparazziUAV
Jump to navigation Jump to search

This page describes the steps needed to run a flight simulation from a new install.

Initializing a New Installation

paparazzi-make init

to initialize your configuration files (in the ~/paparazzi directory) and then

paparazzi-make demo

If you are working in the paparazzi3 source code, just start with make demo.

A control panel window is opened. Under the Sessions menu, choose Muret Sim (Muret is a village near Toulouse, France). This spawns several programs :

  • Aircraft MJ5 is the interface of a simulator program. It runs the same code than the one for the autopilot processor plus a rudimentary flight dynamic model. it allows you to test the interactions with the UAV and the flight plan execution.
  • cockpitMM MJ5 is a representation of a radio control transmitter used with this aircraft. It allows you to test the interactions available through that device.
  • GCS (Ground Control Station) is the main window. It displays the track of the aircraft, as well as informations about the execution of its flight plans. This program provide menus for the datalink functions and is able to edit a flight plan.
  • Gaia is the interface of the world simulator. It will distribute time ticks to the aircrafts simulator and allow acces to global parameters like wind, temperature used by the infrared sensor, and GPS coverage.

Start the Simulation

Click the Boot button on the aircraft window. This boots your aircraft, as if you were powering the autopilot. The aircraft starts to send messages to the ground station. Its position and its flight parameters are displayed in the GCS window.

The map widget is able use many map formats and display them according to many projections. To make things simple, we start by using images from Google. Under the Maps menu in the GCS, choose GoogleMaps Fill. The program attempts to download the required satellite images from the Google servers. If it succeeds, you should now see the nice countryside of Muret. Navigation and other features of the map are described on the GCS page.

The lower part of the GCS displays the flight plan in a tree view. You see that the current flight plan is composed of four blocks:

  • survey road 1
  • survey road 2
  • wait
  • go too far

Open the active block: the active stage in the block is highlighted.

Fly

<block name="survey road 1">
 <go wp="road_start"/>
 <go wp="road_end"/>
</block>

This block is about the simplest you can write. It flies the aircraft to waypoint road_start, then to waypoint road_end. The vertical control mode is unspecified and defaults to altitude hold. Being unspecified, the target altitude is the waypoint's one (250m for these two waypoints).

In the Simulator, press the Launch button to simulate a hand launch. The autopilot detects the launch by monitoring the groundspeed. The flight time (in the aircraft label on the GCS) then starts to count.

Position of the aircraft is displayed on the map: the aircraft goes to the road_start waypoint (to the west) and then to the road_end waypoint (to the east). Current stage also changes accordingly in the flight plan display.

The orange triangle (the carrot) on the map is the point that the aircraft is navigating toward. The aircraft proceeds through the two waypoints then proceeds on to the next block.

Fly forever

<while cond="TRUE">
 <go wp="road_start" from="road_end" hmode="route"/>
 <go wp="road_end" from="road_start" hmode="route"/>
</while>

This block is not much more complicated than the previous one. It shows another horizontal mode which is named route. The aircraft returns to waypoint road_start and then proceeds to road_end staying on the line between the waypoints. It is displayed on the map by a green line where the target point (the orange triangle) is moving along.

The two go stages are here inserted into a while element with an ever-true condition: the aircraft loops forever between the two waypoints.


Circle

<block name="circle">
 <circle wp="road_end" ALT="ground_alt+50" radius="75"/>
</block>

Jump to this block with double-click on the block line (or using the MJ5 aircraft menu, Datalink, Jump to block, circle). The aircraft circles clockwise around the road_end waypoint.


Fly too far

go wp="too far"
circle wp="too far" radius="50"

This block is here to demonstrate the home mode feature of the autopilot. The navigation system has a an allowed zone that it must not leave or it will enter an emergency navigation mode and circles the HOME waypoint until the further direction is received. This safety zone is displayed as a circle on the map.

Jump to this block by double-cliking on it.

The aircraft flies to the too far waypoint, cross the protection enveloppe and switches to home mode: the AP mode in the aircraft strip switches from AUTO2 to HOME.

To get out of this mode and switch back to the default AUTO2, click on the AUTO2 button in the aircraft strip. The aircraft then flies again towards too far and again swithes to HOME mode.

Move the waypoint

Waypoints are moveable during flight: You can left-click and drag the too far waypoint inside the blue safety circle. Get out of the HOME mode (AUTO2 button) and the aircraft will go circling around the now not too far waypoint.

Click on the too far waypoint; A dialog box pops up. You can change the altitude of the waypoin by editing it with the keyboard or using the -10 and +10 buttons. CLick Ok and Send WPs. You can look at the altitude change in the aircraft strip.

You now can survey the line you want with the survey road 2 block by moving the two waypoints. You can move them while the aircraft is flying from one to the other and the line will be updated in real-time.

Change the environment

The Gaia interface allows the user to change:

  • The wind: Set up a wind speed of 5m/s and observe the trajectory and the speed evolution (in the aircraft strip and in the PFD page of the notebook).
  • The GPS coverage: Shut down the GPS (GPS OFF) and observe the resulting mode (NO_GPS) and trajectory. In this mode, the autopilot uses the failsafe roll, pitch and throttle settings defined in the airframe file. Note that in a real flight, an aircraft without GPS won't be able to send its position ... The simulation is cheating here !
  • The time scale: If you are in a hurry ... (bug: adjusting the time scale may affect the navigation behavior)

View the simulation in Flight Gear

To view the simulation in Flight Gear, do the following:

  • In Paparazzi Center, add the -fg option plus the IP address of the machine running flightgear:
/home/your_username/paparazzi/paparazzi3/sw/simulator/launchsitl -a TJ1 -fg 127.0.0.1 -boot -norc
  • Launch Flight Gear with the following command:
fgfs --fdm=null --native-gui=socket,in,30,,5501,udp

Why is it night in Flight Gear, if my sim is flying during the day?

The time that is sent to Flight Gear is hard coded into the code, so if you try to view the output of the simulation and your simulated flight is located far from France, in Flight Gear, everything may be dark. If your simulated flight is in France, then you will always have daylight in Flight Gear. To fix this, do the following (you will need to have paparazzi-dev installed to do this):

  • Get the Unix time during your local daylight hours by running the following command in your terminal:
date +%s
  • In the file: paparazzi3/sw/simulator/fg.c find the line(line 44): "msg.cur_time = 3213092700ul;//time(NULL);"
  • Paste the output from "date +%s" in place of "3213092700"
  • The terminal change to the paparazzi3 directory and run:
make clean
make
  • In Paparazzi Center clean and rebuild your simulation
  • Launch the simulation and Flight Gear, and Flight Gear should be flying in daylight.