【睿尔曼-RealMan】睿尔曼超轻量仿人机械臂之-灵巧手动作编写及程序调用

harry@realman-robot.com 2024-03-21

一、灵巧手动作编写

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)

 

 

0 条评论

关于作者

harry@realman-robot.com

这家伙很懒,什么也没写!

选择发帖板块
选择发帖板块