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

MyCobot六轴机械臂(七)--实战MyBlockly相关推荐

  1. MyCobot六轴机械臂的基本操作(二)

    上一讲我们做ssh和vnc的设置,有小伙伴问设置些有什么用,那么这里我先来解释一下这些功能有什么用处,首先我们可以通过ssh在我们的Windows桌面进行程序开发,然后上传到树莓派进行验证,我们也可以 ...

  2. 基于模型设计(MBD)工程方法开发六轴机械臂系统实战

    本课程采用基于模型设计(MBD)的工程开发方法,实现对六轴机械臂系统的开发,包括六轴机械臂的知识和控制器的软硬件实现,有助于设计串联.并联的机械臂.康复医疗机器人等其它机电设备的电控系统.目前,这种世 ...

  3. MyCobot六轴机械臂开箱及开发前的准备工作(一)

    MyCobot机械臂是一款入门级的六自由度机械臂,目前是国产机械臂中价格和性能十分优良的机械臂,本讲主要以MyCobot 280pi机臂的开箱搭建和开发前的准备工作为起点为小伙伴们详细的介绍这款机械臂 ...

  4. MyCobot六轴机械臂(五)--Myblockly拖拽式编程

    Myblockly 是一个完全可视化的模块化编程软件,通过拖拽代码构建块或者其他视觉线索,而不是手动编写基于文本的代码.如此一来,复杂又抽象的编程语言就变得容易理解.属于图形化编程语言. Mybloc ...

  5. 六轴机械臂机械臂人脸识别和跟踪

    使用一个桌面型的六轴机械臂,在机械臂的末端安装一个摄像头,来进行人脸识别和跟踪的一个功能.该功能分为两个模块,一个是人脸识别模块,另一个是机械臂的运动控制模块. 在前文有介绍到怎么控制机械臂的基本运动 ...

  6. 机械臂——六轴机械臂逆解

    环境:MATLAB 2017B+Robotics Toolbox 9.10.0 前期准备:完成机械臂数学模型的建立+计算机械臂工作空间 https://blog.csdn.net/Kalenee/ar ...

  7. 六轴机械臂下位机(arduino)+上位机(ROS+Moveit)---(一)机械臂硬件

    六轴机械臂下位机(arduino)+上位机(ROS+Moveit)---(一)机械臂硬件 机械部分 机械臂制作时的注意点!!!(坑) 零件的3D打印 控制器接线问题 机械部分 六轴机械臂在工业领域的运 ...

  8. 编写简单的六轴机械臂

    一.关键词: link 连杆 joint 连轴 orgin 原点 axis 轴 visual 视觉 geometry 几何 material 材料 collision 碰撞 inertial 惯量 f ...

  9. 六轴机械臂DIY(一)机械臂DIY总体规划

    一直想搞一个六轴机械臂玩玩,查了查网上的资料,发现这个开源项目已经较为成熟,但没有一个总体的教程.正好我可以记录一下我接下来的DIY过程,作为一个项目日记.(当然不确定项目会不会烂尾) 本项目参考gi ...

最新文章

  1. Sublime Text3激活
  2. for循环简介及实例(输出九九乘法表)
  3. MySQL基本的SELECT语句,SQL语言概述,基础和重要不冲突,完整详细可收藏
  4. Windows下,Netbeans使用C++的配置方法
  5. 音乐无界限,听见好时光—网易云音乐Linux版震撼来袭!
  6. MySQL对字符集_对MySQL字符集的认识
  7. 心淡淡的幸福[lyb521569]
  8. VS11中添加PagedList引用
  9. 浅析那些带着“主角光环“的泰坦尼克号幸存者
  10. Modelsim 10.2c 百度网盘下载
  11. 软件测试之测试用例和缺陷报告模板分享
  12. CISCO路由基本配置命令
  13. 2023计算机考研专业课参考书目(408)
  14. 0x00007FF818BAD646 (ucrtbased.dll)处(位于 通讯录.exe 中)引发的异常: 0xC0000005: 写入位置 0x000000000000000C 时发生访问冲突。
  15. 基于深度强化学习的柔性作业车间动态调度
  16. 资源小屋(更新ing.......)
  17. 最美应用-从Android研发工程师的角度之[厨房故事]
  18. 3dsnbsp;max基础材质初学者必读——陶瓷质感表现(11)
  19. 【ARM裸机s5pv210 】程序烧录
  20. lstm 变长序列_基于变长时间间隔LSTM方法的胎儿异常体重预测

热门文章

  1. Python游戏引擎开发(一):序
  2. 在windows 10 上用ninja编译gn构建工具时编译器遇到C4819
  3. SzNOI c007小鼠迷宫
  4. Quartus II SignalTap使用
  5. 算法竞赛进阶指南 骑士放置
  6. 力扣 706. 设计哈希映射
  7. Android 自带录屏命令 screenrecord 的使用
  8. 【xmind使用】黄金猪头样例
  9. VS2019下生成静态库并调用
  10. 极光开发者线上沙龙 | 如何高效演进你的验证码