MyCobot六轴机械臂(七)--实战MyBlockly

1、设置变量并传递机械臂关节角度

这里有五种卡片

(1)获取所有角度

(2)设置关节,单指某一个关节。

(3)设置全角度(6轴机械臂和4轴机械臂)

(4)设置全角度为

创建关节变量,将显示所有关节的角度,相关python代码如下:

engles=mc.get_engles()

print(engles)

显示结果如下图

2、设置变量并显示机械臂头部姿态

设置coords变更,并将当前机械臂的头部姿态坐标,传给变量coords并显示。

相当于执行:

coords= mc.get_coords()

print(coords)

设置变量如图

然后在左侧找到“角度和坐标”将“获取所有坐标”拖进来。

然后再去“文本”中选择“输出”项,并将他拖到工作区。

最后我们组合成如下结构:

然后点击运行,结果如下图

这里显示出当前机械臂头部姿态坐标。

3、机械臂夹爪检测

通过调用mycobot的Set_Gripper_State函数分别让夹爪进行10次张开收拢操作,并且在每组张开收拢后对其进行角度调位。

1、重新初始化夹爪

2、设置夹爪状态,可以选择夹爪的状态,可选“打开”或“关闭”,速度指夹爪开合速度

3、设置夹爪张开的角度,值为0~255,速度指的是夹爪开合的速度,取值为

4、夹爪是否在运动,给出夹爪的状态。

测试程序

程序代码:

from pymycobot.mycobot import MyCobot

import time

mc = MyCobot('/dev/ttyAMA0',1000000)

mc.send_angles([0,0,0,0,0,0],20)

for count in range(5):

  mc.set_gripper_value(0,40)

  time.sleep(2)

  mc.set_gripper_value(255,40)

  time.sleep(2)

mc.set_gripper_state(1, 40)

4、吸泵操作

吸泵的联接按第二章第三节中的(2)吸泵操作进行联结。

1、设置吸泵

第1步:为设置吸泵的工作模式,这里选BCM,即使用数字0,1代表高低电位,当然如果选用Board则必须选择使用高低电位来表示开启与关闭。此处数据派机械臂我们选择BCM模式。

第2步:设置“20”和“21”号引脚的工作方式为“out”

第3步:输出高低电位,启动或停止工作吸泵。

2、启动吸泵工作

“20”和“21”号引脚输出低电位为启动吸泵。

相关python代码如下:

from pymycobot.mycobot import MyCobot

import RPi.GPIO as GPIO

mc = MyCobot('/dev/ttyAMA0',1000000)

GPIO.setmode(GPIO.BCM)

GPIO.setup(20,GPIO.OUT)

GPIO.setup(21,GPIO.OUT)

GPIO.output(20,GPIO.LOW)

GPIO.output(21,GPIO.LOW)

5、机械臂的点动控制

本案例主要的实验内容是调用 jog_angle点动 函数通过循环让六个关节分别持续移动,通过 jog_stop 函数对其运动进行停止,从而实现点动控制。最后让机械臂移动到一个较为安全的位置并进行释放关节和断电操作。

代码如下:

from pymycobot.mycobot import MyCobot

import time

i = None

mc = MyCobot('/dev/ttyAMA0',1000000)

mc.power_on()

mc.send_angles([0,0,0,0,0,0],30)

time.sleep(3)

for i in range(1, 6):

  mc.jog_angle(i,1,20)

  time.sleep(1)

  mc.jog_stop()

  print(mc.get_encoder(i))

  print('')

mc.send_angles([180,126,(-153),136,(-82),30],30)

time.sleep(5)

mc.power_off()

6、机械臂控制机制

本案例主要是调用一些机械臂常用的控制机制函数进行机械臂控制,比如机械臂的断电、供电、暂停运动、恢复运动等控制机制功能以及机械臂头部灯的控制。

7、机械臂进阶操作

主要实现机械臂智能判断已经到达指定位置的功能,基于此功能,简单的让机械臂重复执行两个到达指令。

(1)先用 if do 模块判断机械臂是否充电,若没有充电则为其充电。输出当前的角度节点信息,

(2)让机械臂转移到零位。定义 angles 变量,使用创建 list 类型数据中的 repeated 方法为 angles 赋值零位节点信息。定义 limit_time 判断移动是否超时。

(3)将 angles 传入 is in position 方法中判断机械臂是否达到指定位置。使用 repeat 模块每运动 0.5s 检测机械臂是否达到指定位置,并进行超时计时器处理,若超过 7s 机械臂仍未到达指定位置则断定其已经到达了,执行之后的指令。

(4)接下来的原理大同小异故不再做解释。

测试代码:

from pymycobot.mycobot import MyCobot

import time

angles = None

limit_time = None

mc = MyCobot('/dev/ttyAMA0',1000000)

if 0 == mc.is_power_on():

  print('detect arm')

  mc.power_on()

print(mc.get_angles())

for count in range(4):

  mc.send_angles([0,0,0,0,0,0],20)

  angles = [0] * 6

  limit_time = 1

  while 0 == mc.is_in_position(angles,0):

    time.sleep(0.5)

    if limit_time >= 7:

      break

    limit_time = limit_time + 0.6

  mc.send_angles([143,100,(-153),125,(-82),30],20)

  angles = [143, 100, -153, 125, -82, 30]

  limit_time = 0

  while 0 == mc.is_in_position(angles,0):

    time.sleep(0.5)

    if limit_time >= 7:

      break

limit_time = limit_time + 0.6

8、控制LED灯

在左侧选LED将此条拖进来如图,然后选择运行。需要改颜色的地方就改为255。

我们第三章第五节的测试程序在这里可以表达为:

i = 3

#循环3次

while i > 0:                           

    mc.set_color(0,0,255) #蓝灯亮

    time.sleep(2)    #等2秒               

    mc.set_color(255,0,0) #红灯亮

    time.sleep(2)    #等2秒

    mc.set_color(0,255,0) #绿灯亮

    time.sleep(2)    #等2秒

i -= 1

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
### 回答1: 对于一个六自由度机械臂,其D-H参数如下: 1. 第一关节:转动关节,没有平移,因此a1=0,d1=0,α1=0。 2. 第二关节:旋转关节,前后无平移,因此a2=0,d2=D2,α2=-90°。 3. 第三关节:旋转关节,前后有平移,因此a3=A3,d3=D3,α3=0。 4. 第四关节:旋转关节,前后有平移,因此a4=A4,d4=0,α4=-90°。 5. 第五关节:旋转关节,前后有平移,因此a5=0,d5=D5,α5=90°。 6. 第六关节:旋转关节,前后无平移,因此a6=0,d6=0,α6=-90°。 其中,A3、A4、D2、D3、D5为机械臂的设计参数,可以根据实际情况进行调整。 ### 回答2: 六自由度机械臂是一种具有六个关节的机器人,可执行六个自由度的运动。D-H参数是一种描述机械臂关节之间几何关系的方法,其包括了四个基本参数:连杆长度a、偏距d、连杆扭转角度α和关节转角θ。 D-H参数描述了各个连杆之间的相对位置和朝向关系。偏距d表示相邻两个关节旋转轴之间的距离,连杆长度a表示相邻两个关节旋转轴的距离,连杆扭转角度α表示旋转轴相对于前一个轴的旋转角度,关节转角θ表示每个关节相对于基准位置的旋转角度。 具体来说,对于六自由度机械臂而言,我们可以依次编号每个关节为1, 2, 3, 4, 5, 6,同时编号每个连杆为0, 1, 2, 3, 4, 5。则对于每个关节,我们可以确定其对应的D-H参数: 关节1:a0 = 0,d1 = 0,α0 = 0,θ1为关节1的转角。 关节2:a1为关节1与关节2之间的连杆长度,d2为连杆2的偏距,α1为连杆2相对于连杆1的旋转角度,θ2为关节2的转角。 关节3、4、5、6的D-H参数同理。 通过确定六个关节的D-H参数,我们可以建立整个六自由度机械臂的运动学模型,从而计算机械臂在各个自由度上的位置和姿态。这对于机械臂的运动规划、轨迹控制等任务非常重要。 ### 回答3: 六自由度机械臂的D-H参数是描述机械臂各个关节之间的相对位置和姿态的一组参数。D-H参数是采用Denavitt-Hartenberg(D-H)坐标系方法来描述机械臂关节的几何特征和运动规律。 具体来说,六自由度机械臂的D-H参数包括以下几个参数: 1. 链长(Link Length):用L表示,表示相邻关节的连杆的长度。 2. 关节偏移(Joint Offset):用D表示,表示相邻关节的连杆之间的偏移量。 3. 关节旋转角度(Joint Angle):用θ表示,表示一个关节绕着连杆的旋转角度。 4. 关节旋转轴(Joint Axis):用α表示,表示一个关节旋转轴与前一个关节旋转轴的夹角。 关于坐标系的选取,按照D-H参数的规定,相邻关节的旋转轴是平行于某一个坐标轴的,这个坐标轴即为旋转轴坐标系的z轴。而关节的旋转角度即为绕着这个旋转轴的旋转角度。 在确定了每个关节的D-H参数后,可以通过D-H转换矩阵来计算机械臂末端执行器的位置和姿态。 总之,六自由度机械臂的D-H参数是用来描述机械臂关节位置和姿态的一组参数,通过这些参数可以计算出机械臂末端执行器的位姿。这些参数是根据机械臂的结构和运动规律来确定的。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

BBM的开源HUB

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值