一、灵巧手动作编写
1.连接设备
2. 运动控制
3. 参数设置
4 动作库使用
本软件可以设置灵巧手内部第 1-第 13 套动作序列数据,每套动作序列最多能有 8 步 分解动作,每一步分解动作的手指角度、运动速度、力度以及等待时间都可以单独设置。
步骤数:动作序列的步骤数目,可设置为 0-8;
手指角度:设置动作序列的某一步骤的手指目标角度,角度输入范围 0-1000,0 对 应手指最大程度弯曲,1000 对应手指完全张开,空格代表手指不运动。
运动速度:设置动作序列的某一步骤的手指运动速度, 1-1000。
力度设置:设置动作序列的某一步骤的手指设置力度, 1-1000。
延时:设置动作序列的某一步骤的手指运动速度。 某一动作序列数据设置完成后,
点击表格右侧“下载”按钮,将数据下载到灵巧手中。 点击表格右侧的“测试”按钮,控制灵巧手触发相应的动作序列进行运动。
点击表格右侧的“上传”按钮,软件将读取灵巧手中相应的动作序列并在表格中显示。
5 动作序列操作
“打开离线文件”,可以打开一份动作序列数据文件的数据,并在软件的动作序列数 据区域显示。
“将文件数据下载到设备中”,可以将一份动作序列数据文件的数据批量下载到灵巧手中。
“保存为离线文件”,可以将软件所显示和编辑的动作序列数据整体保存到指定的文件中.
二、通过Api来调用机械臂灵巧手
上述操作保存好编辑的动作序列后,我们就可以用我们提供的api来进行灵巧手的调用,我们分别提供了以下的函数来进行灵巧手的操作。
1、设置灵巧手手势序号 Set_Hand_Posture
Set_Hand_Posture (posture_num, block)
描述: 设置灵巧手手势序号,设置成功后,灵巧手按照预先保存在 Flash 中的手 势运动。
参数 :(1)posture_num 预先保存在灵巧手内的手势序号,范围:1~40 (2)block False-非阻塞,发送后立即返回; True-阻塞,等待控制器返回 设置成功指令。
返回值 :成功返回:0;失败返回:错误码,查询 API 错误类型
2、设置灵巧手动作序列序号 Set_Hand_Seq
Set_Hand_Seq (seq_num, block)
描述:设置灵巧手动作序列序号,设置成功后,灵巧手按照预先保存在 Flash 中 的动作序列运动。
参数:(1)seq_num 预先保存在灵巧手内的动作序列序号,范围:1~40
(2)block False-非阻塞,发送后立即返回; True-阻塞,等待控制器返回 设置成功指令。
返回值: 成功返回:0;失败返回:错误码,查询 API 错误类型。
3、设置灵巧手角度 Set_Hand_Angle
Set_Hand_Angle(angle, block)
描述: 设置灵巧手角度,灵巧手有 6 个自由度,从 1~6 分别为小拇指,无名指, 中指,食指,大拇指弯曲,大拇指旋转。
参数 (1)angle 手指角度数组,6 个元素分别代表 6 个自由度的角度。范围: 0~1000。另外,-1 代表该自由度不执行任何操作,保持当前状态
(2)block False-非阻塞,发送后立即返回; True-阻塞,等待控制器返回 设置成功指令。
返回值: 成功返回:0;失败返回:错误码,查询 API 错误类型。
4.、设置灵巧手各关节速度 Set_Hand_Speed
Set_Hand_Speed (speed, block)
描述: 设置灵巧手各关节速度
参数 :(1)speed 灵巧手各关节速度设置,范围:1~1000
(2)block False-非阻塞,发送后立即返回; True-阻塞,等待控制器返回设 置成功指令
返回值 :成功返回:0;失败返回:错误码,查询 API 错误类型
5、设置灵巧手各关节力阈值 Set_Hand_Force
Set_Hand_Force (force, block)
描述 设置灵巧手各关节力阈值。
参数 :(1)force 灵巧手各关节力阈值设置,范围:1~1000,代表各关节的力矩阈 值(四指握力 0~10N,拇指握力 0~15N)。
(2)block False-非阻塞,发送后立即返回; True-阻塞,等待控制器返回设 置成功指令。 返回值: 成功返回:0;失败返回:错误码,查询 API 错误类型
这里以设置灵巧手手势序号举例进行调用。可以从我们的api协议当中看到函数参数的描述,Set_Hand_Seq(seq,block)seq代表着着我们在上面操作中上位机软件里面保存的手势序号,block 代表着阻塞与非阻塞。届时我们可以在提供的Api接口中调用这个函数来进行灵巧手来进行运动。代码示例如下:
同理,我们也可以根据api的说明来调用其他的函数来实现不同的方式来调用我们的灵巧手,结合自己使用场景的需求来进行对应函数的选择,值得注意的是在调用函数时候最好对返回值加逻辑判断。如demo8()所示。
代码如下:
# 灵巧手使用例程(需机械臂末端安装对应的灵巧手)
def demo8(robot):
# 设置灵巧手手势序号
ret = robot.Set_Hand_Seq(2, False)
if ret != 0:
print("动作执行失败:" + str(ret))
sys.exit()
else:
print("动作执行成功" + str(ret))
time.sleep(1)