Python SDK - Revo 1 灵巧手
系统要求
- Linux: Ubuntu 20.04/22.04 LTS
- macOS: 10.15+
- Windows: 10/11
- Python: 3.9 ~ 3.12 (推荐 Conda)
快速开始
克隆仓库
shell
git clone https://github.com/BrainCoTech/brainco-hand-sdk.gitshell
git clone git@github.com:BrainCoTech/brainco-hand-sdk.git安装与配置
shell
# 进入 Python 目录
cd brainco-hand-sdk/python
# 激活 Conda 环境(推荐)
conda activate py310
# 安装 SDK 依赖
pip install -r requirements.txt --index-url https://pypi.org/simple/
# 如果无法通过 PyPI 安装,可手动下载 .whl 文件安装
# 下载地址: https://pypi.org/project/bc-stark-sdk/#files
pip install --force-reinstall '/path/to/bc_stark_sdk-x.x.x-cp39-abi3-manylinux_2_31_x86_64.whl'
# 配置串口设备权限
# Linux 系统中,串口设备(如 /dev/ttyUSB0)通常归属于 dialout 用户组
# 将当前用户添加到 dialout 组
sudo usermod -aG dialout $USER
# 注意:添加后需要重新登录才能生效
# 运行示例
cd revo1
python revo1_ctrl.py # 单手控制
python revo1_touch.py # 触觉传感器(触觉版)
python revo1_ctrl_multi.py # 多手控制
python revo1_action_seq.py # 动作序列
python revo1_cfg.py # 设备配置
python revo1_dfu.py # 固件升级shell
# 安装步骤同 Ubuntu
# 注意:macOS 串口设备名称通常为 /dev/tty.usbserial-xxxshell
# 如果 USB 驱动无法识别,请在设备管理器中查看串口名称
# 串口驱动下载: https://app.brainco.cn/universal/stark-serialport-prebuild/driver/CH340-drivers.zip
# 其他安装步骤同 Ubuntu
# 注意:Windows 串口设备名称通常为 COM3, COM4 等示例代码
SDK 提供了丰富的示例代码,涵盖不同通信协议和应用场景。
跨平台示例(推荐)⭐
统一的跨平台示例,支持自动检测设备和多种通信协议。
| 示例 | 说明 |
|---|---|
| hand_demo.py | 综合演示 |
| hand_monitor.py | 实时数据监控 |
| hand_dfu.py | 固件升级 |
Modbus-RTU 协议
单手/双手控制
触觉传感器
动作序列(手势)
API 参考
API 查阅与代码自动补全建议以 bc-stark-sdk (v2.x) 生成的完整类型存根为准:下载 main_mod.pyi。下方保留常用接口的快速参考。
API 快速参考
连接管理
| API | 说明 |
|---|---|
libstark.auto_detect() | 自动检测设备(推荐,支持所有协议) |
libstark.init_from_detected() | 从检测结果初始化设备 |
libstark.close_device_handler() | 关闭设备连接(推荐) |
libstark.list_available_ports() | 列出可用串口 |
libstark.list_zqwl_devices() | 列出 ZQWL CAN 适配器 |
libstark.modbus_open() | 打开 Modbus 连接 |
libstark.modbus_close() | 关闭 Modbus 连接 |
libstark.init_device_handler() | 创建设备处理器(CAN/CANFD) |
libstark.init_zqwl_can() | 初始化 ZQWL CAN 适配器 |
libstark.auto_detect_device() | 自动检测设备(已弃用) |
libstark.auto_detect_modbus_revo1() | 自动检测 Revo 1 设备(已弃用) |
设备信息
| API | 说明 |
|---|---|
ctx.get_device_info() | 获取设备完整信息 |
ctx.get_device_sn() | 获取设备序列号 |
ctx.get_device_fw_version() | 获取固件版本 |
ctx.get_sku_type() | 获取 SKU 类型 |
ctx.get_voltage() | 获取电池电压 |
ctx.get_serialport_cfg() | 获取串口配置 |
ctx.get_serialport_baudrate() | 获取波特率 |
ctx.set_serialport_baudrate() | 设置波特率 |
ctx.set_slave_id() | 设置从站 ID |
设备配置
| API | 说明 |
|---|---|
ctx.get_force_level() | 获取力度等级 |
ctx.set_force_level() | 设置力度等级 |
ctx.get_auto_calibration_enabled() | 获取自动校准状态 |
ctx.set_auto_calibration() | 设置自动校准 |
ctx.calibrate_position() | 手动校准位置 |
ctx.get_turbo_mode_enabled() | 获取 Turbo 模式状态 |
ctx.set_turbo_mode_enabled() | 设置 Turbo 模式 |
ctx.get_turbo_config() | 获取 Turbo 配置 |
ctx.set_turbo_config() | 设置 Turbo 配置 |
ctx.reset_default_gesture() | 恢复默认手势 |
ctx.reset_default_settings() | 恢复默认设置 |
ctx.reboot() | 重启设备 |
设备类型检查
| API | 说明 |
|---|---|
ctx.is_touch_hand() | 检查是否有触觉传感器 |
ctx.uses_revo1_motor_api() | 检查是否使用 Revo 1 电机 API |
ctx.uses_revo2_motor_api() | 检查是否使用 Revo 2 电机 API |
ctx.uses_pressure_touch_api() | 检查是否使用压力触觉 API |
电机控制 - 位置
| API | 说明 |
|---|---|
ctx.set_finger_position() | 设置单个手指位置(0~1000) |
ctx.set_finger_positions() | 设置所有手指位置 |
ctx.get_finger_positions() | 获取所有手指位置 |
电机控制 - 速度
| API | 说明 |
|---|---|
ctx.set_finger_speed() | 设置单个手指速度(-1000~+1000) |
ctx.set_finger_speeds() | 设置所有手指速度 |
ctx.get_finger_speeds() | 获取所有手指速度 |
电机控制 - 电流
| API | 说明 |
|---|---|
ctx.set_finger_current() | 设置单个手指电流(-1000~+1000) |
ctx.set_finger_currents() | 设置所有手指电流 |
ctx.get_finger_currents() | 获取所有手指电流 |
电机状态
| API | 说明 |
|---|---|
ctx.get_motor_status() | 获取电机综合状态 |
ctx.get_motor_state() | 获取电机运行状态 |
触觉传感器
| API | 说明 |
|---|---|
ctx.get_touch_sensor_enabled() | 获取触觉传感器启用状态 |
ctx.get_touch_sensor_fw_versions() | 获取触觉传感器固件版本 |
ctx.get_touch_sensor_raw_data() | 获取触觉原始数据 |
ctx.get_touch_sensor_status() | 获取触觉传感器状态 |
ctx.touch_sensor_setup() | 设置触觉传感器 |
ctx.touch_sensor_reset() | 重置触觉传感器 |
ctx.touch_sensor_calibrate() | 校准触觉传感器 |
LED 和按钮
| API | 说明 |
|---|---|
ctx.get_led_info() | 获取 LED 状态 |
ctx.set_led_info() | 设置 LED 状态 |
ctx.get_button_event() | 获取按钮事件 |
动作序列
| API | 说明 |
|---|---|
ctx.get_action_sequence() | 获取动作序列 |
ctx.transfer_action_sequence() | 上传动作序列 |
ctx.save_action_sequence() | 保存动作序列到闪存 |
ctx.run_action_sequence() | 执行动作序列 |
ctx.clear_action_sequence() | 清除自定义动作序列 |
固件升级
| API | 说明 |
|---|---|
ctx.start_dfu() | 启动固件升级 |