From 8b997e1e7958c3c1d934560e397e1ffc0208ecad Mon Sep 17 00:00:00 2001 From: weipengzhe <3389096668@qq.com> Date: Thu, 17 Sep 2026 15:30:07 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8A=A0=E5=85=A5=E9=9A=8Fsh=E8=84=9A=E6=9C=AC?= =?UTF-8?q?=E7=94=9F=E5=91=BD=E5=91=A8=E6=9C=9F=E7=9A=84=E4=BD=BF=E8=83=BD?= =?UTF-8?q?=E5=92=8C=E5=A4=B1=E8=83=BD=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/officer_sdk/lbot_driver/src/lbot_driver.cpp | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/src/officer_sdk/lbot_driver/src/lbot_driver.cpp b/src/officer_sdk/lbot_driver/src/lbot_driver.cpp index 2ca3868..028aef6 100644 --- a/src/officer_sdk/lbot_driver/src/lbot_driver.cpp +++ b/src/officer_sdk/lbot_driver/src/lbot_driver.cpp @@ -150,6 +150,14 @@ bool LBot::connect_robot() { // 获取机械臂信息 get_robot_info(); + bool left_enable_ok = lbot_api.lbot_enable_arm(lbot_handle, LBOT_LEFT_ARM, true); + bool right_enable_ok = lbot_api.lbot_enable_arm(lbot_handle, LBOT_RIGHT_ARM, true); + if (left_enable_ok && right_enable_ok) { + RCLCPP_INFO(this->get_logger(), "Left and right arms enabled successfully"); + } else { + RCLCPP_ERROR(this->get_logger(), "Failed to enable arms: %s", lbot_api.lbot_get_last_error(lbot_handle).c_str()); + } + // 启动状态监控 if (lbot_api.lbot_start_state_monitor(lbot_state_callback_wrapper, lbot_error_callback_wrapper)) { is_state_monitor_started_ = true; @@ -177,6 +185,14 @@ void LBot::disconnect_robot() { if (conn_state_ == GlobalConnState::DISCONNECTED) return; RCLCPP_INFO(this->get_logger(), "Disconnecting from LBot..."); + + bool left_disable_ok = lbot_api.lbot_enable_arm(lbot_handle, LBOT_LEFT_ARM, false); + bool right_disable_ok = lbot_api.lbot_enable_arm(lbot_handle, LBOT_RIGHT_ARM, false); + if (left_disable_ok && right_disable_ok) { + RCLCPP_INFO(this->get_logger(), "Left and right arms disabled successfully"); + } else { + RCLCPP_ERROR(this->get_logger(), "Failed to disable arms: %s", lbot_api.lbot_get_last_error(lbot_handle).c_str()); + } // 先设置状态,避免其他线程继续操作 conn_state_ = GlobalConnState::DISCONNECTED;