Skip to content

Commit 98df055

Browse files
Merge pull request #9 from linker-bot/dev
docs: revised content
2 parents 3e84551 + 6ad493f commit 98df055

2 files changed

Lines changed: 29 additions & 28 deletions

File tree

README.md

Lines changed: 20 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
[![Architecture](https://img.shields.io/badge/Arch-x86__64%20%7C%20aarch64-lightgrey.svg)]()
66
[![CI/CD](https://github.com/linker-bot/linkerhand-cpp-sdk/workflows/CI/CD/badge.svg)](https://github.com/linker-bot/linkerhand-cpp-sdk/actions)
77

8-
> 灵心巧手系列灵巧手的官方 C++ 软件开发工具包
8+
> 专注于人工智能和机器人解决方案,帮助开发者、企业、科研机构快速实现真实场景落地
99
1010
LinkerHand-CPP-SDK 由灵心巧手(北京)科技有限公司开发,提供完整的 C++ API,用于控制 L6、L7、L10、L20、L21、L25、O6、O20、G20等型号的灵巧手设备,支持 CAN / CAN-FD / Modbus 多种总线。
1111

@@ -57,7 +57,6 @@ LinkerHand-CPP-SDK 由灵心巧手(北京)科技有限公司开发,提供
5757
- CMake:建议 4.0+(已实测 4.0.3)
5858
- 依赖:`PCAN-Basic` 与 mingw 运行时 DLL 已随发布包附带
5959

60-
> CAN-FD 在 ARM + Ubuntu ≤ 18 上自动禁用;O20(CAN-FD)目前仅在 Linux x86_64 上支持。
6160

6261
## 🚀 快速开始
6362

@@ -91,17 +90,19 @@ sudo ./build.sh -u # 卸载
9190
build.bat # 编译
9291
```
9392

94-
> 发布包是预编译产物,`build.sh` 仅负责装配示例与触发安装;SDK 共享库取自 `lib/` 下对应平台目录,无须从源码编译。
9593

9694
### 3. 启动CAN设备
9795

98-
打开终端执行
9996
```bash
97+
# Linux
98+
10099
请手动启动CAN接口(需要sudo):
101100
sudo ip link set canX up type can bitrate 1000000
102101

103102
或使用批量启动脚本:
104103
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
104+
105+
# Windows (无需操作)
105106
```
106107

107108
### 4. 运行示例程序
@@ -114,7 +115,7 @@ cd build/bin
114115
./linker_hand_example # CLI 工具
115116
./test_o6_can_0
116117
./test_l10_can_0
117-
./test_o20_canfd_0 # 仅 Linux x86_64
118+
./test_o20_canfd_0
118119

119120
# Windows
120121
build\bin\linker_hand_example.exe
@@ -234,26 +235,26 @@ cmake --build . -j
234235
### 主要 API 接口
235236

236237
**控制接口**
237-
- `fingerMove()` — 设置关节位置(原始值 0–255)
238-
- `fingerMoveArc()` — 设置关节位置(弧度)
238+
- `fingerMove()` — 设置关节位置
239239
- `setSpeed()` — 设置运动速度
240240
- `setTorque()` — 设置扭矩限制
241241

242242
**状态查询**
243-
- `getState()` / `getStateArc()` — 获取关节状态(原始值 / 弧度)
244-
- `getSpeed()` / `getTorque()` — 获取当前速度 / 扭矩设置
243+
- `getState()` — 获取关节状态
244+
- `getSpeed()` — 获取当前速度
245+
- `getTorque()` — 获取当前扭矩
245246

246247
**传感器**
247-
- `getForce()`压力数据(法向 / 切向 / 方向 / 接近感应)
248-
- `getTemperature()`电机温度
249-
- `getFaultCode()`电机故障码
248+
- `getForce()`获取传感器数据
249+
- `getTemperature()`获取电机温度
250+
- `getFaultCode()`获取电机故障码
250251

251252
## 🔌 通信协议
252253

253254
| 协议 | 枚举值 | 适用范围 |
254255
|------|--------|---------|
255256
| CAN | `COMM_TYPE::CAN` | 全系列 |
256-
| CAN-FD | `COMM_TYPE::CAN`(搭配 `CanFD` 实现) | O20(仅 Linux x86_64|
257+
| CAN-FD | `COMM_TYPE::CAN`(搭配 `CanFD` 实现) | O20(不支持Linux aarch64|
257258
| Modbus | `COMM_TYPE::MODBUS` | L7 / L10 / O6 |
258259

259260

@@ -271,7 +272,7 @@ cmake --build . -j
271272
| LinkerHand L21 | CAN | L21 series robotic hand |
272273
| LinkerHand L25 | CAN | L25 series robotic hand |
273274
| LinkerHand O6 | CAN / Modbus | O6 series robotic hand |
274-
| LinkerHand O20 | CAN-FD | O20 series robotic hand(仅 Linux x86_64|
275+
| LinkerHand O20 | CAN-FD | O20 series robotic hand(不支持Linux aarch64|
275276

276277
## 📁 项目结构
277278

@@ -296,7 +297,8 @@ linkerhand-cpp-sdk/
296297
│ │ ├── x86_64/ # Linux x86_64 共享库(.so)
297298
│ │ └── arm64/ # Linux aarch64 共享库(.so)
298299
│ └── win64/
299-
│ └── mingw/ # Windows MinGW(.dll / .dll.a)
300+
│ ├── mingw/ # Windows MinGW(.dll)
301+
│ └── msvc/ # Windows MSVC(.dll / .lib)
300302
├── examples/ # 示例源码(CAN / CAN-FD / Modbus)
301303
├── docs/ # API-Reference / FAQ / TROUBLESHOOTING
302304
├── cmake/ # find_package 用的 *-config.cmake
@@ -308,7 +310,7 @@ linkerhand-cpp-sdk/
308310
└── CMakeLists.txt # 顶层 CMake:聚合 examples + 安装规则
309311
```
310312

311-
> 发布包以预编译共享库为核心,`include/``lib/` 是对外契约;`examples/``cmake/` 是配套消费样例与集成胶水。
313+
> `include/``lib/` 是对外契约;`examples/``cmake/` 是配套消费样例与集成胶水。
312314
313315
## 📜 示例程序列表
314316

@@ -332,8 +334,8 @@ linkerhand-cpp-sdk/
332334
| `test_o6_modbus_0.cpp` | O6 Modbus 基础示例 |
333335
| `test_o6_modbus_1.cpp` | O6 Modbus 进阶示例 |
334336
| `test_o6_modbus_2.cpp` | O6 Modbus 高级示例 |
335-
| `test_o20_canfd_0.cpp` | O20 CAN-FD 基础示例(仅 Linux x86_64|
336-
| `test_o20_canfd_1.cpp` | O20 CAN-FD 进阶示例(仅 Linux x86_64|
337+
| `test_o20_canfd_0.cpp` | O20 CAN-FD 基础示例(不支持Linux aarch64|
338+
| `test_o20_canfd_1.cpp` | O20 CAN-FD 进阶示例(不支持Linux aarch64|
337339
| `L10/action_group_show.cpp` | L10 动作组演示 |
338340

339341
## 📖 关节映射表

docs/API-Reference.md

Lines changed: 9 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -98,14 +98,19 @@ void setTorque(const std::vector<uint8_t> &torque);
9898
9999
---
100100
101-
### 获取法向压力、切向压力、切向方向、接近感应
101+
### 获取传感器数据
102102
```cpp
103103
std::vector<std::vector<std::vector<uint8_t>>> getForce();
104104
```
105105
**Description**:
106-
获取手部传感器的综合数据,包括法向压力、切向压力、切向方向和接近感应
106+
获取五个手指的触觉力传感器数据。每个手指的传感器分布为一个 6 行 × 12 列的二维矩阵(共 72 个传感单元),本函数将全部五个手指的数据封装在一个三维向量中返回
107107
**Returns**:
108-
- 返回一个三维向量:第一维为传感器类型,第二维为手指,第三维为该手指对应的数据。
108+
- 返回一个三维向量:std::vector<std::vector<std::vector<uint8_t>>>
109+
外层 vector 大小 = 5(五根手指)。
110+
中层 vector(每根手指)大小 = 6(行)。
111+
内层 vector(每行)大小 = 12(列)。
112+
每个元素为 uint8_t 类型的值。
113+
> 注:O6型号的灵巧手矩阵数据为 4 行 × 10 列。
109114
110115
---
111116

@@ -142,12 +147,6 @@ std::vector<double> getStateArc();
142147

143148
---
144149

145-
### 获取大拇指、食指、中指、无名指、小指的所有压力数据
146-
147-
压感数据统一通过 `getForce()` 获取,返回三维向量 `[传感器类型][手指][数据]`,传感器类型依次为法向压力、切向压力、切向方向、接近感应。`LinkerHandApi` 不再提供 `getPressure()` 接口。
148-
149-
---
150-
151150
### 获取版本号
152151
```cpp
153152
std::string getVersion();
@@ -214,7 +213,7 @@ void setDisable(const std::vector<uint8_t> &disable);
214213

215214
---
216215

217-
### 清除电机故障码(目前仅支持 L20)
216+
### 清除电机故障码
218217
```cpp
219218
void clearFaultCode();
220219
```

0 commit comments

Comments
 (0)