Skip to content

Latest commit

 

History

History
182 lines (123 loc) · 9.58 KB

File metadata and controls

182 lines (123 loc) · 9.58 KB

LinkerHand-Python-SDK

专注于人工智能和机器人解决方案,帮助开发者、企业、科研机构快速实现真实场景落地

中文 | English

注意

  • 请确保灵巧手未开启其他控制,如linker_hand_sdk_ros、动捕手套控制和其他控制灵巧手的topic。以免冲突。
  • 请将固定灵巧手,以免灵巧手在运动时跌落。
  • 请确保灵巧手电源与USB转CAN连接正确。
Name Version Link
Python SDK SDK Version Python 3.8+ Windows 11 Ubuntu 20.04+ GitHub 仓库
ROS SDK SDK Version Python 3.8+ Ubuntu 20.04+ ROS Noetic GitHub 仓库
ROS2 SDK SDK Version Python 3.11 Ubuntu 24.04 ROS 2 Jazzy Windows 11 GitHub 仓库

Installation

  您可以在安装requirements.txt后的情况下运行示例。仅支持 Python3。

  • download
$ git clone https://github.com/linker-bot/linkerhand-python-sdk.git
  • install
$ cd linkerhand-python-sdk/
# win下需要安装python-can-candle用于适配透明CAN设备candle协议
$ pip install python-can
$ pip install python-can-candle
$ pip3 install -r requirements.txt
  • 快速使用示例 by CAN 编辑config/setting.yaml配置文件,按照配置文件内注释说明进行参数修改,配置CAN: "can0"(根据实际硬件情况来确定,一般第一个为can0),配置MODBUS:"None"
# Open the CAN port
$ sudo /usr/sbin/ip link set can0 up type can bitrate 1000000 # USB-to-CAN device blue light stays solid. This step can be skipped on Ubuntu systems after modifying setting.ymal as required.
$ cd example/gui_control
$ sudo chmod a+x gui_control.py
$ python3 gui_control.py

RS485 协议使用 当前支持O6/L6/L7/L10,其他型号灵巧手请参考官网MODBUS RS485协议文档 注:如不确定协议类型,请咨询技术支持。

编辑config/setting.yaml配置文件,按照配置文件内注释说明进行参数修改,将MODBUS:"/dev/ttyUSB0",配置文件中"modbus"参数为"/dev/ttyUSB0"。USB-RS485转换器在Ubuntu上一般显示为/dev/ttyUSB* or /dev/ttyACM* modbus: "None" or "/dev/ttyUSB0"

# 确保requirements.txt安装依赖
# 安装系统级相关驱动
$ pip install minimalmodbus --break-system-packages
$ pip install pyserial --break-system-packages
$ pip install pymodbus --break-system-packages
# 查看USB-RS485端口号
$ ls /dev
# 可以看到类似ttyUSB0端口后给端口执行权限
$ sudo chmod 777 /dev/ttyUSB0
# GUI控制示例
$ python3 example/gui_control/gui_control.py

相关文档

Linker Hand API for Python Document

更新说明

  • release_3.0.1

  • 1、支持O6/L6/L10 RS485通讯 pymodbus模式

  • release_2.2.4

  • 1、新增支持G20工业版灵巧手

  • 2、重绘GUI

  • release_2.1.9

  • 1、新增支持O6灵巧手

  • release_2.1.8

  • 1、修复偶发撞帧问题

  • 2.1.4

    • 1、新增支持L21
    • 2、新增支持矩阵式压力传感器
    • 3、支持L10 Mujoco仿真
  • 1.3.6

    • 支持LinkerHand L7/L20/L25版本灵巧手
  • 1.1.2

    • 支持LinkerHand L10版本灵巧手
    • 增加GUI控制L10灵巧手
    • 增加GUI显示L10灵巧手压感图形模式数据
    • 增加部分示例源码
  • position与手指关节对照表

    O6: ["大拇指弯曲", "大拇指横摆","食指弯曲", "中指弯曲", "无名指弯曲","小拇指弯曲"]

    L6: ["大拇指弯曲", "大拇指横摆","食指弯曲", "中指弯曲", "无名指弯曲","小拇指弯曲"]

    L7: ["大拇指弯曲", "大拇指横摆","食指弯曲", "中指弯曲", "无名指弯曲","小拇指弯曲","拇指旋转"]

    L10: ["拇指根部", "拇指侧摆","食指根部", "中指根部", "无名指根部","小指根部","食指侧摆","无名指侧摆","小指侧摆","拇指旋转"]

    L20: ["拇指根部", "食指根部", "中指根部", "无名指根部","小指根部","拇指侧摆","食指侧摆","中指侧摆","无名指侧摆","小指侧摆","拇指横摆","预留","预留","预留","预留","拇指尖部","食指末端","中指末端","无名指末端","小指末端"]

    G20(工业版): ["拇指根部", "食指根部", "中指根部", "无名指根部","小指根部","拇指侧摆","食指侧摆","中指侧摆","无名指侧摆","小指侧摆","拇指横摆","预留","预留","预留","预留","拇指尖部","食指末端","中指末端","无名指末端","小指末端"]

    L21: ["大拇指根部","食指根部","中指根部","无名指根部","小拇指根部","大拇指侧摆","食指侧摆","中指侧摆","无名指侧摆","小拇指侧摆","大拇指横滚","预留","预留","预留","预留","大拇指中部","预留","预留","预留","预留","大拇指指尖","食指指尖","中指指尖","无名指指尖","小拇指指尖"]

    L25: ["大拇指根部", "食指根部", "中指根部","无名指根部","小拇指根部","大拇指侧摆","食指侧摆","中指侧摆","无名指侧摆","小拇指侧摆","大拇指横滚","预留","预留","预留","预留","大拇指中部","食指中部","中指中部","无名指中部","小拇指中部","大拇指指尖","食指指尖","中指指尖","无名指指尖","小拇指指尖"]

   在运行之前, 请将 setting.yaml 的配置信息修改为您实际控制的灵巧手配置信息.

开启后会弹出UI界面。通过滑动条可控制相应LinkerHand灵巧手关节运动

  • 增加或修改动作示例。在constants.py文件中可增加或修改动作。
# 例如增加L6的动作序列
"L6": HandConfig(
        joint_names_en=["thumb_cmc_pitch", "thumb_cmc_yaw", "index_mcp_pitch", "middle_mcp_pitch", "pinky_mcp_pitch", "ring_mcp_pitch"],
        joint_names=["大拇指弯曲", "大拇指横摆", "食指弯曲", "中指弯曲", "无名指弯曲", "小拇指弯曲"],
        init_pos=[250] * 6,
        preset_actions={
            "张开": [250, 250, 250, 250, 250, 250],
            "壹": [0, 31, 255, 0, 0, 0],
            "贰": [0, 31, 255, 255, 0, 0],
            "叁": [0, 30, 255, 255, 255, 0], 
            "肆": [0, 30, 255, 255, 255, 255],
            "伍": [250, 250, 250, 250, 250, 250],
            "OK": [54, 41, 164, 250, 250, 250],
            "点赞": [255, 31, 0, 0, 0, 0],
            "握拳": [49, 61, 0, 0, 0, 0],
            # 增加自定义动作......
        }
    )

API 说明文档

Linker Hand API for Python Document