From 6ad493f6ab9828a899a295945c00d44b58d28317 Mon Sep 17 00:00:00 2001 From: liangshaoteng Date: Fri, 12 Jun 2026 11:06:10 +0800 Subject: [PATCH] docs: revised content --- README.md | 38 ++++++++++++++++++++------------------ docs/API-Reference.md | 19 +++++++++---------- 2 files changed, 29 insertions(+), 28 deletions(-) diff --git a/README.md b/README.md index 58a9b62..dbfc76e 100644 --- a/README.md +++ b/README.md @@ -5,7 +5,7 @@ [![Architecture](https://img.shields.io/badge/Arch-x86__64%20%7C%20aarch64-lightgrey.svg)]() [![CI/CD](https://github.com/linker-bot/linkerhand-cpp-sdk/workflows/CI/CD/badge.svg)](https://github.com/linker-bot/linkerhand-cpp-sdk/actions) -> 灵心巧手系列灵巧手的官方 C++ 软件开发工具包 +> 专注于人工智能和机器人解决方案,帮助开发者、企业、科研机构快速实现真实场景落地 LinkerHand-CPP-SDK 由灵心巧手(北京)科技有限公司开发,提供完整的 C++ API,用于控制 L6、L7、L10、L20、L21、L25、O6、O20、G20等型号的灵巧手设备,支持 CAN / CAN-FD / Modbus 多种总线。 @@ -57,7 +57,6 @@ LinkerHand-CPP-SDK 由灵心巧手(北京)科技有限公司开发,提供 - CMake:建议 4.0+(已实测 4.0.3) - 依赖:`PCAN-Basic` 与 mingw 运行时 DLL 已随发布包附带 -> CAN-FD 在 ARM + Ubuntu ≤ 18 上自动禁用;O20(CAN-FD)目前仅在 Linux x86_64 上支持。 ## 🚀 快速开始 @@ -91,17 +90,19 @@ sudo ./build.sh -u # 卸载 build.bat # 编译 ``` -> 发布包是预编译产物,`build.sh` 仅负责装配示例与触发安装;SDK 共享库取自 `lib/` 下对应平台目录,无须从源码编译。 ### 3. 启动CAN设备 -打开终端执行 ```bash +# Linux + 请手动启动CAN接口(需要sudo): sudo ip link set canX up type can bitrate 1000000 或使用批量启动脚本: for i in 0 1 2 3 4; do sudo ip link set can$i up type can bitrate 1000000; sudo ip link set can$i txqueuelen 1024; done + +# Windows (无需操作) ``` ### 4. 运行示例程序 @@ -114,7 +115,7 @@ cd build/bin ./linker_hand_example # CLI 工具 ./test_o6_can_0 ./test_l10_can_0 -./test_o20_canfd_0 # 仅 Linux x86_64 +./test_o20_canfd_0 # Windows build\bin\linker_hand_example.exe @@ -234,26 +235,26 @@ cmake --build . -j ### 主要 API 接口 **控制接口** -- `fingerMove()` — 设置关节位置(原始值 0–255) -- `fingerMoveArc()` — 设置关节位置(弧度) +- `fingerMove()` — 设置关节位置 - `setSpeed()` — 设置运动速度 - `setTorque()` — 设置扭矩限制 **状态查询** -- `getState()` / `getStateArc()` — 获取关节状态(原始值 / 弧度) -- `getSpeed()` / `getTorque()` — 获取当前速度 / 扭矩设置 +- `getState()` — 获取关节状态 +- `getSpeed()` — 获取当前速度 +- `getTorque()` — 获取当前扭矩 **传感器** -- `getForce()` — 压力数据(法向 / 切向 / 方向 / 接近感应) -- `getTemperature()` — 电机温度 -- `getFaultCode()` — 电机故障码 +- `getForce()` — 获取传感器数据 +- `getTemperature()` — 获取电机温度 +- `getFaultCode()` — 获取电机故障码 ## 🔌 通信协议 | 协议 | 枚举值 | 适用范围 | |------|--------|---------| | CAN | `COMM_TYPE::CAN` | 全系列 | -| CAN-FD | `COMM_TYPE::CAN`(搭配 `CanFD` 实现) | O20(仅 Linux x86_64) | +| CAN-FD | `COMM_TYPE::CAN`(搭配 `CanFD` 实现) | O20(不支持Linux aarch64) | | Modbus | `COMM_TYPE::MODBUS` | L7 / L10 / O6 | @@ -271,7 +272,7 @@ cmake --build . -j | LinkerHand L21 | CAN | L21 series robotic hand | | LinkerHand L25 | CAN | L25 series robotic hand | | LinkerHand O6 | CAN / Modbus | O6 series robotic hand | -| LinkerHand O20 | CAN-FD | O20 series robotic hand(仅 Linux x86_64) | +| LinkerHand O20 | CAN-FD | O20 series robotic hand(不支持Linux aarch64) | ## 📁 项目结构 @@ -296,7 +297,8 @@ linkerhand-cpp-sdk/ │ │ ├── x86_64/ # Linux x86_64 共享库(.so) │ │ └── arm64/ # Linux aarch64 共享库(.so) │ └── win64/ -│ └── mingw/ # Windows MinGW(.dll / .dll.a) +│ ├── mingw/ # Windows MinGW(.dll) +│ └── msvc/ # Windows MSVC(.dll / .lib) ├── examples/ # 示例源码(CAN / CAN-FD / Modbus) ├── docs/ # API-Reference / FAQ / TROUBLESHOOTING ├── cmake/ # find_package 用的 *-config.cmake @@ -308,7 +310,7 @@ linkerhand-cpp-sdk/ └── CMakeLists.txt # 顶层 CMake:聚合 examples + 安装规则 ``` -> 发布包以预编译共享库为核心,`include/` 与 `lib/` 是对外契约;`examples/` 与 `cmake/` 是配套消费样例与集成胶水。 +> `include/` 与 `lib/` 是对外契约;`examples/` 与 `cmake/` 是配套消费样例与集成胶水。 ## 📜 示例程序列表 @@ -332,8 +334,8 @@ linkerhand-cpp-sdk/ | `test_o6_modbus_0.cpp` | O6 Modbus 基础示例 | | `test_o6_modbus_1.cpp` | O6 Modbus 进阶示例 | | `test_o6_modbus_2.cpp` | O6 Modbus 高级示例 | -| `test_o20_canfd_0.cpp` | O20 CAN-FD 基础示例(仅 Linux x86_64) | -| `test_o20_canfd_1.cpp` | O20 CAN-FD 进阶示例(仅 Linux x86_64) | +| `test_o20_canfd_0.cpp` | O20 CAN-FD 基础示例(不支持Linux aarch64) | +| `test_o20_canfd_1.cpp` | O20 CAN-FD 进阶示例(不支持Linux aarch64) | | `L10/action_group_show.cpp` | L10 动作组演示 | ## 📖 关节映射表 diff --git a/docs/API-Reference.md b/docs/API-Reference.md index c1bbd9a..fea28df 100644 --- a/docs/API-Reference.md +++ b/docs/API-Reference.md @@ -98,14 +98,19 @@ void setTorque(const std::vector &torque); --- -### 获取法向压力、切向压力、切向方向、接近感应 +### 获取传感器数据 ```cpp std::vector>> getForce(); ``` **Description**: -获取手部传感器的综合数据,包括法向压力、切向压力、切向方向和接近感应。 +获取五个手指的触觉力传感器数据。每个手指的传感器分布为一个 6 行 × 12 列的二维矩阵(共 72 个传感单元),本函数将全部五个手指的数据封装在一个三维向量中返回。 **Returns**: -- 返回一个三维向量:第一维为传感器类型,第二维为手指,第三维为该手指对应的数据。 +- 返回一个三维向量:std::vector>> + 外层 vector 大小 = 5(五根手指)。 + 中层 vector(每根手指)大小 = 6(行)。 + 内层 vector(每行)大小 = 12(列)。 + 每个元素为 uint8_t 类型的值。 +> 注:O6型号的灵巧手矩阵数据为 4 行 × 10 列。 --- @@ -142,12 +147,6 @@ std::vector getStateArc(); --- -### 获取大拇指、食指、中指、无名指、小指的所有压力数据 - -压感数据统一通过 `getForce()` 获取,返回三维向量 `[传感器类型][手指][数据]`,传感器类型依次为法向压力、切向压力、切向方向、接近感应。`LinkerHandApi` 不再提供 `getPressure()` 接口。 - ---- - ### 获取版本号 ```cpp std::string getVersion(); @@ -214,7 +213,7 @@ void setDisable(const std::vector &disable); --- -### 清除电机故障码(目前仅支持 L20) +### 清除电机故障码 ```cpp void clearFaultCode(); ```