From 9479a8ccb2f81f60deda471d80deeb7095b5f572 Mon Sep 17 00:00:00 2001 From: weipengzhe <3389096668@qq.com> Date: Thu, 17 Sep 2026 10:50:14 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9C=BA=E6=A2=B0=E8=87=82=E4=B8=8E=E7=81=B5?= =?UTF-8?q?=E5=B7=A7=E6=89=8B=E4=BD=8D=E6=8E=A7=E9=80=BB=E8=BE=91=E5=B7=B2?= =?UTF-8?q?=E5=AE=8C=E5=A4=87?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 255 +++ scripts/lbot_arm_control.sh | 138 ++ .../lbot_arm_interfaces/CMakeLists.txt | 71 + .../lbot_arm_interfaces/msg/ArmState.msg | 3 + .../lbot_arm_interfaces/msg/FollowJoint.msg | 2 + .../lbot_arm_interfaces/msg/LbotFrame.msg | 3 + .../lbot_arm_interfaces/msg/LbotPose.msg | 2 + .../lbot_arm_interfaces/package.xml | 25 + .../lbot_arm_interfaces/srv/ChangeFrame.srv | 3 + .../lbot_arm_interfaces/srv/DeleteFrame.srv | 3 + .../srv/ForwardKinematics.srv | 7 + .../lbot_arm_interfaces/srv/GetAllFrames.srv | 4 + .../srv/GetCurrentFrame.srv | 5 + .../lbot_arm_interfaces/srv/GetFrame.srv | 4 + .../srv/InverseKinematics.srv | 6 + .../lbot_arm_interfaces/srv/MoveC.srv | 9 + .../lbot_arm_interfaces/srv/MoveJ.srv | 7 + .../lbot_arm_interfaces/srv/MoveJP.srv | 9 + .../lbot_arm_interfaces/srv/MoveL.srv | 9 + .../lbot_arm_interfaces/srv/SetEmergency.srv | 5 + .../lbot_arm_interfaces/srv/SetEnable.srv | 5 + .../lbot_arm_interfaces/srv/SetFrame.srv | 3 + .../lbot_arm_interfaces/srv/SetString.srv | 3 + .../lbot_arm_interfaces/srv/SetZero.srv | 3 + src/officer_sdk/lbot_driver/CMakeLists.txt | 64 + .../lbot_driver/config/lbot_config.yaml | 4 + .../include/lbot_driver/lbot_api.h | 485 +++++ .../include/lbot_driver/lbot_api_cpp.h | 660 ++++++ .../include/lbot_driver/lbot_driver.h | 431 ++++ .../include/lbot_driver/lbot_types.h | 99 + .../include/lbot_driver/lbot_version.h | 23 + .../launch/lbot_start_driver.launch.py | 41 + .../lbot_driver/lib/lib_install.sh | 36 + .../lbot_driver/lib/liblbot_api_cpp.so | 1 + .../lbot_driver/lib/liblbot_api_cpp.so.1 | 1 + .../lbot_driver/lib/liblbot_api_cpp.so.1.0.0 | Bin 0 -> 139864 bytes .../lib/linux_arm64/liblbot_api.so | Bin 0 -> 84824 bytes .../lib/linux_arm64/liblbot_api.so.1 | Bin 0 -> 84824 bytes .../lib/linux_arm64/liblbot_api.so.1.0.5 | Bin 0 -> 84824 bytes .../lib/linux_arm64/liblbot_api_cpp.so | Bin 0 -> 118032 bytes .../lib/linux_arm64/liblbot_api_cpp.so.1 | Bin 0 -> 118032 bytes .../lib/linux_arm64/liblbot_api_cpp.so.1.0.5 | Bin 0 -> 118032 bytes .../lbot_driver/lib/linux_x64/liblbot_api.so | Bin 0 -> 106976 bytes .../lib/linux_x64/liblbot_api.so.1 | Bin 0 -> 106976 bytes .../lib/linux_x64/liblbot_api.so.1.0.5 | Bin 0 -> 106976 bytes .../lib/linux_x64/liblbot_api_cpp.so | Bin 0 -> 139864 bytes .../lib/linux_x64/liblbot_api_cpp.so.1 | Bin 0 -> 139864 bytes .../lib/linux_x64/liblbot_api_cpp.so.1.0.5 | Bin 0 -> 139864 bytes src/officer_sdk/lbot_driver/package.xml | 26 + .../lbot_driver/src/lbot_driver.cpp | 1782 +++++++++++++++++ 50 files changed, 4237 insertions(+) create mode 100755 scripts/lbot_arm_control.sh create mode 100755 src/officer_sdk/lbot_arm_interfaces/CMakeLists.txt create mode 100755 src/officer_sdk/lbot_arm_interfaces/msg/ArmState.msg create mode 100755 src/officer_sdk/lbot_arm_interfaces/msg/FollowJoint.msg create mode 100644 src/officer_sdk/lbot_arm_interfaces/msg/LbotFrame.msg create mode 100755 src/officer_sdk/lbot_arm_interfaces/msg/LbotPose.msg create mode 100755 src/officer_sdk/lbot_arm_interfaces/package.xml create mode 100644 src/officer_sdk/lbot_arm_interfaces/srv/ChangeFrame.srv create mode 100644 src/officer_sdk/lbot_arm_interfaces/srv/DeleteFrame.srv create mode 100755 src/officer_sdk/lbot_arm_interfaces/srv/ForwardKinematics.srv create mode 100644 src/officer_sdk/lbot_arm_interfaces/srv/GetAllFrames.srv create mode 100644 src/officer_sdk/lbot_arm_interfaces/srv/GetCurrentFrame.srv create mode 100644 src/officer_sdk/lbot_arm_interfaces/srv/GetFrame.srv create mode 100755 src/officer_sdk/lbot_arm_interfaces/srv/InverseKinematics.srv create mode 100755 src/officer_sdk/lbot_arm_interfaces/srv/MoveC.srv create mode 100755 src/officer_sdk/lbot_arm_interfaces/srv/MoveJ.srv create mode 100755 src/officer_sdk/lbot_arm_interfaces/srv/MoveJP.srv create mode 100755 src/officer_sdk/lbot_arm_interfaces/srv/MoveL.srv create mode 100755 src/officer_sdk/lbot_arm_interfaces/srv/SetEmergency.srv create mode 100755 src/officer_sdk/lbot_arm_interfaces/srv/SetEnable.srv create mode 100644 src/officer_sdk/lbot_arm_interfaces/srv/SetFrame.srv create mode 100644 src/officer_sdk/lbot_arm_interfaces/srv/SetString.srv create mode 100644 src/officer_sdk/lbot_arm_interfaces/srv/SetZero.srv create mode 100644 src/officer_sdk/lbot_driver/CMakeLists.txt create mode 100755 src/officer_sdk/lbot_driver/config/lbot_config.yaml create mode 100644 src/officer_sdk/lbot_driver/include/lbot_driver/lbot_api.h create mode 100644 src/officer_sdk/lbot_driver/include/lbot_driver/lbot_api_cpp.h create mode 100644 src/officer_sdk/lbot_driver/include/lbot_driver/lbot_driver.h create mode 100644 src/officer_sdk/lbot_driver/include/lbot_driver/lbot_types.h create mode 100644 src/officer_sdk/lbot_driver/include/lbot_driver/lbot_version.h create mode 100755 src/officer_sdk/lbot_driver/launch/lbot_start_driver.launch.py create mode 100755 src/officer_sdk/lbot_driver/lib/lib_install.sh create mode 120000 src/officer_sdk/lbot_driver/lib/liblbot_api_cpp.so create mode 120000 src/officer_sdk/lbot_driver/lib/liblbot_api_cpp.so.1 create mode 100755 src/officer_sdk/lbot_driver/lib/liblbot_api_cpp.so.1.0.0 create mode 100755 src/officer_sdk/lbot_driver/lib/linux_arm64/liblbot_api.so create mode 100755 src/officer_sdk/lbot_driver/lib/linux_arm64/liblbot_api.so.1 create mode 100755 src/officer_sdk/lbot_driver/lib/linux_arm64/liblbot_api.so.1.0.5 create mode 100755 src/officer_sdk/lbot_driver/lib/linux_arm64/liblbot_api_cpp.so create mode 100755 src/officer_sdk/lbot_driver/lib/linux_arm64/liblbot_api_cpp.so.1 create mode 100755 src/officer_sdk/lbot_driver/lib/linux_arm64/liblbot_api_cpp.so.1.0.5 create mode 100755 src/officer_sdk/lbot_driver/lib/linux_x64/liblbot_api.so create mode 100755 src/officer_sdk/lbot_driver/lib/linux_x64/liblbot_api.so.1 create mode 100755 src/officer_sdk/lbot_driver/lib/linux_x64/liblbot_api.so.1.0.5 create mode 100755 src/officer_sdk/lbot_driver/lib/linux_x64/liblbot_api_cpp.so create mode 100755 src/officer_sdk/lbot_driver/lib/linux_x64/liblbot_api_cpp.so.1 create mode 100755 src/officer_sdk/lbot_driver/lib/linux_x64/liblbot_api_cpp.so.1.0.5 create mode 100644 src/officer_sdk/lbot_driver/package.xml create mode 100644 src/officer_sdk/lbot_driver/src/lbot_driver.cpp diff --git a/README.md b/README.md index e69de29..bd44893 100644 --- a/README.md +++ b/README.md @@ -0,0 +1,255 @@ +# wpz_LbotArm 接口说明 + +本工程当前使用 `src/officer_sdk/lbot_driver` 作为机器人网口连接和 ROS2 bridge。启动脚本为: + +```bash +cd ~/workspace/wpz_LbotArm/scripts +./lbot_arm_control.sh start +``` + +停止服务: + +```bash +cd ~/workspace/wpz_LbotArm/scripts +./lbot_arm_control.sh stop +``` + +默认启动的机器人 namespace 是 `/robot1`,默认连接控制器 IP 为 `192.168.10.21`。 + +## 机械臂反馈订阅 + +外部软件如果需要订阅机器人当前机械臂各关节角度、速度、电流/力矩,使用下面两个 topic: + +```text +/robot1/left_arm/joint_states +/robot1/right_arm/joint_states +``` + +消息类型: + +```text +sensor_msgs/msg/JointState +``` + +字段含义: + +```text +name[] 关节名称 +position[] 当前 7 个关节角度,单位 rad +velocity[] 当前 7 个关节速度,单位 rad/s +effort[] 当前 7 个关节 effort 字段;当前 driver 直接填入 SDK 的 effort[7],按项目使用可视为关节电流/力矩反馈字段 +``` + +示例: + +```bash +ros2 topic echo /robot1/left_arm/joint_states +ros2 topic echo /robot1/right_arm/joint_states +``` + +当前反馈中没有关节加速度字段。如果外部软件必须获取关节加速度,需要在上游根据 `velocity[]` 和时间戳自行差分,或者让厂家提供 SDK 原生加速度反馈接口。 + +## 机械臂关节空间控制 + +外部软件如果需要发送机械臂各关节目标位置,使用 MoveJ 服务,不是 topic。 + +左臂: + +```text +/robot1/left_arm/move_joint +``` + +右臂: + +```text +/robot1/right_arm/move_joint +``` + +服务类型: + +```text +lbot_arm_interfaces/srv/MoveJ +``` + +服务定义: + +```srv +float32[] joints +float32 speed +float32 acce +bool block +--- +bool success +``` + +字段含义: + +```text +joints 7 个目标关节角,单位 rad +speed 整条机械臂统一目标速度,单位 rad/s +acce 整条机械臂统一目标加速度,单位 rad/s^2 +block true 表示阻塞等待运动完成,false 表示非阻塞下发 +``` + +示例: + +```bash +ros2 service call /robot1/left_arm/move_joint lbot_arm_interfaces/srv/MoveJ \ +"{joints: [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], speed: 1.0, acce: 1.0, block: true}" +``` + +当前限制: + +```text +MoveJ 支持每个关节独立目标位置 joints[7] +MoveJ 不支持每个关节独立目标速度 velocity[7] +MoveJ 不支持每个关节独立目标加速度 acceleration[7] +speed 和 acce 是整条机械臂统一标量 +``` + +如果后续必须支持每个关节单独目标速度和加速度,需要修改: + +```text +src/officer_sdk/lbot_arm_interfaces/srv/MoveJ.srv +src/officer_sdk/lbot_driver/src/lbot_driver.cpp +src/officer_sdk/lbot_driver/include/lbot_driver/lbot_driver.h +``` + +但当前 SDK 的 `lbot_move_joint()` 接口本身只接收: + +```cpp +const double joints[7], double speed, double accel, bool block +``` + +因此即使 ROS service 增加 `velocity[7]`、`acceleration[7]` 字段,也不能直接传给现有 SDK。要真正实现每关节速度/加速度控制,需要厂家提供更底层的控制接口,或者在 ROS 层自己做轨迹插值,再周期性下发关节位置。 + +## L20/R20 灵巧手整手位置控制 + +外部软件如果需要一次性控制机器人灵巧手所有关节位置,使用下面两个 topic: + +```text +/robot1/left_hand/set_l20_joint +/robot1/right_hand/set_l20_joint +``` + +消息类型: + +```text +std_msgs/msg/Int32MultiArray +``` + +字段含义: + +```text +data[] L20/R20 灵巧手目标位置数组 +``` + +当前 driver 中该 topic 直接调用 SDK: + +```cpp +lbot_l20_set_all_position(lbot_handle, LBOT_LEFT_ARM, hand_joints) +lbot_l20_set_all_position(lbot_handle, LBOT_RIGHT_ARM, hand_joints) +``` + +SDK 头文件注释写明该接口参数是: + +```text +16 个自由度的目标位置,单位 degree +``` + +因此当前整手控制按 16 个整数位置发送。 + +示例: + +```bash +ros2 topic pub --once /robot1/left_hand/set_l20_joint std_msgs/msg/Int32MultiArray \ +"{data: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}" +``` + +右手示例: + +```bash +ros2 topic pub --once /robot1/right_hand/set_l20_joint std_msgs/msg/Int32MultiArray \ +"{data: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}" +``` + +## L20/R20 单指串联位置控制 + +如果只需要控制单根手指,可以使用: + +```text +/robot1/left_hand/set_l20_series_position +/robot1/right_hand/set_l20_series_position +``` + +消息类型: + +```text +std_msgs/msg/Int32MultiArray +``` + +当前约定的数据格式: + +```text +data[0] finger 编号 +data[1..6] 该手指的 6 个位置参数 +``` + +finger 编号: + +```text +0 thumb +1 index +2 middle +3 ring +4 little +``` + +示例,控制左手食指: + +```bash +ros2 topic pub --once /robot1/left_hand/set_l20_series_position std_msgs/msg/Int32MultiArray \ +"{data: [1, 0, 30, 30, 0, 0, 0]}" +``` + +## 相关代码位置 + +反馈发布: + +```text +src/officer_sdk/lbot_driver/src/lbot_driver.cpp +``` + +主要位置: + +```text +LBot::state_publish_timer_callback() +``` + +机械臂 MoveJ 服务: + +```text +LeftArmServiceNode::move_joint_callback() +RightArmServiceNode::move_joint_callback() +``` + +L20/R20 灵巧手 topic: + +```text +LeftArmServiceNode::left_hand_l20_set_joint_callback() +RightArmServiceNode::right_hand_l20_set_joint_callback() +LeftArmServiceNode::left_hand_l20_set_series_position_callback() +RightArmServiceNode::right_hand_l20_set_series_position_callback() +``` + +SDK API 声明: + +```text +src/officer_sdk/lbot_driver/include/lbot_driver/lbot_api_cpp.h +``` + +ROS 接口定义: + +```text +src/officer_sdk/lbot_arm_interfaces/srv/MoveJ.srv +``` diff --git a/scripts/lbot_arm_control.sh b/scripts/lbot_arm_control.sh new file mode 100755 index 0000000..ca10ac5 --- /dev/null +++ b/scripts/lbot_arm_control.sh @@ -0,0 +1,138 @@ +#!/usr/bin/env bash +set -euo pipefail + +SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" +WS_DIR="$(cd "${SCRIPT_DIR}/.." && pwd)" +STATE_DIR="/tmp/lbot_arm_control" +PID_FILE="${STATE_DIR}/lbot_driver.pid" +PGID_FILE="${STATE_DIR}/lbot_driver.pgid" +LOG_FILE="${WS_DIR}/log/lbot_arm_control.log" + +usage() { + echo "Usage: $0 {start|stop|status}" +} + +is_running() { + [[ -f "${PID_FILE}" ]] || return 1 + local pid + pid="$(cat "${PID_FILE}")" + [[ -n "${pid}" ]] || return 1 + kill -0 "${pid}" 2>/dev/null +} + +source_workspace() { + set +u + if [[ -n "${ROS_DISTRO:-}" && -f "/opt/ros/${ROS_DISTRO}/setup.bash" ]]; then + # shellcheck disable=SC1090 + source "/opt/ros/${ROS_DISTRO}/setup.bash" + elif [[ -f "/opt/ros/jazzy/setup.bash" ]]; then + # shellcheck disable=SC1091 + source "/opt/ros/jazzy/setup.bash" + fi + set -u + + if [[ ! -f "${WS_DIR}/install/setup.bash" ]]; then + echo "Workspace is not built: ${WS_DIR}/install/setup.bash not found" + echo "Run: cd ${WS_DIR} && colcon build --packages-select lbot_arm_interfaces lbot_driver" + exit 1 + fi + + # shellcheck disable=SC1091 + set +u + source "${WS_DIR}/install/setup.bash" + set -u +} + +start_driver() { + mkdir -p "${STATE_DIR}" "$(dirname "${LOG_FILE}")" + + if is_running; then + echo "lbot_driver is already running, pid=$(cat "${PID_FILE}")" + return 0 + fi + + source_workspace + + echo "Starting lbot_driver from officer_sdk..." + echo "Log: ${LOG_FILE}" + + : > "${LOG_FILE}" + setsid bash -lc "set +u; source '${WS_DIR}/install/setup.bash'; set -u; exec ros2 launch lbot_driver lbot_start_driver.launch.py" \ + >> "${LOG_FILE}" 2>&1 & + + local pid=$! + local pgid + pgid="$(ps -o pgid= -p "${pid}" | tr -d ' ')" + echo "${pid}" > "${PID_FILE}" + echo "${pgid:-${pid}}" > "${PGID_FILE}" + + sleep 1 + if is_running; then + echo "lbot_driver started, pid=${pid}, pgid=$(cat "${PGID_FILE}")" + else + echo "lbot_driver failed to start. Check log: ${LOG_FILE}" + rm -f "${PID_FILE}" "${PGID_FILE}" + exit 1 + fi +} + +stop_driver() { + if ! [[ -f "${PID_FILE}" ]]; then + echo "lbot_driver is not running" + return 0 + fi + + local pid pgid + pid="$(cat "${PID_FILE}")" + pgid="${pid}" + if [[ -f "${PGID_FILE}" ]]; then + pgid="$(cat "${PGID_FILE}")" + fi + + if ! kill -0 "${pid}" 2>/dev/null; then + echo "lbot_driver process is not alive, cleaning state" + rm -f "${PID_FILE}" "${PGID_FILE}" + return 0 + fi + + echo "Stopping lbot_driver, pid=${pid}, pgid=${pgid}..." + kill -TERM -- "-${pgid}" 2>/dev/null || kill -TERM "${pid}" 2>/dev/null || true + + for _ in {1..30}; do + if ! kill -0 "${pid}" 2>/dev/null; then + rm -f "${PID_FILE}" "${PGID_FILE}" + echo "lbot_driver stopped" + return 0 + fi + sleep 0.2 + done + + echo "lbot_driver did not exit after SIGTERM, forcing stop..." + kill -KILL -- "-${pgid}" 2>/dev/null || kill -KILL "${pid}" 2>/dev/null || true + rm -f "${PID_FILE}" "${PGID_FILE}" + echo "lbot_driver stopped" +} + +status_driver() { + if is_running; then + echo "lbot_driver is running, pid=$(cat "${PID_FILE}"), pgid=$(cat "${PGID_FILE}" 2>/dev/null || cat "${PID_FILE}")" + else + echo "lbot_driver is not running" + fi +} + +case "${1:-}" in + start) + start_driver + ;; + stop) + stop_driver + ;; + status) + status_driver + ;; + *) + usage + exit 1 + ;; +esac diff --git a/src/officer_sdk/lbot_arm_interfaces/CMakeLists.txt b/src/officer_sdk/lbot_arm_interfaces/CMakeLists.txt new file mode 100755 index 0000000..87b542c --- /dev/null +++ b/src/officer_sdk/lbot_arm_interfaces/CMakeLists.txt @@ -0,0 +1,71 @@ +cmake_minimum_required(VERSION 3.5) +project(lbot_arm_interfaces) + +# Default to C99 +if(NOT CMAKE_C_STANDARD) + set(CMAKE_C_STANDARD 99) +endif() + +# Default to C++14 +if(NOT CMAKE_CXX_STANDARD) + set(CMAKE_CXX_STANDARD 14) +endif() + +if(CMAKE_COMPILER_IS_GNUCXX OR CMAKE_CXX_COMPILER_ID MATCHES "Clang") + add_compile_options(-Wall -Wextra -Wpedantic) +endif() + +# find dependencies +find_package(ament_cmake REQUIRED) +find_package(geometry_msgs REQUIRED) +find_package(std_msgs REQUIRED) +find_package(sensor_msgs REQUIRED) + +find_package(rosidl_default_generators REQUIRED) + +rosidl_generate_interfaces(${PROJECT_NAME} + # srv + "srv/MoveJ.srv" + "srv/MoveL.srv" + "srv/MoveC.srv" + "srv/MoveJP.srv" + "srv/InverseKinematics.srv" + "srv/ForwardKinematics.srv" + "srv/SetFrame.srv" + "srv/SetString.srv" + "srv/GetFrame.srv" + "srv/GetCurrentFrame.srv" + "srv/ChangeFrame.srv" + "srv/DeleteFrame.srv" + "srv/GetAllFrames.srv" + "srv/SetZero.srv" + "srv/SetEmergency.srv" + "srv/SetEnable.srv" + # msg + "msg/ArmState.msg" + "msg/LbotPose.msg" + "msg/LbotFrame.msg" + "msg/FollowJoint.msg" + + DEPENDENCIES std_msgs geometry_msgs sensor_msgs + ) + + ament_export_dependencies(rosidl_default_runtime) + + +# uncomment the following section in order to fill in +# further dependencies manually. +# find_package( REQUIRED) + +if(BUILD_TESTING) + find_package(ament_lint_auto REQUIRED) + # the following line skips the linter which checks for copyrights + # uncomment the line when a copyright and license is not present in all source files + #set(ament_cmake_copyright_FOUND TRUE) + # the following line skips cpplint (only works in a git repo) + # uncomment the line when this package is not in a git repo + #set(ament_cmake_cpplint_FOUND TRUE) + ament_lint_auto_find_test_dependencies() +endif() + +ament_package() diff --git a/src/officer_sdk/lbot_arm_interfaces/msg/ArmState.msg b/src/officer_sdk/lbot_arm_interfaces/msg/ArmState.msg new file mode 100755 index 0000000..68e26f0 --- /dev/null +++ b/src/officer_sdk/lbot_arm_interfaces/msg/ArmState.msg @@ -0,0 +1,3 @@ +float32[] joints +geometry_msgs/Vector3 euler +geometry_msgs/Pose pose diff --git a/src/officer_sdk/lbot_arm_interfaces/msg/FollowJoint.msg b/src/officer_sdk/lbot_arm_interfaces/msg/FollowJoint.msg new file mode 100755 index 0000000..c8f6760 --- /dev/null +++ b/src/officer_sdk/lbot_arm_interfaces/msg/FollowJoint.msg @@ -0,0 +1,2 @@ +float32[] joints +bool follow diff --git a/src/officer_sdk/lbot_arm_interfaces/msg/LbotFrame.msg b/src/officer_sdk/lbot_arm_interfaces/msg/LbotFrame.msg new file mode 100644 index 0000000..886d08c --- /dev/null +++ b/src/officer_sdk/lbot_arm_interfaces/msg/LbotFrame.msg @@ -0,0 +1,3 @@ +string name +geometry_msgs/Vector3 euler +geometry_msgs/Vector3 position \ No newline at end of file diff --git a/src/officer_sdk/lbot_arm_interfaces/msg/LbotPose.msg b/src/officer_sdk/lbot_arm_interfaces/msg/LbotPose.msg new file mode 100755 index 0000000..e279aa2 --- /dev/null +++ b/src/officer_sdk/lbot_arm_interfaces/msg/LbotPose.msg @@ -0,0 +1,2 @@ +geometry_msgs/Vector3 euler +geometry_msgs/Vector3 position diff --git a/src/officer_sdk/lbot_arm_interfaces/package.xml b/src/officer_sdk/lbot_arm_interfaces/package.xml new file mode 100755 index 0000000..eb8b176 --- /dev/null +++ b/src/officer_sdk/lbot_arm_interfaces/package.xml @@ -0,0 +1,25 @@ + + + + lbot_arm_interfaces + 0.0.0 + TODO: Package description + Ross + TODO: License declaration + + ament_cmake + + rosidl_default_generators + rosidl_default_runtime + rosidl_interface_packages + + ament_lint_auto + ament_lint_common + + + ament_cmake + + std_msgs + geometry_msgs + sensor_msgs + diff --git a/src/officer_sdk/lbot_arm_interfaces/srv/ChangeFrame.srv b/src/officer_sdk/lbot_arm_interfaces/srv/ChangeFrame.srv new file mode 100644 index 0000000..59e4a8a --- /dev/null +++ b/src/officer_sdk/lbot_arm_interfaces/srv/ChangeFrame.srv @@ -0,0 +1,3 @@ +string name +--- +bool success diff --git a/src/officer_sdk/lbot_arm_interfaces/srv/DeleteFrame.srv b/src/officer_sdk/lbot_arm_interfaces/srv/DeleteFrame.srv new file mode 100644 index 0000000..59e4a8a --- /dev/null +++ b/src/officer_sdk/lbot_arm_interfaces/srv/DeleteFrame.srv @@ -0,0 +1,3 @@ +string name +--- +bool success diff --git a/src/officer_sdk/lbot_arm_interfaces/srv/ForwardKinematics.srv b/src/officer_sdk/lbot_arm_interfaces/srv/ForwardKinematics.srv new file mode 100755 index 0000000..9622f3d --- /dev/null +++ b/src/officer_sdk/lbot_arm_interfaces/srv/ForwardKinematics.srv @@ -0,0 +1,7 @@ +float32[] joints + +--- +geometry_msgs/Vector3 position +geometry_msgs/Vector3 euler + +bool success \ No newline at end of file diff --git a/src/officer_sdk/lbot_arm_interfaces/srv/GetAllFrames.srv b/src/officer_sdk/lbot_arm_interfaces/srv/GetAllFrames.srv new file mode 100644 index 0000000..f468109 --- /dev/null +++ b/src/officer_sdk/lbot_arm_interfaces/srv/GetAllFrames.srv @@ -0,0 +1,4 @@ + +--- +string[] names +bool success diff --git a/src/officer_sdk/lbot_arm_interfaces/srv/GetCurrentFrame.srv b/src/officer_sdk/lbot_arm_interfaces/srv/GetCurrentFrame.srv new file mode 100644 index 0000000..824338f --- /dev/null +++ b/src/officer_sdk/lbot_arm_interfaces/srv/GetCurrentFrame.srv @@ -0,0 +1,5 @@ +--- +string name +lbot_arm_interfaces/LbotFrame frame +bool success + diff --git a/src/officer_sdk/lbot_arm_interfaces/srv/GetFrame.srv b/src/officer_sdk/lbot_arm_interfaces/srv/GetFrame.srv new file mode 100644 index 0000000..2562797 --- /dev/null +++ b/src/officer_sdk/lbot_arm_interfaces/srv/GetFrame.srv @@ -0,0 +1,4 @@ +string name +--- +lbot_arm_interfaces/LbotFrame frame +bool success diff --git a/src/officer_sdk/lbot_arm_interfaces/srv/InverseKinematics.srv b/src/officer_sdk/lbot_arm_interfaces/srv/InverseKinematics.srv new file mode 100755 index 0000000..fc91edd --- /dev/null +++ b/src/officer_sdk/lbot_arm_interfaces/srv/InverseKinematics.srv @@ -0,0 +1,6 @@ +float32[] joints # 此关节角度不设置会默认从机械臂读取当前角度,如果设置则基于此值为初始角度进行逆解 +geometry_msgs/Vector3 position +geometry_msgs/Vector3 euler +--- +float32[] joints +bool success \ No newline at end of file diff --git a/src/officer_sdk/lbot_arm_interfaces/srv/MoveC.srv b/src/officer_sdk/lbot_arm_interfaces/srv/MoveC.srv new file mode 100755 index 0000000..e543615 --- /dev/null +++ b/src/officer_sdk/lbot_arm_interfaces/srv/MoveC.srv @@ -0,0 +1,9 @@ +geometry_msgs/Vector3 position +geometry_msgs/Vector3 euler +float32 speed +float32 acce +bool block + +--- + +bool success \ No newline at end of file diff --git a/src/officer_sdk/lbot_arm_interfaces/srv/MoveJ.srv b/src/officer_sdk/lbot_arm_interfaces/srv/MoveJ.srv new file mode 100755 index 0000000..5ebaa0a --- /dev/null +++ b/src/officer_sdk/lbot_arm_interfaces/srv/MoveJ.srv @@ -0,0 +1,7 @@ +float32[] joints +float32 speed +float32 acce +bool block + +--- +bool success \ No newline at end of file diff --git a/src/officer_sdk/lbot_arm_interfaces/srv/MoveJP.srv b/src/officer_sdk/lbot_arm_interfaces/srv/MoveJP.srv new file mode 100755 index 0000000..e543615 --- /dev/null +++ b/src/officer_sdk/lbot_arm_interfaces/srv/MoveJP.srv @@ -0,0 +1,9 @@ +geometry_msgs/Vector3 position +geometry_msgs/Vector3 euler +float32 speed +float32 acce +bool block + +--- + +bool success \ No newline at end of file diff --git a/src/officer_sdk/lbot_arm_interfaces/srv/MoveL.srv b/src/officer_sdk/lbot_arm_interfaces/srv/MoveL.srv new file mode 100755 index 0000000..e543615 --- /dev/null +++ b/src/officer_sdk/lbot_arm_interfaces/srv/MoveL.srv @@ -0,0 +1,9 @@ +geometry_msgs/Vector3 position +geometry_msgs/Vector3 euler +float32 speed +float32 acce +bool block + +--- + +bool success \ No newline at end of file diff --git a/src/officer_sdk/lbot_arm_interfaces/srv/SetEmergency.srv b/src/officer_sdk/lbot_arm_interfaces/srv/SetEmergency.srv new file mode 100755 index 0000000..6781332 --- /dev/null +++ b/src/officer_sdk/lbot_arm_interfaces/srv/SetEmergency.srv @@ -0,0 +1,5 @@ +bool emergency + +--- + +bool success diff --git a/src/officer_sdk/lbot_arm_interfaces/srv/SetEnable.srv b/src/officer_sdk/lbot_arm_interfaces/srv/SetEnable.srv new file mode 100755 index 0000000..f5d9de0 --- /dev/null +++ b/src/officer_sdk/lbot_arm_interfaces/srv/SetEnable.srv @@ -0,0 +1,5 @@ +bool enable + +--- + +bool success diff --git a/src/officer_sdk/lbot_arm_interfaces/srv/SetFrame.srv b/src/officer_sdk/lbot_arm_interfaces/srv/SetFrame.srv new file mode 100644 index 0000000..1eadc65 --- /dev/null +++ b/src/officer_sdk/lbot_arm_interfaces/srv/SetFrame.srv @@ -0,0 +1,3 @@ +lbot_arm_interfaces/LbotFrame frame +--- +bool success diff --git a/src/officer_sdk/lbot_arm_interfaces/srv/SetString.srv b/src/officer_sdk/lbot_arm_interfaces/srv/SetString.srv new file mode 100644 index 0000000..59e4a8a --- /dev/null +++ b/src/officer_sdk/lbot_arm_interfaces/srv/SetString.srv @@ -0,0 +1,3 @@ +string name +--- +bool success diff --git a/src/officer_sdk/lbot_arm_interfaces/srv/SetZero.srv b/src/officer_sdk/lbot_arm_interfaces/srv/SetZero.srv new file mode 100644 index 0000000..d857c6a --- /dev/null +++ b/src/officer_sdk/lbot_arm_interfaces/srv/SetZero.srv @@ -0,0 +1,3 @@ + +--- +bool success diff --git a/src/officer_sdk/lbot_driver/CMakeLists.txt b/src/officer_sdk/lbot_driver/CMakeLists.txt new file mode 100644 index 0000000..9aa9b81 --- /dev/null +++ b/src/officer_sdk/lbot_driver/CMakeLists.txt @@ -0,0 +1,64 @@ +cmake_minimum_required(VERSION 3.8) +project(lbot_driver) + +set(CMAKE_CXX_STANDARD 14) +set(CMAKE_CXX_STANDARD_REQUIRED ON) + +add_compile_options(-Wall -Wextra -Wpedantic) + +# ROS2 dependencies +find_package(ament_cmake REQUIRED) +find_package(rclcpp REQUIRED) +find_package(std_msgs REQUIRED) +find_package(std_srvs REQUIRED) +find_package(sensor_msgs REQUIRED) +find_package(geometry_msgs REQUIRED) +find_package(tf2 REQUIRED) +find_package(tf2_geometry_msgs REQUIRED) +find_package(lbot_arm_interfaces REQUIRED) + +# include directories +include_directories( + ${PROJECT_SOURCE_DIR}/include + ${PROJECT_SOURCE_DIR}/include/${PROJECT_NAME} +) + +# library directory +link_directories(${PROJECT_SOURCE_DIR}/lib) + +# executable +add_executable(lbot_driver src/lbot_driver.cpp) + +# link the API library (name only! no lib prefix, no .so suffix) +target_link_libraries(lbot_driver + lbot_api_cpp +) + +# ros deps +ament_target_dependencies(lbot_driver + rclcpp + std_msgs + std_srvs + sensor_msgs + geometry_msgs + tf2 + tf2_geometry_msgs + lbot_arm_interfaces +) + +# install binary +install(TARGETS lbot_driver + DESTINATION lib/${PROJECT_NAME} +) + +# install launch & config +install(DIRECTORY launch config + DESTINATION share/${PROJECT_NAME} +) + +# install .so libraries +install(DIRECTORY lib/ + DESTINATION lib +) + +ament_package() diff --git a/src/officer_sdk/lbot_driver/config/lbot_config.yaml b/src/officer_sdk/lbot_driver/config/lbot_config.yaml new file mode 100755 index 0000000..af42273 --- /dev/null +++ b/src/officer_sdk/lbot_driver/config/lbot_config.yaml @@ -0,0 +1,4 @@ +lbot_driver: + ros__parameters: + #robot param + arm_ip: "192.168.10.21" #设置TCP连接时的IP \ No newline at end of file diff --git a/src/officer_sdk/lbot_driver/include/lbot_driver/lbot_api.h b/src/officer_sdk/lbot_driver/include/lbot_driver/lbot_api.h new file mode 100644 index 0000000..4634746 --- /dev/null +++ b/src/officer_sdk/lbot_driver/include/lbot_driver/lbot_api.h @@ -0,0 +1,485 @@ +/** + * @file lbot_api.h + * @brief LBot机器人控制API接口 + * @date 2026.1.19 + * @copyright 灵心巧手科技有限公司 + */ +#ifndef LBOT_API_H +#define LBOT_API_H + +#ifdef __cplusplus +extern "C" { +#endif + +// 跨平台导出宏 +#ifdef _WIN32 + #ifdef LBOT_API_EXPORTS + #define LBOT_API __declspec(dllexport) + #else + #define LBOT_API __declspec(dllimport) + #endif +#else + #define LBOT_API __attribute__((visibility("default"))) +#endif + +#include "lbot_types.h" +#include "lbot_version.h" + +// ============================================== +// API初始化和清理函数 +// ============================================== +/** + * @brief 初始化LBot API连接 + * @param tcp_host TCP服务器地址格式:"192.168.10.21" + * @return lbot_handle_t 连接句柄,连接成功句柄ID>0,失败返回NULL + */ +LBOT_API lbot_handle_t *lbot_init(const char* tcp_host); + +/** + * @brief 断开指定连接 + * @param handle 机械臂句柄 + * @return true 断开成功,false 断开失败 + */ +LBOT_API bool lbot_disconnect(lbot_handle_t *handle); + +/** + * @brief 清理API资源,断开连接 + */ +LBOT_API void lbot_cleanup(); + +/** + * @brief 获取API版本信息 + * @return 版本字符串 + */ +LBOT_API const char* lbot_get_api_version(); +// ============================================== +// 系统信息获取函数 +// ============================================== +/** + * @brief 获取控制器信息 + * @param handle 机械臂句柄 + * @param robot_model 返回的机器人型号字符串(需要调用者释放) + * @param controller_version 返回的控制器版本字符串(需要调用者释放) + * @return true 获取成功,false 获取失败 + */ +LBOT_API bool lbot_get_controller_info(lbot_handle_t *handle, char** robot_model, char** controller_version); + +// ============================================== +// 状态监控和管理函数 +// ============================================== +/** + * @brief 启动状态监控 + * @param state_cb 状态回调函数,当机器人状态更新时调用 + * @param error_cb 错误回调函数,当发生错误时调用 + * @return true 启动成功,false 启动失败 + */ +LBOT_API bool lbot_start_state_monitor(lbot_state_callback_t state_cb, lbot_error_callback_t error_cb); + +/** + * @brief 停止状态监控 + */ +LBOT_API void lbot_stop_state_monitor(); + +/** + * @brief 获取当前机器人完整状态,此接口需要在启动状态监控后才能调用 + * @param handle 机械臂句柄 + * @param state 返回的机器人状态结构体指针 + * @return true 获取成功,false 获取失败 + */ +LBOT_API bool lbot_get_current_state(lbot_handle_t *handle, lbot_full_state_t* state); + +// ============================================== +// 运动控制函数 +// ============================================== +/** + * @brief 关节空间运动 + * @param handle 机械臂句柄 + * @param arm 机械臂选择:LBOT_LEFT_ARM 或 LBOT_RIGHT_ARM + * @param joints 7个关节的目标角度(弧度) + * @param speed 运动速度(0.0~20.0)单位是rad/s, 建议从(0.0~2.0)开始使用后续如有需要逐步提高 + * @param accel 加速度(0.0~20.0) 单位是rad/s^2, 建议从(0.0~2.0)开始使用后续如有需要逐步提高 + * @param block 是否阻塞执行:true 等待运动完成,false 立即返回 + * @return true 指令发送成功,false 发送失败 + */ +LBOT_API bool lbot_move_joint(lbot_handle_t *handle, lbot_arm_t arm, const double joints[7], double speed, double accel, bool block); + +/** + * @brief 笛卡尔空间姿态运动(关节插值) + * @param handle 机械臂句柄 + * @param arm 机械臂选择:LBOT_LEFT_ARM 或 LBOT_RIGHT_ARM + * @param position 目标位置(x, y, z,单位:米) + * @param euler 机械臂末端目标欧拉角(roll, pitch, yaw,单位:弧度) + * @param speed 机械臂末端运动速度(0.0~20.0)单位m/s, 建议从(0.0~2.0)开始使用后续如有需要逐步提高 + * @param accel 机械臂末端加速度(0.0~20.0)单位m/s^2, 建议从(0.0~2.0)开始使用后续如有需要逐步提高 + * @param block 是否阻塞执行:true 等待运动完成,false 立即返回 + * @return true 指令发送成功,false 发送失败 + */ +LBOT_API bool lbot_move_pose(lbot_handle_t *handle, lbot_arm_t arm, const lbot_position_t* position, const lbot_euler_t* euler, + double speed, double accel, bool block); + +/** + * @brief 笛卡尔空间直线运动(直线插值) + * @param handle 机械臂句柄 + * @param arm 机械臂选择:LBOT_LEFT_ARM 或 LBOT_RIGHT_ARM + * @param position 目标位置(x, y, z,单位:米) + * @param euler 目标欧拉角(roll, pitch, yaw,单位:弧度) + * @param speed 关节运动速度(0.0~20.0)单位是rad/s, 建议从(0.0~2.0)开始使用后续如有需要逐步提高 + * @param accel 关节运动加速度(0.0~20.0) 单位是rad/s^2, 建议从(0.0~2.0)开始使用后续如有需要逐步提高 + * @param block 是否阻塞执行:true 等待运动完成,false 立即返回 + * @return true 指令发送成功,false 发送失败 + */ +LBOT_API bool lbot_move_linear(lbot_handle_t *handle, lbot_arm_t arm, const lbot_position_t* position, const lbot_euler_t* euler, + double speed, double accel, bool block); + +// ============================================== +// 关节跟随函数(用于遥操作) +// ============================================== +/** + * @brief 关节跟随控制 + * @param handle 机械臂句柄 + * @param arm 机械臂选择:LBOT_LEFT_ARM 或 LBOT_RIGHT_ARM + * @param joints 7个关节的目标角度(弧度) + * @return true 指令发送成功,false 发送失败 + */ +LBOT_API bool lbot_joint_follow(lbot_handle_t *handle, lbot_arm_t arm, const double joints[7]); + +/** + * @brief 笛卡尔空间姿态跟随运动 + * @param handle 机械臂句柄 + * @param arm 机械臂选择:LBOT_LEFT_ARM 或 LBOT_RIGHT_ARM + * @param pos 目标位置(x, y, z,单位:米) + * @param eul 目标欧拉角(roll, pitch, yaw,单位:弧度) + * @return true 指令发送成功,false 发送失败 + */ +LBOT_API bool lbot_pose_follow(lbot_handle_t *handle, lbot_arm_t arm, lbot_position_t pos, lbot_euler_t eul); +// ============================================== +// l6 手控制接口 +// ============================================== +/** + * @brief 设置L6手的位置控制 + * @param handle 机械臂句柄 + * @param arm 机械臂选择:LBOT_LEFT_ARM 或 LBOT_RIGHT_ARM + * @param position 6个手指的目标位置(0~255) + * @return true 指令发送成功,false 发送失败 + */ +LBOT_API bool lbot_l6_set_position(lbot_handle_t *handle, lbot_arm_t arm, const uint8_t position[6]); + +/** + * @brief 设置L6手的速度控制 + * @param handle 机械臂句柄 + * @param arm 机械臂选择:LBOT_LEFT_ARM 或 LBOT_RIGHT_ARM + * @param velocity 6个手指的目标速度(0~255) + * @return true 指令发送成功,false 发送失败 + */ +LBOT_API bool lbot_l6_set_velocity(lbot_handle_t *handle, lbot_arm_t arm, const uint8_t velocity[6]); + +/** + * @brief 设置L6手的力矩控制 + * @param handle 机械臂句柄 + * @param arm 机械臂选择:LBOT_LEFT_ARM 或 LBOT_RIGHT_ARM + * @param torque 6个手指的目标力矩(0~255) + * @return true 指令发送成功,false 发送失败 + */ +LBOT_API bool lbot_l6_set_effort(lbot_handle_t *handle, lbot_arm_t arm, const uint8_t torque[6]); + +// ============================================== +// l10 手控制接口(10个自由度) +// ============================================== +/** + * @brief 设置L10手的位置控制 + * @param handle 机械臂句柄 + * @param arm 机械臂选择:LBOT_LEFT_ARM 或 LBOT_RIGHT_ARM + * @param position 10个手指的目标位置(0~255) + * @return true 指令发送成功,false 发送失败 + */ +LBOT_API bool lbot_l10_set_position(lbot_handle_t *handle, lbot_arm_t arm, const uint8_t position[10]); + +/** + * @brief 设置L10手的速度控制 + * @param handle 机械臂句柄 + * @param arm 机械臂选择:LBOT_LEFT_ARM 或 LBOT_RIGHT_ARM + * @param velocity 10个手指的目标速度(0~255) + * @return true 指令发送成功,false 发送失败 + */ +LBOT_API bool lbot_l10_set_velocity(lbot_handle_t *handle, lbot_arm_t arm, const uint8_t velocity[10]); + +/** + * @brief 设置L10手的力矩控制 + * @param handle 机械臂句柄 + * @param arm 机械臂选择:LBOT_LEFT_ARM 或 LBOT_RIGHT_ARM + * @param torque 10个手指的目标力矩(0~255) + * @return true 指令发送成功,false 发送失败 + */ +LBOT_API bool lbot_l10_set_effort(lbot_handle_t *handle, lbot_arm_t arm, const uint8_t torque[10]); + +// ============================================== +// r20 手控制接口 +// ============================================== +/** + * @brief 设置R20手各手指位置控制 + * @param handle 机械臂句柄 + * @param arm 机械臂选择:LBOT_LEFT_ARM 或 LBOT_RIGHT_ARM + * @param cmd 目标位置命令 + * @return true 指令发送成功,false 发送失败 + */ +LBOT_API bool lbot_l20_set_series_position(lbot_handle_t *handle, lbot_arm_t arm, const lbot_l20_series_cmd_t* cmd); +/** + * @brief 设置R20手所有自由度位置控制 + * @param handle 机械臂句柄 + * @param arm 机械臂选择:LBOT_LEFT_ARM 或 LBOT_RIGHT_ARM + * @param cmd 目标位置命令, 16个自由度的目标位置(度),分别为:拇指指根(0~120)、 + * 拇指指尖(0~150)、拇指侧摆(0~180)、拇指旋转(0~130)、食指侧摆(-30~30)、 + * 食指指根(0~180)、食指指尖(0~180)、中指侧摆(-30~30)、中指指根(0~180)、 + * 中指指尖(0~180)、无名指侧摆(-20~20)、无名指指根(0~180)、无名指指尖(0~180)、 + * 小指侧摆(-20~20)、小指指根(0~180)、小指指尖(0~180) + * @return true 指令发送成功,false 发送失败 + */ +LBOT_API bool lbot_l20_set_all_position(lbot_handle_t *handle, lbot_arm_t arm, const int cmd[16]); + + +// ============================================== +// 运动学计算函数 +// ============================================== +/** + * @brief 正运动学计算 + * @param handle 机械臂句柄 + * @param arm 机械臂选择:LBOT_LEFT_ARM 或 LBOT_RIGHT_ARM + * @param joints 7个关节角度(弧度) + * @param position 返回的末端位置(x, y, z,单位:米) + * @param euler 返回的末端欧拉角(roll, pitch, yaw,单位:弧度) + * @return true 计算成功,false 计算失败 + */ +LBOT_API bool lbot_forward_kinematics(lbot_handle_t *handle, lbot_arm_t arm, const double joints[7], + lbot_position_t* position, lbot_euler_t* euler); + +/** + * @brief 逆运动学计算 + * @param handle 机械臂句柄 + * @param arm 机械臂选择:LBOT_LEFT_ARM 或 LBOT_RIGHT_ARM + * @param initial_joints 初始关节角度(弧度),用于求解器迭代 + * @param position 目标位置(x, y, z,单位:米) + * @param euler 目标欧拉角(roll, pitch, yaw,单位:弧度) + * @param result_joints 返回的7个关节角度解(弧度) + * @return true 求解成功,false 求解失败 + */ +LBOT_API bool lbot_inverse_kinematics(lbot_handle_t *handle, lbot_arm_t arm, const double initial_joints[7], + const lbot_position_t* position, const lbot_euler_t* euler, + double result_joints[7]); + +// ============================================== +// 工具坐标系管理函数 +// ============================================== +/** + * @brief 设置工具坐标系 + * @param handle 机械臂句柄 + * @param arm 机械臂选择:LBOT_LEFT_ARM 或 LBOT_RIGHT_ARM + * @param name 工具坐标系名称(最大32字符) + * @param position 工具坐标系相对于法兰盘的位置偏移(x, y, z,单位:米) + * @param euler 工具坐标系相对于法兰盘的欧拉角偏移(roll, pitch, yaw,单位:弧度) + * @return true 设置成功,false 设置失败 + */ +LBOT_API bool lbot_set_tool_frame(lbot_handle_t *handle, lbot_arm_t arm, const char* name, + const lbot_position_t* position, const lbot_euler_t* euler); + +/** + * @brief 获取工具坐标系参数 + * @param handle 机械臂句柄 + * @param arm 机械臂选择:LBOT_LEFT_ARM 或 LBOT_RIGHT_ARM + * @param name 工具坐标系名称 + * @param position 返回的工具坐标系位置偏移 + * @param euler 返回的工具坐标系欧拉角偏移 + * @return true 获取成功,false 获取失败 + */ +LBOT_API bool lbot_get_tool_frame(lbot_handle_t *handle, lbot_arm_t arm, const char* name, + lbot_position_t* position, lbot_euler_t* euler); + +/** + * @brief 获取当前使用的工具坐标系 + * @param handle 机械臂句柄 + * @param arm 机械臂选择:LBOT_LEFT_ARM 或 LBOT_RIGHT_ARM + * @param name 返回的当前工具坐标系名称(需要调用者释放) + * @param position 返回的当前工具坐标系位置偏移 + * @param euler 返回的当前工具坐标系欧拉角偏移 + * @return true 获取成功,false 获取失败 + */ +LBOT_API bool lbot_get_current_tool_frame(lbot_handle_t *handle, lbot_arm_t arm, + char** name, + lbot_position_t* position, + lbot_euler_t* euler); + +/** + * @brief 切换当前工具坐标系 + * @param handle 机械臂句柄 + * @param arm 机械臂选择:LBOT_LEFT_ARM 或 LBOT_RIGHT_ARM + * @param name 要切换到的工具坐标系名称 + * @return true 切换成功,false 切换失败 + */ +LBOT_API bool lbot_change_tool_frame(lbot_handle_t *handle, lbot_arm_t arm, const char* name); + +/** + * @brief 删除工具坐标系 + * @param handle 机械臂句柄 + * @param arm 机械臂选择:LBOT_LEFT_ARM 或 LBOT_RIGHT_ARM + * @param name 要删除的工具坐标系名称 + * @return true 删除成功,false 删除失败 + */ +LBOT_API bool lbot_delete_tool_frame(lbot_handle_t *handle, lbot_arm_t arm, const char* name); + +/** + * @brief 获取所有工具坐标系名称 + * @param handle 机械臂句柄 + * @param arm 机械臂选择:LBOT_LEFT_ARM 或 LBOT_RIGHT_ARM + * @param names 返回的工具坐标系名称数组(需要调用lbot_free_string_array释放) + * @param count 返回的工具坐标系数量 + * @return true 获取成功,false 获取失败 + */ +LBOT_API bool lbot_get_all_tool_frames(lbot_handle_t *handle, lbot_arm_t arm, char*** names, int* count); + +// ============================================== +// 工作坐标系管理函数 +// ============================================== +/** + * @brief 设置工作坐标系 + * @param handle 机械臂句柄 + * @param arm 机械臂选择:LBOT_LEFT_ARM 或 LBOT_RIGHT_ARM + * @param name 工作坐标系名称(最大32字符) + * @param position 工作坐标系相对于基坐标系的位置偏移(x, y, z,单位:米) + * @param euler 工作坐标系相对于基坐标系的欧拉角偏移(roll, pitch, yaw,单位:弧度) + * @return true 设置成功,false 设置失败 + */ +LBOT_API bool lbot_set_work_frame(lbot_handle_t *handle, lbot_arm_t arm, const char* name, + const lbot_position_t* position, const lbot_euler_t* euler); + +/** + * @brief 获取工作坐标系参数 + * @param handle 机械臂句柄 + * @param arm 机械臂选择:LBOT_LEFT_ARM 或 LBOT_RIGHT_ARM + * @param name 工作坐标系名称 + * @param position 返回的工作坐标系位置偏移 + * @param euler 返回的工作坐标系欧拉角偏移 + * @return true 获取成功,false 获取失败 + */ +LBOT_API bool lbot_get_work_frame(lbot_handle_t *handle, lbot_arm_t arm, const char* name, + lbot_position_t* position, lbot_euler_t* euler); + +/** + * @brief 切换当前工作坐标系 + * @param handle 机械臂句柄 + * @param arm 机械臂选择:LBOT_LEFT_ARM 或 LBOT_RIGHT_ARM + * @param name 要切换到的工作坐标系名称 + * @return true 切换成功,false 切换失败 + */ +LBOT_API bool lbot_change_work_frame(lbot_handle_t *handle, lbot_arm_t arm, const char* name); + +/** + * @brief 删除工作坐标系 + * @param handle 机械臂句柄 + * @param arm 机械臂选择:LBOT_LEFT_ARM 或 LBOT_RIGHT_ARM + * @param name 要删除的工作坐标系名称 + * @return true 删除成功,false 删除失败 + */ +LBOT_API bool lbot_delete_work_frame(lbot_handle_t *handle, lbot_arm_t arm, const char* name); + +/** + * @brief 获取所有工作坐标系名称 + * @param handle 机械臂句柄 + * @param arm 机械臂选择:LBOT_LEFT_ARM 或 LBOT_RIGHT_ARM + * @param names 返回的工作坐标系名称数组(需要调用lbot_free_string_array释放) + * @param count 返回的工作坐标系数量 + * @return true 获取成功,false 获取失败 + */ +LBOT_API bool lbot_get_all_work_frames(lbot_handle_t *handle, lbot_arm_t arm, char*** names, int* count); + +// ============================================== +// 系统功能函数 +// ============================================== +/** + * @brief 重新标定电机零位,设置当前位置为零位 + * @param handle 机械臂句柄 + * @param arm 机械臂选择:LBOT_LEFT_ARM 或 LBOT_RIGHT_ARM + * @return true 设置成功,false 设置失败 + */ +LBOT_API bool lbot_set_zero(lbot_handle_t *handle, lbot_arm_t arm); + +/** + * @brief 使能/掉使能机械臂 + * @param handle 机械臂句柄 + * @param arm 机械臂选择:LBOT_LEFT_ARM 或 LBOT_RIGHT_ARM + * @param enable true 使能,false 掉使能 + * @return true 指令发送成功,false 发送失败 + */ +LBOT_API bool lbot_enable_arm(lbot_handle_t *handle, lbot_arm_t arm, bool enable); + +/** + * @brief 紧急停止/恢复机械臂运行 + * @param handle 机械臂句柄 + * @param arm 机械臂选择:LBOT_LEFT_ARM 或 LBOT_RIGHT_ARM + * @param enable true 紧急停止,false 恢复运行 + * @return true 指令发送成功,false 发送失败 + */ +LBOT_API bool lbot_emergency_stop(lbot_handle_t *handle, lbot_arm_t arm, bool enable); + +/** + * @brief 清除所有错误 + * @param handle 机械臂句柄 + * @return true 清除成功,false 清除失败 + */ +LBOT_API bool lbot_clear_errors(lbot_handle_t *handle); + +/** + * @brief 设置机械臂关节限位 + * @param handle 机械臂句柄 + * @param arm 机械臂选择:LBOT_LEFT_ARM 或 LBOT_RIGHT_ARM + * @param upper_joint_limit 最大关节限位参数 + * @param lower_joint_limit 最小关节限位参数 + * @return true 设置成功,false 设置失败 + */ +LBOT_API bool lbot_set_joint_limit(lbot_handle_t *handle, lbot_arm_t arm, const double upper_joint_limit[7], const double lower_joint_limit[7]); +/** + * @brief 获取机械臂关节限位参数 + * @param handle 机械臂句柄 + * @param arm 机械臂选择:LBOT_LEFT_ARM 或 LBOT_RIGHT_ARM + * @param upper_joint_limit 返回的最大关节限位参数 + * @param lower_joint_limit 返回的最小关节限位参数 + * @return true 获取成功,false 获取失败 + */ +LBOT_API bool lbot_get_joint_limit(lbot_handle_t *handle, lbot_arm_t arm, double upper_joint_limit[7], double lower_joint_limit[7]); +/** + * @brief 恢复默认关节限位参数 + * @param handle 机械臂句柄 + * @param arm 机械臂选择:LBOT_LEFT_ARM 或 LBOT_RIGHT_ARM + * @param upper_joint_limit 返回的默认最大关节限位参数 + * @param lower_joint_limit 返回的默认最小关节限位参数 + * @return true 恢复成功,false 恢复失败 + */ +LBOT_API bool lbot_get_default_joint_limit(lbot_handle_t *handle, lbot_arm_t arm, double upper_joint_limit[7], double lower_joint_limit[7]); +// ============================================== +// 内存管理辅助函数 +// ============================================== +/** + * @brief 释放字符串数组内存 + * @param array 要释放的字符串数组 + * @param count 数组元素数量 + */ +LBOT_API void lbot_free_string_array(char** array, int count); + +// ============================================== +// 工具函数 +// ============================================== +/** + * @brief 获取最后一次错误信息 + * @return 错误信息字符串指针 + */ +LBOT_API const char* lbot_get_last_error(lbot_handle_t *handle); + +/** + * @brief 设置日志级别 + * @param level 日志级别:0-ERROR, 1-WARN, 2-INFO, 3-DEBUG + */ +LBOT_API void lbot_set_log_level(int level); + +#ifdef __cplusplus +} +#endif + +#endif // LBOT_API_H \ No newline at end of file diff --git a/src/officer_sdk/lbot_driver/include/lbot_driver/lbot_api_cpp.h b/src/officer_sdk/lbot_driver/include/lbot_driver/lbot_api_cpp.h new file mode 100644 index 0000000..20c46ea --- /dev/null +++ b/src/officer_sdk/lbot_driver/include/lbot_driver/lbot_api_cpp.h @@ -0,0 +1,660 @@ +/** + * @file lbot_api_cpp.h + * @brief 灵心巧手机械臂控制API C++封装头文件 + * @date 2026.1.19 + * @copyright 灵心巧手科技有限公司 + */ +#ifndef LBOT_API_CPP_H +#define LBOT_API_CPP_H + +#include "lbot_api.h" +#include +#include +#include + +/** + * @brief 灵心巧手机械臂控制API C++封装类 + * @details 提供C++友好的接口封装,使用std::string和std::vector简化内存管理 + */ +namespace lbot { + +class LbotApi { +public: + // ============================================== + // 构造函数和析构函数 + // ============================================== + /** + * @brief 构造函数 + */ + LbotApi(); + + /** + * @brief 析构函数,自动清理资源 + */ + ~LbotApi(); + + // ============================================== + // API初始化和清理函数 + // ============================================== + /** + * @brief 初始化LBot API连接 + * @param tcp_host TCP服务器地址格式:"192.168.10.21" + * @return lbot_handle_t 连接句柄,连接成功句柄ID>0,失败返回NULL + */ + LBOT_API lbot_handle_t *lbot_init(const char* tcp_host); + + /** + * @brief 断开指定连接 + * @param handle 机械臂句柄 + * @return true 断开成功,false 断开失败 + */ + LBOT_API bool lbot_disconnect(lbot_handle_t *handle); + + /** + * @brief 清理API资源,断开连接 + */ + LBOT_API void lbot_cleanup(); + + /** + * @brief 获取API版本信息 + * @return 版本字符串 + */ + LBOT_API std::string lbot_get_api_version(); + + // ============================================== + // 系统信息获取函数 + // ============================================== + /** + * @brief 获取控制器信息 + * @param handle 机械臂句柄 + * @param robot_model 返回的机器人型号字符串 + * @param controller_version 返回的控制器版本字符串 + * @return true 获取成功,false 获取失败 + */ + LBOT_API bool lbot_get_controller_info(lbot_handle_t *handle, std::string& robot_model, std::string& controller_version); + + // ============================================== + // 状态监控和管理函数 + // ============================================== + /** + * @brief 启动状态监控 + * @param state_cb 状态回调函数,当机器人状态更新时调用 + * @param error_cb 错误回调函数,当发生错误时调用 + * @return true 启动成功,false 启动失败 + */ + LBOT_API bool lbot_start_state_monitor(lbot_state_callback_t state_cb, lbot_error_callback_t error_cb); + + /** + * @brief 停止状态监控 + */ + LBOT_API void lbot_stop_state_monitor(); + + /** + * @brief 获取当前机器人完整状态,此接口需要在启动状态监控后才能调用 + * @param handle 机械臂句柄 + * @param state 返回的机器人状态结构体指针 + * @return true 获取成功,false 获取失败 + */ + LBOT_API bool lbot_get_current_state(lbot_handle_t *handle, lbot_full_state_t* state); + + // ============================================== + // 运动控制函数 + // ============================================== + /** + * @brief 关节空间运动 + * @param handle 机械臂句柄 + * @param arm 机械臂选择:LBOT_LEFT_ARM 或 LBOT_RIGHT_ARM + * @param joints 7个关节的目标角度(弧度) + * @param speed 运动速度(0.0~20.0)单位是rad/s, 建议从(0.0~2.0)开始使用后续如有需要逐步提高 + * @param accel 加速度(0.0~20.0)单位是rad/s^2, 建议从(0.0~2.0)开始使用后续如有需要逐步提高 + * @param block 是否阻塞执行:true 等待运动完成,false 立即返回 + * @return true 指令发送成功,false 发送失败 + */ + LBOT_API bool lbot_move_joint(lbot_handle_t *handle, lbot_arm_t arm, const double joints[7], double speed, double accel, bool block); + + /** + * @brief 关节空间运动(使用vector) + * @param handle 机械臂句柄 + * @param arm 机械臂选择:LBOT_LEFT_ARM 或 LBOT_RIGHT_ARM + * @param joints 7个关节的目标角度(弧度)向量 + * @param speed 运动速度(0.0~20.0)单位是rad/s, 建议从(0.0~2.0)开始使用后续如有需要逐步提高 + * @param accel 加速度(0.0~20.0)单位是rad/s^2, 建议从(0.0~2.0)开始使用后续如有需要逐步提高 + * @param block 是否阻塞执行:true 等待运动完成,false 立即返回 + * @return true 指令发送成功,false 发送失败 + */ + LBOT_API bool lbot_move_joint(lbot_handle_t *handle, lbot_arm_t arm, const std::vector& joints, double speed, double accel, bool block); + + /** + * @brief 笛卡尔空间姿态运动(关节插值) + * @param handle 机械臂句柄 + * @param arm 机械臂选择:LBOT_LEFT_ARM 或 LBOT_RIGHT_ARM + * @param position 目标位置(x, y, z,单位:米) + * @param euler 机械臂末端目标欧拉角(roll, pitch, yaw,单位:弧度) + * @param speed 机械臂末端运动速度(0.0~20.0)单位m/s, 建议从(0.0~2.0)开始使用后续如有需要逐步提高 + * @param accel 机械臂末端加速度(0.0~20.0)单位m/s^2, 建议从(0.0~2.0)开始使用后续如有需要逐步提高 + * @param block 是否阻塞执行:true 等待运动完成,false 立即返回 + * @return true 指令发送成功,false 发送失败 + */ + LBOT_API bool lbot_move_pose(lbot_handle_t *handle, lbot_arm_t arm, const lbot_position_t* position, const lbot_euler_t* euler, + double speed, double accel, bool block); + + /** + * @brief 笛卡尔空间姿态运动(使用向量) + * @param handle 机械臂句柄 + * @param arm 机械臂选择:LBOT_LEFT_ARM 或 LBOT_RIGHT_ARM + * @param position 目标位置(x, y, z,单位:米)向量 + * @param euler 机械臂末端目标欧拉角(roll, pitch, yaw,单位:弧度)向量 + * @param speed 机械臂末端运动速度(0.0~20.0)单位m/s, 建议从(0.0~2.0)开始使用后续如有需要逐步提高 + * @param accel 机械臂末端加速度(0.0~20.0)单位m/s^2, 建议从(0.0~2.0)开始使用后续如有需要逐步提高 + * @param block 是否阻塞执行:true 等待运动完成,false 立即返回 + * @return true 指令发送成功,false 发送失败 + */ + LBOT_API bool lbot_move_pose(lbot_handle_t *handle, lbot_arm_t arm, const std::vector& position, const std::vector& euler, + double speed, double accel, bool block); + + /** + * @brief 笛卡尔空间直线运动(直线插值) + * @param handle 机械臂句柄 + * @param arm 机械臂选择:LBOT_LEFT_ARM 或 LBOT_RIGHT_ARM + * @param position 目标位置(x, y, z,单位:米) + * @param euler 目标欧拉角(roll, pitch, yaw,单位:弧度) + * @param speed 关节运动速度(0.0~20.0)单位是rad/s, 建议从(0.0~2.0)开始使用后续如有需要逐步提高 + * @param accel 关节运动加速度(0.0~20.0)单位是rad/s^2, 建议从(0.0~2.0)开始使用后续如有需要逐步提高 + * @param block 是否阻塞执行:true 等待运动完成,false 立即返回 + * @return true 指令发送成功,false 发送失败 + */ + LBOT_API bool lbot_move_linear(lbot_handle_t *handle, lbot_arm_t arm, const lbot_position_t* position, const lbot_euler_t* euler, + double speed, double accel, bool block); + + /** + * @brief 笛卡尔空间直线运动(使用向量) + * @param handle 机械臂句柄 + * @param arm 机械臂选择:LBOT_LEFT_ARM 或 LBOT_RIGHT_ARM + * @param position 目标位置(x, y, z,单位:米)向量 + * @param euler 目标欧拉角(roll, pitch, yaw,单位:弧度)向量 + * @param speed 关节运动速度(0.0~20.0)单位是rad/s, 建议从(0.0~2.0)开始使用后续如有需要逐步提高 + * @param accel 关节运动加速度(0.0~20.0)单位是rad/s^2, 建议从(0.0~2.0)开始使用后续如有需要逐步提高 + * @param block 是否阻塞执行:true 等待运动完成,false 立即返回 + * @return true 指令发送成功,false 发送失败 + */ + LBOT_API bool lbot_move_linear(lbot_handle_t *handle, lbot_arm_t arm, const std::vector& position, const std::vector& euler, + double speed, double accel, bool block); + + // ============================================== + // 关节跟随函数(用于遥操作) + // ============================================== + /** + * @brief 关节跟随控制 + * @param handle 机械臂句柄 + * @param arm 机械臂选择:LBOT_LEFT_ARM 或 LBOT_RIGHT_ARM + * @param joints 包含7个关节目标角度(弧度)的向量 + * @return true 指令发送成功,false 发送失败 + */ + LBOT_API bool lbot_joint_follow(lbot_handle_t *handle, lbot_arm_t arm, const std::vector& joints); + + // ============================================== + // 姿态跟随函数 + // ============================================== + /** + * @brief 笛卡尔空间姿态跟随运动 + * @param handle 机械臂句柄 + * @param arm 机械臂选择:LBOT_LEFT_ARM 或 LBOT_RIGHT_ARM + * @param pos 目标位置(x, y, z,单位:米) + * @param eul 目标欧拉角(roll, pitch, yaw,单位:弧度) + * @return true 指令发送成功,false 发送失败 + */ + LBOT_API bool lbot_pose_follow(lbot_handle_t *handle, lbot_arm_t arm, lbot_position_t pos, lbot_euler_t eul); + + // ============================================== + // L6手控制接口 + // ============================================== + /** + * @brief 设置L6手的位置控制 + * @param handle 机械臂句柄 + * @param arm 机械臂选择:LBOT_LEFT_ARM 或 LBOT_RIGHT_ARM + * @param position 6个手指的目标位置(0~255)向量 + * @return true 指令发送成功,false 发送失败 + */ + LBOT_API bool lbot_l6_set_position(lbot_handle_t *handle, lbot_arm_t arm, const std::vector& position); + + /** + * @brief 设置L6手的速度控制 + * @param handle 机械臂句柄 + * @param arm 机械臂选择:LBOT_LEFT_ARM 或 LBOT_RIGHT_ARM + * @param velocity 6个手指的目标速度(0~255)向量 + * @return true 指令发送成功,false 发送失败 + */ + LBOT_API bool lbot_l6_set_velocity(lbot_handle_t *handle, lbot_arm_t arm, const std::vector& velocity); + + /** + * @brief 设置L6手的力矩控制 + * @param handle 机械臂句柄 + * @param arm 机械臂选择:LBOT_LEFT_ARM 或 LBOT_RIGHT_ARM + * @param torque 6个手指的目标力矩(0~255)向量 + * @return true 指令发送成功,false 发送失败 + */ + LBOT_API bool lbot_l6_set_effort(lbot_handle_t *handle, lbot_arm_t arm, const std::vector& torque); + + // ============================================== + // L10手控制接口(10个自由度) + // ============================================== + /** + * @brief 设置L10手的位置控制 + * @param handle 机械臂句柄 + * @param arm 机械臂选择:LBOT_LEFT_ARM 或 LBOT_RIGHT_ARM + * @param position 10个手指的目标位置(0~255)向量 + * @return true 指令发送成功,false 发送失败 + */ + LBOT_API bool lbot_l10_set_position(lbot_handle_t *handle, lbot_arm_t arm, const std::vector& position); + + /** + * @brief 设置L10手的速度控制 + * @param handle 机械臂句柄 + * @param arm 机械臂选择:LBOT_LEFT_ARM 或 LBOT_RIGHT_ARM + * @param velocity 10个手指的目标速度(0~255)向量 + * @return true 指令发送成功,false 发送失败 + */ + LBOT_API bool lbot_l10_set_velocity(lbot_handle_t *handle, lbot_arm_t arm, const std::vector& velocity); + + /** + * @brief 设置L10手的力矩控制 + * @param handle 机械臂句柄 + * @param arm 机械臂选择:LBOT_LEFT_ARM 或 LBOT_RIGHT_ARM + * @param torque 10个手指的目标力矩(0~255)向量 + * @return true 指令发送成功,false 发送失败 + */ + LBOT_API bool lbot_l10_set_effort(lbot_handle_t *handle, lbot_arm_t arm, const std::vector& torque); + + // ============================================== + // L20手控制接口(20个自由度) + // ============================================== + /** + * @brief 设置R20手的串联位置控制 + * @param handle 机械臂句柄 + * @param arm 机械臂选择:LBOT_LEFT_ARM 或 LBOT_RIGHT_ARM + * @param cmd 目标位置命令,包含手指标识和6个电机位置 + * @return true 指令发送成功,false 发送失败 + */ + LBOT_API bool lbot_l20_set_series_position(lbot_handle_t *handle, lbot_arm_t arm, const lbot_l20_series_cmd_t* cmd); + + /** + * @brief 设置R20手所有自由度位置控制 + * @param handle 机械臂句柄 + * @param arm 机械臂选择:LBOT_LEFT_ARM 或 LBOT_RIGHT_ARM + * @param position 16个自由度的目标位置(度)向量 + * @return true 指令发送成功,false 发送失败 + */ + LBOT_API bool lbot_l20_set_all_position(lbot_handle_t *handle, lbot_arm_t arm, const std::vector& position); + + // ============================================== + // 运动学计算函数 + // ============================================== + /** + * @brief 正运动学计算 + * @param handle 机械臂句柄 + * @param arm 机械臂选择:LBOT_LEFT_ARM 或 LBOT_RIGHT_ARM + * @param joints 7个关节角度(弧度) + * @param position 返回的末端位置(x, y, z,单位:米) + * @param euler 返回的末端欧拉角(roll, pitch, yaw,单位:弧度) + * @return true 计算成功,false 计算失败 + */ + LBOT_API bool lbot_forward_kinematics(lbot_handle_t *handle, lbot_arm_t arm, const double joints[7], + lbot_position_t* position, lbot_euler_t* euler); + + /** + * @brief 正运动学计算(使用向量) + * @param handle 机械臂句柄 + * @param arm 机械臂选择:LBOT_LEFT_ARM 或 LBOT_RIGHT_ARM + * @param joints 7个关节角度(弧度)向量 + * @param position 返回的末端位置(x, y, z,单位:米)向量 + * @param euler 返回的末端欧拉角(roll, pitch, yaw,单位:弧度)向量 + * @return true 计算成功,false 计算失败 + */ + LBOT_API bool lbot_forward_kinematics(lbot_handle_t *handle, lbot_arm_t arm, const std::vector& joints, + std::vector& position, std::vector& euler); + + /** + * @brief 逆运动学计算 + * @param handle 机械臂句柄 + * @param arm 机械臂选择:LBOT_LEFT_ARM 或 LBOT_RIGHT_ARM + * @param initial_joints 初始关节角度(弧度),用于求解器迭代 + * @param position 目标位置(x, y, z,单位:米) + * @param euler 目标欧拉角(roll, pitch, yaw,单位:弧度) + * @param result_joints 返回的7个关节角度解(弧度) + * @return true 求解成功,false 求解失败 + */ + LBOT_API bool lbot_inverse_kinematics(lbot_handle_t *handle, lbot_arm_t arm, const double initial_joints[7], + const lbot_position_t* position, const lbot_euler_t* euler, + double result_joints[7]); + + /** + * @brief 逆运动学计算(使用向量) + * @param handle 机械臂句柄 + * @param arm 机械臂选择:LBOT_LEFT_ARM 或 LBOT_RIGHT_ARM + * @param initial_joints 初始关节角度(弧度)向量,用于求解器迭代 + * @param position 目标位置(x, y, z,单位:米)向量 + * @param euler 目标欧拉角(roll, pitch, yaw,单位:弧度)向量 + * @param result_joints 返回的7个关节角度解(弧度)向量 + * @return true 求解成功,false 求解失败 + */ + LBOT_API bool lbot_inverse_kinematics(lbot_handle_t *handle, lbot_arm_t arm, const std::vector& initial_joints, + const std::vector& position, const std::vector& euler, + std::vector& result_joints); + + // ============================================== + // 工具坐标系管理函数 + // ============================================== + /** + * @brief 设置工具坐标系 + * @param handle 机械臂句柄 + * @param arm 机械臂选择:LBOT_LEFT_ARM 或 LBOT_RIGHT_ARM + * @param name 工具坐标系名称(最大32字符) + * @param position 工具坐标系相对于法兰盘的位置偏移(x, y, z,单位:米) + * @param euler 工具坐标系相对于法兰盘的欧拉角偏移(roll, pitch, yaw,单位:弧度) + * @return true 设置成功,false 设置失败 + */ + LBOT_API bool lbot_set_tool_frame(lbot_handle_t *handle, lbot_arm_t arm, const char* name, + const lbot_position_t* position, const lbot_euler_t* euler); + + /** + * @brief 设置工具坐标系(使用向量) + * @param handle 机械臂句柄 + * @param arm 机械臂选择:LBOT_LEFT_ARM 或 LBOT_RIGHT_ARM + * @param name 工具坐标系名称(最大32字符) + * @param position 工具坐标系相对于法兰盘的位置偏移(x, y, z,单位:米)向量 + * @param euler 工具坐标系相对于法兰盘的欧拉角偏移(roll, pitch, yaw,单位:弧度)向量 + * @return true 设置成功,false 设置失败 + */ + LBOT_API bool lbot_set_tool_frame(lbot_handle_t *handle, lbot_arm_t arm, const std::string& name, + const std::vector& position, const std::vector& euler); + + /** + * @brief 获取工具坐标系参数 + * @param handle 机械臂句柄 + * @param arm 机械臂选择:LBOT_LEFT_ARM 或 LBOT_RIGHT_ARM + * @param name 工具坐标系名称 + * @param position 返回的工具坐标系位置偏移 + * @param euler 返回的工具坐标系欧拉角偏移 + * @return true 获取成功,false 获取失败 + */ + LBOT_API bool lbot_get_tool_frame(lbot_handle_t *handle, lbot_arm_t arm, const char* name, + lbot_position_t* position, lbot_euler_t* euler); + + /** + * @brief 获取工具坐标系参数(使用向量) + * @param handle 机械臂句柄 + * @param arm 机械臂选择:LBOT_LEFT_ARM 或 LBOT_RIGHT_ARM + * @param name 工具坐标系名称 + * @param position 返回的工具坐标系位置偏移向量 + * @param euler 返回的工具坐标系欧拉角偏移向量 + * @return true 获取成功,false 获取失败 + */ + LBOT_API bool lbot_get_tool_frame(lbot_handle_t *handle, lbot_arm_t arm, const std::string& name, + std::vector& position, std::vector& euler); + + /** + * @brief 获取当前使用的工具坐标系 + * @param handle 机械臂句柄 + * @param arm 机械臂选择:LBOT_LEFT_ARM 或 LBOT_RIGHT_ARM + * @param name 返回的当前工具坐标系名称 + * @param position 返回的当前工具坐标系位置偏移 + * @param euler 返回的当前工具坐标系欧拉角偏移 + * @return true 获取成功,false 获取失败 + */ + LBOT_API bool lbot_get_current_tool_frame(lbot_handle_t *handle, lbot_arm_t arm, + std::string& name, + lbot_position_t& position, + lbot_euler_t& euler); + + /** + * @brief 获取当前使用的工具坐标系(使用向量) + * @param handle 机械臂句柄 + * @param arm 机械臂选择:LBOT_LEFT_ARM 或 LBOT_RIGHT_ARM + * @param name 返回的当前工具坐标系名称 + * @param position 返回的当前工具坐标系位置偏移向量 + * @param euler 返回的当前工具坐标系欧拉角偏移向量 + * @return true 获取成功,false 获取失败 + */ + LBOT_API bool lbot_get_current_tool_frame(lbot_handle_t *handle, lbot_arm_t arm, std::string& name, + std::vector& position, + std::vector& euler); + + /** + * @brief 切换当前工具坐标系 + * @param handle 机械臂句柄 + * @param arm 机械臂选择:LBOT_LEFT_ARM 或 LBOT_RIGHT_ARM + * @param name 要切换到的工具坐标系名称 + * @return true 切换成功,false 切换失败 + */ + LBOT_API bool lbot_change_tool_frame(lbot_handle_t *handle, lbot_arm_t arm, const char* name); + + /** + * @brief 切换当前工具坐标系(使用string) + * @param handle 机械臂句柄 + * @param arm 机械臂选择:LBOT_LEFT_ARM 或 LBOT_RIGHT_ARM + * @param name 要切换到的工具坐标系名称 + * @return true 切换成功,false 切换失败 + */ + LBOT_API bool lbot_change_tool_frame(lbot_handle_t *handle, lbot_arm_t arm, const std::string& name); + + /** + * @brief 删除工具坐标系 + * @param handle 机械臂句柄 + * @param arm 机械臂选择:LBOT_LEFT_ARM 或 LBOT_RIGHT_ARM + * @param name 要删除的工具坐标系名称 + * @return true 删除成功,false 删除失败 + */ + LBOT_API bool lbot_delete_tool_frame(lbot_handle_t *handle, lbot_arm_t arm, const char* name); + + /** + * @brief 删除工具坐标系(使用string) + * @param handle 机械臂句柄 + * @param arm 机械臂选择:LBOT_LEFT_ARM 或 LBOT_RIGHT_ARM + * @param name 要删除的工具坐标系名称 + * @return true 删除成功,false 删除失败 + */ + LBOT_API bool lbot_delete_tool_frame(lbot_handle_t *handle, lbot_arm_t arm, const std::string& name); + + /** + * @brief 获取所有工具坐标系名称 + * @param handle 机械臂句柄 + * @param arm 机械臂选择:LBOT_LEFT_ARM 或 LBOT_RIGHT_ARM + * @param names 返回的工具坐标系名称向量 + * @return true 获取成功,false 获取失败 + */ + LBOT_API bool lbot_get_all_tool_frames(lbot_handle_t *handle, lbot_arm_t arm, std::vector& names); + + // ============================================== + // 工作坐标系管理函数 + // ============================================== + /** + * @brief 设置工作坐标系 + * @param handle 机械臂句柄 + * @param arm 机械臂选择:LBOT_LEFT_ARM 或 LBOT_RIGHT_ARM + * @param name 工作坐标系名称(最大32字符) + * @param position 工作坐标系相对于基坐标系的位置偏移(x, y, z,单位:米) + * @param euler 工作坐标系相对于基坐标系的欧拉角偏移(roll, pitch, yaw,单位:弧度) + * @return true 设置成功,false 设置失败 + */ + LBOT_API bool lbot_set_work_frame(lbot_handle_t *handle, lbot_arm_t arm, const char* name, + const lbot_position_t* position, const lbot_euler_t* euler); + + /** + * @brief 设置工作坐标系(使用向量) + * @param handle 机械臂句柄 + * @param arm 机械臂选择:LBOT_LEFT_ARM 或 LBOT_RIGHT_ARM + * @param name 工作坐标系名称(最大32字符) + * @param position 工作坐标系相对于基坐标系的位置偏移(x, y, z,单位:米)向量 + * @param euler 工作坐标系相对于基坐标系的欧拉角偏移(roll, pitch, yaw,单位:弧度)向量 + * @return true 设置成功,false 设置失败 + */ + LBOT_API bool lbot_set_work_frame(lbot_handle_t *handle, lbot_arm_t arm, const std::string& name, + const std::vector& position, const std::vector& euler); + + /** + * @brief 获取工作坐标系参数 + * @param handle 机械臂句柄 + * @param arm 机械臂选择:LBOT_LEFT_ARM 或 LBOT_RIGHT_ARM + * @param name 工作坐标系名称 + * @param position 返回的工作坐标系位置偏移 + * @param euler 返回的工作坐标系欧拉角偏移 + * @return true 获取成功,false 获取失败 + */ + LBOT_API bool lbot_get_work_frame(lbot_handle_t *handle, lbot_arm_t arm, const char* name, + lbot_position_t* position, lbot_euler_t* euler); + + /** + * @brief 获取工作坐标系参数(使用向量) + * @param handle 机械臂句柄 + * @param arm 机械臂选择:LBOT_LEFT_ARM 或 LBOT_RIGHT_ARM + * @param name 工作坐标系名称 + * @param position 返回的工作坐标系位置偏移向量 + * @param euler 返回的工作坐标系欧拉角偏移向量 + * @return true 获取成功,false 获取失败 + */ + LBOT_API bool lbot_get_work_frame(lbot_handle_t *handle, lbot_arm_t arm, const std::string& name, + std::vector& position, std::vector& euler); + + /** + * @brief 切换当前工作坐标系 + * @param handle 机械臂句柄 + * @param arm 机械臂选择:LBOT_LEFT_ARM 或 LBOT_RIGHT_ARM + * @param name 要切换到的工作坐标系名称 + * @return true 切换成功,false 切换失败 + */ + LBOT_API bool lbot_change_work_frame(lbot_handle_t *handle, lbot_arm_t arm, const char* name); + + /** + * @brief 切换当前工作坐标系(使用string) + * @param handle 机械臂句柄 + * @param arm 机械臂选择:LBOT_LEFT_ARM 或 LBOT_RIGHT_ARM + * @param name 要切换到的工作坐标系名称 + * @return true 切换成功,false 切换失败 + */ + LBOT_API bool lbot_change_work_frame(lbot_handle_t *handle, lbot_arm_t arm, const std::string& name); + + /** + * @brief 删除工作坐标系 + * @param handle 机械臂句柄 + * @param arm 机械臂选择:LBOT_LEFT_ARM 或 LBOT_RIGHT_ARM + * @param name 要删除的工作坐标系名称 + * @return true 删除成功,false 删除失败 + */ + LBOT_API bool lbot_delete_work_frame(lbot_handle_t *handle, lbot_arm_t arm, const char* name); + + /** + * @brief 删除工作坐标系(使用string) + * @param handle 机械臂句柄 + * @param arm 机械臂选择:LBOT_LEFT_ARM 或 LBOT_RIGHT_ARM + * @param name 要删除的工作坐标系名称 + * @return true 删除成功,false 删除失败 + */ + LBOT_API bool lbot_delete_work_frame(lbot_handle_t *handle, lbot_arm_t arm, const std::string& name); + + /** + * @brief 获取所有工作坐标系名称 + * @param handle 机械臂句柄 + * @param arm 机械臂选择:LBOT_LEFT_ARM 或 LBOT_RIGHT_ARM + * @param names 返回的工作坐标系名称向量 + * @return true 获取成功,false 获取失败 + */ + LBOT_API bool lbot_get_all_work_frames(lbot_handle_t *handle, lbot_arm_t arm, std::vector& names); + + // ============================================== + // 系统功能函数 + // ============================================== + /** + * @brief 重新标定电机零位,设置当前位置为零位 + * @param handle 机械臂句柄 + * @param arm 机械臂选择:LBOT_LEFT_ARM 或 LBOT_RIGHT_ARM + * @return true 设置成功,false 设置失败 + */ + LBOT_API bool lbot_set_zero(lbot_handle_t *handle, lbot_arm_t arm); + + /** + * @brief 使能/掉使能机械臂 + * @param handle 机械臂句柄 + * @param arm 机械臂选择:LBOT_LEFT_ARM 或 LBOT_RIGHT_ARM + * @param enable true 使能,false 掉使能 + * @return true 指令发送成功,false 发送失败 + */ + LBOT_API bool lbot_enable_arm(lbot_handle_t *handle, lbot_arm_t arm, bool enable); + + /** + * @brief 紧急停止/恢复 + * @param handle 机械臂句柄 + * @param arm 机械臂选择:LBOT_LEFT_ARM 或 LBOT_RIGHT_ARM + * @param enable true 紧急停止,false 恢复运行 + * @return true 指令发送成功,false 发送失败 + */ + LBOT_API bool lbot_emergency_stop(lbot_handle_t *handle, lbot_arm_t arm, bool enable); + + /** + * @brief 清除所有错误 + * @param handle 机械臂句柄 + * @return true 清除成功,false 清除失败 + */ + LBOT_API bool lbot_clear_errors(lbot_handle_t *handle); + + /** + * @brief 设置机械臂关节限位 + * @param handle 机械臂句柄 + * @param arm 机械臂选择:LBOT_LEFT_ARM 或 LBOT_RIGHT_ARM + * @param upper_joint_limit 最大关节限位参数 + * @param lower_joint_limit 最小关节限位参数 + * @return true 设置成功,false 设置失败 + */ + LBOT_API bool lbot_set_joint_limit(lbot_handle_t *handle, lbot_arm_t arm, const double upper_joint_limit[7], const double lower_joint_limit[7]); + /** + * @brief 获取机械臂关节限位参数 + * @param handle 机械臂句柄 + * @param arm 机械臂选择:LBOT_LEFT_ARM 或 LBOT_RIGHT_ARM + * @param upper_joint_limit 返回的最大关节限位参数 + * @param lower_joint_limit 返回的最小关节限位参数 + * @return true 获取成功,false 获取失败 + */ + LBOT_API bool lbot_get_joint_limit(lbot_handle_t *handle, lbot_arm_t arm, double upper_joint_limit[7], double lower_joint_limit[7]); + /** + * @brief 获取机械臂默认关节限位参数 + * @param handle 机械臂句柄 + * @param arm 机械臂选择:LBOT_LEFT_ARM 或 LBOT_RIGHT_ARM + * @param upper_joint_limit 返回的最大关节限位参数 + * @param lower_joint_limit 返回的最小关节限位参数 + * @return true 获取成功,false 获取失败 + */ + LBOT_API bool lbot_get_default_joint_limit(lbot_handle_t *handle, lbot_arm_t arm, double upper_joint_limit[7], double lower_joint_limit[7]); + + // ============================================== + // 工具函数 + // ============================================== + /** + * @brief 获取最后一次错误信息 + * @return 错误信息字符串 + */ + LBOT_API std::string lbot_get_last_error(lbot_handle_t *handle); + + /** + * @brief 设置日志级别 + * @param level 日志级别:0-ERROR, 1-WARN, 2-INFO, 3-DEBUG + */ + LBOT_API void lbot_set_log_level(int level); + + // ============================================== + // 内存管理辅助函数 + // ============================================== + /** + * @brief 释放字符串数组内存 + * @param array 要释放的字符串数组 + * @param count 数组元素数量 + */ + LBOT_API void lbot_free_string_array(char** array, int count); + +private: + // 禁用拷贝构造和赋值操作 + LbotApi(const LbotApi&) = delete; + LbotApi& operator=(const LbotApi&) = delete; +}; + +} // namespace lbot + +#endif // LBOT_API_CPP_H \ No newline at end of file diff --git a/src/officer_sdk/lbot_driver/include/lbot_driver/lbot_driver.h b/src/officer_sdk/lbot_driver/include/lbot_driver/lbot_driver.h new file mode 100644 index 0000000..2aeb98d --- /dev/null +++ b/src/officer_sdk/lbot_driver/include/lbot_driver/lbot_driver.h @@ -0,0 +1,431 @@ +// Copyright (c) 2025 LingSmart Tech +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#ifndef LBOT_DRIVER_H +#define LBOT_DRIVER_H + +#include +#include "rclcpp/rclcpp.hpp" +#include "rclcpp/clock.hpp" +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include "lbot_api_cpp.h" + +// ROS2 标准消息类型 +#include +#include +#include +#include +#include +#include +#include +#include "std_msgs/msg/u_int8_multi_array.hpp" +#include "std_msgs/msg/int32_multi_array.hpp" + +// 自定义 Message 类型 +#include "lbot_arm_interfaces/msg/arm_state.hpp" +#include "lbot_arm_interfaces/msg/lbot_pose.hpp" +#include "lbot_arm_interfaces/msg/lbot_frame.hpp" +#include "lbot_arm_interfaces/msg/follow_joint.hpp" + +// 自定义 Service 类型 +#include "lbot_arm_interfaces/srv/change_frame.hpp" +#include "lbot_arm_interfaces/srv/delete_frame.hpp" +#include "lbot_arm_interfaces/srv/forward_kinematics.hpp" +#include "lbot_arm_interfaces/srv/inverse_kinematics.hpp" +#include "lbot_arm_interfaces/srv/move_c.hpp" +#include "lbot_arm_interfaces/srv/move_j.hpp" +#include "lbot_arm_interfaces/srv/move_jp.hpp" +#include "lbot_arm_interfaces/srv/move_l.hpp" +#include "lbot_arm_interfaces/srv/set_frame.hpp" +#include "lbot_arm_interfaces/srv/set_string.hpp" +#include "lbot_arm_interfaces/srv/set_zero.hpp" +#include "lbot_arm_interfaces/srv/set_enable.hpp" +#include "lbot_arm_interfaces/srv/set_emergency.hpp" +#include "lbot_arm_interfaces/srv/get_frame.hpp" +#include "lbot_arm_interfaces/srv/get_current_frame.hpp" +#include "lbot_arm_interfaces/srv/get_all_frames.hpp" + +#define RAD_DEGREE 57.295791433 +#define DEGREE_RAD 0.01745329252 + +using namespace std::chrono_literals; + +// 状态回调函数 +void lbot_state_callback_wrapper(const lbot_full_state_t* state); +void lbot_error_callback_wrapper(int error_code, const char* error_msg); + +// 全局连接状态枚举 +enum class GlobalConnState { + DISCONNECTED, + CONNECTING, + CONNECTED +}; + +// 全局变量 +extern bool lbot_ctrl_flag; +extern lbot::LbotApi lbot_api; +extern lbot_handle_t *lbot_handle; +extern std::atomic g_conn_state; // 全局连接状态 + +namespace lbot_driver { + +// 主节点 - 负责连接管理、状态发布、心跳重连、关节跟随 +class LBot: public rclcpp::Node +{ +public: + LBot(const std::string& node_name = "lbot_main_node"); + ~LBot(); + + // 线程安全的状态缓存 + std::mutex state_mutex_, conn_mutex_; + lbot_full_state_t current_lbot_state_; + // 节点关闭状态变量 + std::atomic shutting_down_{false}; + // 单例类指针 + static LBot* g_instance; + + // 重连机制相关线程与变量 + std::thread reconnect_thread_; + std::atomic reconnect_thread_running_{false}; + std::mutex reconnect_thread_mutex_; + + void disconnect_robot(); + +private: + // 初始化和连接相关 + bool connect_robot(); + void get_robot_info(); + void state_publish_timer_callback(); + + // 心跳与重连机制回调函数 + void heartbeat_timer_callback(); + void reconnect_timer_callback(); + + // 关节跟随订阅回调函数(移到主节点,避免阻塞) + void left_joint_follow_callback(const lbot_arm_interfaces::msg::FollowJoint::SharedPtr msg); + void right_joint_follow_callback(const lbot_arm_interfaces::msg::FollowJoint::SharedPtr msg); + + /****************************** 发布器 ******************************/ + + // 状态发布器 (50Hz) + rclcpp::Publisher::SharedPtr left_joint_pub_; + rclcpp::Publisher::SharedPtr right_joint_pub_; + rclcpp::Publisher::SharedPtr left_pose_pub_; + rclcpp::Publisher::SharedPtr right_pose_pub_; + + /****************************** 订阅器 ******************************/ + + // 关节跟随订阅器 (用于遥操作) - 移到主节点 + rclcpp::Subscription::SharedPtr left_joint_follow_sub_; + rclcpp::Subscription::SharedPtr right_joint_follow_sub_; + + /****************************** 定时器 ******************************/ + + // 状态发布定时器 (50Hz) + rclcpp::TimerBase::SharedPtr state_publish_timer_; + rclcpp::TimerBase::SharedPtr heartbeat_timer_; + rclcpp::TimerBase::SharedPtr reconnect_timer_; + + // 参数 + std::string arm_ip_ = "192.168.10.21"; + + // 回调组 + rclcpp::CallbackGroup::SharedPtr callback_group_timer_; + rclcpp::CallbackGroup::SharedPtr callback_group_subscribers_; + + // 连接状态 + bool is_state_monitor_started_ = false; + + GlobalConnState conn_state_ = GlobalConnState::DISCONNECTED; + + // 心跳计数器(连续失败次数) + int heartbeat_fail_count_ = 0; +}; + +// 左臂服务节点 - 负责左臂所有服务 +class LeftArmServiceNode : public rclcpp::Node +{ +public: + LeftArmServiceNode(const std::string& node_name = "lbot_left_arm_node"); + ~LeftArmServiceNode() = default; + +private: + rclcpp::CallbackGroup::SharedPtr callback_group_, callback_group_subscribers_; + + void create_services(); + + // 灵巧手设置回调函数 + void left_hand_l6_set_joint_callback(const std_msgs::msg::UInt8MultiArray::SharedPtr msg); + void left_hand_l6_set_force_callback(const std_msgs::msg::UInt8MultiArray::SharedPtr msg); + void left_hand_l6_set_speed_callback(const std_msgs::msg::UInt8MultiArray::SharedPtr msg); + void left_hand_l10_set_joint_callback(const std_msgs::msg::UInt8MultiArray::SharedPtr msg); + void left_hand_l10_set_force_callback(const std_msgs::msg::UInt8MultiArray::SharedPtr msg); + void left_hand_l10_set_speed_callback(const std_msgs::msg::UInt8MultiArray::SharedPtr msg); + void left_hand_l20_set_joint_callback(const std_msgs::msg::Int32MultiArray::SharedPtr msg); + void left_hand_l20_set_series_position_callback(const std_msgs::msg::Int32MultiArray::SharedPtr msg); + + /****************************** 连接状态检查函数 ******************************/ + + bool check_connection_state(const std::string& service_name) { + if (g_conn_state.load() != GlobalConnState::CONNECTED) { + RCLCPP_WARN(this->get_logger(), "%s: Robot not connected, service rejected", service_name.c_str()); + return false; + } + return true; + } + + /****************************** 左臂服务回调函数 ******************************/ + + // 运动控制 + void move_joint_callback( + const std::shared_ptr request, + std::shared_ptr response); + + void move_pose_callback( + const std::shared_ptr request, + std::shared_ptr response); + + void move_linear_callback( + const std::shared_ptr request, + std::shared_ptr response); + + // 运动学计算 + void forward_kinematics_callback( + const std::shared_ptr request, + std::shared_ptr response); + + void inverse_kinematics_callback( + const std::shared_ptr request, + std::shared_ptr response); + + // 工具坐标系管理 + void set_tool_frame_callback( + const std::shared_ptr request, + std::shared_ptr response); + + void get_tool_frame_callback( + const std::shared_ptr request, + std::shared_ptr response); + + void get_current_tool_frame_callback( + const std::shared_ptr request, + std::shared_ptr response); + + void change_tool_frame_callback( + const std::shared_ptr request, + std::shared_ptr response); + + void delete_tool_frame_callback( + const std::shared_ptr request, + std::shared_ptr response); + + void get_all_tool_frames_callback( + const std::shared_ptr request, + std::shared_ptr response); + + // 系统设置 + void set_zero_callback( + const std::shared_ptr request, + std::shared_ptr response); + void set_enable_callback( + const std::shared_ptr request, + std::shared_ptr response); + void set_emergency_callback( + const std::shared_ptr request, + std::shared_ptr response); + + /****************************** 服务器 ******************************/ + + // 运动控制服务器 + rclcpp::Service::SharedPtr move_joint_service_; + rclcpp::Service::SharedPtr move_pose_service_; + rclcpp::Service::SharedPtr move_linear_service_; + + // 运动学计算服务器 + rclcpp::Service::SharedPtr forward_kinematics_service_; + rclcpp::Service::SharedPtr inverse_kinematics_service_; + + // 工具坐标系管理服务器 + rclcpp::Service::SharedPtr set_tool_frame_service_; + rclcpp::Service::SharedPtr get_tool_frame_service_; + rclcpp::Service::SharedPtr get_current_tool_frame_service_; + rclcpp::Service::SharedPtr change_tool_frame_service_; + rclcpp::Service::SharedPtr delete_tool_frame_service_; + rclcpp::Service::SharedPtr get_all_tool_frames_service_; + + // 系统设置服务器 + rclcpp::Service::SharedPtr set_zero_service_; + rclcpp::Service::SharedPtr set_enable_service_; + rclcpp::Service::SharedPtr set_emergency_service_; + + /****************************** 灵巧手Topic ******************************/ + + rclcpp::Subscription::SharedPtr left_hand_l6_joint_sub_; + rclcpp::Subscription::SharedPtr left_hand_l6_force_sub_; + rclcpp::Subscription::SharedPtr left_hand_l6_speed_sub_; + rclcpp::Subscription::SharedPtr left_hand_l10_joint_sub_; + rclcpp::Subscription::SharedPtr left_hand_l10_force_sub_; + rclcpp::Subscription::SharedPtr left_hand_l10_speed_sub_; + rclcpp::Subscription::SharedPtr left_hand_l20_joint_sub_; + rclcpp::Subscription::SharedPtr left_hand_l20_series_position_sub_; +}; + +// 右臂服务节点 - 负责右臂所有服务 +class RightArmServiceNode : public rclcpp::Node +{ +public: + RightArmServiceNode(const std::string& node_name = "lbot_right_arm_node"); + ~RightArmServiceNode() = default; + +private: + rclcpp::CallbackGroup::SharedPtr callback_group_, callback_group_subscribers_; + + void create_services(); + + // 灵巧手设置回调函数 + void right_hand_l6_set_joint_callback(const std_msgs::msg::UInt8MultiArray::SharedPtr msg); + void right_hand_l6_set_force_callback(const std_msgs::msg::UInt8MultiArray::SharedPtr msg); + void right_hand_l6_set_speed_callback(const std_msgs::msg::UInt8MultiArray::SharedPtr msg); + void right_hand_l10_set_joint_callback(const std_msgs::msg::UInt8MultiArray::SharedPtr msg); + void right_hand_l10_set_force_callback(const std_msgs::msg::UInt8MultiArray::SharedPtr msg); + void right_hand_l10_set_speed_callback(const std_msgs::msg::UInt8MultiArray::SharedPtr msg); + void right_hand_l20_set_joint_callback(const std_msgs::msg::Int32MultiArray::SharedPtr msg); + void right_hand_l20_set_series_position_callback(const std_msgs::msg::Int32MultiArray::SharedPtr msg); + + /****************************** 连接状态检查函数 ******************************/ + + bool check_connection_state(const std::string& service_name) { + if (g_conn_state.load() != GlobalConnState::CONNECTED) { + RCLCPP_WARN(this->get_logger(), "%s: Robot not connected, service rejected", service_name.c_str()); + return false; + } + return true; + } + + /****************************** 右臂服务回调函数 ******************************/ + + // 运动控制 + void move_joint_callback( + const std::shared_ptr request, + std::shared_ptr response); + + void move_pose_callback( + const std::shared_ptr request, + std::shared_ptr response); + + void move_linear_callback( + const std::shared_ptr request, + std::shared_ptr response); + + // 运动学计算 + void forward_kinematics_callback( + const std::shared_ptr request, + std::shared_ptr response); + + void inverse_kinematics_callback( + const std::shared_ptr request, + std::shared_ptr response); + + // 工具坐标系管理 + void set_tool_frame_callback( + const std::shared_ptr request, + std::shared_ptr response); + + void get_tool_frame_callback( + const std::shared_ptr request, + std::shared_ptr response); + + void get_current_tool_frame_callback( + const std::shared_ptr request, + std::shared_ptr response); + + void change_tool_frame_callback( + const std::shared_ptr request, + std::shared_ptr response); + + void delete_tool_frame_callback( + const std::shared_ptr request, + std::shared_ptr response); + + void get_all_tool_frames_callback( + const std::shared_ptr request, + std::shared_ptr response); + + // 系统设置 + void set_zero_callback( + const std::shared_ptr request, + std::shared_ptr response); + void set_enable_callback( + const std::shared_ptr request, + std::shared_ptr response); + void set_emergency_callback( + const std::shared_ptr request, + std::shared_ptr response); + + /****************************** 服务器 ******************************/ + + // 运动控制服务器 + rclcpp::Service::SharedPtr move_joint_service_; + rclcpp::Service::SharedPtr move_pose_service_; + rclcpp::Service::SharedPtr move_linear_service_; + + // 运动学计算服务器 + rclcpp::Service::SharedPtr forward_kinematics_service_; + rclcpp::Service::SharedPtr inverse_kinematics_service_; + + // 工具坐标系管理服务器 + rclcpp::Service::SharedPtr set_tool_frame_service_; + rclcpp::Service::SharedPtr get_tool_frame_service_; + rclcpp::Service::SharedPtr get_current_tool_frame_service_; + rclcpp::Service::SharedPtr change_tool_frame_service_; + rclcpp::Service::SharedPtr delete_tool_frame_service_; + rclcpp::Service::SharedPtr get_all_tool_frames_service_; + + // 系统设置服务器 + rclcpp::Service::SharedPtr set_zero_service_; + rclcpp::Service::SharedPtr set_enable_service_; + rclcpp::Service::SharedPtr set_emergency_service_; + + /****************************** 灵巧手Topic ******************************/ + + rclcpp::Subscription::SharedPtr right_hand_l6_joint_sub_; + rclcpp::Subscription::SharedPtr right_hand_l6_force_sub_; + rclcpp::Subscription::SharedPtr right_hand_l6_speed_sub_; + rclcpp::Subscription::SharedPtr right_hand_l10_joint_sub_; + rclcpp::Subscription::SharedPtr right_hand_l10_force_sub_; + rclcpp::Subscription::SharedPtr right_hand_l10_speed_sub_; + rclcpp::Subscription::SharedPtr right_hand_l20_joint_sub_; + rclcpp::Subscription::SharedPtr right_hand_l20_series_position_sub_; +}; + +} // namespace lbot_driver + +#endif // LBOT_DRIVER_H diff --git a/src/officer_sdk/lbot_driver/include/lbot_driver/lbot_types.h b/src/officer_sdk/lbot_driver/include/lbot_driver/lbot_types.h new file mode 100644 index 0000000..219b921 --- /dev/null +++ b/src/officer_sdk/lbot_driver/include/lbot_driver/lbot_types.h @@ -0,0 +1,99 @@ +/** + * @file lbot_types.h + * @brief 该文件定义了结构和枚举定义 + * @date 2026.1.19 + * @copyright 灵心巧手科技有限公司 + */ +#ifndef LBOT_TYPES_H +#define LBOT_TYPES_H + +#ifdef __cplusplus +extern "C" { +#endif + +#include +#include + + +// 机械臂类型枚举 +typedef enum { + LBOT_LEFT_ARM = 0, + LBOT_RIGHT_ARM = 1 +} lbot_arm_t; + +// 机械臂控制句柄 +typedef struct { + uint64_t id; // 句柄ID,连接成功返回>0的值,0表示无效句柄 +}lbot_handle_t; + +// 运动类型枚举 +typedef enum { + LBOT_MOVE_JOINT = 0, // 关节空间运动 + LBOT_MOVE_POSE = 1, // 笛卡尔空间点到点 + LBOT_MOVE_LINEAR = 2 // 笛卡尔空间直线运动 +} lbot_move_type_t; + +// 坐标系结构体 +typedef struct { + double x, y, z; +} lbot_position_t; + +typedef struct { + double x, y, z, w; +} lbot_orientation_t; + +typedef struct { + double x, y, z; +} lbot_euler_t; + +// 关节状态结构体 +typedef struct { + // 关节数据 + char name[7][32]; // 7个关节名称 + double joint_position[7]; // 7个关节位置 + double velocity[7]; // 7个关节速度 + double effort[7]; // 7个关节力矩 + double temperature[7]; // 7个关节温度 + + // 时间戳 + int32_t sec; // 秒 + uint32_t nanosec; // 纳秒 + char frame_id[64]; // 工作坐标系 + + // 末端状态 + lbot_position_t end_effector_position; // 末端位置 + lbot_euler_t euler; // 欧拉角 + lbot_orientation_t orientation; // 四元数姿态 +} lbot_arm_state_t; + +// 机械臂完整状态结构体 +typedef struct { + lbot_arm_state_t left_arm; + lbot_arm_state_t right_arm; + uint64_t system_timestamp; // 系统时间戳(纳秒) + char arm_ip[16]; // 机械臂IP地址 +} lbot_full_state_t; + +// 回调函数类型定义 +typedef void (*lbot_state_callback_t)(const lbot_full_state_t* state); +typedef void (*lbot_error_callback_t)(int error_code, const char* error_msg); + + +typedef enum { + LBOT_FINGER_THUMB = 0, // 大拇指 + LBOT_FINGER_INDEX = 1, // 食指 + LBOT_FINGER_MID = 2, // 中指 + LBOT_FINGER_RING = 3, // 无名指 + LBOT_FINGER_LITTLE = 4 // 小指 +} lbot_finger_type_t; + +typedef struct { + uint8_t data[6]; // 单根手指各电机位置(指根、指尖、侧摆、旋转) + lbot_finger_type_t finger; // 手指标识,0~4表示thumb,index,mid,ring,little +} lbot_l20_series_cmd_t; + +#ifdef __cplusplus +} +#endif + +#endif // LBOT_TYPES_H diff --git a/src/officer_sdk/lbot_driver/include/lbot_driver/lbot_version.h b/src/officer_sdk/lbot_driver/include/lbot_driver/lbot_version.h new file mode 100644 index 0000000..fbeb086 --- /dev/null +++ b/src/officer_sdk/lbot_driver/include/lbot_driver/lbot_version.h @@ -0,0 +1,23 @@ +/** + * @file lbot_version.h + * @brief 该文件指定API版本号 + * @date 2026.1.19 + * @copyright 灵心巧手科技有限公司 + */ +#ifndef LBOT_VERSION_H +#define LBOT_VERSION_H + +#ifdef __cplusplus +extern "C" { +#endif + +#define SDK_VERSION ("1.0.5") +#define SDK_BUILD_TIME ("2026.4.30") + + +#ifdef __cplusplus +} +#endif + +#endif + \ No newline at end of file diff --git a/src/officer_sdk/lbot_driver/launch/lbot_start_driver.launch.py b/src/officer_sdk/lbot_driver/launch/lbot_start_driver.launch.py new file mode 100755 index 0000000..645d675 --- /dev/null +++ b/src/officer_sdk/lbot_driver/launch/lbot_start_driver.launch.py @@ -0,0 +1,41 @@ +import launch +import os +from launch import LaunchDescription +from launch_ros.actions import Node +from ament_index_python.packages import get_package_share_directory + +def generate_launch_description(): + + # YAML 默认模板文件 + base_yaml_file = os.path.join( + get_package_share_directory('lbot_driver'), + 'config', 'lbot_config.yaml' + ) + + # 定义机器人列表,每个机器人名字和 IP + robots = [ + {"name": "robot1", "arm_ip": "192.168.10.21"}, + # {"name": "robot2", "arm_ip": "192.168.10.22"}, + ] + + nodes = [] + + for robot in robots: + # 每个机器人只需要启动一个 lbot_driver 可执行文件 + # 这个可执行文件内部会创建三个节点:主节点、左臂服务节点、右臂服务节点 + driver_node = Node( + package='lbot_driver', + executable='lbot_driver', + namespace=robot["name"], # 设置 namespace + parameters=[ + base_yaml_file, # 默认 YAML 文件 + { # 覆盖参数 + "arm_ip": robot["arm_ip"] + } + ], + output='screen', + emulate_tty=True, # 更好的日志输出格式 + ) + nodes.append(driver_node) + + return LaunchDescription(nodes) diff --git a/src/officer_sdk/lbot_driver/lib/lib_install.sh b/src/officer_sdk/lbot_driver/lib/lib_install.sh new file mode 100755 index 0000000..2a908fc --- /dev/null +++ b/src/officer_sdk/lbot_driver/lib/lib_install.sh @@ -0,0 +1,36 @@ +#!/bin/bash +set -e + +# 功能包 lib 目录(脚本所在目录就是 lib) +LIB_DIR="$(cd "$(dirname "$0")" && pwd)" + +echo "Target lib directory: $LIB_DIR" + +# 根据系统架构选择对应文件夹 +ARCH=$(uname -m) +if [ "$ARCH" = "x86_64" ]; then + SRC_DIR="$LIB_DIR/linux_x64" +elif [ "$ARCH" = "aarch64" ] || [ "$ARCH" = "arm64" ]; then + SRC_DIR="$LIB_DIR/linux_arm64" +else + echo "Unsupported architecture: $ARCH" + exit 1 +fi + +TARGET_SO="$LIB_DIR/liblbot_api_cpp.so.1.0.0" + +echo "Using source directory: $SRC_DIR" +echo "Removing old files..." +rm -f "$LIB_DIR/liblbot_api_cpp.so" \ + "$LIB_DIR/liblbot_api_cpp.so.1" \ + "$TARGET_SO" + +echo "Copying..." +cp "$SRC_DIR/liblbot_api_cpp.so" "$TARGET_SO" + +echo "Creating symlinks..." +ln -s "liblbot_api_cpp.so.1.0.0" "$LIB_DIR/liblbot_api_cpp.so.1" +ln -s "liblbot_api_cpp.so.1.0.0" "$LIB_DIR/liblbot_api_cpp.so" + +echo "[SUCCESS] Installed." + diff --git a/src/officer_sdk/lbot_driver/lib/liblbot_api_cpp.so b/src/officer_sdk/lbot_driver/lib/liblbot_api_cpp.so new file mode 120000 index 0000000..df3db5a --- /dev/null +++ b/src/officer_sdk/lbot_driver/lib/liblbot_api_cpp.so @@ -0,0 +1 @@ +liblbot_api_cpp.so.1.0.0 \ No newline at end of file diff --git a/src/officer_sdk/lbot_driver/lib/liblbot_api_cpp.so.1 b/src/officer_sdk/lbot_driver/lib/liblbot_api_cpp.so.1 new file mode 120000 index 0000000..df3db5a --- /dev/null +++ b/src/officer_sdk/lbot_driver/lib/liblbot_api_cpp.so.1 @@ -0,0 +1 @@ +liblbot_api_cpp.so.1.0.0 \ No newline at end of file diff --git a/src/officer_sdk/lbot_driver/lib/liblbot_api_cpp.so.1.0.0 b/src/officer_sdk/lbot_driver/lib/liblbot_api_cpp.so.1.0.0 new file mode 100755 index 0000000000000000000000000000000000000000..0b8870e7e4e42d00cade29c782fba2a2dce8ee05 GIT binary patch literal 139864 zcmeFa3tUuH_cwmHDH=7ShVfYDSX63OU{X+OAfRV-DDqNv1>~YA0>PkWmKdN;(-hgw z>_&I9EUg|hD+MoLmSvV@c9HDjnb1VbGD~^CYwdkzHVoM1d49kD=l%TOQ-?F_yZ2su zt+m%)`*JSMNp*|}4hquDBSagf5!L7vNTN)LIyG4S(zHY^Uh9m%y|vRgZq8!QjR}ZVqI7ZgjkzF#SUglM* z!@8Xe9w9hKUOryCaB3$9-)_~c zV{U&-4?cT%xl0QQ4h7FHL7|EExq4K}X(#IC<^8X;hK7chCx&YMtd0LFkBA7V-;^3u zS5qDlrD>UiCfY(nQ_5>?T25$r*Ya>j;$vFv;$W={wZ*<@EqGwLrd5W8-VqX99-L## zS=>Ky(<5P4E!-A%(}t6S)=kh7(}OB5($YyaYl!2;ptI zyC*z2GsQNlZ+YMD{er@~c8!iX@?K0-|MY9?7oGO+9yTp_Fxas@hT)n>1db$}$v8(4 zfn$`oXbxP{a9)A)N}OYG(lHk2IGk4zfrEs+2IsXnug6Kp4dS9@;F^Uq8)pvANjT}q z$2k?}G$Q0th--=bU5aZN&gnR3NQ^EwXF zoFCx)5GNfU;oOe%6C!YYit{u6CH{Oae}9E*BhIgJ?#B5o&hKz~ankVv&b>H)#MzAV zC!B|H{(|!`&OdOr;G_T_G2$~2zt30b82paKISA)qoEPJa$C-fh5}b6L|I%rb zF5C3zrz`L6dGW)wvC}WMl=M3N-}xgh>$GCT8E3sS`=xU?H$U!rW8(06+eZffmUHRk zs}6*xebOs*$d!vrTPD;k&L}%?zvJgMw?Fkn^Rk`|UH;W@`k8m0x2CW2itxvtUfbi0 zq~XtKEA}Ui+tE4i@gai`ePMgUbKs;yuiky>vx^%)X?XCDseNjGKVf1<-LAD)76lD_ zur{sB*B6xU>{YpT?TqdZ28}#)*3ZB9xi<8*yPv-0%9Ey_-S_%y5`NC=W&Uf?feXH}c zZ{M|f|Llw%Pgni%+Ow|E-luKfuuKFkMS^a9tBj>+++uCPNeSGZ$vmfj< zd`ie+`;U)KE=O{rj3; zm;Zb$r)+l5k-ys-pSj@a8+LBkJNfR1Qo=V+T6Oo4*v1u82fa7^y~~@q75tF*}M47hwqChyDNWF zZF1`Ny_w^}hwl2N4i$u4c;uzi?tEq0ij2JtPkz$4WZrW%Ne6n|_w29Ze_M3- zwj~3uDz2zFYtymu4|jDwzid>O`rCe3x$WZ%4qQ8a`>CZHGYWV2e69QTwS9Wt8T`e^ zZ_a;ihIiDPsf%XBPr2!ZgQ>Qo2?HKEmK`6xY~DjVx(|zcHsO~w318J;a;!dgc%-#zKOtfGiZHjVmx+?I>(J-zRM&mWuc*tlP3Ziz5z5{F-R;qLUJ zGpi=e*}SK5-qHL1*s|Kv`0mm9UxWnrNDfVU+1>w=mwt6FOzHd6%LixQqi?*w{#@i`cc}#jI7m zXFR>WA;uM)^iXR0731gjACWPC-Q4$kT=B}vGfr61^SpPLrQbVn?yjGPJv#W#->%=; zyx`*#?R#QZz4_FIXUCmV6ftk*V>k7B?A?P6J)ZCm*m2W@)9(53(ebBU{N1?ZhZZlG zs3-LO>ejEe?@GF4z?G_ z){B0Qt~l~UpRlRXB~M-b-hh-{3&tcBRIlxN>plHGK|~rF=MA%8 zbKKBnA_4^dopUBe)<9UR>j1yC1AI?(`+RCUze1FBhS58L6 z|H}^SJgoyh*&WztUOlTc9ps+`1GU$VpLdYIv;%pzbbvqHw|)MHI*@a92YkA9 zAkRV=xjp$$>cGzLbbz}%;Qw6*@=WOff4u{J4|KqPcL(_I9q?b+0e;rm?c1Tg1O5l# zo9)@{a0mIbI`ETuz1rvVOb2rQ*g?BL*FnAKb)eV64)Sk5hvbRSipQfO9FhE2(~3?L zc+B+zuax+?odsTVn*eA{K}WLWlRi%5&la$@Fht}}mlNHi65n8x{9h43lEkO<5O{Ny z01&45nAu;}n#`G0@5^2GL zW0kmQ31|pv7u$RRSS21U@fw=o~sXlk#6Hq&vv$O5Cyc9Hzy-h7Oe zcB_>OUDKZ*Iz#ZOt`+${k^HYaS>Vm{1di^&$8FM{<&OyZYKgywO%ZCxOj^w0kZ!7N zk@_ybTrfUcBx^f(T#nGvWrs8Uf1#AWcACilhRlDfl(VsoUOT0n);9j5$$n(Z5PSwp zK1Cd_BD6%AKR;9?ye|7u&Ch~q_+gIXK1z`Hm&^`ihd{OYJk^EmfN#Mn8 z>|BlpCH`CYiHyE}B-?STTu7U1+r?6znnY2rsn>&2{u&u)8fCp-NO`utEP!l@_mcK( ztP+5)-K9Na+Ss!|`a`DFcTlh>Hw224{E5c|ZOVVXv`?mNz^`Pz$7KIayhQ-hBwmm9 zXFEuIsl*#4pGN7o$r29=7x~NQ2*B(|x661{-A&l1v-GQ{Wk22ejL83-PP!~9WIjtK6U`V_eSK?DE?J334!p{^qZ@?js3{TqYT?8I; zP%s!F<-vZiXqQ<6NB8985u3mprD4(~KGbZlM+9KT=i8+nuw~2%H^}^9h=*rD&gKUN zVD5QcC*>(F7kIABe~tA2>iq&R`&}p5e{Ev~f3x33oAR`X{9i~u$(0A_z2CjC6Kjh_dZ{qYHr|9i=2y|hpIWujg) z-ez_a{4aCqe|e$6 zL&QbvCgqHgVQ|{959D&c&Xvc8X?f>?;v*87=J}Ggr_UhWNM|U7h5& z-rgEdk$PFBUMS8-Uupjs+N{Q5`a>S7BR-97^h!s6@1{j*wt68?RFEhaFXgXkGe4=9 z_KCSdWORz`T9S;D&E*0x<=-Rywy{Rw-;0Yj-6riL9W7hpP165k>5pyes*vl5wnfodC@B+S4FOo@N;^Ql%ZP zg#lSk*>TSc73G>b3w*g8c+LJ&(pTV#ZR8o&Md0ZNM0qp+2I>FSxdKO6<70@lf96wy zrh7(otdM?EF8#zDA77PmwecE}(X`LPQ$)SZ9#P($M~#IZq}TFW1b(u(XnPPBS>LY( zaH+&ULjw_>SuOx`eo_g639q?F;8RhajxJzGxOJYOzYrJg4LRP`E){?o_r8$wYu5?+ z<79p#Qu6tiz|HyRMk!Bmv&d-L^CQ_`Y`G%;za^ia`bs`;3g8ooKOZ7+o3ukWiQA-~ z)V?Kv9)g{=O~%!j+Xa5I)OYErf=~LR0yq8bzA%B;%oey*Tbm}=zshRI|Y{^H)u{eoOmHju93gUQ1T(p_zi2T+zbuF^{ErX3fKbPpP!xL=Nju26_qF7ILSKP5zasfaJi?S;6LPK# z5eY}-{LL!ki5VY0J45h^SugUL{yaRo5rd7j7z@%We{`IP@GXlZ`!N7>)YuM~EZ z(+;hRv|IC=BL7x#L0_bLPt=NwMSclunX+9H+w4nd85xtN6%}TbI4mXVWNk~=BC)R|i{E-ksBs4#b2*2IEbk=A}nM)u4sVvtpkKMNVJy?k)N#3JX# z4*W?f&QBhcIz14KZ3j%CVi^#`nVLR2Tk}x?rDF$iT6RHhR$*B&IH_bn?i3avW75o- z8O6CJr9~vC^X81{F@ZVTlPWfjx##4UW)~F}=4L~<*b5n&oK=`pkelHY)%!C9@EsJx z`6uN%GqQ^FGp0j|{G!6)aoICx#!{8-rD~-EDk(QBNlAGnsO&v3Bnl>$WT6XcxXmd1o z_SB5*$x}1(vhoW8<>ZFTAUUC{v!tk?Ah!e!l2;U<^O%1iRqEJ;48N{zYJe~~1?hpF zGDyfI92I|^xfyWWd}mQfYWj%j>7!#WX6xmZ6%>$qNJayVn4S+0N)?s0Q#4R>(W0f! zqGHL#tVFg>U`ikl;gxK?vXYYALZ@IAV7v5oWLE5=mJO&xdgHXB>A4wGit-Bsy)jle zTUN=m3}^c2oSdAAg15iOf5>#q=&{a=rlTVimDqFOZ#k){R7u-@A1fM;t1T`n%?&U^ zYeA)A$eHg%=OEc-H_t62FLbt6ggE|ZRkowX*!YZgHMxjgj5R69FU-w?>$M31|B)_& zXP`EJuiC$%kLWV&J{fuFqa=ui&DLQp6LpUH@`Lli^vDQ)L%! z!{krunx0!wl#LMoAJt_t38*VJp1nbel$)1VRC4@IsG6@mtptmJdIrUcdSYY#8wPB{ z<Z!Mx zPkN3pK_K%0F{E!(&~p|Q6=dXcb0aXtYgPb}W`->v{qp9tf0HMcpBy_f%;Q7TN z;s5?5AAv6|qa?SuAS*jJb=ovcc&7zgL9UdrRGEaC@n7~w;cQr1v@Z7F;s4KEuA{nh zatm^4*8ewk3n=#A;s0OKO$j11ib}9t`>zKPKidGs|9<8FOzXcNMEpYk$*_|B7l#!J z4}PWrmKfBk`}i~dS?#U5kH6S|hyOn_c1Lx~e&84Kujv+0?7zeRzoeU7ozY-9E4L(Y z_d;E+`Nvht8lZ-Z>$!!r3zmUZ^>OVZ*V_Kvf&9eOH+NcY$)w!E?3=MiP*nVvc(y7L z$XASav?o@Qky}zyR1!G#l5VMF31lP0qkd74Rq7O+%$=&Xt6sscb>2XZVg^oaQBX7~ zqaYWng4BG!)qP+hJ#62fBFRQHJAJ@`OajGp~Cnxq|o>X9M zQIw6HKdhIW_EBR-V~;0w`sE4OH7+dUtw`)h78aFE%PPpo$4+q;?FFUhjE&7mO-(7j zVjRr`3uo}gBkh_5>h-@oISWv8Z0d0*tA8;X{E0Q>G?8$9yS(>3D>@gMM9tQ7!s|i#An$5RyBstqlTU9hN z*C}YbGk02YR%!0o+(Oz-M*tSW*-M2WLIaa23(^`=1Q7}1W)kkaOwXNyHRnxbxuuGF zV|j4)si#^Zi3aRewvi%;Ot1|JJFZC0=L1`52Xr{rcx`G)$F#sX9(SlP7CD`{IkKu0 zUK9q%UhI>d?X754&~A#l!QE~KWlOBx^fnvU$ID}GmL4yU*eGp3hujDC`K8%Ps;1_K z>+$PqwWHd8W$o{M9yf1sRtb7>u7CIQxVhyI|= z{Ptm*P5Ps6yCo?||Aj1pn@H_)3)sPFH&?)3NV~b(89v(0C+qY_%yx4HEFjy>W!C9u zR@z~{HaC>p&F5d3wV&K-jn!_JHVcB*dEklIc`nHGM0!?_wY5&fAQOAld)3?@V&R%Iyelk=#>(Lq$h zt}G>2V0Ps|xRs9vCb#RKt;_=9g!)%y6$rISGo@nQ^U5f|qbPohD#>kPbD#)_y}p)E z%25n#4-a&oK$hf=%6iSuXVUnb;;}{9Q*)iAS}DdJ4E|-M1-ZG!T1js9^t_UyX&UZ` zI5P^JMOj*DVKI$bdDRxjA>=g+?iM@XHRVdl@&4w7s#GgOpkQH z6PY`n>%e-yu!sur+(9du(W<;4GiH>uhnj423o&+5273I%nUCohI~%IPmG=`w+XyjB z<>MteJ|Sf#^z@Do6XUCoB+CgV^2r&_oQ+YTC|j5(D<`J}_H&j(j-q0xmX}@VEbx^V zrV)h-=>9(*=fOUQU`cRBSq>iG;AYS!Vqz(n7CSLJD}{c}qBg8@FpDWEy4i^f*pY6Q4 zn6|%h7axyFkSR;0du3$g!x#w(8KtG!S%rE2ppZ&tOLvw?orF^PQ6&xrLLQldmX7KM*med( zm*wT*VKlR5p6aDbq41!Oi6fBsr@gYgo+YQo9QxYKHAU{^u`;imZjQ;N$_le{+ntOm zsjX(EDY?@+!-8&= znDt6Cw6{(W`#zA*UZ~1FM%-*_S6d~mbs@1Lx*X4E`Rz?qn~A*0#v`Dwxrk~v+lZ_J z-;j#tW3t_h%4jPp7|Tl)DTxaC8n{)Ouu=PIY?=0x#$?U#D+{8HY!I0X2g0JhHn%sWT`0+;fS%h{#FVc$|``Sfa88o{^iA<;+5Gomg5*Q?C*P zS{fjcgGU8=iZi>oSQHzXoSbnXcqdPokTl$$5qtiH+DM0eI7q;Q&mR=4lHzy9pz{Zv zALsiWJJ|PAmPH0XcCjxt_F_EP8!Z0|;jc1=;d_X!Recx=25KR<~t*lHdDdBGc)5_ zuHdx_zCgjRR`6;C$18rmW08WRgZqve1@EKCxkSOK517Yt1%JT=ab2b0wnjd9?^f`51wW+Vi3N*!3QYqyGg;{Q}SHEXx(NDoYFhN{n6r8?mY##9n{-p`xnyBF86kJzu^Ic;~PFL_fO8yB7o}}QJ3Vw%z zPgd}r3SO+>=PL5gRPe8r{N)NBt>j;z;5G%XR`9M0zDU6{75+5}Ua#Ow6nvC|FIRB+ z$}Xp_Qt*$J{Iv>>S7Lp~CIy$TKy%tw1uymGM*LUsW(99l@LdXSDEKQ1-mKtwrPp^H zR`5rBD1NN(%M|(l0R<0NaJ<6rJFE(hS6_Wcl!BkFw2Mu_kNR@sd)*3tM8RVe-29di zCC4i`UM2P&i3pO}S-0ed#|50%B z8#0t!uHX+U`4=cSUg7s0)e2tVL-DTAso;kd{7ePcHV7%m|F2c> za0NeIsn@FD(MtX(1;?w?zQd;A=P7*pDfoV0Zp42DKU=}$6?~+ECo1?k3a%@-uHfkk zEF$#Wx zg2yX(jDjaB_#g$>6?~(Drz`kn3O+%>2P=4{f-hF^$qIhCf)^`zoPy6(@QW0@T){6^ z@C6DUui(`Ro}l216#N?nuTk(z6nu$-Z&&c;3T{{MRSJHog6kD~!*zF9?p1v?y{gt3 z+_F`#*bu&6Yl(XjP|I0QI{nyf&s+6HQYeua)Unh^DEES7Ul9 z(KNO2HXkMZpCsBwbR*M?iSA4ER;CvcO+&x8mgzf)rlH!qoax(%rXkl`!}KhoX{hy9 zGhIS74Vm6@rl$~1L!!5s>4`+sQ02{J`dXrCi1Ma0J%(r+g1m`Lk0P3e9&ZfO!-=LL z#A{>v5~3*tdaXuvs>+n?w}q8piB zOmq^_TbW)+^l+kUnZASQWTKZdeLK-9MAtAqi|ACMtC=n#dIZtsOiv+tB+IDj_4Ss*Aaa^(Ke=66MX~GR;FJe z`bMHPrk4_(L3HzP-2Oyo65Yu3VxqH%-pcesq9+nv%k&*YXA`}g>D!6UA-aa?Sw!a& zUCnd}(RoCdGd+dqNkkVjJ&|Y{fV`PZUrTg8(dkT&A$khYiA;|odMeQ|Ob;izfM^@j zmk>RTXe-l$h%O{rV|oD5MMO6r=JqGLnCM2Pdl7vT(Oa4BPIL*;wM=&77L1OmsTa+lZb;bRyH6iN1yC z7^c?|J)3A7)2oTTm1rx|uMmA3(HhfBiJn7r^RL|gM3)oY$n;{O=Mue@>4ik!PIN8P zcMx4c^m3+eC%Tg88m4CvT}5;?(OL_a`uInzH7{UFiBOz$Ro5z(1U z?DtXk?18vXEJ>)(a#f|&h!|fmlB=G^eCcVAUcNW;Y7bkw2kRYh+amtmFYo5zeKdg z^Z=q?Cc61&ZhxYe6Wz#kFQQivy_MgHT|+?g{%X9dq-9!@BD`=f5yj-;8oJRX_2Dmd3pEEq$mle%GXgjPuyx;#_Ro$p}byqEJSxT>vhIudQiRo;W1|v7`i0G2x8a~zw)6j@X^XH z&?|;!pa57xo(SDNbP#Z3C@f^?_){O21v-etDJQvpS`U^fBKr;AJme7cPi^IO{p#(9 zxNFw$efX!AmTJE~-b>Lb6{-p6q>^9xC%Xk=#tP{@=2oenz zV6)%h`oZD)-nbhROh(=3Ha#iqK>{@-hoe@lKG~`@-6!qG65j%|HPssN(7>nf)k#;u z2Bfy#^&V-y9a>M;J>#Nny2lwEr8lHRM-jVLhL{jrO9?hgFyhhAD{GTn8!eU31ZkSX zJsZV5*GI>sRkc_uR}$9xm;zi zt!;E(hwzN1Sf=JufNNqoC|NOYPfB^vU7!t#4j(vi?W z^2h6Lh-In#9Wp_FJLIw2U4x_TF8GQaB146JlqOV|-A09q^`;8Dph738KpI8qRV^TQ zVIoSTO^{oeygqsYT<|n@!4#Kask)lg*f3eRVbYCB8SC?^g>7!t>QkZ9rt{B9q#t z{?zkH2GMWev;9QR$vQw@daN;ydNJhhr@PUp-YdYMO?fI6Zk*<0 zLVecHNq22_xDX2)jIJgp@|hU#2=qxyA8JBN4*(3`08eO^(OBHW+|n;EB5Nh<8XIDHusf?YD&0_kF9m| z-wbKvou_d3gu@MChoktvL5F`Kj<|NiUI&vb){}z{TDqMatXI^AqdUcyHBqI;>iq~> zbw&lcT{Zks%Hwd=rCL_jd9O#<%~Rz!<>}UuJlh~oRDe7MQXacI-0n^f*IDeSvd>7a z?huhGBk7_E7!!`4@Lm3G<=^;g?Z&@s_;sbo(2ssvb&n$&APU47%isr1mBva0bu(TI z`}*{On*TTH14W?E_ZVcQKBoPHI$LU=L%fy+f`3nHk}AUI*CvLB6ynow!2 z5llK()0E(UxW4`fIjCug>qW{}nn_ZvCSlV_-kg?TyTALxEm_vY^ zFQmDH>=;f&_l+w17?Bh}cM1s6_?<)n7UMJh#60h7rmPf?DP~||NcGT{ z!Z2nN#&oh(xp4u879Qmk`CIF^&uF7xl7GJJ`h=#-?+QzxT`>;s)*C{jG3jYNS;jDE zI8hbNkvCW>KSa92Jvf@Dmm5Ino`PtaUphR~aKUfmB7__?D;5(x#|*d3|CaLc9CHe$ zX>yKfqxncwlAL6w@+1>~E~VK*l%7y8XN)|1hVpvC2bRhcXqH!n2?eIqt_yY7*l=1? zSSpWE1ujfFbxb&IzFB{LXH>h9=a!hY?#Ee6sP)_^E)>fc}{%oXH83u zt&PPTYnKt@rJUDC$HR@yd1j-fY7?unL09LQzV#=qIl^iFw%>SyE5a~KT0$(WNc{7+ z`{3p@e+zeD{$}<5gjtU8@2YLiNJRXgvhg$(vWbZlmZz7Js$$j(CB3Km=94}f=$>0q z3nd<7Zsm|u%;W9{?Z7;)Jg?d~l`AIux-V^d!PpB=YUTgZf4s@Ub3}h}ck^DT(yqJhqmJXe?|WqL36fp;{&+y@%z__KeW})wBI)(#b>{dR2ufH z_`bFMN)_7s0F0@`JIl%sy=RI@#r%jKOR{l%_D=rJAK(1zf7hoSZUM|kU6|mP4QjL6 z4p`S)s%YbqrW$f>U+v#87(?!@Y#8*W?p<~Tx_0Z$f~M!ix<~E@xW7fQ4)z1)Ku65K zqjl^Dtd;s>hv&7XFN_qJkN9A_$8+GC^8mhQlx7~WA(hJwmy+JlU(wYv<5%j@4v7!5%yYhCLt zmHn}pcA$%69gels?-aK@_eGa8S4VWQ!`0xRB^t#mOv%PY7t?*bwhy`v< zBZ-0j?yQLTj z4Tz`Ufp}_nkHm8Q;xyMtEY`24cuKV(nn0>b!5ljdGahmj298QiNDb&d#UL5H+Tj}J(P za!UC`HQi2zvO{Z86YbmhYfAU$By-Z(a&xN;69O|Nw#ty%DuZi>?tX+_z&AKps(O%c zb2pIVD1!sXb-Vj&8ehi!D90DeoCtAW zuI{6Z0bf&N(6#|heyG9G>g-}E)R>~_9n>T0vHa(PMkhF}+)W@quX!7kamh12obVTc z`y0+%$vIMBM%p3VV|ZF8ryyDAZ)d*08U@5R*v}U@`2K2)#nWdmHv8#9oJBVA&XJJV=L}P7GplTbhVJ1 z;NrT*NFxcU>Q?$A0ecYN>31A!sX2bVAwy=&V;Xpc7)R zG2xh{auPefnI6?T9p&i-6n}Y|l={oN(@-bXbHGyh0oU`6(%G>ltwY2^o`m-;m2_82 zuQJoAvn%NboTL3|)X{xu-rxOpchF|??gc5)79$H*Hr1rLlf`=hPm;<}3nC)zUt`yG zKj)33A(QjG%)BTaa*4z!iojA2k*N@j%<*NXne70LWUaED8<1J> z+KCGN^L5GxhZUI~N2b;qc*uQpw7a=}`A__(@r(cGKjeEI_)lM$xwZ8>_Mbxt%^mvB z4jv9gKRAy6tO&?<9RI2GRd^i#$v~#o8nFL_V?^-z58WM_yLT(Pgu~sf)qIB5HQ3H{ zC!qsB65UKW`ftTdB;GlI;J2bFgKtG|siJ>z3ZosdqR1oe`|z4M5&MsuP%^5lp4Y)i zSO?cKy;97-;PmOSwKSijwQXoHdbheyMvG;K=jrHbutpL_uryjCo2zC7Bw96NTarQ- zt%`l?<``w&9PeK@(>w#a(#A_)QV+0H4n#-Q-5190(_N+EO#^wq`xk^M5@sOscG4^A z5e`bRkGm1)QQViIn4`OaB$QgqKD2vI9*89(cWrtOkej*bL*vn1JS+G2Z@L@jaIJ^Q zNf~TQwKDkvV8Z0WK=IBCgsCY(G4*L;VnHm})PDZ$+LMf?+LLCnF+7|&ToIU*VaEEk zF&th|S?h2|L_6KOy9X^V?e1=N*Oh2~#6ou|V)#KzH%^#oss1$I zI6-NAYX_qP8p=WQqXnVS#t<}+sUPnSSyqNddk2v}(0w`A`wrI!l<#EZEw-~rgYkWq`T6% z>1p0(O{WG1FL-21w2qOK);~tvXJjheWOO9#!2)IFc0tBar4{SpSsTL>zPhc%;U01U zZt^xP1zD@=>|#G$$M%m zxur;MOa>FZ*Q3GZK9lkAr*4rx@td0b_ z2l~^;5Dc4Amx8s!)!4L9&L>;%=h=BS`M27;E429^YVXTP=Kq!UPK8yK_OAa(kbmCZ zcd|UJ!V$4erl(^Ux0Z#Z0|z2X$S2cLY1PuM}u{n_O`oz5zjmPOv{L) z=-}|rE8sJIu(GiC|4Q$_L$5m=!b=qn-=4vmy`cfOL|bSLKCc$N2M({hPL4LdfXC_X z8*nc?Ej-QDsJl^oPabk<<*a)~f$^`*r2hwY*J0f=`;r*lwbNc_ zgf(3ZBbfVNU3E9OjRIHwFs}HW*sM1s9%j~HR8ecgfQ^{j;5>r{>L0-x109O#&5*C` z?Vl_~nx)%tYt!492RRV;>KenacVC6E7jpo58dCRMZqq#@taSH-wica(5Vn5M z>-L8=#nSwV7%FnKmVw0b$c(mhwfJw9|^q`S~_F9)gvz8ogh!|O*_(IHXL)l+X6!A`>F!{!`j+2yE6gM1^b zmTrmGrp??>bk{-MRqx$`aOPJI?P5lVaN`X0Q*`E3v}D|_FQGJT{;W4f!%zfcoQ>PQ zo#0)@#S+6DJMPqv1$HJdbWq5&8+T=gS&%fz?KmRhx|5J$(|2IDp z{MQ3JF8_%N|2}^HZiRoOS4wH5|8H_{K$vvhbl z$S8TQr3HgEZVr=}a<8Qt+!lTzG&n#J+Y?tU42CFb>=MY1ZJdFgvfBcLqvv{K5GsdD zoIs0?RGROmqVw%BP8Dzj!D53HO@lTG0q$D2irkeR!I_Ep1ZyXAL2_?XBIzHowemT< z4)uBR-466w_qouguaLf07>o3=2qfIE&ruHHh>q)xiCfy$XS9F=^tllDKhFbTl1QL%snlLeGc%DGsF_8_% zsjMNMom+2|vj>P48)3HCej{IjMMEM2?J>p(SXCUIe3x+va7FPnwIStgmZTdYyy#!t zj>_|_thQ@AmX)rfQ2Zx6nHUfEw8DSr#&S0dBSt(oQ)Kp58h19}$=MwIs@ezLC*cQV z(=Dl6jdf@M!vkS(H^v__;8P)(vV|MjWCWxisJ$u4eW#53qdEg-TW)FxcK_gvU zZ^76&ie>-{p0>xGBtZip@`QrK-J$JdoGMgK*JYddO4eN{0t{?~07DOw!U`C_shM5J zpsyV*?b>2@ecV=EJGWWn3)pQ0AE>(wzf!AyL6tKY+r|2BgR1CyMpx0qFR&t*&FnJz zq2{!zZ=JnJqN(q&u+zCDCwEcwj1vrvNLA0XC8!BKPXn0O8TxwQy)iPeqI@q zSl3S!WgVXEcw^>P5-HLOzUY%^&?x+3|9x%?`R{&i&tOz#Y#|Za_1~w+orM2}qY*HB zW&fQ94(z}Cjac@<{YHPtDr53VLRK-z@x#pH$MOU_-1vt0c_M4LJb4+(!a{XtNEm$@ zT)$seZ=uO&*EB$!x@$s0vI&=VQ! zlQ+qfccdcklMvOIM)o?MyhHr*J^=+yc|Qar874QA8jyS4dY`<{QK0zi@=m5YJdrEG zQ`mO{ezAQY-0ZjSL5OO+&HYY^=WXqKCpR~T^#c@prG5MQ?cKw){46nSrg;?llT$n3E1#C1OVj{JM_vcG#G z*MO(6?+5tB_Ptnc58eFoc9rr5`{mt3z2dL>LzuCI z>hMHv0#9Mz&+v=w`zh{3QXi)I$RNn;P7bGNa8RdE@HMrfCyt8gw6nIym_shJ6MhMm z+B){Dlv^kgr6{7qBGT|l)E?lHQ0p`N=>dua#)~k+U_m15eDPwJ881#z^Qt;P1O z9|PqNGiFj9p2!2f_+c^Se{Q2+{$RiS*+MNN1N9iI;iv8R$Gz0lLh!>VX$oEq)un&* zm4g4vFZeNP(^ifiC@;o8V(p2%$0zS|X1x1#gJ0e;WLM!IuL?Dcm%-lXD&=k8-d|9Q z3$c?Fu?=W!#y@HX*n8sJK6{T05c|0H4j1zO%O^iYZV~?!`4^I$LjIowZ0v_b#wc{B zcI?<(@DVp zyCIjc41EW}wX?pdAfFV5HK3U}KTHD$Htc?*8_T!f=)&^x8uv$P!`A-5`-`8DTVU^< zXN%@c_Lg|#C91>|na7gyO3ak>OWf}=dty9E8X_dc{7|gFzM(c0^64z!E}p+GLpj;- zH<4NKs7nG@61S5j=Qw#aQqrpS(Sl~bu^8ebCOyLiIXRvS?lEHC^cg;~tzvQqRxGo9 z>o07QVF6}*O0r=t3^x!fuBG@TRv=+qjhGB)l1iSqC)rzgvU#}(WyU;a5OfP@>{UaVD>`F)#&bk{tyjMvMeD4SF69qL+s?dV8eu1S&#eH2kXgoJ(1rq8(JS6 z!Y_8pgSDiKs4Pvg{`VU`Wfl`__9?JmugHIs;JDex@l*Utts?m!S6CiFzXvpgv$2&8 zLLh&-zmm9)qvgZULTTUdLj*G#4V0rqJ3J{_*J-8)b|Lx9Jh}y>s$Uh*Gu-gpZ(%^_R1EuJ@2dS zb^Ky`EmSJoN8JaijQ6v?gjoCRh5cIE%#0M=?j&xWxOC>Q9?MkYMake~KZD<>4SWoE zm((9mr9IHy){%>OBGY^Vj>Ruwj^?-h<`^wH_(&w0n+7vwoi!_2c(O+ow|hJG@Ygp+ z)EDBb??hjHyw_=McU6S*8r z#fjt^I&D2=c7fBVAx`RsYE z_Sbme;v0$d;&iytgxm<~*yYA;x=aXUWsbXy?qnjo*z4Me*WKYMXTU?SAAULBaE>M? zY8ElV_<`!6d>cf*rC^AB!}Nw!jSh0pXCX0fWs_gYt#nLLQh4+>mN4fe%l)CzP0vcZ z(fhlXE|BNn@X7ZW z5Gh}XB88C8Cgt<81%>27zJ5}^4@8P8UyP9NUJ)~mp+Y`5yrpuvu;2Q1WLo&Qkfu&( zLha7;0Z&{P$Ok7zM=*}j2ml9vBqzH)Dgx^QTu@S}G2A zPO)5m82#q1O-M|Q{kA&A^*#CYA&#i{@I}3`6dBQB`QC@N; z?8IHmscw4c!uh`LF0sLLR`((4pFyUi`VoD!rj@{?O19QD4~e$ibuakhVF&+soZ|Ws z1&l~jzXoIT3cr3Mg?{@QQHQ-^V^B)M!00*edDFnfU(FjR;Imwci>etbs=>@x^8YuQ z2e!xiea4h__|q396#jHy-OvA;K>oej@)z?L=HIm){`BQxh5zSpV>wR9f!c_EnFJKW zn5FV5=nJ2GUPh&nJn)122IEC;0p~^NRVPk{lgUt)XF0#F+7%=HLzB9RV@z% zi&fx5N4Xv=04yaW&z}&V;OEX0bk~pMl@}82iA$BqAIoHm?)mow?$Hf~l`!<|Md;bS zPE11+#zD2(rbYhtr9qCK|DpR~+wnBZd&VU%iHgrhZ8;o>_`ZI&s1TDWF$|Z&AQ*=G zP=)89!q|O0a9`(NMRC2f2J6Q*NwnO*vCKx<4`b{>KFS|tF1eKPGwa{546+>nSGIus zL`4wX6*3KcO(buV$;%wVKnGDvQ;j)n}lRadZn`oSTDSAh55cL6V&vcIv*JIst~xZsE#7n zht#6?h(LiiHp~urHv~|63VQl&&mjg-ecai9H9W+Fq(^5@VsQ~H@#HAnEh*+;GM+Cv z3P)~0M?~Q{o4vU$%ekL+FHoE&xA817}Hl9iaB69$>aV8kpK2--03*+hp=` zv;9$P(^KO4tWU-M$uHyr@8P8w_JXVz{EE6)`V_rG@bM|S81{goXHy-QL(Go6K=do} z1D#DH^>y}ulFpOp!J#gsc-8Ib-?Vv>3)%Nb)q09L$rVPBD}1t)>U3U0p>}|9R!SQ{ zY1|(@GlPu2q6gYtshTrN+GHODY&rogY*%K(i(n}3T;7prekrFXZi=k@A(SDz_GCv& z!43Yaxq5y8t!%W96BaougsCUV5@t)xfT^L)lbGRoMpA;m8(#;M5h3=8h++u!AD&20z1Al-1m>vznO#EGL%=?}fN>G$q!x4c8-?zy} z#9V_H6q@!$}wy z@xNZTC&Y+1yB_RvAI9>kZMS(m!)dyKr?!IV`QY%T1UWv9@|^q~jUajm-pld~y^u|T z=P-G^LRmZ)ND~jor8#&KyfPV$B4;egkP^>Nj`Dm32oPl zZ=zmvpyl;qqwMdyiHFj(2f1SZdNEcG8>`KHa=kc<6=}U*oDLW4c)d6izQyeyuwHzh zTo?V%zg`r9Mp^Iv{;VSZY*@}FKsTSg$>kPt&0;+~uhn|^N9wGk-(p|?Yui4jD*9O} z-Q;@MER=y_m?^u|@p57NS*DI2Gya+Rq>i6F!#Yk;bi7HjY?ASVb$ki=P~EjM@O;4H z?lPW3hi$8})Qj|8!cwrl-Wl*d8c*f=pN0g|_b#8lSoY(MZPBdTIpkmn;hl`WRJm^o zI7etcT#Aw+#KZ(vOpnHiRx7T@CIuwEPqtWZk&Ol$jDrovmrs-8&TjZLmCY!IG$cpF@KK4n&zB-TLCPv4dKTARmTK04 ztQMJddYh~liL8T6G3*U2o#@MAo<|D249RGCYI@BVPg$`C8Aoqwkk3#1?{82@rzzTo zr&u^A#q%FuqH%?%X!|HSDxKk|5Tq{+J1fvl*}QExW2k+x1z;>^uOd5$d1pC|8SO4` z6RC}E;A(dnH~Z_%qBin!cX5sfOSy2`11Z|f(=LwP$9ACQ(jMb`Vj-3@53|I)e`CdR z36B7W{)qj$po9WU&_1N+Jr6D;b$1y-zIrW{X>e1jdm7hmsT>O0U;iYve#>1pBx22` z)SqY8UvHc$>OWEL!_Xth`)I>3C@Eq8oDaRxqU8*YOzyDM7Mn(2DEN+-+D>{i?+q%6$It)xNq<3i_n!Z& zO^a=DhrshM@}yseSnH~_*taIt9qyAN4OD5%_q?@YW9g*I?_;=YHAIXpx6;o`m&Gt+^dk(X7qxQfHEu(C*)%*$6;HQYH?B3XFKP@xuX2ZF z9_2=^Iu-tdy|wL#ZUq z!G3zy@?h<0S|z-281lSvg2;j3sH8+A1-rm0#u5tb_=QI;BDcRtyz17F!{ReVCq7O| z$uWpQmdYC9;>Q0cuKC%fRU8hr%)gJIMVQ*u;Z+E+C5e|)uqdGSJFLcykI}nOG_l4P zFkXYHbkEXe$jGU*bQp^M&B<>(1Wr`cGt2gq{tTt9K$<)9r{8U;G3-5DsD>h9Lc-AJ z4G|GqwtBC}FD2fd*cZa-?r!vM#)Z0jI0jC7bsQdhmY8FEW`@$+Hc>_~$47c85AXZ1 zh>2uSd}iv;%MK1G8!F18ra!CqFoz_y-c6*H`$~MC^Uun@6;Sq0QPzgCmP-033sjxa z{*2K3e9+stRTd|0tIk9c?^PKzzKQtB`~UQvPKWzyYZ|e{vru>;6<C&;>=n1q8r4Y)5`6KdZd$^o(lFP?G*=zX;^)>S zqj1IHer4Y}vX3UwN5t?6to#;2?XEv!KbPgQo9y`;33LQ)EsqZ>8=DPF}a^bdPgV7gR(W5Z8yFfESQ3nXD zT8+8DvG8}+Vr(1nB=<+-EE?X$fcV416rIG2z%*Og2|7)vhWZxa_0D@^x5fU_WHsl{dcwQ-T9PxRe0HSP6>o+GmF>f8-KG6yd>!6W zKE!gOr4nm3Ou;YH`ybSUu)T?QpewK`PCHr50N>TvT=o|CI^JsSf1vCtya^S}_AN(Q z&3Td$TLVGjPq0*;2pAvCKJcSWGiIY@$SUrkyFu#sbZG+yB5J1MC}SfdE;{Xer*_9mWWXKw+1y-7nbkHbyx z8;c$%w-V!{*xx!P)+fL67AHOjkc!uI=kBF{#RrOe_t{#{(k1{$t5cOXz-Aatjv^4qA`w0&vsTB{Ud$RCQ z(oylyYTb?3nc(@0+|+><(zct&fo~b5V=N#14C(D~{kDdjn6_qyJ=oGRlv>s@e=K=? z_EsuS;pG>1yixoZN2a?b!((vs-BL-jC$vd)%vx#=qZp;_+4%H$0ll}MgZp3zDOPuA zG%k1>o?qKe!56jod*u{<9PXJILvTa+4wOfiMSJ5d{Gu@I_q`oZqb;L`EiG*=58nBGJ-31J5tpV$a^7=hsqfPjx#x2c=w!chD_& zVr8vC6o(sfjrKS%z()@uW`z-iNdkIm#o_RhuJncRI&TQ(7qQ!xggU#pd%8|p4dZJ| zf}IhT*CTr7xiAT=SQoq`$k`bme(kv+;uM7UP`JgdRymqDg7zB?_mdY5EpI}Hn+oUT z`MGx_`U$>DR1`-4`T&x%kX&CyZEQBOF$|ewYrVaZ)9fb*!Zv$$y$~5vB9i|zL1}Vh zV12O=b`dQ=5=TN}JWytFrJ@PeZiNRJ6Bm;bco$zZ?!BxNwc)v#L(}9$*UzQT zkmonkv{zsC`QVkG-u~68$@;Hez3#Wm^tvP6>D^UN=pg-4xPj%)F3^gN4&8HquxVt9 zX;1rW!sE5?y#i?cr588{v`ku`^;<8#>W2A5ViyS2eGz%NU< zdmqBjH_jw~^F-QzLk+)J`s20bL>nMTvdhvx5wF70>diCs8n7|GMPI-uUiF74v+)3l zKlCCbVLkGTu~8=fh-7^JavOoMEqSiws0J7l-90%}W3R!-`C|xZNTzR+;1W+%o@;D+ zeew`UkUW{_hGcq90heN;@?7o(xYQ>*k)fi7ARG-9cj7N+<0Tqld9GJ$ajCC(ktk%| zL023N6&vtZWNst?N1p4=!?@H}d`lEETgg~B8Y)Oj&K#y=WG47Jd0!3pMO#`L!qNcK zaou_tJRStuo33;i4X_4h)EmN1@#W-}6Y;!-;(3w__bb*!VP}Os5_3p=l&kgE!;M?1 z<#-RrQdtT)*4&QCif~}|=PKGa#Eur08;dEq7pfP@$!1ABmX#WgojWAsZS&C8J&*+( z_q0(q2YF(*@hkFcN!|M7Q?$GkS80?{hWLYzwR#d;hCV(o2;noDi=)ROSYv5+26Ahw zsSNleHH_#=bY7Bc#7TKreb|igm>zO}c!FFE@2n@SvQmji{NegiTze2jqb;u|N6{kI znpd|eJP*hj#_D@%zJVax3stVBQi#^bZUhM*TdPN;gy98(Xc$4p z2r=Bq%~K2`3EX)C7nnXjA7+- z$ma0Ojy^4kHuyvj=l<&2kCLaMsZiB#sjlyg9`Gwp5jlZ!2SQZ&?QU{k8l0&HiWbqh zqPrn5xb}08ZWzHr%(Q^Q z!b&2S^%DiX}@x!RVO>MA-NVQb`R zNev@y0LhTTCdnSI<}R9N>Dl9=BmNJ2?;amzaXtQTmIMNUY*5fxQCAEa5HToX&`=YS zzy^XuK#c+ggm95?G1&za)L=G{?GmL*Ep7RZo_xGyP?yj095dUn82s=T zFuO8z_TIz-t@p*_w9bUHuu8zD*j|DC<-|2^+ET-Rg$h=_? zYAnRpB3fS%Q5*w$*DH6IZ$=our#FlJ-F~&#NmUORm#PWK1&zGAs;{>>yc|*GXi5*{Cs?OwvOK!9(&E@@vECsi|7#IT_!Vt{Ord~X8hJ~Q#F8{yw@QxB6M$&YWa%Xj> z%P)5q3Gs4;8a^Lv1*&e1jOxah56kQI#>+Cco3m57u)u}IyMdttcVaoAVT>SEW3}Wi zzor$M&c^i$FXhWGFi$Z`uFbea@aB9q>b|ZNg%>?#3s}Y%S=c+us@+^}M zADSnyRf%z~yx+|`gnao!laStj64dl&NS^DGW->-oWivgb#tMuzu9tL~%h$h}WU31r zla}%*y=>e{j^=Ef_L8)Ka`k;5jY%_zB|rKqUq7yo$g63H_=aOEpUbRi2Um%Up(_y% z^li3GU%eUW;LzZ|gcqeZ2IN(JjR>zVu1jk7AS2s(n>gc=!c*RYy{>yt1oIZG6-KN1 zxY$vMSx}tZ4a{)ITFsV=5{)kOn%D^zt9--LG0z0CVo{Pg6}yZqei1JW-6G_NMy#j z6^t5*u=VAW*9Lc?Y+1}q8ihi(*!p~aF#t7GE9;)4W3?DKs8sJ=##N%msNQgdDbQ7^ zyaK6AzOv^%t?YS!E%I?Zt@AX7NIKRR(1yGNhNoH^^5*naM!bAw#M_T{|1^)Pm#qRHtdlmOFlZIT&5WQ$4W z$OGhdwZ#6C*s=Vt`uk*^9eg@NESaYPj9*X^<4~3;jApEX9ynyA2_@sP#@uGCv4qWq zO>dffag%6bf6}MC{x9%FK7DvveDMPj16p+*{TAqUQob1RP%K}JS9*!d7jAsCKyyEGNA)Y4Dh*_etsvj z9|`{>;WAPFo5b_yJJ|A0st<4hAOo+zdJi&!&w9Op?%%k&f3o1EjXbaYxRoz} zHCa-(5^_?Cnn#2cky=*Zi>>_2w?l+)P=GAEqBkhAK`=F#g-{EZ4`Et>T|P46-zlSA z4+`jA-;|}-?`lv!N3n4DyN+%2D~d^m>|->@oFhm9VWsJ)QA?Hu8>Aj)P1OZiRpGxU%t55^l_8Au%7F~Z->D%9ryGX--A7}QYJDSiD4aZ=azrkO5&upZ1p^jiX*Z6dw>Ij*| zImk&y>%T?MUdG+0M(h8v%w9f3D9zD&k&#CqEP+s`*S<15cO^N+XRUd@=Zx}hn zY2S+Z&Dz(En4$h#z`%I=?Rx}fu=L+Y519N3XsLbAAXeX@eZ$`mw{Ipn#c5wXi$zu$ zR{q5P7;fKh7|Tw-efbc}(!M;ieK((^eQ&}4-=TdKd&BK}h@9fIZ_ho=+E+%*Q2(uE zs674lRo)%dzGVwc{sgqtf5+kI@6f)7_k`Q`Bss-tpRIZOYKR$X-`@MrqVTPWzmYJcd7iPs~vJ5>)%t#+CAa-zKAb^}$TbikATp z_ZGW+@Txt7pzNsF7{S{62P6VI;G70X^$%#z33Z+vd?=GGi!@_Dtk0Kex=Q!qofaM& z95trlaYLq_VJz|IGdg_4nFdBMDS;WUSwem%RYHEclwkZ+W$1p=pWh`ax;-4-X-3ab z(I=VFtNi&4&+V$u6iAusirjulwNpe(@M3R`J_p@km z%lhGT$D>Q4^_kn0_n)3b-UG=M@-%Zao<<3fqWm5aalqK%lpPTcS}&31f|WH zE@*k)IOh&QrwclL&MktL=Z$lQ2-+!V=bRe^EzcY0^bvHXpfl&lmy8F?^Ts(B2%1@G zuYp-}_~LQeV0qr?cvK8%xy+0JmiC6%1I!QWF8J%cNV)ocs5Tn$nL~^Cgp6hk#LI}u zW}KsNr*Rv@hG>fLVlXtTQg(t?NM*cUcE=ipghDdkWq!rSprR(a;=>LT8xQT0Ec~iN6Rb8~poKm0AYk6jQ z9JZ47V)v7o<;wX=GyVe*(u{mwMcW3IUCc%u;*sEX%fwP$2TRTL{PK&a_P;0d%ZK0A z{N7+ZiHH_@kGlUPGkph?F@1cEL)5G*YOCoH;|R@_{L7ngK-FniKDM_X;aMj_7X8e`s(7jXEJ{0YcAF8d*mL~hra`~ z)IO2p@6f(a-we0U5x;%o?rPS)4@Dl86`S?X9BE%f9=}lBx?Mi`fiU7|5zVR~Smuo; zPYbK=x?45#ARyGth%lm$b{mzHs99BId9`NMF(Qm$!V7S{t~b|vVR{s zx+!qYJdadGP9+sN3Js~z7K&rz_pG^MNBL43`vMs8Gdv1u3HjM%@+tm`O&@ zR3Vd9W-8=M5q{EsI$c4zMBq(Oa-s4$QTrauD-IYL2wyy=nH{CxBj>^7dw=M6!y@-6 zFO)Z*elVVVLsbe}#w)a0Y#B)Y$nZW0dWPB}A$VEJ=?G;v_#H7#1y37;#@AHU`aNEY z{xk2dLji8*K%E}n;?espx=PXexY7w%yr;l5DehQ$3qM2E-$GUMD@?|Xf`N9c%fqz$ zC3;3^*IB%PLrSxskWSA2#Uou=bJ9iTCoR#BV&67qZV%C~j=Y6_zt$YdCrXsx<}0(b z+N?FUQZej-r#-(DwusmpekZI{m-G}MBxtevvTY0PJ57E0+ii-5Vo!OI9*Ltb)8Nn; zefd)nGp$el1M{DL`_6_kmiB!r0#TP_KS}$#Q&znGJI(g3+Zt})ZiF#T`?BDonD+gH zn4$J{RP8%Meffm$Mm>4C&TQroK&TsI^kqIJelPlR>+8C`4aOlV5l>$ZqeIpFWr@)T zNebypc3f7V)3jSy-34A=Ov|mSLyXGI20?A>l7x*P>N5jw(rZyAkK zsfrkM+0gt$mW#yullt>q?9Uc= z?+!Tb;9l{D!@ET0v;Misf^Dm@?)$V8b_7!nCOs<7?O^z-a?strsBRE>z2tUrOMq+< z)k)K>p6iQW5XZNNjxkhllyZ@54&^m0GJV&_!65kTbVV2UF~N*A;;UY zu)9OzM`3mGPT#9GwU}lbE2f0K)BhnmHxsr<>fW310cYD`E4mmzrw7&7S+O&xnSM^Y zNaU*XW@JeU7SAkrWdB~izl?avnSO^?JSU18H+)6KaQVdj{Af}44Nd2%{;qCFC<^(X zpTPh8FT~AL4(R)o1G-jZPt%1p^+W1<_VjEXI-x-hNvsLdUqek#bg@#)_IY*W}fB#3GbK3G67fHv94|k~Z zjcMpHI{k`oO!<)%Q_K|OB}Icu5s98-MnCbj)UW>!iDGmIrFKmM23X^Egp%&wHcie7 zyr_2{-%#^~utWIlNh*2pUnKtszMuk6NZJ{sm0pdEUosvumD$f=8eV#`@N9DzjaqQ9 zWqIB)OXOKr4H0=p%zsWk-mP%&FV*P$7HnILe+ILr56a}=jb%)_MzmNn8DAP-#v|u( z{QbL2tDdGM$ob7YTjgABTG!I+QF0E}Jv&Oy1v4>9&IL0(O3r1|I#h55&3@Ue@VVMva5u; z$bWyDmUEHs$rGB%_tQ$vh2{H0Vth~X{WAT8C_c3&zI^*pEP>ugx2ab}zH7}C3nWFX ze2*qN(r70Enf{0O zNzI;w<*4kVue_#6I z_-dNsRa1{bRgBahFzW9YmtiONt)A9AiD1frCc^eJj~KP(s07p)jDw7z(@>%FG7P=}mLapjL%=DR?^ z*lQ}rmQ_^Dtf&;n|Llf>jO!?-K#tmB(4Uz!L5fxD13CYL^9hTDtK_7zBxjKjI;q^n zoIpq^(TfBxvjXXv3j%+4k~3d`+HK6BlFT9;RKD1sDYvk(TDaLaeTPm-!onynq>m*56oq)H-2}nn(Oy)(PUCBIX1q)2*p@3Jt?6h1sLSn&FqBm4cjO zHCGBN=}*xN@-0d(|7bsre0=-W#F#IU$||7fxzK4wQ}128p6$3!>%=r8>So3>%J|Wkx<%<_a+D#k`v9fFv-+a5OB!`ELZf zD10#V6(#=Rb-;|<&7}M3af*FK2J$;e7n%QKv}4+S4#_x&;OE%DO?dqvT5V(_j&))l z+}!P-Pdd#Hdy1LtS<)jjyTDo9(pX`;#R&~ARRi@1sk=Dd(w zTAE88V|Zx|ePffYEGh1CnaR~D?@N(qvsRJ%$L<$~H;$A`(#zN}Ti!U@a~oMlOlZR= zQfgh&I6%nuVp*>Ak}haabd+UFv`f-7F;*jvks3z)l4AEAZm(B;B6hSnWG8kemi-Z{ z>LFtz^}^2Nuvk@x64SIZJz)Hi9uM0OWIkq{hU6a-4PF6jm$mLdZVhYMH$qxg z>@ntgZ2$wKXj!LTubGzwxP0!6Ok*G^)rA1X+~>?`BvChY-i#8-g%@XpzeN?L>p>^V zP&2gdUNO`R?S4?-6Cie)Mspn}cACE;LwQyATh?(WgoE4DqiSB3qwF-M0u~oSZKx@# zb6+7gnqdqE|i6Mdzi)=Id(4#xnJF^Cua3TFx7FBs4R}%>*Z~iTjcfI z9lO_R`5Dx*eDs`4jQW54C#Q1l{v06>nP@Cl8{>I84OU2x($8x|G5GucjkL|?XN%1Q z2hglUd5|c^-Js;!7&U@$#SB75dpKpp7X`%CGncm7j1Oohw$&`tFjK>*gEBvX@RRZ@DaspRAPQYDls3&n=9VeQ}spLIM zL98TP%#Ht%ovZyy19`6Ea$`R?cM*iN_fdPua-Mme@F{n9fo~@7a={(D8;6W_OdPy& zNVKM&_A-jx^+#kMjecB>u$_OwtIKZ}1O=t#2ZCt*@ZZZXHNbIJMAS8AZo0{Kd zr95MtnCzX!zQl~U+!CPpVi`M(r%-9$`eFtP&*i3NPqR&Xec_wx#AZyRm}M>Z3!s}; ziLA?!+y?ja5O(G5im*Qi)a)|pS{U*9PL+MszEG&?Ct}fb)h*ZbvHE1IiRatudnQC@ zA2W#r?87;{G+ikL2sAR|BB)9gjMs*PRNfmLvBj$;sKmhG?L}l6eJ{Frr?TD~m!d^Y zzK9)vGsn?KCmVl18XG(Qjs(-f`1{wA?_vBs{(BULml`wvc6%HdwCs!ge`PQANSmzV zubWD=X#arBryhS7j)@(Amkc}E_`42nYH9p!Am#r*?G5zca^Q51kor{OykxX*T|56PdxaH))%VzwONgdi+f#igBEdKlS)Kfp$j5 z-z3IX#^3u;0Fm*xYP1MucrkVHP$5PCKmC?6eo7hCQ;ompkv2U3iW3AUyB)5YO`KEV zjzE`e0Q6f|*|#dEqjOFcwoU%gSph>NM`sQ(Ukz>vjcV0ukh$E|Y8sBS6F3oU=tYf}0O)c3 zptLzlnHOlhE8&&UqdDJK<=mh5oT|&4Qkq$k=TU~B;D}7K9QQ?>B!V{LlE~sB!8pR$ z#3}3Gh^(dsN}sD|?)OPnrRtNxk988 zOML&BY+0f9;arP5+vpD$h_8r0xv8V7KkKfp(ns=vXvga79ILPP_xW4DKF`n(?hjo4 z>6G!Y=h;w`CoOULJ>+-PeXb0!H^4s7bZ;o$`%OC{l!_iNI3|$8sIs=V@eheU)dN%YQ#pouKSz zxNaP0rWwoj8{3$|N(cXt8Zv&rFGj(K;8bNnXetez2dX}1cX$`6Y!lr-s6Lj!B7>sB z{LH>VPoek=EP`b6Va(I{?r*fs@RXO!9T_Ui(D`yE9i`#PqN8S7JCapzn9^*X2+e+1 zeP2dGv41j*zT0))QCD?CtLk|f2}95OnAiaoFiGuG_mXfI8yMzE61a@Vq11!zfB4~}Hlk`)x0b_G_wme(gH64r%gp}BX{9INdx!}&QKX79@B>Q2lV?b)r-@&OIJ&p#~Yc0%9o z!F4^abJclT8RNfJ6z9@>hxa995r+ZhwF$*_BQyDLI&{8_;u~yT&DwY_4qU0~Tm@xq zwe;I@KH!rOs_NN<dyE`G*@w0}Uu6!pW*Ska2V_QSQXri4{^<{g9cUo)Oz35&z zrRvMJ4)0=KtG;ZF~O{DMR2HU7fj_vtrj_&+7yI~Bf!#QcCWEsb z-f?8sVCz}nugs9U+iDI&goa!$pFm8D6Ua?&)0szG0!Ilk`}+l`q4@ZzP%b|pmuJhs zHrghQFUR^^l4x4lWK(ZR^)W7j{X+FDyz~hVFf7*HeGcy(CSxUL2xlcI&U#<23F$8K z0$*LB`Knt{-B6RS0%5*#c+Y1I1#i8nd25$^UZ`pJlCYee9jf0wl-X!=S9r?8vKDw0 zoY@|A{b@bD?}9(yDx}GL zeUfA3HXPGC|BH9WqMHeotUq=1Sf||8e=PjysOiA}%83V#`p?ZKM;$Q!Fj#K?dWj9> z^Bjv_hBt~PFhJ}^DiVw#$8~T09lYF{STlw$klWC!q)H8;Yeo>}z>7rD_~PzpERn4q zO16^BTv!@7yiZRA*tU-6^FQoHXyelhx9l6-cBn*^dtA}kwJ}lR}-Io@N+Fp-7JwKWBnJph#ti7 z56NJD(p&E0NszC|(8rYzAeupp0-K8G$kOe z>S^f-ffTYs?^b=;mHU0*nyN2HJG`saLkCAqHGS2Pmr#LPu?H^T#pSOg-`z%^P<4JO zJu8J#p|g8$ZAeTr%T^73SsFYfEzpZXOn%R6uy@UGNX$gYO)cW`PgAC(s|S%!0+(-2 zODlj9GVbm!tl27G-I3eu=@_H_s3yT>l-Xdrt^hJ{rI>B$&kCqxbb+m6x6$3E+u1Mjd}?04+|BznjBSRNbSb$6dK!l`sZaZ za9{WWBP2AvYN$UWLn?u8ai2#E0=+4INrRoCEF9oDAOT%0{h#-|Q<4|>rX)nEJ+JB( z#%%_3rSH~%t{dNjx;#Hdm6>Vj$9&NABb_x`b=E9OH{Y2L(Rt&-?~~MfN%;K^^`0Ak zpP}Bf!tZYN?lj-kRb9dWSDW=wqvg+p85k>JAJpy6c zJ}AkCd|}%4_P}=87fKsPVh60dW-SrXm&Cv^>KA!(_h14#yM2Zy2Y|9BL(=g79^T19J`9I~{@_!` z*!O`u3EBRsP)sYn!9GN=b;S#$<9QYgJvNJ;hQ~V4UU$+C~4;E>RTHzxfID zFYgD#@ANP4@9<6_oy*H>yqN6;MgM|&E*zi!<^2iX!^FSkGevx*uAh~TMpx&ld(uQM z-^y!fZFVlF@^*{1G(OjwQdJsSn`C~Hq~Sd6W}fJOuz4?9Iy76Q3M>F`EEf5!D@nt! zQ3SQq9FMGJ8RU3mUGnP=uhh|1{f)!1@VD|*^Rc=?nVqILn8V0G>3iK(z4x%I-|Jk# z=I|Dx#T=_gw$G~Vgqi3jwBQ?#h4ZA{tKFTla%=mr%(}_0uw^mWRth^T2Aim`{bI05 z3VTTmwza}`h{3i|*e^tuEOlUkNzL}gVB0F}zhkiN6!sr6*c65Rbquz>!un#c9Tc`Q z2Ais|V`8w5fQ$N<5=xt0N4rE zeWjW<$jRm_m?}_YKU5Fa;d^ps%x2Su7&G!4c7C2UOmtEa}_i{$e>FiitUo;`H zsyLxOxCdeMqOC-=cghG3XLF%bM&MP(g`(=?N%wt3R`!BA*Ot7h<82)atH_+U7kNu^ zEcBXhzgBOHcJfwj+)6=1Tdm!bSXg%xiC9Q1%p-s|5`9Uc@#fpF2i6rQ|52e9{R$N2 zB<8K%n^;g+qLbOc@}`qH&9`3{`nDC;jZ7frS4oaV6U~%Kd28P%WvG_#Gg3ur`K9^x z>%6)GJISc{qAOHpwYCgM$^Gk+$--}FazWh^Tc%8#hPKYb`XKm4FOhtx?|u9eimIvq zgKrS8>fY9)9X0<}Pi;JonzfRab|*&~Ewzs{S_^qMNu^1$m4LN-+T|_SD&hp4-K@xYio&t8y}06^UD8m1N}GNeWh-MQcAgi}Hs0 zwozPdUV>~W*$UgfRZz=xY;E9u8HbsfVGIyK32asG9m4PH)O)+|``^`j`|$g3)q8UI z{bAk2IMjiuoYk4HLtPImZqfdheh1x zg4P&d&WQsfh$pPRB_Qic5tl9MPR(i~EATVQ6Mo(jxQ4K5T_paF8d7y(zF# z$J!KdNUUS`=lRynz78@K``&P^{W#P!tT&5%O~t-f=Hx;-pt_{ApcX&ULf`SgYS>34 zqIZ4up8E-{O)v+^$H1?l|7~Uu1RmraU#sLjbZo0YSKjE@tbq8O2p4S${6jsBbOO@uL*B%3XIjbO@Rw|BI&h(cc{N4-4wV76nhSL{nW|l2b1mq$bEa)Y##*s)%71B zXzm;|Z+d=)_Lv_uU`ljr4hid$oGJ!44qEQd6kFFQT*6%b&b{l%Ks0dYYaiijAk(pX zvf{a>hoF5)mw;nU;qqN`F;5O}wRD$QSUYr-kjA7`fc)GOxyvT(U(S*^Y3E`h_>i}Cx8=>3^ufctbx+z1z!FQiD(ra`i1AbkT0@xUm!y2nOtQ+1TP3Bq`u)fK;b*j; zDl{fNOo;s4TVwrKq?6>^PH41ge)X-``{K8 zE9p8ARr~FpvxtC6k|Qn{b^S?~NIaQkHHnS)W6u+E36r|BvPx=T_@Ol!P=@>WO>3H+ zzc;;0s8IF6aj|wvWgB{mOkDofV#<^?(_`xO7Hmlau^oR?TsJszXuq|NMNfk-uIt2% zssFo$T+}0yUhLZ;pIb8h!7!n~mc@0qCk^elv*IG+4KE-b%k0>A>dxl6{=Fo)SvHx85gotn)Y^GAxHH* zGA+iA-@ppou{xQ#1m9wy#&vgX$*nrUAn-5|s*Ydb@cPulD2KO{;Hu;EJdddL?SkWS zZe-3vHRk(7fy6#`6b6WU!21pP%fg#;n5I*;P6AdmUb96V zZ!6Q>*SP#6m_+WV>{&HGA;CGP8&~1ln^J|(`4$m4_9r^Biy@`T{=`RActl!JoyS>J zcQ5Ptw~Y*zy3+qbbTR9zGKSy`hUecpcR#*!;;23<^vG%LbS&yXZ6s&u6v@AJ5abbp zUH#Czlwl}GG%3Sh=ydganQss}X)H}B%yv|-=cy{^oa-Dl&+z1`8^9z=rJJ2Yf$nR0 zb1eK)N}GQUt+|XCcKHMi{T?n)+GCbQd$4f8BIXUCMqAVthI8&%J3G>htz01Rrj;S&S&Olm-^>M*FTT31wxbPTueyzp}tRYdOEx=G;9vN*^9_bG>!KC)JD=w z%2f4(d!bE)Z38!}5E?0~js8E((=uTZoSHJCkj}#HqtcWdoNAV1Jh&?(JkOc8Z0i*o!&`n`|$CnEr>(xj?5;C5%W@`)KC+GOxBzr>37o^f7i6r%Ur#JuARKA(<=vi^<3oDaWEK z!9~Psl%wWCg@}mNqN^UxCNvy<*8zoj}n_{(9iB(?& zAF+D1@`|eYb{O$exW(S&h~k@;`B0``B2sVAy&|tlq$&}qP3~+LSL#>%-W(GR(%wcu)1xb-& zs|W`YC`$rosjfgw_*zm&=`n_24EW=j5y+3nAL+-a(bOdiUaptc-eKw!7s}6F8Sow5`O0z< zs?EciW%=v=8RD_y>}Q7ncLDi-Yg8X;=N^%C*q;Am^IWvCJ1R~OaG zCm^_`-W+nqOPTn=$@t``8Nr+E%JbbjK8(09Q3C7w@92*{Llsh%WiH@J6-vnB(Wd6A zqI4aL-j--GXu#-Jy}J&4ald-0qtkOhjq-9lPQ3^IM4*xjXu_x`wP9yaS({PlhbwPT z0(7OymmOg06q28FLh>WoG9HNlN%DRTv)hr#=ANwb#l6dQwJ@&ATJB}+x6ZLhzPZS# zgNE2z*rn{gOR&}g~nS9vNJ&+bvfGv7Jv zNj8{CCHyQ75nNz1dR+;X5^$Ojv_I)e$-1tRX->U+Aj!3t!+OsJ5&Mb1ONK~P3bg6H zE7Yxkw~XQ&sVjiS?HNhTIjhHCKq}NZ)&~Uj4#{uFz8$7@+W5S@lv#pRX2Ms2s2hletnI>&NIm$$BS*o3-GhzlJNR8H@as=)z>#a#fgw(HXgFabuq9kq`c8zTNE>FkkDgMM#PF{}Rx*1b@@oB5x7 zK-lT{pL`{4UsOkI<$of_@09;ZEA_z6_(w#*>a+72VN2P`!>>$Kq>pW%89k^n8|2#k zM9{JRC&DJmX~Re`+vo76(YUxC8^>j0Yx0ZQkA9M()qeD&>Vd7jO2*Uhesl+3@*?}m z!jFueon=tTbtUXJ_OM>jqe*V{{EU$n_F$=K+_h8D8=EG@s_o>_86)`ulip8OUwU^5 zj~H#>C7H?JDl=@%4l(7-wUomShPkOMEayAq`00AtRNksKmAUM=GQs%rOb^)=SFb7yV29BDvKj2zOZ7&oO=Gbj$zbMED;lOb z3ql1iVHz#PPzn>L`G|%4GA8g!uGHSP@*fyYO4EU$ZU{RguU0UCM>`M%iqw3(3f@5# zxh4J~UoX}^~%KEcB(BR8;EWtEG1z+dN(T2;(s z;)$pC-`l{TY^{iwP6^Mb7+E3oH1oqxryQJO^bfs{{*S=xifZTlCB6)jVqG0S*+yKY8+{l?x~ z*=Xo&3wzMKU2#aao9{VmGfQ9{5kvi{1_hUYY{=J*`FJS5pA$_+f8SLURkO?Vb<@LZ zuEQ%U4g5jPd%Zf-TO#pgq=`tpe0()mT;3M4hoxNJc$W`mxo1W6i|Gd`>SpM9ro&ru zs0Qbfn{s$_i;N%j{J`{fJHI$V@~PS7Sjy)n$hSy=|}Asa>)4eHchT) zWBoz`e*zQczv@uDhrveNDe$IPM^{5sFYSjg-9J(+#i-O(jY>nzbjlUrR+2Jca>tN( zZpo-Lk5TDE1dLHBB%{Ajy?nvSD{3Kb`q0ly3B8kVANba1z;;nU-$S~eoUrRE^qzidh-dgW5Z(tz8`L4CGmji&xTkBEe zPW(bTNh$2{p+a0!16(qtcCBvR5wgP!j25vu#bv@!HHm2#E}8)z8EZy3}9c4!Q#jOc1;Wx zM+UHB{j=taBLi5apDm@~$N+YBOk5UDV8_K^aby5HI0lO&16c9Zv6hA-16Z;DS+O`W zfK86U;>ZB@Q}$e|^-9*K z9gz*lDIvF?UB$kD>GtzBDpK7q$^7p`Hxe-aQ#B2{{ai&-ORjCrTygORAJ6f}4&HPz zxfE4o__$y#tdGQA7Ia^rPGT^5@5Bw_<~+rJme_o-&v=el_y1~+&SeiF=$depdv@5o z;F>gd7uw`WY3i)TKlT^c7QpWDiI^2Uhx9r5(DyK6?{g+EbzWn#Y)srCPSkQT0gJ_r zp?a9-5&9POd&hm9@fYeIdmaH_QZc@-PhiW|?pS@jzt1xR`t?~*?6aISSQ9#tfdBCk z>wTMQ=MI~3(0#MiphSi?v3K+lbSS-NSHvK4KI`D*CW%X}n1*AdXC03B(&95}%qlmacR4`@*rbK6#x-88uV*ax|;5 zDm8w{kr_JbA{UN5iY;XNx5wq{?eg77;T8J(b1vT;ZI|}VPIfi2#!?@(V_@ccm4D!c zhB>^yQV)F7^r!OB?@j#UdC+^B+z@~ni_dPo;qrZEeAdO}S6DOHdB5992ExehNorR} ztx8MK;QqpN-}Ps`sbBnOShZ;DY1{P9p2E@0eC+A5|&XyAHqD}5{)8>3c z8RcBQZEE9qK)N_&FL*^hORejAPpGbG(mMama=s_Kz&B0R^~$KaVh!W=aP}^Ix3eOX z{bKnprr5nh^>z8igsL}+>WTQo>|}Q!Yr)`jWp`v$^bNqZeLyzZGJhP9Y(m=0zB&$3 zL*b)M>;?Mo3h|Lht`Dixv91AEBZmTFT{V5_T3z6-*DQeat*id*HWVJm)JMx z2h$#6UX{$Jj9{#rRcm3dH-epiUZGpN-d!5MwT0N{q`7>S+iY&3Zf;@Lf+4E8Xa_cO zXs-GF^O$o{p7Sj1W9pSqJLDvG`VT~(GUpQ3PBCjEto^cbu;m`wM#JNTwe!<`FD>{m z$T*=n#`GhAyWhJj%-xmQnq#_IImY3g&y>i*HR==6@Jo@HVof>rg&8Fd$5$x%;d@ye^BGm(qFY6pQDp_|a}fsZa^ zI0@U|n&l_@?$&c@yHbOVf$Pu5Dj$gt3w&iXGQf*@*w-*B@Jq6b4ZjTC6AGUf9WDZ6 z{DC|}`R}4LE$LPG983BCiVnvTcy#XV(%75TxxfiDe3Scbp}5=S+t}1T)NT;%t>c;y zmVUrpK(@*4rqq-qyN9de`T7XJdi+I9eiLn!FWQLnW)^`%afby?_tz#jzASn4RXYS2 za1(#Gnk>TiWudR+a!m63EF9qSg@sV%5}~ge-yPn2Ro4wuBJY;8dc5uTsp38NIH42l zq})=((rhoLaCf5O8eDT+F8@7hl*EzcT$gz(0rnTZ(PeU*Wt`psY1yr5P4$XDsd>}kNPU&&dED}T#{76^`l7HQci)Sdk4;j%5*^c+ ztK1Ait%%e|kBu0^`KZ?smFY`vng|Dl@J^DnCI$eaIYp_468d^2G2iE zSLKR^xs8*E9H{k4K-+klT~e=XObUhV=QXblt=XN2!7%|7eyG|A%>@#?*`W)~+k#cHTLufl@n zD@h+^^J(Ub_k}x-`@*;81xRyxDJ>z2BGq(6jGU2~;v@rE-%vH`s z8j&mSWK*Tyt?MBR{e}7;3j>^5zwJn~P=3=C)q)uQyc$(>Qp*2AlEqN|RQl}`dOV8m zr_^uO*=Mlxg=SS{qk4$2si<#L`^(m)g;m|x3WFVTP+VxD`2J+Gqb^Xh#QmbfhbeW! z7eGywBI6%3Q72hxKKUW_ZQ9!cy}4CNNdBxvB|JzH-e4EG$V&sgdc zRtv+;`Uu%?k1+gmbl^$Jeu*TDA^UY9hCkoR@VGnX>UPW)wQkj$r_Jv&-_r`>Hp!5&ntMZx^IQh;@?r z+fky02^E;2%8k))BM|MA66#q=7DK30>9^F>7&@I&zgg&$XV$YN`sAJteeOlEhnVRk z^x4tQLZ3}{#G}vEsEm`+=NFRf4C(U;zL`;cbV~X}{6mCN*eGg$A#@O{3?JCW=KKZL z38S@=A?#Z(x$o=!aqnHS#~d6w;S0|Xng*EbxuWV52{>D)xhMTgP4s-Y{IS!K=jf5R z-1w(-8=QHamjG= z3lrW^^Z9j6TY#rm|AEP>0%u(R&+;6%Q~xhSPks0LmmoE#uD^0G68Z~&Y5Fg06R!X4 z82bM(hW(CC+b!cybNa`te?#jQ z>z~t7{fqoL?-MFGqo2-n<&nC>lC%8zEc04aIe(=Jzf8;mioi#S_O`9c)w5- z#|iQqJtU`&Ridkwv*Jz~8JWfMrbbr`yv6=9W}Rt;SylT^Fgx+(r~3=}pkv4UEMI=6 zyQj=dUV;F{xKVPeT(I++AE{j3mFhA(HB;&)z2wVxk`=em>~p6cEj*8{&c`WJtgiTW z%FRvF)9^$P3&zLp$@*@ULq-piH{91qx^d#^sSfu0#<39o*nIy8<+1(^V~s^@`ufZ5Nh7e6+0aI{G#gkrE?03 zeXqKcgNQ(A?Hem_Z4tCJsjR7nY@_S@T^t&;Kw3+ z2)0^|3X1E-Aa+a|6Pi}kvSTub-DckF1}EftG1{h(Hn+BdNcSh?Rt39yGMcco~R95~qMo=Y*a?5?^z3}vrF zMv@izjy3(w<$GB?Ht_SXbF!Hnsa&38b#6kS6?6jcSUrqngX~<0eSY9tg{z{CG_Ia1 zBzreGyllP%tB$wh+zlD1w2e4GX}cXQCH*iv_Ys{R_#%Rr;}EpPci7?G3l^HKzAM2K zpw3sak5hLy_06*f?jwjQ23`P~{jTh3?zX+_tL{&?u}2eoKFu1QaEfsI$-<8gN^ivm z(aG{pJXw0`mmDWt*;@xC$bJZLY`>Ok#cv-qH zcRctFEW$-#ZfAet7B}{PZHMJ1iTR)6EO}pR93?#l=MBGbcz+1Ts|&?$+CIfH&whYghj=W}G|c<@&$K`wXo@KDUArCeu!Wf6Cs75Ltl9l@Hvs{z10MZGtO zR(?29i0-~+C>n+6p4Uacp|U)e2R2BirhVOvFIn7S#=lf)AaT@En{}Zgb{k#IB0R5X z`pZNjvJa*Fyimfy0CqEreO~Qv`e#t^F3kJX`a)Hr`qEqk2mCbwOlcj>Qw zP4q+43X}ik2DHV0MI3~NZN=HNW(9A`io9O^AE=Z9L;3>N`Vsz3fI(S!E_EKADx*r~ z2mEd1rjGZyxr3e=`7$?mYzD65){YM2R2;qm{7C(Jyki|T7m=en)+y5j=GnY(>Pa@3 z(7-{%Q1zygutDH+YJ=XO{qD_y{puyxvcD1R)}z!J_1-n=UHaYJ6NbOK$r@BqQv5fS z<1f?0&y54{Keux^UFwb!V<)eC^lWy%c;Ki_q=sA7V1V*x-$uT9$we)n7+EqakkhH~ zaFX!={mWSAG$(+2bl2g^!k~!*zyTvc#!x9mbu4!*=sm_N>Vp2;kj&tSX=_ht@6p7| zZrg5&AmrJ>gADh02hl973nPvWI1d&41}8}T=6+|AaUAkVc^#!0a%q$g7w<%~1)THN zR|op=onz>J&A1bqFDOeF6E$qi#5UXE^-|7IzXvfm>MmCNSmghan!~7l`+mmfb}3`8 z%bymxNAMDLB+cBnM{l!l|LlN%eI8Kz_Cx)B$;*B{BJK)K zbZTmhrWd2B;qG4K$HtDg*||+l=932umr}Rl7NL9xP@AS-!3QDd05$;LqlqR91pY`r zgyl!=rxnnhy0Oylp$4y)ZkBx;aPlm_du-)pliXvc&zxO$r>$b@MIjgK}qHX*HFn5&CoG{IjY?d|MEL)kUysRP;Ty6<1H_zGJ71pD}SPfm7X6XU@?1#SNM;eWF-c+cx!bmXp=;`Iu?9Xbu9P@Nu@fL0IA`G znKRrK$aY!9*r_un%{2R@Y{vLI%FD)%ub8fT&w`jZ-aTH&nqF2hxopOSyT?|#XNJ^D zSu|4BN#wv(8R~|23rAS7o>{Y~go;sVL)S!JDm^H&%1YaG{u@8J%r>QL{6zSA#`qa% zoe4I@W@D#L1VId2NVinl+-1|ra=hD90a`QoR31%suC&dpm7%uC#e(Oq(%t&I}vjZcnAHV&)w)MeouBHVgSGXHIg@8DCL`WK~p(ZsQkjetB3p z$5+q`W#tihlz0|>angv*^F#5|q=+<2ZgKOA8?kwQvqJR?D})yEiyN_de!5t#LE^MC zI)bYGN$I9@G9$*xFI=yvh${M?d{<%K@R0)w^G1%%%O7GJQ8@gT!r|(%TP0mNeL7>4 z4Q{Pu$ecOL?Nndnl0KeMHbK8#=j>M5&Q>U&>T(j(jf!>7m^tGLHO%s2%PT1wn_pa1 zc;m>i`NM9!u`qw6t#_}iUe`o;!6Jc?`dg5Sh$5R7oEb3&8K(99W*I{bK@#RzR zVO9~Yo>h1w^|NBbQ74v78t*BOrv;=*@j}i19XNh!dD%p#dnUA=G0{0PzrA^HGo9r#XH1rG-Oo;u_*N=a`40+2-k%)n~4)+tgm_pSl;?cIaO(O0G**2ZQ6D zIrkD0wL*LRseGyISaUzKCC z$<=ea^UTmaYfX6U{)F>eUEhhF_5>0x;tT2Jy8NY1}q0oVYyN(;lRg$E*5n4z%{^kfSIgOjsceeJEhocD}kB7bXIZ&z)WB% z&;=|9P61W{Yk^Az&q8#S;DH+ikNvb$d-4Nj0#^cafMQoI0d53N1RB7(5{^B3so;St zfnuM2PQrm(fX9IQfXUe1j{(zx?K@B}pc9x4>;rTGU4q9*?iD<6nc#s>084@Oz$w7( zz`4La*b)qO8@<3xOb7MADQvTT4cy7zc$S0oIE8EgW@9Shz7|_1u2_cThg;%A@H;P} z{lHRZFgS(qHNYjn^ouck0BeDJfTdl@4})6fCD2b`2K4}@cO&1kXy2v5;7H&x;8NhS z%Ywnpz?GT7;1OVH_h7K+*~IHXxxh8R<-jSIlMgVR!)on2K}TQ#u=a{za6T}*S1|ZA z@EGtQaOIW3U`A)saprq8FugbB0oMRG1D9Pzea@lXSJPj>HNg46$^rT)NU zz@@P^e#S51I#WW9Jp*S;qqQgx-P(*pgXX3 z1o1DR-)^S9z+<;jK5*qI`Wcw{BkFM>@DAz+oI3%&0G3Xqy})B-@byK|V-kD~bOFWx zW(shMz{#{5ICl#52G&ju2D>Gdw?T>8-Gi`0q6b>Itg5bKIlO?tDz%sF0cx?2Dl8k?4Ps;n7IbM2TXpE z_?MF}un%zOTG|CnUq`;cOyDYDHgE&5c0K$H+_?cd^(5by;18g&m3YAPZNvjk0qzt$ zF!>7d-%h^)=K@CpcLJvX*SrD!Bzy<_*o$)B3g<%Yak%&>rA1;Mc&Ndx_T@{QJ-uSo#5U1ug?_1nvax1E%kzepgXXU>0!MhtLU&?_;Z0XfVKgt zX?6Aisp*Sb<)u0oCg!DPRwoTf&9zT!mzoJCFEyPQ15%R*rr3&!E?!e#lU5F`O4^4c z?SrifQ=N5*15z^=Cl#b-Eo_~anqA#yQ0j_=R$nKyOU=$p%_83csZQdWx#bH9Rr|?r zIW~QHm!IIg;Ff_4wO??{z%7l5_XM~l;5te|enRhho!@jp6r`5i-7Ym*3X?qEA?z^m zLwzjq<;3dO;QkaRetSA<$+gk|RM_49vT%Bh)ozTcezs@JDgFN$-`pG%q zx!}qKQII+=RF1@#yFNA()=t9s39bO#MsQ4N)K7477vy$ulArtpR}OBEC7y&;fjbE9 zZxV_An@|6_bpI_UYzcGjP`<*CtH3P>*NHa8<;VOmKMqZ;N@#Uue104f;zwH|_4+!} zeyL|Ca8qJ%ncybI;Bvr?i@}wE8x1a0XKCX^onO2*RuR^oZHZ8PDSs)rba0_Q5uAKn zuu}}~IdEw)xGg$AYubI_l8I;SGx-K&VocihB7iYCC%CU^Pe@;76QvKhW8mK5Ij%mr z5q(k+qfZ8;C?1$a+U1ndM$+<=wt2xVi>aS{(`YF;374P1C%`RFrI1t z)w;MKtc!=iwath(Fh$ZnLE3Sx&OB`vX${g&ObP}kXqqgxqv;pQ7*L%!DD`lHeMmc{ z{PVQ(mo#1Iq!q1$!D+g#)-;1tS0&idTv zje4sfAm~D&b#<#jsZP5qHN7A;EiW}$;>{p^exoRuJ#s z5^qSHaei=W*05$`Y5#Hb!0%e$u=y2})@`X@$L}XUMQid~L4Kd<`aLLfiMm$I6Bf%n zWTDI@s$1(ChNlh#Q|zl$4a1lsso|^0CHaV*rTDC1@Ds_CxrWY@`H9XG`K)d&6P%Y* zvkIc~k@Pl{;@70#-%@&2ry|m?kDET1^iQ1q?b0*VwN;URbSKu2y8LEyv!c{2`=ZoL z6hwGxCcGn;9c>_;UF12!V*}x_BO#uU{P#%xItPP)I9dJ=M&~c-(itE#&N=gRC8S&a zEz;GJuG6_^US2)v7JrL$$4Hl$e&*$6wMTAASAQ~k{-HTNr;sl3Jl2ILOZT(p=~hU2 zr2FT|(*3G=x}8!U_OCN7FO7-AeA1n1d1A*)JpatgtCI3ax8h{&i{bwQ;;tdxKGMCb z)172pBEq{mH5);WS(M0_YD=a3F2UgMbw17XhmwE$VnyMw24X%<{2bCAChY{BR*#Q} zYIUN$G&S8EOU*H13UT{je-u3!Bd_FYjtP?I65@>}-l_7GxX%%H#c9M9ePIxH-)WSe z=3qX0;pvs1L)?6Zwc|9BVHcQ7CJ#wPl!y4_G^f@?=;F5I_)EF z=0&G&lkh`Y8gl~Tz9;3!8&6Dr*cd&Mm~*>g(xy4FZRoVk=5~Y7<&`l5@Sqf%oA|Y) zT}s-v%+qA-*8I%asMp!7sr5R0aB9g=W;6_JG5kC@rPX?SYWBcp0Rz>5`I;-Wq`J+* z){B$s5+7{ES5$gRJy}fmyfhfxAnz_=`!q7<8pJjAX(8oT+~dS2SB-OxL1Unr3oXPkx?nzo9~>->fp9y~-Chh2+*atO@;_~Q2F+9p@S<=d0hK)T6<78=n80v7N+dBiIn{`d2Q^4&F|EC4T6@rE%3}}@XcifUXouie_cB9Usf>qWg-ySXvUin znPdqyq*Z?WwI3^A_?*9T@>|sh-6m_Jsp0&J!ZL1MOP1IlO-+s~w^Lf6jr}VLV49lO zfbnfJvi1t*w^v!vy_T9R&60jNOdaO;WxpYMeHP(EYn%3@*?$waumZK#%jrzJvV*~n z(e#PerzNQ?I@bc#MMkd^scaoaE`Wi-i)$*Vq} zvpUiSbhy@yj9u3CjlC2JvFgU66#FzaoM2#v%dou;R{idhmCM4U#ff#T9<+=6Jwg7f z3L>(rbv0U*`Nni~^+1){l~NJb+sf{mNm_%nBMXDUpG(~$>jikve!z^)qLj^Jh9TzR z$k#w@@I1>;#2^#g25{F4;>OgpiS&oW%>{oDJlU(C)N>@bW8jVph88u`F*l`dNw(h? zqbLR_8^;pTKF9u`?9;cL_JNqRrhP>AESI>xUE1Vy>?7<$?r*8w8&m7k?6<^}TbMGE zY8H?-eMm5vs(G?mdxwzr_SB7OgHpHfx0Am;{2BZmPAej;IVqH^${y>M;$ZNbmgp$+ ziFqbBg%^i~DfZh^Gg$|QF}7UN8|393%08BEU;J@E8<|(Y_tlBRQtOlLldQI*yc9{Z zm^4+x&MZwmX?m8NS(+oH*?ER(GTFEG-gIW=j3!Oi@H0!Zgf#D*L7Hsnwt+OVM?SD6 z-jx|eSq$qkDhbVP?6)r;dHQt}neRgy*Ui`-Bt1XDxxf{G6E!M7!Hou&8-tq#E++=( z1(yx(DV5TkOD_Yr58P*hi>E_w5gl?zOrwfYa*4j3v@366&se8z#_No;)vbq122e#N zSyo;*$F}q?wCC1f@PN)kkNuHxCNfqJPu-(3inHzIQhYs;ybSU>6IobBnx&Hd5tD7+o)jh!qd!a zdEC5)C>pLLukGY@CNzA9G*zQdKaJ2Z4S$iIW4;>=N0P@z@>mx=r-;n+B6F;pQmf9F z&WOW1W`C?8uj28+;1$txtVmvw{$RdyzMZ|gIC+`2`Ge$@RrdYlm5rZFC;Vg{jcy}0 z?q=)NL8(j56LlY_UW3)R;w7&spr@ zGoSpFNuft`{$5YI<)jN@@04*u(>~IV5m_6Ie?kju5VIfKcZFUH@m*s7@DzEmQ_X}s z4&`NIS;oFn@;c(@XdBP+lR0!bxWnLZQL)*Er>5PZ=g?m8>5GHGt%Bz#c9~`1_JMmq z5X|c>dq}Jwgc{7(T`489M$9G3M&cLL1%t1P{RlefF%LTEwFh*lZe5VNB*DJF`It8_ zMe5xC67~xoVg16h{A6z71lMJ0FnG6}mw4mw5Lp%ZW5(ejO0LD1ZQP^5;MJ1ZpfGPJ z`{>Qg7g?vO`J$9vOI$Z`+0Icv!7T?j%Yw@Sw+dW2xZ(s}po^Au#c#!_vt%(NGhdTi z^2|BTKGM|w?99@nXV`3yEz^BMyRGH8C}*X$9BdpSZ^fi3`FSvS8Mf(D@Xrw0E50QD z+EmGeYCrj9Jsu2RN_O%S+$wOz;PMs5p$>az>g6;zY_jNf|~+vk02(+ z;YD<7b!+A zxVTlFUD_^wkHssseRo8-?ZasMBVn;x-ym!1Rtw>I=~wZQJVu(q!gFK7?O`ssIFT*I zg-KYEXis@`%?CAK#FJe5&@K7>QQM<6t`^+LKSlagXucfW5^$J26wQmEIm8ZK*f3EM*0@;G6V-$BAwgu>`U$xrZ!Y2oZkw3?IByJYGq@!&xIN&O$KZ~DTWP_GyoulY)8M*DsY>2% zSMnz1XAri=5?|tEgWC`l|0bn$@<}CWN_Duk9p&J*Sn`p0Rp8#S;L5=*1!sV}O6HvQ zJ6jm+e-~%4FO3ZL_FQv%F(!f}C?bLh4sjlZVLcBeYL|(vRXbrogt5WNDE92J(NGXUV^r zjaueU_mTN}>fS)+o5}o@)Z|+tv?^BH7U70TMtqJvm>_>?c}X_gLVFS>j}Pn*(1v(8 zGsS=Z|1SmpOM(AV;J+03F9rTff&WtAzZCc{1-?B6R(Z^{vozF8DVxDsSbm}RV=?b- zSO;3eJL~sU6K%Uzzqi-#uBqlj2mL;4mYFlI1nRfq`HK}~>skGhHDqgE{Z{I5wY~xq z3g;-|Oo<@p66MDT9M3x0m*Xn3iHeKj1Y;Vl|Y(r~th3pIRH!^bsTtzmgN8da+^^wL4O=T|h5i~|s$pLZ2WohWhLbd${r`Hq z7Vx-^>UD6lYO4@i|?5<=x0V51J zK%f}N=kf@kK4M6KqL5;s6cA7wDB(ll`*52AK>;ctkRVzxDJi9A&iT)M%)P6~;w$&F zb?*N6%$b=pXU?3N`xww8pvORugPs6A1$r8E2J{T*(kki?x)O9PXgBCy&_U2q&?BJ7 zK#zl-06hhI8gvHq4CvBVB7e}8pld<9LHB|Vf{ub70X+tK9P|X}DbUlPGoWWcm)4L! z=t|JFpxvN*K?gxcL63kQ13eCU0`wHo_02w3tTi zmJ7m&oG*5k&^LvW@N*px%E3YEv?XO3?AzbHXJX81C4H2yZc<~T_I7dde~ zzl-ps^54}2|6CLNtAv|;ov+Xd9sF(v(eKcIQ~tMnS@fy#=M3;STKInh9|o>*?gdnF zmj88Ppo8DlAbKV6%r_Wz`27hwZ38}jzu^2X1f6ar+?1zk<$DA0F)QC8;0G+cL3onh zUPZVmXX{mTLWe$+^-kbp!1=i>y8a&ENBLn)$GMwR5e44)43WdnQPH)}D*jx-`I#uf z@28)pUgIcd3*7E1W6#VX}BW9wXe8e|8m}(813w5jDS(>bry{GK;9c zKP{nOC-E<5{wtiXAYX0Y6iidJsP^B3 zz^h*r{8LEu9^jMLOL^2DKHNn9N$^kHCIa~TBy`$G3lK(clg1&_p>fU4gtsyh{qrX9 z_unh{gSh-r;A3|Pa2@bT;Iqad(_#F$IUZnK&clBnX@Z}BUb5cI_d>Yc&xjP2-v)f@ zA;DjOOnQKK{(}Ij&l{V_zX$xYmOXqKcq>M1&377j+m}TCzaigWEB<`}pbqCeaulZg zZ5K&9^7GcjvV!q=9Q6$FPfUoM4CHSCo_VbR_W(Z)eDW0{AH$gQDDY0po*!5Ke-Z(g zNit_Sbp%sR9az+ly;$*M!v8S%zYcutV}ffr9|JyK5=LrnKF+21IH_M;*#u8D!OizN zOgURdMedIwzY2WJs_$!nw|!6;K^*g4R&JNWg7f#N=rnyHOb#L{zsznKL)(zcEQ!oUrd3J zDbFm%*(v0^hwxUMhsi6I{{whl1pK4u>TVHUk1D%@xW@}Bfv8c3xMpMzhoRtAuw|!g~H-i60#s5P19|ArCeAcp)H!}{V5IGM1X?{qM-WR~NlfWI6 z=YHVd20jV->i1@WPr$%c&r6?-c7J)aoaSBptEnH2zgGm;A^))QLx7H_?*QKaD`EUE z@E-?Wg(9`x?*l$QDEaa;eU#=qz{kph^YdARpCSBe$PAO^mrMD_;Wtzd&jFr!pKz=F zyhQmA30{UU^L=ObV;zz&bz44;1E2hs{O0%N>GU(eXKxmqh7Uf@CxavtiXB%mPWrq~ zfSX z_R|5pWrgI+?{Sf=UBIVNFV(*X{Afk^`8haKPT;cu_}zWNj{$GZ2tWPg<8I(%AC=!K z=L?L3DMY>v{!Ylb5!YscPr<+44SWkJ#I$>LRsii6FK0X?7^jsc_!|f}^RiCN%bpGX zw?n?nv>k`vQKV}h0N#lP*M4zQ@&6G4SUzwb06yL+`uQg0KLWh^cLJzCzjOuK_cem6 zoeu$Txm9o)4*0l-ar_98Q!3|Y0;+z#4Sf0z!S^AJdDq+MbGjhq)V{EUZp<3|=%s?I z{j2~!_17X`269#bclw0?S|Ls^@Coz_)x%9Hf3Gl}fSe;L$C?-4&N!Gtp6#U?QOuvVgJ*>?*yJfKh=2eb1LVz!l>>0Eyj^JM1BJPStvmL{5cfh zXTd;xfiW#=od5dfJ2F@Be!#&7COJqGw3?rvRuw zxdwQf{`UaiV*n$zL~p3xZ2e>fp`8|@E;-XM-~5} z0E?u0&hLPa-zWg8=PbWQ#=%zHXL$44;^&(&Gc_l53aQpsT@b3w6UI=``T3^}%ybbGM5a-+geAcpu zR|C)dhX|g5UA>KPQ{UEi3(ns`rqiqcM9MS%OTq6I;;aVVhJM-rz7_ZsCLHQdu2=pa z2&3Bn5b(@T1ph7M98x)N5J2OH&j4?|L-6ase?Ras*yk$XKLp-y>A9Z*%Oro*V4VDk z75^V@!hbvX$1fK}^0yQy?~eeV{)iN09Od~E@X1#Tpz-9D&q*%Nix{VN=@t18Le9&Z z@ZSRd*)d_%em&EK|8bR%IN?&r@BC9~_p#Rqpyf3Cn4 z$IU75Pmc@Z4EP^zBLBia6Zsjev*p0Ql5zY9ksk0*!_Q}M?UlgCabM|2z>ff*fW2vd z{04C6h%lZH{w2?q^0d8H0M&DeaWI9*SQGqRkkbPFUx+j_z-N)~dBB%FPx768s{nex z6QMBIh3Px85oIA4I<20^V|10M-8spD*Q~`iRH(zmwij{$E(aqC#xpg-?a=>f}Sv8x%=2Pp|ZdjkpWVbpVm+}cRFY_^^pqK#Oyv~_K%Liy0(~RG*u{7sMoTlAktK_K_@m`O|4$NYOP)wu2lBXUa*{$rBPFK z_io&gcGEjIyDojrD^>FbQ?5I7;DAfJ#FENsf6K-}ceIT-x9r^Grne%&*3G?+yJh>X zO&hnnySlsk(!1T=8#irFyTrJAM;8Q=1=TCOdvwur+|4iBxp7BNm*d{BbG2!{b=&FB z#%f^$x23UzbY>e`R#fSlEn>}1xseS~sYQ6ZONX`TW{h_B&_2DjQnq2#&*IEZmF1DD z@|ZebS7;3Hs?tv2%wWV8D?@J4qg`DEQl%PuG4>`X?ays^bqigmwx4$om&|+WySSlZ zmFj5YT##5dj!kFUS21pO{HEQ68|}hIy9&FF-fex2wWHMPm0HhmU$$pBou=)5OO$zM z=a%g~o4VYNR0nOEDmiztvGr#6qrUvpEz&O8rnIurtFNhgnQdq=Do7M12}4_x`>8_u zjn_}=Q79Wj^W1%fvPbGK<|{E1dV#``Ek4NHY(+)D#+#4y(naxY5Q8%m)U2Yc4RKoj<9oP7jDgmt*w&=% zvX4Beyt3XRcbgq*sdTx0E>+g-&l;4neO*j1?b4ZyUV@!+pP-yO`x@(9H+SGb zdwYAwK(=1U!Ljt@`Wo%+v7B|_Jw_xYLZ7Db>K~_-N8ee z>7#6qLFan{hZyvu1sII!jeQ$k8Yj3_QFK#=#O@a!HA`eJl^ku~UMuHH)u{E$wJ1iB zm3Ao%Lw3Vs#A6Lm^o9Ur(;9Xx=~3UKOT$D;tfSTwYk8gDGvhU!+sGE8-rn{#oS%;U zG)A{~FalR3wLmAMp*Pygtms8+7jxPjl8dsNj;uM(U8hhND3B=>$Pi+!BI9(uQK=e- z8$`l>i)`^48%_A#M?0BETO}HNX_5Rc5VkoQB+5e+&rt6|bgw~LtU&8IomLi+oeH0` zzL{+u?V-fAf=4lTiGuQYt)-Rn1 zU#RCQcl0KUoZNl6VT<5pL; z?)A~Mu+T8m+K}O>SA#WA=ae!dmsFUmmGHUXl9ltRo+2D2WdsXnh~~(n-53Fv0l+^=7d-vqHP^tR9(K}V;PGl4#K0e z&DO;CQZ+GWX~kZTX8T^5X87C;#{8+XH)@rl31|y6ccldqFBIAPF=%K=4=mg-K1+k^ z2`)<}ykJ7HGLKXO#Rma1{ue!KE@UgELxvEVVDHb?^1sJa&rI_AHqa7*=_I<~6zL*% z)|k$iU~-}pBtnpBzSk36SjMxB$q2l}eFx0N#=633v>fc3f z)VGKFZP3D$O=PM_`4|u1G?%Up^#FEHfU%MQ6BvgD{QiOI8VXF?J3Lx0q_M*_D{Vd3 z_8Bley1BY*Hzt0;zy~9xwhn38~W zTG_hU>T!Of@gU?YgPTCRle&<&&q7=i9<=7|J#@K8N9?finKOG#Q$WnqpiZZ%K3*?B?PCaR9DD1;_QnE-pXzWJA3B{^j(Ozwm#G5(z zipC?X%J`ZQ+N-C|S;cC%prxkFwmenbj^7E21n`-BtRXj>&SICL%k)z&y>Z@oZ!kMj zjI2}y9m&+ew;fSMf*~dh>^#6qf~{GsD;o7hbkFlunaHWzFvDcjX^0T&)F%1vio{fQ zmD(kM;<1jb+MBnr>TG+x>#t_1TS2TgQZIU*HL0YLhNHb`Nr$%bLg;o1Mx>g?)!*#Z zDv?UZhB&|D`%MxI4`>Nq7T(0`?EacC)<~lZy1uNKf@CElTDN&?NxQTy71Lx>&(K2G zoMOq8$#2q~7oHzP703#(R+&Y2bhCr*z0jI0Ew$;InHWY-y{Am;{{<|S8;cGVC8Bv_ z9YtS55xeq(8q3&wXbH2{5T_fSg@ii6-aDPfD$2F8ln2z!!515`_<+qkc9DY010Uw->5R$cA`%4 zlgVWT8d6q#>JrU{S#|shS%s{Hmm8IA0)NcM`vaep8bML9l9knin8!RT z_c9Mp9g3{!4rG>Ylf`TSivzd?q6MC_YlQEPEFRp`NR&3c~ObxvYSPe*<@I7Sj=DrmN6tuuj-o0F*TWS=5k;{pil&G|) z9=lzIB_=W;Za`D<(ww4o#u;4z^5b1eXy{czfFo_|J3sRnPM9<3Ei&Y>Zx2R1v6eos!RyInnC6ilAC#L* zTfHJZzT(icM|oVLj>d9KKl9gH5M}PK#ck5u?i!?J^q>Mku`>EFiQIwZM@p!fVvebO z9WR}8^(d6(sQB96ZS>4TdUWRox(Qw$;k)j1^Sx{yUMZTVeQH_r_y>&^?X*xL%Op~{ zz4V*~jjM9UF0n6~Nt`Rs62zK3>JWp$@QGSo%u}a8IyytCChEqiG*!Z_y{Mu3X3bqS zJm#1Z2O3;ZXhQcwdC4hB?O1nuBDE7+-#TCMg*xU%g)%LdmuUH0nj+%0MMFW)4S5>V zAo4Tpln^gjBNmG+um@%+XN$Nm7by-XuDA=PU zn?-z~St^{9P>pZ5$O?$<9HS3ise_opMfWCxwT` z)w*8{u7tJj6W8KG?p&K2YIbvA&DY!ktjT@W_>IwcqO*Q@XP!}xdqa7@4yO7@)}Hcy zasY0xS0CZ0+Pb>vQ7wAXG}&jxTxiU&G6~DvF=_2Gg)`0IKmD05#My%9=;k?CF3d|N zKSyV)AoNsUaNAs;tg#;{^}`$SK1tpyxjSi(#VD5)kVmH|w5S!C6|}E*26N>`XpR{Q zn#@zW8F(XpN;*;q>oE`$hvR=UcXE0Q+)vpiRiT@K9nA!U*Yun{aU43P9*co zuX?!EO0VC!Rr=P)HKkC^S5foYSvY_F9A-n+gelwQC8`=NQJ|1PC9wyXK;cY-I7ULAw#P4m@uI813xN&WPneHY5xPfGg9bAz)?K(my+zoZdZ+9>1cW zMwXUezhnGkq&MGp4Ii!HA9QYBD>N)^7Ov^(b=t_G;=)vIKg{@)Q^GNRji6?nF+NJ` qt^L~cFTd=<%6~ug6G?xaRWQw0S@bv$hui literal 0 HcmV?d00001 diff --git a/src/officer_sdk/lbot_driver/lib/linux_arm64/liblbot_api.so b/src/officer_sdk/lbot_driver/lib/linux_arm64/liblbot_api.so new file mode 100755 index 0000000000000000000000000000000000000000..bc6ec60a5513cd026de479385b49be51dddbc7d3 GIT binary patch literal 84824 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 E0~@o%vj6}9 literal 0 HcmV?d00001 diff --git a/src/officer_sdk/lbot_driver/lib/linux_arm64/liblbot_api.so.1 b/src/officer_sdk/lbot_driver/lib/linux_arm64/liblbot_api.so.1 new file mode 100755 index 0000000000000000000000000000000000000000..bc6ec60a5513cd026de479385b49be51dddbc7d3 GIT binary patch literal 84824 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 E0~@o%vj6}9 literal 0 HcmV?d00001 diff --git a/src/officer_sdk/lbot_driver/lib/linux_arm64/liblbot_api.so.1.0.5 b/src/officer_sdk/lbot_driver/lib/linux_arm64/liblbot_api.so.1.0.5 new file mode 100755 index 0000000000000000000000000000000000000000..bc6ec60a5513cd026de479385b49be51dddbc7d3 GIT binary patch literal 84824 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 E0~@o%vj6}9 literal 0 HcmV?d00001 diff --git a/src/officer_sdk/lbot_driver/lib/linux_arm64/liblbot_api_cpp.so b/src/officer_sdk/lbot_driver/lib/linux_arm64/liblbot_api_cpp.so new file mode 100755 index 0000000000000000000000000000000000000000..32a085ca328a8ad49ab4a9c8c817c8e9a9f209a1 GIT binary patch literal 118032 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 literal 0 HcmV?d00001 diff --git a/src/officer_sdk/lbot_driver/lib/linux_arm64/liblbot_api_cpp.so.1 b/src/officer_sdk/lbot_driver/lib/linux_arm64/liblbot_api_cpp.so.1 new file mode 100755 index 0000000000000000000000000000000000000000..32a085ca328a8ad49ab4a9c8c817c8e9a9f209a1 GIT binary patch literal 118032 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 literal 0 HcmV?d00001 diff --git a/src/officer_sdk/lbot_driver/lib/linux_arm64/liblbot_api_cpp.so.1.0.5 b/src/officer_sdk/lbot_driver/lib/linux_arm64/liblbot_api_cpp.so.1.0.5 new file mode 100755 index 0000000000000000000000000000000000000000..32a085ca328a8ad49ab4a9c8c817c8e9a9f209a1 GIT binary patch literal 118032 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 literal 0 HcmV?d00001 diff --git a/src/officer_sdk/lbot_driver/lib/linux_x64/liblbot_api.so b/src/officer_sdk/lbot_driver/lib/linux_x64/liblbot_api.so new file mode 100755 index 0000000000000000000000000000000000000000..d0ed1c157fc9680aa6439d888b6ab4ce6567f4a5 GIT binary patch literal 106976 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 qt^L~cFTd=<%6~ug6G?xaRWQw0S@bv$hui literal 0 HcmV?d00001 diff --git a/src/officer_sdk/lbot_driver/lib/linux_x64/liblbot_api_cpp.so.1 b/src/officer_sdk/lbot_driver/lib/linux_x64/liblbot_api_cpp.so.1 new file mode 100755 index 0000000000000000000000000000000000000000..0b8870e7e4e42d00cade29c782fba2a2dce8ee05 GIT binary patch literal 139864 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 qt^L~cFTd=<%6~ug6G?xaRWQw0S@bv$hui literal 0 HcmV?d00001 diff --git a/src/officer_sdk/lbot_driver/lib/linux_x64/liblbot_api_cpp.so.1.0.5 b/src/officer_sdk/lbot_driver/lib/linux_x64/liblbot_api_cpp.so.1.0.5 new file mode 100755 index 0000000000000000000000000000000000000000..0b8870e7e4e42d00cade29c782fba2a2dce8ee05 GIT binary patch literal 139864 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 qt^L~cFTd=<%6~ug6G?xaRWQw0S@bv$hui literal 0 HcmV?d00001 diff --git a/src/officer_sdk/lbot_driver/package.xml b/src/officer_sdk/lbot_driver/package.xml new file mode 100644 index 0000000..ccfb6f5 --- /dev/null +++ b/src/officer_sdk/lbot_driver/package.xml @@ -0,0 +1,26 @@ + + + + lbot_driver + 0.0.0 + TODO: Package description + wxp + TODO: License declaration + + ament_cmake + + rclcpp + std_msgs + sensor_msgs + geometry_msgs + tf2 + tf2_geometry_msgs + lbot_arm_interfaces + + ament_lint_auto + ament_lint_common + + + ament_cmake + + diff --git a/src/officer_sdk/lbot_driver/src/lbot_driver.cpp b/src/officer_sdk/lbot_driver/src/lbot_driver.cpp new file mode 100644 index 0000000..9d6affc --- /dev/null +++ b/src/officer_sdk/lbot_driver/src/lbot_driver.cpp @@ -0,0 +1,1782 @@ +// Copyright (c) 2025 LinkerRobot Tech +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#include "lbot_driver.h" +#include + +using namespace std::chrono_literals; +using lbot_driver::LBot; + +// 全局变量 +lbot::LbotApi lbot_api; +lbot_handle_t *lbot_handle{}; +LBot* LBot::g_instance = nullptr; +std::atomic g_conn_state{GlobalConnState::DISCONNECTED}; // 全局连接状态 + +// 静态状态回调函数 +void lbot_state_callback_wrapper(const lbot_full_state_t* state) { + if (state && lbot_driver::LBot::g_instance) { + std::lock_guard lock(lbot_driver::LBot::g_instance->state_mutex_); + lbot_driver::LBot::g_instance->current_lbot_state_ = *state; + } +} + +// 错误回调函数 +void lbot_error_callback_wrapper(int error_code, const char* error_msg) { + if (LBot::g_instance && LBot::g_instance->shutting_down_) return; + + if (error_msg) { + RCLCPP_ERROR( + rclcpp::get_logger("lbot_driver"), + "LBot Error [%d]: %s", + error_code, + error_msg + ); + } else { + RCLCPP_ERROR( + rclcpp::get_logger("lbot_driver"), + "LBot Error [%d]: (null message)", + error_code + ); + } +} + +namespace lbot_driver { + +// ========== 主节点实现 ========== +LBot::LBot(const std::string& node_name) : rclcpp::Node(node_name) { + // 设置独特的logger名称 + this->get_logger() = rclcpp::get_logger(node_name); + + // 参数初始化 + this->declare_parameter("arm_ip", "192.168.10.21"); + arm_ip_ = this->get_parameter("arm_ip").as_string(); + + // 全局指针 + g_instance = this; + + // 创建回调组 + callback_group_timer_ = this->create_callback_group(rclcpp::CallbackGroupType::MutuallyExclusive); + callback_group_subscribers_ = this->create_callback_group(rclcpp::CallbackGroupType::MutuallyExclusive); + + // 创建发布器 (50Hz状态发布) + left_joint_pub_ = this->create_publisher("left_arm/joint_states", 10); + right_joint_pub_ = this->create_publisher("right_arm/joint_states", 10); + left_pose_pub_ = this->create_publisher("left_arm/pose_states", 10); + right_pose_pub_ = this->create_publisher("right_arm/pose_states", 10); + + // 创建关节跟随订阅器(避免阻塞服务) + auto sub_opt = rclcpp::SubscriptionOptions(); + sub_opt.callback_group = callback_group_subscribers_; + + left_joint_follow_sub_ = this->create_subscription( + "left_arm/joint_follow", 10, + std::bind(&LBot::left_joint_follow_callback, this, std::placeholders::_1), + sub_opt); + + right_joint_follow_sub_ = this->create_subscription( + "right_arm/joint_follow", 10, + std::bind(&LBot::right_joint_follow_callback, this, std::placeholders::_1), + sub_opt); + + // 心跳与重连定时器 + heartbeat_timer_ = create_wall_timer(1s, std::bind(&LBot::heartbeat_timer_callback, this)); + reconnect_timer_ = create_wall_timer(2s, std::bind(&LBot::reconnect_timer_callback, this)); + + // 创建状态发布定时器 (50Hz) + state_publish_timer_ = this->create_wall_timer( + 20ms, + std::bind(&LBot::state_publish_timer_callback, this), + callback_group_timer_); + + // 连接机器人 + connect_robot(); + + RCLCPP_INFO(this->get_logger(), "LBot main node initialized successfully"); +} + +// 析构函数 +LBot::~LBot() { + shutting_down_ = true; + + // 停止 reconnect 线程 + { + std::lock_guard lock(reconnect_thread_mutex_); + if (reconnect_thread_.joinable()) + reconnect_thread_.join(); + } + + disconnect_robot(); +} + +bool LBot::connect_robot() { + std::lock_guard lock(conn_mutex_); + if(conn_state_ == GlobalConnState::CONNECTED) return true; + + g_conn_state.store(GlobalConnState::CONNECTING); // 更新全局状态 + + lbot_handle = lbot_api.lbot_init(arm_ip_.c_str()); + if (lbot_handle->id > 0) { + RCLCPP_INFO(this->get_logger(), "Connected to LBot at %s", arm_ip_.c_str()); + + // 获取机械臂信息 + get_robot_info(); + + // 启动状态监控 + if (lbot_api.lbot_start_state_monitor(lbot_state_callback_wrapper, lbot_error_callback_wrapper)) { + is_state_monitor_started_ = true; + RCLCPP_INFO(this->get_logger(), "State monitor started successfully"); + } else { + is_state_monitor_started_ = false; + RCLCPP_ERROR(this->get_logger(), "Failed to start state monitor"); + } + + } else { + RCLCPP_ERROR(this->get_logger(), "Failed to connect to LBot"); + } + + bool success = lbot_handle->id > 0; + conn_state_ = success ? GlobalConnState::CONNECTED : GlobalConnState::DISCONNECTED; + g_conn_state.store(conn_state_); // 更新全局状态 + + return success; +} + +void LBot::disconnect_robot() { + std::lock_guard lock(conn_mutex_); + if (conn_state_ == GlobalConnState::DISCONNECTED) return; + + RCLCPP_INFO(this->get_logger(), "Disconnecting from LBot..."); + + // 先设置状态,避免其他线程继续操作 + conn_state_ = GlobalConnState::DISCONNECTED; + g_conn_state.store(GlobalConnState::DISCONNECTED); // 更新全局状态 + + // 停止状态监控 + if (is_state_monitor_started_) { + RCLCPP_INFO(this->get_logger(), "Stopping state monitor..."); + lbot_api.lbot_stop_state_monitor(); + is_state_monitor_started_ = false; + } + + // 清理连接 + RCLCPP_INFO(this->get_logger(), "Cleaning up LBot connection..."); + lbot_api.lbot_cleanup(); + + RCLCPP_INFO(this->get_logger(), "Disconnected from LBot successfully"); +} + +void LBot::get_robot_info() { + std::string robot_model, controller_version; + if (lbot_api.lbot_get_controller_info(lbot_handle, robot_model, controller_version)) { + RCLCPP_INFO(this->get_logger(), "Robot Model: %s, Controller Version: %s", robot_model.c_str(), controller_version.c_str()); + } +} + +// 状态发布定时器回调函数 (50Hz) +void LBot::state_publish_timer_callback() { + if (conn_state_ != GlobalConnState::CONNECTED || !is_state_monitor_started_) return; + + lbot_full_state_t state; + { + std::lock_guard lock(state_mutex_); + state = current_lbot_state_; + } + + rclcpp::Time time_now = this->get_clock()->now(); + + // ----------------------- 左臂 ----------------------- + + sensor_msgs::msg::JointState left_joint; + left_joint.header.stamp = time_now; + left_joint.header.frame_id = state.left_arm.frame_id; + + // 关节名称 + left_joint.name.resize(7); + for (size_t i = 0; i < 7; i++) + left_joint.name[i] = state.left_arm.name[i]; + + // 关节角度 + left_joint.position.resize(7); + for (size_t i = 0; i < 7; i++) + left_joint.position[i] = state.left_arm.joint_position[i]; + + // 关节速度 + left_joint.velocity.resize(7); + for (size_t i = 0; i < 7; i++) + left_joint.velocity[i] = state.left_arm.velocity[i]; + + // 关节力矩 effort + left_joint.effort.resize(7); + for (size_t i = 0; i < 7; i++) + left_joint.effort[i] = state.left_arm.effort[i]; + + left_joint_pub_->publish(left_joint); + + // PoseStamped(末端状态) + geometry_msgs::msg::PoseStamped left_pose; + left_pose.header.stamp = time_now; + left_pose.header.frame_id = state.left_arm.frame_id; + + left_pose.pose.position.x = state.left_arm.end_effector_position.x; + left_pose.pose.position.y = state.left_arm.end_effector_position.y; + left_pose.pose.position.z = state.left_arm.end_effector_position.z; + + left_pose.pose.orientation.x = state.left_arm.orientation.x; + left_pose.pose.orientation.y = state.left_arm.orientation.y; + left_pose.pose.orientation.z = state.left_arm.orientation.z; + left_pose.pose.orientation.w = state.left_arm.orientation.w; + + left_pose_pub_->publish(left_pose); + + // ----------------------- 右臂 ----------------------- + + sensor_msgs::msg::JointState right_joint; + right_joint.header.stamp = time_now; + right_joint.header.frame_id = state.right_arm.frame_id; + + right_joint.name.resize(7); + for (size_t i = 0; i < 7; i++) + right_joint.name[i] = state.right_arm.name[i]; + + right_joint.position.resize(7); + for (size_t i = 0; i < 7; i++) + right_joint.position[i] = state.right_arm.joint_position[i]; + + right_joint.velocity.resize(7); + for (size_t i = 0; i < 7; i++) + right_joint.velocity[i] = state.right_arm.velocity[i]; + + right_joint.effort.resize(7); + for (size_t i = 0; i < 7; i++) + right_joint.effort[i] = state.right_arm.effort[i]; + + right_joint_pub_->publish(right_joint); + + geometry_msgs::msg::PoseStamped right_pose; + right_pose.header.stamp = time_now; + right_pose.header.frame_id = state.right_arm.frame_id; + + right_pose.pose.position.x = state.right_arm.end_effector_position.x; + right_pose.pose.position.y = state.right_arm.end_effector_position.y; + right_pose.pose.position.z = state.right_arm.end_effector_position.z; + + right_pose.pose.orientation.x = state.right_arm.orientation.x; + right_pose.pose.orientation.y = state.right_arm.orientation.y; + right_pose.pose.orientation.z = state.right_arm.orientation.z; + right_pose.pose.orientation.w = state.right_arm.orientation.w; + + right_pose_pub_->publish(right_pose); +} + + +/****************************** 关节跟随订阅器(遥操作) ******************************/ + +// 左臂关节跟随回调 +void LBot::left_joint_follow_callback(const std::shared_ptr msg) { + if (!msg || msg->joints.empty()) return; + + if (g_conn_state.load() != GlobalConnState::CONNECTED) { + RCLCPP_WARN_THROTTLE(this->get_logger(), *this->get_clock(), 1000, "Left joint follow: Robot not connected"); + return; + } + + std::vector joints(msg->joints.begin(), msg->joints.end()); + + if (!lbot_api.lbot_joint_follow(lbot_handle, LBOT_LEFT_ARM, joints)) { + RCLCPP_ERROR(this->get_logger(), "Failed to execute left_joint_follow"); + } +} + +// 右臂关节跟随回调 +void LBot::right_joint_follow_callback(const std::shared_ptr msg) { + if (!msg || msg->joints.empty()) return; + + if (g_conn_state.load() != GlobalConnState::CONNECTED) { + RCLCPP_WARN_THROTTLE(this->get_logger(), *this->get_clock(), 1000, "Right joint follow: Robot not connected"); + return; + } + + std::vector joints(msg->joints.begin(), msg->joints.end()); + + if (!lbot_api.lbot_joint_follow(lbot_handle, LBOT_RIGHT_ARM, joints)) { + RCLCPP_ERROR(this->get_logger(), "Failed to execute right_joint_follow"); + } +} + +/****************************** 心跳与重连机制 ******************************/ + +// 心跳机制回调函数 +void LBot::heartbeat_timer_callback() +{ + if (conn_state_ != GlobalConnState::CONNECTED) + return; + + std::string model, version; + // bool ok = lbot_api.lbot_get_controller_info(lbot_handle, model, version); + bool ok = true; + + if (!ok) + { + heartbeat_fail_count_++; + + RCLCPP_WARN(get_logger(), "Heartbeat failed (%d/3)", heartbeat_fail_count_); + + if (heartbeat_fail_count_ >= 3) + { + RCLCPP_ERROR(get_logger(), "Heartbeat lost. Disconnecting..."); + disconnect_robot(); + } + } + else + { + heartbeat_fail_count_ = 0; + } +} + +// 自动重连机制回调函数 +void LBot::reconnect_timer_callback() +{ + if (shutting_down_) return; + if (conn_state_ != GlobalConnState::DISCONNECTED) return; + + std::lock_guard lock(reconnect_thread_mutex_); + + if (reconnect_thread_running_) + return; // 线程正在运行,不重复启动 + + reconnect_thread_running_ = true; + + reconnect_thread_ = std::thread([this]() { + if (shutting_down_) { + reconnect_thread_running_ = false; + return; + } + + RCLCPP_INFO(this->get_logger(), "Trying to reconnect to LBot..."); + + bool success = connect_robot(); + + { + std::lock_guard lock(conn_mutex_); + if (success) { + conn_state_ = GlobalConnState::CONNECTED; + heartbeat_fail_count_ = 0; + + if (!shutting_down_) + RCLCPP_INFO(this->get_logger(), "Arm reconnected successfully"); + } else { + conn_state_ = GlobalConnState::DISCONNECTED; + + if (!shutting_down_) + RCLCPP_WARN(this->get_logger(), "Reconnection failed. Will retry..."); + } + } + + reconnect_thread_running_ = false; + }); +} + +// ========== 左臂服务节点实现 ========== +LeftArmServiceNode::LeftArmServiceNode(const std::string& node_name) : rclcpp::Node(node_name) { + // 设置独特的logger名称 + this->get_logger() = rclcpp::get_logger(node_name); + + // 创建互斥回调组确保串行执行 + callback_group_ = this->create_callback_group(rclcpp::CallbackGroupType::MutuallyExclusive); + callback_group_subscribers_ = this->create_callback_group(rclcpp::CallbackGroupType::MutuallyExclusive); + + create_services(); + RCLCPP_INFO(this->get_logger(), "Left arm service node initialized"); +} + +void LeftArmServiceNode::create_services() { + auto service_qos = rclcpp::QoS(rclcpp::ServicesQoS()); + auto sub_opt = rclcpp::SubscriptionOptions(); + sub_opt.callback_group = callback_group_subscribers_; + + // 运动控制服务 + move_joint_service_ = this->create_service( + "left_arm/move_joint", + std::bind(&LeftArmServiceNode::move_joint_callback, this, std::placeholders::_1, std::placeholders::_2), + service_qos, callback_group_); + + move_pose_service_ = this->create_service( + "left_arm/move_pose", + std::bind(&LeftArmServiceNode::move_pose_callback, this, std::placeholders::_1, std::placeholders::_2), + service_qos, callback_group_); + + move_linear_service_ = this->create_service( + "left_arm/move_linear", + std::bind(&LeftArmServiceNode::move_linear_callback, this, std::placeholders::_1, std::placeholders::_2), + service_qos, callback_group_); + + // 运动学计算服务 + forward_kinematics_service_ = this->create_service( + "left_arm/forward_kinematics", + std::bind(&LeftArmServiceNode::forward_kinematics_callback, this, std::placeholders::_1, std::placeholders::_2), + service_qos, callback_group_); + + inverse_kinematics_service_ = this->create_service( + "left_arm/inverse_kinematics", + std::bind(&LeftArmServiceNode::inverse_kinematics_callback, this, std::placeholders::_1, std::placeholders::_2), + service_qos, callback_group_); + + // 工具坐标系管理服务 + set_tool_frame_service_ = this->create_service( + "left_arm/set_tool_frame", + std::bind(&LeftArmServiceNode::set_tool_frame_callback, this, std::placeholders::_1, std::placeholders::_2), + service_qos, callback_group_); + + get_tool_frame_service_ = this->create_service( + "left_arm/get_tool_frame", + std::bind(&LeftArmServiceNode::get_tool_frame_callback, this, std::placeholders::_1, std::placeholders::_2), + service_qos, callback_group_); + + get_current_tool_frame_service_ = this->create_service( + "left_arm/get_current_tool_frame", + std::bind(&LeftArmServiceNode::get_current_tool_frame_callback, this, std::placeholders::_1, std::placeholders::_2), + service_qos, callback_group_); + + change_tool_frame_service_ = this->create_service( + "left_arm/change_tool_frame", + std::bind(&LeftArmServiceNode::change_tool_frame_callback, this, std::placeholders::_1, std::placeholders::_2), + service_qos, callback_group_); + + delete_tool_frame_service_ = this->create_service( + "left_arm/delete_tool_frame", + std::bind(&LeftArmServiceNode::delete_tool_frame_callback, this, std::placeholders::_1, std::placeholders::_2), + service_qos, callback_group_); + + get_all_tool_frames_service_ = this->create_service( + "left_arm/get_all_tool_frames", + std::bind(&LeftArmServiceNode::get_all_tool_frames_callback, this, std::placeholders::_1, std::placeholders::_2), + service_qos, callback_group_); + + // 零点设置服务 + set_zero_service_ = this->create_service( + "left_arm/set_zero", + std::bind(&LeftArmServiceNode::set_zero_callback, this, std::placeholders::_1, std::placeholders::_2), + service_qos, callback_group_); + set_enable_service_ = this->create_service( + "left_arm/set_enable", + std::bind(&LeftArmServiceNode::set_enable_callback, this, std::placeholders::_1, std::placeholders::_2), + service_qos, callback_group_); + set_emergency_service_ = this->create_service( + "left_arm/set_emergency_stop", + std::bind(&LeftArmServiceNode::set_emergency_callback, this, std::placeholders::_1, std::placeholders::_2), + service_qos, callback_group_); + + // 灵巧手设置Topic回调函数 + left_hand_l6_joint_sub_ = this->create_subscription( + "left_hand/set_l6_joint", 10, + std::bind(&LeftArmServiceNode::left_hand_l6_set_joint_callback, this, std::placeholders::_1), + sub_opt); + left_hand_l6_force_sub_ = this->create_subscription( + "left_hand/set_l6_force", 10, + std::bind(&LeftArmServiceNode::left_hand_l6_set_force_callback, this, std::placeholders::_1), + sub_opt); + left_hand_l6_speed_sub_ = this->create_subscription( + "left_hand/set_l6_speed", 10, + std::bind(&LeftArmServiceNode::left_hand_l6_set_speed_callback, this, std::placeholders::_1), + sub_opt); + left_hand_l10_joint_sub_ = this->create_subscription( + "left_hand/set_l10_joint", 10, + std::bind(&LeftArmServiceNode::left_hand_l10_set_joint_callback, this, std::placeholders::_1), + sub_opt); + left_hand_l10_force_sub_ = this->create_subscription( + "left_hand/set_l10_force", 10, + std::bind(&LeftArmServiceNode::left_hand_l10_set_force_callback, this, std::placeholders::_1), + sub_opt); + left_hand_l10_speed_sub_ = this->create_subscription( + "left_hand/set_l10_speed", 10, + std::bind(&LeftArmServiceNode::left_hand_l10_set_speed_callback, this, std::placeholders::_1), + sub_opt); + left_hand_l20_joint_sub_ = this->create_subscription( + "left_hand/set_l20_joint", 10, + std::bind(&LeftArmServiceNode::left_hand_l20_set_joint_callback, this, std::placeholders::_1), + sub_opt); + left_hand_l20_series_position_sub_ = this->create_subscription( + "left_hand/set_l20_series_position", 10, + std::bind(&LeftArmServiceNode::left_hand_l20_set_series_position_callback, this, std::placeholders::_1), + sub_opt); +} + +/****************************** 左臂服务回调函数实现 ******************************/ + +// 关节运动回调函数 +void LeftArmServiceNode::move_joint_callback( + const std::shared_ptr request, + std::shared_ptr response) +{ + auto start_time = std::chrono::steady_clock::now(); + RCLCPP_INFO(this->get_logger(), "[%ld ms] Left arm move_joint started", + std::chrono::duration_cast(start_time.time_since_epoch()).count()); + + if (!check_connection_state("left_arm/move_joint")) { + response->success = false; + return; + } + + if (request->joints.size() != 7) { + response->success = false; + RCLCPP_ERROR(this->get_logger(), "Left arm move_joint: size must be 7"); + return; + } + double joints[7]; + std::copy(request->joints.begin(), request->joints.end(), joints); + response->success = lbot_api.lbot_move_joint(lbot_handle, LBOT_LEFT_ARM, joints, request->speed, request->acce, request->block); + if (response->success) { + RCLCPP_INFO(this->get_logger(), "Left arm move_joint executed successfully"); + } else { + RCLCPP_ERROR(this->get_logger(), "Left arm move_joint failed: %s", + lbot_api.lbot_get_last_error(lbot_handle).c_str()); + } + + auto end_time = std::chrono::steady_clock::now(); + auto duration = std::chrono::duration_cast(end_time - start_time); + RCLCPP_INFO(this->get_logger(), "[%ld ms] Left arm move_joint returned after %ld ms", + std::chrono::duration_cast(end_time.time_since_epoch()).count(), + duration.count()); +} + +// 位姿运动回调函数 +void LeftArmServiceNode::move_pose_callback( + const std::shared_ptr request, + std::shared_ptr response) +{ + if (!check_connection_state("left_arm/move_pose")) { + response->success = false; + return; + } + + lbot_position_t position; + lbot_euler_t euler; + + position.x = request->position.x; + position.y = request->position.y; + position.z = request->position.z; + + euler.x = request->euler.x; + euler.y = request->euler.y; + euler.z = request->euler.z; + + response->success = lbot_api.lbot_move_pose(lbot_handle, LBOT_LEFT_ARM, &position, &euler, request->speed, request->acce, request->block); + + if (response->success) { + RCLCPP_INFO(this->get_logger(), "Left arm move_pose executed successfully"); + } else { + RCLCPP_ERROR(this->get_logger(), "Left arm move_pose failed: %s", + lbot_api.lbot_get_last_error(lbot_handle).c_str()); + } +} + +// 线性运动回调函数 +void LeftArmServiceNode::move_linear_callback( + const std::shared_ptr request, + std::shared_ptr response) +{ + if (!check_connection_state("left_arm/move_linear")) { + response->success = false; + return; + } + + lbot_position_t position; + lbot_euler_t euler; + + position.x = request->position.x; + position.y = request->position.y; + position.z = request->position.z; + + euler.x = request->euler.x; + euler.y = request->euler.y; + euler.z = request->euler.z; + + response->success = lbot_api.lbot_move_linear(lbot_handle, LBOT_LEFT_ARM, &position, &euler, request->speed, request->acce, request->block); + + if (response->success) { + RCLCPP_INFO(this->get_logger(), "Left arm move_linear executed successfully"); + } else { + RCLCPP_ERROR(this->get_logger(), "Left arm move_linear failed: %s", + lbot_api.lbot_get_last_error(lbot_handle).c_str()); + } +} + +// 正运动学回调函数 +void LeftArmServiceNode::forward_kinematics_callback( + const std::shared_ptr request, + std::shared_ptr response) +{ + if (!check_connection_state("left_arm/forward_kinematics")) { + response->success = false; + return; + } + + if (request->joints.size() != 7) { + response->success = false; + RCLCPP_ERROR(this->get_logger(), "Left arm forward_kinematics: Joint array must contain exactly 7 values"); + return; + } + + double joints[7]; + std::copy(request->joints.begin(), request->joints.end(), joints); + + lbot_position_t position; + lbot_euler_t euler; + + response->success = lbot_api.lbot_forward_kinematics(lbot_handle, LBOT_LEFT_ARM, joints, &position, &euler); + + if (response->success) { + response->position.x = position.x; + response->position.y = position.y; + response->position.z = position.z; + + response->euler.x = euler.x; + response->euler.y = euler.y; + response->euler.z = euler.z; + + RCLCPP_INFO(this->get_logger(), "Left arm forward kinematics calculated successfully"); + } else { + RCLCPP_ERROR(this->get_logger(), "Left arm forward kinematics calculation failed: %s", + lbot_api.lbot_get_last_error(lbot_handle).c_str()); + } +} + +// 逆运动学回调函数 +void LeftArmServiceNode::inverse_kinematics_callback( + const std::shared_ptr request, + std::shared_ptr response) +{ + if (!check_connection_state("left_arm/inverse_kinematics")) { + response->success = false; + return; + } + + double initial_joints[7]; + double* initial_ptr = nullptr; + + if (request->joints.empty()) { + initial_ptr = nullptr; + } else { + if (request->joints.size() != 7) { + response->success = false; + RCLCPP_ERROR(this->get_logger(), "Left arm inverse_kinematics: Initial joint array must contain exactly 7 values"); + return; + } + std::copy(request->joints.begin(), request->joints.end(), initial_joints); + initial_ptr = initial_joints; + } + + lbot_position_t position; + lbot_euler_t euler; + + position.x = request->position.x; + position.y = request->position.y; + position.z = request->position.z; + + euler.x = request->euler.x; + euler.y = request->euler.y; + euler.z = request->euler.z; + + double result_joints[7]; + response->success = lbot_api.lbot_inverse_kinematics(lbot_handle, LBOT_LEFT_ARM, initial_ptr, &position, &euler, result_joints); + + if (response->success) { + response->joints.resize(7); + std::copy(result_joints, result_joints + 7, response->joints.begin()); + RCLCPP_INFO(this->get_logger(), "Left arm inverse kinematics calculated successfully"); + } else { + RCLCPP_ERROR(this->get_logger(), "Left arm inverse kinematics calculation failed: %s", + lbot_api.lbot_get_last_error(lbot_handle).c_str()); + } +} + +// 设置工具坐标系回调函数 +void LeftArmServiceNode::set_tool_frame_callback( + const std::shared_ptr request, + std::shared_ptr response) +{ + if (!check_connection_state("left_arm/set_tool_frame")) { + response->success = false; + return; + } + + const auto &frame = request->frame; + + lbot_position_t position; + position.x = frame.position.x; + position.y = frame.position.y; + position.z = frame.position.z; + + lbot_euler_t euler; + euler.x = frame.euler.x; + euler.y = frame.euler.y; + euler.z = frame.euler.z; + + response->success = lbot_api.lbot_set_tool_frame(lbot_handle, LBOT_LEFT_ARM, frame.name.c_str(), &position, &euler); + + if (response->success) { + RCLCPP_INFO(this->get_logger(), "Left arm tool frame '%s' set successfully", frame.name.c_str()); + } else { + RCLCPP_ERROR(this->get_logger(), "Failed to set left arm tool frame: %s", lbot_api.lbot_get_last_error(lbot_handle).c_str()); + } +} + +// 获取指定工具坐标系回调函数 +void LeftArmServiceNode::get_tool_frame_callback( + const std::shared_ptr request, + std::shared_ptr response) +{ + if (!check_connection_state("left_arm/get_tool_frame")) { + response->success = false; + return; + } + + lbot_position_t position; + lbot_euler_t euler; + + response->success = lbot_api.lbot_get_tool_frame(lbot_handle, LBOT_LEFT_ARM, request->name.c_str(), &position, &euler); + + if (response->success) { + response->frame.name = request->name; + response->frame.position.x = position.x; + response->frame.position.y = position.y; + response->frame.position.z = position.z; + response->frame.euler.x = euler.x; + response->frame.euler.y = euler.y; + response->frame.euler.z = euler.z; + + RCLCPP_INFO(this->get_logger(), "Left arm tool frame '%s' retrieved successfully", request->name.c_str()); + } else { + RCLCPP_ERROR(this->get_logger(), "Failed to get left arm tool frame: %s", lbot_api.lbot_get_last_error(lbot_handle).c_str()); + } +} + +// 获取当前工具坐标系回调函数 +void LeftArmServiceNode::get_current_tool_frame_callback( + const std::shared_ptr request, + std::shared_ptr response) +{ + (void)request; + + if (!check_connection_state("left_arm/get_current_tool_frame")) { + response->success = false; + return; + } + + std::string name = ""; + lbot_position_t position; + lbot_euler_t euler; + + response->success = lbot_api.lbot_get_current_tool_frame( + lbot_handle, + LBOT_LEFT_ARM, + name, + position, + euler + ); + + if (response->success) { + response->frame.name = name; + response->frame.position.x = position.x; + response->frame.position.y = position.y; + response->frame.position.z = position.z; + response->frame.euler.x = euler.x; + response->frame.euler.y = euler.y; + response->frame.euler.z = euler.z; + + RCLCPP_INFO(this->get_logger(), "Left arm current tool frame '%s' retrieved successfully", response->name.c_str() + ); + } else { + RCLCPP_ERROR(this->get_logger(), "Failed to get current tool frame: %s", lbot_api.lbot_get_last_error(lbot_handle).c_str() + ); + } +} + +// 切换工具坐标系回调函数 +void LeftArmServiceNode::change_tool_frame_callback( + const std::shared_ptr request, + std::shared_ptr response) +{ + if (!check_connection_state("left_arm/change_tool_frame")) { + response->success = false; + return; + } + + response->success = lbot_api.lbot_change_tool_frame(lbot_handle, LBOT_LEFT_ARM, request->name.c_str()); + + if (response->success) { + RCLCPP_INFO(this->get_logger(), "Left arm changed to tool frame '%s'", request->name.c_str()); + } else { + RCLCPP_ERROR(this->get_logger(), "Failed to change left arm tool frame: %s", lbot_api.lbot_get_last_error(lbot_handle).c_str()); + } +} + +// 删除工具坐标系回调函数 +void LeftArmServiceNode::delete_tool_frame_callback( + const std::shared_ptr request, + std::shared_ptr response) +{ + if (!check_connection_state("left_arm/delete_tool_frame")) { + response->success = false; + return; + } + + response->success = lbot_api.lbot_delete_tool_frame(lbot_handle, LBOT_LEFT_ARM, request->name.c_str()); + + if (response->success) { + RCLCPP_INFO(this->get_logger(), "Left arm tool frame '%s' deleted successfully", request->name.c_str()); + } else { + RCLCPP_ERROR(this->get_logger(), "Failed to delete left arm tool frame: %s", lbot_api.lbot_get_last_error(lbot_handle).c_str()); + } +} + +// 获取所有工具坐标系回调函数 +void LeftArmServiceNode::get_all_tool_frames_callback( + const std::shared_ptr request, + std::shared_ptr response) +{ + (void)request; + + if (!check_connection_state("left_arm/get_all_tool_frames")) { + response->success = false; + return; + } + + std::vector frame_names; + response->success = lbot_api.lbot_get_all_tool_frames(lbot_handle, LBOT_LEFT_ARM, frame_names); + + if (response->success) { + response->names = frame_names; + RCLCPP_INFO(this->get_logger(), "Left arm retrieved %zu tool frames", frame_names.size()); + } else { + RCLCPP_ERROR(this->get_logger(), "Failed to get left arm tool frames: %s", lbot_api.lbot_get_last_error(lbot_handle).c_str()); + } +} + +// 零点设置回调函数 +void LeftArmServiceNode::set_zero_callback( + const std::shared_ptr request, + std::shared_ptr response) +{ + (void)request; + + if (!check_connection_state("left_arm/set_zero")) { + response->success = false; + return; + } + + response->success = lbot_api.lbot_set_zero(lbot_handle, LBOT_LEFT_ARM); + + if (response->success) { + RCLCPP_INFO(this->get_logger(), "Left arm joint zero set successfully"); + } else { + RCLCPP_ERROR(this->get_logger(), "Failed to set left arm zero: %s", + lbot_api.lbot_get_last_error(lbot_handle).c_str()); + } +} + +// 使能设置回调函数 +void LeftArmServiceNode::set_enable_callback( + const std::shared_ptr request, + std::shared_ptr response) +{ + if (!check_connection_state("left_arm/set_enable")) { + response->success = false; + return; + } + + response->success = lbot_api.lbot_enable_arm(lbot_handle, LBOT_LEFT_ARM, request->enable); + + if (response->success) { + if (request->enable) { + RCLCPP_INFO(this->get_logger(), "Left arm enable ON successfully"); + } else { + RCLCPP_INFO(this->get_logger(), "Left arm enable OFF successfully"); + } + } else { + if (request->enable) { + RCLCPP_ERROR(this->get_logger(), + "Failed to enable (ON) left arm: %s", + lbot_api.lbot_get_last_error(lbot_handle).c_str()); + } else { + RCLCPP_ERROR(this->get_logger(), + "Failed to disable (OFF) left arm: %s", + lbot_api.lbot_get_last_error(lbot_handle).c_str()); + } + } + +} + +// 急停设置回调函数 +void LeftArmServiceNode::set_emergency_callback( + const std::shared_ptr request, + std::shared_ptr response) +{ + (void)request; + + if (!check_connection_state("left_arm/set_emergency_stop")) { + response->success = false; + return; + } + + response->success = lbot_api.lbot_emergency_stop(lbot_handle, LBOT_LEFT_ARM, request->emergency); + + if (response->success) { + if (request->emergency) { + RCLCPP_INFO(this->get_logger(), "Left arm emergency stop activated successfully"); + } else { + RCLCPP_INFO(this->get_logger(), "Left arm emergency stop released successfully"); + } + } else { + if (request->emergency) { + RCLCPP_ERROR(this->get_logger(), + "Failed to activate emergency stop for left arm: %s", + lbot_api.lbot_get_last_error(lbot_handle).c_str()); + } else { + RCLCPP_ERROR(this->get_logger(), + "Failed to release emergency stop for left arm: %s", + lbot_api.lbot_get_last_error(lbot_handle).c_str()); + } + } +} + +void LeftArmServiceNode::left_hand_l6_set_joint_callback(const std_msgs::msg::UInt8MultiArray::SharedPtr msg) { + if (!msg || msg->data.empty()) return; + if (!check_connection_state("left_hand/set_l6_joint")) { + return; + } + std::vector hand_joints(msg->data.begin(), msg->data.end()); + + if (!lbot_api.lbot_l6_set_position(lbot_handle, LBOT_LEFT_ARM, hand_joints)) { + RCLCPP_ERROR(this->get_logger(), "Failed to set left hand joint"); + } +} + +void LeftArmServiceNode::left_hand_l6_set_force_callback(const std_msgs::msg::UInt8MultiArray::SharedPtr msg) { + if (!msg || msg->data.empty()) return; + if (!check_connection_state("left_hand/set_l6_force")) { + return; + } + std::vector hand_force(msg->data.begin(), msg->data.end()); + + if (!lbot_api.lbot_l6_set_effort(lbot_handle, LBOT_LEFT_ARM, hand_force)) { + RCLCPP_ERROR(this->get_logger(), "Failed to set left hand force"); + } +} + +void LeftArmServiceNode::left_hand_l6_set_speed_callback(const std_msgs::msg::UInt8MultiArray::SharedPtr msg) { + if (!msg || msg->data.empty()) return; + if (!check_connection_state("left_hand/set_l6_speed")) { + return; + } + std::vector hand_speed(msg->data.begin(), msg->data.end()); + + if (!lbot_api.lbot_l6_set_velocity(lbot_handle, LBOT_LEFT_ARM, hand_speed)) { + RCLCPP_ERROR(this->get_logger(), "Failed to set left hand speed"); + } +} + +void LeftArmServiceNode::left_hand_l10_set_joint_callback(const std_msgs::msg::UInt8MultiArray::SharedPtr msg) { + if (!msg || msg->data.empty()) return; + if (!check_connection_state("left_hand/set_l10_joint")) { + return; + } + std::vector hand_joints(msg->data.begin(), msg->data.end()); + + if (!lbot_api.lbot_l10_set_position(lbot_handle, LBOT_LEFT_ARM, hand_joints)) { + RCLCPP_ERROR(this->get_logger(), "Failed to set left hand joint"); + } +} + +void LeftArmServiceNode::left_hand_l10_set_force_callback(const std_msgs::msg::UInt8MultiArray::SharedPtr msg) { + if (!msg || msg->data.empty()) return; + if (!check_connection_state("left_hand/set_l10_force")) { + return; + } + std::vector hand_force(msg->data.begin(), msg->data.end()); + + if (!lbot_api.lbot_l10_set_effort(lbot_handle, LBOT_LEFT_ARM, hand_force)) { + RCLCPP_ERROR(this->get_logger(), "Failed to set left hand force"); + } +} + +void LeftArmServiceNode::left_hand_l10_set_speed_callback(const std_msgs::msg::UInt8MultiArray::SharedPtr msg) { + if (!msg || msg->data.empty()) return; + if (!check_connection_state("left_hand/set_l10_speed")) { + return; + } + std::vector hand_speed(msg->data.begin(), msg->data.end()); + + if (!lbot_api.lbot_l10_set_velocity(lbot_handle, LBOT_LEFT_ARM, hand_speed)) { + RCLCPP_ERROR(this->get_logger(), "Failed to set left hand speed"); + } +} + +void LeftArmServiceNode::left_hand_l20_set_joint_callback(const std_msgs::msg::Int32MultiArray::SharedPtr msg) { + if (!msg || msg->data.empty()) return; + if (!check_connection_state("left_hand/set_l20_joint")) { + return; + } + std::vector hand_joints(msg->data.begin(), msg->data.end()); + + if (!lbot_api.lbot_l20_set_all_position(lbot_handle, LBOT_LEFT_ARM, hand_joints)) { + RCLCPP_ERROR(this->get_logger(), "Failed to set left L20 hand joint"); + } +} + +void LeftArmServiceNode::left_hand_l20_set_series_position_callback(const std_msgs::msg::Int32MultiArray::SharedPtr msg) { + if (!msg || msg->data.size() < 7) return; + if (!check_connection_state("left_hand/set_l20_series_position")) { + return; + } + + lbot_l20_series_cmd_t cmd{}; + cmd.finger = static_cast(msg->data[0]); + for (size_t i = 0; i < 6; ++i) { + cmd.data[i] = static_cast(msg->data[i + 1]); + } + + if (!lbot_api.lbot_l20_set_series_position(lbot_handle, LBOT_LEFT_ARM, &cmd)) { + RCLCPP_ERROR(this->get_logger(), "Failed to set left L20 hand series position"); + } +} + +// ========== 右臂服务节点实现 ========== +RightArmServiceNode::RightArmServiceNode(const std::string& node_name) : rclcpp::Node(node_name) { + // 设置独特的logger名称 + this->get_logger() = rclcpp::get_logger(node_name); + + // 创建互斥回调组确保串行执行 + callback_group_ = this->create_callback_group(rclcpp::CallbackGroupType::MutuallyExclusive); + callback_group_subscribers_ = this->create_callback_group(rclcpp::CallbackGroupType::MutuallyExclusive); + + create_services(); + RCLCPP_INFO(this->get_logger(), "Right arm service node initialized"); +} + +void RightArmServiceNode::create_services() { + auto service_qos = rclcpp::QoS(rclcpp::ServicesQoS()); + auto sub_opt = rclcpp::SubscriptionOptions(); + sub_opt.callback_group = callback_group_subscribers_; + + // 运动控制服务 + move_joint_service_ = this->create_service( + "right_arm/move_joint", + std::bind(&RightArmServiceNode::move_joint_callback, this, std::placeholders::_1, std::placeholders::_2), + service_qos, callback_group_); + + move_pose_service_ = this->create_service( + "right_arm/move_pose", + std::bind(&RightArmServiceNode::move_pose_callback, this, std::placeholders::_1, std::placeholders::_2), + service_qos, callback_group_); + + move_linear_service_ = this->create_service( + "right_arm/move_linear", + std::bind(&RightArmServiceNode::move_linear_callback, this, std::placeholders::_1, std::placeholders::_2), + service_qos, callback_group_); + + // 运动学计算服务 + forward_kinematics_service_ = this->create_service( + "right_arm/forward_kinematics", + std::bind(&RightArmServiceNode::forward_kinematics_callback, this, std::placeholders::_1, std::placeholders::_2), + service_qos, callback_group_); + + inverse_kinematics_service_ = this->create_service( + "right_arm/inverse_kinematics", + std::bind(&RightArmServiceNode::inverse_kinematics_callback, this, std::placeholders::_1, std::placeholders::_2), + service_qos, callback_group_); + + // 工具坐标系管理服务 + set_tool_frame_service_ = this->create_service( + "right_arm/set_tool_frame", + std::bind(&RightArmServiceNode::set_tool_frame_callback, this, std::placeholders::_1, std::placeholders::_2), + service_qos, callback_group_); + + get_tool_frame_service_ = this->create_service( + "right_arm/get_tool_frame", + std::bind(&RightArmServiceNode::get_tool_frame_callback, this, std::placeholders::_1, std::placeholders::_2), + service_qos, callback_group_); + + get_current_tool_frame_service_ = this->create_service( + "right_arm/get_current_tool_frame", + std::bind(&RightArmServiceNode::get_current_tool_frame_callback, this, std::placeholders::_1, std::placeholders::_2), + service_qos, callback_group_); + + change_tool_frame_service_ = this->create_service( + "right_arm/change_tool_frame", + std::bind(&RightArmServiceNode::change_tool_frame_callback, this, std::placeholders::_1, std::placeholders::_2), + service_qos, callback_group_); + + delete_tool_frame_service_ = this->create_service( + "right_arm/delete_tool_frame", + std::bind(&RightArmServiceNode::delete_tool_frame_callback, this, std::placeholders::_1, std::placeholders::_2), + service_qos, callback_group_); + + get_all_tool_frames_service_ = this->create_service( + "right_arm/get_all_tool_frames", + std::bind(&RightArmServiceNode::get_all_tool_frames_callback, this, std::placeholders::_1, std::placeholders::_2), + service_qos, callback_group_); + + // 零点设置服务 + set_zero_service_ = this->create_service( + "right_arm/set_zero", + std::bind(&RightArmServiceNode::set_zero_callback, this, std::placeholders::_1, std::placeholders::_2), + service_qos, callback_group_); + set_enable_service_ = this->create_service( + "right_arm/set_enable", + std::bind(&RightArmServiceNode::set_enable_callback, this, std::placeholders::_1, std::placeholders::_2), + service_qos, callback_group_); + set_emergency_service_ = this->create_service( + "right_arm/set_emergency_stop", + std::bind(&RightArmServiceNode::set_emergency_callback, this, std::placeholders::_1, std::placeholders::_2), + service_qos, callback_group_); + + // 灵巧手设置Topic回调函数 + right_hand_l6_joint_sub_ = this->create_subscription( + "right_hand/set_l6_joint", 10, + std::bind(&RightArmServiceNode::right_hand_l6_set_joint_callback, this, std::placeholders::_1), + sub_opt); + right_hand_l6_force_sub_ = this->create_subscription( + "right_hand/set_l6_force", 10, + std::bind(&RightArmServiceNode::right_hand_l6_set_force_callback, this, std::placeholders::_1), + sub_opt); + right_hand_l6_speed_sub_ = this->create_subscription( + "right_hand/set_l6_speed", 10, + std::bind(&RightArmServiceNode::right_hand_l6_set_speed_callback, this, std::placeholders::_1), + sub_opt); + + right_hand_l10_joint_sub_ = this->create_subscription( + "right_hand/set_l10_joint", 10, + std::bind(&RightArmServiceNode::right_hand_l10_set_joint_callback, this, std::placeholders::_1), + sub_opt); + right_hand_l10_force_sub_ = this->create_subscription( + "right_hand/set_l10_force", 10, + std::bind(&RightArmServiceNode::right_hand_l10_set_force_callback, this, std::placeholders::_1), + sub_opt); + right_hand_l10_speed_sub_ = this->create_subscription( + "right_hand/set_l10_speed", 10, + std::bind(&RightArmServiceNode::right_hand_l10_set_speed_callback, this, std::placeholders::_1), + sub_opt); + right_hand_l20_joint_sub_ = this->create_subscription( + "right_hand/set_l20_joint", 10, + std::bind(&RightArmServiceNode::right_hand_l20_set_joint_callback, this, std::placeholders::_1), + sub_opt); + right_hand_l20_series_position_sub_ = this->create_subscription( + "right_hand/set_l20_series_position", 10, + std::bind(&RightArmServiceNode::right_hand_l20_set_series_position_callback, this, std::placeholders::_1), + sub_opt); +} + +/****************************** 右臂服务回调函数实现 ******************************/ + +// 关节运动回调函数 +void RightArmServiceNode::move_joint_callback( + const std::shared_ptr request, + std::shared_ptr response) +{ + if (!check_connection_state("right_arm/move_joint")) { + response->success = false; + return; + } + + if (request->joints.size() != 7) { + response->success = false; + RCLCPP_ERROR(this->get_logger(), "Right arm move_joint: size must be 7"); + return; + } + double joints[7]; + std::copy(request->joints.begin(), request->joints.end(), joints); + response->success = lbot_api.lbot_move_joint(lbot_handle, LBOT_RIGHT_ARM, joints, request->speed, request->acce, request->block); + if (response->success) { + RCLCPP_INFO(this->get_logger(), "Right arm move_joint executed successfully"); + } else { + RCLCPP_ERROR(this->get_logger(), "Right arm move_joint failed: %s", + lbot_api.lbot_get_last_error(lbot_handle).c_str()); + } +} + +// 位姿运动回调函数 +void RightArmServiceNode::move_pose_callback( + const std::shared_ptr request, + std::shared_ptr response) +{ + if (!check_connection_state("right_arm/move_pose")) { + response->success = false; + return; + } + + lbot_position_t position; + lbot_euler_t euler; + + position.x = request->position.x; + position.y = request->position.y; + position.z = request->position.z; + + euler.x = request->euler.x; + euler.y = request->euler.y; + euler.z = request->euler.z; + + response->success = lbot_api.lbot_move_pose(lbot_handle, LBOT_RIGHT_ARM, &position, &euler, request->speed, request->acce, request->block); + + if (response->success) { + RCLCPP_INFO(this->get_logger(), "Right arm move_pose executed successfully"); + } else { + RCLCPP_ERROR(this->get_logger(), "Right arm move_pose failed: %s", + lbot_api.lbot_get_last_error(lbot_handle).c_str()); + } +} + +// 线性运动回调函数 +void RightArmServiceNode::move_linear_callback( + const std::shared_ptr request, + std::shared_ptr response) +{ + if (!check_connection_state("right_arm/move_linear")) { + response->success = false; + return; + } + + lbot_position_t position; + lbot_euler_t euler; + + position.x = request->position.x; + position.y = request->position.y; + position.z = request->position.z; + + euler.x = request->euler.x; + euler.y = request->euler.y; + euler.z = request->euler.z; + + response->success = lbot_api.lbot_move_linear(lbot_handle, LBOT_RIGHT_ARM, &position, &euler, request->speed, request->acce, request->block); + + if (response->success) { + RCLCPP_INFO(this->get_logger(), "Right arm move_linear executed successfully"); + } else { + RCLCPP_ERROR(this->get_logger(), "Right arm move_linear failed: %s", + lbot_api.lbot_get_last_error(lbot_handle).c_str()); + } +} + +// 正运动学回调函数 +void RightArmServiceNode::forward_kinematics_callback( + const std::shared_ptr request, + std::shared_ptr response) +{ + if (!check_connection_state("right_arm/forward_kinematics")) { + response->success = false; + return; + } + + if (request->joints.size() != 7) { + response->success = false; + RCLCPP_ERROR(this->get_logger(), "Right arm forward_kinematics: Joint array must contain exactly 7 values"); + return; + } + + double joints[7]; + std::copy(request->joints.begin(), request->joints.end(), joints); + + lbot_position_t position; + lbot_euler_t euler; + + response->success = lbot_api.lbot_forward_kinematics(lbot_handle, LBOT_RIGHT_ARM, joints, &position, &euler); + + if (response->success) { + response->position.x = position.x; + response->position.y = position.y; + response->position.z = position.z; + + response->euler.x = euler.x; + response->euler.y = euler.y; + response->euler.z = euler.z; + + RCLCPP_INFO(this->get_logger(), "Right arm forward kinematics calculated successfully"); + } else { + RCLCPP_ERROR(this->get_logger(), "Right arm forward kinematics calculation failed: %s", + lbot_api.lbot_get_last_error(lbot_handle).c_str()); + } +} + +// 逆运动学回调函数 +void RightArmServiceNode::inverse_kinematics_callback( + const std::shared_ptr request, + std::shared_ptr response) +{ + if (!check_connection_state("right_arm/inverse_kinematics")) { + response->success = false; + return; + } + + double initial_joints[7]; + double* initial_ptr = nullptr; + + if (request->joints.empty()) { + initial_ptr = nullptr; + } else { + if (request->joints.size() != 7) { + response->success = false; + RCLCPP_ERROR(this->get_logger(), "Right arm inverse_kinematics: Initial joint array must contain exactly 7 values"); + return; + } + std::copy(request->joints.begin(), request->joints.end(), initial_joints); + initial_ptr = initial_joints; + } + + lbot_position_t position; + lbot_euler_t euler; + + position.x = request->position.x; + position.y = request->position.y; + position.z = request->position.z; + + euler.x = request->euler.x; + euler.y = request->euler.y; + euler.z = request->euler.z; + + double result_joints[7]; + response->success = lbot_api.lbot_inverse_kinematics(lbot_handle, LBOT_RIGHT_ARM, initial_ptr, &position, &euler, result_joints); + + if (response->success) { + response->joints.resize(7); + std::copy(result_joints, result_joints + 7, response->joints.begin()); + RCLCPP_INFO(this->get_logger(), "Right arm inverse kinematics calculated successfully"); + } else { + RCLCPP_ERROR(this->get_logger(), "Right arm inverse kinematics calculation failed: %s", + lbot_api.lbot_get_last_error(lbot_handle).c_str()); + } +} + +// 设置工具坐标系回调函数 +void RightArmServiceNode::set_tool_frame_callback( + const std::shared_ptr request, + std::shared_ptr response) +{ + if (!check_connection_state("right_arm/set_tool_frame")) { + response->success = false; + return; + } + + const auto &frame = request->frame; + + lbot_position_t position; + position.x = frame.position.x; + position.y = frame.position.y; + position.z = frame.position.z; + + lbot_euler_t euler; + euler.x = frame.euler.x; + euler.y = frame.euler.y; + euler.z = frame.euler.z; + + response->success = lbot_api.lbot_set_tool_frame(lbot_handle, LBOT_RIGHT_ARM, frame.name.c_str(), &position, &euler); + + if (response->success) { + RCLCPP_INFO(this->get_logger(), "Right arm tool frame '%s' set successfully", frame.name.c_str()); + } else { + RCLCPP_ERROR(this->get_logger(), "Failed to set right arm tool frame: %s", lbot_api.lbot_get_last_error(lbot_handle).c_str()); + } +} + +// 获取指定工具坐标系回调函数 +void RightArmServiceNode::get_tool_frame_callback( + const std::shared_ptr request, + std::shared_ptr response) +{ + if (!check_connection_state("right_arm/get_tool_frame")) { + response->success = false; + return; + } + + lbot_position_t position; + lbot_euler_t euler; + + response->success = lbot_api.lbot_get_tool_frame(lbot_handle, LBOT_RIGHT_ARM, request->name.c_str(), &position, &euler); + + if (response->success) { + response->frame.name = request->name; + response->frame.position.x = position.x; + response->frame.position.y = position.y; + response->frame.position.z = position.z; + response->frame.euler.x = euler.x; + response->frame.euler.y = euler.y; + response->frame.euler.z = euler.z; + + RCLCPP_INFO(this->get_logger(), "Right arm tool frame '%s' retrieved successfully", request->name.c_str()); + } else { + RCLCPP_ERROR(this->get_logger(), "Failed to get right arm tool frame: %s", lbot_api.lbot_get_last_error(lbot_handle).c_str()); + } +} + + +// 获取当前工具坐标系回调函数 +void RightArmServiceNode::get_current_tool_frame_callback( + const std::shared_ptr request, + std::shared_ptr response) +{ + (void)request; + + if (!check_connection_state("right_arm/get_current_tool_frame")) { + response->success = false; + return; + } + + std::string name = ""; + lbot_position_t position; + lbot_euler_t euler; + + response->success = lbot_api.lbot_get_current_tool_frame( + lbot_handle, + LBOT_RIGHT_ARM, + name, + position, + euler + ); + + if (response->success) { + response->frame.name = name; + response->frame.position.x = position.x; + response->frame.position.y = position.y; + response->frame.position.z = position.z; + response->frame.euler.x = euler.x; + response->frame.euler.y = euler.y; + response->frame.euler.z = euler.z; + + RCLCPP_INFO(this->get_logger(), "Right arm current tool frame '%s' retrieved successfully", response->name.c_str() + ); + } else { + RCLCPP_ERROR(this->get_logger(), "Failed to get current tool frame: %s", lbot_api.lbot_get_last_error(lbot_handle).c_str() + ); + } +} + +// 切换工具坐标系回调函数 +void RightArmServiceNode::change_tool_frame_callback( + const std::shared_ptr request, + std::shared_ptr response) +{ + if (!check_connection_state("right_arm/change_tool_frame")) { + response->success = false; + return; + } + + response->success = lbot_api.lbot_change_tool_frame(lbot_handle, LBOT_RIGHT_ARM, request->name.c_str()); + + if (response->success) { + RCLCPP_INFO(this->get_logger(), "Right arm changed to tool frame '%s'", request->name.c_str()); + } else { + RCLCPP_ERROR(this->get_logger(), "Failed to change right arm tool frame: %s", lbot_api.lbot_get_last_error(lbot_handle).c_str()); + } +} + +// 删除工具坐标系回调函数 +void RightArmServiceNode::delete_tool_frame_callback( + const std::shared_ptr request, + std::shared_ptr response) +{ + if (!check_connection_state("right_arm/delete_tool_frame")) { + response->success = false; + return; + } + + response->success = lbot_api.lbot_delete_tool_frame(lbot_handle, LBOT_RIGHT_ARM, request->name.c_str()); + + if (response->success) { + RCLCPP_INFO(this->get_logger(), "Right arm tool frame '%s' deleted successfully", request->name.c_str()); + } else { + RCLCPP_ERROR(this->get_logger(), "Failed to delete right arm tool frame: %s", lbot_api.lbot_get_last_error(lbot_handle).c_str()); + } +} + +// 获取所有工具坐标系回调函数 +void RightArmServiceNode::get_all_tool_frames_callback( + const std::shared_ptr request, + std::shared_ptr response) +{ + (void)request; + + if (!check_connection_state("right_arm/get_all_tool_frames")) { + response->success = false; + return; + } + + std::vector frame_names; + response->success = lbot_api.lbot_get_all_tool_frames(lbot_handle, LBOT_RIGHT_ARM, frame_names); + + if (response->success) { + response->names = frame_names; + RCLCPP_INFO(this->get_logger(), "Right arm retrieved %zu tool frames", frame_names.size()); + } else { + RCLCPP_ERROR(this->get_logger(), "Failed to get right arm tool frames: %s", lbot_api.lbot_get_last_error(lbot_handle).c_str()); + } +} + +// 零点设置回调函数 +void RightArmServiceNode::set_zero_callback( + const std::shared_ptr request, + std::shared_ptr response) +{ + (void)request; + + if (!check_connection_state("right_arm/set_zero")) { + response->success = false; + return; + } + + response->success = lbot_api.lbot_set_zero(lbot_handle, LBOT_RIGHT_ARM); + + if (response->success) { + RCLCPP_INFO(this->get_logger(), "Right arm joint zero set successfully"); + } else { + RCLCPP_ERROR(this->get_logger(), "Failed to set right arm zero: %s", + lbot_api.lbot_get_last_error(lbot_handle).c_str()); + } +} + +// 使能设置回调函数 +void RightArmServiceNode::set_enable_callback( + const std::shared_ptr request, + std::shared_ptr response) +{ + if (!check_connection_state("right_arm/set_enable")) { + response->success = false; + return; + } + + response->success = lbot_api.lbot_enable_arm(lbot_handle, LBOT_RIGHT_ARM, request->enable); + + if (response->success) { + if (request->enable) { + RCLCPP_INFO(this->get_logger(), "Right arm enable ON successfully"); + } else { + RCLCPP_INFO(this->get_logger(), "Right arm enable OFF successfully"); + } + } else { + if (request->enable) { + RCLCPP_ERROR(this->get_logger(), + "Failed to enable (ON) right arm: %s", + lbot_api.lbot_get_last_error(lbot_handle).c_str()); + } else { + RCLCPP_ERROR(this->get_logger(), + "Failed to disable (OFF) right arm: %s", + lbot_api.lbot_get_last_error(lbot_handle).c_str()); + } + } +} + +// 急停设置回调函数 +void RightArmServiceNode::set_emergency_callback( + const std::shared_ptr request, + std::shared_ptr response) +{ + (void)request; + + if (!check_connection_state("right_arm/set_emergency_stop")) { + response->success = false; + return; + } + + response->success = lbot_api.lbot_emergency_stop(lbot_handle, LBOT_RIGHT_ARM, request->emergency); + + if (response->success) { + if (request->emergency) { + RCLCPP_INFO(this->get_logger(), "Right arm emergency stop activated successfully"); + } else { + RCLCPP_INFO(this->get_logger(), "Right arm emergency stop released successfully"); + } + } else { + if (request->emergency) { + RCLCPP_ERROR(this->get_logger(), + "Failed to activate emergency stop for right arm: %s", + lbot_api.lbot_get_last_error(lbot_handle).c_str()); + } else { + RCLCPP_ERROR(this->get_logger(), + "Failed to release emergency stop for right arm: %s", + lbot_api.lbot_get_last_error(lbot_handle).c_str()); + } + } +} + +void RightArmServiceNode::right_hand_l6_set_joint_callback(const std_msgs::msg::UInt8MultiArray::SharedPtr msg) { + if (!msg || msg->data.empty()) return; + if (!check_connection_state("right_hand/set_l6_joint")) { + return; + } + std::vector hand_joints(msg->data.begin(), msg->data.end()); + + if (!lbot_api.lbot_l6_set_position(lbot_handle, LBOT_RIGHT_ARM, hand_joints)) { + RCLCPP_ERROR(this->get_logger(), "Failed to set right hand joint"); + } +} + +void RightArmServiceNode::right_hand_l6_set_force_callback(const std_msgs::msg::UInt8MultiArray::SharedPtr msg) { + if (!msg || msg->data.empty()) return; + if (!check_connection_state("right_hand/set_l6_force")) { + return; + } + std::vector hand_force(msg->data.begin(), msg->data.end()); + + if (!lbot_api.lbot_l6_set_effort(lbot_handle, LBOT_RIGHT_ARM, hand_force)) { + RCLCPP_ERROR(this->get_logger(), "Failed to set right hand force"); + } +} + +void RightArmServiceNode::right_hand_l6_set_speed_callback(const std_msgs::msg::UInt8MultiArray::SharedPtr msg) { + if (!msg || msg->data.empty()) return; + if (!check_connection_state("right_hand/set_l6_speed")) { + return; + } + std::vector hand_speed(msg->data.begin(), msg->data.end()); + + if (!lbot_api.lbot_l6_set_velocity(lbot_handle, LBOT_RIGHT_ARM, hand_speed)) { + RCLCPP_ERROR(this->get_logger(), "Failed to set right hand speed"); + } +} + +void RightArmServiceNode::right_hand_l10_set_joint_callback(const std_msgs::msg::UInt8MultiArray::SharedPtr msg) { + if (!msg || msg->data.empty()) return; + if (!check_connection_state("right_hand/set_l10_joint")) { + return; + } + std::vector hand_joints(msg->data.begin(), msg->data.end()); + + if (!lbot_api.lbot_l10_set_position(lbot_handle, LBOT_RIGHT_ARM, hand_joints)) { + RCLCPP_ERROR(this->get_logger(), "Failed to set right hand joint"); + } +} + +void RightArmServiceNode::right_hand_l10_set_force_callback(const std_msgs::msg::UInt8MultiArray::SharedPtr msg) { + if (!msg || msg->data.empty()) return; + if (!check_connection_state("right_hand/set_l10_force")) { + return; + } + std::vector hand_force(msg->data.begin(), msg->data.end()); + + if (!lbot_api.lbot_l10_set_effort(lbot_handle, LBOT_RIGHT_ARM, hand_force)) { + RCLCPP_ERROR(this->get_logger(), "Failed to set right hand force"); + } +} + +void RightArmServiceNode::right_hand_l10_set_speed_callback(const std_msgs::msg::UInt8MultiArray::SharedPtr msg) { + if (!msg || msg->data.empty()) return; + if (!check_connection_state("right_hand/set_l10_speed")) { + return; + } + std::vector hand_speed(msg->data.begin(), msg->data.end()); + + if (!lbot_api.lbot_l10_set_velocity(lbot_handle, LBOT_RIGHT_ARM, hand_speed)) { + RCLCPP_ERROR(this->get_logger(), "Failed to set right hand speed"); + } +} + +void RightArmServiceNode::right_hand_l20_set_joint_callback(const std_msgs::msg::Int32MultiArray::SharedPtr msg) { + if (!msg || msg->data.empty()) return; + if (!check_connection_state("right_hand/set_l20_joint")) { + return; + } + std::vector hand_joints(msg->data.begin(), msg->data.end()); + + if (!lbot_api.lbot_l20_set_all_position(lbot_handle, LBOT_RIGHT_ARM, hand_joints)) { + RCLCPP_ERROR(this->get_logger(), "Failed to set right L20 hand joint"); + } +} + +void RightArmServiceNode::right_hand_l20_set_series_position_callback(const std_msgs::msg::Int32MultiArray::SharedPtr msg) { + if (!msg || msg->data.size() < 7) return; + if (!check_connection_state("right_hand/set_l20_series_position")) { + return; + } + + lbot_l20_series_cmd_t cmd{}; + cmd.finger = static_cast(msg->data[0]); + for (size_t i = 0; i < 6; ++i) { + cmd.data[i] = static_cast(msg->data[i + 1]); + } + + if (!lbot_api.lbot_l20_set_series_position(lbot_handle, LBOT_RIGHT_ARM, &cmd)) { + RCLCPP_ERROR(this->get_logger(), "Failed to set right L20 hand series position"); + } +} + +} // namespace lbot_driver + +/****************************** 主函数 ******************************/ + +int main(int argc, char ** argv) { + rclcpp::init(argc, argv); + + RCLCPP_INFO(rclcpp::get_logger("lbot_driver"), "Starting LBot Driver with separate service nodes..."); + + // 创建三个节点 + auto main_node = std::make_shared("lbot_main_node"); // 主节点:连接管理+状态发布+关节跟随 + auto left_arm_node = std::make_shared("lbot_left_arm_node"); // 左臂服务节点 + auto right_arm_node = std::make_shared("lbot_right_arm_node"); // 右臂服务节点 + + rclcpp::on_shutdown([&]() { + RCLCPP_INFO(rclcpp::get_logger("lbot_driver"), "Shutdown signal received, stopping..."); + if (main_node) { + main_node->shutting_down_ = true; + main_node->disconnect_robot(); + } + RCLCPP_INFO(rclcpp::get_logger("lbot_driver"), "Cleanup completed"); + }); + + // 创建三个单线程执行器 + rclcpp::executors::SingleThreadedExecutor main_executor; // 主节点执行器 + rclcpp::executors::SingleThreadedExecutor left_arm_executor; // 左臂服务执行器 + rclcpp::executors::SingleThreadedExecutor right_arm_executor; // 右臂服务执行器 + + // 将节点添加到对应执行器 + main_executor.add_node(main_node); + left_arm_executor.add_node(left_arm_node); + right_arm_executor.add_node(right_arm_node); + + // 创建三个线程分别运行执行器 + std::thread main_thread([&main_executor]() { + try { + RCLCPP_INFO(rclcpp::get_logger("main_executor"), "Main node executor spinning..."); + main_executor.spin(); + } catch (const std::exception& e) { + RCLCPP_ERROR(rclcpp::get_logger("main_executor"), "Exception in main executor: %s", e.what()); + } + }); + + std::thread left_arm_thread([&left_arm_executor]() { + try { + RCLCPP_INFO(rclcpp::get_logger("left_arm_executor"), "Left arm service executor spinning..."); + left_arm_executor.spin(); + } catch (const std::exception& e) { + RCLCPP_ERROR(rclcpp::get_logger("left_arm_executor"), "Exception in left arm executor: %s", e.what()); + } + }); + + std::thread right_arm_thread([&right_arm_executor]() { + try { + RCLCPP_INFO(rclcpp::get_logger("right_arm_executor"), "Right arm service executor spinning..."); + right_arm_executor.spin(); + } catch (const std::exception& e) { + RCLCPP_ERROR(rclcpp::get_logger("right_arm_executor"), "Exception in right arm executor: %s", e.what()); + } + }); + + RCLCPP_INFO(rclcpp::get_logger("lbot_driver"), "All nodes ready, spinning..."); + + // 等待所有线程结束 + main_thread.join(); + left_arm_thread.join(); + right_arm_thread.join(); + + RCLCPP_INFO(rclcpp::get_logger("lbot_driver"), "LBot Driver stopped"); + return 0; +}