Skip to content

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.git
shell
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-xxx
shell
# 如果 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()启动固件升级
帮助