Skip to content

agilexrobotics/piper_sdk

Folders and files

NameName
Last commit message
Last commit date
Apr 1, 2025
Aug 26, 2024
Apr 1, 2025
Apr 1, 2025
Apr 1, 2025
Mar 4, 2025
Mar 20, 2025
Apr 1, 2025
Apr 1, 2025
Apr 1, 2025
Aug 26, 2024
Apr 1, 2025
Feb 26, 2025
Aug 26, 2024
Feb 26, 2025
Feb 26, 2025
Mar 20, 2025
Mar 4, 2025
Feb 26, 2025
Feb 26, 2025
Aug 30, 2024
Mar 6, 2025
Apr 1, 2025

Repository files navigation

Piper 机械臂 SDK使用说明

EN

Ubuntu STATE
ubuntu18.04 Pass
ubuntu20.04 Pass
ubuntu22.04 Pass

Test:

PYTHON STATE
python3.6 Pass
python3.8 Pass
python3.10 Pass

本SDK用于接收can数据帧,然后处理为自定义数据类型,没有包括数据偏移帧

说明 文档
接口函数的详细说明 Interface_V1 README
Interface_V2 README
协议解析部分说明 Protocol_V1 README
Protocol_V2 README
消息部分说明 Msgs_V1 README
Msgs_V2 README
机械臂DEMO列举 DMEO
机械臂DEMO piper_sdk/demo/V1
piper_sdk/demo/V2
双臂的主从配置和读取数据 double_piper
使用pyQT5的开源UI Piper_sdk_ui
CHANGELOG CHANGELOG
Q&A Q&A

1 软件安装方法

1.1 安装依赖

注: python-can版本应高于3.3.4

pip3 install python-can
pip3 install piper_sdk

查看piper_sdk细节,比如安装路径,版本等信息

pip3 show piper_sdk

0.0.x 为机械臂V1.5-2固件版本前的sdk支持

若要卸载

pip3 uninstall piper_sdk

1.2 安装can工具

sudo apt update && sudo apt install can-utils ethtool

这两个工具用于配置 CAN 模块

如果执行bash脚本出现ip: command not found,请安装ip指令,一般是sudo apt-get install iproute2

2 快速使用

2.1 使能can模块

2.1.1 激活单个can模块, 此处使用can_activate.sh脚本

1) pc只插入一个usb转can模块

直接执行

bash can_activate.sh can0 1000000
2) pc插入多个usb转can模块, 但每次只激活一个can模块

注: 此处用于同时使用机械臂和底盘的的情况

(1) 查看can模块插在usb端口的硬件地址。拔掉所有can模块,只将连接到机械臂的can模块插入PC,执行

sudo ethtool -i can0 | grep bus

并记录下bus-info的数值,例如1-2:1.0

注:一般第一个插入的can模块会默认是can0,如果没有查询到can可以使用bash find_all_can_port.sh来查看刚才usb地址对应的can名称

(2) 激活can设备。假设上面的操作记录的bus-info数值为1-2:1.0,执行:

bash can_activate.sh can_piper 1000000 "1-2:1.0"

注:1-2:1.0硬件编码的usb端口插入的can设备,名字被重命名为can_piper,波特率为1000000,并激活

(3) 检查是否激活成功

执行ifconfig查看是否有can_piper,如果有则can模块设置成功

2.1.2 同时激活多个can模块,此处使用can_config.sh脚本

1) 逐个拔插can模块并一一记录每个模块对应的usb口硬件地址

can_config.sh中,EXPECTED_CAN_COUNT参数为想要激活的can模块数量,现在假设为2

(1) 然后can模块中的其中一个单独插入PC,执行

sudo ethtool -i can0 | grep bus

并记录下bus-info的数值例如1-2:1.0

(2) 接着插入下一个can模块,注意不可以与上次can模块插入的usb口相同,然后执行

sudo ethtool -i can1 | grep bus

注:一般第一个插入的can模块会默认是can0,第二个为can1,如果没有查询到can可以使用bash find_all_can_port.sh来查看刚才usb地址对应的can名称

2) 预定义USB 端口、目标接口名称及其比特率

假设上面的操作记录的bus-info数值分别为1-2:1.01-4:1.0,则将下面的USB_PORTS["1-9:1.0"]="can_left:1000000"的中括号内部的双引号内部的参数换为1-2:1.01-4:1.0.

最终结果为:

USB_PORTS["1-2:1.0"]="can_left:1000000"

USB_PORTS["1-4:1.0"]="can_right:1000000"

注:1-2:1.0硬件编码的usb端口插入的can设备,名字被重命名为can_left,波特率为1000000,并激活

3) 看终端输出是否激活成功

执行bash can_config.sh

4) 查看can是否设置成功

执行ifconfig查看是不是有can_leftcan_right

注意事项

  • 需要先激活can设备,并且设置正确的波特率,才可以读取机械臂消息或者控制机械臂
  • C_PiperInterface 接口类在实例化时可传入激活的can路由名称,这个名称可以通过ifconfig得到
  • 有时执行can发送,终端反馈Message NOT sent,是can模块没有成功连接设备,先检查模块与机械臂的连接状态,然后将机械臂断电后上电,再尝试发送
  • sdk的interface在创建实例后会检测是否激活自带的can模块,如果是其它can设备,可以将第二个形参设定为False,如:piper = C_PiperInterface_V2("can0",False)
  • 机械臂的mit协议控制单关节电机为高级功能,使用时需注意,此协议的使用不当会导致机械臂损坏!!!

联系我们

您可以在github上提issue

也可以加入discordhttps://discord.gg/wrKYTxwDBd