接口需求
若想要使用TeleXperience适配新的机器人,需要提前确认机器人有以下接口
1. 机器人反馈接口
需要机器人的关节位置反馈接口
2. 控制器接口
2.a. 有实时的末端控制接口
对于实时末端控制接口的机器人,可以直接接受TeleXperience发出的末端期望位姿。 TeleXperience要求末端控制接口的频率大于100Hz
2.b.没有实时的末端控制接口
对于没有有实时末端控制接口的机器人,则需要使用TeleXperience的通用控制器,将末端期望位姿转换为期望关节角。
可以使用下方代码生成测试轨迹检测您的机器人是否支持实时关节控制。将代码复制到一个python脚本中,修改if __name__== "__main__":
下的LIMIT
为对应想测试的关节的起 始位置到终止位置,即可在执行代码命令的终端对应的文件夹下生成一个traj.txt
,里面存储了持续5s,采样频率为100hz的轨迹数据,每行对应各关节在当前时刻想要的位置。还可以在代码中修改频率f
和t
以得到不同采样频率和采样时间的轨迹数据。
import numpy as np
def interplote(LIMIT,f=100,t=5):
traj = []
DOF = len(LIMIT)
for i in range(DOF):
limit = LIMIT[i]
sap_num = f*t
tr = [limit[0]+k*(limit[1]-limit[0])/sap_num for k in range(sap_num)]
traj.append(tr)
array = np.array(traj).T
np.savetxt('traj.txt', array, fmt="%.4f")
if __name__== "__main__":
LIMIT = [[0,1.5708],[0,1.5708],[0,1.3],[0,1.1],[0,1.0],[0,1],[0,0],
[0,-1.5708],[0,1.5708],[0,-1.3],[0,1.1],[0,-1],[0,1],[0,0],]
# f=100
# t=5
interplote(LIMIT)
3. 机器人图像反馈接口
需要能够将机器人的反馈图像以ROS1或ROS2消息发布出来