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 |
常见串口名称:
| 系统 | 示例 |
|---|---|
| Windows | COM3 |
| 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 底部示例中的 PORT 和 SLAVE_ID。
5. API 说明
初始化
sdk = MotorController(port, slave_id=1, baudrate=115200, timeout=1.0)
| 参数 | 类型 | 说明 |
|---|---|---|
port | str | 串口端口,例如 /dev/ttyUSB0 或 COM3 |
slave_id | int | Modbus 从机地址,默认 1 |
baudrate | int | 串口波特率,默认 115200 |
timeout | float | 通信超时时间,单位秒,默认 1.0 |
一次性设置并触发运动
sdk.temp_move(position_mm=900, speed_pct=100, force_pct=50, accel=1000, decel=1000)
| 参数 | 类型 | 说明 |
|---|---|---|
position_mm | int | 目标位置值 |
speed_pct | int | 目标速度百分比 |
force_pct | int | 目标力/力矩百分比 |
accel | int | 加速度值 |
decel | int | 减 速度值 |
trigger | bool | 是否立即触发运动,默认 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() | 写入触发寄存器,执行已设置的运动参数 |