跳到主要内容

VITAI Gripper 90 Python SDK 使用说明

本文档说明如何使用 vitai_gripper_90.py 通过 Modbus RTU 控制 VITAI-Gripper90 夹爪。

1. 功能概览

SDK 提供 MotorController 类,用于完成以下操作:

  • 建立串口 Modbus RTU 通信
  • 设置目标位置、速度、力/力矩、加速度、减速度
  • 触发夹爪运动
  • 读取实时位置、实时速度、实时电流
  • 启动后台线程持续打印实时反馈数据

2. 环境要求

  • Python 3.8 或更高版本
  • USB 转 RS485 或其他可用的 Modbus RTU 串口设备
  • 已确认夹爪供电、通信线连接和从机地址配置正确

安装依赖:

pip install minimalmodbus pyserial

Linux 系统如果没有串口访问权限,可将当前用户加入 dialout 组后重新登录:

sudo usermod -aG dialout $USER

3. 通信参数

SDK 默认串口参数如下:

参数默认值
协议Modbus RTU
从机地址1
波特率115200
数据位8
校验位None
停止位1
超时时间1.0 s

常见串口名称:

系统示例
WindowsCOM3
Linux/dev/ttyUSB0
macOS/dev/tty.usbserial-xxxx

4. 快速开始

创建一个 Python 文件,例如 example_move.py

import time
from vitai_gripper_90 import MotorController

PORT = "/dev/ttyUSB0" # Windows 示例: "COM3"
SLAVE_ID = 1

gripper = MotorController(
port=PORT,
slave_id=SLAVE_ID,
baudrate=115200,
timeout=1.0,
)

try:
# 移动到位置 0
gripper.temp_move(
position_mm=0,
speed_pct=100,
force_pct=50,
accel=1000,
decel=1000,
trigger=True,
)
time.sleep(3)

# 移动到位置 900
gripper.temp_move(
position_mm=900,
speed_pct=100,
force_pct=50,
accel=1000,
decel=1000,
trigger=True,
)
time.sleep(3)

finally:
gripper.stop_monitoring()

运行:

python example_move.py

也可以直接运行 SDK 文件中的示例:

python vitai_gripper_90.py

运行前请根据实际设备修改 vitai_gripper_90.py 底部示例中的 PORTSLAVE_ID

5. API 说明

初始化

sdk = MotorController(port, slave_id=1, baudrate=115200, timeout=1.0)
参数类型说明
portstr串口端口,例如 /dev/ttyUSB0COM3
slave_idintModbus 从机地址,默认 1
baudrateint串口波特率,默认 115200
timeoutfloat通信超时时间,单位秒,默认 1.0

一次性设置并触发运动

sdk.temp_move(position_mm=900, speed_pct=100, force_pct=50, accel=1000, decel=1000)
参数类型说明
position_mmint目标位置值
speed_pctint目标速度百分比
force_pctint目标力/力矩百分比
accelint加速度值
decelint减速度值
triggerbool是否立即触发运动,默认 True

分步设置运动参数

如果需要先写入多个参数,再统一触发运动,可使用以下方式:

sdk.set_target_position(900)
sdk.set_target_speed(100)
sdk.set_target_force(50)
sdk.set_target_acceleration(1000)
sdk.set_target_deceleration(1000)
sdk.trigger_motion()

方法说明:

方法说明
set_target_position(position)设置目标位置
set_target_speed(speed)设置目标速度
set_target_force(force)设置目标力/力矩
set_target_acceleration(acceleration)设置目标加速度
set_target_deceleration(deceleration)设置目标减速度
trigger_motion()写入触发寄存器,执行已设置的运动参数

读取实时反馈

position = sdk.read_real_position()
speed = sdk.read_real_speed()
current = sdk.read_real_current()

print(position, speed, current)
方法返回值
read_real_position()实时位置,32 位有符号整数
read_real_speed()实时速度反馈
read_real_current()实时电流反馈

6. 常见问题

无法打开串口

请检查:

  • 串口名称是否正确
  • 串口是否被其他程序占用
  • Linux 用户是否有串口访问权限
  • USB 转 RS485 设备是否正常识别

Linux 可使用以下命令查看串口设备:

ls /dev/ttyUSB*