Ubuntu | STATE |
---|---|
Test:
PYTHON | STATE |
---|---|
本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 |
Q&A | Q&A |
注: 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
sudo apt update && sudo apt install can-utils ethtool
这两个工具用于配置 CAN 模块
如果执行bash脚本出现ip: command not found
,请安装ip指令,一般是sudo apt-get install iproute2
直接执行
bash can_activate.sh can0 1000000
注: 此处用于同时使用机械臂和底盘的的情况
(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模块设置成功
在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名称
假设上面的操作记录的bus-info
数值分别为1-2:1.0
、1-4:1.0
,则将下面的USB_PORTS["1-9:1.0"]="can_left:1000000"
的中括号内部的双引号内部的参数换为1-2:1.0
和1-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,并激活
执行bash can_config.sh
执行ifconfig
查看是不是有can_left
和can_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