本项目实现了PiPER Mate机械臂与Piper机械臂的集成控制,通过USB和CAN总线实现实时遥操作。
该项目允许用户使用PiPER Mate机械臂作为主控设备,实时控制Piper机械臂的运动。系统通过读取PiPER Mate机械臂的关节状态,并将其转换为Piper机械臂的控制指令,实现精确的遥操作功能。
- 实时遥操作:支持高控制频率
- 关节映射:自动将PiPER Mate关节角度转换为Piper关节位置
- 安全保护:包含关节角度限制和力矩控制
- 夹爪控制:可选夹爪控制功能
- PiPER Mate机械臂(通过USB连接)
- Piper机械臂(通过CAN总线连接)
- CAN转USB适配器
- Linux系统(推荐Ubuntu 22.04+)
# 安装CAN工具
sudo apt update
sudo apt install ethtool can-utils
# Python依赖
sudo pip install pyserial fashionstar-uart-sdk piper-sdk python-can scipy# 1. 查找所有CAN端口
bash find_all_can_port.sh
# 2. 激活can0接口(波特率1000000)
bash can_activate.sh can0 1000000python3 ./Python_SDK/piper_pipermate.py在 piper_pipermate.py 的 main() 函数中修改以下参数:
# PiPER Mate USB端口
PIPERMATE_PORT = "/dev/ttyUSB0"
# Piper CAN端口
PIPER_CAN_NAME = "can0"
# 是否包含夹爪
GRIPPER_EXIST = True
# 控制频率(Hz)
UPDATE_RATE = 100.0系统支持6个关节的角度转换:
| 关节 | 角度限制 | 弧度限制 | 方向 |
|---|---|---|---|
| Joint1 | -150° ~ 150° | -2.6179 ~ 2.6179 | 反向 |
| Joint2 | 0° ~ 180° | 0 ~ 3.14 | 正向 |
| Joint3 | -170° ~ 0° | -2.967 ~ 0 | 正向 |
| Joint4 | -100° ~ 100° | -1.745 ~ 1.745 | 反向 |
| Joint5 | -70° ~ 70° | -1.22 ~ 1.22 | 正向 |
| Joint6 | -120° ~ 120° | -2.09439 ~ 2.09439 | 反向 |
夹爪角度转换为米制单位:
- 角度范围:0° ~ 45°
- 对应距离:0m ~ 0.08m
- 关节控制模式:0x01
- 速度控制模式:0x01
- 速度控制比例:100
单CAN设备激活脚本,支持:
- 自动检测CAN接口
- 设置比特率
- 接口重命名
- USB硬件地址匹配
通用CAN配置脚本,支持:
- 单CAN和多CAN设备配置
- 灵活的USB端口映射
- 比特率自定义
多CAN设备激活脚本,支持:
- 多设备并行配置
- 重复名称检测
- 交互式确认
CAN端口检测脚本,用于:
- 列出所有CAN接口
- 显示USB端口信息
- 系统兼容性检查
-
CAN接口未找到
- 检查CAN设备是否连接
- 运行
find_all_can_port.sh检测接口 - 确认USB端口映射正确
-
权限不足
- 使用
sudo chmod 777 /dev/ttyUSB*后运行脚本
- 使用
-
PiPER Mate连接失败
- 检查USB端口号
- 确认FashionStar SDK安装正确
- 检查设备权限
程序运行时显示:
- 关节状态实时监控
- 控制频率统计
- 错误信息详细输出
- 操作前检查:确保机械臂周围无障碍物
- 紧急停止:按Ctrl+C可立即停止程序
- 力矩控制:默认禁用PiPER Mate力矩
- 关节限制:系统自动限制关节角度在安全范围内
本项目基于MIT许可证开源。
欢迎提交Issue和Pull Request来改进项目。
如有问题请联系项目维护者。