Open source simulator for autonomous vehicles built on Unreal Engine / Unity, from Microsoft AI & Research

Overview

Welcome to AirSim

AirSim is a simulator for drones, cars and more, built on Unreal Engine (we now also have an experimental Unity release). It is open-source, cross platform, and supports software-in-the-loop simulation with popular flight controllers such as PX4 & ArduPilot and hardware-in-loop with PX4 for physically and visually realistic simulations. It is developed as an Unreal plugin that can simply be dropped into any Unreal environment. Similarly, we have an experimental release for a Unity plugin.

Our goal is to develop AirSim as a platform for AI research to experiment with deep learning, computer vision and reinforcement learning algorithms for autonomous vehicles. For this purpose, AirSim also exposes APIs to retrieve data and control vehicles in a platform independent way.

Check out the quick 1.5 minute demo

Drones in AirSim

AirSim Drone Demo Video

Cars in AirSim

AirSim Car Demo Video

How to Get It

Windows

Build Status

Linux

Build Status

macOS

Build Status

For more details, see the use precompiled binaries document.

How to Use It

Documentation

View our detailed documentation on all aspects of AirSim.

Manual drive

If you have remote control (RC) as shown below, you can manually control the drone in the simulator. For cars, you can use arrow keys to drive manually.

More details

record screenshot

record screenshot

Programmatic control

AirSim exposes APIs so you can interact with the vehicle in the simulation programmatically. You can use these APIs to retrieve images, get state, control the vehicle and so on. The APIs are exposed through the RPC, and are accessible via a variety of languages, including C++, Python, C# and Java.

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

Note that you can use SimMode setting to specify the default vehicle or the new ComputerVision mode so you don't get prompted each time you start AirSim.

More details

Gathering training data

There are two ways you can generate training data from AirSim for deep learning. The easiest way is to simply press the record button in the lower right corner. This will start writing pose and images for each frame. The data logging code is pretty simple and you can modify it to your heart's content.

record screenshot

A better way to generate training data exactly the way you want is by accessing the APIs. This allows you to be in full control of how, what, where and when you want to log data.

Computer Vision mode

Yet another way to use AirSim is the so-called "Computer Vision" mode. In this mode, you don't have vehicles or physics. You can use the keyboard to move around the scene, or use APIs to position available cameras in any arbitrary pose, and collect images such as depth, disparity, surface normals or object segmentation.

More details

Weather Effects

Press F10 to see various options available for weather effects. You can also control the weather using APIs. Press F1 to see other options available.

record screenshot

Tutorials

Participate

Paper

More technical details are available in AirSim paper (FSR 2017 Conference). Please cite this as:

@inproceedings{airsim2017fsr,
  author = {Shital Shah and Debadeepta Dey and Chris Lovett and Ashish Kapoor},
  title = {AirSim: High-Fidelity Visual and Physical Simulation for Autonomous Vehicles},
  year = {2017},
  booktitle = {Field and Service Robotics},
  eprint = {arXiv:1705.05065},
  url = {https://arxiv.org/abs/1705.05065}
}

Contribute

Please take a look at open issues if you are looking for areas to contribute to.

Who is Using AirSim?

We are maintaining a list of a few projects, people and groups that we are aware of. If you would like to be featured in this list please make a request here.

Contact

Join our GitHub Discussions group to stay up to date or ask any questions.

We also have an AirSim group on Facebook.

What's New

For complete list of changes, view our Changelog

FAQ

If you run into problems, check the FAQ and feel free to post issues in the AirSim repository.

Code of Conduct

This project has adopted the Microsoft Open Source Code of Conduct. For more information see the Code of Conduct FAQ or contact [email protected] with any additional questions or comments.

License

This project is released under the MIT License. Please review the License file for more details.

Issues
  • Quadcopter Not Taking Off in Airsim Simulation

    Quadcopter Not Taking Off in Airsim Simulation

    I have gotten the Airsim environment up and running on linux, but I am unable to make the quadcopter take off. I have followed every step on the Airsim tutorial, and all my software for the Unreal Engine, Airsim, Pixhawk, and Ubunutu is up to date to the tutorial specifications. First, I attempted to use a controller to fly the quadcopter; the controller would be able to arm the quadcopter, but when I thrusted up, nothing would happen. Upon checking the RC inputs on QGroundControl and calibrating the settings multiple times, there was no change in the simulation. With the controller not working, I attempted to use DroneShell to test out different commands, but I ran into the same issues. I was able to arm the quadcopter, but taking off did not work. I either got drone hasn't came [sic] to expected z of -3.000000 within time 15.000000 sec within error margin or rpclib: function 'takeoff' (called with 1 arg(s)) threw an exception when I prompted the "takeoff" command. Using the "getimage" command did save pictures to the Airsim folder (which I verified), so I know the Unreal Simulation is able to connect with the DroneShell. I also observed that using the "disarm" command did not make the propellers stop spinning. Does anybody know if I am doing something wrong, and how to fix the errors?

    opened by exploke 40
  • Compilation errors in Linux using latest checkins

    Compilation errors in Linux using latest checkins

    It appears that this checkin adding ROSFlight functionality is causing my AirSim compilation with Ubuntu 16.04 to fail. I had success with previous AirSim versions.

    Here is the compiler output -- I wonder if these are warnings on Windows, but errors using clang 3.8 on Linux:

    [498/915] Compile Module.GeometryCache.cpp
    In file included from /home/inkjet/Documents/AirSim/Unreal Projects/Quad/Plugins/AirSim/Intermediate/Build/Linux/B4D820EA/UE4Editor/Development/AirSim/Module.AirSim.cpp:15:
    In file included from /home/inkjet/Documents/AirSim/Unreal Projects/Quad/Plugins/AirSim/Source/MultiRotorConnector.cpp:3:
    /home/inkjet/Documents/AirSim/Unreal Projects/Quad/Plugins/AirSim/Source/AirLib/include/vehicles/configs/PX4ConfigCreator.hpp:29:16: error: 
          moving a local object in a return statement prevents copy elision [-Werror,-Wpessimizing-move]
            return std::move(config);
                   ^
    /home/inkjet/Documents/AirSim/Unreal Projects/Quad/Plugins/AirSim/Source/AirLib/include/vehicles/configs/PX4ConfigCreator.hpp:29:16: note: 
          remove std::move call here
            return std::move(config);
                   ^~~~~~~~~~      ~
    In file included from /home/inkjet/Documents/AirSim/Unreal Projects/Quad/Plugins/AirSim/Intermediate/Build/Linux/B4D820EA/UE4Editor/Development/AirSim/Module.AirSim.cpp:15:
    In file included from /home/inkjet/Documents/AirSim/Unreal Projects/Quad/Plugins/AirSim/Source/MultiRotorConnector.cpp:4:
    In file included from /home/inkjet/Documents/AirSim/Unreal Projects/Quad/Plugins/AirSim/Source/AirLib/include/vehicles/configs/RosFlightQuadX.hpp:8:
    In file included from /home/inkjet/Documents/AirSim/Unreal Projects/Quad/Plugins/AirSim/Source/AirLib/include/controllers/rosflight/RosFlightDroneController.hpp:13:
    /home/inkjet/Documents/AirSim/Unreal Projects/Quad/Plugins/AirSim/Source/AirLib/include/controllers/rosflight/AirSimRosFlightBoard.hpp:105:19: error: 
          no matching conversion for functional-style cast from 'const char [50]' to 'std::exception'
                throw std::exception("cannot write motor output for index > motor count");
                      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    ThirdParty/Linux/LibCxx/include/c++/v1/exception:91:29: note: candidate constructor (the implicit copy constructor) not
          viable: no known conversion from 'const char [50]' to 'const std::exception' for 1st argument
    class _LIBCPP_EXCEPTION_ABI exception
                                ^
    ThirdParty/Linux/LibCxx/include/c++/v1/exception:94:31: note: candidate constructor not viable: requires 0 arguments,
          but 1 was provided
        _LIBCPP_INLINE_VISIBILITY exception() _NOEXCEPT {}
                                  ^
    In file included from /home/inkjet/Documents/AirSim/Unreal Projects/Quad/Plugins/AirSim/Intermediate/Build/Linux/B4D820EA/UE4Editor/Development/AirSim/Module.AirSim.cpp:15:
    In file included from /home/inkjet/Documents/AirSim/Unreal Projects/Quad/Plugins/AirSim/Source/MultiRotorConnector.cpp:4:
    In file included from /home/inkjet/Documents/AirSim/Unreal Projects/Quad/Plugins/AirSim/Source/AirLib/include/vehicles/configs/RosFlightQuadX.hpp:8:
    In file included from /home/inkjet/Documents/AirSim/Unreal Projects/Quad/Plugins/AirSim/Source/AirLib/include/controllers/rosflight/RosFlightDroneController.hpp:13:
    /home/inkjet/Documents/AirSim/Unreal Projects/Quad/Plugins/AirSim/Source/AirLib/include/controllers/rosflight/AirSimRosFlightBoard.hpp:175:15: error: 
          no matching conversion for functional-style cast from 'const char [38]' to 'std::exception'
            throw std::exception("Diff pressure sensor is not available");
                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    ThirdParty/Linux/LibCxx/include/c++/v1/exception:91:29: note: candidate constructor (the implicit copy constructor) not
          viable: no known conversion from 'const char [38]' to 'const std::exception' for 1st argument
    class _LIBCPP_EXCEPTION_ABI exception
                                ^
    ThirdParty/Linux/LibCxx/include/c++/v1/exception:94:31: note: candidate constructor not viable: requires 0 arguments,
          but 1 was provided
        _LIBCPP_INLINE_VISIBILITY exception() _NOEXCEPT {}
                                  ^
    In file included from /home/inkjet/Documents/AirSim/Unreal Projects/Quad/Plugins/AirSim/Intermediate/Build/Linux/B4D820EA/UE4Editor/Development/AirSim/Module.AirSim.cpp:15:
    
    opened by inkjet 40
  • Build Error in Hello Drone

    Build Error in Hello Drone

    Build Error

    we are trying to run the hello drone but still problem persist after installing all packages.

    trying to run the hello drone in landscape mountains, pops the error this was one scenario. next is when is insert the joystick control it runs and it pops error showing do you want to proceed with the previous successful build , if yes ...joystick control is enabled with drone . is this hello drone program automatically allows to fly or this only allows to use aid with joystick control ?

    Context details windows-10, Python 3.7, Unreal- 4.26 WhatsApp Image 2021-04-01 at 1 48 58 AM

    build 
    opened by Roopesh-Bharatwaj-K-R 36
  • Add object detection capability and python API

    Add object detection capability and python API

    About

    This PR adds the capability to detect objects with Unreal. It support setting radius from camera to search for objects and setting object name in wildcard format. One can control these settings for each camera, image type and vehicle combination separately. It output relevant information as described in DetectionInfo.

    Itcurrently support only ImageType::Scene, but can be extended by attaching the DetectionComponent in BP_PIPCamera to the relevant camera and add corresponding lines in APIPCamera::PostInitializeComponents

    • Detection APIs implementation:

      • [x] simSetDetectionFilterRadius
      • [x] simAddDetectionFilterMeshName
      • [x] simClearDetectionMeshNames
      • [x] simGetDetections
    • Detection struct:

    class DetectionInfo(MsgpackMixin):
        name = ''
        geoPoint = GeoPoint()
        box2D = Box2D()
        box3D = Box3D()
        relative_pose = Pose()
    

    TODO:

    • Implement some get API functions
    • Add Enable/Disable Detection capability API or from settings.json

    Most of the detection and object filter code was copied from https://github.com/unrealgt/UnrealGT and changed for my own needs.

    Probably much more work to do but I'm using it for a while and though other users might find it useful.

    How Has This Been Tested?

    Tested on Blocks and ModularNeighborhood environments by running the detection python script in this PR (Windows).

    Example API Call -

    camera_name = "0"
    image_type = airsim.ImageType.Scene
    
    client.simSetDetectionFilterRadius(camera_name, image_type, 80 * 100) # in [cm]
    client.simAddDetectionFilterMeshName(camera_name, image_type, "Car_*") 
    client.simGetDetections(camera_name, image_type)
    client.simClearDetectionMeshNames(camera_name, image_type)
    

    Example output -

    Cylinder: <DetectionInfo> {   'box2D': <Box2D> {   'max': <Vector2r> {   'x_val': 617.025634765625,
        'y_val': 583.5487060546875},
        'min': <Vector2r> {   'x_val': 485.74359130859375,
        'y_val': 438.33465576171875}},
        'box3D': <Box3D> {   'max': <Vector3r> {   'x_val': 4.900000095367432,
        'y_val': 0.7999999523162842,
        'z_val': 0.5199999809265137},
        'min': <Vector3r> {   'x_val': 3.8999998569488525,
        'y_val': -0.19999998807907104,
        'z_val': 1.5199999809265137}},
        'geo_point': <GeoPoint> {   'altitude': 16.979999542236328,
        'latitude': 32.28772183970703,
        'longitude': 34.864785008379876},
        'name': 'Cylinder9_2',
        'relative_pose': <Pose> {   'orientation': <Quaternionr> {   'w_val': 0.9929741621017456,
        'x_val': 0.0038591264747083187,
        'y_val': -0.11333247274160385,
        'z_val': 0.03381215035915375},
        'position': <Vector3r> {   'x_val': 4.400000095367432,
        'y_val': 0.29999998211860657,
        'z_val': 1.0199999809265137}}}
    

    Screenshots (if appropriate):

    • Blocks Unreal blocks_ue4 Python blocks_python

    • ModularNeighborhood Unreal

    MN_ue4 Python MN_python

    feature request 
    opened by alonfaraj 36
  • Controlling two drones using keyboard keys

    Controlling two drones using keyboard keys

    Is it possible to control two drones in AirSim using keyboard keys? I tried to change the settings.json file and now I have two drones in my project now. However, I do not know how to control them using keyboard keys in AirSim. I would like to create the codes using Python. Can anyone help please?

    opened by AngelTang190 36
  • Some problem abot the OSX

    Some problem abot the OSX

    image My mac is 10.15.4 OSX. There are some problem when I run the./build.sh. I have see the pollin and pollout function in the class definition, but I don't know why it will be crashed.

    question osx 
    opened by Gatsby23 32
  • Mavsdk python package with AirSim simulator

    Mavsdk python package with AirSim simulator

    Question

    What's your question?

    Include context on what you are trying to achieve

    Context details

    Include details of what you already did to find answers

    Below screenshot represents the details of my system: Capture

    AirSim version (1.3.1) Unreal version(4.25) python version (3.8.3)

    Im using AirSim simulator for my test cases. As of now I want communication to happen between 2 drones in an automated simulation environment of AirSim. I also want to know if mavsdk python package can be used along with airsim.

    Details of what I already tried to check if Mavsdk python package can be used along with AirSim simulator:

    1. I searched for "mavsdk+airsim" in google. I could then access the link "https://dev.px4.io/v1.9.0/en/simulation/airsim.html". But I couldnt find anything related to combination of airsim and mavsdk. I couldnt find anything related to combination of airsim and mavsdk even in the link "https://github.com/microsoft/AirSim/blob/master/docs/px4_sitl.md".
    2. I searched for "mavsdk" in the main search of "https://microsoft.github.io/AirSim/", but i couldnt find anything in it.
    question multi-agent 
    opened by AIKUUM 31
  • Faster Image Capture

    Faster Image Capture

    Rebased and working version of #2472. Needs more testing

    See some benchmarks on my system here - https://github.com/microsoft/AirSim/pull/2472#issuecomment-633098747

    One thing I noticed is that with the PR, we're getting 4 channels RGBA instead of 3 in master, this now becomes inline with Unity which is also giving 4 channels

    My later commits might be a bit haphazard, will clean up later

    Binaries - https://drive.google.com/open?id=14t9rmTGR3Au0R5V8GoF5DfYKYcLOJSAU Linux - -opengl gives correct images, default Vulkan gives scrambled data, see comment below

    On Linux, with binary, I'm getting about 2x improvement from ~15 (latest release) to ~35 FPS on my system

    Image types Scene, Segmentation, Normals work correctly, however Depth images is giving 8 channels somehow?

    If someone wants to test using this PR from source, use this branch - https://github.com/rajat2004/AirSim/tree/faster_img_cap_test (It's updated to latest master, and will be pushing any commits there first)

    opened by rajat2004 29
  • AttributeError: 'MultirotorClient' object has no attribute 'getLidarData'

    AttributeError: 'MultirotorClient' object has no attribute 'getLidarData'

    I am trying to run the code "lidar.py" and getting this error.i have searched for "getLidarData" to include but I did not find it how I can resolve the problem Same error I am getting for car client

    opened by Ahmad5112 29
  • data mismatch between simGetVehiclePose() and simSetVehiclePose()

    data mismatch between simGetVehiclePose() and simSetVehiclePose()

    stepsize= [0,0,10] airsim_client.simSetVehiclePose(airsim.Pose(airsim.Vector3r(currentposition.x_val+ stepsize[0], currentposition.y_val+stepsize[1], currentposition.z_val+stepsize[2]), airsim.to_quaternion(0, 0, 20)), True) currentposition.x_val+ stepsize[0] 3.0517577442878974e-07 currentposition.y_val+stepsize[1] 0.0 currentposition.z_val+stepsize[2] 21.820711135864258 currentposition = airsim_client.simGetVehiclePose().position print(currentposition) { 'x_val': 3.0517577442878974e-07, 'y_val': 0.0, 'z_val': 11.820711135864258}

    opened by husha1993 28
  • 'roslaunch airsim_ros_pkgs airsim_node.launch;' is stuck at 'process[ned_to_enu_pub-3]: started with pid [5052]'

    'roslaunch airsim_ros_pkgs airsim_node.launch;' is stuck at 'process[ned_to_enu_pub-3]: started with pid [5052]'

    Question

    'roslaunch airsim_ros_pkgs airsim_node.launch;' is stuck at 'process[ned_to_enu_pub-3]: started with pid [5052]'

    I'm following the tutorial: https://microsoft.github.io/AirSim/airsim_ros_pkgs/. Everything went on well until 'roslaunch airsim_ros_pkgs airsim_node.launch;' .

    The program got stuck at 'process[ned_to_enu_pub-3]: started with pid [5052]'. I have tried using 'catkin clean' and run it again several times but the same issue happened every time.

    Details are provided below:

    Laptop:~/AirSim/ros$ roslaunch airsim_ros_pkgs airsim_node.launch; ... logging to /home/lufe/.ros/log/70e59aba-5d00-11eb-856c-94e6f7b226e5/roslaunch-lufe-Laptop-5026.log Checking log directory for disk usage. This may take a while. Press Ctrl-C to interrupt Done checking log file disk usage. Usage is <1GB.

    started roslaunch server http://lufe-Laptop:42707/

    SUMMARY

    PARAMETERS

    • /airsim_node/host_ip: localhost
    • /airsim_node/is_vulkan: False
    • /airsim_node/publish_clock: False
    • /airsim_node/update_airsim_control_every_n_sec: 0.01
    • /airsim_node/update_airsim_img_response_every_n_sec: 0.05
    • /airsim_node/update_lidar_every_n_sec: 0.01
    • /rosdistro: melodic
    • /rosversion: 1.14.10

    NODES / airsim_node (airsim_ros_pkgs/airsim_node) ned_to_enu_pub (tf/static_transform_publisher)

    auto-starting new master process[master]: started with pid [5037] ROS_MASTER_URI=http://localhost:11311

    setting /run_id to 70e59aba-5d00-11eb-856c-94e6f7b226e5 process[rosout-1]: started with pid [5048] started core service [/rosout] process[airsim_node-2]: started with pid [5051] process[ned_to_enu_pub-3]: started with pid [5052]

    The last time it ran over a night. Stuck at the same step. I would appreciate any help!

    question ros 
    opened by LuciusLuF 27
  • AirSim on Unreal Engine 5

    AirSim on Unreal Engine 5

    What feature are you suggesting?

    Overview:

    AirSim on Unreal Engine 5

    Smaller Details:

    When :)

    Nature of Request:

    Why would this feature be useful?

    4 < 5

    opened by TomAvrech 0
  • build.cmd throws this error

    build.cmd throws this error "LINK : fatal error LNK1181: cannot open input file 'rpc.lib'"

    i want to create a custom environment for simulation.

    im following the guide https://microsoft.github.io/AirSim/build_windows/ to build the solution

    when running the build.cmd it starts going and then throws this error.

    image

    the problem is within the AirLib but i can't figure this out.

    am i missing some dependencies?

    opened by 1080772AntonioDidier 1
  • DefaultSensors->Barometer/Imu/Gps/...cannot be applied to corresponding sensors

    DefaultSensors->Barometer/Imu/Gps/...cannot be applied to corresponding sensors

    In my settings.json has following two configs.

    "DefaultSensors": 
    {
    	"Distance":
    	{
    		"SensorType": 5,
    		"Enabled": true, "DrawDebugPoints": true,
    		"MinDistance": 0.2,  "MaxDistance": 100
    	},
    	"Lidar":
    	{
    		"SensorType": 6,
    		"Enabled": true, "DrawDebugPoints": true,
    		"NumberOfChannels": 32, "Range": 60,
    		"RotationsPerSecond": 10, "PointsPerSecond": 100000,
    		"VerticalFOVLower": -30, "VerticalFOVUpper": 30,
    		"HorizontalFOVStart": 15, "HorizontalFOVEnd": 345,
    		"DataFrame": "SensorLocalFrame", "ExternalController": false
    	}
    }
    

    "Vehicles":
    {
    	"drone_0":
    	{
    		"X": 2, "Y": 4, "Z": 0, "Roll": 0, "Pitch": 0, "Yaw": 0,
    		"VehicleType": "SimpleFlight",
    		"Sensors":
    		{
    			"front_distance": { "SensorType": 5, "X": 0.5, "Y": 0, "Z": 0 },
    			"top_lidar": { "SensorType": 6, "X": 0, "Y": 0, "Z": -0.24 }
    		}
    

    remains from #4469 @jonyMarino @rajat2004 @zimmy87

    feature request sensors 
    opened by dzywater 3
  • client.simSetFocalLength Issue

    client.simSetFocalLength Issue

    Bug report

    • AirSim Version/#commit: 7/29/2022
    • UE/Unity version: 4.27
    • autopilot version: N/A
    • OS Version: Windows 10 Pro, 19044.1826

    What's the issue you encountered?

    Originally, this problem showed up in computer vision mode. I was trying to modify camera parameters in the settings.json, but when that was not working due to cv mode, I found the client.simSetFocalLength function. However, this gave the following error: msgpackrpc.error.RPCError: rpclib: server could not find function 'simSetFocalLength' with argument count 4. I thought this might be an issue with cv mode, so I also tried it with multirotor settings and with simGetFocalLength. Both of these are giving similar argument errors in the debug and terminal as well as in the client.py.

    I tried looking up solutions to this problem and the only reason I could find was one person saying that it might be due to client and server versions, but I checked that both of mine are up to date. (There seems to be hard coded 1s for the versions in client.py?) Any suggestions or solutions would be greatly appreciated!

    msgpack error debug msgpack error client py

    Settings

    {
      "SimMode" : "Multirotor", 
      "SettingsVersion" : 1.2, 
      "SeeDocsAt" : "https://github.com/Microsoft/AirSim/blob/master/docs/settings.md",
      "ClockSpeed": 10,
      "CameraDefaults": {
        "CaptureSettings": [
          {
            "ImageType": 0,
            "Width": 320,
            "Height": 320,
            "FOV_Degrees": 84,
            "AutoExposureSpeed": 100,
            "MotionBlurAmount": 0
          },
          {
            "ImageType": 1,
            "Width": 1920,
            "Height": 1080,
            "FOV_Degrees": 84,
            "AutoExposureSpeed": 100,
            "MotionBlurAmount": 0
          },
          {
            "ImageType": 6,
            "Width": 320,
            "Height": 320,
            "FOV_Degrees": 84,
            "AutoExposureSpeed": 100,
            "MotionBlurAmount": 0
          },
          {
            "ImageType": 2,
            "Width": 320,
            "Height": 320,
            "FOV_Degrees": 84,
            "AutoExposureSpeed": 100,
            "MotionBlurAmount": 0
          }
      ]
    },
      "Vehicles": {
         "Drone1": {
             "VehicleType": "SimpleFlight",
             "AutoCreate": true,
             "Sensors": {
                 "Altitude":{
                     "SensorType": 5,
                     "Enabled": true,
                     "Yaw": 0, "Pitch": -90, "Roll": 0,
                     "MaxDistance": 30,
                     "DrawDebugPoints": true
                 },
                 "RangeSensor":{
                     "SensorType": 5,
                     "Enabled": true,
                     "Yaw": 0, "Pitch": -50, "Roll": 0,
                     "MaxDistance": 30,
                     "DrawDebugPoints": true
                 },
                 "LidarDistance": {
                  "SensorType": 6,
                  "Enabled" : true,
                  "NumberOfChannels": 16,
                  "PointsPerSecond": 10000,
                  "X": 1, "Y": 0, "Z": 0,
                  "VerticalFOVUpper": 1,
                  "VerticalFOVLower": -1,
                  "HorizontalFOVStart": -15,
                  "HorizontalFOVEnd": 15,
                  "DataFrame": "SensorLocalFrame",
                  "DrawDebugPoints": false
                 },
                 "Barometer":{
                     "SensorType": 1,
                     "Enabled": true,
                     "PressureFactorSigma": 0.0001825
                 },
                 "MyLidar1": {
                     "SensorType": 6,
                     "Enabled" : true,
                     "NumberOfChannels": 16,
                     "PointsPerSecond": 10000,
                     "X": 0, "Y": 0, "Z": -1,
                     "DrawDebugPoints": false
                 },
                 "MyLidar2": {
                     "SensorType": 6,
                     "Enabled" : true,
                     "NumberOfChannels": 4,
                     "PointsPerSecond": 10000,
                     "X": 0, "Y": 0, "Z": -1,
                     "DrawDebugPoints": false
                 }
             },
             "Cameras": {
                 "Test0": {
                     "CaptureSettings": [
                       {
                         "ImageType": 0,
                         "Width": 640,
                         "Height": 512,
                         "FOV_Degrees": 90,
                         "AutoExposureSpeed": 100,
                         "AutoExposureBias": 0,
                         "AutoExposureMaxBrightness": 0.64,
                         "AutoExposureMinBrightness": 0.03,
                         "MotionBlurAmount": 0,
                         "TargetGamma": 1.0,
                         "ProjectionMode": "",
                         "OrthoWidth": 5.12
                       }
                     ],
                     "NoiseSettings": [
                       {
                         "Enabled": false,
                         "ImageType": 0,
     
                         "RandContrib": 0.2,
                         "RandSpeed": 100000.0,
                         "RandSize": 500.0,
                         "RandDensity": 2,
     
                         "HorzWaveContrib":0.03,
                         "HorzWaveStrength": 0.08,
                         "HorzWaveVertSize": 1.0,
                         "HorzWaveScreenSize": 1.0,
     
                         "HorzNoiseLinesContrib": 1.0,
                         "HorzNoiseLinesDensityY": 0.01,
                         "HorzNoiseLinesDensityXY": 0.5,
     
                         "HorzDistortionContrib": 1.0,
                         "HorzDistortionStrength": 0.002
                       }
                     ],
                     "Gimbal": {
                       "Stabilization": 0,
                       "Pitch": 0, "Roll": 0, "Yaw": 0
                     },
                     "X": 0, "Y": 0, "Z": 0,
                     "Pitch": 0, "Roll": 0, "Yaw": 0
                 }
             }
         }
     }
     }
    

    How can the issue be reproduced?

    1. Run client.simSetFocalLength("focal_length, "camera_name", vehicle_name="vehicle_name", external=False) in code or debug
    2. Run client.simGetFocalLength("camera_name", vehicle_name="vehicle_name", external=False) in code or debug

    Include full error message in text form

    msgpackrpc.error.RPCError: rpclib: server could not find function 'simSetFocalLength' with argument count 4. msgpackrpc.error.RPCError: rpclib: server could not find function 'simGetFocalLength' with argument count 3. rpclib: server could not find function 'simSetFocalLength' with argument count 4. rpclib: server could not find function 'simGetFocalLength' with argument count 3.

    What's better than filing an issue? Filing a pull request :).

    opened by EvelynM7 0
  • How to use both car and UAV.

    How to use both car and UAV.

    Question

    What's your question?

    I want to simulate this situation: A car runs in the ground and an UAV follows the car in the sky. I add car and UAV in "settings.json". If I chose car mode, the UAV is not loaded in UE4. If I chose UAV mode, the car is not loaded in UE4.

    Include context on what you are trying to achieve

    the settings is as follow:

    { "SeeDocsAt": "https://github.com/Microsoft/AirSim/blob/master/docs/settings.md", "SettingsVersion": 1.2, "SimMode": "Car", "CameraDefaults": { "CaptureSettings":[{ "ImageType":0, "Width":1920,"Height":1080, "FOV_Degrees": 90,"AutoExposureSpeed": 100,"MotionBlurAmount": 0 }] }, "Vehicles": { "AAA": { "VehicleType": "SimpleFlight", "X": 100, "Y": 100, "Z": -10, "Yaw": -135 }, "CARA": { "VehicleType": "PhysXCar", "DefaultVehicleState": "", "AutoCreate": true, "EnableCollisionPassthrogh": false, "EnableCollisions": true, "RC": { "RemoteControlID": 0 }, "Pitch": 0, "Roll": 0, "Yaw": 0 },

        "CARB": {
            "VehicleType": "PhysXCar",
            "DefaultVehicleState": "",
            "AutoCreate": true,
            "EnableCollisionPassthrogh": false,
            "EnableCollisions": true,
            "RC": {
                "RemoteControlID": 1
            },
            "X": 0, "Y":  -30, "Z": 0,
            "Pitch": 0, "Roll": 0, "Yaw": 0
        }
    }
    

    }

    opened by bitshenwenxiao 1
Releases(v1.8.1-windows)
Owner
Microsoft
Open source projects and samples from Microsoft
Microsoft
Multi-sensor perception for autonomous vehicles

Multi-Sensor Fusion for Perception -- 多传感器融合感知 Maintained by Ge Yao, [email protected] Up & Running Overview 本Repo为基于ROS melodic @ Ubuntu 18.04的Mul

Ge Yao 4 Jun 11, 2022
AWS Ambit Scenario Designer for Unreal Engine 4 (Ambit) is a suite of tools to streamline content creation at scale for autonomous vehicle and robotics simulation applications.

AWS Ambit Scenario Designer for Unreal Engine 4 Welcome to AWS Ambit Scenario Designer for Unreal Engine 4 (Ambit), a suite of tools to streamline 3D

AWS Samples 47 Jul 24, 2022
ModuLiDAR is an all-in-one open-source software for autonomous UGVs and industrial robots.

ModuLiDAR is an all-in-one open-source software for autonomous UGVs and industrial robots. the target industries that ModuLiDAR is working on are farming industry, mining industry, warehouses industry, and construction industry.

null 18 Jun 22, 2022
Open source software for autonomous drones.

Prometheus - 自主无人机开源项目 [English Readme] Prometheus是希腊神话中最具智慧的神明之一,希望本项目能为无人机研发带来无限的智慧与光明。 项目总览 Prometheus是一套开源的自主无人机软件平台,为无人机的智能与自主飞行提供全套解决方案。本项目基于PX4

Amov Lab 1.4k Aug 5, 2022
An Open-source Strong Baseline for SE(3) Planning in Autonomous Drone Racing

Fast-Racing An Open-source Strong Baseline for SE(3) Planning in Autonomous Drone Racing 0. Overview Fast-Racing is a strong baseline that focuses on

ZJU FAST Lab 83 Aug 8, 2022
A Motorola 68K simulator based on Musashi-master 68K simulator.

cpmsim Originally referenced as http://home.earthlink.net/~schultdw/cpm68/simulator.html (now 404) This simple CP/M-68K simulator, is built around the

Neil Cherry 8 Oct 26, 2021
The movements of your RC vehicles are jerky and not smooth? This Arduino device will solve this issue by adding acceleration and deceleration ramps to the PWM signals!

This is an Arduino Pro Mini 3.3V / 8MHz based RC servo ramp / delay generator Features: 4 RC servo PWM inputs and outputs (can be enhanced) Reads the

null 4 Apr 15, 2022
PUBG ESP Hack for Emulator using C++ code. Player Position, Bones, Loots, Weapons, Vehicles, Boxes ... etc.

PUBG 1.7 ESP Hack for Emulator (C++ Source Code) PUBG ESP Hack for Emulator using C++ code. Player Position, Bones, Loots, Weapons, Vehicles, Boxes ..

Zero One Billion 29 Aug 7, 2022
Fast and Light-weight path smoothing methods for vehicles

path_smoother About Fast and Light-weight path smoothing methods for vehicles Denpendencies This project has been tested on Ubuntu 18.04. sudo apt-get

MingwangZhao 4 Dec 1, 2021
2.4 GHz LORA based telemetry and radio link for remote controlled vehicles

mLRS This is the mLRS project. The goal is an open source 2.4 GHz LORA-based high-performance long-range radio link, which provides fully transparent

null 44 Aug 8, 2022
An open autonomous driving platform

We choose to go to the moon in this decade and do the other things, not because they are easy, but because they are hard. -- John F. Kennedy, 1962

Apollo Auto 21.3k Aug 6, 2022
Open source Splatoon 2 save editor for the Nintendo Switch (NX) built on top of the effective-spoon project

Open source Splatoon 2 save editor for the Nintendo Switch (NX) built on top of the effective-spoon project

Crusty ★ 5 Mar 25, 2022
Open Source Cheat for Apex Legends, designed for ease of use. Made to understand reversing of Apex Legends and respawn's modified source engine as well as their Easy Anti Cheat Implementation.

Apex-Legends-SDK Open Source Cheat for Apex Legends, designed for ease of use. Made to understand reversing of Apex Legends and respawn's modified sou

null 97 Aug 3, 2022
A simple, funky, horrible fluid simulator, made possible by OLC's Pixel Game Engine

flOwie A simple, funky, horrible fluid simulator, made possible by OLC's Pixel Game Engine! Not meant for usefulness. The big O is in the name because

null 1 Jan 21, 2022
Masters degree research project source code. Might come back to it later.

Camflow Network Provenance Authors Tray Keller and Austin Waddell CamFlow and the Linux Provenance Module (LPM) framework are both an excellent step i

Tray Keller 2 Mar 14, 2022
Autonomous recorder for vex robots using the PROS API

VEX Robot Recorder Description This is a demo project for the "Recorder" class that allows the user to record and play back past recorded autonomouses

null 2 Jun 14, 2022
Decentralized architecture for loss tolerant semi-autonomous robotics

gestalt-arch Decentralized architecture for loss tolerant semi-autonomous robotics Objective We demonstrate a decentralized robot control architecture

null 4 Dec 18, 2021
Hands-On example code for Sensor Fusion and Autonomous Driving Stack based on Autoware

Autoware "Hands-On" Stanford Lecture AA274 / Graz University of Technology M. Schratter, J. Zubaca, K. Mautner-Lassnig, T. Renzler, M. Kirchengast, S.

Virtual Vehicle 23 Mar 25, 2022
VEX v5 Pro program that records driver movements and plays them back during the autonomous period.

Autonomous Recorder This code was written for team 5588R, but it can be easily modified to work with your team's robot. Notes Code isn't fully finishe

brett 2 Jun 21, 2022