diff --git a/ur_rtde_driver/include/ur_rtde_driver/comm/pipeline.h b/ur_rtde_driver/include/ur_rtde_driver/comm/pipeline.h index 6fdd0f4..38c9ca3 100644 --- a/ur_rtde_driver/include/ur_rtde_driver/comm/pipeline.h +++ b/ur_rtde_driver/include/ur_rtde_driver/comm/pipeline.h @@ -184,7 +184,10 @@ public: running_ = false; - pThread_.join(); + if (pThread_.joinable()) + { + pThread_.join(); + } if (cThread_.joinable()) { cThread_.join(); diff --git a/ur_rtde_driver/include/ur_rtde_driver/comm/producer.h b/ur_rtde_driver/include/ur_rtde_driver/comm/producer.h index 58a20ee..167742d 100644 --- a/ur_rtde_driver/include/ur_rtde_driver/comm/producer.h +++ b/ur_rtde_driver/include/ur_rtde_driver/comm/producer.h @@ -24,6 +24,7 @@ #include "ur_rtde_driver/comm/parser.h" #include "ur_rtde_driver/comm/stream.h" #include "ur_rtde_driver/comm/package.h" +#include "ur_rtde_driver/exceptions.h" namespace ur_driver { @@ -48,7 +49,10 @@ public: tv.tv_sec = 1; tv.tv_usec = 0; stream_.setReceiveTimeout(tv); - stream_.connect(); + if(!stream_.connect()) + { + throw UrException("Failed to connect to robot. Please check if the robot is booted and connected."); + } } void teardownProducer() {