- Unreal 5.2.1 is now long term support and will continue to get releases build for it and new features and fixes added to it.
- Next to 5.2.1, the latest available stable Unreal Engine version will be targeted for releases, which currently is 5.4.
- Other branches for other Unreal versions might be updated in the future, but no guarantees are given and are not actively maintained or tested.
- Updated to be compatible with Unreal 5.5 on Windows, Linux is a work in progress.
- Updated Python Client to have a much faster and more recent RPC library.
- Updated and improved various documentation pages.
- Updated joystick support on Linux.
- Updated instance segmentation with option to add the Unreal Tag
InstanceSegmentation_disable
to the components/meshes you want to ignore in instance segmentation process. - Fixed the horizontal scanning pattern calculation of the GPULiDAR causing various issues when not using full 360 degrees FOV.
- Fixed RGB color rendering for annotation system and instance segmentation having a few edge cases.
- Updated Docker support to use new official Unreal 5 containers for runtime binaries and source development with updated tutorial and scripts.
- Added main setting parameter
InitialInstanceSegmentation
to toggle initial Instance Segmentation. It is enabled by default. - Added packaged binary of Blocks environment to releases for Windows and Linux for testing the simulation without needing the Unreal Editor.
- Updated Matlab API Client:
- Removed startup arguments for API control and vehicle name when creating client.
- Added vehicle name argument to most functions.
- Updated async drone functions to optionally be run in sync (wait for completion) with new
join
boolean argument.
- Fixed multi-layer annotation to no longer have very dark shadows with Lumen GI when enabling a max viewdistance for an annotation layer.
- Fixed crash when the GPU Lidar material CSV file is empty or contains empty lines.
- Updated sensor setting
DrawSensor
to false by default to avoid crashes.
- Updated to be compatible with Unreal 5.4.
- Note that 5.3 and higher requires r.DetailMode 2 console command or scalability settings to be set to Epic to avoid issues with rendering the RGB scene camera sensor. More info here.
- Updated rpclib version to unofficial patched version 2.3.1 to better support C++20.
- Updated Eigen version to unofficial patched version 3.4.1 to better support C++20.
- Updated cpp-linenoise library of DroneShell to support C++20.
- Updated json library to 3.11.3 to support C++20.
- Updated airlib to use C++20.
- Updated to be compatible with Unreal 5.3.
- Note that 5.3 breaks debug rendering! Disable it to avoid issues in editor. Fixed in 5.4
- Note that 5.3 and higher requires r.DetailMode 2 console command or scalability settings to be set to Epic to avoid issues with rendering the RGB scene camera sensor. More info here.
- Updated ROS2 wrapper to support Cosys-AirSim features and fix several issues:
- Added support for annotation cameras.
- Added support for GPU-Lidar and Echos sensors.
- Added support for ground truth labels of Lidar sensor.
- Added custom message for instance segmentation data (list with names and colors) with service to refresh the data.
- Added custom message for optional object poses data (list with names and transforms) with service to refresh the data.
- Added option to set host port.
- Added support for skidsteer and computervision modes.
- Updated all data to be in ROS standard coordinate system (no longer NED by default). Removed ENU conversion option.
- Updated transform data to work for sensors set to external mode.
- Fixed static transformations not correctly converting degrees to radians.
- Removed none-static transformations for cameras.
- Removed C++ ROS1 wrapper as Python version is more up to date.
- Added multi-layer annotation with RGB, greyscale and texture options. Extensive API integration and available for camera and GPU-LiDAR sensors.
- Updated Unreal to 5.2.1 (Thanks in part to Colosseum by Codex Laboratories LLC!).
- Updated instance segmentation to use proxy meshing, no longer requiring custom Unreal Engine fork.
- Updated object detection to also check actor child components if main actor does not match wildcard.
- Updated ground vehicles to use ChaosVehicles instead of PhysXVehicles. Some issues may arise.
- Updated settings with new parameter
MoveWorldOrigin
to move the world origin to the player start location when starting the simulator. Disabled by default. This affects things like setting the sensors to external! - Updated LiDAR sensor with parallelization to speed up pointcloud generation.
- Updated Echo sensor with optional parallelization to speed up pointcloud generation. See echo documentation for more info.
- Updated Python API module to be named cosysairsim and be installable from pip (
pip install cosysairsim
) - Updated Python API to now loads colormap from disk instead of regenerating each time and being very slow.
- Updated Matlab API Client implementation as an easy to install Matlab toolbox and completed all possible API functions (many untested!)
- Fixed passive echo beacons data structure.
- Fixed GPU Lidar not providing pointcloud in NED format.
- Fixed Echo passive data Z-direction not being in NED format.
- Merge of Cosys-Lab fork with last Public Microsoft AirSim branch version.
- Updated Unreal to 4.27 (custom fork: https://github.com/WouterJansen/UnrealEngine/tree/4.27-cosys).
- Added this changelog.
- Added Matlab API implementation.
- Added Passive Echo Beacons to simulate passive echo-based sources (ex. ultrasound sources) that can be captured by echo sensors.
- Added the player pawn vehicle to the Instance Segmentation initial run so it gets a color ID and is the LUT.
- Updated Echo sensor type to support groundtruth label retrieval and custom FOV limits.
- Updated HySLAM environment with better lightning and more random racks. Requires update of assets pack.
- Updated Car and SkidVehicle spawning/resetting to disable the toggling of physics to fix issues with custom vehicles.
- Fixed bug in GPULidar not allowing for 2D mode (1 channel). Updated documentation for 2D mode as well.
- Fixed issues with ROS Client and object pose retrieval.
- Updated the camera, Echo and (GPU)LiDAR sensors to be uncoupled from the vehicle and be placed as external world sensors.
- Added more camera sensor distortion features such as chromatic aberration, motion blur and lens distortion.
- Updated Python ROS implementation with completely new implementation and feature set. C++ version is not supported.
- Added Matlab API implementation.
- Added various random but deterministic dynamic object types and world configuration options.
- Added Echo sensor type for simulation of sensors like sonar and radar.
- Added Instance Segmentation.
- Added GPU LIDAR sensor type: Uses GPU acceleration to simulate a LiDAR sensor. Can support much higher point density then normal LiDAR and behaves more authentic and has realistic intensity generation.
- Updated ComputerVision mode: Now has full API and Simulation just like other vehicle types. It mostly means it can now have sensors attached (outside of IMU). Improved handling and camera operation.
- Updated LIDAR sensor type: Fixed not tracing correctly, added ground truth (point labels) generation, added range-noise generation. Improved API pointcloud delivery to be full scan instead of being frame-rate dependent and partial.
- Added option to hot-reload plugin through Unreal Editor (faster development).
- Added skid steering SimMode and vehicle type based on NVIDIA tank PhysX vehicle model. ClearPath Husky and Pioneer P3DX implemented as vehicle types using this new vehicle model.
- Added BoxCar vehicle model to the Car SimMode to have a smaller vehicle to use in indoor spaces.
- Updated standard camera render resolution target to 960x540. Updated standard uncompressed image format to RGB instead of BGR (this breaks OpenCV support but fixes ROS images).
- Added option to Cameras, EchoSensor and GPULidar to ignore certain objects with the MarkedIgnore Unreal tag and enabling the "IgnoreMarked" setting in the settings file.
- Updated Unreal to 4.24 (custom fork: https://github.com/WouterJansen/UnrealEngine/tree/4.24-cosys)
- Dropped support for Unity Environments.
- Optical flow camera
- simSetKinematics API
- Dynamically set object textures from existing UE material or texture PNG
- Ability to spawn/destroy lights and control light parameters
- Control manual camera speed through the keyboard
- Latest release
v1.6.0
for Windows and Linux - Fix: DepthPlanar capture
- Fix: compression bug in segmentation palette
- Object detection API
- GazeboDrone project added to connect a gazebo drone to the AirSim drone
- Control manual camera speed through the keyboard
- Octo X config
- API for list of vehicle names
- Fix: issue where no new scene is rendered after simContinueForTime
- Fix:Check for settings.json in current directory as well
- Make falling leaves visible in depth and segmentation
- Fix: Unity Car API
- Latest release
v1.5.0
for Windows and Linux - fix px4 connection for wsl 2.
- External physics engine
- ArduPilot Sensor Updates
- Add new build configuration "--RelWithDebInfo" which makes it easier to debug
- Add ApiServerPort to available AirSim settings
- ROS: Use the same settings as AirSim
- Add moveByVelocityZBodyFrame
- Spawn vehicles via RPC
- Unity weather parameters, weather HUD, and a visual effect for snow
- Rotor output API
- Extend Recording to multiple vehicles
- Combine Lidar Segmentation API into getLidarData
- Added continueForFrames
- Latest release
v1.4.0
for Windows and Linux
- Add Actions script to build and deploy to gh-pages
- Gym environments and stable-baselines integration for RL
- Programmable camera distortion
- Voxel grid construction
- Event camera simulation
- Add Github Actions CI Checks
- Added moveByVelocityBodyFrame
- Add Vehicle option for Subwindow settings
- Disable cameras after fetching images, projection matrix
- Add Wind simulation
- New
simRunConsoleCommand
API - UE4: Fixes and improvements to World APIs
- UE4: Fix random crash with Plotting APIs
- Add backwards-compatibility layer for
simSetCameraPose
- Disable LogMessages if set to false
- ROS: Removed double inclusion of
static_transforms.launch
- Add retry loop when connecting PX4 SITL control channel
- Allow for enabling physics when spawning a new object
- Add Python APIs for new Object functions
- UE4: Fix Broken List Level Option
- Linux build improvements
- Allow passing the settings.json file location via
--settings
argument - Distance Sensor Upgrades and fixes
- Update to min CMake version required for VS 2019
- Fix: Non-linear bias corrupts SurfaceNormals, Segmentation image
- Fix:
simGetSegmentationObjectID
will always return -1 - Initial implementation of simLoadLevel, simGet/SetObjectScale, simSpawn|DestroyObject APIs
- Upgrade
setCameraOrientation
API tosetCameraPose
- ROS: All sensors and car support
- Get rid of potential div-0 errors so we can set dt = 0 for pausing
- ROS: Add mavros_msgs to build dependencies
- Move Wiki pages to docs
- Add Recording APIs
- Update Dockerfiles and documentation to Ubuntu 18.04
- Azure development environment and documentation
- ROS: Add airsim_node to install list
- Fix more issues with PX4 master
- Reduce warnings level in Unity build
- Support for Unreal Engine 4.25
- Unity crash fix, upgrade to 2019.3.12, Linux build improvements
- Fix issues with PX4 latest master branch
- Fix Lidar DrawDebugPoints causing crash
- Add docstrings for Python API
- Add missing noise, weather texture materials
- Update AirSim.uplugin version to 1.3.1
- Camera Roll angle control using Q,E keys in CV mode, manual camera
- Remove broken GCC build
- New API -
simSetTraceLine()
- ROS package compilation fixes and updates
- Latest release
v1.3.1
for Windows and Linux - APIs added and fixed -
simSetCameraFov
,rotateToYaw
- airsim Python package update to
1.2.8
- NoDisplay ViewMode render state fix
- Latest release
v1.3.0
for Windows and Linux - Upgraded to Unreal Engine 4.24, Visual Studio 2019, Clang 8, C++ 17 standard
- Mac OSX Catalina support
- Updated airsim Python package, with lots of new APIs
- Removed legacy API wrappers
- Support for latest PX4 stable release
- Support for ArduPilot - Copter, Rover vehicles
- Updated Unity support
- Removed simChar* APIs
- Plotting APIs for Debugging
- Low-level Multirotor APIs
- Updated Eigen version to 3.3.7
- Distance Sensor API fix
- Add
simSwapTextures
API - Fix
simContinueForTime
,simPause
APIs - Lidar Sensor Trace Casting fix
- Fix rare
reset()
bug which causes Unreal crash - Lidar sensor improvements, add
simGetLidarSegmentation
API - Add RpcLibPort in settings
- Recording thread deadlock fix
- Prevent environment crash when Sun is not present
- Africa Tracking feautre, add
simListSceneObjects()
API, fix camera projection matrix - ROS wrapper for multirotors is available. See airsim_ros_pkgs for the ROS API, and airsim_tutorial_pkgs for tutorials.
- Added sensor APIs for Barometer, IMU, GPS, Magnetometer, Distance Sensor
- Added support for docker in ubuntu
- Added Weather Effects and APIs
- Added Time of Day API
- An experimental integration of AirSim on Unity is now available. Learn more in Unity blog post.
- New environments: Forest, Plains (windmill farm), TalkingHeads (human head simulation), TrapCam (animal detection via camera)
- Highly efficient NoDisplay view mode to turn off main screen rendering so you can capture images at high rate
- Enable/disable sensors via settings
- Lidar Sensor
- Support for Flysky FS-SM100 RC USB adapter
- Case Study: Formula Student Technion Driverless
- Multi-Vehicle Capability
- Custom speed units
- ROS publisher
- simSetObjectPose API
- Character Control APIs (works on TalkingHeads binaries in release)
- Arducopter Solo Support
- Linux install without sudo access
- Kinect like ROS publisher
- Development workflow doc
- Better Python 2 compatibility
- OSX setup fixes
- Almost complete rewrite of our APIs with new threading model, merging old APIs and creating few newer ones
- Upgraded to Unreal Engine 4.18 and Visual Studio 2017
- API framework refactoring to support world-level APIs
- Latest PX4 firmware now supported
- CarState with more information
- ThrustMaster wheel support
- pause and continueForTime APIs for drone as well as car
- Allow drone simulation run at higher clock rate without any degradation
- Forward-only mode fully functional for drone (do orbits while looking at center)
- Better PID tuning to reduce wobble for drones
- Ability to set arbitrary vehicle blueprint for drone as well as car
- gimbal stabilization via settings
- Ability to segment skinned and skeletal meshes by their name
- moveByAngleThrottle API
- Car physics tuning for better maneuverability
- Configure additional cameras via settings
- Time of day with geographically computed sun position
- Better car steering via keyboard
- Added MeshNamingMethod in segmentation setting
- gimbal API
- getCameraParameters API
- Ability turn off main rendering to save GPU resources
- Projection mode for capture settings
- getRCData, setRCData APIs
- Ability to turn off segmentation using negative IDs
- OSX build improvements
- Segmentation working for very large environments with initial IDs
- Better and extensible hash calculation for segmentation IDs
- Extensible PID controller for custom integration methods
- Sensor architecture now enables renderer specific features like ray casting
- Laser altimeter sensor
- Config system rewrite, enable flexible config we are targeting in future
- Multi-Vehicle support Phase 1, core infrastructure changes
- MacOS support
- Infrared view
- 5 types of noise and interference for cameras
- WYSIWIG capture settings for cameras, preview recording settings in main view
- Azure support Phase 1, enable configurability of instances for headless mode
- Full kinematics APIs, ability to get pose, linear and angular velocities + accelerations via APIs
- Record multiple images from multiple cameras
- New segmentation APIs, ability to set configure object IDs, search via regex
- New object pose APIs, ability to get pose of objects (like animals) in environment
- Camera infrastructure enhancements, ability to add new image types like IR with just few lines
- Clock speed APIs for drone as well as car, simulation can be run with speed factor of 0 < x < infinity
- Support for Logitech G920 wheel
- Physics tuning of the car, Car doesn’t roll over, responds to steering with better curve, releasing gas paddle behavior more realistic
- Debugging APIs
- Stress tested to 24+ hours of continuous runs
- Support for Landscape and sky segmentation
- Manual navigation with accelerated controls in CV mode, user can explore environment much more easily
- Collison APIs
- Recording enhancements, log several new data points including ground truth, multiple images, controls state
- Planner and Perspective Depth views
- Disparity view
- New Image APIs supports float, png or numpy formats
- 6 config settings for image capture, ability to set auto-exposure, motion blur, gamma etc
- Full multi-camera support through out including sub-windows, recording, APIs etc
- Command line script to build all environments in one shot
- Remove submodules, use rpclib as download
- We now have the car model.
- No need to build the code. Just download binaries and you are good to go!
- The reinforcement learning example with AirSim
- New built-in flight controller called simple_flight that "just works" without any additional setup. It is also now default.
- AirSim now also generates depth as well as disparity images that are in camera plane.
- We also have official Linux build now!
- We have added car model!
- simple_flight is now default flight controller for drones. If you want to use PX4, you will need to modify settings.json as per PX4 setup doc.
- Linux build is official and currently uses Unreal 4.17 due to various bug fixes required
- ImageType enum has breaking changes with several new additions and clarifying existing ones
- SubWindows are now configurable from settings.json
- PythonClient is now complete and has parity with C++ APIs. Some of these would have breaking changes.
- First release!