Skip to content

Commit

Permalink
Merge branch 'master' of github.com:Microsoft/AirSim
Browse files Browse the repository at this point in the history
  • Loading branch information
lovettchris committed Feb 17, 2017
2 parents 3492bd3 + dd3cfa8 commit dc15bc2
Show file tree
Hide file tree
Showing 11 changed files with 13 additions and 13 deletions.
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ If you would like more data logging capabilities and other features, [file a fea
A more complex way to generate training data is by writing client code that uses our APIs. This allows you to be in full control of how, what, where and when you want to log data. See the next section for more details.

## Programmatic control
The AirSim exposes easy to use APIs in order to retrive data from the drones that includes ground truth, sensor data as well as various images. It also exposes APIs to control the drones in a platform independent way. This allows you to use your code to control different drones platforms, for example, Pixhawk or DJI Matrice, without making changes as well as without having to learn internal protocols details.
The AirSim exposes easy to use APIs in order to retrieve data from the drones that includes ground truth, sensor data as well as various images. It also exposes APIs to control the drones in a platform independent way. This allows you to use your code to control different drones platforms, for example, Pixhawk or DJI Matrice, without making changes as well as without having to learn internal protocols details.

These APIs are also available as a part of a separate independent cross-platform library so you can deploy them on an offboard computer on your vehicle. This way you can write and test your code in simulator and later execute it on the real drones. Transfer learning and related research is one of our focus areas.

Expand Down
2 changes: 1 addition & 1 deletion Unreal/Plugins/AirSim/Source/PIPCamera.h
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@


UENUM(BlueprintType, meta=(Bitflags))
enum class EPIPCameraType
enum class EPIPCameraType : uint8
{
PIP_CAMERA_TYPE_NONE = 0 UMETA(DisplayName="None"),
PIP_CAMERA_TYPE_SCENE = 1 UMETA(DisplayName="Scene"),
Expand Down
2 changes: 1 addition & 1 deletion docs/build.md
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ AirSim code has two external dependencies: Eigen library and Boost library.
To run the simulator, you need an environment and its very easy to create one! [Unreal Marketplace](https://www.unrealengine.com/marketplace) has dozens of prebuilt extra-ordinarily detailed [environments](https://www.unrealengine.com/marketplace/content-cat/assets/environments) ranging from Moon to Mars and everything in between. The one we have used for testing is called [Modular Neighborhood Pack](https://www.unrealengine.com/marketplace/modular-neighborhood-pack) but you can use any environment.
1. Either purchase an environment from Unreal Marketplace or choose one of the free ones such as [Infinity Blade series](https://www.unrealengine.com/marketplace/infinity-blade-plain-lands). Alternatively, if you look under the Learn tab in Epic Game Launcher, you will find many free samples that you can use. One of our favorites is "A Boy and His Kite" which is a 100 square miles of highly detailed environment (caution: you will need *very* beefy PC to run it!).
![Epic Launcher - Learn](images/epic_launcher_learn.png)
2. Once you have the environment, you can simply go to the Library tab of the Epic Game Launcher and add in to any project you like. We recommand creating a new blank C++ project with no Starter Content and add your environment in to it. Tip: if the environment comes with MatineeActor, delete it to avoid any demo sequences.
2. Once you have the environment, you can simply go to the Library tab of the Epic Game Launcher and add in to any project you like. We recommend creating a new blank C++ project with no Starter Content and add your environment in to it. Tip: if the environment comes with MatineeActor, delete it to avoid any demo sequences.

## Install the AirSim Plugin
### Copy plugins folder
Expand Down
4 changes: 2 additions & 2 deletions docs/code_structure.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ AirLib consists of the following components:

## Unreal/Plugins/AirSim
This is the only portion of project which is dependent on Unreal engine. We have kept it isolated so we can implement simulator for other platforms as well (for example, Unity). The Unreal code takes advantage of its UObject based classes including Blueprints.
1. *SimMode_ classes*: We wish to support various simulaor modes such as pure Computer Vision mode where there is no drone. The SimMode classes helps to implement many such different modes.
1. *SimMode_ classes*: We wish to support various simulator modes such as pure Computer Vision mode where there is no drone. The SimMode classes helps to implement many such different modes.
2. *VehiclePawnBase*: This is the base class for all vehicle pawn visualizations.
3. *VehicleBase*: This class provides abstract interface to implement combination of rendering component (i.e. Unreal pawn), physics component (i.e. MultiRotor) and controller (i.e. MavLinkHelper).

Expand All @@ -18,4 +18,4 @@ This is the library developed by our own team member Chris Lovett that provides
See [MavLinkCom](../MavLinkCom/README.md) for more info.

## Sample Programs
We have created few sample program to demonstrate how to use the API. See HelloDrone and DroneServer. The DroneServer demonstartes how to connect to the simulator using UDP port for QGC.
We have created few sample program to demonstrate how to use the API. See HelloDrone and DroneServer. The DroneServer demonstrates how to connect to the simulator using UDP port for QGC.
2 changes: 1 addition & 1 deletion docs/hard_drive.md
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,6 @@ but the drone still flies ok:
![Package Unreal Project](images/ue_hard_drive.png)

This is what my fast SSD looks like when the drone is flying in an Unreal Cooked app
(no UE editor, no debugger). Not surprizingly it is flying perfectly in this case:
(no UE editor, no debugger). Not surprisingly it is flying perfectly in this case:

![Package Unreal Project](images/cooked_ssd.png)
2 changes: 1 addition & 1 deletion docs/install_boost.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Installing Boost

1. Download [boost 1.63 zip file](https://sourceforge.net/projects/boost/files/boost/1.63.0/boost_1_63_0.zip/download)
2. Unzip boost someplace and then [set an environment variable](http://www.computerhope.com/issues/ch000549.htm) named `BOOST_ROOT` that points to the folder you just unzippsed. It should point to the root folder that contains 'bootstrap.bat'.
2. Unzip boost someplace and then [set an environment variable](http://www.computerhope.com/issues/ch000549.htm) named `BOOST_ROOT` that points to the folder you just unzipped. It should point to the root folder that contains 'bootstrap.bat'.
3. Open VS2015 x64 Native Command Prompt and cd over to the boost folder and run `bootstrap.bat`
4. from that same location run **b2 variant=debug,release link=static runtime-link=shared threading=multi address-model=64** and wait about 20 minutes (coffee time :-). Note: On Linux you can drop the address-model=64.
2 changes: 1 addition & 1 deletion docs/log_viewer.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ simulator.

To use this LogViewer, connect the simulator `before` you run the simulation. Simply press the blue connector
button on the top right corner of the window, select the Socket `tab`, enter the port number 14388, and
your `localhost` network. Then press the record button (triange on the right hand side of the toolbar).
your `localhost` network. Then press the record button (triangle on the right hand side of the toolbar).
Now start the simulator, pick some mavlink items to graph, you should see something like this:

![Log Viewer](images/log_viewer.png)
Expand Down
2 changes: 1 addition & 1 deletion docs/manual_flight.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# Manual Flight Using RC
Please see [this guide](http://ardupilot.org/copter/docs/common-pixhawk-and-px4-compatible-rc-transmitter-and-receiver-systems.html) for connecting Pixhawk to the RC transmitter.

If you discover any issues durring setup, please [let us know](https://github.com/Microsoft/AirSim/issues).
If you discover any issues during setup, please [let us know](https://github.com/Microsoft/AirSim/issues).
2 changes: 1 addition & 1 deletion docs/prereq.md
Original file line number Diff line number Diff line change
Expand Up @@ -32,5 +32,5 @@ When using hardware-in-loop mode, you can use remote controls such as Fly Sky, S
1. Connect the receiver for your remote control to the Pixhawk board. Make sure your remote control is bound to that receiver.
2. In QGroundControl, go to Radio tab and calibrate (make sure, remote control is on and the receiver is showing the indicator for the binding).
3. Go to the Flight Mode tab and chose one of the remote control switches as "Mode Channel". Then set (for example) Stabilized and Attitude flight modes for two positions of the switch.
4. Go to the Tuning section of QGroundControl and set appropriate values. For example, for Fly Sky's FS-TH9X remote control, following settings gives more realistic feel: Hover Throttle = mid+1 mark, Roll and pitch sensetivity = mid-3 mark, Altitude and position control sensitivity = mid-2 mark.
4. Go to the Tuning section of QGroundControl and set appropriate values. For example, for Fly Sky's FS-TH9X remote control, following settings gives more realistic feel: Hover Throttle = mid+1 mark, Roll and pitch sensitivity = mid-3 mark, Altitude and position control sensitivity = mid-2 mark.
5. You can usually arm the vehicle by lowering and bringing two sticks of RC together (you don't need QGroundControl after the initial setup). Now you can use RC to fly in the simulator. Typically the Altitude mode gives better experience for beginners because this mode lets the autopilot automatically maintain an altitude when the throttle stick is approximately in the middle.
2 changes: 1 addition & 1 deletion docs/settings.md
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ These settings define the Mavlink SystemId and ComponentId for the Simulator (Si
and the node that allows remote control of the drone from another app this is called the Air Control node (AirControlSysID, AirControlCompID).

If you want the simulator to also talk to your ground control app (like QGroundControl) you can also set the UDP address for that in case you want to run
that on a differenct machine (QgcHostIp,QgcPort).
that on a different machine (QgcHostIp,QgcPort).

You can connect the simulator to the LogViewer app, provided in this repo, by setting the UDP address for that (LogViewerHostIp,LogViewerPort).

Expand Down
4 changes: 2 additions & 2 deletions docs/sitl.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,9 @@
new flight algorithms in the simulator because they have a better chance of working on the real drone when we are done testing.

If you do not want to spend money on this extra hardware then you can probably get away with "software-in-loop" simulation (SITL).
In this case, the firware runs in your computer as opposed to flight controller. One downside to SITL mode is that your PC usually has more power than
In this case, the firmware runs in your computer as opposed to flight controller. One downside to SITL mode is that your PC usually has more power than
the tiny flight controller on your drone, so you may not get the same flying performance when trying the same thing on a real drone.
But it's still useful when you don't have a flight contoller handy. It is just a few more steps to set up as shown below.
But it's still useful when you don't have a flight controller handy. It is just a few more steps to set up as shown below.

# Software-In-Loop Simulation (SITL)
1. Install [BashOnWindows](https://msdn.microsoft.com/en-us/commandline/wsl/install_guide). You can also do this on an Ubuntu machine, but in that case
Expand Down

0 comments on commit dc15bc2

Please sign in to comment.