diff --git a/kortex_description/arms/gen3/6dof/urdf/GEN3-6DOF_BRAKES_NO-VISION_URDF_ARM_V01.urdf b/kortex_description/arms/gen3/6dof/urdf/GEN3-6DOF_BRAKES_NO-VISION_URDF_ARM_V01.urdf new file mode 100644 index 00000000..0f041e1b --- /dev/null +++ b/kortex_description/arms/gen3/6dof/urdf/GEN3-6DOF_BRAKES_NO-VISION_URDF_ARM_V01.urdf @@ -0,0 +1,416 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/kortex_description/arms/gen3/6dof/urdf/GEN3-6DOF_BRAKES_VISION_URDF_ARM_V01.urdf b/kortex_description/arms/gen3/6dof/urdf/GEN3-6DOF_BRAKES_VISION_URDF_ARM_V01.urdf new file mode 100644 index 00000000..e4ecefa1 --- /dev/null +++ b/kortex_description/arms/gen3/6dof/urdf/GEN3-6DOF_BRAKES_VISION_URDF_ARM_V01.urdf @@ -0,0 +1,456 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/kortex_description/arms/gen3/6dof/urdf/GEN3-6DOF_NO-VISION_URDF_ARM_V01.urdf b/kortex_description/arms/gen3/6dof/urdf/GEN3-6DOF_NO-VISION_URDF_ARM_V01.urdf index 960ae01c..8960e386 100644 --- a/kortex_description/arms/gen3/6dof/urdf/GEN3-6DOF_NO-VISION_URDF_ARM_V01.urdf +++ b/kortex_description/arms/gen3/6dof/urdf/GEN3-6DOF_NO-VISION_URDF_ARM_V01.urdf @@ -1,205 +1,211 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/kortex_description/arms/gen3/6dof/urdf/GEN3-6DOF_VISION_URDF_ARM_V01.urdf b/kortex_description/arms/gen3/6dof/urdf/GEN3-6DOF_VISION_URDF_ARM_V01.urdf index 89b673eb..5971469f 100644 --- a/kortex_description/arms/gen3/6dof/urdf/GEN3-6DOF_VISION_URDF_ARM_V01.urdf +++ b/kortex_description/arms/gen3/6dof/urdf/GEN3-6DOF_VISION_URDF_ARM_V01.urdf @@ -1,226 +1,229 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/kortex_description/arms/gen3/7dof/urdf/GEN3-7DOF-NOVISION_FOR_URDF_ARM_V12.urdf b/kortex_description/arms/gen3/7dof/urdf/GEN3-7DOF-NOVISION_FOR_URDF_ARM_V12.urdf new file mode 100644 index 00000000..69f69258 --- /dev/null +++ b/kortex_description/arms/gen3/7dof/urdf/GEN3-7DOF-NOVISION_FOR_URDF_ARM_V12.urdf @@ -0,0 +1,240 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/kortex_description/arms/gen3/7dof/urdf/GEN3_URDF_V12.urdf b/kortex_description/arms/gen3/7dof/urdf/GEN3-7DOF-VISION_ARM_URDF_V12.urdf similarity index 55% rename from kortex_description/arms/gen3/7dof/urdf/GEN3_URDF_V12.urdf rename to kortex_description/arms/gen3/7dof/urdf/GEN3-7DOF-VISION_ARM_URDF_V12.urdf index 43044418..c3638cc6 100644 --- a/kortex_description/arms/gen3/7dof/urdf/GEN3_URDF_V12.urdf +++ b/kortex_description/arms/gen3/7dof/urdf/GEN3-7DOF-VISION_ARM_URDF_V12.urdf @@ -1,234 +1,258 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/kortex_description/arms/gen3/7dof/urdf/GEN3-7DOF_BRAKES_NO-VISION_URDF_ARM_V01.urdf b/kortex_description/arms/gen3/7dof/urdf/GEN3-7DOF_BRAKES_NO-VISION_URDF_ARM_V01.urdf new file mode 100644 index 00000000..bfa95c5a --- /dev/null +++ b/kortex_description/arms/gen3/7dof/urdf/GEN3-7DOF_BRAKES_NO-VISION_URDF_ARM_V01.urdf @@ -0,0 +1,472 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/kortex_description/arms/gen3/7dof/urdf/GEN3-7DOF_BRAKES_VISION_URDF_ARM_V01.urdf b/kortex_description/arms/gen3/7dof/urdf/GEN3-7DOF_BRAKES_VISION_URDF_ARM_V01.urdf new file mode 100644 index 00000000..b0fca7a2 --- /dev/null +++ b/kortex_description/arms/gen3/7dof/urdf/GEN3-7DOF_BRAKES_VISION_URDF_ARM_V01.urdf @@ -0,0 +1,511 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/kortex_driver/conanfile.py b/kortex_driver/conanfile.py index e30328ff..a7756573 100644 --- a/kortex_driver/conanfile.py +++ b/kortex_driver/conanfile.py @@ -6,4 +6,4 @@ class ROSKortexConan(ConanFile): def requirements(self): - self.requires("kortex_api_cpp/2.3.0-r.34@kortex/stable") + self.requires("kortex_api_cpp/2.6.0-r.3@kortex/stable") diff --git a/kortex_driver/include/kortex_driver/generated/interfaces/base_services_interface.h b/kortex_driver/include/kortex_driver/generated/interfaces/base_services_interface.h index e26e9a8b..50fc2972 100644 --- a/kortex_driver/include/kortex_driver/generated/interfaces/base_services_interface.h +++ b/kortex_driver/include/kortex_driver/generated/interfaces/base_services_interface.h @@ -186,6 +186,10 @@ #include "kortex_driver/ComputeForwardKinematics.h" #include "kortex_driver/ComputeInverseKinematics.h" #include "kortex_driver/ValidateWaypointList.h" +#include "kortex_driver/SetWifiEnableState.h" +#include "kortex_driver/GetWifiEnableState.h" +#include "kortex_driver/SetBluetoothEnableState.h" +#include "kortex_driver/GetBluetoothEnableState.h" #include "kortex_driver/KortexError.h" #include "kortex_driver/SetDeviceID.h" @@ -363,6 +367,10 @@ class IBaseServices virtual bool ComputeForwardKinematics(kortex_driver::ComputeForwardKinematics::Request &req, kortex_driver::ComputeForwardKinematics::Response &res) = 0; virtual bool ComputeInverseKinematics(kortex_driver::ComputeInverseKinematics::Request &req, kortex_driver::ComputeInverseKinematics::Response &res) = 0; virtual bool ValidateWaypointList(kortex_driver::ValidateWaypointList::Request &req, kortex_driver::ValidateWaypointList::Response &res) = 0; + virtual bool SetWifiEnableState(kortex_driver::SetWifiEnableState::Request &req, kortex_driver::SetWifiEnableState::Response &res) = 0; + virtual bool GetWifiEnableState(kortex_driver::GetWifiEnableState::Request &req, kortex_driver::GetWifiEnableState::Response &res) = 0; + virtual bool SetBluetoothEnableState(kortex_driver::SetBluetoothEnableState::Request &req, kortex_driver::SetBluetoothEnableState::Response &res) = 0; + virtual bool GetBluetoothEnableState(kortex_driver::GetBluetoothEnableState::Request &req, kortex_driver::GetBluetoothEnableState::Response &res) = 0; protected: ros::NodeHandle m_node_handle; @@ -547,5 +555,9 @@ class IBaseServices ros::ServiceServer m_serviceComputeForwardKinematics; ros::ServiceServer m_serviceComputeInverseKinematics; ros::ServiceServer m_serviceValidateWaypointList; + ros::ServiceServer m_serviceSetWifiEnableState; + ros::ServiceServer m_serviceGetWifiEnableState; + ros::ServiceServer m_serviceSetBluetoothEnableState; + ros::ServiceServer m_serviceGetBluetoothEnableState; }; #endif diff --git a/kortex_driver/include/kortex_driver/generated/robot/base_proto_converter.h b/kortex_driver/include/kortex_driver/generated/robot/base_proto_converter.h index c8b68fee..3a7ee1fd 100644 --- a/kortex_driver/include/kortex_driver/generated/robot/base_proto_converter.h +++ b/kortex_driver/include/kortex_driver/generated/robot/base_proto_converter.h @@ -81,6 +81,9 @@ #include "kortex_driver/IPv4Configuration.h" #include "kortex_driver/IPv4Information.h" #include "kortex_driver/FullIPv4Configuration.h" +#include "kortex_driver/WifiEnableState.h" +#include "kortex_driver/BluetoothEnableState.h" +#include "kortex_driver/RFConfiguration.h" #include "kortex_driver/WifiInformation.h" #include "kortex_driver/WifiInformationList.h" #include "kortex_driver/WifiConfiguration.h" @@ -249,6 +252,9 @@ int ToProtoData(kortex_driver::NetworkHandle input, Kinova::Api::Base::NetworkHa int ToProtoData(kortex_driver::IPv4Configuration input, Kinova::Api::Base::IPv4Configuration *output); int ToProtoData(kortex_driver::IPv4Information input, Kinova::Api::Base::IPv4Information *output); int ToProtoData(kortex_driver::FullIPv4Configuration input, Kinova::Api::Base::FullIPv4Configuration *output); +int ToProtoData(kortex_driver::WifiEnableState input, Kinova::Api::Base::WifiEnableState *output); +int ToProtoData(kortex_driver::BluetoothEnableState input, Kinova::Api::Base::BluetoothEnableState *output); +int ToProtoData(kortex_driver::RFConfiguration input, Kinova::Api::Base::RFConfiguration *output); int ToProtoData(kortex_driver::WifiInformation input, Kinova::Api::Base::WifiInformation *output); int ToProtoData(kortex_driver::WifiInformationList input, Kinova::Api::Base::WifiInformationList *output); int ToProtoData(kortex_driver::WifiConfiguration input, Kinova::Api::Base::WifiConfiguration *output); diff --git a/kortex_driver/include/kortex_driver/generated/robot/base_ros_converter.h b/kortex_driver/include/kortex_driver/generated/robot/base_ros_converter.h index f1e2b4a8..8017f157 100644 --- a/kortex_driver/include/kortex_driver/generated/robot/base_ros_converter.h +++ b/kortex_driver/include/kortex_driver/generated/robot/base_ros_converter.h @@ -81,6 +81,9 @@ #include "kortex_driver/IPv4Configuration.h" #include "kortex_driver/IPv4Information.h" #include "kortex_driver/FullIPv4Configuration.h" +#include "kortex_driver/WifiEnableState.h" +#include "kortex_driver/BluetoothEnableState.h" +#include "kortex_driver/RFConfiguration.h" #include "kortex_driver/WifiInformation.h" #include "kortex_driver/WifiInformationList.h" #include "kortex_driver/WifiConfiguration.h" @@ -249,6 +252,9 @@ int ToRosData(Kinova::Api::Base::NetworkHandle input, kortex_driver::NetworkHand int ToRosData(Kinova::Api::Base::IPv4Configuration input, kortex_driver::IPv4Configuration &output); int ToRosData(Kinova::Api::Base::IPv4Information input, kortex_driver::IPv4Information &output); int ToRosData(Kinova::Api::Base::FullIPv4Configuration input, kortex_driver::FullIPv4Configuration &output); +int ToRosData(Kinova::Api::Base::WifiEnableState input, kortex_driver::WifiEnableState &output); +int ToRosData(Kinova::Api::Base::BluetoothEnableState input, kortex_driver::BluetoothEnableState &output); +int ToRosData(Kinova::Api::Base::RFConfiguration input, kortex_driver::RFConfiguration &output); int ToRosData(Kinova::Api::Base::WifiInformation input, kortex_driver::WifiInformation &output); int ToRosData(Kinova::Api::Base::WifiInformationList input, kortex_driver::WifiInformationList &output); int ToRosData(Kinova::Api::Base::WifiConfiguration input, kortex_driver::WifiConfiguration &output); diff --git a/kortex_driver/include/kortex_driver/generated/robot/base_services.h b/kortex_driver/include/kortex_driver/generated/robot/base_services.h index 499a811c..8a93a1bd 100644 --- a/kortex_driver/include/kortex_driver/generated/robot/base_services.h +++ b/kortex_driver/include/kortex_driver/generated/robot/base_services.h @@ -193,6 +193,10 @@ class BaseRobotServices : public IBaseServices virtual bool ComputeForwardKinematics(kortex_driver::ComputeForwardKinematics::Request &req, kortex_driver::ComputeForwardKinematics::Response &res) override; virtual bool ComputeInverseKinematics(kortex_driver::ComputeInverseKinematics::Request &req, kortex_driver::ComputeInverseKinematics::Response &res) override; virtual bool ValidateWaypointList(kortex_driver::ValidateWaypointList::Request &req, kortex_driver::ValidateWaypointList::Response &res) override; + virtual bool SetWifiEnableState(kortex_driver::SetWifiEnableState::Request &req, kortex_driver::SetWifiEnableState::Response &res) override; + virtual bool GetWifiEnableState(kortex_driver::GetWifiEnableState::Request &req, kortex_driver::GetWifiEnableState::Response &res) override; + virtual bool SetBluetoothEnableState(kortex_driver::SetBluetoothEnableState::Request &req, kortex_driver::SetBluetoothEnableState::Response &res) override; + virtual bool GetBluetoothEnableState(kortex_driver::GetBluetoothEnableState::Request &req, kortex_driver::GetBluetoothEnableState::Response &res) override; private: uint32_t m_current_device_id; diff --git a/kortex_driver/include/kortex_driver/generated/simulation/base_services.h b/kortex_driver/include/kortex_driver/generated/simulation/base_services.h index 0d9e4826..d50f579b 100644 --- a/kortex_driver/include/kortex_driver/generated/simulation/base_services.h +++ b/kortex_driver/include/kortex_driver/generated/simulation/base_services.h @@ -338,6 +338,14 @@ class BaseSimulationServices : public IBaseServices virtual bool ComputeInverseKinematics(kortex_driver::ComputeInverseKinematics::Request &req, kortex_driver::ComputeInverseKinematics::Response &res) override; std::function ValidateWaypointListHandler = nullptr; virtual bool ValidateWaypointList(kortex_driver::ValidateWaypointList::Request &req, kortex_driver::ValidateWaypointList::Response &res) override; + std::function SetWifiEnableStateHandler = nullptr; + virtual bool SetWifiEnableState(kortex_driver::SetWifiEnableState::Request &req, kortex_driver::SetWifiEnableState::Response &res) override; + std::function GetWifiEnableStateHandler = nullptr; + virtual bool GetWifiEnableState(kortex_driver::GetWifiEnableState::Request &req, kortex_driver::GetWifiEnableState::Response &res) override; + std::function SetBluetoothEnableStateHandler = nullptr; + virtual bool SetBluetoothEnableState(kortex_driver::SetBluetoothEnableState::Request &req, kortex_driver::SetBluetoothEnableState::Response &res) override; + std::function GetBluetoothEnableStateHandler = nullptr; + virtual bool GetBluetoothEnableState(kortex_driver::GetBluetoothEnableState::Request &req, kortex_driver::GetBluetoothEnableState::Response &res) override; }; #endif diff --git a/kortex_driver/msg/generated/actuator_config/SafetyIdentifierBankA.msg b/kortex_driver/msg/generated/actuator_config/SafetyIdentifierBankA.msg index 8af8dc2b..e9995055 100644 --- a/kortex_driver/msg/generated/actuator_config/SafetyIdentifierBankA.msg +++ b/kortex_driver/msg/generated/actuator_config/SafetyIdentifierBankA.msg @@ -54,3 +54,7 @@ uint32 UNRELIABLE_CAPACITIVE_SENSOR = 16777216 uint32 UNEXPECTED_GEAR_RATIO = 33554432 uint32 HALL_MAGNETIC_MISMATCH = 67108864 + +uint32 BRAKE_DRIVE_FAULT = 134217728 + +uint32 BRAKE_RELEASE_MOTION_OUT_OF_RANGE = 268435456 diff --git a/kortex_driver/msg/generated/base/Base_SafetyIdentifier.msg b/kortex_driver/msg/generated/base/Base_SafetyIdentifier.msg index b33eefbb..12146931 100644 --- a/kortex_driver/msg/generated/base/Base_SafetyIdentifier.msg +++ b/kortex_driver/msg/generated/base/Base_SafetyIdentifier.msg @@ -17,7 +17,7 @@ uint32 REACHED_MAXIMUM_EVENT_LOGS = 64 uint32 NO_KINEMATICS_SUPPORT = 128 -uint32 ABOVE_MAXIMUM_DOF = 256 +uint32 BRAKE_REMOVAL_FAILURE = 256 uint32 NETWORK_ERROR = 512 diff --git a/kortex_driver/msg/generated/base/BluetoothEnableState.msg b/kortex_driver/msg/generated/base/BluetoothEnableState.msg new file mode 100644 index 00000000..8e3e7a72 --- /dev/null +++ b/kortex_driver/msg/generated/base/BluetoothEnableState.msg @@ -0,0 +1,2 @@ + +bool enabled \ No newline at end of file diff --git a/kortex_driver/msg/generated/base/NetworkEvent.msg b/kortex_driver/msg/generated/base/NetworkEvent.msg index 217903d0..2a0138de 100644 --- a/kortex_driver/msg/generated/base/NetworkEvent.msg +++ b/kortex_driver/msg/generated/base/NetworkEvent.msg @@ -20,3 +20,11 @@ uint32 WIFI_AUTH_WRONG_KEY = 8 uint32 WIFI_AUTH_CONN_FAILED = 9 uint32 WIFI_AUTH_FAILED = 10 + +uint32 WIFI_ENABLED = 11 + +uint32 WIFI_DISABLED = 12 + +uint32 BLUETOOTH_ENABLED = 13 + +uint32 BLUETOOTH_DISABLED = 14 diff --git a/kortex_driver/msg/generated/base/RFConfiguration.msg b/kortex_driver/msg/generated/base/RFConfiguration.msg new file mode 100644 index 00000000..76c307b0 --- /dev/null +++ b/kortex_driver/msg/generated/base/RFConfiguration.msg @@ -0,0 +1,3 @@ + +WifiEnableState wifi_enable_state +BluetoothEnableState bluetooth_enable_state \ No newline at end of file diff --git a/kortex_driver/msg/generated/base/WifiEnableState.msg b/kortex_driver/msg/generated/base/WifiEnableState.msg new file mode 100644 index 00000000..8e3e7a72 --- /dev/null +++ b/kortex_driver/msg/generated/base/WifiEnableState.msg @@ -0,0 +1,2 @@ + +bool enabled \ No newline at end of file diff --git a/kortex_driver/msg/generated/common/ArmState.msg b/kortex_driver/msg/generated/common/ArmState.msg index 9d9db128..ede1b7f6 100644 --- a/kortex_driver/msg/generated/common/ArmState.msg +++ b/kortex_driver/msg/generated/common/ArmState.msg @@ -19,4 +19,6 @@ uint32 ARMSTATE_SERVOING_PLAYING_SEQUENCE = 8 uint32 ARMSTATE_SERVOING_MANUALLY_CONTROLLED = 9 +uint32 ARMSTATE_BRAKE_RELEASING = 10 + uint32 ARMSTATE_RESERVED = 255 diff --git a/kortex_driver/msg/generated/product_configuration/BrakeType.msg b/kortex_driver/msg/generated/product_configuration/BrakeType.msg new file mode 100644 index 00000000..7cfcb176 --- /dev/null +++ b/kortex_driver/msg/generated/product_configuration/BrakeType.msg @@ -0,0 +1,8 @@ + +uint32 BRAKE_TYPE_UNSPECIFIED = 0 + +uint32 BRAKE_TYPE_NOT_INSTALLED = 1 + +uint32 BRAKE_TYPE_SPOKE = 2 + +uint32 BRAKE_TYPE_CLUTCH = 3 diff --git a/kortex_driver/msg/generated/product_configuration/CompleteProductConfiguration.msg b/kortex_driver/msg/generated/product_configuration/CompleteProductConfiguration.msg index 9a1db225..c312c671 100644 --- a/kortex_driver/msg/generated/product_configuration/CompleteProductConfiguration.msg +++ b/kortex_driver/msg/generated/product_configuration/CompleteProductConfiguration.msg @@ -10,4 +10,5 @@ uint32 end_effector_type uint32 vision_module_type uint32 interface_module_type uint32 arm_laterality -uint32 wrist_type \ No newline at end of file +uint32 wrist_type +uint32 brake_type \ No newline at end of file diff --git a/kortex_driver/protos/ActuatorConfig.proto b/kortex_driver/protos/ActuatorConfig.proto index 206dfc8f..151d8595 100644 --- a/kortex_driver/protos/ActuatorConfig.proto +++ b/kortex_driver/protos/ActuatorConfig.proto @@ -338,6 +338,8 @@ enum SafetyIdentifierBankA { UNRELIABLE_CAPACITIVE_SENSOR = 16777216; // 0x1000000 - Capacitive sensor is unreliable UNEXPECTED_GEAR_RATIO = 33554432; // 0x2000000 - Incorrect gear ratio for detected configuration HALL_MAGNETIC_MISMATCH = 67108864; // 0x4000000 - Position mismatch between hall and magnetic sensors + BRAKE_DRIVE_FAULT = 134217728; // 0x8000000 - Brake driver fault + BRAKE_RELEASE_MOTION_OUT_OF_RANGE = 268435456; // 0x10000000 - Brake release motion goes out of allowed range } // Custom data options diff --git a/kortex_driver/protos/Base.proto b/kortex_driver/protos/Base.proto index bbe09379..28265885 100644 --- a/kortex_driver/protos/Base.proto +++ b/kortex_driver/protos/Base.proto @@ -501,6 +501,26 @@ service Base {//@PROXY_ID=2 @ERROR=Kinova.Api.Error * If the use_optimal_blending option is true, a waypoint list with optimal blending will be return. */ rpc ValidateWaypointList (WaypointList) returns (WaypointValidationReport);//@RPC_ID=235 + + /* + * Enable or disable the wifi capabilities on the arm + */ + rpc SetWifiEnableState (WifiEnableState) returns (Kinova.Api.Common.Empty);//@RPC_ID=236 + + /* + * Get the wifi capabilities state (enabled or disabled) + */ + rpc GetWifiEnableState (Kinova.Api.Common.Empty) returns (WifiEnableState);//@RPC_ID=237 + + /* + * Enable or disable the Bluetooth capabilities on the arm + */ + rpc SetBluetoothEnableState (BluetoothEnableState) returns (Kinova.Api.Common.Empty);//@RPC_ID=238 + + /* + * Get the Bluetooth capabilities state (enabled or disabled) + */ + rpc GetBluetoothEnableState (Kinova.Api.Common.Empty) returns (BluetoothEnableState);//@RPC_ID=239 } // List of GPIO port configurations @@ -849,6 +869,19 @@ enum WifiEncryptionType { WEP_ENCRYPTION = 4; // WEP encryption } +message WifiEnableState { + bool enabled = 1; +} + +message BluetoothEnableState { + bool enabled = 1; +} + +message RFConfiguration { + WifiEnableState wifi_enable_state = 1; + BluetoothEnableState bluetooth_enable_state = 2; +} + // Admissible signal quality values enum SignalQuality { UNSPECIFIED_SIGNAL_QUALITY = 0; // Unspecified signal quality @@ -1355,6 +1388,10 @@ enum NetworkEvent { WIFI_AUTH_WRONG_KEY = 8; // Wi-Fi wrong PSK supplied WIFI_AUTH_CONN_FAILED = 9; // Wi-Fi connection failure during auth WIFI_AUTH_FAILED = 10; // Wi-Fi authentication failure + WIFI_ENABLED = 11; // Wi-Fi has been enabled + WIFI_DISABLED = 12; // Wi-Fi has been disabled + BLUETOOTH_ENABLED = 13; // Bluetooth has been enabled + BLUETOOTH_DISABLED = 14; // Bluetooth has been disabled } // Notification about a single network event @@ -1574,7 +1611,7 @@ enum SafetyIdentifier { CYCLIC_DATA_JITTER = 32; // 0x20 - Cyclic data jitter (not implemented yet) REACHED_MAXIMUM_EVENT_LOGS = 64; // 0x40 - Reached Maximum number of event log entries (not implemented yet) NO_KINEMATICS_SUPPORT = 128; // 0x80 - No kinematics support (not implemented yet) - ABOVE_MAXIMUM_DOF = 256; // 0x100 - Above maximum DoF + BRAKE_REMOVAL_FAILURE = 256; // 0x100 - Based failed to remove brakes from the axis NETWORK_ERROR = 512; // 0x200 - Network error (not implemented yet) UNABLE_TO_REACH_POSE = 1024; // 0x400 - Unable to reach pose JOINT_DETECTION_ERROR = 2048; // 0x800 - Joint detection error @@ -1617,7 +1654,7 @@ message TransformationRow { /* * A Cartesian tool pose (position and orientation). - * Orientation is defined as a sequence of three Euler angles using z-y-x Tait-Bryan extrinsic convention. + * Orientation is defined as a sequence of three Euler angles using x-y-z Tait-Bryan extrinsic convention. * That is, rotation around fixed X-axis, then rotation around fixed Y-axis, then rotation around fixed Z-axis. */ message Pose { @@ -1636,7 +1673,7 @@ message Position { } /* - * A Cartesian tool orientation. Defines orientation as sequence of three Euler angles using z-y-x Tait-Bryan extrinsic convention. + * A Cartesian tool orientation. Defines orientation as sequence of three Euler angles using x-y-z Tait-Bryan extrinsic convention. * That is, rotation around fixed X-axis, then rotation around fixed Y-axis, then rotation around fixed Z-axis. */ message Orientation { @@ -1655,7 +1692,7 @@ enum JointTrajectoryConstraintType { // A Cartesian tool speed (translation speed and angular speed) message CartesianSpeed { float translation = 1; // Translation speed (in meters per second) - float orientation = 2; // Orientation speed (in degrees per second) + float orientation = 2; // Orientation speed (in degrees per second) (not implemented yet) } // Cartesian trajectory constraint that can be applied when controlling in Cartesian trajectory mode diff --git a/kortex_driver/protos/Common.proto b/kortex_driver/protos/Common.proto index 97f5ab79..08f4ea45 100644 --- a/kortex_driver/protos/Common.proto +++ b/kortex_driver/protos/Common.proto @@ -138,6 +138,7 @@ enum ArmState ARMSTATE_SERVOING_READY = 7; // Arm is ready to be controlled ARMSTATE_SERVOING_PLAYING_SEQUENCE = 8; // Arm is currently being controlled via a sequence ARMSTATE_SERVOING_MANUALLY_CONTROLLED = 9; // Arm is currently being controlled manually + ARMSTATE_BRAKE_RELEASING = 10; // Arm brakes are being released ARMSTATE_RESERVED = 255; // For debugging, this state must never be reported outside the base. this means that a state is not mapped correctly } diff --git a/kortex_driver/protos/ProductConfiguration.proto b/kortex_driver/protos/ProductConfiguration.proto index 9a840bb6..4080f965 100644 --- a/kortex_driver/protos/ProductConfiguration.proto +++ b/kortex_driver/protos/ProductConfiguration.proto @@ -74,6 +74,14 @@ enum WristType { WRIST_TYPE_CURVED = 3; // Curved Wrist } +// Admissible brake types +enum BrakeType { + BRAKE_TYPE_UNSPECIFIED = 0; // Unspecified brake type + BRAKE_TYPE_NOT_INSTALLED = 1; // No Brakes Installed + BRAKE_TYPE_SPOKE = 2; // Spoke Brake Type + BRAKE_TYPE_CLUTCH = 3; // Clutch Brake Type +} + // Complete configuration for a given device message CompleteProductConfiguration { string kin = 1; // Kinova Identification Number of the device @@ -88,6 +96,7 @@ message CompleteProductConfiguration { InterfaceModuleType interface_module_type = 10; // Interface module type of the device ArmLaterality arm_laterality = 11; // Arm laterality of the device WristType wrist_type = 12; // Wrist type of the device + BrakeType brake_type = 13; // Brake type of the device } // New end-effector installed on arm diff --git a/kortex_driver/readme.md b/kortex_driver/readme.md index df5bf155..16b2f91e 100644 --- a/kortex_driver/readme.md +++ b/kortex_driver/readme.md @@ -299,6 +299,8 @@ Some source code as well as most of the .MSG and .SRV files in this package are The generation process is based on a custom `protoc` plugin. Basically, most of the generation process is in the [scripts/ros_kortex_generator.py](scripts/ros_kortex_generator.py). Before launching the generation ensure that you have the Python JINJA2 module installed. +This scripts works with `protobuf-compiler` (`protoc`) version 3.5.1 (see 3.5.X protobuf [github](https://github.com/protocolbuffers/protobuf/tree/3.5.x)). Script was not tested for other versions. + To launch the generation of this package: 1. Open a terminal window. diff --git a/kortex_driver/src/generated/robot/base_proto_converter.cpp b/kortex_driver/src/generated/robot/base_proto_converter.cpp index b5ae899e..92b53a30 100644 --- a/kortex_driver/src/generated/robot/base_proto_converter.cpp +++ b/kortex_driver/src/generated/robot/base_proto_converter.cpp @@ -461,6 +461,28 @@ int ToProtoData(kortex_driver::FullIPv4Configuration input, Kinova::Api::Base::F return 0; } +int ToProtoData(kortex_driver::WifiEnableState input, Kinova::Api::Base::WifiEnableState *output) +{ + + output->set_enabled(input.enabled); + + return 0; +} +int ToProtoData(kortex_driver::BluetoothEnableState input, Kinova::Api::Base::BluetoothEnableState *output) +{ + + output->set_enabled(input.enabled); + + return 0; +} +int ToProtoData(kortex_driver::RFConfiguration input, Kinova::Api::Base::RFConfiguration *output) +{ + + ToProtoData(input.wifi_enable_state, output->mutable_wifi_enable_state()); + ToProtoData(input.bluetooth_enable_state, output->mutable_bluetooth_enable_state()); + + return 0; +} int ToProtoData(kortex_driver::WifiInformation input, Kinova::Api::Base::WifiInformation *output) { diff --git a/kortex_driver/src/generated/robot/base_ros_converter.cpp b/kortex_driver/src/generated/robot/base_ros_converter.cpp index 1daed506..b5a792ec 100644 --- a/kortex_driver/src/generated/robot/base_ros_converter.cpp +++ b/kortex_driver/src/generated/robot/base_ros_converter.cpp @@ -649,6 +649,34 @@ int ToRosData(Kinova::Api::Base::FullIPv4Configuration input, kortex_driver::Ful + return 0; +} +int ToRosData(Kinova::Api::Base::WifiEnableState input, kortex_driver::WifiEnableState &output) +{ + + output.enabled = input.enabled(); + + + + return 0; +} +int ToRosData(Kinova::Api::Base::BluetoothEnableState input, kortex_driver::BluetoothEnableState &output) +{ + + output.enabled = input.enabled(); + + + + return 0; +} +int ToRosData(Kinova::Api::Base::RFConfiguration input, kortex_driver::RFConfiguration &output) +{ + + ToRosData(input.wifi_enable_state(), output.wifi_enable_state); + ToRosData(input.bluetooth_enable_state(), output.bluetooth_enable_state); + + + return 0; } int ToRosData(Kinova::Api::Base::WifiInformation input, kortex_driver::WifiInformation &output) diff --git a/kortex_driver/src/generated/robot/base_services.cpp b/kortex_driver/src/generated/robot/base_services.cpp index 6ce347fd..dbc901a5 100644 --- a/kortex_driver/src/generated/robot/base_services.cpp +++ b/kortex_driver/src/generated/robot/base_services.cpp @@ -230,6 +230,10 @@ BaseRobotServices::BaseRobotServices(ros::NodeHandle& node_handle, Kinova::Api:: m_serviceComputeForwardKinematics = m_node_handle.advertiseService("base/compute_forward_kinematics", &BaseRobotServices::ComputeForwardKinematics, this); m_serviceComputeInverseKinematics = m_node_handle.advertiseService("base/compute_inverse_kinematics", &BaseRobotServices::ComputeInverseKinematics, this); m_serviceValidateWaypointList = m_node_handle.advertiseService("base/validate_waypoint_list", &BaseRobotServices::ValidateWaypointList, this); + m_serviceSetWifiEnableState = m_node_handle.advertiseService("base/set_wifi_enable_state", &BaseRobotServices::SetWifiEnableState, this); + m_serviceGetWifiEnableState = m_node_handle.advertiseService("base/get_wifi_enable_state", &BaseRobotServices::GetWifiEnableState, this); + m_serviceSetBluetoothEnableState = m_node_handle.advertiseService("base/set_bluetooth_enable_state", &BaseRobotServices::SetBluetoothEnableState, this); + m_serviceGetBluetoothEnableState = m_node_handle.advertiseService("base/get_bluetooth_enable_state", &BaseRobotServices::GetBluetoothEnableState, this); } bool BaseRobotServices::SetDeviceID(kortex_driver::SetDeviceID::Request &req, kortex_driver::SetDeviceID::Response &res) @@ -5296,3 +5300,133 @@ bool BaseRobotServices::ValidateWaypointList(kortex_driver::ValidateWaypointList ToRosData(output, res.output); return true; } + +bool BaseRobotServices::SetWifiEnableState(kortex_driver::SetWifiEnableState::Request &req, kortex_driver::SetWifiEnableState::Response &res) +{ + + Kinova::Api::Base::WifiEnableState input; + ToProtoData(req.input, &input); + kortex_driver::KortexError result_error; + + try + { + m_base->SetWifiEnableState(input, m_current_device_id, m_api_options); + } + + catch (Kinova::Api::KDetailedException& ex) + { + result_error.subCode = ex.getErrorInfo().getError().error_sub_code(); + result_error.code = ex.getErrorInfo().getError().error_code(); + result_error.description = ex.toString(); + m_pub_Error.publish(result_error); + ROS_INFO("Kortex exception"); + ROS_INFO("KINOVA exception error code: %d\n", ex.getErrorInfo().getError().error_code()); + ROS_INFO("KINOVA exception error sub code: %d\n", ex.getErrorInfo().getError().error_sub_code()); + ROS_INFO("KINOVA exception description: %s\n", ex.what()); + return false; + } + catch (std::runtime_error& ex2) + { + ROS_INFO("%s", ex2.what()); + return false; + } + return true; +} + +bool BaseRobotServices::GetWifiEnableState(kortex_driver::GetWifiEnableState::Request &req, kortex_driver::GetWifiEnableState::Response &res) +{ + + Kinova::Api::Base::WifiEnableState output; + + kortex_driver::KortexError result_error; + + try + { + output = m_base->GetWifiEnableState(m_current_device_id, m_api_options); + } + + catch (Kinova::Api::KDetailedException& ex) + { + result_error.subCode = ex.getErrorInfo().getError().error_sub_code(); + result_error.code = ex.getErrorInfo().getError().error_code(); + result_error.description = ex.toString(); + m_pub_Error.publish(result_error); + ROS_INFO("Kortex exception"); + ROS_INFO("KINOVA exception error code: %d\n", ex.getErrorInfo().getError().error_code()); + ROS_INFO("KINOVA exception error sub code: %d\n", ex.getErrorInfo().getError().error_sub_code()); + ROS_INFO("KINOVA exception description: %s\n", ex.what()); + return false; + } + catch (std::runtime_error& ex2) + { + ROS_INFO("%s", ex2.what()); + return false; + } + ToRosData(output, res.output); + return true; +} + +bool BaseRobotServices::SetBluetoothEnableState(kortex_driver::SetBluetoothEnableState::Request &req, kortex_driver::SetBluetoothEnableState::Response &res) +{ + + Kinova::Api::Base::BluetoothEnableState input; + ToProtoData(req.input, &input); + kortex_driver::KortexError result_error; + + try + { + m_base->SetBluetoothEnableState(input, m_current_device_id, m_api_options); + } + + catch (Kinova::Api::KDetailedException& ex) + { + result_error.subCode = ex.getErrorInfo().getError().error_sub_code(); + result_error.code = ex.getErrorInfo().getError().error_code(); + result_error.description = ex.toString(); + m_pub_Error.publish(result_error); + ROS_INFO("Kortex exception"); + ROS_INFO("KINOVA exception error code: %d\n", ex.getErrorInfo().getError().error_code()); + ROS_INFO("KINOVA exception error sub code: %d\n", ex.getErrorInfo().getError().error_sub_code()); + ROS_INFO("KINOVA exception description: %s\n", ex.what()); + return false; + } + catch (std::runtime_error& ex2) + { + ROS_INFO("%s", ex2.what()); + return false; + } + return true; +} + +bool BaseRobotServices::GetBluetoothEnableState(kortex_driver::GetBluetoothEnableState::Request &req, kortex_driver::GetBluetoothEnableState::Response &res) +{ + + Kinova::Api::Base::BluetoothEnableState output; + + kortex_driver::KortexError result_error; + + try + { + output = m_base->GetBluetoothEnableState(m_current_device_id, m_api_options); + } + + catch (Kinova::Api::KDetailedException& ex) + { + result_error.subCode = ex.getErrorInfo().getError().error_sub_code(); + result_error.code = ex.getErrorInfo().getError().error_code(); + result_error.description = ex.toString(); + m_pub_Error.publish(result_error); + ROS_INFO("Kortex exception"); + ROS_INFO("KINOVA exception error code: %d\n", ex.getErrorInfo().getError().error_code()); + ROS_INFO("KINOVA exception error sub code: %d\n", ex.getErrorInfo().getError().error_sub_code()); + ROS_INFO("KINOVA exception description: %s\n", ex.what()); + return false; + } + catch (std::runtime_error& ex2) + { + ROS_INFO("%s", ex2.what()); + return false; + } + ToRosData(output, res.output); + return true; +} diff --git a/kortex_driver/src/generated/robot/productconfiguration_proto_converter.cpp b/kortex_driver/src/generated/robot/productconfiguration_proto_converter.cpp index c93d9b8c..911a61f0 100644 --- a/kortex_driver/src/generated/robot/productconfiguration_proto_converter.cpp +++ b/kortex_driver/src/generated/robot/productconfiguration_proto_converter.cpp @@ -31,6 +31,7 @@ int ToProtoData(kortex_driver::CompleteProductConfiguration input, Kinova::Api:: output->set_interface_module_type((Kinova::Api::ProductConfiguration::InterfaceModuleType)input.interface_module_type); output->set_arm_laterality((Kinova::Api::ProductConfiguration::ArmLaterality)input.arm_laterality); output->set_wrist_type((Kinova::Api::ProductConfiguration::WristType)input.wrist_type); + output->set_brake_type((Kinova::Api::ProductConfiguration::BrakeType)input.brake_type); return 0; } diff --git a/kortex_driver/src/generated/robot/productconfiguration_ros_converter.cpp b/kortex_driver/src/generated/robot/productconfiguration_ros_converter.cpp index 4eeb2ad4..add91c05 100644 --- a/kortex_driver/src/generated/robot/productconfiguration_ros_converter.cpp +++ b/kortex_driver/src/generated/robot/productconfiguration_ros_converter.cpp @@ -31,6 +31,7 @@ int ToRosData(Kinova::Api::ProductConfiguration::CompleteProductConfiguration in output.interface_module_type = input.interface_module_type(); output.arm_laterality = input.arm_laterality(); output.wrist_type = input.wrist_type(); + output.brake_type = input.brake_type(); diff --git a/kortex_driver/src/generated/simulation/base_services.cpp b/kortex_driver/src/generated/simulation/base_services.cpp index d3c3c5b8..c6439aaa 100644 --- a/kortex_driver/src/generated/simulation/base_services.cpp +++ b/kortex_driver/src/generated/simulation/base_services.cpp @@ -226,6 +226,10 @@ BaseSimulationServices::BaseSimulationServices(ros::NodeHandle& node_handle): m_serviceComputeForwardKinematics = m_node_handle.advertiseService("base/compute_forward_kinematics", &BaseSimulationServices::ComputeForwardKinematics, this); m_serviceComputeInverseKinematics = m_node_handle.advertiseService("base/compute_inverse_kinematics", &BaseSimulationServices::ComputeInverseKinematics, this); m_serviceValidateWaypointList = m_node_handle.advertiseService("base/validate_waypoint_list", &BaseSimulationServices::ValidateWaypointList, this); + m_serviceSetWifiEnableState = m_node_handle.advertiseService("base/set_wifi_enable_state", &BaseSimulationServices::SetWifiEnableState, this); + m_serviceGetWifiEnableState = m_node_handle.advertiseService("base/get_wifi_enable_state", &BaseSimulationServices::GetWifiEnableState, this); + m_serviceSetBluetoothEnableState = m_node_handle.advertiseService("base/set_bluetooth_enable_state", &BaseSimulationServices::SetBluetoothEnableState, this); + m_serviceGetBluetoothEnableState = m_node_handle.advertiseService("base/get_bluetooth_enable_state", &BaseSimulationServices::GetBluetoothEnableState, this); } bool BaseSimulationServices::SetDeviceID(kortex_driver::SetDeviceID::Request &req, kortex_driver::SetDeviceID::Response &res) @@ -2573,3 +2577,63 @@ bool BaseSimulationServices::ValidateWaypointList(kortex_driver::ValidateWaypoin } return true; } + +bool BaseSimulationServices::SetWifiEnableState(kortex_driver::SetWifiEnableState::Request &req, kortex_driver::SetWifiEnableState::Response &res) +{ + + + if (SetWifiEnableStateHandler) + { + res = SetWifiEnableStateHandler(req); + } + else + { + ROS_WARN_ONCE("The simulation handler for base/set_wifi_enable_state is not implemented, so the service calls will return the default response."); + } + return true; +} + +bool BaseSimulationServices::GetWifiEnableState(kortex_driver::GetWifiEnableState::Request &req, kortex_driver::GetWifiEnableState::Response &res) +{ + + + if (GetWifiEnableStateHandler) + { + res = GetWifiEnableStateHandler(req); + } + else + { + ROS_WARN_ONCE("The simulation handler for base/get_wifi_enable_state is not implemented, so the service calls will return the default response."); + } + return true; +} + +bool BaseSimulationServices::SetBluetoothEnableState(kortex_driver::SetBluetoothEnableState::Request &req, kortex_driver::SetBluetoothEnableState::Response &res) +{ + + + if (SetBluetoothEnableStateHandler) + { + res = SetBluetoothEnableStateHandler(req); + } + else + { + ROS_WARN_ONCE("The simulation handler for base/set_bluetooth_enable_state is not implemented, so the service calls will return the default response."); + } + return true; +} + +bool BaseSimulationServices::GetBluetoothEnableState(kortex_driver::GetBluetoothEnableState::Request &req, kortex_driver::GetBluetoothEnableState::Response &res) +{ + + + if (GetBluetoothEnableStateHandler) + { + res = GetBluetoothEnableStateHandler(req); + } + else + { + ROS_WARN_ONCE("The simulation handler for base/get_bluetooth_enable_state is not implemented, so the service calls will return the default response."); + } + return true; +} diff --git a/kortex_driver/srv/generated/base/GetBluetoothEnableState.srv b/kortex_driver/srv/generated/base/GetBluetoothEnableState.srv new file mode 100644 index 00000000..f4be8459 --- /dev/null +++ b/kortex_driver/srv/generated/base/GetBluetoothEnableState.srv @@ -0,0 +1,3 @@ +Empty input +--- +BluetoothEnableState output \ No newline at end of file diff --git a/kortex_driver/srv/generated/base/GetWifiEnableState.srv b/kortex_driver/srv/generated/base/GetWifiEnableState.srv new file mode 100644 index 00000000..ac32b929 --- /dev/null +++ b/kortex_driver/srv/generated/base/GetWifiEnableState.srv @@ -0,0 +1,3 @@ +Empty input +--- +WifiEnableState output \ No newline at end of file diff --git a/kortex_driver/srv/generated/base/SetBluetoothEnableState.srv b/kortex_driver/srv/generated/base/SetBluetoothEnableState.srv new file mode 100644 index 00000000..57db988a --- /dev/null +++ b/kortex_driver/srv/generated/base/SetBluetoothEnableState.srv @@ -0,0 +1,3 @@ +BluetoothEnableState input +--- +Empty output \ No newline at end of file diff --git a/kortex_driver/srv/generated/base/SetWifiEnableState.srv b/kortex_driver/srv/generated/base/SetWifiEnableState.srv new file mode 100644 index 00000000..73e1aa48 --- /dev/null +++ b/kortex_driver/srv/generated/base/SetWifiEnableState.srv @@ -0,0 +1,3 @@ +WifiEnableState input +--- +Empty output \ No newline at end of file