AgileX 派珀
技术规格
完整的硬件规格、ROS2 主题参考、piper_sdk API 摘要和故障排除指南。
机械规格
| 规格 | 价值 |
|---|---|
| 自由度 | 6 DOF + 可选夹具 |
| 抵达 | 〜600毫米 |
| 最大有效负载 | 〜1.5公斤 |
| 重复性 | ±0.1毫米 |
| 外形尺寸 | 紧凑型桌面/台式 |
| 多臂 | 通过独立 CAN 接口的双臂主从 |
| 制造商 | 敏捷机器人 |
电气与通讯
| 规格 | 价值 |
|---|---|
| 电源 | 24伏直流电 |
| 沟通 | CAN 总线 — 1,000,000 bps (1 Mbps) |
| 主机接口 | USB 至 CAN 适配器(例如 CANable、GS_USB) |
| Linux界面 | 套接字CAN(can0, can1, …) |
软件与控制
| 规格 | 价值 |
|---|---|
| 控制方式 | 关节位置、末端执行器姿势、夹具 |
| Python SDK | pip3 install piper_sdk — 敏捷机器人/piper_sdk |
| ROS包 | 敏捷机器人/piper_ros (ROS Noetic + MoveIt) |
| 模拟 | 凉亭远 piper_gazebo.launch |
| URDF | piper_description.urdf (固件≥S-V1.6-3) |
| 操作系统支持 | 乌班图 18.04、20.04、22.04 |
| Python版本 | Python 3.6+ |
联合限制
| 联合的 | 我的(你) | 麦克斯(你) |
|---|---|---|
| 关节1 | −175 | +175 |
| 关节2 | −90 | +135 |
| 关节3 | −150 | +80 |
| 关节4 | −175 | +175 |
| 关节5 | −90 | +90 |
| 第 6 关节 | −175 | +175 |
ROS 主题和服务
标准主题和服务公开 piper_ros 启动后 start_single_piper.launch.
| 主题/服务 | 类型 | 方向 | 描述 |
|---|---|---|---|
/joint_states |
传感器消息/关节状态 | Sub(发送命令) | 关节位置命令 - 订阅将运动目标发送到手臂 |
/arm_status |
Piper_msgs/ArmStatus | 酒吧(反馈) | 手臂状态反馈:启用/禁用、错误标志、当前关节位置 |
/end_pose |
几何信息/姿势 | 酒吧(反馈) | 笛卡尔空间中的末端执行器姿势反馈(位置+四元数) |
/enable_srv |
std_srvs/SetBool | 服务 | 使能够 (true) 或禁用 (false) 所有手臂关节 |
/go_zero_srv |
std_srvs/触发器 | 服务 | 命令手臂移动到零/起始位置 |
/gripper_srv |
Piper_msgs/GripperCmd | 服务 | 设置夹具位置(0 = 打开,最大 = 完全关闭) |
/stop_srv |
std_srvs/触发器 | 服务 | 立即停止所有关节运动(通过 ROS 紧急停止) |
/reset_srv |
std_srvs/触发器 | 服务 | 复位臂错误并在出现故障后重新启用 |
Piper_sdk API 参考
上的关键方法 C_PiperInterface 班级。 初始化为 piper = C_PiperInterface("can0").
| 方法 | 描述 |
|---|---|
ConnectPort() |
打开CAN接口并启动通信线程 |
EnableArm(7) |
启用所有 6 个关节和夹具(位掩码;7 = 全部) |
DisableArm(7) |
禁用所有关节 - 完成后或断开连接之前始终调用 |
EmergencyStop() |
立即停止所有关节运动 |
MotionCtrl_2(j1, j2, j3, j4, j5, j6) |
发送 6-DOF 关节位置命令(角度以度为单位) |
GetArmJointMsgs() |
读取当前关节位置、速度和扭矩 |
GetArmEndPoseMsgs() |
读取当前末端执行器笛卡尔位姿 |
GripperCtrl(position, speed) |
设置夹具位置(0 = 打开)和速度 |
GetArmGripperMsgs() |
读取当前夹具状态和位置反馈 |
故障排除
| 症状 | 可能的原因 | 使固定 |
|---|---|---|
OSError: [Errno 19] No such device |
CAN接口不up | 跑步 sudo ip link set can0 up 并验证 ifconfig can0 |
| 手臂不响应命令 | 机械臂未处于从模式或未启用 | 称呼 piper.EnableArm(7) 连接后。 确认手臂上的从属模式跳线设置正确。 |
| 联合反馈读取全零 | 比特率不匹配 | 确保CAN接口比特率恰好为1000000。 重新运行 ip link set can0 type can bitrate 1000000. |
can.CanError: Failed to transmit |
CAN总线未终止 | 确保 CAN 总线两端都有 120 欧姆终端电阻。 通过 DIP 开关启用 Piper 的内部终结器。 |
| RViz 中的 URDF 机器人模型不正确 | 固件不匹配 | 固件 < S-V1.6-3:使用 piper_description_old.urdf。 较新的固件:使用 piper_description.urdf. |
| can0 上的权限被拒绝 | 用户不在 dialout 团体 |
SocketCAN 需要 root 或适当的权限。 运行命令 sudo 或配置 udev 规则。 |
| VR teleop:手臂超调/达到极限 | scaleFactor Unity 太高了 |
减少 scaleFactor 在 Unity 应用程序中并逐步重新测试。 Piper 工作空间比 xArm 小。 |
GitHub 存储库
| 存储库 | 描述 |
|---|---|
| 敏捷机器人/piper_sdk | 官方Python SDK。 安装: pip3 install piper_sdk。 包括演示、接口规范(INTERFACE_V2.MD)和双臂导轨。 |
| 敏捷机器人/piper_ros | ROS Noetic 包,包含 MoveIt、Gazebo 模拟、URDF 和标准 ROS 主题/服务。 |