From fd2644125a3a259b0262294c91347c7d8b8c4187 Mon Sep 17 00:00:00 2001 From: shabpompeiano Date: Wed, 22 Mar 2023 13:03:39 +0100 Subject: [PATCH 01/17] Hotfix get images from multiple drones: simGetImages() was only returning images for one drone when asking for images from multiple drones --- .../AirSimAssets/Scripts/Vehicles/Vehicle.cs | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/Unity/UnityDemo/Assets/AirSimAssets/Scripts/Vehicles/Vehicle.cs b/Unity/UnityDemo/Assets/AirSimAssets/Scripts/Vehicles/Vehicle.cs index 1463ff3ce7..b624d5eaee 100644 --- a/Unity/UnityDemo/Assets/AirSimAssets/Scripts/Vehicles/Vehicle.cs +++ b/Unity/UnityDemo/Assets/AirSimAssets/Scripts/Vehicles/Vehicle.cs @@ -343,10 +343,25 @@ private void InitializeVehicle() { captureResetEvent = new AutoResetEvent(false); } + private GameObject FindChildWithTag(GameObject parent, string tag) { + GameObject child = null; + + foreach(Transform transform in parent.transform) { + if(transform.CompareTag(tag)) { + child = transform.gameObject; + break; + } + } + + return child; + } + //Register all the capture cameras in the scene for recording and data capture. //Make sure every camera is a child of a gameobject with tag "CaptureCameras" private void SetUpCameras() { - GameObject camerasParent = GameObject.FindGameObjectWithTag("CaptureCameras"); + GameObject this_vehicle = GameObject.Find(this.name); + GameObject camerasParent = FindChildWithTag(this_vehicle, "CaptureCameras"); + if (!camerasParent) { Debug.LogWarning("No Cameras found in the scene to capture data"); return; From 6ee2c17e314454dbcbd3f099bef22496e723a7f2 Mon Sep 17 00:00:00 2001 From: Nikola Jovicic Date: Thu, 23 Mar 2023 15:47:34 +0100 Subject: [PATCH 02/17] Create a new MutuallyExclusive callback group for every timer, use a multithreaded executor --- .../include/airsim_ros_wrapper.h | 5 ++++ ros2/src/airsim_ros_pkgs/src/airsim_node.cpp | 30 +++++-------------- .../src/airsim_ros_wrapper.cpp | 12 +++++--- 3 files changed, 20 insertions(+), 27 deletions(-) diff --git a/ros2/src/airsim_ros_pkgs/include/airsim_ros_wrapper.h b/ros2/src/airsim_ros_pkgs/include/airsim_ros_wrapper.h index a5126034b7..85a3b98203 100755 --- a/ros2/src/airsim_ros_pkgs/include/airsim_ros_wrapper.h +++ b/ros2/src/airsim_ros_pkgs/include/airsim_ros_wrapper.h @@ -348,6 +348,11 @@ class AirsimROSWrapper rclcpp::TimerBase::SharedPtr airsim_control_update_timer_; rclcpp::TimerBase::SharedPtr airsim_lidar_update_timer_; + /// Callback groups + std::vector airsim_img_callback_groups_; + rclcpp::CallbackGroup::SharedPtr airsim_control_callback_group_; + std::vector airsim_lidar_callback_groups_; + typedef std::pair, std::string> airsim_img_request_vehicle_name_pair; std::vector airsim_img_request_vehicle_name_pair_vec_; std::vector image_pub_vec_; diff --git a/ros2/src/airsim_ros_pkgs/src/airsim_node.cpp b/ros2/src/airsim_ros_pkgs/src/airsim_node.cpp index 1003f8556a..693bdba034 100644 --- a/ros2/src/airsim_ros_pkgs/src/airsim_node.cpp +++ b/ros2/src/airsim_ros_pkgs/src/airsim_node.cpp @@ -1,35 +1,19 @@ #include #include "airsim_ros_wrapper.h" -int main(int argc, char** argv) -{ +int main(int argc, char **argv) { rclcpp::init(argc, argv); rclcpp::NodeOptions node_options; node_options.automatically_declare_parameters_from_overrides(true); - std::shared_ptr nh = rclcpp::Node::make_shared("airsim_node", node_options); - std::shared_ptr nh_img = nh->create_sub_node("img"); - std::shared_ptr nh_lidar = nh->create_sub_node("lidar"); + std::shared_ptr nh = rclcpp::Node::make_shared("airsim_node", node_options); + std::shared_ptr nh_img = nh->create_sub_node("img"); + std::shared_ptr nh_lidar = nh->create_sub_node("lidar"); std::string host_ip; nh->get_parameter("host_ip", host_ip); AirsimROSWrapper airsim_ros_wrapper(nh, nh_img, nh_lidar, host_ip); - - if (airsim_ros_wrapper.is_used_img_timer_cb_queue_) { - rclcpp::executors::SingleThreadedExecutor executor; - executor.add_node(nh_img); - while (rclcpp::ok()) { - executor.spin(); - } - } - - if (airsim_ros_wrapper.is_used_lidar_timer_cb_queue_) { - rclcpp::executors::SingleThreadedExecutor executor; - executor.add_node(nh_lidar); - while (rclcpp::ok()) { - executor.spin(); - } - } - - rclcpp::spin(nh); + rclcpp::executors::MultiThreadedExecutor executor; + executor.add_node(nh); + executor.spin(); return 0; } \ No newline at end of file diff --git a/ros2/src/airsim_ros_pkgs/src/airsim_ros_wrapper.cpp b/ros2/src/airsim_ros_pkgs/src/airsim_ros_wrapper.cpp index ce3f3390df..e0917b0eac 100755 --- a/ros2/src/airsim_ros_pkgs/src/airsim_ros_wrapper.cpp +++ b/ros2/src/airsim_ros_pkgs/src/airsim_ros_wrapper.cpp @@ -109,7 +109,8 @@ void AirsimROSWrapper::initialize_ros() nh_->declare_parameter("vehicle_name", rclcpp::ParameterValue("")); create_ros_pubs_from_settings_json(); - airsim_control_update_timer_ = nh_->create_wall_timer(std::chrono::duration(update_airsim_control_every_n_sec), std::bind(&AirsimROSWrapper::drone_state_timer_cb, this)); + airsim_control_callback_group_ = nh_->create_callback_group(rclcpp::CallbackGroupType::MutuallyExclusive); + airsim_control_update_timer_ = nh_->create_wall_timer(std::chrono::duration(update_airsim_control_every_n_sec), std::bind(&AirsimROSWrapper::drone_state_timer_cb, this), airsim_control_callback_group_); } void AirsimROSWrapper::create_ros_pubs_from_settings_json() @@ -309,8 +310,9 @@ void AirsimROSWrapper::create_ros_pubs_from_settings_json() if (!airsim_img_request_vehicle_name_pair_vec_.empty()) { double update_airsim_img_response_every_n_sec; nh_->get_parameter("update_airsim_img_response_every_n_sec", update_airsim_img_response_every_n_sec); - - airsim_img_response_timer_ = nh_img_->create_wall_timer(std::chrono::duration(update_airsim_img_response_every_n_sec), std::bind(&AirsimROSWrapper::img_response_timer_cb, this)); + auto cb = nh_->create_callback_group(rclcpp::CallbackGroupType::MutuallyExclusive); + airsim_img_callback_groups_.push_back(cb); + airsim_img_response_timer_ = nh_img_->create_wall_timer(std::chrono::duration(update_airsim_img_response_every_n_sec), std::bind(&AirsimROSWrapper::img_response_timer_cb, this), cb); is_used_img_timer_cb_queue_ = true; } @@ -318,7 +320,9 @@ void AirsimROSWrapper::create_ros_pubs_from_settings_json() if (lidar_cnt > 0) { double update_lidar_every_n_sec; nh_->get_parameter("update_lidar_every_n_sec", update_lidar_every_n_sec); - airsim_lidar_update_timer_ = nh_lidar_->create_wall_timer(std::chrono::duration(update_lidar_every_n_sec), std::bind(&AirsimROSWrapper::lidar_timer_cb, this)); + auto cb = nh_->create_callback_group(rclcpp::CallbackGroupType::MutuallyExclusive); + airsim_lidar_callback_groups_.push_back(cb); + airsim_lidar_update_timer_ = nh_lidar_->create_wall_timer(std::chrono::duration(update_lidar_every_n_sec), std::bind(&AirsimROSWrapper::lidar_timer_cb, this), cb); is_used_lidar_timer_cb_queue_ = true; } From fb8d6895cb3b1532dd696f0ce99eb8eb8decfa1c Mon Sep 17 00:00:00 2001 From: Tyler Fedrizzi <32143517+xxEoD2242@users.noreply.github.com> Date: Wed, 24 May 2023 08:55:29 -0400 Subject: [PATCH 03/17] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 955f7c7aac..26ab7dc784 100644 --- a/README.md +++ b/README.md @@ -40,7 +40,7 @@ Colosseum is a simulator for robotic, autonomous systems, built on [Unreal Engin This is a fork of the AirSim repository, which Microsoft decided to shutdown in July of 2022. This fork serves as a waypoint to building a new and better simulation platform. The creater and maintainer of this fork is Codex Laboratories LLC (our website is [here](https://www.codex-labs-llc.com)). Colosseum is one of the underlying simulation systems that we use in our product, the [SWARM Simulation Platform](https://www.swarmsim.io). This platform exists to provide pre-built tools and low-code/no-code autonomy solutions. Please feel free to check this platform out and reach out if interested. ## Join the Community -We have decided to create a Slack to better allow for community engagement. Join here: [Colosseum Slack](https://join.slack.com/t/colosseum-sim/shared_invite/zt-1qwrbtz1d-WCGpYhJ8sDrYTv8fk50pFg) +We have decided to create a Slack to better allow for community engagement. Join here: [Colosseum Slack](https://join.slack.com/t/colosseum-sim/shared_invite/zt-1vqt3ydx2-D7uLLZb5Om1_wy7wUermXA) ## Goals and Project Development From f66d436473c2ae07f9fd9383c243e4199e37bc3f Mon Sep 17 00:00:00 2001 From: Tyler Date: Fri, 16 Jun 2023 10:04:55 -0700 Subject: [PATCH 04/17] Add updates for UE 5.2 so we dont get deprecation warnings that fail at compilation --- README.md | 4 ++++ Unreal/Plugins/AirSim/Source/AirBlueprintLib.cpp | 12 ++++++------ 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index 26ab7dc784..081152dd50 100644 --- a/README.md +++ b/README.md @@ -13,6 +13,10 @@ multi-agent autonomous systems. Check it out here: [SWARM Developer System](http Moving forward, we are now using Unreal Engine 5 version 5.03 or greater! If you want to use UE4.27, you can use the branch `ue4.27`. +## Unreal Engine Version for Main Branch +The main branch of this repository **only** supports Unreal Engine 5.2! Please see our other branches +for other versions that we support. + ## Currently Supported Operating Systems Below are the list of officially supported Operating Systems, with full Unreal Engine support: ### Windows diff --git a/Unreal/Plugins/AirSim/Source/AirBlueprintLib.cpp b/Unreal/Plugins/AirSim/Source/AirBlueprintLib.cpp index 0c406d22ce..46a123fde1 100644 --- a/Unreal/Plugins/AirSim/Source/AirBlueprintLib.cpp +++ b/Unreal/Plugins/AirSim/Source/AirBlueprintLib.cpp @@ -494,9 +494,9 @@ std::vector UAirBlueprintLib::Ge ENQUEUE_RENDER_COMMAND(GetVertexBuffer) ( [vertex_buffer, data](FRHICommandListImmediate& RHICmdList) { - FVector* indices = (FVector*)RHILockVertexBuffer(vertex_buffer->VertexBufferRHI, 0, vertex_buffer->VertexBufferRHI->GetSize(), RLM_ReadOnly); + FVector* indices = (FVector*)RHILockBuffer(vertex_buffer->VertexBufferRHI, 0, vertex_buffer->VertexBufferRHI->GetSize(), RLM_ReadOnly); memcpy(data, indices, vertex_buffer->VertexBufferRHI->GetSize()); - RHIUnlockVertexBuffer(vertex_buffer->VertexBufferRHI); + RHIUnlockBuffer(vertex_buffer->VertexBufferRHI); }); #if ((ENGINE_MAJOR_VERSION > 4) || (ENGINE_MAJOR_VERSION == 4 && ENGINE_MINOR_VERSION >= 27)) @@ -516,9 +516,9 @@ std::vector UAirBlueprintLib::Ge ENQUEUE_RENDER_COMMAND(GetIndexBuffer) ( [IndexBuffer, data_ptr](FRHICommandListImmediate& RHICmdList) { - uint16_t* indices = (uint16_t*)RHILockIndexBuffer(IndexBuffer->IndexBufferRHI, 0, IndexBuffer->IndexBufferRHI->GetSize(), RLM_ReadOnly); + uint16_t* indices = (uint16_t*)RHILockBuffer(IndexBuffer->IndexBufferRHI, 0, IndexBuffer->IndexBufferRHI->GetSize(), RLM_ReadOnly); memcpy(data_ptr, indices, IndexBuffer->IndexBufferRHI->GetSize()); - RHIUnlockIndexBuffer(IndexBuffer->IndexBufferRHI); + RHIUnlockBuffer(IndexBuffer->IndexBufferRHI); }); //Need to force the render command to go through cause on the next iteration the buffer no longer exists @@ -539,9 +539,9 @@ std::vector UAirBlueprintLib::Ge ENQUEUE_RENDER_COMMAND(GetIndexBuffer) ( [IndexBuffer, data_ptr](FRHICommandListImmediate& RHICmdList) { - uint32_t* indices = (uint32_t*)RHILockIndexBuffer(IndexBuffer->IndexBufferRHI, 0, IndexBuffer->IndexBufferRHI->GetSize(), RLM_ReadOnly); + uint32_t* indices = (uint32_t*)RHILockBuffer(IndexBuffer->IndexBufferRHI, 0, IndexBuffer->IndexBufferRHI->GetSize(), RLM_ReadOnly); memcpy(data_ptr, indices, IndexBuffer->IndexBufferRHI->GetSize()); - RHIUnlockIndexBuffer(IndexBuffer->IndexBufferRHI); + RHIUnlockBuffer(IndexBuffer->IndexBufferRHI); }); FlushRenderingCommands(); From 73e55b926bc53b9c8587c50573729bb217648b97 Mon Sep 17 00:00:00 2001 From: Nikola Jovicic Date: Mon, 19 Jun 2023 12:32:16 +0200 Subject: [PATCH 05/17] Make pd position controller not block velocity commands after a positional command --- .../src/airsim_ros_pkgs/src/pd_position_controller_simple.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ros2/src/airsim_ros_pkgs/src/pd_position_controller_simple.cpp b/ros2/src/airsim_ros_pkgs/src/pd_position_controller_simple.cpp index f3d51fc5d4..ddad9a9fb3 100644 --- a/ros2/src/airsim_ros_pkgs/src/pd_position_controller_simple.cpp +++ b/ros2/src/airsim_ros_pkgs/src/pd_position_controller_simple.cpp @@ -291,8 +291,8 @@ void PIDPositionController::update_control_cmd_timer_cb() } } - // only compute and send control commands for hovering / moving to pose, if we received a goal at least once in the past - if (got_goal_once_) { + // only compute and send control commands for hovering / moving to pose, if we currently have a goal + if (has_goal_) { compute_control_cmd(); enforce_dynamic_constraints(); publish_control_cmd(); From 4974254e2a4edbfa9418e95a472a7a737242a881 Mon Sep 17 00:00:00 2001 From: Tyler Fedrizzi <32143517+xxEoD2242@users.noreply.github.com> Date: Thu, 6 Jul 2023 06:23:42 -0600 Subject: [PATCH 06/17] Add Discord Channel Link --- README.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 081152dd50..1603a9bb7e 100644 --- a/README.md +++ b/README.md @@ -4,6 +4,8 @@ [![Ubuntu Build](https://github.com/CodexLabsLLC/Colosseum/actions/workflows/test_ubuntu.yml/badge.svg)](https://github.com/CodexLabsLLC/Colosseum/actions/workflows/test_ubuntu.yml) [![MacOS Build](https://github.com/CodexLabsLLC/Colosseum/actions/workflows/test_macos.yml/badge.svg)](https://github.com/CodexLabsLLC/Colosseum/actions/workflows/test_macos.yml) [![Windows Build](https://github.com/CodexLabsLLC/Colosseum/actions/workflows/test_windows.yml/badge.svg)](https://github.com/CodexLabsLLC/Colosseum/actions/workflows/test_windows.yml) + +[![](https://dcbadge.vercel.app/api/server/AvyYjR8B)](https://discord.gg/AvyYjR8B) ## Looking for more performance? The company managing this repo created the SWARM Developer System to help build, simulate and deploy single and @@ -44,7 +46,7 @@ Colosseum is a simulator for robotic, autonomous systems, built on [Unreal Engin This is a fork of the AirSim repository, which Microsoft decided to shutdown in July of 2022. This fork serves as a waypoint to building a new and better simulation platform. The creater and maintainer of this fork is Codex Laboratories LLC (our website is [here](https://www.codex-labs-llc.com)). Colosseum is one of the underlying simulation systems that we use in our product, the [SWARM Simulation Platform](https://www.swarmsim.io). This platform exists to provide pre-built tools and low-code/no-code autonomy solutions. Please feel free to check this platform out and reach out if interested. ## Join the Community -We have decided to create a Slack to better allow for community engagement. Join here: [Colosseum Slack](https://join.slack.com/t/colosseum-sim/shared_invite/zt-1vqt3ydx2-D7uLLZb5Om1_wy7wUermXA) +We have decided to create a Discord channel to better allow for community engagement. Join here: [Colosseum Robotics Discord](https://discord.gg/AvyYjR8B). ## Goals and Project Development From 69b45e8ef48f40684f0f6cac286d8f5a5a653c07 Mon Sep 17 00:00:00 2001 From: Tyler Fedrizzi <32143517+xxEoD2242@users.noreply.github.com> Date: Thu, 6 Jul 2023 06:25:09 -0600 Subject: [PATCH 07/17] Remove old README that is invalid --- README.md | 136 ------------------------------------------------------ 1 file changed, 136 deletions(-) diff --git a/README.md b/README.md index 1603a9bb7e..f53369998f 100644 --- a/README.md +++ b/README.md @@ -57,142 +57,6 @@ Click [here](https://docs.google.com/document/d/1doohQTos4v1tg4Wv6SliQFnKNK1MouK If you want to be apart of the official development team, attend meetings, etc., please utilize the Slack channel (link above) and let Tyler Fedrizzi know! -**Check out the quick 1.5 minute demo** - -Quadrotor UAVs in Colosseum - -[![Colosseum Drone Demo Video](docs/images/demo_video.png)](https://youtu.be/-WfTr1-OBGQ) - -Cars in Colosseum - -[![Colosseum Car Demo Video](docs/images/car_demo_video.png)](https://youtu.be/gnz1X3UNM5Y) - - -## How to Get It - -### Windows -[![Build Status](https://github.com/microsoft/AirSim/actions/workflows/test_windows.yml/badge.svg)](https://github.com/microsoft/AirSim/actions/workflows/test_windows.yml) -* [Download binaries](https://github.com/Microsoft/AirSim/releases) -* [Build it](https://microsoft.github.io/AirSim/build_windows) - -### Linux -[![Build Status](https://github.com/microsoft/AirSim/actions/workflows/test_ubuntu.yml/badge.svg)](https://github.com/microsoft/AirSim/actions/workflows/test_ubuntu.yml) -* [Download binaries](https://github.com/Microsoft/AirSim/releases) -* [Build it](https://microsoft.github.io/AirSim/build_linux) - -### macOS -[![Build Status](https://github.com/microsoft/AirSim/actions/workflows/test_macos.yml/badge.svg)](https://github.com/microsoft/AirSim/actions/workflows/test_macos.yml) -* [Build it](https://microsoft.github.io/AirSim/build_macos) - -For more details, see the [use precompiled binaries](docs/use_precompiled.md) document. - -## How to Use It - -### Documentation - -View our [detailed documentation](https://microsoft.github.io/AirSim/) on all aspects of Colosseum. - -### 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](https://microsoft.github.io/AirSim/remote_control) - -![record screenshot](docs/images/AirSimDroneManual.gif) - -![record screenshot](docs/images/AirSimCarManual.gif) - - -### Programmatic control - -Colosseum 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](https://microsoft.github.io/AirSim/settings#simmode) to specify the default vehicle or the new [ComputerVision mode](https://microsoft.github.io/AirSim/image_apis#computer-vision-mode-1) so you don't get prompted each time you start Colosseum. - -[More details](https://microsoft.github.io/AirSim/apis) - -### Gathering training data - -There are two ways you can generate training data from Colosseum 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](docs/images/record_data.png) - -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 Colosseum 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](https://microsoft.github.io/AirSim/image_apis) - -### Weather Effects - -Press F10 to see various options available for weather effects. You can also control the weather using [APIs](https://microsoft.github.io/AirSim/apis#weather-apis). Press F1 to see other options available. - -![record screenshot](docs/images/weather_menu.png) - -## Tutorials - -- [Video - Setting up Colosseum with Pixhawk Tutorial](https://youtu.be/1oY8Qu5maQQ) by Chris Lovett -- [Video - Using Colosseum with Pixhawk Tutorial](https://youtu.be/HNWdYrtw3f0) by Chris Lovett -- [Video - Using off-the-self environments with Colosseum](https://www.youtube.com/watch?v=y09VbdQWvQY) by Jim Piavis -- [Webinar - Harnessing high-fidelity simulation for autonomous systems](https://note.microsoft.com/MSR-Webinar-AirSim-Registration-On-Demand.html) by Sai Vemprala -- [Reinforcement Learning with Colosseum](https://microsoft.github.io/AirSim/reinforcement_learning) by Ashish Kapoor -- [The Autonomous Driving Cookbook](https://aka.ms/AutonomousDrivingCookbook) by Microsoft Deep Learning and Robotics Garage Chapter -- [Using TensorFlow for simple collision avoidance](https://github.com/simondlevy/AirSimTensorFlow) by Simon Levy and WLU team - -## Participate - -### Paper - -More technical details are available in [Colosseum paper (FSR 2017 Conference)](https://arxiv.org/abs/1705.05065). 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](https://github.com/microsoft/airsim/issues) if you are looking for areas to contribute to. - -* [More on Colosseum design](https://microsoft.github.io/AirSim/design) -* [More on code structure](https://microsoft.github.io/AirSim/code_structure) -* [Contribution Guidelines](CONTRIBUTING.md) - -### Who is Using Colosseum? - -We are maintaining a [list](https://microsoft.github.io/AirSim/who_is_using) 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](https://github.com/CodexLabsLLC/Colosseum/issues). - -## Contact - -Join our [GitHub Discussions group](https://github.com/microsoft/AirSim/discussions) to stay up to date or ask any questions. - -We also have an Colosseum group on [Facebook](https://www.facebook.com/groups/1225832467530667/). - - -## What's New - -* [Experimental Support for Unreal Engine 5.0.3](https://github.com/CodexLabsLLC/Colosseum/tree/ue5) - -For complete list of changes, view our [Changelog](docs/CHANGELOG.md) - -## FAQ - -If you run into problems, check the [FAQ](https://codexlabsllc.github.io/Colosseum/faq) and feel free to post issues in the [Colosseum](https://github.com/CodexLabsLLC/Colosseum/issues) repository. - -## Code of Conduct - -This project has adopted the [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/). For more information see the [Code of Conduct FAQ](https://opensource.microsoft.com/codeofconduct/faq/) or contact [opencode@microsoft.com](mailto:opencode@microsoft.com) with any additional questions or comments. - - ## License This project is released under the MIT License. Please review the [License file](LICENSE) for more details. From 23949ffb4f47dfd8df9f35625c39e54b2f3caa89 Mon Sep 17 00:00:00 2001 From: Tyler Fedrizzi <32143517+xxEoD2242@users.noreply.github.com> Date: Mon, 17 Jul 2023 18:11:51 -0400 Subject: [PATCH 08/17] Update Discord Link --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index f53369998f..9c83710839 100644 --- a/README.md +++ b/README.md @@ -5,7 +5,7 @@ [![MacOS Build](https://github.com/CodexLabsLLC/Colosseum/actions/workflows/test_macos.yml/badge.svg)](https://github.com/CodexLabsLLC/Colosseum/actions/workflows/test_macos.yml) [![Windows Build](https://github.com/CodexLabsLLC/Colosseum/actions/workflows/test_windows.yml/badge.svg)](https://github.com/CodexLabsLLC/Colosseum/actions/workflows/test_windows.yml) -[![](https://dcbadge.vercel.app/api/server/AvyYjR8B)](https://discord.gg/AvyYjR8B) +[![](https://dcbadge.vercel.app/api/server/vt73EHAE)](https://discord.gg/vt73EHAE) ## Looking for more performance? The company managing this repo created the SWARM Developer System to help build, simulate and deploy single and From f2459994b8d41202a0c2ff1339a665cb79cbe1f8 Mon Sep 17 00:00:00 2001 From: Tyler Fedrizzi <32143517+xxEoD2242@users.noreply.github.com> Date: Tue, 25 Jul 2023 08:10:47 -0400 Subject: [PATCH 09/17] Update Discord Link --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 9c83710839..f59b93bdda 100644 --- a/README.md +++ b/README.md @@ -5,7 +5,7 @@ [![MacOS Build](https://github.com/CodexLabsLLC/Colosseum/actions/workflows/test_macos.yml/badge.svg)](https://github.com/CodexLabsLLC/Colosseum/actions/workflows/test_macos.yml) [![Windows Build](https://github.com/CodexLabsLLC/Colosseum/actions/workflows/test_windows.yml/badge.svg)](https://github.com/CodexLabsLLC/Colosseum/actions/workflows/test_windows.yml) -[![](https://dcbadge.vercel.app/api/server/vt73EHAE)](https://discord.gg/vt73EHAE) +[![](https://dcbadge.vercel.app/api/server/WEe67fDg)](https://discord.gg/WEe67fDg)) ## Looking for more performance? The company managing this repo created the SWARM Developer System to help build, simulate and deploy single and From 3ebef9160f7782f5baa928f3b2c0efde3d9f2a78 Mon Sep 17 00:00:00 2001 From: Tyler Fedrizzi <32143517+xxEoD2242@users.noreply.github.com> Date: Tue, 25 Jul 2023 08:12:41 -0400 Subject: [PATCH 10/17] Permenant Link to Discord --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index f59b93bdda..4d7c97542a 100644 --- a/README.md +++ b/README.md @@ -5,7 +5,7 @@ [![MacOS Build](https://github.com/CodexLabsLLC/Colosseum/actions/workflows/test_macos.yml/badge.svg)](https://github.com/CodexLabsLLC/Colosseum/actions/workflows/test_macos.yml) [![Windows Build](https://github.com/CodexLabsLLC/Colosseum/actions/workflows/test_windows.yml/badge.svg)](https://github.com/CodexLabsLLC/Colosseum/actions/workflows/test_windows.yml) -[![](https://dcbadge.vercel.app/api/server/WEe67fDg)](https://discord.gg/WEe67fDg)) +[![](https://dcbadge.vercel.app/api/server/WEe67fDg)](https://discord.gg/y9ZJKKKn8J)) ## Looking for more performance? The company managing this repo created the SWARM Developer System to help build, simulate and deploy single and From 8b999d46e1e6953796e103ffe3e10d50604c40dc Mon Sep 17 00:00:00 2001 From: Tyler Fedrizzi <32143517+xxEoD2242@users.noreply.github.com> Date: Tue, 25 Jul 2023 08:12:58 -0400 Subject: [PATCH 11/17] Fix typo in link --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 4d7c97542a..137b05302d 100644 --- a/README.md +++ b/README.md @@ -5,7 +5,7 @@ [![MacOS Build](https://github.com/CodexLabsLLC/Colosseum/actions/workflows/test_macos.yml/badge.svg)](https://github.com/CodexLabsLLC/Colosseum/actions/workflows/test_macos.yml) [![Windows Build](https://github.com/CodexLabsLLC/Colosseum/actions/workflows/test_windows.yml/badge.svg)](https://github.com/CodexLabsLLC/Colosseum/actions/workflows/test_windows.yml) -[![](https://dcbadge.vercel.app/api/server/WEe67fDg)](https://discord.gg/y9ZJKKKn8J)) +[![](https://dcbadge.vercel.app/api/server/WEe67fDg)](https://discord.gg/y9ZJKKKn8J) ## Looking for more performance? The company managing this repo created the SWARM Developer System to help build, simulate and deploy single and From 112eb7473737fc5bc1902cfa072797362dc26c5d Mon Sep 17 00:00:00 2001 From: Tyler Fedrizzi <32143517+xxEoD2242@users.noreply.github.com> Date: Thu, 3 Aug 2023 06:48:25 -0400 Subject: [PATCH 12/17] Fix Visual Portion of Discord Link --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 137b05302d..9154206663 100644 --- a/README.md +++ b/README.md @@ -5,7 +5,7 @@ [![MacOS Build](https://github.com/CodexLabsLLC/Colosseum/actions/workflows/test_macos.yml/badge.svg)](https://github.com/CodexLabsLLC/Colosseum/actions/workflows/test_macos.yml) [![Windows Build](https://github.com/CodexLabsLLC/Colosseum/actions/workflows/test_windows.yml/badge.svg)](https://github.com/CodexLabsLLC/Colosseum/actions/workflows/test_windows.yml) -[![](https://dcbadge.vercel.app/api/server/WEe67fDg)](https://discord.gg/y9ZJKKKn8J) +[![](https://dcbadge.vercel.app/api/server/y9ZJKKKn8J)](https://discord.gg/y9ZJKKKn8J) ## Looking for more performance? The company managing this repo created the SWARM Developer System to help build, simulate and deploy single and From f634807c53659388ab9e1eacf4e4086192e4b90a Mon Sep 17 00:00:00 2001 From: Tyler Fedrizzi <32143517+xxEoD2242@users.noreply.github.com> Date: Thu, 3 Aug 2023 10:36:52 -0400 Subject: [PATCH 13/17] Fix issue related Sun Prop checking with Minor Versions --- Unreal/Plugins/AirSim/Source/SimMode/SimModeBase.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Unreal/Plugins/AirSim/Source/SimMode/SimModeBase.cpp b/Unreal/Plugins/AirSim/Source/SimMode/SimModeBase.cpp index 6a55e03df8..70018a29fb 100644 --- a/Unreal/Plugins/AirSim/Source/SimMode/SimModeBase.cpp +++ b/Unreal/Plugins/AirSim/Source/SimMode/SimModeBase.cpp @@ -226,7 +226,7 @@ void ASimModeBase::initializeTimeOfDay() static const FName sun_prop_name(TEXT("Directional light actor")); auto* p = sky_sphere_class_->FindPropertyByName(sun_prop_name); -#if ENGINE_MINOR_VERSION > 24 +#if ((ENGINE_MAJOR_VERSION > 4) || (ENGINE_MAJOR_VERSION == 4 && ENGINE_MINOR_VERSION >= 27)) FObjectProperty* sun_prop = CastFieldChecked(p); #else FObjectProperty* sun_prop = Cast(p); From 98d95ddc63b2509a8e12fa6f970faa76b8bcb9d0 Mon Sep 17 00:00:00 2001 From: Tyler Fedrizzi <32143517+xxEoD2242@users.noreply.github.com> Date: Thu, 3 Aug 2023 10:44:14 -0400 Subject: [PATCH 14/17] Remove 18.04 CI Build Remove checking 18.04 as it is EOL and no longer supported by our Platform --- .github/workflows/test_ubuntu.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/test_ubuntu.yml b/.github/workflows/test_ubuntu.yml index 446a9579f5..32053a95c4 100644 --- a/.github/workflows/test_ubuntu.yml +++ b/.github/workflows/test_ubuntu.yml @@ -8,7 +8,7 @@ jobs: runs-on: ${{ matrix.os }} strategy: matrix: - os: [ubuntu-18.04, ubuntu-20.04] + os: [ubuntu-20.04] steps: - uses: actions/checkout@v3 From d6f49c90da3b618a4031d479a03c8a4ef6194278 Mon Sep 17 00:00:00 2001 From: Tyler Fedrizzi <32143517+xxEoD2242@users.noreply.github.com> Date: Thu, 3 Aug 2023 10:45:23 -0400 Subject: [PATCH 15/17] Update README.md for remove Ubuntu 18.04 --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 9154206663..a5d0e7a2a9 100644 --- a/README.md +++ b/README.md @@ -25,7 +25,7 @@ Below are the list of officially supported Operating Systems, with full Unreal E - Windows 10 (Latest) ### Linux -- Ubuntu 18.04 +- ~~Ubuntu 18.04~~ (NO LONGER SUPPORTED. 18.04 is EOL so we will not be checking this anymore and GitHub doesn't support CI builds) - Ubuntu 20.04 **NOTE** Ubuntu 22.04 is not currently supported due to Vulkan support. If this changes, we will notify you here. If you want to use Colosseum on 22.04, we highly recommend that you use Docker. From 1d9b3305a6fe8801c41d5da51e6a94994f3b8c0b Mon Sep 17 00:00:00 2001 From: Tyler Fedrizzi <32143517+xxEoD2242@users.noreply.github.com> Date: Tue, 8 Aug 2023 11:00:19 -0400 Subject: [PATCH 16/17] Update second Discord Link --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index a5d0e7a2a9..4d9fba4c9b 100644 --- a/README.md +++ b/README.md @@ -46,7 +46,7 @@ Colosseum is a simulator for robotic, autonomous systems, built on [Unreal Engin This is a fork of the AirSim repository, which Microsoft decided to shutdown in July of 2022. This fork serves as a waypoint to building a new and better simulation platform. The creater and maintainer of this fork is Codex Laboratories LLC (our website is [here](https://www.codex-labs-llc.com)). Colosseum is one of the underlying simulation systems that we use in our product, the [SWARM Simulation Platform](https://www.swarmsim.io). This platform exists to provide pre-built tools and low-code/no-code autonomy solutions. Please feel free to check this platform out and reach out if interested. ## Join the Community -We have decided to create a Discord channel to better allow for community engagement. Join here: [Colosseum Robotics Discord](https://discord.gg/AvyYjR8B). +We have decided to create a Discord channel to better allow for community engagement. Join here: [Colosseum Robotics Discord](https://discord.gg/y9ZJKKKn8J). ## Goals and Project Development From 8aad16177aae6024cc9c9b57c486ec5d2bb679f7 Mon Sep 17 00:00:00 2001 From: Carlos Date: Mon, 2 Oct 2023 14:00:21 -0400 Subject: [PATCH 17/17] #add fix to c++ moveToGpsAsync --- AirLib/src/vehicles/multirotor/api/MultirotorRpcLibClient.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/AirLib/src/vehicles/multirotor/api/MultirotorRpcLibClient.cpp b/AirLib/src/vehicles/multirotor/api/MultirotorRpcLibClient.cpp index 652d3e6507..59c1d8fd9d 100644 --- a/AirLib/src/vehicles/multirotor/api/MultirotorRpcLibClient.cpp +++ b/AirLib/src/vehicles/multirotor/api/MultirotorRpcLibClient.cpp @@ -159,7 +159,7 @@ __pragma(warning(disable : 4239)) MultirotorRpcLibClient* MultirotorRpcLibClient::moveToGPSAsync(float latitude, float longitude, float altitude, float velocity, float timeout_sec, DrivetrainType drivetrain, const YawMode& yaw_mode, float lookahead, float adaptive_lookahead, const std::string& vehicle_name) { - pimpl_->last_future = static_cast(getClient())->async_call("movetoGPS", latitude, longitude, altitude, velocity, timeout_sec, drivetrain, MultirotorRpcLibAdaptors::YawMode(yaw_mode), lookahead, adaptive_lookahead, vehicle_name); + pimpl_->last_future = static_cast(getClient())->async_call("moveToGPS", latitude, longitude, altitude, velocity, timeout_sec, drivetrain, MultirotorRpcLibAdaptors::YawMode(yaw_mode), lookahead, adaptive_lookahead, vehicle_name); return this; }