From 4f5323b7cc185d07d1e5493102f8004adfc88041 Mon Sep 17 00:00:00 2001 From: MattBrth <36452374+MattBrth@users.noreply.github.com> Date: Fri, 23 Sep 2022 11:54:36 +0200 Subject: [PATCH 1/9] Restart function added --- .../Plugins/AirSim/Source/SimMode/SimModeBase.cpp | 6 ++++++ UE4Project/Plugins/AirSim/Source/SimMode/SimModeBase.h | 2 ++ UE4Project/Plugins/AirSim/Source/WorldSimApi.cpp | 10 ++++++++++ UE4Project/Plugins/AirSim/Source/WorldSimApi.h | 1 + 4 files changed, 19 insertions(+) diff --git a/UE4Project/Plugins/AirSim/Source/SimMode/SimModeBase.cpp b/UE4Project/Plugins/AirSim/Source/SimMode/SimModeBase.cpp index 9005bbea..8d6a85ad 100644 --- a/UE4Project/Plugins/AirSim/Source/SimMode/SimModeBase.cpp +++ b/UE4Project/Plugins/AirSim/Source/SimMode/SimModeBase.cpp @@ -45,6 +45,12 @@ ASimModeBase::ASimModeBase() refereeBP_class_ = refereeBP_class.Succeeded() ? refereeBP_class.Class : nullptr; } +void ASimModeBase::restart() { + APlayerController* player_controller = this->GetWorld()->GetFirstPlayerController(); + player_controller->RestartLevel(); +} + + void ASimModeBase::BeginPlay() { Super::BeginPlay(); diff --git a/UE4Project/Plugins/AirSim/Source/SimMode/SimModeBase.h b/UE4Project/Plugins/AirSim/Source/SimMode/SimModeBase.h index 3579f041..9bbb8a61 100644 --- a/UE4Project/Plugins/AirSim/Source/SimMode/SimModeBase.h +++ b/UE4Project/Plugins/AirSim/Source/SimMode/SimModeBase.h @@ -49,6 +49,8 @@ class AIRSIM_API ASimModeBase : public AActor virtual void reset(); virtual ECameraDirectorMode getInitialViewMode() const; + virtual void restart(); + virtual bool isPaused() const; virtual void pause(bool is_paused); virtual void continueForTime(double seconds); diff --git a/UE4Project/Plugins/AirSim/Source/WorldSimApi.cpp b/UE4Project/Plugins/AirSim/Source/WorldSimApi.cpp index 44b1354a..063aa38d 100644 --- a/UE4Project/Plugins/AirSim/Source/WorldSimApi.cpp +++ b/UE4Project/Plugins/AirSim/Source/WorldSimApi.cpp @@ -23,6 +23,16 @@ void WorldSimApi::reset() }, true); } +void WorldSimApi::restart() +{ + //APlayerController::RestartLevel() + //simmode_->EndPlay(EEndPlayReason::Quit); + //simmode_->restart(); + UAirBlueprintLib::RunCommandOnGameThread([this]() { + simmode_->restart(); + }, true); +} + void WorldSimApi::pause(bool is_paused) { simmode_->pause(is_paused); diff --git a/UE4Project/Plugins/AirSim/Source/WorldSimApi.h b/UE4Project/Plugins/AirSim/Source/WorldSimApi.h index a6777af1..0aae5d7a 100644 --- a/UE4Project/Plugins/AirSim/Source/WorldSimApi.h +++ b/UE4Project/Plugins/AirSim/Source/WorldSimApi.h @@ -18,6 +18,7 @@ class WorldSimApi : public msr::airlib::WorldSimApiBase { virtual bool isPaused() const override; virtual void reset() override; + virtual void restart(); virtual void pause(bool is_paused) override; virtual void continueForTime(double seconds) override; From 5339416a2ee0a32f773598633a0640467bbd3d49 Mon Sep 17 00:00:00 2001 From: MattBrth <36452374+MattBrth@users.noreply.github.com> Date: Sat, 24 Sep 2022 17:18:01 +0200 Subject: [PATCH 2/9] Buidling successful for this fork --- UE4Project/FSOnline.uproject | 2 +- UE4Project/Plugins/AirSim/Source/AirBlueprintLib.cpp | 10 +++++----- UE4Project/Plugins/AirSim/Source/AirBlueprintLib.h | 2 +- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/UE4Project/FSOnline.uproject b/UE4Project/FSOnline.uproject index a483f897..77cffdc6 100644 --- a/UE4Project/FSOnline.uproject +++ b/UE4Project/FSOnline.uproject @@ -1,6 +1,6 @@ { "FileVersion": 3, - "EngineAssociation": "4.27", + "EngineAssociation": "4.25", "Category": "", "Description": "", "Modules": [ diff --git a/UE4Project/Plugins/AirSim/Source/AirBlueprintLib.cpp b/UE4Project/Plugins/AirSim/Source/AirBlueprintLib.cpp index 4a5c749f..768612ca 100644 --- a/UE4Project/Plugins/AirSim/Source/AirBlueprintLib.cpp +++ b/UE4Project/Plugins/AirSim/Source/AirBlueprintLib.cpp @@ -20,7 +20,7 @@ #include "Misc/ObjectThumbnail.h" #include "Engine/Engine.h" #include -#include "common/common_utils/Utils.hpp" +#include "AirLib/include/common/common_utils/Utils.hpp" /* //TODO: change naming conventions to same as other files? @@ -371,8 +371,8 @@ std::vector UAirBlueprintLib::Ge //Various checks if there is even a valid mesh if (!comp->GetStaticMesh()) continue; - if (!comp->GetStaticMesh()->GetRenderData()) continue; - if (comp->GetStaticMesh()->GetRenderData()->LODResources.Num() == 0) continue; + if (!comp->GetStaticMesh()->RenderData) continue; + if (comp->GetStaticMesh()->RenderData->LODResources.Num() == 0) continue; msr::airlib::MeshPositionVertexBuffersResponse mesh; mesh.name = name; @@ -387,7 +387,7 @@ std::vector UAirBlueprintLib::Ge mesh.orientation.y() = att.Y; mesh.orientation.z() = att.Z; - FPositionVertexBuffer* vertex_buffer = &comp->GetStaticMesh()->GetRenderData()->LODResources[0].VertexBuffers.PositionVertexBuffer; + FPositionVertexBuffer* vertex_buffer = &comp->GetStaticMesh()->RenderData->LODResources[0].VertexBuffers.PositionVertexBuffer; if (vertex_buffer) { const int32 vertex_count = vertex_buffer->VertexBufferRHI->GetSize(); @@ -403,7 +403,7 @@ std::vector UAirBlueprintLib::Ge RHIUnlockVertexBuffer(vertex_buffer->VertexBufferRHI); }); - FStaticMeshLODResources& lod = comp->GetStaticMesh()->GetRenderData()->LODResources[0]; + FStaticMeshLODResources& lod = comp->GetStaticMesh()->RenderData->LODResources[0]; FRawStaticIndexBuffer* IndexBuffer = &lod.IndexBuffer; int num_indices = IndexBuffer->IndexBufferRHI->GetSize() / IndexBuffer->IndexBufferRHI->GetStride(); diff --git a/UE4Project/Plugins/AirSim/Source/AirBlueprintLib.h b/UE4Project/Plugins/AirSim/Source/AirBlueprintLib.h index f43a0045..ad2619d6 100644 --- a/UE4Project/Plugins/AirSim/Source/AirBlueprintLib.h +++ b/UE4Project/Plugins/AirSim/Source/AirBlueprintLib.h @@ -19,7 +19,7 @@ #include "Modules/ModuleManager.h" #include "Runtime/Landscape/Classes/LandscapeComponent.h" -#include "common/AirSimSettings.hpp" +#include "AirLib/include/common/AirSimSettings.hpp" #include #include #include "AirBlueprintLib.generated.h" From c353d60c49619d2f562a28f764e01e492078a110 Mon Sep 17 00:00:00 2001 From: MattBrth <36452374+MattBrth@users.noreply.github.com> Date: Mon, 14 Nov 2022 20:52:35 +0100 Subject: [PATCH 3/9] Revert "Buidling successful for this fork" This reverts commit 5339416a2ee0a32f773598633a0640467bbd3d49. --- UE4Project/FSOnline.uproject | 2 +- UE4Project/Plugins/AirSim/Source/AirBlueprintLib.cpp | 10 +++++----- UE4Project/Plugins/AirSim/Source/AirBlueprintLib.h | 2 +- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/UE4Project/FSOnline.uproject b/UE4Project/FSOnline.uproject index 77cffdc6..a483f897 100644 --- a/UE4Project/FSOnline.uproject +++ b/UE4Project/FSOnline.uproject @@ -1,6 +1,6 @@ { "FileVersion": 3, - "EngineAssociation": "4.25", + "EngineAssociation": "4.27", "Category": "", "Description": "", "Modules": [ diff --git a/UE4Project/Plugins/AirSim/Source/AirBlueprintLib.cpp b/UE4Project/Plugins/AirSim/Source/AirBlueprintLib.cpp index 768612ca..4a5c749f 100644 --- a/UE4Project/Plugins/AirSim/Source/AirBlueprintLib.cpp +++ b/UE4Project/Plugins/AirSim/Source/AirBlueprintLib.cpp @@ -20,7 +20,7 @@ #include "Misc/ObjectThumbnail.h" #include "Engine/Engine.h" #include -#include "AirLib/include/common/common_utils/Utils.hpp" +#include "common/common_utils/Utils.hpp" /* //TODO: change naming conventions to same as other files? @@ -371,8 +371,8 @@ std::vector UAirBlueprintLib::Ge //Various checks if there is even a valid mesh if (!comp->GetStaticMesh()) continue; - if (!comp->GetStaticMesh()->RenderData) continue; - if (comp->GetStaticMesh()->RenderData->LODResources.Num() == 0) continue; + if (!comp->GetStaticMesh()->GetRenderData()) continue; + if (comp->GetStaticMesh()->GetRenderData()->LODResources.Num() == 0) continue; msr::airlib::MeshPositionVertexBuffersResponse mesh; mesh.name = name; @@ -387,7 +387,7 @@ std::vector UAirBlueprintLib::Ge mesh.orientation.y() = att.Y; mesh.orientation.z() = att.Z; - FPositionVertexBuffer* vertex_buffer = &comp->GetStaticMesh()->RenderData->LODResources[0].VertexBuffers.PositionVertexBuffer; + FPositionVertexBuffer* vertex_buffer = &comp->GetStaticMesh()->GetRenderData()->LODResources[0].VertexBuffers.PositionVertexBuffer; if (vertex_buffer) { const int32 vertex_count = vertex_buffer->VertexBufferRHI->GetSize(); @@ -403,7 +403,7 @@ std::vector UAirBlueprintLib::Ge RHIUnlockVertexBuffer(vertex_buffer->VertexBufferRHI); }); - FStaticMeshLODResources& lod = comp->GetStaticMesh()->RenderData->LODResources[0]; + FStaticMeshLODResources& lod = comp->GetStaticMesh()->GetRenderData()->LODResources[0]; FRawStaticIndexBuffer* IndexBuffer = &lod.IndexBuffer; int num_indices = IndexBuffer->IndexBufferRHI->GetSize() / IndexBuffer->IndexBufferRHI->GetStride(); diff --git a/UE4Project/Plugins/AirSim/Source/AirBlueprintLib.h b/UE4Project/Plugins/AirSim/Source/AirBlueprintLib.h index ad2619d6..f43a0045 100644 --- a/UE4Project/Plugins/AirSim/Source/AirBlueprintLib.h +++ b/UE4Project/Plugins/AirSim/Source/AirBlueprintLib.h @@ -19,7 +19,7 @@ #include "Modules/ModuleManager.h" #include "Runtime/Landscape/Classes/LandscapeComponent.h" -#include "AirLib/include/common/AirSimSettings.hpp" +#include "common/AirSimSettings.hpp" #include #include #include "AirBlueprintLib.generated.h" From d9c61219a3da5e93ac5a99fcd2827c2c4f0fc3f2 Mon Sep 17 00:00:00 2001 From: MattBrth <36452374+MattBrth@users.noreply.github.com> Date: Mon, 14 Nov 2022 22:54:28 +0100 Subject: [PATCH 4/9] Correction add Restart() function --- AirSim/AirLib/include/api/RpcLibClientBase.hpp | 1 + AirSim/AirLib/include/api/WorldSimApiBase.hpp | 2 ++ AirSim/AirLib/src/api/RpcLibClientBase.cpp | 5 +++++ AirSim/AirLib/src/api/RpcLibServerBase.cpp | 5 +++++ 4 files changed, 13 insertions(+) diff --git a/AirSim/AirLib/include/api/RpcLibClientBase.hpp b/AirSim/AirLib/include/api/RpcLibClientBase.hpp index d21792a1..350ba930 100644 --- a/AirSim/AirLib/include/api/RpcLibClientBase.hpp +++ b/AirSim/AirLib/include/api/RpcLibClientBase.hpp @@ -28,6 +28,7 @@ class RpcLibClientBase { void confirmConnection(double timeout); void reset(); + void restart(); ConnectionState getConnectionState(); bool ping(); diff --git a/AirSim/AirLib/include/api/WorldSimApiBase.hpp b/AirSim/AirLib/include/api/WorldSimApiBase.hpp index ba463b05..6f309348 100644 --- a/AirSim/AirLib/include/api/WorldSimApiBase.hpp +++ b/AirSim/AirLib/include/api/WorldSimApiBase.hpp @@ -28,6 +28,8 @@ class WorldSimApiBase { virtual bool isPaused() const = 0; virtual void reset() = 0; + virtual void restart() = 0; + virtual void pause(bool is_paused) = 0; virtual void continueForTime(double seconds) = 0; diff --git a/AirSim/AirLib/src/api/RpcLibClientBase.cpp b/AirSim/AirLib/src/api/RpcLibClientBase.cpp index f0660dbd..4132ab90 100644 --- a/AirSim/AirLib/src/api/RpcLibClientBase.cpp +++ b/AirSim/AirLib/src/api/RpcLibClientBase.cpp @@ -111,6 +111,11 @@ void RpcLibClientBase::reset() pimpl_->client.call("reset"); } +void RpcLibClientBase::restart() +{ + pimpl_->client.call("restart"); +} + void RpcLibClientBase::confirmConnection(double timeout) { ClockBase* clock = ClockFactory::get(); diff --git a/AirSim/AirLib/src/api/RpcLibServerBase.cpp b/AirSim/AirLib/src/api/RpcLibServerBase.cpp index fb709f3a..1de45082 100644 --- a/AirSim/AirLib/src/api/RpcLibServerBase.cpp +++ b/AirSim/AirLib/src/api/RpcLibServerBase.cpp @@ -184,6 +184,11 @@ RpcLibServerBase::RpcLibServerBase(ApiProvider* api_provider, const std::string& resetInProgress = false; }); + pimpl_->server.bind("restart", [&]() -> void { + auto* sim_world_api = getWorldSimApi(); + sim_world_api->restart(); + }); + pimpl_->server.bind("simPrintLogMessage", [&](const std::string& message, const std::string& message_param, unsigned char severity) -> void { getWorldSimApi()->printLogMessage(message, message_param, severity); }); From 07ae20bcc01d306c907b48c1f2e4088e0d7470c2 Mon Sep 17 00:00:00 2001 From: MattBrth <36452374+MattBrth@users.noreply.github.com> Date: Mon, 14 Nov 2022 23:00:31 +0100 Subject: [PATCH 5/9] Add restart function to the python client --- python/fsds/client.py | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/python/fsds/client.py b/python/fsds/client.py index d01e487d..24d5b98a 100644 --- a/python/fsds/client.py +++ b/python/fsds/client.py @@ -25,6 +25,19 @@ def reset(self): """ self.client.call('reset') + def restart(self): + """ + Reset the vehicle AND THE CONES to their original starting state + """ + try: + self.client.call('restart') + except Exception as e: + print(e) + + time.sleep(0.1) # VERY IMPORTANT! + + self.__init__(self.ip, self.port, self.timeout_value) + def ping(self): """ If connection is established then this call will return true otherwise it will be blocked until timeout From 86b9e92ad6c9f88232f60979223adec8303438f8 Mon Sep 17 00:00:00 2001 From: MattBrth <36452374+MattBrth@users.noreply.github.com> Date: Tue, 15 Nov 2022 13:19:41 +0100 Subject: [PATCH 6/9] import acceleration map of FSDS --- maps/Acceleration/.DS_Store | Bin 0 -> 6148 bytes maps/Acceleration/bigoranges.txt | 2 ++ maps/Acceleration/blue.txt | 1 + maps/Acceleration/miniorange.txt | 4 ++++ maps/Acceleration/origin.txt | 1 + maps/Acceleration/yellow.txt | 1 + 6 files changed, 9 insertions(+) create mode 100644 maps/Acceleration/.DS_Store create mode 100644 maps/Acceleration/bigoranges.txt create mode 100644 maps/Acceleration/blue.txt create mode 100644 maps/Acceleration/miniorange.txt create mode 100644 maps/Acceleration/origin.txt create mode 100644 maps/Acceleration/yellow.txt diff --git a/maps/Acceleration/.DS_Store b/maps/Acceleration/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..feb68b9697e16f26e402e340f1baa10ff725f787 GIT binary patch literal 6148 zcmeHKJxc>Y5PcJa#0Vj!jd1>e1QoG9Lo6)CCZ(Pc37$F71hu=~ALH+{(l@h9NG_+P zip+%Bw>LL$Ki)34SpYJaj}L$@fEHb`vBjds^u79;HDY9wDAvXUt}w+dZt%F4?Sa3j zfUaE!875q{0?X^y#|+Pyo#n-KmKPcGxJl%d*#9uI>Fj;SMW6d1Ll0vdVV|{Q99r39 zZG>~y?=Y$K@LuVm#jG52?y1@l;jNP2!98a)r7zE?mMgmzZreDjg|<-7sgAFW7mh9G zufS712Pc(&_~_;exB{-gFDk$@TdlPn&`Vdq6>tR>3h4JCp(~~l%YgRjU}0APVv}Jr z*7Yu-oFrlzu?)yJGznB Date: Thu, 24 Nov 2022 17:09:21 +0100 Subject: [PATCH 7/9] Add restart service to ros --- ros/src/fsds_ros_bridge/include/airsim_ros_wrapper.h | 3 +++ ros/src/fsds_ros_bridge/src/airsim_ros_wrapper.cpp | 9 +++++++++ 2 files changed, 12 insertions(+) diff --git a/ros/src/fsds_ros_bridge/include/airsim_ros_wrapper.h b/ros/src/fsds_ros_bridge/include/airsim_ros_wrapper.h index a3cf7efb..caf17c22 100644 --- a/ros/src/fsds_ros_bridge/include/airsim_ros_wrapper.h +++ b/ros/src/fsds_ros_bridge/include/airsim_ros_wrapper.h @@ -49,6 +49,7 @@ STRICT_MODE_OFF //todo what does this do? #include #include #include +#include // #include "nodelet/nodelet.h" #define printVariableNameAndValue(x) std::cout << "The name of variable **" << (#x) << "** and the value of variable is => " << x << "\n" @@ -139,6 +140,7 @@ class AirsimROSWrapper /// ROS service callbacks bool reset_srv_cb(fs_msgs::Reset::Request& request, fs_msgs::Reset::Response& response); + bool restart_airsim_service(std_srvs::TriggerRequest& request, std_srvs::TriggerResponse& response); // methods which parse setting json ang generate ros pubsubsrv void create_ros_pubs_from_settings_json(); @@ -209,6 +211,7 @@ class AirsimROSWrapper std::vector lidar_pub_vec_; + ros::ServiceServer restart_service_; /// ROS publishers ros::Publisher clock_pub_; diff --git a/ros/src/fsds_ros_bridge/src/airsim_ros_wrapper.cpp b/ros/src/fsds_ros_bridge/src/airsim_ros_wrapper.cpp index 0ad18511..aa3f170e 100644 --- a/ros/src/fsds_ros_bridge/src/airsim_ros_wrapper.cpp +++ b/ros/src/fsds_ros_bridge/src/airsim_ros_wrapper.cpp @@ -137,6 +137,7 @@ void AirsimROSWrapper::initialize_ros() if(!competition_mode_) { odom_update_timer_ = nh_private_.createTimer(ros::Duration(update_odom_every_n_sec), &AirsimROSWrapper::odom_cb, this); extra_info_timer_ = nh_private_.createTimer(ros::Duration(1), &AirsimROSWrapper::extra_info_cb, this); + restart_service_ = nh_private_.advertiseService("restart_level", &AirsimROSWrapper::restart_airsim_service, this); } gps_update_timer_ = nh_private_.createTimer(ros::Duration(update_gps_every_n_sec), &AirsimROSWrapper::gps_timer_cb, this); @@ -280,6 +281,14 @@ bool AirsimROSWrapper::reset_srv_cb(fs_msgs::Reset::Request& request, fs_msgs::R return true; //todo } +bool AirsimROSWrapper::restart_airsim_service(std_srvs::TriggerRequest& request, std_srvs::TriggerResponse& response){ + airsim_client_.restart(); + + ros::Rate(10).sleep(); + + initialize_airsim(10); +} + tf2::Quaternion AirsimROSWrapper::get_tf2_quat(const msr::airlib::Quaternionr& airlib_quat) const { return tf2::Quaternion(airlib_quat.x(), airlib_quat.y(), airlib_quat.z(), airlib_quat.w()); From f7de4107f1dd4b564abc7154c3d9952e46585f86 Mon Sep 17 00:00:00 2001 From: Wouter Heerwegh Date: Thu, 24 Nov 2022 20:48:37 +0100 Subject: [PATCH 8/9] Add restart service to ros1 --- .../src/airsim_ros_wrapper.cpp | 36 +++++++++++++++++-- .../src/fsds_ros_bridge_camera.cpp | 6 +++- 2 files changed, 38 insertions(+), 4 deletions(-) diff --git a/ros/src/fsds_ros_bridge/src/airsim_ros_wrapper.cpp b/ros/src/fsds_ros_bridge/src/airsim_ros_wrapper.cpp index aa3f170e..193cd1ef 100644 --- a/ros/src/fsds_ros_bridge/src/airsim_ros_wrapper.cpp +++ b/ros/src/fsds_ros_bridge/src/airsim_ros_wrapper.cpp @@ -282,11 +282,36 @@ bool AirsimROSWrapper::reset_srv_cb(fs_msgs::Reset::Request& request, fs_msgs::R } bool AirsimROSWrapper::restart_airsim_service(std_srvs::TriggerRequest& request, std_srvs::TriggerResponse& response){ + // Stop all timers + odom_update_timer_.stop(); + gps_update_timer_.stop(); + imu_update_timer_.stop(); + gss_update_timer_.stop(); + statistics_timer_.stop(); + go_signal_timer_.stop(); + statictf_timer_.stop(); + extra_info_timer_.stop(); + for(auto timer: airsim_lidar_update_timers_){ + timer.stop(); + } + airsim_client_.restart(); - - ros::Rate(10).sleep(); - + airsim_client_lidar_.restart(); + initialize_airsim(10); + + odom_update_timer_.start(); + gps_update_timer_.start(); + imu_update_timer_.start(); + gss_update_timer_.start(); + statistics_timer_.start(); + go_signal_timer_.start(); + statictf_timer_.start(); + extra_info_timer_.start(); + for(auto & timer: airsim_lidar_update_timers_){ + timer.start(); + } + } tf2::Quaternion AirsimROSWrapper::get_tf2_quat(const msr::airlib::Quaternionr& airlib_quat) const @@ -457,6 +482,11 @@ void AirsimROSWrapper::odom_cb(const ros::TimerEvent& event) std::string msg = e.get_error().as(); ROS_ERROR_STREAM("Exception raised by the API while getting car state:" << std::endl << msg); } + catch (rpc::timeout& e){ + std::cout << "Timeout for simGetImage, probably restarting" << std::endl; + std::cout << "Trying to reconnect" << std::endl; + airsim_client_.confirmConnection(10.0f); + } } void AirsimROSWrapper::gps_timer_cb(const ros::TimerEvent& event) diff --git a/ros/src/fsds_ros_bridge/src/fsds_ros_bridge_camera.cpp b/ros/src/fsds_ros_bridge/src/fsds_ros_bridge_camera.cpp index d98eb0fe..ce7a7afb 100644 --- a/ros/src/fsds_ros_bridge/src/fsds_ros_bridge_camera.cpp +++ b/ros/src/fsds_ros_bridge/src/fsds_ros_bridge_camera.cpp @@ -29,6 +29,7 @@ std::string camera_name = ""; double framerate = 0.0; std::string host_ip = "localhost"; bool depthcamera = false; +double timeout_sec = 10.0; ros::Time make_ts(uint64_t unreal_ts) { @@ -52,6 +53,10 @@ std::vector getImage(ImageRequest req) { std::string msg = e.get_error().as(); std::cout << "Exception raised by the API while getting image:" << std::endl << msg << std::endl; + } catch (rpc::timeout & e) { + std::cout << "Timeout for simGetImage, probably restarting" << std::endl; + std::cout << "Trying to reconnect" << std::endl; + airsim_api->confirmConnection(timeout_sec); } return img_responses; } @@ -162,7 +167,6 @@ int main(int argc, char ** argv) msr::airlib::CarRpcLibClient client(host_ip, RpcLibPort, 5); airsim_api = &client; - double timeout_sec = 10.0; nh.getParam("timeout", timeout_sec); try { From fa700e4aaba2dfd39a0fa3502749f6a9a91c568b Mon Sep 17 00:00:00 2001 From: Wouter Heerwegh Date: Thu, 24 Nov 2022 21:59:49 +0100 Subject: [PATCH 9/9] Remove acceleration map from maps --- maps/Acceleration/.DS_Store | Bin 6148 -> 0 bytes maps/Acceleration/bigoranges.txt | 2 -- maps/Acceleration/blue.txt | 1 - maps/Acceleration/miniorange.txt | 4 ---- maps/Acceleration/origin.txt | 1 - maps/Acceleration/yellow.txt | 1 - 6 files changed, 9 deletions(-) delete mode 100644 maps/Acceleration/.DS_Store delete mode 100644 maps/Acceleration/bigoranges.txt delete mode 100644 maps/Acceleration/blue.txt delete mode 100644 maps/Acceleration/miniorange.txt delete mode 100644 maps/Acceleration/origin.txt delete mode 100644 maps/Acceleration/yellow.txt diff --git a/maps/Acceleration/.DS_Store b/maps/Acceleration/.DS_Store deleted file mode 100644 index feb68b9697e16f26e402e340f1baa10ff725f787..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6148 zcmeHKJxc>Y5PcJa#0Vj!jd1>e1QoG9Lo6)CCZ(Pc37$F71hu=~ALH+{(l@h9NG_+P zip+%Bw>LL$Ki)34SpYJaj}L$@fEHb`vBjds^u79;HDY9wDAvXUt}w+dZt%F4?Sa3j zfUaE!875q{0?X^y#|+Pyo#n-KmKPcGxJl%d*#9uI>Fj;SMW6d1Ll0vdVV|{Q99r39 zZG>~y?=Y$K@LuVm#jG52?y1@l;jNP2!98a)r7zE?mMgmzZreDjg|<-7sgAFW7mh9G zufS712Pc(&_~_;exB{-gFDk$@TdlPn&`Vdq6>tR>3h4JCp(~~l%YgRjU}0APVv}Jr z*7Yu-oFrlzu?)yJGznB